tests/sim: split expected output text into separate files
This commit is contained in:
		
							parent
							
								
									643816d5b5
								
							
						
					
					
						commit
						259bee39c2
					
				
					 13 changed files with 3508 additions and 3513 deletions
				
			
		
										
											
												File diff suppressed because it is too large
												Load diff
											
										
									
								
							
							
								
								
									
										130
									
								
								crates/fayalite/tests/sim/expected/connect_const.txt
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										130
									
								
								crates/fayalite/tests/sim/expected/connect_const.txt
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,130 @@
 | 
				
			||||||
 | 
					Simulation {
 | 
				
			||||||
 | 
					    state: State {
 | 
				
			||||||
 | 
					        insns: Insns {
 | 
				
			||||||
 | 
					            state_layout: StateLayout {
 | 
				
			||||||
 | 
					                ty: TypeLayout {
 | 
				
			||||||
 | 
					                    small_slots: StatePartAllocationLayout<SmallSlots> {
 | 
				
			||||||
 | 
					                        len: 0,
 | 
				
			||||||
 | 
					                        debug_data: [],
 | 
				
			||||||
 | 
					                        ..
 | 
				
			||||||
 | 
					                    },
 | 
				
			||||||
 | 
					                    big_slots: StatePartAllocationLayout<BigSlots> {
 | 
				
			||||||
 | 
					                        len: 2,
 | 
				
			||||||
 | 
					                        debug_data: [
 | 
				
			||||||
 | 
					                            SlotDebugData {
 | 
				
			||||||
 | 
					                                name: "InstantiatedModule(connect_const: connect_const).connect_const::o",
 | 
				
			||||||
 | 
					                                ty: UInt<8>,
 | 
				
			||||||
 | 
					                            },
 | 
				
			||||||
 | 
					                            SlotDebugData {
 | 
				
			||||||
 | 
					                                name: "",
 | 
				
			||||||
 | 
					                                ty: UInt<8>,
 | 
				
			||||||
 | 
					                            },
 | 
				
			||||||
 | 
					                        ],
 | 
				
			||||||
 | 
					                        ..
 | 
				
			||||||
 | 
					                    },
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            insns: [
 | 
				
			||||||
 | 
					                // at: module-XXXXXXXXXX.rs:1:1
 | 
				
			||||||
 | 
					                Const {
 | 
				
			||||||
 | 
					                    dest: StatePartIndex<BigSlots>(1), // SlotDebugData { name: "", ty: UInt<8> },
 | 
				
			||||||
 | 
					                    value: 5,
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                // at: module-XXXXXXXXXX.rs:3:1
 | 
				
			||||||
 | 
					                Copy {
 | 
				
			||||||
 | 
					                    dest: StatePartIndex<BigSlots>(0), // SlotDebugData { name: "InstantiatedModule(connect_const: connect_const).connect_const::o", ty: UInt<8> },
 | 
				
			||||||
 | 
					                    src: StatePartIndex<BigSlots>(1), // SlotDebugData { name: "", ty: UInt<8> },
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                // at: module-XXXXXXXXXX.rs:1:1
 | 
				
			||||||
 | 
					                Return,
 | 
				
			||||||
 | 
					            ],
 | 
				
			||||||
 | 
					            ..
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        pc: 2,
 | 
				
			||||||
 | 
					        small_slots: StatePart {
 | 
				
			||||||
 | 
					            value: [],
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        big_slots: StatePart {
 | 
				
			||||||
 | 
					            value: [
 | 
				
			||||||
 | 
					                5,
 | 
				
			||||||
 | 
					                5,
 | 
				
			||||||
 | 
					            ],
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    io: Instance {
 | 
				
			||||||
 | 
					        name: <simulator>::connect_const,
 | 
				
			||||||
 | 
					        instantiated: Module {
 | 
				
			||||||
 | 
					            name: connect_const,
 | 
				
			||||||
 | 
					            ..
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    uninitialized_inputs: {},
 | 
				
			||||||
 | 
					    io_targets: {
 | 
				
			||||||
 | 
					        Instance {
 | 
				
			||||||
 | 
					            name: <simulator>::connect_const,
 | 
				
			||||||
 | 
					            instantiated: Module {
 | 
				
			||||||
 | 
					                name: connect_const,
 | 
				
			||||||
 | 
					                ..
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					        }.o: CompiledValue {
 | 
				
			||||||
 | 
					            layout: CompiledTypeLayout {
 | 
				
			||||||
 | 
					                ty: UInt<8>,
 | 
				
			||||||
 | 
					                layout: TypeLayout {
 | 
				
			||||||
 | 
					                    small_slots: StatePartAllocationLayout<SmallSlots> {
 | 
				
			||||||
 | 
					                        len: 0,
 | 
				
			||||||
 | 
					                        debug_data: [],
 | 
				
			||||||
 | 
					                        ..
 | 
				
			||||||
 | 
					                    },
 | 
				
			||||||
 | 
					                    big_slots: StatePartAllocationLayout<BigSlots> {
 | 
				
			||||||
 | 
					                        len: 1,
 | 
				
			||||||
 | 
					                        debug_data: [
 | 
				
			||||||
 | 
					                            SlotDebugData {
 | 
				
			||||||
 | 
					                                name: "InstantiatedModule(connect_const: connect_const).connect_const::o",
 | 
				
			||||||
 | 
					                                ty: UInt<8>,
 | 
				
			||||||
 | 
					                            },
 | 
				
			||||||
 | 
					                        ],
 | 
				
			||||||
 | 
					                        ..
 | 
				
			||||||
 | 
					                    },
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                body: Scalar,
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            range: TypeIndexRange {
 | 
				
			||||||
 | 
					                small_slots: StatePartIndexRange<SmallSlots> { start: 0, len: 0 },
 | 
				
			||||||
 | 
					                big_slots: StatePartIndexRange<BigSlots> { start: 0, len: 1 },
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            write: None,
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    made_initial_step: true,
 | 
				
			||||||
 | 
					    needs_settle: false,
 | 
				
			||||||
 | 
					    trace_decls: TraceModule {
 | 
				
			||||||
 | 
					        name: "connect_const",
 | 
				
			||||||
 | 
					        children: [
 | 
				
			||||||
 | 
					            TraceModuleIO {
 | 
				
			||||||
 | 
					                name: "o",
 | 
				
			||||||
 | 
					                child: TraceUInt {
 | 
				
			||||||
 | 
					                    id: TraceScalarId(0),
 | 
				
			||||||
 | 
					                    name: "o",
 | 
				
			||||||
 | 
					                    ty: UInt<8>,
 | 
				
			||||||
 | 
					                    flow: Sink,
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                ty: UInt<8>,
 | 
				
			||||||
 | 
					                flow: Sink,
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					        ],
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    traces: [
 | 
				
			||||||
 | 
					        SimTrace {
 | 
				
			||||||
 | 
					            id: TraceScalarId(0),
 | 
				
			||||||
 | 
					            kind: BigUInt {
 | 
				
			||||||
 | 
					                index: StatePartIndex<BigSlots>(0),
 | 
				
			||||||
 | 
					                ty: UInt<8>,
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            state: 0x05,
 | 
				
			||||||
 | 
					            last_state: 0x05,
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					    ],
 | 
				
			||||||
 | 
					    trace_writers: [],
 | 
				
			||||||
 | 
					    instant: 0 s,
 | 
				
			||||||
 | 
					    clocks_triggered: [],
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										217
									
								
								crates/fayalite/tests/sim/expected/connect_const_reset.txt
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										217
									
								
								crates/fayalite/tests/sim/expected/connect_const_reset.txt
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,217 @@
 | 
				
			||||||
 | 
					Simulation {
 | 
				
			||||||
 | 
					    state: State {
 | 
				
			||||||
 | 
					        insns: Insns {
 | 
				
			||||||
 | 
					            state_layout: StateLayout {
 | 
				
			||||||
 | 
					                ty: TypeLayout {
 | 
				
			||||||
 | 
					                    small_slots: StatePartAllocationLayout<SmallSlots> {
 | 
				
			||||||
 | 
					                        len: 0,
 | 
				
			||||||
 | 
					                        debug_data: [],
 | 
				
			||||||
 | 
					                        ..
 | 
				
			||||||
 | 
					                    },
 | 
				
			||||||
 | 
					                    big_slots: StatePartAllocationLayout<BigSlots> {
 | 
				
			||||||
 | 
					                        len: 5,
 | 
				
			||||||
 | 
					                        debug_data: [
 | 
				
			||||||
 | 
					                            SlotDebugData {
 | 
				
			||||||
 | 
					                                name: "InstantiatedModule(connect_const_reset: connect_const_reset).connect_const_reset::reset_out",
 | 
				
			||||||
 | 
					                                ty: AsyncReset,
 | 
				
			||||||
 | 
					                            },
 | 
				
			||||||
 | 
					                            SlotDebugData {
 | 
				
			||||||
 | 
					                                name: "InstantiatedModule(connect_const_reset: connect_const_reset).connect_const_reset::bit_out",
 | 
				
			||||||
 | 
					                                ty: Bool,
 | 
				
			||||||
 | 
					                            },
 | 
				
			||||||
 | 
					                            SlotDebugData {
 | 
				
			||||||
 | 
					                                name: "",
 | 
				
			||||||
 | 
					                                ty: Bool,
 | 
				
			||||||
 | 
					                            },
 | 
				
			||||||
 | 
					                            SlotDebugData {
 | 
				
			||||||
 | 
					                                name: "",
 | 
				
			||||||
 | 
					                                ty: AsyncReset,
 | 
				
			||||||
 | 
					                            },
 | 
				
			||||||
 | 
					                            SlotDebugData {
 | 
				
			||||||
 | 
					                                name: "",
 | 
				
			||||||
 | 
					                                ty: Bool,
 | 
				
			||||||
 | 
					                            },
 | 
				
			||||||
 | 
					                        ],
 | 
				
			||||||
 | 
					                        ..
 | 
				
			||||||
 | 
					                    },
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            insns: [
 | 
				
			||||||
 | 
					                // at: module-XXXXXXXXXX.rs:1:1
 | 
				
			||||||
 | 
					                Const {
 | 
				
			||||||
 | 
					                    dest: StatePartIndex<BigSlots>(2), // SlotDebugData { name: "", ty: Bool },
 | 
				
			||||||
 | 
					                    value: 1,
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                Copy {
 | 
				
			||||||
 | 
					                    dest: StatePartIndex<BigSlots>(3), // SlotDebugData { name: "", ty: AsyncReset },
 | 
				
			||||||
 | 
					                    src: StatePartIndex<BigSlots>(2), // SlotDebugData { name: "", ty: Bool },
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                // at: module-XXXXXXXXXX.rs:4:1
 | 
				
			||||||
 | 
					                Copy {
 | 
				
			||||||
 | 
					                    dest: StatePartIndex<BigSlots>(0), // SlotDebugData { name: "InstantiatedModule(connect_const_reset: connect_const_reset).connect_const_reset::reset_out", ty: AsyncReset },
 | 
				
			||||||
 | 
					                    src: StatePartIndex<BigSlots>(3), // SlotDebugData { name: "", ty: AsyncReset },
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                // at: module-XXXXXXXXXX.rs:1:1
 | 
				
			||||||
 | 
					                Copy {
 | 
				
			||||||
 | 
					                    dest: StatePartIndex<BigSlots>(4), // SlotDebugData { name: "", ty: Bool },
 | 
				
			||||||
 | 
					                    src: StatePartIndex<BigSlots>(0), // SlotDebugData { name: "InstantiatedModule(connect_const_reset: connect_const_reset).connect_const_reset::reset_out", ty: AsyncReset },
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                // at: module-XXXXXXXXXX.rs:5:1
 | 
				
			||||||
 | 
					                Copy {
 | 
				
			||||||
 | 
					                    dest: StatePartIndex<BigSlots>(1), // SlotDebugData { name: "InstantiatedModule(connect_const_reset: connect_const_reset).connect_const_reset::bit_out", ty: Bool },
 | 
				
			||||||
 | 
					                    src: StatePartIndex<BigSlots>(4), // SlotDebugData { name: "", ty: Bool },
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                // at: module-XXXXXXXXXX.rs:1:1
 | 
				
			||||||
 | 
					                Return,
 | 
				
			||||||
 | 
					            ],
 | 
				
			||||||
 | 
					            ..
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        pc: 5,
 | 
				
			||||||
 | 
					        small_slots: StatePart {
 | 
				
			||||||
 | 
					            value: [],
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        big_slots: StatePart {
 | 
				
			||||||
 | 
					            value: [
 | 
				
			||||||
 | 
					                1,
 | 
				
			||||||
 | 
					                1,
 | 
				
			||||||
 | 
					                1,
 | 
				
			||||||
 | 
					                1,
 | 
				
			||||||
 | 
					                1,
 | 
				
			||||||
 | 
					            ],
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    io: Instance {
 | 
				
			||||||
 | 
					        name: <simulator>::connect_const_reset,
 | 
				
			||||||
 | 
					        instantiated: Module {
 | 
				
			||||||
 | 
					            name: connect_const_reset,
 | 
				
			||||||
 | 
					            ..
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    uninitialized_inputs: {},
 | 
				
			||||||
 | 
					    io_targets: {
 | 
				
			||||||
 | 
					        Instance {
 | 
				
			||||||
 | 
					            name: <simulator>::connect_const_reset,
 | 
				
			||||||
 | 
					            instantiated: Module {
 | 
				
			||||||
 | 
					                name: connect_const_reset,
 | 
				
			||||||
 | 
					                ..
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					        }.bit_out: CompiledValue {
 | 
				
			||||||
 | 
					            layout: CompiledTypeLayout {
 | 
				
			||||||
 | 
					                ty: Bool,
 | 
				
			||||||
 | 
					                layout: TypeLayout {
 | 
				
			||||||
 | 
					                    small_slots: StatePartAllocationLayout<SmallSlots> {
 | 
				
			||||||
 | 
					                        len: 0,
 | 
				
			||||||
 | 
					                        debug_data: [],
 | 
				
			||||||
 | 
					                        ..
 | 
				
			||||||
 | 
					                    },
 | 
				
			||||||
 | 
					                    big_slots: StatePartAllocationLayout<BigSlots> {
 | 
				
			||||||
 | 
					                        len: 1,
 | 
				
			||||||
 | 
					                        debug_data: [
 | 
				
			||||||
 | 
					                            SlotDebugData {
 | 
				
			||||||
 | 
					                                name: "InstantiatedModule(connect_const_reset: connect_const_reset).connect_const_reset::bit_out",
 | 
				
			||||||
 | 
					                                ty: Bool,
 | 
				
			||||||
 | 
					                            },
 | 
				
			||||||
 | 
					                        ],
 | 
				
			||||||
 | 
					                        ..
 | 
				
			||||||
 | 
					                    },
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                body: Scalar,
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            range: TypeIndexRange {
 | 
				
			||||||
 | 
					                small_slots: StatePartIndexRange<SmallSlots> { start: 0, len: 0 },
 | 
				
			||||||
 | 
					                big_slots: StatePartIndexRange<BigSlots> { start: 1, len: 1 },
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            write: None,
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        Instance {
 | 
				
			||||||
 | 
					            name: <simulator>::connect_const_reset,
 | 
				
			||||||
 | 
					            instantiated: Module {
 | 
				
			||||||
 | 
					                name: connect_const_reset,
 | 
				
			||||||
 | 
					                ..
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					        }.reset_out: CompiledValue {
 | 
				
			||||||
 | 
					            layout: CompiledTypeLayout {
 | 
				
			||||||
 | 
					                ty: AsyncReset,
 | 
				
			||||||
 | 
					                layout: TypeLayout {
 | 
				
			||||||
 | 
					                    small_slots: StatePartAllocationLayout<SmallSlots> {
 | 
				
			||||||
 | 
					                        len: 0,
 | 
				
			||||||
 | 
					                        debug_data: [],
 | 
				
			||||||
 | 
					                        ..
 | 
				
			||||||
 | 
					                    },
 | 
				
			||||||
 | 
					                    big_slots: StatePartAllocationLayout<BigSlots> {
 | 
				
			||||||
 | 
					                        len: 1,
 | 
				
			||||||
 | 
					                        debug_data: [
 | 
				
			||||||
 | 
					                            SlotDebugData {
 | 
				
			||||||
 | 
					                                name: "InstantiatedModule(connect_const_reset: connect_const_reset).connect_const_reset::reset_out",
 | 
				
			||||||
 | 
					                                ty: AsyncReset,
 | 
				
			||||||
 | 
					                            },
 | 
				
			||||||
 | 
					                        ],
 | 
				
			||||||
 | 
					                        ..
 | 
				
			||||||
 | 
					                    },
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                body: Scalar,
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            range: TypeIndexRange {
 | 
				
			||||||
 | 
					                small_slots: StatePartIndexRange<SmallSlots> { start: 0, len: 0 },
 | 
				
			||||||
 | 
					                big_slots: StatePartIndexRange<BigSlots> { start: 0, len: 1 },
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            write: None,
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    made_initial_step: true,
 | 
				
			||||||
 | 
					    needs_settle: false,
 | 
				
			||||||
 | 
					    trace_decls: TraceModule {
 | 
				
			||||||
 | 
					        name: "connect_const_reset",
 | 
				
			||||||
 | 
					        children: [
 | 
				
			||||||
 | 
					            TraceModuleIO {
 | 
				
			||||||
 | 
					                name: "reset_out",
 | 
				
			||||||
 | 
					                child: TraceAsyncReset {
 | 
				
			||||||
 | 
					                    id: TraceScalarId(0),
 | 
				
			||||||
 | 
					                    name: "reset_out",
 | 
				
			||||||
 | 
					                    flow: Sink,
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                ty: AsyncReset,
 | 
				
			||||||
 | 
					                flow: Sink,
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            TraceModuleIO {
 | 
				
			||||||
 | 
					                name: "bit_out",
 | 
				
			||||||
 | 
					                child: TraceBool {
 | 
				
			||||||
 | 
					                    id: TraceScalarId(1),
 | 
				
			||||||
 | 
					                    name: "bit_out",
 | 
				
			||||||
 | 
					                    flow: Sink,
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                ty: Bool,
 | 
				
			||||||
 | 
					                flow: Sink,
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					        ],
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    traces: [
 | 
				
			||||||
 | 
					        SimTrace {
 | 
				
			||||||
 | 
					            id: TraceScalarId(0),
 | 
				
			||||||
 | 
					            kind: BigAsyncReset {
 | 
				
			||||||
 | 
					                index: StatePartIndex<BigSlots>(0),
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            state: 0x1,
 | 
				
			||||||
 | 
					            last_state: 0x1,
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        SimTrace {
 | 
				
			||||||
 | 
					            id: TraceScalarId(1),
 | 
				
			||||||
 | 
					            kind: BigBool {
 | 
				
			||||||
 | 
					                index: StatePartIndex<BigSlots>(1),
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            state: 0x1,
 | 
				
			||||||
 | 
					            last_state: 0x1,
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					    ],
 | 
				
			||||||
 | 
					    trace_writers: [
 | 
				
			||||||
 | 
					        Running(
 | 
				
			||||||
 | 
					            VcdWriter {
 | 
				
			||||||
 | 
					                finished_init: true,
 | 
				
			||||||
 | 
					                timescale: 1 ps,
 | 
				
			||||||
 | 
					                ..
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					        ),
 | 
				
			||||||
 | 
					    ],
 | 
				
			||||||
 | 
					    instant: 1 μs,
 | 
				
			||||||
 | 
					    clocks_triggered: [],
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										11
									
								
								crates/fayalite/tests/sim/expected/connect_const_reset.vcd
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								crates/fayalite/tests/sim/expected/connect_const_reset.vcd
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,11 @@
 | 
				
			||||||
 | 
					$timescale 1 ps $end
 | 
				
			||||||
 | 
					$scope module connect_const_reset $end
 | 
				
			||||||
 | 
					$var wire 1 ! reset_out $end
 | 
				
			||||||
 | 
					$var wire 1 " bit_out $end
 | 
				
			||||||
 | 
					$upscope $end
 | 
				
			||||||
 | 
					$enddefinitions $end
 | 
				
			||||||
 | 
					$dumpvars
 | 
				
			||||||
 | 
					1!
 | 
				
			||||||
 | 
					1"
 | 
				
			||||||
 | 
					$end
 | 
				
			||||||
 | 
					#1000000
 | 
				
			||||||
							
								
								
									
										509
									
								
								crates/fayalite/tests/sim/expected/counter_async.txt
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										509
									
								
								crates/fayalite/tests/sim/expected/counter_async.txt
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,509 @@
 | 
				
			||||||
 | 
					Simulation {
 | 
				
			||||||
 | 
					    state: State {
 | 
				
			||||||
 | 
					        insns: Insns {
 | 
				
			||||||
 | 
					            state_layout: StateLayout {
 | 
				
			||||||
 | 
					                ty: TypeLayout {
 | 
				
			||||||
 | 
					                    small_slots: StatePartAllocationLayout<SmallSlots> {
 | 
				
			||||||
 | 
					                        len: 4,
 | 
				
			||||||
 | 
					                        debug_data: [
 | 
				
			||||||
 | 
					                            SlotDebugData {
 | 
				
			||||||
 | 
					                                name: "",
 | 
				
			||||||
 | 
					                                ty: Bool,
 | 
				
			||||||
 | 
					                            },
 | 
				
			||||||
 | 
					                            SlotDebugData {
 | 
				
			||||||
 | 
					                                name: "",
 | 
				
			||||||
 | 
					                                ty: Bool,
 | 
				
			||||||
 | 
					                            },
 | 
				
			||||||
 | 
					                            SlotDebugData {
 | 
				
			||||||
 | 
					                                name: "",
 | 
				
			||||||
 | 
					                                ty: Bool,
 | 
				
			||||||
 | 
					                            },
 | 
				
			||||||
 | 
					                            SlotDebugData {
 | 
				
			||||||
 | 
					                                name: "",
 | 
				
			||||||
 | 
					                                ty: Bool,
 | 
				
			||||||
 | 
					                            },
 | 
				
			||||||
 | 
					                        ],
 | 
				
			||||||
 | 
					                        ..
 | 
				
			||||||
 | 
					                    },
 | 
				
			||||||
 | 
					                    big_slots: StatePartAllocationLayout<BigSlots> {
 | 
				
			||||||
 | 
					                        len: 10,
 | 
				
			||||||
 | 
					                        debug_data: [
 | 
				
			||||||
 | 
					                            SlotDebugData {
 | 
				
			||||||
 | 
					                                name: "InstantiatedModule(counter: counter).counter::cd.clk",
 | 
				
			||||||
 | 
					                                ty: Clock,
 | 
				
			||||||
 | 
					                            },
 | 
				
			||||||
 | 
					                            SlotDebugData {
 | 
				
			||||||
 | 
					                                name: "InstantiatedModule(counter: counter).counter::cd.rst",
 | 
				
			||||||
 | 
					                                ty: AsyncReset,
 | 
				
			||||||
 | 
					                            },
 | 
				
			||||||
 | 
					                            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: Bool,
 | 
				
			||||||
 | 
					                            },
 | 
				
			||||||
 | 
					                            SlotDebugData {
 | 
				
			||||||
 | 
					                                name: "",
 | 
				
			||||||
 | 
					                                ty: UInt<1>,
 | 
				
			||||||
 | 
					                            },
 | 
				
			||||||
 | 
					                            SlotDebugData {
 | 
				
			||||||
 | 
					                                name: "",
 | 
				
			||||||
 | 
					                                ty: UInt<5>,
 | 
				
			||||||
 | 
					                            },
 | 
				
			||||||
 | 
					                            SlotDebugData {
 | 
				
			||||||
 | 
					                                name: "",
 | 
				
			||||||
 | 
					                                ty: UInt<4>,
 | 
				
			||||||
 | 
					                            },
 | 
				
			||||||
 | 
					                        ],
 | 
				
			||||||
 | 
					                        ..
 | 
				
			||||||
 | 
					                    },
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            insns: [
 | 
				
			||||||
 | 
					                // at: module-XXXXXXXXXX.rs:1:1
 | 
				
			||||||
 | 
					                Const {
 | 
				
			||||||
 | 
					                    dest: StatePartIndex<BigSlots>(7), // SlotDebugData { name: "", ty: UInt<1> },
 | 
				
			||||||
 | 
					                    value: 1,
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                Copy {
 | 
				
			||||||
 | 
					                    dest: StatePartIndex<BigSlots>(6), // SlotDebugData { name: "", ty: Bool },
 | 
				
			||||||
 | 
					                    src: StatePartIndex<BigSlots>(1), // SlotDebugData { name: "InstantiatedModule(counter: counter).counter::cd.rst", ty: AsyncReset },
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                // at: module-XXXXXXXXXX.rs:3:1
 | 
				
			||||||
 | 
					                IsNonZeroDestIsSmall {
 | 
				
			||||||
 | 
					                    dest: StatePartIndex<SmallSlots>(3), // SlotDebugData { name: "", ty: Bool },
 | 
				
			||||||
 | 
					                    src: StatePartIndex<BigSlots>(1), // SlotDebugData { name: "InstantiatedModule(counter: counter).counter::cd.rst", ty: AsyncReset },
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                // at: module-XXXXXXXXXX.rs:1:1
 | 
				
			||||||
 | 
					                Const {
 | 
				
			||||||
 | 
					                    dest: StatePartIndex<BigSlots>(5), // SlotDebugData { name: "", ty: UInt<4> },
 | 
				
			||||||
 | 
					                    value: 3,
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                // at: module-XXXXXXXXXX.rs:3:1
 | 
				
			||||||
 | 
					                BranchIfZero {
 | 
				
			||||||
 | 
					                    target: 6,
 | 
				
			||||||
 | 
					                    value: StatePartIndex<BigSlots>(6), // SlotDebugData { name: "", ty: Bool },
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                Copy {
 | 
				
			||||||
 | 
					                    dest: StatePartIndex<BigSlots>(3), // SlotDebugData { name: "InstantiatedModule(counter: counter).counter::count_reg", ty: UInt<4> },
 | 
				
			||||||
 | 
					                    src: StatePartIndex<BigSlots>(5), // SlotDebugData { name: "", ty: UInt<4> },
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                // at: module-XXXXXXXXXX.rs:1:1
 | 
				
			||||||
 | 
					                Add {
 | 
				
			||||||
 | 
					                    dest: StatePartIndex<BigSlots>(8), // SlotDebugData { name: "", ty: UInt<5> },
 | 
				
			||||||
 | 
					                    lhs: StatePartIndex<BigSlots>(3), // SlotDebugData { name: "InstantiatedModule(counter: counter).counter::count_reg", ty: UInt<4> },
 | 
				
			||||||
 | 
					                    rhs: StatePartIndex<BigSlots>(7), // SlotDebugData { name: "", ty: UInt<1> },
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                CastToUInt {
 | 
				
			||||||
 | 
					                    dest: StatePartIndex<BigSlots>(9), // SlotDebugData { name: "", ty: UInt<4> },
 | 
				
			||||||
 | 
					                    src: StatePartIndex<BigSlots>(8), // SlotDebugData { name: "", ty: UInt<5> },
 | 
				
			||||||
 | 
					                    dest_width: 4,
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                // at: module-XXXXXXXXXX.rs:4:1
 | 
				
			||||||
 | 
					                Copy {
 | 
				
			||||||
 | 
					                    dest: StatePartIndex<BigSlots>(4), // SlotDebugData { name: "InstantiatedModule(counter: counter).counter::count_reg$next", ty: UInt<4> },
 | 
				
			||||||
 | 
					                    src: StatePartIndex<BigSlots>(9), // SlotDebugData { name: "", ty: UInt<4> },
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                // at: module-XXXXXXXXXX.rs:6:1
 | 
				
			||||||
 | 
					                Copy {
 | 
				
			||||||
 | 
					                    dest: StatePartIndex<BigSlots>(2), // SlotDebugData { name: "InstantiatedModule(counter: counter).counter::count", ty: UInt<4> },
 | 
				
			||||||
 | 
					                    src: StatePartIndex<BigSlots>(3), // SlotDebugData { name: "InstantiatedModule(counter: counter).counter::count_reg", ty: UInt<4> },
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                // at: module-XXXXXXXXXX.rs:3:1
 | 
				
			||||||
 | 
					                IsNonZeroDestIsSmall {
 | 
				
			||||||
 | 
					                    dest: StatePartIndex<SmallSlots>(2), // SlotDebugData { name: "", ty: Bool },
 | 
				
			||||||
 | 
					                    src: StatePartIndex<BigSlots>(0), // SlotDebugData { name: "InstantiatedModule(counter: counter).counter::cd.clk", ty: Clock },
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                AndSmall {
 | 
				
			||||||
 | 
					                    dest: StatePartIndex<SmallSlots>(1), // SlotDebugData { name: "", ty: Bool },
 | 
				
			||||||
 | 
					                    lhs: StatePartIndex<SmallSlots>(2), // SlotDebugData { name: "", ty: Bool },
 | 
				
			||||||
 | 
					                    rhs: StatePartIndex<SmallSlots>(0), // SlotDebugData { name: "", ty: Bool },
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                BranchIfSmallNonZero {
 | 
				
			||||||
 | 
					                    target: 16,
 | 
				
			||||||
 | 
					                    value: StatePartIndex<SmallSlots>(3), // SlotDebugData { name: "", ty: Bool },
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                BranchIfSmallZero {
 | 
				
			||||||
 | 
					                    target: 17,
 | 
				
			||||||
 | 
					                    value: StatePartIndex<SmallSlots>(1), // SlotDebugData { name: "", ty: Bool },
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                Copy {
 | 
				
			||||||
 | 
					                    dest: StatePartIndex<BigSlots>(3), // SlotDebugData { name: "InstantiatedModule(counter: counter).counter::count_reg", ty: UInt<4> },
 | 
				
			||||||
 | 
					                    src: StatePartIndex<BigSlots>(4), // SlotDebugData { name: "InstantiatedModule(counter: counter).counter::count_reg$next", ty: UInt<4> },
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                Branch {
 | 
				
			||||||
 | 
					                    target: 17,
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                Copy {
 | 
				
			||||||
 | 
					                    dest: StatePartIndex<BigSlots>(3), // SlotDebugData { name: "InstantiatedModule(counter: counter).counter::count_reg", ty: UInt<4> },
 | 
				
			||||||
 | 
					                    src: StatePartIndex<BigSlots>(5), // SlotDebugData { name: "", ty: UInt<4> },
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                NotSmall {
 | 
				
			||||||
 | 
					                    dest: StatePartIndex<SmallSlots>(0), // SlotDebugData { name: "", ty: Bool },
 | 
				
			||||||
 | 
					                    src: StatePartIndex<SmallSlots>(2), // SlotDebugData { name: "", ty: Bool },
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                // at: module-XXXXXXXXXX.rs:1:1
 | 
				
			||||||
 | 
					                Return,
 | 
				
			||||||
 | 
					            ],
 | 
				
			||||||
 | 
					            ..
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        pc: 18,
 | 
				
			||||||
 | 
					        small_slots: StatePart {
 | 
				
			||||||
 | 
					            value: [
 | 
				
			||||||
 | 
					                18446744073709551614,
 | 
				
			||||||
 | 
					                0,
 | 
				
			||||||
 | 
					                1,
 | 
				
			||||||
 | 
					                0,
 | 
				
			||||||
 | 
					            ],
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        big_slots: StatePart {
 | 
				
			||||||
 | 
					            value: [
 | 
				
			||||||
 | 
					                1,
 | 
				
			||||||
 | 
					                0,
 | 
				
			||||||
 | 
					                3,
 | 
				
			||||||
 | 
					                3,
 | 
				
			||||||
 | 
					                4,
 | 
				
			||||||
 | 
					                3,
 | 
				
			||||||
 | 
					                0,
 | 
				
			||||||
 | 
					                1,
 | 
				
			||||||
 | 
					                4,
 | 
				
			||||||
 | 
					                4,
 | 
				
			||||||
 | 
					            ],
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    io: Instance {
 | 
				
			||||||
 | 
					        name: <simulator>::counter,
 | 
				
			||||||
 | 
					        instantiated: Module {
 | 
				
			||||||
 | 
					            name: counter,
 | 
				
			||||||
 | 
					            ..
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    uninitialized_inputs: {},
 | 
				
			||||||
 | 
					    io_targets: {
 | 
				
			||||||
 | 
					        Instance {
 | 
				
			||||||
 | 
					            name: <simulator>::counter,
 | 
				
			||||||
 | 
					            instantiated: Module {
 | 
				
			||||||
 | 
					                name: counter,
 | 
				
			||||||
 | 
					                ..
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					        }.cd: CompiledValue {
 | 
				
			||||||
 | 
					            layout: CompiledTypeLayout {
 | 
				
			||||||
 | 
					                ty: Bundle {
 | 
				
			||||||
 | 
					                    /* offset = 0 */
 | 
				
			||||||
 | 
					                    clk: Clock,
 | 
				
			||||||
 | 
					                    /* offset = 1 */
 | 
				
			||||||
 | 
					                    rst: AsyncReset,
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                layout: TypeLayout {
 | 
				
			||||||
 | 
					                    small_slots: StatePartAllocationLayout<SmallSlots> {
 | 
				
			||||||
 | 
					                        len: 0,
 | 
				
			||||||
 | 
					                        debug_data: [],
 | 
				
			||||||
 | 
					                        ..
 | 
				
			||||||
 | 
					                    },
 | 
				
			||||||
 | 
					                    big_slots: StatePartAllocationLayout<BigSlots> {
 | 
				
			||||||
 | 
					                        len: 2,
 | 
				
			||||||
 | 
					                        debug_data: [
 | 
				
			||||||
 | 
					                            SlotDebugData {
 | 
				
			||||||
 | 
					                                name: "InstantiatedModule(counter: counter).counter::cd.clk",
 | 
				
			||||||
 | 
					                                ty: Clock,
 | 
				
			||||||
 | 
					                            },
 | 
				
			||||||
 | 
					                            SlotDebugData {
 | 
				
			||||||
 | 
					                                name: "InstantiatedModule(counter: counter).counter::cd.rst",
 | 
				
			||||||
 | 
					                                ty: AsyncReset,
 | 
				
			||||||
 | 
					                            },
 | 
				
			||||||
 | 
					                        ],
 | 
				
			||||||
 | 
					                        ..
 | 
				
			||||||
 | 
					                    },
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                body: Bundle {
 | 
				
			||||||
 | 
					                    fields: [
 | 
				
			||||||
 | 
					                        CompiledBundleField {
 | 
				
			||||||
 | 
					                            offset: TypeIndex {
 | 
				
			||||||
 | 
					                                small_slots: StatePartIndex<SmallSlots>(0),
 | 
				
			||||||
 | 
					                                big_slots: StatePartIndex<BigSlots>(0),
 | 
				
			||||||
 | 
					                            },
 | 
				
			||||||
 | 
					                            ty: CompiledTypeLayout {
 | 
				
			||||||
 | 
					                                ty: Clock,
 | 
				
			||||||
 | 
					                                layout: TypeLayout {
 | 
				
			||||||
 | 
					                                    small_slots: StatePartAllocationLayout<SmallSlots> {
 | 
				
			||||||
 | 
					                                        len: 0,
 | 
				
			||||||
 | 
					                                        debug_data: [],
 | 
				
			||||||
 | 
					                                        ..
 | 
				
			||||||
 | 
					                                    },
 | 
				
			||||||
 | 
					                                    big_slots: StatePartAllocationLayout<BigSlots> {
 | 
				
			||||||
 | 
					                                        len: 1,
 | 
				
			||||||
 | 
					                                        debug_data: [
 | 
				
			||||||
 | 
					                                            SlotDebugData {
 | 
				
			||||||
 | 
					                                                name: "",
 | 
				
			||||||
 | 
					                                                ty: Clock,
 | 
				
			||||||
 | 
					                                            },
 | 
				
			||||||
 | 
					                                        ],
 | 
				
			||||||
 | 
					                                        ..
 | 
				
			||||||
 | 
					                                    },
 | 
				
			||||||
 | 
					                                },
 | 
				
			||||||
 | 
					                                body: Scalar,
 | 
				
			||||||
 | 
					                            },
 | 
				
			||||||
 | 
					                        },
 | 
				
			||||||
 | 
					                        CompiledBundleField {
 | 
				
			||||||
 | 
					                            offset: TypeIndex {
 | 
				
			||||||
 | 
					                                small_slots: StatePartIndex<SmallSlots>(0),
 | 
				
			||||||
 | 
					                                big_slots: StatePartIndex<BigSlots>(1),
 | 
				
			||||||
 | 
					                            },
 | 
				
			||||||
 | 
					                            ty: CompiledTypeLayout {
 | 
				
			||||||
 | 
					                                ty: AsyncReset,
 | 
				
			||||||
 | 
					                                layout: TypeLayout {
 | 
				
			||||||
 | 
					                                    small_slots: StatePartAllocationLayout<SmallSlots> {
 | 
				
			||||||
 | 
					                                        len: 0,
 | 
				
			||||||
 | 
					                                        debug_data: [],
 | 
				
			||||||
 | 
					                                        ..
 | 
				
			||||||
 | 
					                                    },
 | 
				
			||||||
 | 
					                                    big_slots: StatePartAllocationLayout<BigSlots> {
 | 
				
			||||||
 | 
					                                        len: 1,
 | 
				
			||||||
 | 
					                                        debug_data: [
 | 
				
			||||||
 | 
					                                            SlotDebugData {
 | 
				
			||||||
 | 
					                                                name: "",
 | 
				
			||||||
 | 
					                                                ty: AsyncReset,
 | 
				
			||||||
 | 
					                                            },
 | 
				
			||||||
 | 
					                                        ],
 | 
				
			||||||
 | 
					                                        ..
 | 
				
			||||||
 | 
					                                    },
 | 
				
			||||||
 | 
					                                },
 | 
				
			||||||
 | 
					                                body: Scalar,
 | 
				
			||||||
 | 
					                            },
 | 
				
			||||||
 | 
					                        },
 | 
				
			||||||
 | 
					                    ],
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            range: TypeIndexRange {
 | 
				
			||||||
 | 
					                small_slots: StatePartIndexRange<SmallSlots> { start: 0, len: 0 },
 | 
				
			||||||
 | 
					                big_slots: StatePartIndexRange<BigSlots> { start: 0, len: 2 },
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            write: None,
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        Instance {
 | 
				
			||||||
 | 
					            name: <simulator>::counter,
 | 
				
			||||||
 | 
					            instantiated: Module {
 | 
				
			||||||
 | 
					                name: counter,
 | 
				
			||||||
 | 
					                ..
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					        }.cd.clk: CompiledValue {
 | 
				
			||||||
 | 
					            layout: CompiledTypeLayout {
 | 
				
			||||||
 | 
					                ty: Clock,
 | 
				
			||||||
 | 
					                layout: TypeLayout {
 | 
				
			||||||
 | 
					                    small_slots: StatePartAllocationLayout<SmallSlots> {
 | 
				
			||||||
 | 
					                        len: 0,
 | 
				
			||||||
 | 
					                        debug_data: [],
 | 
				
			||||||
 | 
					                        ..
 | 
				
			||||||
 | 
					                    },
 | 
				
			||||||
 | 
					                    big_slots: StatePartAllocationLayout<BigSlots> {
 | 
				
			||||||
 | 
					                        len: 1,
 | 
				
			||||||
 | 
					                        debug_data: [
 | 
				
			||||||
 | 
					                            SlotDebugData {
 | 
				
			||||||
 | 
					                                name: "",
 | 
				
			||||||
 | 
					                                ty: Clock,
 | 
				
			||||||
 | 
					                            },
 | 
				
			||||||
 | 
					                        ],
 | 
				
			||||||
 | 
					                        ..
 | 
				
			||||||
 | 
					                    },
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                body: Scalar,
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            range: TypeIndexRange {
 | 
				
			||||||
 | 
					                small_slots: StatePartIndexRange<SmallSlots> { start: 0, len: 0 },
 | 
				
			||||||
 | 
					                big_slots: StatePartIndexRange<BigSlots> { start: 0, len: 1 },
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            write: None,
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        Instance {
 | 
				
			||||||
 | 
					            name: <simulator>::counter,
 | 
				
			||||||
 | 
					            instantiated: Module {
 | 
				
			||||||
 | 
					                name: counter,
 | 
				
			||||||
 | 
					                ..
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					        }.cd.rst: CompiledValue {
 | 
				
			||||||
 | 
					            layout: CompiledTypeLayout {
 | 
				
			||||||
 | 
					                ty: AsyncReset,
 | 
				
			||||||
 | 
					                layout: TypeLayout {
 | 
				
			||||||
 | 
					                    small_slots: StatePartAllocationLayout<SmallSlots> {
 | 
				
			||||||
 | 
					                        len: 0,
 | 
				
			||||||
 | 
					                        debug_data: [],
 | 
				
			||||||
 | 
					                        ..
 | 
				
			||||||
 | 
					                    },
 | 
				
			||||||
 | 
					                    big_slots: StatePartAllocationLayout<BigSlots> {
 | 
				
			||||||
 | 
					                        len: 1,
 | 
				
			||||||
 | 
					                        debug_data: [
 | 
				
			||||||
 | 
					                            SlotDebugData {
 | 
				
			||||||
 | 
					                                name: "",
 | 
				
			||||||
 | 
					                                ty: AsyncReset,
 | 
				
			||||||
 | 
					                            },
 | 
				
			||||||
 | 
					                        ],
 | 
				
			||||||
 | 
					                        ..
 | 
				
			||||||
 | 
					                    },
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                body: Scalar,
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            range: TypeIndexRange {
 | 
				
			||||||
 | 
					                small_slots: StatePartIndexRange<SmallSlots> { start: 0, len: 0 },
 | 
				
			||||||
 | 
					                big_slots: StatePartIndexRange<BigSlots> { start: 1, len: 1 },
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            write: None,
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        Instance {
 | 
				
			||||||
 | 
					            name: <simulator>::counter,
 | 
				
			||||||
 | 
					            instantiated: Module {
 | 
				
			||||||
 | 
					                name: counter,
 | 
				
			||||||
 | 
					                ..
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					        }.count: CompiledValue {
 | 
				
			||||||
 | 
					            layout: CompiledTypeLayout {
 | 
				
			||||||
 | 
					                ty: UInt<4>,
 | 
				
			||||||
 | 
					                layout: TypeLayout {
 | 
				
			||||||
 | 
					                    small_slots: StatePartAllocationLayout<SmallSlots> {
 | 
				
			||||||
 | 
					                        len: 0,
 | 
				
			||||||
 | 
					                        debug_data: [],
 | 
				
			||||||
 | 
					                        ..
 | 
				
			||||||
 | 
					                    },
 | 
				
			||||||
 | 
					                    big_slots: StatePartAllocationLayout<BigSlots> {
 | 
				
			||||||
 | 
					                        len: 1,
 | 
				
			||||||
 | 
					                        debug_data: [
 | 
				
			||||||
 | 
					                            SlotDebugData {
 | 
				
			||||||
 | 
					                                name: "InstantiatedModule(counter: counter).counter::count",
 | 
				
			||||||
 | 
					                                ty: UInt<4>,
 | 
				
			||||||
 | 
					                            },
 | 
				
			||||||
 | 
					                        ],
 | 
				
			||||||
 | 
					                        ..
 | 
				
			||||||
 | 
					                    },
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                body: Scalar,
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            range: TypeIndexRange {
 | 
				
			||||||
 | 
					                small_slots: StatePartIndexRange<SmallSlots> { start: 0, len: 0 },
 | 
				
			||||||
 | 
					                big_slots: StatePartIndexRange<BigSlots> { 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 {
 | 
				
			||||||
 | 
					                            id: TraceScalarId(0),
 | 
				
			||||||
 | 
					                            name: "clk",
 | 
				
			||||||
 | 
					                            flow: Source,
 | 
				
			||||||
 | 
					                        },
 | 
				
			||||||
 | 
					                        TraceAsyncReset {
 | 
				
			||||||
 | 
					                            id: TraceScalarId(1),
 | 
				
			||||||
 | 
					                            name: "rst",
 | 
				
			||||||
 | 
					                            flow: Source,
 | 
				
			||||||
 | 
					                        },
 | 
				
			||||||
 | 
					                    ],
 | 
				
			||||||
 | 
					                    ty: Bundle {
 | 
				
			||||||
 | 
					                        /* offset = 0 */
 | 
				
			||||||
 | 
					                        clk: Clock,
 | 
				
			||||||
 | 
					                        /* offset = 1 */
 | 
				
			||||||
 | 
					                        rst: AsyncReset,
 | 
				
			||||||
 | 
					                    },
 | 
				
			||||||
 | 
					                    flow: Source,
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                ty: Bundle {
 | 
				
			||||||
 | 
					                    /* offset = 0 */
 | 
				
			||||||
 | 
					                    clk: Clock,
 | 
				
			||||||
 | 
					                    /* offset = 1 */
 | 
				
			||||||
 | 
					                    rst: AsyncReset,
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                flow: Source,
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            TraceModuleIO {
 | 
				
			||||||
 | 
					                name: "count",
 | 
				
			||||||
 | 
					                child: TraceUInt {
 | 
				
			||||||
 | 
					                    id: TraceScalarId(2),
 | 
				
			||||||
 | 
					                    name: "count",
 | 
				
			||||||
 | 
					                    ty: UInt<4>,
 | 
				
			||||||
 | 
					                    flow: Sink,
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                ty: UInt<4>,
 | 
				
			||||||
 | 
					                flow: Sink,
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            TraceReg {
 | 
				
			||||||
 | 
					                name: "count_reg",
 | 
				
			||||||
 | 
					                child: TraceUInt {
 | 
				
			||||||
 | 
					                    id: TraceScalarId(3),
 | 
				
			||||||
 | 
					                    name: "count_reg",
 | 
				
			||||||
 | 
					                    ty: UInt<4>,
 | 
				
			||||||
 | 
					                    flow: Duplex,
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                ty: UInt<4>,
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					        ],
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    traces: [
 | 
				
			||||||
 | 
					        SimTrace {
 | 
				
			||||||
 | 
					            id: TraceScalarId(0),
 | 
				
			||||||
 | 
					            kind: BigClock {
 | 
				
			||||||
 | 
					                index: StatePartIndex<BigSlots>(0),
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            state: 0x1,
 | 
				
			||||||
 | 
					            last_state: 0x1,
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        SimTrace {
 | 
				
			||||||
 | 
					            id: TraceScalarId(1),
 | 
				
			||||||
 | 
					            kind: BigAsyncReset {
 | 
				
			||||||
 | 
					                index: StatePartIndex<BigSlots>(1),
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            state: 0x0,
 | 
				
			||||||
 | 
					            last_state: 0x0,
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        SimTrace {
 | 
				
			||||||
 | 
					            id: TraceScalarId(2),
 | 
				
			||||||
 | 
					            kind: BigUInt {
 | 
				
			||||||
 | 
					                index: StatePartIndex<BigSlots>(2),
 | 
				
			||||||
 | 
					                ty: UInt<4>,
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            state: 0x3,
 | 
				
			||||||
 | 
					            last_state: 0x2,
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        SimTrace {
 | 
				
			||||||
 | 
					            id: TraceScalarId(3),
 | 
				
			||||||
 | 
					            kind: BigUInt {
 | 
				
			||||||
 | 
					                index: StatePartIndex<BigSlots>(3),
 | 
				
			||||||
 | 
					                ty: UInt<4>,
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            state: 0x3,
 | 
				
			||||||
 | 
					            last_state: 0x3,
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					    ],
 | 
				
			||||||
 | 
					    trace_writers: [
 | 
				
			||||||
 | 
					        Running(
 | 
				
			||||||
 | 
					            VcdWriter {
 | 
				
			||||||
 | 
					                finished_init: true,
 | 
				
			||||||
 | 
					                timescale: 1 ps,
 | 
				
			||||||
 | 
					                ..
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					        ),
 | 
				
			||||||
 | 
					    ],
 | 
				
			||||||
 | 
					    instant: 66 μs,
 | 
				
			||||||
 | 
					    clocks_triggered: [
 | 
				
			||||||
 | 
					        StatePartIndex<SmallSlots>(1),
 | 
				
			||||||
 | 
					    ],
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										217
									
								
								crates/fayalite/tests/sim/expected/counter_async.vcd
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										217
									
								
								crates/fayalite/tests/sim/expected/counter_async.vcd
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,217 @@
 | 
				
			||||||
 | 
					$timescale 1 ps $end
 | 
				
			||||||
 | 
					$scope module counter $end
 | 
				
			||||||
 | 
					$scope struct cd $end
 | 
				
			||||||
 | 
					$var wire 1 ! clk $end
 | 
				
			||||||
 | 
					$var wire 1 " rst $end
 | 
				
			||||||
 | 
					$upscope $end
 | 
				
			||||||
 | 
					$var wire 4 # count $end
 | 
				
			||||||
 | 
					$var reg 4 $ count_reg $end
 | 
				
			||||||
 | 
					$upscope $end
 | 
				
			||||||
 | 
					$enddefinitions $end
 | 
				
			||||||
 | 
					$dumpvars
 | 
				
			||||||
 | 
					0!
 | 
				
			||||||
 | 
					0"
 | 
				
			||||||
 | 
					b0 #
 | 
				
			||||||
 | 
					b0 $
 | 
				
			||||||
 | 
					$end
 | 
				
			||||||
 | 
					#500000
 | 
				
			||||||
 | 
					1"
 | 
				
			||||||
 | 
					b11 #
 | 
				
			||||||
 | 
					b11 $
 | 
				
			||||||
 | 
					#1000000
 | 
				
			||||||
 | 
					1!
 | 
				
			||||||
 | 
					#1500000
 | 
				
			||||||
 | 
					0"
 | 
				
			||||||
 | 
					#2000000
 | 
				
			||||||
 | 
					0!
 | 
				
			||||||
 | 
					#3000000
 | 
				
			||||||
 | 
					1!
 | 
				
			||||||
 | 
					b100 $
 | 
				
			||||||
 | 
					b100 #
 | 
				
			||||||
 | 
					#4000000
 | 
				
			||||||
 | 
					0!
 | 
				
			||||||
 | 
					#5000000
 | 
				
			||||||
 | 
					1!
 | 
				
			||||||
 | 
					b101 $
 | 
				
			||||||
 | 
					b101 #
 | 
				
			||||||
 | 
					#6000000
 | 
				
			||||||
 | 
					0!
 | 
				
			||||||
 | 
					#7000000
 | 
				
			||||||
 | 
					1!
 | 
				
			||||||
 | 
					b110 $
 | 
				
			||||||
 | 
					b110 #
 | 
				
			||||||
 | 
					#8000000
 | 
				
			||||||
 | 
					0!
 | 
				
			||||||
 | 
					#9000000
 | 
				
			||||||
 | 
					1!
 | 
				
			||||||
 | 
					b111 $
 | 
				
			||||||
 | 
					b111 #
 | 
				
			||||||
 | 
					#10000000
 | 
				
			||||||
 | 
					0!
 | 
				
			||||||
 | 
					#11000000
 | 
				
			||||||
 | 
					1!
 | 
				
			||||||
 | 
					b1000 $
 | 
				
			||||||
 | 
					b1000 #
 | 
				
			||||||
 | 
					#12000000
 | 
				
			||||||
 | 
					0!
 | 
				
			||||||
 | 
					#13000000
 | 
				
			||||||
 | 
					1!
 | 
				
			||||||
 | 
					b1001 $
 | 
				
			||||||
 | 
					b1001 #
 | 
				
			||||||
 | 
					#14000000
 | 
				
			||||||
 | 
					0!
 | 
				
			||||||
 | 
					#15000000
 | 
				
			||||||
 | 
					1!
 | 
				
			||||||
 | 
					b1010 $
 | 
				
			||||||
 | 
					b1010 #
 | 
				
			||||||
 | 
					#16000000
 | 
				
			||||||
 | 
					0!
 | 
				
			||||||
 | 
					#17000000
 | 
				
			||||||
 | 
					1!
 | 
				
			||||||
 | 
					b1011 $
 | 
				
			||||||
 | 
					b1011 #
 | 
				
			||||||
 | 
					#18000000
 | 
				
			||||||
 | 
					0!
 | 
				
			||||||
 | 
					#19000000
 | 
				
			||||||
 | 
					1!
 | 
				
			||||||
 | 
					b1100 $
 | 
				
			||||||
 | 
					b1100 #
 | 
				
			||||||
 | 
					#20000000
 | 
				
			||||||
 | 
					0!
 | 
				
			||||||
 | 
					#21000000
 | 
				
			||||||
 | 
					1!
 | 
				
			||||||
 | 
					b1101 $
 | 
				
			||||||
 | 
					b1101 #
 | 
				
			||||||
 | 
					#22000000
 | 
				
			||||||
 | 
					0!
 | 
				
			||||||
 | 
					#23000000
 | 
				
			||||||
 | 
					1!
 | 
				
			||||||
 | 
					b1110 $
 | 
				
			||||||
 | 
					b1110 #
 | 
				
			||||||
 | 
					#24000000
 | 
				
			||||||
 | 
					0!
 | 
				
			||||||
 | 
					#25000000
 | 
				
			||||||
 | 
					1!
 | 
				
			||||||
 | 
					b1111 $
 | 
				
			||||||
 | 
					b1111 #
 | 
				
			||||||
 | 
					#26000000
 | 
				
			||||||
 | 
					0!
 | 
				
			||||||
 | 
					#27000000
 | 
				
			||||||
 | 
					1!
 | 
				
			||||||
 | 
					b0 $
 | 
				
			||||||
 | 
					b0 #
 | 
				
			||||||
 | 
					#28000000
 | 
				
			||||||
 | 
					0!
 | 
				
			||||||
 | 
					#29000000
 | 
				
			||||||
 | 
					1!
 | 
				
			||||||
 | 
					b1 $
 | 
				
			||||||
 | 
					b1 #
 | 
				
			||||||
 | 
					#30000000
 | 
				
			||||||
 | 
					0!
 | 
				
			||||||
 | 
					#31000000
 | 
				
			||||||
 | 
					1!
 | 
				
			||||||
 | 
					b10 $
 | 
				
			||||||
 | 
					b10 #
 | 
				
			||||||
 | 
					#32000000
 | 
				
			||||||
 | 
					0!
 | 
				
			||||||
 | 
					#33000000
 | 
				
			||||||
 | 
					1!
 | 
				
			||||||
 | 
					b11 $
 | 
				
			||||||
 | 
					b11 #
 | 
				
			||||||
 | 
					#34000000
 | 
				
			||||||
 | 
					0!
 | 
				
			||||||
 | 
					#35000000
 | 
				
			||||||
 | 
					1!
 | 
				
			||||||
 | 
					b100 $
 | 
				
			||||||
 | 
					b100 #
 | 
				
			||||||
 | 
					#36000000
 | 
				
			||||||
 | 
					0!
 | 
				
			||||||
 | 
					#37000000
 | 
				
			||||||
 | 
					1!
 | 
				
			||||||
 | 
					b101 $
 | 
				
			||||||
 | 
					b101 #
 | 
				
			||||||
 | 
					#38000000
 | 
				
			||||||
 | 
					0!
 | 
				
			||||||
 | 
					#39000000
 | 
				
			||||||
 | 
					1!
 | 
				
			||||||
 | 
					b110 $
 | 
				
			||||||
 | 
					b110 #
 | 
				
			||||||
 | 
					#40000000
 | 
				
			||||||
 | 
					0!
 | 
				
			||||||
 | 
					#41000000
 | 
				
			||||||
 | 
					1!
 | 
				
			||||||
 | 
					b111 $
 | 
				
			||||||
 | 
					b111 #
 | 
				
			||||||
 | 
					#42000000
 | 
				
			||||||
 | 
					0!
 | 
				
			||||||
 | 
					#43000000
 | 
				
			||||||
 | 
					1!
 | 
				
			||||||
 | 
					b1000 $
 | 
				
			||||||
 | 
					b1000 #
 | 
				
			||||||
 | 
					#44000000
 | 
				
			||||||
 | 
					0!
 | 
				
			||||||
 | 
					#45000000
 | 
				
			||||||
 | 
					1!
 | 
				
			||||||
 | 
					b1001 $
 | 
				
			||||||
 | 
					b1001 #
 | 
				
			||||||
 | 
					#46000000
 | 
				
			||||||
 | 
					0!
 | 
				
			||||||
 | 
					#47000000
 | 
				
			||||||
 | 
					1!
 | 
				
			||||||
 | 
					b1010 $
 | 
				
			||||||
 | 
					b1010 #
 | 
				
			||||||
 | 
					#48000000
 | 
				
			||||||
 | 
					0!
 | 
				
			||||||
 | 
					#49000000
 | 
				
			||||||
 | 
					1!
 | 
				
			||||||
 | 
					b1011 $
 | 
				
			||||||
 | 
					b1011 #
 | 
				
			||||||
 | 
					#50000000
 | 
				
			||||||
 | 
					0!
 | 
				
			||||||
 | 
					#51000000
 | 
				
			||||||
 | 
					1!
 | 
				
			||||||
 | 
					b1100 $
 | 
				
			||||||
 | 
					b1100 #
 | 
				
			||||||
 | 
					#52000000
 | 
				
			||||||
 | 
					0!
 | 
				
			||||||
 | 
					#53000000
 | 
				
			||||||
 | 
					1!
 | 
				
			||||||
 | 
					b1101 $
 | 
				
			||||||
 | 
					b1101 #
 | 
				
			||||||
 | 
					#54000000
 | 
				
			||||||
 | 
					0!
 | 
				
			||||||
 | 
					#55000000
 | 
				
			||||||
 | 
					1!
 | 
				
			||||||
 | 
					b1110 $
 | 
				
			||||||
 | 
					b1110 #
 | 
				
			||||||
 | 
					#56000000
 | 
				
			||||||
 | 
					0!
 | 
				
			||||||
 | 
					#57000000
 | 
				
			||||||
 | 
					1!
 | 
				
			||||||
 | 
					b1111 $
 | 
				
			||||||
 | 
					b1111 #
 | 
				
			||||||
 | 
					#58000000
 | 
				
			||||||
 | 
					0!
 | 
				
			||||||
 | 
					#59000000
 | 
				
			||||||
 | 
					1!
 | 
				
			||||||
 | 
					b0 $
 | 
				
			||||||
 | 
					b0 #
 | 
				
			||||||
 | 
					#60000000
 | 
				
			||||||
 | 
					0!
 | 
				
			||||||
 | 
					#61000000
 | 
				
			||||||
 | 
					1!
 | 
				
			||||||
 | 
					b1 $
 | 
				
			||||||
 | 
					b1 #
 | 
				
			||||||
 | 
					#62000000
 | 
				
			||||||
 | 
					0!
 | 
				
			||||||
 | 
					#63000000
 | 
				
			||||||
 | 
					1!
 | 
				
			||||||
 | 
					b10 $
 | 
				
			||||||
 | 
					b10 #
 | 
				
			||||||
 | 
					#64000000
 | 
				
			||||||
 | 
					0!
 | 
				
			||||||
 | 
					#65000000
 | 
				
			||||||
 | 
					1!
 | 
				
			||||||
 | 
					b11 $
 | 
				
			||||||
 | 
					b11 #
 | 
				
			||||||
 | 
					#66000000
 | 
				
			||||||
							
								
								
									
										490
									
								
								crates/fayalite/tests/sim/expected/counter_sync.txt
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										490
									
								
								crates/fayalite/tests/sim/expected/counter_sync.txt
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,490 @@
 | 
				
			||||||
 | 
					Simulation {
 | 
				
			||||||
 | 
					    state: State {
 | 
				
			||||||
 | 
					        insns: Insns {
 | 
				
			||||||
 | 
					            state_layout: StateLayout {
 | 
				
			||||||
 | 
					                ty: TypeLayout {
 | 
				
			||||||
 | 
					                    small_slots: StatePartAllocationLayout<SmallSlots> {
 | 
				
			||||||
 | 
					                        len: 4,
 | 
				
			||||||
 | 
					                        debug_data: [
 | 
				
			||||||
 | 
					                            SlotDebugData {
 | 
				
			||||||
 | 
					                                name: "",
 | 
				
			||||||
 | 
					                                ty: Bool,
 | 
				
			||||||
 | 
					                            },
 | 
				
			||||||
 | 
					                            SlotDebugData {
 | 
				
			||||||
 | 
					                                name: "",
 | 
				
			||||||
 | 
					                                ty: Bool,
 | 
				
			||||||
 | 
					                            },
 | 
				
			||||||
 | 
					                            SlotDebugData {
 | 
				
			||||||
 | 
					                                name: "",
 | 
				
			||||||
 | 
					                                ty: Bool,
 | 
				
			||||||
 | 
					                            },
 | 
				
			||||||
 | 
					                            SlotDebugData {
 | 
				
			||||||
 | 
					                                name: "",
 | 
				
			||||||
 | 
					                                ty: Bool,
 | 
				
			||||||
 | 
					                            },
 | 
				
			||||||
 | 
					                        ],
 | 
				
			||||||
 | 
					                        ..
 | 
				
			||||||
 | 
					                    },
 | 
				
			||||||
 | 
					                    big_slots: StatePartAllocationLayout<BigSlots> {
 | 
				
			||||||
 | 
					                        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>,
 | 
				
			||||||
 | 
					                            },
 | 
				
			||||||
 | 
					                        ],
 | 
				
			||||||
 | 
					                        ..
 | 
				
			||||||
 | 
					                    },
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            insns: [
 | 
				
			||||||
 | 
					                // at: module-XXXXXXXXXX.rs:6:1
 | 
				
			||||||
 | 
					                Copy {
 | 
				
			||||||
 | 
					                    dest: StatePartIndex<BigSlots>(2), // SlotDebugData { name: "InstantiatedModule(counter: counter).counter::count", ty: UInt<4> },
 | 
				
			||||||
 | 
					                    src: StatePartIndex<BigSlots>(3), // SlotDebugData { name: "InstantiatedModule(counter: counter).counter::count_reg", ty: UInt<4> },
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                // at: module-XXXXXXXXXX.rs:1:1
 | 
				
			||||||
 | 
					                Const {
 | 
				
			||||||
 | 
					                    dest: StatePartIndex<BigSlots>(6), // SlotDebugData { name: "", ty: UInt<1> },
 | 
				
			||||||
 | 
					                    value: 1,
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                Add {
 | 
				
			||||||
 | 
					                    dest: StatePartIndex<BigSlots>(7), // SlotDebugData { name: "", ty: UInt<5> },
 | 
				
			||||||
 | 
					                    lhs: StatePartIndex<BigSlots>(3), // SlotDebugData { name: "InstantiatedModule(counter: counter).counter::count_reg", ty: UInt<4> },
 | 
				
			||||||
 | 
					                    rhs: StatePartIndex<BigSlots>(6), // SlotDebugData { name: "", ty: UInt<1> },
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                CastToUInt {
 | 
				
			||||||
 | 
					                    dest: StatePartIndex<BigSlots>(8), // SlotDebugData { name: "", ty: UInt<4> },
 | 
				
			||||||
 | 
					                    src: StatePartIndex<BigSlots>(7), // SlotDebugData { name: "", ty: UInt<5> },
 | 
				
			||||||
 | 
					                    dest_width: 4,
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                // at: module-XXXXXXXXXX.rs:4:1
 | 
				
			||||||
 | 
					                Copy {
 | 
				
			||||||
 | 
					                    dest: StatePartIndex<BigSlots>(4), // SlotDebugData { name: "InstantiatedModule(counter: counter).counter::count_reg$next", ty: UInt<4> },
 | 
				
			||||||
 | 
					                    src: StatePartIndex<BigSlots>(8), // SlotDebugData { name: "", ty: UInt<4> },
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                // at: module-XXXXXXXXXX.rs:3:1
 | 
				
			||||||
 | 
					                IsNonZeroDestIsSmall {
 | 
				
			||||||
 | 
					                    dest: StatePartIndex<SmallSlots>(3), // SlotDebugData { name: "", ty: Bool },
 | 
				
			||||||
 | 
					                    src: StatePartIndex<BigSlots>(1), // SlotDebugData { name: "InstantiatedModule(counter: counter).counter::cd.rst", ty: SyncReset },
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                // at: module-XXXXXXXXXX.rs:1:1
 | 
				
			||||||
 | 
					                Const {
 | 
				
			||||||
 | 
					                    dest: StatePartIndex<BigSlots>(5), // SlotDebugData { name: "", ty: UInt<4> },
 | 
				
			||||||
 | 
					                    value: 3,
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                // at: module-XXXXXXXXXX.rs:3:1
 | 
				
			||||||
 | 
					                IsNonZeroDestIsSmall {
 | 
				
			||||||
 | 
					                    dest: StatePartIndex<SmallSlots>(2), // SlotDebugData { name: "", ty: Bool },
 | 
				
			||||||
 | 
					                    src: StatePartIndex<BigSlots>(0), // SlotDebugData { name: "InstantiatedModule(counter: counter).counter::cd.clk", ty: Clock },
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                AndSmall {
 | 
				
			||||||
 | 
					                    dest: StatePartIndex<SmallSlots>(1), // SlotDebugData { name: "", ty: Bool },
 | 
				
			||||||
 | 
					                    lhs: StatePartIndex<SmallSlots>(2), // SlotDebugData { name: "", ty: Bool },
 | 
				
			||||||
 | 
					                    rhs: StatePartIndex<SmallSlots>(0), // SlotDebugData { name: "", ty: Bool },
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                BranchIfSmallZero {
 | 
				
			||||||
 | 
					                    target: 14,
 | 
				
			||||||
 | 
					                    value: StatePartIndex<SmallSlots>(1), // SlotDebugData { name: "", ty: Bool },
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                BranchIfSmallNonZero {
 | 
				
			||||||
 | 
					                    target: 13,
 | 
				
			||||||
 | 
					                    value: StatePartIndex<SmallSlots>(3), // SlotDebugData { name: "", ty: Bool },
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                Copy {
 | 
				
			||||||
 | 
					                    dest: StatePartIndex<BigSlots>(3), // SlotDebugData { name: "InstantiatedModule(counter: counter).counter::count_reg", ty: UInt<4> },
 | 
				
			||||||
 | 
					                    src: StatePartIndex<BigSlots>(4), // SlotDebugData { name: "InstantiatedModule(counter: counter).counter::count_reg$next", ty: UInt<4> },
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                Branch {
 | 
				
			||||||
 | 
					                    target: 14,
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                Copy {
 | 
				
			||||||
 | 
					                    dest: StatePartIndex<BigSlots>(3), // SlotDebugData { name: "InstantiatedModule(counter: counter).counter::count_reg", ty: UInt<4> },
 | 
				
			||||||
 | 
					                    src: StatePartIndex<BigSlots>(5), // SlotDebugData { name: "", ty: UInt<4> },
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                NotSmall {
 | 
				
			||||||
 | 
					                    dest: StatePartIndex<SmallSlots>(0), // SlotDebugData { name: "", ty: Bool },
 | 
				
			||||||
 | 
					                    src: StatePartIndex<SmallSlots>(2), // SlotDebugData { name: "", ty: Bool },
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                // at: module-XXXXXXXXXX.rs:1:1
 | 
				
			||||||
 | 
					                Return,
 | 
				
			||||||
 | 
					            ],
 | 
				
			||||||
 | 
					            ..
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        pc: 15,
 | 
				
			||||||
 | 
					        small_slots: StatePart {
 | 
				
			||||||
 | 
					            value: [
 | 
				
			||||||
 | 
					                18446744073709551614,
 | 
				
			||||||
 | 
					                0,
 | 
				
			||||||
 | 
					                1,
 | 
				
			||||||
 | 
					                0,
 | 
				
			||||||
 | 
					            ],
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        big_slots: StatePart {
 | 
				
			||||||
 | 
					            value: [
 | 
				
			||||||
 | 
					                1,
 | 
				
			||||||
 | 
					                0,
 | 
				
			||||||
 | 
					                3,
 | 
				
			||||||
 | 
					                3,
 | 
				
			||||||
 | 
					                4,
 | 
				
			||||||
 | 
					                3,
 | 
				
			||||||
 | 
					                1,
 | 
				
			||||||
 | 
					                4,
 | 
				
			||||||
 | 
					                4,
 | 
				
			||||||
 | 
					            ],
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    io: Instance {
 | 
				
			||||||
 | 
					        name: <simulator>::counter,
 | 
				
			||||||
 | 
					        instantiated: Module {
 | 
				
			||||||
 | 
					            name: counter,
 | 
				
			||||||
 | 
					            ..
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    uninitialized_inputs: {},
 | 
				
			||||||
 | 
					    io_targets: {
 | 
				
			||||||
 | 
					        Instance {
 | 
				
			||||||
 | 
					            name: <simulator>::counter,
 | 
				
			||||||
 | 
					            instantiated: Module {
 | 
				
			||||||
 | 
					                name: counter,
 | 
				
			||||||
 | 
					                ..
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					        }.cd: CompiledValue {
 | 
				
			||||||
 | 
					            layout: CompiledTypeLayout {
 | 
				
			||||||
 | 
					                ty: Bundle {
 | 
				
			||||||
 | 
					                    /* offset = 0 */
 | 
				
			||||||
 | 
					                    clk: Clock,
 | 
				
			||||||
 | 
					                    /* offset = 1 */
 | 
				
			||||||
 | 
					                    rst: SyncReset,
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                layout: TypeLayout {
 | 
				
			||||||
 | 
					                    small_slots: StatePartAllocationLayout<SmallSlots> {
 | 
				
			||||||
 | 
					                        len: 0,
 | 
				
			||||||
 | 
					                        debug_data: [],
 | 
				
			||||||
 | 
					                        ..
 | 
				
			||||||
 | 
					                    },
 | 
				
			||||||
 | 
					                    big_slots: StatePartAllocationLayout<BigSlots> {
 | 
				
			||||||
 | 
					                        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<SmallSlots>(0),
 | 
				
			||||||
 | 
					                                big_slots: StatePartIndex<BigSlots>(0),
 | 
				
			||||||
 | 
					                            },
 | 
				
			||||||
 | 
					                            ty: CompiledTypeLayout {
 | 
				
			||||||
 | 
					                                ty: Clock,
 | 
				
			||||||
 | 
					                                layout: TypeLayout {
 | 
				
			||||||
 | 
					                                    small_slots: StatePartAllocationLayout<SmallSlots> {
 | 
				
			||||||
 | 
					                                        len: 0,
 | 
				
			||||||
 | 
					                                        debug_data: [],
 | 
				
			||||||
 | 
					                                        ..
 | 
				
			||||||
 | 
					                                    },
 | 
				
			||||||
 | 
					                                    big_slots: StatePartAllocationLayout<BigSlots> {
 | 
				
			||||||
 | 
					                                        len: 1,
 | 
				
			||||||
 | 
					                                        debug_data: [
 | 
				
			||||||
 | 
					                                            SlotDebugData {
 | 
				
			||||||
 | 
					                                                name: "",
 | 
				
			||||||
 | 
					                                                ty: Clock,
 | 
				
			||||||
 | 
					                                            },
 | 
				
			||||||
 | 
					                                        ],
 | 
				
			||||||
 | 
					                                        ..
 | 
				
			||||||
 | 
					                                    },
 | 
				
			||||||
 | 
					                                },
 | 
				
			||||||
 | 
					                                body: Scalar,
 | 
				
			||||||
 | 
					                            },
 | 
				
			||||||
 | 
					                        },
 | 
				
			||||||
 | 
					                        CompiledBundleField {
 | 
				
			||||||
 | 
					                            offset: TypeIndex {
 | 
				
			||||||
 | 
					                                small_slots: StatePartIndex<SmallSlots>(0),
 | 
				
			||||||
 | 
					                                big_slots: StatePartIndex<BigSlots>(1),
 | 
				
			||||||
 | 
					                            },
 | 
				
			||||||
 | 
					                            ty: CompiledTypeLayout {
 | 
				
			||||||
 | 
					                                ty: SyncReset,
 | 
				
			||||||
 | 
					                                layout: TypeLayout {
 | 
				
			||||||
 | 
					                                    small_slots: StatePartAllocationLayout<SmallSlots> {
 | 
				
			||||||
 | 
					                                        len: 0,
 | 
				
			||||||
 | 
					                                        debug_data: [],
 | 
				
			||||||
 | 
					                                        ..
 | 
				
			||||||
 | 
					                                    },
 | 
				
			||||||
 | 
					                                    big_slots: StatePartAllocationLayout<BigSlots> {
 | 
				
			||||||
 | 
					                                        len: 1,
 | 
				
			||||||
 | 
					                                        debug_data: [
 | 
				
			||||||
 | 
					                                            SlotDebugData {
 | 
				
			||||||
 | 
					                                                name: "",
 | 
				
			||||||
 | 
					                                                ty: SyncReset,
 | 
				
			||||||
 | 
					                                            },
 | 
				
			||||||
 | 
					                                        ],
 | 
				
			||||||
 | 
					                                        ..
 | 
				
			||||||
 | 
					                                    },
 | 
				
			||||||
 | 
					                                },
 | 
				
			||||||
 | 
					                                body: Scalar,
 | 
				
			||||||
 | 
					                            },
 | 
				
			||||||
 | 
					                        },
 | 
				
			||||||
 | 
					                    ],
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            range: TypeIndexRange {
 | 
				
			||||||
 | 
					                small_slots: StatePartIndexRange<SmallSlots> { start: 0, len: 0 },
 | 
				
			||||||
 | 
					                big_slots: StatePartIndexRange<BigSlots> { start: 0, len: 2 },
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            write: None,
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        Instance {
 | 
				
			||||||
 | 
					            name: <simulator>::counter,
 | 
				
			||||||
 | 
					            instantiated: Module {
 | 
				
			||||||
 | 
					                name: counter,
 | 
				
			||||||
 | 
					                ..
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					        }.cd.clk: CompiledValue {
 | 
				
			||||||
 | 
					            layout: CompiledTypeLayout {
 | 
				
			||||||
 | 
					                ty: Clock,
 | 
				
			||||||
 | 
					                layout: TypeLayout {
 | 
				
			||||||
 | 
					                    small_slots: StatePartAllocationLayout<SmallSlots> {
 | 
				
			||||||
 | 
					                        len: 0,
 | 
				
			||||||
 | 
					                        debug_data: [],
 | 
				
			||||||
 | 
					                        ..
 | 
				
			||||||
 | 
					                    },
 | 
				
			||||||
 | 
					                    big_slots: StatePartAllocationLayout<BigSlots> {
 | 
				
			||||||
 | 
					                        len: 1,
 | 
				
			||||||
 | 
					                        debug_data: [
 | 
				
			||||||
 | 
					                            SlotDebugData {
 | 
				
			||||||
 | 
					                                name: "",
 | 
				
			||||||
 | 
					                                ty: Clock,
 | 
				
			||||||
 | 
					                            },
 | 
				
			||||||
 | 
					                        ],
 | 
				
			||||||
 | 
					                        ..
 | 
				
			||||||
 | 
					                    },
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                body: Scalar,
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            range: TypeIndexRange {
 | 
				
			||||||
 | 
					                small_slots: StatePartIndexRange<SmallSlots> { start: 0, len: 0 },
 | 
				
			||||||
 | 
					                big_slots: StatePartIndexRange<BigSlots> { start: 0, len: 1 },
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            write: None,
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        Instance {
 | 
				
			||||||
 | 
					            name: <simulator>::counter,
 | 
				
			||||||
 | 
					            instantiated: Module {
 | 
				
			||||||
 | 
					                name: counter,
 | 
				
			||||||
 | 
					                ..
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					        }.cd.rst: CompiledValue {
 | 
				
			||||||
 | 
					            layout: CompiledTypeLayout {
 | 
				
			||||||
 | 
					                ty: SyncReset,
 | 
				
			||||||
 | 
					                layout: TypeLayout {
 | 
				
			||||||
 | 
					                    small_slots: StatePartAllocationLayout<SmallSlots> {
 | 
				
			||||||
 | 
					                        len: 0,
 | 
				
			||||||
 | 
					                        debug_data: [],
 | 
				
			||||||
 | 
					                        ..
 | 
				
			||||||
 | 
					                    },
 | 
				
			||||||
 | 
					                    big_slots: StatePartAllocationLayout<BigSlots> {
 | 
				
			||||||
 | 
					                        len: 1,
 | 
				
			||||||
 | 
					                        debug_data: [
 | 
				
			||||||
 | 
					                            SlotDebugData {
 | 
				
			||||||
 | 
					                                name: "",
 | 
				
			||||||
 | 
					                                ty: SyncReset,
 | 
				
			||||||
 | 
					                            },
 | 
				
			||||||
 | 
					                        ],
 | 
				
			||||||
 | 
					                        ..
 | 
				
			||||||
 | 
					                    },
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                body: Scalar,
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            range: TypeIndexRange {
 | 
				
			||||||
 | 
					                small_slots: StatePartIndexRange<SmallSlots> { start: 0, len: 0 },
 | 
				
			||||||
 | 
					                big_slots: StatePartIndexRange<BigSlots> { start: 1, len: 1 },
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            write: None,
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        Instance {
 | 
				
			||||||
 | 
					            name: <simulator>::counter,
 | 
				
			||||||
 | 
					            instantiated: Module {
 | 
				
			||||||
 | 
					                name: counter,
 | 
				
			||||||
 | 
					                ..
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					        }.count: CompiledValue {
 | 
				
			||||||
 | 
					            layout: CompiledTypeLayout {
 | 
				
			||||||
 | 
					                ty: UInt<4>,
 | 
				
			||||||
 | 
					                layout: TypeLayout {
 | 
				
			||||||
 | 
					                    small_slots: StatePartAllocationLayout<SmallSlots> {
 | 
				
			||||||
 | 
					                        len: 0,
 | 
				
			||||||
 | 
					                        debug_data: [],
 | 
				
			||||||
 | 
					                        ..
 | 
				
			||||||
 | 
					                    },
 | 
				
			||||||
 | 
					                    big_slots: StatePartAllocationLayout<BigSlots> {
 | 
				
			||||||
 | 
					                        len: 1,
 | 
				
			||||||
 | 
					                        debug_data: [
 | 
				
			||||||
 | 
					                            SlotDebugData {
 | 
				
			||||||
 | 
					                                name: "InstantiatedModule(counter: counter).counter::count",
 | 
				
			||||||
 | 
					                                ty: UInt<4>,
 | 
				
			||||||
 | 
					                            },
 | 
				
			||||||
 | 
					                        ],
 | 
				
			||||||
 | 
					                        ..
 | 
				
			||||||
 | 
					                    },
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                body: Scalar,
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            range: TypeIndexRange {
 | 
				
			||||||
 | 
					                small_slots: StatePartIndexRange<SmallSlots> { start: 0, len: 0 },
 | 
				
			||||||
 | 
					                big_slots: StatePartIndexRange<BigSlots> { 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 {
 | 
				
			||||||
 | 
					                            id: TraceScalarId(0),
 | 
				
			||||||
 | 
					                            name: "clk",
 | 
				
			||||||
 | 
					                            flow: Source,
 | 
				
			||||||
 | 
					                        },
 | 
				
			||||||
 | 
					                        TraceSyncReset {
 | 
				
			||||||
 | 
					                            id: 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 {
 | 
				
			||||||
 | 
					                    id: TraceScalarId(2),
 | 
				
			||||||
 | 
					                    name: "count",
 | 
				
			||||||
 | 
					                    ty: UInt<4>,
 | 
				
			||||||
 | 
					                    flow: Sink,
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                ty: UInt<4>,
 | 
				
			||||||
 | 
					                flow: Sink,
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            TraceReg {
 | 
				
			||||||
 | 
					                name: "count_reg",
 | 
				
			||||||
 | 
					                child: TraceUInt {
 | 
				
			||||||
 | 
					                    id: TraceScalarId(3),
 | 
				
			||||||
 | 
					                    name: "count_reg",
 | 
				
			||||||
 | 
					                    ty: UInt<4>,
 | 
				
			||||||
 | 
					                    flow: Duplex,
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                ty: UInt<4>,
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					        ],
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    traces: [
 | 
				
			||||||
 | 
					        SimTrace {
 | 
				
			||||||
 | 
					            id: TraceScalarId(0),
 | 
				
			||||||
 | 
					            kind: BigClock {
 | 
				
			||||||
 | 
					                index: StatePartIndex<BigSlots>(0),
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            state: 0x1,
 | 
				
			||||||
 | 
					            last_state: 0x1,
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        SimTrace {
 | 
				
			||||||
 | 
					            id: TraceScalarId(1),
 | 
				
			||||||
 | 
					            kind: BigSyncReset {
 | 
				
			||||||
 | 
					                index: StatePartIndex<BigSlots>(1),
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            state: 0x0,
 | 
				
			||||||
 | 
					            last_state: 0x0,
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        SimTrace {
 | 
				
			||||||
 | 
					            id: TraceScalarId(2),
 | 
				
			||||||
 | 
					            kind: BigUInt {
 | 
				
			||||||
 | 
					                index: StatePartIndex<BigSlots>(2),
 | 
				
			||||||
 | 
					                ty: UInt<4>,
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            state: 0x3,
 | 
				
			||||||
 | 
					            last_state: 0x2,
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        SimTrace {
 | 
				
			||||||
 | 
					            id: TraceScalarId(3),
 | 
				
			||||||
 | 
					            kind: BigUInt {
 | 
				
			||||||
 | 
					                index: StatePartIndex<BigSlots>(3),
 | 
				
			||||||
 | 
					                ty: UInt<4>,
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            state: 0x3,
 | 
				
			||||||
 | 
					            last_state: 0x3,
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					    ],
 | 
				
			||||||
 | 
					    trace_writers: [
 | 
				
			||||||
 | 
					        Running(
 | 
				
			||||||
 | 
					            VcdWriter {
 | 
				
			||||||
 | 
					                finished_init: true,
 | 
				
			||||||
 | 
					                timescale: 1 ps,
 | 
				
			||||||
 | 
					                ..
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					        ),
 | 
				
			||||||
 | 
					    ],
 | 
				
			||||||
 | 
					    instant: 66 μs,
 | 
				
			||||||
 | 
					    clocks_triggered: [
 | 
				
			||||||
 | 
					        StatePartIndex<SmallSlots>(1),
 | 
				
			||||||
 | 
					    ],
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										214
									
								
								crates/fayalite/tests/sim/expected/counter_sync.vcd
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										214
									
								
								crates/fayalite/tests/sim/expected/counter_sync.vcd
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,214 @@
 | 
				
			||||||
 | 
					$timescale 1 ps $end
 | 
				
			||||||
 | 
					$scope module counter $end
 | 
				
			||||||
 | 
					$scope struct cd $end
 | 
				
			||||||
 | 
					$var wire 1 ! clk $end
 | 
				
			||||||
 | 
					$var wire 1 " rst $end
 | 
				
			||||||
 | 
					$upscope $end
 | 
				
			||||||
 | 
					$var wire 4 # count $end
 | 
				
			||||||
 | 
					$var reg 4 $ count_reg $end
 | 
				
			||||||
 | 
					$upscope $end
 | 
				
			||||||
 | 
					$enddefinitions $end
 | 
				
			||||||
 | 
					$dumpvars
 | 
				
			||||||
 | 
					0!
 | 
				
			||||||
 | 
					1"
 | 
				
			||||||
 | 
					b0 #
 | 
				
			||||||
 | 
					b0 $
 | 
				
			||||||
 | 
					$end
 | 
				
			||||||
 | 
					#1000000
 | 
				
			||||||
 | 
					1!
 | 
				
			||||||
 | 
					b11 $
 | 
				
			||||||
 | 
					b11 #
 | 
				
			||||||
 | 
					0"
 | 
				
			||||||
 | 
					#2000000
 | 
				
			||||||
 | 
					0!
 | 
				
			||||||
 | 
					#3000000
 | 
				
			||||||
 | 
					1!
 | 
				
			||||||
 | 
					b100 $
 | 
				
			||||||
 | 
					b100 #
 | 
				
			||||||
 | 
					#4000000
 | 
				
			||||||
 | 
					0!
 | 
				
			||||||
 | 
					#5000000
 | 
				
			||||||
 | 
					1!
 | 
				
			||||||
 | 
					b101 $
 | 
				
			||||||
 | 
					b101 #
 | 
				
			||||||
 | 
					#6000000
 | 
				
			||||||
 | 
					0!
 | 
				
			||||||
 | 
					#7000000
 | 
				
			||||||
 | 
					1!
 | 
				
			||||||
 | 
					b110 $
 | 
				
			||||||
 | 
					b110 #
 | 
				
			||||||
 | 
					#8000000
 | 
				
			||||||
 | 
					0!
 | 
				
			||||||
 | 
					#9000000
 | 
				
			||||||
 | 
					1!
 | 
				
			||||||
 | 
					b111 $
 | 
				
			||||||
 | 
					b111 #
 | 
				
			||||||
 | 
					#10000000
 | 
				
			||||||
 | 
					0!
 | 
				
			||||||
 | 
					#11000000
 | 
				
			||||||
 | 
					1!
 | 
				
			||||||
 | 
					b1000 $
 | 
				
			||||||
 | 
					b1000 #
 | 
				
			||||||
 | 
					#12000000
 | 
				
			||||||
 | 
					0!
 | 
				
			||||||
 | 
					#13000000
 | 
				
			||||||
 | 
					1!
 | 
				
			||||||
 | 
					b1001 $
 | 
				
			||||||
 | 
					b1001 #
 | 
				
			||||||
 | 
					#14000000
 | 
				
			||||||
 | 
					0!
 | 
				
			||||||
 | 
					#15000000
 | 
				
			||||||
 | 
					1!
 | 
				
			||||||
 | 
					b1010 $
 | 
				
			||||||
 | 
					b1010 #
 | 
				
			||||||
 | 
					#16000000
 | 
				
			||||||
 | 
					0!
 | 
				
			||||||
 | 
					#17000000
 | 
				
			||||||
 | 
					1!
 | 
				
			||||||
 | 
					b1011 $
 | 
				
			||||||
 | 
					b1011 #
 | 
				
			||||||
 | 
					#18000000
 | 
				
			||||||
 | 
					0!
 | 
				
			||||||
 | 
					#19000000
 | 
				
			||||||
 | 
					1!
 | 
				
			||||||
 | 
					b1100 $
 | 
				
			||||||
 | 
					b1100 #
 | 
				
			||||||
 | 
					#20000000
 | 
				
			||||||
 | 
					0!
 | 
				
			||||||
 | 
					#21000000
 | 
				
			||||||
 | 
					1!
 | 
				
			||||||
 | 
					b1101 $
 | 
				
			||||||
 | 
					b1101 #
 | 
				
			||||||
 | 
					#22000000
 | 
				
			||||||
 | 
					0!
 | 
				
			||||||
 | 
					#23000000
 | 
				
			||||||
 | 
					1!
 | 
				
			||||||
 | 
					b1110 $
 | 
				
			||||||
 | 
					b1110 #
 | 
				
			||||||
 | 
					#24000000
 | 
				
			||||||
 | 
					0!
 | 
				
			||||||
 | 
					#25000000
 | 
				
			||||||
 | 
					1!
 | 
				
			||||||
 | 
					b1111 $
 | 
				
			||||||
 | 
					b1111 #
 | 
				
			||||||
 | 
					#26000000
 | 
				
			||||||
 | 
					0!
 | 
				
			||||||
 | 
					#27000000
 | 
				
			||||||
 | 
					1!
 | 
				
			||||||
 | 
					b0 $
 | 
				
			||||||
 | 
					b0 #
 | 
				
			||||||
 | 
					#28000000
 | 
				
			||||||
 | 
					0!
 | 
				
			||||||
 | 
					#29000000
 | 
				
			||||||
 | 
					1!
 | 
				
			||||||
 | 
					b1 $
 | 
				
			||||||
 | 
					b1 #
 | 
				
			||||||
 | 
					#30000000
 | 
				
			||||||
 | 
					0!
 | 
				
			||||||
 | 
					#31000000
 | 
				
			||||||
 | 
					1!
 | 
				
			||||||
 | 
					b10 $
 | 
				
			||||||
 | 
					b10 #
 | 
				
			||||||
 | 
					#32000000
 | 
				
			||||||
 | 
					0!
 | 
				
			||||||
 | 
					#33000000
 | 
				
			||||||
 | 
					1!
 | 
				
			||||||
 | 
					b11 $
 | 
				
			||||||
 | 
					b11 #
 | 
				
			||||||
 | 
					#34000000
 | 
				
			||||||
 | 
					0!
 | 
				
			||||||
 | 
					#35000000
 | 
				
			||||||
 | 
					1!
 | 
				
			||||||
 | 
					b100 $
 | 
				
			||||||
 | 
					b100 #
 | 
				
			||||||
 | 
					#36000000
 | 
				
			||||||
 | 
					0!
 | 
				
			||||||
 | 
					#37000000
 | 
				
			||||||
 | 
					1!
 | 
				
			||||||
 | 
					b101 $
 | 
				
			||||||
 | 
					b101 #
 | 
				
			||||||
 | 
					#38000000
 | 
				
			||||||
 | 
					0!
 | 
				
			||||||
 | 
					#39000000
 | 
				
			||||||
 | 
					1!
 | 
				
			||||||
 | 
					b110 $
 | 
				
			||||||
 | 
					b110 #
 | 
				
			||||||
 | 
					#40000000
 | 
				
			||||||
 | 
					0!
 | 
				
			||||||
 | 
					#41000000
 | 
				
			||||||
 | 
					1!
 | 
				
			||||||
 | 
					b111 $
 | 
				
			||||||
 | 
					b111 #
 | 
				
			||||||
 | 
					#42000000
 | 
				
			||||||
 | 
					0!
 | 
				
			||||||
 | 
					#43000000
 | 
				
			||||||
 | 
					1!
 | 
				
			||||||
 | 
					b1000 $
 | 
				
			||||||
 | 
					b1000 #
 | 
				
			||||||
 | 
					#44000000
 | 
				
			||||||
 | 
					0!
 | 
				
			||||||
 | 
					#45000000
 | 
				
			||||||
 | 
					1!
 | 
				
			||||||
 | 
					b1001 $
 | 
				
			||||||
 | 
					b1001 #
 | 
				
			||||||
 | 
					#46000000
 | 
				
			||||||
 | 
					0!
 | 
				
			||||||
 | 
					#47000000
 | 
				
			||||||
 | 
					1!
 | 
				
			||||||
 | 
					b1010 $
 | 
				
			||||||
 | 
					b1010 #
 | 
				
			||||||
 | 
					#48000000
 | 
				
			||||||
 | 
					0!
 | 
				
			||||||
 | 
					#49000000
 | 
				
			||||||
 | 
					1!
 | 
				
			||||||
 | 
					b1011 $
 | 
				
			||||||
 | 
					b1011 #
 | 
				
			||||||
 | 
					#50000000
 | 
				
			||||||
 | 
					0!
 | 
				
			||||||
 | 
					#51000000
 | 
				
			||||||
 | 
					1!
 | 
				
			||||||
 | 
					b1100 $
 | 
				
			||||||
 | 
					b1100 #
 | 
				
			||||||
 | 
					#52000000
 | 
				
			||||||
 | 
					0!
 | 
				
			||||||
 | 
					#53000000
 | 
				
			||||||
 | 
					1!
 | 
				
			||||||
 | 
					b1101 $
 | 
				
			||||||
 | 
					b1101 #
 | 
				
			||||||
 | 
					#54000000
 | 
				
			||||||
 | 
					0!
 | 
				
			||||||
 | 
					#55000000
 | 
				
			||||||
 | 
					1!
 | 
				
			||||||
 | 
					b1110 $
 | 
				
			||||||
 | 
					b1110 #
 | 
				
			||||||
 | 
					#56000000
 | 
				
			||||||
 | 
					0!
 | 
				
			||||||
 | 
					#57000000
 | 
				
			||||||
 | 
					1!
 | 
				
			||||||
 | 
					b1111 $
 | 
				
			||||||
 | 
					b1111 #
 | 
				
			||||||
 | 
					#58000000
 | 
				
			||||||
 | 
					0!
 | 
				
			||||||
 | 
					#59000000
 | 
				
			||||||
 | 
					1!
 | 
				
			||||||
 | 
					b0 $
 | 
				
			||||||
 | 
					b0 #
 | 
				
			||||||
 | 
					#60000000
 | 
				
			||||||
 | 
					0!
 | 
				
			||||||
 | 
					#61000000
 | 
				
			||||||
 | 
					1!
 | 
				
			||||||
 | 
					b1 $
 | 
				
			||||||
 | 
					b1 #
 | 
				
			||||||
 | 
					#62000000
 | 
				
			||||||
 | 
					0!
 | 
				
			||||||
 | 
					#63000000
 | 
				
			||||||
 | 
					1!
 | 
				
			||||||
 | 
					b10 $
 | 
				
			||||||
 | 
					b10 #
 | 
				
			||||||
 | 
					#64000000
 | 
				
			||||||
 | 
					0!
 | 
				
			||||||
 | 
					#65000000
 | 
				
			||||||
 | 
					1!
 | 
				
			||||||
 | 
					b11 $
 | 
				
			||||||
 | 
					b11 #
 | 
				
			||||||
 | 
					#66000000
 | 
				
			||||||
							
								
								
									
										798
									
								
								crates/fayalite/tests/sim/expected/mod1.txt
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										798
									
								
								crates/fayalite/tests/sim/expected/mod1.txt
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,798 @@
 | 
				
			||||||
 | 
					Simulation {
 | 
				
			||||||
 | 
					    state: State {
 | 
				
			||||||
 | 
					        insns: Insns {
 | 
				
			||||||
 | 
					            state_layout: StateLayout {
 | 
				
			||||||
 | 
					                ty: TypeLayout {
 | 
				
			||||||
 | 
					                    small_slots: StatePartAllocationLayout<SmallSlots> {
 | 
				
			||||||
 | 
					                        len: 0,
 | 
				
			||||||
 | 
					                        debug_data: [],
 | 
				
			||||||
 | 
					                        ..
 | 
				
			||||||
 | 
					                    },
 | 
				
			||||||
 | 
					                    big_slots: StatePartAllocationLayout<BigSlots> {
 | 
				
			||||||
 | 
					                        len: 17,
 | 
				
			||||||
 | 
					                        debug_data: [
 | 
				
			||||||
 | 
					                            SlotDebugData {
 | 
				
			||||||
 | 
					                                name: "InstantiatedModule(mod1: mod1).mod1::o.i",
 | 
				
			||||||
 | 
					                                ty: UInt<4>,
 | 
				
			||||||
 | 
					                            },
 | 
				
			||||||
 | 
					                            SlotDebugData {
 | 
				
			||||||
 | 
					                                name: "InstantiatedModule(mod1: mod1).mod1::o.o",
 | 
				
			||||||
 | 
					                                ty: SInt<2>,
 | 
				
			||||||
 | 
					                            },
 | 
				
			||||||
 | 
					                            SlotDebugData {
 | 
				
			||||||
 | 
					                                name: "InstantiatedModule(mod1: mod1).mod1::o.i2",
 | 
				
			||||||
 | 
					                                ty: SInt<2>,
 | 
				
			||||||
 | 
					                            },
 | 
				
			||||||
 | 
					                            SlotDebugData {
 | 
				
			||||||
 | 
					                                name: "InstantiatedModule(mod1: mod1).mod1::o.o2",
 | 
				
			||||||
 | 
					                                ty: UInt<4>,
 | 
				
			||||||
 | 
					                            },
 | 
				
			||||||
 | 
					                            SlotDebugData {
 | 
				
			||||||
 | 
					                                name: "InstantiatedModule(mod1: mod1).mod1::child.i",
 | 
				
			||||||
 | 
					                                ty: UInt<4>,
 | 
				
			||||||
 | 
					                            },
 | 
				
			||||||
 | 
					                            SlotDebugData {
 | 
				
			||||||
 | 
					                                name: "InstantiatedModule(mod1: mod1).mod1::child.o",
 | 
				
			||||||
 | 
					                                ty: SInt<2>,
 | 
				
			||||||
 | 
					                            },
 | 
				
			||||||
 | 
					                            SlotDebugData {
 | 
				
			||||||
 | 
					                                name: "InstantiatedModule(mod1: mod1).mod1::child.i2",
 | 
				
			||||||
 | 
					                                ty: SInt<2>,
 | 
				
			||||||
 | 
					                            },
 | 
				
			||||||
 | 
					                            SlotDebugData {
 | 
				
			||||||
 | 
					                                name: "InstantiatedModule(mod1: mod1).mod1::child.o2",
 | 
				
			||||||
 | 
					                                ty: UInt<4>,
 | 
				
			||||||
 | 
					                            },
 | 
				
			||||||
 | 
					                            SlotDebugData {
 | 
				
			||||||
 | 
					                                name: "InstantiatedModule(mod1.child: mod1_child).mod1_child::i",
 | 
				
			||||||
 | 
					                                ty: UInt<4>,
 | 
				
			||||||
 | 
					                            },
 | 
				
			||||||
 | 
					                            SlotDebugData {
 | 
				
			||||||
 | 
					                                name: "InstantiatedModule(mod1.child: mod1_child).mod1_child::o",
 | 
				
			||||||
 | 
					                                ty: SInt<2>,
 | 
				
			||||||
 | 
					                            },
 | 
				
			||||||
 | 
					                            SlotDebugData {
 | 
				
			||||||
 | 
					                                name: "InstantiatedModule(mod1.child: mod1_child).mod1_child::i2",
 | 
				
			||||||
 | 
					                                ty: SInt<2>,
 | 
				
			||||||
 | 
					                            },
 | 
				
			||||||
 | 
					                            SlotDebugData {
 | 
				
			||||||
 | 
					                                name: "InstantiatedModule(mod1.child: mod1_child).mod1_child::o2",
 | 
				
			||||||
 | 
					                                ty: UInt<4>,
 | 
				
			||||||
 | 
					                            },
 | 
				
			||||||
 | 
					                            SlotDebugData {
 | 
				
			||||||
 | 
					                                name: "",
 | 
				
			||||||
 | 
					                                ty: SInt<2>,
 | 
				
			||||||
 | 
					                            },
 | 
				
			||||||
 | 
					                            SlotDebugData {
 | 
				
			||||||
 | 
					                                name: "",
 | 
				
			||||||
 | 
					                                ty: UInt<4>,
 | 
				
			||||||
 | 
					                            },
 | 
				
			||||||
 | 
					                            SlotDebugData {
 | 
				
			||||||
 | 
					                                name: "",
 | 
				
			||||||
 | 
					                                ty: UInt<4>,
 | 
				
			||||||
 | 
					                            },
 | 
				
			||||||
 | 
					                            SlotDebugData {
 | 
				
			||||||
 | 
					                                name: "",
 | 
				
			||||||
 | 
					                                ty: Bool,
 | 
				
			||||||
 | 
					                            },
 | 
				
			||||||
 | 
					                            SlotDebugData {
 | 
				
			||||||
 | 
					                                name: "",
 | 
				
			||||||
 | 
					                                ty: UInt<4>,
 | 
				
			||||||
 | 
					                            },
 | 
				
			||||||
 | 
					                        ],
 | 
				
			||||||
 | 
					                        ..
 | 
				
			||||||
 | 
					                    },
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            insns: [
 | 
				
			||||||
 | 
					                // at: module-XXXXXXXXXX.rs:4:1
 | 
				
			||||||
 | 
					                Copy {
 | 
				
			||||||
 | 
					                    dest: StatePartIndex<BigSlots>(6), // SlotDebugData { name: "InstantiatedModule(mod1: mod1).mod1::child.i2", ty: SInt<2> },
 | 
				
			||||||
 | 
					                    src: StatePartIndex<BigSlots>(2), // SlotDebugData { name: "InstantiatedModule(mod1: mod1).mod1::o.i2", ty: SInt<2> },
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                Copy {
 | 
				
			||||||
 | 
					                    dest: StatePartIndex<BigSlots>(4), // SlotDebugData { name: "InstantiatedModule(mod1: mod1).mod1::child.i", ty: UInt<4> },
 | 
				
			||||||
 | 
					                    src: StatePartIndex<BigSlots>(0), // SlotDebugData { name: "InstantiatedModule(mod1: mod1).mod1::o.i", ty: UInt<4> },
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                // at: module-XXXXXXXXXX.rs:2:1
 | 
				
			||||||
 | 
					                Copy {
 | 
				
			||||||
 | 
					                    dest: StatePartIndex<BigSlots>(10), // SlotDebugData { name: "InstantiatedModule(mod1.child: mod1_child).mod1_child::i2", ty: SInt<2> },
 | 
				
			||||||
 | 
					                    src: StatePartIndex<BigSlots>(6), // SlotDebugData { name: "InstantiatedModule(mod1: mod1).mod1::child.i2", ty: SInt<2> },
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                Copy {
 | 
				
			||||||
 | 
					                    dest: StatePartIndex<BigSlots>(8), // SlotDebugData { name: "InstantiatedModule(mod1.child: mod1_child).mod1_child::i", ty: UInt<4> },
 | 
				
			||||||
 | 
					                    src: StatePartIndex<BigSlots>(4), // SlotDebugData { name: "InstantiatedModule(mod1: mod1).mod1::child.i", ty: UInt<4> },
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                // at: module-XXXXXXXXXX-2.rs:1:1
 | 
				
			||||||
 | 
					                Const {
 | 
				
			||||||
 | 
					                    dest: StatePartIndex<BigSlots>(16), // SlotDebugData { name: "", ty: UInt<4> },
 | 
				
			||||||
 | 
					                    value: 15,
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                Const {
 | 
				
			||||||
 | 
					                    dest: StatePartIndex<BigSlots>(14), // SlotDebugData { name: "", ty: UInt<4> },
 | 
				
			||||||
 | 
					                    value: 5,
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                CmpLt {
 | 
				
			||||||
 | 
					                    dest: StatePartIndex<BigSlots>(15), // SlotDebugData { name: "", ty: Bool },
 | 
				
			||||||
 | 
					                    lhs: StatePartIndex<BigSlots>(14), // SlotDebugData { name: "", ty: UInt<4> },
 | 
				
			||||||
 | 
					                    rhs: StatePartIndex<BigSlots>(8), // SlotDebugData { name: "InstantiatedModule(mod1.child: mod1_child).mod1_child::i", ty: UInt<4> },
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                CastToUInt {
 | 
				
			||||||
 | 
					                    dest: StatePartIndex<BigSlots>(13), // SlotDebugData { name: "", ty: UInt<4> },
 | 
				
			||||||
 | 
					                    src: StatePartIndex<BigSlots>(10), // SlotDebugData { name: "InstantiatedModule(mod1.child: mod1_child).mod1_child::i2", ty: SInt<2> },
 | 
				
			||||||
 | 
					                    dest_width: 4,
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                // at: module-XXXXXXXXXX-2.rs:7:1
 | 
				
			||||||
 | 
					                Copy {
 | 
				
			||||||
 | 
					                    dest: StatePartIndex<BigSlots>(11), // SlotDebugData { name: "InstantiatedModule(mod1.child: mod1_child).mod1_child::o2", ty: UInt<4> },
 | 
				
			||||||
 | 
					                    src: StatePartIndex<BigSlots>(13), // SlotDebugData { name: "", ty: UInt<4> },
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                // at: module-XXXXXXXXXX-2.rs:8:1
 | 
				
			||||||
 | 
					                BranchIfZero {
 | 
				
			||||||
 | 
					                    target: 11,
 | 
				
			||||||
 | 
					                    value: StatePartIndex<BigSlots>(15), // SlotDebugData { name: "", ty: Bool },
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                // at: module-XXXXXXXXXX-2.rs:9:1
 | 
				
			||||||
 | 
					                Copy {
 | 
				
			||||||
 | 
					                    dest: StatePartIndex<BigSlots>(11), // SlotDebugData { name: "InstantiatedModule(mod1.child: mod1_child).mod1_child::o2", ty: UInt<4> },
 | 
				
			||||||
 | 
					                    src: StatePartIndex<BigSlots>(16), // SlotDebugData { name: "", ty: UInt<4> },
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                // at: module-XXXXXXXXXX.rs:2:1
 | 
				
			||||||
 | 
					                Copy {
 | 
				
			||||||
 | 
					                    dest: StatePartIndex<BigSlots>(7), // SlotDebugData { name: "InstantiatedModule(mod1: mod1).mod1::child.o2", ty: UInt<4> },
 | 
				
			||||||
 | 
					                    src: StatePartIndex<BigSlots>(11), // SlotDebugData { name: "InstantiatedModule(mod1.child: mod1_child).mod1_child::o2", ty: UInt<4> },
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                // at: module-XXXXXXXXXX.rs:4:1
 | 
				
			||||||
 | 
					                Copy {
 | 
				
			||||||
 | 
					                    dest: StatePartIndex<BigSlots>(3), // SlotDebugData { name: "InstantiatedModule(mod1: mod1).mod1::o.o2", ty: UInt<4> },
 | 
				
			||||||
 | 
					                    src: StatePartIndex<BigSlots>(7), // SlotDebugData { name: "InstantiatedModule(mod1: mod1).mod1::child.o2", ty: UInt<4> },
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                // at: module-XXXXXXXXXX-2.rs:1:1
 | 
				
			||||||
 | 
					                CastToSInt {
 | 
				
			||||||
 | 
					                    dest: StatePartIndex<BigSlots>(12), // SlotDebugData { name: "", ty: SInt<2> },
 | 
				
			||||||
 | 
					                    src: StatePartIndex<BigSlots>(8), // SlotDebugData { name: "InstantiatedModule(mod1.child: mod1_child).mod1_child::i", ty: UInt<4> },
 | 
				
			||||||
 | 
					                    dest_width: 2,
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                // at: module-XXXXXXXXXX-2.rs:6:1
 | 
				
			||||||
 | 
					                Copy {
 | 
				
			||||||
 | 
					                    dest: StatePartIndex<BigSlots>(9), // SlotDebugData { name: "InstantiatedModule(mod1.child: mod1_child).mod1_child::o", ty: SInt<2> },
 | 
				
			||||||
 | 
					                    src: StatePartIndex<BigSlots>(12), // SlotDebugData { name: "", ty: SInt<2> },
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                // at: module-XXXXXXXXXX.rs:2:1
 | 
				
			||||||
 | 
					                Copy {
 | 
				
			||||||
 | 
					                    dest: StatePartIndex<BigSlots>(5), // SlotDebugData { name: "InstantiatedModule(mod1: mod1).mod1::child.o", ty: SInt<2> },
 | 
				
			||||||
 | 
					                    src: StatePartIndex<BigSlots>(9), // SlotDebugData { name: "InstantiatedModule(mod1.child: mod1_child).mod1_child::o", ty: SInt<2> },
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                // at: module-XXXXXXXXXX.rs:4:1
 | 
				
			||||||
 | 
					                Copy {
 | 
				
			||||||
 | 
					                    dest: StatePartIndex<BigSlots>(1), // SlotDebugData { name: "InstantiatedModule(mod1: mod1).mod1::o.o", ty: SInt<2> },
 | 
				
			||||||
 | 
					                    src: StatePartIndex<BigSlots>(5), // SlotDebugData { name: "InstantiatedModule(mod1: mod1).mod1::child.o", ty: SInt<2> },
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                // at: module-XXXXXXXXXX.rs:1:1
 | 
				
			||||||
 | 
					                Return,
 | 
				
			||||||
 | 
					            ],
 | 
				
			||||||
 | 
					            ..
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        pc: 17,
 | 
				
			||||||
 | 
					        small_slots: StatePart {
 | 
				
			||||||
 | 
					            value: [],
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        big_slots: StatePart {
 | 
				
			||||||
 | 
					            value: [
 | 
				
			||||||
 | 
					                10,
 | 
				
			||||||
 | 
					                -2,
 | 
				
			||||||
 | 
					                -2,
 | 
				
			||||||
 | 
					                15,
 | 
				
			||||||
 | 
					                10,
 | 
				
			||||||
 | 
					                -2,
 | 
				
			||||||
 | 
					                -2,
 | 
				
			||||||
 | 
					                15,
 | 
				
			||||||
 | 
					                10,
 | 
				
			||||||
 | 
					                -2,
 | 
				
			||||||
 | 
					                -2,
 | 
				
			||||||
 | 
					                15,
 | 
				
			||||||
 | 
					                -2,
 | 
				
			||||||
 | 
					                14,
 | 
				
			||||||
 | 
					                5,
 | 
				
			||||||
 | 
					                1,
 | 
				
			||||||
 | 
					                15,
 | 
				
			||||||
 | 
					            ],
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    io: Instance {
 | 
				
			||||||
 | 
					        name: <simulator>::mod1,
 | 
				
			||||||
 | 
					        instantiated: Module {
 | 
				
			||||||
 | 
					            name: mod1,
 | 
				
			||||||
 | 
					            ..
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    uninitialized_inputs: {},
 | 
				
			||||||
 | 
					    io_targets: {
 | 
				
			||||||
 | 
					        Instance {
 | 
				
			||||||
 | 
					            name: <simulator>::mod1,
 | 
				
			||||||
 | 
					            instantiated: Module {
 | 
				
			||||||
 | 
					                name: mod1,
 | 
				
			||||||
 | 
					                ..
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					        }.o: CompiledValue {
 | 
				
			||||||
 | 
					            layout: CompiledTypeLayout {
 | 
				
			||||||
 | 
					                ty: Bundle {
 | 
				
			||||||
 | 
					                    #[hdl(flip)] /* offset = 0 */
 | 
				
			||||||
 | 
					                    i: UInt<4>,
 | 
				
			||||||
 | 
					                    /* offset = 4 */
 | 
				
			||||||
 | 
					                    o: SInt<2>,
 | 
				
			||||||
 | 
					                    #[hdl(flip)] /* offset = 6 */
 | 
				
			||||||
 | 
					                    i2: SInt<2>,
 | 
				
			||||||
 | 
					                    /* offset = 8 */
 | 
				
			||||||
 | 
					                    o2: UInt<4>,
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                layout: TypeLayout {
 | 
				
			||||||
 | 
					                    small_slots: StatePartAllocationLayout<SmallSlots> {
 | 
				
			||||||
 | 
					                        len: 0,
 | 
				
			||||||
 | 
					                        debug_data: [],
 | 
				
			||||||
 | 
					                        ..
 | 
				
			||||||
 | 
					                    },
 | 
				
			||||||
 | 
					                    big_slots: StatePartAllocationLayout<BigSlots> {
 | 
				
			||||||
 | 
					                        len: 4,
 | 
				
			||||||
 | 
					                        debug_data: [
 | 
				
			||||||
 | 
					                            SlotDebugData {
 | 
				
			||||||
 | 
					                                name: "InstantiatedModule(mod1: mod1).mod1::o.i",
 | 
				
			||||||
 | 
					                                ty: UInt<4>,
 | 
				
			||||||
 | 
					                            },
 | 
				
			||||||
 | 
					                            SlotDebugData {
 | 
				
			||||||
 | 
					                                name: "InstantiatedModule(mod1: mod1).mod1::o.o",
 | 
				
			||||||
 | 
					                                ty: SInt<2>,
 | 
				
			||||||
 | 
					                            },
 | 
				
			||||||
 | 
					                            SlotDebugData {
 | 
				
			||||||
 | 
					                                name: "InstantiatedModule(mod1: mod1).mod1::o.i2",
 | 
				
			||||||
 | 
					                                ty: SInt<2>,
 | 
				
			||||||
 | 
					                            },
 | 
				
			||||||
 | 
					                            SlotDebugData {
 | 
				
			||||||
 | 
					                                name: "InstantiatedModule(mod1: mod1).mod1::o.o2",
 | 
				
			||||||
 | 
					                                ty: UInt<4>,
 | 
				
			||||||
 | 
					                            },
 | 
				
			||||||
 | 
					                        ],
 | 
				
			||||||
 | 
					                        ..
 | 
				
			||||||
 | 
					                    },
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                body: Bundle {
 | 
				
			||||||
 | 
					                    fields: [
 | 
				
			||||||
 | 
					                        CompiledBundleField {
 | 
				
			||||||
 | 
					                            offset: TypeIndex {
 | 
				
			||||||
 | 
					                                small_slots: StatePartIndex<SmallSlots>(0),
 | 
				
			||||||
 | 
					                                big_slots: StatePartIndex<BigSlots>(0),
 | 
				
			||||||
 | 
					                            },
 | 
				
			||||||
 | 
					                            ty: CompiledTypeLayout {
 | 
				
			||||||
 | 
					                                ty: UInt<4>,
 | 
				
			||||||
 | 
					                                layout: TypeLayout {
 | 
				
			||||||
 | 
					                                    small_slots: StatePartAllocationLayout<SmallSlots> {
 | 
				
			||||||
 | 
					                                        len: 0,
 | 
				
			||||||
 | 
					                                        debug_data: [],
 | 
				
			||||||
 | 
					                                        ..
 | 
				
			||||||
 | 
					                                    },
 | 
				
			||||||
 | 
					                                    big_slots: StatePartAllocationLayout<BigSlots> {
 | 
				
			||||||
 | 
					                                        len: 1,
 | 
				
			||||||
 | 
					                                        debug_data: [
 | 
				
			||||||
 | 
					                                            SlotDebugData {
 | 
				
			||||||
 | 
					                                                name: "",
 | 
				
			||||||
 | 
					                                                ty: UInt<4>,
 | 
				
			||||||
 | 
					                                            },
 | 
				
			||||||
 | 
					                                        ],
 | 
				
			||||||
 | 
					                                        ..
 | 
				
			||||||
 | 
					                                    },
 | 
				
			||||||
 | 
					                                },
 | 
				
			||||||
 | 
					                                body: Scalar,
 | 
				
			||||||
 | 
					                            },
 | 
				
			||||||
 | 
					                        },
 | 
				
			||||||
 | 
					                        CompiledBundleField {
 | 
				
			||||||
 | 
					                            offset: TypeIndex {
 | 
				
			||||||
 | 
					                                small_slots: StatePartIndex<SmallSlots>(0),
 | 
				
			||||||
 | 
					                                big_slots: StatePartIndex<BigSlots>(1),
 | 
				
			||||||
 | 
					                            },
 | 
				
			||||||
 | 
					                            ty: CompiledTypeLayout {
 | 
				
			||||||
 | 
					                                ty: SInt<2>,
 | 
				
			||||||
 | 
					                                layout: TypeLayout {
 | 
				
			||||||
 | 
					                                    small_slots: StatePartAllocationLayout<SmallSlots> {
 | 
				
			||||||
 | 
					                                        len: 0,
 | 
				
			||||||
 | 
					                                        debug_data: [],
 | 
				
			||||||
 | 
					                                        ..
 | 
				
			||||||
 | 
					                                    },
 | 
				
			||||||
 | 
					                                    big_slots: StatePartAllocationLayout<BigSlots> {
 | 
				
			||||||
 | 
					                                        len: 1,
 | 
				
			||||||
 | 
					                                        debug_data: [
 | 
				
			||||||
 | 
					                                            SlotDebugData {
 | 
				
			||||||
 | 
					                                                name: "",
 | 
				
			||||||
 | 
					                                                ty: SInt<2>,
 | 
				
			||||||
 | 
					                                            },
 | 
				
			||||||
 | 
					                                        ],
 | 
				
			||||||
 | 
					                                        ..
 | 
				
			||||||
 | 
					                                    },
 | 
				
			||||||
 | 
					                                },
 | 
				
			||||||
 | 
					                                body: Scalar,
 | 
				
			||||||
 | 
					                            },
 | 
				
			||||||
 | 
					                        },
 | 
				
			||||||
 | 
					                        CompiledBundleField {
 | 
				
			||||||
 | 
					                            offset: TypeIndex {
 | 
				
			||||||
 | 
					                                small_slots: StatePartIndex<SmallSlots>(0),
 | 
				
			||||||
 | 
					                                big_slots: StatePartIndex<BigSlots>(2),
 | 
				
			||||||
 | 
					                            },
 | 
				
			||||||
 | 
					                            ty: CompiledTypeLayout {
 | 
				
			||||||
 | 
					                                ty: SInt<2>,
 | 
				
			||||||
 | 
					                                layout: TypeLayout {
 | 
				
			||||||
 | 
					                                    small_slots: StatePartAllocationLayout<SmallSlots> {
 | 
				
			||||||
 | 
					                                        len: 0,
 | 
				
			||||||
 | 
					                                        debug_data: [],
 | 
				
			||||||
 | 
					                                        ..
 | 
				
			||||||
 | 
					                                    },
 | 
				
			||||||
 | 
					                                    big_slots: StatePartAllocationLayout<BigSlots> {
 | 
				
			||||||
 | 
					                                        len: 1,
 | 
				
			||||||
 | 
					                                        debug_data: [
 | 
				
			||||||
 | 
					                                            SlotDebugData {
 | 
				
			||||||
 | 
					                                                name: "",
 | 
				
			||||||
 | 
					                                                ty: SInt<2>,
 | 
				
			||||||
 | 
					                                            },
 | 
				
			||||||
 | 
					                                        ],
 | 
				
			||||||
 | 
					                                        ..
 | 
				
			||||||
 | 
					                                    },
 | 
				
			||||||
 | 
					                                },
 | 
				
			||||||
 | 
					                                body: Scalar,
 | 
				
			||||||
 | 
					                            },
 | 
				
			||||||
 | 
					                        },
 | 
				
			||||||
 | 
					                        CompiledBundleField {
 | 
				
			||||||
 | 
					                            offset: TypeIndex {
 | 
				
			||||||
 | 
					                                small_slots: StatePartIndex<SmallSlots>(0),
 | 
				
			||||||
 | 
					                                big_slots: StatePartIndex<BigSlots>(3),
 | 
				
			||||||
 | 
					                            },
 | 
				
			||||||
 | 
					                            ty: CompiledTypeLayout {
 | 
				
			||||||
 | 
					                                ty: UInt<4>,
 | 
				
			||||||
 | 
					                                layout: TypeLayout {
 | 
				
			||||||
 | 
					                                    small_slots: StatePartAllocationLayout<SmallSlots> {
 | 
				
			||||||
 | 
					                                        len: 0,
 | 
				
			||||||
 | 
					                                        debug_data: [],
 | 
				
			||||||
 | 
					                                        ..
 | 
				
			||||||
 | 
					                                    },
 | 
				
			||||||
 | 
					                                    big_slots: StatePartAllocationLayout<BigSlots> {
 | 
				
			||||||
 | 
					                                        len: 1,
 | 
				
			||||||
 | 
					                                        debug_data: [
 | 
				
			||||||
 | 
					                                            SlotDebugData {
 | 
				
			||||||
 | 
					                                                name: "",
 | 
				
			||||||
 | 
					                                                ty: UInt<4>,
 | 
				
			||||||
 | 
					                                            },
 | 
				
			||||||
 | 
					                                        ],
 | 
				
			||||||
 | 
					                                        ..
 | 
				
			||||||
 | 
					                                    },
 | 
				
			||||||
 | 
					                                },
 | 
				
			||||||
 | 
					                                body: Scalar,
 | 
				
			||||||
 | 
					                            },
 | 
				
			||||||
 | 
					                        },
 | 
				
			||||||
 | 
					                    ],
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            range: TypeIndexRange {
 | 
				
			||||||
 | 
					                small_slots: StatePartIndexRange<SmallSlots> { start: 0, len: 0 },
 | 
				
			||||||
 | 
					                big_slots: StatePartIndexRange<BigSlots> { start: 0, len: 4 },
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            write: None,
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        Instance {
 | 
				
			||||||
 | 
					            name: <simulator>::mod1,
 | 
				
			||||||
 | 
					            instantiated: Module {
 | 
				
			||||||
 | 
					                name: mod1,
 | 
				
			||||||
 | 
					                ..
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					        }.o.i: CompiledValue {
 | 
				
			||||||
 | 
					            layout: CompiledTypeLayout {
 | 
				
			||||||
 | 
					                ty: UInt<4>,
 | 
				
			||||||
 | 
					                layout: TypeLayout {
 | 
				
			||||||
 | 
					                    small_slots: StatePartAllocationLayout<SmallSlots> {
 | 
				
			||||||
 | 
					                        len: 0,
 | 
				
			||||||
 | 
					                        debug_data: [],
 | 
				
			||||||
 | 
					                        ..
 | 
				
			||||||
 | 
					                    },
 | 
				
			||||||
 | 
					                    big_slots: StatePartAllocationLayout<BigSlots> {
 | 
				
			||||||
 | 
					                        len: 1,
 | 
				
			||||||
 | 
					                        debug_data: [
 | 
				
			||||||
 | 
					                            SlotDebugData {
 | 
				
			||||||
 | 
					                                name: "",
 | 
				
			||||||
 | 
					                                ty: UInt<4>,
 | 
				
			||||||
 | 
					                            },
 | 
				
			||||||
 | 
					                        ],
 | 
				
			||||||
 | 
					                        ..
 | 
				
			||||||
 | 
					                    },
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                body: Scalar,
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            range: TypeIndexRange {
 | 
				
			||||||
 | 
					                small_slots: StatePartIndexRange<SmallSlots> { start: 0, len: 0 },
 | 
				
			||||||
 | 
					                big_slots: StatePartIndexRange<BigSlots> { start: 0, len: 1 },
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            write: None,
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        Instance {
 | 
				
			||||||
 | 
					            name: <simulator>::mod1,
 | 
				
			||||||
 | 
					            instantiated: Module {
 | 
				
			||||||
 | 
					                name: mod1,
 | 
				
			||||||
 | 
					                ..
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					        }.o.i2: CompiledValue {
 | 
				
			||||||
 | 
					            layout: CompiledTypeLayout {
 | 
				
			||||||
 | 
					                ty: SInt<2>,
 | 
				
			||||||
 | 
					                layout: TypeLayout {
 | 
				
			||||||
 | 
					                    small_slots: StatePartAllocationLayout<SmallSlots> {
 | 
				
			||||||
 | 
					                        len: 0,
 | 
				
			||||||
 | 
					                        debug_data: [],
 | 
				
			||||||
 | 
					                        ..
 | 
				
			||||||
 | 
					                    },
 | 
				
			||||||
 | 
					                    big_slots: StatePartAllocationLayout<BigSlots> {
 | 
				
			||||||
 | 
					                        len: 1,
 | 
				
			||||||
 | 
					                        debug_data: [
 | 
				
			||||||
 | 
					                            SlotDebugData {
 | 
				
			||||||
 | 
					                                name: "",
 | 
				
			||||||
 | 
					                                ty: SInt<2>,
 | 
				
			||||||
 | 
					                            },
 | 
				
			||||||
 | 
					                        ],
 | 
				
			||||||
 | 
					                        ..
 | 
				
			||||||
 | 
					                    },
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                body: Scalar,
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            range: TypeIndexRange {
 | 
				
			||||||
 | 
					                small_slots: StatePartIndexRange<SmallSlots> { start: 0, len: 0 },
 | 
				
			||||||
 | 
					                big_slots: StatePartIndexRange<BigSlots> { start: 2, len: 1 },
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            write: None,
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        Instance {
 | 
				
			||||||
 | 
					            name: <simulator>::mod1,
 | 
				
			||||||
 | 
					            instantiated: Module {
 | 
				
			||||||
 | 
					                name: mod1,
 | 
				
			||||||
 | 
					                ..
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					        }.o.o: CompiledValue {
 | 
				
			||||||
 | 
					            layout: CompiledTypeLayout {
 | 
				
			||||||
 | 
					                ty: SInt<2>,
 | 
				
			||||||
 | 
					                layout: TypeLayout {
 | 
				
			||||||
 | 
					                    small_slots: StatePartAllocationLayout<SmallSlots> {
 | 
				
			||||||
 | 
					                        len: 0,
 | 
				
			||||||
 | 
					                        debug_data: [],
 | 
				
			||||||
 | 
					                        ..
 | 
				
			||||||
 | 
					                    },
 | 
				
			||||||
 | 
					                    big_slots: StatePartAllocationLayout<BigSlots> {
 | 
				
			||||||
 | 
					                        len: 1,
 | 
				
			||||||
 | 
					                        debug_data: [
 | 
				
			||||||
 | 
					                            SlotDebugData {
 | 
				
			||||||
 | 
					                                name: "",
 | 
				
			||||||
 | 
					                                ty: SInt<2>,
 | 
				
			||||||
 | 
					                            },
 | 
				
			||||||
 | 
					                        ],
 | 
				
			||||||
 | 
					                        ..
 | 
				
			||||||
 | 
					                    },
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                body: Scalar,
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            range: TypeIndexRange {
 | 
				
			||||||
 | 
					                small_slots: StatePartIndexRange<SmallSlots> { start: 0, len: 0 },
 | 
				
			||||||
 | 
					                big_slots: StatePartIndexRange<BigSlots> { start: 1, len: 1 },
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            write: None,
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        Instance {
 | 
				
			||||||
 | 
					            name: <simulator>::mod1,
 | 
				
			||||||
 | 
					            instantiated: Module {
 | 
				
			||||||
 | 
					                name: mod1,
 | 
				
			||||||
 | 
					                ..
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					        }.o.o2: CompiledValue {
 | 
				
			||||||
 | 
					            layout: CompiledTypeLayout {
 | 
				
			||||||
 | 
					                ty: UInt<4>,
 | 
				
			||||||
 | 
					                layout: TypeLayout {
 | 
				
			||||||
 | 
					                    small_slots: StatePartAllocationLayout<SmallSlots> {
 | 
				
			||||||
 | 
					                        len: 0,
 | 
				
			||||||
 | 
					                        debug_data: [],
 | 
				
			||||||
 | 
					                        ..
 | 
				
			||||||
 | 
					                    },
 | 
				
			||||||
 | 
					                    big_slots: StatePartAllocationLayout<BigSlots> {
 | 
				
			||||||
 | 
					                        len: 1,
 | 
				
			||||||
 | 
					                        debug_data: [
 | 
				
			||||||
 | 
					                            SlotDebugData {
 | 
				
			||||||
 | 
					                                name: "",
 | 
				
			||||||
 | 
					                                ty: UInt<4>,
 | 
				
			||||||
 | 
					                            },
 | 
				
			||||||
 | 
					                        ],
 | 
				
			||||||
 | 
					                        ..
 | 
				
			||||||
 | 
					                    },
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                body: Scalar,
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            range: TypeIndexRange {
 | 
				
			||||||
 | 
					                small_slots: StatePartIndexRange<SmallSlots> { start: 0, len: 0 },
 | 
				
			||||||
 | 
					                big_slots: StatePartIndexRange<BigSlots> { start: 3, len: 1 },
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            write: None,
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    made_initial_step: true,
 | 
				
			||||||
 | 
					    needs_settle: false,
 | 
				
			||||||
 | 
					    trace_decls: TraceModule {
 | 
				
			||||||
 | 
					        name: "mod1",
 | 
				
			||||||
 | 
					        children: [
 | 
				
			||||||
 | 
					            TraceModuleIO {
 | 
				
			||||||
 | 
					                name: "o",
 | 
				
			||||||
 | 
					                child: TraceBundle {
 | 
				
			||||||
 | 
					                    name: "o",
 | 
				
			||||||
 | 
					                    fields: [
 | 
				
			||||||
 | 
					                        TraceUInt {
 | 
				
			||||||
 | 
					                            id: TraceScalarId(0),
 | 
				
			||||||
 | 
					                            name: "i",
 | 
				
			||||||
 | 
					                            ty: UInt<4>,
 | 
				
			||||||
 | 
					                            flow: Source,
 | 
				
			||||||
 | 
					                        },
 | 
				
			||||||
 | 
					                        TraceSInt {
 | 
				
			||||||
 | 
					                            id: TraceScalarId(1),
 | 
				
			||||||
 | 
					                            name: "o",
 | 
				
			||||||
 | 
					                            ty: SInt<2>,
 | 
				
			||||||
 | 
					                            flow: Sink,
 | 
				
			||||||
 | 
					                        },
 | 
				
			||||||
 | 
					                        TraceSInt {
 | 
				
			||||||
 | 
					                            id: TraceScalarId(2),
 | 
				
			||||||
 | 
					                            name: "i2",
 | 
				
			||||||
 | 
					                            ty: SInt<2>,
 | 
				
			||||||
 | 
					                            flow: Source,
 | 
				
			||||||
 | 
					                        },
 | 
				
			||||||
 | 
					                        TraceUInt {
 | 
				
			||||||
 | 
					                            id: TraceScalarId(3),
 | 
				
			||||||
 | 
					                            name: "o2",
 | 
				
			||||||
 | 
					                            ty: UInt<4>,
 | 
				
			||||||
 | 
					                            flow: Sink,
 | 
				
			||||||
 | 
					                        },
 | 
				
			||||||
 | 
					                    ],
 | 
				
			||||||
 | 
					                    ty: Bundle {
 | 
				
			||||||
 | 
					                        #[hdl(flip)] /* offset = 0 */
 | 
				
			||||||
 | 
					                        i: UInt<4>,
 | 
				
			||||||
 | 
					                        /* offset = 4 */
 | 
				
			||||||
 | 
					                        o: SInt<2>,
 | 
				
			||||||
 | 
					                        #[hdl(flip)] /* offset = 6 */
 | 
				
			||||||
 | 
					                        i2: SInt<2>,
 | 
				
			||||||
 | 
					                        /* offset = 8 */
 | 
				
			||||||
 | 
					                        o2: UInt<4>,
 | 
				
			||||||
 | 
					                    },
 | 
				
			||||||
 | 
					                    flow: Sink,
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                ty: Bundle {
 | 
				
			||||||
 | 
					                    #[hdl(flip)] /* offset = 0 */
 | 
				
			||||||
 | 
					                    i: UInt<4>,
 | 
				
			||||||
 | 
					                    /* offset = 4 */
 | 
				
			||||||
 | 
					                    o: SInt<2>,
 | 
				
			||||||
 | 
					                    #[hdl(flip)] /* offset = 6 */
 | 
				
			||||||
 | 
					                    i2: SInt<2>,
 | 
				
			||||||
 | 
					                    /* offset = 8 */
 | 
				
			||||||
 | 
					                    o2: UInt<4>,
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                flow: Sink,
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            TraceInstance {
 | 
				
			||||||
 | 
					                name: "child",
 | 
				
			||||||
 | 
					                instance_io: TraceBundle {
 | 
				
			||||||
 | 
					                    name: "child",
 | 
				
			||||||
 | 
					                    fields: [
 | 
				
			||||||
 | 
					                        TraceUInt {
 | 
				
			||||||
 | 
					                            id: TraceScalarId(8),
 | 
				
			||||||
 | 
					                            name: "i",
 | 
				
			||||||
 | 
					                            ty: UInt<4>,
 | 
				
			||||||
 | 
					                            flow: Sink,
 | 
				
			||||||
 | 
					                        },
 | 
				
			||||||
 | 
					                        TraceSInt {
 | 
				
			||||||
 | 
					                            id: TraceScalarId(9),
 | 
				
			||||||
 | 
					                            name: "o",
 | 
				
			||||||
 | 
					                            ty: SInt<2>,
 | 
				
			||||||
 | 
					                            flow: Source,
 | 
				
			||||||
 | 
					                        },
 | 
				
			||||||
 | 
					                        TraceSInt {
 | 
				
			||||||
 | 
					                            id: TraceScalarId(10),
 | 
				
			||||||
 | 
					                            name: "i2",
 | 
				
			||||||
 | 
					                            ty: SInt<2>,
 | 
				
			||||||
 | 
					                            flow: Sink,
 | 
				
			||||||
 | 
					                        },
 | 
				
			||||||
 | 
					                        TraceUInt {
 | 
				
			||||||
 | 
					                            id: TraceScalarId(11),
 | 
				
			||||||
 | 
					                            name: "o2",
 | 
				
			||||||
 | 
					                            ty: UInt<4>,
 | 
				
			||||||
 | 
					                            flow: Source,
 | 
				
			||||||
 | 
					                        },
 | 
				
			||||||
 | 
					                    ],
 | 
				
			||||||
 | 
					                    ty: Bundle {
 | 
				
			||||||
 | 
					                        #[hdl(flip)] /* offset = 0 */
 | 
				
			||||||
 | 
					                        i: UInt<4>,
 | 
				
			||||||
 | 
					                        /* offset = 4 */
 | 
				
			||||||
 | 
					                        o: SInt<2>,
 | 
				
			||||||
 | 
					                        #[hdl(flip)] /* offset = 6 */
 | 
				
			||||||
 | 
					                        i2: SInt<2>,
 | 
				
			||||||
 | 
					                        /* offset = 8 */
 | 
				
			||||||
 | 
					                        o2: UInt<4>,
 | 
				
			||||||
 | 
					                    },
 | 
				
			||||||
 | 
					                    flow: Source,
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                module: TraceModule {
 | 
				
			||||||
 | 
					                    name: "mod1_child",
 | 
				
			||||||
 | 
					                    children: [
 | 
				
			||||||
 | 
					                        TraceModuleIO {
 | 
				
			||||||
 | 
					                            name: "i",
 | 
				
			||||||
 | 
					                            child: TraceUInt {
 | 
				
			||||||
 | 
					                                id: TraceScalarId(4),
 | 
				
			||||||
 | 
					                                name: "i",
 | 
				
			||||||
 | 
					                                ty: UInt<4>,
 | 
				
			||||||
 | 
					                                flow: Source,
 | 
				
			||||||
 | 
					                            },
 | 
				
			||||||
 | 
					                            ty: UInt<4>,
 | 
				
			||||||
 | 
					                            flow: Source,
 | 
				
			||||||
 | 
					                        },
 | 
				
			||||||
 | 
					                        TraceModuleIO {
 | 
				
			||||||
 | 
					                            name: "o",
 | 
				
			||||||
 | 
					                            child: TraceSInt {
 | 
				
			||||||
 | 
					                                id: TraceScalarId(5),
 | 
				
			||||||
 | 
					                                name: "o",
 | 
				
			||||||
 | 
					                                ty: SInt<2>,
 | 
				
			||||||
 | 
					                                flow: Sink,
 | 
				
			||||||
 | 
					                            },
 | 
				
			||||||
 | 
					                            ty: SInt<2>,
 | 
				
			||||||
 | 
					                            flow: Sink,
 | 
				
			||||||
 | 
					                        },
 | 
				
			||||||
 | 
					                        TraceModuleIO {
 | 
				
			||||||
 | 
					                            name: "i2",
 | 
				
			||||||
 | 
					                            child: TraceSInt {
 | 
				
			||||||
 | 
					                                id: TraceScalarId(6),
 | 
				
			||||||
 | 
					                                name: "i2",
 | 
				
			||||||
 | 
					                                ty: SInt<2>,
 | 
				
			||||||
 | 
					                                flow: Source,
 | 
				
			||||||
 | 
					                            },
 | 
				
			||||||
 | 
					                            ty: SInt<2>,
 | 
				
			||||||
 | 
					                            flow: Source,
 | 
				
			||||||
 | 
					                        },
 | 
				
			||||||
 | 
					                        TraceModuleIO {
 | 
				
			||||||
 | 
					                            name: "o2",
 | 
				
			||||||
 | 
					                            child: TraceUInt {
 | 
				
			||||||
 | 
					                                id: TraceScalarId(7),
 | 
				
			||||||
 | 
					                                name: "o2",
 | 
				
			||||||
 | 
					                                ty: UInt<4>,
 | 
				
			||||||
 | 
					                                flow: Sink,
 | 
				
			||||||
 | 
					                            },
 | 
				
			||||||
 | 
					                            ty: UInt<4>,
 | 
				
			||||||
 | 
					                            flow: Sink,
 | 
				
			||||||
 | 
					                        },
 | 
				
			||||||
 | 
					                    ],
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                ty: Bundle {
 | 
				
			||||||
 | 
					                    #[hdl(flip)] /* offset = 0 */
 | 
				
			||||||
 | 
					                    i: UInt<4>,
 | 
				
			||||||
 | 
					                    /* offset = 4 */
 | 
				
			||||||
 | 
					                    o: SInt<2>,
 | 
				
			||||||
 | 
					                    #[hdl(flip)] /* offset = 6 */
 | 
				
			||||||
 | 
					                    i2: SInt<2>,
 | 
				
			||||||
 | 
					                    /* offset = 8 */
 | 
				
			||||||
 | 
					                    o2: UInt<4>,
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					        ],
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    traces: [
 | 
				
			||||||
 | 
					        SimTrace {
 | 
				
			||||||
 | 
					            id: TraceScalarId(0),
 | 
				
			||||||
 | 
					            kind: BigUInt {
 | 
				
			||||||
 | 
					                index: StatePartIndex<BigSlots>(0),
 | 
				
			||||||
 | 
					                ty: UInt<4>,
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            state: 0xa,
 | 
				
			||||||
 | 
					            last_state: 0x3,
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        SimTrace {
 | 
				
			||||||
 | 
					            id: TraceScalarId(1),
 | 
				
			||||||
 | 
					            kind: BigSInt {
 | 
				
			||||||
 | 
					                index: StatePartIndex<BigSlots>(1),
 | 
				
			||||||
 | 
					                ty: SInt<2>,
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            state: 0x2,
 | 
				
			||||||
 | 
					            last_state: 0x3,
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        SimTrace {
 | 
				
			||||||
 | 
					            id: TraceScalarId(2),
 | 
				
			||||||
 | 
					            kind: BigSInt {
 | 
				
			||||||
 | 
					                index: StatePartIndex<BigSlots>(2),
 | 
				
			||||||
 | 
					                ty: SInt<2>,
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            state: 0x2,
 | 
				
			||||||
 | 
					            last_state: 0x2,
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        SimTrace {
 | 
				
			||||||
 | 
					            id: TraceScalarId(3),
 | 
				
			||||||
 | 
					            kind: BigUInt {
 | 
				
			||||||
 | 
					                index: StatePartIndex<BigSlots>(3),
 | 
				
			||||||
 | 
					                ty: UInt<4>,
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            state: 0xf,
 | 
				
			||||||
 | 
					            last_state: 0xe,
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        SimTrace {
 | 
				
			||||||
 | 
					            id: TraceScalarId(4),
 | 
				
			||||||
 | 
					            kind: BigUInt {
 | 
				
			||||||
 | 
					                index: StatePartIndex<BigSlots>(8),
 | 
				
			||||||
 | 
					                ty: UInt<4>,
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            state: 0xa,
 | 
				
			||||||
 | 
					            last_state: 0x3,
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        SimTrace {
 | 
				
			||||||
 | 
					            id: TraceScalarId(5),
 | 
				
			||||||
 | 
					            kind: BigSInt {
 | 
				
			||||||
 | 
					                index: StatePartIndex<BigSlots>(9),
 | 
				
			||||||
 | 
					                ty: SInt<2>,
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            state: 0x2,
 | 
				
			||||||
 | 
					            last_state: 0x3,
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        SimTrace {
 | 
				
			||||||
 | 
					            id: TraceScalarId(6),
 | 
				
			||||||
 | 
					            kind: BigSInt {
 | 
				
			||||||
 | 
					                index: StatePartIndex<BigSlots>(10),
 | 
				
			||||||
 | 
					                ty: SInt<2>,
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            state: 0x2,
 | 
				
			||||||
 | 
					            last_state: 0x2,
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        SimTrace {
 | 
				
			||||||
 | 
					            id: TraceScalarId(7),
 | 
				
			||||||
 | 
					            kind: BigUInt {
 | 
				
			||||||
 | 
					                index: StatePartIndex<BigSlots>(11),
 | 
				
			||||||
 | 
					                ty: UInt<4>,
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            state: 0xf,
 | 
				
			||||||
 | 
					            last_state: 0xe,
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        SimTrace {
 | 
				
			||||||
 | 
					            id: TraceScalarId(8),
 | 
				
			||||||
 | 
					            kind: BigUInt {
 | 
				
			||||||
 | 
					                index: StatePartIndex<BigSlots>(4),
 | 
				
			||||||
 | 
					                ty: UInt<4>,
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            state: 0xa,
 | 
				
			||||||
 | 
					            last_state: 0x3,
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        SimTrace {
 | 
				
			||||||
 | 
					            id: TraceScalarId(9),
 | 
				
			||||||
 | 
					            kind: BigSInt {
 | 
				
			||||||
 | 
					                index: StatePartIndex<BigSlots>(5),
 | 
				
			||||||
 | 
					                ty: SInt<2>,
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            state: 0x2,
 | 
				
			||||||
 | 
					            last_state: 0x3,
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        SimTrace {
 | 
				
			||||||
 | 
					            id: TraceScalarId(10),
 | 
				
			||||||
 | 
					            kind: BigSInt {
 | 
				
			||||||
 | 
					                index: StatePartIndex<BigSlots>(6),
 | 
				
			||||||
 | 
					                ty: SInt<2>,
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            state: 0x2,
 | 
				
			||||||
 | 
					            last_state: 0x2,
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        SimTrace {
 | 
				
			||||||
 | 
					            id: TraceScalarId(11),
 | 
				
			||||||
 | 
					            kind: BigUInt {
 | 
				
			||||||
 | 
					                index: StatePartIndex<BigSlots>(7),
 | 
				
			||||||
 | 
					                ty: UInt<4>,
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            state: 0xf,
 | 
				
			||||||
 | 
					            last_state: 0xe,
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					    ],
 | 
				
			||||||
 | 
					    trace_writers: [
 | 
				
			||||||
 | 
					        Running(
 | 
				
			||||||
 | 
					            VcdWriter {
 | 
				
			||||||
 | 
					                finished_init: true,
 | 
				
			||||||
 | 
					                timescale: 1 ps,
 | 
				
			||||||
 | 
					                ..
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					        ),
 | 
				
			||||||
 | 
					    ],
 | 
				
			||||||
 | 
					    instant: 2 μs,
 | 
				
			||||||
 | 
					    clocks_triggered: [],
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										47
									
								
								crates/fayalite/tests/sim/expected/mod1.vcd
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										47
									
								
								crates/fayalite/tests/sim/expected/mod1.vcd
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,47 @@
 | 
				
			||||||
 | 
					$timescale 1 ps $end
 | 
				
			||||||
 | 
					$scope module mod1 $end
 | 
				
			||||||
 | 
					$scope struct o $end
 | 
				
			||||||
 | 
					$var wire 4 ! i $end
 | 
				
			||||||
 | 
					$var wire 2 " o $end
 | 
				
			||||||
 | 
					$var wire 2 # i2 $end
 | 
				
			||||||
 | 
					$var wire 4 $ o2 $end
 | 
				
			||||||
 | 
					$upscope $end
 | 
				
			||||||
 | 
					$scope struct child $end
 | 
				
			||||||
 | 
					$var wire 4 ) i $end
 | 
				
			||||||
 | 
					$var wire 2 * o $end
 | 
				
			||||||
 | 
					$var wire 2 + i2 $end
 | 
				
			||||||
 | 
					$var wire 4 , o2 $end
 | 
				
			||||||
 | 
					$upscope $end
 | 
				
			||||||
 | 
					$scope module mod1_child $end
 | 
				
			||||||
 | 
					$var wire 4 % i $end
 | 
				
			||||||
 | 
					$var wire 2 & o $end
 | 
				
			||||||
 | 
					$var wire 2 ' i2 $end
 | 
				
			||||||
 | 
					$var wire 4 ( o2 $end
 | 
				
			||||||
 | 
					$upscope $end
 | 
				
			||||||
 | 
					$upscope $end
 | 
				
			||||||
 | 
					$enddefinitions $end
 | 
				
			||||||
 | 
					$dumpvars
 | 
				
			||||||
 | 
					b11 !
 | 
				
			||||||
 | 
					b11 "
 | 
				
			||||||
 | 
					b10 #
 | 
				
			||||||
 | 
					b1110 $
 | 
				
			||||||
 | 
					b11 %
 | 
				
			||||||
 | 
					b11 &
 | 
				
			||||||
 | 
					b10 '
 | 
				
			||||||
 | 
					b1110 (
 | 
				
			||||||
 | 
					b11 )
 | 
				
			||||||
 | 
					b11 *
 | 
				
			||||||
 | 
					b10 +
 | 
				
			||||||
 | 
					b1110 ,
 | 
				
			||||||
 | 
					$end
 | 
				
			||||||
 | 
					#1000000
 | 
				
			||||||
 | 
					b1010 !
 | 
				
			||||||
 | 
					b10 "
 | 
				
			||||||
 | 
					b1111 $
 | 
				
			||||||
 | 
					b1010 %
 | 
				
			||||||
 | 
					b10 &
 | 
				
			||||||
 | 
					b1111 (
 | 
				
			||||||
 | 
					b1010 )
 | 
				
			||||||
 | 
					b10 *
 | 
				
			||||||
 | 
					b1111 ,
 | 
				
			||||||
 | 
					#2000000
 | 
				
			||||||
							
								
								
									
										670
									
								
								crates/fayalite/tests/sim/expected/shift_register.txt
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										670
									
								
								crates/fayalite/tests/sim/expected/shift_register.txt
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,670 @@
 | 
				
			||||||
 | 
					Simulation {
 | 
				
			||||||
 | 
					    state: State {
 | 
				
			||||||
 | 
					        insns: Insns {
 | 
				
			||||||
 | 
					            state_layout: StateLayout {
 | 
				
			||||||
 | 
					                ty: TypeLayout {
 | 
				
			||||||
 | 
					                    small_slots: StatePartAllocationLayout<SmallSlots> {
 | 
				
			||||||
 | 
					                        len: 4,
 | 
				
			||||||
 | 
					                        debug_data: [
 | 
				
			||||||
 | 
					                            SlotDebugData {
 | 
				
			||||||
 | 
					                                name: "",
 | 
				
			||||||
 | 
					                                ty: Bool,
 | 
				
			||||||
 | 
					                            },
 | 
				
			||||||
 | 
					                            SlotDebugData {
 | 
				
			||||||
 | 
					                                name: "",
 | 
				
			||||||
 | 
					                                ty: Bool,
 | 
				
			||||||
 | 
					                            },
 | 
				
			||||||
 | 
					                            SlotDebugData {
 | 
				
			||||||
 | 
					                                name: "",
 | 
				
			||||||
 | 
					                                ty: Bool,
 | 
				
			||||||
 | 
					                            },
 | 
				
			||||||
 | 
					                            SlotDebugData {
 | 
				
			||||||
 | 
					                                name: "",
 | 
				
			||||||
 | 
					                                ty: Bool,
 | 
				
			||||||
 | 
					                            },
 | 
				
			||||||
 | 
					                        ],
 | 
				
			||||||
 | 
					                        ..
 | 
				
			||||||
 | 
					                    },
 | 
				
			||||||
 | 
					                    big_slots: StatePartAllocationLayout<BigSlots> {
 | 
				
			||||||
 | 
					                        len: 13,
 | 
				
			||||||
 | 
					                        debug_data: [
 | 
				
			||||||
 | 
					                            SlotDebugData {
 | 
				
			||||||
 | 
					                                name: "InstantiatedModule(shift_register: shift_register).shift_register::cd.clk",
 | 
				
			||||||
 | 
					                                ty: Clock,
 | 
				
			||||||
 | 
					                            },
 | 
				
			||||||
 | 
					                            SlotDebugData {
 | 
				
			||||||
 | 
					                                name: "InstantiatedModule(shift_register: shift_register).shift_register::cd.rst",
 | 
				
			||||||
 | 
					                                ty: SyncReset,
 | 
				
			||||||
 | 
					                            },
 | 
				
			||||||
 | 
					                            SlotDebugData {
 | 
				
			||||||
 | 
					                                name: "InstantiatedModule(shift_register: shift_register).shift_register::d",
 | 
				
			||||||
 | 
					                                ty: Bool,
 | 
				
			||||||
 | 
					                            },
 | 
				
			||||||
 | 
					                            SlotDebugData {
 | 
				
			||||||
 | 
					                                name: "InstantiatedModule(shift_register: shift_register).shift_register::q",
 | 
				
			||||||
 | 
					                                ty: Bool,
 | 
				
			||||||
 | 
					                            },
 | 
				
			||||||
 | 
					                            SlotDebugData {
 | 
				
			||||||
 | 
					                                name: "InstantiatedModule(shift_register: shift_register).shift_register::reg0",
 | 
				
			||||||
 | 
					                                ty: Bool,
 | 
				
			||||||
 | 
					                            },
 | 
				
			||||||
 | 
					                            SlotDebugData {
 | 
				
			||||||
 | 
					                                name: "InstantiatedModule(shift_register: shift_register).shift_register::reg0$next",
 | 
				
			||||||
 | 
					                                ty: Bool,
 | 
				
			||||||
 | 
					                            },
 | 
				
			||||||
 | 
					                            SlotDebugData {
 | 
				
			||||||
 | 
					                                name: "",
 | 
				
			||||||
 | 
					                                ty: Bool,
 | 
				
			||||||
 | 
					                            },
 | 
				
			||||||
 | 
					                            SlotDebugData {
 | 
				
			||||||
 | 
					                                name: "InstantiatedModule(shift_register: shift_register).shift_register::reg1",
 | 
				
			||||||
 | 
					                                ty: Bool,
 | 
				
			||||||
 | 
					                            },
 | 
				
			||||||
 | 
					                            SlotDebugData {
 | 
				
			||||||
 | 
					                                name: "InstantiatedModule(shift_register: shift_register).shift_register::reg1$next",
 | 
				
			||||||
 | 
					                                ty: Bool,
 | 
				
			||||||
 | 
					                            },
 | 
				
			||||||
 | 
					                            SlotDebugData {
 | 
				
			||||||
 | 
					                                name: "InstantiatedModule(shift_register: shift_register).shift_register::reg2",
 | 
				
			||||||
 | 
					                                ty: Bool,
 | 
				
			||||||
 | 
					                            },
 | 
				
			||||||
 | 
					                            SlotDebugData {
 | 
				
			||||||
 | 
					                                name: "InstantiatedModule(shift_register: shift_register).shift_register::reg2$next",
 | 
				
			||||||
 | 
					                                ty: Bool,
 | 
				
			||||||
 | 
					                            },
 | 
				
			||||||
 | 
					                            SlotDebugData {
 | 
				
			||||||
 | 
					                                name: "InstantiatedModule(shift_register: shift_register).shift_register::reg3",
 | 
				
			||||||
 | 
					                                ty: Bool,
 | 
				
			||||||
 | 
					                            },
 | 
				
			||||||
 | 
					                            SlotDebugData {
 | 
				
			||||||
 | 
					                                name: "InstantiatedModule(shift_register: shift_register).shift_register::reg3$next",
 | 
				
			||||||
 | 
					                                ty: Bool,
 | 
				
			||||||
 | 
					                            },
 | 
				
			||||||
 | 
					                        ],
 | 
				
			||||||
 | 
					                        ..
 | 
				
			||||||
 | 
					                    },
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            insns: [
 | 
				
			||||||
 | 
					                // at: module-XXXXXXXXXX.rs:13:1
 | 
				
			||||||
 | 
					                Copy {
 | 
				
			||||||
 | 
					                    dest: StatePartIndex<BigSlots>(3), // SlotDebugData { name: "InstantiatedModule(shift_register: shift_register).shift_register::q", ty: Bool },
 | 
				
			||||||
 | 
					                    src: StatePartIndex<BigSlots>(11), // SlotDebugData { name: "InstantiatedModule(shift_register: shift_register).shift_register::reg3", ty: Bool },
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                // at: module-XXXXXXXXXX.rs:12:1
 | 
				
			||||||
 | 
					                Copy {
 | 
				
			||||||
 | 
					                    dest: StatePartIndex<BigSlots>(12), // SlotDebugData { name: "InstantiatedModule(shift_register: shift_register).shift_register::reg3$next", ty: Bool },
 | 
				
			||||||
 | 
					                    src: StatePartIndex<BigSlots>(9), // SlotDebugData { name: "InstantiatedModule(shift_register: shift_register).shift_register::reg2", ty: Bool },
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                // at: module-XXXXXXXXXX.rs:10:1
 | 
				
			||||||
 | 
					                Copy {
 | 
				
			||||||
 | 
					                    dest: StatePartIndex<BigSlots>(10), // SlotDebugData { name: "InstantiatedModule(shift_register: shift_register).shift_register::reg2$next", ty: Bool },
 | 
				
			||||||
 | 
					                    src: StatePartIndex<BigSlots>(7), // SlotDebugData { name: "InstantiatedModule(shift_register: shift_register).shift_register::reg1", ty: Bool },
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                // at: module-XXXXXXXXXX.rs:8:1
 | 
				
			||||||
 | 
					                Copy {
 | 
				
			||||||
 | 
					                    dest: StatePartIndex<BigSlots>(8), // SlotDebugData { name: "InstantiatedModule(shift_register: shift_register).shift_register::reg1$next", ty: Bool },
 | 
				
			||||||
 | 
					                    src: StatePartIndex<BigSlots>(4), // SlotDebugData { name: "InstantiatedModule(shift_register: shift_register).shift_register::reg0", ty: Bool },
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                // at: module-XXXXXXXXXX.rs:6:1
 | 
				
			||||||
 | 
					                Copy {
 | 
				
			||||||
 | 
					                    dest: StatePartIndex<BigSlots>(5), // SlotDebugData { name: "InstantiatedModule(shift_register: shift_register).shift_register::reg0$next", ty: Bool },
 | 
				
			||||||
 | 
					                    src: StatePartIndex<BigSlots>(2), // SlotDebugData { name: "InstantiatedModule(shift_register: shift_register).shift_register::d", ty: Bool },
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                // at: module-XXXXXXXXXX.rs:5:1
 | 
				
			||||||
 | 
					                IsNonZeroDestIsSmall {
 | 
				
			||||||
 | 
					                    dest: StatePartIndex<SmallSlots>(3), // SlotDebugData { name: "", ty: Bool },
 | 
				
			||||||
 | 
					                    src: StatePartIndex<BigSlots>(1), // SlotDebugData { name: "InstantiatedModule(shift_register: shift_register).shift_register::cd.rst", ty: SyncReset },
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                // at: module-XXXXXXXXXX.rs:1:1
 | 
				
			||||||
 | 
					                Const {
 | 
				
			||||||
 | 
					                    dest: StatePartIndex<BigSlots>(6), // SlotDebugData { name: "", ty: Bool },
 | 
				
			||||||
 | 
					                    value: 0,
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                // at: module-XXXXXXXXXX.rs:5:1
 | 
				
			||||||
 | 
					                IsNonZeroDestIsSmall {
 | 
				
			||||||
 | 
					                    dest: StatePartIndex<SmallSlots>(2), // SlotDebugData { name: "", ty: Bool },
 | 
				
			||||||
 | 
					                    src: StatePartIndex<BigSlots>(0), // SlotDebugData { name: "InstantiatedModule(shift_register: shift_register).shift_register::cd.clk", ty: Clock },
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                AndSmall {
 | 
				
			||||||
 | 
					                    dest: StatePartIndex<SmallSlots>(1), // SlotDebugData { name: "", ty: Bool },
 | 
				
			||||||
 | 
					                    lhs: StatePartIndex<SmallSlots>(2), // SlotDebugData { name: "", ty: Bool },
 | 
				
			||||||
 | 
					                    rhs: StatePartIndex<SmallSlots>(0), // SlotDebugData { name: "", ty: Bool },
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                BranchIfSmallZero {
 | 
				
			||||||
 | 
					                    target: 14,
 | 
				
			||||||
 | 
					                    value: StatePartIndex<SmallSlots>(1), // SlotDebugData { name: "", ty: Bool },
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                BranchIfSmallNonZero {
 | 
				
			||||||
 | 
					                    target: 13,
 | 
				
			||||||
 | 
					                    value: StatePartIndex<SmallSlots>(3), // SlotDebugData { name: "", ty: Bool },
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                Copy {
 | 
				
			||||||
 | 
					                    dest: StatePartIndex<BigSlots>(4), // SlotDebugData { name: "InstantiatedModule(shift_register: shift_register).shift_register::reg0", ty: Bool },
 | 
				
			||||||
 | 
					                    src: StatePartIndex<BigSlots>(5), // SlotDebugData { name: "InstantiatedModule(shift_register: shift_register).shift_register::reg0$next", ty: Bool },
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                Branch {
 | 
				
			||||||
 | 
					                    target: 14,
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                Copy {
 | 
				
			||||||
 | 
					                    dest: StatePartIndex<BigSlots>(4), // SlotDebugData { name: "InstantiatedModule(shift_register: shift_register).shift_register::reg0", ty: Bool },
 | 
				
			||||||
 | 
					                    src: StatePartIndex<BigSlots>(6), // SlotDebugData { name: "", ty: Bool },
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                // at: module-XXXXXXXXXX.rs:7:1
 | 
				
			||||||
 | 
					                BranchIfSmallZero {
 | 
				
			||||||
 | 
					                    target: 19,
 | 
				
			||||||
 | 
					                    value: StatePartIndex<SmallSlots>(1), // SlotDebugData { name: "", ty: Bool },
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                BranchIfSmallNonZero {
 | 
				
			||||||
 | 
					                    target: 18,
 | 
				
			||||||
 | 
					                    value: StatePartIndex<SmallSlots>(3), // SlotDebugData { name: "", ty: Bool },
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                Copy {
 | 
				
			||||||
 | 
					                    dest: StatePartIndex<BigSlots>(7), // SlotDebugData { name: "InstantiatedModule(shift_register: shift_register).shift_register::reg1", ty: Bool },
 | 
				
			||||||
 | 
					                    src: StatePartIndex<BigSlots>(8), // SlotDebugData { name: "InstantiatedModule(shift_register: shift_register).shift_register::reg1$next", ty: Bool },
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                Branch {
 | 
				
			||||||
 | 
					                    target: 19,
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                Copy {
 | 
				
			||||||
 | 
					                    dest: StatePartIndex<BigSlots>(7), // SlotDebugData { name: "InstantiatedModule(shift_register: shift_register).shift_register::reg1", ty: Bool },
 | 
				
			||||||
 | 
					                    src: StatePartIndex<BigSlots>(6), // SlotDebugData { name: "", ty: Bool },
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                // at: module-XXXXXXXXXX.rs:9:1
 | 
				
			||||||
 | 
					                BranchIfSmallZero {
 | 
				
			||||||
 | 
					                    target: 24,
 | 
				
			||||||
 | 
					                    value: StatePartIndex<SmallSlots>(1), // SlotDebugData { name: "", ty: Bool },
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                BranchIfSmallNonZero {
 | 
				
			||||||
 | 
					                    target: 23,
 | 
				
			||||||
 | 
					                    value: StatePartIndex<SmallSlots>(3), // SlotDebugData { name: "", ty: Bool },
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                Copy {
 | 
				
			||||||
 | 
					                    dest: StatePartIndex<BigSlots>(9), // SlotDebugData { name: "InstantiatedModule(shift_register: shift_register).shift_register::reg2", ty: Bool },
 | 
				
			||||||
 | 
					                    src: StatePartIndex<BigSlots>(10), // SlotDebugData { name: "InstantiatedModule(shift_register: shift_register).shift_register::reg2$next", ty: Bool },
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                Branch {
 | 
				
			||||||
 | 
					                    target: 24,
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                Copy {
 | 
				
			||||||
 | 
					                    dest: StatePartIndex<BigSlots>(9), // SlotDebugData { name: "InstantiatedModule(shift_register: shift_register).shift_register::reg2", ty: Bool },
 | 
				
			||||||
 | 
					                    src: StatePartIndex<BigSlots>(6), // SlotDebugData { name: "", ty: Bool },
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                // at: module-XXXXXXXXXX.rs:11:1
 | 
				
			||||||
 | 
					                BranchIfSmallZero {
 | 
				
			||||||
 | 
					                    target: 29,
 | 
				
			||||||
 | 
					                    value: StatePartIndex<SmallSlots>(1), // SlotDebugData { name: "", ty: Bool },
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                BranchIfSmallNonZero {
 | 
				
			||||||
 | 
					                    target: 28,
 | 
				
			||||||
 | 
					                    value: StatePartIndex<SmallSlots>(3), // SlotDebugData { name: "", ty: Bool },
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                Copy {
 | 
				
			||||||
 | 
					                    dest: StatePartIndex<BigSlots>(11), // SlotDebugData { name: "InstantiatedModule(shift_register: shift_register).shift_register::reg3", ty: Bool },
 | 
				
			||||||
 | 
					                    src: StatePartIndex<BigSlots>(12), // SlotDebugData { name: "InstantiatedModule(shift_register: shift_register).shift_register::reg3$next", ty: Bool },
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                Branch {
 | 
				
			||||||
 | 
					                    target: 29,
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                Copy {
 | 
				
			||||||
 | 
					                    dest: StatePartIndex<BigSlots>(11), // SlotDebugData { name: "InstantiatedModule(shift_register: shift_register).shift_register::reg3", ty: Bool },
 | 
				
			||||||
 | 
					                    src: StatePartIndex<BigSlots>(6), // SlotDebugData { name: "", ty: Bool },
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                // at: module-XXXXXXXXXX.rs:5:1
 | 
				
			||||||
 | 
					                NotSmall {
 | 
				
			||||||
 | 
					                    dest: StatePartIndex<SmallSlots>(0), // SlotDebugData { name: "", ty: Bool },
 | 
				
			||||||
 | 
					                    src: StatePartIndex<SmallSlots>(2), // SlotDebugData { name: "", ty: Bool },
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                // at: module-XXXXXXXXXX.rs:1:1
 | 
				
			||||||
 | 
					                Return,
 | 
				
			||||||
 | 
					            ],
 | 
				
			||||||
 | 
					            ..
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        pc: 30,
 | 
				
			||||||
 | 
					        small_slots: StatePart {
 | 
				
			||||||
 | 
					            value: [
 | 
				
			||||||
 | 
					                18446744073709551614,
 | 
				
			||||||
 | 
					                0,
 | 
				
			||||||
 | 
					                1,
 | 
				
			||||||
 | 
					                0,
 | 
				
			||||||
 | 
					            ],
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        big_slots: StatePart {
 | 
				
			||||||
 | 
					            value: [
 | 
				
			||||||
 | 
					                1,
 | 
				
			||||||
 | 
					                0,
 | 
				
			||||||
 | 
					                0,
 | 
				
			||||||
 | 
					                0,
 | 
				
			||||||
 | 
					                0,
 | 
				
			||||||
 | 
					                0,
 | 
				
			||||||
 | 
					                0,
 | 
				
			||||||
 | 
					                0,
 | 
				
			||||||
 | 
					                0,
 | 
				
			||||||
 | 
					                0,
 | 
				
			||||||
 | 
					                0,
 | 
				
			||||||
 | 
					                0,
 | 
				
			||||||
 | 
					                0,
 | 
				
			||||||
 | 
					            ],
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    io: Instance {
 | 
				
			||||||
 | 
					        name: <simulator>::shift_register,
 | 
				
			||||||
 | 
					        instantiated: Module {
 | 
				
			||||||
 | 
					            name: shift_register,
 | 
				
			||||||
 | 
					            ..
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    uninitialized_inputs: {},
 | 
				
			||||||
 | 
					    io_targets: {
 | 
				
			||||||
 | 
					        Instance {
 | 
				
			||||||
 | 
					            name: <simulator>::shift_register,
 | 
				
			||||||
 | 
					            instantiated: Module {
 | 
				
			||||||
 | 
					                name: shift_register,
 | 
				
			||||||
 | 
					                ..
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					        }.cd: CompiledValue {
 | 
				
			||||||
 | 
					            layout: CompiledTypeLayout {
 | 
				
			||||||
 | 
					                ty: Bundle {
 | 
				
			||||||
 | 
					                    /* offset = 0 */
 | 
				
			||||||
 | 
					                    clk: Clock,
 | 
				
			||||||
 | 
					                    /* offset = 1 */
 | 
				
			||||||
 | 
					                    rst: SyncReset,
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                layout: TypeLayout {
 | 
				
			||||||
 | 
					                    small_slots: StatePartAllocationLayout<SmallSlots> {
 | 
				
			||||||
 | 
					                        len: 0,
 | 
				
			||||||
 | 
					                        debug_data: [],
 | 
				
			||||||
 | 
					                        ..
 | 
				
			||||||
 | 
					                    },
 | 
				
			||||||
 | 
					                    big_slots: StatePartAllocationLayout<BigSlots> {
 | 
				
			||||||
 | 
					                        len: 2,
 | 
				
			||||||
 | 
					                        debug_data: [
 | 
				
			||||||
 | 
					                            SlotDebugData {
 | 
				
			||||||
 | 
					                                name: "InstantiatedModule(shift_register: shift_register).shift_register::cd.clk",
 | 
				
			||||||
 | 
					                                ty: Clock,
 | 
				
			||||||
 | 
					                            },
 | 
				
			||||||
 | 
					                            SlotDebugData {
 | 
				
			||||||
 | 
					                                name: "InstantiatedModule(shift_register: shift_register).shift_register::cd.rst",
 | 
				
			||||||
 | 
					                                ty: SyncReset,
 | 
				
			||||||
 | 
					                            },
 | 
				
			||||||
 | 
					                        ],
 | 
				
			||||||
 | 
					                        ..
 | 
				
			||||||
 | 
					                    },
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                body: Bundle {
 | 
				
			||||||
 | 
					                    fields: [
 | 
				
			||||||
 | 
					                        CompiledBundleField {
 | 
				
			||||||
 | 
					                            offset: TypeIndex {
 | 
				
			||||||
 | 
					                                small_slots: StatePartIndex<SmallSlots>(0),
 | 
				
			||||||
 | 
					                                big_slots: StatePartIndex<BigSlots>(0),
 | 
				
			||||||
 | 
					                            },
 | 
				
			||||||
 | 
					                            ty: CompiledTypeLayout {
 | 
				
			||||||
 | 
					                                ty: Clock,
 | 
				
			||||||
 | 
					                                layout: TypeLayout {
 | 
				
			||||||
 | 
					                                    small_slots: StatePartAllocationLayout<SmallSlots> {
 | 
				
			||||||
 | 
					                                        len: 0,
 | 
				
			||||||
 | 
					                                        debug_data: [],
 | 
				
			||||||
 | 
					                                        ..
 | 
				
			||||||
 | 
					                                    },
 | 
				
			||||||
 | 
					                                    big_slots: StatePartAllocationLayout<BigSlots> {
 | 
				
			||||||
 | 
					                                        len: 1,
 | 
				
			||||||
 | 
					                                        debug_data: [
 | 
				
			||||||
 | 
					                                            SlotDebugData {
 | 
				
			||||||
 | 
					                                                name: "",
 | 
				
			||||||
 | 
					                                                ty: Clock,
 | 
				
			||||||
 | 
					                                            },
 | 
				
			||||||
 | 
					                                        ],
 | 
				
			||||||
 | 
					                                        ..
 | 
				
			||||||
 | 
					                                    },
 | 
				
			||||||
 | 
					                                },
 | 
				
			||||||
 | 
					                                body: Scalar,
 | 
				
			||||||
 | 
					                            },
 | 
				
			||||||
 | 
					                        },
 | 
				
			||||||
 | 
					                        CompiledBundleField {
 | 
				
			||||||
 | 
					                            offset: TypeIndex {
 | 
				
			||||||
 | 
					                                small_slots: StatePartIndex<SmallSlots>(0),
 | 
				
			||||||
 | 
					                                big_slots: StatePartIndex<BigSlots>(1),
 | 
				
			||||||
 | 
					                            },
 | 
				
			||||||
 | 
					                            ty: CompiledTypeLayout {
 | 
				
			||||||
 | 
					                                ty: SyncReset,
 | 
				
			||||||
 | 
					                                layout: TypeLayout {
 | 
				
			||||||
 | 
					                                    small_slots: StatePartAllocationLayout<SmallSlots> {
 | 
				
			||||||
 | 
					                                        len: 0,
 | 
				
			||||||
 | 
					                                        debug_data: [],
 | 
				
			||||||
 | 
					                                        ..
 | 
				
			||||||
 | 
					                                    },
 | 
				
			||||||
 | 
					                                    big_slots: StatePartAllocationLayout<BigSlots> {
 | 
				
			||||||
 | 
					                                        len: 1,
 | 
				
			||||||
 | 
					                                        debug_data: [
 | 
				
			||||||
 | 
					                                            SlotDebugData {
 | 
				
			||||||
 | 
					                                                name: "",
 | 
				
			||||||
 | 
					                                                ty: SyncReset,
 | 
				
			||||||
 | 
					                                            },
 | 
				
			||||||
 | 
					                                        ],
 | 
				
			||||||
 | 
					                                        ..
 | 
				
			||||||
 | 
					                                    },
 | 
				
			||||||
 | 
					                                },
 | 
				
			||||||
 | 
					                                body: Scalar,
 | 
				
			||||||
 | 
					                            },
 | 
				
			||||||
 | 
					                        },
 | 
				
			||||||
 | 
					                    ],
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            range: TypeIndexRange {
 | 
				
			||||||
 | 
					                small_slots: StatePartIndexRange<SmallSlots> { start: 0, len: 0 },
 | 
				
			||||||
 | 
					                big_slots: StatePartIndexRange<BigSlots> { start: 0, len: 2 },
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            write: None,
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        Instance {
 | 
				
			||||||
 | 
					            name: <simulator>::shift_register,
 | 
				
			||||||
 | 
					            instantiated: Module {
 | 
				
			||||||
 | 
					                name: shift_register,
 | 
				
			||||||
 | 
					                ..
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					        }.cd.clk: CompiledValue {
 | 
				
			||||||
 | 
					            layout: CompiledTypeLayout {
 | 
				
			||||||
 | 
					                ty: Clock,
 | 
				
			||||||
 | 
					                layout: TypeLayout {
 | 
				
			||||||
 | 
					                    small_slots: StatePartAllocationLayout<SmallSlots> {
 | 
				
			||||||
 | 
					                        len: 0,
 | 
				
			||||||
 | 
					                        debug_data: [],
 | 
				
			||||||
 | 
					                        ..
 | 
				
			||||||
 | 
					                    },
 | 
				
			||||||
 | 
					                    big_slots: StatePartAllocationLayout<BigSlots> {
 | 
				
			||||||
 | 
					                        len: 1,
 | 
				
			||||||
 | 
					                        debug_data: [
 | 
				
			||||||
 | 
					                            SlotDebugData {
 | 
				
			||||||
 | 
					                                name: "",
 | 
				
			||||||
 | 
					                                ty: Clock,
 | 
				
			||||||
 | 
					                            },
 | 
				
			||||||
 | 
					                        ],
 | 
				
			||||||
 | 
					                        ..
 | 
				
			||||||
 | 
					                    },
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                body: Scalar,
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            range: TypeIndexRange {
 | 
				
			||||||
 | 
					                small_slots: StatePartIndexRange<SmallSlots> { start: 0, len: 0 },
 | 
				
			||||||
 | 
					                big_slots: StatePartIndexRange<BigSlots> { start: 0, len: 1 },
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            write: None,
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        Instance {
 | 
				
			||||||
 | 
					            name: <simulator>::shift_register,
 | 
				
			||||||
 | 
					            instantiated: Module {
 | 
				
			||||||
 | 
					                name: shift_register,
 | 
				
			||||||
 | 
					                ..
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					        }.cd.rst: CompiledValue {
 | 
				
			||||||
 | 
					            layout: CompiledTypeLayout {
 | 
				
			||||||
 | 
					                ty: SyncReset,
 | 
				
			||||||
 | 
					                layout: TypeLayout {
 | 
				
			||||||
 | 
					                    small_slots: StatePartAllocationLayout<SmallSlots> {
 | 
				
			||||||
 | 
					                        len: 0,
 | 
				
			||||||
 | 
					                        debug_data: [],
 | 
				
			||||||
 | 
					                        ..
 | 
				
			||||||
 | 
					                    },
 | 
				
			||||||
 | 
					                    big_slots: StatePartAllocationLayout<BigSlots> {
 | 
				
			||||||
 | 
					                        len: 1,
 | 
				
			||||||
 | 
					                        debug_data: [
 | 
				
			||||||
 | 
					                            SlotDebugData {
 | 
				
			||||||
 | 
					                                name: "",
 | 
				
			||||||
 | 
					                                ty: SyncReset,
 | 
				
			||||||
 | 
					                            },
 | 
				
			||||||
 | 
					                        ],
 | 
				
			||||||
 | 
					                        ..
 | 
				
			||||||
 | 
					                    },
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                body: Scalar,
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            range: TypeIndexRange {
 | 
				
			||||||
 | 
					                small_slots: StatePartIndexRange<SmallSlots> { start: 0, len: 0 },
 | 
				
			||||||
 | 
					                big_slots: StatePartIndexRange<BigSlots> { start: 1, len: 1 },
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            write: None,
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        Instance {
 | 
				
			||||||
 | 
					            name: <simulator>::shift_register,
 | 
				
			||||||
 | 
					            instantiated: Module {
 | 
				
			||||||
 | 
					                name: shift_register,
 | 
				
			||||||
 | 
					                ..
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					        }.d: CompiledValue {
 | 
				
			||||||
 | 
					            layout: CompiledTypeLayout {
 | 
				
			||||||
 | 
					                ty: Bool,
 | 
				
			||||||
 | 
					                layout: TypeLayout {
 | 
				
			||||||
 | 
					                    small_slots: StatePartAllocationLayout<SmallSlots> {
 | 
				
			||||||
 | 
					                        len: 0,
 | 
				
			||||||
 | 
					                        debug_data: [],
 | 
				
			||||||
 | 
					                        ..
 | 
				
			||||||
 | 
					                    },
 | 
				
			||||||
 | 
					                    big_slots: StatePartAllocationLayout<BigSlots> {
 | 
				
			||||||
 | 
					                        len: 1,
 | 
				
			||||||
 | 
					                        debug_data: [
 | 
				
			||||||
 | 
					                            SlotDebugData {
 | 
				
			||||||
 | 
					                                name: "InstantiatedModule(shift_register: shift_register).shift_register::d",
 | 
				
			||||||
 | 
					                                ty: Bool,
 | 
				
			||||||
 | 
					                            },
 | 
				
			||||||
 | 
					                        ],
 | 
				
			||||||
 | 
					                        ..
 | 
				
			||||||
 | 
					                    },
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                body: Scalar,
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            range: TypeIndexRange {
 | 
				
			||||||
 | 
					                small_slots: StatePartIndexRange<SmallSlots> { start: 0, len: 0 },
 | 
				
			||||||
 | 
					                big_slots: StatePartIndexRange<BigSlots> { start: 2, len: 1 },
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            write: None,
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        Instance {
 | 
				
			||||||
 | 
					            name: <simulator>::shift_register,
 | 
				
			||||||
 | 
					            instantiated: Module {
 | 
				
			||||||
 | 
					                name: shift_register,
 | 
				
			||||||
 | 
					                ..
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					        }.q: CompiledValue {
 | 
				
			||||||
 | 
					            layout: CompiledTypeLayout {
 | 
				
			||||||
 | 
					                ty: Bool,
 | 
				
			||||||
 | 
					                layout: TypeLayout {
 | 
				
			||||||
 | 
					                    small_slots: StatePartAllocationLayout<SmallSlots> {
 | 
				
			||||||
 | 
					                        len: 0,
 | 
				
			||||||
 | 
					                        debug_data: [],
 | 
				
			||||||
 | 
					                        ..
 | 
				
			||||||
 | 
					                    },
 | 
				
			||||||
 | 
					                    big_slots: StatePartAllocationLayout<BigSlots> {
 | 
				
			||||||
 | 
					                        len: 1,
 | 
				
			||||||
 | 
					                        debug_data: [
 | 
				
			||||||
 | 
					                            SlotDebugData {
 | 
				
			||||||
 | 
					                                name: "InstantiatedModule(shift_register: shift_register).shift_register::q",
 | 
				
			||||||
 | 
					                                ty: Bool,
 | 
				
			||||||
 | 
					                            },
 | 
				
			||||||
 | 
					                        ],
 | 
				
			||||||
 | 
					                        ..
 | 
				
			||||||
 | 
					                    },
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                body: Scalar,
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            range: TypeIndexRange {
 | 
				
			||||||
 | 
					                small_slots: StatePartIndexRange<SmallSlots> { start: 0, len: 0 },
 | 
				
			||||||
 | 
					                big_slots: StatePartIndexRange<BigSlots> { start: 3, len: 1 },
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            write: None,
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    made_initial_step: true,
 | 
				
			||||||
 | 
					    needs_settle: false,
 | 
				
			||||||
 | 
					    trace_decls: TraceModule {
 | 
				
			||||||
 | 
					        name: "shift_register",
 | 
				
			||||||
 | 
					        children: [
 | 
				
			||||||
 | 
					            TraceModuleIO {
 | 
				
			||||||
 | 
					                name: "cd",
 | 
				
			||||||
 | 
					                child: TraceBundle {
 | 
				
			||||||
 | 
					                    name: "cd",
 | 
				
			||||||
 | 
					                    fields: [
 | 
				
			||||||
 | 
					                        TraceClock {
 | 
				
			||||||
 | 
					                            id: TraceScalarId(0),
 | 
				
			||||||
 | 
					                            name: "clk",
 | 
				
			||||||
 | 
					                            flow: Source,
 | 
				
			||||||
 | 
					                        },
 | 
				
			||||||
 | 
					                        TraceSyncReset {
 | 
				
			||||||
 | 
					                            id: 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: "d",
 | 
				
			||||||
 | 
					                child: TraceBool {
 | 
				
			||||||
 | 
					                    id: TraceScalarId(2),
 | 
				
			||||||
 | 
					                    name: "d",
 | 
				
			||||||
 | 
					                    flow: Source,
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                ty: Bool,
 | 
				
			||||||
 | 
					                flow: Source,
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            TraceModuleIO {
 | 
				
			||||||
 | 
					                name: "q",
 | 
				
			||||||
 | 
					                child: TraceBool {
 | 
				
			||||||
 | 
					                    id: TraceScalarId(3),
 | 
				
			||||||
 | 
					                    name: "q",
 | 
				
			||||||
 | 
					                    flow: Sink,
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                ty: Bool,
 | 
				
			||||||
 | 
					                flow: Sink,
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            TraceReg {
 | 
				
			||||||
 | 
					                name: "reg0",
 | 
				
			||||||
 | 
					                child: TraceBool {
 | 
				
			||||||
 | 
					                    id: TraceScalarId(4),
 | 
				
			||||||
 | 
					                    name: "reg0",
 | 
				
			||||||
 | 
					                    flow: Duplex,
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                ty: Bool,
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            TraceReg {
 | 
				
			||||||
 | 
					                name: "reg1",
 | 
				
			||||||
 | 
					                child: TraceBool {
 | 
				
			||||||
 | 
					                    id: TraceScalarId(5),
 | 
				
			||||||
 | 
					                    name: "reg1",
 | 
				
			||||||
 | 
					                    flow: Duplex,
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                ty: Bool,
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            TraceReg {
 | 
				
			||||||
 | 
					                name: "reg2",
 | 
				
			||||||
 | 
					                child: TraceBool {
 | 
				
			||||||
 | 
					                    id: TraceScalarId(6),
 | 
				
			||||||
 | 
					                    name: "reg2",
 | 
				
			||||||
 | 
					                    flow: Duplex,
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                ty: Bool,
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            TraceReg {
 | 
				
			||||||
 | 
					                name: "reg3",
 | 
				
			||||||
 | 
					                child: TraceBool {
 | 
				
			||||||
 | 
					                    id: TraceScalarId(7),
 | 
				
			||||||
 | 
					                    name: "reg3",
 | 
				
			||||||
 | 
					                    flow: Duplex,
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                ty: Bool,
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					        ],
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    traces: [
 | 
				
			||||||
 | 
					        SimTrace {
 | 
				
			||||||
 | 
					            id: TraceScalarId(0),
 | 
				
			||||||
 | 
					            kind: BigClock {
 | 
				
			||||||
 | 
					                index: StatePartIndex<BigSlots>(0),
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            state: 0x1,
 | 
				
			||||||
 | 
					            last_state: 0x1,
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        SimTrace {
 | 
				
			||||||
 | 
					            id: TraceScalarId(1),
 | 
				
			||||||
 | 
					            kind: BigSyncReset {
 | 
				
			||||||
 | 
					                index: StatePartIndex<BigSlots>(1),
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            state: 0x0,
 | 
				
			||||||
 | 
					            last_state: 0x0,
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        SimTrace {
 | 
				
			||||||
 | 
					            id: TraceScalarId(2),
 | 
				
			||||||
 | 
					            kind: BigBool {
 | 
				
			||||||
 | 
					                index: StatePartIndex<BigSlots>(2),
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            state: 0x0,
 | 
				
			||||||
 | 
					            last_state: 0x0,
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        SimTrace {
 | 
				
			||||||
 | 
					            id: TraceScalarId(3),
 | 
				
			||||||
 | 
					            kind: BigBool {
 | 
				
			||||||
 | 
					                index: StatePartIndex<BigSlots>(3),
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            state: 0x0,
 | 
				
			||||||
 | 
					            last_state: 0x0,
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        SimTrace {
 | 
				
			||||||
 | 
					            id: TraceScalarId(4),
 | 
				
			||||||
 | 
					            kind: BigBool {
 | 
				
			||||||
 | 
					                index: StatePartIndex<BigSlots>(4),
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            state: 0x0,
 | 
				
			||||||
 | 
					            last_state: 0x0,
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        SimTrace {
 | 
				
			||||||
 | 
					            id: TraceScalarId(5),
 | 
				
			||||||
 | 
					            kind: BigBool {
 | 
				
			||||||
 | 
					                index: StatePartIndex<BigSlots>(7),
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            state: 0x0,
 | 
				
			||||||
 | 
					            last_state: 0x0,
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        SimTrace {
 | 
				
			||||||
 | 
					            id: TraceScalarId(6),
 | 
				
			||||||
 | 
					            kind: BigBool {
 | 
				
			||||||
 | 
					                index: StatePartIndex<BigSlots>(9),
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            state: 0x0,
 | 
				
			||||||
 | 
					            last_state: 0x0,
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        SimTrace {
 | 
				
			||||||
 | 
					            id: TraceScalarId(7),
 | 
				
			||||||
 | 
					            kind: BigBool {
 | 
				
			||||||
 | 
					                index: StatePartIndex<BigSlots>(11),
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            state: 0x0,
 | 
				
			||||||
 | 
					            last_state: 0x0,
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					    ],
 | 
				
			||||||
 | 
					    trace_writers: [
 | 
				
			||||||
 | 
					        Running(
 | 
				
			||||||
 | 
					            VcdWriter {
 | 
				
			||||||
 | 
					                finished_init: true,
 | 
				
			||||||
 | 
					                timescale: 1 ps,
 | 
				
			||||||
 | 
					                ..
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					        ),
 | 
				
			||||||
 | 
					    ],
 | 
				
			||||||
 | 
					    instant: 66 μs,
 | 
				
			||||||
 | 
					    clocks_triggered: [
 | 
				
			||||||
 | 
					        StatePartIndex<SmallSlots>(1),
 | 
				
			||||||
 | 
					    ],
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										193
									
								
								crates/fayalite/tests/sim/expected/shift_register.vcd
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										193
									
								
								crates/fayalite/tests/sim/expected/shift_register.vcd
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,193 @@
 | 
				
			||||||
 | 
					$timescale 1 ps $end
 | 
				
			||||||
 | 
					$scope module shift_register $end
 | 
				
			||||||
 | 
					$scope struct cd $end
 | 
				
			||||||
 | 
					$var wire 1 ! clk $end
 | 
				
			||||||
 | 
					$var wire 1 " rst $end
 | 
				
			||||||
 | 
					$upscope $end
 | 
				
			||||||
 | 
					$var wire 1 # d $end
 | 
				
			||||||
 | 
					$var wire 1 $ q $end
 | 
				
			||||||
 | 
					$var reg 1 % reg0 $end
 | 
				
			||||||
 | 
					$var reg 1 & reg1 $end
 | 
				
			||||||
 | 
					$var reg 1 ' reg2 $end
 | 
				
			||||||
 | 
					$var reg 1 ( reg3 $end
 | 
				
			||||||
 | 
					$upscope $end
 | 
				
			||||||
 | 
					$enddefinitions $end
 | 
				
			||||||
 | 
					$dumpvars
 | 
				
			||||||
 | 
					0!
 | 
				
			||||||
 | 
					1"
 | 
				
			||||||
 | 
					0#
 | 
				
			||||||
 | 
					0$
 | 
				
			||||||
 | 
					0%
 | 
				
			||||||
 | 
					0&
 | 
				
			||||||
 | 
					0'
 | 
				
			||||||
 | 
					0(
 | 
				
			||||||
 | 
					$end
 | 
				
			||||||
 | 
					#1000000
 | 
				
			||||||
 | 
					1!
 | 
				
			||||||
 | 
					#1100000
 | 
				
			||||||
 | 
					0"
 | 
				
			||||||
 | 
					#2000000
 | 
				
			||||||
 | 
					0!
 | 
				
			||||||
 | 
					#3000000
 | 
				
			||||||
 | 
					1!
 | 
				
			||||||
 | 
					#4000000
 | 
				
			||||||
 | 
					0!
 | 
				
			||||||
 | 
					1#
 | 
				
			||||||
 | 
					#5000000
 | 
				
			||||||
 | 
					1!
 | 
				
			||||||
 | 
					1%
 | 
				
			||||||
 | 
					#6000000
 | 
				
			||||||
 | 
					0!
 | 
				
			||||||
 | 
					#7000000
 | 
				
			||||||
 | 
					1!
 | 
				
			||||||
 | 
					1&
 | 
				
			||||||
 | 
					#8000000
 | 
				
			||||||
 | 
					0!
 | 
				
			||||||
 | 
					0#
 | 
				
			||||||
 | 
					#9000000
 | 
				
			||||||
 | 
					1!
 | 
				
			||||||
 | 
					0%
 | 
				
			||||||
 | 
					1'
 | 
				
			||||||
 | 
					#10000000
 | 
				
			||||||
 | 
					0!
 | 
				
			||||||
 | 
					#11000000
 | 
				
			||||||
 | 
					1!
 | 
				
			||||||
 | 
					0&
 | 
				
			||||||
 | 
					1(
 | 
				
			||||||
 | 
					1$
 | 
				
			||||||
 | 
					#12000000
 | 
				
			||||||
 | 
					0!
 | 
				
			||||||
 | 
					1#
 | 
				
			||||||
 | 
					#13000000
 | 
				
			||||||
 | 
					1!
 | 
				
			||||||
 | 
					1%
 | 
				
			||||||
 | 
					0'
 | 
				
			||||||
 | 
					#14000000
 | 
				
			||||||
 | 
					0!
 | 
				
			||||||
 | 
					0#
 | 
				
			||||||
 | 
					#15000000
 | 
				
			||||||
 | 
					1!
 | 
				
			||||||
 | 
					0%
 | 
				
			||||||
 | 
					1&
 | 
				
			||||||
 | 
					0(
 | 
				
			||||||
 | 
					0$
 | 
				
			||||||
 | 
					#16000000
 | 
				
			||||||
 | 
					0!
 | 
				
			||||||
 | 
					1#
 | 
				
			||||||
 | 
					#17000000
 | 
				
			||||||
 | 
					1!
 | 
				
			||||||
 | 
					1%
 | 
				
			||||||
 | 
					0&
 | 
				
			||||||
 | 
					1'
 | 
				
			||||||
 | 
					#18000000
 | 
				
			||||||
 | 
					0!
 | 
				
			||||||
 | 
					#19000000
 | 
				
			||||||
 | 
					1!
 | 
				
			||||||
 | 
					1&
 | 
				
			||||||
 | 
					0'
 | 
				
			||||||
 | 
					1(
 | 
				
			||||||
 | 
					1$
 | 
				
			||||||
 | 
					#20000000
 | 
				
			||||||
 | 
					0!
 | 
				
			||||||
 | 
					#21000000
 | 
				
			||||||
 | 
					1!
 | 
				
			||||||
 | 
					1'
 | 
				
			||||||
 | 
					0(
 | 
				
			||||||
 | 
					0$
 | 
				
			||||||
 | 
					#22000000
 | 
				
			||||||
 | 
					0!
 | 
				
			||||||
 | 
					#23000000
 | 
				
			||||||
 | 
					1!
 | 
				
			||||||
 | 
					1(
 | 
				
			||||||
 | 
					1$
 | 
				
			||||||
 | 
					#24000000
 | 
				
			||||||
 | 
					0!
 | 
				
			||||||
 | 
					0#
 | 
				
			||||||
 | 
					#25000000
 | 
				
			||||||
 | 
					1!
 | 
				
			||||||
 | 
					0%
 | 
				
			||||||
 | 
					#26000000
 | 
				
			||||||
 | 
					0!
 | 
				
			||||||
 | 
					#27000000
 | 
				
			||||||
 | 
					1!
 | 
				
			||||||
 | 
					0&
 | 
				
			||||||
 | 
					#28000000
 | 
				
			||||||
 | 
					0!
 | 
				
			||||||
 | 
					#29000000
 | 
				
			||||||
 | 
					1!
 | 
				
			||||||
 | 
					0'
 | 
				
			||||||
 | 
					#30000000
 | 
				
			||||||
 | 
					0!
 | 
				
			||||||
 | 
					#31000000
 | 
				
			||||||
 | 
					1!
 | 
				
			||||||
 | 
					0(
 | 
				
			||||||
 | 
					0$
 | 
				
			||||||
 | 
					#32000000
 | 
				
			||||||
 | 
					0!
 | 
				
			||||||
 | 
					#33000000
 | 
				
			||||||
 | 
					1!
 | 
				
			||||||
 | 
					#34000000
 | 
				
			||||||
 | 
					0!
 | 
				
			||||||
 | 
					#35000000
 | 
				
			||||||
 | 
					1!
 | 
				
			||||||
 | 
					#36000000
 | 
				
			||||||
 | 
					0!
 | 
				
			||||||
 | 
					#37000000
 | 
				
			||||||
 | 
					1!
 | 
				
			||||||
 | 
					#38000000
 | 
				
			||||||
 | 
					0!
 | 
				
			||||||
 | 
					#39000000
 | 
				
			||||||
 | 
					1!
 | 
				
			||||||
 | 
					#40000000
 | 
				
			||||||
 | 
					0!
 | 
				
			||||||
 | 
					#41000000
 | 
				
			||||||
 | 
					1!
 | 
				
			||||||
 | 
					#42000000
 | 
				
			||||||
 | 
					0!
 | 
				
			||||||
 | 
					#43000000
 | 
				
			||||||
 | 
					1!
 | 
				
			||||||
 | 
					#44000000
 | 
				
			||||||
 | 
					0!
 | 
				
			||||||
 | 
					#45000000
 | 
				
			||||||
 | 
					1!
 | 
				
			||||||
 | 
					#46000000
 | 
				
			||||||
 | 
					0!
 | 
				
			||||||
 | 
					#47000000
 | 
				
			||||||
 | 
					1!
 | 
				
			||||||
 | 
					#48000000
 | 
				
			||||||
 | 
					0!
 | 
				
			||||||
 | 
					#49000000
 | 
				
			||||||
 | 
					1!
 | 
				
			||||||
 | 
					#50000000
 | 
				
			||||||
 | 
					0!
 | 
				
			||||||
 | 
					#51000000
 | 
				
			||||||
 | 
					1!
 | 
				
			||||||
 | 
					#52000000
 | 
				
			||||||
 | 
					0!
 | 
				
			||||||
 | 
					#53000000
 | 
				
			||||||
 | 
					1!
 | 
				
			||||||
 | 
					#54000000
 | 
				
			||||||
 | 
					0!
 | 
				
			||||||
 | 
					#55000000
 | 
				
			||||||
 | 
					1!
 | 
				
			||||||
 | 
					#56000000
 | 
				
			||||||
 | 
					0!
 | 
				
			||||||
 | 
					#57000000
 | 
				
			||||||
 | 
					1!
 | 
				
			||||||
 | 
					#58000000
 | 
				
			||||||
 | 
					0!
 | 
				
			||||||
 | 
					#59000000
 | 
				
			||||||
 | 
					1!
 | 
				
			||||||
 | 
					#60000000
 | 
				
			||||||
 | 
					0!
 | 
				
			||||||
 | 
					#61000000
 | 
				
			||||||
 | 
					1!
 | 
				
			||||||
 | 
					#62000000
 | 
				
			||||||
 | 
					0!
 | 
				
			||||||
 | 
					#63000000
 | 
				
			||||||
 | 
					1!
 | 
				
			||||||
 | 
					#64000000
 | 
				
			||||||
 | 
					0!
 | 
				
			||||||
 | 
					#65000000
 | 
				
			||||||
 | 
					1!
 | 
				
			||||||
 | 
					#66000000
 | 
				
			||||||
| 
						 | 
					@ -46,7 +46,7 @@ function main()
 | 
				
			||||||
        */LICENSE.md|*/Notices.txt)
 | 
					        */LICENSE.md|*/Notices.txt)
 | 
				
			||||||
            # copyright file
 | 
					            # copyright file
 | 
				
			||||||
            ;;
 | 
					            ;;
 | 
				
			||||||
        /crates/fayalite/tests/ui/*.stderr)
 | 
					        /crates/fayalite/tests/ui/*.stderr|/crates/fayalite/tests/sim/expected/*.vcd|/crates/fayalite/tests/sim/expected/*.txt)
 | 
				
			||||||
            # file that can't contain copyright header
 | 
					            # file that can't contain copyright header
 | 
				
			||||||
            ;;
 | 
					            ;;
 | 
				
			||||||
        /.forgejo/workflows/*.yml|*/.gitignore|*.toml)
 | 
					        /.forgejo/workflows/*.yml|*/.gitignore|*.toml)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue