Verilog Parser

User defined primitive types. More...

Data Structures

struct  ast_udp_body
 Describes a single UDP body sequentially or combinatorially. More...
 
struct  ast_udp_combinatorial_entry
 Describes a single combinatorial entry in the UDP ast tree. More...
 
struct  ast_udp_declaration
 Describes the declaration of a user defined primitive (UDP) More...
 
struct  ast_udp_initial_statement
 Describes the initial statement of a sequential udp body. More...
 
struct  ast_udp_instance
 Describes a single instance of a UDP. More...
 
struct  ast_udp_instantiation
 Describes an a list of instances of a particular kind of UDP. More...
 
struct  ast_udp_port
 Describes a single port for a user defined primitive. More...
 
struct  ast_udp_sequential_entry
 describes a sequential entry in a udp body. More...
 

Enumerations

enum  ast_level_symbol {
  LEVEL_0, LEVEL_1, LEVEL_B, LEVEL_X,
  LEVEL_Q
}
 Describes a single logic level symbol. More...
 
enum  ast_udp_body_type { UDP_BODY_SEQUENTIAL, UDP_BODY_COMBINATORIAL }
 Is the body of the UDP specified combinatorially or sequentially.
 
enum  ast_udp_init_val { UDP_INIT_1, UDP_INIT_0, UDP_INIT_X }
 Describes the initial value of a UDP output.
 
enum  ast_udp_next_state {
  UDP_NEXT_STATE_X, UDP_NEXT_STATE_0, UDP_NEXT_STATE_1, UDP_NEXT_STATE_DC,
  UDP_NEXT_STATE_QM
}
 Describes the possible output values for a UDP element. More...
 
enum  ast_udp_seqential_entry_prefix { PREFIX_EDGES, PREFIX_LEVELS }
 Whether a sequential body entry starts with level or edge symbols.
 

Functions

ast_udp_bodyast_new_udp_combinatoral_body (ast_list *combinatorial_entries)
 Creates and returns a new combinatorial UDP body representation.
 
ast_udp_combinatorial_entryast_new_udp_combinatoral_entry (ast_list *input_levels, ast_udp_next_state output_symbol)
 Creates a new combinatorial entry for a UDP node.
 
ast_udp_declarationast_new_udp_declaration (ast_node_attributes *attributes, ast_identifier identifier, ast_list *ports, ast_udp_body *body)
 Creates a new UDP declaration node. More...
 
ast_udp_initial_statementast_new_udp_initial_statement (ast_identifier output_port, ast_number *initial_value)
 Creates a new initial statement node.
 
ast_udp_portast_new_udp_input_port (ast_list *identifiers, ast_node_attributes *attributes)
 Creates a new UDP input port AST node. More...
 
ast_udp_instanceast_new_udp_instance (ast_identifier identifier, ast_range *range, ast_lvalue *output, ast_list *inputs)
 Creates a new instance of a UDP. More...
 
ast_udp_instantiationast_new_udp_instantiation (ast_list *instances, ast_identifier identifier, ast_drive_strength *drive_strength, ast_delay2 *delay)
 Creates a new list of UDP instances with shared properties. More...
 
ast_udp_portast_new_udp_port (ast_port_direction direction, ast_identifier identifier, ast_node_attributes *attributes, ast_boolean reg, ast_expression *default_value)
 Creates a new UDP port AST node. More...
 
ast_udp_bodyast_new_udp_sequential_body (ast_udp_initial_statement *initial_statement, ast_list *sequential_entries)
 Creates and returns a new sequential UDP body representation.
 
ast_udp_sequential_entryast_new_udp_sequential_entry (ast_udp_seqential_entry_prefix prefix_type, ast_list *levels_or_edges, ast_level_symbol current_state, ast_udp_next_state output)
 Creates a new sequntial body entry for a UDP node.
 

Detailed Description

User defined primitive types.

Needs to describe the outer declaration, port lists, body statements and instantiations

Enumeration Type Documentation

Describes a single logic level symbol.

Enumerator
LEVEL_Q 

Refers to '?'.

Describes the possible output values for a UDP element.

Enumerator
UDP_NEXT_STATE_DC 

Don't care.

UDP_NEXT_STATE_QM 

Question mark.

Function Documentation

ast_udp_declaration* ast_new_udp_declaration ( ast_node_attributes *  attributes,
ast_identifier  identifier,
ast_list ports,
ast_udp_body body 
)

Creates a new UDP declaration node.

Note
the first element of the ports list should be the output terminal.
Returns
A pointer to the new node.
A pointer to the new node.
ast_udp_port* ast_new_udp_input_port ( ast_list identifiers,
ast_node_attributes *  attributes 
)

Creates a new UDP input port AST node.

Returns
A pointer to the new port

Creates a new UDP input port AST node.

Returns
A pointer to the new port
ast_udp_instance* ast_new_udp_instance ( ast_identifier  identifier,
ast_range *  range,
ast_lvalue output,
ast_list inputs 
)

Creates a new instance of a UDP.

Returns
A pointer to the new instance.
ast_udp_instantiation* ast_new_udp_instantiation ( ast_list instances,
ast_identifier  identifier,
ast_drive_strength *  drive_strength,
ast_delay2 *  delay 
)

Creates a new list of UDP instances with shared properties.

Returns
A pointer to the new list.
Parameters
identifierThe UDP being instanced
ast_udp_port* ast_new_udp_port ( ast_port_direction  direction,
ast_identifier  identifier,
ast_node_attributes *  attributes,
ast_boolean  reg,
ast_expression *  default_value 
)

Creates a new UDP port AST node.

Returns
A pointer to the new port
Parameters
identifierThe udp being instanced.