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

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

日志

assertion_1

已有 366 次阅读| 2024-7-4 13:44 |系统分类:其他

property p_chk_val(clk, rst, en, cyc, sig, val);

  @(posedge clk)

  disable iff (rst)

  en |-> ##cyc sig === val;

endproperty


property p_chk2_val(clk, rst, en1, cyc1, en2, cyc2, sig, val);

  @(posedge clk)

  disable iff (rst)

  en1 ##cyc1 en2 |-> ##cyc2 sig === val;

endproperty


property p_chk_val_repeat(clk, rst, en, num1, cyc, sig, val, num2);

  @(posedge clk)

  disable iff (rst)

  en[*num1] |-> ##cyc (sig === val)[*num2];

endproperty


property p_chk_stable(clk, rst, en, cyc, sig);

  @(posedge clk)

  disable iff (rst)

  en |-> ##cyc $stable(sig);

endproperty


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

  @(posedge clk)

  disable iff (rst)

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

endproperty


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

  @(posedge clk)

  disable iff (rst)

  en && $rose(trig1) ##cyc1 $rose(trig2) |-> ##cyc2 $rose(sig);

endproperty


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

  @(posedge clk)

  disable iff (rst)

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

endproperty


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

  @(posedge clk)

  disable iff (rst)

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

endproperty


property p_trig_rose2(clk, rst, en, trig, cyc1, cyc2, sig);

  @(posedge clk)

  disable iff (rst)

  en && $rose(trig) |-> ##[cyc1:cyc2] $rose(sig);

endproperty


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

  @(posedge clk)

  disable iff (rst)

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

endproperty


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

  @(posedge clk)

  disable iff (rst)

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

endproperty


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

  @(posedge clk)

  disable iff (rst)

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

endproperty


property p_trig_val(clk, rst, en, trig, cyc, sig, val);

  @(posedge clk)

  disable iff (rst)

  en && $rose(trig) |-> ##cyc sig === val;

endproperty


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

  @(posedge clk)

  disable iff (rst)

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

endproperty


property p_trig1_trig2_val(clk, rst, trig1, trig2, act, cyc, sig, val);

  @(posedge clk)

  disable iff (rst)

  $rose(trig1) ##0 $rose(trig2)[->1] ##0 act[->1] |-> ##cyc sig == val;

endproperty


property p_trig1_trig2_through(clk, rst, trig1, trig2, act, cyc, sig, val1, val2);

  @(posedge clk)

  disable iff (rst)

  $rose(trig1) |-> ((sig == val1) throughout ($rose(trig2)[->1] ##0 act[->1])) ##cyc sig == val2;

endproperty


property p_trig_past_val(clk, rst, en, trig, cyc, sig, val);

  @(posedge clk)

  disable iff (rst)

  en && $rose(trig) |-> $past(sig, cyc) === val;

endproperty


property p_cnt_up(clk, rst, en, cyc, cnt, val, delta);

  @(posedge clk)

  disable iff (rst)

  en && (cnt != val) |-> ##cyc cnt == ($past(cnt, cyc) + delta);

endproperty


property p_cnt_down(clk, rst, en, cyc, cnt, val, delta);

  @(posedge clk)

  disable iff (rst)

  en && (cnt != val) |-> ##cyc cnt == ($past(cnt, cyc) - delta);

endproperty


property p_cnt_val(clk, rst, en, cyc, cnt, val1, val2);

  @(posedge clk)

  disable iff (rst)

  en && (cnt == val1) |-> ##cyc cnt == val2;

endproperty


property p_cnt_stable(clk, rst, en, cyc, cnt, num);

  @(posedge clk)

  disable iff (rst)

  en & (cnt != $past(cnt)) |-> ##cyc $stable(cnt)[*num];

endproperty


property p_chk_pulse(clk, rst, en, trig, cyc1, cyc2, sig);

  @(posedge clk)

  disable iff (rst)

  en && $rose(trig) |-> ##cyc1 $rose(sig) ##cyc2 $fell(sig);

endproperty


property p_chk_pulse_width(clk, rst, en, trig, cyc1, cyc2, sig);

  @(posedge clk)

  disable iff (rst)

  en && $rose(trig) |-> ##cyc1 $rose(sig) ##0 sig[*cyc2] ##1 $fell(sig);

endproperty


property p_chk_trig_val2(clk, rst, en, trig, cyc1, cyc2, sig, val1, val2);

  @(posedge clk)

  disable iff (rst)

  en && $rose(trig) |-> ##cyc1 sig == val1 ##cyc2 sig == val2;

endproperty


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

  @(posedge clk)

  disable iff (rst)

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

endproperty


property p_state_trans_next(clk, rst, en, state, state1, state2);

  @(posedge clk)

  disable iff (rst)

  en && (state === state1) ##1 (state !== state1) |-> (state  === state2);

endproperty


property p_state_trans_past_trg(clk, rst, en, state, state1, cyc, sig, val);

  @(posedge clk)

  disable iff (rst)

  en && (state === state1) ##1 (state !== state1) |-> $past(sig, cyc) === val;

endproperty


property p_chk_pulse_state_trans(clk, rst, state, state1, state2, trig, cyc1, cyc2, sig);

  @(posedge clk)

  disable iff (rst)

  (state == state1 ##1 state == state2) ##0 trig[->1] |-> ##cyc1 $rose(sig) ##0 trig[->1] ##cyc2 $fell(sig);

endproperty


property p_chk_transition1(clk, rst, trig, num, state, state1);

  @(posedge clk)

  disable iff (rst)

  $rose(trig) |-> ##1 ($stable(state) throughout !$stable(num)[->1]);

endproperty



点赞

全部作者的其他最新日志

评论 (0 个评论)

facelist

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

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

    周排名
  • 0

    月排名
  • 0

    总排名
  • 0

    关注
  • 0

    粉丝
  • 3

    好友
  • 0

    获赞
  • 0

    评论
  • 49

    访问数
关闭

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


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

GMT+8, 2024-12-22 20:57 , Processed in 0.024413 second(s), 14 queries , Gzip On, Redis On.

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