#systemverilog# 之 event region 和 timeslot 仿真调度(六)疑惑寄存器采样吗

本文探讨SystemVerilog中的event region和timeslot在仿真调度中的应用,通过同步、阻塞和非阻塞分频时钟采样案例,解释寄存器采样的原理。分析VCS仿真工具在glitch模式下揭示的采样规则,并讨论了race条件和-deraceclockdata选项的作用。
摘要由CSDN通过智能技术生成

一 象征性啰嗦

想必大家在刚开始尝试写Verilig HDL代码的时候,都是参考一些列参考代码,有些来自于参考书,有些来自于网上大牛的笔记,甚至有写来自于某宝FPGA开发板的授权代码。我还记得自己当时第一次写代码,参考的是一款Altera 芯片,结合Quartus 开发软件, 在上面练习代码,然后综合等等。

其实,当初也是一味照本宣科的临摹,而对于为什么那么些,代码又是内部有什么含义,并没有深入理解。这里面的东西太多,想到哪里,就记到哪里吧。大家见谅!

对于寄存器,大家用的是最多的。从最初的存储数据,到后期的异步时钟域处理打拍设计。而对于寄存器的采样问题,也仅仅是流于表面。何时采样?采样数据是哪里?都没有搞清楚。今天,我们一起来学习一下,到底怎么回事。

二 代码逐行分析

2.1 同步时钟采样

 

如上代码,第28~31行,cnt 计数寄存器在每个时钟上升沿到来时,进行加一并赋值。

第33~36行代码,在同一时钟边沿时刻,对cnt 计数寄存器进行采样,并将采样结果保存在cnt_delay 寄存器中。

针对这种情形,书籍只是告诉我们:这样设计代码,能够完成计数器的打拍。当时就有疑问:两段代码不是采用同一个时钟clk 吗,clk 边沿到来时,cnt 在变化,为什么采样的是cnt 旧数据呢

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
SystemVerilogVerilog都是硬件描述语言,用于描述数字电路的行为和结构。它们在仿真调度机制方面有一些相似之处。 在Verilog中,所有的描述语句(连续赋值语句、行为语句块、模块实例化等)都是并行发生的。然而,由于仿真器是串行执行的,Verilog中的并行行为实际上是通过串行执行来模拟的。这意味着在仿真过程中,仿真器会按照一定的顺序逐条执行语句,分时执行。在所有并行进程执行完之前,仿真时间不会向前推进。\[3\] SystemVerilog也具有类似的并行行为和仿真调度机制。它引入了调度器(scheduler)的概念,用于控制并发执行的顺序。调度器根据一定的规则和优先级来决定哪些并发块应该被执行。这样可以模拟出更复杂的并行行为。\[1\]\[2\] 总结来说,SystemVerilogVerilog都使用了仿真调度机制来模拟并行行为。Verilog中的并行行为是通过串行执行来模拟的,而SystemVerilog引入了调度器来控制并发执行的顺序。 #### 引用[.reference_title] - *1* [SV的仿真调度机制](https://blog.csdn.net/weixin_39060517/article/details/115909613)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [SV的仿真调度机制以及阻塞非阻塞赋值的区别(用例子说明)](https://blog.csdn.net/dinghj3/article/details/122513314)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

那么菜

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

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

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

打赏作者

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

抵扣说明:

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

余额充值