speedzheng23的个人空间 https://blog.eetop.cn/xiaogangzheng [收藏] [复制] [分享] [RSS]

空间首页 动态 记录 日志 相册 主题 分享 留言板 个人资料

日志

assertion_2

已有 535 次阅读| 2024-7-4 18:14 |系统分类:其他

sequence s_state_transition(state, state1, state2);

  (state == state1 || state == state2) throughout (state == state2)[->1];

endsequence


property p_chk_transition2(clk, rst, trig, num, state, state1, state2);

  @(posedge clk)

  disable iff (rst)

  $rose(trig) && (state == state1) |-> ##1 ($stable(num) throughout (s_state_transition(state, state1, state2)

                                                               ##1 s_state_transition(state, state2, state1)));

endproperty


property p_chk_transition3(clk, rst, trig, num, state, state1, state2, state3);

  @(posedge clk)

  disable iff (rst)

  $rose(trig) && (state == state1) |-> ##1 ($stable(num) throughout (s_state_transition(state, state1, state2)

                                                                 ##1 s_state_transition(state, state2, state3)

                                                                 ##1 s_state_transition(state, state3, state1)));

endproperty


property p_chk_transition5(clk, rst, trig, num, state, state1, state2, state3, state4, state5);

  @(posedge clk)

  disable iff (rst)

  $rose(trig) && (state == state1) |-> ##1 ($stable(num) throughout (s_state_transition(state, state1, state2)

                                                                 ##1 s_state_transition(state, state2, state3)

                                                                 ##1 s_state_transition(state, state3, state4)

                                                                 ##1 s_state_transition(state, state4, state5)

                                                                 ##1 s_state_transition(state, state5, state1)));

endproperty


property p_chk_transition6(clk, rst, trig, num, state, state1, state2, state3, state4, state5, state6);

  @(posedge clk)

  disable iff (rst)

  $rose(trig) && (state == state1) |-> ##1 ($stable(num) throughout (s_state_transition(state, state1, state2)

                                                                 ##1 s_state_transition(state, state2, state3)

                                                                 ##1 s_state_transition(state, state3, state4)

                                                                 ##1 s_state_transition(state, state4, state5)

                                                                 ##1 s_state_transition(state, state5, state6)

                                                                 ##1 s_state_transition(state, state6, state1)));

endproperty


property p_chk_transition7(clk, rst, trig, num, state, state1, state2, state3, state4, state5, state6, state7);

  @(posedge clk)

  disable iff (rst)

  $rose(trig) && (state == state1) |-> ##1 ($stable(num) throughout (s_state_transition(state, state1, state2)

                                                                 ##1 s_state_transition(state, state2, state3)

                                                                 ##1 s_state_transition(state, state3, state4)

                                                                 ##1 s_state_transition(state, state4, state5)

                                                                 ##1 s_state_transition(state, state5, state6)

                                                                 ##1 s_state_transition(state, state6, state7)

                                                                 ##1 s_state_transition(state, state7, state1)));

endproperty


property p_chk_transition9(clk, rst, trig, num, state, state1, state2, state3, state4, state5, state6, state7, state8, state9);

  @(posedge clk)

  disable iff (rst)

  $rose(trig) && (state == state1) |-> ##1 ($stable(num) throughout (s_state_transition(state, state1, state2)

                                                                 ##1 s_state_transition(state, state2, state3)

                                                                 ##1 s_state_transition(state, state3, state4)

                                                                 ##1 s_state_transition(state, state4, state5)

                                                                 ##1 s_state_transition(state, state5, state6)

                                                                 ##1 s_state_transition(state, state6, state7)

                                                                 ##1 s_state_transition(state, state7, state8)

                                                                 ##1 s_state_transition(state, state8, state9)

                                                                 ##1 s_state_transition(state, state9, state1)));

endproperty


property p_chk_state(clk, rst, en, trig, cyc, state, state1, state2);

  @(posedge clk)

  disable iff (rst)

  en && $rose(trig) && state == state1 |-> ##cyc state == state2;

endproperty


property p_state_transition(clk, rst, trig, state, state1, state2, state3);

  @(posedge clk)

  disable iff (rst)

  state == state1 ##1 state == state2 |-> ((state == state2) throughout $rose(trig)[->1]) ##1 state == state3;

endproperty


property p_trig_transition4(clk, rst, en, trig, cyc, state, state1, state2, state3, state4);

  @(posedge clk)

  disable iff (rst)

  en && $rose(trig) |-> ##cyc s_state_transition(state, state1, state2)

                        ##0   s_state_transition(state, state2, state3)

                        ##0   s_state_transition(state, state3, state4);

endproperty


property p_trig_transition6(clk, rst, en, trig, cyc, state, state1, state2, state3, state4, state5, state6);

  @(posedge clk)

  disable iff (rst)

  en && $rose(trig) |-> ##cyc s_state_transition(state, state1, state2)

                        ##0   s_state_transition(state, state2, state3)

                        ##0   s_state_transition(state, state3, state4)

                        ##0   s_state_transition(state, state4, state5)

                        ##0   s_state_transition(state, state5, state6);

