错误:(vlog-13069)cad_property.sv(5):near" case":语法错误,意外情况

时间:2015-09-14 16:45:28

标签: system-verilog

property clk_req_check;
@(posedge upbm_clk) disable iff (~upbm_reset_n)

//@(posedge upbm_clk);
 case (sb_adrc)
   2'b00 : 1'b1 |-> (clk_req[0] == 1'b1) [*] (sb_adrc != 2'b00);
   2'b01 : 1'b1 |-> (clk_req[1] == 1'b1) [*] (sb_adrc != 2'b01);
   2'b10 : 1'b1 |-> (clk_req[2] == 1'b1) [*] (sb_adrc != 2'b10);
   2'b11 : 1'b1 |-> (clk_req[3] == 1'b1) [*] (sb_adrc != 2'b11);
   default : 1'b0;
  endcase
endproperty: clk_req_check

**错误:(vlog-13069)cad_property.sv(5):near" case":语法错误,意外情况。

没有disable_iff **错误:(vlog-13069)cad_property.sv(3):near" case&#34 ;:语法错误,意外情况,期待禁用。

2 个答案:

答案 0 :(得分:0)

您的Questa版本可能不支持断言中的

case/endcase

答案 1 :(得分:0)

有趣的是,我从未尝试在并发断言中编写案例陈述,不确定是否允许这样做。考虑到这一点,你想要同时检查sb_adrc的所有4个值并发断言(在每个upbm_clk上不断运行),这让我觉得你需要4个独立的并发断言。每个类似于以下内容:

property clk_req_check;
  @(posedge upbm_clk) disable iff (~upbm_reset_n)
    sb_adrc == 2'b00 |-> (clk_req[0] == 1'b1) ##1 (sb_adrc != 2'b00)
endproperty