一、Verilog HDL语言基础
-
过程语句 (initial, always)
-
块语句 (begin-end, fork-join)
-
赋值语句 (assign, =, <=)
-
条件语句 (if-else, case, casez, casex)
-
循环语句 (for, forever, repeat, while)
-
编译向导语句(‘define, ‘include, ifdef, ’else, ‘endif)
-
initial ——用于仿真中的初始化,initial语句中的语句只执行一次
initial begin 语句1; 语句2; …; end
-
always ——块内的语句是不断重复执行的
always @(<敏感信号表达式event-expression>) begin // 过程赋值 // if-else, case 等选择 // while, repeat, for 循环 // task, function调用 end
-
连续赋值(Continuous)
- – assign为连续赋值语句,主要对wire型变量赋值
- –例:2选1数据选择器
module MUX21_1(out, a, b, sel); input a, b, sel; output out; assign out=(sel==0)?a:b; endmodule
-
过程赋值(Procedural)
- –左边的赋值变量必须是reg型变量
- –阻塞(blocking)
b = a; //该语句结束后立刻赋值
-
–非阻塞(non-blocking)
b <= a; //整个过程块结束时才执行赋值