VCS仿真基础 | 您所在的位置:网站首页 › verilog 并行 › VCS仿真基础 |
VCS的使用
Verilog仿真事件队列仿真规范VCS是如何处理事件队列的:仿真队列的例子
VCS处理verilog/systemverilog的流程VCS的编译和仿真
Verilog仿真事件队列
仿真规范
verilog中的语句(如initial、always)是并行执行的。在verilog中,对于不同的事件在同一时刻调用时没有规定先执行哪一个,只要在同一层的事件,任意的执行顺序都是可以的 VCS是如何处理事件队列的:注:RHS:非阻塞赋值符号右侧的语句 m o n i t o r 在 m o n i t o r 域 , 而 monitor在monitor域,而 monitor在monitor域,而display在active域 UDP:user define primitive PLI:Programming Language Interface 仿真队列的例子如上图所示,当定义了CASE1时,会并行执行前两个always语句。当检测到clk信号变化时,第一个always语句会将a赋值成1。但与此同时,第二个always语句中的zin会被赋值成a的值。由于这两个操作处于同一时刻,所以就无法确认是a赋值成了1还是zin先被赋值成了a,因为两个语句不同的执行顺序将会造成不同的结果。 使用不同的仿真工具对其进行仿真将会得到不同的结果。例如上图中,使用VCS和用Questa进行仿真,得到的结果就是不同的。 如何避免这种情况的发生: 1、对于时序逻辑,应采用非阻塞赋值( |
CopyRight 2018-2019 实验室设备网 版权所有 |