SV芯片验证之设计特性

类型转换$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,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值