|
发表于 2019-5-18 11:19:36
来自手机
|
显示全部楼层
american007 发表于 2019-5-18 07:27
感谢,另外问下:是不是verilog只有$monitor $strobe之类的显示打印语句,而没有所谓的assert之类的断言语 ...
verilog提供的打印语句除了$monitor,$strobe,$display外,在verilog标准的另一部分pli中可以使用诸如vpi_printf等更多打印方式。(题外话,verilog标准还有一半是关于编程语言接口pli的,所以有人吹嘘精通verilog你完全可以问他懂不懂pli,不懂的话完全可以怼他,哈哈,开个玩笑)
assert本身不是verilog的关键字,其最初是来自于PSL语言,后来被加入SystemVerilog,当然你在.v文件中也是可以使用assert的,前提是你的编译选择要加上-sverilog或者-sv。
关于synopsys的断言库,分为两个版本:
1. .v版本,或者叫module版本;
2. .sv版本。
两根版本实现方式都是用最基本的sva语法,如sequence, property, match, ##, |->,甚至assume等基本语法元素实现了assert_next等诸多检查器。你可以理解为用sva写的断言aip,可以查看源码,但比较难以理解。
不知道我又没有解释清楚? |
|