stariain的个人空间 https://blog.eetop.cn/1260220 [收藏] [复制] [分享] [RSS]

空间首页 动态 记录 日志 相册 主题 分享 留言板 个人资料

日志

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

已有 2496 次阅读| 2017-8-18 19:27 |个人分类:专业学习|系统分类:硬件设计

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取址模块的定向测试


点赞

评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 注册

  • 关注TA
  • 加好友
  • 联系TA
  • 0

    周排名
  • 0

    月排名
  • 0

    总排名
  • 0

    关注
  • 1

    粉丝
  • 0

    好友
  • 0

    获赞
  • 2

    评论
  • 1063

    访问数
关闭

站长推荐 上一条 /1 下一条

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-5-10 20:08 , Processed in 0.017562 second(s), 8 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
返回顶部