diff --git a/alliance/CHANGES b/alliance/CHANGES new file mode 100644 index 00000000..1b97b326 --- /dev/null +++ b/alliance/CHANGES @@ -0,0 +1,184 @@ +# Alliance VLSI CAD System +# +# Home page : http://www-asim.lip6.fr/alliance/ +# E-mail support : mailto:alliance-support@asim.lip6.fr +# ftp sites : ftp://ftp.lip6.fr/lip6/softs/alliance/ +# or ftp://ftp-asim.lip6.fr/pub/alliance/ +# +# $Id: CHANGES,v 1.1 1999/05/31 17:11:53 czo Exp $ + +-------------------------------------------------------------------------------- + +ALLIANCE release 3.2b (15/12/97) + +1/ Easy install + + A "configure" script is now available to configure + Alliance on any UNIX system + +2/ New driver : + + Support to VERILOG netlist as been added. + Only driver exits. This means you can save your + netlists to VERILOG format 'vlg' + +3/ New names : + + - Logic has been splited in 3 parts, + . bop : boolean optimizer (logic -o) + . scmap : Std cell mapping (logic -s) + . c4map : CCCC mapping (logic -c) + + - Desb is replaced by yagle + + - Alligator is replaced by fpmap (X4000) + + - Netoptim is replaced glop + +4/ Cells libraries + + The tree of directories containing the cells + libraries has been simplified + +-------------------------------------------------------------------------------- + +ALLIANCE release 3.2 (17/05/97) + + +1/ GRAPHICAL PATTERN VIEWER + + In order to see the patterns resulting from a simulation, + the XPAT tools has been developped. + +2/ GRAPHICAL FSM VIEWER + + In order to see the state's graph of an FSM the XFSM tools has + been developped. + +3/ RECTANGLE LAYOUT VIEWER + + Now, DREAL is also a real layout editor. + +-------------------------------------------------------------------------------- + +ALLIANCE release 3.0 (17/05/94) + +1/ FPGA SYNTHESIS + + A logic synthesis tools that maps on FPGA is now available. + It works for X3000 devices + +2/ FLOOR-PLAN ROUTING + + Binaries of the CHEOPS router from BULL are available for sparc. + +3/ TIMING ANALYSIS + + The static timing analisys tools TAS is finally available. + It can be targetted to several processes though the use of a technological + file suffixed `elp'. + +4/ RECTANGLE LAYOUT VIEWER + + In order to see the layout resulting from a symbolic to real translation, + the DREAL tools has been developped. + +-------------------------------------------------------------------------------- +ALLIANCE release 2.0 (14/02/94) versus ALLIANCE 1.2 + +1/ SYMBOLIC LAYOUT EDITOR + + The symbolic layout editor ALC has been replaced by GRAAL. + GRAAL provides the same functionnalities than ALC, but is much + more reliable. GRAAL support both CMOS and GaAs symbolic layout. + +> man graal + +2/ DESIGN RULE CHECKER + + The Design Rule Checker VERSATIL has been replaced by DRUC. + DRUC provides the same functionnalities than VERSATIL. + A hierarchical version will be distributed in the next ALLIANCE release. + +> man druc + +3/ LOGIC SYNTHESIS + + The logic synthesis tool LOGIC has been strongly improved. + The new tool NETOPTIM is a gate-level net-list optimiser + that allows to minimize delays in a synthesized gate net-list. + The Finite-state-machine synthesizer SYF allows to describe and + synthesize high complexity FSM (more than 100 states) + It is possible to describe hierachical FSM using stack (subroutines). + +> man logic +> man syf +> man netoptim + +4/ DATA-PATH COMPILER + + FPGEN is a data-path compiler using a dedicated macro-cells library. + DPR is the place and route tool that creates optimized data-path blocks + from the gate net-list generated by FPGEN. + +> man fpgen +> man dpr + +5/ PARAMETERIZED MACRO-CELLS + + Six parametrized generators are part of this release: + +> man rsa # fast adder generator +> man bsg # barrel shifter generator +> man amg # multiplier generator +> man rfg # register file generator +> man grog # high speed ROM generator +> man rage # static RAM generator + +6/ PROCEDURAL LAYOUT DEBUGGER + + The graphic debugger GENVIEW allows to debug custom blocks + described with the procedural language GENLIB. + It makes possible to design new parameterized generators, using the + GENLIB language. + +> man genview + +7/ POSTSCIPT DRIVER + + The postscript driver MBK2PS has been replaced by L2P, in order to + obtain a printable postscript file from a cell layout. + This tool accept not only symbolic layout (.ap files) but also + physical layout (.cif or .gds files). + +> man l2p + +8/ FLOOR-PLAN ROUTER + + There is no floor-plan router in this release. + If you need to interconnect two blocks, you can use the BBR tool + that is actually a simple gridless channel router. + +> man bbr + +9/ FILE FORMATS + + Both file formats .ap (symbolic layout) and .al (net-list) + have been modified, with upward compatibility: all files + created with ALLIANCE release 1.2 are readable and usable with + ALLIANCE release 2.0. + +> man ap +> man al + +10/ PROCESS MAPPING + + The S2R tool that performs the physical mapping to a target process + has been documented: the procedure to parameterize the technology + file is described in the doc/misc/process_mapping.ps file. + The technology file format has been modified. + +> man s2r +> man prol + +# EOF diff --git a/alliance/FAQ b/alliance/FAQ new file mode 100644 index 00000000..fd6cc853 --- /dev/null +++ b/alliance/FAQ @@ -0,0 +1,288 @@ +# Alliance VLSI CAD System +# +# Home page : http://www-asim.lip6.fr/alliance/ +# E-mail support : mailto:alliance-support@asim.lip6.fr +# ftp sites : ftp://ftp.lip6.fr/lip6/softs/alliance/ +# or ftp://ftp-asim.lip6.fr/pub/alliance/ +# +# $Id: FAQ,v 1.1 1999/05/31 17:11:53 czo Exp $ + +-------------------------------------------------------------------------------- + +FAQ (Frequently Asked Questions) +This file contains the basic pointers to +the different documents or manuals found in this release. + +Question 1: What is ALLIANCE ? +Question 2: What is ALLIANCE general copyright policy ? +Question 3: How to install ALLIANCE ? +Question 4: How to get started ? +Question 5: What are the differences with the previous releases ? +Question 6: What is the supported VHDL subset ? +Question 7: What is the available online documentation ? +Question 8: Where are defined the symbolic layout rules ? +Question 9: How is performed the mapping to a target process ? +Question 10: How can I get a complete paper documentation ? +Question 11: What are the supported file formats ? +Question 12: How can I get in touch with the ALLIANCE team ? + + +Question 1: What is ALLIANCE ? +------------------------------ + +You can read a general description of the ALLIANCE tools and libraries +by printing the PostScript files overview.ps located in the root +directory: + +> lpr overview.ps + + +Question 2: What is ALLIANCE general copyright policy ? +------------------------------------------------------- + +"Alliance VLSI CAD System" is free Software. + +Unlike versions of Alliance up to 3.1 that where released +including sources, version 3.2 and up will not be available +with the source code. + +Source is however still available, but only upon request to +alliance-support@lip6.fr. The release of the source is now +subject to a non disclosure agreement. + +You are welcome to use the software package even for commercial +designs whithout any fee. You are just required to mention : +"Designed with Alliance CAD system" + +> more LICENCE + +Question 3: How to install ALLIANCE ? +------------------------------------- + +Binary packcages are available for : + - i386 Linux_elf + - sparc SunOS 4.1.1 + - sparc Solaris 5.5.1 +To install Alliance follow the steps written in README + +> more README + +Question 4: How to get started ? +-------------------------------- + +You can find 3 separate tutorials in the tutorials directory: +(Read overview.ps) + +1/ ADDACCU + The design of a very simple chip (adder/accumulator) to get started + with the ALLIANCE tools. + + >cd tutorials/addaccu + +2/ AMD2901 + The design of the 4 bits AMD2901 processor, from the VHDL specification to + the CIF layout, using the ALLIANCE portable standard cells library. + + >cd tutorials/amd2901 + +3/ Data Path + Building simple data paths using on a procedural data path generator + (fpgen) and a data path place and route tool (dpr). + + >cd tutorials/fitpath + +Question 5: What are the differences with the previous releases ? +---------------------------------------------------------------- + +The new features of this release are described in the CHANGES file: + +> more CHANGES + +Question 6: What is the supported VHDL subset ? +----------------------------------------------- + +You can find a general presentation of the VHDL subset by issuing the +following commands: + +> man vhdl + +This gives you an hint about the supported VHDL subset. +There is actually three separate architectures types: "Structural", +"Data-flow", and "Finite-State-Machine" + +> man vst + +This gives you the VHDL subset supported for structural descriptions. + +> man vbe + +This gives you the data-flow behavioral subset supported by the simulator +ASIMUT, the logic synthesis tools BOP and SCMAP and the formal prover PROOF. + +> man fsm + +This gives you the VHDL subset used for Finite-State-Machine description +and supported by the FSM synthesis tool SYF. + +Question 7: What is the available online documentation ? +-------------------------------------------------------- + +Each tools has its own manual. +All the tools rely on the use of environment variables: all the relevant +variables are listed in the `ENVIRONMENT VARIABLES' section of the manual +page. + +1) tools +-------- + + +> man asimut # VHDL simulator +> man bbr # channel router +> man dpr # data-path place & route +> man dreal # real layout viewer +> man druc # design rule checker +> man fpgen # procedural data-path generation language +> man fpmap # logic synthesis tool for FPGA +> man genlib # procedural net-list generation language +> man genpat # procedural pattern generation language +> man genview # interactive block genreator debugger +> man graal # graphic layout editor +> man l2p # layout to postcript translation tool +> man bop # boolean optimizer +> man lvx # net-list comparator +> man lynx # layout extractor +> man glop # net-list optimiser +> man proof # VHDL description's formal proover +> man ring # router between core & pads +> man s2r # symbolic layout to real mask expander +> man scmap # standard cell mapping +> man scr # standard cells place & route +> man syf # finite state machine synthesis tool +> man tas # static timing analyser +> man yagle # functional abstractor + +2) cell libraries +----------------- + +> man sclib # standard cells library +> man dplib # data path cells library +> man fplib # data path cells library +> man padlib # pad library +> man rsa # fast adder generator +> man bsg # barrel shifter generator +> man amg # multiplier generator +> man rfg # register file generator +> man grog # high speed ROM generator +> man rage # static RAM generator + +3) ALLIANCE file formats +------------------------ + +> man vhdl # VHDL overview +> man vst # VHDL subset for net-list +> man vbe # VHDL subset for data-flow +> man fsm # VHDL subset for finite-state-machine +> man al # internal ALLIANCE netlist +> man ap # internal ALLIANCE symbolic layout +> man pat # internal ALLIANCE pattern description + +4) miscellaneous +---------------- + +> man catal # use of the catalog file +> man prol # technology file +> man mbkenv # main environement variables + + +Question 8: Where are defined the symbolic layout rules ? +---------------------------------------------------------- + +The symbolic layout rules are specified in the Design Rule Checker +documentation: + +> man druc + +Question 9: How is performed the mapping to a target process ? +--------------------------------------------------------------- + +The actual conversion is performed by the s2r tool: + +> man s2r + +If you want to parameterize the S2R tool to a new target technology, +you must write a technology file. The method is described in the +postscript file doc/misc/process_mapping.ps + +> lpr doc/misc/process_mapping.ps + +Question 10: How can I get a complete paper documentation ? +----------------------------------------------------------- + +We are making a printed documentation of all manuals of the +ALLIANCE tools. It will be available soon. + + +Question 11: What are the supported file formats ? +-------------------------------------------------- + +ALLIANCE tools are interfaced to generic data-structures that +support various standard file formats, thanks to a set of +specialized parsers/drivers. +UNIX environment variables are used to select one particular file format. +For a given entity, the file format is defined by the file extension. + +1/ symbolic layout view + +ALLIANCE .ap INPUT OUTPUT +COMPASS .cp INPUT OUTPUT + +2/ physical layout view + +CIF .cif OUTPUT +GDSII .gds OUTPUT + +3/ netlist view + +ALLIANCE .al INPUT OUTPUT +SPICE .spi INPUT OUTPUT +EDIF 2.0 .edi INPUT OUTPUT +VHDL .vst INPUT OUTPUT +COMPASS .hns INPUT OUTPUT +HILO .cct OUTPUT +VERILOG .vlg OUTPUT + +4/ behavioural view + +VHDL (data-flow) .vbe INPUT OUTPUT +VHDL (FSM) .fsm INPUT + + +Question 12: How can I get in touch with the ALLIANCE team ? +------------------------------------------------------------ + +Look at the Alliance support Web pages +at http://www-asim.lip6.fr/alliance/support + +You may get ALLIANCE by two distinct means: + + 1) by anonymous FTP at ftp://ftp.lip6.fr/lip6/softs/alliance/ + + 2) by sending a blank tape (we can write DC 600A 60 MBytes, + DC 6150 150 MBytes and ExaByte 8mm 2,3 GBytes) or a ZIP 100 + or blank CD-ROM with your complete affiliation to the + following address: + + Laboratoire ASIM/LIP6 + Tour 55-65, 2eme etage + Université Pierre et Marie Curie + 4, Place Jussieu 75252 Paris Cedex 05, + France + + Fax : 33 1 44 27 62 86 + Home page : http://www-asim.lip6.fr/alliance/support + E-mail support : mailto:alliance-support@asim.lip6.fr + ftp sites : ftp://ftp.lip6.fr/lip6/softs/alliance/ (faster mirror site) + : ftp://asim.lip6.fr/pub/alliance/ (primary site) + + +# EOF diff --git a/alliance/LICENCE b/alliance/LICENCE new file mode 100644 index 00000000..dab7084f --- /dev/null +++ b/alliance/LICENCE @@ -0,0 +1,101 @@ +# Alliance VLSI CAD System +# +# Home page : http://www-asim.lip6.fr/alliance/ +# E-mail support : mailto:alliance-support@asim.lip6.fr +# ftp sites : ftp://ftp.lip6.fr/lip6/softs/alliance/ +# or ftp://ftp-asim.lip6.fr/pub/alliance/ +# +# $Id: LICENCE,v 1.1 1999/05/31 17:11:53 czo Exp $ + + + + ALLIANCE BINARY PACKAGE LICENCE AGREEMENT + + + + Copyright 1990,97 ASIM/LIP6/UPMC + + "Alliance VLSI CAD System" is free Software. + + Unlike versions of Alliance up to 3.1 that where released including + sources, version 3.2 and up will not be available with the source + code. + + Source is however still available, but only upon request to + alliance-support@lip6.fr. The release of the source is now subject to + a non disclosure agreement. + + You are welcome to use the software package even for commercial + designs whithout any fee. You are just required to mention : "Designed + with Alliance CAD system" + + Permission to use, copy, and distribute this software and its + documentation for any purpose is hereby granted without fee, provided + that the above copyright notice appear in all copies and that the + package is not modified. + + + DISCLAIMER OF WARRANTY. Free of charge Software is provided on an "AS + IS" basis, without warranty of any kind, including without limitation + the warranties that the Software is free of defects, merchantable, fit + for a particular purpose or non-infringing. The entire risk as to the + quality and performance of the Software is borne by you. Should the + Software prove defective in any respect, you and not Licensor or its + suppliers assume the entire cost of any service and repair. In + addition, the security mechanisms implemented by the Software have + inherent limitations, and you must determine that the Software + sufficiently meets your requirements. This disclaimer of warranty + constitutes an essential part of this Agreement. + + + + Contents copyrighted by + + Nizar ABDALLAH + Pascale ALLEGRE + Amara AMARA + Gregoire AVOT + Pirouz BAZARGAN-SABET + Lotfi BEN-AMMAR + Abdelhafid BOUARAOUA + Luc BURGUN + Jean-Paul CHAPUT + Arnaud CARON + Stephane DAYRAS + Anne DERIEUX + Gilles-Eric DESCAMPS + Nathalie DICTUS + Karim DIOURY + Julien DUNOYER + Olivier FLORENT + Alain GREINER + Amjad HAJJAR + Mokhtar HIRECH + Ludovic JACOMME + Payam KIANI + Marc LAURENTIN + Anthony LESTER + Marie-Minerve LOUERAT + Luis LUCAS + Francois PECHEUX + Frederic PETROT + Vincent POUILLEY + Eudes PRADO + El-Housseine REJOUAN + Pascal REMY + Patrick RENAUD + Philippe ROYANNEZ + Mohamed-Chaker SARWARY + Olivier SIROL + Huu-Nghia VUONG + Franck WAJSBURT + Laurent WINCKEL + + Special thanks to + All the members of the Architecture Team of the ASIM Laboratory + All the users of the Alliance CAD system that + help us in providing VLSI tools for free. + + +# EOF + diff --git a/alliance/README b/alliance/README new file mode 100644 index 00000000..ce4ad05d --- /dev/null +++ b/alliance/README @@ -0,0 +1,115 @@ +# Alliance VLSI CAD System +# +# Home page : http://www-asim.lip6.fr/alliance/ +# E-mail support : mailto:alliance-support@asim.lip6.fr +# ftp sites : ftp://ftp.lip6.fr/lip6/softs/alliance/ +# or ftp://ftp-asim.lip6.fr/pub/alliance/ +# +# $Id: README,v 1.1 1999/05/31 17:11:53 czo Exp $ + + + +# Alliance +# =================================================================== + +"Alliance VLSI CAD System" is free Software. + +Unlike versions of Alliance up to 3.1 that where released +including sources, version 3.2 and up will not be available +with the source code. + +Source is however still available, but only upon request to +alliance-support@lip6.fr. The release of the source is now +subject to a non disclosure agreement. + +You are welcome to use the software package even for commercial +designs whithout any fee. You are just required to mention : +"Designed with Alliance CAD system" + +You can get Alliance via anonymous FTP from ftp.lip6.fr + + ftp://ftp.lip6.fr/lip6/softs/alliance/ + +or ftp://ftp-asim.lip6.fr/pub/alliance/ + + + +# Downloading +# =================================================================== + + +You will have to download at least two files : one for the common files +of Alliance (like cells library) and another containing binaries for +your specific platform. Actually only Linux_elf, SunOS and Solaris +are supported. + +alliance-3.2b-common.tar.gz Files common to each platform *required* + +alliance-3.2b-i386-linux-2.0.30.tar.gz Binaries Linux_elf + +alliance-3.2b-sparc-sunos-4.1.1.tar.gz Binaries SunOS + +alliance-3.2b-sparc-solaris-2.5.1.tar.gz Binaries Solaris + + + + +# Installation : +# =================================================================== + +You *dont* need to be root to install Alliance in a directory you *own* + +In the example above I assume you have logged as root + +1/ cd to the directory where you want to install Alliance + + > cd /usr/local + +2/ Unpack the common package + + > gunzip -c alliance-3.2b-common.tgz | tar -pvxf - + +3/ Unpack one of the platform specific package + + > gunzip -c alliance-3.2b-Linux_elf.tgz | tar -pvxf - + +4/ cd to alliance/share/etc and run the 'configure' script + (This is the *only* script you need to run) + + > cd alliance/share/etc + > ./configure + +If you install Alliance on different platforms you'll +need to run the 'configure' script on each of them + + +# Usage : +# =================================================================== + +Each user has to source alc_env.[c]sh to set Alliance environment +variables to be able to run the Alliance tools. + +in sh > . [where you have installed Alliance]/alliance/share/etc/alc_env.sh + +in csh > source [where you have installed Alliance]/alliance/share/etc/alc_env.csh + +This could be done in system's profile (/etc/profile)... +so that it would be done at user login + +This sets various default environement variables which could be changed by user +later (Like MBK_OUT_LO to set the netlist output file format). + +If you encounter problems, check the value of these variables in alc_env.[c]sh + + $MACHINE : actually Linux_elf + or SunOS + or Solaris + + $TOP : actually [where you have installed Alliance]/alliance/archi/Linux_elf + or [where you have installed Alliance]/alliance/archi/SunOS + or [where you have installed Alliance]/alliance/archi/Solaris + +That's all :-) + + +# EOF diff --git a/alliance/share/doc/overview.ps b/alliance/share/doc/overview.ps new file mode 100644 index 00000000..be0f6b18 --- /dev/null +++ b/alliance/share/doc/overview.ps @@ -0,0 +1,2542 @@ +%!PS-Adobe-2.0 +%%Creator: dvipsk 5.58f Copyright 1986, 1994 Radical Eye Software +%%Title: overview.dvi +%%Pages: 13 +%%PageOrder: Ascend +%%BoundingBox: 0 0 596 842 +%%DocumentFonts: Palatino-Bold Palatino-Roman Courier Palatino-Italic +%%+ Palatino-BoldItalic Courier-Oblique +%%DocumentPaperSizes: A4 +%%EndComments +%DVIPSCommandLine: dvips overview.dvi +%DVIPSParameters: dpi=400, comments removed +%DVIPSSource: TeX output 1997.10.01:1825 +%%BeginProcSet: tex.pro +/TeXDict 250 dict def TeXDict begin /N{def}def /B{bind def}N /S{exch}N +/X{S N}B /TR{translate}N /isls false N /vsize 11 72 mul N /hsize 8.5 72 +mul N /landplus90{false}def /@rigin{isls{[0 landplus90{1 -1}{-1 1} +ifelse 0 0 0]concat}if 72 Resolution div 72 VResolution div neg scale +isls{landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div +hsize mul 0}ifelse TR}if Resolution VResolution vsize -72 div 1 add mul +TR[matrix currentmatrix{dup dup round sub abs 0.00001 lt{round}if} +forall round exch round exch]setmatrix}N /@landscape{/isls true N}B +/@manualfeed{statusdict /manualfeed true put}B /@copies{/#copies X}B +/FMat[1 0 0 -1 0 0]N /FBB[0 0 0 0]N /nn 0 N /IE 0 N /ctr 0 N /df-tail{ +/nn 8 dict N nn begin /FontType 3 N /FontMatrix fntrx N /FontBBox FBB N +string /base X array /BitMaps X /BuildChar{CharBuilder}N /Encoding IE N +end dup{/foo setfont}2 array copy cvx N load 0 nn put /ctr 0 N[}B /df{ +/sf 1 N /fntrx FMat N df-tail}B /dfs{div /sf X /fntrx[sf 0 0 sf neg 0 0] +N df-tail}B /E{pop nn dup definefont setfont}B /ch-width{ch-data dup +length 5 sub get}B /ch-height{ch-data dup length 4 sub get}B /ch-xoff{ +128 ch-data dup length 3 sub get sub}B /ch-yoff{ch-data dup length 2 sub +get 127 sub}B /ch-dx{ch-data dup length 1 sub get}B /ch-image{ch-data +dup type /stringtype ne{ctr get /ctr ctr 1 add N}if}B /id 0 N /rw 0 N +/rc 0 N /gp 0 N /cp 0 N /G 0 N /sf 0 N /CharBuilder{save 3 1 roll S dup +/base get 2 index get S /BitMaps get S get /ch-data X pop /ctr 0 N ch-dx +0 ch-xoff ch-yoff ch-height sub ch-xoff ch-width add ch-yoff +setcachedevice ch-width ch-height true[1 0 0 -1 -.1 ch-xoff sub ch-yoff +.1 sub]{ch-image}imagemask restore}B /D{/cc X dup type /stringtype ne{]} +if nn /base get cc ctr put nn /BitMaps get S ctr S sf 1 ne{dup dup +length 1 sub dup 2 index S get sf div put}if put /ctr ctr 1 add N}B /I{ +cc 1 add D}B /bop{userdict /bop-hook known{bop-hook}if /SI save N @rigin +0 0 moveto /V matrix currentmatrix dup 1 get dup mul exch 0 get dup mul +add .99 lt{/QV}{/RV}ifelse load def pop pop}N /eop{SI restore userdict +/eop-hook known{eop-hook}if showpage}N /@start{userdict /start-hook +known{start-hook}if pop /VResolution X /Resolution X 1000 div /DVImag X +/IE 256 array N 0 1 255{IE S 1 string dup 0 3 index put cvn put}for +65781.76 div /vsize X 65781.76 div /hsize X}N /p{show}N /RMat[1 0 0 -1 0 +0]N /BDot 260 string N /rulex 0 N /ruley 0 N /v{/ruley X /rulex X V}B /V +{}B /RV statusdict begin /product where{pop product dup length 7 ge{0 7 +getinterval dup(Display)eq exch 0 4 getinterval(NeXT)eq or}{pop false} +ifelse}{false}ifelse end{{gsave TR -.1 .1 TR 1 1 scale rulex ruley false +RMat{BDot}imagemask grestore}}{{gsave TR -.1 .1 TR rulex ruley scale 1 1 +false RMat{BDot}imagemask grestore}}ifelse B /QV{gsave newpath transform +round exch round exch itransform moveto rulex 0 rlineto 0 ruley neg +rlineto rulex neg 0 rlineto fill grestore}B /a{moveto}B /delta 0 N /tail +{dup /delta X 0 rmoveto}B /M{S p delta add tail}B /b{S p tail}B /c{-4 M} +B /d{-3 M}B /e{-2 M}B /f{-1 M}B /g{0 M}B /h{1 M}B /i{2 M}B /j{3 M}B /k{ +4 M}B /w{0 rmoveto}B /l{p -4 w}B /m{p -3 w}B /n{p -2 w}B /o{p -1 w}B /q{ +p 1 w}B /r{p 2 w}B /s{p 3 w}B /t{p 4 w}B /x{0 S rmoveto}B /y{3 2 roll p +a}B /bos{/SS save N}B /eos{SS restore}B end +%%EndProcSet +%%BeginFont: Palatino-Bold +% @@psencodingfile@{ +% author = "S. Rahtz, P. MacKay, Alan Jeffrey, B. Horn, K. Berry", +% version = "0.6", +% date = "22 June 1996", +% filename = "8r.enc", +% email = "kb@@mail.tug.org", +% address = "135 Center Hill Rd. // Plymouth, MA 02360", +% codetable = "ISO/ASCII", +% checksum = "119 662 4424", +% docstring = "Encoding for TrueType or Type 1 fonts to be used with TeX." +% @} +% +% Idea is to have all the characters normally included in Type 1 fonts +% available for typesetting. This is effectively the characters in Adobe +% Standard Encoding + ISO Latin 1 + extra characters from Lucida. +% +% Character code assignments were made as follows: +% +% (1) the Windows ANSI characters are almost all in their Windows ANSI +% positions, because some Windows users cannot easily reencode the +% fonts, and it makes no difference on other systems. The only Windows +% ANSI characters not available are those that make no sense for +% typesetting -- rubout (127 decimal), nobreakspace (160), softhyphen +% (173). quotesingle and grave are moved just because it's such an +% irritation not having them in TeX positions. +% +% (2) Remaining characters are assigned arbitrarily to the lower part +% of the range, avoiding 0, 10 and 13 in case we meet dumb software. +% +% (3) Y&Y Lucida Bright includes some extra text characters; in the +% hopes that other PostScript fonts, perhaps created for public +% consumption, will include them, they are included starting at 0x12. +% +% (4) Remaining positions left undefined are for use in (hopefully) +% upward-compatible revisions, if someday more characters are generally +% available. +% +% (5) hyphen appears twice for compatibility with both ASCII and Windows. +% +/TeXBase1Encoding [ +% 0x00 (encoded characters from Adobe Standard not in Windows 3.1) + /.notdef /dotaccent /fi /fl + /fraction /hungarumlaut /Lslash /lslash + /ogonek /ring /.notdef + /breve /minus /.notdef +% These are the only two remaining unencoded characters, so may as +% well include them. + /Zcaron /zcaron +% 0x10 + /caron /dotlessi +% (unusual TeX characters available in, e.g., Lucida Bright) + /dotlessj /ff /ffi /ffl + /.notdef /.notdef /.notdef /.notdef + /.notdef /.notdef /.notdef /.notdef + % very contentious; it's so painful not having quoteleft and quoteright + % at 96 and 145 that we move the things normally found there down to here. + /grave /quotesingle +% 0x20 (ASCII begins) + /space /exclam /quotedbl /numbersign + /dollar /percent /ampersand /quoteright + /parenleft /parenright /asterisk /plus /comma /hyphen /period /slash +% 0x30 + /zero /one /two /three /four /five /six /seven + /eight /nine /colon /semicolon /less /equal /greater /question +% 0x40 + /at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O +% 0x50 + /P /Q /R /S /T /U /V /W + /X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore +% 0x60 + /quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o +% 0x70 + /p /q /r /s /t /u /v /w + /x /y /z /braceleft /bar /braceright /asciitilde + /.notdef % rubout; ASCII ends +% 0x80 + /.notdef /.notdef /quotesinglbase /florin + /quotedblbase /ellipsis /dagger /daggerdbl + /circumflex /perthousand /Scaron /guilsinglleft + /OE /.notdef /.notdef /.notdef +% 0x90 + /.notdef /.notdef /.notdef /quotedblleft + /quotedblright /bullet /endash /emdash + /tilde /trademark /scaron /guilsinglright + /oe /.notdef /.notdef /Ydieresis +% 0xA0 + /.notdef % nobreakspace + /exclamdown /cent /sterling + /currency /yen /brokenbar /section + /dieresis /copyright /ordfeminine /guillemotleft + /logicalnot + /hyphen % Y&Y (also at 45); Windows' softhyphen + /registered + /macron +% 0xD0 + /degree /plusminus /twosuperior /threesuperior + /acute /mu /paragraph /periodcentered + /cedilla /onesuperior /ordmasculine /guillemotright + /onequarter /onehalf /threequarters /questiondown +% 0xC0 + /Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla + /Egrave /Eacute /Ecircumflex /Edieresis + /Igrave /Iacute /Icircumflex /Idieresis +% 0xD0 + /Eth /Ntilde /Ograve /Oacute + /Ocircumflex /Otilde /Odieresis /multiply + /Oslash /Ugrave /Uacute /Ucircumflex + /Udieresis /Yacute /Thorn /germandbls +% 0xE0 + /agrave /aacute /acircumflex /atilde + /adieresis /aring /ae /ccedilla + /egrave /eacute /ecircumflex /edieresis + /igrave /iacute /icircumflex /idieresis +% 0xF0 + /eth /ntilde /ograve /oacute + /ocircumflex /otilde /odieresis /divide + /oslash /ugrave /uacute /ucircumflex + /udieresis /yacute /thorn /ydieresis +] def +%%EndFont +%%BeginProcSet: texps.pro +TeXDict begin /rf{findfont dup length 1 add dict begin{1 index /FID ne 2 +index /UniqueID ne and{def}{pop pop}ifelse}forall[1 index 0 6 -1 roll +exec 0 exch 5 -1 roll VResolution Resolution div mul neg 0 0]/Metrics +exch def dict begin Encoding{exch dup type /integertype ne{pop pop 1 sub +dup 0 le{pop}{[}ifelse}{FontMatrix 0 get div Metrics 0 get div def} +ifelse}forall Metrics /Metrics currentdict end def[2 index currentdict +end definefont 3 -1 roll makefont /setfont load]cvx def}def +/ObliqueSlant{dup sin S cos div neg}B /SlantFont{4 index mul add}def +/ExtendFont{3 -1 roll mul exch}def /ReEncodeFont{/Encoding exch def}def +end +%%EndProcSet +%%BeginProcSet: special.pro +TeXDict begin /SDict 200 dict N SDict begin /@SpecialDefaults{/hs 612 N +/vs 792 N /ho 0 N /vo 0 N /hsc 1 N /vsc 1 N /ang 0 N /CLIP 0 N /rwiSeen +false N /rhiSeen false N /letter{}N /note{}N /a4{}N /legal{}N}B +/@scaleunit 100 N /@hscale{@scaleunit div /hsc X}B /@vscale{@scaleunit +div /vsc X}B /@hsize{/hs X /CLIP 1 N}B /@vsize{/vs X /CLIP 1 N}B /@clip{ +/CLIP 2 N}B /@hoffset{/ho X}B /@voffset{/vo X}B /@angle{/ang X}B /@rwi{ +10 div /rwi X /rwiSeen true N}B /@rhi{10 div /rhi X /rhiSeen true N}B +/@llx{/llx X}B /@lly{/lly X}B /@urx{/urx X}B /@ury{/ury X}B /magscale +true def end /@MacSetUp{userdict /md known{userdict /md get type +/dicttype eq{userdict begin md length 10 add md maxlength ge{/md md dup +length 20 add dict copy def}if end md begin /letter{}N /note{}N /legal{} +N /od{txpose 1 0 mtx defaultmatrix dtransform S atan/pa X newpath +clippath mark{transform{itransform moveto}}{transform{itransform lineto} +}{6 -2 roll transform 6 -2 roll transform 6 -2 roll transform{ +itransform 6 2 roll itransform 6 2 roll itransform 6 2 roll curveto}}{{ +closepath}}pathforall newpath counttomark array astore /gc xdf pop ct 39 +0 put 10 fz 0 fs 2 F/|______Courier fnt invertflag{PaintBlack}if}N +/txpose{pxs pys scale ppr aload pop por{noflips{pop S neg S TR pop 1 -1 +scale}if xflip yflip and{pop S neg S TR 180 rotate 1 -1 scale ppr 3 get +ppr 1 get neg sub neg ppr 2 get ppr 0 get neg sub neg TR}if xflip yflip +not and{pop S neg S TR pop 180 rotate ppr 3 get ppr 1 get neg sub neg 0 +TR}if yflip xflip not and{ppr 1 get neg ppr 0 get neg TR}if}{noflips{TR +pop pop 270 rotate 1 -1 scale}if xflip yflip and{TR pop pop 90 rotate 1 +-1 scale ppr 3 get ppr 1 get neg sub neg ppr 2 get ppr 0 get neg sub neg +TR}if xflip yflip not and{TR pop pop 90 rotate ppr 3 get ppr 1 get neg +sub neg 0 TR}if yflip xflip not and{TR pop pop 270 rotate ppr 2 get ppr +0 get neg sub neg 0 S TR}if}ifelse scaleby96{ppr aload pop 4 -1 roll add +2 div 3 1 roll add 2 div 2 copy TR .96 dup scale neg S neg S TR}if}N /cp +{pop pop showpage pm restore}N end}if}if}N /normalscale{Resolution 72 +div VResolution 72 div neg scale magscale{DVImag dup scale}if 0 setgray} +N /psfts{S 65781.76 div N}N /startTexFig{/psf$SavedState save N userdict +maxlength dict begin /magscale true def normalscale currentpoint TR +/psf$ury psfts /psf$urx psfts /psf$lly psfts /psf$llx psfts /psf$y psfts +/psf$x psfts currentpoint /psf$cy X /psf$cx X /psf$sx psf$x psf$urx +psf$llx sub div N /psf$sy psf$y psf$ury psf$lly sub div N psf$sx psf$sy +scale psf$cx psf$sx div psf$llx sub psf$cy psf$sy div psf$ury sub TR +/showpage{}N /erasepage{}N /copypage{}N /p 3 def @MacSetUp}N /doclip{ +psf$llx psf$lly psf$urx psf$ury currentpoint 6 2 roll newpath 4 copy 4 2 +roll moveto 6 -1 roll S lineto S lineto S lineto closepath clip newpath +moveto}N /endTexFig{end psf$SavedState restore}N /@beginspecial{SDict +begin /SpecialSave save N gsave normalscale currentpoint TR +@SpecialDefaults count /ocount X /dcount countdictstack N}N /@setspecial +{CLIP 1 eq{newpath 0 0 moveto hs 0 rlineto 0 vs rlineto hs neg 0 rlineto +closepath clip}if ho vo TR hsc vsc scale ang rotate rwiSeen{rwi urx llx +sub div rhiSeen{rhi ury lly sub div}{dup}ifelse scale llx neg lly neg TR +}{rhiSeen{rhi ury lly sub div dup scale llx neg lly neg TR}if}ifelse +CLIP 2 eq{newpath llx lly moveto urx lly lineto urx ury lineto llx ury +lineto closepath clip}if /showpage{}N /erasepage{}N /copypage{}N newpath +}N /@endspecial{count ocount sub{pop}repeat countdictstack dcount sub{ +end}repeat grestore SpecialSave restore end}N /@defspecial{SDict begin} +N /@fedspecial{end}B /li{lineto}B /rl{rlineto}B /rc{rcurveto}B /np{ +/SaveX currentpoint /SaveY X N 1 setlinecap newpath}N /st{stroke SaveX +SaveY moveto}N /fil{fill SaveX SaveY moveto}N /ellipse{/endangle X +/startangle X /yrad X /xrad X /savematrix matrix currentmatrix N TR xrad +yrad scale 0 0 1 startangle endangle arc savematrix setmatrix}N end +%%EndProcSet +TeXDict begin 39158280 55380996 1000 400 400 (overview.dvi) +@start /Fa 4 122 df<0FE01FF8707C601EF81FF80FF80F700F000F000E001E001C0038 +0070006000C00180030006030C03100320067FFEFFFEFFFE10197E9816>50 +D110 D120 DI E /Fb 7 +117 df<003000300078007800F000F000F000F000F000F000F000F001E001E001E001E0 +01E001E001E001E003C003C003C003C003C003C003C003C0078007800780078607800786 +078007860F800F0C0F801F0C0F80170C0FC067181EE0C3101E3F01E01E0000001E000000 +3C0000003C0000003C0000003C00000078000000780000007800000078000000F0000000 +600000001F24809721>22 D<78FCFCFCFC7806067C850F>58 D<001F8000F06001C03007 +80180F00181E00183E00303C00307C00E07C0380FFFE00F80000F80000F80000F80000F0 +0000F00000F000107000307800603800C01803800E0E0003F80015187E971A>101 +D<0018003C007C007C0038000000000000000000000000000000000000078008C010E030 +E060F061E0C1E0C1E003C003C003C0078007800F000F000F0C1E0C1E0C1E183C181C301C +200C4007800E267FA513>105 D<0F00FE00FC0011830703060031C60384070061C803C8 +078061F003D0078061F003E00780C3E003E00780C3C003C0078003C003C0078003C003C0 +0780078007800F00078007800F00078007800F00078007801E000F000F001E000F000F00 +1E180F000F003C180F000F003C181E001E003C301E001E0078301E001E0038601E001E00 +38403C003C001880180018000F002D187F9731>109 D<003F8000E0C001806003007007 +00F00700F00F00E00F00000FC0000FFC0007FF0003FF8001FFC0001FE00003E01001E078 +01E07C00E0F801C0F80180600380600700381C000FF00014187D971A>115 +D<006000F000F000F001E001E001E001E003C003C0FFFFFFFF07800780078007800F000F +000F000F001E001E001E001E003C003C063C063C0C780C78183810383018400F8010227E +A114>I E /Fc 2 21 df<00F80003FE000FFF801FFFC03FFFE03FFFE07FFFF07FFFF0FF +FFF8FFFFF8FFFFF8FFFFF8FFFFF8FFFFF8FFFFF87FFFF07FFFF03FFFE03FFFE01FFFC00F +FF8003FE0000F80015177D981C>15 D<00000001C000000007C00000001FC00000007E00 +000001F800000007E00000001F800000007E00000001F800000007E00000001F80000000 +7E00000001F800000007E00000001F800000007E00000000F800000000FE000000001F80 +00000007E000000001F8000000007E000000001F8000000007E000000001F8000000007E +000000001F8000000007E000000001F8000000007E000000001F8000000007C000000001 +C00000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000007FFFFFFF80FFFFFFFFC0FFFFFFFFC0222D7CA22B>20 +D E /Fd 134[37 1[55 37 41 22 29 26 1[41 37 41 59 22 1[22 +22 41 37 26 33 41 29 41 33 10[52 1[44 41 48 1[41 2[66 +7[41 1[48 13[33 33 33 33 33 2[17 43[41 2[{ + TeXBase1Encoding ReEncodeFont }37 66.666669 /Palatino-Bold +rf /Fe 134[33 33 33 33 33 33 33 33 1[33 33 33 33 33 2[33 +33 33 33 33 33 33 33 33 7[33 5[33 33 1[33 1[33 1[33 4[33 +2[33 1[33 33 33 9[33 1[33 1[33 2[33 33 33 45[{ + TeXBase1Encoding ReEncodeFont }39 55.555558 /Courier +rf /Ff 105[28 28[31 28 1[31 34 18 25 22 1[34 31 34 49 +18 34 1[18 34 31 22 28 34 25 34 28 10[43 43 37 34 40 +1[34 46 46 55 34 2[22 46 46 31 34 46 40 1[43 1[25 5[28 +2[28 1[28 28 28 28 28 1[14 18 45[{ TeXBase1Encoding ReEncodeFont }51 +55.555558 /Palatino-Bold rf /Fg 104[55 28 27[28 31 29 +46 31 33 18 23 22 31 33 30 32 49 16 31 13 16 32 31 18 +27 34 25 31 28 15 7[37 55 40 43 34 29 37 1[33 44 46 52 +34 2[19 46 42 31 34 43 39 34 43 6[14 28 28 28 28 28 28 +28 28 28 28 34 14 18 14 2[18 18 15 43 46 2[21 30[34 33 +2[{ TeXBase1Encoding ReEncodeFont }73 55.555558 /Palatino-Roman +rf /Fh 139[33 3[33 9[33 102[{ TeXBase1Encoding ReEncodeFont }3 +55.555558 /Courier-Oblique rf /Fi 135[28 9[31 1[18 2[18 +3[25 1[25 1[31 10[37 43 1[31 6[34 2[22 7[40 65[{ + TeXBase1Encoding ReEncodeFont }13 55.555558 /Palatino-BoldItalic +rf /Fj 134[28 28 40 28 31 18 22 22 1[28 25 31 43 15 25 +1[15 28 28 15 22 28 23 26 25 12[34 31 37 2[43 1[52 3[18 +3[34 43 37 34 40 11[28 2[28 1[28 1[14 18 14 40[30 29 +2[{ TeXBase1Encoding ReEncodeFont }42 55.555558 /Palatino-Italic +rf /Fk 138[40 40 40 40 1[40 40 40 40 40 2[40 2[40 40 +1[40 1[40 32[40 9[40 7[40 40 45[{ TeXBase1Encoding ReEncodeFont }18 +66.666669 /Courier rf /Fl 22[32 32 30[41 79[37 34 1[38 +40 22 28 26 37 40 36 39 59 19 2[19 39 1[22 32 41 29 37 +33 11[52 1[35 2[40 2[63 41 1[22 22 2[37 2[47 1[52 9[33 +33 33 33 1[33 1[33 2[22 17 4[18 39[{ TeXBase1Encoding ReEncodeFont }43 +66.666669 /Palatino-Roman rf /Fm 134[44 4[26 34 31 1[48 +44 46 70 23 2[23 1[44 27 38 17[42 14[62 57 1[62 6[20 +58[{ TeXBase1Encoding ReEncodeFont }18 79.999965 /Palatino-Roman +rf /Fn 133[40 44 40 66 1[49 27 35 31 1[49 44 49 71 27 +49 1[27 49 44 31 40 49 35 49 40 10[62 62 53 49 6[49 2[31 +5[58 1[62 9[40 40 40 40 40 40 40 45[49 3[{ + TeXBase1Encoding ReEncodeFont }39 79.999965 /Palatino-Bold +rf end +%%EndProlog +%%BeginSetup +%%Feature: *Resolution 400dpi +TeXDict begin +%%PaperSize: A4 + +%%EndSetup +%%Page: 1 1 +1 0 bop 395 262 a Fn(Alliance)p Fm(:)23 b(A)d(Complete)g(CAD)f(System)h +(for)g Fn(VLSI)f Fm(Design)508 509 y Fl(\311quipe)d(Achitectur)o(e)g +(des)g(Syst\350mes)g(et)g(Micr)o(o-\311lectr)o(onique)767 +586 y(Laboratoir)o(e)h(d'Informatique)g(de)f(Paris)i(6)851 +664 y(Universit\351)e(Pierr)o(e)h(et)f(Marie)h(Curie)773 +741 y(4,)f(Place)i(Jussieu)f(75252)h(Paris)f(Cedex)f(05,)1222 +819 y(France)742 896 y Fk(alliance-support@asim.lip6.fr)1167 +1131 y Fn(Abstract)258 1279 y Fj(The)d Fi(Alliance)h +Fj(package)d(is)j(a)g(complete)f(set)g(of)h(CAD)g(tools)g(for)f(the)h +(speci\002cation,)e(design)g(and)h(validation)258 1346 +y(of)21 b(digital)g Fi(VLSI)f Fj(cir)o(cuits.)36 b(Beside)19 +b(the)h(tools,)i Fi(Alliance)e Fj(includes)g(also)f(a)h(set)h(of)f +(cell)g(libraries,)h(fr)o(om)258 1412 y(standard)13 b(cells)g(for)h +(automatic)g(place)f(and)h(r)o(oute)f(tools,)h(to)g(custom)f(block)h +(generators)d(to)j(be)g(used)f(in)h(high)258 1479 y(performance)d(cir)o +(cuits.)16 b(This)d(package)e(is)j(used)e(in)i(mor)o(e)f(than)g(250)g +(universities)f(worldwide.)258 1567 y(Each)h Fi(Alliance)h +Fj(tool)g(can)f(operate)f(as)h(a)h(standalone)e(pr)o(ogram)g(as)h(well) +h(as)f(a)h(part)f(of)i(the)e(complete)g(design)258 1634 +y(framework.)24 b(After)17 b(intr)o(oducing)e(brie\003y)h(the)h(design) +e(methodology)n(,)g(we)i(outline)f(the)h(functionnality)g(of)258 +1700 y(the)d(tools.)i(Experiemental)c(r)o(esults)h(conclude)e(the)j(pr) +o(esentation.)258 1789 y Fi(Alliance)19 b Fj(runs)e(on)h(any)f +Fi(Unix)i Fj(system.)29 b(It)19 b(is)g(fr)o(eely)e(available)h(on)f +Fh(ftp)p Fj(,)j(and)e(includes)f(binaries,)h(leaf)258 +1855 y(cells)c(libraries,)e(on-line)h(documentation,)f(and)h +(tutorials.)120 2090 y Fn(1)80 b(Introduction)120 2260 +y Fg(The)19 b Ff(Alliance)g Fg(package)e(is)j(the)f(r)o(esult)g(of)h(a) +f(ten)g(years)f(ef)o(fort)i(spent)f(at)g(the)g(former)g +Ff(MASI)g Fg(Laboratory)e(of)120 2326 y(the)f(Pierr)o(e)f(et)g(Marie)h +(Curie)g(University)g(\(UPMC\),)i(in)e(Paris.)24 b(During)16 +b(these)g(years,)g(our)g(major)g(goal)f(was)i(to)120 +2393 y(pr)o(ovide)f(our)g(under)o(graduate)e(and)h(graduate)f(students) +i(with)g(a)g(complete)e(CAD)i(framework,)f(designed)g(to)120 +2459 y(assist)k(them)e(in)i(digital)e Ff(VLSI)g(CMOS)h +Fg(course.)29 b(The)17 b Fj(Ar)o(chitectur)o(e)f Fg(team)h(at)g +Ff(MASI)h Fg(focuses)h(its)f(activity)g(on)120 2526 y(two)g(key)f +(issues:)26 b(computer)18 b(ar)o(chitectur)o(es)e(using)j(high)f +(complexity)f(ASICs,)i(and)f(innovative)g(CAD)g(tools)120 +2592 y(for)e Ff(VLSI)e Fg(design.)22 b(Str)o(ong)15 b(interaction)g +(exists)h(between)e(the)h(people)g(working)g(on)h(computer)f(ar)o +(chitectur)o(es)120 2659 y(and)20 b(the)h(one)f(working)h(on)g(CAD)g +(tools.)38 b(The)21 b(main)f(CAD)h(action)g(aims)f(at)h(ful\002lling)h +(both)f(the)f(needs)g(of)120 2725 y(experienced)d(designers)i(by)g(pr)o +(oviding)h(practical)e(answers)i(to)f(state-of-the-art)i(pr)o(oblems)e +(\(logic)g(synthe-)120 2791 y(sis,)e(pr)o(ocedural)e(generation,)g +(layout)g(veri\002cation,)h(test)g(and)f(inter)o(operability\),)g(and)h +(novice)f(designers,)h(by)120 2858 y(pr)o(oviding)i(a)g(simple)g(and)g +(consistent)g(set)g(of)h(tools.)30 b(Our)18 b Ff(VLSI)f +Fg(design)g(\003ow)h(is)h(ther)o(efor)o(e)e(based)g(on)h(both)120 +2924 y(advanced)g(CAD)i(tools)g(that)g(ar)o(e)e(not)j(available)d +(within)i(commer)o(cial)e(CAD)i(systems,)h(such)f(as)g(functional)120 +2991 y(abstraction)13 b(or)h(static)g(timing)g(analysis,)g(and)g +(standar)o(d)f(design/validation)h(tools.)120 3101 y(Unlike)19 +b(versions)i(of)f Ff(Alliance)f Fg(up)h(to)g(3.1)f(that)g(wher)o(e)g(r) +o(eleased)f(including)h(sour)o(ces,)j(version)e(3.2)e(and)h(up)120 +3168 y(will)c(not)f(be)f(available)g(with)i(the)e(sour)o(ce)h(code.)j +(Sour)o(ce)d(is)g(however)g(still)h(available,)e(but)h(only)g(upon)h(r) +o(equest)120 3234 y(to)k Fe(alliance-support@lip6)q(.fr)p +Fg(.)36 b(The)19 b(r)o(elease)f(of)h(the)g(sour)o(ce)g(is)g(now)h +(subject)e(to)h(a)g(non)g(disclosur)o(e)120 3301 y(agr)o(eement.)120 +3507 y Fd(1.1)66 b(Process)18 b(independence)120 3656 +y Fg(T)-5 b(o)15 b(be)f(useful,)i(a)e(CAD)h(system)g(must)h(pr)o(ovide) +e(a)h(way)f(to)h(the)g(silicon,)h(ther)o(efor)o(e)d Ff(Alliance)i +Fg(pr)o(ovides)h(a)e(lar)o(ge)120 3723 y(set)h(of)g(cell)f(libraries)h +(also)g(available)e(at)i(the)g(layout)g(level.)k(The)c(tar)o(get)e +(technologies)i(of)h Ff(Alliance)f Fg(is)g Ff(CMOS)p +Fg(.)120 3789 y(The)21 b(layout)g(libraries)f(r)o(ely)h(on)g(a)g +(symbolic)f(layout)i(appr)o(oach)e(that)h(pr)o(ovides)h(pr)o(ocess)f +(independence)f(in)1306 3971 y(1)p eop +%%Page: 2 2 +2 1 bop 120 260 a Fg(or)o(der)16 b(to)g(allow)h(the)f(designers)f(to)i +(easily)f(port)g(their)g(designs)h(fr)o(om)g(one)f(silicon)h(supplier)g +(to)g(another)l(.)23 b(The)120 327 y(main)13 b(point)g(in)h(this)f +(appr)o(oach)g(is)h(that)e(the)h(pitch)g(matching)f(constraints)i(in)f +(both)g Fj(x)g Fg(and)g Fj(y)f Fg(dir)o(ection)g(ar)o(e)g(kept)120 +393 y(thr)o(ough)17 b(technological)f(r)o(etar)o(getting.)24 +b(The)16 b(translation,)i(fully)f(automated,)g(r)o(elies)f(on)h(a)f +(technological)g(\002le)120 459 y(suited)e(to)g(a)g(given)f(pr)o +(ocess.)120 565 y(These)20 b(\002les)h(can)f(be)f(generated)g(dir)o +(ectly)g(fr)o(om)i(the)f(pr)o(ocess)h(design)f(rules.)37 +b(Also)21 b(technological)f(\002les)g(for)120 631 y(several)13 +b(pr)o(ocesses)h(ar)o(e)f(available)f(thr)o(ough)i(the)g(CMP)g(and)g +(Eur)o(oPractice)e(services,)h(pr)o(ovided)h(you)g(signed)f(a)120 +698 y(NDA)h(for)g(the)g(pr)o(ocess.)120 897 y Fd(1.2)66 +b(Software)17 b(portability)120 1041 y Fg(The)e Ff(Alliance)h +Fg(package)d(has)j(been)e(designed)h(so)h(to)g(run)f(on)h(an)g(heter)o +(ogeneous)f(network)g(of)h(workstations.)120 1108 y(The)j(only)h(r)o +(equir)o(ements)e(ar)o(e)h(a)f Ff(C)i Fg(compiler)f(and)g(a)g +Ff(Unix)g Fg(system.)33 b(For)19 b(the)g(graphical)g(applications,)i +(the)120 1174 y(XW)m(indow)f(library)e(is)i(used.)33 +b(Several)18 b(har)o(dwar)o(e)g(platforms,)k(fr)o(om)d(Intel)g(386)f +(based)h(micr)o(ocomputers)g(to)120 1241 y(Spar)o(cStations)14 +b(and)g(DEC)f(Stations,)i(ar)o(e)e(supported.)120 1439 +y Fd(1.3)66 b(Modularity)120 1584 y Fg(Accor)o(ding)16 +b(to)h(the)g(inter)o(operability)f(constraints,)i(each)e +Ff(Alliance)h Fg(tool)g(can)g(operate)f(as)h(a)f(standalone)h(pr)o(o-) +120 1650 y(gram)g(as)h(well)g(as)g(a)f(part)h(of)h(the)e(complete)g +Ff(Alliance)h Fg(design)g(framework.)28 b(Each)17 b Ff(Alliance)h +Fg(tool)h(ther)o(efor)o(e)120 1717 y(supports)h(several)e(standar)o(d)f +Ff(VLSI)h Fg(description)g(formats)h(:)25 b Ff(SPICE)p +Fg(,)17 b Ff(EDIF)p Fg(,)g Ff(VHDL)p Fg(,)h Ff(CIF)p +Fg(,)g Ff(GDS2)p Fg(.)29 b(In)18 b(that)120 1783 y(r)o(espect,)e(the)f +(tools)j(ouputs)f(ar)o(e)e(fully)i(usable)f(under)g(the)g +Ff(Compass)e Fg(and)i Ff(Cadence)e(Opus)h Fg(envir)o(onnement,)120 +1850 y(pr)o(ovided)21 b(these)f(tools)i(have)e(the)h(necessary)e +(con\002guration)j(\002les.)38 b(The)20 b Ff(Alliance)h +Fg(tools)h(support)g(a)e(zer)o(o-)120 1916 y(default)13 +b(top-down)h(design)f(methodology)g(with)g(not)h(only)f(construction)g +(tools)i(\227)e(layout)g(editor)l(,)f(automatic)120 1982 +y(place)k(&)h(r)o(oute)g(\227)h(but)f(also)g(validation)h(tools,)g(fr)o +(om)g(design)f(rule)f(checker)f(to)j(functional)g(abstraction)e(and)120 +2049 y(formal)e(pr)o(oof.)120 2248 y Fd(1.4)66 b(Compactness)120 +2392 y Fg(Unlike)10 b(commer)o(cially)f(available)g(CAD)i(systems,)h +(the)e Ff(Alliance)g Fg(CAD)h(Framework)e(suits)j(the)f(limited)f(r)o +(essour)o(ces)120 2459 y(of)16 b(low-cost)g(workstations.)22 +b(For)15 b(small)h(educational)e(pr)o(ojects)h(\227)h(5000)e(gates)g +(\227,)i(a)f Ff(Unix)g Fg(system)g(with)h(8)f(to)120 +2525 y(20)g(Mbytes)h(of)g(memory)-6 b(,)16 b(appr)o(opriate)f(disk)h +(storage)g(\(30)f(Mbytes)h(per)f(user\),)i(and)f(graphic)f +(capabilities)g(\(X-)120 2592 y(W)m(indow\))g(is)f(suf)o(\002cient.)120 +2790 y Fd(1.5)66 b(Easiness)120 2935 y Fg(All)15 b(tools)i(and)e(the)g +(pr)o(oposed)g(design)h(\003ow)f(ar)o(e)f(simple)i(to)f(teach)f(and)h +(to)h(learn.)k(In)15 b(any)g(situation,)i(easiness)120 +3001 y(and)d(simplicity)g(have)f(been)g(pr)o(efer)o(ed)g(to)h +(sophisticated)g(appr)o(oaches.)120 3107 y(T)-5 b(o)14 +b(each)f(tool)i(corr)o(espond)f(a)f(unique)i(behavior)e(and)h(utility) +-6 b(.)18 b(Each)13 b(step)h(of)h(the)f(design)g(methodology)g(corr)o +(e-)120 3173 y(sponds)h(to)f(the)g(use)g(of)h(one)e(or)h(a)g(few)g +(tools,)h(for)f(which)g(the)g(usage)f(is)i(well)e(identi\002ed.)120 +3279 y(Fr)o(om)f(a)h(pratical)f(point)h(of)h(view)-5 +b(,)13 b(both)f(on-line)i(documentation)f(\()p Ff(Unix)g +Fe(man)p Fg(\))g(and)g(paper)f(ar)o(e)g(available)f(with)120 +3346 y(each)i(tool)h(of)h(the)e Ff(Alliance)h Fg(package.)120 +3573 y Fn(2)80 b(Alliance)18 b(design)h(\003ow)120 3738 +y Fg(W)-5 b(e)19 b(r)o(efer)f(to)h(the)f(term)h("design)f(\003ow")g(as) +h(a)g(sequenced)f(set)g(of)i(operations)f(performed)g(when)f(r)o +(ealizing)g(a)120 3805 y Ff(VLSI)12 b Fg(cir)o(cuit.)k(In)d(the)g +(design)g(\003ow)-5 b(,)13 b(we)f(r)o(ely)g(on)i(a)e(strict)h +(de\002nition)h(of)f(all)g(the)g(objects)f(and)h(design)f(functions) +1306 3971 y(2)p eop +%%Page: 3 3 +3 2 bop 120 260 a Fg(found)20 b(in)g(the)f(pr)o(ocess)h(of)g(designing) +f(a)g Ff(VLSI)f Fg(chip.)34 b(The)19 b(design)g(\003ow)g(is)h(based)e +(on)i(the)f(Mead-Conway)120 327 y(model)12 b(and)g(is)h(characterized)c +(by)j(its)h(top-down)g(aspect.)j(Below)d(we)f(intr)o(oduce)g(the)g +(major)f(steps)j(of)f(the)f(basic)120 393 y(design)g(methodology)-6 +b(.)16 b(It)c(emphasizes)g(the)g(top-down)i(aspect)e(of)h(the)f(design) +g(\003ow)-5 b(,)13 b(and)f(points)h(out)g(that)g(our)120 +459 y(methodology)h(is)g(br)o(eaked)e(up)i(into)h(5)e(distinct)h +(parts,)g(the)g(latter)f(being)g(not)h(available)f(yet)g(within)i +Ff(Alliance)p Fg(:)203 614 y Fc(\017)27 b Fg(captur)o(e)14 +b(and)f(simulation)i(of)g(the)e(behavioral)g(view)-5 +b(,)203 725 y Fc(\017)27 b Fg(captur)o(e)14 b(and)f(validation)h(of)h +(the)e(structural)h(view)-5 b(,)203 836 y Fc(\017)27 +b Fg(physical)14 b(implementation)g(of)g(the)g(design,)203 +946 y Fc(\017)27 b Fg(layout)14 b(veri\002cation,)203 +1057 y Fc(\017)27 b Fg(test)14 b(and)g(coverage)e(evaluation.)120 +1212 y(The)19 b(design)g(\003ow)g(also)g(includes)h(miscellaneous)f +(tools)h(like)f(layout)g(editor)g(for)g(the)g(design)g(of)h(the)f(cell) +f(li-)120 1279 y(braries,)13 b(and)g(a)h(PostScript)h(plotter)f(for)g +(documentation.)120 1485 y Fd(2.1)66 b(Capture)17 b(and)f(simulation)g +(of)h(the)f(behavioral)h(view)120 1634 y Fg(Like)12 b(we)h(just)h(saw) +-5 b(,)13 b(the)g(captur)o(e)f(of)i(the)f(behavioral)f(view)h(is)h(the) +f(very)f(\002rst)i(step)f(of)h(our)f(design)g(\003ow)-5 +b(.)17 b(W)m(ithin)120 1701 y Ff(Alliance)p Fg(,)11 b(any)g +Ff(VLSI)f Fg(design)h(begins)f(with)i(a)f(timing)g(independent)f +(description)h(of)g(the)g(cir)o(cuit)g(with)g(a)g(subset)120 +1767 y(of)16 b Ff(VHDL)g Fg(behavior)f(primitives.)22 +b(This)16 b(subset)g(of)g Ff(VHDL)p Fg(,)g(called)e Fe(vbe)p +Fg(,)i(is)g(fairly)g(r)o(estricted:)j(it)c(is)h(the)f(data-)120 +1834 y(\003ow)h(subset)h(of)f(this)h(language.)23 b(It)16 +b(is)g(not)h(very)e(easy)h(to)g(modelize)f(an)h(ar)o(chitectur)o(e)e +(using)j(this)g(subset,)g(but)120 1900 y(it)e(has)f(the)h(gr)o(eat)e +(advantage)g(of)i(allowing)g(simulation,)h(logic)e(synthesis)i(and)e +(bit)g(level)g(formal)h(pr)o(oof)g(on)g(the)120 1966 +y(same)e(\002les.)120 2077 y(Patterns,)24 b Ff(VHDL)e +Fg(simulation)h(stimuli,)i(ar)o(e)c(described)g(in)h(a)g(speci\002c)g +(formalism)g(that)g(can)g(be)f(captur)o(ed)120 2144 y(using)14 +b(a)e(dedicated)f(language)g Fe(genpat)p Fg(.)18 b(Once)12 +b(a)g Ff(VHDL)h Fg(behavioral)f(description)h(written)f(and)h(a)f(set)h +(of)g(test)120 2210 y(vectors)j(have)g(been)f(determined,)g(a)i +(functional)g(simulation)g(is)g(ran.)24 b(The)16 b(behavioral)g +Ff(VHDL)g Fg(simulator)h(is)120 2276 y(called)c Fe(asimut)p +Fg(.)18 b(It)13 b(validates)h(the)g(input)g(behavior)l(,)f(accor)o +(ding)g(to)h(the)g(input/output)h(vectors.)120 2482 y +Fd(2.2)66 b(Capture)17 b(and)f(validation)g(of)g(the)h(structural)g +(view)120 2632 y Fg(The)c(structural)f(view)h(can)g(be)f(captur)o(ed)g +(once)g(the)h(data)f(\003ow)h(description)g(is)g(validated.)j(The)c +(actual)h(captur)o(e)120 2699 y(of)19 b(the)f(netlist)h(r)o(elies)f +(either)f(on)i(speci\002c)g(description)f(languages,)h +Fe(genlib)h Fg(for)e(standar)o(d)g(cells)h(or)f Fe(fpgen)120 +2765 y Fg(for)c(data-path,)f(or)g(on)g(dir)o(ect)f(synthesis)j(fr)o(om) +e(the)g(data)g(\003ow)g(using)h(the)f Fe(bop)g Fg(tool)h(for)g +(optimization)f(and)g(the)120 2831 y Fe(scmap)g Fg(tool)g(to)f(map)g +(on)g(a)g(cell)f(library)-6 b(.)15 b Fe(Genlib)e Fg(and)f +Fe(fpgen)h Fg(ar)o(e)e(netlist-oriented)h(libraries)g(of)g(C)h +(functions.)120 2898 y(In)18 b(the)f(design)h(methodology)-6 +b(,)18 b(it)g(is)g(essential)g(for)g(the)g(students)h(to)f(get)f +(acquainted)f(with)j(the)e Ff(C)h Fg(language)120 2964 +y(basics.)h(The)14 b(advantage)f(of)i(such)g(an)g(appr)o(oach)f(is)h +(that)g(designers)f(do)g(not)h(have)f(to)h(learn)f(several)g(language) +120 3031 y(with)g(speci\002c)g(syntax)g(and)f(semantics.)120 +3141 y(Usually)-6 b(,)12 b(the)f(main)g(behavior)f(is)i(partitionned)f +(in)g(several)g(sub-behaviors.)16 b(Some)11 b(ar)o(e)f(described)g(r)o +(ecursively)120 3208 y(using)20 b(the)f Fe(genlib)i Fg(language,)f +(other)f(using)h Fe(fpgen)p Fg(,)i(and)d(the)g(other)g(ones)h(can)f(be) +f(dir)o(ectly)g(synthesized)120 3274 y(fr)o(om)f(a)f +Ff(VHDL)h Fg(description)g(of)g(the)f(corr)o(esponding)h +(sub-behaviors.)26 b(The)17 b Fe(scmap)g Fg(tool)g(takes)f(an)h +Ff(R)m(TL)f Fg(de-)120 3341 y(scription)e(and)g(generates)e(a)h +(netlist)h(of)g(standar)o(d)f(cell)g(gates.)j(An)e(other)f(subset)h(of) +g Ff(VHDL)g Fg(allows)g(to)g(captur)o(e)120 3407 y(\002nite)k(state)f +(machines.)27 b(This)18 b(subset,)h(called)d Fe(fsm)p +Fg(,)j(can)e(be)f(translated)h(into)h(a)f Ff(R)m(TL)g +Fg(description)h(using)g(the)120 3473 y(tool)c Fe(syf)p +Fg(,)f(and)g(then)g(the)g(r)o(esulting)g(description)g(optimized)g +(usign)h Fe(bop)f Fg(and)g(\002nally)g(syntesized)g(as)g(a)g(netlist) +120 3540 y(using)i(once)e(mor)o(e)g Fe(scmap)p Fg(.)120 +3651 y(Since)h Fe(asimut)i Fg(can)e(operate)g(on)h(both)f +Ff(R)m(TL)g Fg(and)h(structural)f(views,)h(the)g(structural)f +(description)h(is)g(checked)120 3717 y(against)g(the)g(behavioral)g +(description)g(by)f(using)j(the)e(same)f(set)h(of)h(patterns)g(that)f +(has)g(been)f(used)i(for)f(behav-)120 3783 y(ioral)f(validation.)1306 +3971 y(3)p eop +%%Page: 4 4 +4 3 bop 120 260 a Fd(2.3)66 b(Physical)18 b(design)120 +410 y Fg(Once)c(the)g(cir)o(cuit)h(netlist)g(has)g(been)f(captur)o(ed)g +(and)g(validated,)g(each)g(leaf)g(of)i(the)e(hierar)o(chy)g(has)h(to)g +(be)f(phys-)120 476 y(ically)h(implemented.)21 b(A)15 +b(netlist)h(issued)h(fr)o(om)f Fe(scmap)g Fg(is)g(usually)h(placed)d +(and)h(r)o(outed)h(using)g(the)f(standar)o(d)120 543 +y(cell)d(r)o(outer)g Fe(scr)p Fg(.)17 b(If)c(the)f(netlist)h(has)g +(been)f(captur)o(ed)f(using)j Fe(genlib)g Fg(and)e(if)h(it)g(has)g(a)f +(high)h(degr)o(ee)d(of)j(r)o(egular)o(-)120 609 y(ity)-6 +b(,)14 b(it)h(can)f(be)g(placed)f(manually)i(for)g(optimisation)h +(using)f(other)g Fe(genlib)g Fg(functions.)21 b(The)14 +b(netlist)i(r)o(esulting)120 675 y(fr)o(om)e(the)g(use)g(of)h +Fe(fpgen)f Fg(ar)o(e)f(placed)g(and)h(r)o(outed)f(using)i(the)f +(datapath)f(r)o(outer)h Fe(dpr)p Fg(.)120 786 y(These)e(part)f(can)h +(be)f(assembled)g(together)g(using)i(a)f(gridless)g(channel)f(r)o +(outer)h(called)f Fe(bbr)p Fg(,)i(and)f(this)g(generates)120 +853 y(what)18 b(we)f(call)g(a)h Fj(cor)o(e)p Fg(.)26 +b(The)18 b(cir)o(cuit)f(cor)o(e)g(is)h(now)g(r)o(eady)f(to)g(be)g +(connected)g(to)h(external)e(pads.)28 b(The)18 b(cor)o(e-to-)120 +919 y(pads)k(r)o(outer)l(,)i Fe(ring)p Fg(,)g(aims)e(at)g(doing)g(this) +h(operation)f(automatically)-6 b(,)23 b(pr)o(ovided)e(the)h(user)g(has) +g(given)g(an)120 985 y(appr)o(opriate)14 b(netlist)g(and)f(some)h +(indications)h(on)f(pad)g(placement.)120 1096 y(The)f(last)h(stage)f +(of)h(the)f(physical)h(implementation)f(is)h(the)g(translation)g(of)g +(the)f(symbolic)h(layout)f(to)h(a)f(foundry)120 1163 +y(compliant)h(layout)f(using)i(the)e Fe(s2r)h Fg(tool.)k(After)13 +b(that,)g(the)h(tape)f(containing)g(the)h(cir)o(cuit)f(can)g(be)f(pr)o +(ocessed)i(by)120 1229 y(the)g(silicon)g(supplier)l(.)120 +1435 y Fd(2.4)66 b(V)-7 b(eri\002cation)120 1585 y Fg(In)11 +b(our)h Ff(VLSI)e Fg(class,)i(we)f(intend)g(to)g(show)i(that)e +Ff(VLSI)f Fg(veri\002cation)i(is)f(at)g(least)g(as)h(important)f(as)g +Ff(VLSI)g Fg(physical)120 1651 y(design.)16 b(For)d(that)f(r)o(eason,)h +(we)f(have)g(intr)o(oduced)g(in)h(the)f(design)h(\003ow)f(powerful)i +(tools)f(to)g(perform)g(behavior)l(,)120 1718 y(netlist)h(and)g(layout) +g(veri\002cations.)120 1828 y(The)f(corr)o(ectness)h(of)g(the)g(design) +f(rules)h(is)h(checked)c(using)k(the)f(design)f(rule)h(checker)e +Fe(druc)p Fg(.)120 1939 y(An)19 b(extracted)e(netlist)j(can)e(be)h +(obtained)f(fr)o(om)h(the)g(r)o(esulting)h(layout.)33 +b Fe(Lynx)p Fg(,)21 b(the)e(layout)g(extractor)f(oper)o(-)120 +2005 y(ates)j(on)h(both)g(hierar)o(chical)e(and)h(\003attened)f(layout) +i(and)f(can)g(output)i(both)f(\003attened)e(netlists)j(\(transistor)120 +2072 y(netlist\))f(and)g(hierar)o(chical)e(netlists.)41 +b(The)21 b(transistor)i(netlist)f(is)g(the)f(input)i(of)f(the)f +Fe(yagle)i Fg(functional)f(ab-)120 2138 y(stractor)l(.)c +Fe(Yagle)d Fg(pr)o(ovides)g(a)f Ff(VHDL)h Fg(data-\003ow)f(behavioral)f +(description,)i(identical)e(to)i(the)f(one)g(that)g(feeds)120 +2205 y Fe(asimut)p Fg(,)23 b(fr)o(om)e(the)f(transistor)i(netlist)f(of) +g(a)f(cir)o(cuit.)37 b(The)20 b(r)o(esulting)h(behavior)f(can)g(be)f +(compar)o(ed)g(to)i(the)120 2271 y(initial)e(speci\002cations)g(using)h +(either)e Fe(asimut)i Fg(with)f(the)g(functionnal)g(vectors)g(used)g +(for)g(the)f(validation)h(of)120 2337 y(the)g(behavioral)g +(speci\002cation,)i(or)e(formally)h(pr)o(oved)f(equivalent,)i(thanks)f +(to)f(the)g(formal)h(pr)o(oof)h(analyzer)120 2404 y Fe(proof)p +Fg(.)120 2515 y(When)f(extracted)e(hierar)o(chically)-6 +b(,)20 b(the)g(r)o(esulting)g(netlist)h(can)e(be)h(compar)o(ed)e(with)j +(the)f(original)g(netlist)h(by)120 2581 y(using)i(the)f +Fe(lvx)g Fg(tool.)43 b Fe(Lvx)p Fg(,)24 b(that)e(stands)h(for)f +(Logical)g(V)-6 b(ersus)22 b(Extracted,)g(is)h(a)e(netlist)i +(comparator)e(that)120 2647 y(matches)13 b(every)g(design)h(object)e +(found)j(in)f(both)g(netlists.)120 2758 y(The)e(critical)f(path)i(of)g +(the)f(cir)o(cuit,)g(and)g(an)g(estimate)g(of)h(its)g(delay)-6 +b(,)11 b(can)h(be)f(obtained)g(using)j(the)e(static)g(timming)120 +2824 y(analyzer)g Fe(tas)p Fg(.)120 3031 y Fd(2.5)66 +b(T)-7 b(est)18 b(and)e(coverage)h(evaluation)120 3180 +y Fg(For)g(now)-5 b(,)19 b(the)f(fault)g(coverage)e(pr)o(ovided)h(by)g +(the)h(functional)g(patterns)g(is)g(evaluated)f(using)h(a)g(commer)o +(cial)120 3247 y(fault)c(simulator)l(,)h(as)f Ff(Alliance)g +Fg(doesn't)g(pr)o(ovide)g(one)g(yet.)120 3481 y Fn(3)80 +b(T)-9 b(ools)20 b(and)g(layout)f(libraries)f(of)i(the)f(Alliance)g +(package)120 3652 y Fg(Every)h Ff(Alliance)h Fg(tool)g(has)g(been)f +(designed)g(to)h(simply)g(interface)f(with)h(each)e(other)l(,)k(in)e +(or)o(der)f(to)h(support)120 3718 y(the)c(pr)o(oposed)i(design)e +(\003ow)-5 b(.)29 b(Nevertheless,)18 b(each)e(tool)j(can)e(also)h(be)f +(used)h(independently)-6 b(,)17 b(thanks)h(to)g(the)120 +3785 y(multiple)c(standar)o(d)g(formats)g(used)g(for)g(input)h(and)f +(output)h(\002les.)1306 3971 y(4)p eop +%%Page: 5 5 +5 4 bop 720 205 a + 14208860 18329424 0 0 20326563 26378485 startTexFig + 720 205 a +%%BeginDocument: tools.eps +/$F2psDict 200 dict def +$F2psDict begin +$F2psDict /mtrx matrix put +/col-1 {} def +/col0 {0.000 0.000 0.000 srgb} bind def +/col1 {0.000 0.000 1.000 srgb} bind def +/col2 {0.000 1.000 0.000 srgb} bind def +/col3 {0.000 1.000 1.000 srgb} bind def +/col4 {1.000 0.000 0.000 srgb} bind def +/col5 {1.000 0.000 1.000 srgb} bind def +/col6 {1.000 1.000 0.000 srgb} bind def +/col7 {1.000 1.000 1.000 srgb} bind def +/col8 {0.000 0.000 0.560 srgb} bind def +/col9 {0.000 0.000 0.690 srgb} bind def +/col10 {0.000 0.000 0.820 srgb} bind def +/col11 {0.530 0.810 1.000 srgb} bind def +/col12 {0.000 0.560 0.000 srgb} bind def +/col13 {0.000 0.690 0.000 srgb} bind def +/col14 {0.000 0.820 0.000 srgb} bind def +/col15 {0.000 0.560 0.560 srgb} bind def +/col16 {0.000 0.690 0.690 srgb} bind def +/col17 {0.000 0.820 0.820 srgb} bind def +/col18 {0.560 0.000 0.000 srgb} bind def +/col19 {0.690 0.000 0.000 srgb} bind def +/col20 {0.820 0.000 0.000 srgb} bind def +/col21 {0.560 0.000 0.560 srgb} bind def +/col22 {0.690 0.000 0.690 srgb} bind def +/col23 {0.820 0.000 0.820 srgb} bind def +/col24 {0.500 0.190 0.000 srgb} bind def +/col25 {0.630 0.250 0.000 srgb} bind def +/col26 {0.750 0.380 0.000 srgb} bind def +/col27 {1.000 0.500 0.500 srgb} bind def +/col28 {1.000 0.630 0.630 srgb} bind def +/col29 {1.000 0.750 0.750 srgb} bind def +/col30 {1.000 0.880 0.880 srgb} bind def +/col31 {1.000 0.840 0.000 srgb} bind def + +end +save +-131.0 504.0 translate +1 -1 scale + +/clp {closepath} bind def +/ef {eofill} bind def +/gr {grestore} bind def +/gs {gsave} bind def +/l {lineto} bind def +/m {moveto} bind def +/n {newpath} bind def +/s {stroke} bind def +/slc {setlinecap} bind def +/slj {setlinejoin} bind def +/slw {setlinewidth} bind def +/srgb {setrgbcolor} bind def +/rot {rotate} bind def +/sc {scale} bind def +/tr {translate} bind def +/tnt {dup dup currentrgbcolor + 4 -2 roll dup 1 exch sub 3 -1 roll mul add + 4 -2 roll dup 1 exch sub 3 -1 roll mul add + 4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb} + bind def +/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul + 4 -2 roll mul srgb} bind def +/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def +/$F2psEnd {$F2psEnteredState restore end} def + +$F2psBegin +10 setmiterlimit + 0.06299 0.06299 sc +7.500 slw +% Polyline +n 2204 2864 m 2099 2864 2099 3059 105 arcto 4 {pop} repeat 2099 3164 3194 3164 105 arcto 4 {pop} repeat 3299 3164 3299 2969 105 arcto 4 {pop} repeat 3299 2864 2204 2864 105 arcto 4 {pop} repeat clp gs col-1 s gr +/Palatino-Roman findfont 210.00 scalefont setfont +2354 3089 m +gs 1 -1 sc (asimut) col-1 show gr +% Polyline +n 2204 3899 m 2099 3899 2099 4094 105 arcto 4 {pop} repeat 2099 4199 3194 4199 105 arcto 4 {pop} repeat 3299 4199 3299 4004 105 arcto 4 {pop} repeat 3299 3899 2204 3899 105 arcto 4 {pop} repeat clp gs col-1 s gr +/Palatino-Roman findfont 210.00 scalefont setfont +2549 4124 m +gs 1 -1 sc (lvx) col-1 show gr +% Polyline +n 2204 6014 m 2099 6014 2099 6209 105 arcto 4 {pop} repeat 2099 6314 3194 6314 105 arcto 4 {pop} repeat 3299 6314 3299 6119 105 arcto 4 {pop} repeat 3299 6014 2204 6014 105 arcto 4 {pop} repeat clp gs col-1 s gr +/Palatino-Roman findfont 210.00 scalefont setfont +2466 6239 m +gs 1 -1 sc (druc) col-1 show gr +% Polyline +n 2204 7049 m 2099 7049 2099 7244 105 arcto 4 {pop} repeat 2099 7349 3194 7349 105 arcto 4 {pop} repeat 3299 7349 3299 7154 105 arcto 4 {pop} repeat 3299 7049 2204 7049 105 arcto 4 {pop} repeat clp gs col-1 s gr +/Palatino-Roman findfont 210.00 scalefont setfont +2534 7274 m +gs 1 -1 sc (s2r) col-1 show gr +% Polyline +n 4004 2864 m 3899 2864 3899 3059 105 arcto 4 {pop} repeat 3899 3164 4994 3164 105 arcto 4 {pop} repeat 5099 3164 5099 2969 105 arcto 4 {pop} repeat 5099 2864 4004 2864 105 arcto 4 {pop} repeat clp gs col-1 s gr +/Palatino-Roman findfont 210.00 scalefont setfont +4259 3089 m +gs 1 -1 sc (desb) col-1 show gr +% Polyline +n 4005 4950 m 3900 4950 3900 5145 105 arcto 4 {pop} repeat 3900 5250 4995 5250 105 arcto 4 {pop} repeat 5100 5250 5100 5055 105 arcto 4 {pop} repeat 5100 4950 4005 4950 105 arcto 4 {pop} repeat clp gs col-1 s gr +% Polyline +n 4500 4950 m 4500 4950 l gs col-1 s gr +/Palatino-Roman findfont 210.00 scalefont setfont +4350 5190 m +gs 1 -1 sc (lynx) col-1 show gr +% Polyline +n 3945 4350 m 3945 3750 l 5145 3750 l 5145 4350 l gs col-1 s gr +% Interp Spline +n 5145 4350 m + 4991.91 4462.50 4916.91 4500.00 4845 4500 curveto + 4653.23 4500.00 4436.77 4200.00 4245 4200 curveto + 4173.09 4200.00 4098.09 4237.50 3945 4350 curveto + gs col-1 s gr + +% Polyline +n 4544 4350 m 4544 4350 l gs col-1 s gr +% Polyline +n 4544 3750 m 4544 3750 l gs col-1 s gr +/Palatino-Roman findfont 210.00 scalefont setfont +4041 3975 m +gs 1 -1 sc (Structural) col-1 show gr +/Palatino-Roman findfont 210.00 scalefont setfont +4319 4170 m +gs 1 -1 sc (view) col-1 show gr +% Polyline +n 3900 2250 m 3900 1650 l 5100 1650 l 5100 2250 l gs col-1 s gr +% Interp Spline +n 5100 2250 m + 4946.91 2362.50 4871.91 2400.00 4800 2400 curveto + 4608.23 2400.00 4391.77 2100.00 4200 2100 curveto + 4128.09 2100.00 4053.09 2137.50 3900 2250 curveto + gs col-1 s gr + +% Polyline +n 4499 2250 m 4499 2250 l gs col-1 s gr +/Palatino-Roman findfont 210.00 scalefont setfont +3966 1875 m +gs 1 -1 sc (Behavioral) col-1 show gr +/Palatino-Roman findfont 210.00 scalefont setfont +4274 2070 m +gs 1 -1 sc (view) col-1 show gr +% Polyline +n 2204 4956 m 2099 4956 2099 5151 105 arcto 4 {pop} repeat 2099 5256 3194 5256 105 arcto 4 {pop} repeat 3299 5256 3299 5061 105 arcto 4 {pop} repeat 3299 4956 2204 4956 105 arcto 4 {pop} repeat clp gs col-1 s gr +/Palatino-Roman findfont 210.00 scalefont setfont +2549 5174 m +gs 1 -1 sc (tas) col-1 show gr +% Polyline +n 4860 7680 m 4755 7680 4755 7875 105 arcto 4 {pop} repeat 4755 7980 5850 7980 105 arcto 4 {pop} repeat 5955 7980 5955 7785 105 arcto 4 {pop} repeat 5955 7680 4860 7680 105 arcto 4 {pop} repeat clp gs col-1 s gr +/Palatino-Roman findfont 210.00 scalefont setfont +5100 7882 m +gs 1 -1 sc (graal) col-1 show gr +% Polyline +n 3150 7680 m 3045 7680 3045 7875 105 arcto 4 {pop} repeat 3045 7980 4140 7980 105 arcto 4 {pop} repeat 4245 7980 4245 7785 105 arcto 4 {pop} repeat 4245 7680 3150 7680 105 arcto 4 {pop} repeat clp gs col-1 s gr +/Palatino-Roman findfont 210.00 scalefont setfont +3390 7905 m +gs 1 -1 sc (dreal) col-1 show gr +% Polyline +n 5848 1806 m 5743 1806 5743 2001 105 arcto 4 {pop} repeat 5743 2106 6838 2106 105 arcto 4 {pop} repeat 6943 2106 6943 1911 105 arcto 4 {pop} repeat 6943 1806 5848 1806 105 arcto 4 {pop} repeat clp gs col-1 s gr +/Palatino-Roman findfont 210.00 scalefont setfont +5998 2001 m +gs 1 -1 sc (genpat) col-1 show gr +% Polyline +n 5849 3246 m 5744 3246 5744 3441 105 arcto 4 {pop} repeat 5744 3546 6839 3546 105 arcto 4 {pop} repeat 6944 3546 6944 3351 105 arcto 4 {pop} repeat 6944 3246 5849 3246 105 arcto 4 {pop} repeat clp gs col-1 s gr +/Palatino-Roman findfont 210.00 scalefont setfont +5894 3449 m +gs 1 -1 sc (netoptim) col-1 show gr +% Polyline +n 5823 4463 m 5718 4463 5718 5656 105 arcto 4 {pop} repeat 5718 5761 6866 5761 105 arcto 4 {pop} repeat 6971 5761 6971 4568 105 arcto 4 {pop} repeat 6971 4463 5823 4463 105 arcto 4 {pop} repeat clp gs col-1 s gr +/Palatino-Roman findfont 210.00 scalefont setfont +6142 4666 m +gs 1 -1 sc (ring) col-1 show gr +/Palatino-Roman findfont 210.00 scalefont setfont +6164 4951 m +gs 1 -1 sc (bbr) col-1 show gr +/Palatino-Roman findfont 210.00 scalefont setfont +6194 5176 m +gs 1 -1 sc (scr) col-1 show gr +/Palatino-Roman findfont 210.00 scalefont setfont +5992 5401 m +gs 1 -1 sc (cheops) col-1 show gr +/Palatino-Roman findfont 210.00 scalefont setfont +6164 5671 m +gs 1 -1 sc (dpr) col-1 show gr +% Polyline +n 5846 2236 m 5741 2236 5741 3001 105 arcto 4 {pop} repeat 5741 3106 6844 3106 105 arcto 4 {pop} repeat 6949 3106 6949 2341 105 arcto 4 {pop} repeat 6949 2236 5846 2236 105 arcto 4 {pop} repeat clp gs col-1 s gr +/Palatino-Roman findfont 210.00 scalefont setfont +6187 2446 m +gs 1 -1 sc (syf) col-1 show gr +/Palatino-Roman findfont 210.00 scalefont setfont +5932 2701 m +gs 1 -1 sc (alligator) col-1 show gr +/Palatino-Roman findfont 210.00 scalefont setfont +6112 2971 m +gs 1 -1 sc (logic) col-1 show gr +% Polyline +n 6322 6053 m 6322 6053 l gs col-1 s gr +% Polyline +n 5827 5903 m 5722 5903 5722 6098 105 arcto 4 {pop} repeat 5722 6203 6817 6203 105 arcto 4 {pop} repeat 6922 6203 6922 6008 105 arcto 4 {pop} repeat 6922 5903 5827 5903 105 arcto 4 {pop} repeat clp gs col-1 s gr +/Palatino-Roman findfont 210.00 scalefont setfont +6014 6106 m +gs 1 -1 sc (genlib) col-1 show gr +% Polyline +n 6322 6256 m 6322 6616 l gs col-1 s gr +n 6352.00 6520.00 m 6322.00 6616.00 l 6292.00 6520.00 l 6322.50 6496.50 l 6352.00 6520.00 l clp gs 0.00 setgray ef gr gs col-1 s gr +% Polyline +n 5849 6645 m 5744 6645 5744 6840 105 arcto 4 {pop} repeat 5744 6945 6839 6945 105 arcto 4 {pop} repeat 6944 6945 6944 6750 105 arcto 4 {pop} repeat 6944 6645 5849 6645 105 arcto 4 {pop} repeat clp gs col-1 s gr +/Palatino-Roman findfont 210.00 scalefont setfont +5939 6847 m +gs 1 -1 sc (genview) col-1 show gr +% Polyline +n 6346 3826 m 6346 3826 l gs col-1 s gr +% Polyline +n 6346 3826 m 6346 3826 l gs col-1 s gr +% Polyline +n 5824 3676 m 5719 3676 5719 4126 105 arcto 4 {pop} repeat 5719 4231 6866 4231 105 arcto 4 {pop} repeat 6971 4231 6971 3781 105 arcto 4 {pop} repeat 6971 3676 5824 3676 105 arcto 4 {pop} repeat clp gs col-1 s gr +/Palatino-Roman findfont 225.00 scalefont setfont +6038 3878 m +gs 1 -1 sc (genlib) col-1 show gr +/Palatino-Roman findfont 225.00 scalefont setfont +6052 4141 m +gs 1 -1 sc (fpgen) col-1 show gr +% Polyline +n 6344 3242 m 6344 3242 l gs col-1 s gr +% Polyline +n 2205 1800 m 2100 1800 2100 1995 105 arcto 4 {pop} repeat 2100 2100 3195 2100 105 arcto 4 {pop} repeat 3300 2100 3300 1905 105 arcto 4 {pop} repeat 3300 1800 2205 1800 105 arcto 4 {pop} repeat clp gs col-1 s gr +/Palatino-Roman findfont 210.00 scalefont setfont +2421 2016 m +gs 1 -1 sc (proof) col-1 show gr +% Polyline +n 5400 7650 m 4860 6660 l gs col-1 s gr +n 5380.37 7551.36 m 5400.00 7650.00 l 5327.69 7580.09 l 5343.04 7545.15 l 5380.37 7551.36 l clp gs 0.00 setgray ef gr gs col-1 s gr +n 4879.63 6758.64 m 4860.00 6660.00 l 4932.31 6729.91 l 4917.96 6765.85 l 4879.63 6758.64 l clp gs 0.00 setgray ef gr gs col-1 s gr +% Polyline +n 3510 7650 m 4365 6435 l gs col-1 s gr +n 3589.78 7588.76 m 3510.00 7650.00 l 3540.71 7554.23 l 3579.56 7552.36 l 3589.78 7588.76 l clp gs 0.00 setgray ef gr gs col-1 s gr +% Polyline +n 3900 6450 m 3300 7050 l gs col-1 s gr +n 3389.10 7003.33 m 3300.00 7050.00 l 3346.67 6960.90 l 3385.35 6965.65 l 3389.10 7003.33 l clp gs 0.00 setgray ef gr gs col-1 s gr +% Polyline +n 3900 6150 m 3300 6150 l gs col-1 s gr +n 3396.00 6180.00 m 3300.00 6150.00 l 3396.00 6120.00 l 3420.50 6150.50 l 3396.00 6180.00 l clp gs 0.00 setgray ef gr gs col-1 s gr +% Polyline +n 3900 4350 m 3300 4950 l gs col-1 s gr +n 3389.10 4903.33 m 3300.00 4950.00 l 3346.67 4860.90 l 3385.35 4865.65 l 3389.10 4903.33 l clp gs 0.00 setgray ef gr gs col-1 s gr +% Polyline +n 3900 4050 m 3300 4050 l gs col-1 s gr +n 3396.00 4080.00 m 3300.00 4050.00 l 3396.00 4020.00 l 3420.50 4050.50 l 3396.00 4080.00 l clp gs 0.00 setgray ef gr gs col-1 s gr +% Polyline +n 3900 3750 m 3300 3150 l gs col-1 s gr +n 3346.67 3239.10 m 3300.00 3150.00 l 3389.10 3196.67 l 3385.35 3235.35 l 3346.67 3239.10 l clp gs 0.00 setgray ef gr gs col-1 s gr +% Polyline +n 5100 4425 m 5673 4741 l gs col-1 s gr +n 5603.42 4668.37 m 5673.00 4741.00 l 5574.45 4720.91 l 5568.42 4683.55 l 5603.42 4668.37 l clp gs 0.00 setgray ef gr gs col-1 s gr +% Polyline +n 4500 4950 m 4500 4425 l gs col-1 s gr +n 4470.00 4521.00 m 4500.00 4425.00 l 4530.00 4521.00 l 4500.50 4545.50 l 4470.00 4521.00 l clp gs 0.00 setgray ef gr gs col-1 s gr +% Polyline +n 4500 5850 m 4500 5250 l gs col-1 s gr +n 4470.00 5346.00 m 4500.00 5250.00 l 4530.00 5346.00 l 4500.50 5370.50 l 4470.00 5346.00 l clp gs 0.00 setgray ef gr gs col-1 s gr +% Polyline +n 5702 4830 m 5131 6119 l gs col-1 s gr +n 5197.31 6043.38 m 5131.00 6119.00 l 5142.45 6019.08 l 5180.10 6009.78 l 5197.31 6043.38 l clp gs 0.00 setgray ef gr gs col-1 s gr +% Polyline +n 5805 6795 m 5100 6525 l gs col-1 s gr +n 5178.92 6587.35 m 5100.00 6525.00 l 5200.38 6531.32 l 5212.56 6568.42 l 5178.92 6587.35 l clp gs 0.00 setgray ef gr gs col-1 s gr +% Polyline +n 3900 1950 m 3300 1950 l gs col-1 s gr +n 3396.00 1980.00 m 3300.00 1950.00 l 3396.00 1920.00 l 3420.50 1950.50 l 3396.00 1980.00 l clp gs 0.00 setgray ef gr gs col-1 s gr +% Polyline +n 5700 1950 m 5100 1950 l gs col-1 s gr +n 5196.00 1980.00 m 5100.00 1950.00 l 5196.00 1920.00 l 5220.50 1950.50 l 5196.00 1980.00 l clp gs 0.00 setgray ef gr gs col-1 s gr +% Polyline +n 4500 2850 m 4500 2325 l gs col-1 s gr +n 4470.00 2421.00 m 4500.00 2325.00 l 4530.00 2421.00 l 4500.50 2445.50 l 4470.00 2421.00 l clp gs 0.00 setgray ef gr gs col-1 s gr +% Polyline +n 3900 2250 m 3300 2850 l gs col-1 s gr +n 3389.10 2803.33 m 3300.00 2850.00 l 3346.67 2760.90 l 3385.35 2765.65 l 3389.10 2803.33 l clp gs 0.00 setgray ef gr gs col-1 s gr +% Polyline +n 4500 3750 m 4500 3150 l gs col-1 s gr +n 4470.00 3246.00 m 4500.00 3150.00 l 4530.00 3246.00 l 4500.50 3270.50 l 4470.00 3246.00 l clp gs 0.00 setgray ef gr gs col-1 s gr +% Polyline +n 4499 6450 m 4499 6450 l gs col-1 s gr +% Polyline +n 3900 6508 m 3899 5850 l 5099 5850 l 5098 6484 l gs col-1 s gr +% Polyline +n 5130 2160 m 5716 2708 l gs col-1 s gr +n 5666.37 2620.52 m 5716.00 2708.00 l 5625.39 2664.34 l 5628.85 2626.54 l 5666.37 2620.52 l clp gs 0.00 setgray ef gr gs col-1 s gr +% Polyline +n 5670 4005 m 5098 5888 l gs col-1 s gr +n 5154.61 5804.86 m 5098.00 5888.00 l 5097.20 5787.42 l 5133.38 5773.68 l 5154.61 5804.86 l clp gs 0.00 setgray ef gr gs col-1 s gr +% Polyline +n 5695 6076 m 5130 6255 l gs col-1 s gr +n 5230.58 6254.61 m 5130.00 6255.00 l 5212.46 6197.41 l 5244.90 6219.26 l 5230.58 6254.61 l clp gs 0.00 setgray ef gr gs col-1 s gr +% Polyline +n 5714 3360 m 5068 2304 l gs col-1 s gr +n 5092.51 2401.55 m 5068.00 2304.00 l 5143.69 2370.24 l 5131.12 2406.87 l 5092.51 2401.55 l clp gs 0.00 setgray ef gr gs col-1 s gr +% Polyline +n 5684 3937 m 5195 3934 l gs col-1 s gr +n 5290.81 3964.59 m 5195.00 3934.00 l 5291.18 3904.59 l 5315.50 3935.24 l 5290.81 3964.59 l clp gs 0.00 setgray ef gr gs col-1 s gr +% Polyline +n 5739 3455 m 5188 3778 l gs col-1 s gr +n 5285.99 3755.33 m 5188.00 3778.00 l 5255.65 3703.57 l 5292.02 3717.81 l 5285.99 3755.33 l clp gs 0.00 setgray ef gr gs col-1 s gr +% Polyline +n 5716 2761 m 5131 3682 l gs col-1 s gr +n 5207.80 3617.05 m 5131.00 3682.00 l 5157.15 3584.88 l 5195.84 3581.21 l 5207.80 3617.05 l clp gs 0.00 setgray ef gr gs col-1 s gr +% Interp Spline +n 5095 6486 m + 4937.53 6604.86 4860.03 6644.61 4785 6645 curveto + 4592.38 6645.99 4380.39 6340.75 4185 6345 curveto + 4113.03 6346.56 4041.03 6386.56 3897 6505 curveto + gs col-1 s gr + +/Palatino-Roman findfont 210.00 scalefont setfont +4086 6075 m +gs 1 -1 sc (Physical) col-1 show gr +/Palatino-Roman findfont 210.00 scalefont setfont +4275 6345 m +gs 1 -1 sc (view) col-1 show gr +$F2psEnd +restore +%%EndDocument + + endTexFig + 624 1875 a Fg(Figur)o(e)13 b(1:)k(How)d(the)f(tools)i(ar)o(e)e(linked) +h(on)g(the)f(data)g(structur)o(es.)120 2056 y(One)21 +b(of)h(the)f(most)h(important)g(characteristics)e(of)i(the)g +Ff(Alliance)f Fg(system)h(is)g(that)f(it)h(pr)o(ovides)g(a)f(common)120 +2123 y(internal)14 b(data)f(structur)o(e)g(to)h(r)o(epr)o(esent)f(the)h +(thr)o(ee)f(basic)g(views)i(of)f(a)g(chip:)203 2278 y +Fc(\017)27 b Fg(the)14 b(behavioral)f(view)-5 b(,)203 +2388 y Fc(\017)27 b Fg(the)14 b(structural)g(view)-5 +b(,)203 2499 y Fc(\017)27 b Fg(the)14 b(physical)g(view)-5 +b(.)120 2654 y(Figur)o(e)16 b(1)g(details)h(how)g(all)g(the)f +Ff(Alliance)h Fg(tools)h(ar)o(e)e(linked)g(together)g(ar)o(ound)h(the)f +(basic)g(behavioral,)h(struc-)120 2720 y(tural)d(and)f(physical)h(data) +f(structur)o(es.)120 2831 y(The)k(pr)o(ocess)h(independence)e(goal)h +(is)i(achieved)d(with)i(a)f(thin)i(\002xed-grid)e(symbolic)g(layout)h +(appr)o(oach.)28 b(All)120 2897 y(the)16 b(library)e(of)j(the)e(system) +h(use)g(this)h(appr)o(oach)e(successfully)-6 b(.)24 b(Layouts)16 +b(have)f(been)g(tar)o(getted)f(to)i(ES2)f(2)p Fb(\026)p +Fg(m,)120 2964 y(1.5)p Fb(\026)p Fg(m,)c(1.2)p Fb(\026)p +Fg(m,)g(1.0)p Fb(\026)p Fg(m)f(and)g(0.7)p Fb(\026)p +Fg(m)h(technologies,)g(the)g(AMS)g(1.2)p Fb(\026)p Fg(m)g(technology)f +(and)h(SGS-Thomson)i(0.5)p Fb(\026)p Fg(m)120 3030 y(technology)-6 +b(.)21 b(Chips)16 b(have)f(been)f(fabricated)f(successfully)k(thr)o +(ough)f(the)f Ff(CMP)g Fg(services)g(on)h(these)e(technolo-)120 +3097 y(gies.)120 3303 y Fd(3.1)66 b(T)-7 b(ools)203 3430 +y Fc(\017)27 b Fe(asimut)d Fg(is)e(a)g Ff(VHDL)g Fg(logic)g(simulator)l +(.)41 b(The)22 b(supported)h Ff(VHDL)f Fg(subset)g(allows)h(both)f +(structural)258 3497 y(and)d(behavioral)g(data-\003ow)f(description)i +(\(without)g(timing)g(information\).)34 b(Complex)19 +b(systems)g(and)258 3563 y(micr)o(opr)o(ocessors,)g(including)e +Ff(INTEL)g Fg(8086)f(and)h Ff(MIPS)g Fg(R3000)f(have)g(been)h +(successfully)h(simulated)258 3630 y(with)13 b Fe(asimut)p +Fg(.)18 b Fe(Asimut)c Fg(is)f(based)f(on)h(an)g(event-driven)f +(algorithm)g(and)h(powerful)g(r)o(epr)o(esentation)f(of)258 +3696 y(boolean)i(functions)h(using)g(binary)e(decision)h(diagrams.)1306 +3971 y(5)p eop +%%Page: 6 6 +6 5 bop 203 260 a Fc(\017)27 b Fe(genpat)17 b Fg(is)f(a)f(language)g +(interpr)o(eter)f(dedicated)f(to)j(ef)o(\002cient)f(descriptions)h(of)g +(simulation)h(stimuli.)22 b(It)258 327 y(generates)17 +b(an)g Ff(ASCII)g Fg(\002le)h(that)f(can)g(act)g(as)h(an)g(input)g(of)h +Fe(asimut)p Fg(.)30 b(A)17 b Fe(genpat)i Fg(\002le)f(format)g(to)g +Ff(MSA)258 393 y Fg(translator)g(allows)h(the)e(generation)g(of)h(appr) +o(opriate)f(simulation)i(patterns)f(for)g(the)g(T)-5 +b(ektr)o(onix)16 b(L)-5 b(V500)258 459 y(tester)l(.)16 +b(This)e(allows)f(to)g(perform)g(functional)h(tests)f(when)g(the)f(cir) +o(cuits)h(comes)g(back)e(fr)o(om)i(the)g(foundry)-6 b(.)203 +561 y Fc(\017)27 b Fe(bop)19 b Fg(is)g(a)f(logic)g(optimizer)g(and)g +(logic)g(synthesis)i(tool.)31 b(The)18 b(input)h(\002le)f(is)h(a)f +(behavioral)g(description)258 628 y(of)j(the)g(cir)o(cuit)f(using)h +(the)f(same)g Ff(VHDL)h Fg(subset)g(as)f(the)h(logic)f(simulator)l(.)37 +b(The)20 b(boolean)g(equations)258 694 y(described)g(in)i +Ff(VHDL)f Fg(ar)o(e)f(optimized)h(so)h(to)g(minimize)e(the)h(number)g +(of)h(boolean)f(operators.)39 b(The)258 761 y(output)16 +b(is)e(a)f(new)-5 b(,)14 b(optimized,)f(data)g(\003ow)h(description.) +203 863 y Fc(\017)27 b Fe(scmap)17 b Fg(is)g(a)f(logic)f(synthesis)j +(tool.)23 b(The)16 b(output)h(is)g(a)f(netlist)g(of)h(gates.)22 +b Fe(scmap)17 b Fg(can)f(map)g(a)f(data-\003ow)258 929 +y(description)d(on)h(any)e(standar)o(d-cell)g(library)-6 +b(,)11 b(as)h(long)h(as)f(a)f Ff(VHDL)h Fg(data-\003ow)g(description)g +(is)g(pr)o(ovided)258 996 y(with)j(each)e(cell.)203 1098 +y Fc(\017)27 b Fe(c4map)16 b Fg(is)g(a)e(logic)h(synthesis)h(tool.)21 +b(It)15 b(has)g(the)g(same)f(functionnality)i(than)f +Fe(scmap)p Fg(,)h(but)f(runs)h(without)258 1164 y(a)e(pr)o(ede\002ned)f +(standar)o(d-cell)g(library)-6 b(,)12 b(thanks)j(to)f(an)f(internal)h +(cell)f(compiler)l(.)203 1266 y Fc(\017)27 b Fe(syf)16 +b Fg(is)g(a)f(\002nite)h(state)f(machine)f(synthesizer)l(.)22 +b(Mor)o(e)15 b(pr)o(ecisely)-6 b(,)14 b Fe(syf)i Fg(assigns)h(values)f +(to)f(the)g(symbolic)258 1333 y(states)e(used)f(for)g(the)g(automaton)h +(description,)f(and)g(aims)g(at)g(minimizing)g(the)g(r)o(esulting)g +(logic)g(for)h(both)258 1399 y(state)19 b(transistion)i(and)e(output)h +(generation.)33 b(The)19 b(input)h(is)g(a)f Fe(fsm)g +Fg(description,)i(using)f(a)f(dedicated)258 1465 y(subset)d(of)g +Ff(VHDL)f Fg(that)g(includes)g(pr)o(ocess)h(description.)21 +b(The)15 b(output)h(is)g(a)f(behavioral)f(description)h(of)258 +1532 y(the)j(cir)o(cuit)g(using)i(the)e(same)g Ff(VHDL)g +Fg(subset)h(as)f(the)h(logic)f(simulator)l(.)31 b(The)18 +b(output)h(of)g Fe(syf)g Fg(is)g(to)g(be)258 1598 y(synthesized)14 +b(into)g(a)g(netlsit)g(of)h(gates)e(using)i Fe(scmap)p +Fg(.)203 1700 y Fc(\017)27 b Fe(glop)13 b Fg(is)f(a)f(gate)g(level)g +(netlist)h(optimizer)l(.)k(If)c(the)f(output)i(of)g(the)e(logic)h +(synthesis)h(takes)e(into)h(account)f(the)258 1767 y(internal)i(delays) +g(of)g(the)g(cells)g(during)h(the)e(mapping)i(phase,)f(it)g(doesn't)h +(take)e(into)i(account)f(the)g(fan-out)258 1833 y(pr)o(oblems.)20 +b Fe(Netoptim)d Fg(work)e(is)g(to)h(ensur)o(e)e(that)h(the)g(drive)g +(capabilities)f(of)h(all)g(cells)g(ar)o(e)f(corr)o(ect,)f(and)258 +1900 y(to)h(try)g(to)g(minimize)f(the)h(delays)f(on)h(the)g(critical)f +(pathes)h(in)g(inserting)g(buf)o(fers)h(wher)o(e)e(appr)o(opriate.)203 +2002 y Fc(\017)27 b Fe(genlib)19 b Fg(is)f(a)g(pr)o(ocedural)e +(language)h(for)h(netlist)g(captur)o(e)f(and)g(placement)g(description) +g(\(ther)o(e)g(is)i(no)258 2068 y(schematic)d(editor)g(in)h(the)f +Ff(Alliance)h Fg(system\).)25 b Fe(Genlib)18 b Fg(pr)o(ovides)f(a)f +(consistent)h(set)g(of)g Ff(C)g Fg(primitives,)258 2135 +y(giving)e(the)f(designers)g(the)g(ability)f(to)i(describe)d +Ff(VLSI)i Fg(cir)o(cuit)g(netlists)h(in)f(terms)g(of)h(terminals,)f +(signals)258 2201 y(and)22 b(instances,)i(or)d(cir)o(cuit)h(topologies) +g(in)h(terms)e(of)h(placement)f(of)h(abutment)f(boxes.)40 +b Fe(Genlib)23 b Fg(is)258 2267 y(mainly)14 b(used)g(to)g(build)g +(parameterized)d(netlist)j(and)g(layout)g(generators.)203 +2369 y Fc(\017)27 b Fe(genview)17 b Fg(is)f(a)g(debugging)e(tool)i(for) +g(the)f(development)g(of)h(the)g(layout)f(view)h(of)g(parameterized)d +(gen-)258 2436 y(erators.)36 b(It)20 b(is)h(a)f(graphical)g(envir)o +(onment)g(that)g(integrates)g(a)g Fe(genlib)h Fg(interpr)o(eter)l(,)g +(a)e(step)i(by)f(step)258 2502 y(debugger)l(,)e(and)h(a)f(window)h(in)g +(the)g(which)f(the)h(cir)o(cuit)f(under)h(construction)g(is)g +(visualized.)31 b(All)19 b(the)258 2569 y(parameterized)13 +b(generators)h(of)i Ff(Alliance)f Fg(have)f(been)g(developed)g(using)i +(this)g(tool.)21 b(Part)15 b(of)h(the)f Fj(ROM)258 2635 +y Fg(generator)c Fe(grog)j Fg(under)e(construction)g(is)h(shown)h +(\002gur)o(e)e Ff(??)o Fg(.)17 b Fe(Genview)d Fg(uses)f(the)f(GNU)h +Fe(gcc)f Fg(compiler)258 2702 y(parameterized)g(for)i(a)f(virtual)i(ar) +o(chitectur)o(e)d(as)i(basis)g(to)g(its)h Fe(genlib)g +Fg(interpr)o(eter)l(.)203 2804 y Fc(\017)27 b Fe(fpgen)19 +b Fg(is)g(a)f(language)f(that)h(has)g(mor)o(eorless)g(the)g(same)f +(functionalities)i(as)g Fe(genlib)p Fg(,)h(but)e(it)g(is)g(ded-)258 +2870 y(icated)g(to)g(datapath)g(description.)31 b(Its)18 +b(primary)g(dif)o(fer)o(ence)g(with)h Fe(genlib)g Fg(is)g(that)g(it)f +(allows)h(to)g(ma-)258 2936 y(nipulate)f(vectors)f(of)g(cells,)h(like)e +(32)h(two)g(inputs)i Fe(nand)f Fg(gates)e(or)h(a)g(32)g(bits)g(adder)l +(.)25 b(It)17 b(contains)g(many)258 3003 y(primitives)e(that)f(gr)o +(eatly)e(simplify)j(the)f(description)g(of)g(operative)g(parts,)g(in)g +(an)f(optimized)h(manner)l(.)203 3105 y Fc(\017)27 b +Fe(scr)15 b Fg(is)g(a)f(place)f(and)h(r)o(oute)g(tool)h(for)g(standar)o +(d-cells.)i(The)d(placement)f(system)h(is)h(based)e(on)i(simulated)258 +3171 y(annealing.)i(The)12 b(channel)h(r)o(outer)f(is)i(an)f +(adaptation)f(of)i(the)f(gr)o(eedy)e(r)o(outer)i(of)g(Rivest-Fidducia.) +k(Feed-)258 3238 y(thr)o(oughs)h(and)f(power)f(r)o(outing)i(wir)o(es)f +(ar)o(e)e(automatically)h(inserted)h(wher)o(e)f(needed.)24 +b(The)16 b(input)i(is)f(a)258 3304 y(netlist)i(of)f(gates.)29 +b(The)18 b(output)h(is)f(either)f(an)h(hierar)o(chical)f(\(channels)h +(ar)o(e)f(instanciated\))h(or)g(\003attened)258 3371 +y(\(channels)f(ar)o(e)f(inserted\))h(chip)g(cor)o(e)e(layout)i(without) +h(external)d(pads.)26 b(A)17 b(specialized)e(r)o(outer)i(is)g(used)258 +3437 y(for)e(cor)o(e)e(to)h(pad)f(r)o(outing.)203 3539 +y Fc(\017)27 b Fe(Dpr)12 b Fg(is)g(a)e(place)h(and)f(r)o(oute)h(tool)h +(for)g(bit)e(slice)h(oriented)g(datapath.)k(It)c(privilegies)g(the)g +(dir)o(ect)f(connexions)258 3606 y(between)18 b(cells,)i(and)f(allows)h +(to)f(used)h(optimized)f(blocks,)h(like)e(a)h(fast)h(multiplier)g(or)f +(a)g(r)o(egister)f(\002le,)258 3672 y(within)c(the)f(datapath.)j(Most)f +(parameterized)10 b(generators)i(available)g(in)i Ff(Alliance)f +Fg(follow)h(the)f(bit-slice)258 3738 y(structur)o(e)i(of)g(this)h +(datapath)e(compiler)l(.)19 b(This)d(tool)f(allows)h(to)f(mix)f(some)h +(glue)g(logic)f(dir)o(ectly)g(within)h(a)258 3805 y(datapath.)i(This)d +(functionnality)h(doesn't)g(exist)e(in)h(commer)o(cial)f(tools.)1306 +3971 y(6)p eop +%%Page: 7 7 +7 6 bop 203 260 a Fc(\017)27 b Fe(bbr)22 b Fg(is)f(a)g(gridless)g +(channel)f(r)o(outer)h(that)g(allows)h(to)f(r)o(oute)g(together)f(two)h +(blocks)g(having)g(dif)o(fer)o(ent)258 327 y(topologies.)d(For)13 +b(example)f(the)i(contr)o(ol)f(part)g(of)i(a)e(micr)o(opr)o(ocessor)g +(r)o(ealized)f(in)i(standar)o(d)f(cell,)f(and)h(its)258 +393 y(operative)h(part)f(done)h(as)g(a)f(datapath.)k +Fe(Bbr)d Fg(is)h(pr)o(etty)e(tricky)-6 b(,)13 b(and)g(should)i(be)e +(used)h(with)h(car)o(e.)203 500 y Fc(\017)27 b Fe(Ring)18 +b Fg(is)g(a)f(speci\002c)g(r)o(outer)g(dedicated)e(to)i(the)g(\002nal)g +(r)o(outing)h(of)g(chip)f(cor)o(e)f(and)h(input/output)i(pads.)258 +567 y Fe(Ring)j Fg(takes)e(into)h(account)f(the)g(various)h(pr)o +(oblems)g(of)g(pad)f(placement)f(optimization,)k(power)d(and)258 +633 y(gr)o(ound)14 b(distribution.)k(A)c(set)g(of)h(symbolic)e(pads)h +(is)h(included)e(in)h(the)g(package.)203 740 y Fc(\017)27 +b Fe(S2r)15 b Fg(is)f(the)g(ultimate)g(tool)g(used)g(in)h(our)f(design) +g(\003ow)g(to)g(perform)g(pr)o(ocess)g(mapping.)j Fe(S2r)e +Fg(stands)f(for)258 807 y("symbolic)k(to)g(r)o(eal",)g(and)g +(translates)g(the)g(hierar)o(chical)f(symbolic)g(layout)i(description)f +(into)h(physical)258 873 y(layout)f(r)o(equir)o(ed)e(by)g(a)h(given)g +(silicon)h(supplier)l(.)27 b(The)17 b(translation)h(pr)o(ocess)f +(involves)i(complex)d(oper)o(-)258 939 y(ations)i(such)f(as)g +(denotching,)g(oversizing,)h(gap-\002lling)f(and)g(layer)f(adaptation.) +25 b(Output)18 b(formats)f(ar)o(e)258 1006 y(either)h +Ff(CIF)g Fg(or)h Ff(GDSII)p Fg(.)e Fe(S2r)i Fg(r)o(equir)o(es)g(a)f +(parameter)f(\002le)h(for)h(each)f(technology)g(aimed)g(at.)31 +b(This)19 b(\002le)258 1072 y(is)d(shar)o(ed)f(with)h +Fe(druc)p Fg(,)g Fe(lynx)p Fg(,)g Fe(graal)p Fg(,)h Fe(dreal)f +Fg(and)f Fe(genview)p Fg(.)23 b(Fr)o(om)15 b(an)g(implementation)g +(point)h(of)258 1139 y(view)-5 b(,)14 b(these)g(tools)g(use)h(a)e +(bin-based)g(data-structur)o(e)h(that)f(has)i(very)e(good)h +(performances.)203 1246 y Fc(\017)27 b Fe(druc)20 b Fg(is)g(a)e(design) +h(rule)g(checker)l(.)30 b(The)19 b(input)h(\002le)f(is)g(a)g(-)g +(possibly)h(hierar)o(chical)e(-)h(symbolic)g(layout.)258 +1312 y(It)i(checks)f(that)h(a)g(layout)h(is)f(corr)o(ect)f(r)o(egar)o +(ding)g(the)h(set)g(of)h(symbolic)e(design)h(rules.)39 +b(This)22 b(corr)o(ect-)258 1379 y(ness)15 b(must)h(be)d(ensur)o(ed)h +(in)h(or)o(der)e(for)i Fe(s2r)g Fg(to)g(pr)o(oduce)f(a)g(layout)h +(compatible)e(with)i(the)f(tar)o(get)f(silicon)258 1445 +y(foundry)-6 b(.)203 1552 y Fc(\017)27 b Fe(Lynx)18 b +Fg(is)f(a)f(layout)h(extractor)l(.)23 b(The)16 b(input)h(is)g(a)g(-)g +(possibly)g(hierar)o(chical)e(-)i(layout.)25 b(The)16 +b(layout)h(can)f(be)258 1619 y(either)j(symbolic)f(or)h(r)o(eal.)32 +b(The)19 b(output)h(is)f(an)g(extracted)e(netlist)i(with)h(parasitic)f +(capacitances.)30 b(The)258 1685 y(r)o(esulting)15 b(netlist)f(can)f +(either)g(be)g(hierar)o(chical)g(or)h(\003attened)e(\(transistor)j +(netlist\).)203 1792 y Fc(\017)27 b Fe(Lvx)20 b Fg(is)f(a)g(logical)f +(versus)i(extracted)c(net-compar)o(e)i(tool.)32 b(The)19 +b(r)o(esult)g(of)g(a)g(run)f(indicates)h(if)g(the)g(two)258 +1859 y(netlist)e(match)f(together)l(,)g(or)h(if)g(ther)o(e)e(ar)o(e)h +(dif)o(fer)o(ent.)24 b(Note)17 b(that)f Fe(lvx)h Fg(doesn't)g(work)g +(at)f(the)g(transistor)258 1925 y(level.)203 2033 y Fc(\017)27 +b Fe(yagle)15 b Fg(is)f(a)e(functional)j(asbtractor/disassembler)c(for) +j Ff(CMOS)f Fg(cir)o(cuits.)k(It)c(pr)o(ovides)h(a)f +Ff(VHDL)g Fg(Data-)258 2099 y(Flow)e(behavioral)f(description)h(fr)o +(om)g(the)g(transistor)g(netlist)g(of)h(a)e(cir)o(cuit,)h(by)f(\002rst) +i(extracting)d(a)h(pseudo-)258 2165 y(gate)19 b(netlist,)j(and)e +(second)g(translating)g(each)f(pseudo-gate)h(in)g(boolean)f(equations.) +36 b(The)20 b(input)h(\002le)258 2232 y(is)g(a)e(-)h(possibly)g +(extracted)e(-)i(\003attened)e(transistor)i(netlist.)35 +b(The)19 b(output)i(is)f(a)f(simulable)h(behavioral)258 +2298 y Ff(VHDL)h Fg(model)e(\(data-\003ow)h(without)i(timing)e +(informations\).)38 b Fe(Yagle)21 b Fg(can)e(be)g(distinguished)j(fr)o +(om)258 2365 y(commer)o(cial)e(CAD)h(abstractors)g(by)g(the)g(fact)g +(that)g(it)h(does)f(not)h(need)e(a)h(pr)o(ede\002ned)f(cell)h(library)f +(or)258 2431 y(transistor)h(patterns.)36 b(Furthermor)o(e,)20 +b(the)g(use)h(of)f(a)g(pur)o(ely)g(algorithmic)f(appr)o(oach)h(compar)o +(ed)f(to)h(a)258 2497 y(pattern)14 b(matching)f(one)h(implies)g(a)g +(huge)f(gain)h(in)g(performance.)203 2605 y Fc(\017)27 +b Fe(tas)18 b Fg(is)f(a)g(static)g(timing)g(analyzer)l(.)24 +b(It)17 b(takes)f(as)i(input)f(a)g(transistor)h(netlist)f(and)g(pr)o +(oduces)g(a)g(\002le)g(con-)258 2671 y(taining)d(all)g(the)g +(combinatorial)f(paths)h(of)h(the)e(cir)o(cuit,)h(the)f(critical)g +(path)h(being)f(outlined.)203 2778 y Fc(\017)27 b Fe(proof)16 +b Fg(performs)g(a)e(formal)h(comparison)g(between)f(two)h(data)f +(\003ow)h Ff(VHDL)g Fg(descriptions)g(that)g(shar)o(e)258 +2845 y(the)e(same)f(r)o(egister)g(set.)17 b Fe(Proof)c +Fg(supports)i(the)e(same)f(subset)h(of)g Ff(VHDL)g Fg(as)g +Fe(asimut)p Fg(,)h Fe(bop)p Fg(,)g Fe(scmap)f Fg(and)258 +2911 y Fe(yagle)p Fg(.)203 3018 y Fc(\017)27 b Fe(graal)18 +b Fg(is)f(an)g(hierar)o(chical)e(symbolic)h(layout)h(editor)l(.)25 +b(It)17 b(r)o(equir)o(es)f(a)g(X-W)m(indow)i(graphical)e(envir)o(on-) +258 3085 y(ment)g(and)f(the)h(Motif)h(libraries.)22 b +Fe(Graal)17 b Fg(is)f(used)g(for)h(cell)e(layout)h(design)f(or)h +(hierar)o(chical)e(block)i(con-)258 3151 y(struction.)21 +b(It)15 b(pr)o(ovides)g(an)g(on-line)g Ff(DRC)g Fg(and)g(automatic)f +(display)i(of)f(equipotential)g(nets.)21 b(Editing)14 +b(a)258 3218 y(cell)g(under)f Fe(graal)i Fg(is)f(shown)i(\002gur)o(e)d +Ff(??)p Fg(.)203 3325 y Fc(\017)27 b Fe(L2p)15 b Fg(cr)o(eates)d(a)i +(Postscript)h(\002le)f(fr)o(om)g(a)g(layout,)g(symbolic)f(or)h(r)o +(eal.)120 3526 y Fd(3.2)66 b(Cell)17 b(libraries)120 +3672 y Fg(The)d Ff(Alliance)h Fg(package)d(pr)o(ovide)j(a)f(wide)g +(range)f(of)j(libraries,)d(either)h(static,)g(ie.)19 +b(\002xed)14 b(cells,)g(or)g(dynamic,)g(as)120 3738 y(the)i(block)g(is) +h(pr)o(oduced)f(by)g(running)h(a)f(parameterized)e(generator)l(.)23 +b(These)17 b(libraries)e(ar)o(e)h(compatible)f(with)120 +3805 y(any)e(two)i(metals/one)e(polysilicon)i(technology)-6 +b(.)1306 3971 y(7)p eop +%%Page: 8 8 +8 7 bop 120 260 a Fg(Each)13 b(object)g(in)h(the)g(library)e(has,)i +(for)h(static)f(ones,)g(or)g(pr)o(oduces,)f(for)i(dynamics)e(ones,)h +(thr)o(ee)f(views)h(at)g(least)g(:)203 415 y Fc(\017)27 +b Fg(the)14 b(symbolic)g(layout,)f(that)h(describes)f(the)h(cell)f +(topology)-6 b(.)203 526 y Fc(\017)27 b Fg(the)14 b(netlist,)g(in)g +(terms)g(of)g(transistor)h(inter)o(connections.)203 637 +y Fc(\017)27 b Fg(the)14 b(behavior)l(,)f(speci\002ed)h(in)g +Ff(VHDL)g Fg(data)f(\003ow)h(form.)120 791 y(Ar)o(ea)f(loss)j(due)e(to) +h(the)f(symbolic)g(layout)g(compar)o(ed)f(to)i(micr)o(on)f(design)g +(has)h(been)e(estimated)h(ranging)g(fr)o(om)120 858 y(10\045)g(to)g +(20\045.)j(In)c(any)h(case,)f(loosing)i(ar)o(ea)d(is)j(af)o(for)o +(dable,)e(wher)o(e)g(loosing)i(years)e(is)h(not.)120 +1053 y Ff(3.2.1)54 b(Standard)12 b(cell)i(library)120 +1203 y Fg(The)d Fe(sclib)i Fg(library)d(contains)i(boolean)f +(functions,)j(buf)o(fers,)e(mux,)g(latches,)f(\003ip-\003ops,)i +Fb(:)c(:)g(:)k Fg(\(ar)o(ound)f(70)f(cells\).)120 1269 +y(All)18 b(the)g(cells)f(have)h(the)f(same)h(height,)g(shar)o(e)g(the)f +(power)h(and)f(gr)o(ound)h(lines)h(on)f(east)f(and)h(west)g(side,)g +(and)120 1335 y(have)d(pitched)h(I/Os)f(in)h(metal2)e(on)j(north)f(and) +f(south)j(side.)k(They)15 b(ar)o(e)g(supposed)i(to)f(be)f(used)h(with)h +(a)e(usual)120 1402 y(standar)o(d)21 b(cells)h(place)e(and)i(r)o(oute)f +(tool,)k(such)d(as)g Ff(Alliance)p Fg('s)g Fe(scr)p Fg(,)i +Ff(Compass)d Fg(or)g Ff(Cadence)p Fg(.)39 b(These)21 +b(cells)120 1468 y(ar)o(e)16 b(to)h(be)f(used)h(primary)f(for)h(glue)g +(logic,)g(since)g(optimized)f(operators)h(can)f(be)g(obtained)g(using)i +(dedicated)120 1535 y(generators,)13 b(as)g(stated)g(paragraph)g +(3.2.2.)j(The)d Fe(logic)h Fg(tool)h(can)d(map)i(a)f(behaviral)g(VHDL)g +(onto)h(this)g(library)-6 b(.)120 1645 y(The)17 b(\002gur)o(e)g(3.2.1)f +(below)h(shows)i(the)e(dif)o(fer)o(ence)f(between)g Fe(sclib)i +Fg(and)f Fe(dplib)h Fg(r)o(egar)o(ding)e(the)h(shape)g(and)120 +1712 y(contents)d(of)h(a)e(cell.)495 2157 y + 7458719 15290373 11314462 10788208 27759902 44600033 startTexFig + 495 2157 +a +%%BeginDocument: ./na3y.ps + +7 dict dup +begin + /FontType 3 def + /FontMatrix [.03125 0 0 .03125 0 0] def + /FontBBox [0 0 32 32] def + /Encoding 256 array def + 0 1 255 { + Encoding exch /.notdef put + } for + Encoding + dup 6 /diagonal45 put + dup 2 /hach1 put + dup 3 /hach2 put + dup 12 /cross put + dup 11 /full put + dup 4 /hach3 put + dup 5 /point2 put + dup 7 /square put + dup 8 /triangle put + dup 9 /octogone put + dup 10 /diagonal45h put + dup 1 /point1 put + pop + /PatternDefs 15 dict def + PatternDefs + begin + /draw_pixel { + exec + moveto + 1 0 rlineto + 0 1 rlineto + -1 0 rlineto + 0 -1 rlineto + } def + /.notdef [] def + /diagonal45 [ + {0 0} {0 1} {1 0} {1 1} {1 2} {2 1} {2 2} {2 3} {3 2} + {3 3} {3 4} {4 3} {4 4} {4 5} {5 4} {5 5} {5 6} {6 5} + {6 6} {6 7} {7 6} {7 7} {7 8} {8 7} {8 8} {8 9} {9 8} + {9 9} {9 10} {10 9} {10 10} {10 11} {11 10} {11 11} {11 12} {12 11} + {12 12} {12 13} {13 12} {13 13} {13 14} {14 13} {14 14} {14 15} {15 14} + {15 15} {15 16} {16 15} {16 16} {16 17} {17 16} {17 17} {17 18} {18 17} + {18 18} {18 19} {19 18} {19 19} {19 20} {20 19} {20 20} {20 21} {21 20} + {21 21} {21 22} {22 21} {22 22} {22 23} {23 22} {23 23} {23 24} {24 23} + {24 24} {24 25} {25 24} {25 25} {25 26} {26 25} {26 26} {26 27} {27 26} + {27 27} {27 28} {28 27} {28 28} {28 29} {29 28} {29 29} {29 30} {30 29} + {30 30} {30 31} {31 30} {31 31} + ] def + /diagonal45h [ + {0 0} {2 2} {4 4} {6 6} {8 8} {10 10} {12 12} {14 14} {16 16} + {18 18} {20 20} {22 22} {24 24} {26 26} {28 28} {30 30} + ] def + /hach1 [ + {0 15} {0 31} {1 14} {1 30} {2 13} {2 29} {3 12} {3 28} {4 11} + {4 27} {5 10} {5 26} {6 9} {6 25} {7 8} {7 24} {8 7} {8 23} + {9 6} {9 22} {10 5} {10 21} {11 4} {11 20} {12 3} {12 19} {13 2} + {13 18} {14 1} {14 17} {15 0} {15 16} {16 15} {16 31} {17 14} {17 30} + {18 13} {18 29} {19 12} {19 28} {20 11} {20 27} {21 10} {21 26} {22 9} + {22 25} {23 8} {23 24} {24 7} {24 23} {25 6} {25 22} {26 5} {26 21} + {27 4} {27 20} {28 3} {28 19} {29 2} {29 18} {30 1} {30 17} {31 0} + {31 16} + ] def + /hach2 [ + {0 0} {0 15} {1 1} {1 16} {2 2} {2 17} {3 3} {3 18} {4 4} + {4 19} {5 5} {5 20} {6 6} {6 21} {7 7} {7 22} {8 8} {8 23} + {9 9} {9 24} {10 10} {10 25} {11 11} {11 26} {12 12} {12 27} {13 13} + {13 28} {14 14} {14 29} {15 0} {15 15} {15 30} {16 1} {16 16} {16 31} + {17 2} {17 17} {18 3} {18 18} {19 4} {19 19} {20 5} {20 20} {21 6} + {21 21} {22 7} {22 22} {23 8} {23 23} {24 9} {24 24} {25 10} {25 25} + {26 11} {26 26} {27 12} {27 27} {28 13} {28 28} {29 14} {29 29} {30 15} + {30 30} {31 16} {31 31} + ] def +% /cross [ +% {2 1} {18 1} {2 2} {18 2} {0 3} {1 3} {2 3} {3 3} {4 3} {16 3} {17 3} {18 3} {19 3} {20 3} +% {2 4} {2 5} {18 4} {18 5} {10 17} {26 17} {10 18} {26 18} {8 19} {9 19} {10 19} {11 19} +% {12 19} {24 19} {25 19} {26 19} {27 19} {28 19} {10 20} {26 20} {10 21} {26 21} +% ] def + /cross [ + {0 3} {0 7} {0 11} {0 15} {0 19} {0 23} {0 27} {0 31} {1 0} + {1 2} {1 4} {1 6} {1 8} {1 10} {1 12} {1 14} {1 16} {1 18} + {1 20} {1 22} {1 24} {1 26} {1 28} {1 30} {2 1} {2 5} {2 9} + {2 13} {2 17} {2 21} {2 25} {2 29} {3 0} {3 2} {3 4} {3 6} + {3 8} {3 10} {3 12} {3 14} {3 16} {3 18} {3 20} {3 22} {3 24} + {3 26} {3 28} {3 30} {4 1} {4 2} {4 3} {4 7} {4 9} {4 10} + {4 11} {4 15} {4 17} {4 18} {4 19} {4 23} {4 25} {4 26} {4 27} + {4 31} {5 0} {5 1} {5 2} {5 3} {5 4} {5 6} {5 8} {5 9} + {5 10} {5 11} {5 12} {5 14} {5 16} {5 17} {5 18} {5 19} {5 20} + {5 22} {5 24} {5 25} {5 26} {5 27} {5 28} {5 30} {6 1} {6 2} + {6 3} {6 5} {6 9} {6 10} {6 11} {6 13} {6 17} {6 18} {6 19} + {6 21} {6 25} {6 26} {6 27} {6 29} {7 0} {7 2} {7 4} {7 6} + {7 8} {7 10} {7 12} {7 14} {7 16} {7 18} {7 20} {7 22} {7 24} + {7 26} {7 28} {7 30} {8 3} {8 7} {8 11} {8 15} {8 19} {8 23} + {8 27} {8 31} {9 0} {9 2} {9 4} {9 6} {9 8} {9 10} {9 12} + {9 14} {9 16} {9 18} {9 20} {9 22} {9 24} {9 26} {9 28} {9 30} + {10 1} {10 5} {10 9} {10 13} {10 17} {10 21} {10 25} {10 29} {11 0} + {11 2} {11 4} {11 6} {11 8} {11 10} {11 12} {11 14} {11 16} {11 18} + {11 20} {11 22} {11 24} {11 26} {11 28} {11 30} {12 1} {12 2} {12 3} + {12 7} {12 9} {12 10} {12 11} {12 15} {12 17} {12 18} {12 19} {12 23} + {12 25} {12 26} {12 27} {12 31} {13 0} {13 1} {13 2} {13 3} {13 4} + {13 6} {13 8} {13 9} {13 10} {13 11} {13 12} {13 14} {13 16} {13 17} + {13 18} {13 19} {13 20} {13 22} {13 24} {13 25} {13 26} {13 27} {13 28} + {13 30} {14 1} {14 2} {14 3} {14 5} {14 9} {14 10} {14 11} {14 13} + {14 17} {14 18} {14 19} {14 21} {14 25} {14 26} {14 27} {14 29} {15 0} + {15 2} {15 4} {15 6} {15 8} {15 10} {15 12} {15 14} {15 16} {15 18} + {15 20} {15 22} {15 24} {15 26} {15 28} {15 30} {16 3} {16 7} {16 11} + {16 15} {16 19} {16 23} {16 27} {16 31} {17 0} {17 2} {17 4} {17 6} + {17 8} {17 10} {17 12} {17 14} {17 16} {17 18} {17 20} {17 22} {17 24} + {17 26} {17 28} {17 30} {18 1} {18 5} {18 9} {18 13} {18 17} {18 21} + {18 25} {18 29} {19 0} {19 2} {19 4} {19 6} {19 8} {19 10} {19 12} + {19 14} {19 16} {19 18} {19 20} {19 22} {19 24} {19 26} {19 28} {19 30} + {20 1} {20 2} {20 3} {20 7} {20 9} {20 10} {20 11} {20 15} {20 17} + {20 18} {20 19} {20 23} {20 25} {20 26} {20 27} {20 31} {21 0} {21 1} + {21 2} {21 3} {21 4} {21 6} {21 8} {21 9} {21 10} {21 11} {21 12} + {21 14} {21 16} {21 17} {21 18} {21 19} {21 20} {21 22} {21 24} {21 25} + {21 26} {21 27} {21 28} {21 30} {22 1} {22 2} {22 3} {22 5} {22 9} + {22 10} {22 11} {22 13} {22 17} {22 18} {22 19} {22 21} {22 25} {22 26} + {22 27} {22 29} {23 0} {23 2} {23 4} {23 6} {23 8} {23 10} {23 12} + {23 14} {23 16} {23 18} {23 20} {23 22} {23 24} {23 26} {23 28} {23 30} + {24 3} {24 7} {24 11} {24 15} {24 19} {24 23} {24 27} {24 31} {25 0} + {25 2} {25 4} {25 6} {25 8} {25 10} {25 12} {25 14} {25 16} {25 18} + {25 20} {25 22} {25 24} {25 26} {25 28} {25 30} {26 1} {26 5} {26 9} + {26 13} {26 17} {26 21} {26 25} {26 29} {27 0} {27 2} {27 4} {27 6} + {27 8} {27 10} {27 12} {27 14} {27 16} {27 18} {27 20} {27 22} {27 24} + {27 26} {27 28} {27 30} {28 1} {28 2} {28 3} {28 7} {28 9} {28 10} + {28 11} {28 15} {28 17} {28 18} {28 19} {28 23} {28 25} {28 26} {28 27} + {28 31} {29 0} {29 1} {29 2} {29 3} {29 4} {29 6} {29 8} {29 9} + {29 10} {29 11} {29 12} {29 14} {29 16} {29 17} {29 18} {29 19} {29 20} + {29 22} {29 24} {29 25} {29 26} {29 27} {29 28} {29 30} {30 1} {30 2} + {30 3} {30 5} {30 9} {30 10} {30 11} {30 13} {30 17} {30 18} {30 19} + {30 21} {30 25} {30 26} {30 27} {30 29} {31 0} {31 2} {31 4} {31 6} + {31 8} {31 10} {31 12} {31 14} {31 16} {31 18} {31 20} {31 22} {31 24} + {31 26} {31 28} {31 30} + ] def + /hach3 [ + {0 7} {0 23} {1 6} {1 8} {1 22} {1 24} {2 5} {2 9} {2 21} + {2 25} {3 4} {3 10} {3 20} {3 26} {4 3} {4 11} {4 19} {4 27} + {5 2} {5 12} {5 18} {5 28} {6 1} {6 13} {6 17} {6 29} {7 0} + {7 14} {7 16} {7 30} {8 1} {8 15} {8 31} {9 2} {9 14} {9 16} + {9 30} {10 3} {10 13} {10 17} {10 29} {11 4} {11 12} {11 18} {11 28} + {12 5} {12 11} {12 19} {12 27} {13 6} {13 10} {13 20} {13 26} {14 7} + {14 9} {14 21} {14 25} {15 8} {15 22} {15 24} {16 7} {16 9} {16 23} + {17 6} {17 10} {17 22} {17 24} {18 5} {18 11} {18 21} {18 25} {19 4} + {19 12} {19 20} {19 26} {20 3} {20 13} {20 19} {20 27} {21 2} {21 14} + {21 18} {21 28} {22 1} {22 15} {22 17} {22 29} {23 0} {23 16} {23 30} + {24 1} {24 15} {24 17} {24 31} {25 2} {25 14} {25 18} {25 30} {26 3} + {26 13} {26 19} {26 29} {27 4} {27 12} {27 20} {27 28} {28 5} {28 11} + {28 21} {28 27} {29 6} {29 10} {29 22} {29 26} {30 7} {30 9} {30 23} + {30 25} {31 8} {31 24} + ] def + /point2 [ + {0 6} {0 7} {0 8} {0 22} {0 23} {0 24} {1 7} {1 23} {7 15} + {7 31} {8 0} {8 14} {8 15} {8 16} {8 30} {8 31} {9 15} {9 31} + {15 7} {15 23} {16 6} {16 7} {16 8} {16 22} {16 23} {16 24} {17 7} + {17 23} {23 15} {23 31} {24 0} {24 14} {24 15} {24 16} {24 30} {24 31} + {25 15} {25 31} {31 7} {31 23} + ] def + /square [ + {7 8} {8 8} {9 8} {10 8} {11 8} {12 8} {13 8} {7 9} {7 10} {7 11} {7 12} {7 13} {7 14} + {13 9} {13 10} {13 14} {13 11} {13 12} {13 13} {8 14} {9 14} {10 14} {11 14} {12 14} + {23 24} {24 24} {25 24} {26 24} {27 24} {28 24} {29 24} {29 25} {29 26} {29 27} {29 28} + {29 29} {29 30} {28 30} {27 30} {26 30} {25 30} {24 30} {23 30} {23 29} {23 28} + {23 27} {23 26} {23 25} + ] def + /triangle [ + {21 9} {22 9} {23 9} {24 9} {25 9} {26 9} {27 9} {28 9} {29 9} {30 9} {31 9} + {22 10} {23 11} {24 12} {25 13} {26 14} {27 13} {28 12} {29 11} {30 10} + ] def + /octogone [ + {9 24} {10 24} {11 24} {12 25} {13 26} {13 27} {13 28} {12 29} {11 30} {10 30} {9 30} + {8 29} {7 28} {7 27} {7 26} {8 25} + ] def + /point1 [ + {0 7} {0 23} {8 15} {8 31} {16 7} {16 23} {24 15} {24 31} + ] def + /x [ + {23 8}{29 8}{24 9}{28 9}{25 10}{27 10}{26 11}{27 12}{25 12}{28 13} + {24 13}{29 14}{23 14}{7 24}{13 24}{8 25}{12 25}{9 26}{11 26}{10 27} + {11 28}{9 28}{12 29}{8 29}{13 30}{7 30} + ] def + /full [ + {0 1} {0 7} {0 13} {0 19} {0 25} {0 29} {1 0} {1 6} {1 12} + {1 18} {1 24} {1 28} {2 5} {2 11} {2 17} {2 23} {2 27} {2 31} + {3 4} {3 10} {3 16} {3 22} {3 26} {3 30} {4 3} {4 9} {4 15} + {4 21} {4 25} {4 29} {5 2} {5 8} {5 14} {5 20} {5 24} {5 28} + {6 1} {6 7} {6 13} {6 19} {6 23} {6 27} {6 31} {7 0} {7 6} + {7 12} {7 18} {7 22} {7 26} {7 30} {8 5} {8 11} {8 17} {8 21} + {8 25} {8 29} {9 4} {9 10} {9 16} {9 20} {9 24} {9 28} {10 3} + {10 9} {10 15} {10 19} {10 23} {10 27} {11 2} {11 8} {11 14} {11 18} + {11 22} {11 26} {12 1} {12 7} {12 13} {12 17} {12 21} {12 25} {12 31} + {13 0} {13 6} {13 12} {13 16} {13 20} {13 24} {13 30} {14 5} {14 11} + {14 15} {14 19} {14 23} {14 29} {15 4} {15 10} {15 14} {15 18} {15 22} + {15 28} {16 3} {16 9} {16 13} {16 17} {16 21} {16 27} {17 2} {17 8} + {17 12} {17 16} {17 20} {17 26} {18 1} {18 7} {18 11} {18 15} {18 19} + {18 25} {18 31} {19 0} {19 6} {19 10} {19 14} {19 18} {19 24} {19 30} + {20 5} {20 9} {20 13} {20 17} {20 23} {20 29} {21 4} {21 8} {21 12} + {21 16} {21 22} {21 28} {22 3} {22 7} {22 11} {22 15} {22 21} {22 27} + {23 2} {23 6} {23 10} {23 14} {23 20} {23 26} {24 1} {24 5} {24 9} + {24 13} {24 19} {24 25} {24 31} {25 0} {25 4} {25 8} {25 12} {25 18} + {25 24} {25 30} {26 3} {26 7} {26 11} {26 17} {26 23} {26 29} {27 2} + {27 6} {27 10} {27 16} {27 22} {27 28} {28 1} {28 5} {28 9} {28 15} + {28 21} {28 27} {29 0} {29 4} {29 8} {29 14} {29 20} {29 26} {30 3} + {30 7} {30 13} {30 19} {30 25} {30 31} {31 2} {31 6} {31 12} {31 18} + {31 24} {31 30} + ] def + end + /BuildChar { + 3 dict + begin + /PatternCode exch def + /PatternDict exch def + /PatternName PatternDict /Encoding get PatternCode get def + PatternDict + begin + 32 0 0 0 32 32 setcachedevice + PatternDefs + begin + PatternDefs PatternName get + gsave + newpath + {draw_pixel} forall + fill + grestore + end + end + end + } bind def +end +/PatternFont exch definefont pop + +/bdef {bind def} bind def +/arg {exch def} bdef +/patternfill { + gsave + 6 dict + begin + /PatternCode arg + pathbbox + /Ytr arg + /Xtr arg + /Ybl arg + /Xbl arg + clip + /StringForFilling 32 string def + 0 1 31 { + StringForFilling exch PatternCode put + } for + /PatternFont findfont PatternFontScale scalefont setfont + (\1) stringwidth pop + dup Xbl exch div floor /Xbl arg + dup Ybl exch div floor /Ybl arg + dup Xtr exch div ceiling /Xtr arg + dup Ytr exch div ceiling /Ytr arg + dup dup Xbl mul exch Ybl mul moveto + Xtr Xbl sub 32 div ceiling cvi + Ytr Ybl sub cvi { + gsave + dup { + StringForFilling show + } repeat + grestore + exch + dup 0 exch rmoveto + exch + } repeat + pop pop + end + grestore +} bdef +/draw_rectangle { + exec + 4 dict + begin + /Y1 arg + /X1 arg + /Y0 arg + dup /X0 arg + Y0 moveto + X1 dup + Y0 lineto + Y1 lineto + X0 dup + Y1 lineto + Y0 lineto + end +} bdef +/draw_rectangles { + newpath + {draw_rectangle} forall + patternfill + stroke +} bdef +/draw_path { + exec + moveto + {exec lineto} forall +} bdef +/draw_paths { + newpath + {draw_path} forall + patternfill + stroke +} bdef +/draw_square { + moveto + dup + dup + 0 rlineto + 0 exch rlineto + neg + dup + 0 rlineto + 0 exch rlineto +} bdef +/strokeAB { + gsave + .5 setlinewidth + newpath + draw_rectangle + [3] 0 setdash + stroke + grestore +} bdef +/showstring { + gsave + rotate + dup stringwidth pop 2 div neg 0 rmoveto + false charpath + gsave + 1 setgray + 2 setlinewidth + 1 setlinejoin + 1 setlinecap + stroke + grestore + fill + grestore +} bdef +/splitted_pages { + /SplitRows exch def + /SplitColumns exch def + /circuit exch def + newpath + LeftMargin BottomMargin moveto + 0 PageHeight rlineto + PageWidth 0 rlineto + 0 PageHeight neg rlineto + closepath + clip + newpath + 0 1 SplitRows 1 sub { + /SplitRowNb exch def + 0 1 SplitColumns 1 sub { + /SplitColumnNb exch def + gsave + PageWidth SplitColumnNb mul neg + PageHeight SplitRowNb mul neg + translate + circuit + gsave + showpage + grestore + grestore + } for + } for +} def + +0.10 setlinewidth +2 setlinecap +0 setlinejoin + +1.000000 dup scale +127.500000 158.500000 translate + +50 30 290 450 strokeAB +/PatternFontScale 15 def + gsave +1 [ +{ 50 260 290 520 } +] draw_rectangles +2 [ +{ 125 435 155 465 } { 185 435 215 465 } { 245 435 275 465 } { 65 435 95 465 } { 75 440 265 460 } +] draw_rectangles +3 [ +{ 125 5 155 35 } { 185 5 215 35 } { 245 5 275 35 } { 65 5 95 35 } { 75 10 265 30 } +] draw_rectangles +2 [ +{ 65 125 95 155 } { 65 65 95 95 } { 245 125 275 155 } { 65 65 95 185 } { 125 65 155 185 } { 245 65 275 185 } { 185 65 215 185 } { 205 65 255 185 } { 145 65 195 185 } { 85 65 135 185 } +] draw_rectangles +3 [ +{ 65 375 95 405 } { 65 315 95 345 } { 125 265 155 295 } { 125 325 155 355 } { 185 375 215 405 } { 185 315 215 345 } { 245 325 275 355 } { 245 265 275 295 } { 65 265 95 395 } { 185 265 215 395 } +] draw_rectangles +3 [ +{ 125 265 155 385 } { 245 265 275 385 } { 205 265 255 385 } { 145 265 195 385 } { 85 265 135 385 } +] draw_rectangles +12 [ +{ 135 445 145 455 } { 195 445 205 455 } { 135 15 145 25 } { 195 15 205 25 } { 75 135 85 145 } { 75 75 85 85 } { 255 135 265 145 } { 75 385 85 395 } { 75 325 85 335 } { 135 275 145 285 } +] draw_rectangles +12 [ +{ 135 335 145 345 } { 195 385 205 395 } { 195 325 205 335 } { 255 335 265 345 } { 75 215 85 225 } { 145 215 155 225 } { 205 215 215 225 } { 135 165 145 175 } { 195 165 205 175 } { 255 215 265 225 } +] draw_rectangles +12 [ +{ 75 275 85 285 } { 255 445 265 455 } { 75 445 85 455 } { 255 15 265 25 } { 75 15 85 25 } { 255 275 265 285 } +] draw_rectangles +4 [ +{ 65 205 95 235 } { 135 205 165 235 } { 195 205 225 235 } { 205 210 235 230 } { 225 195 235 255 } { 145 210 175 230 } { 165 195 175 255 } { 75 205 115 235 } { 105 195 115 255 } { 225 50 235 200 } +] draw_rectangles +4 [ +{ 165 50 175 200 } { 105 50 115 200 } { 225 250 235 400 } { 165 250 175 400 } { 105 250 115 400 } +] draw_rectangles +5 [ +{ 285 10 295 90 } { 45 10 55 90 } { 285 390 295 470 } { 45 390 55 470 } { 130 440 150 460 } { 190 440 210 460 } { 130 10 150 30 } { 190 10 210 30 } { 70 130 90 150 } { 70 70 90 90 } +] draw_rectangles +5 [ +{ 250 130 270 150 } { 70 380 90 400 } { 70 320 90 340 } { 130 270 150 290 } { 130 330 150 350 } { 190 380 210 400 } { 190 320 210 340 } { 250 330 270 350 } { 70 210 90 230 } { 140 210 160 230 } +] draw_rectangles +5 [ +{ 200 210 220 230 } { 130 160 150 180 } { 190 160 210 180 } { 250 210 270 230 } { 70 270 90 290 } { 250 440 270 460 } { 70 440 90 460 } { 250 10 270 30 } { 70 10 90 30 } { 250 270 270 290 } +] draw_rectangles +5 [ +{ 45 10 295 90 } { 250 425 270 455 } { 190 325 210 455 } { 130 425 150 455 } { 45 390 295 470 } { 70 325 90 455 } { 195 210 215 230 } { 190 165 210 225 } { 135 210 155 230 } { 130 165 150 225 } +] draw_rectangles +5 [ +{ 250 135 270 345 } { 75 215 85 285 } { 130 275 150 345 } { 135 270 265 290 } { 70 15 90 145 } { 75 10 265 30 } +] draw_rectangles +6 [ +{ 250 20 270 40 } { 190 20 210 40 } { 130 20 150 40 } { 70 20 90 40 } { 250 440 270 460 } { 190 440 210 460 } { 130 440 150 460 } { 70 440 90 460 } { 125 155 155 185 } { 185 155 215 185 } +] draw_rectangles +6 [ +{ 245 205 275 235 } { 65 265 95 295 } { 250 20 270 460 } { 70 20 90 460 } { 190 20 210 460 } { 130 20 150 460 } +] draw_rectangles + grestore +/Courier-Bold findfont 12 scalefont setfont +260 30 moveto (f.0) 0 showstring +200 30 moveto (i0.0) 0 showstring +140 30 moveto (i1.0) 0 showstring +80 30 moveto (i2.0) 0 showstring +290 50 moveto (vss.1) 0 showstring +50 50 moveto (vss.0) 0 showstring +260 450 moveto (f.1) 0 showstring +200 450 moveto (i0.1) 0 showstring +140 450 moveto (i1.1) 0 showstring +80 450 moveto (i2.1) 0 showstring +290 430 moveto (vdd.1) 0 showstring +50 430 moveto (vdd.0) 0 showstring +showpage + +%%EndDocument + + endTexFig + 495 3570 a Fg(Figur)o(e)e(2:)16 b Fj(Sclib)11 b Fg(version)h(of)h(a) +495 3636 y(thr)o(ee)g(inputs)j Fe(and)e Fg(gate)1501 +1829 y + 7458719 19168902 11051335 5657231 28154593 49731010 startTexFig + 1501 1829 a +%%BeginDocument: ./na3dp.ps + +7 dict dup +begin + /FontType 3 def + /FontMatrix [.03125 0 0 .03125 0 0] def + /FontBBox [0 0 32 32] def + /Encoding 256 array def + 0 1 255 { + Encoding exch /.notdef put + } for + Encoding + dup 6 /diagonal45 put + dup 2 /hach1 put + dup 3 /hach2 put + dup 12 /cross put + dup 11 /full put + dup 4 /hach3 put + dup 5 /point2 put + dup 7 /square put + dup 8 /triangle put + dup 9 /octogone put + dup 10 /diagonal45h put + dup 1 /point1 put + pop + /PatternDefs 15 dict def + PatternDefs + begin + /draw_pixel { + exec + moveto + 1 0 rlineto + 0 1 rlineto + -1 0 rlineto + 0 -1 rlineto + } def + /.notdef [] def + /diagonal45 [ + {0 0} {0 1} {1 0} {1 1} {1 2} {2 1} {2 2} {2 3} {3 2} + {3 3} {3 4} {4 3} {4 4} {4 5} {5 4} {5 5} {5 6} {6 5} + {6 6} {6 7} {7 6} {7 7} {7 8} {8 7} {8 8} {8 9} {9 8} + {9 9} {9 10} {10 9} {10 10} {10 11} {11 10} {11 11} {11 12} {12 11} + {12 12} {12 13} {13 12} {13 13} {13 14} {14 13} {14 14} {14 15} {15 14} + {15 15} {15 16} {16 15} {16 16} {16 17} {17 16} {17 17} {17 18} {18 17} + {18 18} {18 19} {19 18} {19 19} {19 20} {20 19} {20 20} {20 21} {21 20} + {21 21} {21 22} {22 21} {22 22} {22 23} {23 22} {23 23} {23 24} {24 23} + {24 24} {24 25} {25 24} {25 25} {25 26} {26 25} {26 26} {26 27} {27 26} + {27 27} {27 28} {28 27} {28 28} {28 29} {29 28} {29 29} {29 30} {30 29} + {30 30} {30 31} {31 30} {31 31} + ] def + /diagonal45h [ + {0 0} {2 2} {4 4} {6 6} {8 8} {10 10} {12 12} {14 14} {16 16} + {18 18} {20 20} {22 22} {24 24} {26 26} {28 28} {30 30} + ] def + /hach1 [ + {0 15} {0 31} {1 14} {1 30} {2 13} {2 29} {3 12} {3 28} {4 11} + {4 27} {5 10} {5 26} {6 9} {6 25} {7 8} {7 24} {8 7} {8 23} + {9 6} {9 22} {10 5} {10 21} {11 4} {11 20} {12 3} {12 19} {13 2} + {13 18} {14 1} {14 17} {15 0} {15 16} {16 15} {16 31} {17 14} {17 30} + {18 13} {18 29} {19 12} {19 28} {20 11} {20 27} {21 10} {21 26} {22 9} + {22 25} {23 8} {23 24} {24 7} {24 23} {25 6} {25 22} {26 5} {26 21} + {27 4} {27 20} {28 3} {28 19} {29 2} {29 18} {30 1} {30 17} {31 0} + {31 16} + ] def + /hach2 [ + {0 0} {0 15} {1 1} {1 16} {2 2} {2 17} {3 3} {3 18} {4 4} + {4 19} {5 5} {5 20} {6 6} {6 21} {7 7} {7 22} {8 8} {8 23} + {9 9} {9 24} {10 10} {10 25} {11 11} {11 26} {12 12} {12 27} {13 13} + {13 28} {14 14} {14 29} {15 0} {15 15} {15 30} {16 1} {16 16} {16 31} + {17 2} {17 17} {18 3} {18 18} {19 4} {19 19} {20 5} {20 20} {21 6} + {21 21} {22 7} {22 22} {23 8} {23 23} {24 9} {24 24} {25 10} {25 25} + {26 11} {26 26} {27 12} {27 27} {28 13} {28 28} {29 14} {29 29} {30 15} + {30 30} {31 16} {31 31} + ] def +% /cross [ +% {2 1} {18 1} {2 2} {18 2} {0 3} {1 3} {2 3} {3 3} {4 3} {16 3} {17 3} {18 3} {19 3} {20 3} +% {2 4} {2 5} {18 4} {18 5} {10 17} {26 17} {10 18} {26 18} {8 19} {9 19} {10 19} {11 19} +% {12 19} {24 19} {25 19} {26 19} {27 19} {28 19} {10 20} {26 20} {10 21} {26 21} +% ] def + /cross [ + {0 3} {0 7} {0 11} {0 15} {0 19} {0 23} {0 27} {0 31} {1 0} + {1 2} {1 4} {1 6} {1 8} {1 10} {1 12} {1 14} {1 16} {1 18} + {1 20} {1 22} {1 24} {1 26} {1 28} {1 30} {2 1} {2 5} {2 9} + {2 13} {2 17} {2 21} {2 25} {2 29} {3 0} {3 2} {3 4} {3 6} + {3 8} {3 10} {3 12} {3 14} {3 16} {3 18} {3 20} {3 22} {3 24} + {3 26} {3 28} {3 30} {4 1} {4 2} {4 3} {4 7} {4 9} {4 10} + {4 11} {4 15} {4 17} {4 18} {4 19} {4 23} {4 25} {4 26} {4 27} + {4 31} {5 0} {5 1} {5 2} {5 3} {5 4} {5 6} {5 8} {5 9} + {5 10} {5 11} {5 12} {5 14} {5 16} {5 17} {5 18} {5 19} {5 20} + {5 22} {5 24} {5 25} {5 26} {5 27} {5 28} {5 30} {6 1} {6 2} + {6 3} {6 5} {6 9} {6 10} {6 11} {6 13} {6 17} {6 18} {6 19} + {6 21} {6 25} {6 26} {6 27} {6 29} {7 0} {7 2} {7 4} {7 6} + {7 8} {7 10} {7 12} {7 14} {7 16} {7 18} {7 20} {7 22} {7 24} + {7 26} {7 28} {7 30} {8 3} {8 7} {8 11} {8 15} {8 19} {8 23} + {8 27} {8 31} {9 0} {9 2} {9 4} {9 6} {9 8} {9 10} {9 12} + {9 14} {9 16} {9 18} {9 20} {9 22} {9 24} {9 26} {9 28} {9 30} + {10 1} {10 5} {10 9} {10 13} {10 17} {10 21} {10 25} {10 29} {11 0} + {11 2} {11 4} {11 6} {11 8} {11 10} {11 12} {11 14} {11 16} {11 18} + {11 20} {11 22} {11 24} {11 26} {11 28} {11 30} {12 1} {12 2} {12 3} + {12 7} {12 9} {12 10} {12 11} {12 15} {12 17} {12 18} {12 19} {12 23} + {12 25} {12 26} {12 27} {12 31} {13 0} {13 1} {13 2} {13 3} {13 4} + {13 6} {13 8} {13 9} {13 10} {13 11} {13 12} {13 14} {13 16} {13 17} + {13 18} {13 19} {13 20} {13 22} {13 24} {13 25} {13 26} {13 27} {13 28} + {13 30} {14 1} {14 2} {14 3} {14 5} {14 9} {14 10} {14 11} {14 13} + {14 17} {14 18} {14 19} {14 21} {14 25} {14 26} {14 27} {14 29} {15 0} + {15 2} {15 4} {15 6} {15 8} {15 10} {15 12} {15 14} {15 16} {15 18} + {15 20} {15 22} {15 24} {15 26} {15 28} {15 30} {16 3} {16 7} {16 11} + {16 15} {16 19} {16 23} {16 27} {16 31} {17 0} {17 2} {17 4} {17 6} + {17 8} {17 10} {17 12} {17 14} {17 16} {17 18} {17 20} {17 22} {17 24} + {17 26} {17 28} {17 30} {18 1} {18 5} {18 9} {18 13} {18 17} {18 21} + {18 25} {18 29} {19 0} {19 2} {19 4} {19 6} {19 8} {19 10} {19 12} + {19 14} {19 16} {19 18} {19 20} {19 22} {19 24} {19 26} {19 28} {19 30} + {20 1} {20 2} {20 3} {20 7} {20 9} {20 10} {20 11} {20 15} {20 17} + {20 18} {20 19} {20 23} {20 25} {20 26} {20 27} {20 31} {21 0} {21 1} + {21 2} {21 3} {21 4} {21 6} {21 8} {21 9} {21 10} {21 11} {21 12} + {21 14} {21 16} {21 17} {21 18} {21 19} {21 20} {21 22} {21 24} {21 25} + {21 26} {21 27} {21 28} {21 30} {22 1} {22 2} {22 3} {22 5} {22 9} + {22 10} {22 11} {22 13} {22 17} {22 18} {22 19} {22 21} {22 25} {22 26} + {22 27} {22 29} {23 0} {23 2} {23 4} {23 6} {23 8} {23 10} {23 12} + {23 14} {23 16} {23 18} {23 20} {23 22} {23 24} {23 26} {23 28} {23 30} + {24 3} {24 7} {24 11} {24 15} {24 19} {24 23} {24 27} {24 31} {25 0} + {25 2} {25 4} {25 6} {25 8} {25 10} {25 12} {25 14} {25 16} {25 18} + {25 20} {25 22} {25 24} {25 26} {25 28} {25 30} {26 1} {26 5} {26 9} + {26 13} {26 17} {26 21} {26 25} {26 29} {27 0} {27 2} {27 4} {27 6} + {27 8} {27 10} {27 12} {27 14} {27 16} {27 18} {27 20} {27 22} {27 24} + {27 26} {27 28} {27 30} {28 1} {28 2} {28 3} {28 7} {28 9} {28 10} + {28 11} {28 15} {28 17} {28 18} {28 19} {28 23} {28 25} {28 26} {28 27} + {28 31} {29 0} {29 1} {29 2} {29 3} {29 4} {29 6} {29 8} {29 9} + {29 10} {29 11} {29 12} {29 14} {29 16} {29 17} {29 18} {29 19} {29 20} + {29 22} {29 24} {29 25} {29 26} {29 27} {29 28} {29 30} {30 1} {30 2} + {30 3} {30 5} {30 9} {30 10} {30 11} {30 13} {30 17} {30 18} {30 19} + {30 21} {30 25} {30 26} {30 27} {30 29} {31 0} {31 2} {31 4} {31 6} + {31 8} {31 10} {31 12} {31 14} {31 16} {31 18} {31 20} {31 22} {31 24} + {31 26} {31 28} {31 30} + ] def + /hach3 [ + {0 7} {0 23} {1 6} {1 8} {1 22} {1 24} {2 5} {2 9} {2 21} + {2 25} {3 4} {3 10} {3 20} {3 26} {4 3} {4 11} {4 19} {4 27} + {5 2} {5 12} {5 18} {5 28} {6 1} {6 13} {6 17} {6 29} {7 0} + {7 14} {7 16} {7 30} {8 1} {8 15} {8 31} {9 2} {9 14} {9 16} + {9 30} {10 3} {10 13} {10 17} {10 29} {11 4} {11 12} {11 18} {11 28} + {12 5} {12 11} {12 19} {12 27} {13 6} {13 10} {13 20} {13 26} {14 7} + {14 9} {14 21} {14 25} {15 8} {15 22} {15 24} {16 7} {16 9} {16 23} + {17 6} {17 10} {17 22} {17 24} {18 5} {18 11} {18 21} {18 25} {19 4} + {19 12} {19 20} {19 26} {20 3} {20 13} {20 19} {20 27} {21 2} {21 14} + {21 18} {21 28} {22 1} {22 15} {22 17} {22 29} {23 0} {23 16} {23 30} + {24 1} {24 15} {24 17} {24 31} {25 2} {25 14} {25 18} {25 30} {26 3} + {26 13} {26 19} {26 29} {27 4} {27 12} {27 20} {27 28} {28 5} {28 11} + {28 21} {28 27} {29 6} {29 10} {29 22} {29 26} {30 7} {30 9} {30 23} + {30 25} {31 8} {31 24} + ] def + /point2 [ + {0 6} {0 7} {0 8} {0 22} {0 23} {0 24} {1 7} {1 23} {7 15} + {7 31} {8 0} {8 14} {8 15} {8 16} {8 30} {8 31} {9 15} {9 31} + {15 7} {15 23} {16 6} {16 7} {16 8} {16 22} {16 23} {16 24} {17 7} + {17 23} {23 15} {23 31} {24 0} {24 14} {24 15} {24 16} {24 30} {24 31} + {25 15} {25 31} {31 7} {31 23} + ] def + /square [ + {7 8} {8 8} {9 8} {10 8} {11 8} {12 8} {13 8} {7 9} {7 10} {7 11} {7 12} {7 13} {7 14} + {13 9} {13 10} {13 14} {13 11} {13 12} {13 13} {8 14} {9 14} {10 14} {11 14} {12 14} + {23 24} {24 24} {25 24} {26 24} {27 24} {28 24} {29 24} {29 25} {29 26} {29 27} {29 28} + {29 29} {29 30} {28 30} {27 30} {26 30} {25 30} {24 30} {23 30} {23 29} {23 28} + {23 27} {23 26} {23 25} + ] def + /triangle [ + {21 9} {22 9} {23 9} {24 9} {25 9} {26 9} {27 9} {28 9} {29 9} {30 9} {31 9} + {22 10} {23 11} {24 12} {25 13} {26 14} {27 13} {28 12} {29 11} {30 10} + ] def + /octogone [ + {9 24} {10 24} {11 24} {12 25} {13 26} {13 27} {13 28} {12 29} {11 30} {10 30} {9 30} + {8 29} {7 28} {7 27} {7 26} {8 25} + ] def + /point1 [ + {0 7} {0 23} {8 15} {8 31} {16 7} {16 23} {24 15} {24 31} + ] def + /x [ + {23 8}{29 8}{24 9}{28 9}{25 10}{27 10}{26 11}{27 12}{25 12}{28 13} + {24 13}{29 14}{23 14}{7 24}{13 24}{8 25}{12 25}{9 26}{11 26}{10 27} + {11 28}{9 28}{12 29}{8 29}{13 30}{7 30} + ] def + /full [ + {0 1} {0 7} {0 13} {0 19} {0 25} {0 29} {1 0} {1 6} {1 12} + {1 18} {1 24} {1 28} {2 5} {2 11} {2 17} {2 23} {2 27} {2 31} + {3 4} {3 10} {3 16} {3 22} {3 26} {3 30} {4 3} {4 9} {4 15} + {4 21} {4 25} {4 29} {5 2} {5 8} {5 14} {5 20} {5 24} {5 28} + {6 1} {6 7} {6 13} {6 19} {6 23} {6 27} {6 31} {7 0} {7 6} + {7 12} {7 18} {7 22} {7 26} {7 30} {8 5} {8 11} {8 17} {8 21} + {8 25} {8 29} {9 4} {9 10} {9 16} {9 20} {9 24} {9 28} {10 3} + {10 9} {10 15} {10 19} {10 23} {10 27} {11 2} {11 8} {11 14} {11 18} + {11 22} {11 26} {12 1} {12 7} {12 13} {12 17} {12 21} {12 25} {12 31} + {13 0} {13 6} {13 12} {13 16} {13 20} {13 24} {13 30} {14 5} {14 11} + {14 15} {14 19} {14 23} {14 29} {15 4} {15 10} {15 14} {15 18} {15 22} + {15 28} {16 3} {16 9} {16 13} {16 17} {16 21} {16 27} {17 2} {17 8} + {17 12} {17 16} {17 20} {17 26} {18 1} {18 7} {18 11} {18 15} {18 19} + {18 25} {18 31} {19 0} {19 6} {19 10} {19 14} {19 18} {19 24} {19 30} + {20 5} {20 9} {20 13} {20 17} {20 23} {20 29} {21 4} {21 8} {21 12} + {21 16} {21 22} {21 28} {22 3} {22 7} {22 11} {22 15} {22 21} {22 27} + {23 2} {23 6} {23 10} {23 14} {23 20} {23 26} {24 1} {24 5} {24 9} + {24 13} {24 19} {24 25} {24 31} {25 0} {25 4} {25 8} {25 12} {25 18} + {25 24} {25 30} {26 3} {26 7} {26 11} {26 17} {26 23} {26 29} {27 2} + {27 6} {27 10} {27 16} {27 22} {27 28} {28 1} {28 5} {28 9} {28 15} + {28 21} {28 27} {29 0} {29 4} {29 8} {29 14} {29 20} {29 26} {30 3} + {30 7} {30 13} {30 19} {30 25} {30 31} {31 2} {31 6} {31 12} {31 18} + {31 24} {31 30} + ] def + end + /BuildChar { + 3 dict + begin + /PatternCode exch def + /PatternDict exch def + /PatternName PatternDict /Encoding get PatternCode get def + PatternDict + begin + 32 0 0 0 32 32 setcachedevice + PatternDefs + begin + PatternDefs PatternName get + gsave + newpath + {draw_pixel} forall + fill + grestore + end + end + end + } bind def +end +/PatternFont exch definefont pop + +/bdef {bind def} bind def +/arg {exch def} bdef +/patternfill { + gsave + 6 dict + begin + /PatternCode arg + pathbbox + /Ytr arg + /Xtr arg + /Ybl arg + /Xbl arg + clip + /StringForFilling 32 string def + 0 1 31 { + StringForFilling exch PatternCode put + } for + /PatternFont findfont PatternFontScale scalefont setfont + (\1) stringwidth pop + dup Xbl exch div floor /Xbl arg + dup Ybl exch div floor /Ybl arg + dup Xtr exch div ceiling /Xtr arg + dup Ytr exch div ceiling /Ytr arg + dup dup Xbl mul exch Ybl mul moveto + Xtr Xbl sub 32 div ceiling cvi + Ytr Ybl sub cvi { + gsave + dup { + StringForFilling show + } repeat + grestore + exch + dup 0 exch rmoveto + exch + } repeat + pop pop + end + grestore +} bdef +/draw_rectangle { + exec + 4 dict + begin + /Y1 arg + /X1 arg + /Y0 arg + dup /X0 arg + Y0 moveto + X1 dup + Y0 lineto + Y1 lineto + X0 dup + Y1 lineto + Y0 lineto + end +} bdef +/draw_rectangles { + newpath + {draw_rectangle} forall + patternfill + stroke +} bdef +/draw_path { + exec + moveto + {exec lineto} forall +} bdef +/draw_paths { + newpath + {draw_path} forall + patternfill + stroke +} bdef +/draw_square { + moveto + dup + dup + 0 rlineto + 0 exch rlineto + neg + dup + 0 rlineto + 0 exch rlineto +} bdef +/strokeAB { + gsave + .5 setlinewidth + newpath + draw_rectangle + [3] 0 setdash + stroke + grestore +} bdef +/showstring { + gsave + rotate + dup stringwidth pop 2 div neg 0 rmoveto + false charpath + gsave + 1 setgray + 2 setlinewidth + 1 setlinejoin + 1 setlinecap + stroke + grestore + fill + grestore +} bdef +/splitted_pages { + /SplitRows exch def + /SplitColumns exch def + /circuit exch def + newpath + LeftMargin BottomMargin moveto + 0 PageHeight rlineto + PageWidth 0 rlineto + 0 PageHeight neg rlineto + closepath + clip + newpath + 0 1 SplitRows 1 sub { + /SplitRowNb exch def + 0 1 SplitColumns 1 sub { + /SplitColumnNb exch def + gsave + PageWidth SplitColumnNb mul neg + PageHeight SplitRowNb mul neg + translate + circuit + gsave + showpage + grestore + grestore + } for + } for +} def + +0.10 setlinewidth +2 setlinecap +0 setlinejoin + +1.000000 dup scale +127.500000 76.000000 translate + +50 50 290 650 strokeAB +/PatternFontScale 15 def + gsave +1 [ +{ 50 390 290 670 } +] draw_rectangles +2 [ +{ 215 635 245 665 } { 155 635 185 665 } { 95 635 125 665 } +] draw_rectangles +3 [ +{ 215 35 245 65 } { 155 35 185 65 } { 95 35 125 65 } +] draw_rectangles +2 [ +{ 65 115 95 145 } { 245 115 275 145 } { 85 95 135 215 } { 145 95 195 215 } { 205 95 255 215 } { 245 95 275 215 } { 190 95 210 215 } { 130 95 150 215 } { 65 95 95 215 } +] draw_rectangles +3 [ +{ 245 515 275 545 } { 125 565 155 595 } { 185 565 215 595 } { 125 515 155 545 } { 65 565 95 595 } { 205 485 255 605 } { 85 485 135 605 } { 145 485 195 605 } { 245 485 275 605 } { 65 485 95 605 } +] draw_rectangles +3 [ +{ 190 485 210 605 } { 130 485 150 605 } +] draw_rectangles +12 [ +{ 225 45 235 55 } { 165 45 175 55 } { 105 45 115 55 } { 255 525 265 535 } { 145 375 155 385 } { 255 45 265 55 } { 195 45 205 55 } { 255 645 265 655 } { 135 575 145 585 } { 195 575 205 585 } +] draw_rectangles +12 [ +{ 75 125 85 135 } { 135 525 145 535 } { 135 45 145 55 } { 195 645 205 655 } { 85 425 95 435 } { 205 325 215 335 } { 255 125 265 135 } { 75 45 85 55 } { 75 575 85 585 } { 225 645 235 655 } +] draw_rectangles +12 [ +{ 165 645 175 655 } { 75 645 85 655 } { 135 645 145 655 } { 105 645 115 655 } +] draw_rectangles +11 [ +{ 165 525 175 535 } { 195 475 205 485 } { 135 475 145 485 } { 195 525 205 535 } { 75 525 85 535 } { 195 225 205 235 } { 135 225 145 235 } { 75 225 85 235 } { 255 175 265 185 } { 255 475 265 485 } +] draw_rectangles +11 [ +{ 75 475 85 485 } { 255 575 265 585 } { 75 175 85 185 } { 255 275 265 285 } { 135 175 145 185 } { 135 125 145 135 } { 195 175 205 185 } { 195 125 205 135 } { 75 375 85 385 } { 255 375 265 385 } +] draw_rectangles +11 [ +{ 195 275 205 285 } { 195 375 205 385 } { 195 425 205 435 } { 135 425 145 435 } { 135 325 145 335 } { 135 275 145 285 } { 75 275 85 285 } { 75 325 85 335 } { 255 425 265 435 } { 255 325 265 335 } +] draw_rectangles +11 [ +{ 255 225 265 235 } +] draw_rectangles +4 [ +{ 135 365 165 395 } { 75 415 105 445 } { 195 315 225 345 } { 225 470 235 620 } { 105 80 115 230 } { 165 80 175 230 } { 105 470 115 620 } { 165 470 175 620 } { 225 80 235 230 } { 225 325 235 475 } +] draw_rectangles +4 [ +{ 225 225 235 335 } { 205 320 235 340 } { 165 375 175 475 } { 165 225 175 385 } { 145 370 175 390 } { 105 425 115 475 } { 105 225 115 435 } { 85 420 115 440 } +] draw_rectangles +5 [ +{ 220 40 240 60 } { 160 40 180 60 } { 100 40 120 60 } { 250 520 270 540 } { 140 370 160 390 } { 250 40 270 60 } { 190 40 210 60 } { 250 640 270 660 } { 130 570 150 590 } { 190 570 210 590 } +] draw_rectangles +5 [ +{ 70 120 90 140 } { 130 520 150 540 } { 130 40 150 60 } { 190 640 210 660 } { 80 420 100 440 } { 200 320 220 340 } { 250 120 270 140 } { 70 40 90 60 } { 70 570 90 590 } { 220 640 240 660 } +] draw_rectangles +5 [ +{ 160 640 180 660 } { 70 640 90 660 } { 130 640 150 660 } { 100 640 120 660 } { 75 40 265 60 } { 190 575 210 655 } { 75 640 205 660 } { 70 575 90 655 } { 195 640 265 660 } { 70 45 90 135 } +] draw_rectangles +5 [ +{ 255 125 265 495 } { 75 425 85 535 } { 75 175 85 435 } { 75 425 95 435 } { 195 325 205 485 } { 195 125 205 335 } { 195 325 215 335 } { 135 375 145 485 } { 135 375 155 385 } { 135 125 145 385 } +] draw_rectangles +5 [ +{ 255 515 265 585 } { 255 485 265 525 } { 135 515 265 525 } { 135 515 145 585 } +] draw_rectangles +6 [ +{ 40 10 60 90 } { 280 10 300 90 } { 40 620 60 680 } { 280 620 300 680 } { 245 35 275 65 } { 185 35 215 65 } { 245 635 275 665 } { 125 35 155 65 } { 185 635 215 665 } { 65 35 95 65 } +] draw_rectangles +6 [ +{ 65 635 95 665 } { 125 635 155 665 } { 40 10 300 90 } { 40 620 300 680 } +] draw_rectangles +10 [ +{ 40 120 300 140 } { 40 220 300 240 } { 40 270 300 290 } { 40 320 300 340 } { 40 370 300 390 } { 40 420 300 440 } { 40 470 300 490 } { 40 520 300 540 } { 40 570 300 590 } { 40 170 300 190 } +] draw_rectangles + grestore +/Courier-Bold findfont 12 scalefont setfont +50 50 moveto (vss.0) 0 showstring +290 50 moveto (vss.1) 0 showstring +50 650 moveto (vdd.0) 0 showstring +290 650 moveto (vdd.1) 0 showstring +170 530 moveto (nwell_28) 0 showstring +200 480 moveto (i2_2) 0 showstring +140 480 moveto (i1_2) 0 showstring +200 530 moveto (o_1) 0 showstring +80 530 moveto (i0_1) 0 showstring +200 230 moveto (i2_7) 0 showstring +140 230 moveto (i1_7) 0 showstring +80 230 moveto (i0_7) 0 showstring +260 180 moveto (o_8) 0 showstring +260 480 moveto (o_2) 0 showstring +80 480 moveto (i0_2) 0 showstring +260 580 moveto (o_0) 0 showstring +80 180 moveto (i0_8) 0 showstring +260 280 moveto (o_6) 0 showstring +140 180 moveto (i1_8) 0 showstring +140 130 moveto (i1_9) 0 showstring +200 180 moveto (i2_8) 0 showstring +200 130 moveto (i2_9) 0 showstring +80 380 moveto (i0_4) 0 showstring +260 380 moveto (o_4) 0 showstring +200 280 moveto (i2_6) 0 showstring +200 380 moveto (i2_4) 0 showstring +200 430 moveto (i2_3) 0 showstring +140 430 moveto (i1_3) 0 showstring +140 330 moveto (i1_5) 0 showstring +140 280 moveto (i1_6) 0 showstring +80 280 moveto (i0_6) 0 showstring +80 330 moveto (i0_5) 0 showstring +260 430 moveto (o_3) 0 showstring +260 330 moveto (o_5) 0 showstring +260 230 moveto (o_7) 0 showstring +showpage + +%%EndDocument + + endTexFig + 1501 3570 a Fg(Figur)o(e)i(3:)22 b Fj(Dplib)17 b Fg(version)g(of)1501 +3636 y(a)c(thr)o(ee)g(inputs)j Fe(and)e Fg(gate)1306 +3971 y(8)p eop +%%Page: 9 9 +9 8 bop 120 260 a Ff(3.2.2)54 b(Datapath)14 b(libraries)120 +410 y Fg(Ther)o(e)f(ar)o(e)g(two)h(kinds)g(of)h(datapath)e(libraries:) +203 565 y Fc(\017)27 b Fe(dplib)18 b Fg(is)f(a)f(cell)g(library)f +(dedicated)f(to)j(high)g(density)f(data-paths.)25 b(It)16 +b(must)h(be)f(used)h(in)f(conjunction)258 631 y(with)h(the)e(data-path) +h(tools)h Fe(fpgen)f Fg(and)g Fe(dpr)p Fg(.)23 b(The)16 +b(cells)f(in)h Fe(dplib)h Fg(have)f(the)f(same)h(functionnalities)258 +698 y(as)g(the)f(ones)h(in)g Fe(sclib)p Fg(,)h(but)f(have)f(a)g +(topology)i(that)e(is)h(usable)g(only)g(within)g(a)f(datapath.)22 +b Fe(Scmap)17 b Fg(can)258 764 y(also)e(map)e(a)h(behavior)f(onto)i +(the)e Fe(dplib)i Fg(library)-6 b(.)203 875 y Fc(\017)27 +b Fe(fplib)15 b Fg(is)f(a)f(set)g(of)h(above)e(30)h(r)o(egular)f +(functions)j(that)f(ar)o(e)e(useful)i(in)g(the)f(design)g(of)h(a)f +(datapath.)j(These)258 941 y(functions)g(range)d(fr)o(om)h(a)f +Fj(n)h Fg(inputs)h Fe(nand)g Fg(gate)e(to)h(a)f Fj(n)h +Fb(times)f Fj(m)h Fg(r)o(egister)f(\002le.)120 1096 y(Her)o(e)19 +b(the)h(cells)f(shar)o(e)h(the)g(power)g(and)f(gr)o(ound)i(lines)f(in)g +(metal2.)34 b(A)20 b(powerful)h(dedicated)d(over)i(the)g(cell)120 +1163 y(r)o(outer)c(can)f(r)o(oute)h(custom)h(blocks)e(and)h(logic)g +(glue)f(in)i(the)e(same)h(structur)o(e.)23 b(Among)16 +b(the)f Fe(fplib)i Fg(function-)120 1229 y(nalities,)h(four)f +(optimized)g(blocks)f(generators)g(should)i(be)e(pr)o(esented)g(in)h +(mor)o(e)g(details,)g(as)g(they)f(r)o(e\003ect)f(the)120 +1295 y(quality)j(of)g(this)h(library)-6 b(.)27 b(All)18 +b(the)f(generators)g(ar)o(e)g(build)h(with)g(a)f(tiler)g(using)i(a)e +(dedicated)f(leaf)h(cell)g(library)-6 b(.)120 1362 y(Their)15 +b(output)h(is)g(a)f(symbolic)g(layout,)h(a)f Ff(VHDL)g +Fg(behavior)l(,)g(a)g(set)g(of)h(pattern)f(for)h(test)f(purpose,)h(a)f +(netlist,)h(an)120 1428 y(icon,)g(and)g(a)f(datasheet)g(indicating)g +(size)h(and)f(timing)h(estimation)g(for)g(a)g(given)f(technology)-6 +b(.)23 b(The)15 b(structural)120 1495 y(parameters)e(varies)g(accor)o +(ding)g(to)h(their)g(functionalities.)203 1650 y Fc(\017)27 +b Fg(optimized)14 b(generators)f(for)h(datapath)f(operators:)258 +1760 y Fe(rsa)p Fg(,)29 b(a)15 b(fast)h(adder)e(generator)l(,)g(with)i +(pr)o(opagation)g(time)f(in)h(log)f Fj(nb)g Fg(and)g(size)h(in)f +Fj(nb)g Fg(log)h Fj(nb)p Fg(,)f(wher)o(e)g Fj(nb)380 +1827 y Fg(is)i(the)e(number)h(of)g(bits.)24 b(Its)16 +b(has)g(2)g(or)g(3)f(input)i(buses,)g(and)f(if)g(needed)e(a)i(carry)f +(input.)24 b(It)16 b(may)f(be)380 1893 y(used)f(as)g(a)g(substractor)g +(or)g(adder/substractor)l(.)p 380 1908 1939 3 v 379 1974 +3 67 v 413 1954 a(Params)p 627 1974 V 65 w(Meaning)p +1862 1974 V 1017 w(Range)p 2317 1974 V 380 1976 1939 +3 v 379 2043 3 67 v 413 2023 a(nb)p 627 2043 V 185 w(number)g(of)g +(bits)p 1862 2043 V 877 w(3)g(to)g(128)p 2317 2043 V +379 2109 V 413 2089 a(cin)p 627 2109 V 175 w(carry)f(in)p +1862 2109 V 1046 w(true)g(or)h(false)p 2317 2109 V 379 +2175 V 413 2155 a(csa)p 627 2175 V 172 w(thr)o(ee)f(inputs)j(adder)p +1862 2175 V 781 w(true)d(or)h(false)p 2317 2175 V 379 +2242 V 413 2222 a(ovr)p 627 2242 V 165 w(over\003ow)g(\003ag)p +1862 2242 V 908 w(true)f(or)h(false)p 2317 2242 V 380 +2244 1939 3 v 258 2312 a Fe(rfg)p Fg(,)29 b(a)13 b(static)h(r)o +(egister)e(\002le)i(generator)l(.)i(It)d(has)h(one)g(write)f(addr)o +(ess)h(,)f(and)h(one)f(or)h(two)g(r)o(ead)f(addr)o(ess.)j(It)380 +2378 y(may)d(be)g(operated)g(as)h(a)f(set)h(of)h(level-sensitive)f +(latches)g(or)g(edge)e(trigger)o(ed)g(\003ip-\003ops.)p +380 2402 V 379 2468 3 67 v 413 2448 a(Params)p 627 2468 +V 65 w(Meaning)p 1862 2468 V 1017 w(Range)p 2317 2468 +V 380 2470 1939 3 v 379 2537 3 67 v 413 2517 a(nb)p 627 +2537 V 185 w(number)i(of)g(bits)p 1862 2537 V 877 w(2)g(to)g(64)p +2317 2537 V 379 2603 V 413 2583 a(nw)p 627 2603 V 170 +w(number)g(of)g(wor)o(ds)p 1862 2603 V 811 w(2)g(to)g(256)p +2317 2603 V 379 2669 V 413 2649 a(bus)p 627 2669 V 161 +w(number)g(of)g(r)o(ead)f(bus)p 1862 2669 V 755 w(1)h(or)f(2)p +2317 2669 V 379 2802 3 133 v 413 2716 a(op)p 627 2802 +V 185 w(mode)h(of)g(operation)p 1862 2802 V 783 w(latch)58 +b(or)h(\003ip-)1896 2782 y(\003op)p 2317 2802 V 379 2935 +V 413 2849 a(low)413 2915 y(power)p 627 2935 V 661 2849 +a(r)o(educe)13 b(power)h(consumption)p 1862 2935 V 562 +w(true)f(or)h(false)p 2317 2935 V 380 2937 1939 3 v 258 +3005 a Fe(bsg)p Fg(,)29 b(a)13 b(barr)o(el)f(shifter)j(generator)l(.)h +(Possible)e(operations)h(ar)o(e)e(:)428 3094 y Ff(\226)28 +b Fg(logical)13 b(right)h(shift)428 3171 y Ff(\226)28 +b Fg(arithmetical)12 b(right)i(shift)428 3249 y Ff(\226)28 +b Fg(logical)13 b(left)h(shift)428 3326 y Ff(\226)28 +b Fg(arithmetical)12 b(left)i(shift)428 3404 y Ff(\226)28 +b Fg(right)13 b(r)o(otation)428 3481 y Ff(\226)28 b Fg(left)14 +b(r)o(otation)p 380 3512 V 379 3578 3 67 v 413 3559 a(Params)p +627 3578 V 65 w(Meaning)p 1862 3578 V 1017 w(Range)p +2317 3578 V 380 3581 1939 3 v 379 3647 3 67 v 413 3627 +a(nb)p 627 3647 V 185 w(number)g(of)g(bits)p 1862 3647 +V 877 w(3)g(to)g(64)p 2317 3647 V 380 3649 1939 3 v 1306 +3971 a(9)p eop +%%Page: 10 10 +10 9 bop 258 260 a Fe(amg)p Fg(,)29 b(an)16 b(integer)f(modi\002ed)h +(booth)h(algorithm)f(array)f(multiplier)l(.)25 b(the)16 +b Fj(x)g Fg(and)g Fj(y)g Fg(inputs)i(ar)o(e)d(indepen-)380 +327 y(dent,)e(and)h(pipeline)g(stages)g(can)f(be)g(inserted)g(in)h(the) +g(cir)o(cuit.)p 380 350 1939 3 v 379 416 3 67 v 413 396 +a(Params)p 627 416 V 65 w(Meaning)p 1862 416 V 1017 w(Range)p +2317 416 V 380 419 1939 3 v 379 485 3 67 v 413 465 a(nx)p +627 485 V 187 w(number)g(of)g(bits)g(of)h(the)e Fj(x)h +Fg(operand)p 1862 485 V 462 w(8)g(to)g(64)p 2317 485 +V 379 551 V 413 531 a(ny)p 627 551 V 185 w(number)g(of)g(bits)g(of)h +(the)e Fj(y)h Fg(operand)p 1862 551 V 462 w(8)g(to)g(64)p +2317 551 V 379 684 3 133 v 413 598 a(ps)p 627 684 V 192 +w(number)k(of)h(pipeline)g(stages)f(to)h(be)e(inserted)h(in)h(the)661 +664 y(cir)o(cuit)p 1862 684 V 1896 598 a(0)61 b(to)h(min\()2217 +576 y Fa(nx)p 2217 585 48 3 v 2230 617 a(2)2272 598 y +Fg(,)1903 640 y Fa(n)o(y)p 1903 652 V 1915 683 a(2)1956 +664 y Fg(\)-1)p 2317 684 3 133 v 380 686 1939 3 v 120 +861 a Ff(3.2.3)54 b(Custom)14 b(libraries)120 1010 y +Fg(T)-5 b(wo)20 b(full-custom)h(parameterized)c(generators)i(ar)o(e)g +(also)h(available.)32 b(They)19 b(pr)o(oduce)h(stand-alone)f(blocks,) +120 1077 y(that)24 b(ar)o(e)e(to)i(be)f(r)o(outed)h(only)g(at)f(the)h +(\003oorplan)g(level)f(with)h(other)g(blocks,)i(using)e(either)f +Fe(bbr)i Fg(or)e(better)120 1143 y Fe(xcheops)p Fg(.)203 +1298 y Fc(\017)k Fj(ROM)14 b Fg(and)g Fj(RAM)g Fg(generators:)258 +1409 y Fe(grog)p Fg(,)29 b(a)11 b(generic)f Fj(ROM)h +Fg(generator)l(.)k(The)c(interface)f(is)i(an)f(addr)o(ess)g(bus,)h(a)f +(clock)g(and)g(an)g(output)h(enable)380 1475 y(signal,)17 +b(and)f(a)f(data)g(out)i(bus.)24 b(The)16 b(coding)f(format)i(to)f +(specify)g(the)g Fj(ROM)g Fg(contents)g(is)h(a)e(limited)380 +1542 y(subset)f(of)h(VHDL.)p 380 1551 V 379 1617 3 67 +v 413 1597 a(Params)p 627 1617 V 65 w(Meaning)p 1862 +1617 V 1017 w(Range)p 2317 1617 V 380 1619 1939 3 v 379 +1686 3 67 v 413 1666 a(nb)p 627 1686 V 185 w(number)f(of)g(bits)p +1862 1686 V 877 w(1)g(to)g(64)p 2317 1686 V 379 1818 +3 133 v 413 1732 a(nw)p 627 1818 V 170 w(number)g(of)g(wor)o(ds)p +1862 1818 V 811 w(64,)62 b(128,)h(256,)1896 1798 y Fj(n)14 +b Fg(512,)e(1)i Fc(\024)g Fj(n)f Fc(\024)h Fg(8)p 2317 +1818 V 379 1885 3 67 v 413 1865 a(hz)p 627 1885 V 188 +w(tri-state)g(output)p 1862 1885 V 868 w(true)f(or)h(false)p +2317 1885 V 380 1887 1939 3 v 258 1955 a Fe(rage)p Fg(,)29 +b(a)15 b Fj(RAM)h Fg(generator)l(.)21 b(The)15 b(interface)f(has)i(a)g +(r)o(ead/write)d(addr)o(ess,)j(a)f(write)g(signal)h(indicating)f(if)380 +2021 y(a)f(r)o(ead)e(or)i(a)g(write)f(is)i(to)f(be)f(performed,)g(and)g +(a)h(clock.)p 380 2045 V 379 2111 3 67 v 413 2091 a(Params)p +627 2111 V 65 w(Meaning)p 1862 2111 V 1017 w(Range)p +2317 2111 V 380 2113 1939 3 v 379 2180 3 67 v 413 2160 +a(nb)p 627 2180 V 185 w(number)g(of)g(bits)p 1862 2180 +V 877 w(2)g(to)g(128)p 2317 2180 V 379 2246 V 413 2226 +a(nw)p 627 2246 V 170 w(number)g(of)g(wor)o(ds)p 1862 +2246 V 811 w(128)f(to)h(4096)p 2317 2246 V 379 2445 3 +200 v 413 2292 a(aspect)p 627 2445 V 94 w(aspect)g(ratio)p +1862 2445 V 953 w(narr)o(ow)-5 b(,)1896 2359 y(medium)129 +b(or)1896 2425 y(lar)o(ge)p 2317 2445 V 379 2578 3 133 +v 413 2492 a(ud)p 627 2578 V 181 w(unidir)o(ectional,)16 +b(ie)e(shar)o(e)h(the)g(same)f(bus)i(for)f(data)f(in)661 +2558 y(and)g(out)p 1862 2578 V 1896 2492 a(true)f(or)h(false)p +2317 2578 V 380 2580 1939 3 v 120 2714 a(All)h(these)f(generators)f +(have)h(been)f(designed)h(using)h(the)f Ff(Alliance)g +Fg(CAD)h(tools,)g(for)g(both)f(design)g(and)g(veri\002-)120 +2781 y(cation)g(phases.)120 2976 y Ff(3.2.4)54 b(Pad)13 +b(library)120 3126 y(Alliance)h Fg(pr)o(ovides)h(also)g(a)f(pad)g +(library)-6 b(.)18 b(This)d(library)e(also)i(uses)g(a)g(symbolic)f +(layout)g(appr)o(oach,)g(and)g(ther)o(e-)120 3192 y(for)o(e)j(a)f +(whole)i(chip)f(can)f(be)g(tar)o(geted)f(on)i(several)g(technology)f +(without)i(even)f(the)f(cor)o(e)g(to)i(pad)e(r)o(outing.)27 +b(A)120 3258 y(very)13 b(r)o(obust)i(appr)o(oach)e(has)h(been)f(enfor)o +(ced,)f(as)i(the)g(pads)g(ar)o(e)f(subject)g(to)h(electr)o(ostatic)e +(dischar)o(ge,)h(and)h(also)120 3325 y(mor)o(e)f(sensible)g(to)h +(latch-up)g(than)g(the)f(other)h(parts)f(of)i(the)e(cir)o(cuit)g(due)g +(to)h(the)f(amount)h(of)g(curr)o(ent)f(that)h(\003ows)120 +3391 y(thr)o(ough)h(them.)120 3502 y(Chips)h(using)g(these)e(pads)h +(have)g(been)e(fabricated)g(on)j(ES2)e(1.0)p Fb(\026)p +Fg(m,)g(AMS)h(1.2)p Fb(\026)p Fg(m)f(and)h(SGS-Thomson)i(0.5)p +Fb(\026)p Fg(m)120 3568 y(technology)c(and)h(work)g(as)g(expected.)1292 +3971 y(10)p eop +%%Page: 11 11 +11 10 bop 120 262 a Fn(4)80 b(Supported)18 b(exchange)h(formats)120 +433 y Fg(The)f Ff(Alliance)h Fg(CAD)f(system)h(handles)f(many)g(\002le) +h(formats.)31 b(They)18 b(ar)o(e)f(summarized)h(her)o(e.)30 +b(A)18 b(\002le)h(can)f(be)120 499 y(either)13 b(r)o(ead,)g(using)h(a)g +Fj(parser)p Fg(,)d(or)j(written,)f(using)i(a)f Fj(driver)p +Fg(.)203 654 y Fc(\017)27 b Fg(Behavioral)14 b(view:)325 +765 y Ff(\226)27 b Fg(data\003ow)13 b Ff(VHDL)h Fg(parser)g(and)f +(driver)l(.)203 876 y Fc(\017)27 b Fg(Structural)14 b(view:)325 +986 y Ff(\226)27 b(VHDL)14 b Fg(parser)g(and)f(driver)l(.)325 +1075 y Ff(\226)27 b(EDIF)13 b Fg(parser)h(and)f(driver)l(.)325 +1163 y Ff(\226)27 b(Spice)13 b Fg(parser)h(and)f(driver)l(.)325 +1252 y Ff(\226)27 b(Compass)13 b Fg(parser)g(and)h(driver)l(.)325 +1340 y Ff(\226)27 b(Alliance)14 b Fg(parser)g(and)f(driver)l(.)325 +1429 y Ff(\226)27 b(Hilo)15 b Fg(driver)203 1540 y Fc(\017)27 +b Fg(Physical)15 b(view:)325 1650 y Ff(\226)27 b(Alliance)14 +b Fg(parser)g(and)f(driver)l(,)g(for)h(symbolic)g(layout.)325 +1739 y Ff(\226)27 b(Compass)13 b Fg(parser)g(and)h(driver)l(,)f(for)h +(symbolic)f(layout.)325 1828 y Ff(\226)27 b(Modgen)13 +b Fg(parser)h(and)f(driver)l(,)g(for)i(symbolic)e(layout.)325 +1916 y Ff(\226)27 b(CIF)13 b Fg(parser)h(and)f(driver)l(,)g(for)i(r)o +(eal)e(layout.)325 2005 y Ff(\226)27 b(GDSII)13 b Fg(parser)h(and)f +(driver)l(,)g(for)h(r)o(eal)f(layout.)120 2160 y(Being)j(able)e(to)j +(understand)f(and)g(write)f(many)h(\002le)g(formats)h(is)g(a)e(must.)25 +b(First,)17 b(in)f(a)g(development)f(envir)o(on-)120 +2226 y(ment,)e(as)h(it)h(allows)f(to)g(check)f(the)h(validity)g(of)g +(tools)h(on)f(other)g(CAD)g(systems.)k(Second,)13 b(because)g(some)h +(tools)120 2292 y(ar)o(e)g(not)g(available)g(or)g(desirable)f(within)j +Ff(Alliance)p Fg(,)e(but)h(may)e(be)h(useful)i(however:)i(it)c(is)h +(possible)h(to)e(feed)g(an)120 2359 y(other)g(softwar)o(e)g(with)g(a)g +(design)f(in)i(that)e(situation.)120 2470 y(The)i(experience)e(showa)i +(that)h(many)e(of)i(these)f(formats)h(ar)o(e)e(used)h(daily)-6 +b(.)20 b(For)15 b(example,)f(the)h(design)g(that)g(we)120 +2536 y(fabricate)j(thr)o(ough)i(the)f(CMP)h(services)f(ar)o(e)g +(transmitted)f(using)j(the)e Ff(GDSII)f Fg(format.)34 +b(The)18 b(\002nal)i Ff(DRC)g Fg(on)120 2602 y(these)14 +b(\002les)g(ar)o(e)f(performed)g(using)i Ff(Cadence)d +Fe(pdverify)p Fg(.)120 2713 y(An)j(other)g(example:)i +Ff(Alliance)e Fg(does)f(not)i(have)e(a)g(fault)i(simulator)f(yet.)k +(However)14 b(this)i(kind)f(of)g(tool)g(is)h(very)120 +2780 y(useful)k(to)f(evaluate)e(the)h(fault)i(coverage)d(of)i(a)f(set)g +(of)i(vectors)e(and)g(must)h(be)f(intr)o(oduced)g(in)h(a)f +Ff(VLSI)g Fg(class.)120 2846 y(This)d(is)f(hopefully)h(easilly)e(done)h +(using)h(the)e Ff(Hilo)i Fg(output)g(of)g Ff(Alliance)e +Fg(that)h(feed)f(the)h Fe(hifault)h Fg(simulator)l(.)120 +3081 y Fn(5)80 b(Alliance)18 b(internal)g(organization)120 +3251 y Fg(The)c(complete)f Ff(Alliance)h Fg(CAD)g(system)g(contains)g +(about)g(600)f(000)g(lines)i(of)f(C)g(code,)f(and)h(over)g(600)f(leaf)g +(cells.)120 3318 y(It)e(compiles)g(and)h(runs)f(on)h(most)g +Ff(Unix)f Fg(system,)h(and)f(r)o(equir)o(es)g(the)g(basic)g(X-W)m +(indow)i(library)d(X1)m(1)g(plus)j(Motif.)120 3384 y(The)g +(distribution)i(tape)f(shows)h(that)f(ther)o(e)f(ar)o(e)g(thr)o(ee)g +(kinds)h(of)g(\002les:)203 3539 y Fc(\017)27 b Fg(common)14 +b(data)f(structur)o(es)h(and)g(manipulation)g(primitives.)203 +3650 y Fc(\017)27 b Fg(parsers/drivers)14 b(to)g(r)o(ead)f(and)g(write) +h(external)e(\002le)i(formats.)203 3760 y Fc(\017)27 +b Fg(actual)14 b(tools.)1294 3971 y(1)m(1)p eop +%%Page: 12 12 +12 11 bop 480 207 1680 3 v 479 273 3 67 v 550 253 a Fg(Pr)o(oject)p +786 273 V 103 w(transistors)p 1108 273 V 68 w(Functionality)p +2158 273 V 480 276 1680 3 v 479 342 3 67 v 569 322 a +Ff(Smal)p 786 342 V 174 w Fg(17)13 b(000)p 1108 342 V +118 w(one)h(bit)f(pr)o(ocessor)h(for)h(SIMD)e(ar)o(chitectur)o(es)p +2158 342 V 480 344 1680 3 v 479 411 3 67 v 514 391 a +Ff(Data-safe)p 786 411 V 117 w Fg(35)g(000)p 1108 411 +V 118 w(dynamic)g(data)g(encryption)g(chips)p 2158 411 +V 480 413 1680 3 v 479 479 3 67 v 574 459 a Ff(TNT)p +786 479 V 178 w Fg(60)g(000)p 1108 479 V 118 w(switch-r)o(outer)h(for)h +(T800)e(transputerss)p 2158 479 V 480 482 1680 3 v 479 +548 3 67 v 551 528 a Ff(FRISC)p 786 548 V 140 w Fg(200)g(000)p +1108 548 V 104 w(\003oating-point)i Ff(RISC)e Fg(micr)o(opr)o(ocessor)p +2158 548 V 480 550 1680 3 v 479 617 3 67 v 557 597 a +Ff(StaCS)p 786 617 V 147 w Fg(875)g(000)p 1108 617 V +104 w(V)-6 b(ery)13 b(Long)g(Instruction)i(W)-5 b(or)o(d)14 +b(pr)o(ocessor)p 2158 617 V 480 619 1680 3 v 479 685 +3 67 v 543 665 a Ff(Rapid2)p 786 685 V 133 w Fg(650)f(000)p +1108 685 V 104 w(SIMD)g(systolic)i(and)f(associative)g(pr)o(ocessor)p +2158 685 V 480 687 1680 3 v 479 754 3 67 v 554 734 a +Ff(Rcube)p 786 754 V 143 w Fg(350)f(000)p 1108 754 V +104 w(Message)g(r)o(outer)h(for)g(parallel)g(machines)p +2158 754 V 480 756 1680 3 v 737 857 a(Figur)o(e)g(4:)i(V)-5 +b(arious)15 b(chips)f(designed)f(with)i Ff(Alliance)p +Fg(.)120 1039 y Ff(Alliance)d Fg(as)g(been)e(developed)h(in)h(or)o(der) +f(to)g(simplify)i(cooperative)e(work)h(between)e(the)h(CAD)h(tool)g +(designers.)120 1105 y(The)20 b(existence)g(of)h(a)f(common)h(data)f +(structur)o(e)h(framework)f(r)o(eleaves)f(the)i(developer)f(of)h(many)f +(bur)o(dens:)120 1171 y(r)o(eading)12 b(and)g(writing)h(many)f(\002le)h +(format,)g(conceptualizing)f(the)h(VLSI)f(objects,)g(writing)h +(classical)f(high)h(level)120 1238 y(and)h(nevertheless)h(complex)f +(functions,)i(...)j(All)c(the)g Ff(Alliance)f Fg(tools)i(shar)o(e)f +(these)f(data)g(structur)o(es)h(and)f(their)120 1304 +y(r)o(elated)e(functions.)19 b(So)14 b(each)f(tool)h(communicates)g +(with)g(the)g(other)f(ones)i(smoothly)-6 b(,)14 b(by)f(construction.) +120 1539 y Fn(6)80 b(Use)20 b(of)g(Alliance)e(inside)h(our)h +(laboratory)120 1709 y Ff(Alliance)14 b Fg(is)g(used)g(for)h(both)f +(educational)f(and)g(r)o(esear)o(ch)g(purposes.)18 b(W)-5 +b(e)14 b(r)o(elate)e(our)j(experience)c(below)-5 b(.)120 +1916 y Fd(Educational)16 b(aspects)120 2065 y Fg(The)k +Ff(Alliance)f Fg(System)h(has)g(been)f(extensively)g(used)h(during)g +(the)f(past)i(eight)e(academic)f(years)h(\(89-97\))h(as)120 +2132 y(a)d(practical)f(support)j(of)f(two)g(under)o(graduate)e +(courses:)25 b(one)17 b(on)h Ff(CMOS)g(VLSI)f Fg(design,)h(the)f(other) +g(one)h(on)120 2198 y Ff(advanced)10 b(computer)h(architecture)p +Fg(.)j(These)e(initiation)h(courses)f(lasts)h(13)f(weeks)f(with)i(a)e +(2)h(hours)h(lectur)o(e)e(and)120 2264 y(4)j(hours)g(spent)h(using)g +(the)e Ff(Alliance)h Fg(system)g(per)g(week,)e(and)i(involves)h(60)e +(students)i(and)e(3)h(teachers.)120 2375 y(The)19 b(`)p +Ff(VLSI)g Fg(design')g(course)g(is)h(for)f(students)h(that)g(have)e(no) +i(pr)o(evious)g(knowledge)e(on)i Ff(VLSI)e Fg(design)h(and)120 +2442 y(mainly)d(come)g(fr)o(om)h(two)g(distinct)g(channels:)22 +b("computer)16 b(science")f(and)h("electrical)e(engineering")h(masters) +120 2508 y(of)g(sciences.)h(During)e(this)h(course,)f(students)g(ar)o +(e)f(r)o(equir)o(ed)g(to)h(design)g(and)g(implement)f(an)h +Ff(AMD2901)f Fg(com-)120 2574 y(patible)f(pr)o(ocessor)l(,)g(starting)h +(fr)o(om)g(a)f(commer)o(cial)e(data-sheet.)16 b(The)c(chip,)h(with)g(a) +f(complexity)f(of)i(about)f(2000)120 2641 y(transistors,)j(is)f +(designed)f(by)g(gr)o(oups)i(of)f(2)g(or)f(3)h(students.)k(The)13 +b(main)h(inter)o(est)f(in)h(this)h(course)e(is)i(to)f(teach)e(the)120 +2707 y(design)i(methodology)-6 b(.)16 b(Most)f(of)g(the)e +Ff(Alliance)h Fg(tools)h(ar)o(e)e(used)h(during)g(this)h(class.)120 +2818 y(The)f(`ar)o(chitectur)o(e')f(course)i(focuses)g(on)g(the)f(way)g +(pr)o(ocessor)h(ar)o(chitectur)o(e,)d(fr)o(om)j(the)f(system)h(point)g +(of)g(view)120 2884 y(and)g(not)h(fr)o(om)g(an)f(implementation)g(one.) +22 b(T)-5 b(ypical)14 b Ff(CISC)h Fg(and)g Ff(RISC)g +Fg(pr)o(ocessors)h(ar)o(e)e(studied,)i(and)f(part)g(of)120 +2951 y(them)e(modelized)g(using)i(our)f Ff(VHDL)g Fg(subset.)j(In)d +(that)g(class,)g(only)g(the)g Fe(asimut)h Fg(simulator)f(is)h(used.)120 +3061 y Ff(Alliance)h Fg(is)h(also)f(used)g(in)g(an)g(intensive)g +(graduate)f(course,)h(for)h(the)e(design)h(of)h(the)f(32)f(bits)h(micr) +o(opr)o(ocessor)120 3128 y Fe(dlx)22 b Ff(RISC)e Fg(pr)o(ocessor)i +(\226)e(30000)g(transistors)i(\226.)39 b(This)22 b(course)f(lasts)h +(two)f(months,)j(and)d(aims)g(only)g(at)g(the)120 3194 +y(implementation)14 b(:)j(the)c(high)h(level)g(behavioral)f(model)g(of) +h(the)g(pr)o(ocessor)g(is)h(given)e(to)h(the)g(students.)k(During)120 +3261 y(that)c(period)f(of)i(time,)e(all)h(the)f Ff(Alliance)h +Fg(tools)h(ar)o(e)e(used.)120 3467 y Fd(Research)18 b(projects)120 +3616 y Fg(These)g(pr)o(ojects)g(range)g(fr)o(om)h(medium)f(complexity)f +(ASICs)i(developed)e(in)i(6)f(months)i(by)e(a)g(couple)g(of)h(de-)120 +3683 y(signers)g Ff(Data-safe)p Fg(,)f Ff(TNT)p Fg(,)f +Ff(Smal)p Fg(,)j Ff(Rf264)p Fg(,etc...\))27 b(to)19 b(high)f +(complexity)g(cir)o(cuits)g(\()p Ff(FRISC)p Fg(,)f Ff(Multick)p +Fg(,)j Ff(StaCS)p Fg(,)120 3749 y Ff(Rapid2)p Fg(,)13 +b Ff(Rcube)p Fg(\))g(developed)g(by)g(a)h(team)f(of)h(PhD)g(students.) +1292 3971 y(12)p eop +%%Page: 13 13 +13 12 bop 120 260 a Fg(The)18 b(thr)o(ee)g(lar)o(gest)g(cir)o(cuits)g +(described)f(in)i(table)e(4)h(use)h(not)g(only)g(standar)o(d-cells)f +(but)h(also)g(parameterized)120 327 y(generators)d(for)i(r)o(egular)f +(blocks)g(like)f Fj(RAM)p Fg(s,)j(data-paths,)f(or)f(\003oating-point)i +(operators.)27 b(The)17 b Ff(FRISC)f Fg(and)120 393 y +Ff(TNT)k Fg(pr)o(ojects)g(successfully)i(used)f(the)f +Ff(Cadence)e Fg(and)i Ff(Compass)f Fg(place)h(and)g(r)o(oute)g(tools,)j +(and)d(ther)o(efor)o(e)120 459 y(pr)o(ove)14 b(the)g(inter)o +(operability)e(of)j(the)f Ff(Alliance)f Fg(system.)120 +570 y(A)h(pictur)o(e)f(of)i(the)f Ff(StaCS)f Fg(pr)o(ocessor)h(is)h +(shown)g(\002gur)o(e)f Ff(??)o Fg(.)120 805 y Fn(7)80 +b(Conclusion)120 975 y Fg(W)-5 b(e)13 b(ar)o(e)f(very)g(satis\002ed)i +(to)f(use)g(a)g(set)g(of)h(tools)g(of)f(our)h(own)f(for)h(teaching)e +Ff(CMOS)h(VLSI)f Fg(design)h(for)h(two)f(good)120 1042 +y(r)o(easons.)28 b(First,)18 b(we)f(simply)h(can't)f(af)o(for)o(d)h(50) +e(high)i(end)f(workstations)h(to)g(run)f(commer)o(cial)f(CAD)h(systems) +120 1108 y(like)11 b Ff(Compass)p Fg(,)g Ff(Mentor)h(Graphics)e +Fg(or)i Ff(Cadence)p Fg(.)j(Second,)c(both)h(the)g Ff(Compass)e +Fg(and)i Ff(Cadence)e Fg(system)i(have)120 1174 y(been)h(used)h(in)h(r) +o(esear)o(ch)e(pr)o(oject)h(at)f Ff(MASI)p Fg(.)h(They)g(ar)o(e)f +(powerful)i(and)f(sophisticated)h(envir)o(onments)g(but)f(ar)o(e)120 +1241 y(much)i(too)h(complex)e(for)i(novice)f(under)o(graduate)f +(students.)25 b(The)16 b(gr)o(eat)f(advantage)g(of)i(the)f +Ff(Alliance)g Fg(CAD)120 1307 y(system)i(is)g(that)f(we)h(have)f(done)g +(our)h(best)f(to)h(stick)g(to)f(the)h(basic)f(yet)f(powerful)j +(concepts)e(of)i Ff(VLSI)d Fg(design.)120 1374 y(T)-5 +b(o)21 b(each)f(tool)i(corr)o(espond)f(a)g(unique)h(functionnality)-6 +b(,)23 b(that)e(cannot)h(be)e(changed)g(or)h(worked)f(ar)o(ound)i(by) +120 1440 y(parameter)14 b(\002les.)24 b(At)16 b(last,)g(we)g +(experienced)d(that)j(the)g(technology)f(migration)h(and)f(pr)o(ocess)i +(independence)120 1507 y(ar)o(e)c(key)g(issues.)18 b(Hence,)13 +b(it)h(is)g(crucial)f(to)h(r)o(ely)f(on)h(a)g(portable)f(library)g(at)g +(the)h(symbolic)f(layout)h(level.)120 1617 y(The)g Ff(Alliance)g +Fg(package)f(is)i(now)f(in)h(use)g(all)f(over)g(the)g(world,)g(and)g +(mor)o(e)g(than)g(250)g(sites)h(have)f(r)o(egister)o(ed)e(to-)120 +1684 y(day)-6 b(.)15 b(It)10 b(is)h(available)f(thr)o(ough)h(anonymous) +g Fe(ftp)g Fg(at)g Fe(ftp.lip6.fr)p Fg(,)i(under)d(the)h +Fe(/lip6/softs/alliance)120 1750 y Fg(dir)o(ectory)-6 +b(.)120 1861 y(Ther)o(e)13 b(is)i(an)f Ff(Alliance)g +Fg(mailing)g(list,)h(wher)o(e)f(users)h(can)e(shar)o(e)h(their)g(views) +h(and)f(pr)o(oblems,)g(and)f(our)i(team)e(is)120 1927 +y(always)i(r)o(eady)e(to)i(answer)f(questions.)21 b(The)15 +b(addr)o(ess)f(of)h(this)h(mailing)e(list)i(is)f Fe +(alliance@asim.lip6.fr)p Fg(.)120 1994 y(The)e(support)j(of)e +Ff(Alliance)g Fg(can)g(be)e(joined)i(at)g Fe(alliance-support@asim.li)q +(p6.f)q(r)p Fg(.)1292 3971 y(13)p eop +%%Trailer +end +userdict /end-hook known{end-hook}if +%%EOF