返回介绍

A.2.10 Assertion declarations

发布于 2020-09-09 22:56:11 字数 4023 浏览 843 评论 0 收藏 0

concurrent_assertion_item ::= [ 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

expect_property_statement ::=

expect ( property_spec ) action_block

property_instance ::=

ps_property_identifier [ ( [ actual_arg_list ] ) ]

concurrent_assertion_item_declaration ::=

property_declaration

| sequence_declaration

property_declaration ::=

property property_identifier [ ( [ list_of_formals ] ) ] ;

{ assertion_variable_declaration }

property_spec ;

endproperty [ : property_identifier ]

property_spec ::=

[clocking_event ] [ disable iff ( expression_or_dist ) ] property_expr

property_expr ::=

sequence_expr

| ( property_expr )

| not property_expr

| property_expr or property_expr

| property_expr and property_expr

| sequence_expr |-> property_expr

| sequence_expr |=> property_expr

| if ( expression_or_dist ) property_expr [ else property_expr ]

| property_instance

| clocking_event property_expr

sequence_declaration ::=

sequence sequence_identifier [ ( [ list_of_formals ] ) ] ;

{ assertion_variable_declaration }

sequence_expr ;

endsequence [ : sequence_identifier ]

sequence_expr ::=

cycle_delay_range sequence_expr { cycle_delay_range sequence_expr }

| sequence_expr cycle_delay_range sequence_expr { cycle_delay_range sequence_expr }

| expression_or_dist [ boolean_abbrev ]

| ( expression_or_dist {, sequence_match_item } ) [ boolean_abbrev ]

| sequence_instance [ sequence_abbrev ]

| ( sequence_expr {, sequence_match_item } ) [ sequence_abbrev ]

| sequence_expr and sequence_expr

| sequence_expr intersect sequence_expr

| sequence_expr or sequence_expr

| first_match ( sequence_expr {, sequence_match_item} )

| expression_or_dist throughout sequence_expr

| sequence_expr within sequence_expr

| clocking_event sequence_expr

cycle_delay_range ::=

## integral_number

| ## identifier

| ## ( constant_expression )

| ## [ cycle_delay_const_range_expression ]

sequence_method_call ::=

sequence_instance . method_identifier

sequence_match_item ::=

operator_assignment

| inc_or_dec_expression

| subroutine_call

sequence_instance ::=

ps_sequence_identifier [ ( [ actual_arg_list ] ) ]

formal_list_item ::=

formal_identifier [ = actual_arg_expr ]

list_of_formals ::= formal_list_item { , formal_list_item }

actual_arg_list ::=

actual_arg_expr { , actual_arg_expr }

| . formal_identifier ( actual_arg_expr ) { , . formal_identifier ( actual_arg_expr ) }

actual_arg_expr ::=

event_expression

| $

boolean_abbrev ::=

consecutive_repetition

| non_consecutive_repetition

| goto_repetition

sequence_abbrev ::= consecutive_repetition

consecutive_repetition ::= [* const_or_range_expression ]

non_consecutive_repetition ::= [= const_or_range_expression ]

goto_repetition ::= [-> const_or_range_expression ]

const_or_range_expression ::=

constant_expression

| cycle_delay_const_range_expression

cycle_delay_const_range_expression ::=

constant_expression : constant_expression

| constant_expression : $

expression_or_dist ::= expression [ dist { dist_list } ]

assertion_variable_declaration ::=

data_type list_of_variable_identifiers ;

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

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

发布评论

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