《System Verilog验证测试平台编写指南》读书笔记:第四章 连接设计和测试平台

上一篇 / 下一篇  2017-08-18 19:27:25 / 个人分类:专业学习

4.1  将测试平台和设计分开

4.2  接口

接口信号必须使用非阻塞赋值来驱动。总结:将测试平台与设计分开,通过接口将两者连在一起。

连接接口和端口:当不能对设计的代码进行修改时,只需要在顶层中实例化设计时将设计的端口与接口相连接。

在接口中使用modport结构能够将信号分组并指定方向。

并非接口中的每个信号都必须连接。在接口中不能例化模块但是可以例化其他接口。

4.3  激励时序

使用时钟块控制同步信号的时序(在interface中定义clocking)。可以将测试平台中的信号,都放在clocking 中,并指定方向(以测试平台为参考的方向)。

#0#1的使用需要避免。

注意测试平台-设计间的竞争状态。

程序块不能有任何的层次级别,例如模块的实例、接口或者其他程序。应当总是将程序块声明为automatic类型,这样它的行为会更加接近基于堆栈的语言中的函数。

4.4  接口的驱动和采样

异步信号通过接口时没有任何延时,而时钟块中的信号将得到同步。当从时钟块中读取信号时,是在时钟沿之前得到采样值。

在时钟块中使用modport时,任何同步接口信号都必须加上接口名和时钟块名的前缀。

在时钟块中使用同步驱动,即“<=”操作符来驱动信号。“<=”与“=”的区别。

接口中的双向信号

在程序中不允许使用always块,可以用“initial forever”来实现相同的功能。

把时钟发生器放在程序块中à引起信号间的竞争,放在模块中可避免竞争状态。

4.5将这些模块都连接起来

4.6顶层作用域

任何modulemacromoduleinterfaceprogrampackage或者primitive边界之外的作用域被称为编译单元作用域($unit)。顶层作用域外可定义变量、参数、数据类型甚至方法。

4.7程序----模块交互

4.8SV断言

立即断言eg

            a1assert bus.cb.grant==2’b01); //断言失败会报错

立即断言有可选的thenelse分句。

并发断言

4.9  四端口的ATM路由器

4.10  ref端口的方向

一个变量连接到多个ref端口,可能会产生竞争。

4.11  仿真的结束

模块或程序块可以定义一个或多个final块来执行仿真器推出前的代码。在final块中不能调度事件,或含有任何时延信息。

4.12  LC3取址模块的定向测试


TAG:

 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

日历

« 2017-09-19  
     12
3456789
10111213141516
17181920212223
24252627282930

数据统计

  • 访问量: 937
  • 日志数: 8
  • 建立时间: 2017-07-04
  • 更新时间: 2017-08-18

RSS订阅

Open Toolbar