Asic Design: RK Prasad Assistant Professor Department of Ece
Asic Design: RK Prasad Assistant Professor Department of Ece
RK PRASAD
ASSISTANT PROFESSOR
DEPARTMENT OF ECE
11/7/2019 RK PRASAD
• Types of ASICs – Design flow – Economics of
ASICs – ASIC cell libraries – CMOS logic cell data
path logic cells – I/O cells – cell compilers.
• ASIC Library design: Transistors as resistors –
parasitic capacitance – logical effort
• programmable ASIC design software: Design
system – logic synthesis – half gate ASIC.
• Low level design entry: Schematic entry – low
level design languages – PLA tools – EDIF – An
overview of VHDL and verilog. Logic synthesis in
verilog and & VHDL simulation.
11/7/2019 RK PRASAD
BOOKS
TEXT BOOKS
1.Application specific Integrated Circuits”, J.S. Smith, Addison
Wesley.
2. Principles of CMOS VLSI Design : A System Perspective, N. Westle & K.
Eshraghian ,Addison– Wesley Pub.Co.1985.
REFERENCES
1.Basic VLSI Design :Systems and Circuits, Douglas A. Pucknell &
Kamran Eshraghian,Prentice Hall of India Private Ltd. , New Delhi ,
1989.
2.Introduction to VLSI System,C. Mead & L. Canway, Addison
Wesley Pub
3.Introduction to NMOS & VLSI System Design, A. Mukharjee,
Prentice Hall,
4.The Design & Analysis of VLSI Circuits, L. A. Glassey & D. W.
Dobbepahl, Addison Wesley
Pub Co. 1985.
5.Digital Integrated Circuits: A Design Perspective, Jan A. Rabey, Prentice
Hall of India Pvt Ltd
11/7/2019 RK PRASAD
INTRODUCTION
11/7/2019 RK PRASAD
ASIC - INTRODUCTION
• An ASIC (pronounced “a-sick”; bold typeface
defines a new term) is an application-specific
integrated circuit
In Integrated Circuit (IC) designed to perform a specific
function for a specific application
As opposed to a standard, general purpose off-the-
shelf part such as a commercial microprocessor or a
7400 series IC
Gate equivalent - a unit of size measurement
corresponding to a 4 transistor gate equivalent (e.g. a 2
input NOR gate)
11/7/2019 RK PRASAD
• As the name indicates, ASIC is a non-standard
integrated circuit that is designed for a specific
use or application.
• Generally an ASIC design will be undertaken for
a product that will have a large production run ,
and the ASIC may contain a very large part of the
electronics needed on a single integrated circuit.
• Examples for ASIC Ics are : a chip for a toy
bear that talks; a chip for a satellite; a chip
designed to handle the interface between memory
and a microprocessor for a workstation CPU; and
a chip containing a microprocessor as a cell
together with other logic.
11/7/2019 RK PRASAD
ASIC vs Standard IC
Standard ICs – ICs sold as Standard Parts
SSI/LSI/ MSI IC such as MUX, Encoder, Memory Chips, or
Microprocessor IC
Application Specific Integrated Circuits (ASIC) – A Chip
for Toy Bear, Auto-Mobile Control Chip, Different Communication Chips [
GRoT: ICs not Found in Data Book]
Concept Started in 1980s
An IC Customized to a Particular System or Application –
Custom ICs
Digital Designs Became a Matter of Placing of Fewer CICs or ASICs
plus Some Glue Logic
Reduced Cost and Improved Reliability
Application Specific Standard Parts (ASSP) – Controller Chip
for PC or a Modem
11/7/2019 RK PRASAD
Levels of integration
SSI - Small scale integration
100 transistors per cubic centimeter
MSI - Medium scale integration
1000 transistors per cubic centimeter
increased the range of integrated logic available to counters and similar,
larger scale, logic functions
LSI - Large scale integration
10000 transistors per cubic centimeter
packed even larger logic functions, such as the first microprocessors, into a
single chip
VLSI - Very large scale integration
1 million transistors per cubic centimeter
offers 64-bit microprocessors, complete with cache memory and floating-
point arithmetic units—well over a million transistors—on a single piece of
silicon
USLI - Ultra large scale integration
1 Billion transistors per cubic centimeter
All advanced systems
11/7/2019 RK PRASAD
Implementation technology
– TTL –Transistor Transistor technology
11/7/2019 RK PRASAD
An Integrated Circuit
11/7/2019 RK PRASAD
Types of ASICs
Full-Custom ASICs: Possibly all logic cells and all mask layers customized
Semi-Custom ASICs: all logic cells are pre-designed and some (possibly all)
mask layers customized
Types of ASICs
Full-Custom ICs/Fixed ASICs and Programmable ASICs
Wafer : A circular piece of pure silicon (10-15 cm in dia, but
wafers of 30 cm dia are expected soon-IEEE micro-
Sep/Oct. 1999, pp 34-43)
Wafer Lot: 5 ~ 30 wafers, each containing hundreds of
chips(dies) depending upon size of the die
Die: A rectangular piece of silicon that contains one IC
design
Mask Layers: Each IC is manufactured with successive
mask layers(10 – 15 layers)
First half-dozen or so layers define transistors
Other half-dozen or so define Interconnect
11/7/2019 RK PRASAD
Types of ASICs – Cont’d
• Full-Custom ASICs
• Standard-Cell–Based ASICs
• Gate-Array–Based ASICs
• Channeled Gate Array
• Channel Less Gate Array
• Structured Gate Array
• Programmable Logic Devices
• Field-Programmable Gate Arrays
11/7/2019 RK PRASAD
Types of ASICs – Cont’d
Full-Custom ASICs
Include some (possibly all) customized logic cells
Have all their mask layers customized
Full-custom ASIC design makes sense only
When no suitable existing libraries exist
Existing library cells are not fast enough
The available pre-designed/pre-tested cells consume too much
power that a design can allow
The available logic cells are not compact enough to fit
ASIC technology is new or/and so special that no cell library exits.
Offer highest performance and lowest cost (smallest die
size) but at the expense of increased design time, complexity,
higher design cost and higher risk.
Some Examples: High-Voltage Automobile Control Chips, Ana-Digi
Communication Chips, Sensors and Actuators
11/7/2019 RK PRASAD
Full-Custom ASICs(HAND HELD)
• All mask layers are customized in a full-custom
ASIC
– Generally, the designer lays out all cells by hand
– Some automatic placement and routing may be done
– Critical (timing) paths are usually laid out completely by
hand
• Full-custom design offers the highest performance
and lowest part cost (smallest die size) for a given
design
• The disadvantages of full-custom design include
increased design time, complexity, design expense,
and highest risk
11/7/2019 RK PRASAD
Full-Custom ASICs(HAND HELD) Contd….
• Microprocessors (strategic silicon) were
exclusively full-custom, but designers are
increasingly turning to semicustom ASIC
techniques in this area as well
• Other examples of full-custom ICs or ASICs are
requirements for high-voltage (automobile),
analog/digital (communications), sensors and
actuators, and memory (DRAM)
11/7/2019 RK PRASAD
Standard-Cell-Based ASICs
• A cell-based ASIC ( CBIC —“sea-
bick”)
• Standard cells
• Possibly mega cells , mega
functions , full-custom blocks ,
system-level macros( SLMs ), fixed
blocks , cores , or Functional
Standard Blocks ( FSBs )
• All mask layers are customized -
transistors and interconnect
– Automated buffer sizing,
placement and routing
• Custom blocks can be embedded
• Manufacturing lead time is about
eight weeks.
11/7/2019 RK PRASAD
Standard Cell Layout
11/7/2019 RK PRASAD
Standard Cell ASIC Routing
A “wall” of standard cells forms a flexible block
Metal2 may be used in a feedthrough cell to cross over cell rows
that use metal1 for wiring
Other wiring cells: spacer cells , row-end cells , and power cells
11/7/2019 RK PRASAD
Gate-Array-Based ASICs
• In a gate-array-based ASIC, the transistors are
predefined on the silicon wafer
• The predefined pattern of transistors is called
the base array
• The smallest element that is replicated to
make the base array is called the base or
primitive cell
• The top level interconnect between the
transistors is defined by the designer in custom
masks - Masked Gate Array (MGA)
11/7/2019 RK PRASAD
Design is performed by connecting
predesigned and characterized logic cells
from a library (macros)
After validation, automatic placement and
routing are typically used to convert the
macro-based design into a layout on the
ASIC using primitive cells
Types of MGAs:
Channeled Gate Array
Channelless Gate Array
Structured Gate Array
11/7/2019 RK PRASAD
Gate-Array-Based ASICs
Channeled Gate Array
Only the interconnect is customized
11/7/2019 RK PRASAD
Gate-Array-Based ASICs (cont.)
Structured Gate Array
Only the interconnect is customized
11/7/2019 RK PRASAD
Semi-Custom ASICs
• ASICs , for which all of the logic cells are
predesigned and some (possibly all) of the
mask layers are customized are called semi
custom ASICs.
• Using the predesigned cells from a cell library
makes the design , much easier.
• There are two types of semicustom ASICs
• (i) Standard-cell–based ASICs (ii)Gate-array–
based ASICs.
11/7/2019 RK PRASAD
Types of ASICs – Cont’d
Semi-Custom ASICs – Cont’d
Programmable ASICs
PLDs - PLDs are low-density
devices which contain 1k – 10 k
gates and are available both in
bipolar and CMOS technologies
[PLA, PAL or GAL]
CPLDs or FPLDs or
FPGAs - FPGAs combine
architecture of gate arrays with
programmability of PLDs.
User Configurable
Contain Regular Structures
- circuit elements such as
AND, OR, NAND/NOR gates,
FFs, Mux, RAMs,
Allow Different
Programming Technologies
Allow both Matrix and
Row-based Architectures
25
Types of ASICs – Cont’d
Semi-Custom ASICs – Cont’d
Programmable ASICs - Cont’d
Structure of a CPLD / FPGA
26
Programmable Logic Devices
No customized mask layers or logic cells
Fast design turnaround
A single large block of programmable interconnect
Erasable PLD (EPLD)
Mask-programmed PLD
A matrix of logic macro cells that usually consist of
programmable array logic followed by a flip-flop or latch
11/7/2019 RK PRASAD
Field Programmable Gate Array
None of the mask layers are customized
A method for programming the basic logic cells and the
interconnect
The core is a regular array of programmable basic logic cells
that can implement combinational as well as sequential logic
(flip-flops)
A matrix of programmable interconnect surrounds the basic
logic cells
Programmable I/O cells surround the core
Design turnaround is a few hours
11/7/2019 RK PRASAD
Why FPGA-based ASIC Design?
Choice is based on Many Factors
;
Speed
Gate Density
Requirement FPGA/FPLD Discrete Logic Custom Logic
Speed
Simulation Time
Manufacturing Lead Time
Development Time
Inventory
Development Tools
29
Design Flow A design flow is a sequence of steps to design an
ASIC
• 1. Design entry. Using a hardware description language
(HDL) or schematic entry.
• 2. Logic synthesis. Produces a netlist—logic cells and their
connections.
• 3. System partitioning. Divide a large system into ASIC-sized
pieces. 4. Prelayout simulation. Check to see if the design
functions correctly.
• 5. Floorplanning. Arrange the blocks of the netlist on the
chip.
• 6. Placement. Decide the locations of cells in a block.
• 7. Routing. Make the connections between cells and blocks.
• 8. Extraction. Determine the resistance and capacitance of
the interconnect.
• 9. Postlayout simulation. Check to see the design still works
with the added loads of the interconnect.
11/7/2019 RK PRASAD
Design Flow
1. Design entry - Using a hardware
description language ( HDL ) or
schematic entry
2. Logic synthesis - Produces a
netlist - logic cells and their
connections
3. System partitioning - Divide a
large system into ASIC-sized
pieces
4. Prelayout simulation - Check to
see if the design functions
correctly
5. Floorplanning - Arrange the
blocks of the netlist on the chip
6. Placement - Decide the
locations of cells in a block
7. Routing - Make the connections
between cells and blocks
8. Extraction - Determine the
resistance and capacitance of
the interconnect
9. Postlayout simulation - Check
to see the design still works with
the added loads of the
interconnect
11/7/2019 RK PRASAD
ASIC Cell Libraries
• The cell library is the key part of ASIC design.
• For a programmable ASIC the FPGA company
supplies you with a library of logic cells in the
form of a design kit
• For MGAs and CBICs you have three choices:
• 1. ASIC vendor (the company that will build your
ASIC) will supply a cell library
• 2.You can buy a cell library from a third-
party library vendor
• 3. You can build your own cell library
11/7/2019 RK PRASAD
• The first choice, using an ASIC-vendor library ,
requires you to use a set of design tools approved
by the ASIC vendor to enter and simulate your
design.
• An ASIC vendor library is normally a phantom
library —the cells are empty boxes, or phantoms ,
but contain enough information for layout.
• After you complete layout you hand off a netlist
to the ASIC vendor, who fills in the empty boxes
( phantom instantiation ) before manufacturing
your chip.
11/7/2019 RK PRASAD
• The second and third choices require you to make a buy-or-
build decision . If you complete an ASIC design using a cell
library that you bought, you also own the masks
(the tooling ) that are used to manufacture your ASIC.
• This is called customer-owned tooling ( COT , pronounced
“see-oh-tee”).
• The third choice is to develop a cell library in-house. Many
large computer and electronics companies make this
choice.
• Most of the cell libraries designed today are still developed
in-house despite the fact that the process of library
development is complex and very expensive.
11/7/2019 RK PRASAD
• However created, each cell in an ASIC cell library must
contain the following:
• A physical layout
• A behavioral model
• A Verilog/VHDL model
• A detailed timing model
• A test strategy
• A circuit schematic
• A cell icon
• A wire-load model
• A routing mode
11/7/2019 RK PRASAD
Requirements for ASIC Designers
• needs a high-level, behavioral model for each cell
• a detailed timing model for each cell to
determine the performance of the critical pieces
of an ASIC
• All ASICs need to be production tested
• If the ASIC designer uses schematic entry, each
cell needs a cell icon together with connector and
naming information that can be used by design
tools from different vendors
• Lookup table known as wire bond table to
calculate the parasitic capacitance.
11/7/2019 RK PRASAD
Data path Logic Cells
Suppose we wish to build an n -bit adder (that adds two n -bit
numbers) and to exploit the regularity of this function in the
layout. We can do so using a data path structure.
The following two functions, SUM and COUT, implement the sum
and carry out for a full adder ( FA ) with two data inputs (A, B)
and a carry in, CIN:
SUM = A ⊕ B ⊕ CIN = SUM(A, B, CIN) = PARITY(A, B, CIN)
COUT = A · B + A · CIN + B · CIN = MAJ(A, B, CIN).
The sum uses the parity function ('1' if there are an odd numbers
of '1's in the inputs).
The carry out, COUT, uses the 2-of-3 majority function ('1' if the
majority of the inputs are '1').
We can combine these two functions in a single FA logic cell,
ADD(A[ i ], B[ i ], CIN, S[ i ], COUT),
S[ i ] = SUM (A[ i ], B[ i ], CIN)
COUT = MAJ (A[ i ], B[ i ], CIN)
Now we can build a 4-bit ripple-carry adder ( RCA ) by
connecting four of these ADD cells together as shown in
Figure (b).
The i th ADD cell is arranged with the following: two bus
inputs A[ i ], B[ i ]; one bus output S[ i ]; an input, CIN,
that is the carry in from stage ( i – 1) below and is also
passed up to the cell above as an output; and an output,
COUT, that is the carry out to stage ( i + 1) above.
In the 4-bit adder shown in Fig.we connect the carry
input, CIN[0], to VSS and use COUT[3] and COUT[2] to
indicate arithmetic overflow
Notice that we build the ADD cell so that COUT[2] is
available at the top of the data path when we need it.
(a) A full-adder (FA) cell with inputs (A and B), a carry in, CIN, sum output, S, and
carry out, COUT. (b) A 4-bit adder. (c) The layout, using two-level metal, with
data in m1 and control in m2. In this example the wiring is completed outside
the cell; it is also possible to design the datapath cells to contain the wiring.
Using three levels of metal, it is possible to wire over the top of the datapath
cells. (d) The datapath layout.
Figure (c) shows a layout of the ADD cell. The A inputs, B
inputs, and S outputs all use m1 interconnect running in the
horizontal direction—we call these data signals.
Other signals can enter or exit from the top or bottom and
run vertically across the datapath in m2—we call
these control signals.
We can also use m1 for control and m2 for data, but we
normally do not mix these approaches in the same
structure. Control signals are typically clocks and other
signals common to elements.
Figure (c) the carry signals, CIN and COUT, run vertically in
m2 between cells..
To build a 4-bit adder we stack four ADD cells creating the
array structure shown in Figure (d). In this case the A and B
data bus inputs enter from the left and bus S, the sum, exits at
the right, but we can connect A, B, and S to either side if we
want
The layout of buswide logic that operates on data signals in this
fashion is called a datapath. The module ADD is a datapath
cell or datapath element .
Just as we do for standard cells we make all the datapath cells
in a library the same height so we can abut other datapath cells
on either side of the adder to create a more complex datapath
What is the difference between using a data-path,
standard cells, or gate arrays?
Cells are placed together in rows on a CBIC or an MGA, but
there is no generally no regularity to the arrangement of the
cells within the rows we let software arrange the cells and
complete the interconnect
method 1 method 2
P[ i ] = A[ i ] B[ i P[ i ] = A[ i ] + B[ i ]
C[ i ] = G[ i ] + P[ i ] · C[ i ] = G[ i ] + P[ i ] ·
C[ i –1] C[ i –1]
S[ i ] =
S[ i ] = P[ i ] C[ i –1]
A[ i ] B[ i ] C[ i –1]
where C[ i ] is the carry-out signal from stage i , equal to
the carry in of stage ( i + 1).
Thus, C[ i ] = COUT[ i ] = CIN[ i + 1].
We need to be careful because C[0] might represent
either the carry in or the carry out of the LSB stage.
For an adder we set the carry in to the first stage (stage
zero), C[–1] or CIN[0], to '0'.
Some people use delete (D) or kill (K) in various ways for
the complements of G[i] and P[i], but unfortunately
others use C for COUT and D for CIN—so I avoid using
any of these.
Transistors as Resistors
In “CMOS Transistors,” we modeled transistors using ideal switches.
If this model were accurate, logic cells would have no delay.
.
A model for CMOS logic delay. (a) A CMOS inverter with a load capacitance, C out
b.Input, v(in1) , and output,v(out1) , waveforms showing the definition of the
falling propagation delay, t PDf .
The model predicts t PDf ª R pd ( C p + C out ).
C.The model for the inverter includes: the input capacitance, C ; the pull-up
resistance ( R pu ) and pull-down resistance ( R pd ); and the parasitic output
capacitance, C p .
11/7/2019 RK PRASAD
The ramp input, v(in1) , to the inverter in Figure (a) rises quickly
from zero to V DD . In response the output, v(out1) , falls
from V DD to zero.
In Figure (b) we measure the propagation delay of the
inverter, t PD , using an input trip point of 0.5 and output trip points
of 0.35 (falling, t PDf ) and 0.65 (rising, t PDr ).
Initially the n -channel transistor, m1 , is off .
As the input rises, m1 turns on in the saturation region
( V DS > V GS – V t n ) before entering the linear region ( V DS < V GS –
V t n ). We model transistor m1 with a resistor, R pd (Figure 3.1 c);
this is the pull-down resistance .
The equivalent resistance ofm2 is the pull-up resistance , R pu .
Delay is created by the pull-up and pull-down
resistances, R pd and R pu , together with the parasitic capacitance
at the output of the cell, C p (the intrinsic output capacitance )
and the load capacitance (or extrinsic output capacitance ), C out
If we assume a constant value for R pd , the output reaches a lower
trip point of 0.35
The expression for the rising delay (with a 0.65 output trip point)
is identical in form.
Delay thus increases linearly with the load capacitance.
We often measure load capacitance in terms of a standard load
11/7/2019 RK PRASAD
(c) A view showing how the different capacitances are approximated
by planar components ( T FOX is the field-oxide thickness).
(d) C BS and C BD are the sum of the area ( C BSJ , CBDJ ), sidewall
( C BSSW , C BDSW ), and channel edge ( C BSJ GATE , C BDJ GATE )
capacitances.
11/7/2019 RK PRASAD
(e)–(f) The dimensions of the gate, overlap, and sidewall
capacitances (L D is the lateral diffusion).
11/7/2019 RK PRASAD
Junction Capacitance
• Junction capacitances, CBD and CBS, consist of two parts: junction area
and sidewall
• Both CBD and CBS have different physical characteristics with parameters:
CJ and MJ for the junction, CJSW and MJSW for the sidewall, and PB is
Common
• CBD and CBS depend on the voltage across the junction (VDB and VSB)
• The sidewalls facing the channel (CBSJGATE and CBDJGATE) are different
from the side- walls that face the field
11/7/2019 RK PRASAD
Overlap Capacitance
• The overlap capacitance calculations for CGSOV and CGDOV account for lateral
diffusion
Gate Capacitance
• The gate capacitance depends on the operating region
• The gate–source capacitance CGS varies from zero (off) to 0.5CO in the
linear region to (2/3)C O in the saturation region
• The gate–drain capacitance CGD varies from zero (off) to 0.5CO
(linear region) and back to zero (saturation region)
• The gate–bulk capacitance CGB is two capacitors in series: the fixed
gate-oxide capaci- tance, CO, and the variable depletion capacitance,
CS
• As the transistor turns on the channel shields the bulk from the gate
and CGB falls to zero
• Even with VGS =0V, the depletion width under the gate is finite and thus
CGB is less than CO
11/7/2019 RK PRASAD
Input Slew Rate
11/7/2019 RK PRASAD
Logical Effort
Logical effort is a term coined by Ivan Sutherland and Robert
Sproull [1991], that has as its basis the time-constant analysis of
Carver Mead, Chuck Seitz, and others.
We add a “catch all” non-ideal component of delay, t q , to
t PD = R ( C out + C p )
that includes: (1) delay due to internal parasitic capacitance;
(2) the time for the input to reach the switching threshold of the
cell;
(3) the dependence of the delay on the slew rate of the input
waveform.
With these assumptions we can express the delay as follows:
t PD = R ( C out + C p ) + t q .
We will use a standard-cell library for a 3.3 V, 0.5 m m (0.6 m m
drawn) technology (from Compass) to illustrate our model. We
call this technology C5 ; it is almost identical to the G5 process
The equation for the delay of a 1X drive, two-input NAND cell is in
the form of
t PD = (0.07 + 1.46 C out + 0.15) ns
The delay due to the intrinsic output capacitance (0.07 ns,
equal to RC p ) and the non-ideal delay ( t q = 0.15 ns) are
specified separately.
The non-ideal delay is a considerable fraction of the total
delay, so we may hardly ignore it
The data book tells us the input trip point is 0.5 and the output
trip points are 0.35 and 0.65. We can use above Eq. to
estimate the pull resistance for this cell as R ª 1.46 nspF –1 or
about 1.5 k W .
The above equation is for the falling delay
We can scale any logic cell by a scaling factor s (transistor gates
become s times wider, but the gate lengths stay the same), and as a
result the pull resistance ‘R’ will decrease to ’R / s’ and the parasitic
capacitance C p will increase to sC p .
Since t q is non-ideal, by definition it is hard to predict how it will
scale.
We shall assume that t q scales linearly with s for all cells.
The total cell delay then scales as follows:
t PD = ( R / s )·( C out + sC p ) + st q
For example, the delay equation for a 2X drive ( s = 2), two-input
NAND cell is
t PD = (0.03 + 0.75 C out + 0.51) ns
Compared to the 1X version , the output parasitic delay has
decreased to 0.03 ns (from 0.07 ns)
The pull resistance has decreased by a factor of 2 from 1.5 k W to
0.75 k W , as we would expect; and the non-ideal delay has
increased to 0.51 ns (from 0.15 ns).
The differences between our predictions and the actual values
give us a measure of the model accuracy.
We rewrite above equation using the input capacitance of the
scaled logic cell, C in = s C ,
.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 fdr Following table describes the ON set, OFF set, and DC set.
11/7/2019 RK PRASAD
EDIF Syntax
• The structure of EDIF is similar to the Lisp programming
language or the Postscript printer language.
• This makes EDIF a very hard language to read and
almost impossible to write by hand.
• EDIF is intended as an exchange format between tools,
not as a design-entry language.
• Since EDIF is so flexible each company reads and writes
different “flavors” of EDIF.
• Inevitably EDIF from one company does not quite work
when we try and use it with a tool from another
company, though this situation is improving with the
gradual adoption of EDIF 3 0 0.
• We need to know just enough about EDIF to be able to
fix these problems.
11/7/2019 RK PRASAD
• Within an EDIF file are one or more libraries
of cell descriptions.
• Each library contains technology information
that is used in describing the characteristics
of the cells it contains.
• Each cell description contains one or more
user-named views of the cell.
• Each view is defined as a
particular viewType and contains
an interface description that identifies where
the cell may be connected to and, possibly,
a contents description that identifies the
components and related interconnections that
make up the cell.
11/7/2019 RK PRASAD
• The semantics of EDIF are defined by the EDIF
keywords . Keywords are the only types of name that
can immediately follow a left parenthesis. Case is not
significant in keywords.
• An EDIF identifier represents the name of an object or
group of data. Identifiers are used for name definition,
name reference, keywords, and symbolic constants.
• Valid EDIF identifiers consist of alphanumeric or
underscore characters and must be preceded by an
ampersand ( &) if the first character is not alphabetic.
• The ampersand is not considered part of the name.
The length of an identifier is from 1 to 255 characters
and case is not significant.
• Thus &clock , Clock , and clock all represent the same
EDIF name
11/7/2019 RK PRASAD
• Numbers in EDIF are 32-bit signed integers.
• Real numbers use a special EDIF format.
• For example, the real number 1.4 is represented
as (e 14 -1)
• Numbers in EDIF are dimensionless and the units
are determined according to where the number
occurs in the file.
• Coordinates and line widths are units of distance
and must be related to meters.
• The scalekeyword is used with
the numberDefinition to relate EDIF numbers to
physical units.
11/7/2019 RK PRASAD
• Valid EDIF strings consist of sequences of ASCII
characters enclosed in double quotes.
• Any alphanumeric character is allowed as well as any of
the following characters: ! # $ & ' () * + , - . / : ; < = > ?
@ [ \ ] ^ _ ` { | } ~ . Special characters, such
as " and % are entered as escape
sequences: %number% , where number is the integer
value of the ASCII character.
• For example, "A quote is % 34 %" is a string with an
embedded double-quote character.
• Blank, tab, line feed, and carriage-return characters
(white space) are used as delimiters in EDIF.
• Blank and tab characters are also significant when they
appear in strings.
11/7/2019 RK PRASAD
• The rename keyword can be used to create a
new EDIF identifier as follows:
• (cell (rename TEST_1 "test$1") ...
11/7/2019 RK PRASAD
An EDIF Schematic Icon
11/7/2019 RK PRASAD
LOGIC SYNTHESIS
• Logic synthesis provides a link between an HDL (Verilog or VHDL)
and a netlist.
• However, the parallel is not exact.
• C was developed for use with compilers, but HDLs were not
developed for use with logic-synthesis tools.
• Verilog was designed as a simulation language and VHDL was
designed as a documentation and description language.
• Both Verilog and VHDL were developed in the early 1980s, well
before the introduction of commercial logic-synthesis software.
• Because these HDLs are now being used for purposes for which
they were not intended, the state of the art in logic synthesis falls
far short of that for computer-language compilers.
• Logic synthesis forces designers to use a subset of both Verilog
and VHDL, This makes using logic synthesis more difficult .
• When talking to a logic-synthesis tool using an
HDL, it is necessary to think like hardware,
anticipating the netlist that logic synthesis will
produce.
• This situation should improve in the next five
years, as logic synthesizers mature.
• Designers use graphic or text design entry to
create an HDL behavioral model , which does not
contain any references to logic cells
• State diagrams, graphical data path descriptions,
truth tables, RAM/ROM templates, and gate-level
schematics may be used together with an HDL
description.
Once a behavioural HDL model is complete, two items are
required to proceed:
A logic synthesizer (software and documentation) and a
cell library (the logic cells—NAND gates and such) that is
called the target library .
The behavioural model is simulated to check that the
design meets the specifications and then the logic
synthesizer is used to generate a net list, a structural
model , which contains only references to logic cells.
There is no standard format for the net lists that logic
synthesis produces, but EDIF is widely used.
Verilog and Logic Synthesis
• A top-down design approach using Verilog begins with
a single module at the top of the hierarchy to model
the input and output response of the ASIC:
• module MyChip_ASIC(); ... (code to model ASIC I/O)
... endmodule ;
• This top-level Verilog module is used to simulate the
ASIC I/O connections and any bus I/O during the
earliest stages of design.
• Often the reason that designs fail is lack of attention to
the connection between the ASIC and the rest of the
system.
• As a designer, you proceed down through the hierarchy
as you add lower-level modules to the top-level Verilog
module
Initially the lower-level modules are just empty placeholders,
orstubs , containing a minimum of code.
For example, you might start by using inverters just to
connect inputs directly to the outputs.
You expand these stubs before moving down to the next level
of modules.
module MyChip_ASIC()
// behavioral "always", etc. ...
SecondLevelStub1 port mapping
SecondLevelStub2 port mapping
... endmodule
module SecondLevelStub1() ... assign Output1 = ~Input1; endmodule
module SecondLevelStub2() ... assign Output2 = ~Input2; endmodule
Eventually the Verilog modules will correspond to the various
component pieces of the ASIC.
Verilog Modeling
•Before we could start synthesis of the Viterbi decoder we
had to alter the model for the D flip-flop.
•This was because the original flip-flop model contained
syntax (multiple wait statements in an always statement) that
was acceptable to the simulation tool but not by the synthesis
tool.
•However, finding ourselves with non-synthesizable code
arises frequently in logic synthesis.
•The original OVI LRM included a synthesis policy , a set of
guidelines that outline which parts of the Verilog language a
synthesis tool should support and which parts are optional.
•There is no current standard on which parts of an HDL
(either Verilog or VHDL) a synthesis tool should support.
D FLIP-FLOP