ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

verilog中层次化的事件队列

2021-10-17 12:01:25  阅读:248  来源: 互联网

标签:层次化 verilog 队列 阻塞 Verilog 事件队列 赋值


所谓层次化的事件队列指的是用于调度仿真事件的不同的Verilog事件队列,在IEEE verilog标准中,层次化事件队列被看做一个概念模型。设计仿真工具的厂商如何来实现事件队列,关系到仿真器的效率,是技术秘诀。
在IEEE 1364-1995 Verilog标准的5.3节中定义了层次化事件队列在逻辑上分为用于当前仿真时间的4个不同的队列,和用于下一段仿真时间的若干个附件队列;
(1)动态事件队列
阻塞赋值
计算非阻塞赋值右边的表达式
连续赋值
执行$display命令
计算原语的输入和输出的变化

(2)停止运行的事件队列
#0 延时阻塞赋值

(3)非阻塞事件队列
更新非阻塞赋值语句左边的值

(4)监控事件队列
执行$monitor命令
执行$strobe命令

(5)其他指定的PLI命令队列
其他PLI命令
这五个就是Verilog的层次化事件队列

在IEEE标准范围内被加入到这些队列中的事件只能从动态事件队列中消除,而排列在其他队列中的事件要等到被激活后,即被排入动态事件队列中后,才能真正开始等待执行。

非阻塞赋值LHS变量的更新是安排在非阻塞事件队列中,而RHS表达式的计算是在某个仿真时刻随机开始的,与上述其他动态事件是一样的。

#0延时赋值是设计人员企图在不同的程序块中给同一个变量赋值。通过稍加延时赋值来消除Verilog可能产生的竞争冒险。这样做会使定时事件的分析变得更加复杂,完全可以用其他方法来代替,不推荐使用。

标签:层次化,verilog,队列,阻塞,Verilog,事件队列,赋值
来源: https://blog.csdn.net/Michael177/article/details/120809087

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有