|
Verilog2001 GrammarTop level symbols:
1 Source text 1.1 Library source text library_text ::=
file_path_spec ::=
1.2 Configuration source text design_statement ::=
default_clause ::=
inst_clause ::=
inst_name ::= liblist_clause ::= cell_clause ::= use_clause ::= 1.3 Module and primitive source text source_text ::= description ::=
module_keyword ::=
1.4 Module parameters and ports list_of_ports ::=
port ::=
port_expression ::=
port_reference ::=
port_declaration ::=
1.5 Module items module_item ::=
2 Declarations 2.1 Declaration types 2.1.1 Module parameter declarations
2.1.2 Port declarations
2.1.3 Type declarations time_declaration ::= real_declaration ::= reg_declaration ::= net_declaration ::=
2.2 Declaration data types 2.2.1 Net and variable types net_type ::=
real_type ::=
variable_type ::=
2.2.2 Strengths drive_strength ::=
strength0 ::=
strength1 ::=
charge_strength ::=
2.2.3 Delays delay3 ::=
delay2 ::=
delay_value ::=
2.3 Declaration lists
2.4 Declaration assignments param_assignment ::=
limit_value ::= 2.5 Declaration ranges dimension ::= range ::= 2.6 Function declarations
range_or_type ::=
2.7 Task declarations task_declaration ::=
task_port_list ::= task_port_item ::=
task_port_type ::=
2.8 Block item declarations
3 Primitive instances 3.1 Primitive instantiation and instances
3.2 Primitive strengths
pullup_strength ::=
3.3 Primitive terminals enable_terminal ::=
input_terminal ::=
inout_terminal ::=
output_terminal ::=
3.4 Primitive gate and switch types cmos_switchtype ::=
enable_gatetype ::=
mos_switchtype ::=
n_input_gatetype ::=
pass_switchtype ::=
4 Module and generated instantiation 4.1 Module instantiation
module_instance ::= name_of_instance ::=
4.2 Generated instantiation
generate_item ::=
genvar_case_item ::=
generate_block ::= 5 UDP declaration and instantiation 5.1 UDP declaration udp_declaration ::=
5.2 UDP ports udp_port_list ::=
5.3 UDP body udp_body ::=
sequential_body ::= init_val ::=
sequential_entry ::= seq_input_list ::=
level_input_list ::= edge_input_list ::= edge_indicator ::=
current_state ::=
next_state ::=
output_symbol ::=
level_symbol ::=
edge_symbol ::=
5.4 UDP instantiation udp_instance ::= 6 Behavioral statements 6.1 Continuous assignment statements net_assignment ::= 6.2 Procedural blocks and assignments
always_construct ::=
6.3 Parallel and sequential blocks par_block ::= seq_block ::= 6.4 Statements statement ::=
6.5 Timing control statements
delay_control ::=
event_control ::=
event_trigger ::= event_expression ::=
wait_statement ::= 6.6 Conditional statements
6.7 Case statements case_statement ::=
case_item ::=
6.8 Looping statements
loop_statement ::=
6.9 Task enable statements task_enable ::= 7 Specify section 7.1 Specify block declaration specify_block ::= specify_item ::=
7.2 Specify path declarations path_declaration ::=
7.3 Specify block terminals
input_identifier ::=
7.4 Specify path delays path_delay_value ::=
edge_identifier ::=
7.5 System timing checks 7.5.1 System timing check commands
7.5.2 System timing check command arguments data_event ::= delayed_data ::=
end_edge_offset ::= event_based_flag ::= notify_reg ::= reference_event ::= threshold ::=
7.5.3 System timing check event definitions
zero_or_one ::=
z_or_x ::=
scalar_constant ::=
8 Expressions 8.1 Concatenations concatenation ::=
8.2 Function calls function_call ::= 8.3 Expressions base_expression ::=
expression1 ::=
expression2 ::=
expression3 ::=
expression ::=
range_expression ::=
8.4 Primaries constant_primary ::=
primary ::=
8.5 Expression left-side values net_lvalue ::=
variable_lvalue ::=
8.6 Operators unary_operator ::=
binary_operator ::=
8.7 Numbers number ::=
exp ::=
decimal_number ::=
binary_number ::= octal_number ::= hex_number ::= sign ::=
size ::=
decimal_digit ::=
binary_digit ::=
octal_digit ::=
hex_digit ::=
x_digit ::=
z_digit ::=
8.8 Strings string ::=
9 General 9.1 Attributes attr_spec ::=
attr_name ::=
9.2 Comments comment ::=
one_line_comment ::=
block_comment ::=
comment_text ::=
9.3 Identifiers
block_identifier ::=
cell_identifier ::=
event_identifier ::=
identifier ::=
net_identifier ::=
port_identifier ::=
real_identifier ::=
task_identifier ::=
udp_identifier ::=
9.4 Identifier branches 9.5 White space white_space ::=
Notes: a) Embedded spaces are illegal. b) The period in escaped_hierarchical_identifier and escaped_hierarchical_branch shall be preceded by white_space, but shall not be followed by white_space. c) The period (.) in simple_hierarchical_identifier and simple_hierarchical_branch shall not be preceded or followed by white_space. d) A simple_identifier shall start with an alpha or underscore (_) character, shall have at least one character, and shall not have any spaces. e) The $ character in a system_function_identifier or system_task_identifier shall not be followed by white_space. A system_function_identifier or system_task_identifier shall not be escaped. f) Hierarchy disallowed! |
|