Skip to content

Verilog 语句

Verilog Statements

  • Verilog HDL

image2

注: 黑色可综合,可写到RTL中,蓝色都是不可综合的。黄色在部分工具可综合,当作不可综合

  • 上表中,注明不可综合的语句,通常用在测试文件中;未注明的语句均是可综合的。

  • 表 中 有 4 种 语 句 (f o r k _ j o i n , i n i t i a l ,’include,’timescale)是不可综合的,它们通常用在测试模块中。


一、块语句

用来将两条或多条语句组合在一起,使其在格式上更像一条语句,以增加程序的可读性。(中间相当于括号)

两种块语句

  1. begin_end——标识顺序执行的语句

    image3

特点:

  • 块内的语句是顺序执行的;

  • 每条语句的延迟时间是相对于前一条语句的仿真时间而言的;

  • 直到最后一条语句执行完,程序流程控制才跳出该顺序块。

tips:RTL中不用#,但是在tb中可以用#

  1. fork_join——标识并发执行的语句——不可综合

声明方式与begin_end相同

  1. 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说明语句——不断重复执行,直到仿真结束

1. always

2. initial