返回介绍

17.13 并发断言

发布于 2020-09-09 22:55:54 字数 1801 浏览 963 评论 0 收藏 0

A property on its own is never evaluated for checking an expression. It must be used within a verification statement for this to occur. A verification statement states the verification function to be performed on the property. The statement can be one of the following:

  • assert to specify the property as a checker to ensure that the property holds for the design
  • assume to specify the property as an assumption for the environment
  • cover to monitor the property evaluation for coverage
A concurrent assertion statement can be specified in:
  • an always block or initial block as a statement, wherever these blocks can appear
  • a module
  • an interface
  • a program

procedural_assertion_statement ::=         // from Annex A.6.10
    concurrent_assertion_statement
  | immediate_assert_statement

concurrent_assertion_item ::=             // from Annex A.2.10
    [block_identifier :] concurrent_assertion_statement

concurrent_assertion_statement ::=
    assert_property_statement
  | assume_property_statement
  | cover_property_statement

assert_property_statement::=
    assert property (property_spec) action_block

assume_property_statement::=
    assume property (property_spec);

cover_property_statement::=
    cover property (property_spec) statement_or_null

Syntax 17-16—Concurrent assert construct syntax (excerpt from Annex A)

The assert, assume or cover statements can be referenced by their optional name. A hierarchical name can be used consistent with the SystemVerilog naming conventions. When a name is not provided, a tool shall assign a name to the statement for the purpose of reporting. Assertion control system tasks are described in Section 23.9.

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

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

发布评论

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