060316 Verilog(Gate level))access.ee.ntu.edu.tw/course/under_project_94/pdf/... · 2010-07-14 ·...
Transcript of 060316 Verilog(Gate level))access.ee.ntu.edu.tw/course/under_project_94/pdf/... · 2010-07-14 ·...
![Page 1: 060316 Verilog(Gate level))access.ee.ntu.edu.tw/course/under_project_94/pdf/... · 2010-07-14 · Graduate Institute of Electronics Engineering, NTU pp. 13 Wire & Reg vreg vA variable](https://reader033.fdocuments.net/reader033/viewer/2022041901/5e606f91b09b46718f5ad2c3/html5/thumbnails/1.jpg)
ACCESS IC LAB
Graduate Institute of Electronics Engineering, NTU
UnderUnder--Graduate ProjectGraduate Project
Speaker : ChenjoProf. : Andy Wu
![Page 2: 060316 Verilog(Gate level))access.ee.ntu.edu.tw/course/under_project_94/pdf/... · 2010-07-14 · Graduate Institute of Electronics Engineering, NTU pp. 13 Wire & Reg vreg vA variable](https://reader033.fdocuments.net/reader033/viewer/2022041901/5e606f91b09b46718f5ad2c3/html5/thumbnails/2.jpg)
Graduate Institute of Electronics Engineering, NTU
pp. 2
OutlineOutlinevBasic Concept of Verilog HDLvGate Level ModelingvSimulation & VerificationvSummary
![Page 3: 060316 Verilog(Gate level))access.ee.ntu.edu.tw/course/under_project_94/pdf/... · 2010-07-14 · Graduate Institute of Electronics Engineering, NTU pp. 13 Wire & Reg vreg vA variable](https://reader033.fdocuments.net/reader033/viewer/2022041901/5e606f91b09b46718f5ad2c3/html5/thumbnails/3.jpg)
Graduate Institute of Electronics Engineering, NTU
pp. 3
What is What is VerilogVerilog HDL ?HDL ?v Hardware Description LanguagevMixed level modelingv BehavioralØ Algorithmic ( like high level language)ØRegister transfer (Synthesizable)
v Register Transfer Level (RTL)ØDescribing a system by the flow of data and control signals
within and between functional blocksØDefine the model in terms of cycles, based on a defined clock
v StructuralØGate (AND, OR ……)Ø Switch (PMOS, NOMS, JFET ……)
![Page 4: 060316 Verilog(Gate level))access.ee.ntu.edu.tw/course/under_project_94/pdf/... · 2010-07-14 · Graduate Institute of Electronics Engineering, NTU pp. 13 Wire & Reg vreg vA variable](https://reader033.fdocuments.net/reader033/viewer/2022041901/5e606f91b09b46718f5ad2c3/html5/thumbnails/4.jpg)
Graduate Institute of Electronics Engineering, NTU
pp. 4
An ExampleAn Example11--bit Multiplexerbit Multiplexer
in1
in2out
0
1
sel
if (sel==0) out = in1;else out = in2;
out = (sel’‧in1) + (sel‧in2)
sel in1 in2 out
0 0 0 0
0 0 1 0
0 1 0 1
0 1 1 1
1 0 0 0
1 0 1 1
1 1 0 0
1 1 1 1
to “select” output
![Page 5: 060316 Verilog(Gate level))access.ee.ntu.edu.tw/course/under_project_94/pdf/... · 2010-07-14 · Graduate Institute of Electronics Engineering, NTU pp. 13 Wire & Reg vreg vA variable](https://reader033.fdocuments.net/reader033/viewer/2022041901/5e606f91b09b46718f5ad2c3/html5/thumbnails/5.jpg)
Graduate Institute of Electronics Engineering, NTU
pp. 5
Gate Level DescriptionGate Level Description
a1
a2
in1
in2
sel
outo1
iv_sel a1_o
a2_on1
iv_sel
Gate Level: you see only netlist (gates and wires) in the code
![Page 6: 060316 Verilog(Gate level))access.ee.ntu.edu.tw/course/under_project_94/pdf/... · 2010-07-14 · Graduate Institute of Electronics Engineering, NTU pp. 13 Wire & Reg vreg vA variable](https://reader033.fdocuments.net/reader033/viewer/2022041901/5e606f91b09b46718f5ad2c3/html5/thumbnails/6.jpg)
Graduate Institute of Electronics Engineering, NTU
pp. 6
VerilogVerilog Language RulesLanguage Rulesv Verilog is a case sensitive language (with a few exceptions)v Identifiers (space-free sequence of symbols)v upper and lower case letters from the alphabetv digits (0, 1, ..., 9) (cannot be the first character)v underscore ( _ )v $ symbol (only for system tasks and functions)v Max length of 1024 symbols
v Terminate lines with semicolon ;v Single line comments:v // A single-line comment goes here
v Multi-line comments:v /* Multi-line comments like this */
![Page 7: 060316 Verilog(Gate level))access.ee.ntu.edu.tw/course/under_project_94/pdf/... · 2010-07-14 · Graduate Institute of Electronics Engineering, NTU pp. 13 Wire & Reg vreg vA variable](https://reader033.fdocuments.net/reader033/viewer/2022041901/5e606f91b09b46718f5ad2c3/html5/thumbnails/7.jpg)
Graduate Institute of Electronics Engineering, NTU
pp. 7
VerilogVerilog HDL SyntaxHDL Syntax
declaration syntax
module name in/out port
port/wiredeclaration
kernel hardwaregate-connection/behavior
![Page 8: 060316 Verilog(Gate level))access.ee.ntu.edu.tw/course/under_project_94/pdf/... · 2010-07-14 · Graduate Institute of Electronics Engineering, NTU pp. 13 Wire & Reg vreg vA variable](https://reader033.fdocuments.net/reader033/viewer/2022041901/5e606f91b09b46718f5ad2c3/html5/thumbnails/8.jpg)
Graduate Institute of Electronics Engineering, NTU
pp. 8
Module Module v Basic building block in Verilog.v Module
1. Created by “declaration” (can’t be nested)2. Used by “instantiation“Interface is defined by portsMay contain instances of other modulesAll modules run concurrently
![Page 9: 060316 Verilog(Gate level))access.ee.ntu.edu.tw/course/under_project_94/pdf/... · 2010-07-14 · Graduate Institute of Electronics Engineering, NTU pp. 13 Wire & Reg vreg vA variable](https://reader033.fdocuments.net/reader033/viewer/2022041901/5e606f91b09b46718f5ad2c3/html5/thumbnails/9.jpg)
Graduate Institute of Electronics Engineering, NTU
pp. 9
InstancesInstancesv A module provides a template from which you can
create actual objects.vWhen a module is invoked, Verilog creates a unique
object from the template.v Each object has its own name, variables, parameters
and I/O interface.
![Page 10: 060316 Verilog(Gate level))access.ee.ntu.edu.tw/course/under_project_94/pdf/... · 2010-07-14 · Graduate Institute of Electronics Engineering, NTU pp. 13 Wire & Reg vreg vA variable](https://reader033.fdocuments.net/reader033/viewer/2022041901/5e606f91b09b46718f5ad2c3/html5/thumbnails/10.jpg)
Graduate Institute of Electronics Engineering, NTU
pp. 10
Module Instantiation Module Instantiation
Adder
Adder Adder
Adder_tree
instance example
![Page 11: 060316 Verilog(Gate level))access.ee.ntu.edu.tw/course/under_project_94/pdf/... · 2010-07-14 · Graduate Institute of Electronics Engineering, NTU pp. 13 Wire & Reg vreg vA variable](https://reader033.fdocuments.net/reader033/viewer/2022041901/5e606f91b09b46718f5ad2c3/html5/thumbnails/11.jpg)
Graduate Institute of Electronics Engineering, NTU
pp. 11
Port ConnectionPort Connection
v Connect module port by order listØ FA1 fa1(c_o, sum, a, b, c_i);
v Not fully connectedØ FA1 fa3(c_o,, a, b, c_i);
v Connect module port by name .PortName( NetName ) Ø FA1 fa2(.A(a), .B(b), .CO(c_o),.CI(c_i), .S(sum));ØRecommended
![Page 12: 060316 Verilog(Gate level))access.ee.ntu.edu.tw/course/under_project_94/pdf/... · 2010-07-14 · Graduate Institute of Electronics Engineering, NTU pp. 13 Wire & Reg vreg vA variable](https://reader033.fdocuments.net/reader033/viewer/2022041901/5e606f91b09b46718f5ad2c3/html5/thumbnails/12.jpg)
Graduate Institute of Electronics Engineering, NTU
pp. 12
Register and NetRegister and Netv Registersv Keyword : reg, integer, time, realv Event-driven modelingv Storage element (modeling sequential circuit)v Assignment in “always” block
v Netsv Keyword : wire, wand, wor, tri
triand, trior, supply0, supply1v Doesn’t store value, just a connectionv input, output, inout are default “wire”v Can’t appear in “always” block assignment
![Page 13: 060316 Verilog(Gate level))access.ee.ntu.edu.tw/course/under_project_94/pdf/... · 2010-07-14 · Graduate Institute of Electronics Engineering, NTU pp. 13 Wire & Reg vreg vA variable](https://reader033.fdocuments.net/reader033/viewer/2022041901/5e606f91b09b46718f5ad2c3/html5/thumbnails/13.jpg)
Graduate Institute of Electronics Engineering, NTU
pp. 13
Wire & Wire & RegRegv regv A variable in Verilog
v Use of “reg” data type is not exactly synthesized to a really register.
v Use of wire & regvWhen use “wire”è usually use “assign” and “assign” does
not appear in “always” blockvWhen use “reg”è only use “a=b” , always appear in “always” block
module test(a,b,c,d);input a,b;output c,d;reg d;assign c=a;always @(b)
d=b;endmodule
module test(a,b,c,d);input a,b;output c,d;reg d;assign c=a;always @(b)
d=b;endmodule
![Page 14: 060316 Verilog(Gate level))access.ee.ntu.edu.tw/course/under_project_94/pdf/... · 2010-07-14 · Graduate Institute of Electronics Engineering, NTU pp. 13 Wire & Reg vreg vA variable](https://reader033.fdocuments.net/reader033/viewer/2022041901/5e606f91b09b46718f5ad2c3/html5/thumbnails/14.jpg)
Graduate Institute of Electronics Engineering, NTU
pp. 14
Logic SystemLogic Systemv Four values: 0, 1, x or X, z or Z // Not case sensitive herev The logic value x denotes an unknown (ambiguous) valuev The logic value z denotes a high impedance
v Primitives have built-in logicv Simulators describe 4-value logic
ab
y
0 1
x
a
b
y
x
xx
z
z z z zx x x x
0 1 X Z0 0 0 0 01 0 1 X XX 0 X X XZ 0 X X X
![Page 15: 060316 Verilog(Gate level))access.ee.ntu.edu.tw/course/under_project_94/pdf/... · 2010-07-14 · Graduate Institute of Electronics Engineering, NTU pp. 13 Wire & Reg vreg vA variable](https://reader033.fdocuments.net/reader033/viewer/2022041901/5e606f91b09b46718f5ad2c3/html5/thumbnails/15.jpg)
Graduate Institute of Electronics Engineering, NTU
pp. 15
Number RepresentationNumber Representationv Format: <size>’<base_format><number>v <size> - decimal specification of number of bitsØ default is unsized and machine-dependent but at least 32 bits
v <base format> - ' followed by arithmetic base of numberØ <d> <D> - decimal - default base if no <base_format> givenØ <h> <H> - hexadecimalØ <o> <O> - octalØ <b> <B> - binary
v <number> - value given in base of <base_format>Ø _ can be used for reading clarityØ If first character of sized, binary number 0, 1, x or z, will extend
0, 1, x or z (defined later!)
![Page 16: 060316 Verilog(Gate level))access.ee.ntu.edu.tw/course/under_project_94/pdf/... · 2010-07-14 · Graduate Institute of Electronics Engineering, NTU pp. 13 Wire & Reg vreg vA variable](https://reader033.fdocuments.net/reader033/viewer/2022041901/5e606f91b09b46718f5ad2c3/html5/thumbnails/16.jpg)
Graduate Institute of Electronics Engineering, NTU
pp. 16
Number RepresentationNumber RepresentationvExamples:v6’b010_111 gives 010111v8’b0110 gives 00000110v4’bx01 gives xx01v16’H3AB gives 0000001110101011v24 gives 0…0011000v5’O36 gives 11110v16’Hx gives xxxxxxxxxxxxxxxxv8’hz gives zzzzzzzz
![Page 17: 060316 Verilog(Gate level))access.ee.ntu.edu.tw/course/under_project_94/pdf/... · 2010-07-14 · Graduate Institute of Electronics Engineering, NTU pp. 13 Wire & Reg vreg vA variable](https://reader033.fdocuments.net/reader033/viewer/2022041901/5e606f91b09b46718f5ad2c3/html5/thumbnails/17.jpg)
Graduate Institute of Electronics Engineering, NTU
pp. 17
Net ConcatenationsNet ConcatenationsvA easy way to group nets
Sign extension{{8{byte[7]}},byte}
8‘b01010101{4{2‘b01}}
{a, b[3], b[2], b[1], c, 1’b1, 1’b0}{a,b[3:1],c,2’b10}
{b[7], b[6], b[5], b[4], c[3], c[2], c[1], c[0]}{b[7:4],c[3:0]}
{cout, sum}{cout, sum}
MeaningsRepresentation
![Page 18: 060316 Verilog(Gate level))access.ee.ntu.edu.tw/course/under_project_94/pdf/... · 2010-07-14 · Graduate Institute of Electronics Engineering, NTU pp. 13 Wire & Reg vreg vA variable](https://reader033.fdocuments.net/reader033/viewer/2022041901/5e606f91b09b46718f5ad2c3/html5/thumbnails/18.jpg)
Graduate Institute of Electronics Engineering, NTU
pp. 18
Compiler Directives Compiler Directives v `definev `define RAM_SIZE 16v Defining a name and gives a constant value to it.
v `includev `include adder.vv Including the entire contents of other verilog source file.
v `timescalev `timescale 100ns/1nsv Setting the reference time unit and time precision of your
simulation.
![Page 19: 060316 Verilog(Gate level))access.ee.ntu.edu.tw/course/under_project_94/pdf/... · 2010-07-14 · Graduate Institute of Electronics Engineering, NTU pp. 13 Wire & Reg vreg vA variable](https://reader033.fdocuments.net/reader033/viewer/2022041901/5e606f91b09b46718f5ad2c3/html5/thumbnails/19.jpg)
Graduate Institute of Electronics Engineering, NTU
pp. 19
System TasksSystem Tasksv $monitorv $monitor ($time,"%d %d %d",address,sinout,cosout);v Displays the values of the argument list whenever any
of the arguments change except $time.v $displayv $display ("%d %d %d",address,sinout,cosout);v Prints out the current values of the signals in the
argument listv$finishv $finishv Terminate the simulation
![Page 20: 060316 Verilog(Gate level))access.ee.ntu.edu.tw/course/under_project_94/pdf/... · 2010-07-14 · Graduate Institute of Electronics Engineering, NTU pp. 13 Wire & Reg vreg vA variable](https://reader033.fdocuments.net/reader033/viewer/2022041901/5e606f91b09b46718f5ad2c3/html5/thumbnails/20.jpg)
ACCESS IC LAB
Graduate Institute of Electronics Engineering, NTU
Gate Level ModelingGate Level Modeling
![Page 21: 060316 Verilog(Gate level))access.ee.ntu.edu.tw/course/under_project_94/pdf/... · 2010-07-14 · Graduate Institute of Electronics Engineering, NTU pp. 13 Wire & Reg vreg vA variable](https://reader033.fdocuments.net/reader033/viewer/2022041901/5e606f91b09b46718f5ad2c3/html5/thumbnails/21.jpg)
Graduate Institute of Electronics Engineering, NTU
pp. 21
Gate Level ModelingGate Level ModelingvStepsvDevelop the boolean function of outputvDraw the circuit with logic gates/primitivesvConnect gates/primitives with net (usually wire)
vHDL: Hardware Description LanguagevFigure out architecture first, then write code.
![Page 22: 060316 Verilog(Gate level))access.ee.ntu.edu.tw/course/under_project_94/pdf/... · 2010-07-14 · Graduate Institute of Electronics Engineering, NTU pp. 13 Wire & Reg vreg vA variable](https://reader033.fdocuments.net/reader033/viewer/2022041901/5e606f91b09b46718f5ad2c3/html5/thumbnails/22.jpg)
Graduate Institute of Electronics Engineering, NTU
pp. 22
PrimitivesPrimitivesvPrimitives are modules ready to be instancedvSmallest modeling block for simulatorvVerilog build-in primitive gatevand, or, not, buf, xor, nand, nor, xnorvprim_name inst_name( output, in0, in1,.... );ØEX. and g0(a, b, c);
vUser defined primitive (UDP)vbuilding block defined by designer
![Page 23: 060316 Verilog(Gate level))access.ee.ntu.edu.tw/course/under_project_94/pdf/... · 2010-07-14 · Graduate Institute of Electronics Engineering, NTU pp. 13 Wire & Reg vreg vA variable](https://reader033.fdocuments.net/reader033/viewer/2022041901/5e606f91b09b46718f5ad2c3/html5/thumbnails/23.jpg)
Graduate Institute of Electronics Engineering, NTU
pp. 23
Case StudyCase Study11--bit Full Adderbit Full Adder
A B
CiCo
S
FullAdder
![Page 24: 060316 Verilog(Gate level))access.ee.ntu.edu.tw/course/under_project_94/pdf/... · 2010-07-14 · Graduate Institute of Electronics Engineering, NTU pp. 13 Wire & Reg vreg vA variable](https://reader033.fdocuments.net/reader033/viewer/2022041901/5e606f91b09b46718f5ad2c3/html5/thumbnails/24.jpg)
Graduate Institute of Electronics Engineering, NTU
pp. 24
Case StudyCase Study11--bit Full Adderbit Full Adder
v co = (a•b) + (b•ci) + (ci•a);
![Page 25: 060316 Verilog(Gate level))access.ee.ntu.edu.tw/course/under_project_94/pdf/... · 2010-07-14 · Graduate Institute of Electronics Engineering, NTU pp. 13 Wire & Reg vreg vA variable](https://reader033.fdocuments.net/reader033/viewer/2022041901/5e606f91b09b46718f5ad2c3/html5/thumbnails/25.jpg)
Graduate Institute of Electronics Engineering, NTU
pp. 25
Case StudyCase Study11--bit Full Adderbit Full Adder
vsum = a b ci
![Page 26: 060316 Verilog(Gate level))access.ee.ntu.edu.tw/course/under_project_94/pdf/... · 2010-07-14 · Graduate Institute of Electronics Engineering, NTU pp. 13 Wire & Reg vreg vA variable](https://reader033.fdocuments.net/reader033/viewer/2022041901/5e606f91b09b46718f5ad2c3/html5/thumbnails/26.jpg)
Graduate Institute of Electronics Engineering, NTU
pp. 26
Case StudyCase Study11--bit Full Adderbit Full Adder
vFull Adder ConnectionvInstance ins_c from FA_covInstance ins_s from FA_sum
abc
sum
abbcca
co
carry out connection
sum connection
full adder
![Page 27: 060316 Verilog(Gate level))access.ee.ntu.edu.tw/course/under_project_94/pdf/... · 2010-07-14 · Graduate Institute of Electronics Engineering, NTU pp. 13 Wire & Reg vreg vA variable](https://reader033.fdocuments.net/reader033/viewer/2022041901/5e606f91b09b46718f5ad2c3/html5/thumbnails/27.jpg)
ACCESS IC LAB
Graduate Institute of Electronics Engineering, NTU
Timing and DelaysTiming and Delays
![Page 28: 060316 Verilog(Gate level))access.ee.ntu.edu.tw/course/under_project_94/pdf/... · 2010-07-14 · Graduate Institute of Electronics Engineering, NTU pp. 13 Wire & Reg vreg vA variable](https://reader033.fdocuments.net/reader033/viewer/2022041901/5e606f91b09b46718f5ad2c3/html5/thumbnails/28.jpg)
Graduate Institute of Electronics Engineering, NTU
pp. 28
Delay Specification in PrimitivesDelay Specification in PrimitivesvDelay specification defines the propagation
delay of that primitive gate.
not #10 (out,in);
![Page 29: 060316 Verilog(Gate level))access.ee.ntu.edu.tw/course/under_project_94/pdf/... · 2010-07-14 · Graduate Institute of Electronics Engineering, NTU pp. 13 Wire & Reg vreg vA variable](https://reader033.fdocuments.net/reader033/viewer/2022041901/5e606f91b09b46718f5ad2c3/html5/thumbnails/29.jpg)
Graduate Institute of Electronics Engineering, NTU
pp. 29
Types of Delay ModelsTypes of Delay Modelsv Distributed Delayv Specified on a per element basicv Delay value are assigned to individual in the circuit
ab
c
d
e
f
out
#5
#7
#4
module and4(out, a, b, c, d);……and #5 a1(e, a, b);and #7 a2(f, c, d);and #4 a3(out, e, f);
endmodule
![Page 30: 060316 Verilog(Gate level))access.ee.ntu.edu.tw/course/under_project_94/pdf/... · 2010-07-14 · Graduate Institute of Electronics Engineering, NTU pp. 13 Wire & Reg vreg vA variable](https://reader033.fdocuments.net/reader033/viewer/2022041901/5e606f91b09b46718f5ad2c3/html5/thumbnails/30.jpg)
Graduate Institute of Electronics Engineering, NTU
pp. 30
Types of Delay ModelsTypes of Delay Modelsv Lumped Delayv They can be specified as a single delay on the output gate of
the modulev The cumulative delay of all paths is lumped at one location
ab
c
d
e
f
out#11
module and4(out, a, b, c, d);……and a1(e, a, b);and a2(f, c, d);and #11 a3(out, e, f);
endmodule
![Page 31: 060316 Verilog(Gate level))access.ee.ntu.edu.tw/course/under_project_94/pdf/... · 2010-07-14 · Graduate Institute of Electronics Engineering, NTU pp. 13 Wire & Reg vreg vA variable](https://reader033.fdocuments.net/reader033/viewer/2022041901/5e606f91b09b46718f5ad2c3/html5/thumbnails/31.jpg)
Graduate Institute of Electronics Engineering, NTU
pp. 31
Types of Delay ModelsTypes of Delay Modelsv Pin-to-Pin Delayv Delays are assigned individually to paths from each input to
each output.v Delays can be separately specified for each input/output
path.
ab
c
d
e
f
out
Path a-e-out, delay = 9Path b-e-out, delay =9Path c-f-out, delay = 11Path d-f-out, delay = 11
![Page 32: 060316 Verilog(Gate level))access.ee.ntu.edu.tw/course/under_project_94/pdf/... · 2010-07-14 · Graduate Institute of Electronics Engineering, NTU pp. 13 Wire & Reg vreg vA variable](https://reader033.fdocuments.net/reader033/viewer/2022041901/5e606f91b09b46718f5ad2c3/html5/thumbnails/32.jpg)
Graduate Institute of Electronics Engineering, NTU
pp. 32
Timing Checks Timing Checks vsetup and hold checks
setuptime
holdtime
clock
data
specify $setup(data, posedge clock, 3);
endspecify
specify $hold(posedge clock, data, 5);
endspecify
![Page 33: 060316 Verilog(Gate level))access.ee.ntu.edu.tw/course/under_project_94/pdf/... · 2010-07-14 · Graduate Institute of Electronics Engineering, NTU pp. 13 Wire & Reg vreg vA variable](https://reader033.fdocuments.net/reader033/viewer/2022041901/5e606f91b09b46718f5ad2c3/html5/thumbnails/33.jpg)
ACCESS IC LAB
Graduate Institute of Electronics Engineering, NTU
Simulation & VerificationSimulation & Verification
![Page 34: 060316 Verilog(Gate level))access.ee.ntu.edu.tw/course/under_project_94/pdf/... · 2010-07-14 · Graduate Institute of Electronics Engineering, NTU pp. 13 Wire & Reg vreg vA variable](https://reader033.fdocuments.net/reader033/viewer/2022041901/5e606f91b09b46718f5ad2c3/html5/thumbnails/34.jpg)
Graduate Institute of Electronics Engineering, NTU
pp. 34
Test Methodology Test Methodology v Systematically verify the
functionality of a model. v Simulation:
(1) detect syntax violations in source code
(2) simulate behavior (3) monitor results
DesignTop Module
input ports
output ports
Test bench
data_oEqual?
answer_o
data_i
![Page 35: 060316 Verilog(Gate level))access.ee.ntu.edu.tw/course/under_project_94/pdf/... · 2010-07-14 · Graduate Institute of Electronics Engineering, NTU pp. 13 Wire & Reg vreg vA variable](https://reader033.fdocuments.net/reader033/viewer/2022041901/5e606f91b09b46718f5ad2c3/html5/thumbnails/35.jpg)
Graduate Institute of Electronics Engineering, NTU
pp. 35
Testbench for Full AdderTestbench for Full Addermodule t_full_add();reg a, b, cin; // for stimulus waveformswire sum, c_out;full_add M1 (sum, c_out, a, b, cin); //DUTinitial #200 $finish; // Stopwatchinitial begin // Stimulus patterns$fsdbDumpfile(“t_full_add.fsdb”);$fsdbDumpvars;#10 a = 0; b = 0; cin = 0; // Statements execute in sequence#10 a = 0; b = 1; cin = 0; #10 a = 1; b = 0; cin = 0; #10 a = 1; b = 1; cin = 0; #10 a = 0; b = 0; cin = 1; #10 a = 0; b = 1; cin = 1; #10 a = 1; b = 0; cin = 1; #10 a = 1; b = 1; cin = 1;endendmodule
![Page 36: 060316 Verilog(Gate level))access.ee.ntu.edu.tw/course/under_project_94/pdf/... · 2010-07-14 · Graduate Institute of Electronics Engineering, NTU pp. 13 Wire & Reg vreg vA variable](https://reader033.fdocuments.net/reader033/viewer/2022041901/5e606f91b09b46718f5ad2c3/html5/thumbnails/36.jpg)
Graduate Institute of Electronics Engineering, NTU
pp. 36
Simulation ResultsSimulation Results
MODELING TIP
A Verilog simulator assigns an initial value of x to allvariables.
![Page 37: 060316 Verilog(Gate level))access.ee.ntu.edu.tw/course/under_project_94/pdf/... · 2010-07-14 · Graduate Institute of Electronics Engineering, NTU pp. 13 Wire & Reg vreg vA variable](https://reader033.fdocuments.net/reader033/viewer/2022041901/5e606f91b09b46718f5ad2c3/html5/thumbnails/37.jpg)
Graduate Institute of Electronics Engineering, NTU
pp. 37
Example: Propagation Delay Example: Propagation Delay v Unit-delay simulation reveals the chain of events
module Add_full (sum, c_out, a, b, c_in);output sum, c_out;input a, b, c_in;wire w1, w2, w3;
Add_half M1 (w1, w2, a, b);Add_half M2 (sum, w3, w1, c_in);or #1 M3 (c_out, w2, w3);
endmodule
module Add_half (sum, c_out, a, b);output sum, c_out;input a, b;
xor #1 M1 (sum, a, b); // single delay value formatand #1 M2 (c_out, a, b); // others are possible
endmodule
![Page 38: 060316 Verilog(Gate level))access.ee.ntu.edu.tw/course/under_project_94/pdf/... · 2010-07-14 · Graduate Institute of Electronics Engineering, NTU pp. 13 Wire & Reg vreg vA variable](https://reader033.fdocuments.net/reader033/viewer/2022041901/5e606f91b09b46718f5ad2c3/html5/thumbnails/38.jpg)
Graduate Institute of Electronics Engineering, NTU
pp. 38
Simulation with delaySimulation with delay
![Page 39: 060316 Verilog(Gate level))access.ee.ntu.edu.tw/course/under_project_94/pdf/... · 2010-07-14 · Graduate Institute of Electronics Engineering, NTU pp. 13 Wire & Reg vreg vA variable](https://reader033.fdocuments.net/reader033/viewer/2022041901/5e606f91b09b46718f5ad2c3/html5/thumbnails/39.jpg)
Graduate Institute of Electronics Engineering, NTU
pp. 39
SummarySummaryv Design modulev Gate-level or RT-levelv Real hardwareØ Instance of modules exist all the time
v Each module has architecture figureØ Plot architecture figures before you write verilog codes
v Test benchv Feed input data and compare output values versus timev Usually behavior levelv Not real hardware, just like C/C++
![Page 40: 060316 Verilog(Gate level))access.ee.ntu.edu.tw/course/under_project_94/pdf/... · 2010-07-14 · Graduate Institute of Electronics Engineering, NTU pp. 13 Wire & Reg vreg vA variable](https://reader033.fdocuments.net/reader033/viewer/2022041901/5e606f91b09b46718f5ad2c3/html5/thumbnails/40.jpg)
Graduate Institute of Electronics Engineering, NTU
pp. 40
NoteNotev Verilog is a platformØ Support hardware design (design module)Ø Also support C/C++ like coding (test bench)
v How to write verilog wellØ Know basic concepts and syntaxØGet a good reference (a person or some code files)Ø Form a good coding habit
Naming rule, comments, format partition (assign or always block)v HardwareØCombinational circuits
畫圖(architecture), then 連連看(coding)Ø Sequential circuits
register: element to store data