返回介绍

8.7 final块

发布于 2020-09-09 22:55:47 字数 673 浏览 1094 评论 0 收藏 0

final块类似于intial块,它们都定义了一个过程化的语句块,不同的是,final块仅仅在仿真时间的尾部无延时地执行。典型情况下,final块用来显示有关仿真的统计信息。

final_construct ::= final function_statement // 引用自附录A.6.2

语法8-7 — final块语法(摘录自附录A)

在final块中可以使用的语句就是那些允许在一个函数声明中使用的语句。这就可以保证它们在一个仿真周期内执行。与intial块不同,final块不会作为一个单独的进程执行;相反,它的执行时间为0,与函数调用相同。

当一个显式或隐式的$finish调用引起仿真结束的时候会执行final块。

final
    begin
        $display("Number of cycles executed %d",$time/period);
        $display("Final PC = %h",PC);
    end

从一个final块中执行$finish、tf_dofinish()、或vpi_control(vpiFinish,...)会引起仿真立即中止。final块只能在一次仿真中触发一次。

final块应该在任何指示仿真结束的PLI回调之前执行。

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

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

发布评论

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