|
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!
|
|