System Verilog Assertion for debug
System Verilog Assertion是非常好的验证方法,通过SVA可以显式描述需要验证的电路逻辑,并且仿真工具可以在仿真的过程中自动输出波形出错信息,从而替代传统的看波形调试方法,提高前端设计验证效率。
RTL代码结构
`ifdef SVA module m_sva(input wire signal);property p1;expression;endpropertya: assert property(p1); endmdule bind m m_sva m_sva_inst(signal); `endif
主要断言语法
a: assert property(@(posedge clk) red_main && $past( red_main ) |-> $past( yellow_main, 2 ))
@(posedge clk): 在时钟上升沿时验证断言,验证上升沿的前一个周期信号值
$past(signal, n): signal信号往前数n个周期
signal_a |-> signal_b: signal_a与signal_b信号的关系,signal_a可以是组合逻辑,结果为真时判断与signal_b的关系
property e2;@ ( posedge clk) (!reset && $countones({ce0_N,ce1_N,ce2_N,ce3_N})==3) |-> ##1 $countones({ce0_N,ce1_N,ce2_N,ce3_N})==4; endproperty
$countones(signal): 数signal信号值为1的比特位数
property e1;@(posedge clk) ( ($rose( ce0_N )) || ($rose( ce1_N )) || ($rose( ce2_N )) || ($rose( ce3_N )) ) |-> (b_ce_idle) [*1:$] ##1 adxStrb; endproperty
$rose(signal): 断言信号处在上升沿
$fell(): 断言信号处在下降沿
$stable(): 断言信号不变化
##[m, n]: 在[m, n]的时间窗内信号变化,如果`n=$`,代表没有上界
仿真命令
vcs命令中,加入-sverilog使得可以编译SystemVerilog语法,加入+define+SVA定义宏变量,$VCS_HOME/packages/sva目录下为assert_*模块。
rm -rf simv* csrc *.vpd *.log vcs -sverilog \ +define+ASSERT_ON+SVA \ -y $VCS_HOME/packages/sva +libext+.v \ +incdir+$VCS_HOME/packages/sva \ traffic.v ./simv -l run.log
转载于:https://www.cnblogs.com/QifanHu/p/5199012.html
System Verilog Assertion for debug相关推荐
- 【数字设计验证】System Verilog(sv)稍微进阶的笔记(一)
文章目录 1. EDA工具对代码的处理与输出 1.1 Compile 1.2 Simulation 1.3 Synthesis 2. System Verilog Coding Guide 2.1 状 ...
- sv_labs学习笔记——sv_lab4(System Verilog)
sv_labs学习笔记--sv_lab4(System Verilog) lab4 OOP encapsulation 实验概述 任务代码解析 Packat实现与理解 语法点解析 randomize( ...
- 我的 System Verilog 学习记录(1)
引言 技多不压身,准备开始学一些 System Verilog 的东西,充实一下自己,这个专栏的博客就记录学习.找资源的一个过程,希望可以给后来者一些借鉴吧,IC找工作的都加把油! 本文是准备先简单介 ...
- system verilog 三段式状态机和interface
1.结构体和C语言类似,system verilog定义的package,也是一个sv文件,需要被工程当作文件一样添加.如果是inclue的文件,要在工程中设置搜索路径,否则在引用时要用相对工程启动文 ...
- crc生成多项式怎么算_利用system Verilog生成任意CRC多项式
IC君的第43篇原创文章 之前有一篇文章讲了CRC串行和并行电路的实现:CRC算法的硬件电路实现:串行电路和并行电路. 有做过类似设计的同学问:有没有办法轻松愉快地生成任意CRC多项式的电路?我们在设 ...
- System Verilog学习小结
System Verilog课程小结 第一周 问题1:设计人员和验证人员他们的协作关系体现在哪些地方? 1.设计人员和验证人员都需要围绕功能描述文档开展工作 2.设计只有经过充分量化验证,才有信心去流 ...
- (149)System Verilog接口(interface)连线待测模块
(149)System Verilog接口(interface)连线待测模块 1.1 目录 1)目录 2)FPGA简介 3)System Verilog简介 4)System Verilog接口(in ...
- (150)System Verilog仿真结束机制
(150)System Verilog仿真结束机制 1.1 目录 1)目录 2)FPGA简介 3)System Verilog简介 4)System Verilog仿真结束机制 5)结语 1.2 FP ...
- (140)System Verilog替代交叉覆盖率
(140)System Verilog替代交叉覆盖率 1.1 目录 1)目录 2)FPGA简介 3)System Verilog简介 4)System Verilog替代交叉覆盖率 5)结语 1.2 ...
最新文章
- ubuntu 下非交互式执行远程shell命令
- spring cloud-zuul的Filter详解
- 读书笔记之《Windows内核原理与实现》
- 修改数据,如何将原数据带到输入框
- python字符串中某个字符修改_Python中修改字符串的四种方法
- 光纤传感器实验模块_飞秒激光制备异质光纤光栅的温度应变双参数传感器
- 小小涉及OpenFeign原理:Could not extract response: no suitable HttpMessageConverter found for response type
- spring data jpa 分页查询
- 最新SparkSQL 学习路径. pdf(廖雪峰团队研发)
- stage3图书管理系统服务器部署
- 基于NanoPi3(三星S5P6818)的kernel移植(二)
- 如何恢复RAW格式移动硬盘的数据
- 【总结】信息安全工程师第二版-第1章 网络信息安全概述-03
- cad重新加载php命令,cad撤回命令是什么
- ISCC 2022 wp
- 基于模糊控制的十字路口交通红绿灯控制matlab仿真
- ROS2 基础概念 节点
- html中 a链接的默认样式,超链接的默认样式
- 使用GDI+实现动态设置分级断点值
- 华云数据出席“云网芯安密屏”讨论会:加快数字化转型 推动湖北信创产业快速发展
热门文章
- 分享一个文件上传工具类
- [笔记][原创]Verilog HDL语法分析笔记
- C++ 中 new 操作符内幕:new operator、operator new、placement new
- Spring Boot -Shiro配置多Realm 1
- Linux tee的花式用法和pee
- 直击3.15 安防行业如何维护消费者权益
- postgresql9.5 run 文件linux安装后配置成开机服务
- struts2.1.6教程二、struts.xml配置及例程
- js两个小技巧【看到了就记录一下】
- Repeater的嵌套