Synopsys_SVA_OVL检查库应用指南.pdf

大小 4.7MB 页数 212 页 格式 PDF

简单的介绍了 Synopsys 的 SystemVerilog 检 查库的使用,极其单元的语法和使用示例。

Synopsys SVA 检查库 应用指南

lu.hongbo

目录

1
SystemVerilog断言(SVA)检查器库...................................................................................... 11
1.1
概览......................................................................................................................... 11
1.2
全局控制(Global Controls)............................................................................... 12
1.3
检查器触发条件..................................................................................................... 13
1.4
带有VMM报告性质的检查器............................................................................. 14
1.5
定制报告................................................................................................................. 14
1.6
共享语法................................................................................................................. 15
1.6.1
severity_level .................................................................................................. 15
1.6.2
options ............................................................................................................. 15
1.6.3
property_type .................................................................................................. 15
1.6.4
msg .................................................................................................................. 15
1.6.5
category ........................................................................................................... 15
1.6.6
coverage_level_i ............................................................................................. 16
1.6.7
inst_name ........................................................................................................ 16
1.6.8
clk .................................................................................................................... 17
1.6.9
reset_n ............................................................................................................. 17
1.7
使用覆盖率等级来报告检查器的结果................................................................. 17
1.7.1
生成报告......................................................................................................... 17
1.7.2
查看结果......................................................................................................... 18
1.7.2.1
指示盘............................................................................................. 18
1.7.2.2
查看覆盖等级Level 1和Level 3结果......................................... 19
1.7.2.3
查看Level 2覆盖率结果............................................................... 19
1.8
用于SVA CG检查器库的参数检查..................................................................... 20
1.8.1
使用模型......................................................................................................... 21
1.9
使用SystemVerilog中的模式............................................................................... 22
1.9.1
SystemVerilog的整体设计目标.................................................................... 22
1.9.2
一些被限制成Verilog2001的设计文件....................................................... 23
1.9.3
SVA确认其库使能VMM信息服务............................................................ 23
1.9.4
建议使用模式................................................................................................. 24
2
SVA基本检查器.................................................................................................................... 25
2.1
检查器列表............................................................................................................. 25
2.2
检查器描述............................................................................................................. 26
2.2.1
assert_always................................................................................................... 26
2.2.1.1
语法................................................................................................. 26
2.2.1.2
参数................................................................................................. 26
2.2.1.3
覆盖率模式..................................................................................... 27
2.2.1.4
例..................................................................................................... 27
2.2.1.5
基于名称的示例............................................................................. 28
2.2.2
assert_always_on_edge ................................................................................... 28
2.2.2.1
语法................................................................................................. 28
2.2.2.2
参数................................................................................................. 28
2.2.2.3
覆盖率模式..................................................................................... 29
2.2.2.4 例..................................................................................................... 29
2.2.2.5 基于名称的示例............................................................................. 30
2.2.3
assert
_change .................................................................................................. 31
2.2.3.1 语法................................................................................................. 31
2.2.3.2 参数................................................................................................. 31
2.2.3.3 覆盖率模式..................................................................................... 32
2.2.3.4 例..................................................................................................... 33
2.2.3.5 基于名称的示例............................................................................. 34
2.2.4
assert
_cycle_sequence ..................................................................................... 35
2.2.4.1 语法................................................................................................. 35
2.2.4.2 参数................................................................................................. 35
2.2.4.3 覆盖率模式..................................................................................... 36
2.2.4.4 例..................................................................................................... 36
2.2.4.5 基于名称的示例............................................................................. 38
2.2.5
assert
_decrement ............................................................................................. 38
2.2.5.1 语法................................................................................................. 38
2.2.5.2 参数................................................................................................. 39
2.2.5.3 覆盖率模式..................................................................................... 39
2.2.5.4 例..................................................................................................... 39
2.2.5.5 基于名称的示例............................................................................. 40
2.2.6
assert
_delta ...................................................................................................... 41
2.2.6.1 语法................................................................................................. 41
2.2.6.2 参数................................................................................................. 41
2.2.6.3 覆盖率模式..................................................................................... 42
2.2.6.4 例..................................................................................................... 42
2.2.6.5 基于名称的示例............................................................................. 43
2.2.7
assert
_even_parity ........................................................................................... 44
2.2.7.1 语法................................................................................................. 44
2.2.7.2 参数................................................................................................. 44
2.2.7.3 覆盖率模式..................................................................................... 44
2.2.7.4 例..................................................................................................... 44
2.2.7.5 基于名称的示例............................................................................. 46
2.2.8
assert
_fifo_index ............................................................................................. 46
2.2.8.1 语法................................................................................................. 46
2.2.8.2 参数................................................................................................. 46
2.2.8.3 覆盖率模式..................................................................................... 47
2.2.8.4 例..................................................................................................... 48
2.2.8.5 基于名称的示例............................................................................. 50
2.2.9
assert
_frame .................................................................................................... 50
2.2.9.1 语法................................................................................................. 50
2.2.9.2 参数................................................................................................. 50
2.2.9.3 覆盖率模式..................................................................................... 51
2.2.9.4 例..................................................................................................... 52
2.2.9.5 基于名称的示例............................................................................. 53
2.2.10
assert_
handshake ............................................................................................. 54
2.2.10.1 语法................................................................................................. 54
2.2.10.2 参数................................................................................................. 54
2.2.10.3 覆盖率模式..................................................................................... 55
2.2.10.4 例..................................................................................................... 56
2.2.10.5 基于名称的示例............................................................................. 58
2.2.11
assert_
implication ........................................................................................... 58
2.2.11.1 语法................................................................................................. 58
2.2.11.2 参数................................................................................................. 58
2.2.11.3 覆盖率模式..................................................................................... 59
2.2.11.4 例..................................................................................................... 59
2.2.11.5 基于名称的示例............................................................................. 60
2.2.12
assert_
increment .............................................................................................. 61
2.2.12.1 语法................................................................................................. 61
2.2.12.2 参数................................................................................................. 61
2.2.12.3 覆盖率模式..................................................................................... 61
2.2.12.4 例..................................................................................................... 62
2.2.12.5 基于名称的示例............................................................................. 63
2.2.13
assert_
never ..................................................................................................... 63
2.2.13.1 语法................................................................................................. 63
2.2.13.2 参数................................................................................................. 64
2.2.13.3 例..................................................................................................... 64
2.2.13.4 基于名称的示例............................................................................. 65
2.2.14
assert_
next ....................................................................................................... 65
2.2.14.1 语法................................................................................................. 65
2.2.14.2 参数................................................................................................. 66
2.2.14.3 覆盖率模式..................................................................................... 66
2.2.14.4 例..................................................................................................... 67
2.2.14.5 基于名称的示例............................................................................. 68
2.2.15
assert_
no_overflow ......................................................................................... 68
2.2.15.1 语法................................................................................................. 69
2.2.15.2 参数................................................................................................. 69
2.2.15.3 覆盖率模式..................................................................................... 69
2.2.15.4 例..................................................................................................... 70
2.2.15.5 基于名称的示例............................................................................. 72
2.2.16
assert_
no_transition ......................................................................................... 72
2.2.16.1 语法................................................................................................. 72
2.2.16.2 参数................................................................................................. 72
2.2.16.3 覆盖率模型..................................................................................... 73
2.2.16.4 例..................................................................................................... 73
2.2.16.5 基于名称的示例............................................................................. 74
2.2.17
assert_
no_underflow ....................................................................................... 75
2.2.17.1 语法................................................................................................. 75
2.2.17.2 参数................................................................................................. 75
2.2.17.3 覆盖率式......................................................................................... 76
2.2.17.4 例..................................................................................................... 76
2.2.17.5 基于名称的示例............................................................................. 78
2.2.18
assert_
odd_parity ............................................................................................ 78
2.2.18.1 语法................................................................................................. 78
2.2.18.2 参数................................................................................................. 79
2.2.18.3 覆盖率模式..................................................................................... 79
2.2.18.4 例..................................................................................................... 79
2.2.18.5 基于名称的示例............................................................................. 80
2.2.19
assert_
one_cold ............................................................................................... 80
2.2.19.1 语法................................................................................................. 81
2.2.19.2 参数................................................................................................. 81
2.2.19.3 覆盖率模式..................................................................................... 81
2.2.19.4 例..................................................................................................... 82
2.2.19.5 基于名称的示例............................................................................. 83
2.2.20
assert_
one_hot ................................................................................................. 83
2.2.20.1 语法................................................................................................. 84
2.2.20.2 参数................................................................................................. 84
2.2.20.3 覆盖率模式..................................................................................... 84
2.2.20.4 例..................................................................................................... 84
2.2.20.5 基于名称的示例............................................................................. 85
2.2.21
assert_
proposition ........................................................................................... 86
2.2.21.1 语法................................................................................................. 86
2.2.21.2 参数................................................................................................. 86
2.2.21.3 例..................................................................................................... 86
2.2.21.4 基于名称的示例............................................................................. 87
2.2.22
assert_
quiescent_state ..................................................................................... 88
2.2.22.1 语法................................................................................................. 88
2.2.22.2 参数................................................................................................. 88
2.2.22.3 覆盖率模式..................................................................................... 89
2.2.22.4 例..................................................................................................... 89
2.2.22.5 基于名称的示例............................................................................. 90
2.2.23
assert_
range ..................................................................................................... 90
2.2.23.1 语法................................................................................................. 91
2.2.23.2 参数................................................................................................. 91
2.2.23.3 覆盖率模式..................................................................................... 91
2.2.23.4 例..................................................................................................... 92
2.2.23.5 基于名称的示例............................................................................. 93
2.2.24
assert_
time ...................................................................................................... 94
2.2.24.1 语法................................................................................................. 94
2.2.24.2 参数................................................................................................. 94
2.2.24.3 覆盖率模式..................................................................................... 95
2.2.24.4 例..................................................................................................... 95
2.2.24.5 基于名称的示例............................................................................. 97
2.2.25
assert_
transition............................................................................................... 97
2.2.25.1 语法................................................................................................. 97
2.2.25.2 参数................................................................................................. 97
2.2.25.3 覆盖率模式..................................................................................... 98
2.2.25.4 基于名称的示例............................................................................. 99
2.2.26
assert_
unchange ............................................................................................ 100
2.2.26.1 语法............................................................................................... 100
2.2.26.2 参数............................................................................................... 100
2.2.26.3 覆盖率模式................................................................................... 101
2.2.26.4 例................................................................................................... 101
2.2.26.5 基于名称的示例........................................................................... 103
2.2.27
assert_
width................................................................................................... 103
2.2.27.1 语法............................................................................................... 103
2.2.27.2 参数............................................................................................... 103
2.2.27.3 覆盖率模式................................................................................... 104
2.2.27.4 例................................................................................................... 104
2.2.27.5 基于名称的示例........................................................................... 106
2.2.28
assert_
win_change ........................................................................................ 106
2.2.28.1 语法............................................................................................... 106
2.2.28.2 参数............................................................................................... 106
2.2.28.3 覆盖率模式................................................................................... 107
2.2.28.4 例................................................................................................... 107
2.2.28.5 基于名称的示例:....................................................................... 109
2.2.29
assert_
win_unchange .................................................................................... 109
2.2.29.1 语法............................................................................................... 109
2.2.29.2 参数............................................................................................... 109
2.2.29.3 覆盖率模式................................................................................... 110
2.2.30
assert_
window ............................................................................................... 110
2.2.30.1 语法............................................................................................... 111
2.2.30.2 参数............................................................................................... 111
2.2.30.3 覆盖率模型................................................................................... 111
2.2.30.4 例................................................................................................... 112
2.2.30.5 基于名称的示例........................................................................... 113
2.2.31
assert_
zero_one_hot ...................................................................................... 114
2.2.31.1 语法............................................................................................... 114
2.2.31.2 参数............................................................................................... 114
2.2.31.3 覆盖率模式................................................................................... 114
2.2.31.4 例................................................................................................... 115
2.2.31.5 基于名称的示例........................................................................... 116
3
SVA高级检查器......
............................................................................................................ 117
3.1
检查器描述
........................................................................................................... 117
3.2
共享语法...
............................................................................................................ 117
3.3
检查器列表
........................................................................................................... 117
3.3.1
assert_
arbiter ................................................................................................. 118
3.3.1.1
语法............................................................................................... 118
3.3.2
assert_bits ...................................................................................................... 119
3.3.2.1
语法............................................................................................... 119
3.3.3
assert_code_distance ..................................................................................... 119
3.3.3.1
语法............................................................................................... 119

