forked from libre-chip/fayalite
2162 lines
No EOL
94 KiB
Text
2162 lines
No EOL
94 KiB
Text
Simulation {
|
|
state: State {
|
|
insns: Insns {
|
|
state_layout: StateLayout {
|
|
ty: TypeLayout {
|
|
small_slots: StatePartLayout<SmallSlots> {
|
|
len: 18,
|
|
debug_data: [
|
|
SlotDebugData {
|
|
name: "",
|
|
ty: Enum {
|
|
HdlNone,
|
|
HdlSome,
|
|
},
|
|
},
|
|
SlotDebugData {
|
|
name: "",
|
|
ty: Enum {
|
|
HdlNone,
|
|
HdlSome,
|
|
},
|
|
},
|
|
SlotDebugData {
|
|
name: "",
|
|
ty: Bool,
|
|
},
|
|
SlotDebugData {
|
|
name: "",
|
|
ty: Bool,
|
|
},
|
|
SlotDebugData {
|
|
name: "",
|
|
ty: Bool,
|
|
},
|
|
SlotDebugData {
|
|
name: "",
|
|
ty: Bool,
|
|
},
|
|
SlotDebugData {
|
|
name: "",
|
|
ty: UInt<2>,
|
|
},
|
|
SlotDebugData {
|
|
name: "",
|
|
ty: Bool,
|
|
},
|
|
SlotDebugData {
|
|
name: "",
|
|
ty: Bool,
|
|
},
|
|
SlotDebugData {
|
|
name: "",
|
|
ty: Bool,
|
|
},
|
|
SlotDebugData {
|
|
name: "",
|
|
ty: Bool,
|
|
},
|
|
SlotDebugData {
|
|
name: "",
|
|
ty: UInt<2>,
|
|
},
|
|
SlotDebugData {
|
|
name: "",
|
|
ty: UInt<2>,
|
|
},
|
|
SlotDebugData {
|
|
name: "",
|
|
ty: Bool,
|
|
},
|
|
SlotDebugData {
|
|
name: "",
|
|
ty: Bool,
|
|
},
|
|
SlotDebugData {
|
|
name: "",
|
|
ty: Bool,
|
|
},
|
|
SlotDebugData {
|
|
name: "",
|
|
ty: Bool,
|
|
},
|
|
SlotDebugData {
|
|
name: "",
|
|
ty: Bool,
|
|
},
|
|
],
|
|
..
|
|
},
|
|
big_slots: StatePartLayout<BigSlots> {
|
|
len: 73,
|
|
debug_data: [
|
|
SlotDebugData {
|
|
name: "InstantiatedModule(queue: queue).queue::cd.clk",
|
|
ty: Clock,
|
|
},
|
|
SlotDebugData {
|
|
name: "InstantiatedModule(queue: queue).queue::cd.rst",
|
|
ty: SyncReset,
|
|
},
|
|
SlotDebugData {
|
|
name: "InstantiatedModule(queue: queue).queue::inp.data",
|
|
ty: Enum {
|
|
HdlNone,
|
|
HdlSome(UInt<8>),
|
|
},
|
|
},
|
|
SlotDebugData {
|
|
name: "InstantiatedModule(queue: queue).queue::inp.ready",
|
|
ty: Bool,
|
|
},
|
|
SlotDebugData {
|
|
name: "",
|
|
ty: UInt<9>,
|
|
},
|
|
SlotDebugData {
|
|
name: "",
|
|
ty: UInt<8>,
|
|
},
|
|
SlotDebugData {
|
|
name: "InstantiatedModule(queue: queue).queue::out.data",
|
|
ty: Enum {
|
|
HdlNone,
|
|
HdlSome(UInt<8>),
|
|
},
|
|
},
|
|
SlotDebugData {
|
|
name: "InstantiatedModule(queue: queue).queue::out.ready",
|
|
ty: Bool,
|
|
},
|
|
SlotDebugData {
|
|
name: "",
|
|
ty: UInt<9>,
|
|
},
|
|
SlotDebugData {
|
|
name: "",
|
|
ty: UInt<8>,
|
|
},
|
|
SlotDebugData {
|
|
name: "InstantiatedModule(queue: queue).queue::count",
|
|
ty: UInt<2>,
|
|
},
|
|
SlotDebugData {
|
|
name: "InstantiatedModule(queue: queue).queue::mem::r0.addr",
|
|
ty: UInt<2>,
|
|
},
|
|
SlotDebugData {
|
|
name: "InstantiatedModule(queue: queue).queue::mem::r0.en",
|
|
ty: Bool,
|
|
},
|
|
SlotDebugData {
|
|
name: "InstantiatedModule(queue: queue).queue::mem::r0.clk",
|
|
ty: Clock,
|
|
},
|
|
SlotDebugData {
|
|
name: "InstantiatedModule(queue: queue).queue::mem::r0.data",
|
|
ty: UInt<8>,
|
|
},
|
|
SlotDebugData {
|
|
name: "InstantiatedModule(queue: queue).queue::mem::w1.addr",
|
|
ty: UInt<2>,
|
|
},
|
|
SlotDebugData {
|
|
name: "InstantiatedModule(queue: queue).queue::mem::w1.en",
|
|
ty: Bool,
|
|
},
|
|
SlotDebugData {
|
|
name: "InstantiatedModule(queue: queue).queue::mem::w1.clk",
|
|
ty: Clock,
|
|
},
|
|
SlotDebugData {
|
|
name: "InstantiatedModule(queue: queue).queue::mem::w1.data",
|
|
ty: UInt<8>,
|
|
},
|
|
SlotDebugData {
|
|
name: "InstantiatedModule(queue: queue).queue::mem::w1.mask",
|
|
ty: Bool,
|
|
},
|
|
SlotDebugData {
|
|
name: "",
|
|
ty: UInt<8>,
|
|
},
|
|
SlotDebugData {
|
|
name: "",
|
|
ty: Bool,
|
|
},
|
|
SlotDebugData {
|
|
name: "InstantiatedModule(queue: queue).queue::inp_index_reg",
|
|
ty: UInt<2>,
|
|
},
|
|
SlotDebugData {
|
|
name: "InstantiatedModule(queue: queue).queue::inp_index_reg$next",
|
|
ty: UInt<2>,
|
|
},
|
|
SlotDebugData {
|
|
name: "",
|
|
ty: UInt<2>,
|
|
},
|
|
SlotDebugData {
|
|
name: "InstantiatedModule(queue: queue).queue::out_index_reg",
|
|
ty: UInt<2>,
|
|
},
|
|
SlotDebugData {
|
|
name: "InstantiatedModule(queue: queue).queue::out_index_reg$next",
|
|
ty: UInt<2>,
|
|
},
|
|
SlotDebugData {
|
|
name: "InstantiatedModule(queue: queue).queue::maybe_full_reg",
|
|
ty: Bool,
|
|
},
|
|
SlotDebugData {
|
|
name: "InstantiatedModule(queue: queue).queue::maybe_full_reg$next",
|
|
ty: Bool,
|
|
},
|
|
SlotDebugData {
|
|
name: "",
|
|
ty: Bool,
|
|
},
|
|
SlotDebugData {
|
|
name: "InstantiatedModule(queue: queue).queue::inp_firing",
|
|
ty: Bool,
|
|
},
|
|
SlotDebugData {
|
|
name: "InstantiatedModule(queue: queue).queue::firing",
|
|
ty: Bool,
|
|
},
|
|
SlotDebugData {
|
|
name: "InstantiatedModule(queue: queue).queue::out_firing",
|
|
ty: Bool,
|
|
},
|
|
SlotDebugData {
|
|
name: "InstantiatedModule(queue: queue).queue::firing",
|
|
ty: Bool,
|
|
},
|
|
SlotDebugData {
|
|
name: "InstantiatedModule(queue: queue).queue::indexes_equal",
|
|
ty: Bool,
|
|
},
|
|
SlotDebugData {
|
|
name: "",
|
|
ty: Bool,
|
|
},
|
|
SlotDebugData {
|
|
name: "InstantiatedModule(queue: queue).queue::empty",
|
|
ty: Bool,
|
|
},
|
|
SlotDebugData {
|
|
name: "",
|
|
ty: Bool,
|
|
},
|
|
SlotDebugData {
|
|
name: "",
|
|
ty: Bool,
|
|
},
|
|
SlotDebugData {
|
|
name: "InstantiatedModule(queue: queue).queue::full",
|
|
ty: Bool,
|
|
},
|
|
SlotDebugData {
|
|
name: "",
|
|
ty: Bool,
|
|
},
|
|
SlotDebugData {
|
|
name: "",
|
|
ty: Bool,
|
|
},
|
|
SlotDebugData {
|
|
name: "InstantiatedModule(queue: queue).queue::unwrap_or_else_out",
|
|
ty: UInt<8>,
|
|
},
|
|
SlotDebugData {
|
|
name: "",
|
|
ty: UInt<8>,
|
|
},
|
|
SlotDebugData {
|
|
name: "",
|
|
ty: Bool,
|
|
},
|
|
SlotDebugData {
|
|
name: "",
|
|
ty: Bool,
|
|
},
|
|
SlotDebugData {
|
|
name: ".0",
|
|
ty: UInt<1>,
|
|
},
|
|
SlotDebugData {
|
|
name: ".1",
|
|
ty: UInt<8>,
|
|
},
|
|
SlotDebugData {
|
|
name: "",
|
|
ty: UInt<1>,
|
|
},
|
|
SlotDebugData {
|
|
name: "",
|
|
ty: UInt<9>,
|
|
},
|
|
SlotDebugData {
|
|
name: "",
|
|
ty: UInt<9>,
|
|
},
|
|
SlotDebugData {
|
|
name: "",
|
|
ty: UInt<9>,
|
|
},
|
|
SlotDebugData {
|
|
name: "",
|
|
ty: Enum {
|
|
HdlNone,
|
|
HdlSome(UInt<8>),
|
|
},
|
|
},
|
|
SlotDebugData {
|
|
name: "",
|
|
ty: UInt<9>,
|
|
},
|
|
SlotDebugData {
|
|
name: "",
|
|
ty: Enum {
|
|
HdlNone,
|
|
HdlSome(UInt<8>),
|
|
},
|
|
},
|
|
SlotDebugData {
|
|
name: "",
|
|
ty: Bool,
|
|
},
|
|
SlotDebugData {
|
|
name: "",
|
|
ty: UInt<64>,
|
|
},
|
|
SlotDebugData {
|
|
name: "",
|
|
ty: Bool,
|
|
},
|
|
SlotDebugData {
|
|
name: "",
|
|
ty: UInt<0>,
|
|
},
|
|
SlotDebugData {
|
|
name: "",
|
|
ty: UInt<2>,
|
|
},
|
|
SlotDebugData {
|
|
name: "",
|
|
ty: UInt<3>,
|
|
},
|
|
SlotDebugData {
|
|
name: "",
|
|
ty: UInt<2>,
|
|
},
|
|
SlotDebugData {
|
|
name: "",
|
|
ty: Bool,
|
|
},
|
|
SlotDebugData {
|
|
name: "",
|
|
ty: UInt<3>,
|
|
},
|
|
SlotDebugData {
|
|
name: "",
|
|
ty: UInt<2>,
|
|
},
|
|
SlotDebugData {
|
|
name: "",
|
|
ty: UInt<64>,
|
|
},
|
|
SlotDebugData {
|
|
name: "",
|
|
ty: UInt<2>,
|
|
},
|
|
SlotDebugData {
|
|
name: "",
|
|
ty: Bool,
|
|
},
|
|
SlotDebugData {
|
|
name: "",
|
|
ty: UInt<65>,
|
|
},
|
|
SlotDebugData {
|
|
name: "",
|
|
ty: UInt<66>,
|
|
},
|
|
SlotDebugData {
|
|
name: "",
|
|
ty: UInt<2>,
|
|
},
|
|
SlotDebugData {
|
|
name: "",
|
|
ty: UInt<3>,
|
|
},
|
|
SlotDebugData {
|
|
name: "",
|
|
ty: UInt<2>,
|
|
},
|
|
],
|
|
..
|
|
},
|
|
sim_only_slots: StatePartLayout<SimOnlySlots> {
|
|
len: 0,
|
|
debug_data: [],
|
|
layout_data: [],
|
|
..
|
|
},
|
|
},
|
|
memories: StatePartLayout<Memories> {
|
|
len: 1,
|
|
debug_data: [
|
|
(),
|
|
],
|
|
layout_data: [
|
|
MemoryData {
|
|
array_type: Array<UInt<8>, 3>,
|
|
data: [
|
|
// len = 0x3
|
|
[0x0]: 0x00,
|
|
[0x1]: 0x00,
|
|
[0x2]: 0x00,
|
|
],
|
|
},
|
|
],
|
|
..
|
|
},
|
|
},
|
|
insns: [
|
|
// at: ready_valid.rs:64:1
|
|
0: SubU {
|
|
dest: StatePartIndex<BigSlots>(71), // (0x2) SlotDebugData { name: "", ty: UInt<3> },
|
|
lhs: StatePartIndex<BigSlots>(22), // (0x2) SlotDebugData { name: "InstantiatedModule(queue: queue).queue::inp_index_reg", ty: UInt<2> },
|
|
rhs: StatePartIndex<BigSlots>(25), // (0x0) SlotDebugData { name: "InstantiatedModule(queue: queue).queue::out_index_reg", ty: UInt<2> },
|
|
dest_width: 3,
|
|
},
|
|
1: CastToUInt {
|
|
dest: StatePartIndex<BigSlots>(72), // (0x2) SlotDebugData { name: "", ty: UInt<2> },
|
|
src: StatePartIndex<BigSlots>(71), // (0x2) SlotDebugData { name: "", ty: UInt<3> },
|
|
dest_width: 2,
|
|
},
|
|
2: CmpLt {
|
|
dest: StatePartIndex<BigSlots>(67), // (0x0) SlotDebugData { name: "", ty: Bool },
|
|
lhs: StatePartIndex<BigSlots>(22), // (0x2) SlotDebugData { name: "InstantiatedModule(queue: queue).queue::inp_index_reg", ty: UInt<2> },
|
|
rhs: StatePartIndex<BigSlots>(25), // (0x0) SlotDebugData { name: "InstantiatedModule(queue: queue).queue::out_index_reg", ty: UInt<2> },
|
|
},
|
|
3: Const {
|
|
dest: StatePartIndex<BigSlots>(65), // (0x3) SlotDebugData { name: "", ty: UInt<64> },
|
|
value: 0x3,
|
|
},
|
|
4: CastToUInt {
|
|
dest: StatePartIndex<BigSlots>(66), // (0x3) SlotDebugData { name: "", ty: UInt<2> },
|
|
src: StatePartIndex<BigSlots>(65), // (0x3) SlotDebugData { name: "", ty: UInt<64> },
|
|
dest_width: 2,
|
|
},
|
|
5: Add {
|
|
dest: StatePartIndex<BigSlots>(68), // (0x5) SlotDebugData { name: "", ty: UInt<65> },
|
|
lhs: StatePartIndex<BigSlots>(22), // (0x2) SlotDebugData { name: "InstantiatedModule(queue: queue).queue::inp_index_reg", ty: UInt<2> },
|
|
rhs: StatePartIndex<BigSlots>(65), // (0x3) SlotDebugData { name: "", ty: UInt<64> },
|
|
},
|
|
6: SubU {
|
|
dest: StatePartIndex<BigSlots>(69), // (0x5) SlotDebugData { name: "", ty: UInt<66> },
|
|
lhs: StatePartIndex<BigSlots>(68), // (0x5) SlotDebugData { name: "", ty: UInt<65> },
|
|
rhs: StatePartIndex<BigSlots>(25), // (0x0) SlotDebugData { name: "InstantiatedModule(queue: queue).queue::out_index_reg", ty: UInt<2> },
|
|
dest_width: 66,
|
|
},
|
|
7: CastToUInt {
|
|
dest: StatePartIndex<BigSlots>(70), // (0x1) SlotDebugData { name: "", ty: UInt<2> },
|
|
src: StatePartIndex<BigSlots>(69), // (0x5) SlotDebugData { name: "", ty: UInt<66> },
|
|
dest_width: 2,
|
|
},
|
|
8: Const {
|
|
dest: StatePartIndex<BigSlots>(58), // (0x0) SlotDebugData { name: "", ty: UInt<0> },
|
|
value: 0x0,
|
|
},
|
|
9: CastToUInt {
|
|
dest: StatePartIndex<BigSlots>(59), // (0x0) SlotDebugData { name: "", ty: UInt<2> },
|
|
src: StatePartIndex<BigSlots>(58), // (0x0) SlotDebugData { name: "", ty: UInt<0> },
|
|
dest_width: 2,
|
|
},
|
|
10: Const {
|
|
dest: StatePartIndex<BigSlots>(56), // (0x2) SlotDebugData { name: "", ty: UInt<64> },
|
|
value: 0x2,
|
|
},
|
|
11: CmpEq {
|
|
dest: StatePartIndex<BigSlots>(57), // (0x1) SlotDebugData { name: "", ty: Bool },
|
|
lhs: StatePartIndex<BigSlots>(22), // (0x2) SlotDebugData { name: "InstantiatedModule(queue: queue).queue::inp_index_reg", ty: UInt<2> },
|
|
rhs: StatePartIndex<BigSlots>(56), // (0x2) SlotDebugData { name: "", ty: UInt<64> },
|
|
},
|
|
12: CmpEq {
|
|
dest: StatePartIndex<BigSlots>(62), // (0x0) SlotDebugData { name: "", ty: Bool },
|
|
lhs: StatePartIndex<BigSlots>(25), // (0x0) SlotDebugData { name: "InstantiatedModule(queue: queue).queue::out_index_reg", ty: UInt<2> },
|
|
rhs: StatePartIndex<BigSlots>(56), // (0x2) SlotDebugData { name: "", ty: UInt<64> },
|
|
},
|
|
13: Const {
|
|
dest: StatePartIndex<BigSlots>(53), // (0x0) SlotDebugData { name: "", ty: UInt<9> },
|
|
value: 0x0,
|
|
},
|
|
14: Copy {
|
|
dest: StatePartIndex<BigSlots>(54), // (0x0) SlotDebugData { name: "", ty: Enum {HdlNone, HdlSome(UInt<8>)} },
|
|
src: StatePartIndex<BigSlots>(53), // (0x0) SlotDebugData { name: "", ty: UInt<9> },
|
|
},
|
|
15: Const {
|
|
dest: StatePartIndex<BigSlots>(48), // (0x1) SlotDebugData { name: "", ty: UInt<1> },
|
|
value: 0x1,
|
|
},
|
|
16: Add {
|
|
dest: StatePartIndex<BigSlots>(60), // (0x3) SlotDebugData { name: "", ty: UInt<3> },
|
|
lhs: StatePartIndex<BigSlots>(22), // (0x2) SlotDebugData { name: "InstantiatedModule(queue: queue).queue::inp_index_reg", ty: UInt<2> },
|
|
rhs: StatePartIndex<BigSlots>(48), // (0x1) SlotDebugData { name: "", ty: UInt<1> },
|
|
},
|
|
17: CastToUInt {
|
|
dest: StatePartIndex<BigSlots>(61), // (0x3) SlotDebugData { name: "", ty: UInt<2> },
|
|
src: StatePartIndex<BigSlots>(60), // (0x3) SlotDebugData { name: "", ty: UInt<3> },
|
|
dest_width: 2,
|
|
},
|
|
18: Add {
|
|
dest: StatePartIndex<BigSlots>(63), // (0x1) SlotDebugData { name: "", ty: UInt<3> },
|
|
lhs: StatePartIndex<BigSlots>(25), // (0x0) SlotDebugData { name: "InstantiatedModule(queue: queue).queue::out_index_reg", ty: UInt<2> },
|
|
rhs: StatePartIndex<BigSlots>(48), // (0x1) SlotDebugData { name: "", ty: UInt<1> },
|
|
},
|
|
19: CastToUInt {
|
|
dest: StatePartIndex<BigSlots>(64), // (0x1) SlotDebugData { name: "", ty: UInt<2> },
|
|
src: StatePartIndex<BigSlots>(63), // (0x1) SlotDebugData { name: "", ty: UInt<3> },
|
|
dest_width: 2,
|
|
},
|
|
20: Const {
|
|
dest: StatePartIndex<BigSlots>(43), // (0x0) SlotDebugData { name: "", ty: UInt<8> },
|
|
value: 0x0,
|
|
},
|
|
// at: ready_valid.rs:118:30
|
|
21: Copy {
|
|
dest: StatePartIndex<BigSlots>(42), // (0x28) SlotDebugData { name: "InstantiatedModule(queue: queue).queue::unwrap_or_else_out", ty: UInt<8> },
|
|
src: StatePartIndex<BigSlots>(43), // (0x0) SlotDebugData { name: "", ty: UInt<8> },
|
|
},
|
|
// at: ready_valid.rs:117:5
|
|
22: Copy {
|
|
dest: StatePartIndex<BigSlots>(17), // (0x0) SlotDebugData { name: "InstantiatedModule(queue: queue).queue::mem::w1.clk", ty: Clock },
|
|
src: StatePartIndex<BigSlots>(0), // (0x0) SlotDebugData { name: "InstantiatedModule(queue: queue).queue::cd.clk", ty: Clock },
|
|
},
|
|
// at: ready_valid.rs:115:5
|
|
23: Copy {
|
|
dest: StatePartIndex<BigSlots>(15), // (0x2) SlotDebugData { name: "InstantiatedModule(queue: queue).queue::mem::w1.addr", ty: UInt<2> },
|
|
src: StatePartIndex<BigSlots>(22), // (0x2) SlotDebugData { name: "InstantiatedModule(queue: queue).queue::inp_index_reg", ty: UInt<2> },
|
|
},
|
|
// at: ready_valid.rs:114:5
|
|
24: Copy {
|
|
dest: StatePartIndex<BigSlots>(13), // (0x0) SlotDebugData { name: "InstantiatedModule(queue: queue).queue::mem::r0.clk", ty: Clock },
|
|
src: StatePartIndex<BigSlots>(0), // (0x0) SlotDebugData { name: "InstantiatedModule(queue: queue).queue::cd.clk", ty: Clock },
|
|
},
|
|
// at: ready_valid.rs:64:1
|
|
25: Const {
|
|
dest: StatePartIndex<BigSlots>(41), // (0x1) SlotDebugData { name: "", ty: Bool },
|
|
value: 0x1,
|
|
},
|
|
// at: ready_valid.rs:113:5
|
|
26: Copy {
|
|
dest: StatePartIndex<BigSlots>(12), // (0x1) SlotDebugData { name: "InstantiatedModule(queue: queue).queue::mem::r0.en", ty: Bool },
|
|
src: StatePartIndex<BigSlots>(41), // (0x1) SlotDebugData { name: "", ty: Bool },
|
|
},
|
|
// at: ready_valid.rs:119:5
|
|
27: Copy {
|
|
dest: StatePartIndex<BigSlots>(19), // (0x1) SlotDebugData { name: "InstantiatedModule(queue: queue).queue::mem::w1.mask", ty: Bool },
|
|
src: StatePartIndex<BigSlots>(41), // (0x1) SlotDebugData { name: "", ty: Bool },
|
|
},
|
|
// at: ready_valid.rs:112:5
|
|
28: Copy {
|
|
dest: StatePartIndex<BigSlots>(11), // (0x0) SlotDebugData { name: "InstantiatedModule(queue: queue).queue::mem::r0.addr", ty: UInt<2> },
|
|
src: StatePartIndex<BigSlots>(25), // (0x0) SlotDebugData { name: "InstantiatedModule(queue: queue).queue::out_index_reg", ty: UInt<2> },
|
|
},
|
|
// at: ready_valid.rs:64:1
|
|
29: NotU {
|
|
dest: StatePartIndex<BigSlots>(37), // (0x0) SlotDebugData { name: "", ty: Bool },
|
|
src: StatePartIndex<BigSlots>(27), // (0x1) SlotDebugData { name: "InstantiatedModule(queue: queue).queue::maybe_full_reg", ty: Bool },
|
|
width: 1,
|
|
},
|
|
30: CmpEq {
|
|
dest: StatePartIndex<BigSlots>(35), // (0x0) SlotDebugData { name: "", ty: Bool },
|
|
lhs: StatePartIndex<BigSlots>(22), // (0x2) SlotDebugData { name: "InstantiatedModule(queue: queue).queue::inp_index_reg", ty: UInt<2> },
|
|
rhs: StatePartIndex<BigSlots>(25), // (0x0) SlotDebugData { name: "InstantiatedModule(queue: queue).queue::out_index_reg", ty: UInt<2> },
|
|
},
|
|
// at: ready_valid.rs:104:5
|
|
31: Copy {
|
|
dest: StatePartIndex<BigSlots>(34), // (0x0) SlotDebugData { name: "InstantiatedModule(queue: queue).queue::indexes_equal", ty: Bool },
|
|
src: StatePartIndex<BigSlots>(35), // (0x0) SlotDebugData { name: "", ty: Bool },
|
|
},
|
|
// at: ready_valid.rs:64:1
|
|
32: And {
|
|
dest: StatePartIndex<BigSlots>(38), // (0x0) SlotDebugData { name: "", ty: Bool },
|
|
lhs: StatePartIndex<BigSlots>(34), // (0x0) SlotDebugData { name: "InstantiatedModule(queue: queue).queue::indexes_equal", ty: Bool },
|
|
rhs: StatePartIndex<BigSlots>(37), // (0x0) SlotDebugData { name: "", ty: Bool },
|
|
},
|
|
// at: ready_valid.rs:107:5
|
|
33: Copy {
|
|
dest: StatePartIndex<BigSlots>(36), // (0x0) SlotDebugData { name: "InstantiatedModule(queue: queue).queue::empty", ty: Bool },
|
|
src: StatePartIndex<BigSlots>(38), // (0x0) SlotDebugData { name: "", ty: Bool },
|
|
},
|
|
// at: ready_valid.rs:64:1
|
|
34: NotU {
|
|
dest: StatePartIndex<BigSlots>(45), // (0x1) SlotDebugData { name: "", ty: Bool },
|
|
src: StatePartIndex<BigSlots>(36), // (0x0) SlotDebugData { name: "InstantiatedModule(queue: queue).queue::empty", ty: Bool },
|
|
width: 1,
|
|
},
|
|
35: And {
|
|
dest: StatePartIndex<BigSlots>(40), // (0x0) SlotDebugData { name: "", ty: Bool },
|
|
lhs: StatePartIndex<BigSlots>(34), // (0x0) SlotDebugData { name: "InstantiatedModule(queue: queue).queue::indexes_equal", ty: Bool },
|
|
rhs: StatePartIndex<BigSlots>(27), // (0x1) SlotDebugData { name: "InstantiatedModule(queue: queue).queue::maybe_full_reg", ty: Bool },
|
|
},
|
|
// at: ready_valid.rs:110:5
|
|
36: Copy {
|
|
dest: StatePartIndex<BigSlots>(39), // (0x0) SlotDebugData { name: "InstantiatedModule(queue: queue).queue::full", ty: Bool },
|
|
src: StatePartIndex<BigSlots>(40), // (0x0) SlotDebugData { name: "", ty: Bool },
|
|
},
|
|
// at: ready_valid.rs:64:1
|
|
37: NotU {
|
|
dest: StatePartIndex<BigSlots>(44), // (0x1) SlotDebugData { name: "", ty: Bool },
|
|
src: StatePartIndex<BigSlots>(39), // (0x0) SlotDebugData { name: "InstantiatedModule(queue: queue).queue::full", ty: Bool },
|
|
width: 1,
|
|
},
|
|
// at: ready_valid.rs:121:5
|
|
38: Copy {
|
|
dest: StatePartIndex<BigSlots>(3), // (0x1) SlotDebugData { name: "InstantiatedModule(queue: queue).queue::inp.ready", ty: Bool },
|
|
src: StatePartIndex<BigSlots>(44), // (0x1) SlotDebugData { name: "", ty: Bool },
|
|
},
|
|
// at: ready_valid.rs:166:5
|
|
39: BranchIfZero {
|
|
target: 44,
|
|
value: StatePartIndex<BigSlots>(34), // (0x0) SlotDebugData { name: "InstantiatedModule(queue: queue).queue::indexes_equal", ty: Bool },
|
|
},
|
|
// at: ready_valid.rs:168:9
|
|
40: BranchIfZero {
|
|
target: 42,
|
|
value: StatePartIndex<BigSlots>(27), // (0x1) SlotDebugData { name: "InstantiatedModule(queue: queue).queue::maybe_full_reg", ty: Bool },
|
|
},
|
|
// at: ready_valid.rs:169:13
|
|
41: Copy {
|
|
dest: StatePartIndex<BigSlots>(10), // (0x2) SlotDebugData { name: "InstantiatedModule(queue: queue).queue::count", ty: UInt<2> },
|
|
src: StatePartIndex<BigSlots>(66), // (0x3) SlotDebugData { name: "", ty: UInt<2> },
|
|
},
|
|
// at: ready_valid.rs:168:9
|
|
42: BranchIfNonZero {
|
|
target: 44,
|
|
value: StatePartIndex<BigSlots>(27), // (0x1) SlotDebugData { name: "InstantiatedModule(queue: queue).queue::maybe_full_reg", ty: Bool },
|
|
},
|
|
// at: ready_valid.rs:171:13
|
|
43: Copy {
|
|
dest: StatePartIndex<BigSlots>(10), // (0x2) SlotDebugData { name: "InstantiatedModule(queue: queue).queue::count", ty: UInt<2> },
|
|
src: StatePartIndex<BigSlots>(59), // (0x0) SlotDebugData { name: "", ty: UInt<2> },
|
|
},
|
|
// at: ready_valid.rs:166:5
|
|
44: BranchIfNonZero {
|
|
target: 49,
|
|
value: StatePartIndex<BigSlots>(34), // (0x0) SlotDebugData { name: "InstantiatedModule(queue: queue).queue::indexes_equal", ty: Bool },
|
|
},
|
|
// at: ready_valid.rs:186:13
|
|
45: BranchIfZero {
|
|
target: 47,
|
|
value: StatePartIndex<BigSlots>(67), // (0x0) SlotDebugData { name: "", ty: Bool },
|
|
},
|
|
// at: ready_valid.rs:187:17
|
|
46: Copy {
|
|
dest: StatePartIndex<BigSlots>(10), // (0x2) SlotDebugData { name: "InstantiatedModule(queue: queue).queue::count", ty: UInt<2> },
|
|
src: StatePartIndex<BigSlots>(70), // (0x1) SlotDebugData { name: "", ty: UInt<2> },
|
|
},
|
|
// at: ready_valid.rs:186:13
|
|
47: BranchIfNonZero {
|
|
target: 49,
|
|
value: StatePartIndex<BigSlots>(67), // (0x0) SlotDebugData { name: "", ty: Bool },
|
|
},
|
|
// at: ready_valid.rs:189:17
|
|
48: Copy {
|
|
dest: StatePartIndex<BigSlots>(10), // (0x2) SlotDebugData { name: "InstantiatedModule(queue: queue).queue::count", ty: UInt<2> },
|
|
src: StatePartIndex<BigSlots>(72), // (0x2) SlotDebugData { name: "", ty: UInt<2> },
|
|
},
|
|
// at: ready_valid.rs:88:26
|
|
49: Copy {
|
|
dest: StatePartIndex<BigSlots>(28), // (0x1) SlotDebugData { name: "InstantiatedModule(queue: queue).queue::maybe_full_reg$next", ty: Bool },
|
|
src: StatePartIndex<BigSlots>(27), // (0x1) SlotDebugData { name: "InstantiatedModule(queue: queue).queue::maybe_full_reg", ty: Bool },
|
|
},
|
|
// at: ready_valid.rs:64:1
|
|
50: Const {
|
|
dest: StatePartIndex<BigSlots>(29), // (0x0) SlotDebugData { name: "", ty: Bool },
|
|
value: 0x0,
|
|
},
|
|
// at: ready_valid.rs:86:25
|
|
51: Copy {
|
|
dest: StatePartIndex<BigSlots>(26), // (0x0) SlotDebugData { name: "InstantiatedModule(queue: queue).queue::out_index_reg$next", ty: UInt<2> },
|
|
src: StatePartIndex<BigSlots>(25), // (0x0) SlotDebugData { name: "InstantiatedModule(queue: queue).queue::out_index_reg", ty: UInt<2> },
|
|
},
|
|
// at: ready_valid.rs:84:31
|
|
52: IsNonZeroDestIsSmall {
|
|
dest: StatePartIndex<SmallSlots>(17), // (0x0 0) SlotDebugData { name: "", ty: Bool },
|
|
src: StatePartIndex<BigSlots>(1), // (0x0) SlotDebugData { name: "InstantiatedModule(queue: queue).queue::cd.rst", ty: SyncReset },
|
|
},
|
|
53: IsNonZeroDestIsSmall {
|
|
dest: StatePartIndex<SmallSlots>(16), // (0x0 0) SlotDebugData { name: "", ty: Bool },
|
|
src: StatePartIndex<BigSlots>(0), // (0x0) SlotDebugData { name: "InstantiatedModule(queue: queue).queue::cd.clk", ty: Clock },
|
|
},
|
|
54: AndSmall {
|
|
dest: StatePartIndex<SmallSlots>(15), // (0x0 0) SlotDebugData { name: "", ty: Bool },
|
|
lhs: StatePartIndex<SmallSlots>(16), // (0x0 0) SlotDebugData { name: "", ty: Bool },
|
|
rhs: StatePartIndex<SmallSlots>(14), // (0x1 1) SlotDebugData { name: "", ty: Bool },
|
|
},
|
|
55: Copy {
|
|
dest: StatePartIndex<BigSlots>(23), // (0x0) SlotDebugData { name: "InstantiatedModule(queue: queue).queue::inp_index_reg$next", ty: UInt<2> },
|
|
src: StatePartIndex<BigSlots>(22), // (0x2) SlotDebugData { name: "InstantiatedModule(queue: queue).queue::inp_index_reg", ty: UInt<2> },
|
|
},
|
|
// at: ready_valid.rs:64:1
|
|
56: Const {
|
|
dest: StatePartIndex<BigSlots>(24), // (0x0) SlotDebugData { name: "", ty: UInt<2> },
|
|
value: 0x0,
|
|
},
|
|
// at: ready_valid.rs:91:19
|
|
57: CastBigToArrayIndex {
|
|
dest: StatePartIndex<SmallSlots>(11), // (0x2 2) SlotDebugData { name: "", ty: UInt<2> },
|
|
src: StatePartIndex<BigSlots>(15), // (0x2) SlotDebugData { name: "InstantiatedModule(queue: queue).queue::mem::w1.addr", ty: UInt<2> },
|
|
},
|
|
58: IsNonZeroDestIsSmall {
|
|
dest: StatePartIndex<SmallSlots>(9), // (0x0 0) SlotDebugData { name: "", ty: Bool },
|
|
src: StatePartIndex<BigSlots>(17), // (0x0) SlotDebugData { name: "InstantiatedModule(queue: queue).queue::mem::w1.clk", ty: Clock },
|
|
},
|
|
59: AndSmall {
|
|
dest: StatePartIndex<SmallSlots>(8), // (0x0 0) SlotDebugData { name: "", ty: Bool },
|
|
lhs: StatePartIndex<SmallSlots>(9), // (0x0 0) SlotDebugData { name: "", ty: Bool },
|
|
rhs: StatePartIndex<SmallSlots>(7), // (0x1 1) SlotDebugData { name: "", ty: Bool },
|
|
},
|
|
60: CastBigToArrayIndex {
|
|
dest: StatePartIndex<SmallSlots>(6), // (0x0 0) SlotDebugData { name: "", ty: UInt<2> },
|
|
src: StatePartIndex<BigSlots>(11), // (0x0) SlotDebugData { name: "InstantiatedModule(queue: queue).queue::mem::r0.addr", ty: UInt<2> },
|
|
},
|
|
61: IsNonZeroDestIsSmall {
|
|
dest: StatePartIndex<SmallSlots>(5), // (0x1 1) SlotDebugData { name: "", ty: Bool },
|
|
src: StatePartIndex<BigSlots>(12), // (0x1) SlotDebugData { name: "InstantiatedModule(queue: queue).queue::mem::r0.en", ty: Bool },
|
|
},
|
|
62: BranchIfSmallZero {
|
|
target: 65,
|
|
value: StatePartIndex<SmallSlots>(5), // (0x1 1) SlotDebugData { name: "", ty: Bool },
|
|
},
|
|
63: MemoryReadUInt {
|
|
dest: StatePartIndex<BigSlots>(14), // (0x27) SlotDebugData { name: "InstantiatedModule(queue: queue).queue::mem::r0.data", ty: UInt<8> },
|
|
memory: StatePartIndex<Memories>(0), // (MemoryData {
|
|
// array_type: Array<UInt<8>, 3>,
|
|
// data: [
|
|
// // len = 0x3
|
|
// [0x0]: 0x27,
|
|
// [0x1]: 0x28,
|
|
// [0x2]: 0x26,
|
|
// ],
|
|
// }) (),
|
|
addr: StatePartIndex<SmallSlots>(6), // (0x0 0) SlotDebugData { name: "", ty: UInt<2> },
|
|
stride: 8,
|
|
start: 0,
|
|
width: 8,
|
|
},
|
|
64: Branch {
|
|
target: 66,
|
|
},
|
|
65: Const {
|
|
dest: StatePartIndex<BigSlots>(14), // (0x27) SlotDebugData { name: "InstantiatedModule(queue: queue).queue::mem::r0.data", ty: UInt<8> },
|
|
value: 0x0,
|
|
},
|
|
// at: ready_valid.rs:64:1
|
|
66: Copy {
|
|
dest: StatePartIndex<BigSlots>(46), // (0x1) SlotDebugData { name: ".0", ty: UInt<1> },
|
|
src: StatePartIndex<BigSlots>(48), // (0x1) SlotDebugData { name: "", ty: UInt<1> },
|
|
},
|
|
67: Copy {
|
|
dest: StatePartIndex<BigSlots>(47), // (0x27) SlotDebugData { name: ".1", ty: UInt<8> },
|
|
src: StatePartIndex<BigSlots>(14), // (0x27) SlotDebugData { name: "InstantiatedModule(queue: queue).queue::mem::r0.data", ty: UInt<8> },
|
|
},
|
|
68: Shl {
|
|
dest: StatePartIndex<BigSlots>(49), // (0x4e) SlotDebugData { name: "", ty: UInt<9> },
|
|
lhs: StatePartIndex<BigSlots>(47), // (0x27) SlotDebugData { name: ".1", ty: UInt<8> },
|
|
rhs: 1,
|
|
},
|
|
69: Or {
|
|
dest: StatePartIndex<BigSlots>(50), // (0x4f) SlotDebugData { name: "", ty: UInt<9> },
|
|
lhs: StatePartIndex<BigSlots>(46), // (0x1) SlotDebugData { name: ".0", ty: UInt<1> },
|
|
rhs: StatePartIndex<BigSlots>(49), // (0x4e) SlotDebugData { name: "", ty: UInt<9> },
|
|
},
|
|
70: CastToUInt {
|
|
dest: StatePartIndex<BigSlots>(51), // (0x4f) SlotDebugData { name: "", ty: UInt<9> },
|
|
src: StatePartIndex<BigSlots>(50), // (0x4f) SlotDebugData { name: "", ty: UInt<9> },
|
|
dest_width: 9,
|
|
},
|
|
71: Copy {
|
|
dest: StatePartIndex<BigSlots>(52), // (0x4f) SlotDebugData { name: "", ty: Enum {HdlNone, HdlSome(UInt<8>)} },
|
|
src: StatePartIndex<BigSlots>(51), // (0x4f) SlotDebugData { name: "", ty: UInt<9> },
|
|
},
|
|
// at: ready_valid.rs:130:5
|
|
72: BranchIfZero {
|
|
target: 74,
|
|
value: StatePartIndex<BigSlots>(45), // (0x1) SlotDebugData { name: "", ty: Bool },
|
|
},
|
|
// at: ready_valid.rs:131:9
|
|
73: Copy {
|
|
dest: StatePartIndex<BigSlots>(6), // (0x4f) SlotDebugData { name: "InstantiatedModule(queue: queue).queue::out.data", ty: Enum {HdlNone, HdlSome(UInt<8>)} },
|
|
src: StatePartIndex<BigSlots>(52), // (0x4f) SlotDebugData { name: "", ty: Enum {HdlNone, HdlSome(UInt<8>)} },
|
|
},
|
|
// at: ready_valid.rs:130:5
|
|
74: BranchIfNonZero {
|
|
target: 76,
|
|
value: StatePartIndex<BigSlots>(45), // (0x1) SlotDebugData { name: "", ty: Bool },
|
|
},
|
|
// at: ready_valid.rs:136:13
|
|
75: Copy {
|
|
dest: StatePartIndex<BigSlots>(6), // (0x4f) SlotDebugData { name: "InstantiatedModule(queue: queue).queue::out.data", ty: Enum {HdlNone, HdlSome(UInt<8>)} },
|
|
src: StatePartIndex<BigSlots>(54), // (0x0) SlotDebugData { name: "", ty: Enum {HdlNone, HdlSome(UInt<8>)} },
|
|
},
|
|
// at: ready_valid.rs:91:19
|
|
76: IsNonZeroDestIsSmall {
|
|
dest: StatePartIndex<SmallSlots>(4), // (0x0 0) SlotDebugData { name: "", ty: Bool },
|
|
src: StatePartIndex<BigSlots>(13), // (0x0) SlotDebugData { name: "InstantiatedModule(queue: queue).queue::mem::r0.clk", ty: Clock },
|
|
},
|
|
77: AndSmall {
|
|
dest: StatePartIndex<SmallSlots>(3), // (0x0 0) SlotDebugData { name: "", ty: Bool },
|
|
lhs: StatePartIndex<SmallSlots>(4), // (0x0 0) SlotDebugData { name: "", ty: Bool },
|
|
rhs: StatePartIndex<SmallSlots>(2), // (0x1 1) SlotDebugData { name: "", ty: Bool },
|
|
},
|
|
// at: ready_valid.rs:64:1
|
|
78: Copy {
|
|
dest: StatePartIndex<BigSlots>(8), // (0x4f) SlotDebugData { name: "", ty: UInt<9> },
|
|
src: StatePartIndex<BigSlots>(6), // (0x4f) SlotDebugData { name: "InstantiatedModule(queue: queue).queue::out.data", ty: Enum {HdlNone, HdlSome(UInt<8>)} },
|
|
},
|
|
79: SliceInt {
|
|
dest: StatePartIndex<BigSlots>(9), // (0x27) SlotDebugData { name: "", ty: UInt<8> },
|
|
src: StatePartIndex<BigSlots>(8), // (0x4f) SlotDebugData { name: "", ty: UInt<9> },
|
|
start: 1,
|
|
len: 8,
|
|
},
|
|
// at: ready_valid.rs:79:32
|
|
80: AndBigWithSmallImmediate {
|
|
dest: StatePartIndex<SmallSlots>(1), // (0x1 1) SlotDebugData { name: "", ty: Enum {HdlNone, HdlSome} },
|
|
lhs: StatePartIndex<BigSlots>(6), // (0x4f) SlotDebugData { name: "InstantiatedModule(queue: queue).queue::out.data", ty: Enum {HdlNone, HdlSome(UInt<8>)} },
|
|
rhs: 0x1,
|
|
},
|
|
// at: ready_valid.rs:19:9
|
|
81: BranchIfSmallNeImmediate {
|
|
target: 83,
|
|
lhs: StatePartIndex<SmallSlots>(1), // (0x1 1) SlotDebugData { name: "", ty: Enum {HdlNone, HdlSome} },
|
|
rhs: 0x0,
|
|
},
|
|
// at: ready_valid.rs:20:24
|
|
82: Copy {
|
|
dest: StatePartIndex<BigSlots>(33), // (0x0) SlotDebugData { name: "InstantiatedModule(queue: queue).queue::firing", ty: Bool },
|
|
src: StatePartIndex<BigSlots>(29), // (0x0) SlotDebugData { name: "", ty: Bool },
|
|
},
|
|
// at: ready_valid.rs:19:9
|
|
83: BranchIfSmallNeImmediate {
|
|
target: 85,
|
|
lhs: StatePartIndex<SmallSlots>(1), // (0x1 1) SlotDebugData { name: "", ty: Enum {HdlNone, HdlSome} },
|
|
rhs: 0x1,
|
|
},
|
|
// at: ready_valid.rs:21:27
|
|
84: Copy {
|
|
dest: StatePartIndex<BigSlots>(33), // (0x0) SlotDebugData { name: "InstantiatedModule(queue: queue).queue::firing", ty: Bool },
|
|
src: StatePartIndex<BigSlots>(7), // (0x0) SlotDebugData { name: "InstantiatedModule(queue: queue).queue::out.ready", ty: Bool },
|
|
},
|
|
// at: ready_valid.rs:101:5
|
|
85: Copy {
|
|
dest: StatePartIndex<BigSlots>(32), // (0x0) SlotDebugData { name: "InstantiatedModule(queue: queue).queue::out_firing", ty: Bool },
|
|
src: StatePartIndex<BigSlots>(33), // (0x0) SlotDebugData { name: "InstantiatedModule(queue: queue).queue::firing", ty: Bool },
|
|
},
|
|
// at: ready_valid.rs:156:5
|
|
86: BranchIfZero {
|
|
target: 91,
|
|
value: StatePartIndex<BigSlots>(32), // (0x0) SlotDebugData { name: "InstantiatedModule(queue: queue).queue::out_firing", ty: Bool },
|
|
},
|
|
// at: ready_valid.rs:158:9
|
|
87: BranchIfZero {
|
|
target: 89,
|
|
value: StatePartIndex<BigSlots>(62), // (0x0) SlotDebugData { name: "", ty: Bool },
|
|
},
|
|
// at: ready_valid.rs:159:13
|
|
88: Copy {
|
|
dest: StatePartIndex<BigSlots>(26), // (0x0) SlotDebugData { name: "InstantiatedModule(queue: queue).queue::out_index_reg$next", ty: UInt<2> },
|
|
src: StatePartIndex<BigSlots>(59), // (0x0) SlotDebugData { name: "", ty: UInt<2> },
|
|
},
|
|
// at: ready_valid.rs:158:9
|
|
89: BranchIfNonZero {
|
|
target: 91,
|
|
value: StatePartIndex<BigSlots>(62), // (0x0) SlotDebugData { name: "", ty: Bool },
|
|
},
|
|
// at: ready_valid.rs:161:13
|
|
90: Copy {
|
|
dest: StatePartIndex<BigSlots>(26), // (0x0) SlotDebugData { name: "InstantiatedModule(queue: queue).queue::out_index_reg$next", ty: UInt<2> },
|
|
src: StatePartIndex<BigSlots>(64), // (0x1) SlotDebugData { name: "", ty: UInt<2> },
|
|
},
|
|
// at: ready_valid.rs:64:1
|
|
91: Copy {
|
|
dest: StatePartIndex<BigSlots>(4), // (0x51) SlotDebugData { name: "", ty: UInt<9> },
|
|
src: StatePartIndex<BigSlots>(2), // (0x51) SlotDebugData { name: "InstantiatedModule(queue: queue).queue::inp.data", ty: Enum {HdlNone, HdlSome(UInt<8>)} },
|
|
},
|
|
92: SliceInt {
|
|
dest: StatePartIndex<BigSlots>(5), // (0x28) SlotDebugData { name: "", ty: UInt<8> },
|
|
src: StatePartIndex<BigSlots>(4), // (0x51) SlotDebugData { name: "", ty: UInt<9> },
|
|
start: 1,
|
|
len: 8,
|
|
},
|
|
// at: ready_valid.rs:77:32
|
|
93: AndBigWithSmallImmediate {
|
|
dest: StatePartIndex<SmallSlots>(0), // (0x1 1) SlotDebugData { name: "", ty: Enum {HdlNone, HdlSome} },
|
|
lhs: StatePartIndex<BigSlots>(2), // (0x51) SlotDebugData { name: "InstantiatedModule(queue: queue).queue::inp.data", ty: Enum {HdlNone, HdlSome(UInt<8>)} },
|
|
rhs: 0x1,
|
|
},
|
|
// at: ready_valid.rs:19:9
|
|
94: BranchIfSmallNeImmediate {
|
|
target: 96,
|
|
lhs: StatePartIndex<SmallSlots>(0), // (0x1 1) SlotDebugData { name: "", ty: Enum {HdlNone, HdlSome} },
|
|
rhs: 0x0,
|
|
},
|
|
// at: ready_valid.rs:20:24
|
|
95: Copy {
|
|
dest: StatePartIndex<BigSlots>(31), // (0x1) SlotDebugData { name: "InstantiatedModule(queue: queue).queue::firing", ty: Bool },
|
|
src: StatePartIndex<BigSlots>(29), // (0x0) SlotDebugData { name: "", ty: Bool },
|
|
},
|
|
// at: ready_valid.rs:19:9
|
|
96: BranchIfSmallNeImmediate {
|
|
target: 98,
|
|
lhs: StatePartIndex<SmallSlots>(0), // (0x1 1) SlotDebugData { name: "", ty: Enum {HdlNone, HdlSome} },
|
|
rhs: 0x1,
|
|
},
|
|
// at: ready_valid.rs:21:27
|
|
97: Copy {
|
|
dest: StatePartIndex<BigSlots>(31), // (0x1) SlotDebugData { name: "InstantiatedModule(queue: queue).queue::firing", ty: Bool },
|
|
src: StatePartIndex<BigSlots>(3), // (0x1) SlotDebugData { name: "InstantiatedModule(queue: queue).queue::inp.ready", ty: Bool },
|
|
},
|
|
// at: ready_valid.rs:98:5
|
|
98: Copy {
|
|
dest: StatePartIndex<BigSlots>(30), // (0x1) SlotDebugData { name: "InstantiatedModule(queue: queue).queue::inp_firing", ty: Bool },
|
|
src: StatePartIndex<BigSlots>(31), // (0x1) SlotDebugData { name: "InstantiatedModule(queue: queue).queue::firing", ty: Bool },
|
|
},
|
|
// at: ready_valid.rs:116:5
|
|
99: Copy {
|
|
dest: StatePartIndex<BigSlots>(16), // (0x1) SlotDebugData { name: "InstantiatedModule(queue: queue).queue::mem::w1.en", ty: Bool },
|
|
src: StatePartIndex<BigSlots>(30), // (0x1) SlotDebugData { name: "InstantiatedModule(queue: queue).queue::inp_firing", ty: Bool },
|
|
},
|
|
// at: ready_valid.rs:91:19
|
|
100: IsNonZeroDestIsSmall {
|
|
dest: StatePartIndex<SmallSlots>(10), // (0x1 1) SlotDebugData { name: "", ty: Bool },
|
|
src: StatePartIndex<BigSlots>(16), // (0x1) SlotDebugData { name: "InstantiatedModule(queue: queue).queue::mem::w1.en", ty: Bool },
|
|
},
|
|
// at: ready_valid.rs:64:1
|
|
101: CmpNe {
|
|
dest: StatePartIndex<BigSlots>(55), // (0x1) SlotDebugData { name: "", ty: Bool },
|
|
lhs: StatePartIndex<BigSlots>(30), // (0x1) SlotDebugData { name: "InstantiatedModule(queue: queue).queue::inp_firing", ty: Bool },
|
|
rhs: StatePartIndex<BigSlots>(32), // (0x0) SlotDebugData { name: "InstantiatedModule(queue: queue).queue::out_firing", ty: Bool },
|
|
},
|
|
// at: ready_valid.rs:141:5
|
|
102: BranchIfZero {
|
|
target: 104,
|
|
value: StatePartIndex<BigSlots>(55), // (0x1) SlotDebugData { name: "", ty: Bool },
|
|
},
|
|
// at: ready_valid.rs:142:9
|
|
103: Copy {
|
|
dest: StatePartIndex<BigSlots>(28), // (0x1) SlotDebugData { name: "InstantiatedModule(queue: queue).queue::maybe_full_reg$next", ty: Bool },
|
|
src: StatePartIndex<BigSlots>(30), // (0x1) SlotDebugData { name: "InstantiatedModule(queue: queue).queue::inp_firing", ty: Bool },
|
|
},
|
|
// at: ready_valid.rs:146:5
|
|
104: BranchIfZero {
|
|
target: 109,
|
|
value: StatePartIndex<BigSlots>(30), // (0x1) SlotDebugData { name: "InstantiatedModule(queue: queue).queue::inp_firing", ty: Bool },
|
|
},
|
|
// at: ready_valid.rs:148:9
|
|
105: BranchIfZero {
|
|
target: 107,
|
|
value: StatePartIndex<BigSlots>(57), // (0x1) SlotDebugData { name: "", ty: Bool },
|
|
},
|
|
// at: ready_valid.rs:149:13
|
|
106: Copy {
|
|
dest: StatePartIndex<BigSlots>(23), // (0x0) SlotDebugData { name: "InstantiatedModule(queue: queue).queue::inp_index_reg$next", ty: UInt<2> },
|
|
src: StatePartIndex<BigSlots>(59), // (0x0) SlotDebugData { name: "", ty: UInt<2> },
|
|
},
|
|
// at: ready_valid.rs:148:9
|
|
107: BranchIfNonZero {
|
|
target: 109,
|
|
value: StatePartIndex<BigSlots>(57), // (0x1) SlotDebugData { name: "", ty: Bool },
|
|
},
|
|
// at: ready_valid.rs:151:13
|
|
108: Copy {
|
|
dest: StatePartIndex<BigSlots>(23), // (0x0) SlotDebugData { name: "InstantiatedModule(queue: queue).queue::inp_index_reg$next", ty: UInt<2> },
|
|
src: StatePartIndex<BigSlots>(61), // (0x3) SlotDebugData { name: "", ty: UInt<2> },
|
|
},
|
|
// at: ready_valid.rs:118:30
|
|
109: BranchIfSmallNeImmediate {
|
|
target: 111,
|
|
lhs: StatePartIndex<SmallSlots>(0), // (0x1 1) SlotDebugData { name: "", ty: Enum {HdlNone, HdlSome} },
|
|
rhs: 0x1,
|
|
},
|
|
110: Copy {
|
|
dest: StatePartIndex<BigSlots>(42), // (0x28) SlotDebugData { name: "InstantiatedModule(queue: queue).queue::unwrap_or_else_out", ty: UInt<8> },
|
|
src: StatePartIndex<BigSlots>(5), // (0x28) SlotDebugData { name: "", ty: UInt<8> },
|
|
},
|
|
// at: ready_valid.rs:118:5
|
|
111: Copy {
|
|
dest: StatePartIndex<BigSlots>(18), // (0x28) SlotDebugData { name: "InstantiatedModule(queue: queue).queue::mem::w1.data", ty: UInt<8> },
|
|
src: StatePartIndex<BigSlots>(42), // (0x28) SlotDebugData { name: "InstantiatedModule(queue: queue).queue::unwrap_or_else_out", ty: UInt<8> },
|
|
},
|
|
// at: ready_valid.rs:84:31
|
|
112: BranchIfSmallZero {
|
|
target: 117,
|
|
value: StatePartIndex<SmallSlots>(15), // (0x0 0) SlotDebugData { name: "", ty: Bool },
|
|
},
|
|
113: BranchIfSmallNonZero {
|
|
target: 116,
|
|
value: StatePartIndex<SmallSlots>(17), // (0x0 0) SlotDebugData { name: "", ty: Bool },
|
|
},
|
|
114: Copy {
|
|
dest: StatePartIndex<BigSlots>(22), // (0x2) SlotDebugData { name: "InstantiatedModule(queue: queue).queue::inp_index_reg", ty: UInt<2> },
|
|
src: StatePartIndex<BigSlots>(23), // (0x0) SlotDebugData { name: "InstantiatedModule(queue: queue).queue::inp_index_reg$next", ty: UInt<2> },
|
|
},
|
|
115: Branch {
|
|
target: 117,
|
|
},
|
|
116: Copy {
|
|
dest: StatePartIndex<BigSlots>(22), // (0x2) SlotDebugData { name: "InstantiatedModule(queue: queue).queue::inp_index_reg", ty: UInt<2> },
|
|
src: StatePartIndex<BigSlots>(24), // (0x0) SlotDebugData { name: "", ty: UInt<2> },
|
|
},
|
|
// at: ready_valid.rs:86:25
|
|
117: BranchIfSmallZero {
|
|
target: 122,
|
|
value: StatePartIndex<SmallSlots>(15), // (0x0 0) SlotDebugData { name: "", ty: Bool },
|
|
},
|
|
118: BranchIfSmallNonZero {
|
|
target: 121,
|
|
value: StatePartIndex<SmallSlots>(17), // (0x0 0) SlotDebugData { name: "", ty: Bool },
|
|
},
|
|
119: Copy {
|
|
dest: StatePartIndex<BigSlots>(25), // (0x0) SlotDebugData { name: "InstantiatedModule(queue: queue).queue::out_index_reg", ty: UInt<2> },
|
|
src: StatePartIndex<BigSlots>(26), // (0x0) SlotDebugData { name: "InstantiatedModule(queue: queue).queue::out_index_reg$next", ty: UInt<2> },
|
|
},
|
|
120: Branch {
|
|
target: 122,
|
|
},
|
|
121: Copy {
|
|
dest: StatePartIndex<BigSlots>(25), // (0x0) SlotDebugData { name: "InstantiatedModule(queue: queue).queue::out_index_reg", ty: UInt<2> },
|
|
src: StatePartIndex<BigSlots>(24), // (0x0) SlotDebugData { name: "", ty: UInt<2> },
|
|
},
|
|
// at: ready_valid.rs:88:26
|
|
122: BranchIfSmallZero {
|
|
target: 127,
|
|
value: StatePartIndex<SmallSlots>(15), // (0x0 0) SlotDebugData { name: "", ty: Bool },
|
|
},
|
|
123: BranchIfSmallNonZero {
|
|
target: 126,
|
|
value: StatePartIndex<SmallSlots>(17), // (0x0 0) SlotDebugData { name: "", ty: Bool },
|
|
},
|
|
124: Copy {
|
|
dest: StatePartIndex<BigSlots>(27), // (0x1) SlotDebugData { name: "InstantiatedModule(queue: queue).queue::maybe_full_reg", ty: Bool },
|
|
src: StatePartIndex<BigSlots>(28), // (0x1) SlotDebugData { name: "InstantiatedModule(queue: queue).queue::maybe_full_reg$next", ty: Bool },
|
|
},
|
|
125: Branch {
|
|
target: 127,
|
|
},
|
|
126: Copy {
|
|
dest: StatePartIndex<BigSlots>(27), // (0x1) SlotDebugData { name: "InstantiatedModule(queue: queue).queue::maybe_full_reg", ty: Bool },
|
|
src: StatePartIndex<BigSlots>(29), // (0x0) SlotDebugData { name: "", ty: Bool },
|
|
},
|
|
// at: ready_valid.rs:91:19
|
|
127: BranchIfSmallZero {
|
|
target: 128,
|
|
value: StatePartIndex<SmallSlots>(3), // (0x0 0) SlotDebugData { name: "", ty: Bool },
|
|
},
|
|
128: BranchIfSmallZero {
|
|
target: 136,
|
|
value: StatePartIndex<SmallSlots>(8), // (0x0 0) SlotDebugData { name: "", ty: Bool },
|
|
},
|
|
129: CopySmall {
|
|
dest: StatePartIndex<SmallSlots>(12), // (0x1 1) SlotDebugData { name: "", ty: UInt<2> },
|
|
src: StatePartIndex<SmallSlots>(11), // (0x2 2) SlotDebugData { name: "", ty: UInt<2> },
|
|
},
|
|
130: CopySmall {
|
|
dest: StatePartIndex<SmallSlots>(13), // (0x1 1) SlotDebugData { name: "", ty: Bool },
|
|
src: StatePartIndex<SmallSlots>(10), // (0x1 1) SlotDebugData { name: "", ty: Bool },
|
|
},
|
|
131: Copy {
|
|
dest: StatePartIndex<BigSlots>(20), // (0x28) SlotDebugData { name: "", ty: UInt<8> },
|
|
src: StatePartIndex<BigSlots>(18), // (0x28) SlotDebugData { name: "InstantiatedModule(queue: queue).queue::mem::w1.data", ty: UInt<8> },
|
|
},
|
|
132: Copy {
|
|
dest: StatePartIndex<BigSlots>(21), // (0x1) SlotDebugData { name: "", ty: Bool },
|
|
src: StatePartIndex<BigSlots>(19), // (0x1) SlotDebugData { name: "InstantiatedModule(queue: queue).queue::mem::w1.mask", ty: Bool },
|
|
},
|
|
133: BranchIfSmallZero {
|
|
target: 136,
|
|
value: StatePartIndex<SmallSlots>(13), // (0x1 1) SlotDebugData { name: "", ty: Bool },
|
|
},
|
|
134: BranchIfZero {
|
|
target: 136,
|
|
value: StatePartIndex<BigSlots>(21), // (0x1) SlotDebugData { name: "", ty: Bool },
|
|
},
|
|
135: MemoryWriteUInt {
|
|
value: StatePartIndex<BigSlots>(20), // (0x28) SlotDebugData { name: "", ty: UInt<8> },
|
|
memory: StatePartIndex<Memories>(0), // (MemoryData {
|
|
// array_type: Array<UInt<8>, 3>,
|
|
// data: [
|
|
// // len = 0x3
|
|
// [0x0]: 0x27,
|
|
// [0x1]: 0x28,
|
|
// [0x2]: 0x26,
|
|
// ],
|
|
// }) (),
|
|
addr: StatePartIndex<SmallSlots>(12), // (0x1 1) SlotDebugData { name: "", ty: UInt<2> },
|
|
stride: 8,
|
|
start: 0,
|
|
width: 8,
|
|
},
|
|
136: XorSmallImmediate {
|
|
dest: StatePartIndex<SmallSlots>(2), // (0x1 1) SlotDebugData { name: "", ty: Bool },
|
|
lhs: StatePartIndex<SmallSlots>(4), // (0x0 0) SlotDebugData { name: "", ty: Bool },
|
|
rhs: 0x1,
|
|
},
|
|
137: XorSmallImmediate {
|
|
dest: StatePartIndex<SmallSlots>(7), // (0x1 1) SlotDebugData { name: "", ty: Bool },
|
|
lhs: StatePartIndex<SmallSlots>(9), // (0x0 0) SlotDebugData { name: "", ty: Bool },
|
|
rhs: 0x1,
|
|
},
|
|
// at: ready_valid.rs:84:31
|
|
138: XorSmallImmediate {
|
|
dest: StatePartIndex<SmallSlots>(14), // (0x1 1) SlotDebugData { name: "", ty: Bool },
|
|
lhs: StatePartIndex<SmallSlots>(16), // (0x0 0) SlotDebugData { name: "", ty: Bool },
|
|
rhs: 0x1,
|
|
},
|
|
// at: ready_valid.rs:64:1
|
|
139: Return,
|
|
],
|
|
..
|
|
},
|
|
pc: 139,
|
|
memory_write_log: [],
|
|
memories: StatePart {
|
|
value: [
|
|
MemoryData {
|
|
array_type: Array<UInt<8>, 3>,
|
|
data: [
|
|
// len = 0x3
|
|
[0x0]: 0x27,
|
|
[0x1]: 0x28,
|
|
[0x2]: 0x26,
|
|
],
|
|
},
|
|
],
|
|
},
|
|
small_slots: StatePart {
|
|
value: [
|
|
1,
|
|
1,
|
|
1,
|
|
0,
|
|
0,
|
|
1,
|
|
0,
|
|
1,
|
|
0,
|
|
0,
|
|
1,
|
|
2,
|
|
1,
|
|
1,
|
|
1,
|
|
0,
|
|
0,
|
|
0,
|
|
],
|
|
},
|
|
big_slots: StatePart {
|
|
value: [
|
|
0,
|
|
0,
|
|
81,
|
|
1,
|
|
81,
|
|
40,
|
|
79,
|
|
0,
|
|
79,
|
|
39,
|
|
2,
|
|
0,
|
|
1,
|
|
0,
|
|
39,
|
|
2,
|
|
1,
|
|
0,
|
|
40,
|
|
1,
|
|
40,
|
|
1,
|
|
2,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
1,
|
|
1,
|
|
0,
|
|
1,
|
|
1,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
1,
|
|
40,
|
|
0,
|
|
1,
|
|
1,
|
|
1,
|
|
39,
|
|
1,
|
|
78,
|
|
79,
|
|
79,
|
|
79,
|
|
0,
|
|
0,
|
|
1,
|
|
2,
|
|
1,
|
|
0,
|
|
0,
|
|
3,
|
|
3,
|
|
0,
|
|
1,
|
|
1,
|
|
3,
|
|
3,
|
|
0,
|
|
5,
|
|
5,
|
|
1,
|
|
2,
|
|
2,
|
|
],
|
|
},
|
|
sim_only_slots: StatePart {
|
|
value: [],
|
|
},
|
|
},
|
|
io: Instance {
|
|
name: <simulator>::queue,
|
|
instantiated: Module {
|
|
name: queue,
|
|
..
|
|
},
|
|
},
|
|
main_module: SimulationModuleState {
|
|
base_targets: [
|
|
Instance {
|
|
name: <simulator>::queue,
|
|
instantiated: Module {
|
|
name: queue,
|
|
..
|
|
},
|
|
}.cd,
|
|
Instance {
|
|
name: <simulator>::queue,
|
|
instantiated: Module {
|
|
name: queue,
|
|
..
|
|
},
|
|
}.inp,
|
|
Instance {
|
|
name: <simulator>::queue,
|
|
instantiated: Module {
|
|
name: queue,
|
|
..
|
|
},
|
|
}.out,
|
|
Instance {
|
|
name: <simulator>::queue,
|
|
instantiated: Module {
|
|
name: queue,
|
|
..
|
|
},
|
|
}.count,
|
|
],
|
|
uninitialized_ios: {},
|
|
io_targets: {
|
|
Instance {
|
|
name: <simulator>::queue,
|
|
instantiated: Module {
|
|
name: queue,
|
|
..
|
|
},
|
|
}.cd,
|
|
Instance {
|
|
name: <simulator>::queue,
|
|
instantiated: Module {
|
|
name: queue,
|
|
..
|
|
},
|
|
}.cd.clk,
|
|
Instance {
|
|
name: <simulator>::queue,
|
|
instantiated: Module {
|
|
name: queue,
|
|
..
|
|
},
|
|
}.cd.rst,
|
|
Instance {
|
|
name: <simulator>::queue,
|
|
instantiated: Module {
|
|
name: queue,
|
|
..
|
|
},
|
|
}.count,
|
|
Instance {
|
|
name: <simulator>::queue,
|
|
instantiated: Module {
|
|
name: queue,
|
|
..
|
|
},
|
|
}.inp,
|
|
Instance {
|
|
name: <simulator>::queue,
|
|
instantiated: Module {
|
|
name: queue,
|
|
..
|
|
},
|
|
}.inp.data,
|
|
Instance {
|
|
name: <simulator>::queue,
|
|
instantiated: Module {
|
|
name: queue,
|
|
..
|
|
},
|
|
}.inp.ready,
|
|
Instance {
|
|
name: <simulator>::queue,
|
|
instantiated: Module {
|
|
name: queue,
|
|
..
|
|
},
|
|
}.out,
|
|
Instance {
|
|
name: <simulator>::queue,
|
|
instantiated: Module {
|
|
name: queue,
|
|
..
|
|
},
|
|
}.out.data,
|
|
Instance {
|
|
name: <simulator>::queue,
|
|
instantiated: Module {
|
|
name: queue,
|
|
..
|
|
},
|
|
}.out.ready,
|
|
},
|
|
did_initial_settle: true,
|
|
clocks_for_past: {},
|
|
},
|
|
extern_modules: [],
|
|
trace_decls: TraceModule {
|
|
name: "queue",
|
|
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: "inp",
|
|
child: TraceBundle {
|
|
name: "inp",
|
|
fields: [
|
|
TraceEnumWithFields {
|
|
name: "data",
|
|
discriminant: TraceEnumDiscriminant {
|
|
location: TraceScalarId(2),
|
|
name: "$tag",
|
|
ty: Enum {
|
|
HdlNone,
|
|
HdlSome(UInt<8>),
|
|
},
|
|
flow: Source,
|
|
},
|
|
non_empty_fields: [
|
|
TraceUInt {
|
|
location: TraceScalarId(3),
|
|
name: "HdlSome",
|
|
ty: UInt<8>,
|
|
flow: Source,
|
|
},
|
|
],
|
|
ty: Enum {
|
|
HdlNone,
|
|
HdlSome(UInt<8>),
|
|
},
|
|
flow: Source,
|
|
},
|
|
TraceBool {
|
|
location: TraceScalarId(4),
|
|
name: "ready",
|
|
flow: Sink,
|
|
},
|
|
],
|
|
ty: Bundle {
|
|
/* offset = 0 */
|
|
data: Enum {
|
|
HdlNone,
|
|
HdlSome(UInt<8>),
|
|
},
|
|
#[hdl(flip)] /* offset = 9 */
|
|
ready: Bool,
|
|
},
|
|
flow: Source,
|
|
},
|
|
ty: Bundle {
|
|
/* offset = 0 */
|
|
data: Enum {
|
|
HdlNone,
|
|
HdlSome(UInt<8>),
|
|
},
|
|
#[hdl(flip)] /* offset = 9 */
|
|
ready: Bool,
|
|
},
|
|
flow: Source,
|
|
},
|
|
TraceModuleIO {
|
|
name: "out",
|
|
child: TraceBundle {
|
|
name: "out",
|
|
fields: [
|
|
TraceEnumWithFields {
|
|
name: "data",
|
|
discriminant: TraceEnumDiscriminant {
|
|
location: TraceScalarId(5),
|
|
name: "$tag",
|
|
ty: Enum {
|
|
HdlNone,
|
|
HdlSome(UInt<8>),
|
|
},
|
|
flow: Sink,
|
|
},
|
|
non_empty_fields: [
|
|
TraceUInt {
|
|
location: TraceScalarId(6),
|
|
name: "HdlSome",
|
|
ty: UInt<8>,
|
|
flow: Source,
|
|
},
|
|
],
|
|
ty: Enum {
|
|
HdlNone,
|
|
HdlSome(UInt<8>),
|
|
},
|
|
flow: Sink,
|
|
},
|
|
TraceBool {
|
|
location: TraceScalarId(7),
|
|
name: "ready",
|
|
flow: Source,
|
|
},
|
|
],
|
|
ty: Bundle {
|
|
/* offset = 0 */
|
|
data: Enum {
|
|
HdlNone,
|
|
HdlSome(UInt<8>),
|
|
},
|
|
#[hdl(flip)] /* offset = 9 */
|
|
ready: Bool,
|
|
},
|
|
flow: Sink,
|
|
},
|
|
ty: Bundle {
|
|
/* offset = 0 */
|
|
data: Enum {
|
|
HdlNone,
|
|
HdlSome(UInt<8>),
|
|
},
|
|
#[hdl(flip)] /* offset = 9 */
|
|
ready: Bool,
|
|
},
|
|
flow: Sink,
|
|
},
|
|
TraceModuleIO {
|
|
name: "count",
|
|
child: TraceUInt {
|
|
location: TraceScalarId(8),
|
|
name: "count",
|
|
ty: UInt<2>,
|
|
flow: Sink,
|
|
},
|
|
ty: UInt<2>,
|
|
flow: Sink,
|
|
},
|
|
TraceMem {
|
|
id: TraceMemoryId(0),
|
|
name: "mem",
|
|
stride: 8,
|
|
element_type: TraceUInt {
|
|
location: TraceMemoryLocation {
|
|
id: TraceMemoryId(0),
|
|
depth: 3,
|
|
stride: 8,
|
|
start: 0,
|
|
len: 8,
|
|
},
|
|
name: "mem",
|
|
ty: UInt<8>,
|
|
flow: Duplex,
|
|
},
|
|
ports: [
|
|
TraceMemPort {
|
|
name: "r0",
|
|
bundle: TraceBundle {
|
|
name: "r0",
|
|
fields: [
|
|
TraceUInt {
|
|
location: TraceScalarId(9),
|
|
name: "addr",
|
|
ty: UInt<2>,
|
|
flow: Sink,
|
|
},
|
|
TraceBool {
|
|
location: TraceScalarId(10),
|
|
name: "en",
|
|
flow: Sink,
|
|
},
|
|
TraceClock {
|
|
location: TraceScalarId(11),
|
|
name: "clk",
|
|
flow: Sink,
|
|
},
|
|
TraceUInt {
|
|
location: TraceScalarId(12),
|
|
name: "data",
|
|
ty: UInt<8>,
|
|
flow: Source,
|
|
},
|
|
],
|
|
ty: Bundle {
|
|
/* offset = 0 */
|
|
addr: UInt<2>,
|
|
/* offset = 2 */
|
|
en: Bool,
|
|
/* offset = 3 */
|
|
clk: Clock,
|
|
#[hdl(flip)] /* offset = 4 */
|
|
data: UInt<8>,
|
|
},
|
|
flow: Sink,
|
|
},
|
|
ty: Bundle {
|
|
/* offset = 0 */
|
|
addr: UInt<2>,
|
|
/* offset = 2 */
|
|
en: Bool,
|
|
/* offset = 3 */
|
|
clk: Clock,
|
|
#[hdl(flip)] /* offset = 4 */
|
|
data: UInt<8>,
|
|
},
|
|
},
|
|
TraceMemPort {
|
|
name: "w1",
|
|
bundle: TraceBundle {
|
|
name: "w1",
|
|
fields: [
|
|
TraceUInt {
|
|
location: TraceScalarId(13),
|
|
name: "addr",
|
|
ty: UInt<2>,
|
|
flow: Sink,
|
|
},
|
|
TraceBool {
|
|
location: TraceScalarId(14),
|
|
name: "en",
|
|
flow: Sink,
|
|
},
|
|
TraceClock {
|
|
location: TraceScalarId(15),
|
|
name: "clk",
|
|
flow: Sink,
|
|
},
|
|
TraceUInt {
|
|
location: TraceScalarId(16),
|
|
name: "data",
|
|
ty: UInt<8>,
|
|
flow: Sink,
|
|
},
|
|
TraceBool {
|
|
location: TraceScalarId(17),
|
|
name: "mask",
|
|
flow: Sink,
|
|
},
|
|
],
|
|
ty: Bundle {
|
|
/* offset = 0 */
|
|
addr: UInt<2>,
|
|
/* offset = 2 */
|
|
en: Bool,
|
|
/* offset = 3 */
|
|
clk: Clock,
|
|
/* offset = 4 */
|
|
data: UInt<8>,
|
|
/* offset = 12 */
|
|
mask: Bool,
|
|
},
|
|
flow: Sink,
|
|
},
|
|
ty: Bundle {
|
|
/* offset = 0 */
|
|
addr: UInt<2>,
|
|
/* offset = 2 */
|
|
en: Bool,
|
|
/* offset = 3 */
|
|
clk: Clock,
|
|
/* offset = 4 */
|
|
data: UInt<8>,
|
|
/* offset = 12 */
|
|
mask: Bool,
|
|
},
|
|
},
|
|
],
|
|
array_type: Array<UInt<8>, 3>,
|
|
},
|
|
TraceReg {
|
|
name: "inp_index_reg",
|
|
child: TraceUInt {
|
|
location: TraceScalarId(18),
|
|
name: "inp_index_reg",
|
|
ty: UInt<2>,
|
|
flow: Duplex,
|
|
},
|
|
ty: UInt<2>,
|
|
},
|
|
TraceReg {
|
|
name: "out_index_reg",
|
|
child: TraceUInt {
|
|
location: TraceScalarId(19),
|
|
name: "out_index_reg",
|
|
ty: UInt<2>,
|
|
flow: Duplex,
|
|
},
|
|
ty: UInt<2>,
|
|
},
|
|
TraceReg {
|
|
name: "maybe_full_reg",
|
|
child: TraceBool {
|
|
location: TraceScalarId(20),
|
|
name: "maybe_full_reg",
|
|
flow: Duplex,
|
|
},
|
|
ty: Bool,
|
|
},
|
|
TraceWire {
|
|
name: "inp_firing",
|
|
child: TraceBool {
|
|
location: TraceScalarId(21),
|
|
name: "inp_firing",
|
|
flow: Duplex,
|
|
},
|
|
ty: Bool,
|
|
},
|
|
TraceWire {
|
|
name: "firing",
|
|
child: TraceBool {
|
|
location: TraceScalarId(22),
|
|
name: "firing",
|
|
flow: Duplex,
|
|
},
|
|
ty: Bool,
|
|
},
|
|
TraceWire {
|
|
name: "out_firing",
|
|
child: TraceBool {
|
|
location: TraceScalarId(23),
|
|
name: "out_firing",
|
|
flow: Duplex,
|
|
},
|
|
ty: Bool,
|
|
},
|
|
TraceWire {
|
|
name: "firing",
|
|
child: TraceBool {
|
|
location: TraceScalarId(24),
|
|
name: "firing",
|
|
flow: Duplex,
|
|
},
|
|
ty: Bool,
|
|
},
|
|
TraceWire {
|
|
name: "indexes_equal",
|
|
child: TraceBool {
|
|
location: TraceScalarId(25),
|
|
name: "indexes_equal",
|
|
flow: Duplex,
|
|
},
|
|
ty: Bool,
|
|
},
|
|
TraceWire {
|
|
name: "empty",
|
|
child: TraceBool {
|
|
location: TraceScalarId(26),
|
|
name: "empty",
|
|
flow: Duplex,
|
|
},
|
|
ty: Bool,
|
|
},
|
|
TraceWire {
|
|
name: "full",
|
|
child: TraceBool {
|
|
location: TraceScalarId(27),
|
|
name: "full",
|
|
flow: Duplex,
|
|
},
|
|
ty: Bool,
|
|
},
|
|
TraceWire {
|
|
name: "unwrap_or_else_out",
|
|
child: TraceUInt {
|
|
location: TraceScalarId(28),
|
|
name: "unwrap_or_else_out",
|
|
ty: UInt<8>,
|
|
flow: Duplex,
|
|
},
|
|
ty: UInt<8>,
|
|
},
|
|
],
|
|
},
|
|
traces: [
|
|
SimTrace {
|
|
id: TraceScalarId(0),
|
|
kind: BigClock {
|
|
index: StatePartIndex<BigSlots>(0),
|
|
},
|
|
state: 0x0,
|
|
last_state: 0x1,
|
|
},
|
|
SimTrace {
|
|
id: TraceScalarId(1),
|
|
kind: BigSyncReset {
|
|
index: StatePartIndex<BigSlots>(1),
|
|
},
|
|
state: 0x0,
|
|
last_state: 0x0,
|
|
},
|
|
SimTrace {
|
|
id: TraceScalarId(2),
|
|
kind: EnumDiscriminant {
|
|
index: StatePartIndex<SmallSlots>(0),
|
|
ty: Enum {
|
|
HdlNone,
|
|
HdlSome(UInt<8>),
|
|
},
|
|
},
|
|
state: 0x1,
|
|
last_state: 0x1,
|
|
},
|
|
SimTrace {
|
|
id: TraceScalarId(3),
|
|
kind: BigUInt {
|
|
index: StatePartIndex<BigSlots>(5),
|
|
ty: UInt<8>,
|
|
},
|
|
state: 0x28,
|
|
last_state: 0x28,
|
|
},
|
|
SimTrace {
|
|
id: TraceScalarId(4),
|
|
kind: BigBool {
|
|
index: StatePartIndex<BigSlots>(3),
|
|
},
|
|
state: 0x1,
|
|
last_state: 0x1,
|
|
},
|
|
SimTrace {
|
|
id: TraceScalarId(5),
|
|
kind: EnumDiscriminant {
|
|
index: StatePartIndex<SmallSlots>(1),
|
|
ty: Enum {
|
|
HdlNone,
|
|
HdlSome(UInt<8>),
|
|
},
|
|
},
|
|
state: 0x1,
|
|
last_state: 0x1,
|
|
},
|
|
SimTrace {
|
|
id: TraceScalarId(6),
|
|
kind: BigUInt {
|
|
index: StatePartIndex<BigSlots>(9),
|
|
ty: UInt<8>,
|
|
},
|
|
state: 0x27,
|
|
last_state: 0x27,
|
|
},
|
|
SimTrace {
|
|
id: TraceScalarId(7),
|
|
kind: BigBool {
|
|
index: StatePartIndex<BigSlots>(7),
|
|
},
|
|
state: 0x0,
|
|
last_state: 0x0,
|
|
},
|
|
SimTrace {
|
|
id: TraceScalarId(8),
|
|
kind: BigUInt {
|
|
index: StatePartIndex<BigSlots>(10),
|
|
ty: UInt<2>,
|
|
},
|
|
state: 0x2,
|
|
last_state: 0x2,
|
|
},
|
|
SimTrace {
|
|
id: TraceScalarId(9),
|
|
kind: BigUInt {
|
|
index: StatePartIndex<BigSlots>(11),
|
|
ty: UInt<2>,
|
|
},
|
|
state: 0x0,
|
|
last_state: 0x0,
|
|
},
|
|
SimTrace {
|
|
id: TraceScalarId(10),
|
|
kind: BigBool {
|
|
index: StatePartIndex<BigSlots>(12),
|
|
},
|
|
state: 0x1,
|
|
last_state: 0x1,
|
|
},
|
|
SimTrace {
|
|
id: TraceScalarId(11),
|
|
kind: BigClock {
|
|
index: StatePartIndex<BigSlots>(13),
|
|
},
|
|
state: 0x0,
|
|
last_state: 0x1,
|
|
},
|
|
SimTrace {
|
|
id: TraceScalarId(12),
|
|
kind: BigUInt {
|
|
index: StatePartIndex<BigSlots>(14),
|
|
ty: UInt<8>,
|
|
},
|
|
state: 0x27,
|
|
last_state: 0x27,
|
|
},
|
|
SimTrace {
|
|
id: TraceScalarId(13),
|
|
kind: BigUInt {
|
|
index: StatePartIndex<BigSlots>(15),
|
|
ty: UInt<2>,
|
|
},
|
|
state: 0x2,
|
|
last_state: 0x2,
|
|
},
|
|
SimTrace {
|
|
id: TraceScalarId(14),
|
|
kind: BigBool {
|
|
index: StatePartIndex<BigSlots>(16),
|
|
},
|
|
state: 0x1,
|
|
last_state: 0x1,
|
|
},
|
|
SimTrace {
|
|
id: TraceScalarId(15),
|
|
kind: BigClock {
|
|
index: StatePartIndex<BigSlots>(17),
|
|
},
|
|
state: 0x0,
|
|
last_state: 0x1,
|
|
},
|
|
SimTrace {
|
|
id: TraceScalarId(16),
|
|
kind: BigUInt {
|
|
index: StatePartIndex<BigSlots>(18),
|
|
ty: UInt<8>,
|
|
},
|
|
state: 0x28,
|
|
last_state: 0x28,
|
|
},
|
|
SimTrace {
|
|
id: TraceScalarId(17),
|
|
kind: BigBool {
|
|
index: StatePartIndex<BigSlots>(19),
|
|
},
|
|
state: 0x1,
|
|
last_state: 0x1,
|
|
},
|
|
SimTrace {
|
|
id: TraceScalarId(18),
|
|
kind: BigUInt {
|
|
index: StatePartIndex<BigSlots>(22),
|
|
ty: UInt<2>,
|
|
},
|
|
state: 0x2,
|
|
last_state: 0x2,
|
|
},
|
|
SimTrace {
|
|
id: TraceScalarId(19),
|
|
kind: BigUInt {
|
|
index: StatePartIndex<BigSlots>(25),
|
|
ty: UInt<2>,
|
|
},
|
|
state: 0x0,
|
|
last_state: 0x0,
|
|
},
|
|
SimTrace {
|
|
id: TraceScalarId(20),
|
|
kind: BigBool {
|
|
index: StatePartIndex<BigSlots>(27),
|
|
},
|
|
state: 0x1,
|
|
last_state: 0x1,
|
|
},
|
|
SimTrace {
|
|
id: TraceScalarId(21),
|
|
kind: BigBool {
|
|
index: StatePartIndex<BigSlots>(30),
|
|
},
|
|
state: 0x1,
|
|
last_state: 0x1,
|
|
},
|
|
SimTrace {
|
|
id: TraceScalarId(22),
|
|
kind: BigBool {
|
|
index: StatePartIndex<BigSlots>(31),
|
|
},
|
|
state: 0x1,
|
|
last_state: 0x1,
|
|
},
|
|
SimTrace {
|
|
id: TraceScalarId(23),
|
|
kind: BigBool {
|
|
index: StatePartIndex<BigSlots>(32),
|
|
},
|
|
state: 0x0,
|
|
last_state: 0x0,
|
|
},
|
|
SimTrace {
|
|
id: TraceScalarId(24),
|
|
kind: BigBool {
|
|
index: StatePartIndex<BigSlots>(33),
|
|
},
|
|
state: 0x0,
|
|
last_state: 0x0,
|
|
},
|
|
SimTrace {
|
|
id: TraceScalarId(25),
|
|
kind: BigBool {
|
|
index: StatePartIndex<BigSlots>(34),
|
|
},
|
|
state: 0x0,
|
|
last_state: 0x0,
|
|
},
|
|
SimTrace {
|
|
id: TraceScalarId(26),
|
|
kind: BigBool {
|
|
index: StatePartIndex<BigSlots>(36),
|
|
},
|
|
state: 0x0,
|
|
last_state: 0x0,
|
|
},
|
|
SimTrace {
|
|
id: TraceScalarId(27),
|
|
kind: BigBool {
|
|
index: StatePartIndex<BigSlots>(39),
|
|
},
|
|
state: 0x0,
|
|
last_state: 0x0,
|
|
},
|
|
SimTrace {
|
|
id: TraceScalarId(28),
|
|
kind: BigUInt {
|
|
index: StatePartIndex<BigSlots>(42),
|
|
ty: UInt<8>,
|
|
},
|
|
state: 0x28,
|
|
last_state: 0x28,
|
|
},
|
|
],
|
|
trace_memories: {
|
|
StatePartIndex<Memories>(0): TraceMem {
|
|
id: TraceMemoryId(0),
|
|
name: "mem",
|
|
stride: 8,
|
|
element_type: TraceUInt {
|
|
location: TraceMemoryLocation {
|
|
id: TraceMemoryId(0),
|
|
depth: 3,
|
|
stride: 8,
|
|
start: 0,
|
|
len: 8,
|
|
},
|
|
name: "mem",
|
|
ty: UInt<8>,
|
|
flow: Duplex,
|
|
},
|
|
ports: [
|
|
TraceMemPort {
|
|
name: "r0",
|
|
bundle: TraceBundle {
|
|
name: "r0",
|
|
fields: [
|
|
TraceUInt {
|
|
location: TraceScalarId(9),
|
|
name: "addr",
|
|
ty: UInt<2>,
|
|
flow: Sink,
|
|
},
|
|
TraceBool {
|
|
location: TraceScalarId(10),
|
|
name: "en",
|
|
flow: Sink,
|
|
},
|
|
TraceClock {
|
|
location: TraceScalarId(11),
|
|
name: "clk",
|
|
flow: Sink,
|
|
},
|
|
TraceUInt {
|
|
location: TraceScalarId(12),
|
|
name: "data",
|
|
ty: UInt<8>,
|
|
flow: Source,
|
|
},
|
|
],
|
|
ty: Bundle {
|
|
/* offset = 0 */
|
|
addr: UInt<2>,
|
|
/* offset = 2 */
|
|
en: Bool,
|
|
/* offset = 3 */
|
|
clk: Clock,
|
|
#[hdl(flip)] /* offset = 4 */
|
|
data: UInt<8>,
|
|
},
|
|
flow: Sink,
|
|
},
|
|
ty: Bundle {
|
|
/* offset = 0 */
|
|
addr: UInt<2>,
|
|
/* offset = 2 */
|
|
en: Bool,
|
|
/* offset = 3 */
|
|
clk: Clock,
|
|
#[hdl(flip)] /* offset = 4 */
|
|
data: UInt<8>,
|
|
},
|
|
},
|
|
TraceMemPort {
|
|
name: "w1",
|
|
bundle: TraceBundle {
|
|
name: "w1",
|
|
fields: [
|
|
TraceUInt {
|
|
location: TraceScalarId(13),
|
|
name: "addr",
|
|
ty: UInt<2>,
|
|
flow: Sink,
|
|
},
|
|
TraceBool {
|
|
location: TraceScalarId(14),
|
|
name: "en",
|
|
flow: Sink,
|
|
},
|
|
TraceClock {
|
|
location: TraceScalarId(15),
|
|
name: "clk",
|
|
flow: Sink,
|
|
},
|
|
TraceUInt {
|
|
location: TraceScalarId(16),
|
|
name: "data",
|
|
ty: UInt<8>,
|
|
flow: Sink,
|
|
},
|
|
TraceBool {
|
|
location: TraceScalarId(17),
|
|
name: "mask",
|
|
flow: Sink,
|
|
},
|
|
],
|
|
ty: Bundle {
|
|
/* offset = 0 */
|
|
addr: UInt<2>,
|
|
/* offset = 2 */
|
|
en: Bool,
|
|
/* offset = 3 */
|
|
clk: Clock,
|
|
/* offset = 4 */
|
|
data: UInt<8>,
|
|
/* offset = 12 */
|
|
mask: Bool,
|
|
},
|
|
flow: Sink,
|
|
},
|
|
ty: Bundle {
|
|
/* offset = 0 */
|
|
addr: UInt<2>,
|
|
/* offset = 2 */
|
|
en: Bool,
|
|
/* offset = 3 */
|
|
clk: Clock,
|
|
/* offset = 4 */
|
|
data: UInt<8>,
|
|
/* offset = 12 */
|
|
mask: Bool,
|
|
},
|
|
},
|
|
],
|
|
array_type: Array<UInt<8>, 3>,
|
|
},
|
|
},
|
|
trace_writers: [
|
|
Running(
|
|
VcdWriter {
|
|
finished_init: true,
|
|
timescale: 1 ps,
|
|
..
|
|
},
|
|
),
|
|
],
|
|
clocks_triggered: [
|
|
StatePartIndex<SmallSlots>(3),
|
|
StatePartIndex<SmallSlots>(8),
|
|
StatePartIndex<SmallSlots>(15),
|
|
],
|
|
event_queue: EventQueue(EventQueueData {
|
|
instant: 100 μs,
|
|
events: {},
|
|
}),
|
|
waiting_sensitivity_sets_by_address: {},
|
|
waiting_sensitivity_sets_by_compiled_value: {},
|
|
..
|
|
} |