#systemverilog# 之 event region 和 timeslot 仿真调度(八)assign 赋值必在Active域调度?

一 前言碎语

今天,我们复习一下,数字仿真工具VCS是如何处理我们扔给它们的代码的,有些网站或者资料也介绍过仿真调度执行的内部细节,大致如下图所示:

在这里插入图片描述

第一步:将所有initial和always块和连续赋值语句读进去,将这些语句按照固定的顺应放到一个队列中。
第二步:首先执行没有延迟的语句,比如变量的初始化语句。
第三步:当这些没有延迟的语句和initial语句全部执行完,VCS工具就会将时间记为0,就是current time。
第四步:进入active region区,在这个区间首先执行User Defined Primitive(用户自定义语言),比如说与门、或门、非门;$dispaly语句;没有延迟的assign语句;阻塞赋值的全部;非阻塞赋值只将右边的表达式的值计算出来,没有完成对左边的赋值。
第五步:进入inactive region区,相当于没有#0的语句,该区域的语句执行相对晚点,这个区域主要执行#0延迟语句的。
第六步:进入 Nonblocking assign region区,该区域完成对非阻塞赋值左边的赋值。
第七步:进入monitor区,该区域主要执行monitor函数,比如说监测a的值,当a的值变化,monitor才会监测到。用monit

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

那么菜

你的鼓励和批评是我最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值