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 ;:语法错误,意外情况,期待禁用。
答案 0 :(得分:0)
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