Verilog Parser
|
Describes items found inside procedural blocks. More...
Modules | |
Task Enable Statements | |
Describes task enable statements. | |
Loop Statements | |
Describes for and while loop representation. | |
Case Statements | |
If Else Statements | |
Data Structures | |
struct | ast_assignment |
Top level descriptor for an assignment. More... | |
struct | ast_continuous_assignment |
Describes a set of assignments with the same drive strength and delay. More... | |
struct | ast_hybrid_assignment |
caters for procedural_continuous_assignments in Annex A.6.2 of spec. More... | |
struct | ast_procedural_assignment |
Describes a procedural assignment, can be blocking or nonblocking. More... | |
struct | ast_pulse_control_specparam |
Describes the pulse characteristics in signal transmission? More... | |
struct | ast_range |
Describes a range or dimension. More... | |
struct | ast_single_assignment |
encodes a single assignment. More... | |
struct | ast_statement |
Describes a single statement, and can contain sequential statement blocks. More... | |
Enumerations | |
enum | ast_assignment_type { ASSIGNMENT_CONTINUOUS, ASSIGNMENT_BLOCKING, ASSIGNMENT_NONBLOCKING, ASSIGNMENT_HYBRID } |
Describes the type (and implicitly, the location) of an assignment. More... | |
enum | ast_hybrid_assignment_type { HYBRID_ASSIGNMENT_ASSIGN, HYBRID_ASSIGNMENT_DEASSIGN, HYBRID_ASSIGNMENT_FORCE_NET, HYBRID_ASSIGNMENT_FORCE_VAR, HYBRID_ASSIGNMENT_RELEASE_VAR, HYBRID_ASSIGNMENT_RELEASE_NET } |
Describes the different types of procedural continuous assignments. | |
enum | ast_statement_type { STM_GENERATE =0, STM_ASSIGNMENT =1, STM_CASE =2, STM_CONDITIONAL =3, STM_DISABLE =4, STM_EVENT_TRIGGER =5, STM_LOOP =6, STM_BLOCK =7, STM_BLOCK_ALWAYS =8, STM_BLOCK_INITIAL =9, STM_TIMING_CONTROL =10, STM_FUNCTION_CALL =11, STM_TASK_ENABLE =12, STM_WAIT =13, STM_MODULE_ITEM =14 } |
Describes the kind of statement in a statement struct. More... | |
Functions | |
ast_assignment * | ast_new_blocking_assignment (ast_lvalue *lval, ast_expression *expression, ast_timing_control_statement *delay_or_event) |
Creates and returns a new blocking procedural assignment object. More... | |
ast_assignment * | ast_new_continuous_assignment (ast_list *assignments, ast_drive_strength *strength, ast_delay3 *delay) |
Creates and returns a new continuous assignment object. More... | |
ast_assignment * | ast_new_hybrid_assignment (ast_hybrid_assignment_type type, ast_single_assignment *assignment) |
Creates a new hybrid assignment of the specified type. More... | |
ast_assignment * | ast_new_hybrid_lval_assignment (ast_hybrid_assignment_type type, ast_lvalue *lval) |
Creates a new hybrid assignment of the specified type. More... | |
ast_assignment * | ast_new_nonblocking_assignment (ast_lvalue *lval, ast_expression *expression, ast_timing_control_statement *delay_or_event) |
Creates and returns a new nonblocking procedural assignment object. More... | |
ast_pulse_control_specparam * | ast_new_pulse_control_specparam (ast_expression *reject_limit, ast_expression *error_limit) |
Creates and returns a new pulse control data structure. | |
ast_range * | ast_new_range (ast_expression *upper, ast_expression *lower) |
Creates and returns a new range or dimension representation node. | |
ast_single_assignment * | ast_new_single_assignment (ast_lvalue *lval, ast_expression *expression) |
Creates and returns a new continuous assignment. More... | |
ast_statement * | ast_new_statement (ast_node_attributes *attr, ast_boolean is_function_statement, void *data, ast_statement_type type) |
Creates a new AST statement and returns it. More... | |
Describes items found inside procedural blocks.
enum ast_assignment_type |
Describes the type (and implicitly, the location) of an assignment.
Enumerator | |
---|---|
ASSIGNMENT_CONTINUOUS |
Continuous (combinatorial) assignment. |
ASSIGNMENT_BLOCKING |
Procedural, blocking assignment. |
ASSIGNMENT_NONBLOCKING |
Procedural, non-blocking assignment. |
ASSIGNMENT_HYBRID |
|
enum ast_statement_type |
Describes the kind of statement in a statement struct.
ast_assignment* ast_new_blocking_assignment | ( | ast_lvalue * | lval, |
ast_expression * | expression, | ||
ast_timing_control_statement * | delay_or_event | ||
) |
Creates and returns a new blocking procedural assignment object.
lval | The net/variable being assigned to. |
expression | Assign it this value. |
delay_or_event | The timing module |
ast_assignment* ast_new_continuous_assignment | ( | ast_list * | assignments, |
ast_drive_strength * | strength, | ||
ast_delay3 * | delay | ||
) |
Creates and returns a new continuous assignment object.
All of the assignments will have the same drive strength and signal delay properties.
assignments | The list of assignments to make. |
strength | The drive strength |
delay | Delay in making the assignment. |
ast_assignment* ast_new_hybrid_assignment | ( | ast_hybrid_assignment_type | type, |
ast_single_assignment * | assignment | ||
) |
Creates a new hybrid assignment of the specified type.
type | The assignment type. |
assignment | The things being assigned. |
ast_assignment* ast_new_hybrid_lval_assignment | ( | ast_hybrid_assignment_type | type, |
ast_lvalue * | lval | ||
) |
Creates a new hybrid assignment of the specified type.
type | FORCE or (DE)ASSIGN. |
lval | The thing to change. |
ast_assignment* ast_new_nonblocking_assignment | ( | ast_lvalue * | lval, |
ast_expression * | expression, | ||
ast_timing_control_statement * | delay_or_event | ||
) |
Creates and returns a new nonblocking procedural assignment object.
lval | The net/variable being assigned to. |
expression | The value it will take. |
delay_or_event | Timing model. |
ast_single_assignment* ast_new_single_assignment | ( | ast_lvalue * | lval, |
ast_expression * | expression | ||
) |
Creates and returns a new continuous assignment.
Creates and returns a new continuous assignment.
lval | The thing being assigned to. |
expression | The value it takes on. |
ast_statement* ast_new_statement | ( | ast_node_attributes * | attr, |
ast_boolean | is_function_statement, | ||
void * | data, | ||
ast_statement_type | type | ||
) |
Creates a new AST statement and returns it.