Skip to main content

SemanticStatement

Type Alias SemanticStatement 

Source
pub type SemanticStatement<A> = TestbenchStatement<A, SemanticSignal<A>, ExprBytecode<StateLocation<A>>, SemanticArgument<A>, TestbenchTarget<SemanticSignal<A>, ExprBytecode<StateLocation<A>>>>;

Aliased Type§

pub enum SemanticStatement<A> {
Show 14 variants ClockNext { clock_event: A, count: ClockCount<ExprBytecode<StateLocation<A>>>, }, ResetAssert { reset_signal: SemanticSignal<A>, reset_event: Option<A>, clock_event: A, duration: ClockCount<ExprBytecode<StateLocation<A>>>, assert_value: u8, deassert_value: u8, }, Assert { expr: ExprBytecode<StateLocation<A>>, site_id: u32, continue_on_fail: bool, message: Option<AssertMessage<SemanticArgument<A>>>, location: Option<SourceLocation>, }, Display { message: Option<AssertMessage<SemanticArgument<A>>>, newline: bool, }, If { expr: ExprBytecode<StateLocation<A>>, then_block: Vec<TestbenchStatement<A, SemanticSignal<A>, ExprBytecode<StateLocation<A>>, SemanticArgument<A>, TestbenchTarget<SemanticSignal<A>, ExprBytecode<StateLocation<A>>>>>, else_block: Vec<TestbenchStatement<A, SemanticSignal<A>, ExprBytecode<StateLocation<A>>, SemanticArgument<A>, TestbenchTarget<SemanticSignal<A>, ExprBytecode<StateLocation<A>>>>>, }, For { loop_var: Option<(SemanticSignal<A>, usize, bool)>, start: LoopBound<ExprBytecode<StateLocation<A>>>, end: LoopBound<ExprBytecode<StateLocation<A>>>, inclusive: bool, step: usize, step_op: Option<TestbenchOperator>, reverse: bool, body: Vec<TestbenchStatement<A, SemanticSignal<A>, ExprBytecode<StateLocation<A>>, SemanticArgument<A>, TestbenchTarget<SemanticSignal<A>, ExprBytecode<StateLocation<A>>>>>, }, Assign { dst: TestbenchTarget<SemanticSignal<A>, ExprBytecode<StateLocation<A>>>, expr: ExprBytecode<StateLocation<A>>, }, RandomSeed { handle: String, value: ExprBytecode<StateLocation<A>>, }, RandomGet { handle: String, width: u32, signed: bool, ret: Option<TestbenchTarget<SemanticSignal<A>, ExprBytecode<StateLocation<A>>>>, }, RandomGetRange { handle: String, min: ExprBytecode<StateLocation<A>>, max: ExprBytecode<StateLocation<A>>, width: u32, signed: bool, ret: Option<TestbenchTarget<SemanticSignal<A>, ExprBytecode<StateLocation<A>>>>, }, RandomGetSeed { handle: String, ret: Option<TestbenchTarget<SemanticSignal<A>, ExprBytecode<StateLocation<A>>>>, }, ComponentMethod { instance: String, method: String, args: Vec<SemanticArgument<A>>, ret: Option<TestbenchTarget<SemanticSignal<A>, ExprBytecode<StateLocation<A>>>>, ret_width: Option<u32>, ret_signed: bool, ret_strict: bool, }, Break, Finish,
}

Variants§

§

ClockNext

Fields

§clock_event: A
§

ResetAssert

Fields

§reset_signal: SemanticSignal<A>
§reset_event: Option<A>
§clock_event: A
§assert_value: u8
§deassert_value: u8
§

Assert

Fields

§site_id: u32
§continue_on_fail: bool
§

Display

Fields

§newline: bool
§

If

§

For

§

Assign

§

RandomSeed

Fields

§handle: String
§

RandomGet

§

RandomGetRange

§

RandomGetSeed

§

ComponentMethod

Fields

§instance: String
§method: String
§ret_width: Option<u32>
§ret_signed: bool
§ret_strict: bool
§

Break

§

Finish