Simulation { state: State { insns: Insns { state_layout: StateLayout { ty: TypeLayout { small_slots: StatePartLayout { len: 4, debug_data: [ SlotDebugData { name: "", ty: Bool, }, SlotDebugData { name: "", ty: Bool, }, SlotDebugData { name: "", ty: Bool, }, SlotDebugData { name: "", ty: Bool, }, ], .. }, big_slots: StatePartLayout { len: 9, debug_data: [ SlotDebugData { name: "InstantiatedModule(counter: counter).counter::cd.clk", ty: Clock, }, SlotDebugData { name: "InstantiatedModule(counter: counter).counter::cd.rst", ty: SyncReset, }, SlotDebugData { name: "InstantiatedModule(counter: counter).counter::count", ty: UInt<4>, }, SlotDebugData { name: "InstantiatedModule(counter: counter).counter::count_reg", ty: UInt<4>, }, SlotDebugData { name: "InstantiatedModule(counter: counter).counter::count_reg$next", ty: UInt<4>, }, SlotDebugData { name: "", ty: UInt<4>, }, SlotDebugData { name: "", ty: UInt<1>, }, SlotDebugData { name: "", ty: UInt<5>, }, SlotDebugData { name: "", ty: UInt<4>, }, ], .. }, }, memories: StatePartLayout { len: 0, debug_data: [], layout_data: [], .. }, }, insns: [ // at: module-XXXXXXXXXX.rs:6:1 0: Copy { dest: StatePartIndex(2), // (0x3) SlotDebugData { name: "InstantiatedModule(counter: counter).counter::count", ty: UInt<4> }, src: StatePartIndex(3), // (0x3) SlotDebugData { name: "InstantiatedModule(counter: counter).counter::count_reg", ty: UInt<4> }, }, // at: module-XXXXXXXXXX.rs:1:1 1: Const { dest: StatePartIndex(6), // (0x1) SlotDebugData { name: "", ty: UInt<1> }, value: 0x1, }, 2: Add { dest: StatePartIndex(7), // (0x4) SlotDebugData { name: "", ty: UInt<5> }, lhs: StatePartIndex(3), // (0x3) SlotDebugData { name: "InstantiatedModule(counter: counter).counter::count_reg", ty: UInt<4> }, rhs: StatePartIndex(6), // (0x1) SlotDebugData { name: "", ty: UInt<1> }, }, 3: CastToUInt { dest: StatePartIndex(8), // (0x4) SlotDebugData { name: "", ty: UInt<4> }, src: StatePartIndex(7), // (0x4) SlotDebugData { name: "", ty: UInt<5> }, dest_width: 4, }, // at: module-XXXXXXXXXX.rs:4:1 4: Copy { dest: StatePartIndex(4), // (0x4) SlotDebugData { name: "InstantiatedModule(counter: counter).counter::count_reg$next", ty: UInt<4> }, src: StatePartIndex(8), // (0x4) SlotDebugData { name: "", ty: UInt<4> }, }, // at: module-XXXXXXXXXX.rs:3:1 5: IsNonZeroDestIsSmall { dest: StatePartIndex(3), // (0x0 0) SlotDebugData { name: "", ty: Bool }, src: StatePartIndex(1), // (0x0) SlotDebugData { name: "InstantiatedModule(counter: counter).counter::cd.rst", ty: SyncReset }, }, // at: module-XXXXXXXXXX.rs:1:1 6: Const { dest: StatePartIndex(5), // (0x3) SlotDebugData { name: "", ty: UInt<4> }, value: 0x3, }, // at: module-XXXXXXXXXX.rs:3:1 7: IsNonZeroDestIsSmall { dest: StatePartIndex(2), // (0x1 1) SlotDebugData { name: "", ty: Bool }, src: StatePartIndex(0), // (0x1) SlotDebugData { name: "InstantiatedModule(counter: counter).counter::cd.clk", ty: Clock }, }, 8: AndSmall { dest: StatePartIndex(1), // (0x0 0) SlotDebugData { name: "", ty: Bool }, lhs: StatePartIndex(2), // (0x1 1) SlotDebugData { name: "", ty: Bool }, rhs: StatePartIndex(0), // (0x0 0) SlotDebugData { name: "", ty: Bool }, }, 9: BranchIfSmallZero { target: 14, value: StatePartIndex(1), // (0x0 0) SlotDebugData { name: "", ty: Bool }, }, 10: BranchIfSmallNonZero { target: 13, value: StatePartIndex(3), // (0x0 0) SlotDebugData { name: "", ty: Bool }, }, 11: Copy { dest: StatePartIndex(3), // (0x3) SlotDebugData { name: "InstantiatedModule(counter: counter).counter::count_reg", ty: UInt<4> }, src: StatePartIndex(4), // (0x4) SlotDebugData { name: "InstantiatedModule(counter: counter).counter::count_reg$next", ty: UInt<4> }, }, 12: Branch { target: 14, }, 13: Copy { dest: StatePartIndex(3), // (0x3) SlotDebugData { name: "InstantiatedModule(counter: counter).counter::count_reg", ty: UInt<4> }, src: StatePartIndex(5), // (0x3) SlotDebugData { name: "", ty: UInt<4> }, }, 14: XorSmallImmediate { dest: StatePartIndex(0), // (0x0 0) SlotDebugData { name: "", ty: Bool }, lhs: StatePartIndex(2), // (0x1 1) SlotDebugData { name: "", ty: Bool }, rhs: 0x1, }, // at: module-XXXXXXXXXX.rs:1:1 15: Return, ], .. }, pc: 15, memory_write_log: [], memories: StatePart { value: [], }, small_slots: StatePart { value: [ 0, 0, 1, 0, ], }, big_slots: StatePart { value: [ 1, 0, 3, 3, 4, 3, 1, 4, 4, ], }, }, io: Instance { name: ::counter, instantiated: Module { name: counter, .. }, }, uninitialized_inputs: {}, io_targets: { Instance { name: ::counter, instantiated: Module { name: counter, .. }, }.cd: CompiledValue { layout: CompiledTypeLayout { ty: Bundle { /* offset = 0 */ clk: Clock, /* offset = 1 */ rst: SyncReset, }, layout: TypeLayout { small_slots: StatePartLayout { len: 0, debug_data: [], .. }, big_slots: StatePartLayout { len: 2, debug_data: [ SlotDebugData { name: "InstantiatedModule(counter: counter).counter::cd.clk", ty: Clock, }, SlotDebugData { name: "InstantiatedModule(counter: counter).counter::cd.rst", ty: SyncReset, }, ], .. }, }, body: Bundle { fields: [ CompiledBundleField { offset: TypeIndex { small_slots: StatePartIndex(0), big_slots: StatePartIndex(0), }, ty: CompiledTypeLayout { ty: Clock, layout: TypeLayout { small_slots: StatePartLayout { len: 0, debug_data: [], .. }, big_slots: StatePartLayout { len: 1, debug_data: [ SlotDebugData { name: "", ty: Clock, }, ], .. }, }, body: Scalar, }, }, CompiledBundleField { offset: TypeIndex { small_slots: StatePartIndex(0), big_slots: StatePartIndex(1), }, ty: CompiledTypeLayout { ty: SyncReset, layout: TypeLayout { small_slots: StatePartLayout { len: 0, debug_data: [], .. }, big_slots: StatePartLayout { len: 1, debug_data: [ SlotDebugData { name: "", ty: SyncReset, }, ], .. }, }, body: Scalar, }, }, ], }, }, range: TypeIndexRange { small_slots: StatePartIndexRange { start: 0, len: 0 }, big_slots: StatePartIndexRange { start: 0, len: 2 }, }, write: None, }, Instance { name: ::counter, instantiated: Module { name: counter, .. }, }.cd.clk: CompiledValue { layout: CompiledTypeLayout { ty: Clock, layout: TypeLayout { small_slots: StatePartLayout { len: 0, debug_data: [], .. }, big_slots: StatePartLayout { len: 1, debug_data: [ SlotDebugData { name: "", ty: Clock, }, ], .. }, }, body: Scalar, }, range: TypeIndexRange { small_slots: StatePartIndexRange { start: 0, len: 0 }, big_slots: StatePartIndexRange { start: 0, len: 1 }, }, write: None, }, Instance { name: ::counter, instantiated: Module { name: counter, .. }, }.cd.rst: CompiledValue { layout: CompiledTypeLayout { ty: SyncReset, layout: TypeLayout { small_slots: StatePartLayout { len: 0, debug_data: [], .. }, big_slots: StatePartLayout { len: 1, debug_data: [ SlotDebugData { name: "", ty: SyncReset, }, ], .. }, }, body: Scalar, }, range: TypeIndexRange { small_slots: StatePartIndexRange { start: 0, len: 0 }, big_slots: StatePartIndexRange { start: 1, len: 1 }, }, write: None, }, Instance { name: ::counter, instantiated: Module { name: counter, .. }, }.count: CompiledValue { layout: CompiledTypeLayout { ty: UInt<4>, layout: TypeLayout { small_slots: StatePartLayout { len: 0, debug_data: [], .. }, big_slots: StatePartLayout { len: 1, debug_data: [ SlotDebugData { name: "InstantiatedModule(counter: counter).counter::count", ty: UInt<4>, }, ], .. }, }, body: Scalar, }, range: TypeIndexRange { small_slots: StatePartIndexRange { start: 0, len: 0 }, big_slots: StatePartIndexRange { start: 2, len: 1 }, }, write: None, }, }, made_initial_step: true, needs_settle: false, trace_decls: TraceModule { name: "counter", children: [ TraceModuleIO { name: "cd", child: TraceBundle { name: "cd", fields: [ TraceClock { location: TraceScalarId(0), name: "clk", flow: Source, }, TraceSyncReset { location: TraceScalarId(1), name: "rst", flow: Source, }, ], ty: Bundle { /* offset = 0 */ clk: Clock, /* offset = 1 */ rst: SyncReset, }, flow: Source, }, ty: Bundle { /* offset = 0 */ clk: Clock, /* offset = 1 */ rst: SyncReset, }, flow: Source, }, TraceModuleIO { name: "count", child: TraceUInt { location: TraceScalarId(2), name: "count", ty: UInt<4>, flow: Sink, }, ty: UInt<4>, flow: Sink, }, TraceReg { name: "count_reg", child: TraceUInt { location: TraceScalarId(3), name: "count_reg", ty: UInt<4>, flow: Duplex, }, ty: UInt<4>, }, ], }, traces: [ SimTrace { id: TraceScalarId(0), kind: BigClock { index: StatePartIndex(0), }, state: 0x1, last_state: 0x1, }, SimTrace { id: TraceScalarId(1), kind: BigSyncReset { index: StatePartIndex(1), }, state: 0x0, last_state: 0x0, }, SimTrace { id: TraceScalarId(2), kind: BigUInt { index: StatePartIndex(2), ty: UInt<4>, }, state: 0x3, last_state: 0x2, }, SimTrace { id: TraceScalarId(3), kind: BigUInt { index: StatePartIndex(3), ty: UInt<4>, }, state: 0x3, last_state: 0x3, }, ], trace_memories: {}, trace_writers: [ Running( VcdWriter { finished_init: true, timescale: 1 ps, .. }, ), ], instant: 66 μs, clocks_triggered: [ StatePartIndex(1), ], .. }