1641 lines
70 KiB
Plaintext
1641 lines
70 KiB
Plaintext
Simulation {
|
|
state: State {
|
|
insns: Insns {
|
|
state_layout: StateLayout {
|
|
ty: TypeLayout {
|
|
small_slots: StatePartLayout<SmallSlots> {
|
|
len: 5,
|
|
debug_data: [
|
|
SlotDebugData {
|
|
name: "",
|
|
ty: Bool,
|
|
},
|
|
SlotDebugData {
|
|
name: "",
|
|
ty: Bool,
|
|
},
|
|
SlotDebugData {
|
|
name: "",
|
|
ty: Bool,
|
|
},
|
|
SlotDebugData {
|
|
name: "",
|
|
ty: Bool,
|
|
},
|
|
SlotDebugData {
|
|
name: "",
|
|
ty: Enum {
|
|
A,
|
|
B,
|
|
C,
|
|
},
|
|
},
|
|
],
|
|
..
|
|
},
|
|
big_slots: StatePartLayout<BigSlots> {
|
|
len: 82,
|
|
debug_data: [
|
|
SlotDebugData {
|
|
name: "InstantiatedModule(enums: enums).enums::cd.clk",
|
|
ty: Clock,
|
|
},
|
|
SlotDebugData {
|
|
name: "InstantiatedModule(enums: enums).enums::cd.rst",
|
|
ty: SyncReset,
|
|
},
|
|
SlotDebugData {
|
|
name: "InstantiatedModule(enums: enums).enums::en",
|
|
ty: Bool,
|
|
},
|
|
SlotDebugData {
|
|
name: "InstantiatedModule(enums: enums).enums::which_in",
|
|
ty: UInt<2>,
|
|
},
|
|
SlotDebugData {
|
|
name: "InstantiatedModule(enums: enums).enums::data_in",
|
|
ty: UInt<4>,
|
|
},
|
|
SlotDebugData {
|
|
name: "InstantiatedModule(enums: enums).enums::which_out",
|
|
ty: UInt<2>,
|
|
},
|
|
SlotDebugData {
|
|
name: "InstantiatedModule(enums: enums).enums::data_out",
|
|
ty: UInt<4>,
|
|
},
|
|
SlotDebugData {
|
|
name: "InstantiatedModule(enums: enums).enums::the_reg",
|
|
ty: Enum {
|
|
A,
|
|
B(Bundle {0: UInt<1>, 1: Bool}),
|
|
C(Bundle {a: Array<UInt<1>, 2>, b: SInt<2>}),
|
|
},
|
|
},
|
|
SlotDebugData {
|
|
name: "InstantiatedModule(enums: enums).enums::the_reg$next",
|
|
ty: Enum {
|
|
A,
|
|
B(Bundle {0: UInt<1>, 1: Bool}),
|
|
C(Bundle {a: Array<UInt<1>, 2>, b: SInt<2>}),
|
|
},
|
|
},
|
|
SlotDebugData {
|
|
name: "",
|
|
ty: UInt<6>,
|
|
},
|
|
SlotDebugData {
|
|
name: "",
|
|
ty: Enum {
|
|
A,
|
|
B(Bundle {0: UInt<1>, 1: Bool}),
|
|
C(Bundle {a: Array<UInt<1>, 2>, b: SInt<2>}),
|
|
},
|
|
},
|
|
SlotDebugData {
|
|
name: ".0",
|
|
ty: UInt<1>,
|
|
},
|
|
SlotDebugData {
|
|
name: ".1",
|
|
ty: Bool,
|
|
},
|
|
SlotDebugData {
|
|
name: "",
|
|
ty: UInt<6>,
|
|
},
|
|
SlotDebugData {
|
|
name: "",
|
|
ty: UInt<2>,
|
|
},
|
|
SlotDebugData {
|
|
name: "",
|
|
ty: UInt<1>,
|
|
},
|
|
SlotDebugData {
|
|
name: "",
|
|
ty: UInt<1>,
|
|
},
|
|
SlotDebugData {
|
|
name: "",
|
|
ty: Bool,
|
|
},
|
|
SlotDebugData {
|
|
name: ".a[0]",
|
|
ty: UInt<1>,
|
|
},
|
|
SlotDebugData {
|
|
name: ".a[1]",
|
|
ty: UInt<1>,
|
|
},
|
|
SlotDebugData {
|
|
name: ".b",
|
|
ty: SInt<2>,
|
|
},
|
|
SlotDebugData {
|
|
name: "[0]",
|
|
ty: UInt<1>,
|
|
},
|
|
SlotDebugData {
|
|
name: "[1]",
|
|
ty: UInt<1>,
|
|
},
|
|
SlotDebugData {
|
|
name: "",
|
|
ty: UInt<4>,
|
|
},
|
|
SlotDebugData {
|
|
name: "",
|
|
ty: UInt<2>,
|
|
},
|
|
SlotDebugData {
|
|
name: "",
|
|
ty: UInt<1>,
|
|
},
|
|
SlotDebugData {
|
|
name: "",
|
|
ty: UInt<1>,
|
|
},
|
|
SlotDebugData {
|
|
name: "",
|
|
ty: UInt<2>,
|
|
},
|
|
SlotDebugData {
|
|
name: "",
|
|
ty: SInt<2>,
|
|
},
|
|
SlotDebugData {
|
|
name: "",
|
|
ty: UInt<2>,
|
|
},
|
|
SlotDebugData {
|
|
name: "",
|
|
ty: Bool,
|
|
},
|
|
SlotDebugData {
|
|
name: "",
|
|
ty: UInt<2>,
|
|
},
|
|
SlotDebugData {
|
|
name: "",
|
|
ty: Bool,
|
|
},
|
|
SlotDebugData {
|
|
name: ".0",
|
|
ty: UInt<2>,
|
|
},
|
|
SlotDebugData {
|
|
name: ".1.0",
|
|
ty: UInt<1>,
|
|
},
|
|
SlotDebugData {
|
|
name: ".1.1",
|
|
ty: Bool,
|
|
},
|
|
SlotDebugData {
|
|
name: ".0",
|
|
ty: UInt<1>,
|
|
},
|
|
SlotDebugData {
|
|
name: ".1",
|
|
ty: Bool,
|
|
},
|
|
SlotDebugData {
|
|
name: "",
|
|
ty: UInt<1>,
|
|
},
|
|
SlotDebugData {
|
|
name: "",
|
|
ty: Bool,
|
|
},
|
|
SlotDebugData {
|
|
name: "",
|
|
ty: UInt<1>,
|
|
},
|
|
SlotDebugData {
|
|
name: "",
|
|
ty: UInt<1>,
|
|
},
|
|
SlotDebugData {
|
|
name: "",
|
|
ty: Bool,
|
|
},
|
|
SlotDebugData {
|
|
name: "",
|
|
ty: UInt<1>,
|
|
},
|
|
SlotDebugData {
|
|
name: "",
|
|
ty: UInt<2>,
|
|
},
|
|
SlotDebugData {
|
|
name: "",
|
|
ty: UInt<2>,
|
|
},
|
|
SlotDebugData {
|
|
name: "",
|
|
ty: UInt<4>,
|
|
},
|
|
SlotDebugData {
|
|
name: "",
|
|
ty: UInt<4>,
|
|
},
|
|
SlotDebugData {
|
|
name: "",
|
|
ty: UInt<6>,
|
|
},
|
|
SlotDebugData {
|
|
name: "",
|
|
ty: Enum {
|
|
A,
|
|
B(Bundle {0: UInt<1>, 1: Bool}),
|
|
C(Bundle {a: Array<UInt<1>, 2>, b: SInt<2>}),
|
|
},
|
|
},
|
|
SlotDebugData {
|
|
name: ".0",
|
|
ty: UInt<2>,
|
|
},
|
|
SlotDebugData {
|
|
name: ".1.a[0]",
|
|
ty: UInt<1>,
|
|
},
|
|
SlotDebugData {
|
|
name: ".1.a[1]",
|
|
ty: UInt<1>,
|
|
},
|
|
SlotDebugData {
|
|
name: ".1.b",
|
|
ty: SInt<2>,
|
|
},
|
|
SlotDebugData {
|
|
name: "",
|
|
ty: UInt<2>,
|
|
},
|
|
SlotDebugData {
|
|
name: ".a[0]",
|
|
ty: UInt<1>,
|
|
},
|
|
SlotDebugData {
|
|
name: ".a[1]",
|
|
ty: UInt<1>,
|
|
},
|
|
SlotDebugData {
|
|
name: ".b",
|
|
ty: SInt<2>,
|
|
},
|
|
SlotDebugData {
|
|
name: "[0]",
|
|
ty: UInt<1>,
|
|
},
|
|
SlotDebugData {
|
|
name: "[1]",
|
|
ty: UInt<1>,
|
|
},
|
|
SlotDebugData {
|
|
name: "",
|
|
ty: UInt<1>,
|
|
},
|
|
SlotDebugData {
|
|
name: "",
|
|
ty: UInt<2>,
|
|
},
|
|
SlotDebugData {
|
|
name: "",
|
|
ty: SInt<2>,
|
|
},
|
|
SlotDebugData {
|
|
name: "",
|
|
ty: UInt<2>,
|
|
},
|
|
SlotDebugData {
|
|
name: "",
|
|
ty: UInt<2>,
|
|
},
|
|
SlotDebugData {
|
|
name: "",
|
|
ty: UInt<2>,
|
|
},
|
|
SlotDebugData {
|
|
name: "",
|
|
ty: UInt<4>,
|
|
},
|
|
SlotDebugData {
|
|
name: "",
|
|
ty: UInt<4>,
|
|
},
|
|
SlotDebugData {
|
|
name: "",
|
|
ty: UInt<6>,
|
|
},
|
|
SlotDebugData {
|
|
name: "",
|
|
ty: UInt<6>,
|
|
},
|
|
SlotDebugData {
|
|
name: "",
|
|
ty: UInt<6>,
|
|
},
|
|
SlotDebugData {
|
|
name: "",
|
|
ty: Enum {
|
|
A,
|
|
B(Bundle {0: UInt<1>, 1: Bool}),
|
|
C(Bundle {a: Array<UInt<1>, 2>, b: SInt<2>}),
|
|
},
|
|
},
|
|
SlotDebugData {
|
|
name: "",
|
|
ty: UInt<4>,
|
|
},
|
|
SlotDebugData {
|
|
name: "",
|
|
ty: UInt<1>,
|
|
},
|
|
SlotDebugData {
|
|
name: "",
|
|
ty: UInt<2>,
|
|
},
|
|
SlotDebugData {
|
|
name: "",
|
|
ty: UInt<2>,
|
|
},
|
|
SlotDebugData {
|
|
name: "",
|
|
ty: UInt<4>,
|
|
},
|
|
SlotDebugData {
|
|
name: "",
|
|
ty: UInt<2>,
|
|
},
|
|
SlotDebugData {
|
|
name: "",
|
|
ty: UInt<2>,
|
|
},
|
|
SlotDebugData {
|
|
name: "",
|
|
ty: UInt<2>,
|
|
},
|
|
SlotDebugData {
|
|
name: "",
|
|
ty: UInt<4>,
|
|
},
|
|
SlotDebugData {
|
|
name: "",
|
|
ty: UInt<4>,
|
|
},
|
|
],
|
|
..
|
|
},
|
|
},
|
|
memories: StatePartLayout<Memories> {
|
|
len: 0,
|
|
debug_data: [],
|
|
layout_data: [],
|
|
..
|
|
},
|
|
},
|
|
insns: [
|
|
// at: module-XXXXXXXXXX.rs:1:1
|
|
0: Const {
|
|
dest: StatePartIndex<BigSlots>(72), // SlotDebugData { name: "", ty: UInt<4> },
|
|
value: 0,
|
|
},
|
|
1: SliceInt {
|
|
dest: StatePartIndex<BigSlots>(61), // SlotDebugData { name: "", ty: UInt<2> },
|
|
src: StatePartIndex<BigSlots>(4), // SlotDebugData { name: "InstantiatedModule(enums: enums).enums::data_in", ty: UInt<4> },
|
|
start: 2,
|
|
len: 2,
|
|
},
|
|
2: CastToSInt {
|
|
dest: StatePartIndex<BigSlots>(62), // SlotDebugData { name: "", ty: SInt<2> },
|
|
src: StatePartIndex<BigSlots>(61), // SlotDebugData { name: "", ty: UInt<2> },
|
|
dest_width: 2,
|
|
},
|
|
3: Const {
|
|
dest: StatePartIndex<BigSlots>(54), // SlotDebugData { name: "", ty: UInt<2> },
|
|
value: 2,
|
|
},
|
|
4: SliceInt {
|
|
dest: StatePartIndex<BigSlots>(41), // SlotDebugData { name: "", ty: UInt<1> },
|
|
src: StatePartIndex<BigSlots>(4), // SlotDebugData { name: "InstantiatedModule(enums: enums).enums::data_in", ty: UInt<4> },
|
|
start: 1,
|
|
len: 1,
|
|
},
|
|
5: Copy {
|
|
dest: StatePartIndex<BigSlots>(42), // SlotDebugData { name: "", ty: Bool },
|
|
src: StatePartIndex<BigSlots>(41), // SlotDebugData { name: "", ty: UInt<1> },
|
|
},
|
|
6: Copy {
|
|
dest: StatePartIndex<BigSlots>(60), // SlotDebugData { name: "", ty: UInt<1> },
|
|
src: StatePartIndex<BigSlots>(42), // SlotDebugData { name: "", ty: Bool },
|
|
},
|
|
7: SliceInt {
|
|
dest: StatePartIndex<BigSlots>(38), // SlotDebugData { name: "", ty: UInt<1> },
|
|
src: StatePartIndex<BigSlots>(4), // SlotDebugData { name: "InstantiatedModule(enums: enums).enums::data_in", ty: UInt<4> },
|
|
start: 0,
|
|
len: 1,
|
|
},
|
|
8: Copy {
|
|
dest: StatePartIndex<BigSlots>(39), // SlotDebugData { name: "", ty: Bool },
|
|
src: StatePartIndex<BigSlots>(38), // SlotDebugData { name: "", ty: UInt<1> },
|
|
},
|
|
9: Copy {
|
|
dest: StatePartIndex<BigSlots>(40), // SlotDebugData { name: "", ty: UInt<1> },
|
|
src: StatePartIndex<BigSlots>(39), // SlotDebugData { name: "", ty: Bool },
|
|
},
|
|
10: Copy {
|
|
dest: StatePartIndex<BigSlots>(36), // SlotDebugData { name: ".0", ty: UInt<1> },
|
|
src: StatePartIndex<BigSlots>(40), // SlotDebugData { name: "", ty: UInt<1> },
|
|
},
|
|
11: Copy {
|
|
dest: StatePartIndex<BigSlots>(37), // SlotDebugData { name: ".1", ty: Bool },
|
|
src: StatePartIndex<BigSlots>(42), // SlotDebugData { name: "", ty: Bool },
|
|
},
|
|
12: Copy {
|
|
dest: StatePartIndex<BigSlots>(58), // SlotDebugData { name: "[0]", ty: UInt<1> },
|
|
src: StatePartIndex<BigSlots>(40), // SlotDebugData { name: "", ty: UInt<1> },
|
|
},
|
|
13: Copy {
|
|
dest: StatePartIndex<BigSlots>(59), // SlotDebugData { name: "[1]", ty: UInt<1> },
|
|
src: StatePartIndex<BigSlots>(60), // SlotDebugData { name: "", ty: UInt<1> },
|
|
},
|
|
14: Copy {
|
|
dest: StatePartIndex<BigSlots>(55), // SlotDebugData { name: ".a[0]", ty: UInt<1> },
|
|
src: StatePartIndex<BigSlots>(58), // SlotDebugData { name: "[0]", ty: UInt<1> },
|
|
},
|
|
15: Copy {
|
|
dest: StatePartIndex<BigSlots>(56), // SlotDebugData { name: ".a[1]", ty: UInt<1> },
|
|
src: StatePartIndex<BigSlots>(59), // SlotDebugData { name: "[1]", ty: UInt<1> },
|
|
},
|
|
16: Copy {
|
|
dest: StatePartIndex<BigSlots>(57), // SlotDebugData { name: ".b", ty: SInt<2> },
|
|
src: StatePartIndex<BigSlots>(62), // SlotDebugData { name: "", ty: SInt<2> },
|
|
},
|
|
17: Copy {
|
|
dest: StatePartIndex<BigSlots>(50), // SlotDebugData { name: ".0", ty: UInt<2> },
|
|
src: StatePartIndex<BigSlots>(54), // SlotDebugData { name: "", ty: UInt<2> },
|
|
},
|
|
18: Copy {
|
|
dest: StatePartIndex<BigSlots>(51), // SlotDebugData { name: ".1.a[0]", ty: UInt<1> },
|
|
src: StatePartIndex<BigSlots>(55), // SlotDebugData { name: ".a[0]", ty: UInt<1> },
|
|
},
|
|
19: Copy {
|
|
dest: StatePartIndex<BigSlots>(52), // SlotDebugData { name: ".1.a[1]", ty: UInt<1> },
|
|
src: StatePartIndex<BigSlots>(56), // SlotDebugData { name: ".a[1]", ty: UInt<1> },
|
|
},
|
|
20: Copy {
|
|
dest: StatePartIndex<BigSlots>(53), // SlotDebugData { name: ".1.b", ty: SInt<2> },
|
|
src: StatePartIndex<BigSlots>(57), // SlotDebugData { name: ".b", ty: SInt<2> },
|
|
},
|
|
21: Shl {
|
|
dest: StatePartIndex<BigSlots>(63), // SlotDebugData { name: "", ty: UInt<2> },
|
|
lhs: StatePartIndex<BigSlots>(52), // SlotDebugData { name: ".1.a[1]", ty: UInt<1> },
|
|
rhs: 1,
|
|
},
|
|
22: Or {
|
|
dest: StatePartIndex<BigSlots>(64), // SlotDebugData { name: "", ty: UInt<2> },
|
|
lhs: StatePartIndex<BigSlots>(51), // SlotDebugData { name: ".1.a[0]", ty: UInt<1> },
|
|
rhs: StatePartIndex<BigSlots>(63), // SlotDebugData { name: "", ty: UInt<2> },
|
|
},
|
|
23: CastToUInt {
|
|
dest: StatePartIndex<BigSlots>(65), // SlotDebugData { name: "", ty: UInt<2> },
|
|
src: StatePartIndex<BigSlots>(53), // SlotDebugData { name: ".1.b", ty: SInt<2> },
|
|
dest_width: 2,
|
|
},
|
|
24: Shl {
|
|
dest: StatePartIndex<BigSlots>(66), // SlotDebugData { name: "", ty: UInt<4> },
|
|
lhs: StatePartIndex<BigSlots>(65), // SlotDebugData { name: "", ty: UInt<2> },
|
|
rhs: 2,
|
|
},
|
|
25: Or {
|
|
dest: StatePartIndex<BigSlots>(67), // SlotDebugData { name: "", ty: UInt<4> },
|
|
lhs: StatePartIndex<BigSlots>(64), // SlotDebugData { name: "", ty: UInt<2> },
|
|
rhs: StatePartIndex<BigSlots>(66), // SlotDebugData { name: "", ty: UInt<4> },
|
|
},
|
|
26: Shl {
|
|
dest: StatePartIndex<BigSlots>(68), // SlotDebugData { name: "", ty: UInt<6> },
|
|
lhs: StatePartIndex<BigSlots>(67), // SlotDebugData { name: "", ty: UInt<4> },
|
|
rhs: 2,
|
|
},
|
|
27: Or {
|
|
dest: StatePartIndex<BigSlots>(69), // SlotDebugData { name: "", ty: UInt<6> },
|
|
lhs: StatePartIndex<BigSlots>(50), // SlotDebugData { name: ".0", ty: UInt<2> },
|
|
rhs: StatePartIndex<BigSlots>(68), // SlotDebugData { name: "", ty: UInt<6> },
|
|
},
|
|
28: CastToUInt {
|
|
dest: StatePartIndex<BigSlots>(70), // SlotDebugData { name: "", ty: UInt<6> },
|
|
src: StatePartIndex<BigSlots>(69), // SlotDebugData { name: "", ty: UInt<6> },
|
|
dest_width: 6,
|
|
},
|
|
29: Copy {
|
|
dest: StatePartIndex<BigSlots>(71), // SlotDebugData { name: "", ty: Enum {A, B(Bundle {0: UInt<1>, 1: Bool}), C(Bundle {a: Array<UInt<1>, 2>, b: SInt<2>})} },
|
|
src: StatePartIndex<BigSlots>(70), // SlotDebugData { name: "", ty: UInt<6> },
|
|
},
|
|
30: Const {
|
|
dest: StatePartIndex<BigSlots>(31), // SlotDebugData { name: "", ty: UInt<2> },
|
|
value: 1,
|
|
},
|
|
31: CmpEq {
|
|
dest: StatePartIndex<BigSlots>(32), // SlotDebugData { name: "", ty: Bool },
|
|
lhs: StatePartIndex<BigSlots>(3), // SlotDebugData { name: "InstantiatedModule(enums: enums).enums::which_in", ty: UInt<2> },
|
|
rhs: StatePartIndex<BigSlots>(31), // SlotDebugData { name: "", ty: UInt<2> },
|
|
},
|
|
32: Copy {
|
|
dest: StatePartIndex<BigSlots>(33), // SlotDebugData { name: ".0", ty: UInt<2> },
|
|
src: StatePartIndex<BigSlots>(31), // SlotDebugData { name: "", ty: UInt<2> },
|
|
},
|
|
33: Copy {
|
|
dest: StatePartIndex<BigSlots>(34), // SlotDebugData { name: ".1.0", ty: UInt<1> },
|
|
src: StatePartIndex<BigSlots>(36), // SlotDebugData { name: ".0", ty: UInt<1> },
|
|
},
|
|
34: Copy {
|
|
dest: StatePartIndex<BigSlots>(35), // SlotDebugData { name: ".1.1", ty: Bool },
|
|
src: StatePartIndex<BigSlots>(37), // SlotDebugData { name: ".1", ty: Bool },
|
|
},
|
|
35: Copy {
|
|
dest: StatePartIndex<BigSlots>(43), // SlotDebugData { name: "", ty: UInt<1> },
|
|
src: StatePartIndex<BigSlots>(35), // SlotDebugData { name: ".1.1", ty: Bool },
|
|
},
|
|
36: Shl {
|
|
dest: StatePartIndex<BigSlots>(44), // SlotDebugData { name: "", ty: UInt<2> },
|
|
lhs: StatePartIndex<BigSlots>(43), // SlotDebugData { name: "", ty: UInt<1> },
|
|
rhs: 1,
|
|
},
|
|
37: Or {
|
|
dest: StatePartIndex<BigSlots>(45), // SlotDebugData { name: "", ty: UInt<2> },
|
|
lhs: StatePartIndex<BigSlots>(34), // SlotDebugData { name: ".1.0", ty: UInt<1> },
|
|
rhs: StatePartIndex<BigSlots>(44), // SlotDebugData { name: "", ty: UInt<2> },
|
|
},
|
|
38: Shl {
|
|
dest: StatePartIndex<BigSlots>(46), // SlotDebugData { name: "", ty: UInt<4> },
|
|
lhs: StatePartIndex<BigSlots>(45), // SlotDebugData { name: "", ty: UInt<2> },
|
|
rhs: 2,
|
|
},
|
|
39: Or {
|
|
dest: StatePartIndex<BigSlots>(47), // SlotDebugData { name: "", ty: UInt<4> },
|
|
lhs: StatePartIndex<BigSlots>(33), // SlotDebugData { name: ".0", ty: UInt<2> },
|
|
rhs: StatePartIndex<BigSlots>(46), // SlotDebugData { name: "", ty: UInt<4> },
|
|
},
|
|
40: CastToUInt {
|
|
dest: StatePartIndex<BigSlots>(48), // SlotDebugData { name: "", ty: UInt<6> },
|
|
src: StatePartIndex<BigSlots>(47), // SlotDebugData { name: "", ty: UInt<4> },
|
|
dest_width: 6,
|
|
},
|
|
41: Copy {
|
|
dest: StatePartIndex<BigSlots>(49), // SlotDebugData { name: "", ty: Enum {A, B(Bundle {0: UInt<1>, 1: Bool}), C(Bundle {a: Array<UInt<1>, 2>, b: SInt<2>})} },
|
|
src: StatePartIndex<BigSlots>(48), // SlotDebugData { name: "", ty: UInt<6> },
|
|
},
|
|
42: Const {
|
|
dest: StatePartIndex<BigSlots>(29), // SlotDebugData { name: "", ty: UInt<2> },
|
|
value: 0,
|
|
},
|
|
43: CmpEq {
|
|
dest: StatePartIndex<BigSlots>(30), // SlotDebugData { name: "", ty: Bool },
|
|
lhs: StatePartIndex<BigSlots>(3), // SlotDebugData { name: "InstantiatedModule(enums: enums).enums::which_in", ty: UInt<2> },
|
|
rhs: StatePartIndex<BigSlots>(29), // SlotDebugData { name: "", ty: UInt<2> },
|
|
},
|
|
44: Copy {
|
|
dest: StatePartIndex<BigSlots>(13), // SlotDebugData { name: "", ty: UInt<6> },
|
|
src: StatePartIndex<BigSlots>(7), // SlotDebugData { name: "InstantiatedModule(enums: enums).enums::the_reg", ty: Enum {A, B(Bundle {0: UInt<1>, 1: Bool}), C(Bundle {a: Array<UInt<1>, 2>, b: SInt<2>})} },
|
|
},
|
|
45: SliceInt {
|
|
dest: StatePartIndex<BigSlots>(14), // SlotDebugData { name: "", ty: UInt<2> },
|
|
src: StatePartIndex<BigSlots>(13), // SlotDebugData { name: "", ty: UInt<6> },
|
|
start: 2,
|
|
len: 2,
|
|
},
|
|
46: SliceInt {
|
|
dest: StatePartIndex<BigSlots>(15), // SlotDebugData { name: "", ty: UInt<1> },
|
|
src: StatePartIndex<BigSlots>(14), // SlotDebugData { name: "", ty: UInt<2> },
|
|
start: 0,
|
|
len: 1,
|
|
},
|
|
47: SliceInt {
|
|
dest: StatePartIndex<BigSlots>(16), // SlotDebugData { name: "", ty: UInt<1> },
|
|
src: StatePartIndex<BigSlots>(14), // SlotDebugData { name: "", ty: UInt<2> },
|
|
start: 1,
|
|
len: 1,
|
|
},
|
|
48: Copy {
|
|
dest: StatePartIndex<BigSlots>(17), // SlotDebugData { name: "", ty: Bool },
|
|
src: StatePartIndex<BigSlots>(16), // SlotDebugData { name: "", ty: UInt<1> },
|
|
},
|
|
49: Copy {
|
|
dest: StatePartIndex<BigSlots>(11), // SlotDebugData { name: ".0", ty: UInt<1> },
|
|
src: StatePartIndex<BigSlots>(15), // SlotDebugData { name: "", ty: UInt<1> },
|
|
},
|
|
50: Copy {
|
|
dest: StatePartIndex<BigSlots>(12), // SlotDebugData { name: ".1", ty: Bool },
|
|
src: StatePartIndex<BigSlots>(17), // SlotDebugData { name: "", ty: Bool },
|
|
},
|
|
51: Copy {
|
|
dest: StatePartIndex<BigSlots>(73), // SlotDebugData { name: "", ty: UInt<1> },
|
|
src: StatePartIndex<BigSlots>(12), // SlotDebugData { name: ".1", ty: Bool },
|
|
},
|
|
52: Shl {
|
|
dest: StatePartIndex<BigSlots>(74), // SlotDebugData { name: "", ty: UInt<2> },
|
|
lhs: StatePartIndex<BigSlots>(73), // SlotDebugData { name: "", ty: UInt<1> },
|
|
rhs: 1,
|
|
},
|
|
53: Or {
|
|
dest: StatePartIndex<BigSlots>(75), // SlotDebugData { name: "", ty: UInt<2> },
|
|
lhs: StatePartIndex<BigSlots>(11), // SlotDebugData { name: ".0", ty: UInt<1> },
|
|
rhs: StatePartIndex<BigSlots>(74), // SlotDebugData { name: "", ty: UInt<2> },
|
|
},
|
|
54: CastToUInt {
|
|
dest: StatePartIndex<BigSlots>(76), // SlotDebugData { name: "", ty: UInt<4> },
|
|
src: StatePartIndex<BigSlots>(75), // SlotDebugData { name: "", ty: UInt<2> },
|
|
dest_width: 4,
|
|
},
|
|
55: SliceInt {
|
|
dest: StatePartIndex<BigSlots>(23), // SlotDebugData { name: "", ty: UInt<4> },
|
|
src: StatePartIndex<BigSlots>(13), // SlotDebugData { name: "", ty: UInt<6> },
|
|
start: 2,
|
|
len: 4,
|
|
},
|
|
56: SliceInt {
|
|
dest: StatePartIndex<BigSlots>(24), // SlotDebugData { name: "", ty: UInt<2> },
|
|
src: StatePartIndex<BigSlots>(23), // SlotDebugData { name: "", ty: UInt<4> },
|
|
start: 0,
|
|
len: 2,
|
|
},
|
|
57: SliceInt {
|
|
dest: StatePartIndex<BigSlots>(25), // SlotDebugData { name: "", ty: UInt<1> },
|
|
src: StatePartIndex<BigSlots>(24), // SlotDebugData { name: "", ty: UInt<2> },
|
|
start: 0,
|
|
len: 1,
|
|
},
|
|
58: SliceInt {
|
|
dest: StatePartIndex<BigSlots>(26), // SlotDebugData { name: "", ty: UInt<1> },
|
|
src: StatePartIndex<BigSlots>(24), // SlotDebugData { name: "", ty: UInt<2> },
|
|
start: 1,
|
|
len: 1,
|
|
},
|
|
59: Copy {
|
|
dest: StatePartIndex<BigSlots>(21), // SlotDebugData { name: "[0]", ty: UInt<1> },
|
|
src: StatePartIndex<BigSlots>(25), // SlotDebugData { name: "", ty: UInt<1> },
|
|
},
|
|
60: Copy {
|
|
dest: StatePartIndex<BigSlots>(22), // SlotDebugData { name: "[1]", ty: UInt<1> },
|
|
src: StatePartIndex<BigSlots>(26), // SlotDebugData { name: "", ty: UInt<1> },
|
|
},
|
|
61: SliceInt {
|
|
dest: StatePartIndex<BigSlots>(27), // SlotDebugData { name: "", ty: UInt<2> },
|
|
src: StatePartIndex<BigSlots>(23), // SlotDebugData { name: "", ty: UInt<4> },
|
|
start: 2,
|
|
len: 2,
|
|
},
|
|
62: CastToSInt {
|
|
dest: StatePartIndex<BigSlots>(28), // SlotDebugData { name: "", ty: SInt<2> },
|
|
src: StatePartIndex<BigSlots>(27), // SlotDebugData { name: "", ty: UInt<2> },
|
|
dest_width: 2,
|
|
},
|
|
63: Copy {
|
|
dest: StatePartIndex<BigSlots>(18), // SlotDebugData { name: ".a[0]", ty: UInt<1> },
|
|
src: StatePartIndex<BigSlots>(21), // SlotDebugData { name: "[0]", ty: UInt<1> },
|
|
},
|
|
64: Copy {
|
|
dest: StatePartIndex<BigSlots>(19), // SlotDebugData { name: ".a[1]", ty: UInt<1> },
|
|
src: StatePartIndex<BigSlots>(22), // SlotDebugData { name: "[1]", ty: UInt<1> },
|
|
},
|
|
65: Copy {
|
|
dest: StatePartIndex<BigSlots>(20), // SlotDebugData { name: ".b", ty: SInt<2> },
|
|
src: StatePartIndex<BigSlots>(28), // SlotDebugData { name: "", ty: SInt<2> },
|
|
},
|
|
66: Shl {
|
|
dest: StatePartIndex<BigSlots>(77), // SlotDebugData { name: "", ty: UInt<2> },
|
|
lhs: StatePartIndex<BigSlots>(19), // SlotDebugData { name: ".a[1]", ty: UInt<1> },
|
|
rhs: 1,
|
|
},
|
|
67: Or {
|
|
dest: StatePartIndex<BigSlots>(78), // SlotDebugData { name: "", ty: UInt<2> },
|
|
lhs: StatePartIndex<BigSlots>(18), // SlotDebugData { name: ".a[0]", ty: UInt<1> },
|
|
rhs: StatePartIndex<BigSlots>(77), // SlotDebugData { name: "", ty: UInt<2> },
|
|
},
|
|
68: CastToUInt {
|
|
dest: StatePartIndex<BigSlots>(79), // SlotDebugData { name: "", ty: UInt<2> },
|
|
src: StatePartIndex<BigSlots>(20), // SlotDebugData { name: ".b", ty: SInt<2> },
|
|
dest_width: 2,
|
|
},
|
|
69: Shl {
|
|
dest: StatePartIndex<BigSlots>(80), // SlotDebugData { name: "", ty: UInt<4> },
|
|
lhs: StatePartIndex<BigSlots>(79), // SlotDebugData { name: "", ty: UInt<2> },
|
|
rhs: 2,
|
|
},
|
|
70: Or {
|
|
dest: StatePartIndex<BigSlots>(81), // SlotDebugData { name: "", ty: UInt<4> },
|
|
lhs: StatePartIndex<BigSlots>(78), // SlotDebugData { name: "", ty: UInt<2> },
|
|
rhs: StatePartIndex<BigSlots>(80), // SlotDebugData { name: "", ty: UInt<4> },
|
|
},
|
|
// at: module-XXXXXXXXXX.rs:8:1
|
|
71: AndBigWithSmallImmediate {
|
|
dest: StatePartIndex<SmallSlots>(4), // SlotDebugData { name: "", ty: Enum {A, B, C} },
|
|
lhs: StatePartIndex<BigSlots>(7), // SlotDebugData { name: "InstantiatedModule(enums: enums).enums::the_reg", ty: Enum {A, B(Bundle {0: UInt<1>, 1: Bool}), C(Bundle {a: Array<UInt<1>, 2>, b: SInt<2>})} },
|
|
rhs: 3,
|
|
},
|
|
// at: module-XXXXXXXXXX.rs:15:1
|
|
72: BranchIfSmallNeImmediate {
|
|
target: 75,
|
|
lhs: StatePartIndex<SmallSlots>(4), // SlotDebugData { name: "", ty: Enum {A, B, C} },
|
|
rhs: 0,
|
|
},
|
|
// at: module-XXXXXXXXXX.rs:16:1
|
|
73: Copy {
|
|
dest: StatePartIndex<BigSlots>(5), // SlotDebugData { name: "InstantiatedModule(enums: enums).enums::which_out", ty: UInt<2> },
|
|
src: StatePartIndex<BigSlots>(29), // SlotDebugData { name: "", ty: UInt<2> },
|
|
},
|
|
// at: module-XXXXXXXXXX.rs:17:1
|
|
74: Copy {
|
|
dest: StatePartIndex<BigSlots>(6), // SlotDebugData { name: "InstantiatedModule(enums: enums).enums::data_out", ty: UInt<4> },
|
|
src: StatePartIndex<BigSlots>(72), // SlotDebugData { name: "", ty: UInt<4> },
|
|
},
|
|
// at: module-XXXXXXXXXX.rs:15:1
|
|
75: BranchIfSmallNeImmediate {
|
|
target: 78,
|
|
lhs: StatePartIndex<SmallSlots>(4), // SlotDebugData { name: "", ty: Enum {A, B, C} },
|
|
rhs: 1,
|
|
},
|
|
// at: module-XXXXXXXXXX.rs:18:1
|
|
76: Copy {
|
|
dest: StatePartIndex<BigSlots>(5), // SlotDebugData { name: "InstantiatedModule(enums: enums).enums::which_out", ty: UInt<2> },
|
|
src: StatePartIndex<BigSlots>(31), // SlotDebugData { name: "", ty: UInt<2> },
|
|
},
|
|
// at: module-XXXXXXXXXX.rs:19:1
|
|
77: Copy {
|
|
dest: StatePartIndex<BigSlots>(6), // SlotDebugData { name: "InstantiatedModule(enums: enums).enums::data_out", ty: UInt<4> },
|
|
src: StatePartIndex<BigSlots>(76), // SlotDebugData { name: "", ty: UInt<4> },
|
|
},
|
|
// at: module-XXXXXXXXXX.rs:15:1
|
|
78: BranchIfSmallNeImmediate {
|
|
target: 81,
|
|
lhs: StatePartIndex<SmallSlots>(4), // SlotDebugData { name: "", ty: Enum {A, B, C} },
|
|
rhs: 2,
|
|
},
|
|
// at: module-XXXXXXXXXX.rs:20:1
|
|
79: Copy {
|
|
dest: StatePartIndex<BigSlots>(5), // SlotDebugData { name: "InstantiatedModule(enums: enums).enums::which_out", ty: UInt<2> },
|
|
src: StatePartIndex<BigSlots>(54), // SlotDebugData { name: "", ty: UInt<2> },
|
|
},
|
|
// at: module-XXXXXXXXXX.rs:21:1
|
|
80: Copy {
|
|
dest: StatePartIndex<BigSlots>(6), // SlotDebugData { name: "InstantiatedModule(enums: enums).enums::data_out", ty: UInt<4> },
|
|
src: StatePartIndex<BigSlots>(81), // SlotDebugData { name: "", ty: UInt<4> },
|
|
},
|
|
// at: module-XXXXXXXXXX.rs:8:1
|
|
81: IsNonZeroDestIsSmall {
|
|
dest: StatePartIndex<SmallSlots>(3), // SlotDebugData { name: "", ty: Bool },
|
|
src: StatePartIndex<BigSlots>(1), // SlotDebugData { name: "InstantiatedModule(enums: enums).enums::cd.rst", ty: SyncReset },
|
|
},
|
|
// at: module-XXXXXXXXXX.rs:1:1
|
|
82: Const {
|
|
dest: StatePartIndex<BigSlots>(9), // SlotDebugData { name: "", ty: UInt<6> },
|
|
value: 0,
|
|
},
|
|
83: Copy {
|
|
dest: StatePartIndex<BigSlots>(10), // SlotDebugData { name: "", ty: Enum {A, B(Bundle {0: UInt<1>, 1: Bool}), C(Bundle {a: Array<UInt<1>, 2>, b: SInt<2>})} },
|
|
src: StatePartIndex<BigSlots>(9), // SlotDebugData { name: "", ty: UInt<6> },
|
|
},
|
|
// at: module-XXXXXXXXXX.rs:9:1
|
|
84: BranchIfZero {
|
|
target: 92,
|
|
value: StatePartIndex<BigSlots>(2), // SlotDebugData { name: "InstantiatedModule(enums: enums).enums::en", ty: Bool },
|
|
},
|
|
// at: module-XXXXXXXXXX.rs:10:1
|
|
85: BranchIfZero {
|
|
target: 87,
|
|
value: StatePartIndex<BigSlots>(30), // SlotDebugData { name: "", ty: Bool },
|
|
},
|
|
// at: module-XXXXXXXXXX.rs:11:1
|
|
86: Copy {
|
|
dest: StatePartIndex<BigSlots>(8), // SlotDebugData { name: "InstantiatedModule(enums: enums).enums::the_reg$next", ty: Enum {A, B(Bundle {0: UInt<1>, 1: Bool}), C(Bundle {a: Array<UInt<1>, 2>, b: SInt<2>})} },
|
|
src: StatePartIndex<BigSlots>(10), // SlotDebugData { name: "", ty: Enum {A, B(Bundle {0: UInt<1>, 1: Bool}), C(Bundle {a: Array<UInt<1>, 2>, b: SInt<2>})} },
|
|
},
|
|
// at: module-XXXXXXXXXX.rs:10:1
|
|
87: BranchIfNonZero {
|
|
target: 92,
|
|
value: StatePartIndex<BigSlots>(30), // SlotDebugData { name: "", ty: Bool },
|
|
},
|
|
// at: module-XXXXXXXXXX.rs:12:1
|
|
88: BranchIfZero {
|
|
target: 90,
|
|
value: StatePartIndex<BigSlots>(32), // SlotDebugData { name: "", ty: Bool },
|
|
},
|
|
// at: module-XXXXXXXXXX.rs:13:1
|
|
89: Copy {
|
|
dest: StatePartIndex<BigSlots>(8), // SlotDebugData { name: "InstantiatedModule(enums: enums).enums::the_reg$next", ty: Enum {A, B(Bundle {0: UInt<1>, 1: Bool}), C(Bundle {a: Array<UInt<1>, 2>, b: SInt<2>})} },
|
|
src: StatePartIndex<BigSlots>(49), // SlotDebugData { name: "", ty: Enum {A, B(Bundle {0: UInt<1>, 1: Bool}), C(Bundle {a: Array<UInt<1>, 2>, b: SInt<2>})} },
|
|
},
|
|
// at: module-XXXXXXXXXX.rs:12:1
|
|
90: BranchIfNonZero {
|
|
target: 92,
|
|
value: StatePartIndex<BigSlots>(32), // SlotDebugData { name: "", ty: Bool },
|
|
},
|
|
// at: module-XXXXXXXXXX.rs:14:1
|
|
91: Copy {
|
|
dest: StatePartIndex<BigSlots>(8), // SlotDebugData { name: "InstantiatedModule(enums: enums).enums::the_reg$next", ty: Enum {A, B(Bundle {0: UInt<1>, 1: Bool}), C(Bundle {a: Array<UInt<1>, 2>, b: SInt<2>})} },
|
|
src: StatePartIndex<BigSlots>(71), // SlotDebugData { name: "", ty: Enum {A, B(Bundle {0: UInt<1>, 1: Bool}), C(Bundle {a: Array<UInt<1>, 2>, b: SInt<2>})} },
|
|
},
|
|
// at: module-XXXXXXXXXX.rs:8:1
|
|
92: IsNonZeroDestIsSmall {
|
|
dest: StatePartIndex<SmallSlots>(2), // SlotDebugData { name: "", ty: Bool },
|
|
src: StatePartIndex<BigSlots>(0), // SlotDebugData { name: "InstantiatedModule(enums: enums).enums::cd.clk", ty: Clock },
|
|
},
|
|
93: 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 },
|
|
},
|
|
94: BranchIfSmallZero {
|
|
target: 99,
|
|
value: StatePartIndex<SmallSlots>(1), // SlotDebugData { name: "", ty: Bool },
|
|
},
|
|
95: BranchIfSmallNonZero {
|
|
target: 98,
|
|
value: StatePartIndex<SmallSlots>(3), // SlotDebugData { name: "", ty: Bool },
|
|
},
|
|
96: Copy {
|
|
dest: StatePartIndex<BigSlots>(7), // SlotDebugData { name: "InstantiatedModule(enums: enums).enums::the_reg", ty: Enum {A, B(Bundle {0: UInt<1>, 1: Bool}), C(Bundle {a: Array<UInt<1>, 2>, b: SInt<2>})} },
|
|
src: StatePartIndex<BigSlots>(8), // SlotDebugData { name: "InstantiatedModule(enums: enums).enums::the_reg$next", ty: Enum {A, B(Bundle {0: UInt<1>, 1: Bool}), C(Bundle {a: Array<UInt<1>, 2>, b: SInt<2>})} },
|
|
},
|
|
97: Branch {
|
|
target: 99,
|
|
},
|
|
98: Copy {
|
|
dest: StatePartIndex<BigSlots>(7), // SlotDebugData { name: "InstantiatedModule(enums: enums).enums::the_reg", ty: Enum {A, B(Bundle {0: UInt<1>, 1: Bool}), C(Bundle {a: Array<UInt<1>, 2>, b: SInt<2>})} },
|
|
src: StatePartIndex<BigSlots>(10), // SlotDebugData { name: "", ty: Enum {A, B(Bundle {0: UInt<1>, 1: Bool}), C(Bundle {a: Array<UInt<1>, 2>, b: SInt<2>})} },
|
|
},
|
|
99: NotSmall {
|
|
dest: StatePartIndex<SmallSlots>(0), // SlotDebugData { name: "", ty: Bool },
|
|
src: StatePartIndex<SmallSlots>(2), // SlotDebugData { name: "", ty: Bool },
|
|
},
|
|
// at: module-XXXXXXXXXX.rs:1:1
|
|
100: Return,
|
|
],
|
|
..
|
|
},
|
|
pc: 100,
|
|
memory_write_log: [],
|
|
memories: StatePart {
|
|
value: [],
|
|
},
|
|
small_slots: StatePart {
|
|
value: [
|
|
18446744073709551614,
|
|
0,
|
|
1,
|
|
0,
|
|
2,
|
|
],
|
|
},
|
|
big_slots: StatePart {
|
|
value: [
|
|
1,
|
|
0,
|
|
1,
|
|
2,
|
|
15,
|
|
2,
|
|
15,
|
|
62,
|
|
62,
|
|
0,
|
|
0,
|
|
1,
|
|
1,
|
|
62,
|
|
3,
|
|
1,
|
|
1,
|
|
1,
|
|
1,
|
|
1,
|
|
-1,
|
|
1,
|
|
1,
|
|
15,
|
|
3,
|
|
1,
|
|
1,
|
|
3,
|
|
-1,
|
|
0,
|
|
0,
|
|
1,
|
|
0,
|
|
1,
|
|
1,
|
|
1,
|
|
1,
|
|
1,
|
|
1,
|
|
1,
|
|
1,
|
|
1,
|
|
1,
|
|
1,
|
|
2,
|
|
3,
|
|
12,
|
|
13,
|
|
13,
|
|
13,
|
|
2,
|
|
1,
|
|
1,
|
|
-1,
|
|
2,
|
|
1,
|
|
1,
|
|
-1,
|
|
1,
|
|
1,
|
|
1,
|
|
3,
|
|
-1,
|
|
2,
|
|
3,
|
|
3,
|
|
12,
|
|
15,
|
|
60,
|
|
62,
|
|
62,
|
|
62,
|
|
0,
|
|
1,
|
|
2,
|
|
3,
|
|
3,
|
|
2,
|
|
3,
|
|
3,
|
|
12,
|
|
15,
|
|
],
|
|
},
|
|
},
|
|
io: Instance {
|
|
name: <simulator>::enums,
|
|
instantiated: Module {
|
|
name: enums,
|
|
..
|
|
},
|
|
},
|
|
uninitialized_inputs: {},
|
|
io_targets: {
|
|
Instance {
|
|
name: <simulator>::enums,
|
|
instantiated: Module {
|
|
name: enums,
|
|
..
|
|
},
|
|
}.cd: CompiledValue {
|
|
layout: CompiledTypeLayout {
|
|
ty: Bundle {
|
|
/* offset = 0 */
|
|
clk: Clock,
|
|
/* offset = 1 */
|
|
rst: SyncReset,
|
|
},
|
|
layout: TypeLayout {
|
|
small_slots: StatePartLayout<SmallSlots> {
|
|
len: 0,
|
|
debug_data: [],
|
|
..
|
|
},
|
|
big_slots: StatePartLayout<BigSlots> {
|
|
len: 2,
|
|
debug_data: [
|
|
SlotDebugData {
|
|
name: "InstantiatedModule(enums: enums).enums::cd.clk",
|
|
ty: Clock,
|
|
},
|
|
SlotDebugData {
|
|
name: "InstantiatedModule(enums: enums).enums::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: StatePartLayout<SmallSlots> {
|
|
len: 0,
|
|
debug_data: [],
|
|
..
|
|
},
|
|
big_slots: StatePartLayout<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: StatePartLayout<SmallSlots> {
|
|
len: 0,
|
|
debug_data: [],
|
|
..
|
|
},
|
|
big_slots: StatePartLayout<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>::enums,
|
|
instantiated: Module {
|
|
name: enums,
|
|
..
|
|
},
|
|
}.cd.clk: CompiledValue {
|
|
layout: CompiledTypeLayout {
|
|
ty: Clock,
|
|
layout: TypeLayout {
|
|
small_slots: StatePartLayout<SmallSlots> {
|
|
len: 0,
|
|
debug_data: [],
|
|
..
|
|
},
|
|
big_slots: StatePartLayout<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>::enums,
|
|
instantiated: Module {
|
|
name: enums,
|
|
..
|
|
},
|
|
}.cd.rst: CompiledValue {
|
|
layout: CompiledTypeLayout {
|
|
ty: SyncReset,
|
|
layout: TypeLayout {
|
|
small_slots: StatePartLayout<SmallSlots> {
|
|
len: 0,
|
|
debug_data: [],
|
|
..
|
|
},
|
|
big_slots: StatePartLayout<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>::enums,
|
|
instantiated: Module {
|
|
name: enums,
|
|
..
|
|
},
|
|
}.data_in: CompiledValue {
|
|
layout: CompiledTypeLayout {
|
|
ty: UInt<4>,
|
|
layout: TypeLayout {
|
|
small_slots: StatePartLayout<SmallSlots> {
|
|
len: 0,
|
|
debug_data: [],
|
|
..
|
|
},
|
|
big_slots: StatePartLayout<BigSlots> {
|
|
len: 1,
|
|
debug_data: [
|
|
SlotDebugData {
|
|
name: "InstantiatedModule(enums: enums).enums::data_in",
|
|
ty: UInt<4>,
|
|
},
|
|
],
|
|
..
|
|
},
|
|
},
|
|
body: Scalar,
|
|
},
|
|
range: TypeIndexRange {
|
|
small_slots: StatePartIndexRange<SmallSlots> { start: 0, len: 0 },
|
|
big_slots: StatePartIndexRange<BigSlots> { start: 4, len: 1 },
|
|
},
|
|
write: None,
|
|
},
|
|
Instance {
|
|
name: <simulator>::enums,
|
|
instantiated: Module {
|
|
name: enums,
|
|
..
|
|
},
|
|
}.data_out: CompiledValue {
|
|
layout: CompiledTypeLayout {
|
|
ty: UInt<4>,
|
|
layout: TypeLayout {
|
|
small_slots: StatePartLayout<SmallSlots> {
|
|
len: 0,
|
|
debug_data: [],
|
|
..
|
|
},
|
|
big_slots: StatePartLayout<BigSlots> {
|
|
len: 1,
|
|
debug_data: [
|
|
SlotDebugData {
|
|
name: "InstantiatedModule(enums: enums).enums::data_out",
|
|
ty: UInt<4>,
|
|
},
|
|
],
|
|
..
|
|
},
|
|
},
|
|
body: Scalar,
|
|
},
|
|
range: TypeIndexRange {
|
|
small_slots: StatePartIndexRange<SmallSlots> { start: 0, len: 0 },
|
|
big_slots: StatePartIndexRange<BigSlots> { start: 6, len: 1 },
|
|
},
|
|
write: None,
|
|
},
|
|
Instance {
|
|
name: <simulator>::enums,
|
|
instantiated: Module {
|
|
name: enums,
|
|
..
|
|
},
|
|
}.en: CompiledValue {
|
|
layout: CompiledTypeLayout {
|
|
ty: Bool,
|
|
layout: TypeLayout {
|
|
small_slots: StatePartLayout<SmallSlots> {
|
|
len: 0,
|
|
debug_data: [],
|
|
..
|
|
},
|
|
big_slots: StatePartLayout<BigSlots> {
|
|
len: 1,
|
|
debug_data: [
|
|
SlotDebugData {
|
|
name: "InstantiatedModule(enums: enums).enums::en",
|
|
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>::enums,
|
|
instantiated: Module {
|
|
name: enums,
|
|
..
|
|
},
|
|
}.which_in: CompiledValue {
|
|
layout: CompiledTypeLayout {
|
|
ty: UInt<2>,
|
|
layout: TypeLayout {
|
|
small_slots: StatePartLayout<SmallSlots> {
|
|
len: 0,
|
|
debug_data: [],
|
|
..
|
|
},
|
|
big_slots: StatePartLayout<BigSlots> {
|
|
len: 1,
|
|
debug_data: [
|
|
SlotDebugData {
|
|
name: "InstantiatedModule(enums: enums).enums::which_in",
|
|
ty: UInt<2>,
|
|
},
|
|
],
|
|
..
|
|
},
|
|
},
|
|
body: Scalar,
|
|
},
|
|
range: TypeIndexRange {
|
|
small_slots: StatePartIndexRange<SmallSlots> { start: 0, len: 0 },
|
|
big_slots: StatePartIndexRange<BigSlots> { start: 3, len: 1 },
|
|
},
|
|
write: None,
|
|
},
|
|
Instance {
|
|
name: <simulator>::enums,
|
|
instantiated: Module {
|
|
name: enums,
|
|
..
|
|
},
|
|
}.which_out: CompiledValue {
|
|
layout: CompiledTypeLayout {
|
|
ty: UInt<2>,
|
|
layout: TypeLayout {
|
|
small_slots: StatePartLayout<SmallSlots> {
|
|
len: 0,
|
|
debug_data: [],
|
|
..
|
|
},
|
|
big_slots: StatePartLayout<BigSlots> {
|
|
len: 1,
|
|
debug_data: [
|
|
SlotDebugData {
|
|
name: "InstantiatedModule(enums: enums).enums::which_out",
|
|
ty: UInt<2>,
|
|
},
|
|
],
|
|
..
|
|
},
|
|
},
|
|
body: Scalar,
|
|
},
|
|
range: TypeIndexRange {
|
|
small_slots: StatePartIndexRange<SmallSlots> { start: 0, len: 0 },
|
|
big_slots: StatePartIndexRange<BigSlots> { start: 5, len: 1 },
|
|
},
|
|
write: None,
|
|
},
|
|
},
|
|
made_initial_step: true,
|
|
needs_settle: false,
|
|
trace_decls: TraceModule {
|
|
name: "enums",
|
|
children: [
|
|
TraceModuleIO {
|
|
name: "cd",
|
|
child: TraceBundle {
|
|
name: "cd",
|
|
fields: [
|
|
TraceClock {
|
|
location: TraceScalarId(0),
|
|
name: "clk",
|
|
flow: Source,
|
|
},
|
|
TraceSyncReset {
|
|
location: TraceScalarId(1),
|
|
name: "rst",
|
|
flow: Source,
|
|
},
|
|
],
|
|
ty: Bundle {
|
|
/* offset = 0 */
|
|
clk: Clock,
|
|
/* offset = 1 */
|
|
rst: SyncReset,
|
|
},
|
|
flow: Source,
|
|
},
|
|
ty: Bundle {
|
|
/* offset = 0 */
|
|
clk: Clock,
|
|
/* offset = 1 */
|
|
rst: SyncReset,
|
|
},
|
|
flow: Source,
|
|
},
|
|
TraceModuleIO {
|
|
name: "en",
|
|
child: TraceBool {
|
|
location: TraceScalarId(2),
|
|
name: "en",
|
|
flow: Source,
|
|
},
|
|
ty: Bool,
|
|
flow: Source,
|
|
},
|
|
TraceModuleIO {
|
|
name: "which_in",
|
|
child: TraceUInt {
|
|
location: TraceScalarId(3),
|
|
name: "which_in",
|
|
ty: UInt<2>,
|
|
flow: Source,
|
|
},
|
|
ty: UInt<2>,
|
|
flow: Source,
|
|
},
|
|
TraceModuleIO {
|
|
name: "data_in",
|
|
child: TraceUInt {
|
|
location: TraceScalarId(4),
|
|
name: "data_in",
|
|
ty: UInt<4>,
|
|
flow: Source,
|
|
},
|
|
ty: UInt<4>,
|
|
flow: Source,
|
|
},
|
|
TraceModuleIO {
|
|
name: "which_out",
|
|
child: TraceUInt {
|
|
location: TraceScalarId(5),
|
|
name: "which_out",
|
|
ty: UInt<2>,
|
|
flow: Sink,
|
|
},
|
|
ty: UInt<2>,
|
|
flow: Sink,
|
|
},
|
|
TraceModuleIO {
|
|
name: "data_out",
|
|
child: TraceUInt {
|
|
location: TraceScalarId(6),
|
|
name: "data_out",
|
|
ty: UInt<4>,
|
|
flow: Sink,
|
|
},
|
|
ty: UInt<4>,
|
|
flow: Sink,
|
|
},
|
|
TraceReg {
|
|
name: "the_reg",
|
|
child: TraceEnumWithFields {
|
|
name: "the_reg",
|
|
discriminant: TraceEnumDiscriminant {
|
|
location: TraceScalarId(7),
|
|
name: "$tag",
|
|
ty: Enum {
|
|
A,
|
|
B(Bundle {0: UInt<1>, 1: Bool}),
|
|
C(Bundle {a: Array<UInt<1>, 2>, b: SInt<2>}),
|
|
},
|
|
flow: Duplex,
|
|
},
|
|
non_empty_fields: [
|
|
TraceBundle {
|
|
name: "B",
|
|
fields: [
|
|
TraceUInt {
|
|
location: TraceScalarId(8),
|
|
name: "0",
|
|
ty: UInt<1>,
|
|
flow: Source,
|
|
},
|
|
TraceBool {
|
|
location: TraceScalarId(9),
|
|
name: "1",
|
|
flow: Source,
|
|
},
|
|
],
|
|
ty: Bundle {
|
|
/* offset = 0 */
|
|
0: UInt<1>,
|
|
/* offset = 1 */
|
|
1: Bool,
|
|
},
|
|
flow: Source,
|
|
},
|
|
TraceBundle {
|
|
name: "C",
|
|
fields: [
|
|
TraceArray {
|
|
name: "a",
|
|
elements: [
|
|
TraceUInt {
|
|
location: TraceScalarId(10),
|
|
name: "[0]",
|
|
ty: UInt<1>,
|
|
flow: Source,
|
|
},
|
|
TraceUInt {
|
|
location: TraceScalarId(11),
|
|
name: "[1]",
|
|
ty: UInt<1>,
|
|
flow: Source,
|
|
},
|
|
],
|
|
ty: Array<UInt<1>, 2>,
|
|
flow: Source,
|
|
},
|
|
TraceSInt {
|
|
location: TraceScalarId(12),
|
|
name: "b",
|
|
ty: SInt<2>,
|
|
flow: Source,
|
|
},
|
|
],
|
|
ty: Bundle {
|
|
/* offset = 0 */
|
|
a: Array<UInt<1>, 2>,
|
|
/* offset = 2 */
|
|
b: SInt<2>,
|
|
},
|
|
flow: Source,
|
|
},
|
|
],
|
|
ty: Enum {
|
|
A,
|
|
B(Bundle {0: UInt<1>, 1: Bool}),
|
|
C(Bundle {a: Array<UInt<1>, 2>, b: SInt<2>}),
|
|
},
|
|
flow: Duplex,
|
|
},
|
|
ty: Enum {
|
|
A,
|
|
B(Bundle {0: UInt<1>, 1: Bool}),
|
|
C(Bundle {a: Array<UInt<1>, 2>, b: SInt<2>}),
|
|
},
|
|
},
|
|
],
|
|
},
|
|
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: 0x1,
|
|
last_state: 0x1,
|
|
},
|
|
SimTrace {
|
|
id: TraceScalarId(3),
|
|
kind: BigUInt {
|
|
index: StatePartIndex<BigSlots>(3),
|
|
ty: UInt<2>,
|
|
},
|
|
state: 0x2,
|
|
last_state: 0x2,
|
|
},
|
|
SimTrace {
|
|
id: TraceScalarId(4),
|
|
kind: BigUInt {
|
|
index: StatePartIndex<BigSlots>(4),
|
|
ty: UInt<4>,
|
|
},
|
|
state: 0xf,
|
|
last_state: 0xf,
|
|
},
|
|
SimTrace {
|
|
id: TraceScalarId(5),
|
|
kind: BigUInt {
|
|
index: StatePartIndex<BigSlots>(5),
|
|
ty: UInt<2>,
|
|
},
|
|
state: 0x2,
|
|
last_state: 0x2,
|
|
},
|
|
SimTrace {
|
|
id: TraceScalarId(6),
|
|
kind: BigUInt {
|
|
index: StatePartIndex<BigSlots>(6),
|
|
ty: UInt<4>,
|
|
},
|
|
state: 0xf,
|
|
last_state: 0xf,
|
|
},
|
|
SimTrace {
|
|
id: TraceScalarId(7),
|
|
kind: EnumDiscriminant {
|
|
index: StatePartIndex<SmallSlots>(4),
|
|
ty: Enum {
|
|
A,
|
|
B(Bundle {0: UInt<1>, 1: Bool}),
|
|
C(Bundle {a: Array<UInt<1>, 2>, b: SInt<2>}),
|
|
},
|
|
},
|
|
state: 0x2,
|
|
last_state: 0x2,
|
|
},
|
|
SimTrace {
|
|
id: TraceScalarId(8),
|
|
kind: BigUInt {
|
|
index: StatePartIndex<BigSlots>(11),
|
|
ty: UInt<1>,
|
|
},
|
|
state: 0x1,
|
|
last_state: 0x1,
|
|
},
|
|
SimTrace {
|
|
id: TraceScalarId(9),
|
|
kind: BigBool {
|
|
index: StatePartIndex<BigSlots>(12),
|
|
},
|
|
state: 0x1,
|
|
last_state: 0x1,
|
|
},
|
|
SimTrace {
|
|
id: TraceScalarId(10),
|
|
kind: BigUInt {
|
|
index: StatePartIndex<BigSlots>(18),
|
|
ty: UInt<1>,
|
|
},
|
|
state: 0x1,
|
|
last_state: 0x1,
|
|
},
|
|
SimTrace {
|
|
id: TraceScalarId(11),
|
|
kind: BigUInt {
|
|
index: StatePartIndex<BigSlots>(19),
|
|
ty: UInt<1>,
|
|
},
|
|
state: 0x1,
|
|
last_state: 0x1,
|
|
},
|
|
SimTrace {
|
|
id: TraceScalarId(12),
|
|
kind: BigSInt {
|
|
index: StatePartIndex<BigSlots>(20),
|
|
ty: SInt<2>,
|
|
},
|
|
state: 0x3,
|
|
last_state: 0x3,
|
|
},
|
|
],
|
|
trace_memories: {},
|
|
trace_writers: [
|
|
Running(
|
|
VcdWriter {
|
|
finished_init: true,
|
|
timescale: 1 ps,
|
|
..
|
|
},
|
|
),
|
|
],
|
|
instant: 16 μs,
|
|
clocks_triggered: [
|
|
StatePartIndex<SmallSlots>(1),
|
|
],
|
|
} |