SystemVerilog数字集成电路功能验证课件 (4).pdf
SystemVerilog芯片验证
第3章结构化过程
2024年2月7日
SystemVerilog芯片验证2024年2月7日1/16
initial和always过程
结构化过程
1initial过程,使用关键字initial表示。
2always过程,使用关键字always、always_comb、always_latch和always_ff
表示。
3final过程,使用关键字final表示。
4任务(task)。
5函数(function)。
1initial和always过程在仿真开始时启动。
2initial过程只被执行一次,当内部语句结束时它就停止运行。
3always过程不断被重复执行,只有当仿真结束时,它才停止运行。
4initial和always过程之间不应该有隐含的执行顺序,
5initial过程通常用于生成时钟和复位激励。
SystemVerilog芯片验证2024年2月7日2/16
initial和always过程
always_comb过程描述组合电路
1always_comb过程没有敏感列表,它可以避免由于敏感信号列表不全所生
成的锁存器。
2always_latch过程描述锁存器,它也不需要添加敏感信号列表。
4moduledut(
5inputclk,
6input[3:0]a,b,
7output[3:0]c,
8outputreg[3:0]d,e,f);
9
10assignc=a+b;
11always_combd=a+b;
12always_latchif(a==0)e=a+b;
13always_combf=a+b;
14endmodule
SystemVerilog芯片验证2024年2月7日3/16
initial和always过程
always_ff过程描述时序逻辑
1always_ff过程需要添加边沿触发的敏感信号列表。
2always_ff过程只包含一个事件控件,always_ff过程中被赋值的变量不能在
块外被再次赋值。
4moduledut(
5inputclk,
6input[3:0]a,
7outputreg[3:0]b,c);
8
9//initialc=h0;//编译错误
10
11always_ff@(posedgeclk)begin//过程赋值,非阻塞赋值
12b=a;
13c=b+1;
14end
15endmodule
SystemVerilog芯片验证2024年2月7日4/16
运算符和过程语句
运算符和过程语句
1for语句中定义局部循环变量
2++、–、+=和=
4moduleautomatic