验证—仿真器原理笔记

仿真器原理

多数仿真器(vcs等)都使用的是事件驱动。esl是使用周期驱动方式(设定一个基准时钟为单位),前者速度只有后者的1/10。
time-slot的简化版模型如下:
在这里插入图片描述
在这里插入图片描述
其中:
module中的
inactive:主要是#0操作
NBA:主要是非阻塞的赋值
active:除上面的其它操作
observe:clocking的时钟延触发发生时刻,断言操作
program中的时间片基本上用于验证环境

interface中的clocking block块:
在这里插入图片描述
input skew指示的是数据采样时间,output skew为数据的驱动时间。

编码建议

为提高仿真效率,sv编码需要注意:

  • 尽量减少#delay,尤其是非阻塞触发逻辑
  • 减少冗余的clocking block
  • 减少冗余的变量翻转(通过加条件)
  • 减少内存的使用
    减少new()的次数
    尽量用class,而不是结构体
    如果class不使用了,需要释放内存(赋值null)
  • 尽量用2值变量,而不是4值
  • 尽量用数值效率高的数组(固定数组>队列>动态数组>联合结构体)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值