Verilog 语句
Verilog Statements
- Verilog HDL

注: 黑色可综合,可写到RTL中,蓝色都是不可综合的。黄色在部分工具可综合,当作不可综合
-
上表中,注明不可综合的语句,通常用在测试文件中;未注明的语句均是可综合的。
-
表 中 有 4 种 语 句 (f o r k _ j o i n , i n i t i a l ,’include,’timescale)是不可综合的,它们通常用在测试模块中。
一、块语句
用来将两条或多条语句组合在一起,使其在格式上更像一条语句,以增加程序的可读性。(中间相当于括号)
两种块语句
-
begin_end——标识顺序执行的语句

特点:
-
块内的语句是顺序执行的;
-
每条语句的延迟时间是相对于前一条语句的仿真时间而言的;
-
直到最后一条语句执行完,程序流程控制才跳出该顺序块。
tips:RTL中不用#,但是在tb中可以用#
- fork_join——标识并发执行的语句——不可综合
声明方式与begin_end相同
-
begin_end和fork_join语句的区分
begin //顺序执行 #50 r='h35; #50 r='hE2; end fork_join //并发 #50 r='h35; #100 r='hE2; join //以上两种代码代表的情况一致
注意:顺序块和并行块可以相互嵌套使用
eg:
begin
x=1’b0
fork
...
join
#12 w = {y,z};
end
二、结构语句
结构语句也叫过程语句
- initial说明语句——只执行一次,不可综合
- always说明语句——不断重复执行,直到仿真结束