INTRO
GRAMMAR
library_text ::= { library_description }
library_description ::= library_declaration | include_statement | config_declaration
library_declaration ::= "library" library_identifier file_path_spec [ { , file_path_spec } ]
[ "-incdir" file_path_spec { , file_path_spec } ] ;
include_statement ::= "include" file_path_spec ;
source_text ::= { description }
description ::= module_declaration | udp_declaration | config_declaration
module_declaration ::= { attribute_instance } module_keyword module_identifier
[ module_parameter_port_list ] list_of_ports ; { module_item } "endmodule"
| { attribute_instance } module_keyword module_identifier
[ module_parameter_port_list ] [ list_of_port_declarations ] ;
{ non_port_module_item } "endmodule"
module_keyword ::= module | macromodule
module_parameter_port_list ::= #( parameter_declaration { , parameter_declaration } )
list_of_ports ::= ( port { , port } )
list_of_port_declarations ::=( port_declaration { , port_declaration } ) | ()
port ::= [ port_expression ] | . port_identifier ( [ port_expression ] )
port_expression ::= port_reference | { port_reference { , port_reference } }
port_reference ::= port_identifier [ [ constant_range_expression ] ]
port_declaration ::= { attribute_instance } inout_declaration |
{ attribute_instance } input_declaration |
{ attribute_instance } output_declaration