#include <defines.h>
Data Fields | |
expression * | exp |
statement * | next_true |
statement * | next_false |
statement * | head |
int | conn_id |
func_unit * | funit |
union { | |
uint32 all | |
struct { | |
uint32 head:1 | |
uint32 stop_true:1 | |
uint32 stop_false:1 | |
uint32 cont:1 | |
uint32 is_called:1 | |
uint32 excluded:1 | |
uint32 final:1 | |
uint32 ignore_rc:1 | |
uint32 added:1 | |
} part | |
} | suppl |
unsigned int | ppline |
A statement is defined to be the structure connected to the root of an expression tree. Statements are sequentially run in the run-time engine, starting at the root statement. After a statements expression tree has been checked for changes and possibly placed into the run-time expression queue, the statements calls the next statement to be run. If the value of the root expression of the associated expression tree is a non-zero value, the next_true statement will be executed (if next_true is not NULL); otherwise, the next_false statement is run. If next_true and next_false point to the same structure, we have hit the end of the statement sequence; executing the next statement will be executing the first statement of the statement sequence (next_true and next_false should both point to the first statement in the sequence).
uint32 statement_s::added |
Bit 8. Mask bit = 0. Temporary bit value used by the score command but not displayed to the CDD file. When this bit is set to a one, it indicates to the db_add_statement function that this statement and all children statements have already been added to the functional unit statement list and should not be added again.
uint32 statement_s::all |
Referenced by statement_create(), statement_db_read(), and statement_db_write().
Current connection ID (used to make sure that we do not infinitely loop in connecting statements together)
Referenced by race_calc_assignments(), race_find_head_statement_containing_statement_helper(), statement_connect(), and statement_create().
uint32 statement_s::cont |
Bit 3. Mask bit = 1. Indicates the statement which this expression belongs is part of a continuous assignment. As such, stop simulating this statement tree after this expression tree is evaluated.
uint32 statement_s::excluded |
Bit 5. Mask bit = 1. Indicates that this statement (and its associated expression tree) should be excluded from coverage results.
Pointer to associated expression tree
Referenced by bind_signal(), combination_collect(), combination_display_verbose(), combination_get_stats(), db_add_statement(), db_connect_statement_false(), db_connect_statement_true(), db_parallelize_statement(), db_remove_statement(), db_remove_statement_from_current_funit(), db_statement_connect(), exclude_is_assert_excluded(), exclude_is_comb_excluded(), exclude_is_line_excluded(), exclude_set_assert_exclude(), exclude_set_comb_exclude(), exclude_set_line_exclude(), expression_dealloc(), fsm_var_bind_stmt(), fsm_var_cleanup(), func_iter_sort(), gen_item_compare(), gen_item_stringify(), generate_remove_stmt_helper(), instance_remove_parms_with_expr(), line_collect(), line_display_verbose(), line_get_stats(), ovl_collect(), ovl_display_verbose(), ovl_get_coverage(), ovl_get_coverage_point(), ovl_get_funit_stats(), race_calc_assignments(), race_check_one_block_assignment(), race_find_head_statement_containing_statement_helper(), race_handle_race_condition(), rank_gather_comp_cdd_cov(), sim_add_thread(), sim_display_thread(), sim_thread(), sim_thread_pop_head(), sim_thread_push(), statement_assign_expr_ids(), statement_connect(), statement_contains_expr_calling_stmt(), statement_create(), statement_db_write(), statement_db_write_expr_tree(), statement_dealloc_recursive(), statement_find_rhs_sigs(), statement_find_statement(), statement_get_last_line_helper(), statement_queue_compare(), statement_queue_display(), statement_size_elements(), stmt_blk_add_to_remove_list(), stmt_blk_remove(), stmt_link_add(), stmt_link_display(), stmt_link_find(), and stmt_link_find_by_pos().
uint32 statement_s::final |
Bit 6. Mask bit = 1. Indicates that this statement block should only be executed during the final simulation step.
Pointer to statement's functional unit that it belongs to
Referenced by fsm_var_bind_stmt(), sim_expr_changed(), and statement_create().
uint32 statement_s::head |
Bit 0. Mask bit = 1. Indicates the statement is a head statement
Pointer to head statement in this block
Referenced by db_add_statement(), db_end_function_task_namedblock(), statement_create(), statement_db_read(), statement_db_write(), statement_queue_compare(), and stmt_blk_add_to_remove_list().
uint32 statement_s::ignore_rc |
Bit 7. Mask bit = 1. Specifies that we should ignore race condition checking for this statement.
uint32 statement_s::is_called |
Bit 4. Mask bit = 1. Indicates that this statement is called by a FUNC_CALL, TASK_CALL, NB_CALL or FORK statement. If a statement has this bit set, it will NOT be automatically placed in the thread queue at time 0.
Pointer to next statement to run if next_true not picked
Referenced by db_add_statement(), db_connect_statement_false(), fsm_arg_parse_state(), race_calc_assignments(), race_find_head_statement_containing_statement_helper(), sim_thread(), statement_assign_expr_ids(), statement_connect(), statement_contains_expr_calling_stmt(), statement_create(), statement_db_read(), statement_db_write(), statement_db_write_expr_tree(), statement_db_write_tree(), statement_dealloc_recursive(), statement_find_rhs_sigs(), statement_find_statement(), statement_get_last_line_helper(), statement_queue_compare(), and statement_size_elements().
Pointer to next statement to run if expression tree non-zero
Referenced by db_add_statement(), db_connect_statement_true(), fsm_arg_parse_state(), race_calc_assignments(), race_find_head_statement_containing_statement_helper(), sim_thread(), sim_thread_pop_head(), statement_assign_expr_ids(), statement_connect(), statement_contains_expr_calling_stmt(), statement_create(), statement_db_read(), statement_db_write(), statement_db_write_expr_tree(), statement_db_write_tree(), statement_dealloc_recursive(), statement_find_rhs_sigs(), statement_find_statement(), statement_get_last_line_helper(), statement_queue_compare(), and statement_size_elements().
struct { ... } statement_s::part |
Referenced by combination_get_stats(), db_add_statement(), db_create_statement(), db_parallelize_statement(), exclude_expr_assign_and_recalc(), exclude_is_line_excluded(), exclude_line_from_id(), fsm_arg_parse_state(), fsm_var_bind_stmt(), funit_remove_stmt_blks_calling_stmt(), line_display_verbose(), line_get_stats(), race_calc_assignments(), race_check_modules(), race_check_one_block_assignment(), race_find_head_statement_containing_statement_helper(), rank_gather_comp_cdd_cov(), sim_add_thread(), sim_expression(), sim_thread(), statement_assign_expr_ids(), statement_connect(), statement_contains_expr_calling_stmt(), statement_db_read(), statement_db_write_expr_tree(), statement_db_write_tree(), statement_dealloc_recursive(), statement_find_rhs_sigs(), statement_find_statement(), statement_get_last_line_helper(), statement_size_elements(), stmt_blk_add_to_remove_list(), and stmt_link_display().
unsigned int statement_s::ppline |
Line number from the preprocessed file
Referenced by db_parallelize_statement(), func_iter_display(), func_iter_sort(), statement_create(), statement_db_write(), stmt_link_add(), and stmt_link_find_by_pos().
uint32 statement_s::stop_false |
Bit 2. Mask bit = 1. Indicates the statement which this expression belongs should write itself to the CDD and not continue to traverse its next_false pointer.
uint32 statement_s::stop_true |
Bit 1. Mask bit = 1. Indicates the statement which this expression belongs should write itself to the CDD and not continue to traverse its next_true pointer.
union { ... } statement_s::suppl |
Supplemental bits for statements
Referenced by combination_get_stats(), db_add_statement(), db_create_statement(), db_parallelize_statement(), exclude_expr_assign_and_recalc(), exclude_is_line_excluded(), exclude_line_from_id(), fsm_arg_parse_state(), fsm_var_bind_stmt(), funit_remove_stmt_blks_calling_stmt(), line_display_verbose(), line_get_stats(), race_calc_assignments(), race_check_modules(), race_check_one_block_assignment(), race_find_head_statement_containing_statement_helper(), rank_gather_comp_cdd_cov(), sim_add_thread(), sim_expression(), sim_thread(), statement_assign_expr_ids(), statement_connect(), statement_contains_expr_calling_stmt(), statement_create(), statement_db_read(), statement_db_write(), statement_db_write_expr_tree(), statement_db_write_tree(), statement_dealloc_recursive(), statement_find_rhs_sigs(), statement_find_statement(), statement_get_last_line_helper(), statement_size_elements(), stmt_blk_add_to_remove_list(), and stmt_link_display().