endproperty


property p_wait_sig_rose(clk, rst, en, trig, cyc, sig);

  @(posedge clk)

  disable iff (rst)

  en && $rose(trig) |-> !sig[*cyc:$] ##1 $rose(sig);

endproperty


property p_test1(clk, rst, en, trig, cyc, sync, sig);

  @(posedge clk)

  disable iff (rst)

  $rose(trig) ##0 en |-> sync[->1] ##cyc sig;

endproperty


property p_test2(clk, rst, trig, cyc, sig);

  @(posedge clk)

  disable iff (rst)

  $rose(trig) |-> ##cyc sig;

endproperty


property p_test3(clk, rst, trig1, trig2, cyc1, cyc2, sig);

  @(posedge clk)

  disable iff (rst)

  $rose(trig1) ##cyc1 $rose(trig2)[->1] |-> ##cyc2 $rose(sig);

endproperty


property p_test4(clk, rst, trig1, trig2, trig3, fire, cyc1, cyc2, sig);

  @(posedge clk)

  disable iff (rst)

  $rose(trig1) ##cyc1 $rose(trig3)[->1] ##1 ($rose(trig2) && fire)[->1] |-> ##cyc2 $rose(sig);

endproperty


property p_test5(clk, rst, trig1, trig2, fire, cyc1, cyc2, sig, exp);

  @(posedge clk)

  disable iff (rst)

  $rose(trig1) ##cyc1 (trig2 && fire)[->1] |-> ##cyc2 (sig == exp);

endproperty


property p_test6(clk, rst, trig1, trig2, fire, cyc1, cyc2, sig);

  @(posedge clk)

  disable iff (rst)

  $rose(trig1) ##cyc1 ($rose(trig2) && fire)[->1] |-> ##cyc2 $rose(sig);

endproperty


property p_trig1_trig2_thr_stable(clk, rst, en, trig1, trig2, cyc, sig);

  @(posedge clk)

  disable iff (rst)

  en && $rose(trig1) |-> ##cyc ($stable(sig) throughout $rose(trig2)[->1]);

endproperty


property p_trig1_trig2_thr_val(clk, rst, en, trig1, trig2, cyc, sig, val);

  @(posedge clk)

  disable iff (rst)

  en && $rose(trig1) |-> ##cyc ((sig === val) throughout $rose(trig2)[->1]);

endproperty


property p_trig1_trig2_trig3_thr_val(clk, rst, en, trig1, trig2, trig3, cyc1, cyc2, sig, val);

  @(posedge clk)

  disable iff (rst)

  en && $rose(trig1) |-> ##cyc1 ((sig === val) throughout ($rose(trig2)[->1] ##cyc2 $rose(trig3)[->1]));

endproperty


property p_sig_toggle(clk, rst, en, trig1, trig2, cyc1, cyc2, cyc3, cyc4, sig);

  @(posedge clk)

  disable iff (rst)

  en && $rose(trig1) |-> ##cyc1 ($rose(sig)[->cyc2:cyc3]) ##cyc4 $rose(trig2)[->1];

endproperty


property p_trig1_trig2_num_val(clk, rst, en, trig1, trig2, num, cyc1, cyc2, sig, val);

  @(posedge clk)

  disable iff (rst)

  en && $rose(trig1) |-> ##cyc1 $rose(trig2)[->num] ##cyc2 sig === val;

endproperty


property p_trig1_trig2_with_rose(clk, rst, en, trig1, trig2, cyc, sig);

  @(posedge clk)

  disable iff (rst)

  en && $rose(trig1) |-> ##cyc ($rose(sig) within $rose(trig2)[->1]);

endproperty


property p_trig1_sig1r1_sig2r(clk, rst, en, trig1, cyc1, cyc2, cyc3, sig1, sig2);

  @(posedge clk)

  disable iff (rst)

  en && $rose(trig1) |-> ##cyc1 $rose(sig1)[->1] ##[cyc2:cyc3] $rose(sig2);

endproperty


property p_trig1_sig1r1_sig2r1(clk, rst, en, trig1, cyc1, cyc2, sig1, sig2);

  @(posedge clk)

  disable iff (rst)

  en && $rose(trig1) |-> ##cyc1 $rose(sig1)[->1] ##cyc2 $rose(sig2)[->1];

endproperty


property p_chk_st123(clk, rst, en, st1, cyc21, cyc22, st2, cyc31, cyc32, st3);

  @(posedge clk)

  disable iff (rst)

  en && st1  |-> ##[cyc21:cyc22] st2 |-> ##[cyc31:cyc32] st3;

endproperty



点赞

全部作者的其他最新日志

评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 注册

  • 关注TA
  • 加好友
  • 联系TA
  • 0

    周排名
  • 0

    月排名
  • 0

    总排名
  • 0

    关注
  • 0

    粉丝
  • 3

    好友
  • 0

    获赞
  • 0

    评论
  • 49

    访问数
关闭

站长推荐 上一条 /2 下一条


小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-12-22 21:45 , Processed in 0.015132 second(s), 8 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
返回顶部