SlideShare a Scribd company logo
1 of 83
SYSTEM DESIGN USING HDL (ECE43)
#
Digital system design using Verilog,
Charles Roth, Lizy Kurian John, Byeong Kil Lee,
1st Edition, 2016, Cengage Learning
1 2.1, 2.2, 2.3 - 2.8, 2.11, 2.13 - 2.15
2 2.9, 2.10, 2.12, 2.16 - 2.19, 8.1, 8.2
3 3.1 - 3.4, 5.1, 5.2.1, 5.3
4 4.1 - 4.5, 4.8, 4.6, 4.7, 4.9, 4.11
5 6.1 - 6.5, 6.7 - 6.12
21/01/2019 Aravinda K., Dept. of E&C, NHCE 5
CO1
Identify the necessity of HDL for the automation
of VLSI design
CO2
Select Verilog for EDA, and describe its structure
and syntax
CO3
Apply the concepts of HDL on programmable
devices, such as CPLD and FPGA
CO4
Translate the design on state machine into
HDL program
CO5
Write optimized HDL codes for simple and
complex systems
CO6
Employ the FPGA hardware for the implementation
of the HDL codes
COURSE OUTCOMES
Term Year Number of gates Examples
SSI 1961 Upto 20 logic gates Flip-flops, Decoders,
Registers
MSI 1966 20 till 200 gates Multiplexers, Adders,
Counters
LSI 1971 200 till 10,000 8-bit Microprocessors, RAM,
ROM
VLSI 1980 10,000 till 1,00,000 Microcontrollers, 16 & 32-bit
Microprocessors, DRAM
ULSI 1990 Above 1,00,000 gates 64-bit Microprocessors,
DSPs, SoC
21/01/2019 6Aravinda K., Dept. of E&C, NHCE
MODULE-1: INTRODUCTION TO VERILOG
21/01/2019 Aravinda K., Dept. of E&C, NHCE 7
DESIGN ENTRY
 Schematic capture: Lower level of
abstraction (gates, flip-flops, standard
MSI building blocks)
 HDL: Higher level of abstraction -
(behavioral: flow-chart, algorithm)
(structural: specific components or
implementations)
SYNTHESIS
 Process of conversion of higher-level
abstraction of the design into actual
components at the gate & flip-flop levels.
 The output of the synthesis tool is the
netlist, which is a list of gates and a list of
their interconnections.
 As the synthesis tool converts the
design descriptions into hardware, it is
also called as “design compiler” or
“silicon compiler”.
21/01/2019 8Aravinda K., Dept. of E&C, NHCE
21/01/2019 9Aravinda K., Dept. of E&C, NHCE
21/01/2019 10Aravinda K., Dept. of E&C, NHCE
21/01/2019 11Aravinda K., Dept. of E&C, NHCE
 After the post-synthesis simulation, the design can
be implemented in several different target
technologies (device lengths).
 The target could be a completely custom IC, or could
be implemented using the standard parts that are
available from the vendor.
 The standard parts are at the lowest level of
sophistication and density, with the usage of old-
fashioned printed circuit board.
 The fully-custom ASIC is at the highest level of
density and performance.
 The other devices such as CPLD and FPGA come in
between, as programmable solutions.
21/01/2019 12Aravinda K., Dept. of E&C, NHCE
21/01/2019 13Aravinda K., Dept. of E&C, NHCE
 The current two most common target technologies
are FPGAs and ASICs.
 The design is mapped into the specific target
technology (channel length), and placed into specific
parts in the target ASIC or FPGA.
 During routing, the selected components are
connected to each other, using the available paths.
 In case of an ASIC, the routed design is utilized for
generating a photo-mask, which will be utilized for
manufacturing the IC.
 In case of an FPGA, the routed design is translated
into a bit file, for the programming of the selected cells
inside the FPGA.
21/01/2019 14Aravinda K., Dept. of E&C, NHCE
21/01/2019 15Aravinda K., Dept. of E&C, NHCE
21/01/2019 16Aravinda K., Dept. of E&C, NHCE
HARDWARE DESCRIPTION LANGUAGES
 HDL is a textual method of documenting the circuits, and
feeding them into the simulators in the textual form, as opposed
to the graphic form.
 HDLs lead to a top-down design methodology (specified and
tested at a high level), and HDLs are designed to be technology
independent.
 HDLs can describe a digital system at three different levels –
behavioral (functional description), data flow (logic equations)
and structural (in terms of subcomponents).
21/01/2019 17Aravinda K., Dept. of E&C, NHCE
VHDL Verilog
Government developed
(Designed and sponsored by US
department of defense), and
became IEEE standard in 1987
Commercially developed
(Designed by Gateway design
system corporation), became
IEEE standard in 1995
Strongly typecast, based on
“Ada” language, and is case-
insensitive
Mildly typecast, based on “C”
language, and is case-sensitive
Structured, and is for large and
complex systems (Difficult to
learn, but more powerful)
Simpler, with less syntax and
fewer constructs (Easier to
learn, and less powerful)
Two popular HDLs are Verilog & VHDL. Verilog was a proprietary
language in 1984, and was later owned and opened up by
Cadence, in order to create a vendor-independent language
specification, and to prevent the industry from shifting to VHDL.
21/01/2019 18Aravinda K., Dept. of E&C, NHCE
 In addition, there are system design languages, such as
System C and System Verilog, which describe large digital
systems at a block level behavior.
 These languages are primarily used for verification and
validation. They help in reducing the design cycle time for large
systems; the design problems become evident in the early
stages, instead of becoming obvious during system integration.
 When different blocks of a large system are designed by
different teams, during the initial design process, one team can
make use of the system level description of a block that is being
designed by the other team.
 In addition to the system design languages, there are tools
