类型转换$cast(T, S)或者'()
一、always过程语句块:
1、组合逻辑语句块:always_comb
可以自动嵌入敏感列表;
verilog @* 的敏感列表声明方式不同于always_comb
1)@* 不要求可综合的建模要求,但always_comb则会限制其他过程块对同一变量进行赋值。
2)@*的敏感列表可能不完全,比如如果一个过程块调用一个函数,那么@*则只会将该函数的形式参数自动声明到敏感列表,而不会将该函数展开。
3)always_comb则会将被调用函数中可能参与运算的其他信号也声明到敏感列表中。
参考如下代码:
//它的敏感列表里面只有@ (data)。data是函数decode()的形参
always @* begin
a1 = data << 1;
b1 = decode();
...
end
//它的敏感列表有@(data, sel, c, d, e)
always_comb begin
a2 = data << 1;
b2 = decode();
...
end
function decode; // fuction with no inputs
begin
case (sel)
2'b01: decode = d | e;
2'b10: decode = d & e;
default: decode = c;
endcase
end
endfuction
可以禁止共享变量,即赋值左侧的变量无法被另一个过程块所赋值;
软件工具在检查always_comb过程块,如果它所表示的不是组合逻辑,那么会发出告警。
always @(a,

最低0.47元/天 解锁文章
1820

被折叠的 条评论
为什么被折叠?