3.3.4
assert_data_used ............................................................................................ 119
3.3.4.1
语法............................................................................................... 120
3.3.5
assert_driven ................................................................................................. 120
3.3.5.1
语法............................................................................................... 120
3.3.6
assert_dual_clk_fifo ...................................................................................... 120
3.3.6.1
语法............................................................................................... 120
3.3.7
assert_fifo ...................................................................................................... 121
3.3.7.1
语法............................................................................................... 121
3.3.8
assert_hold_value .......................................................................................... 121
3.3.8.1
语法............................................................................................... 121
3.3.9
assert_memory_async ................................................................................... 121
3.3.9.1
语法............................................................................................... 122
3.3.10
assert_memory_sync ..................................................................................... 122
3.3.10.1
语法............................................................................................... 122
3.3.11
assert_multiport_fifo ..................................................................................... 122
3.3.11.1
语法............................................................................................... 122
3.3.12
assert_mutex .................................................................................................. 123
3.3.12.1
语法............................................................................................... 123
3.3.13
assert_next_state ........................................................................................... 123
3.3.13.1
语法............................................................................................... 123
3.3.14
assert_no_contention ..................................................................................... 124
3.3.14.1
语法............................................................................................... 124
3.3.15
assert_packet_flow ........................................................................................ 124
3.3.15.1
语法............................................................................................... 124
3.3.16
assert_rate ...................................................................................................... 125
3.3.16.1
语法............................................................................................... 125
3.3.17
assert_reg_loaded .......................................................................................... 125
3.3.17.1
语法............................................................................................... 125
3.3.18
assert_req_ack_unique .................................................................................. 125
3.3.18.1
语法............................................................................................... 125
3.3.19
assert_req_requires ........................................................................................ 126
3.3.19.1
语法............................................................................................... 126
3.3.20
assert_stack ................................................................................................... 126
3.3.20.1
语法............................................................................................... 126
3.3.21
assert_valid_id............................................................................................... 127
3.3.21.1
语法............................................................................................... 127
3.3.22
assert_value ................................................................................................... 127
3.3.22.1
语法............................................................................................... 127
附录A ........................................................................................................................................... 128
A.1什么是断言................................................................................................................... 128
A.2为什么使用SystemVerilog断言(SVA) ...................................................................... 128
A.3 SystemVerilog的调度................................................................................................... 130
A.4 SVA术语....................................................................................................................... 131
A.4.1并发断言............................................................................................................ 131
A.4.2即时断言............................................................................................................ 132
A.5建立SVA块................................................................................................................ 133
A.6一个简单的序列................................................................................................... 134
A.7边沿定义的序列........................................................................................................... 135
A.8逻辑关系的序列........................................................................................................... 137
A.9序列表达式................................................................................................................... 138
A.10时序关系的序列......................................................................................................... 139
A.11 SVA中的时钟定义..................................................................................................... 140
A.12禁止属性..................................................................................................................... 142
A.13一个简单的执行块..................................................................................................... 144
A.14蕴含操作符................................................................................................................. 145
A.14.1交叠蕴含.......................................................................................................... 145
A.14.2非交叠蕴含...................................................................................................... 146
A.14.3后续算子带固定延迟的蕴含.......................................................................... 148
A.14.4使用序列作为先行算子的蕴含...................................................................... 149
A.15 SVA检验器的时序窗口............................................................................................. 150
A.15.1重叠的时序窗口.............................................................................................. 152
A.15.2无限的时序窗口.............................................................................................. 153
A.16 ―ended‖结构................................................................................................................. 155
A.17使用参数的SVA检验器........................................................................................... 158
A.18使用选择运算符的SVA检验器............................................................................... 159
A.19使用true表达式的SVA检验器............................................................................... 161
A.20 ―$past‖构造.................................................................................................................. 163
A.21重复运算符................................................................................................................. 165
A.21.1连续重复运算符[*] ......................................................................................... 167
A.21.2用于序列的连续重复运算符[*] ..................................................................... 168
A.21.3用于带延迟窗口的序列的连续重复运算符[*] ............................................. 169
A.21.4连续运算符[*]和可能性运算符..................................................................... 171
A.21.5跟随重复运算符[->] ........................................................................................ 172
A.21.6非连续重复运算符[=] ..................................................................................... 174
A.22 ―and‖构造.................................................................................................................... 175
A.23 ―intersect‖构造............................................................................................................. 177
A.24 ―or‖构造....................................................................................................................... 180
A.25 ―first_match‖构造........................................................................................................ 182
A.29 ―throughout‖构造......................................................................................................... 183
A.27 ―within‖构造................................................................................................................ 185
A.28内建的系统函数......................................................................................................... 187
A.29 ―disable iff‖构造.......................................................................................................... 188
A.30使用―intersect‖控制序列的长度................................................................................ 190
A.31在属性中使用形参..................................................................................................... 192
A.32嵌套的蕴含................................................................................................................. 194
A.33在蕴含中使用if/else .................................................................................................. 195
A.34 SVA中的多时钟定义................................................................................................. 197
A.35 ―matched‖构造............................................................................................................. 199
A.36 ―expect‖构造................................................................................................................ 201
A.37使用局部变量的SVA ................................................................................................ 202
A.38在序列匹配时调用子程序......................................................................................... 205
A.39将SVA与设计连接................................................................................................... 207
A.40 SVA与功能覆盖......................................................................................................... 209

修订记录

V1.0 ……………………………………………………………………….Initial

预览结束 · 共 212 页

下载完整版