that have emerged, which can convert the models written in
non-HDL, directly into hardware.
21/01/2019 19Aravinda K., Dept. of E&C, NHCE
UNLIKE THE OTHER PROGRAMMING LANGUAGES,
THE CONSTRUCTS OF HDL ARE TAILORED
FOR THE PURPOSE OF SIMULATION AND SYNTHESIS.
21/01/2019 20Aravinda K., Dept. of E&C, NHCE
Sl. no. Symbol Name
1 ~ Tilde
2 ‘ Tick (Grave)
3 ` Back-tick (Acute)
4 “ Quote
5 & Ampersand
6 ^ Caret
7 # Cross-hash (Sharp)
8 * Asterisk
9 ( Parenthesis
10 [ Bracket
11 { Brace
12 < Angle bracket
13 / Slash (Solidus)
14  Back-slash
15 | Pipe (Bar)
16 - Hyphen (Dash)
17 @ Astatine (At)
18 : Colon
19 , Comma (Apostrophe)
20 … Ellipsis
21 ! Exclamation (Bang)
22 _ Underscore
23 . Period
24 ; Semicolon
COMMONLY USED
SYMBOLS
21/01/2019 21Aravinda K., Dept. of E&C, NHCE
Verilog Description of Combinational Circuits
 The combinational circuits are always working
simultaneously, and hence they are modeled in Verilog
by concurrent statements or continuous assignments.
 Concurrent statements are always ready to execute,
and hence, it is possible to simulate the execution of
the several parts of the circuit at the same time.
 The Verilog simulator continuously monitors the
right side of each concurrent statement, and whenever
a signal changes, the expression on the right side gets
immediately re-evaluated.
21/01/2019 22Aravinda K., Dept. of E&C, NHCE
#5 indicates a delay of 5 ns, representing the propagation delay
of each logic gate. If it is not included, then the computation will
be instantaneous.
When the statements get executed, the variable “C” gets
computed after 5 ns, and the variable “E” gets computed after
another 5 ns, thus the total delay becoming as 10 ns.
The order of the concurrent statements is not important. The
output for the following will be the same as the previous one:
21/01/2019 23Aravinda K., Dept. of E&C, NHCE
In this example, when the gate delays have different values, the
outputs also update at different times, even though the
statements execute simultaneously.
If A changes at a time-stamp of 5 ns, then D, E and F change at
7 ns, 6 ns and 8 ns respectively.
21/01/2019 24Aravinda K., Dept. of E&C, NHCE
“Delta delay” is an infinitesimally small delay, which is used to
indicate the sequentiality between dependant concurrent
statements. VHDL simulators display the delta delay, whereas
Verilog simulators do not.
The general form of the signal assignment statement is:
The brackets indicate that the delay is optional.
21/01/2019 25Aravinda K., Dept. of E&C, NHCE
Statement Result
assign #10 CLK= ~CLK; Waveform with name “CLK” is produced
assign #10 Clk= ~Clk; Waveform with name “Clk” is produced
assign CLK= ~CLK; The waveform will never advance
 A Verilog identifier or a signal name can contain letters,
numbers, underscore character and dollar sign.
 A Verilog identifier must start with a letter or an underscore
character.
 A Verilog identifier cannot start with a number or dollar sign.
 The dollar sign is reserved as the first character for the
system tasks.
21/01/2019 26Aravinda K., Dept. of E&C, NHCE
Valid identifiers Invalid identifiers
adder 4bit_adder
Mux_input $100
_error_code always
_$500 _#123
 Every Verilog statement must be terminated with a
semicolon.
 Anything following a double slash is treated as a comment to
the end of the line.
 Comments for more than one line start with “/*” and end
with “*/”.
 Words such as “and”, “or” and “always”, are reserved words.
21/01/2019 27Aravinda K., Dept. of E&C, NHCE
 When the signal is of type wire (or net), it generally has
a value of 0 or 1.
 The net values in Verilog are represented as -
<number of bits>’<base><value>.
 Hence, 1’b0 means “1 position binary 0”. The decimal and
hexadecimal values are represented with “d” and “h”.
 A one-dimensional array of bit signals is referred to as a vector.
 A 4 bit-wire can be named as vector B, and can be declared as,
wire B[3:0];.
 The vector B has an index range 0 through 3, and its elements
are designated as B[0], B[1], B[2] and B[3].
 The statement B=4’b1100 assigns 1 to B[3], 1 to B[2], 0 to B[1]
and 0 to B[0].
21/01/2019 28Aravinda K., Dept. of E&C, NHCE
“&&” is the logical AND operator
“&” is the bitwise AND operator
21/01/2019 29Aravinda K., Dept. of E&C, NHCE
Verilog Modules
A Module is a basic building block that declares input and output
signals, and specifies the internal operation of the module.
 All the I/O signals have to be listed in the module statement.
 Since “C” is an internal signal, it has to be declared as wire.
21/01/2019 30Aravinda K., Dept. of E&C, NHCE
21/01/2019 31Aravinda K., Dept. of E&C, NHCE
The interface ports can be of type input, output or inout. VHDL is
very strict in compilation, wheras Verilog produces an output even
when the variable is declared as input. However, a variable has to
be declared as inout, if that variable is used by other modules.
21/01/2019 32Aravinda K., Dept. of E&C, NHCE
module FullAdder (X, Y, Cin, Cout, Sum);
output Cout, Sum;
input X, Y, Cin;
assign #10 Sum = X ^ Y ^ Cin;
assign #10 Cout = ( X && Y) || ( X && Cin) || ( Y && Cin);
endmodule
21/01/2019 33Aravinda K., Dept. of E&C, NHCE
 In the structural description,
the 4-bit adder is declared as a
module, and the full adder
module is instantiated inside the
4-bit adder module.
 Here, each instance of Full
adder has a port map, which
corresponds one-to-one with the
signals in the component port
(FullAdder module).
 This method, in which the
order of the signals in the
portmap is same as the order of
the signals in the ports of the
module, is called as “positional
association”.
 If the ports are mapped by
name, then it is called as “named
association”.
21/01/2019 34Aravinda K., Dept. of E&C, NHCE
Verilog Assignments
Continuous Procedural
Blocking Non-blockingExplicit Implicit
Keyword: assign Keywords: initial, always
21/01/2019 35Aravinda K., Dept. of E&C, NHCE
21/01/2019 36Aravinda K., Dept. of E&C, NHCE
Procedural Assignments
 Combinational logic constantly reacts to input changes,
whereas synchronous sequential logic responds to changes that
are dependent on the clock.
 Therefore, the procedural assignments are used to model the
sequential logic, such as registers and finite state machines.
 Unlike the continuous assignments, with procedural
assignments, the execution of statements happens with a
sequence of operations.
 The two types of procedural assignment blocks in Verilog are
“initial” and “always”; the LHS of the assignment statements,
inside these blocks, have to be declared as of data type “reg”.
21/01/2019 37Aravinda K., Dept. of E&C, NHCE
initial always
Executes only once Executes in a loop
Executes without waiting Executes after an event
Useful in simulation & verification Useful for synthesis
21/01/2019 38Aravinda K., Dept. of E&C, NHCE
21/01/2019 39Aravinda K., Dept. of E&C, NHCE
In this example, assuming
the initial values as:
A=1’b1, B=1’b0, C=1’b1,
D=1’b0,
the outputs after completion
of the execution are:
A=1’b0, B=1’b0, C=1’b0,
D=1’b1.
 We should be very careful while using “always” to represent
combinational logic. If any input signals are accidentally omitted
from the sensitivity list, there will be mismatches between
simulation and synthesis outcomes.
 The statement “always @(*)” avoids such accidental errors.
21/01/2019 40Aravinda K., Dept. of E&C, NHCE
21/01/2019 41Aravinda K., Dept. of E&C, NHCE
 input and inout ports have to be of type “wire”; output ports can
be of either “wire” or “reg” type.
 Here, D and E are declared as “reg”, as they are at LHS. Therefore,
D cannot be declared as “inout”.
 When the sensitivity list contains “*”, the “always” block gets
triggered for any input signal changes.
21/01/2019 42Aravinda K., Dept. of E&C, NHCE
Note
1. “wire” does not store information, whereas “reg” stores
information. The initial value of a “wire” is “z” (high impedance),
and that of “reg” is “x” (unknown).
2. The operator “=” has a blocking nature inside “always”, whereas
it has a non-blocking (concurrent) nature outside “always”.
3. The operator “<=” has a non-blocking nature inside “always”,
and has no usage as an assignment operator outside “always”.
4. The LHS elements inside the procedural blocks have to be
declared as “reg” data type. But “reg” data type cannot be present
at the LHS of a continuous assignment statement.
5. For synthesizable codes, it is better to use non-blocking
assignments for sequential logic, and blocking assignments for
combinational logic, and not to mix both in the same block.
21/01/2019 43Aravinda K., Dept. of E&C, NHCE
21/01/2019 44Aravinda K., Dept. of E&C, NHCE
Modeling of flip-flops using “always” block
When a rising edge of the clock
occurs, Q is set equal to D. If the
flip-flop has a delay of 5 ns, then
the statement can be: Q <= #5 D;
If Q changes when D changes,
then it is a transparent latch. In
this code, Q changes when G = 1.
Either (G or D) or (G, D) are
acceptable, in the sensitivity list.
This flip-flop is with active-low
asynchronous “clear” input.
When clear = 0, the flip-flop is
reset; otherwise, Q is updated
with the rising edge of the clock.
21/01/2019 45Aravinda K., Dept. of E&C, NHCE
“if” statements cannot be used
as concurrent. Brace indicates
that any number of “else if” can
be included. Bracket indicates
that “else” is optional.
21/01/2019 46Aravinda K., Dept. of E&C, NHCE
J K Qn
0 0 Qn-1
0 1 0
1 0 1
1 1 Q’n-1
 This flip-flop is with active-low
asynchronous “preset” (SN) and
“clear” (RN) inputs, and triggers
on the falling edge of clock.
 The characteristic equation of
the flip-flop is, Q+ = JQ’ + K’Q.
21/01/2019 47Aravinda K., Dept. of E&C, NHCE
 “Qint” is defined as an internal signal because, RHS cannot have
an output identifier, and inout type cannot be declared as reg.
 8 ns represents the time taken to set or to clear, and 10 ns
represents the time taken for Q to change.
 In the “if” statement, either (~RN) or (RN == 1’b0) are acceptable.
21/01/2019 48Aravinda K., Dept. of E&C, NHCE
“always” blocks using event control statements
When sensitivity list is not specified or not
required, event control statements such as
“wait” can be used.
In contrast, when wait statements are
included, the always block cannot have
sensitivity list.
The wait statement is used as a level-
sensitive event control. It can also be used
to handshake between two processes.
21/01/2019 49Aravinda K., Dept. of E&C, NHCE
1. (a) It will compile, but will not simulate correctly because, the
“carry” statement has no dependency on “add” signal.
2. (d) It will not compile because, when compiler gets to “else”, it
does not find the corresponding “if” before.
Note: Both codes can be corrected by adding “begin” and “end”.
1 2
(a) It will compile, but will not simulate correctly.
(b) It will compile and simulate, but will not synthesize correctly.
(c) It will work correctly both in simulation and synthesis.
(d) It will not get compiled at all.
21/01/2019 50Aravinda K., Dept. of E&C, NHCE
Verilog data types
Net Variable
Keywords
wire (connections)
tri (tristate)
wand (wired and)
wor (wired or)
Keywords
reg (register)
time (stores timing)
integer (without point)
real (floating point)
realtime (fractional time)
21/01/2019 Aravinda K., Dept. of E&C, NHCE 51
wand and wor indicate that the net is being driven by more inputs;
the synthesis tool automatically generates the respective gates.
module p1(x,y,z);
input x,y;
output z;
wor p;
assign p=x&y;
assign p=~x&~y;
assign z=p;
endmodule
module p2(x,y,z);
input x,y;
output z;
wire p;
assign p=x&y;
assign p=~x&~y;
assign z=p;
endmodule
module p3(x,y,z);
input x,y:
output z;
wire p,q ;
assign p=x&y;
assign q=~x&~y;
assign z=p|q;
endmodule
WRONG CODE GENERAL CODE
21/01/2019 52Aravinda K., Dept. of E&C, NHCE
Verilog operators
Unary Arithmetic
+ plus
- minus
! logical negation
~ bitwise negation
& reduction AND
| reduction OR
^ reduction XOR
Relational and shift
+ add
- subtract
* multiply
/ divide
% modulus
** exponent
< less than
> greater than
<= less than or equal
>= greater than or equal
<< logical left shift
>> logical right shift
<<< arithmetic left shift
>>> arithmetic right shift
21/01/2019 53Aravinda K., Dept. of E&C, NHCE
Verilog operators contd…
Logical Bitwise
== equality
!= inequality
=== case equality
!== case inequality
&& logical AND
|| logical OR
Other
& AND
| OR
^ XOR
^~ ~^ equal
?: conditional
{} concatenation
{{}} replication
21/01/2019 54Aravinda K., Dept. of E&C, NHCE
21/01/2019 55Aravinda K., Dept. of E&C, NHCE
Expression Operation Result
C >> 2 Shift right by 2 places 000110
C >> 2 & D Bitwise AND 000010
~ B Bitwise INVERT 000
{A, ~B} Concatenate 110000
({A, ~B}) | (C >> 2 & D) Bitwise OR 110010
(({A, ~B}) | (C >> 2 & D)) & D Bitwise AND 110010
(({A, ~B}) | (C >> 2 & D)) & D ==
110010
Equality check TRUE
Example: A = 110, B = 111, C = 011000, D = 111011
21/01/2019 56Aravinda K., Dept. of E&C, NHCE
 Unary reduction reduces a vector into a single bit.
 When parentheses are not used, “Unary” operators have the
highest precedence and “Other” operators have the lowest
precedence, in the class in which the operators are listed.
 Operators belonging to the same class have same precedence,
and are applied from left to right in an expression.
& &&
Operates on Boolean type as
well as on binary data
Operates only on the Boolean
data type (TRUE or FALSE)
Evaluates both sides of the
expression
Evaluates only the LHS of the
expression
When A = 5, B = 4, C = 3, then
(A>=B) && (B<=C) yields (1) && (0) yields (0).
21/01/2019 57Aravinda K., Dept. of E&C, NHCE
Expression Operation Result
A >> 4 Logical right shift 00001010
A >>> 4 Arithmetic right shift 11111010
A << 4 Logical left shift 01010000
A <<< 4 Arithmetic left shift 01010000
reg signed [7:0] A = 8’hA5;
(A = 10100101)
Expression Operation Result
B >> 4 Logical right shift 00001010
B >>> 4 Arithmetic right shift 00001010
B << 4 Logical left shift 01010000
B <<< 4 Arithmetic left shift 01010000
reg [7:0] B = 8’hA5;
(B = 10100101)
21/01/2019 58Aravinda K., Dept. of E&C, NHCE
Expression Operation Result
A >> 4 Logical right shift 00001010
A >>> 4 Arithmetic right shift 00001010
A << 4 Logical left shift 01010000
A <<< 4 Arithmetic left shift 01010000
integer signed A = 8’hA5;
(A = 00000000000000000000000010100101)
integer A = 8’shA5;
(A = 11111111111111111111111110100101)
Expression Operation Result
A >> 4 Logical right shift 11111010
A >>> 4 Arithmetic right shift 11111010
A << 4 Logical left shift 01010000
A <<< 4 Arithmetic left shift 01010000
21/01/2019 59Aravinda K., Dept. of E&C, NHCE
Verilog models for Multiplexers
The expression for the output is,
F = A’I0+AI1
21/01/2019 60Aravinda K., Dept. of E&C, NHCE
The expression for the output is,
F = A’B’I0+A’BI1+AB’I2+ABI3
Code with the procedural assignment, using the “case” statement
Code with the continuous statement
21/01/2019 61Aravinda K., Dept. of E&C, NHCE
Code with the procedural assignment, using the “if” statement
Important coding practices while writing synthesizable Verilog:
1. Whenever possible, use concurrent assignments to design
the combinational logic.
2. Whenever procedural assignments are used for the
combinational logic, use blocking assignments.
3. Use “always @(*)”, to avoid accidental omissions of inputs
in the sensitivity list.
21/01/2019 62Aravinda K., Dept. of E&C, NHCE
Modeling Registers and Counters
Cyclic shift register
21/01/2019 63Aravinda K., Dept. of E&C, NHCE
Concurrent Blocking Non-blocking
assign y = a & b; y = a & b; y <= a & b;
Assignment is
immediate
Assignment is
immediate
Assignment is
parallel
Suitable for
combinational logic
Suitable for
combinational logic
Suitable for
sequential logic
Order of the
statements is not
important
Order of the
statements is
important
Order of the
statements is not
important
21/01/2019 64Aravinda K., Dept. of E&C, NHCE
Synthesis output: A 3-bit shift
register, with serial input A,
and outputs Q1, Q2, Q3.
Synthesis output: A single flip-
flop, with input A, and a single
output Q3.
21/01/2019 65Aravinda K., Dept. of E&C, NHCE
1. Register with
synchronous
“clear” and “load”
2. Register with “left
shift” operation and
concatenation
21/01/2019 66Aravinda K., Dept. of E&C, NHCE
3. Synchronous
counter
4. Standard synchronous
counter, 74163
21/01/2019 67Aravinda K., Dept. of E&C, NHCE
P is “enable” signal and T is “carry connection” signal. “clear” overrides
“load” and “count” functions, and “load” overrides “count” function.
21/01/2019 68Aravinda K., Dept. of E&C, NHCE
This is a structural
modeling, which
interconnects the
previous defined
modules. c74163
is component’s
name; ct1, ct2 are
instance names.
5. Cascading of
74163, to get
8-bit counter
21/01/2019 69Aravinda K., Dept. of E&C, NHCE
Synthesis of “Left
shift” register
Verilog cannot synthesize delays.
Similarly, “initial” blocks are
ignored by the synthesis tools.
21/01/2019 70Aravinda K., Dept. of E&C, NHCE
This code is meant for a
combinational circuit, but
creates an additional latch
to hold the value of F, when
Sel changes to 2’b11. This
latch creates timing issues.
The additional latch can be
avoided, if all possible cases
of the inputs are included.
When all possible execution
paths are covered, holding a
value is not necessary.
The additional latch can also
be avoided, by initializing
the combinational output in
the beginning of “always”
block. In this way, holding a
value becomes unnecessary.
21/01/2019 71Aravinda K., Dept. of E&C, NHCE
Important coding practices while writing synthesizable Verilog:
4. Use an edge-triggered clock in the sensitivity list (using the
“posedge” or “negedge” keywords).
5. Should not make assignments to the same variable, in
more than one “always” block.
6. Unwanted latches can be avoided, by means of –
i) including “else” clauses for “if” statements. ii) specifying
all cases for “case” statements, or having a “default” clause
at the end. iii) initializing the combinational outputs at the
beginning of the “always” block.
21/01/2019 72Aravinda K., Dept. of E&C, NHCE
Behavioral and Structural Verilog
Any circuit can be represented in multiple forms
of abstraction; e.g., different designers think of
NAND gate in different representations. In the
same way, the function F = AB + BC can be
described in two different ways:
21/01/2019 73Aravinda K., Dept. of E&C, NHCE
Behavioral
models
Data flow (RTL)
models
Structural
models
These models describe the system
at a higher level of abstraction,
without implying any particular
structure or technology. (e.g., full
adder’s truth table description)
These models describe the system
at a lower level of abstraction, by
means of components and their
interconnections. (e.g., full adder in
terms of half adders)
These models describe the system
at an intermediate level, called as
Register Transfer Language. (e.g.:
full adder’s algebraic expressions)
EXAMPLE: SEQUENCE DETECTOR THAT DETECTS “101”
Modeling a sequential machine
21/01/2019 Aravinda K., Dept. of E&C, NHCE 74
21/01/2019 75Aravinda K., Dept. of E&C, NHCE
Two types of finite state machines
21/01/2019 76Aravinda K., Dept. of E&C, NHCE
21/01/2019 77Aravinda K., Dept. of E&C, NHCE
Behavioral modeling for a Mealy sequential circuit
State table
An example is the state machine of a
BCD to excess-3 code converter, which
can be designed in four different ways:
1. Behavioral: with two “always” blocks
2. Behavioral: with one “always” block
3. Data flow: with combinational logic
4. Structural: with combinational logic
21/01/2019 78Aravinda K., Dept. of E&C, NHCE
1. With two “always” blocks:
i) One for combinational part
ii) Other for state register
21/01/2019 79Aravinda K., Dept. of E&C, NHCE
2. With one “always” block
When compared to this
model, the earlier one is
better because,
it corresponds more
closely to the hardware
implementation.
21/01/2019 80Aravinda K., Dept. of E&C, NHCE
3. With combinational logic
(data flow model)
This model
requires
state
assignments,
and the
derivation of
the next
state
equations.
21/01/2019 81Aravinda K., Dept. of E&C, NHCE
4. With combinational logic
(structural model)
This model exactly corresponds to
the hardware that was intended,
but requires more effort to
produce. Hence, to have quicker
“time-to-market”, designers often
use behavioral model.
21/01/2019 82Aravinda K., Dept. of E&C, NHCE
OF
MODULE - 1
21/01/2019 Aravinda K., Dept. of E&C, NHCE 83

More Related Content

What's hot

What's hot (20)

Sandberg v deetzen_trcomm_2010
Sandberg v deetzen_trcomm_2010Sandberg v deetzen_trcomm_2010
Sandberg v deetzen_trcomm_2010
 
PLUG : Presentation Layer Universal Generator
PLUG : Presentation Layer Universal GeneratorPLUG : Presentation Layer Universal Generator
PLUG : Presentation Layer Universal Generator
 
Ravikanth Resume
Ravikanth ResumeRavikanth Resume
Ravikanth Resume
 
Domain Specific Language with pleasure
Domain Specific Language with pleasureDomain Specific Language with pleasure
Domain Specific Language with pleasure
 
Domain Specific Language Design
Domain Specific Language DesignDomain Specific Language Design
Domain Specific Language Design
 
Vivek Kotwal Resume
Vivek Kotwal ResumeVivek Kotwal Resume
Vivek Kotwal Resume
 
Resume_Gautham
Resume_GauthamResume_Gautham
Resume_Gautham
 
Embedded system
Embedded systemEmbedded system
Embedded system
 
Vikas Resume CGPA New Font2
Vikas Resume CGPA New Font2Vikas Resume CGPA New Font2
Vikas Resume CGPA New Font2
 
resume_RAVI
resume_RAVIresume_RAVI
resume_RAVI
 
C Language
C LanguageC Language
C Language
 
Multi-Edge Type LDPC codes
Multi-Edge Type LDPC codesMulti-Edge Type LDPC codes
Multi-Edge Type LDPC codes
 
cc23
cc23cc23
cc23
 
Himanshu Shivhar (1)
Himanshu Shivhar (1)Himanshu Shivhar (1)
Himanshu Shivhar (1)
 
Lear unified env_paper-1
Lear unified env_paper-1Lear unified env_paper-1
Lear unified env_paper-1
 
Ramesh resume
Ramesh resumeRamesh resume
Ramesh resume
 
Sai Dheeraj_Resume
Sai Dheeraj_ResumeSai Dheeraj_Resume
Sai Dheeraj_Resume
 
Modeling an Embedded Device for PSpice Simulation
Modeling an Embedded Device for PSpice SimulationModeling an Embedded Device for PSpice Simulation
Modeling an Embedded Device for PSpice Simulation
 
RESUME_Dech L(03-Feb-2015)
RESUME_Dech L(03-Feb-2015)RESUME_Dech L(03-Feb-2015)
RESUME_Dech L(03-Feb-2015)
 
Punit_Shah_resume
Punit_Shah_resumePunit_Shah_resume
Punit_Shah_resume
 

Similar to System design using HDL - Module 1

Introduction to VHDL - Part 1
Introduction to VHDL - Part 1Introduction to VHDL - Part 1
Introduction to VHDL - Part 1Abhilash Nair
 
DOUBLE PRECISION FLOATING POINT CORE IN VERILOG
DOUBLE PRECISION FLOATING POINT CORE IN VERILOGDOUBLE PRECISION FLOATING POINT CORE IN VERILOG
DOUBLE PRECISION FLOATING POINT CORE IN VERILOGIJCI JOURNAL
 
Digital principle and computer design Presentation (1).pptx
Digital principle and computer design Presentation (1).pptxDigital principle and computer design Presentation (1).pptx
Digital principle and computer design Presentation (1).pptxMalligaarjunanN
 
Kroening et al, v2c a verilog to c translator
Kroening et al, v2c   a verilog to c translatorKroening et al, v2c   a verilog to c translator
Kroening et al, v2c a verilog to c translatorsce,bhopal
 
Design and Implementation of Area Efficiency AES Algoritham with FPGA and ASIC,
Design and Implementation of Area Efficiency AES Algoritham with FPGA and ASIC,Design and Implementation of Area Efficiency AES Algoritham with FPGA and ASIC,
Design and Implementation of Area Efficiency AES Algoritham with FPGA and ASIC,paperpublications3
 
VHDL_Lecture_new1 [Autosaved].ppt
VHDL_Lecture_new1 [Autosaved].pptVHDL_Lecture_new1 [Autosaved].ppt
VHDL_Lecture_new1 [Autosaved].pptNAVEENM849290
 
Design and Implementation of Area Efficiency AES Algoritham with FPGA and ASIC
Design and Implementation of Area Efficiency AES Algoritham with FPGA and ASICDesign and Implementation of Area Efficiency AES Algoritham with FPGA and ASIC
Design and Implementation of Area Efficiency AES Algoritham with FPGA and ASICpaperpublications3
 
FPGA Hardware Design of Different LDPC Applications: Survey
FPGA Hardware Design of Different LDPC Applications: SurveyFPGA Hardware Design of Different LDPC Applications: Survey
FPGA Hardware Design of Different LDPC Applications: SurveyBRNSSPublicationHubI
 
Hardware Description Language
Hardware Description Language Hardware Description Language
Hardware Description Language Prachi Pandey
 
Introduction to VHDL
Introduction to VHDLIntroduction to VHDL
Introduction to VHDLYaser Kalifa
 
Vlsi & embedded systems
Vlsi & embedded systemsVlsi & embedded systems
Vlsi & embedded systemsDeepak Yadav
 

Similar to System design using HDL - Module 1 (20)

Wi Fi documantation
Wi Fi documantationWi Fi documantation
Wi Fi documantation
 
Verilog
VerilogVerilog
Verilog
 
Introduction to VHDL - Part 1
Introduction to VHDL - Part 1Introduction to VHDL - Part 1
Introduction to VHDL - Part 1
 
DOUBLE PRECISION FLOATING POINT CORE IN VERILOG
DOUBLE PRECISION FLOATING POINT CORE IN VERILOGDOUBLE PRECISION FLOATING POINT CORE IN VERILOG
DOUBLE PRECISION FLOATING POINT CORE IN VERILOG
 
Hdl
HdlHdl
Hdl
 
Report on VLSI
Report on VLSIReport on VLSI
Report on VLSI
 
Digital principle and computer design Presentation (1).pptx
Digital principle and computer design Presentation (1).pptxDigital principle and computer design Presentation (1).pptx
Digital principle and computer design Presentation (1).pptx
 
vhdl
vhdlvhdl
vhdl
 
Kroening et al, v2c a verilog to c translator
Kroening et al, v2c   a verilog to c translatorKroening et al, v2c   a verilog to c translator
Kroening et al, v2c a verilog to c translator
 
Spdas2 vlsibput
Spdas2 vlsibputSpdas2 vlsibput
Spdas2 vlsibput
 
Verilog HDL
Verilog HDL Verilog HDL
Verilog HDL
 
Design and Implementation of Area Efficiency AES Algoritham with FPGA and ASIC,
Design and Implementation of Area Efficiency AES Algoritham with FPGA and ASIC,Design and Implementation of Area Efficiency AES Algoritham with FPGA and ASIC,
Design and Implementation of Area Efficiency AES Algoritham with FPGA and ASIC,
 
VHDL_Lecture_new1 [Autosaved].ppt
VHDL_Lecture_new1 [Autosaved].pptVHDL_Lecture_new1 [Autosaved].ppt
VHDL_Lecture_new1 [Autosaved].ppt
 
Design and Implementation of Area Efficiency AES Algoritham with FPGA and ASIC
Design and Implementation of Area Efficiency AES Algoritham with FPGA and ASICDesign and Implementation of Area Efficiency AES Algoritham with FPGA and ASIC
Design and Implementation of Area Efficiency AES Algoritham with FPGA and ASIC
 
FPGA Hardware Design of Different LDPC Applications: Survey
FPGA Hardware Design of Different LDPC Applications: SurveyFPGA Hardware Design of Different LDPC Applications: Survey
FPGA Hardware Design of Different LDPC Applications: Survey
 
Hardware Description Language
Hardware Description Language Hardware Description Language
Hardware Description Language
 
Project
ProjectProject
Project
 
Vhdl 1 ppg
Vhdl 1 ppgVhdl 1 ppg
Vhdl 1 ppg
 
Introduction to VHDL
Introduction to VHDLIntroduction to VHDL
Introduction to VHDL
 
Vlsi & embedded systems
Vlsi & embedded systemsVlsi & embedded systems
Vlsi & embedded systems
 

More from Aravinda Koithyar

More from Aravinda Koithyar (20)

Analog Electronic Circuits - Module 5
Analog Electronic Circuits - Module 5Analog Electronic Circuits - Module 5
Analog Electronic Circuits - Module 5
 
Analog Electronic Circuits - Module 4
Analog Electronic Circuits - Module 4Analog Electronic Circuits - Module 4
Analog Electronic Circuits - Module 4
 
Analog Electronic Circuits - Module 3
Analog Electronic Circuits - Module 3Analog Electronic Circuits - Module 3
Analog Electronic Circuits - Module 3
 
Analog Electronic Circuits - Module 2.3
Analog Electronic Circuits - Module 2.3Analog Electronic Circuits - Module 2.3
Analog Electronic Circuits - Module 2.3
 
Analog Electronic Circuits - Module 2.2
Analog Electronic Circuits - Module 2.2Analog Electronic Circuits - Module 2.2
Analog Electronic Circuits - Module 2.2
 
Analog Electronic Circuits - Module 2.1
Analog Electronic Circuits - Module 2.1Analog Electronic Circuits - Module 2.1
Analog Electronic Circuits - Module 2.1
 
System design using HDL - Module 5
System design using HDL - Module 5System design using HDL - Module 5
System design using HDL - Module 5
 
System design using HDL - Module 2
System design using HDL - Module 2System design using HDL - Module 2
System design using HDL - Module 2
 
System design using HDL - Module 3
System design using HDL - Module 3System design using HDL - Module 3
System design using HDL - Module 3
 
Spiritual health through yoga
Spiritual health through yogaSpiritual health through yoga
Spiritual health through yoga
 
Lessons of leadership
Lessons of leadershipLessons of leadership
Lessons of leadership
 
Great sayings
Great sayingsGreat sayings
Great sayings
 
Sanskrit words with pictures
Sanskrit words with picturesSanskrit words with pictures
Sanskrit words with pictures
 
Guru and Gaayathree
Guru and GaayathreeGuru and Gaayathree
Guru and Gaayathree
 
Samskrtha Pravesha
Samskrtha PraveshaSamskrtha Pravesha
Samskrtha Pravesha
 
Adi shankara's literary works
Adi shankara's literary worksAdi shankara's literary works
Adi shankara's literary works
 
Introduction to yoga
Introduction to yogaIntroduction to yoga
Introduction to yoga
 
Pranayama
PranayamaPranayama
Pranayama
 
Sacred secret
Sacred secretSacred secret
Sacred secret
 
Memory
MemoryMemory
Memory
 

Recently uploaded

INFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETE
INFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETEINFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETE
INFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETEroselinkalist12
 
VICTOR MAESTRE RAMIREZ - Planetary Defender on NASA's Double Asteroid Redirec...
VICTOR MAESTRE RAMIREZ - Planetary Defender on NASA's Double Asteroid Redirec...VICTOR MAESTRE RAMIREZ - Planetary Defender on NASA's Double Asteroid Redirec...
VICTOR MAESTRE RAMIREZ - Planetary Defender on NASA's Double Asteroid Redirec...VICTOR MAESTRE RAMIREZ
 
Churning of Butter, Factors affecting .
Churning of Butter, Factors affecting  .Churning of Butter, Factors affecting  .
Churning of Butter, Factors affecting .Satyam Kumar
 
Introduction-To-Agricultural-Surveillance-Rover.pptx
Introduction-To-Agricultural-Surveillance-Rover.pptxIntroduction-To-Agricultural-Surveillance-Rover.pptx
Introduction-To-Agricultural-Surveillance-Rover.pptxk795866
 
Call Girls Narol 7397865700 Independent Call Girls
Call Girls Narol 7397865700 Independent Call GirlsCall Girls Narol 7397865700 Independent Call Girls
Call Girls Narol 7397865700 Independent Call Girlsssuser7cb4ff
 
Sachpazis Costas: Geotechnical Engineering: A student's Perspective Introduction
Sachpazis Costas: Geotechnical Engineering: A student's Perspective IntroductionSachpazis Costas: Geotechnical Engineering: A student's Perspective Introduction
Sachpazis Costas: Geotechnical Engineering: A student's Perspective IntroductionDr.Costas Sachpazis
 
CCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdf
CCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdfCCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdf
CCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdfAsst.prof M.Gokilavani
 
Call Us ≽ 8377877756 ≼ Call Girls In Shastri Nagar (Delhi)
Call Us ≽ 8377877756 ≼ Call Girls In Shastri Nagar (Delhi)Call Us ≽ 8377877756 ≼ Call Girls In Shastri Nagar (Delhi)
Call Us ≽ 8377877756 ≼ Call Girls In Shastri Nagar (Delhi)dollysharma2066
 
DATA ANALYTICS PPT definition usage example
DATA ANALYTICS PPT definition usage exampleDATA ANALYTICS PPT definition usage example
DATA ANALYTICS PPT definition usage examplePragyanshuParadkar1
 
UNIT III ANALOG ELECTRONICS (BASIC ELECTRONICS)
UNIT III ANALOG ELECTRONICS (BASIC ELECTRONICS)UNIT III ANALOG ELECTRONICS (BASIC ELECTRONICS)
UNIT III ANALOG ELECTRONICS (BASIC ELECTRONICS)Dr SOUNDIRARAJ N
 
pipeline in computer architecture design
pipeline in computer architecture  designpipeline in computer architecture  design
pipeline in computer architecture designssuser87fa0c1
 
Arduino_CSE ece ppt for working and principal of arduino.ppt
Arduino_CSE ece ppt for working and principal of arduino.pptArduino_CSE ece ppt for working and principal of arduino.ppt
Arduino_CSE ece ppt for working and principal of arduino.pptSAURABHKUMAR892774
 
Concrete Mix Design - IS 10262-2019 - .pptx
Concrete Mix Design - IS 10262-2019 - .pptxConcrete Mix Design - IS 10262-2019 - .pptx
Concrete Mix Design - IS 10262-2019 - .pptxKartikeyaDwivedi3
 
EduAI - E learning Platform integrated with AI
EduAI - E learning Platform integrated with AIEduAI - E learning Platform integrated with AI
EduAI - E learning Platform integrated with AIkoyaldeepu123
 
complete construction, environmental and economics information of biomass com...
complete construction, environmental and economics information of biomass com...complete construction, environmental and economics information of biomass com...
complete construction, environmental and economics information of biomass com...asadnawaz62
 

Recently uploaded (20)

INFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETE
INFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETEINFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETE
INFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETE
 
🔝9953056974🔝!!-YOUNG call girls in Rajendra Nagar Escort rvice Shot 2000 nigh...
🔝9953056974🔝!!-YOUNG call girls in Rajendra Nagar Escort rvice Shot 2000 nigh...🔝9953056974🔝!!-YOUNG call girls in Rajendra Nagar Escort rvice Shot 2000 nigh...
🔝9953056974🔝!!-YOUNG call girls in Rajendra Nagar Escort rvice Shot 2000 nigh...
 
VICTOR MAESTRE RAMIREZ - Planetary Defender on NASA's Double Asteroid Redirec...
VICTOR MAESTRE RAMIREZ - Planetary Defender on NASA's Double Asteroid Redirec...VICTOR MAESTRE RAMIREZ - Planetary Defender on NASA's Double Asteroid Redirec...
VICTOR MAESTRE RAMIREZ - Planetary Defender on NASA's Double Asteroid Redirec...
 
Churning of Butter, Factors affecting .
Churning of Butter, Factors affecting  .Churning of Butter, Factors affecting  .
Churning of Butter, Factors affecting .
 
Introduction-To-Agricultural-Surveillance-Rover.pptx
Introduction-To-Agricultural-Surveillance-Rover.pptxIntroduction-To-Agricultural-Surveillance-Rover.pptx
Introduction-To-Agricultural-Surveillance-Rover.pptx
 
Call Girls Narol 7397865700 Independent Call Girls
Call Girls Narol 7397865700 Independent Call GirlsCall Girls Narol 7397865700 Independent Call Girls
Call Girls Narol 7397865700 Independent Call Girls
 
Sachpazis Costas: Geotechnical Engineering: A student's Perspective Introduction
Sachpazis Costas: Geotechnical Engineering: A student's Perspective IntroductionSachpazis Costas: Geotechnical Engineering: A student's Perspective Introduction
Sachpazis Costas: Geotechnical Engineering: A student's Perspective Introduction
 
Exploring_Network_Security_with_JA3_by_Rakesh Seal.pptx
Exploring_Network_Security_with_JA3_by_Rakesh Seal.pptxExploring_Network_Security_with_JA3_by_Rakesh Seal.pptx
Exploring_Network_Security_with_JA3_by_Rakesh Seal.pptx
 
young call girls in Green Park🔝 9953056974 🔝 escort Service
young call girls in Green Park🔝 9953056974 🔝 escort Serviceyoung call girls in Green Park🔝 9953056974 🔝 escort Service
young call girls in Green Park🔝 9953056974 🔝 escort Service
 
9953056974 Call Girls In South Ex, Escorts (Delhi) NCR.pdf
9953056974 Call Girls In South Ex, Escorts (Delhi) NCR.pdf9953056974 Call Girls In South Ex, Escorts (Delhi) NCR.pdf
9953056974 Call Girls In South Ex, Escorts (Delhi) NCR.pdf
 
CCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdf
CCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdfCCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdf
CCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdf
 
Call Us ≽ 8377877756 ≼ Call Girls In Shastri Nagar (Delhi)
Call Us ≽ 8377877756 ≼ Call Girls In Shastri Nagar (Delhi)Call Us ≽ 8377877756 ≼ Call Girls In Shastri Nagar (Delhi)
Call Us ≽ 8377877756 ≼ Call Girls In Shastri Nagar (Delhi)
 
DATA ANALYTICS PPT definition usage example
DATA ANALYTICS PPT definition usage exampleDATA ANALYTICS PPT definition usage example
DATA ANALYTICS PPT definition usage example
 
UNIT III ANALOG ELECTRONICS (BASIC ELECTRONICS)
UNIT III ANALOG ELECTRONICS (BASIC ELECTRONICS)UNIT III ANALOG ELECTRONICS (BASIC ELECTRONICS)
UNIT III ANALOG ELECTRONICS (BASIC ELECTRONICS)
 
pipeline in computer architecture design
pipeline in computer architecture  designpipeline in computer architecture  design
pipeline in computer architecture design
 
Arduino_CSE ece ppt for working and principal of arduino.ppt
Arduino_CSE ece ppt for working and principal of arduino.pptArduino_CSE ece ppt for working and principal of arduino.ppt
Arduino_CSE ece ppt for working and principal of arduino.ppt
 
young call girls in Rajiv Chowk🔝 9953056974 🔝 Delhi escort Service
young call girls in Rajiv Chowk🔝 9953056974 🔝 Delhi escort Serviceyoung call girls in Rajiv Chowk🔝 9953056974 🔝 Delhi escort Service
young call girls in Rajiv Chowk🔝 9953056974 🔝 Delhi escort Service
 
Concrete Mix Design - IS 10262-2019 - .pptx
Concrete Mix Design - IS 10262-2019 - .pptxConcrete Mix Design - IS 10262-2019 - .pptx
Concrete Mix Design - IS 10262-2019 - .pptx
 
EduAI - E learning Platform integrated with AI
EduAI - E learning Platform integrated with AIEduAI - E learning Platform integrated with AI
EduAI - E learning Platform integrated with AI
 
complete construction, environmental and economics information of biomass com...
complete construction, environmental and economics information of biomass com...complete construction, environmental and economics information of biomass com...
complete construction, environmental and economics information of biomass com...
 

System design using HDL - Module 1

  • 1.
  • 2.
  • 3.
  • 4. SYSTEM DESIGN USING HDL (ECE43) # Digital system design using Verilog, Charles Roth, Lizy Kurian John, Byeong Kil Lee, 1st Edition, 2016, Cengage Learning 1 2.1, 2.2, 2.3 - 2.8, 2.11, 2.13 - 2.15 2 2.9, 2.10, 2.12, 2.16 - 2.19, 8.1, 8.2 3 3.1 - 3.4, 5.1, 5.2.1, 5.3 4 4.1 - 4.5, 4.8, 4.6, 4.7, 4.9, 4.11 5 6.1 - 6.5, 6.7 - 6.12
  • 5. 21/01/2019 Aravinda K., Dept. of E&C, NHCE 5 CO1 Identify the necessity of HDL for the automation of VLSI design CO2 Select Verilog for EDA, and describe its structure and syntax CO3 Apply the concepts of HDL on programmable devices, such as CPLD and FPGA CO4 Translate the design on state machine into HDL program CO5 Write optimized HDL codes for simple and complex systems CO6 Employ the FPGA hardware for the implementation of the HDL codes COURSE OUTCOMES
  • 6. Term Year Number of gates Examples SSI 1961 Upto 20 logic gates Flip-flops, Decoders, Registers MSI 1966 20 till 200 gates Multiplexers, Adders, Counters LSI 1971 200 till 10,000 8-bit Microprocessors, RAM, ROM VLSI 1980 10,000 till 1,00,000 Microcontrollers, 16 & 32-bit Microprocessors, DRAM ULSI 1990 Above 1,00,000 gates 64-bit Microprocessors, DSPs, SoC 21/01/2019 6Aravinda K., Dept. of E&C, NHCE MODULE-1: INTRODUCTION TO VERILOG
  • 7. 21/01/2019 Aravinda K., Dept. of E&C, NHCE 7 DESIGN ENTRY  Schematic capture: Lower level of abstraction (gates, flip-flops, standard MSI building blocks)  HDL: Higher level of abstraction - (behavioral: flow-chart, algorithm) (structural: specific components or implementations) SYNTHESIS  Process of conversion of higher-level abstraction of the design into actual components at the gate & flip-flop levels.  The output of the synthesis tool is the netlist, which is a list of gates and a list of their interconnections.  As the synthesis tool converts the design descriptions into hardware, it is also called as “design compiler” or “silicon compiler”.
  • 8. 21/01/2019 8Aravinda K., Dept. of E&C, NHCE
  • 9. 21/01/2019 9Aravinda K., Dept. of E&C, NHCE
  • 10. 21/01/2019 10Aravinda K., Dept. of E&C, NHCE
  • 11. 21/01/2019 11Aravinda K., Dept. of E&C, NHCE  After the post-synthesis simulation, the design can be implemented in several different target technologies (device lengths).  The target could be a completely custom IC, or could be implemented using the standard parts that are available from the vendor.  The standard parts are at the lowest level of sophistication and density, with the usage of old- fashioned printed circuit board.  The fully-custom ASIC is at the highest level of density and performance.  The other devices such as CPLD and FPGA come in between, as programmable solutions.
  • 12. 21/01/2019 12Aravinda K., Dept. of E&C, NHCE
  • 13. 21/01/2019 13Aravinda K., Dept. of E&C, NHCE  The current two most common target technologies are FPGAs and ASICs.  The design is mapped into the specific target technology (channel length), and placed into specific parts in the target ASIC or FPGA.  During routing, the selected components are connected to each other, using the available paths.  In case of an ASIC, the routed design is utilized for generating a photo-mask, which will be utilized for manufacturing the IC.  In case of an FPGA, the routed design is translated into a bit file, for the programming of the selected cells inside the FPGA.
  • 14. 21/01/2019 14Aravinda K., Dept. of E&C, NHCE
  • 15. 21/01/2019 15Aravinda K., Dept. of E&C, NHCE
  • 16. 21/01/2019 16Aravinda K., Dept. of E&C, NHCE HARDWARE DESCRIPTION LANGUAGES  HDL is a textual method of documenting the circuits, and feeding them into the simulators in the textual form, as opposed to the graphic form.  HDLs lead to a top-down design methodology (specified and tested at a high level), and HDLs are designed to be technology independent.  HDLs can describe a digital system at three different levels – behavioral (functional description), data flow (logic equations) and structural (in terms of subcomponents).
  • 17. 21/01/2019 17Aravinda K., Dept. of E&C, NHCE VHDL Verilog Government developed (Designed and sponsored by US department of defense), and became IEEE standard in 1987 Commercially developed (Designed by Gateway design system corporation), became IEEE standard in 1995 Strongly typecast, based on “Ada” language, and is case- insensitive Mildly typecast, based on “C” language, and is case-sensitive Structured, and is for large and complex systems (Difficult to learn, but more powerful) Simpler, with less syntax and fewer constructs (Easier to learn, and less powerful) Two popular HDLs are Verilog & VHDL. Verilog was a proprietary language in 1984, and was later owned and opened up by Cadence, in order to create a vendor-independent language specification, and to prevent the industry from shifting to VHDL.
  • 18. 21/01/2019 18Aravinda K., Dept. of E&C, NHCE  In addition, there are system design languages, such as System C and System Verilog, which describe large digital systems at a block level behavior.  These languages are primarily used for verification and validation. They help in reducing the design cycle time for large systems; the design problems become evident in the early stages, instead of becoming obvious during system integration.  When different blocks of a large system are designed by different teams, during the initial design process, one team can make use of the system level description of a block that is being designed by the other team.  In addition to the system design languages, there are tools that have emerged, which can convert the models written in non-HDL, directly into hardware.
  • 19. 21/01/2019 19Aravinda K., Dept. of E&C, NHCE UNLIKE THE OTHER PROGRAMMING LANGUAGES, THE CONSTRUCTS OF HDL ARE TAILORED FOR THE PURPOSE OF SIMULATION AND SYNTHESIS.
  • 20. 21/01/2019 20Aravinda K., Dept. of E&C, NHCE Sl. no. Symbol Name 1 ~ Tilde 2 ‘ Tick (Grave) 3 ` Back-tick (Acute) 4 “ Quote 5 & Ampersand 6 ^ Caret 7 # Cross-hash (Sharp) 8 * Asterisk 9 ( Parenthesis 10 [ Bracket 11 { Brace 12 < Angle bracket 13 / Slash (Solidus) 14 Back-slash 15 | Pipe (Bar) 16 - Hyphen (Dash) 17 @ Astatine (At) 18 : Colon 19 , Comma (Apostrophe) 20 … Ellipsis 21 ! Exclamation (Bang) 22 _ Underscore 23 . Period 24 ; Semicolon COMMONLY USED SYMBOLS
  • 21. 21/01/2019 21Aravinda K., Dept. of E&C, NHCE Verilog Description of Combinational Circuits  The combinational circuits are always working simultaneously, and hence they are modeled in Verilog by concurrent statements or continuous assignments.  Concurrent statements are always ready to execute, and hence, it is possible to simulate the execution of the several parts of the circuit at the same time.  The Verilog simulator continuously monitors the right side of each concurrent statement, and whenever a signal changes, the expression on the right side gets immediately re-evaluated.
  • 22. 21/01/2019 22Aravinda K., Dept. of E&C, NHCE #5 indicates a delay of 5 ns, representing the propagation delay of each logic gate. If it is not included, then the computation will be instantaneous. When the statements get executed, the variable “C” gets computed after 5 ns, and the variable “E” gets computed after another 5 ns, thus the total delay becoming as 10 ns. The order of the concurrent statements is not important. The output for the following will be the same as the previous one:
  • 23. 21/01/2019 23Aravinda K., Dept. of E&C, NHCE In this example, when the gate delays have different values, the outputs also update at different times, even though the statements execute simultaneously. If A changes at a time-stamp of 5 ns, then D, E and F change at 7 ns, 6 ns and 8 ns respectively.
  • 24. 21/01/2019 24Aravinda K., Dept. of E&C, NHCE “Delta delay” is an infinitesimally small delay, which is used to indicate the sequentiality between dependant concurrent statements. VHDL simulators display the delta delay, whereas Verilog simulators do not. The general form of the signal assignment statement is: The brackets indicate that the delay is optional.
  • 25. 21/01/2019 25Aravinda K., Dept. of E&C, NHCE Statement Result assign #10 CLK= ~CLK; Waveform with name “CLK” is produced assign #10 Clk= ~Clk; Waveform with name “Clk” is produced assign CLK= ~CLK; The waveform will never advance  A Verilog identifier or a signal name can contain letters, numbers, underscore character and dollar sign.  A Verilog identifier must start with a letter or an underscore character.  A Verilog identifier cannot start with a number or dollar sign.  The dollar sign is reserved as the first character for the system tasks.
  • 26. 21/01/2019 26Aravinda K., Dept. of E&C, NHCE Valid identifiers Invalid identifiers adder 4bit_adder Mux_input $100 _error_code always _$500 _#123  Every Verilog statement must be terminated with a semicolon.  Anything following a double slash is treated as a comment to the end of the line.  Comments for more than one line start with “/*” and end with “*/”.  Words such as “and”, “or” and “always”, are reserved words.
  • 27. 21/01/2019 27Aravinda K., Dept. of E&C, NHCE  When the signal is of type wire (or net), it generally has a value of 0 or 1.  The net values in Verilog are represented as - <number of bits>’<base><value>.  Hence, 1’b0 means “1 position binary 0”. The decimal and hexadecimal values are represented with “d” and “h”.  A one-dimensional array of bit signals is referred to as a vector.  A 4 bit-wire can be named as vector B, and can be declared as, wire B[3:0];.  The vector B has an index range 0 through 3, and its elements are designated as B[0], B[1], B[2] and B[3].  The statement B=4’b1100 assigns 1 to B[3], 1 to B[2], 0 to B[1] and 0 to B[0].
  • 28. 21/01/2019 28Aravinda K., Dept. of E&C, NHCE “&&” is the logical AND operator “&” is the bitwise AND operator
  • 29. 21/01/2019 29Aravinda K., Dept. of E&C, NHCE Verilog Modules A Module is a basic building block that declares input and output signals, and specifies the internal operation of the module.  All the I/O signals have to be listed in the module statement.  Since “C” is an internal signal, it has to be declared as wire.
  • 30. 21/01/2019 30Aravinda K., Dept. of E&C, NHCE
  • 31. 21/01/2019 31Aravinda K., Dept. of E&C, NHCE The interface ports can be of type input, output or inout. VHDL is very strict in compilation, wheras Verilog produces an output even when the variable is declared as input. However, a variable has to be declared as inout, if that variable is used by other modules.
  • 32. 21/01/2019 32Aravinda K., Dept. of E&C, NHCE module FullAdder (X, Y, Cin, Cout, Sum); output Cout, Sum; input X, Y, Cin; assign #10 Sum = X ^ Y ^ Cin; assign #10 Cout = ( X && Y) || ( X && Cin) || ( Y && Cin); endmodule
  • 33. 21/01/2019 33Aravinda K., Dept. of E&C, NHCE  In the structural description, the 4-bit adder is declared as a module, and the full adder module is instantiated inside the 4-bit adder module.  Here, each instance of Full adder has a port map, which corresponds one-to-one with the signals in the component port (FullAdder module).  This method, in which the order of the signals in the portmap is same as the order of the signals in the ports of the module, is called as “positional association”.  If the ports are mapped by name, then it is called as “named association”.
  • 34. 21/01/2019 34Aravinda K., Dept. of E&C, NHCE Verilog Assignments Continuous Procedural Blocking Non-blockingExplicit Implicit Keyword: assign Keywords: initial, always
  • 35. 21/01/2019 35Aravinda K., Dept. of E&C, NHCE
  • 36. 21/01/2019 36Aravinda K., Dept. of E&C, NHCE Procedural Assignments  Combinational logic constantly reacts to input changes, whereas synchronous sequential logic responds to changes that are dependent on the clock.  Therefore, the procedural assignments are used to model the sequential logic, such as registers and finite state machines.  Unlike the continuous assignments, with procedural assignments, the execution of statements happens with a sequence of operations.  The two types of procedural assignment blocks in Verilog are “initial” and “always”; the LHS of the assignment statements, inside these blocks, have to be declared as of data type “reg”.
  • 37. 21/01/2019 37Aravinda K., Dept. of E&C, NHCE initial always Executes only once Executes in a loop Executes without waiting Executes after an event Useful in simulation & verification Useful for synthesis
  • 38. 21/01/2019 38Aravinda K., Dept. of E&C, NHCE
  • 39. 21/01/2019 39Aravinda K., Dept. of E&C, NHCE In this example, assuming the initial values as: A=1’b1, B=1’b0, C=1’b1, D=1’b0, the outputs after completion of the execution are: A=1’b0, B=1’b0, C=1’b0, D=1’b1.  We should be very careful while using “always” to represent combinational logic. If any input signals are accidentally omitted from the sensitivity list, there will be mismatches between simulation and synthesis outcomes.  The statement “always @(*)” avoids such accidental errors.
  • 40. 21/01/2019 40Aravinda K., Dept. of E&C, NHCE
  • 41. 21/01/2019 41Aravinda K., Dept. of E&C, NHCE  input and inout ports have to be of type “wire”; output ports can be of either “wire” or “reg” type.  Here, D and E are declared as “reg”, as they are at LHS. Therefore, D cannot be declared as “inout”.  When the sensitivity list contains “*”, the “always” block gets triggered for any input signal changes.
  • 42. 21/01/2019 42Aravinda K., Dept. of E&C, NHCE Note 1. “wire” does not store information, whereas “reg” stores information. The initial value of a “wire” is “z” (high impedance), and that of “reg” is “x” (unknown). 2. The operator “=” has a blocking nature inside “always”, whereas it has a non-blocking (concurrent) nature outside “always”. 3. The operator “<=” has a non-blocking nature inside “always”, and has no usage as an assignment operator outside “always”. 4. The LHS elements inside the procedural blocks have to be declared as “reg” data type. But “reg” data type cannot be present at the LHS of a continuous assignment statement. 5. For synthesizable codes, it is better to use non-blocking assignments for sequential logic, and blocking assignments for combinational logic, and not to mix both in the same block.
  • 43. 21/01/2019 43Aravinda K., Dept. of E&C, NHCE
  • 44. 21/01/2019 44Aravinda K., Dept. of E&C, NHCE Modeling of flip-flops using “always” block When a rising edge of the clock occurs, Q is set equal to D. If the flip-flop has a delay of 5 ns, then the statement can be: Q <= #5 D; If Q changes when D changes, then it is a transparent latch. In this code, Q changes when G = 1. Either (G or D) or (G, D) are acceptable, in the sensitivity list. This flip-flop is with active-low asynchronous “clear” input. When clear = 0, the flip-flop is reset; otherwise, Q is updated with the rising edge of the clock.
  • 45. 21/01/2019 45Aravinda K., Dept. of E&C, NHCE “if” statements cannot be used as concurrent. Brace indicates that any number of “else if” can be included. Bracket indicates that “else” is optional.
  • 46. 21/01/2019 46Aravinda K., Dept. of E&C, NHCE J K Qn 0 0 Qn-1 0 1 0 1 0 1 1 1 Q’n-1  This flip-flop is with active-low asynchronous “preset” (SN) and “clear” (RN) inputs, and triggers on the falling edge of clock.  The characteristic equation of the flip-flop is, Q+ = JQ’ + K’Q.
  • 47. 21/01/2019 47Aravinda K., Dept. of E&C, NHCE  “Qint” is defined as an internal signal because, RHS cannot have an output identifier, and inout type cannot be declared as reg.  8 ns represents the time taken to set or to clear, and 10 ns represents the time taken for Q to change.  In the “if” statement, either (~RN) or (RN == 1’b0) are acceptable.
  • 48. 21/01/2019 48Aravinda K., Dept. of E&C, NHCE “always” blocks using event control statements When sensitivity list is not specified or not required, event control statements such as “wait” can be used. In contrast, when wait statements are included, the always block cannot have sensitivity list. The wait statement is used as a level- sensitive event control. It can also be used to handshake between two processes.
  • 49. 21/01/2019 49Aravinda K., Dept. of E&C, NHCE 1. (a) It will compile, but will not simulate correctly because, the “carry” statement has no dependency on “add” signal. 2. (d) It will not compile because, when compiler gets to “else”, it does not find the corresponding “if” before. Note: Both codes can be corrected by adding “begin” and “end”. 1 2 (a) It will compile, but will not simulate correctly. (b) It will compile and simulate, but will not synthesize correctly. (c) It will work correctly both in simulation and synthesis. (d) It will not get compiled at all.
  • 50. 21/01/2019 50Aravinda K., Dept. of E&C, NHCE Verilog data types Net Variable Keywords wire (connections) tri (tristate) wand (wired and) wor (wired or) Keywords reg (register) time (stores timing) integer (without point) real (floating point) realtime (fractional time)
  • 51. 21/01/2019 Aravinda K., Dept. of E&C, NHCE 51 wand and wor indicate that the net is being driven by more inputs; the synthesis tool automatically generates the respective gates. module p1(x,y,z); input x,y; output z; wor p; assign p=x&y; assign p=~x&~y; assign z=p; endmodule module p2(x,y,z); input x,y; output z; wire p; assign p=x&y; assign p=~x&~y; assign z=p; endmodule module p3(x,y,z); input x,y: output z; wire p,q ; assign p=x&y; assign q=~x&~y; assign z=p|q; endmodule WRONG CODE GENERAL CODE
  • 52. 21/01/2019 52Aravinda K., Dept. of E&C, NHCE Verilog operators Unary Arithmetic + plus - minus ! logical negation ~ bitwise negation & reduction AND | reduction OR ^ reduction XOR Relational and shift + add - subtract * multiply / divide % modulus ** exponent < less than > greater than <= less than or equal >= greater than or equal << logical left shift >> logical right shift <<< arithmetic left shift >>> arithmetic right shift
  • 53. 21/01/2019 53Aravinda K., Dept. of E&C, NHCE Verilog operators contd… Logical Bitwise == equality != inequality === case equality !== case inequality && logical AND || logical OR Other & AND | OR ^ XOR ^~ ~^ equal ?: conditional {} concatenation {{}} replication
  • 54. 21/01/2019 54Aravinda K., Dept. of E&C, NHCE
  • 55. 21/01/2019 55Aravinda K., Dept. of E&C, NHCE Expression Operation Result C >> 2 Shift right by 2 places 000110 C >> 2 & D Bitwise AND 000010 ~ B Bitwise INVERT 000 {A, ~B} Concatenate 110000 ({A, ~B}) | (C >> 2 & D) Bitwise OR 110010 (({A, ~B}) | (C >> 2 & D)) & D Bitwise AND 110010 (({A, ~B}) | (C >> 2 & D)) & D == 110010 Equality check TRUE Example: A = 110, B = 111, C = 011000, D = 111011
  • 56. 21/01/2019 56Aravinda K., Dept. of E&C, NHCE  Unary reduction reduces a vector into a single bit.  When parentheses are not used, “Unary” operators have the highest precedence and “Other” operators have the lowest precedence, in the class in which the operators are listed.  Operators belonging to the same class have same precedence, and are applied from left to right in an expression. & && Operates on Boolean type as well as on binary data Operates only on the Boolean data type (TRUE or FALSE) Evaluates both sides of the expression Evaluates only the LHS of the expression When A = 5, B = 4, C = 3, then (A>=B) && (B<=C) yields (1) && (0) yields (0).
  • 57. 21/01/2019 57Aravinda K., Dept. of E&C, NHCE Expression Operation Result A >> 4 Logical right shift 00001010 A >>> 4 Arithmetic right shift 11111010 A << 4 Logical left shift 01010000 A <<< 4 Arithmetic left shift 01010000 reg signed [7:0] A = 8’hA5; (A = 10100101) Expression Operation Result B >> 4 Logical right shift 00001010 B >>> 4 Arithmetic right shift 00001010 B << 4 Logical left shift 01010000 B <<< 4 Arithmetic left shift 01010000 reg [7:0] B = 8’hA5; (B = 10100101)
  • 58. 21/01/2019 58Aravinda K., Dept. of E&C, NHCE Expression Operation Result A >> 4 Logical right shift 00001010 A >>> 4 Arithmetic right shift 00001010 A << 4 Logical left shift 01010000 A <<< 4 Arithmetic left shift 01010000 integer signed A = 8’hA5; (A = 00000000000000000000000010100101) integer A = 8’shA5; (A = 11111111111111111111111110100101) Expression Operation Result A >> 4 Logical right shift 11111010 A >>> 4 Arithmetic right shift 11111010 A << 4 Logical left shift 01010000 A <<< 4 Arithmetic left shift 01010000
  • 59. 21/01/2019 59Aravinda K., Dept. of E&C, NHCE Verilog models for Multiplexers The expression for the output is, F = A’I0+AI1
  • 60. 21/01/2019 60Aravinda K., Dept. of E&C, NHCE The expression for the output is, F = A’B’I0+A’BI1+AB’I2+ABI3 Code with the procedural assignment, using the “case” statement Code with the continuous statement
  • 61. 21/01/2019 61Aravinda K., Dept. of E&C, NHCE Code with the procedural assignment, using the “if” statement Important coding practices while writing synthesizable Verilog: 1. Whenever possible, use concurrent assignments to design the combinational logic. 2. Whenever procedural assignments are used for the combinational logic, use blocking assignments. 3. Use “always @(*)”, to avoid accidental omissions of inputs in the sensitivity list.
  • 62. 21/01/2019 62Aravinda K., Dept. of E&C, NHCE Modeling Registers and Counters Cyclic shift register
  • 63. 21/01/2019 63Aravinda K., Dept. of E&C, NHCE Concurrent Blocking Non-blocking assign y = a & b; y = a & b; y <= a & b; Assignment is immediate Assignment is immediate Assignment is parallel Suitable for combinational logic Suitable for combinational logic Suitable for sequential logic Order of the statements is not important Order of the statements is important Order of the statements is not important
  • 64. 21/01/2019 64Aravinda K., Dept. of E&C, NHCE Synthesis output: A 3-bit shift register, with serial input A, and outputs Q1, Q2, Q3. Synthesis output: A single flip- flop, with input A, and a single output Q3.
  • 65. 21/01/2019 65Aravinda K., Dept. of E&C, NHCE 1. Register with synchronous “clear” and “load” 2. Register with “left shift” operation and concatenation
  • 66. 21/01/2019 66Aravinda K., Dept. of E&C, NHCE 3. Synchronous counter 4. Standard synchronous counter, 74163
  • 67. 21/01/2019 67Aravinda K., Dept. of E&C, NHCE P is “enable” signal and T is “carry connection” signal. “clear” overrides “load” and “count” functions, and “load” overrides “count” function.
  • 68. 21/01/2019 68Aravinda K., Dept. of E&C, NHCE This is a structural modeling, which interconnects the previous defined modules. c74163 is component’s name; ct1, ct2 are instance names. 5. Cascading of 74163, to get 8-bit counter
  • 69. 21/01/2019 69Aravinda K., Dept. of E&C, NHCE Synthesis of “Left shift” register Verilog cannot synthesize delays. Similarly, “initial” blocks are ignored by the synthesis tools.
  • 70. 21/01/2019 70Aravinda K., Dept. of E&C, NHCE This code is meant for a combinational circuit, but creates an additional latch to hold the value of F, when Sel changes to 2’b11. This latch creates timing issues. The additional latch can be avoided, if all possible cases of the inputs are included. When all possible execution paths are covered, holding a value is not necessary. The additional latch can also be avoided, by initializing the combinational output in the beginning of “always” block. In this way, holding a value becomes unnecessary.
  • 71. 21/01/2019 71Aravinda K., Dept. of E&C, NHCE Important coding practices while writing synthesizable Verilog: 4. Use an edge-triggered clock in the sensitivity list (using the “posedge” or “negedge” keywords). 5. Should not make assignments to the same variable, in more than one “always” block. 6. Unwanted latches can be avoided, by means of – i) including “else” clauses for “if” statements. ii) specifying all cases for “case” statements, or having a “default” clause at the end. iii) initializing the combinational outputs at the beginning of the “always” block.
  • 72. 21/01/2019 72Aravinda K., Dept. of E&C, NHCE Behavioral and Structural Verilog Any circuit can be represented in multiple forms of abstraction; e.g., different designers think of NAND gate in different representations. In the same way, the function F = AB + BC can be described in two different ways:
  • 73. 21/01/2019 73Aravinda K., Dept. of E&C, NHCE Behavioral models Data flow (RTL) models Structural models These models describe the system at a higher level of abstraction, without implying any particular structure or technology. (e.g., full adder’s truth table description) These models describe the system at a lower level of abstraction, by means of components and their interconnections. (e.g., full adder in terms of half adders) These models describe the system at an intermediate level, called as Register Transfer Language. (e.g.: full adder’s algebraic expressions)
  • 74. EXAMPLE: SEQUENCE DETECTOR THAT DETECTS “101” Modeling a sequential machine 21/01/2019 Aravinda K., Dept. of E&C, NHCE 74
  • 75. 21/01/2019 75Aravinda K., Dept. of E&C, NHCE Two types of finite state machines
  • 76. 21/01/2019 76Aravinda K., Dept. of E&C, NHCE
  • 77. 21/01/2019 77Aravinda K., Dept. of E&C, NHCE Behavioral modeling for a Mealy sequential circuit State table An example is the state machine of a BCD to excess-3 code converter, which can be designed in four different ways: 1. Behavioral: with two “always” blocks 2. Behavioral: with one “always” block 3. Data flow: with combinational logic 4. Structural: with combinational logic
  • 78. 21/01/2019 78Aravinda K., Dept. of E&C, NHCE 1. With two “always” blocks: i) One for combinational part ii) Other for state register
  • 79. 21/01/2019 79Aravinda K., Dept. of E&C, NHCE 2. With one “always” block When compared to this model, the earlier one is better because, it corresponds more closely to the hardware implementation.
  • 80. 21/01/2019 80Aravinda K., Dept. of E&C, NHCE 3. With combinational logic (data flow model) This model requires state assignments, and the derivation of the next state equations.
  • 81. 21/01/2019 81Aravinda K., Dept. of E&C, NHCE 4. With combinational logic (structural model) This model exactly corresponds to the hardware that was intended, but requires more effort to produce. Hence, to have quicker “time-to-market”, designers often use behavioral model.
  • 82. 21/01/2019 82Aravinda K., Dept. of E&C, NHCE OF MODULE - 1
  • 83. 21/01/2019 Aravinda K., Dept. of E&C, NHCE 83