VLSI Design
VLSI Design
VLSI Design
in
JNTU World
ld
The word digital has made a dramatic impact on our society. More significant is a
continuous trend towards digital solutions in all areas from electronic instrumentation,
control, data manipulation, signals processing, tele communications, etc., to consumer
electronics. Development of such solutions has been possible due to good digital system
JN
TU
or
1
Downloaded From JNTU World (http://www.alljntuworld.in)
www.alljntuworld.in
JNTU World
A steady increase in the size and hence the functionality of the ICs.
A steady reduction in feature size and hence increase in the speed of operation as
well as gate or transistor density.
ld
or
The design process, at various levels, is usually evolutionary in nature. It starts with a
given set of requirements. Initial design is to be developed and test impact analyst must
Structural domain
TU
Behavioral domain
JN
2
Downloaded From JNTU World (http://www.alljntuworld.in)
JNTU World
Figure 1
or
ld
www.alljntuworld.in
The design flow starts from the algorithm that describes the behavior of the target chip.
The corresponding architecture of the processor is first defined. It is mapped onto the
chip surface by floor planning. The next design evolution in the behavioral domain
defines finite state machines (FSMs) which are structurally implemented with functional
TU
modules such as registers and arithmetic logic units (ALUs). These modules are then
geometrically placed onto the chip surface using CAD tools for automatic module
placement followed by routing, with a goal of minimizing inter- connects area and signal
delays.
JN
The third evolution starts with a behavioral module description. Individual modules are
then implemented with leaf cells. At this stage the chip is described in terms of logic
gates (leaf cells), which can be placed and interconnected by using a cell placement &
routing program. The last evolution involves a detailed Boolean description of leaf cells
followed by a transistor level implementation of leaf cells and mask generation. In
standard-cell based design, leaf cells are already pre-designed and stored in a library for
logic design use.
3
Downloaded From JNTU World (http://www.alljntuworld.in)
www.alljntuworld.in
JNTU World
The model divides the whole design cycle into various domains (see figure 2) with such
an abstraction through a division process the design is carried out in different layers. The
ld
designer at one layer can function without bothering about the layers above or below. The
thick horizontal lines separating the layers in the figure signify the compartmentalization.
As an example, le us consider design at the gate level. The circuit to be designed would
be described in terms of truth tables and static tables. With these as available inputs, he
or
has to express them as Boolean logic equation and realize them i8n terms of gates and
flip-flops. In turn these form the inputs to the layer immediately below.
Compartmentalization of the approach to design in the manner described here is the
essence of abstraction; it is the basics for the development and d use of CAD tools in the
As with any other technical activity, development of an ASIC starts with an idea and
TU
takes tangible shape through the stages of development as shown in figure 3 and shown
in detail in figure 4.The first step in the process is to expand the idea in terms of behavior
of the target circuit. Through stages of programming, the same is fully developed into a
JN
4
Downloaded From JNTU World (http://www.alljntuworld.in)
JNTU World
or
TU
Figure 2
ld
www.alljntuworld.in
Figure 3
JN
The design is tested through a simulation process; it is to check, verify, and ensure that
what is wanted is what is described. Simulation is carried out through dedicated tools
.with every simulation results are studied to identify errors in the design description. The
errors are corrected and another simulation run is carried out. Simulation and changes to
design description together form a cyclic iterative process, repeated until an error free
design is evolved.
5
Downloaded From JNTU World (http://www.alljntuworld.in)
www.alljntuworld.in
JNTU World
ld
The design is carried out in stages. The process of transforming the idea into a detailed
circuit description in terms of the elementary circuit components constitutes design
or
description. The final circuit of such an IC can have up to a billion such components; it is
circuit in terms of its behavior. The description looks like a program in a high level
language like C. once the behavior level design description is ready, it is tested
extensively with the help of simulation tool; it checks and confirms that all the expected
functions are carried out satisfactorily. If necessary, this behavioral level routine is
edited, modified, and rerun all done manually. Finally, one has a design for the
TU
expected system- described at the behavioral level. The behavioral constructs not
supported by the synthesis tools replaced by data flow and gate level constructs. To
JN
surmise, the designer has to develop synthesizable codes for his design.
6
Downloaded From JNTU World (http://www.alljntuworld.in)
JNTU World
TU
or
ld
www.alljntuworld.in
JN
Figure 4
acknowledged functional blocks. It forms the next detailed level of design description.
Once again the design is to be tested through simulation and iteratively corrected for
errors. The elaboration can be continued one or two steps further. It leads to a detailed
design description in terms of logic gates and transistor switches.
7
Downloaded From JNTU World (http://www.alljntuworld.in)
www.alljntuworld.in
1.1.6
JNTU World
OPTIMIZATION
The circuit at the gate level- in terms of the gates and flip-flops- can be redundant in
ld
nature. The same can be minimized with the help of minimization tools. The minimized
design is converted to a circuit in terms of the switch levels cells from standard libraries
provided by the foundries. The cell based designed generated by the tool is the last step in
1.1.7
or
the design process; it forms the input to the first level of physical design.
POST LAYOUT SIMULATION
Once the placement and routing are completed the performance specifications like silicon
area, power consumed, path delays, can be computed. Equivalent circuit can be extracted
at the component level and the performance analysis carried out. This constitutes the final
stage called verification. One may have to go through the placement and routing
activity once again to improve performance.
CRITICAL SUBSYSTEMS
TU
1.1.8
The design may have critical subsystems. Their performance may be crucial to the overall
performance; in other words, to improve the system performance substantially, one may
have to design such subsystems afresh. The design here may imply redefinition of the
basic feature size of the component, component design, and placement of the
components, or routing done separately and specifically for the sub systems. A set of
JN
masks used in the foundry may have to be done a fresh for the purpose.
8
Downloaded From JNTU World (http://www.alljntuworld.in)
www.alljntuworld.in
JNTU World
circuits. Thus, Hardware Description Languages (HDLs) come into existence. HDLs
allowed the designers to model the concurrency of process found in hardware elements.
ld
Designers can be described at a very abstract level by use of HDLs. Designers can write
their RTL description without choosing a specific technology. Logic synthesis tools can
automatically convert the design to any fabrication technology.
By describing designs in HDLs, functional verification of the design can be done early in
or
the design cycle. Since designers work at the RTL level, they can optimize and modify
the RTL description until it meets the desired functionality. Designing with HDLs is
analogous to computer programming. A textual description with comments is an easier
way to develop and debug circuits.
There are two main hardware descriptive languages in use in the industry today for Very
Large Scale Integration (VLSI) of chips. They are:
Verilog HDL
VHDL
TU
JN
describes the registers and the transfers of vectors of information between registers. This
9
Downloaded From JNTU World (http://www.alljntuworld.in)
www.alljntuworld.in
JNTU World
is called the Register Transfer Level (RTL). Verilog supports all of these levels. The
industry is currently split on which is better. Many feel that Verilog is easier to learn and
use than VHDL.
Verilog was introduced in 1985 by Gateway Design System Corporation, now a part of
Cadence Design Systems, Inc.s Systems Division.
ld
or
Integration (VLSI) Integrated Circuits (IC) layouts and chip fabrication. A primary use
of HDLs is the simulation of designs before the designer must commit to fabrication.
Verilog HDL is a general purpose HDL that is easy to use and learn. It is similar
in syntax to the C programming language.
TU
Verilog HDL allows different levels of abstraction to be mixed in the same model.
Most popular logic synthesis tool support Verilog HDL. This makes it the
language of choice for designers.
All fabrication venders provide Verilog HDL libraries for post logic synthesis simulation.
JN
Thus, designing a chip in Verilog HDL allows the widest choice of venders.
1.2.5 OVERVIEW OF VHDL:
As the size and the complexity of digital system increases, more computer aided design
tools are introduced into the hardware design process. The early papered pencil design
methods have given way to sophisticated design entry, verification and automatic
hardware generation tools. The newest addition to this design methodologies the
10
Downloaded From JNTU World (http://www.alljntuworld.in)
www.alljntuworld.in
JNTU World
ld
hardware structure newer languages such as VHDL have more universal timing models
or
helps to ensure design accuracy and design portability. Since a simulator supports them
inherent in a HDL description can be used to validate a design. Prototyping of
complicated system is extremely expansive, and the goal of those concerned with the
TU
configuration, by reading in its compiled description from the design library & then
JN
www.alljntuworld.in
JNTU World
used to model a digital system at many levels of abstraction, ranging from the algorithmic
level to the gate level.
The complexity of a digital system being modeled could vary from that of simple gate to
a complete digital electronic system, or anything in between.
ld
The digital system can also be described hierarchically. Timing can also be explicitly
modeled in the same description.
languages.
or
Sequential language.
Concurrent language.
Timing specifications.
Therefore, the language has constructs that enable you to express the concurrent or
sequential behavior of a digital system as an interconnection of components. All the
TU
The language not only defines the syntax but also defines very clear simulation semantics
for each language construct. Therefore models written in this language can be verified
using a VHDL simulator. It inherits many of its features especially the sequential part,
JN
from the Ada programming language. Because VHDL provides an extensive range of
modeling capabilities, it is often difficult to understand, fortunately, it is possible to
quickly assimilate a core subset of the language that is both easy and simple to
understand without learning the more complex features. The complete language however
has sufficient power to capture the descriptions of the most complex chips to a complete
electronic system.
12
Downloaded From JNTU World (http://www.alljntuworld.in)
www.alljntuworld.in
JNTU World
or
1.3.2
ld
Blank spaces (\b), tabs (\t) and newlines (\n) comprise the whitespace. Whitespace is
ignored by Verilog except when it separates tokens. Whitespace is not ignored in strings.
COMMENTS:
1.3.3
Comments can be inserted in the code for readability and documentation. There are two
ways to write comments. A one-line comment starts with //. Verilog skips from that
point to the end of line. A multiple-line comment starts with /* and ends with /*.
JN
TU
1.3.4
OPERATORS:
Operators are of three types unary, binary, and ternary. Unary operators precede the
operand. Binary operators appear between two operands. Ternary operators have two
separate operators that separate three operands.
13
Downloaded From JNTU World (http://www.alljntuworld.in)
www.alljntuworld.in
NUMBER SPECIFICATION
ld
1.3.5
JNTU World
There are two types of number specification in verilog: sized and unsized.
Sized numbers
or
<Size> is written only in decimal and specifies the number of bits in the number. Legal
base formats are decimal (d or D), hexadecimal (h or H), binary (b or B) and octal
or
O).
the
number
is
specified
as
consecutive
digits
from
(o
TU
UNSIZED NUMBERS:
Numbers that are specified without a <base format > specification are decimal numbers
JN
by default. Numbers that are written without <size> specifications have a default number
of bits is simulator and machine specific (must be at least 32).
14
Downloaded From JNTU World (http://www.alljntuworld.in)
www.alljntuworld.in
JNTU World
X OR Z VALUES:
Verilog has two symbols for unknown and high impedance values. These values are very
important for modeling real circuits. An unknown value is denoted by an x. a high
ld
or
An x or z values sets four bits for a number in the hexadecimal base, three bits for a
number in the octal base, and one bit for a number in the binary base. If the most
significant bit of a number is 0, x, z, the number is automatically extended to fill the most
significant bits, respectively, with 0, x, or z. This makes it easy to assign x or z to whole
Negative numbers can be specified by putting a minus sign before the size for a constant
number. Size constants are always positive. It is illegal to have a minus sign between
TU
JN
15
Downloaded From JNTU World (http://www.alljntuworld.in)
www.alljntuworld.in
JNTU World
1.3.6
ld
behavioral modeling, where the high impedance value is a dont acre condition.
STRINGS:
or
1.3.7
cannot be on multiple lines. Strings are treated as a sequence of one-byte ASCII values.
TU
Keywords are special identifiers reserved to define the language constructs. Keywords
are in lowercase. Identifiers are names given to objects so that they can be referenced in
the design. Identifiers are made up of alphanumeric characters, the underscore ( _ ) and
the dollar sign ($) and are low case sensitive. Identifier starts with an alphabetic character
JN
1.3.8
ESCAPED IDENTIFIERS:
Escaped identifiers begin with the backlash ( \ ) character and end with white space (
space, tab, or new line ).all characters between backlash and whitespace are processed
16
Downloaded From JNTU World (http://www.alljntuworld.in)
www.alljntuworld.in
JNTU World
literally. Any printable ASCII character can be included in escaped identifiers. The
1.4
ld
DATA TYPES:
or
Verilog supports four values and eight strengths to model the functionality of real
hardware. The four value levels are listed in table 1.
Value levels
TU
Table 1
In addition to logic values, strength levels are often used to resolve conflicts between
drivers of different strengths in digital circuits. Value level 0 and 1 can have the strength
JN
17
Downloaded From JNTU World (http://www.alljntuworld.in)
www.alljntuworld.in
JNTU World
Strength levels
or
ld
Table 2
If two signal of unequal strength are driven on a wire, the stronger signal prevails. For
example, if two signals of strength strong 1 and weak 0 contend, the result is resolved as
a strong1. If two signals of equal strengths strong 1 and strong 0 conflict, the result is an
x. Strength levels are particularly useful for accurate modeling of signal contention, MOS
device, dynamic MOS, and low-level devices. Only trireg nets can have storage
TU
1.4.2
NETS:
Net represent connection between hardware elements. Just as in real circuits, nets have
values continuously driven on them by the outputs of devices that they are connected to.
JN
In figure 5 net a is connected to the output of and gate g1.net a will continuously assume
the value computed at the out put of gate g1, which is b & c.
Figure 5
Example of nets
18
Downloaded From JNTU World (http://www.alljntuworld.in)
www.alljntuworld.in
JNTU World
Nets are declared primarily with the keyword wire. Nets are one-bit values by default
unless they are declared explicitly as vectors. The term wire and net are often used
interchangeable. The default value of a net is z .nets get output value of their drivers. If a
REGISTERS:
or
1.4.3
ld
Registers represent data storage elements. Registers retain until another value is placed
onto them. Do not confuse the term registers in Verilog with hardware registers from
edge-triggered flip-flops in real circuits. In Verilog, the term register merely means a
variable that can hold a value. Unlike a net, a register can be changed anytime in a
simulation by assigning a new value to the register.
Register data types are commonly declared by the keyword reg. the default value
TU
JN
Example 1
1.4.4
VECTORS:
Nets or reg data types can be declared as vectors. If bit width is not specified, the default
is scalar (1-bit).
19
Downloaded From JNTU World (http://www.alljntuworld.in)
JNTU World
ld
www.alljntuworld.in
Vectors can be declared at [high#: low #] or [low#: high #]. But the left number in the
squared brackets is always the most significant bit of the vector. In the example shown
1.4.5
STRINGS:
or
Strings can be stored in reg. the width of the register variables must be large enough to
hold the string. Each character in the string tales up 8 bits (1 byte). If the width of the
register is greater than the size of the string, Verilog fills bits to the left of the string with
zeros. If the register width is smaller than the string width, Verilog truncates the leftmost
TU
bits of the string. It is always safe to declare a string that is slightly wider than necessary.
Special characters serve a special purpose in displaying strings, such as newline, tabs, and
JN
displaying argument values. Special characters can be displayed in string only when they
are preceded by escape characters, as shown in the table 3.
20
Downloaded From JNTU World (http://www.alljntuworld.in)
www.alljntuworld.in
JNTU World
Special characters
1.5
or
ld
Table 3
Verilog provides standard system tasks to do certain routine operations. All system tasks
appear in the form $<keyword>. Operations such as displaying on the screen, monitoring
values of nets, stopping, and finishing are done by system tasks.
Displaying information
TU
$display is the main system task for displaying values of variables or strings or
expressions. This is one of the most useful tasks in Verilog.
Usage: $display (p1, p2, p3,, pn);
P1, p2, p3,., pn can be quoted strings or variables or expressions. The format of
$display is very similar to print f in c. A $display inserts a newline at the end of the
JN
string by default. Strings can be formatted by using the format specifications listed in
table 4.
21
Downloaded From JNTU World (http://www.alljntuworld.in)
www.alljntuworld.in
JNTU World
or
ld
Monitoring information:
Verilog provides a mechanism to monitor when its value changes. This facility is
provided by the $monitor task.
TU
list can be active at a time. If there is more than one $monitor statement in your
JN
The $monitor on task enables monitoring and the $monitor off tasks disables
monitoring during a simulation. An example of monitor statement is given below.
22
Downloaded From JNTU World (http://www.alljntuworld.in)
www.alljntuworld.in
JNTU World
or
ld
Usage: $ stop;
The $ stop task puts the simulation in an interactive model. The designer can then debug
the design from the interactive mode. The $stop task is used whenever the designer wants
to suspend the simulation and examine the values of signals in the design.
The $finish task terminates the simulation.
TU
Usage: $finish;
JN
Example 2
23
Downloaded From JNTU World (http://www.alljntuworld.in)
www.alljntuworld.in
JNTU World
1.5.2
COMPILER DIRECTIVES:
Complier directives are provided in Veriog. All compiler directives are defined by using
the `<keyword> construct. We deal with two most useful compiler directives.
`define:
ld
The `define directive is used to define text macros in Verilog. This is similar to # define
construct in C. The defined constants or text macros are used in the Verilog code by
preceding them with a ` (back tick). The Verilog compiler substitutes the text of the
` Define directive
TU
Example 3
or
`include:
The ` include directive allows you to include entire contents of a Verilog source file in
another Verilog file during compilation. This works similarly to the #include in the C
programming language. This directive is typically used to include header files, which
JN
24
Downloaded From JNTU World (http://www.alljntuworld.in)
www.alljntuworld.in
1.5.3
JNTU World
MODULES:
TU
or
ld
A module definition always begins with the keyword module. The module name, port
list, port declarations, and optional parameters must come first in a module definition.
Port list and port declarations are present are present only if the module has any ports to
JN
interact with the external environment. The five components within a module are
variable declarations, dataflow statements, instantiation of lower modules, behavioral
blocks, and tasks or functions. These components can be in any order and at any place in
the module definition. The end module statement must always come last in the module
definition .All components except module, module name, and end module are optional
and can be mixed and matched as per design needs. Verilog allows multiple modules to
be defined in a single file. The modules can be defined in any order in the file.
25
Downloaded From JNTU World (http://www.alljntuworld.in)
www.alljntuworld.in
JNTU World
1.5.4 PORTS:
Ports provide the interface by which a module can communicates with its environment.
For example, the input/output pins of an IC chip are its ports. The environment can
interact with the nodule only through its ports .the internals of the module are not visible
to the environment. This provides a very powerful flexibility to the designer. Ports are
ld
All ports in the list of ports must be declared in the module. ports can be declared as
or
follows:
Each port in the lit is defined as input, output, or in out, based on the direction of the
TU
JN
Figure 7
26
Downloaded From JNTU World (http://www.alljntuworld.in)
www.alljntuworld.in
JNTU World
port declarations
or
ld
Example 5
Note that all ports declarations are implicitly declared as wire in verilog. Thus, if a port is
intended to be a wire, it is sufficient to declare it as output, input, or in out. Input or
outputs are normally declared as wires. However, if output ports hold their value they
TU
JN
Inputs
Internally, input ports must always be of the type net. Externally, the inputs can be
connected to a variable which is a reg or a net.
27
Downloaded From JNTU World (http://www.alljntuworld.in)
www.alljntuworld.in
JNTU World
or
ld
Figure 8
Outputs:
Internally, outputs port can be of the type reg or net. Externally, outputs must always
Inouts:
Internally, inout ports must always be of the type net. Externally, inout ports must
always be connected to a net.
Width watching:
TU
It is legal to connect internal and external items of different sizes when making intermodule port connections. However, a warning is typically issued that the widths do
not match.
Unconnected ports:
JN
Verilog allows ports to remain unconnected. For example, certain outputs ports might
be simply for debugging and you might not be interested in connecting them to the
external signals. You can let a port remain unconnected by instantiating module as
shown below.
28
Downloaded From JNTU World (http://www.alljntuworld.in)
www.alljntuworld.in
JNTU World
ld
Connecting by ordered list is the most intuitive method for most beginners. The
signals to be connected must appear in the module instantiation in the same order as
or
the ports in the port list in the module definition. Once again, consider the module
fulladd4 defined in Example 5. To connect signals in module Top by ordered list, the
Verilog code is shown in Example 6. Notice that the external signals SUM, C_OUT,
A, B, and C_IN appear in exactly the same order as the ports sum, c_out, a, b, and
JN
TU
Example 6
29
Downloaded From JNTU World (http://www.alljntuworld.in)
JNTU World
or
ld
www.alljntuworld.in
For large designs where modules have, say, 50 ports, remembering the order of the ports
in the module definition is impractical and error-prone. Verilog provides the capability to
connect external signals to ports by the port names, rather than by position. We could
connect the ports by name in Example 6 above by instantiating the module fulladd4, as
follows. Note that you can specify the port connections in any order as long as the port
TU
Note that only those ports that are to be connected to external signals must be specified in
port connection by name. Unconnected ports can be dropped. For example, if the port
c_out were to be kept unconnected, the instantiation of fulladd4 would look as follows.
JN
Another advantage of connecting ports by name is that as long as the port name is not
changed, the order of ports in the port list of a module can be rearranged without
changing the port connections in module instantiations.
30
Downloaded From JNTU World (http://www.alljntuworld.in)
www.alljntuworld.in
JNTU World
MODELING CONCEPTS
GATE-LEVEL MODELING:
ld
as predefined primitives. These primitives are instantiated like modules except that they
are predefined in Verilog and do not need a module definition. All logic circuits can be
buf/not gates.
or
designed by using basic gates. There are two classes of basic gates: and/or gates and
And/or gates have one scalar output and multiple scalar inputs. The first terminal in the
list of gate terminals is an output and the other terminals are inputs. The output of a gate
is evaluated as soon as one of the inputs changes. The and/or gates available in Verilog
TU
The corresponding logic symbols for these gates are shown in Figure 9. We consider
gates with two inputs. The output terminal is denoted by out. Input terminals are denoted
by i1 and i2.
JN
These gates are instantiated to build logic circuits in Verilog. Examples of gate
instantiations are shown below. In Example , for all instances, OUT is connected to the
output out, and IN1 and IN2 are connected to the two inputs i1 and i2 of the gate
primitives.
31
Downloaded From JNTU World (http://www.alljntuworld.in)
www.alljntuworld.in
JNTU World
Basic gates
or
ld
Figure 9
More than two inputs can be specified in a gate instantiation. Gates with more than two
inputs are instantiated by simply adding more input ports in the gate instantiation (see
Example 7 ). Verilog automatically instantiates the appropriate gate.
Gate instantiation of and/or gates
JN
TU
Example 7
32
Downloaded From JNTU World (http://www.alljntuworld.in)
www.alljntuworld.in
JNTU World
The truth tables for these gates define how outputs for the gates are computed from the
inputs. Truth tables are defined assuming two inputs. The truth tables for these gates are
shown in Table5. Outputs of gates with more than two inputs are computed by applying
JN
TU
or
Table 5
ld
Buf/not gates have one scalar input and one or more scalar outputs. The last terminal in
the port list is connected to the input. Other terminals are connected to the outputs. We
will discuss gates that have one input and one output.
Two basic buf/not gate primitives are provided in Verilog.
33
Downloaded From JNTU World (http://www.alljntuworld.in)
www.alljntuworld.in
JNTU World
The symbols for these logic gates are shown in Figure 10.
Buf and Not Gates
ld
Figure 10
These gates are instantiated in Verilog as shown Example 8. That these gates can have
multiple outputs but exactly one input, which the last terminal in the port list is.
or
Example 8
The truth tables for these gates are very simple. Truth tables for gates with one input and
TU
JN
Table 6
4:1 Multiplexer:
34
Downloaded From JNTU World (http://www.alljntuworld.in)
www.alljntuworld.in
JNTU World
We will design a 4-to-1 multiplexer with 2 select signals. Multiplexers serve a useful
purpose in logic design. They can connect two or more sources to a single destination.
They can also be used to implement Boolean functions. We will assume for this example
that signals s1 and s0 do not get the value x or z. The I/O diagram and the truth table for
the multiplexer are shown in Figure 11. The I/O diagram will be useful in setting up the
ld
4 to 1 multiplexer
or
Figure 11
We will implement the logic for the multiplexer using basic logic gates. The logic
diagram for the multiplexer is shown in Figure12.
JN
TU
Figure 12
35
Downloaded From JNTU World (http://www.alljntuworld.in)
www.alljntuworld.in
JNTU World
Two intermediate nets, s0n and s1n, are created; they are complements of input signals s1
and s0. Internal nets y0, y1, y2, y3 are also required. Note that instance names are not
specified for primitive gates, not, and, and or.
Verilog description of multiplexer
JN
TU
or
ld
Example 9
This multiplexer can be tested with the stimulus shown in Example10. The stimulus
checks that each combination of select signals connects the appropriate input to the
output. The signal OUTPUT is displayed one time unit after it changes. System task
$monitor could also be used to display the signals when they change values.
36
Downloaded From JNTU World (http://www.alljntuworld.in)
www.alljntuworld.in
TU
or
ld
Example 10
JNTU World
JN
37
Downloaded From JNTU World (http://www.alljntuworld.in)
www.alljntuworld.in
JNTU World
ld
Fall Delay
or
The rise delay is associated with a gate output transition to a 1 from another value.
JN
TU
The fall delay is associated with a gate output transition to a 0 from another value.
Turn-Off Delay
The turn-off delay is associated with a gate output transition to the high impedance value
(z) from another value.
If the value changes to x, the minimum of the three delays is considered. Three types of
delay specifications are allowed. If only one delay is specified, this value is used for all
transitions. If two delays are specified, they refer to the rise and fall delay values. The
38
Downloaded From JNTU World (http://www.alljntuworld.in)
www.alljntuworld.in
JNTU World
turn-off delay is the minimum of the two delays. If all three delays are specified, they
refer to rise, fall, and turn-off delay values. If no delays are specified, the default value is
zero.
2.1.5 Min/Typ/Max Values:
Verilog provides an additional level of control for each type of delay mentioned above.
ld
For each type of delayrise, fall, and turn-offthree values, min, typ, and max, can be
specified. Any one value can be chosen at the start of the simulation. Min/typ/max values
are used to model devices whose delays vary within a minimum and maximum range
or
The min value is the minimum delay value that the designer expects the gate to have.
Typ value
Max value
The typ value is the typical delay value that the designer expects the gate to have.
The max value is the maximum delay value that the designer expects the gate to have.
TU
Let us consider a simple example to illustrate the use of gate delays to model timing in
the logic circuits. A simple module called D implements the following logic equations:
Out = (ab) + c
JN
The gate-level implementation is shown in Module D (Figure 13). The module contains
two gates with delays of 5 and 4 time units.
The module D is defined in Verilog as shown in Example 11.
39
Downloaded From JNTU World (http://www.alljntuworld.in)
www.alljntuworld.in
JNTU World
module D
or
ld
Figure 13
TU
The waveforms from the simulation are shown in Figure 14 to illustrate the effect of
specifying delays on gates. The waveforms are not drawn to scale. However, simulation
JN
At time 10, after A, B, and C all transition to 1, OUT transitions to 1 after a delay
of 4 time units and E changes value to 1 after 5 time units.
At time 20, B and C transition to 0. E changes value to 0 after 5 time units and
40
Downloaded From JNTU World (http://www.alljntuworld.in)
www.alljntuworld.in
JNTU World
or
ld
Figure 14
A continuous assignment is the most basic statement in dataflow modeling, used to drive
a value onto a net. This assignment replaces gates in the description of the circuit and
describes the circuit at a higher level of abstraction. The assignment statement starts with
TU
JN
Instead of declaring a net and then writing a continuous assignment on the net, Verilog
provides a shortcut by which a continuous assignment can be placed on a net when it is
declared. There can be only one implicit declaration assignment per net because a net is
declared only once.
In the example below, an implicit continuous assignment is contrasted with a regular
continuous assignment.
41
Downloaded From JNTU World (http://www.alljntuworld.in)
www.alljntuworld.in
JNTU World
ld
or
the width of the inferred net is equal to the width of the module port.
TU
Expressions are constructs that combine operators and operands to produce a result.
Operands:
JN
Operands can be any one of the data types. Some constructs will take only certain types
of operands. Operands can be constants, integers, real numbers, nets, registers, times, bitselect (one bit of vector net or a vector register), part-select (selected bits of the vector net
or register vector), and memories or function calls.
42
Downloaded From JNTU World (http://www.alljntuworld.in)
JNTU World
ld
www.alljntuworld.in
or
Operators:
Operators act on the operands to produce desired results. Verilog provides various types
of operators.
Verilog provides many different operator types. Operators can be arithmetic, logical,
relational, equality, bitwise, reduction, shift, concatenation, or conditional. Some of these
TU
operators are similar to the operators used in the C programming language. Each operator
type is denoted by a symbol. Table 7 shows the complete listing of operator symbols
JN
classified by category.
43
Downloaded From JNTU World (http://www.alljntuworld.in)
www.alljntuworld.in
JNTU World
JN
TU
or
ld
Table 7
Concatenation Operator:
The concatenation operator ({,}) provides a mechanism to append multiple operands. The
operands must be sized. Unsized operands are not allowed because the size of each
operand must be known for computation of the size of the result.
44
Downloaded From JNTU World (http://www.alljntuworld.in)
www.alljntuworld.in
JNTU World
Concatenations are expressed as operands within braces, with commas separating the
operands. Operands can be scalar nets or registers, vector nets or registers, bit-select,
ld
or
Replication Operator:
TU
the brackets ( { } ).
Conditional Operator:
JN
1),
evaluated. If the result is x (ambiguous), then both true_expr and false_expr are evaluated
and their results are compared, bit by bit, to return for each bit position an x if the bits are
different and the value of the bits if they are the same.
The action of a conditional operator is similar to a multiplexer. Alternately, it can be
compared to the if-else expression.
45
Downloaded From JNTU World (http://www.alljntuworld.in)
JNTU World
ld
www.alljntuworld.in
or
TU
There are two structured procedure statements in Verilog: always and initial. These
statements are the two most basic statements in behavioral modeling. All other behavioral
JN
block starts at time 0, executes exactly once during a simulation, and then does not
execute again. If there are multiple initial blocks, each block starts to execute
concurrently at time 0. Each block finishes execution independently of other blocks.
Multiple behavioral statements must be grouped, typically using the keywords begin and
end.
If there is only one behavioral statement, grouping is not necessary. This is similar
46
Downloaded From JNTU World (http://www.alljntuworld.in)
www.alljntuworld.in
JNTU World
Initial Statement
or
ld
Example 12
TU
In the above example, the three initial statements start to execute in parallel at time 0. If
delay #<delay> is seen before a statement, the statement is executed <delay> time units
after the current simulation time. Thus, the execution sequence of the statements inside
JN
The initial blocks are typically used for initialization, monitoring, waveforms and
other processes that must be executed only once during the entire simulation run.
47
Downloaded From JNTU World (http://www.alljntuworld.in)
www.alljntuworld.in
JNTU World
Always Statement:
All behavioral statements inside an always statement constitute an always block. The
always
statement starts at time 0 and executes the statements in the always block
continuously in a looping fashion. This statement is used to model a block of activity that
is repeated continuously in a digital circuit. An example is a clock generator module that
ld
toggles the clock signal every half cycle. In real circuits, the clock generator is active
from time 0 to as long as the circuit is powered on. Example 13 illustrates one method to
model a clock generator in Verilog.
Always Statement
TU
or
Example 13
In Example 13 , the always statement starts at time 0 and executes the statement clock =
~clock every 10 time units. Notice that the initialization of clock has to be done inside a
separate initial statement. If we put the initialization of clock inside the always block,
clock will be initialized every time the always is entered. Also, the simulation must be
halted inside an initial statement. If there is no $stop or $finish statement to halt the
JN
2.3.2
Procedural Assignments:
Procedural assignments update values of reg, integer, real, or time variables. The
value placed on a variable will remain unchanged until another procedural assignment
updates the variable with a different value. The syntax is shown below.
48
Downloaded From JNTU World (http://www.alljntuworld.in)
www.alljntuworld.in
JNTU World
There are two types of procedural assignment statements: blocking and nonblocking.
Blocking Assignment:
Blocking assignment statements are executed in the order they are specified in a
or
Nonblocking Assignment:
ld
sequential block. A blocking assignment will not block execution of statements that
2.3.3
Multiway Branching:
TU
Case Statement:
JN
The keywords case, endcase, and default are used in the case statement..
and end.
49
Downloaded From JNTU World (http://www.alljntuworld.in)
www.alljntuworld.in
JNTU World
ld
cares. All bit positions with z can also represented by ? In that position.
Casex treats all x and z values in the case item or the case expression as don't
cares.
2.3.4
Loops:
or
The use of casex and casez allows comparison of only non-x or -z positions in the case
There are four types of looping statements in Verilog: while, for, repeat, and forever. The
syntax of these loops is very similar to the syntax of loops in the C programming
language. All looping statements can appear only inside an initial or always block.
Loops may contain delay expressions.
While Loop:
TU
The keyword while is used to specify this loop. The while loop executes until the whileexpression is not true. If the loop is entered when the while-expression is not true, the
loop is not executed at all.
For Loop:
The keyword for is used to specify this loop. The for loop contains three parts:
JN
An initial condition
The initialization condition and the incrementing procedural assignment are included in
the for loop and do not need to be specified separately. Thus, the for loop provides a
50
Downloaded From JNTU World (http://www.alljntuworld.in)
www.alljntuworld.in
JNTU World
Repeat Loop:
The keyword repeat is used for this loop. The repeat construct executes the loop a
fixed number of times. A repeat construct cannot be used to loop on a general logical
expression. A while loop is used for that purpose. A repeat construct must contain a
number, which can be a constant, a variable or a signal value. However, if the number is
ld
a variable or signal value, it is evaluated only when the loop starts and not during the loop
execution.
Forever Loop:
or
The keyword forever is used to express this loop. The loop does not contain any
expression and executes forever until the $finish task is encountered. The loop is
equivalent to a while loop with an expression that always evaluates to true, e.g., while
(1). A forever loop can be exited by use of the disable statement.
JN
TU
executed.
51
Downloaded From JNTU World (http://www.alljntuworld.in)
www.alljntuworld.in
JNTU World
8 Bit ALU
Arithmetic Logic Unit performs the arithmetic and logic operations during execution of
an instruction. Contains accumulator CPU registers and related logic such as arithmetic
and logic unit. ALU communicates with the internal registers and the external data bus by
Addition
Subtraction
Logical AND
Logical OR
Logical Exclusive OR
Compare
Left or Right Shifts or Rotate
Increment
Decrement
Set/Reset and Test Bit
3.1 Overview:
or
ld
The arithmetic logic unit (ALU) is the brain of the computer, the device that performs the
JN
TU
arithmetic operations like addition, subtraction or logical operations like AND &OR.
Figure 15
ALU Symbol
52
Downloaded From JNTU World (http://www.alljntuworld.in)
www.alljntuworld.in
JNTU World
ld
signal, 1-bit Carry Out and 1-bit overflow output when an overflow is detected.
3.2 Project Requirements:
Design 8-bit ALU that has inputs s1 [7:0], s2 [7:0], m ALU operation [3:0] and outputs
operations.
3.3 Design Description:
or
Zero, Result [7:0], Overflow, Carry Out. The ALU should perform the above sixteen (16)
For the most significant bit (MSB) of my ALU I designed a special 1- bit ALU, which
JN
TU
The overflow can be found when we compare the CarryIn and the CarryOut signal. If
they have different values, than overflow occurs; if both of them are 0s or 1s there is no
overflow. This logic can easily be represented by XOR on the two signals.
53
Downloaded From JNTU World (http://www.alljntuworld.in)
JNTU World
or
Table 8
ld
www.alljntuworld.in
TU
JN
My regular 1-bit ALU consists of 1-bit full adder, components for logical operations and
operation selector. This 1-bit ALU is used for the first 7 bits [6.0] of the 8-bit ALU.
54
Downloaded From JNTU World (http://www.alljntuworld.in)
JNTU World
or
ld
www.alljntuworld.in
It can perform the following operations: AND, OR, addition of a & b. The adder has 3
Inputs - a, b, CarryIn; and 2 outputs - Sum and CarryOut and is also called (3,2). Adder
JN
TU
Figure 18
55
Downloaded From JNTU World (http://www.alljntuworld.in)
JNTU World
Table 9
or
ld
www.alljntuworld.in
JN
TU
Figure 19 41 Multiplexer
56
Downloaded From JNTU World (http://www.alljntuworld.in)
www.alljntuworld.in
JNTU World
The 4x1 multiplexer is delivered with the logic of three 2x1 multiplexers as is shown on
Fig. 20. The data inputs are A, B, C and D control; signals are S0 and S1; output result is
E. The truth table on table 10 describes the logical functionality of 4x1 multiplexer. The
ld
code combination of the control signals S0, S1 will determinate which one of the data
signals A, B, C or D will appear at the output E. For example with combination S0=0 and
or
JN
TU
57
Downloaded From JNTU World (http://www.alljntuworld.in)
JNTU World
JN
TU
or
ld
www.alljntuworld.in
58
Downloaded From JNTU World (http://www.alljntuworld.in)
www.alljntuworld.in
JNTU World
also
to implement
ld
board provides the necessary hardware to not only evaluate the advanced features of
user applications
using peripherals
and
Clocks
or
Spartan-3A evaluation board; the block diagram in Figure 2 provides a high-level view of
TU
JN
Interfaces
59
Downloaded From JNTU World (http://www.alljntuworld.in)
www.alljntuworld.in
JNTU World
JN
TU
JTAG
or
ld
60
Downloaded From JNTU World (http://www.alljntuworld.in)
www.alljntuworld.in
JNTU World
TU
or
ld
JN
61
Downloaded From JNTU World (http://www.alljntuworld.in)
www.alljntuworld.in
JNTU World
JN
TU
or
ld
62
www.alljntuworld.in
JNTU World
Functional Description:
A Xilinx Spartan-3A (XC3S400A-4FTG256C) 400 K gate FPGA and a Cypress
Cy8C24894 PSoC Mixed-Signal Array are the primary components of the Avnet
Spartan-3A evaluation board.
device provides off- board communication via a USB 2.0 full-speed interface.
ld
Communication between the PSoC and FPGA is facilitated by a 3.3 V level RS-232
interface between the two devices. This, along with several GPIO lines interconnecting
the PSoC and FPGA, provide control and data-transfer mechanisms. A high-level block
or
diagram of the Spartan-3A evaluation board is shown in Figure 23. As can be seen in 2
Figure 23, the USB controller (PSoC), an SPI port, and an I^2C port provide off-board
communication mechanisms. On-board memory consists of a 128 Mbit SPI memory that
may be used by either the PSoC or the FPGA, with FPGA access controlled by the PSoC;
and 32 Mbit parallel Flash memory interfaced to the FPGA. Subsequent sections provide
details of the board design.
TU
JN
The four I/O banks are described in Table 11 and detailed I/O pin usage is provided
throughout this document. Note that all pins utilized are bidirectional (regardless of
usage), the XC3S400A input-only pins are not utilized in this implementation.
63
Downloaded From JNTU World (http://www.alljntuworld.in)
www.alljntuworld.in
JNTU World
JN
TU
or
ld
Block Diagram
64
Downloaded From JNTU World (http://www.alljntuworld.in)
JNTU World
or
ld
www.alljntuworld.in
TU
The Cypress Cy8C24894 is a configurable device containing analog and digital blocks
and peripheral devices that allow the user to create customized configurations to support
different applications. As configured on the Spartan-3A evaluation board, the PSoC
provides a full-speed (12 Mbps) USB interface, RS-232, SPI and I^2C interfaces,
four capacitive touch-pads (the condition of which is sent to the FPGA), and 15 generalpurpose I/O lines (12 connected to the FPGA and three connected to header J9).A 6-pin
JN
65
Downloaded From JNTU World (http://www.alljntuworld.in)
www.alljntuworld.in
JNTU World
Memory:
The Spartan-3A evaluation board is populated with both parallel Flash memory (4
Mbytes) and 128 Mbit SPI Serial to support various types of applications. Both Parallel
Flash and SPI Serial Flash may be used for FPGA configuration. Figure 25 shows a
TU
or
ld
Figure 25
Memory Interfaces
Parallel Flash:
JN
for
66
Downloaded From JNTU World (http://www.alljntuworld.in)
JNTU World
or
ld
www.alljntuworld.in
TU
128 Mbits of serial Flash memory is provided by a Spansion S25FL128P device (U19)
interfaced to the Spartan- 3A FPGA via its dedicated SPI interface, and to the Cypress
PSoC device via a 2:1 multiplexer (U20). This multiplexer is controlled by the PSoC,
JN
which is master of this SPI interface. There are two SPI modes as depicted in Figure 25;
PSoC/FPGASPI
Flash
(PSoC_SPI_MODE=0)
and
PSoCFPGA
(PSoC_SPI_MODE=1).
In the PSoC/FPGA SPI Flash mode, either the PSoC or the FPGA may access the
SPI Flash by driving its select line low. This is done through an AND gate (U21) that
will drive the SPI Flashs chip select line (SF_SEL#) low in response to a low s elect
signal from the FPGA (FPGA_SPI_SEL#) or the PSoC (PSoC_SPI_SEL). Note that the
SPI clock line (SPI_CLK) may be driven by either the PSOC or the FPGA. Since this
67
Downloaded From JNTU World (http://www.alljntuworld.in)
www.alljntuworld.in
JNTU World
configuration has the potential for conflict, if the PSoC intends to access the SPI Flash, it
must drive the FPGAs PROG_B pin low to place the FPGA in a reset state to prevent it
accessing the SPI Flash.
In the PSoC FPGA mode (PSoC_SPI_MODE=1) the multiplexer is configured to
interconnect the PSoC and FPGA SPI interfaces; the purpose of this is to enable slave
ld
serial configuration from PSoC to FPGA. In this mode the PSoC is master and the FPGA
will act as slave. Since the FPGAs SPI interface is only active during SPI boot mode,
While this configuration happens to share common pins with the FPGA SPI port, they
or
will function as slave serial in this mode. Table 13 provides the FPGAs SPI interface
pinout.
6-pin header J8 may be used to allow the PSoC to expand the SPI interface to an external
environment. Since the PSoCs SPI select signal (PSoC_SPI_SEL#) is common to the
SPI Flash as well as the SPI expansion interface, the default jumper on JP6 must be
removed prior to using the SPI expansion. Table 14 provides the J8 pinout.
Note that J8 pin 6 provides +3.3 V to another board; if that board is already powered then
JN
TU
68
Downloaded From JNTU World (http://www.alljntuworld.in)
www.alljntuworld.in
JNTU World
Interfaces:
Interfaces on the Spartan-3A evaluation board consist of USB 2.0 via the PSoC, two 0.1
6-pin right-angle headers designed to T M interface to Digilent modules, a 0.1 2 x 20
header providing connectivity to available FPGA general-purpose I/O pins, a 0.1 1 x 6
header for SPI interface expansion, and a sensor providing temperature information via
ld
an I C interface.
USB 2.0:
or
USB Mini-AB connector P1 connects the PSoC device to a full-speed (12 Mbps) USB
host. Power supplied by the USB host via connector P1 (+5V_USB) may be used to
power the Spartan-3A evaluation board by jumpering JP2 1:2.
USB-UART:
The USB-UART interface is used for communication between the PSoC and the FPGA
but is not utilized externally (e.g., there is no RS-232 connector). This interface operates
at 3.3 V and is the mechanism by which the FPGA communicates via USB; e.g., the
TU
PSoC device provides UART/USB translation. Note that the net names UART_RXD and
UART_TXD on the schematic are named in terms of the PSoC connection.
Net
UART_RXD is an output from the FPGA and an input to the PSoC, as shown by the
direction of the off-page connectors on the schematic. The FPGA Tx signal is connected
to the PSoC Rx signal and then the PSoC re-broadcasts the data to the USB. For
incoming data from USB, the PSoC transmits on the UART_TXD net which is actually
JN
69
Downloaded From JNTU World (http://www.alljntuworld.in)
www.alljntuworld.in
JNTU World
Digilent Headers:
Two right-angles, 6-pin (1 x 6 female) Digilent headers (J6, J7) are interfaced to the
FPGA, with each header providing 3.3 V power, ground, and four I/Os. These headers
may be utilized as general-purpose I/Os or may be used to interface to Digilent modules.
J6 and J7 are placed in close proximity (09-centers) on the PCB in order to support dual
ld
Digilent modules. Figure 26 shows the pinout of the Digilent headers; Table 16 provides
or
TU
Table 16 Connections
Miscellaneous I/O:
JN
Four user push button switches are provided via capacitive touch-pads connected to the
Cypress PSoC device. A touch at any of these four pads is sensed by the PSoC and
forwarded to the FPGA; these push buttons and their relationship to the FPGA are
depicted in Table 17. Note that FPGA_RESET is a soft reset intended for FPGA code
usage and does not perform any type of FPGA hardware reset.
70
Downloaded From JNTU World (http://www.alljntuworld.in)
www.alljntuworld.in
JNTU World
Table 17 Connections
ld
LEDs:
Four LEDs are provided for signaling purposes and connected to the FPGA as shown in
or
Table18. The corresponding FPGA pin must be driven high to light an LED.
Some unused FPGA pins are connected to 0.1 2 x 20-pin header J4. Signal names and
connector pin/FPGA pin connections are identified in Table 19. All I/Os are +3.3 V
JN
TU
CMOS.
71
Downloaded From JNTU World (http://www.alljntuworld.in)
www.alljntuworld.in
JNTU World
ICTemperature Sensor:
A Texas Instruments TMP100 digital temperature sensor is interfaced to the PSoC via an
I C interface. The TMP100 has two 2 address pins to set the low-order I C slave address
bits; both pi ns are pulled low in this application providing an address of 0x90 (W) and
0x91 (R).The TMP100 will provide temperature readings over its specified operating
ld
temperature, -55 C to +125 C; well beyond the ability of the Spartan-3A evaluation
board to operate.
Module Clocks:
or
Three clocks are provided to the FPGA; 16.0 MHz from a Maxim MAX7381 CMOS
oscillator (U6), and 12.0 MHz and 32.0 kHz from the PSoC. Table 20 provides FPGA
connection details.
TU
Configuration:
configure the FPGA; these are JTAG, Parallel Flash, Serial Flash, and the Cypress
PSoC. The storage devices (Flash and SPI) cannot be programmed via the JTAG
connector. The FPGA is the only thing in the JTAG chain on the Spartan-3A evaluation
board; however, depending on the setting of configuration jumpers M [2:0], any of these
JN
can be the configuration source. The serial Flash, Parallel Flash, and PSoC are described
earlier in this document.
Programming the Spartan-3A evaluation board via Boundary Scan requires that a JTAG
download cable be attached to the 14-pin 2 mm spaced header J5 (Figure 27) with a
ribbon cable or with flying leads. If the Xilinx Parallel Cable IV is used, the
ribbon cable connector mates with the keyed J5 connector.
72
Downloaded From JNTU World (http://www.alljntuworld.in)
www.alljntuworld.in
JNTU World
ld
Configuration Modes:
The following table shows the Spartan-3A evaluation board configuration modes
or
set by Jumper JP4. All mode jumpers (including the PUDC_B pin) are pulled high,
with jumper installation grounding the connection. Adding a jumper to the MODE pins
ties them to a pull-down that is stronger than the default pull-up. This is necessary in
order for the PSoC to overdrive the MODE jumpers regardless of whether or not the
jumpers are installed. Figure 6 depicts configuration jumper JP4; Table 21 provides the
various configuration settings at JP4, with recommended settings highlighted. A push
button labeled PROG (SW1) is pulled high and connected to the FPGA PROG
via AND gate U9; also connected to U9 is the PSoC (PSOC_FPGA_PROG).
Pushing SW1 (or driving PSOC_FPGA_PROG low) activates the FPGA programming
TU
mechanism. Upon releasing SW1 (or PSOC_FPGA_PROG going high), a reconfiguration is initiated based upon the setting of JP4. A blue LED (D7) should light
JN
73
Downloaded From JNTU World (http://www.alljntuworld.in)
JNTU World
or
ld
www.alljntuworld.in
TU
Module Power:
The Spartan-3A evaluation board requires a +5 V input at barrel jack J3 or +5 V
via USB cable. Jumper JP2 is used to select between the barrel jack (JP2 = 2:3) or USB
power (JP2 = 1:2). LED D1 should be illuminated when power is applied. Jumper JP7
1:2 selects the barrel jack/USB input power; JP7 2:3 is not applicable.
JN
74
Downloaded From JNTU World (http://www.alljntuworld.in)
www.alljntuworld.in
JNTU World
supplies the +1.2 V rail. When the+1.2 V rail is above the TPS3106s threshold, its
active-low reset output is released allowing the power-on reset signal (PO_RESET#) to
go high. As mentioned above, pushbutton switch SW1 may be used to momentarily force
(via AND gate U23) PO_RESET# low.
ld
operating mode of the TPS62290 converter; JT1 = 1:2 (default) sets fixed-
or
frequency PWM mode, JT1 2:3 sets power-save mode (automatic PFM/PWM switching).
Figures 29, 30 and 31, below, show details of the +3.3 V and
+1.2 V power supplies. Figure 29 shows that +1.2 V power (bottom trace) is delayed 114
ms from +3.3 V power. Using a finer scale, Figures 30 and 31 shows the rise of +3.3 V
JN
TU
75
Downloaded From JNTU World (http://www.alljntuworld.in)
JNTU World
or
ld
www.alljntuworld.in
JN
TU
76
Downloaded From JNTU World (http://www.alljntuworld.in)
www.alljntuworld.in
JNTU World
PCB Stackup:
Figure 32 shows 4-layer stacks up of the Spartan-3A Evaluation Kit Printed Circuit
Board (PCB). The PCB substrate is FR4- class epoxy glass with 1/2oz copper used for
or
ld
all layers.
JN
TU
77
Downloaded From JNTU World (http://www.alljntuworld.in)