SV的设计特性
面向可综合设计的主要优化
11. $cast(T,S)或者‘()。//类型转换
12. 添加了package 实现多个设计之间可以共享公共的类型和方法
SV中加入了新的面向硬件的过程快语句,目的:更加清楚的表达。
always语句块被细分为:
13. 组合逻辑语句块:always_comb;
14. 锁存逻辑语句块:always_latch;
15. 时许逻辑语句块:always_ff:
降低了Verilog语句中容易混淆的方式,也可以使得仿真工具、综合工具、形式检查工具、语义检查工具和其他EDA工具可以更加准确的检查设计的实现意图。
16. always_comb可以自动嵌入敏感列表;
可以防止共享变量(赋值左侧的变量没有办法被另外一个过程快赋值)
举例:always @(en,a) if (en) y=a; //verilog [会综合成为组合逻辑]
always_comb if (en) y=a; //systemverilog 【综合的时候会提醒】
-
always_comb 在仿真0时刻会仿真一次,无论在0时刻是否有敏感信号列表中的信号发生变化。
-
总结:
verilog @*的敏感列表声明方式不同于always_comb; -
@* 不要求可综合的建模要求,但always_comb则会限制其他过程块对同一个变量进行赋值;
-
@*的敏感列表可能表达不完全,例如一个过程块调用一个函数,那么@*则只会将该函数的形式参数自动声明到铭感列表,而不会将函数展开。
<