verilog basics 4 blocks condstatement loops
TRANSCRIPT
-
7/31/2019 Verilog Basics 4 Blocks CondStatement Loops
1/29
Digital System Design
Verilog:
Blocks, Conditional Statement, Loops
Dr. Bassam Jamil
-
7/31/2019 Verilog Basics 4 Blocks CondStatement Loops
2/29
-
7/31/2019 Verilog Basics 4 Blocks CondStatement Loops
3/29
33
Block Types
-
7/31/2019 Verilog Basics 4 Blocks CondStatement Loops
4/29
44
-
7/31/2019 Verilog Basics 4 Blocks CondStatement Loops
5/29
5
always and initial block syntax
Initial block syntax:Initial beginstatement1;statement2;.
End
OR Initial statement;
always block syntaxalways @ ( sensitivity list) begin
.
end
ORalways @ ( * )
begin . end
-
7/31/2019 Verilog Basics 4 Blocks CondStatement Loops
6/29
6
Initial Block
-
7/31/2019 Verilog Basics 4 Blocks CondStatement Loops
7/297
Initial Block Example
-
7/31/2019 Verilog Basics 4 Blocks CondStatement Loops
8/298
always Block
module clock_gen
reg_clk;
initialclk = 1b0;
always @ (clk)
#10 clk = ~ clk ;
initial begin#1000 $finish;
end
endmodule
-
7/31/2019 Verilog Basics 4 Blocks CondStatement Loops
9/299
always Block
module clock_gen
reg_clk;
initialclk = 1b0;
always @ (clk)#10 clk = ~ clk ;
initial begin#1000 $finish;
end
endmodule
-
7/31/2019 Verilog Basics 4 Blocks CondStatement Loops
10/2910
More always Block Examples
Always Block Examples Notes
always @(a or b or ci)
begin
sum = a + b + ci;end
always block executes
statements repeatedly.
always @(posedge clk)q
-
7/31/2019 Verilog Basics 4 Blocks CondStatement Loops
11/2911
Mux4 Example
Implement Mux4 using Structural
Behavioral data flow)
Behavioral procedural using if statement
Behavioral procedural using case statement
11
-
7/31/2019 Verilog Basics 4 Blocks CondStatement Loops
12/2912
Conditional Statements
If statement syntax: if(expression) statement or statement_group
if(expression) statement or statement_group
else statement or statement_group
-
7/31/2019 Verilog Basics 4 Blocks CondStatement Loops
13/2913
Conditional Statements: Nested If
-
7/31/2019 Verilog Basics 4 Blocks CondStatement Loops
14/2914
Conditional Statements: Multi-way If
-
7/31/2019 Verilog Basics 4 Blocks CondStatement Loops
15/2915
Conditional Statements: case statement
Case syntaxcase (net_or_register_or_literal)
case_match1: statement or statement_group
case_match2,
case_match3: statement or statement_group
default: statement or statement_group
endcase
-
7/31/2019 Verilog Basics 4 Blocks CondStatement Loops
16/2916
Conditional Statements: casex/casez
casez (net_or_register_or_literal)
Special version of the case statement which uses a Zlogic value to represent don't-care bits.
casex (net_or_register_or_literal)
Special version of the case statement which uses Z or
X logic values to represent don't-care bits.
-
7/31/2019 Verilog Basics 4 Blocks CondStatement Loops
17/2917
Conditional Statements: case statement
-
7/31/2019 Verilog Basics 4 Blocks CondStatement Loops
18/2918
Loop Statements
-
7/31/2019 Verilog Basics 4 Blocks CondStatement Loops
19/2919
Forever
reg clk;Initial begin
clk = 0;
forever #10 clk = ~ clk;
end
Syntax:foreverstatement or statement_group
-
7/31/2019 Verilog Basics 4 Blocks CondStatement Loops
20/2920
Repeat
Wait for
5 clocks
Syntax:
repeat (number)
statement orstatement_group
-
7/31/2019 Verilog Basics 4 Blocks CondStatement Loops
21/2921
While Statement
Syntax:while (expression)
statement orstatement_group
Count number of 1s inregisterin
-
7/31/2019 Verilog Basics 4 Blocks CondStatement Loops
22/29
22
For Statement
Sntax:
for(initial_assignment;
expression;
step_assignment)
statement or statement_group
-
7/31/2019 Verilog Basics 4 Blocks CondStatement Loops
23/29
23
Parallel Statements
Syntax:fork
statement1;
statement2;
statementN;
join
All statements
start at the
same time.
-
7/31/2019 Verilog Basics 4 Blocks CondStatement Loops
24/29
24
Parallel Statements
begin/end and fork/join blocks
have same effect
-
7/31/2019 Verilog Basics 4 Blocks CondStatement Loops
25/29
25
Named Block and disable statement
25
-
7/31/2019 Verilog Basics 4 Blocks CondStatement Loops
26/29
26
Mux4 Modeling
Will model the mux4 in various modeling styles: Structural
Behavioral Continuous Assignment
Behavioral Procedural using if statement
Behavioral Procedural using case statement
S
-
7/31/2019 Verilog Basics 4 Blocks CondStatement Loops
27/29
27
Structural to Behavioral
27
M B h i l (C i )
-
7/31/2019 Verilog Basics 4 Blocks CondStatement Loops
28/29
28
Mux 4 Behavioral (Cont. assign)
28
M 4 E l
-
7/31/2019 Verilog Basics 4 Blocks CondStatement Loops
29/29
Mux4 Example