Low-Level Design Entry 9
Low-Level Design Entry 9
Low-Level Design Entry 9
LOW-LEVEL 9
DESIGN ENTRY
1
2 SECTION 9 LOW-LEVEL DESIGN ENTRY ASICS... THE COURSE
(a) (b)
26
19
A
4 26
13 5
10
26
B
"spade" 26
and
"shovel"
NAND exclusive-OR
instance attribute:
fanout=2
cell name
dot AND
A carryout
C net fanout=4 net fanin=4
B
and1 INV
net attribute: little big
net name
connection symbol inv1
OR AND
sum
D
and2
or1 GND
instance attribute: cell fanin=2 connector VDD
instance name
Key terms and concepts: use of hierarchy to hide complexity • hierarchical design • subsche-
matic • child • parent • flat design • flat netlist
cell: AND
instance: and1
A C
B AC
cell: INV instance: inv1 BD
D cell: HADD
cell: OR cell: AND
instance: or1 instance: and1
CI BD S cell: AND
children instance: and1
cell: HADD instance: and2
instance: ha2
(c) (d)
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)
9.1.3 Names
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 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
6 SECTION 9 LOW-LEVEL DESIGN ENTRY ASICS... THE COURSE
9.1.5 Nets
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
9.1.7 Connections
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)
DQ7
C DQ7 DQ6 C
3 3
D[1] 2 D[1] 2 DQ6 DQ3
1 1 DQ5 DQ2
D[2] 0 D[2] 0 DQ4 DQ5
B DQ4 B
bus ripper 8 DQ2
DQ3 DQ0
3 3 DQ3
E[1] 2 A E[1] 2 DQ2 A
DQ2
1 1 DQ1
E[2] 0 E[2] 0 DQ0 DQ1
DQ0
(a) (b)
NB1
4 4 16 16
D[1:4] DQ Q[1:4] D[1:16] DQ Q[1:16]
EN EN EN
FourBit SixteenBit
NB2 (b)
4 4
D[5:8] DQ Q[5:8]
EN
FourBit
NB3
4 4 D1 vectored
D[9:12] DQ Q[9:12] bus vectored
instance
4
EN
D[9:12]
FourBit 4 4
DQ Q[1:16]
4
NB4 EN EN
4 4 4 mismatch in
D[13:16] DQ Q[13:16] cardinality
FourBit[1:4]
EN mismatch in
EN
cardinality
FourBit
(a) (c)
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
9.1.9 Edit-in-Place
9.1.10 Attributes
Key terms: name • identifier • label • attribute • property • NFS filenames (28 characters)
8 SECTION 9 LOW-LEVEL DESIGN ENTRY ASICS... THE COURSE
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
9.1.13 Back-Annotation
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.1 ABEL
ABEL
Statement Example Comment
Module module MyModule You can have multiple modules.
Title A string is a character series between
title 'Title in a String'
quotes.
Device MYDEV is Device ID for documenta-
MYDEV device '22V10' ; tion.
22V10 is checked by the compiler.
Comment "comments go between double The end of a line signifies the end of a
quotes" comment; there is no need for an end
"end of line is end of quote.
comment
@ALTER- @ALTERNATE "use alternate
operator alternate default
NATE symbols
AND * &
OR + #
NOT / !
XOR :+: $
XNOR :*: !$
Pin declara- Pin 22 is the IO for input on pin 2 for a
tion MYINPUT pin 2; I3, I4 pin 3, 22V10.
4 ;
MYOUTPUT is active-low at the chip
/MYOUTPUT pin 22; IO3,IO4 pin
pin.
21,20 ;
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
ASICs... THE COURSE 9.2 Low-Level Design Languages 11
9.2.2 CUPL
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
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 */
CUPL file for a 4-bit counter (for an ATMEL PLD) that illustrates extensions:
9.2.3 PALASM
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 Part of CHIP statement; PAL pins in
NC Q4 Q3 Q2 Q1 Q0 /RST VCC 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- name.TRST Output enable control
tion
name.CLKF Register clock control
name.RSTF Register reset control
name.SETF Register set control
Example:
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]... Names of the binary-valued variables must be after .i and .o
[sn]
.ob [s1] [s2]... Names of the output functions must be after .i and .o
[sn]
.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
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
EDIF file
library
library
technology
cell
The hierarchical nature of an EDIF file cell
view
view
interface
contents
20 SECTION 9 LOW-LEVEL DESIGN ENTRY ASICS... THE COURSE
(0, 0)
cell
Value
instance
(76, -32)
autoroute
[@instanceName] I0 I1 [@instanceName]
a1 1x z a1 1x z a1 1x z a1 1x z
a2 a2 a2 a2
[@cellname] an02d1 an02d1 [@cellname]
bounding box
(a) (b) (c)
Key terms: EXPRESS language • EXPRESS-G • schema • Base Connectivity Model (BCM) •
five-box model • an elegant method to represent complex notions
24 SECTION 9 LOW-LEVEL DESIGN ENTRY ASICS... THE COURSE
(a) (b)
person
husband 1
child
father 1 mother 1
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.”
ASICs... THE COURSE 9.5 CFI Design Representation 25
Library
contains
S[0:?]
presents S[0:?]
Cell Port
contains
S[0:?]
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.”
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