Main Page | Modules | Alphabetical List | Data Structures | File List | Data Fields | Globals | Related Pages

statement_s Struct Reference

#include <defines.h>


Detailed Description

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).


Data Fields

expressionexp
statementnext_true
statementnext_false
int conn_id
func_unitfunit
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


Field Documentation

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
 

int statement_s::conn_id
 

Current connection ID (used to make sure that we do not infinitely loop in connecting statements together)

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.

expression* statement_s::exp
 

Pointer to associated expression tree

uint32 statement_s::final
 

Bit 6. Mask bit = 1. Indicates that this statement block should only be executed during the final simulation step.

func_unit* statement_s::funit
 

Pointer to statement's functional unit that it belongs to

uint32 statement_s::head
 

Bit 0. Mask bit = 1. Indicates the statement is a head statement

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.

statement* statement_s::next_false
 

Pointer to next statement to run if next_true not picked

statement* statement_s::next_true
 

Pointer to next statement to run if expression tree non-zero

struct { ... } statement_s::part
 

unsigned int statement_s::ppline
 

Line number from the preprocessed file

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


The documentation for this struct was generated from the following file:
Generated on Wed Jun 17 22:19:25 2009 for Covered by doxygen 1.3.4