SV中的时间片

       SV中的时间片

硬件电路是并行执行的,但是软件代码只能一行一行从上到下进行,上图是仿真器运行过程,SV为代码的执行定义了调度机制,最大限度的减少不确定性的产生。上图是仿真器在一个时间片上的执行,比如一个上升沿的时间节点,cpu所执行的内容。要区别一下仿真时间和运行时间。下面仔细讲述每一个过程分别执行了什么任务。

①active region set,这一块在verilog中就有定义是专为RTL代码执行所设立的区域:

preponed:这一区域记录上一个时间片所执行完成的稳定结果。断言所需要的数据就是来自于这里。

active:断言数据采样之后进入该区域,执行阻塞赋值语句,连续赋值语句,非阻塞赋值右边式子的计算,原语计算(verilog自带的原语以及用户定义原语UDP)以及调用系统函数(比如$display)。

inactive:只用用到#0的时候才进入该区域。

NBA:把active计算的右边值赋给左侧;

②验证平台新增的区域:observed

observed:使用在preponed屈戌所采集的值来判定段严重的属性是否成立,这一评估在一个时间片只发生一次。

③Reactive region set

reactive:对本区域的断言表达式进行操作,同时也会执行program中的连续赋值,阻塞赋值。非阻塞右边计算等。

re_inactive:同样执行program中的#0;

re_NBA:给非阻塞左边赋值;

SV中的#1 step是指提前一个最小时间片单位进行采样;

用例代码:展示了上述过程的执行过程:

https://mp.weixin.qq.com/s?__biz=MzIzMTg4NDM3Mw==&mid=2247483735&idx=1&sn=6a1d792196485e37699975f7fdd6541e&chksm=e89c126ddfeb9b7bdce1251671225310abb0a12124fa6d0251db7805e9f2358fe2dc96f12573&scene=21#wechat_redirect

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值