返回介绍

14.2 事件仿真

发布于 2020-09-09 22:55:52 字数 909 浏览 1101 评论 0 收藏 0

SystemVerilog语言根据一个分布式事件执行模型定义。本章详细描述了分布式事件仿真以便提供一个语境来描述SystemVerilog结构的含义和有效解释。这些最终的定义为仿真提供了标准的SystemVerilog参考算法,所有遵从这个标准的仿真器都应该实现这些算法。注意,这些定义具有许多选择,并且不同的仿真器之间的某些执行细节也有些差别。另外,除了本章描述的算法外,SystemVerilog仿真器可以自由地使用不同的算法,只要用户可见的效果与这些参考算法保持一致。

一个SystemVerilog描述包含了连接的执行线程或进程。进程是可以计算的对象,它们可以具有状态,并且可以响应输入上的变化以产生输出。进程是并发调度的元素,例如initial块。进程的例子包括但不限于原语、initial、always、always_comb、always_latch以及always_ff过程块、连续赋值、异步任务、以及过程赋值语句。

在被仿真的系统描述中,一个线网或变量的每一个变化都被认为是一个更新事件。

进程敏感于更新事件。当一个更新事件被执行的时候,敏感于这个事件的所有进程都会以任意顺序计算。一个进程的计算也是一个事件,这个事件被称为计算事件。

计算事件还包含PLI回调,这些PLI回调是执行模型中的一些点,其中用户定义的外部例程能够从仿真核中被调用。

除了事件之外,仿真器的另外一个关键方面是时间。术语仿真时间被用来指代由仿真器维护的时间值,它用来建模正在仿真的系统描述所花费的时间。在本章中,术语时间可以与仿真时间互换使用。

为了支持清晰并且可预测的交互作用,单个时隙被划分成多个区域,在这些区域中规定了特定执行类型排序的事件被调度。这就使得当被测设计处于一个稳定状态的时候特性和检查器能够采样数据。特性表达式可以被安全地计算,并且测试平台能够与特性和检查器以零延时相互作用,而这些都是以一个可预测的方式进行。这种机制还允许设计、时钟传输具有非零的延时,和/或激励和响应被自由地混合并与周期精确的描述相一致。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文