块语句
顺序块
特点:
- 按顺序执行
- 每条语句的延迟时间是相对与前一条语句的仿真时间而言
- 直到最后一条语句执行完,程序流程控制才跳出该语句块
begin
语句1;
语句2;
.......
语句n;
end
或是
begin:块名
块内声明语句
语句1;
语句2;
......
语句n;
end
块名:
- 这样可以在块内定义局部变量,即只在块内使用的变量。
- 这样可以允许块被其它语句调用,如被disable语句。
- 在Verilog语言里,所有的变量都是静态的,即所有的变量都只有一个唯一的存储地址,
因此进入或跳出块并不影响存储在变量内的值。
基于以上原因,块名就提供了一个在任何仿真时刻确认变量值的方法。
并行块
特点:
- 块内语句同时进行
- 块内每条语句的延迟时间是相对与程序流程控制进入到块内时的仿真时间的(与顺序快中延迟时间的区别)
- 延迟时间是用来给赋值语句提供执行时序的
- 按照时间时序排序在最后的语句执行完成后或一个disable语句执行时,程序流程控制跳出该程序块
fork
语句1;
语句2;
......
语句n;
join
或是
fork:块名
块内声明语句
语句1;
语句2;
......
语句n;
join
块名:
- 这样可以在块内定义局部变量,即只在块内使用的变量。
- 这样可以允许块被其它语句调用,如被disable语句。
- 在Verilog语言里,所有的变量都是静态的,即所有的变量都只有一个唯一的存储地址,
因此进入或跳出块并不影响存储在变量内的值。
基于以上原因,块名就提供了一个在任何仿真时刻确认变量值的方法。