assertion sequence

Posted lybinger

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了assertion sequence相关的知识,希望对你有一定的参考价值。

assertion是在pre-poned阶段sample,post-poned阶段evaluation。

##1指的是哥一个clock tick。##0指的是同一个clock tick。##[m:n]指隔m到n各clock,m必须小于n,n如果为$则表示到仿真结束。

a[*3] => a ##1 a ##1 a

a[*0]为空sequence,对于空sequence:

— (empty ##0 seq) does not result in a match
— (seq ##0 empty) does not result in a match
— (empty ##n seq), where n is greater than 0, is equivalent to (##(n-1) seq)
— (seq ##n empty), where n is greater than 0, is equivalent to (seq ##(n-1) ‘true)

a[*0:2] ##1 b =>

##1 b

or a ##1 b

or a ##1 a ##1 b

a ##1 b [->2:10] ##1 c 等价于 a ##1 ((!b[*0:$] ##1 b) [*2:10]) ##1 c,即a ##1之后可以有b从0->1的跳变.

a ##1 b [=2:10] ##1 c 等价于a ##1 ((!b [*0:$] ##1 b) [*2:10]) ##1 !b[*0:$] ##1 c,##1 c前面可以有b 1-> 0的跳变。

— $onehot (<expression>) returns true if only one bit of the expression is high.
— $onehot0(<expression>) returns true if at most one bit of the expression is high.
— $isunknown (<expression>) returns true if any bit of the expression is X or Z. This is equivalent to ^<expression> === ’bx.

$sampled()

$rose() 指的是相对前一个clock,当前值得最低位有从0->1得跳变;

$fell() 指的是相对前一个clock,当前值得最低位有从1->0得跳变;

$stable() 指的是相对前一个clock,当前值不变;

$past( expression1 [, number_of_ticks] [, expression2] [, clocking_event]) 获得number_of_ticks(默认值为1)之前的值。如果有expression2的值,则expression2为1时,才获取expression1。

seq1 intersect seq2有点类似seq1 and seq2

exp throughout seq等价于exp [*0:$] intersect seq

seq1 within seq2等价于: (1[*0:$] ##1 seq1 ##1 1[*0:$]) intersect seq2

以上是关于assertion sequence的主要内容,如果未能解决你的问题,请参考以下文章

Junit——Assert断言

在 Chai 断言库中,当我们已经有“assert.deepEqual()”和“assert.strictEqual()”时,“assert.equal()”有啥用?

[PHP] assert()断言检测函数

C++中的assert

C语言中assert断言的用法?

micro assert 宏assert()