ASICs...THE COURSE (1 WEEK) 1 LOW-LEVEL DESIGN ENTRY 9.1 Schematic Entry Key concepts: design entry ? electronic-design automation (EDA) ? schematic ? connectivity ? schematic entry ? schematic capture ? netlist ? documentation ? hardware description language (HDL) ? logic synthesis ? low-level design-entry Key terms and concepts: graphical design entry ? transforms an idea to a computer file ? an “old” method that periodically regains popularity ? schematic sheets ? frame ? border ? “spades” and “shovels” ? component or device ? low-cost ANSI (American National Standards Institute) and ISO (International Standards Organization) schematic sheet sizes ANSI sheet Size (inches) ISO sheet Size (cm) A 8.5 × 11 A5 21.0 × 14.8 B 11 × 17 A4 29.7 × 21.0 C 17 × 22 A3 42.0 × 29.7 D 22 × 34 A2 59.4 × 42.0 E 34 × 44 A1 84.0 × 59.4 A0 118.9 × 84.0 9 2 SECTION 9 LOW-LEVEL DESIGN ENTRY ASICS... THE COURSE IEEE-recommended dimensions and their construction for logic-gate symbols (a) NAND gate (b) exclusive-OR gate (an OR gate is a subset) Terms used in circuit schematics 1026 26 26 526 A B 13 19 4(a) (b) NAND "spade"and"shovel" exclusive-OR A B CAND OR and1 or1 carryoutINV DANDinv1 and2 sum fanout=2instance attribute:cell name net attribute:net nameconnection instance attribute:instance name connector net fanin=4 little big VDDGNDcell fanin=2 net fanout=4dot symbol ASICs... THE COURSE 9.1 Schematic Entry 3 9.1.1 Hierarchical Design Key terms and concepts: use of hierarchy to hide complexity ? hierarchical design ? subsche- matic ? child ? parent ? flat design ? flat netlist Schematic example showing hierarchical design (a) The schematic of a half-adder, the subschematic of cell HADD (b) A schematic symbol for the half adder (c) A schematic that uses the half-adder cell (d) The hierarchy of cell HADD A B Ccell: ANDinstance: and1cell: INV instance: inv1 cell: ORinstance: or1 cell: ANDinstance: and1(a) (b) AB CD cell: HADD cell: HADDinstance: ha1 cell: HADDinstance: ha2 AB CD AB CD D AB CI CO S (c) cell: ORinstance: or1 cell: HADD cell: INVinstance: INV1cell: OR instance: OR1cell: ANDinstance: and1 instance: and2(d) multiple instances ofthe same cell parent children 4 SECTION 9 LOW-LEVEL DESIGN ENTRY ASICS... THE COURSE 9.1.2 The Cell Library 9.1.3 Names 9.1.4 Schematic Icons and Symbols Key terms: modules (cells, gates, macros, books) ? schematic library (vendor-dependent) ? retargeting ? porting a design ? primitive cells or cells (flip-flops or transistors?) ? hard macro (placement) ? soft macro (connection) Key terms: cell name ? cell instance ? instance name ? icon (picture) ? symbol ? name spaces ? case sensistivity ? hierarchical names Key terms: derived icon ? derived symbol ? subcell ? vectored instance ? cardinality A cell and its subschematic (a) A schematic library containing icons for the primitive cells (b) A subschematic for a cell, DLAT, showing the instance names for the primitive cells (c) A symbol for cell DLAT D Q DLAT DENQData Flage1EN and2 and1 or1 inv1 (b) (c) schematiccell library (a) n1 n3n2 internal node external node connectornameprimitive cells Triggerinstance name cellname ASICs... THE COURSE 9.1 Schematic Entry 5 A 4-bit latch: (a) drawn as a flat schematic from gate-level primitives (b) drawn as four instances of the cell symbol DLAT (c) drawn using a vectored instance of the DLAT cell symbol with cardinality of 4 (d) drawn using a new cell symbol with cell name FourBit (a) (b) D4EN DLAT DENQ DLAT DENQ DLAT DENQ DLAT DENQ D1 Q1 EN L1 L2 L3 L4 D2 Q2 D3 Q3 D4 Q4 D3 D2 D1 Q4 Q3 Q2 Q1inv1 and1 and2 or1 DLAT DENQ (c) Q[1:4]D[1:4]EN L[1:4] DENQ (d) 4 4 FourBit inv2 inv3 inv4 differentinstancenames n1 external noden3 vectored instance vectored name bus buswidth internal node 6 SECTION 9 LOW-LEVEL DESIGN ENTRY ASICS... THE COURSE 9.1.5 Nets 9.1.6 Schematic Entry for ASICs and PCBs 9.1.7 Connections Key terms: local nets ? external nets ? delimiter ? Verilog and VHDL naming Key terms: component ? TTL SN74LS00N ? Quad 2-input NAND ? component parts ? reference designator ? R99 ? pin number ? part assignment Key terms: terminals ? pins, connectors, or signals ? wire segments or nets ? bus or buses (not busses) ? bundle or array ? breakout ? ripper (EDIF) ? extractor ? swizzle (Compass datapath) An example of the use of a bus to simplify a schematic (a) An address decoder without using a bus (b) A bus with bus rippers simplifies the schematic and reduces the possibility of making a mistake in creating and reading the schematic D[1]D[2] E[1]E[2] DQ0DQ1DQ2DQ3 DQ4DQ5DQ6 DQ7 DQ2DQ3DQ6DQ7 DQ0DQ2DQ4 DQ5 DQ0DQ1DQ2 DQ3 8bus ripper01 23 0123 A B CD[1] D[2] E[1]E[2] 0123 0123 A B C (a) (b) ASICs... THE COURSE 9.1 Schematic Entry 7 9.1.8 Vectored Instances and Buses 9.1.9 Edit-in-Place 9.1.10 Attributes A 16-bit latch: (a) drawn as four instances of cell FourBit (b) drawn as a cell named SixteenBit (c) drawn as four multiple instances of cell FourBit Key terms: edit-in-place ? alias ? dictionary of names Key terms: name ? identifier ? label ? attribute ? property ? NFS filenames (28 characters) DENQ4 4 FourBit DENQ4 4 FourBit NB1 NB2 DENQ4 4 FourBit NB3 DENQ4 4 FourBit NB4 D[9:12] D[13:16] D[5:8] D[1:4] Q[1:4] Q[5:8] Q[9:12] Q[13:16]EN DENQ FourBit[1:4] 4 4 4 4 Q[1:16]EN D1 DENQ16 16 SixteenBit D[1:16]EN Q[1:16] D[9:12] 4 (a) (c) (b) mismatch incardinality vectoredbus vectoredinstance mismatch incardinality 8 SECTION 9 LOW-LEVEL DESIGN ENTRY ASICS... THE COURSE 9.1.11 Netlist Screener 9.1.12 Schematic-Entry Tools 9.1.13 Back-Annotation Key terms: schematic or netlist screener catches errors at an early stage ? handle (to find com- ponents) ? snap to grid ? wildcard matching ? automatic naming ? datapath (multiple instances) ? vectored cell instance ? vectored instance ? cell cardinality ? cardinality ? terminal polarity ? ter- minal direction ? fanout ? fanin ? standard load Key terms: icon edit-in-place ? timestamp or datestamp ? versions ? version number ? design manager or library manager ? version history ? check-out ? undo ? rubber banding ? global nets ? connectors ? off-page connector ? multipage connector ? fanout ? fanin ? standard load Key terms: logical design ? prelayout simulation? physical design ? parasitic capacitance ? interconnect delay ? back-annotation ? postlayout simulation ASICs... THE COURSE 9.2 Low-Level Design Languages 9 9.2 Low-Level Design Languages 9.2.1 ABEL Key terms and concepts: changes to a schematic are tedious ? no standards for schematics ? PLD design entry ? a design language is better than schematic entry ? a low-level design language is not as powerful as logic synthesis ? legacy code ABEL Statement Example Comment Module module MyModule You can have multiple modules. Title title 'Title in a String' A string is a character series between quotes. Device MYDEV device '22V10' ; MYDEV is Device ID for documenta- tion. 22V10 is checked by the compiler. Comment "comments go between double quotes" "end of line is end of comment The end of a line signifies the end of a comment; there is no need for an end quote. @ALTER- NATE @ALTERNATE "use alternate symbols operator alternate default AND OR NOT XOR XNOR * + / :+: :*: & # ! $ !$ Pin declara- tion MYINPUT pin 2; I3, I4 pin 3, 4 ; /MYOUTPUT pin 22; IO3,IO4 pin 21,20 ; Pin 22 is the IO for input on pin 2 for a 22V10. MYOUTPUT is active-low at the chip pin. Signal names must start with a letter. Equations equations Defines combinational logic. IO4 = HELPER ; HELPER = /I4 ; Two-pass logic Assignments MYOUTPUT = /MYINPUT ; Equals '=' is unlocked assignment. 10 SECTION 9 LOW-LEVEL DESIGN ENTRY ASICS... THE COURSE Example: module MUX4 title '4:1 MUX' MyDevice device 'P16L8' ; @ALTERNATE "inputs A, B, /P1G1, /P1G2 pin 17,18,1,6 "LS153 pins 14,2,1,15 P1C0, P1C1, P1C2, P1C3 pin 2,3,4,5 "LS153 pins 6,5,4,3 P2C0, P2C1, P2C2, P2C3 pin 7,8,9,11 "LS153 pins 10,11,12,13 "outputs P1Y, P2Y pin 19, 12 "LS153 pins 7,9 equations P1Y = P1G*(/B*/A*P1C0 + /B*A*P1C1 + B*/A*P1C2 + B*A*P1C3); P1Y = P1G*(/B*/A*P1C0 + /B*A*P1C1 + B*/A*P1C2 + B*A*P1C3); end MUX4 IO3 := I4 ; Clocked assignment operator (regis-tered IO) Signal sets D = [D0, D1, D2, D3] ; Q = [Q0, Q1, Q2, Q3]; A signal set, an ABEL bus Q := D ; 4-bit-wide register Suffix MYOUTPUT.RE = CLR ; Register reset MYOUTPUT.PR = PRE ; Register preset Addition COUNT = [D0, D1, D2]; COUNT := COUNT + 1; Can’t use @ALTERNATE if you use '+' to add. Enable ENABLE IO3 = IO2; IO3 = MYINPUT; Three-state enable (ENABLE is a key- word). IO3 must be a three-state pin. Constants K = [1, 0, 1] ; K is 5. Relational IO# = D == K5 ; Operators: == != < > <= >= End end MyModule Last statement in module ASICs... THE COURSE 9.2 Low-Level Design Languages 11 9.2.2 CUPL You may encode state machines as truth tables in CUPL: FIELD input = [in1..0]; FIELD output = [out3..0]; TABLE input => output {00 => 01; 01 => 02; 10 => 04; 11 => 08; } CUPL file for a 4-bit counter (for an ATMEL PLD) that illustrates extensions: Name 4BIT; Device V2500B; /* inputs */ Key terms and concepts: CUPL is a PLD design language from Logical Devices ? CUPL 4.0 ? extension ? fitter ? Atmel ATV2500B ? complex PLD ? “buried” features ? pin-number tables ? skeleton headers and pin declarations CUPL statements for state-machine entry Statement Description IF NEXT Conditional next state transition IF NEXT OUT Conditional next state transition with synchronous output NEXT Unconditional next state transition NEXT OUT Unconditional next state transition with asynchronous out- put OUT Unconditional asynchronous output IF OUT Conditional asynchronous output DEFAULT NEXT Default next state transition DEFAULT OUT Default asynchronous output DEFAULT NEXT OUT Default next state transition with synchronous output SEQUENCE BayBridgeTollPlaza { PRESENT red IF car NEXT green OUT go; /* conditional synchronous output */ DEFAULT NEXT red; /* default next state */ PRESENT green NEXT red; } /* unconditional next state */ 12 SECTION 9 LOW-LEVEL DESIGN ENTRY ASICS... THE COURSE pin 1 = CLK; pin 3 = LD_; pin 17 = RST_; pin [18,19,20,21] = [I0,I1,I2,I3]; /* outputs */ pin [4,5,6,7] = [Q0,Q1,Q2,Q3]; field CNT = [Q3,Q2,Q1,Q0]; /* equations */ Q3.T = (!Q2 & !Q1 & !Q0) & LD_ & RST_ /* count down */ # Q3 & !RST_ /* ReSeT */ # (Q3 $ I3) & !LD_; /* LoaD*/ Q2.T = (!Q1 & !Q0) & LD_ & RST_ # Q2 & !RST_ # (Q2 $ I2) & !LD_; Q1.T = !Q0 & LD_ & RST_ # Q1 & !RST_ # (Q1 $ I1) & !LD_; Q0.T = LD_ & RST_ # Q0 & !RST_ # (Q0 $ I0) & !LD_; CNT.CK = CLK; CNT.OE = 'h'F; CNT.AR = 'h'0; CNT.SP = 'h'0; CUPL extensions guide the logic fitter, for example: output.ext = (Boolean expression); .OEis output enable .CKmarks the clock .T configures sequential logic as T flip-flops .OE(wired high) is an output enable .AR(wired low) is an asynchronous reset .SP(wired low) is an synchronous preset ASICs... THE COURSE 9.2 Low-Level Design Languages 13 CUPL 4.0 extensions Exten- sion Explanation Exten- sion Explanation D L D input to a D register DFB R D register feedback of combinational output L L L input to a latch LFB R Latched feedback of combinational output J, K L J-K-input to a J-K register TFB R T register feedback of combinational output S, R L S-R input to an S-R register INT R Internal feedback T L T input to a T register IO R Pin feedback of registered output DQ R D output of an input D register IOD/T R D/T register on pin feedback path selection LQ R Q output of an input latch IOL R Latch on pin feedback path selection AP, AR L Asynchronous preset/reset IOAP, IOAR L Asynchronous preset/reset of register on feedback path SP, SR L Synchronous preset/reset IOSP, IOSR L Synchronous preset/reset of register on feedback path CK L Product clock term (async.) IOCK L Clock for pin feedback register OE L Product-term output enable APMUX, ARMUX L Asynchronous preset/reset multiplexor selection CA L Complement array CKMUX L Clock multiplexor selector PR L Programmable preload LEMUX L Latch enable multiplexor selector CE L CE input of a D-CE register OEMUX L Output enable multiplexor selector LE L Product-term latch enable IMUX L Input multiplexor selector of two pins OBS L Programmable observability of buried nodes TEC L Technology-dependent fuse selection BYP L Programmable register bypass T1 L T1 input of 2-T register 14 SECTION 9 LOW-LEVEL DESIGN ENTRY ASICS... THE COURSE ABEL and CUPL pin declarations for an ATMEL ATV2500B ABEL CUPL device_id device 'P2500B'; "device_id used for JEDEC filename I1,I2,I3,I17,I18 pin 1,2,3,17,18; O4,O5 pin 4,5 istype 'reg_d,buffer'; O6,O7 pin 6,7 istype 'com'; O4Q2,O7Q2 node 41,44 istype 'reg_d'; O6F2 node 43 istype 'com'; O7Q1 node 220 istype 'reg_d'; device V2500B; pin [1,2,3,17,18] = [I1,I2,I3,I17,I18]; pin [7,6,5,4] = [O7,O6,O5,O4]; pinnode [41,65,44] = [O4Q2,O4Q1,O7Q2]; pinnode [43,68] = [O6Q2,O7Q1]; ASICs... THE COURSE 9.2 Low-Level Design Languages 15 9.2.3 PALASM Example: TITLE video ; shift register CHIP video PAL20X8 CK /LD D0 D1 D2 D3 D4 D5 D6 D7 CURS GND NC REV Q7 Q6 Q5 Q4 Q3 Q2 Q1 Q0 /RST VCC STRING Load 'LD*/REV*/CURS*RST' ; load data STRING LoadInv 'LD*REV*/CURS*RST' ; load inverted of data Key terms and concepts: PALASM is a PLD design language from AMD/MMI ? PALASM 2 ? ordering of the pin numbers is important ? DEVICE ? often need manufacturer’s data sheet PALASM 2 Statement Example Comment Chip CHIP abc 22V10 Specific PAL type CHIP xyz USER Free-form equation entry Pinlist CLK /LD D0 D1 D2 D3 D4 GND NC Q4 Q3 Q2 Q1 Q0 /RST VCC Part of CHIP statement; PAL pins in numerical order starting with pin 1 String STRING string_name 'text' Before EQUATIONS statement Equations EQUATIONS After CHIP statement A = /B Logical negation A = B * C Logical AND A = B + C Logical OR A = B :+: C Logical exclusive-OR A = B :*: C Logical exclusive-NOR Polarity inversion /A = /(B + C) Same as A = B + C Assignment A = B + C Combinational assignment A := B + C Registered assignment Comment A = B + C ; comment Comment Functional equa- tion name.TRST Output enable control name.CLKF Register clock control name.RSTF Register reset control name.SETF Register set control 16 SECTION 9 LOW-LEVEL DESIGN ENTRY ASICS... THE COURSE STRING Shift '/LD*/CURS*/RST' ; shift data from MSB to LSB EQUATIONS /Q0 := /D0*Load+D0*LoadInv:+:/Q1*Shift+RST /Q1 := /D1*Load+D1*LoadInv:+:/Q2*Shift+RST /Q2 := /D2*Load+D2*LoadInv:+:/Q3*Shift+RST /Q3 := /D3*Load+D3*LoadInv:+:/Q4*Shift+RST /Q4 := /D4*Load+D4*LoadInv:+:/Q5*Shift+RST /Q5 := /D5*Load+D5*LoadInv:+:/Q6*Shift+RST /Q6 := /D6*Load+D6*LoadInv:+:/Q7*Shift+RST /Q7 := /D7*Load+D7*LoadInv:+:Shift+RST; ASICs... THE COURSE 9.3 PLA Tools 17 9.3 PLA Tools Key terms and concepts: developed at UC Berkeley ? eqntott input format ? espresso logic-minimization program ? widely used tools in the 1980s ? important stepping stones to modern logic synthesis software A PLA tools example Input (6 minterms): F1 = A|B|!C; F2 = !B&C; F3 = A&B|C; A B C F1 F2 F3 eqntott output espresso output 0 0 0 1 0 0 .i 3 .o 3 .p 6 --0 100 --1 001 -01 010 -1- 100 1-- 100 11- 001 .e .i 3 .o 3 .p 6 1-- 100 11- 001 --0 100 -01 011 -11 101 .e 0 0 1 0 1 1 0 1 0 1 0 0 0 1 1 1 0 1 1 0 0 1 0 0 1 0 1 1 1 1 1 1 0 1 0 1 1 1 1 1 0 1 Output (5 minterms): F1 = A|!C|(B&C); F2 = !B&C; F3 = A&B|(!B&C)|(B&C); 18 SECTION 9 LOW-LEVEL DESIGN ENTRY ASICS... THE COURSE The format of the input and output files used by the PLA design tool espresso Expression Explanation # comment # must be first character on a line [d] Decimal number [s] Character string .i [d] Number of input variables .o [d] Number of output variables .p [d] Number of product terms .ilb [s1] [s2]... [sn] Names of the binary-valued variables must be after .i and .o .ob [s1] [s2]... [sn] Names of the output functions must be after .i and .o .type f Following table describes the ON set; DC set is empty .type fd Following table describes the ON set and DC set .type fr Following table describes the ON set and OFF set .type fdr Following table describes the ON set, OFF set, and DC set. .e Optional, marks the end of the PLA description. The format of the plane part of the input and output files for espresso Plane Character Explanation I 1 The input literal appears in the product term I 0 The input literal appears complemented in the product term I - The input literal does not appear in the product term O 1 or 4 This product term appears in the ON set O 0 This product term appears in the OFF set O 2 or - This product term appears in the don’t care set O 3 or ~ No meaning for the value of this function ASICs... THE COURSE 9.4 EDIF 19 9.4 EDIF 9.4.1 EDIF Syntax Key terms: electronic design interchange format (EDIF) ? EDIF version 2 0 0 ? EDIF 3 0 0 han- dles buses, bus rippers, and buses across schematic pages ? EDIF 4 0 0 includes new exten- sions for PCB and multichip module (MCM) data ? Library of Parameterized Modules (LPM) ? Electronic Industries Association (EIA) ? ANSI/EIA Standard 548-1988 Key terms: EDIF looks like Lisp or Postscript ? a “write-only” language ? (keywordName {form}) ? keywords ? forms ? “define before use” ? identifiers ? &clock, Clock, and clock are the same ? (e 14 -1) is 1.4 ? scale factor ? technology section ? numberDefinition ? scale ? "A quote is % 34 %"is a string with an embedded double-quote character The hierarchical nature of an EDIF file EDIF filelibrarylibrary technologycell cellviewview interfacecontents 20 SECTION 9 LOW-LEVEL DESIGN ENTRY ASICS... THE COURSE 9.4.2 An EDIF Netlist Example EDIF file for the halfgate netlist (edif halfgate_p (edifVersion 2 0 0) (edifLevel 0) (keywordMap (keywordLevel 0)) (status (written (timeStamp 1996 7 10 22 5 10) (program "COMPASS Design Automation -- EDIF Interface" (version "v9r1.2 last updated 26-Mar- 96")) (author "mikes"))) (library xc4000d (edifLevel 0) (technology (numberDefinition ) (simulationInfo (logicValue H) (logicValue L))) (cell (rename INV "inv") (cellType GENERIC) (view COMPASS_mde_view (viewType NETLIST) (interface (port I (direction INPUT)) (port O (direction OUTPUT)) (designator "@@Label"))))) (library working (edifLevel 0) (technology (numberDefinition ) (simulationInfo (logicValue H) (logicValue L))) (cell (rename HALFGATE_P "halfgate_p") (cellType GENERIC) (view COMPASS_nls_view (viewType NETLIST) (interface (port myInput (direction INPUT)) (port myOutput (direction OUTPUT)) (designator "@@Label")) (contents (instance B1_i1 (viewRef COMPASS_mde_view (cellRef INV (libraryRef xc4000d)))) (net myInput (joined (portRef myInput) (portRef I (instanceRef B1_i1)))) (net myOutput (joined (portRef myOutput) (portRef O (instanceRef B1_i1)))) (net VDD (joined )) (net VSS (joined )))))) (design HALFGATE_P (cellRef HALFGATE_P (libraryRef working)))) ASICs... THE COURSE 9.4 EDIF 21 9.4.3 An EDIF Schematic Icon An EDIF view of an inverter icon The coordinates shown are in EDIF units. The crosses that show the text location origins and the dotted bounding box do not print as part of the icon. Pin_2 Pin_1INV instance cell Value (76, -32) (0, 0) 22 SECTION 9 LOW-LEVEL DESIGN ENTRY ASICS... THE COURSE 9.4.4 An EDIF Example EDIF file for a standard-cell schematic icon (figure icon_FG (path (pointList (pt 0 20) (pt 10 20))) (path (pointList (pt 0 0) (pt 10 0))) (path (pointList (pt 10 -5) (pt 10 25))) (path (pointList (pt 10 -5) (pt 30 -5))) (path (pointList (pt 10 25) (pt 30 25))) (path (pointList (pt 45 10) (pt 60 10))) (openShape (curve (arc (pt 30 -5) (pt 45 10) (pt 30 25))))) (boundingBox (rectangle (pt -15 -28) (pt 134 27))) (keywordDisplay instance (display icon_FG (origin (pt 20 29)))) (propertyDisplay label (display icon_FG (origin (cellType GENERIC) (view Icon_view (viewType SCHEMATIC) (interface (port A2 (direction INPUT)) (port A1 (direction INPUT)) (port Z (direction OUTPUT)) (property label (string "")) (symbol (portImplementation (name A2 (display connector_FG (origin (pt -5 1)))) (connectLocation (figure connector_FG (dot (pt 0 0))))) (portImplementation (name A1 (display connector_FG (origin (pt -5 21)))) (connectLocation (figure connector_FG (dot (pt 0 20))))) (portImplementation (name Z (display connector_FG (origin (pt 60 15)))) (connectLocation (figure connector_FG (dot (pt 60 10))))) (edif pvsc370d (edifVersion 2 0 0) (edifLevel 0) (keywordMap (keywordLevel 0)) (status (written (timeStamp 1993 2 9 22 38 36) (program "COMPASS" (version "v8")) (author "mikes"))) (library pvsc370d (edifLevel 0) (technology (numberDefinition ) (figureGroup connector_FG (color 100 100 100) (textHeight 30) (visible (true ))) (figureGroup icon_FG (color 100 100 100) (textHeight 30) (visible (true ))) (figureGroup instance_FG (color 100 100 100) (textHeight 30) (visible (true ))) (figureGroup net_FG (color 100 100 100) (textHeight 30) (visible (true ))) (figureGroup bus_FG (color 100 100 100) (textHeight 30) (visible (true )) (pathWidth 4))) (cell an02d1 ASICs... THE COURSE 9.5 CFI Design Representation 23 9.5 CFI Design Representation 9.5.1 CFI Connectivity Model Compass and corresponding Cadence figureGroup names Compass name Cadence name Compass name Cadence name connector_FG pin net_FG wire icon_FG device bus_FG not used instance_FG instance The bounding box problem (a) The original bounding box for the an02d1 icon (b) Problems in Cadence Composer due to overlapping bounding boxes (c) A “shrink-wrapped” bounding box created using Cadence SKILL Key terms: CAD Framework Initiative (CFI) ? design representation (DR) ? information model (IM) ? CFI started as an attempt to standardize schematic entry ? CFI ended up as an attempt to close the stable door after the horse had bolted Key terms: EXPRESS language ? EXPRESS-G ? schema ? Base Connectivity Model (BCM) ? five-box model ? an elegant method to represent complex notions an02d11x I0a1a2 z an02d11x I1a1a2 z [@cellname]1x [@instanceName]a1a2 z [@cellname]1x [@instanceName]a1a2 z (a) (b) (c)bounding box autoroute 24 SECTION 9 LOW-LEVEL DESIGN ENTRY ASICS... THE COURSE Examples of EXPRESS-G (a) Each day in January has a number from 1 to 31 (b) A shopping list may contain a list of items (c) An EXPRESS-G model for a family: “Men, women, and children are people.” “A man can have one woman as a wife, but does not have to.” “A wife can have one man as a husband, but does not have to.” “A man or a woman can have several children.” “A child has one father and one mother.” days inJanuary L[1:31] daynumber S[0:?] groceryitemshoppinglist man woman child wife 1 husband 1 mother 1children S[0:?]father 1children S[0:?] person (a) (b) (c) ASICs... THE COURSE 9.5 CFI Design Representation 25 The original “five-box” model of electrical connectivity. (There are actually six boxes or types in this figure; the Library type was added later.) “A library contains cells.” “Cells have ports, contain nets, and can contain other cells.” “Cell instances are copies of a cell and have port instances.” “A port instance is a copy of the port in the library cell.” “You connect to a port using a net.” “Nets connect port instances together.” Cell Cell Inst containsS[0:?] Library hasdescriber containsS[0:?] Net Port Inst PortcontainsS[0:?]presents S[0:?] connectsconnects S[0:?] hasdescriberpresents S[0:?] 26 SECTION 9 LOW-LEVEL DESIGN ENTRY ASICS... THE COURSE SCHEMA family_model; ENTITY person ABSTRACT SUPERTYPE OF (ONEOF (man, woman, child)); name: STRING; date of birth: STRING; END_ENTITY; ENTITY man SUBTYPE OF (person); wife: SET[0:1] OF woman; children: SET[0:?] OF child; END_ENTITY; ENTITY woman SUBTYPE OF (person); husband: SET[0:1] OF man; children: SET[0:?] OF child; END_ENTITY; ENTITY child SUBTYPE OF (person); father: man; mother: woman; END_ENTITY; END_SCHEMA; ASICs... THE COURSE 9.6 Summary 27 9.6 Summary Key concepts: Schematic entry using a cell library Cells and cell instances, nets and ports Bus naming, vectored instances in datapath Hierarchy Editing cells PLD languages: ABEL, PALASM, and CUPL Logic minimization The functions of EDIF CFI representation of design information