



















Study with the several resources on Docsity
Earn points by helping other students or get them with a premium plan
Prepare for your exams
Study with the several resources on Docsity
Earn points to download
Earn points by helping other students or get them with a premium plan
A part of the ce3204 hdl based digital design course at ss-care school of engineering. It covers the concepts of procedural assignments, blocking vs nonblocking statements, and their usage in verilog. Examples of procedural blocks, initial and always blocks, and their execution timing.
Typology: Slides
1 / 27
This page cannot be seen from the preview
Don't miss anything!




















HDL Based Digital Design using Verilog By M. Mohsin Rahmatullah @ SS-CARE School of Engineering
HDL Based Digital Design using Verilog By M. Mohsin Rahmatullah @ SS-CARE School of Engineering 4-bit Full Adder with Carry Lookaheadmodule fulladd4(sum, c_out, a, b, c_in);// Inputs and outputsoutput [3:0] sum;output c_out;input [3:0] a,b;input c_in;// Internal wireswire p0,g0, p1,g1, p2,g2, p3,g3;wire c4, c3, c2, c1;// compute the p for each stageassign p0 = a[0] ^ b[0], p1 = a[1] ^ b[1], p2 = a[2] ^ b[2], p3 = a[3] ^ b[3];// compute the g for each stageassign g0 = a[0] & b[0], g1 = a[1] & b[1], g2 = a[2] & b[2], g3 = a[3] & b[3];// compute the carry for each stage// Note that c_in is equivalent c0 in the arithmetic equation for// carry lookahead computationassign c1 = g0 | (p0 & c_in), c2 = g1 | (p1 & g0) | (p1 & p0 & c_in),c3 = g2 | (p2 & g1) | (p2 & p1 & g0) | (p2 & p1 & p0 & c_in),c4 = g3 | (p3 & g2) | (p3 & p2 & g1) | (p3 & p2 & p1 & g0) | (p3 & p2 & p1 & p0 & c_in);// Compute Sumassign sum[0] = p0 ^ c_in, sum[1] = p1 ^ c1, sum[2] = p2 ^ c2, sum[3] = p3 ^ c3;// Assign carry outputassign c_out = c4;endmodule
HDL Based Digital Design using Verilog By M. Mohsin Rahmatullah @ SS-CARE School of Engineering
HDL Based Digital Design using Verilog By M. Mohsin Rahmatullah @ SS-CARE School of Engineering
(always, initial)^ Register^ Transfer Level
(RTL)
HDL Based Digital Design using Verilog By M. Mohsin Rahmatullah @ SS-CARE School of Engineering
Procedural^ Blocks ^ There are two structured procedurestatements in Verilog: always andinitial
initial Block^
always^ Block
HDL Based Digital Design using Verilog By M. Mohsin Rahmatullah @ SS-CARE School of Engineering
HDL Based Digital Design using Verilog By M. Mohsin Rahmatullah @ SS-CARE School of Engineering
HDL Based Digital Design using Verilog By M. Mohsin Rahmatullah @ SS-CARE School of Engineering
HDL Based Digital Design using Verilog By M. Mohsin Rahmatullah @ SS-CARE School of Engineering
module stimulus; reg x,y, a, b, c; initial begin^ c=1’b0;^ #5^ a=1’b1;^ #25 b=1’b0; end initial begin^ #10 x=1’b0;^ #25 y=1’b1; end initial^ #50 $finish; endmodule
initial Block starts at time 0,executes only once during asimulation Multiple statements must be groupedusing the keywords begin and end.Incase^ of^ a^
single^ behavioral statement, grouping is not necessary.
HDL Based Digital Design using Verilog By M. Mohsin Rahmatullah @ SS-CARE School of Engineering
HDL Based Digital Design using Verilog By M. Mohsin Rahmatullah @ SS-CARE School of Engineering
HDL Based Digital Design using Verilog By M. Mohsin Rahmatullah @ SS-CARE School of Engineering
module clock_gen; reg clk; initial^ clk = 1’b0; always @ (clk)^ #10 clk = ~clk; initial^ #1000 $finish; endmodule always Block starts at time 0. Clock is initialized inside a separateinitial^ statement.^
If^ we^ initialize^ the clock inside the always block, clockwill^ be^ initialized
every^ time^ the always block is entered.
HDL Based Digital Design using Verilog By M. Mohsin Rahmatullah @ SS-CARE School of Engineering