aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorazidar2015-07-31 16:05:53 -0700
committerazidar2015-07-31 16:05:53 -0700
commitd5cc3210aabf7b4d69e2f3c5ed45c9c097c3ebdf (patch)
treef16aa7305b4ce27d38f679332d7ad37e6f6fef3a /test
parent2440b824c68e4604d174e92e26af2c3eca1ec171 (diff)
Updated tests to pipe from stderr to stdout
Diffstat (limited to 'test')
-rw-r--r--test/chisel3/Sum.fir132
-rw-r--r--test/errors/gender/BulkWrong.fir2
-rw-r--r--test/features/BulkConnect.fir2
-rw-r--r--test/features/ExModule.fir2
-rw-r--r--test/features/InitializeVec.fir4
-rw-r--r--test/features/Link.fir2
-rw-r--r--test/features/Long.fir4
-rw-r--r--test/features/Queue.fir2
-rw-r--r--test/features/SeqMem.fir2
-rw-r--r--test/features/TwoClocks.fir2
-rw-r--r--test/passes/expand-accessors/accessor-mem.fir2
-rw-r--r--test/passes/expand-accessors/accessor-vec.fir2
-rw-r--r--test/passes/expand-connect-indexed/bundle-vecs.fir2
-rw-r--r--test/passes/expand-whens/bundle-init.fir2
-rw-r--r--test/passes/expand-whens/nested-whens.fir2
-rw-r--r--test/passes/expand-whens/non-ref.fir2
-rw-r--r--test/passes/expand-whens/one-when.fir2
-rw-r--r--test/passes/expand-whens/partial-init.fir2
-rw-r--r--test/passes/expand-whens/reg-dwc.fir2
-rw-r--r--test/passes/expand-whens/reg-dwoc.fir2
-rw-r--r--test/passes/expand-whens/reg-wdc.fir2
-rw-r--r--test/passes/expand-whens/reg-wdoc.fir2
-rw-r--r--test/passes/expand-whens/scoped-reg.fir2
-rw-r--r--test/passes/expand-whens/two-when.fir2
-rw-r--r--test/passes/expand-whens/wacc-wdc.fir2
-rw-r--r--test/passes/infer-types/bundle.fir2
-rw-r--r--test/passes/infer-types/gcd.fir4
-rw-r--r--test/passes/infer-types/primops.fir2
-rw-r--r--test/passes/infer-widths/dsh.fir2
-rw-r--r--test/passes/infer-widths/gcd.fir4
-rw-r--r--test/passes/infer-widths/simple.fir2
-rw-r--r--test/passes/inline/gcd.fir4
-rw-r--r--test/passes/jacktest/ALUTop.fir2
-rw-r--r--test/passes/jacktest/ComplexAssign.fir2
-rw-r--r--test/passes/jacktest/Counter.fir2
-rw-r--r--test/passes/jacktest/EnableShiftRegister.fir2
-rw-r--r--test/passes/jacktest/LFSR16.fir2
-rw-r--r--test/passes/jacktest/MemorySearch.fir2
-rw-r--r--test/passes/jacktest/ModuleVec.fir2
-rw-r--r--test/passes/jacktest/Mul.fir2
-rw-r--r--test/passes/jacktest/RegisterVecShift.fir2
-rw-r--r--test/passes/jacktest/Rom.fir2
-rw-r--r--test/passes/jacktest/Stack.fir2
-rw-r--r--test/passes/jacktest/Tbl.fir2
-rw-r--r--test/passes/jacktest/VendingMachine.fir2
-rw-r--r--test/passes/jacktest/gcd.fir2
-rw-r--r--test/passes/jacktest/risc.fir2
-rw-r--r--test/passes/lower-to-ground/accessor.fir2
-rw-r--r--test/passes/lower-to-ground/bundle-vecs.fir2
-rw-r--r--test/passes/lower-to-ground/bundle.fir2
-rw-r--r--test/passes/lower-to-ground/instance.fir2
-rw-r--r--test/passes/lower-to-ground/nested-vec.fir2
-rw-r--r--test/passes/lower-to-ground/register.fir2
-rw-r--r--test/passes/lower-to-ground/test.fir2
-rw-r--r--test/passes/resolve-genders/accessor.fir2
-rw-r--r--test/passes/resolve-genders/bigenders.fir2
-rw-r--r--test/passes/resolve-genders/bulk.fir2
-rw-r--r--test/passes/resolve-genders/gcd.fir2
-rw-r--r--test/passes/resolve-genders/ports.fir2
-rw-r--r--test/passes/resolve-genders/subbundle.fir2
-rw-r--r--test/passes/resolve-kinds/gcd.fir2
-rw-r--r--test/passes/split-exp/gcd.fir4
-rw-r--r--test/passes/to-flo/gcd.fir4
-rw-r--r--test/passes/to-verilog/gcd.fir4
-rw-r--r--test/refchip/BTB.fir4156
-rw-r--r--test/refchip/Top.fir64516
66 files changed, 68869 insertions, 77 deletions
diff --git a/test/chisel3/Sum.fir b/test/chisel3/Sum.fir
new file mode 100644
index 00000000..9eed6109
--- /dev/null
+++ b/test/chisel3/Sum.fir
@@ -0,0 +1,132 @@
+; RUN: firrtl -i %s -o %s.v -X verilog -p c | tee %s.out | FileCheck %s
+;CHECK: Done!
+
+circuit SumTop :
+ module Sum :
+ input sreq : {valid : UInt<1>, bits : {v : UInt<32>, len : UInt<32>}, flip ready : UInt<1>}
+ output srsp : {valid : UInt<1>, bits : {data : UInt<32>}, flip ready : UInt<1>}
+ input mrsp : {valid : UInt<1>, bits : {tag : UInt<8>, data : UInt<32>}, flip ready : UInt<1>}
+ output mreq : {valid : UInt<1>, bits : {wr? : UInt<1>, tag : UInt<8>, addr : UInt<32>, data : UInt<32>}, flip ready : UInt<1>}
+ reg a2 : UInt<32>
+ reg ea3 : UInt<32>
+ reg sum4 : UInt<32>
+ reg num_reqs5 : UInt<?>
+ on-reset num_reqs5 := UInt<8>(0)
+ reg computing?6 : UInt<?>
+ on-reset computing?6 := UInt<1>(0)
+ mrsp.ready := UInt<1>(1)
+ sreq.ready := UInt<1>(1)
+ srsp.valid := UInt<1>(0)
+ srsp.bits.data := UInt<1>(0)
+ mrsp.ready := UInt<1>(1)
+ mreq.bits.wr? := UInt<1>(0)
+ mreq.bits.data := UInt<1>(0)
+ mreq.bits.addr := UInt<1>(0)
+ mreq.valid := UInt<1>(0)
+ mreq.bits.tag := UInt<1>(0)
+ when computing?6 :
+ sreq.ready := UInt<1>(0)
+ when mrsp.valid :
+ node tmp7 = add-wrap(sum4, mrsp.bits.data)
+ sum4 := tmp7
+ node tmp8 = lt(a2, ea3)
+ when tmp8 :
+ mreq.valid := UInt<1>(1)
+ mreq.bits.addr := a2
+ when mreq.ready :
+ node tmp9 = add-wrap(a2, UInt<1>(1))
+ a2 := tmp9
+ else :
+ node tmp10 = eq(num_reqs5, UInt<1>(0))
+ when tmp10 :
+ srsp.valid := UInt<1>(1)
+ srsp.bits.data := sum4
+ when srsp.ready :
+ sum4 := UInt<1>(0)
+ computing?6 := UInt<1>(0)
+ else :
+ when sreq.valid :
+ a2 := sreq.bits.v
+ node tmp11 = add-wrap(sreq.bits.v, sreq.bits.len)
+ ea3 := tmp11
+ module Memory :
+ input req : {valid : UInt<1>, bits : {wr? : UInt<1>, tag : UInt<8>, addr : UInt<32>, data : UInt<32>}, flip ready : UInt<1>}
+ output rsp : {valid : UInt<1>, bits : {tag : UInt<8>, data : UInt<32>}, flip ready : UInt<1>}
+ cmem mem13 : UInt<32>[8]
+ req.ready := rsp.ready
+ rsp.valid := UInt<1>(0)
+ rsp.bits.data := UInt<1>(0)
+ rsp.bits.tag := UInt<1>(0)
+ when req.valid :
+ rsp.valid := UInt<1>(1)
+ rsp.bits.tag := req.bits.tag
+ when req.bits.wr? :
+ rsp.bits.data := req.bits.data
+ accessor a14 = mem13[req.bits.addr]
+ a14 := req.bits.data
+ else :
+ accessor a15 = mem13[req.bits.addr]
+ rsp.bits.data := a15
+ module ArbiterRR :
+ input in : {valid : UInt<1>, bits : {wr? : UInt<1>, tag : UInt<8>, addr : UInt<32>, data : UInt<32>}, flip ready : UInt<1>}[2]
+ output out : {valid : UInt<1>, bits : {wr? : UInt<1>, tag : UInt<8>, addr : UInt<32>, data : UInt<32>}, flip ready : UInt<1>}
+ output chosen : UInt<2>
+ reg last-grant17 : UInt<?>
+ on-reset last-grant17 := UInt<2>(0)
+ node tmp19 = bit-and(in[0].valid, UInt<1>(0))
+ node tmp20 = gt(tmp19, last-grant17)
+ node tmp21 = bit-and(in[1].valid, UInt<1>(1))
+ node tmp22 = gt(tmp21, last-grant17)
+ node tmp25 = bit-or(UInt<1>(0), tmp20)
+ node tmp26 = bit-not(tmp25)
+ node tmp28 = bit-or(UInt<1>(0), tmp20)
+ node tmp29 = bit-or(tmp28, tmp22)
+ node tmp30 = bit-not(tmp29)
+ node tmp32 = bit-or(UInt<1>(0), tmp20)
+ node tmp33 = bit-or(tmp32, tmp22)
+ node tmp34 = bit-or(tmp33, in[0].valid)
+ node tmp35 = bit-not(tmp34)
+ node tmp36 = bit-and(UInt<1>(1), UInt<1>(0))
+ node tmp37 = gt(tmp36, last-grant17)
+ node tmp38 = bit-or(tmp37, tmp30)
+ node tmp39 = bit-and(tmp38, out.ready)
+ in[0].ready := tmp39
+ node tmp40 = bit-and(tmp26, UInt<1>(1))
+ node tmp41 = gt(tmp40, last-grant17)
+ node tmp42 = bit-or(tmp41, tmp35)
+ node tmp43 = bit-and(tmp42, out.ready)
+ in[1].ready := tmp43
+ accessor a44 = in[chosen]
+ out.valid := a44.valid
+ accessor a45 = in[chosen]
+ out.bits := a45.bits
+ wire w46 : UInt<?>
+ w46 := UInt<1>(1)
+ when in[0].valid :
+ w46 := UInt<1>(0)
+ node tmp47 = bit-and(in[1].valid, UInt<1>(1))
+ node tmp48 = gt(tmp47, last-grant17)
+ wire w49 : UInt<?>
+ w49 := w46
+ when tmp48 :
+ w49 := UInt<1>(1)
+ chosen := w49
+ node tmp50 = bit-and(out.ready, out.valid)
+ when tmp50 :
+ last-grant17 := chosen
+ module SumTop :
+ input sreq : {valid : UInt<1>, bits : {v : UInt<32>, len : UInt<32>}, flip ready : UInt<1>}
+ output srsp : {valid : UInt<1>, bits : {data : UInt<32>}, flip ready : UInt<1>}
+ input mreq : {valid : UInt<1>, bits : {wr? : UInt<1>, tag : UInt<8>, addr : UInt<32>, data : UInt<32>}, flip ready : UInt<1>}
+ output mrsp : {valid : UInt<1>, bits : {tag : UInt<8>, data : UInt<32>}, flip ready : UInt<1>}
+ inst sum1 of Sum
+ inst mem12 of Memory
+ inst mreqs16 of ArbiterRR
+ mreqs16.in[0] := mreq
+ mreqs16.in[1] := sum1.mreq
+ mem12.req := mreqs16.out
+ sum1.mrsp := mem12.rsp
+ mrsp := mem12.rsp
+ srsp := sum1.srsp
+ sum1.sreq := sreq
+
diff --git a/test/errors/gender/BulkWrong.fir b/test/errors/gender/BulkWrong.fir
index 2b1792aa..13534385 100644
--- a/test/errors/gender/BulkWrong.fir
+++ b/test/errors/gender/BulkWrong.fir
@@ -1,4 +1,4 @@
-; RUN: firrtl -i %s -o %s.v -X verilog -p c | tee %s.out | FileCheck %s
+; RUN: firrtl -i %s -o %s.v -X verilog -p c 2>&1 | tee %s.out | FileCheck %s
; CHECK: Expression req is used as a sink but can only be used as a source.
circuit BTB :
diff --git a/test/features/BulkConnect.fir b/test/features/BulkConnect.fir
index f8840f46..bf5b330e 100644
--- a/test/features/BulkConnect.fir
+++ b/test/features/BulkConnect.fir
@@ -1,4 +1,4 @@
-; RUN: firrtl -i %s -o %s.flo -X flo -p c | tee %s.out | FileCheck %s
+; RUN: firrtl -i %s -o %s.flo -X flo -p c 2>&1 | tee %s.out | FileCheck %s
;CHECK: Lower To Ground
circuit Top :
module Top :
diff --git a/test/features/ExModule.fir b/test/features/ExModule.fir
index 13cdfcf9..146d11b9 100644
--- a/test/features/ExModule.fir
+++ b/test/features/ExModule.fir
@@ -1,4 +1,4 @@
-; RUN: firrtl -i %s -o %s.v -X verilog -p c | tee %s.out | FileCheck %s
+; RUN: firrtl -i %s -o %s.v -X verilog -p c 2>&1 | tee %s.out | FileCheck %s
circuit Top :
module Top :
output z : UInt<4>
diff --git a/test/features/InitializeVec.fir b/test/features/InitializeVec.fir
index 30c59fb9..0d49cf2a 100644
--- a/test/features/InitializeVec.fir
+++ b/test/features/InitializeVec.fir
@@ -1,8 +1,8 @@
-; RUN: firrtl -i %s -o %s.flo -X flo -p c | tee %s.out | FileCheck %s
+; RUN: firrtl -i %s -o %s.flo -X flo -p c 2>&1 | tee %s.out | FileCheck %s
;CHECK: Done!
circuit Tst :
module Tst :
- output in : {valid : UInt<1>, flip ready : UInt<1>, bits : UInt<8>}
+ input in : {valid : UInt<1>, flip ready : UInt<1>, bits : UInt<8>}
output outs : {valid : UInt<1>, flip ready : UInt<1>, bits : UInt<8>}[4]
in.ready := UInt<1>(1)
diff --git a/test/features/Link.fir b/test/features/Link.fir
index 190341f2..721f4727 100644
--- a/test/features/Link.fir
+++ b/test/features/Link.fir
@@ -1,4 +1,4 @@
-; RUN: firrtl -i %s -m /Users/cusgadmin/code/stanza/firrtl/test/features/Queue.fir -o %s.v -X verilog -p c | tee %s.out | FileCheck %s
+; RUN: firrtl -i %s -m /Users/cusgadmin/code/stanza/firrtl/test/features/Queue.fir -o %s.v -X verilog -p c 2>&1 | tee %s.out | FileCheck %s
;CHECK: Lower To Ground
circuit Top :
module Top :
diff --git a/test/features/Long.fir b/test/features/Long.fir
index e03ab091..1b5f0905 100644
--- a/test/features/Long.fir
+++ b/test/features/Long.fir
@@ -1,6 +1,6 @@
-; RUN: firrtl -i %s -o %s.flo -X flo -p c | tee %s.out | FileCheck %s
+; RUN: firrtl -i %s -o %s.flo -X flo -p c 2>&1 | tee %s.out | FileCheck %s
;CHECK: Done
circuit Top :
module Top :
wire a : UInt
- a := UInt(4261441663)
+ a := UInt("h4261441663")
diff --git a/test/features/Queue.fir b/test/features/Queue.fir
index 345d2a44..07132d94 100644
--- a/test/features/Queue.fir
+++ b/test/features/Queue.fir
@@ -1,4 +1,4 @@
-; RUN: firrtl -i %s -o %s.v -X verilog -p c | tee %s.out | FileCheck %s
+; RUN: firrtl -i %s -o %s.v -X verilog -p c 2>&1 | tee %s.out | FileCheck %s
; CHECK: Done!
circuit Queue :
module Queue :
diff --git a/test/features/SeqMem.fir b/test/features/SeqMem.fir
index 4714ad4f..9690f2d1 100644
--- a/test/features/SeqMem.fir
+++ b/test/features/SeqMem.fir
@@ -1,4 +1,4 @@
-; RUN: firrtl -i %s -o %s.v -X verilog -p c | tee %s.out | FileCheck %s
+; RUN: firrtl -i %s -o %s.v -X verilog -p c 2>&1 | tee %s.out | FileCheck %s
;CHECK: Done!
circuit Top :
module Top :
diff --git a/test/features/TwoClocks.fir b/test/features/TwoClocks.fir
index cbbb01f1..9665c153 100644
--- a/test/features/TwoClocks.fir
+++ b/test/features/TwoClocks.fir
@@ -1,4 +1,4 @@
-; RUN: firrtl -i %s -o %s.v -X verilog -p c | tee %s.out | FileCheck %s
+; RUN: firrtl -i %s -o %s.v -X verilog -p c 2>&1 | tee %s.out | FileCheck %s
circuit Top :
module Top :
input clk1 : Clock
diff --git a/test/passes/expand-accessors/accessor-mem.fir b/test/passes/expand-accessors/accessor-mem.fir
index d385fcaa..c219ba17 100644
--- a/test/passes/expand-accessors/accessor-mem.fir
+++ b/test/passes/expand-accessors/accessor-mem.fir
@@ -1,4 +1,4 @@
-; RUN: firrtl -i %s -o %s.flo -X flo -p c | tee %s.out | FileCheck %s
+; RUN: firrtl -i %s -o %s.flo -X flo -p c 2>&1 | tee %s.out | FileCheck %s
;CHECK: Expand Accessors
circuit top :
diff --git a/test/passes/expand-accessors/accessor-vec.fir b/test/passes/expand-accessors/accessor-vec.fir
index 5cdad6c7..a6b406d1 100644
--- a/test/passes/expand-accessors/accessor-vec.fir
+++ b/test/passes/expand-accessors/accessor-vec.fir
@@ -1,4 +1,4 @@
-; RUN: firrtl -i %s -o %s.flo -X flo -p c | tee %s.out | FileCheck %s
+; RUN: firrtl -i %s -o %s.flo -X flo -p c 2>&1 | tee %s.out | FileCheck %s
;CHECK: Expand Accessors
circuit top :
diff --git a/test/passes/expand-connect-indexed/bundle-vecs.fir b/test/passes/expand-connect-indexed/bundle-vecs.fir
index bc1b6892..7fc3a6e5 100644
--- a/test/passes/expand-connect-indexed/bundle-vecs.fir
+++ b/test/passes/expand-connect-indexed/bundle-vecs.fir
@@ -1,4 +1,4 @@
-; RUN: firrtl -i %s -o %s.flo -X flo -p c | tee %s.out | FileCheck %s
+; RUN: firrtl -i %s -o %s.flo -X flo -p c 2>&1 | tee %s.out | FileCheck %s
; CHECK: Expand Indexed Connects
circuit top :
diff --git a/test/passes/expand-whens/bundle-init.fir b/test/passes/expand-whens/bundle-init.fir
index 7e366400..f7b14c0f 100644
--- a/test/passes/expand-whens/bundle-init.fir
+++ b/test/passes/expand-whens/bundle-init.fir
@@ -1,4 +1,4 @@
-; RUN: firrtl -i %s -o %s.flo -X flo -p cd | tee %s.out | FileCheck %s
+; RUN: firrtl -i %s -o %s.flo -X flo -p cd 2>&1 | tee %s.out | FileCheck %s
; CHECK: Expand Whens
circuit top :
module top :
diff --git a/test/passes/expand-whens/nested-whens.fir b/test/passes/expand-whens/nested-whens.fir
index 83f9df6a..ba258857 100644
--- a/test/passes/expand-whens/nested-whens.fir
+++ b/test/passes/expand-whens/nested-whens.fir
@@ -1,4 +1,4 @@
-; RUN: firrtl -i %s -o %s.flo -X flo -p c | tee %s.out | FileCheck %s
+; RUN: firrtl -i %s -o %s.flo -X flo -p c 2>&1 | tee %s.out | FileCheck %s
; CHECK: Expand Whens
circuit top :
module top :
diff --git a/test/passes/expand-whens/non-ref.fir b/test/passes/expand-whens/non-ref.fir
index 762619a7..32264b9e 100644
--- a/test/passes/expand-whens/non-ref.fir
+++ b/test/passes/expand-whens/non-ref.fir
@@ -1,4 +1,4 @@
-; RUN: firrtl -i %s -o %s.flo -X flo -p c | tee %s.out | FileCheck %s
+; RUN: firrtl -i %s -o %s.flo -X flo -p c 2>&1 | tee %s.out | FileCheck %s
; CHECK: Expand Whens
circuit top :
diff --git a/test/passes/expand-whens/one-when.fir b/test/passes/expand-whens/one-when.fir
index 1332395c..c769a4d5 100644
--- a/test/passes/expand-whens/one-when.fir
+++ b/test/passes/expand-whens/one-when.fir
@@ -1,4 +1,4 @@
-; RUN: firrtl -i %s -o %s.flo -X flo -p c | tee %s.out | FileCheck %s
+; RUN: firrtl -i %s -o %s.flo -X flo -p c 2>&1 | tee %s.out | FileCheck %s
; CHECK: Expand Whens
circuit top :
diff --git a/test/passes/expand-whens/partial-init.fir b/test/passes/expand-whens/partial-init.fir
index f752eccd..9b562c90 100644
--- a/test/passes/expand-whens/partial-init.fir
+++ b/test/passes/expand-whens/partial-init.fir
@@ -1,4 +1,4 @@
-; RUN: firrtl -i %s -o %s.flo -X flo -p c | tee %s.out | FileCheck %s
+; RUN: firrtl -i %s -o %s.flo -X flo -p c 2>&1 | tee %s.out | FileCheck %s
; CHECK: Expand Whens
circuit top :
diff --git a/test/passes/expand-whens/reg-dwc.fir b/test/passes/expand-whens/reg-dwc.fir
index 6d5158cc..f8076a3e 100644
--- a/test/passes/expand-whens/reg-dwc.fir
+++ b/test/passes/expand-whens/reg-dwc.fir
@@ -1,4 +1,4 @@
-; RUN: firrtl -i %s -o %s.flo -X flo -p c | tee %s.out | FileCheck %s
+; RUN: firrtl -i %s -o %s.flo -X flo -p c 2>&1 | tee %s.out | FileCheck %s
circuit top :
module top :
input clk : Clock
diff --git a/test/passes/expand-whens/reg-dwoc.fir b/test/passes/expand-whens/reg-dwoc.fir
index 3bb9515e..0defc432 100644
--- a/test/passes/expand-whens/reg-dwoc.fir
+++ b/test/passes/expand-whens/reg-dwoc.fir
@@ -1,4 +1,4 @@
-; RUN: firrtl -i %s -o %s.flo -X flo -p c | tee %s.out | FileCheck %s
+; RUN: firrtl -i %s -o %s.flo -X flo -p c 2>&1 | tee %s.out | FileCheck %s
circuit top :
module top :
input clk : Clock
diff --git a/test/passes/expand-whens/reg-wdc.fir b/test/passes/expand-whens/reg-wdc.fir
index bba77902..43136b96 100644
--- a/test/passes/expand-whens/reg-wdc.fir
+++ b/test/passes/expand-whens/reg-wdc.fir
@@ -1,4 +1,4 @@
-; RUN: firrtl -i %s -o %s.flo -X flo -p c | tee %s.out | FileCheck %s
+; RUN: firrtl -i %s -o %s.flo -X flo -p c 2>&1 | tee %s.out | FileCheck %s
; XFAIL: *
circuit top :
module top :
diff --git a/test/passes/expand-whens/reg-wdoc.fir b/test/passes/expand-whens/reg-wdoc.fir
index 954048f2..aac5e278 100644
--- a/test/passes/expand-whens/reg-wdoc.fir
+++ b/test/passes/expand-whens/reg-wdoc.fir
@@ -1,4 +1,4 @@
-; RUN: firrtl -i %s -o %s.flo -X flo -p c | tee %s.out | FileCheck %s
+; RUN: firrtl -i %s -o %s.flo -X flo -p c 2>&1 | tee %s.out | FileCheck %s
; XFAIL: *
circuit top :
module top :
diff --git a/test/passes/expand-whens/scoped-reg.fir b/test/passes/expand-whens/scoped-reg.fir
index 4f02896b..b052df5d 100644
--- a/test/passes/expand-whens/scoped-reg.fir
+++ b/test/passes/expand-whens/scoped-reg.fir
@@ -1,4 +1,4 @@
-; RUN: firrtl -i %s -o %s.flo -X flo -p c | tee %s.out | FileCheck %s
+; RUN: firrtl -i %s -o %s.flo -X flo -p c 2>&1 | tee %s.out | FileCheck %s
; XFAIL: *
circuit top :
module top :
diff --git a/test/passes/expand-whens/two-when.fir b/test/passes/expand-whens/two-when.fir
index 2203f25e..fafd3dbc 100644
--- a/test/passes/expand-whens/two-when.fir
+++ b/test/passes/expand-whens/two-when.fir
@@ -1,4 +1,4 @@
-; RUN: firrtl -i %s -o %s.flo -X flo -p c | tee %s.out | FileCheck %s
+; RUN: firrtl -i %s -o %s.flo -X flo -p c 2>&1 | tee %s.out | FileCheck %s
; CHECK: Expand Whens
circuit top :
diff --git a/test/passes/expand-whens/wacc-wdc.fir b/test/passes/expand-whens/wacc-wdc.fir
index 3f88a0d0..b7b6e9fa 100644
--- a/test/passes/expand-whens/wacc-wdc.fir
+++ b/test/passes/expand-whens/wacc-wdc.fir
@@ -1,4 +1,4 @@
-; RUN: firrtl -i %s -o %s.flo -X flo -p c | tee %s.out | FileCheck %s
+; RUN: firrtl -i %s -o %s.flo -X flo -p c 2>&1 | tee %s.out | FileCheck %s
; XFAIL: *
circuit top :
module top :
diff --git a/test/passes/infer-types/bundle.fir b/test/passes/infer-types/bundle.fir
index 118734b7..f3bfa522 100644
--- a/test/passes/infer-types/bundle.fir
+++ b/test/passes/infer-types/bundle.fir
@@ -1,4 +1,4 @@
-; RUN: firrtl -i %s -o %s.flo -X flo -p ct | tee %s.out | FileCheck %s
+; RUN: firrtl -i %s -o %s.flo -X flo -p ct 2>&1 | tee %s.out | FileCheck %s
;CHECK: Infer Types
circuit top :
diff --git a/test/passes/infer-types/gcd.fir b/test/passes/infer-types/gcd.fir
index 0848457b..20f4a340 100644
--- a/test/passes/infer-types/gcd.fir
+++ b/test/passes/infer-types/gcd.fir
@@ -1,4 +1,4 @@
-; RUN: firrtl -i %s -o %s.flo -X flo -p ct | tee %s.out | FileCheck %s
+; RUN: firrtl -i %s -o %s.flo -X flo -p ct 2>&1 | tee %s.out | FileCheck %s
;CHECK: Infer Types
circuit top :
@@ -39,8 +39,6 @@ circuit top :
when e :
x := a
y := b
- v := eq(v, UInt(0))
- ;CHECK: v@<t:UInt> := eq(v@<t:UInt>, UInt("h00000000"))@<t:UInt>
z := x
module top :
input a : UInt<16>
diff --git a/test/passes/infer-types/primops.fir b/test/passes/infer-types/primops.fir
index 8e5afb1b..e12a41af 100644
--- a/test/passes/infer-types/primops.fir
+++ b/test/passes/infer-types/primops.fir
@@ -1,4 +1,4 @@
-; RUN: firrtl -i %s -o %s.flo -X flo -p ct | tee %s.out | FileCheck %s
+; RUN: firrtl -i %s -o %s.flo -X flo -p ct 2>&1 | tee %s.out | FileCheck %s
;CHECK: Infer Types
circuit top :
diff --git a/test/passes/infer-widths/dsh.fir b/test/passes/infer-widths/dsh.fir
index 08396978..47940d25 100644
--- a/test/passes/infer-widths/dsh.fir
+++ b/test/passes/infer-widths/dsh.fir
@@ -1,4 +1,4 @@
-; RUN: firrtl -i %s -o %s.flo -X flo -p cd | tee %s.out | FileCheck %s
+; RUN: firrtl -i %s -o %s.flo -X flo -p cd 2>&1 | tee %s.out | FileCheck %s
;CHECK: Infer Widths
diff --git a/test/passes/infer-widths/gcd.fir b/test/passes/infer-widths/gcd.fir
index efed25ad..a83a79a7 100644
--- a/test/passes/infer-widths/gcd.fir
+++ b/test/passes/infer-widths/gcd.fir
@@ -1,4 +1,4 @@
-; RUN: firrtl -i %s -o %s.flo -X flo -p ctd | tee %s.out | FileCheck %s
+; RUN: firrtl -i %s -o %s.flo -X flo -p ctd 2>&1 | tee %s.out | FileCheck %s
;CHECK: Infer Widths
circuit top :
@@ -14,7 +14,6 @@ circuit top :
input clk : Clock
input reset : UInt<1>
output z : UInt<16>
- output v : UInt<1>
reg x : UInt,clk,reset
reg y : UInt,clk,reset
onreset x := UInt(0)
@@ -32,7 +31,6 @@ circuit top :
when e :
x := a
y := b
- v := eq(v, UInt(0))
z := x
module top :
input a : UInt<16>
diff --git a/test/passes/infer-widths/simple.fir b/test/passes/infer-widths/simple.fir
index 1b588c0e..f88afcd6 100644
--- a/test/passes/infer-widths/simple.fir
+++ b/test/passes/infer-widths/simple.fir
@@ -1,4 +1,4 @@
-; RUN: firrtl -i %s -o %s.flo -X flo -p cTwd | tee %s.out | FileCheck %s
+; RUN: firrtl -i %s -o %s.flo -X flo -p cTwd 2>&1 | tee %s.out | FileCheck %s
;CHECK: Infer Widths
circuit top :
diff --git a/test/passes/inline/gcd.fir b/test/passes/inline/gcd.fir
index 6227520d..7ef87ec6 100644
--- a/test/passes/inline/gcd.fir
+++ b/test/passes/inline/gcd.fir
@@ -1,4 +1,4 @@
-; RUN: firrtl -i %s -o %s.flo -X flo -p c | tee %s.out | FileCheck %s
+; RUN: firrtl -i %s -o %s.flo -X flo -p c 2>&1 | tee %s.out | FileCheck %s
;CHECK: Inline Instances
circuit top :
@@ -14,7 +14,6 @@ circuit top :
input clk : Clock
input reset : UInt<1>
output z : UInt<16>
- output v : UInt<1>
reg x : UInt,clk,reset
reg y : UInt,clk,reset
onreset x := UInt(0)
@@ -32,7 +31,6 @@ circuit top :
when e :
x := a
y := b
- v := eq(v, UInt(0))
z := x
module top :
input a : UInt<16>
diff --git a/test/passes/jacktest/ALUTop.fir b/test/passes/jacktest/ALUTop.fir
index bc803e97..a8dbe4c7 100644
--- a/test/passes/jacktest/ALUTop.fir
+++ b/test/passes/jacktest/ALUTop.fir
@@ -1,4 +1,4 @@
-; RUN: firrtl -i %s -o %s.flo -X flo -p c | tee %s.out | FileCheck %s
+; RUN: firrtl -i %s -o %s.flo -X flo -p c 2>&1 | tee %s.out | FileCheck %s
;CHECK: Done!
circuit ALUTop :
module ALU :
diff --git a/test/passes/jacktest/ComplexAssign.fir b/test/passes/jacktest/ComplexAssign.fir
index 8e508d7d..157d96e4 100644
--- a/test/passes/jacktest/ComplexAssign.fir
+++ b/test/passes/jacktest/ComplexAssign.fir
@@ -1,4 +1,4 @@
-; RUN: firrtl -i %s -o %s.flo -X flo -p c | tee %s.out | FileCheck %s
+; RUN: firrtl -i %s -o %s.flo -X flo -p c 2>&1 | tee %s.out | FileCheck %s
;CHECK: Done!
circuit ComplexAssign :
module ComplexAssign :
diff --git a/test/passes/jacktest/Counter.fir b/test/passes/jacktest/Counter.fir
index 65efb47f..e19cc0d8 100644
--- a/test/passes/jacktest/Counter.fir
+++ b/test/passes/jacktest/Counter.fir
@@ -1,4 +1,4 @@
-; RUN: firrtl -i %s -o %s.flo -X flo -p c | tee %s.out | FileCheck %s
+; RUN: firrtl -i %s -o %s.flo -X flo -p c 2>&1 | tee %s.out | FileCheck %s
;CHECK: Done!
circuit Counter :
module Counter :
diff --git a/test/passes/jacktest/EnableShiftRegister.fir b/test/passes/jacktest/EnableShiftRegister.fir
index 4e0387d0..531f71b2 100644
--- a/test/passes/jacktest/EnableShiftRegister.fir
+++ b/test/passes/jacktest/EnableShiftRegister.fir
@@ -1,4 +1,4 @@
-; RUN: firrtl -i %s -o %s.flo -X flo -p c | tee %s.out | FileCheck %s
+; RUN: firrtl -i %s -o %s.flo -X flo -p c 2>&1 | tee %s.out | FileCheck %s
;CHECK: Done!
circuit EnableShiftRegister :
module EnableShiftRegister :
diff --git a/test/passes/jacktest/LFSR16.fir b/test/passes/jacktest/LFSR16.fir
index 9baa05a6..f72c994c 100644
--- a/test/passes/jacktest/LFSR16.fir
+++ b/test/passes/jacktest/LFSR16.fir
@@ -1,4 +1,4 @@
-; RUN: firrtl -i %s -o %s.flo -X flo -p c | tee %s.out | FileCheck %s
+; RUN: firrtl -i %s -o %s.flo -X flo -p c 2>&1 | tee %s.out | FileCheck %s
;CHECK: Done!
circuit LFSR16 :
module LFSR16 :
diff --git a/test/passes/jacktest/MemorySearch.fir b/test/passes/jacktest/MemorySearch.fir
index ca530ea2..2b965f3d 100644
--- a/test/passes/jacktest/MemorySearch.fir
+++ b/test/passes/jacktest/MemorySearch.fir
@@ -1,4 +1,4 @@
-; RUN: firrtl -i %s -o %s.flo -X flo -p c | tee %s.out | FileCheck %s
+; RUN: firrtl -i %s -o %s.flo -X flo -p c 2>&1 | tee %s.out | FileCheck %s
;CHECK: Done!
circuit MemorySearch :
module MemorySearch :
diff --git a/test/passes/jacktest/ModuleVec.fir b/test/passes/jacktest/ModuleVec.fir
index 2fde69f3..5f8d57a8 100644
--- a/test/passes/jacktest/ModuleVec.fir
+++ b/test/passes/jacktest/ModuleVec.fir
@@ -1,4 +1,4 @@
-; RUN: firrtl -i %s -o %s.flo -X flo -p c | tee %s.out | FileCheck %s
+; RUN: firrtl -i %s -o %s.flo -X flo -p c 2>&1 | tee %s.out | FileCheck %s
;CHECK: Done!
circuit ModuleVec :
module PlusOne :
diff --git a/test/passes/jacktest/Mul.fir b/test/passes/jacktest/Mul.fir
index 1552e959..0e868d7a 100644
--- a/test/passes/jacktest/Mul.fir
+++ b/test/passes/jacktest/Mul.fir
@@ -1,4 +1,4 @@
-; RUN: firrtl -i %s -o %s.flo -X flo -p c | tee %s.out | FileCheck %s
+; RUN: firrtl -i %s -o %s.flo -X flo -p c 2>&1 | tee %s.out | FileCheck %s
;CHECK: Done!
circuit Mul :
module Mul :
diff --git a/test/passes/jacktest/RegisterVecShift.fir b/test/passes/jacktest/RegisterVecShift.fir
index cca645d1..c87f38ac 100644
--- a/test/passes/jacktest/RegisterVecShift.fir
+++ b/test/passes/jacktest/RegisterVecShift.fir
@@ -1,4 +1,4 @@
-; RUN: firrtl -i %s -o %s.flo -X flo -p c | tee %s.out | FileCheck %s
+; RUN: firrtl -i %s -o %s.flo -X flo -p c 2>&1 | tee %s.out | FileCheck %s
;CHECK: Done!
circuit RegisterVecShift :
module RegisterVecShift :
diff --git a/test/passes/jacktest/Rom.fir b/test/passes/jacktest/Rom.fir
index 3c70c670..2878f2d9 100644
--- a/test/passes/jacktest/Rom.fir
+++ b/test/passes/jacktest/Rom.fir
@@ -1,4 +1,4 @@
-; RUN: firrtl -i %s -o %s.flo -X flo -p c | tee %s.out | FileCheck %s
+; RUN: firrtl -i %s -o %s.flo -X flo -p c 2>&1 | tee %s.out | FileCheck %s
;CHECK: Done!
circuit Rom :
module Rom :
diff --git a/test/passes/jacktest/Stack.fir b/test/passes/jacktest/Stack.fir
index 5bbec6d2..f3fd331b 100644
--- a/test/passes/jacktest/Stack.fir
+++ b/test/passes/jacktest/Stack.fir
@@ -1,4 +1,4 @@
-; RUN: firrtl -i %s -o %s.flo -X flo -p c | tee %s.out | FileCheck %s
+; RUN: firrtl -i %s -o %s.flo -X flo -p c 2>&1 | tee %s.out | FileCheck %s
;CHECK: Done!
circuit Stack :
module Stack :
diff --git a/test/passes/jacktest/Tbl.fir b/test/passes/jacktest/Tbl.fir
index b916e0f0..472a2e5a 100644
--- a/test/passes/jacktest/Tbl.fir
+++ b/test/passes/jacktest/Tbl.fir
@@ -1,4 +1,4 @@
-; RUN: firrtl -i %s -o %s.flo -X flo -p c | tee %s.out | FileCheck %s
+; RUN: firrtl -i %s -o %s.flo -X flo -p c 2>&1 | tee %s.out | FileCheck %s
;CHECK: Done!
circuit Tbl :
module Tbl :
diff --git a/test/passes/jacktest/VendingMachine.fir b/test/passes/jacktest/VendingMachine.fir
index 0f4bf941..54fe9c48 100644
--- a/test/passes/jacktest/VendingMachine.fir
+++ b/test/passes/jacktest/VendingMachine.fir
@@ -1,4 +1,4 @@
-; RUN: firrtl -i %s -o %s.flo -X flo -p c | tee %s.out | FileCheck %s
+; RUN: firrtl -i %s -o %s.flo -X flo -p c 2>&1 | tee %s.out | FileCheck %s
;CHECK: Done!
circuit VendingMachine :
module VendingMachine :
diff --git a/test/passes/jacktest/gcd.fir b/test/passes/jacktest/gcd.fir
index f3f12017..6dc9beac 100644
--- a/test/passes/jacktest/gcd.fir
+++ b/test/passes/jacktest/gcd.fir
@@ -1,4 +1,4 @@
-; RUN: firrtl -i %s -o %s.flo -X flo -p c | tee %s.out | FileCheck %s
+; RUN: firrtl -i %s -o %s.flo -X flo -p c 2>&1 | tee %s.out | FileCheck %s
;CHECK: Done!
circuit GCD :
module GCD :
diff --git a/test/passes/jacktest/risc.fir b/test/passes/jacktest/risc.fir
index fda21820..3b58fb81 100644
--- a/test/passes/jacktest/risc.fir
+++ b/test/passes/jacktest/risc.fir
@@ -1,4 +1,4 @@
-; RUN: firrtl -i %s -o %s.flo -X flo -p c | tee %s.out | FileCheck %s
+; RUN: firrtl -i %s -o %s.flo -X flo -p c 2>&1 | tee %s.out | FileCheck %s
; CHECK: Done!
circuit Risc :
module Risc :
diff --git a/test/passes/lower-to-ground/accessor.fir b/test/passes/lower-to-ground/accessor.fir
index 19b6ac96..c2fbe17e 100644
--- a/test/passes/lower-to-ground/accessor.fir
+++ b/test/passes/lower-to-ground/accessor.fir
@@ -1,4 +1,4 @@
-; RUN: firrtl -i %s -o %s.flo -X flo -p cd | tee %s.out | FileCheck %s
+; RUN: firrtl -i %s -o %s.flo -X flo -p cd 2>&1 | tee %s.out | FileCheck %s
; CHECK: Lower To Ground
circuit top :
diff --git a/test/passes/lower-to-ground/bundle-vecs.fir b/test/passes/lower-to-ground/bundle-vecs.fir
index fb1c8320..1700c4d3 100644
--- a/test/passes/lower-to-ground/bundle-vecs.fir
+++ b/test/passes/lower-to-ground/bundle-vecs.fir
@@ -1,4 +1,4 @@
-; RUN: firrtl -i %s -o %s.flo -X flo -p c | tee %s.out | FileCheck %s
+; RUN: firrtl -i %s -o %s.flo -X flo -p c 2>&1 | tee %s.out | FileCheck %s
; CHECK: Lower To Ground
circuit top :
diff --git a/test/passes/lower-to-ground/bundle.fir b/test/passes/lower-to-ground/bundle.fir
index 83318e10..19cf7f85 100644
--- a/test/passes/lower-to-ground/bundle.fir
+++ b/test/passes/lower-to-ground/bundle.fir
@@ -1,4 +1,4 @@
-; RUN: firrtl -i %s -o %s.flo -X flo -p cd | tee %s.out | FileCheck %s
+; RUN: firrtl -i %s -o %s.flo -X flo -p cd 2>&1 | tee %s.out | FileCheck %s
circuit top :
module m :
diff --git a/test/passes/lower-to-ground/instance.fir b/test/passes/lower-to-ground/instance.fir
index cc8c07e6..c384749f 100644
--- a/test/passes/lower-to-ground/instance.fir
+++ b/test/passes/lower-to-ground/instance.fir
@@ -1,4 +1,4 @@
-; RUN: firrtl -i %s -o %s.flo -X flo -p cdg | tee %s.out | FileCheck %s
+; RUN: firrtl -i %s -o %s.flo -X flo -p cdg 2>&1 | tee %s.out | FileCheck %s
circuit top :
module source :
diff --git a/test/passes/lower-to-ground/nested-vec.fir b/test/passes/lower-to-ground/nested-vec.fir
index fa149ffc..ad5fc4c0 100644
--- a/test/passes/lower-to-ground/nested-vec.fir
+++ b/test/passes/lower-to-ground/nested-vec.fir
@@ -1,4 +1,4 @@
-; RUN: firrtl -i %s -o %s.flo -X flo -p c | tee %s.out | FileCheck %s
+; RUN: firrtl -i %s -o %s.flo -X flo -p c 2>&1 | tee %s.out | FileCheck %s
; CHECK: Lower To Ground
circuit top :
diff --git a/test/passes/lower-to-ground/register.fir b/test/passes/lower-to-ground/register.fir
index 63519cac..b896cff4 100644
--- a/test/passes/lower-to-ground/register.fir
+++ b/test/passes/lower-to-ground/register.fir
@@ -1,4 +1,4 @@
-; RUN: firrtl -i %s -o %s.flo -X flo -p c | tee %s.out | FileCheck %s
+; RUN: firrtl -i %s -o %s.flo -X flo -p c 2>&1 | tee %s.out | FileCheck %s
; CHECK: Lower To Ground
circuit top :
diff --git a/test/passes/lower-to-ground/test.fir b/test/passes/lower-to-ground/test.fir
index 7e123fc3..a048089b 100644
--- a/test/passes/lower-to-ground/test.fir
+++ b/test/passes/lower-to-ground/test.fir
@@ -1,4 +1,4 @@
-; RUN: firrtl -i %s -o %s.flo -X flo -p cdt | tee %s.out | FileCheck %s
+; RUN: firrtl -i %s -o %s.flo -X flo -p cdt 2>&1 | tee %s.out | FileCheck %s
; CHECK: Done!
circuit Top :
diff --git a/test/passes/resolve-genders/accessor.fir b/test/passes/resolve-genders/accessor.fir
index 8a86868b..356d494a 100644
--- a/test/passes/resolve-genders/accessor.fir
+++ b/test/passes/resolve-genders/accessor.fir
@@ -1,4 +1,4 @@
-; RUN: firrtl -i %s -o %s.flo -X flo -p cg | tee %s.out | FileCheck %s
+; RUN: firrtl -i %s -o %s.flo -X flo -p cg 2>&1 | tee %s.out | FileCheck %s
;CHECK: Resolve Genders
circuit top :
diff --git a/test/passes/resolve-genders/bigenders.fir b/test/passes/resolve-genders/bigenders.fir
index 9ca5d16d..c16949a6 100644
--- a/test/passes/resolve-genders/bigenders.fir
+++ b/test/passes/resolve-genders/bigenders.fir
@@ -1,4 +1,4 @@
-; RUN: firrtl -i %s -o %s.flo -X flo -p c | tee %s.out | FileCheck %s
+; RUN: firrtl -i %s -o %s.flo -X flo -p c 2>&1 | tee %s.out | FileCheck %s
;CHECK: Resolve Genders
circuit top :
diff --git a/test/passes/resolve-genders/bulk.fir b/test/passes/resolve-genders/bulk.fir
index 1f6b82a5..034c9b48 100644
--- a/test/passes/resolve-genders/bulk.fir
+++ b/test/passes/resolve-genders/bulk.fir
@@ -1,4 +1,4 @@
-; RUN: firrtl -i %s -o %s.flo -X flo -p c | tee %s.out | FileCheck %s
+; RUN: firrtl -i %s -o %s.flo -X flo -p c 2>&1 | tee %s.out | FileCheck %s
;CHECK: Resolve Genders
circuit top :
diff --git a/test/passes/resolve-genders/gcd.fir b/test/passes/resolve-genders/gcd.fir
index da15cb78..6b2ea41a 100644
--- a/test/passes/resolve-genders/gcd.fir
+++ b/test/passes/resolve-genders/gcd.fir
@@ -1,4 +1,4 @@
-; RUN: firrtl -i %s -o %s.flo -X flo -p cg | tee %s.out | FileCheck %s
+; RUN: firrtl -i %s -o %s.flo -X flo -p cg 2>&1 | tee %s.out | FileCheck %s
;CHECK: Resolve Genders
circuit top :
diff --git a/test/passes/resolve-genders/ports.fir b/test/passes/resolve-genders/ports.fir
index 993b7cf2..16c4e30b 100644
--- a/test/passes/resolve-genders/ports.fir
+++ b/test/passes/resolve-genders/ports.fir
@@ -1,4 +1,4 @@
-; RUN: firrtl -i %s -o %s.flo -X flo -p cg | tee %s.out | FileCheck %s
+; RUN: firrtl -i %s -o %s.flo -X flo -p cg 2>&1 | tee %s.out | FileCheck %s
;CHECK: Resolve Genders
circuit top :
diff --git a/test/passes/resolve-genders/subbundle.fir b/test/passes/resolve-genders/subbundle.fir
index 354545fb..1fa046c6 100644
--- a/test/passes/resolve-genders/subbundle.fir
+++ b/test/passes/resolve-genders/subbundle.fir
@@ -1,4 +1,4 @@
-; RUN: firrtl -i %s -o %s.flo -X flo -p c | tee %s.out | FileCheck %s
+; RUN: firrtl -i %s -o %s.flo -X flo -p c 2>&1 | tee %s.out | FileCheck %s
;CHECK: Lower To Ground
circuit top :
diff --git a/test/passes/resolve-kinds/gcd.fir b/test/passes/resolve-kinds/gcd.fir
index cd02a463..9a335bb9 100644
--- a/test/passes/resolve-kinds/gcd.fir
+++ b/test/passes/resolve-kinds/gcd.fir
@@ -1,4 +1,4 @@
-; RUN: firrtl -i %s -o %s.flo -X flo -p ck | tee %s.out | FileCheck %s
+; RUN: firrtl -i %s -o %s.flo -X flo -p ck 2>&1 | tee %s.out | FileCheck %s
; CHECK: Resolve Kinds
circuit top :
diff --git a/test/passes/split-exp/gcd.fir b/test/passes/split-exp/gcd.fir
index fc49335c..7680f81d 100644
--- a/test/passes/split-exp/gcd.fir
+++ b/test/passes/split-exp/gcd.fir
@@ -1,4 +1,4 @@
-; RUN: firrtl -i %s -o %s.flo -X flo -p c | tee %s.out | FileCheck %s
+; RUN: firrtl -i %s -o %s.flo -X flo -p c 2>&1 | tee %s.out | FileCheck %s
;CHECK: Split Expressions
circuit top :
@@ -14,7 +14,6 @@ circuit top :
input b : UInt<16>
input e : UInt<1>
output z : UInt<16>
- output v : UInt<1>
reg x : UInt,clk,reset
reg y : UInt,clk,reset
onreset x := UInt(0)
@@ -32,7 +31,6 @@ circuit top :
when e :
x := a
y := b
- v := eq(v, UInt(0))
z := x
module top :
input clk : Clock
diff --git a/test/passes/to-flo/gcd.fir b/test/passes/to-flo/gcd.fir
index 84998989..14c41737 100644
--- a/test/passes/to-flo/gcd.fir
+++ b/test/passes/to-flo/gcd.fir
@@ -1,4 +1,4 @@
-; RUN: firrtl -i %s -o %s.flo -X flo -p c | tee %s.out | FileCheck %s
+; RUN: firrtl -i %s -o %s.flo -X flo -p c 2>&1 | tee %s.out | FileCheck %s
;CHECK: Flo
circuit top :
@@ -14,7 +14,6 @@ circuit top :
input b : UInt<16>
input e : UInt<1>
output z : UInt<16>
- output v : UInt<1>
reg x : UInt,clk,reset
reg y : UInt,clk,reset
onreset x := UInt(0)
@@ -32,7 +31,6 @@ circuit top :
when e :
x := a
y := b
- v := eq(v, UInt(0))
z := x
module top :
input a : UInt<16>
diff --git a/test/passes/to-verilog/gcd.fir b/test/passes/to-verilog/gcd.fir
index 9b8732a6..6d1bc819 100644
--- a/test/passes/to-verilog/gcd.fir
+++ b/test/passes/to-verilog/gcd.fir
@@ -1,4 +1,4 @@
-; RUN: firrtl -i %s -o %s.v -X verilog -p cw tee %s.out | FileCheck %s
+; RUN: firrtl -i %s -o %s.v -X verilog -p cw 2>&1 | tee %s.out | FileCheck %s
;CHECK: Verilog
circuit top :
@@ -14,7 +14,6 @@ circuit top :
input b : UInt<16>
input e : UInt<1>
output z : UInt<16>
- output v : UInt<1>
reg x : UInt,clk,reset
reg y : UInt,clk,reset
onreset x := UInt(0)
@@ -32,7 +31,6 @@ circuit top :
when e :
x := a
y := b
- v := eq(v, UInt(0))
z := x
module top :
input a : UInt<16>
diff --git a/test/refchip/BTB.fir b/test/refchip/BTB.fir
new file mode 100644
index 00000000..d31f95ca
--- /dev/null
+++ b/test/refchip/BTB.fir
@@ -0,0 +1,4156 @@
+circuit BTB :
+ module BTB :
+ input clk : Clock
+ input reset : UInt<1>
+ input req : {valid : UInt<1>, bits : {addr : UInt<39>}}
+ output resp : {valid : UInt<1>, bits : {taken : UInt<1>, mask : UInt<1>, bridx : UInt<1>, target : UInt<39>, entry : UInt<6>, bht : {history : UInt<7>, value : UInt<2>}}}
+ input btb_update : {valid : UInt<1>, bits : {prediction : {valid : UInt<1>, bits : {taken : UInt<1>, mask : UInt<1>, bridx : UInt<1>, target : UInt<39>, entry : UInt<6>, bht : {history : UInt<7>, value : UInt<2>}}}, pc : UInt<39>, target : UInt<39>, taken : UInt<1>, isJump : UInt<1>, isReturn : UInt<1>, br_pc : UInt<39>}}
+ input bht_update : {valid : UInt<1>, bits : {prediction : {valid : UInt<1>, bits : {taken : UInt<1>, mask : UInt<1>, bridx : UInt<1>, target : UInt<39>, entry : UInt<6>, bht : {history : UInt<7>, value : UInt<2>}}}, pc : UInt<39>, taken : UInt<1>, mispredict : UInt<1>}}
+ input ras_update : {valid : UInt<1>, bits : {isCall : UInt<1>, isReturn : UInt<1>, returnAddr : UInt<39>, prediction : {valid : UInt<1>, bits : {taken : UInt<1>, mask : UInt<1>, bridx : UInt<1>, target : UInt<39>, entry : UInt<6>, bht : {history : UInt<7>, value : UInt<2>}}}}}
+ input invalidate : UInt<1>
+
+ reg idxValid : UInt<1>[62], clk, reset
+ cmem idxs : UInt<12>[62], clk
+ cmem idxPages : UInt<3>[62], clk
+ cmem tgts : UInt<12>[62], clk
+ cmem tgtPages : UInt<3>[62], clk
+ cmem pages : UInt<27>[6], clk
+ reg pageValid : UInt<6>, clk, reset
+ onreset pageValid := UInt<6>(0)
+ infer accessor T_180670 = idxPages[UInt<1>(0)]
+ node T_180671 = dshl(UInt<1>(1), T_180670)
+ node T_180672 = bits(T_180671, 5, 0)
+ infer accessor T_180673 = idxPages[UInt<1>(1)]
+ node T_180674 = dshl(UInt<1>(1), T_180673)
+ node T_180675 = bits(T_180674, 5, 0)
+ infer accessor T_180676 = idxPages[UInt<2>(2)]
+ node T_180677 = dshl(UInt<1>(1), T_180676)
+ node T_180678 = bits(T_180677, 5, 0)
+ infer accessor T_180679 = idxPages[UInt<2>(3)]
+ node T_180680 = dshl(UInt<1>(1), T_180679)
+ node T_180681 = bits(T_180680, 5, 0)
+ infer accessor T_180682 = idxPages[UInt<3>(4)]
+ node T_180683 = dshl(UInt<1>(1), T_180682)
+ node T_180684 = bits(T_180683, 5, 0)
+ infer accessor T_180685 = idxPages[UInt<3>(5)]
+ node T_180686 = dshl(UInt<1>(1), T_180685)
+ node T_180687 = bits(T_180686, 5, 0)
+ infer accessor T_180688 = idxPages[UInt<3>(6)]
+ node T_180689 = dshl(UInt<1>(1), T_180688)
+ node T_180690 = bits(T_180689, 5, 0)
+ infer accessor T_180691 = idxPages[UInt<3>(7)]
+ node T_180692 = dshl(UInt<1>(1), T_180691)
+ node T_180693 = bits(T_180692, 5, 0)
+ infer accessor T_180694 = idxPages[UInt<4>(8)]
+ node T_180695 = dshl(UInt<1>(1), T_180694)
+ node T_180696 = bits(T_180695, 5, 0)
+ infer accessor T_180697 = idxPages[UInt<4>(9)]
+ node T_180698 = dshl(UInt<1>(1), T_180697)
+ node T_180699 = bits(T_180698, 5, 0)
+ infer accessor T_180700 = idxPages[UInt<4>(10)]
+ node T_180701 = dshl(UInt<1>(1), T_180700)
+ node T_180702 = bits(T_180701, 5, 0)
+ infer accessor T_180703 = idxPages[UInt<4>(11)]
+ node T_180704 = dshl(UInt<1>(1), T_180703)
+ node T_180705 = bits(T_180704, 5, 0)
+ infer accessor T_180706 = idxPages[UInt<4>(12)]
+ node T_180707 = dshl(UInt<1>(1), T_180706)
+ node T_180708 = bits(T_180707, 5, 0)
+ infer accessor T_180709 = idxPages[UInt<4>(13)]
+ node T_180710 = dshl(UInt<1>(1), T_180709)
+ node T_180711 = bits(T_180710, 5, 0)
+ infer accessor T_180712 = idxPages[UInt<4>(14)]
+ node T_180713 = dshl(UInt<1>(1), T_180712)
+ node T_180714 = bits(T_180713, 5, 0)
+ infer accessor T_180715 = idxPages[UInt<4>(15)]
+ node T_180716 = dshl(UInt<1>(1), T_180715)
+ node T_180717 = bits(T_180716, 5, 0)
+ infer accessor T_180718 = idxPages[UInt<5>(16)]
+ node T_180719 = dshl(UInt<1>(1), T_180718)
+ node T_180720 = bits(T_180719, 5, 0)
+ infer accessor T_180721 = idxPages[UInt<5>(17)]
+ node T_180722 = dshl(UInt<1>(1), T_180721)
+ node T_180723 = bits(T_180722, 5, 0)
+ infer accessor T_180724 = idxPages[UInt<5>(18)]
+ node T_180725 = dshl(UInt<1>(1), T_180724)
+ node T_180726 = bits(T_180725, 5, 0)
+ infer accessor T_180727 = idxPages[UInt<5>(19)]
+ node T_180728 = dshl(UInt<1>(1), T_180727)
+ node T_180729 = bits(T_180728, 5, 0)
+ infer accessor T_180730 = idxPages[UInt<5>(20)]
+ node T_180731 = dshl(UInt<1>(1), T_180730)
+ node T_180732 = bits(T_180731, 5, 0)
+ infer accessor T_180733 = idxPages[UInt<5>(21)]
+ node T_180734 = dshl(UInt<1>(1), T_180733)
+ node T_180735 = bits(T_180734, 5, 0)
+ infer accessor T_180736 = idxPages[UInt<5>(22)]
+ node T_180737 = dshl(UInt<1>(1), T_180736)
+ node T_180738 = bits(T_180737, 5, 0)
+ infer accessor T_180739 = idxPages[UInt<5>(23)]
+ node T_180740 = dshl(UInt<1>(1), T_180739)
+ node T_180741 = bits(T_180740, 5, 0)
+ infer accessor T_180742 = idxPages[UInt<5>(24)]
+ node T_180743 = dshl(UInt<1>(1), T_180742)
+ node T_180744 = bits(T_180743, 5, 0)
+ infer accessor T_180745 = idxPages[UInt<5>(25)]
+ node T_180746 = dshl(UInt<1>(1), T_180745)
+ node T_180747 = bits(T_180746, 5, 0)
+ infer accessor T_180748 = idxPages[UInt<5>(26)]
+ node T_180749 = dshl(UInt<1>(1), T_180748)
+ node T_180750 = bits(T_180749, 5, 0)
+ infer accessor T_180751 = idxPages[UInt<5>(27)]
+ node T_180752 = dshl(UInt<1>(1), T_180751)
+ node T_180753 = bits(T_180752, 5, 0)
+ infer accessor T_180754 = idxPages[UInt<5>(28)]
+ node T_180755 = dshl(UInt<1>(1), T_180754)
+ node T_180756 = bits(T_180755, 5, 0)
+ infer accessor T_180757 = idxPages[UInt<5>(29)]
+ node T_180758 = dshl(UInt<1>(1), T_180757)
+ node T_180759 = bits(T_180758, 5, 0)
+ infer accessor T_180760 = idxPages[UInt<5>(30)]
+ node T_180761 = dshl(UInt<1>(1), T_180760)
+ node T_180762 = bits(T_180761, 5, 0)
+ infer accessor T_180763 = idxPages[UInt<5>(31)]
+ node T_180764 = dshl(UInt<1>(1), T_180763)
+ node T_180765 = bits(T_180764, 5, 0)
+ infer accessor T_180766 = idxPages[UInt<6>(32)]
+ node T_180767 = dshl(UInt<1>(1), T_180766)
+ node T_180768 = bits(T_180767, 5, 0)
+ infer accessor T_180769 = idxPages[UInt<6>(33)]
+ node T_180770 = dshl(UInt<1>(1), T_180769)
+ node T_180771 = bits(T_180770, 5, 0)
+ infer accessor T_180772 = idxPages[UInt<6>(34)]
+ node T_180773 = dshl(UInt<1>(1), T_180772)
+ node T_180774 = bits(T_180773, 5, 0)
+ infer accessor T_180775 = idxPages[UInt<6>(35)]
+ node T_180776 = dshl(UInt<1>(1), T_180775)
+ node T_180777 = bits(T_180776, 5, 0)
+ infer accessor T_180778 = idxPages[UInt<6>(36)]
+ node T_180779 = dshl(UInt<1>(1), T_180778)
+ node T_180780 = bits(T_180779, 5, 0)
+ infer accessor T_180781 = idxPages[UInt<6>(37)]
+ node T_180782 = dshl(UInt<1>(1), T_180781)
+ node T_180783 = bits(T_180782, 5, 0)
+ infer accessor T_180784 = idxPages[UInt<6>(38)]
+ node T_180785 = dshl(UInt<1>(1), T_180784)
+ node T_180786 = bits(T_180785, 5, 0)
+ infer accessor T_180787 = idxPages[UInt<6>(39)]
+ node T_180788 = dshl(UInt<1>(1), T_180787)
+ node T_180789 = bits(T_180788, 5, 0)
+ infer accessor T_180790 = idxPages[UInt<6>(40)]
+ node T_180791 = dshl(UInt<1>(1), T_180790)
+ node T_180792 = bits(T_180791, 5, 0)
+ infer accessor T_180793 = idxPages[UInt<6>(41)]
+ node T_180794 = dshl(UInt<1>(1), T_180793)
+ node T_180795 = bits(T_180794, 5, 0)
+ infer accessor T_180796 = idxPages[UInt<6>(42)]
+ node T_180797 = dshl(UInt<1>(1), T_180796)
+ node T_180798 = bits(T_180797, 5, 0)
+ infer accessor T_180799 = idxPages[UInt<6>(43)]
+ node T_180800 = dshl(UInt<1>(1), T_180799)
+ node T_180801 = bits(T_180800, 5, 0)
+ infer accessor T_180802 = idxPages[UInt<6>(44)]
+ node T_180803 = dshl(UInt<1>(1), T_180802)
+ node T_180804 = bits(T_180803, 5, 0)
+ infer accessor T_180805 = idxPages[UInt<6>(45)]
+ node T_180806 = dshl(UInt<1>(1), T_180805)
+ node T_180807 = bits(T_180806, 5, 0)
+ infer accessor T_180808 = idxPages[UInt<6>(46)]
+ node T_180809 = dshl(UInt<1>(1), T_180808)
+ node T_180810 = bits(T_180809, 5, 0)
+ infer accessor T_180811 = idxPages[UInt<6>(47)]
+ node T_180812 = dshl(UInt<1>(1), T_180811)
+ node T_180813 = bits(T_180812, 5, 0)
+ infer accessor T_180814 = idxPages[UInt<6>(48)]
+ node T_180815 = dshl(UInt<1>(1), T_180814)
+ node T_180816 = bits(T_180815, 5, 0)
+ infer accessor T_180817 = idxPages[UInt<6>(49)]
+ node T_180818 = dshl(UInt<1>(1), T_180817)
+ node T_180819 = bits(T_180818, 5, 0)
+ infer accessor T_180820 = idxPages[UInt<6>(50)]
+ node T_180821 = dshl(UInt<1>(1), T_180820)
+ node T_180822 = bits(T_180821, 5, 0)
+ infer accessor T_180823 = idxPages[UInt<6>(51)]
+ node T_180824 = dshl(UInt<1>(1), T_180823)
+ node T_180825 = bits(T_180824, 5, 0)
+ infer accessor T_180826 = idxPages[UInt<6>(52)]
+ node T_180827 = dshl(UInt<1>(1), T_180826)
+ node T_180828 = bits(T_180827, 5, 0)
+ infer accessor T_180829 = idxPages[UInt<6>(53)]
+ node T_180830 = dshl(UInt<1>(1), T_180829)
+ node T_180831 = bits(T_180830, 5, 0)
+ infer accessor T_180832 = idxPages[UInt<6>(54)]
+ node T_180833 = dshl(UInt<1>(1), T_180832)
+ node T_180834 = bits(T_180833, 5, 0)
+ infer accessor T_180835 = idxPages[UInt<6>(55)]
+ node T_180836 = dshl(UInt<1>(1), T_180835)
+ node T_180837 = bits(T_180836, 5, 0)
+ infer accessor T_180838 = idxPages[UInt<6>(56)]
+ node T_180839 = dshl(UInt<1>(1), T_180838)
+ node T_180840 = bits(T_180839, 5, 0)
+ infer accessor T_180841 = idxPages[UInt<6>(57)]
+ node T_180842 = dshl(UInt<1>(1), T_180841)
+ node T_180843 = bits(T_180842, 5, 0)
+ infer accessor T_180844 = idxPages[UInt<6>(58)]
+ node T_180845 = dshl(UInt<1>(1), T_180844)
+ node T_180846 = bits(T_180845, 5, 0)
+ infer accessor T_180847 = idxPages[UInt<6>(59)]
+ node T_180848 = dshl(UInt<1>(1), T_180847)
+ node T_180849 = bits(T_180848, 5, 0)
+ infer accessor T_180850 = idxPages[UInt<6>(60)]
+ node T_180851 = dshl(UInt<1>(1), T_180850)
+ node T_180852 = bits(T_180851, 5, 0)
+ infer accessor T_180853 = idxPages[UInt<6>(61)]
+ node T_180854 = dshl(UInt<1>(1), T_180853)
+ node T_180855 = bits(T_180854, 5, 0)
+ infer accessor T_180856 = tgtPages[UInt<1>(0)]
+ node T_180857 = dshl(UInt<1>(1), T_180856)
+ node T_180858 = bits(T_180857, 5, 0)
+ infer accessor T_180859 = tgtPages[UInt<1>(1)]
+ node T_180860 = dshl(UInt<1>(1), T_180859)
+ node T_180861 = bits(T_180860, 5, 0)
+ infer accessor T_180862 = tgtPages[UInt<2>(2)]
+ node T_180863 = dshl(UInt<1>(1), T_180862)
+ node T_180864 = bits(T_180863, 5, 0)
+ infer accessor T_180865 = tgtPages[UInt<2>(3)]
+ node T_180866 = dshl(UInt<1>(1), T_180865)
+ node T_180867 = bits(T_180866, 5, 0)
+ infer accessor T_180868 = tgtPages[UInt<3>(4)]
+ node T_180869 = dshl(UInt<1>(1), T_180868)
+ node T_180870 = bits(T_180869, 5, 0)
+ infer accessor T_180871 = tgtPages[UInt<3>(5)]
+ node T_180872 = dshl(UInt<1>(1), T_180871)
+ node T_180873 = bits(T_180872, 5, 0)
+ infer accessor T_180874 = tgtPages[UInt<3>(6)]
+ node T_180875 = dshl(UInt<1>(1), T_180874)
+ node T_180876 = bits(T_180875, 5, 0)
+ infer accessor T_180877 = tgtPages[UInt<3>(7)]
+ node T_180878 = dshl(UInt<1>(1), T_180877)
+ node T_180879 = bits(T_180878, 5, 0)
+ infer accessor T_180880 = tgtPages[UInt<4>(8)]
+ node T_180881 = dshl(UInt<1>(1), T_180880)
+ node T_180882 = bits(T_180881, 5, 0)
+ infer accessor T_180883 = tgtPages[UInt<4>(9)]
+ node T_180884 = dshl(UInt<1>(1), T_180883)
+ node T_180885 = bits(T_180884, 5, 0)
+ infer accessor T_180886 = tgtPages[UInt<4>(10)]
+ node T_180887 = dshl(UInt<1>(1), T_180886)
+ node T_180888 = bits(T_180887, 5, 0)
+ infer accessor T_180889 = tgtPages[UInt<4>(11)]
+ node T_180890 = dshl(UInt<1>(1), T_180889)
+ node T_180891 = bits(T_180890, 5, 0)
+ infer accessor T_180892 = tgtPages[UInt<4>(12)]
+ node T_180893 = dshl(UInt<1>(1), T_180892)
+ node T_180894 = bits(T_180893, 5, 0)
+ infer accessor T_180895 = tgtPages[UInt<4>(13)]
+ node T_180896 = dshl(UInt<1>(1), T_180895)
+ node T_180897 = bits(T_180896, 5, 0)
+ infer accessor T_180898 = tgtPages[UInt<4>(14)]
+ node T_180899 = dshl(UInt<1>(1), T_180898)
+ node T_180900 = bits(T_180899, 5, 0)
+ infer accessor T_180901 = tgtPages[UInt<4>(15)]
+ node T_180902 = dshl(UInt<1>(1), T_180901)
+ node T_180903 = bits(T_180902, 5, 0)
+ infer accessor T_180904 = tgtPages[UInt<5>(16)]
+ node T_180905 = dshl(UInt<1>(1), T_180904)
+ node T_180906 = bits(T_180905, 5, 0)
+ infer accessor T_180907 = tgtPages[UInt<5>(17)]
+ node T_180908 = dshl(UInt<1>(1), T_180907)
+ node T_180909 = bits(T_180908, 5, 0)
+ infer accessor T_180910 = tgtPages[UInt<5>(18)]
+ node T_180911 = dshl(UInt<1>(1), T_180910)
+ node T_180912 = bits(T_180911, 5, 0)
+ infer accessor T_180913 = tgtPages[UInt<5>(19)]
+ node T_180914 = dshl(UInt<1>(1), T_180913)
+ node T_180915 = bits(T_180914, 5, 0)
+ infer accessor T_180916 = tgtPages[UInt<5>(20)]
+ node T_180917 = dshl(UInt<1>(1), T_180916)
+ node T_180918 = bits(T_180917, 5, 0)
+ infer accessor T_180919 = tgtPages[UInt<5>(21)]
+ node T_180920 = dshl(UInt<1>(1), T_180919)
+ node T_180921 = bits(T_180920, 5, 0)
+ infer accessor T_180922 = tgtPages[UInt<5>(22)]
+ node T_180923 = dshl(UInt<1>(1), T_180922)
+ node T_180924 = bits(T_180923, 5, 0)
+ infer accessor T_180925 = tgtPages[UInt<5>(23)]
+ node T_180926 = dshl(UInt<1>(1), T_180925)
+ node T_180927 = bits(T_180926, 5, 0)
+ infer accessor T_180928 = tgtPages[UInt<5>(24)]
+ node T_180929 = dshl(UInt<1>(1), T_180928)
+ node T_180930 = bits(T_180929, 5, 0)
+ infer accessor T_180931 = tgtPages[UInt<5>(25)]
+ node T_180932 = dshl(UInt<1>(1), T_180931)
+ node T_180933 = bits(T_180932, 5, 0)
+ infer accessor T_180934 = tgtPages[UInt<5>(26)]
+ node T_180935 = dshl(UInt<1>(1), T_180934)
+ node T_180936 = bits(T_180935, 5, 0)
+ infer accessor T_180937 = tgtPages[UInt<5>(27)]
+ node T_180938 = dshl(UInt<1>(1), T_180937)
+ node T_180939 = bits(T_180938, 5, 0)
+ infer accessor T_180940 = tgtPages[UInt<5>(28)]
+ node T_180941 = dshl(UInt<1>(1), T_180940)
+ node T_180942 = bits(T_180941, 5, 0)
+ infer accessor T_180943 = tgtPages[UInt<5>(29)]
+ node T_180944 = dshl(UInt<1>(1), T_180943)
+ node T_180945 = bits(T_180944, 5, 0)
+ infer accessor T_180946 = tgtPages[UInt<5>(30)]
+ node T_180947 = dshl(UInt<1>(1), T_180946)
+ node T_180948 = bits(T_180947, 5, 0)
+ infer accessor T_180949 = tgtPages[UInt<5>(31)]
+ node T_180950 = dshl(UInt<1>(1), T_180949)
+ node T_180951 = bits(T_180950, 5, 0)
+ infer accessor T_180952 = tgtPages[UInt<6>(32)]
+ node T_180953 = dshl(UInt<1>(1), T_180952)
+ node T_180954 = bits(T_180953, 5, 0)
+ infer accessor T_180955 = tgtPages[UInt<6>(33)]
+ node T_180956 = dshl(UInt<1>(1), T_180955)
+ node T_180957 = bits(T_180956, 5, 0)
+ infer accessor T_180958 = tgtPages[UInt<6>(34)]
+ node T_180959 = dshl(UInt<1>(1), T_180958)
+ node T_180960 = bits(T_180959, 5, 0)
+ infer accessor T_180961 = tgtPages[UInt<6>(35)]
+ node T_180962 = dshl(UInt<1>(1), T_180961)
+ node T_180963 = bits(T_180962, 5, 0)
+ infer accessor T_180964 = tgtPages[UInt<6>(36)]
+ node T_180965 = dshl(UInt<1>(1), T_180964)
+ node T_180966 = bits(T_180965, 5, 0)
+ infer accessor T_180967 = tgtPages[UInt<6>(37)]
+ node T_180968 = dshl(UInt<1>(1), T_180967)
+ node T_180969 = bits(T_180968, 5, 0)
+ infer accessor T_180970 = tgtPages[UInt<6>(38)]
+ node T_180971 = dshl(UInt<1>(1), T_180970)
+ node T_180972 = bits(T_180971, 5, 0)
+ infer accessor T_180973 = tgtPages[UInt<6>(39)]
+ node T_180974 = dshl(UInt<1>(1), T_180973)
+ node T_180975 = bits(T_180974, 5, 0)
+ infer accessor T_180976 = tgtPages[UInt<6>(40)]
+ node T_180977 = dshl(UInt<1>(1), T_180976)
+ node T_180978 = bits(T_180977, 5, 0)
+ infer accessor T_180979 = tgtPages[UInt<6>(41)]
+ node T_180980 = dshl(UInt<1>(1), T_180979)
+ node T_180981 = bits(T_180980, 5, 0)
+ infer accessor T_180982 = tgtPages[UInt<6>(42)]
+ node T_180983 = dshl(UInt<1>(1), T_180982)
+ node T_180984 = bits(T_180983, 5, 0)
+ infer accessor T_180985 = tgtPages[UInt<6>(43)]
+ node T_180986 = dshl(UInt<1>(1), T_180985)
+ node T_180987 = bits(T_180986, 5, 0)
+ infer accessor T_180988 = tgtPages[UInt<6>(44)]
+ node T_180989 = dshl(UInt<1>(1), T_180988)
+ node T_180990 = bits(T_180989, 5, 0)
+ infer accessor T_180991 = tgtPages[UInt<6>(45)]
+ node T_180992 = dshl(UInt<1>(1), T_180991)
+ node T_180993 = bits(T_180992, 5, 0)
+ infer accessor T_180994 = tgtPages[UInt<6>(46)]
+ node T_180995 = dshl(UInt<1>(1), T_180994)
+ node T_180996 = bits(T_180995, 5, 0)
+ infer accessor T_180997 = tgtPages[UInt<6>(47)]
+ node T_180998 = dshl(UInt<1>(1), T_180997)
+ node T_180999 = bits(T_180998, 5, 0)
+ infer accessor T_181000 = tgtPages[UInt<6>(48)]
+ node T_181001 = dshl(UInt<1>(1), T_181000)
+ node T_181002 = bits(T_181001, 5, 0)
+ infer accessor T_181003 = tgtPages[UInt<6>(49)]
+ node T_181004 = dshl(UInt<1>(1), T_181003)
+ node T_181005 = bits(T_181004, 5, 0)
+ infer accessor T_181006 = tgtPages[UInt<6>(50)]
+ node T_181007 = dshl(UInt<1>(1), T_181006)
+ node T_181008 = bits(T_181007, 5, 0)
+ infer accessor T_181009 = tgtPages[UInt<6>(51)]
+ node T_181010 = dshl(UInt<1>(1), T_181009)
+ node T_181011 = bits(T_181010, 5, 0)
+ infer accessor T_181012 = tgtPages[UInt<6>(52)]
+ node T_181013 = dshl(UInt<1>(1), T_181012)
+ node T_181014 = bits(T_181013, 5, 0)
+ infer accessor T_181015 = tgtPages[UInt<6>(53)]
+ node T_181016 = dshl(UInt<1>(1), T_181015)
+ node T_181017 = bits(T_181016, 5, 0)
+ infer accessor T_181018 = tgtPages[UInt<6>(54)]
+ node T_181019 = dshl(UInt<1>(1), T_181018)
+ node T_181020 = bits(T_181019, 5, 0)
+ infer accessor T_181021 = tgtPages[UInt<6>(55)]
+ node T_181022 = dshl(UInt<1>(1), T_181021)
+ node T_181023 = bits(T_181022, 5, 0)
+ infer accessor T_181024 = tgtPages[UInt<6>(56)]
+ node T_181025 = dshl(UInt<1>(1), T_181024)
+ node T_181026 = bits(T_181025, 5, 0)
+ infer accessor T_181027 = tgtPages[UInt<6>(57)]
+ node T_181028 = dshl(UInt<1>(1), T_181027)
+ node T_181029 = bits(T_181028, 5, 0)
+ infer accessor T_181030 = tgtPages[UInt<6>(58)]
+ node T_181031 = dshl(UInt<1>(1), T_181030)
+ node T_181032 = bits(T_181031, 5, 0)
+ infer accessor T_181033 = tgtPages[UInt<6>(59)]
+ node T_181034 = dshl(UInt<1>(1), T_181033)
+ node T_181035 = bits(T_181034, 5, 0)
+ infer accessor T_181036 = tgtPages[UInt<6>(60)]
+ node T_181037 = dshl(UInt<1>(1), T_181036)
+ node T_181038 = bits(T_181037, 5, 0)
+ infer accessor T_181039 = tgtPages[UInt<6>(61)]
+ node T_181040 = dshl(UInt<1>(1), T_181039)
+ node T_181041 = bits(T_181040, 5, 0)
+ reg useRAS : UInt<1>[62], clk, reset
+ reg isJump : UInt<1>[62], clk, reset
+ cmem brIdx : UInt<1>[62], clk
+ reg T_181042 : UInt<1>, clk, reset
+ onreset T_181042 := UInt<1>(0)
+ T_181042 := btb_update.valid
+ reg T_181043 : {prediction : {valid : UInt<1>, bits : {taken : UInt<1>, mask : UInt<1>, bridx : UInt<1>, target : UInt<39>, entry : UInt<6>, bht : {history : UInt<7>, value : UInt<2>}}}, pc : UInt<39>, target : UInt<39>, taken : UInt<1>, isJump : UInt<1>, isReturn : UInt<1>, br_pc : UInt<39>}, clk, reset
+ when btb_update.valid : T_181043 := btb_update.bits
+ r_btb_update.valid <> T_181042
+ r_btb_update.bits <> T_181043
+ node T_181044 = shr(req.bits.addr, 12)
+ infer accessor T_181045 = pages[UInt<1>(0)]
+ node T_181046 = eq(T_181045, T_181044)
+ infer accessor T_181047 = pages[UInt<1>(1)]
+ node T_181048 = eq(T_181047, T_181044)
+ infer accessor T_181049 = pages[UInt<2>(2)]
+ node T_181050 = eq(T_181049, T_181044)
+ infer accessor T_181051 = pages[UInt<2>(3)]
+ node T_181052 = eq(T_181051, T_181044)
+ infer accessor T_181053 = pages[UInt<3>(4)]
+ node T_181054 = eq(T_181053, T_181044)
+ infer accessor T_181055 = pages[UInt<3>(5)]
+ node T_181056 = eq(T_181055, T_181044)
+ wire T_181057 : UInt<1>[6]
+ T_181057[0] := T_181046
+ T_181057[1] := T_181048
+ T_181057[2] := T_181050
+ T_181057[3] := T_181052
+ T_181057[4] := T_181054
+ T_181057[5] := T_181056
+ node T_181058 = cat(T_181057[4], T_181057[3])
+ node T_181059 = cat(T_181057[5], T_181058)
+ node T_181060 = cat(T_181057[1], T_181057[0])
+ node T_181061 = cat(T_181057[2], T_181060)
+ node T_181062 = cat(T_181059, T_181061)
+ node pageHit = and(T_181062, pageValid)
+ node T_181063 = bits(req.bits.addr, 11, 0)
+ infer accessor T_181064 = idxs[UInt<1>(0)]
+ node T_181065 = eq(T_181064, T_181063)
+ infer accessor T_181066 = idxs[UInt<1>(1)]
+ node T_181067 = eq(T_181066, T_181063)
+ infer accessor T_181068 = idxs[UInt<2>(2)]
+ node T_181069 = eq(T_181068, T_181063)
+ infer accessor T_181070 = idxs[UInt<2>(3)]
+ node T_181071 = eq(T_181070, T_181063)
+ infer accessor T_181072 = idxs[UInt<3>(4)]
+ node T_181073 = eq(T_181072, T_181063)
+ infer accessor T_181074 = idxs[UInt<3>(5)]
+ node T_181075 = eq(T_181074, T_181063)
+ infer accessor T_181076 = idxs[UInt<3>(6)]
+ node T_181077 = eq(T_181076, T_181063)
+ infer accessor T_181078 = idxs[UInt<3>(7)]
+ node T_181079 = eq(T_181078, T_181063)
+ infer accessor T_181080 = idxs[UInt<4>(8)]
+ node T_181081 = eq(T_181080, T_181063)
+ infer accessor T_181082 = idxs[UInt<4>(9)]
+ node T_181083 = eq(T_181082, T_181063)
+ infer accessor T_181084 = idxs[UInt<4>(10)]
+ node T_181085 = eq(T_181084, T_181063)
+ infer accessor T_181086 = idxs[UInt<4>(11)]
+ node T_181087 = eq(T_181086, T_181063)
+ infer accessor T_181088 = idxs[UInt<4>(12)]
+ node T_181089 = eq(T_181088, T_181063)
+ infer accessor T_181090 = idxs[UInt<4>(13)]
+ node T_181091 = eq(T_181090, T_181063)
+ infer accessor T_181092 = idxs[UInt<4>(14)]
+ node T_181093 = eq(T_181092, T_181063)
+ infer accessor T_181094 = idxs[UInt<4>(15)]
+ node T_181095 = eq(T_181094, T_181063)
+ infer accessor T_181096 = idxs[UInt<5>(16)]
+ node T_181097 = eq(T_181096, T_181063)
+ infer accessor T_181098 = idxs[UInt<5>(17)]
+ node T_181099 = eq(T_181098, T_181063)
+ infer accessor T_181100 = idxs[UInt<5>(18)]
+ node T_181101 = eq(T_181100, T_181063)
+ infer accessor T_181102 = idxs[UInt<5>(19)]
+ node T_181103 = eq(T_181102, T_181063)
+ infer accessor T_181104 = idxs[UInt<5>(20)]
+ node T_181105 = eq(T_181104, T_181063)
+ infer accessor T_181106 = idxs[UInt<5>(21)]
+ node T_181107 = eq(T_181106, T_181063)
+ infer accessor T_181108 = idxs[UInt<5>(22)]
+ node T_181109 = eq(T_181108, T_181063)
+ infer accessor T_181110 = idxs[UInt<5>(23)]
+ node T_181111 = eq(T_181110, T_181063)
+ infer accessor T_181112 = idxs[UInt<5>(24)]
+ node T_181113 = eq(T_181112, T_181063)
+ infer accessor T_181114 = idxs[UInt<5>(25)]
+ node T_181115 = eq(T_181114, T_181063)
+ infer accessor T_181116 = idxs[UInt<5>(26)]
+ node T_181117 = eq(T_181116, T_181063)
+ infer accessor T_181118 = idxs[UInt<5>(27)]
+ node T_181119 = eq(T_181118, T_181063)
+ infer accessor T_181120 = idxs[UInt<5>(28)]
+ node T_181121 = eq(T_181120, T_181063)
+ infer accessor T_181122 = idxs[UInt<5>(29)]
+ node T_181123 = eq(T_181122, T_181063)
+ infer accessor T_181124 = idxs[UInt<5>(30)]
+ node T_181125 = eq(T_181124, T_181063)
+ infer accessor T_181126 = idxs[UInt<5>(31)]
+ node T_181127 = eq(T_181126, T_181063)
+ infer accessor T_181128 = idxs[UInt<6>(32)]
+ node T_181129 = eq(T_181128, T_181063)
+ infer accessor T_181130 = idxs[UInt<6>(33)]
+ node T_181131 = eq(T_181130, T_181063)
+ infer accessor T_181132 = idxs[UInt<6>(34)]
+ node T_181133 = eq(T_181132, T_181063)
+ infer accessor T_181134 = idxs[UInt<6>(35)]
+ node T_181135 = eq(T_181134, T_181063)
+ infer accessor T_181136 = idxs[UInt<6>(36)]
+ node T_181137 = eq(T_181136, T_181063)
+ infer accessor T_181138 = idxs[UInt<6>(37)]
+ node T_181139 = eq(T_181138, T_181063)
+ infer accessor T_181140 = idxs[UInt<6>(38)]
+ node T_181141 = eq(T_181140, T_181063)
+ infer accessor T_181142 = idxs[UInt<6>(39)]
+ node T_181143 = eq(T_181142, T_181063)
+ infer accessor T_181144 = idxs[UInt<6>(40)]
+ node T_181145 = eq(T_181144, T_181063)
+ infer accessor T_181146 = idxs[UInt<6>(41)]
+ node T_181147 = eq(T_181146, T_181063)
+ infer accessor T_181148 = idxs[UInt<6>(42)]
+ node T_181149 = eq(T_181148, T_181063)
+ infer accessor T_181150 = idxs[UInt<6>(43)]
+ node T_181151 = eq(T_181150, T_181063)
+ infer accessor T_181152 = idxs[UInt<6>(44)]
+ node T_181153 = eq(T_181152, T_181063)
+ infer accessor T_181154 = idxs[UInt<6>(45)]
+ node T_181155 = eq(T_181154, T_181063)
+ infer accessor T_181156 = idxs[UInt<6>(46)]
+ node T_181157 = eq(T_181156, T_181063)
+ infer accessor T_181158 = idxs[UInt<6>(47)]
+ node T_181159 = eq(T_181158, T_181063)
+ infer accessor T_181160 = idxs[UInt<6>(48)]
+ node T_181161 = eq(T_181160, T_181063)
+ infer accessor T_181162 = idxs[UInt<6>(49)]
+ node T_181163 = eq(T_181162, T_181063)
+ infer accessor T_181164 = idxs[UInt<6>(50)]
+ node T_181165 = eq(T_181164, T_181063)
+ infer accessor T_181166 = idxs[UInt<6>(51)]
+ node T_181167 = eq(T_181166, T_181063)
+ infer accessor T_181168 = idxs[UInt<6>(52)]
+ node T_181169 = eq(T_181168, T_181063)
+ infer accessor T_181170 = idxs[UInt<6>(53)]
+ node T_181171 = eq(T_181170, T_181063)
+ infer accessor T_181172 = idxs[UInt<6>(54)]
+ node T_181173 = eq(T_181172, T_181063)
+ infer accessor T_181174 = idxs[UInt<6>(55)]
+ node T_181175 = eq(T_181174, T_181063)
+ infer accessor T_181176 = idxs[UInt<6>(56)]
+ node T_181177 = eq(T_181176, T_181063)
+ infer accessor T_181178 = idxs[UInt<6>(57)]
+ node T_181179 = eq(T_181178, T_181063)
+ infer accessor T_181180 = idxs[UInt<6>(58)]
+ node T_181181 = eq(T_181180, T_181063)
+ infer accessor T_181182 = idxs[UInt<6>(59)]
+ node T_181183 = eq(T_181182, T_181063)
+ infer accessor T_181184 = idxs[UInt<6>(60)]
+ node T_181185 = eq(T_181184, T_181063)
+ infer accessor T_181186 = idxs[UInt<6>(61)]
+ node T_181187 = eq(T_181186, T_181063)
+ wire T_181188 : UInt<1>[62]
+ T_181188[0] := T_181065
+ T_181188[1] := T_181067
+ T_181188[2] := T_181069
+ T_181188[3] := T_181071
+ T_181188[4] := T_181073
+ T_181188[5] := T_181075
+ T_181188[6] := T_181077
+ T_181188[7] := T_181079
+ T_181188[8] := T_181081
+ T_181188[9] := T_181083
+ T_181188[10] := T_181085
+ T_181188[11] := T_181087
+ T_181188[12] := T_181089
+ T_181188[13] := T_181091
+ T_181188[14] := T_181093
+ T_181188[15] := T_181095
+ T_181188[16] := T_181097
+ T_181188[17] := T_181099
+ T_181188[18] := T_181101
+ T_181188[19] := T_181103
+ T_181188[20] := T_181105
+ T_181188[21] := T_181107
+ T_181188[22] := T_181109
+ T_181188[23] := T_181111
+ T_181188[24] := T_181113
+ T_181188[25] := T_181115
+ T_181188[26] := T_181117
+ T_181188[27] := T_181119
+ T_181188[28] := T_181121
+ T_181188[29] := T_181123
+ T_181188[30] := T_181125
+ T_181188[31] := T_181127
+ T_181188[32] := T_181129
+ T_181188[33] := T_181131
+ T_181188[34] := T_181133
+ T_181188[35] := T_181135
+ T_181188[36] := T_181137
+ T_181188[37] := T_181139
+ T_181188[38] := T_181141
+ T_181188[39] := T_181143
+ T_181188[40] := T_181145
+ T_181188[41] := T_181147
+ T_181188[42] := T_181149
+ T_181188[43] := T_181151
+ T_181188[44] := T_181153
+ T_181188[45] := T_181155
+ T_181188[46] := T_181157
+ T_181188[47] := T_181159
+ T_181188[48] := T_181161
+ T_181188[49] := T_181163
+ T_181188[50] := T_181165
+ T_181188[51] := T_181167
+ T_181188[52] := T_181169
+ T_181188[53] := T_181171
+ T_181188[54] := T_181173
+ T_181188[55] := T_181175
+ T_181188[56] := T_181177
+ T_181188[57] := T_181179
+ T_181188[58] := T_181181
+ T_181188[59] := T_181183
+ T_181188[60] := T_181185
+ T_181188[61] := T_181187
+ node T_181189 = cat(T_181188[60], T_181188[59])
+ node T_181190 = cat(T_181188[61], T_181189)
+ node T_181191 = cat(T_181188[58], T_181188[57])
+ node T_181192 = cat(T_181188[56], T_181188[55])
+ node T_181193 = cat(T_181191, T_181192)
+ node T_181194 = cat(T_181190, T_181193)
+ node T_181195 = cat(T_181188[54], T_181188[53])
+ node T_181196 = cat(T_181188[52], T_181188[51])
+ node T_181197 = cat(T_181195, T_181196)
+ node T_181198 = cat(T_181188[50], T_181188[49])
+ node T_181199 = cat(T_181188[48], T_181188[47])
+ node T_181200 = cat(T_181198, T_181199)
+ node T_181201 = cat(T_181197, T_181200)
+ node T_181202 = cat(T_181194, T_181201)
+ node T_181203 = cat(T_181188[46], T_181188[45])
+ node T_181204 = cat(T_181188[44], T_181188[43])
+ node T_181205 = cat(T_181203, T_181204)
+ node T_181206 = cat(T_181188[42], T_181188[41])
+ node T_181207 = cat(T_181188[40], T_181188[39])
+ node T_181208 = cat(T_181206, T_181207)
+ node T_181209 = cat(T_181205, T_181208)
+ node T_181210 = cat(T_181188[38], T_181188[37])
+ node T_181211 = cat(T_181188[36], T_181188[35])
+ node T_181212 = cat(T_181210, T_181211)
+ node T_181213 = cat(T_181188[34], T_181188[33])
+ node T_181214 = cat(T_181188[32], T_181188[31])
+ node T_181215 = cat(T_181213, T_181214)
+ node T_181216 = cat(T_181212, T_181215)
+ node T_181217 = cat(T_181209, T_181216)
+ node T_181218 = cat(T_181202, T_181217)
+ node T_181219 = cat(T_181188[29], T_181188[28])
+ node T_181220 = cat(T_181188[30], T_181219)
+ node T_181221 = cat(T_181188[27], T_181188[26])
+ node T_181222 = cat(T_181188[25], T_181188[24])
+ node T_181223 = cat(T_181221, T_181222)
+ node T_181224 = cat(T_181220, T_181223)
+ node T_181225 = cat(T_181188[23], T_181188[22])
+ node T_181226 = cat(T_181188[21], T_181188[20])
+ node T_181227 = cat(T_181225, T_181226)
+ node T_181228 = cat(T_181188[19], T_181188[18])
+ node T_181229 = cat(T_181188[17], T_181188[16])
+ node T_181230 = cat(T_181228, T_181229)
+ node T_181231 = cat(T_181227, T_181230)
+ node T_181232 = cat(T_181224, T_181231)
+ node T_181233 = cat(T_181188[15], T_181188[14])
+ node T_181234 = cat(T_181188[13], T_181188[12])
+ node T_181235 = cat(T_181233, T_181234)
+ node T_181236 = cat(T_181188[11], T_181188[10])
+ node T_181237 = cat(T_181188[9], T_181188[8])
+ node T_181238 = cat(T_181236, T_181237)
+ node T_181239 = cat(T_181235, T_181238)
+ node T_181240 = cat(T_181188[7], T_181188[6])
+ node T_181241 = cat(T_181188[5], T_181188[4])
+ node T_181242 = cat(T_181240, T_181241)
+ node T_181243 = cat(T_181188[3], T_181188[2])
+ node T_181244 = cat(T_181188[1], T_181188[0])
+ node T_181245 = cat(T_181243, T_181244)
+ node T_181246 = cat(T_181242, T_181245)
+ node T_181247 = cat(T_181239, T_181246)
+ node T_181248 = cat(T_181232, T_181247)
+ node T_181249 = cat(T_181218, T_181248)
+ node T_181250 = and(T_180672, pageHit)
+ node T_181251 = and(T_180675, pageHit)
+ node T_181252 = and(T_180678, pageHit)
+ node T_181253 = and(T_180681, pageHit)
+ node T_181254 = and(T_180684, pageHit)
+ node T_181255 = and(T_180687, pageHit)
+ node T_181256 = and(T_180690, pageHit)
+ node T_181257 = and(T_180693, pageHit)
+ node T_181258 = and(T_180696, pageHit)
+ node T_181259 = and(T_180699, pageHit)
+ node T_181260 = and(T_180702, pageHit)
+ node T_181261 = and(T_180705, pageHit)
+ node T_181262 = and(T_180708, pageHit)
+ node T_181263 = and(T_180711, pageHit)
+ node T_181264 = and(T_180714, pageHit)
+ node T_181265 = and(T_180717, pageHit)
+ node T_181266 = and(T_180720, pageHit)
+ node T_181267 = and(T_180723, pageHit)
+ node T_181268 = and(T_180726, pageHit)
+ node T_181269 = and(T_180729, pageHit)
+ node T_181270 = and(T_180732, pageHit)
+ node T_181271 = and(T_180735, pageHit)
+ node T_181272 = and(T_180738, pageHit)
+ node T_181273 = and(T_180741, pageHit)
+ node T_181274 = and(T_180744, pageHit)
+ node T_181275 = and(T_180747, pageHit)
+ node T_181276 = and(T_180750, pageHit)
+ node T_181277 = and(T_180753, pageHit)
+ node T_181278 = and(T_180756, pageHit)
+ node T_181279 = and(T_180759, pageHit)
+ node T_181280 = and(T_180762, pageHit)
+ node T_181281 = and(T_180765, pageHit)
+ node T_181282 = and(T_180768, pageHit)
+ node T_181283 = and(T_180771, pageHit)
+ node T_181284 = and(T_180774, pageHit)
+ node T_181285 = and(T_180777, pageHit)
+ node T_181286 = and(T_180780, pageHit)
+ node T_181287 = and(T_180783, pageHit)
+ node T_181288 = and(T_180786, pageHit)
+ node T_181289 = and(T_180789, pageHit)
+ node T_181290 = and(T_180792, pageHit)
+ node T_181291 = and(T_180795, pageHit)
+ node T_181292 = and(T_180798, pageHit)
+ node T_181293 = and(T_180801, pageHit)
+ node T_181294 = and(T_180804, pageHit)
+ node T_181295 = and(T_180807, pageHit)
+ node T_181296 = and(T_180810, pageHit)
+ node T_181297 = and(T_180813, pageHit)
+ node T_181298 = and(T_180816, pageHit)
+ node T_181299 = and(T_180819, pageHit)
+ node T_181300 = and(T_180822, pageHit)
+ node T_181301 = and(T_180825, pageHit)
+ node T_181302 = and(T_180828, pageHit)
+ node T_181303 = and(T_180831, pageHit)
+ node T_181304 = and(T_180834, pageHit)
+ node T_181305 = and(T_180837, pageHit)
+ node T_181306 = and(T_180840, pageHit)
+ node T_181307 = and(T_180843, pageHit)
+ node T_181308 = and(T_180846, pageHit)
+ node T_181309 = and(T_180849, pageHit)
+ node T_181310 = and(T_180852, pageHit)
+ node T_181311 = and(T_180855, pageHit)
+ node T_181312 = eq(T_181250, UInt<1>(0))
+ node T_181313 = eq(T_181312, UInt<1>(0))
+ node T_181314 = eq(T_181251, UInt<1>(0))
+ node T_181315 = eq(T_181314, UInt<1>(0))
+ node T_181316 = eq(T_181252, UInt<1>(0))
+ node T_181317 = eq(T_181316, UInt<1>(0))
+ node T_181318 = eq(T_181253, UInt<1>(0))
+ node T_181319 = eq(T_181318, UInt<1>(0))
+ node T_181320 = eq(T_181254, UInt<1>(0))
+ node T_181321 = eq(T_181320, UInt<1>(0))
+ node T_181322 = eq(T_181255, UInt<1>(0))
+ node T_181323 = eq(T_181322, UInt<1>(0))
+ node T_181324 = eq(T_181256, UInt<1>(0))
+ node T_181325 = eq(T_181324, UInt<1>(0))
+ node T_181326 = eq(T_181257, UInt<1>(0))
+ node T_181327 = eq(T_181326, UInt<1>(0))
+ node T_181328 = eq(T_181258, UInt<1>(0))
+ node T_181329 = eq(T_181328, UInt<1>(0))
+ node T_181330 = eq(T_181259, UInt<1>(0))
+ node T_181331 = eq(T_181330, UInt<1>(0))
+ node T_181332 = eq(T_181260, UInt<1>(0))
+ node T_181333 = eq(T_181332, UInt<1>(0))
+ node T_181334 = eq(T_181261, UInt<1>(0))
+ node T_181335 = eq(T_181334, UInt<1>(0))
+ node T_181336 = eq(T_181262, UInt<1>(0))
+ node T_181337 = eq(T_181336, UInt<1>(0))
+ node T_181338 = eq(T_181263, UInt<1>(0))
+ node T_181339 = eq(T_181338, UInt<1>(0))
+ node T_181340 = eq(T_181264, UInt<1>(0))
+ node T_181341 = eq(T_181340, UInt<1>(0))
+ node T_181342 = eq(T_181265, UInt<1>(0))
+ node T_181343 = eq(T_181342, UInt<1>(0))
+ node T_181344 = eq(T_181266, UInt<1>(0))
+ node T_181345 = eq(T_181344, UInt<1>(0))
+ node T_181346 = eq(T_181267, UInt<1>(0))
+ node T_181347 = eq(T_181346, UInt<1>(0))
+ node T_181348 = eq(T_181268, UInt<1>(0))
+ node T_181349 = eq(T_181348, UInt<1>(0))
+ node T_181350 = eq(T_181269, UInt<1>(0))
+ node T_181351 = eq(T_181350, UInt<1>(0))
+ node T_181352 = eq(T_181270, UInt<1>(0))
+ node T_181353 = eq(T_181352, UInt<1>(0))
+ node T_181354 = eq(T_181271, UInt<1>(0))
+ node T_181355 = eq(T_181354, UInt<1>(0))
+ node T_181356 = eq(T_181272, UInt<1>(0))
+ node T_181357 = eq(T_181356, UInt<1>(0))
+ node T_181358 = eq(T_181273, UInt<1>(0))
+ node T_181359 = eq(T_181358, UInt<1>(0))
+ node T_181360 = eq(T_181274, UInt<1>(0))
+ node T_181361 = eq(T_181360, UInt<1>(0))
+ node T_181362 = eq(T_181275, UInt<1>(0))
+ node T_181363 = eq(T_181362, UInt<1>(0))
+ node T_181364 = eq(T_181276, UInt<1>(0))
+ node T_181365 = eq(T_181364, UInt<1>(0))
+ node T_181366 = eq(T_181277, UInt<1>(0))
+ node T_181367 = eq(T_181366, UInt<1>(0))
+ node T_181368 = eq(T_181278, UInt<1>(0))
+ node T_181369 = eq(T_181368, UInt<1>(0))
+ node T_181370 = eq(T_181279, UInt<1>(0))
+ node T_181371 = eq(T_181370, UInt<1>(0))
+ node T_181372 = eq(T_181280, UInt<1>(0))
+ node T_181373 = eq(T_181372, UInt<1>(0))
+ node T_181374 = eq(T_181281, UInt<1>(0))
+ node T_181375 = eq(T_181374, UInt<1>(0))
+ node T_181376 = eq(T_181282, UInt<1>(0))
+ node T_181377 = eq(T_181376, UInt<1>(0))
+ node T_181378 = eq(T_181283, UInt<1>(0))
+ node T_181379 = eq(T_181378, UInt<1>(0))
+ node T_181380 = eq(T_181284, UInt<1>(0))
+ node T_181381 = eq(T_181380, UInt<1>(0))
+ node T_181382 = eq(T_181285, UInt<1>(0))
+ node T_181383 = eq(T_181382, UInt<1>(0))
+ node T_181384 = eq(T_181286, UInt<1>(0))
+ node T_181385 = eq(T_181384, UInt<1>(0))
+ node T_181386 = eq(T_181287, UInt<1>(0))
+ node T_181387 = eq(T_181386, UInt<1>(0))
+ node T_181388 = eq(T_181288, UInt<1>(0))
+ node T_181389 = eq(T_181388, UInt<1>(0))
+ node T_181390 = eq(T_181289, UInt<1>(0))
+ node T_181391 = eq(T_181390, UInt<1>(0))
+ node T_181392 = eq(T_181290, UInt<1>(0))
+ node T_181393 = eq(T_181392, UInt<1>(0))
+ node T_181394 = eq(T_181291, UInt<1>(0))
+ node T_181395 = eq(T_181394, UInt<1>(0))
+ node T_181396 = eq(T_181292, UInt<1>(0))
+ node T_181397 = eq(T_181396, UInt<1>(0))
+ node T_181398 = eq(T_181293, UInt<1>(0))
+ node T_181399 = eq(T_181398, UInt<1>(0))
+ node T_181400 = eq(T_181294, UInt<1>(0))
+ node T_181401 = eq(T_181400, UInt<1>(0))
+ node T_181402 = eq(T_181295, UInt<1>(0))
+ node T_181403 = eq(T_181402, UInt<1>(0))
+ node T_181404 = eq(T_181296, UInt<1>(0))
+ node T_181405 = eq(T_181404, UInt<1>(0))
+ node T_181406 = eq(T_181297, UInt<1>(0))
+ node T_181407 = eq(T_181406, UInt<1>(0))
+ node T_181408 = eq(T_181298, UInt<1>(0))
+ node T_181409 = eq(T_181408, UInt<1>(0))
+ node T_181410 = eq(T_181299, UInt<1>(0))
+ node T_181411 = eq(T_181410, UInt<1>(0))
+ node T_181412 = eq(T_181300, UInt<1>(0))
+ node T_181413 = eq(T_181412, UInt<1>(0))
+ node T_181414 = eq(T_181301, UInt<1>(0))
+ node T_181415 = eq(T_181414, UInt<1>(0))
+ node T_181416 = eq(T_181302, UInt<1>(0))
+ node T_181417 = eq(T_181416, UInt<1>(0))
+ node T_181418 = eq(T_181303, UInt<1>(0))
+ node T_181419 = eq(T_181418, UInt<1>(0))
+ node T_181420 = eq(T_181304, UInt<1>(0))
+ node T_181421 = eq(T_181420, UInt<1>(0))
+ node T_181422 = eq(T_181305, UInt<1>(0))
+ node T_181423 = eq(T_181422, UInt<1>(0))
+ node T_181424 = eq(T_181306, UInt<1>(0))
+ node T_181425 = eq(T_181424, UInt<1>(0))
+ node T_181426 = eq(T_181307, UInt<1>(0))
+ node T_181427 = eq(T_181426, UInt<1>(0))
+ node T_181428 = eq(T_181308, UInt<1>(0))
+ node T_181429 = eq(T_181428, UInt<1>(0))
+ node T_181430 = eq(T_181309, UInt<1>(0))
+ node T_181431 = eq(T_181430, UInt<1>(0))
+ node T_181432 = eq(T_181310, UInt<1>(0))
+ node T_181433 = eq(T_181432, UInt<1>(0))
+ node T_181434 = eq(T_181311, UInt<1>(0))
+ node T_181435 = eq(T_181434, UInt<1>(0))
+ wire T_181436 : UInt<1>[62]
+ T_181436[0] := T_181313
+ T_181436[1] := T_181315
+ T_181436[2] := T_181317
+ T_181436[3] := T_181319
+ T_181436[4] := T_181321
+ T_181436[5] := T_181323
+ T_181436[6] := T_181325
+ T_181436[7] := T_181327
+ T_181436[8] := T_181329
+ T_181436[9] := T_181331
+ T_181436[10] := T_181333
+ T_181436[11] := T_181335
+ T_181436[12] := T_181337
+ T_181436[13] := T_181339
+ T_181436[14] := T_181341
+ T_181436[15] := T_181343
+ T_181436[16] := T_181345
+ T_181436[17] := T_181347
+ T_181436[18] := T_181349
+ T_181436[19] := T_181351
+ T_181436[20] := T_181353
+ T_181436[21] := T_181355
+ T_181436[22] := T_181357
+ T_181436[23] := T_181359
+ T_181436[24] := T_181361
+ T_181436[25] := T_181363
+ T_181436[26] := T_181365
+ T_181436[27] := T_181367
+ T_181436[28] := T_181369
+ T_181436[29] := T_181371
+ T_181436[30] := T_181373
+ T_181436[31] := T_181375
+ T_181436[32] := T_181377
+ T_181436[33] := T_181379
+ T_181436[34] := T_181381
+ T_181436[35] := T_181383
+ T_181436[36] := T_181385
+ T_181436[37] := T_181387
+ T_181436[38] := T_181389
+ T_181436[39] := T_181391
+ T_181436[40] := T_181393
+ T_181436[41] := T_181395
+ T_181436[42] := T_181397
+ T_181436[43] := T_181399
+ T_181436[44] := T_181401
+ T_181436[45] := T_181403
+ T_181436[46] := T_181405
+ T_181436[47] := T_181407
+ T_181436[48] := T_181409
+ T_181436[49] := T_181411
+ T_181436[50] := T_181413
+ T_181436[51] := T_181415
+ T_181436[52] := T_181417
+ T_181436[53] := T_181419
+ T_181436[54] := T_181421
+ T_181436[55] := T_181423
+ T_181436[56] := T_181425
+ T_181436[57] := T_181427
+ T_181436[58] := T_181429
+ T_181436[59] := T_181431
+ T_181436[60] := T_181433
+ T_181436[61] := T_181435
+ node T_181437 = cat(T_181436[60], T_181436[59])
+ node T_181438 = cat(T_181436[61], T_181437)
+ node T_181439 = cat(T_181436[58], T_181436[57])
+ node T_181440 = cat(T_181436[56], T_181436[55])
+ node T_181441 = cat(T_181439, T_181440)
+ node T_181442 = cat(T_181438, T_181441)
+ node T_181443 = cat(T_181436[54], T_181436[53])
+ node T_181444 = cat(T_181436[52], T_181436[51])
+ node T_181445 = cat(T_181443, T_181444)
+ node T_181446 = cat(T_181436[50], T_181436[49])
+ node T_181447 = cat(T_181436[48], T_181436[47])
+ node T_181448 = cat(T_181446, T_181447)
+ node T_181449 = cat(T_181445, T_181448)
+ node T_181450 = cat(T_181442, T_181449)
+ node T_181451 = cat(T_181436[46], T_181436[45])
+ node T_181452 = cat(T_181436[44], T_181436[43])
+ node T_181453 = cat(T_181451, T_181452)
+ node T_181454 = cat(T_181436[42], T_181436[41])
+ node T_181455 = cat(T_181436[40], T_181436[39])
+ node T_181456 = cat(T_181454, T_181455)
+ node T_181457 = cat(T_181453, T_181456)
+ node T_181458 = cat(T_181436[38], T_181436[37])
+ node T_181459 = cat(T_181436[36], T_181436[35])
+ node T_181460 = cat(T_181458, T_181459)
+ node T_181461 = cat(T_181436[34], T_181436[33])
+ node T_181462 = cat(T_181436[32], T_181436[31])
+ node T_181463 = cat(T_181461, T_181462)
+ node T_181464 = cat(T_181460, T_181463)
+ node T_181465 = cat(T_181457, T_181464)
+ node T_181466 = cat(T_181450, T_181465)
+ node T_181467 = cat(T_181436[29], T_181436[28])
+ node T_181468 = cat(T_181436[30], T_181467)
+ node T_181469 = cat(T_181436[27], T_181436[26])
+ node T_181470 = cat(T_181436[25], T_181436[24])
+ node T_181471 = cat(T_181469, T_181470)
+ node T_181472 = cat(T_181468, T_181471)
+ node T_181473 = cat(T_181436[23], T_181436[22])
+ node T_181474 = cat(T_181436[21], T_181436[20])
+ node T_181475 = cat(T_181473, T_181474)
+ node T_181476 = cat(T_181436[19], T_181436[18])
+ node T_181477 = cat(T_181436[17], T_181436[16])
+ node T_181478 = cat(T_181476, T_181477)
+ node T_181479 = cat(T_181475, T_181478)
+ node T_181480 = cat(T_181472, T_181479)
+ node T_181481 = cat(T_181436[15], T_181436[14])
+ node T_181482 = cat(T_181436[13], T_181436[12])
+ node T_181483 = cat(T_181481, T_181482)
+ node T_181484 = cat(T_181436[11], T_181436[10])
+ node T_181485 = cat(T_181436[9], T_181436[8])
+ node T_181486 = cat(T_181484, T_181485)
+ node T_181487 = cat(T_181483, T_181486)
+ node T_181488 = cat(T_181436[7], T_181436[6])
+ node T_181489 = cat(T_181436[5], T_181436[4])
+ node T_181490 = cat(T_181488, T_181489)
+ node T_181491 = cat(T_181436[3], T_181436[2])
+ node T_181492 = cat(T_181436[1], T_181436[0])
+ node T_181493 = cat(T_181491, T_181492)
+ node T_181494 = cat(T_181490, T_181493)
+ node T_181495 = cat(T_181487, T_181494)
+ node T_181496 = cat(T_181480, T_181495)
+ node T_181497 = cat(T_181466, T_181496)
+ node T_181498 = bit(T_181249, 0)
+ node T_181499 = and(idxValid[0], T_181498)
+ node T_181500 = bit(T_181497, 0)
+ node T_181501 = and(T_181499, T_181500)
+ node T_181502 = bit(T_181249, 1)
+ node T_181503 = and(idxValid[1], T_181502)
+ node T_181504 = bit(T_181497, 1)
+ node T_181505 = and(T_181503, T_181504)
+ node T_181506 = bit(T_181249, 2)
+ node T_181507 = and(idxValid[2], T_181506)
+ node T_181508 = bit(T_181497, 2)
+ node T_181509 = and(T_181507, T_181508)
+ node T_181510 = bit(T_181249, 3)
+ node T_181511 = and(idxValid[3], T_181510)
+ node T_181512 = bit(T_181497, 3)
+ node T_181513 = and(T_181511, T_181512)
+ node T_181514 = bit(T_181249, 4)
+ node T_181515 = and(idxValid[4], T_181514)
+ node T_181516 = bit(T_181497, 4)
+ node T_181517 = and(T_181515, T_181516)
+ node T_181518 = bit(T_181249, 5)
+ node T_181519 = and(idxValid[5], T_181518)
+ node T_181520 = bit(T_181497, 5)
+ node T_181521 = and(T_181519, T_181520)
+ node T_181522 = bit(T_181249, 6)
+ node T_181523 = and(idxValid[6], T_181522)
+ node T_181524 = bit(T_181497, 6)
+ node T_181525 = and(T_181523, T_181524)
+ node T_181526 = bit(T_181249, 7)
+ node T_181527 = and(idxValid[7], T_181526)
+ node T_181528 = bit(T_181497, 7)
+ node T_181529 = and(T_181527, T_181528)
+ node T_181530 = bit(T_181249, 8)
+ node T_181531 = and(idxValid[8], T_181530)
+ node T_181532 = bit(T_181497, 8)
+ node T_181533 = and(T_181531, T_181532)
+ node T_181534 = bit(T_181249, 9)
+ node T_181535 = and(idxValid[9], T_181534)
+ node T_181536 = bit(T_181497, 9)
+ node T_181537 = and(T_181535, T_181536)
+ node T_181538 = bit(T_181249, 10)
+ node T_181539 = and(idxValid[10], T_181538)
+ node T_181540 = bit(T_181497, 10)
+ node T_181541 = and(T_181539, T_181540)
+ node T_181542 = bit(T_181249, 11)
+ node T_181543 = and(idxValid[11], T_181542)
+ node T_181544 = bit(T_181497, 11)
+ node T_181545 = and(T_181543, T_181544)
+ node T_181546 = bit(T_181249, 12)
+ node T_181547 = and(idxValid[12], T_181546)
+ node T_181548 = bit(T_181497, 12)
+ node T_181549 = and(T_181547, T_181548)
+ node T_181550 = bit(T_181249, 13)
+ node T_181551 = and(idxValid[13], T_181550)
+ node T_181552 = bit(T_181497, 13)
+ node T_181553 = and(T_181551, T_181552)
+ node T_181554 = bit(T_181249, 14)
+ node T_181555 = and(idxValid[14], T_181554)
+ node T_181556 = bit(T_181497, 14)
+ node T_181557 = and(T_181555, T_181556)
+ node T_181558 = bit(T_181249, 15)
+ node T_181559 = and(idxValid[15], T_181558)
+ node T_181560 = bit(T_181497, 15)
+ node T_181561 = and(T_181559, T_181560)
+ node T_181562 = bit(T_181249, 16)
+ node T_181563 = and(idxValid[16], T_181562)
+ node T_181564 = bit(T_181497, 16)
+ node T_181565 = and(T_181563, T_181564)
+ node T_181566 = bit(T_181249, 17)
+ node T_181567 = and(idxValid[17], T_181566)
+ node T_181568 = bit(T_181497, 17)
+ node T_181569 = and(T_181567, T_181568)
+ node T_181570 = bit(T_181249, 18)
+ node T_181571 = and(idxValid[18], T_181570)
+ node T_181572 = bit(T_181497, 18)
+ node T_181573 = and(T_181571, T_181572)
+ node T_181574 = bit(T_181249, 19)
+ node T_181575 = and(idxValid[19], T_181574)
+ node T_181576 = bit(T_181497, 19)
+ node T_181577 = and(T_181575, T_181576)
+ node T_181578 = bit(T_181249, 20)
+ node T_181579 = and(idxValid[20], T_181578)
+ node T_181580 = bit(T_181497, 20)
+ node T_181581 = and(T_181579, T_181580)
+ node T_181582 = bit(T_181249, 21)
+ node T_181583 = and(idxValid[21], T_181582)
+ node T_181584 = bit(T_181497, 21)
+ node T_181585 = and(T_181583, T_181584)
+ node T_181586 = bit(T_181249, 22)
+ node T_181587 = and(idxValid[22], T_181586)
+ node T_181588 = bit(T_181497, 22)
+ node T_181589 = and(T_181587, T_181588)
+ node T_181590 = bit(T_181249, 23)
+ node T_181591 = and(idxValid[23], T_181590)
+ node T_181592 = bit(T_181497, 23)
+ node T_181593 = and(T_181591, T_181592)
+ node T_181594 = bit(T_181249, 24)
+ node T_181595 = and(idxValid[24], T_181594)
+ node T_181596 = bit(T_181497, 24)
+ node T_181597 = and(T_181595, T_181596)
+ node T_181598 = bit(T_181249, 25)
+ node T_181599 = and(idxValid[25], T_181598)
+ node T_181600 = bit(T_181497, 25)
+ node T_181601 = and(T_181599, T_181600)
+ node T_181602 = bit(T_181249, 26)
+ node T_181603 = and(idxValid[26], T_181602)
+ node T_181604 = bit(T_181497, 26)
+ node T_181605 = and(T_181603, T_181604)
+ node T_181606 = bit(T_181249, 27)
+ node T_181607 = and(idxValid[27], T_181606)
+ node T_181608 = bit(T_181497, 27)
+ node T_181609 = and(T_181607, T_181608)
+ node T_181610 = bit(T_181249, 28)
+ node T_181611 = and(idxValid[28], T_181610)
+ node T_181612 = bit(T_181497, 28)
+ node T_181613 = and(T_181611, T_181612)
+ node T_181614 = bit(T_181249, 29)
+ node T_181615 = and(idxValid[29], T_181614)
+ node T_181616 = bit(T_181497, 29)
+ node T_181617 = and(T_181615, T_181616)
+ node T_181618 = bit(T_181249, 30)
+ node T_181619 = and(idxValid[30], T_181618)
+ node T_181620 = bit(T_181497, 30)
+ node T_181621 = and(T_181619, T_181620)
+ node T_181622 = bit(T_181249, 31)
+ node T_181623 = and(idxValid[31], T_181622)
+ node T_181624 = bit(T_181497, 31)
+ node T_181625 = and(T_181623, T_181624)
+ node T_181626 = bit(T_181249, 32)
+ node T_181627 = and(idxValid[32], T_181626)
+ node T_181628 = bit(T_181497, 32)
+ node T_181629 = and(T_181627, T_181628)
+ node T_181630 = bit(T_181249, 33)
+ node T_181631 = and(idxValid[33], T_181630)
+ node T_181632 = bit(T_181497, 33)
+ node T_181633 = and(T_181631, T_181632)
+ node T_181634 = bit(T_181249, 34)
+ node T_181635 = and(idxValid[34], T_181634)
+ node T_181636 = bit(T_181497, 34)
+ node T_181637 = and(T_181635, T_181636)
+ node T_181638 = bit(T_181249, 35)
+ node T_181639 = and(idxValid[35], T_181638)
+ node T_181640 = bit(T_181497, 35)
+ node T_181641 = and(T_181639, T_181640)
+ node T_181642 = bit(T_181249, 36)
+ node T_181643 = and(idxValid[36], T_181642)
+ node T_181644 = bit(T_181497, 36)
+ node T_181645 = and(T_181643, T_181644)
+ node T_181646 = bit(T_181249, 37)
+ node T_181647 = and(idxValid[37], T_181646)
+ node T_181648 = bit(T_181497, 37)
+ node T_181649 = and(T_181647, T_181648)
+ node T_181650 = bit(T_181249, 38)
+ node T_181651 = and(idxValid[38], T_181650)
+ node T_181652 = bit(T_181497, 38)
+ node T_181653 = and(T_181651, T_181652)
+ node T_181654 = bit(T_181249, 39)
+ node T_181655 = and(idxValid[39], T_181654)
+ node T_181656 = bit(T_181497, 39)
+ node T_181657 = and(T_181655, T_181656)
+ node T_181658 = bit(T_181249, 40)
+ node T_181659 = and(idxValid[40], T_181658)
+ node T_181660 = bit(T_181497, 40)
+ node T_181661 = and(T_181659, T_181660)
+ node T_181662 = bit(T_181249, 41)
+ node T_181663 = and(idxValid[41], T_181662)
+ node T_181664 = bit(T_181497, 41)
+ node T_181665 = and(T_181663, T_181664)
+ node T_181666 = bit(T_181249, 42)
+ node T_181667 = and(idxValid[42], T_181666)
+ node T_181668 = bit(T_181497, 42)
+ node T_181669 = and(T_181667, T_181668)
+ node T_181670 = bit(T_181249, 43)
+ node T_181671 = and(idxValid[43], T_181670)
+ node T_181672 = bit(T_181497, 43)
+ node T_181673 = and(T_181671, T_181672)
+ node T_181674 = bit(T_181249, 44)
+ node T_181675 = and(idxValid[44], T_181674)
+ node T_181676 = bit(T_181497, 44)
+ node T_181677 = and(T_181675, T_181676)
+ node T_181678 = bit(T_181249, 45)
+ node T_181679 = and(idxValid[45], T_181678)
+ node T_181680 = bit(T_181497, 45)
+ node T_181681 = and(T_181679, T_181680)
+ node T_181682 = bit(T_181249, 46)
+ node T_181683 = and(idxValid[46], T_181682)
+ node T_181684 = bit(T_181497, 46)
+ node T_181685 = and(T_181683, T_181684)
+ node T_181686 = bit(T_181249, 47)
+ node T_181687 = and(idxValid[47], T_181686)
+ node T_181688 = bit(T_181497, 47)
+ node T_181689 = and(T_181687, T_181688)
+ node T_181690 = bit(T_181249, 48)
+ node T_181691 = and(idxValid[48], T_181690)
+ node T_181692 = bit(T_181497, 48)
+ node T_181693 = and(T_181691, T_181692)
+ node T_181694 = bit(T_181249, 49)
+ node T_181695 = and(idxValid[49], T_181694)
+ node T_181696 = bit(T_181497, 49)
+ node T_181697 = and(T_181695, T_181696)
+ node T_181698 = bit(T_181249, 50)
+ node T_181699 = and(idxValid[50], T_181698)
+ node T_181700 = bit(T_181497, 50)
+ node T_181701 = and(T_181699, T_181700)
+ node T_181702 = bit(T_181249, 51)
+ node T_181703 = and(idxValid[51], T_181702)
+ node T_181704 = bit(T_181497, 51)
+ node T_181705 = and(T_181703, T_181704)
+ node T_181706 = bit(T_181249, 52)
+ node T_181707 = and(idxValid[52], T_181706)
+ node T_181708 = bit(T_181497, 52)
+ node T_181709 = and(T_181707, T_181708)
+ node T_181710 = bit(T_181249, 53)
+ node T_181711 = and(idxValid[53], T_181710)
+ node T_181712 = bit(T_181497, 53)
+ node T_181713 = and(T_181711, T_181712)
+ node T_181714 = bit(T_181249, 54)
+ node T_181715 = and(idxValid[54], T_181714)
+ node T_181716 = bit(T_181497, 54)
+ node T_181717 = and(T_181715, T_181716)
+ node T_181718 = bit(T_181249, 55)
+ node T_181719 = and(idxValid[55], T_181718)
+ node T_181720 = bit(T_181497, 55)
+ node T_181721 = and(T_181719, T_181720)
+ node T_181722 = bit(T_181249, 56)
+ node T_181723 = and(idxValid[56], T_181722)
+ node T_181724 = bit(T_181497, 56)
+ node T_181725 = and(T_181723, T_181724)
+ node T_181726 = bit(T_181249, 57)
+ node T_181727 = and(idxValid[57], T_181726)
+ node T_181728 = bit(T_181497, 57)
+ node T_181729 = and(T_181727, T_181728)
+ node T_181730 = bit(T_181249, 58)
+ node T_181731 = and(idxValid[58], T_181730)
+ node T_181732 = bit(T_181497, 58)
+ node T_181733 = and(T_181731, T_181732)
+ node T_181734 = bit(T_181249, 59)
+ node T_181735 = and(idxValid[59], T_181734)
+ node T_181736 = bit(T_181497, 59)
+ node T_181737 = and(T_181735, T_181736)
+ node T_181738 = bit(T_181249, 60)
+ node T_181739 = and(idxValid[60], T_181738)
+ node T_181740 = bit(T_181497, 60)
+ node T_181741 = and(T_181739, T_181740)
+ node T_181742 = bit(T_181249, 61)
+ node T_181743 = and(idxValid[61], T_181742)
+ node T_181744 = bit(T_181497, 61)
+ node T_181745 = and(T_181743, T_181744)
+ wire hits : UInt<1>[62]
+ hits[0] := T_181501
+ hits[1] := T_181505
+ hits[2] := T_181509
+ hits[3] := T_181513
+ hits[4] := T_181517
+ hits[5] := T_181521
+ hits[6] := T_181525
+ hits[7] := T_181529
+ hits[8] := T_181533
+ hits[9] := T_181537
+ hits[10] := T_181541
+ hits[11] := T_181545
+ hits[12] := T_181549
+ hits[13] := T_181553
+ hits[14] := T_181557
+ hits[15] := T_181561
+ hits[16] := T_181565
+ hits[17] := T_181569
+ hits[18] := T_181573
+ hits[19] := T_181577
+ hits[20] := T_181581
+ hits[21] := T_181585
+ hits[22] := T_181589
+ hits[23] := T_181593
+ hits[24] := T_181597
+ hits[25] := T_181601
+ hits[26] := T_181605
+ hits[27] := T_181609
+ hits[28] := T_181613
+ hits[29] := T_181617
+ hits[30] := T_181621
+ hits[31] := T_181625
+ hits[32] := T_181629
+ hits[33] := T_181633
+ hits[34] := T_181637
+ hits[35] := T_181641
+ hits[36] := T_181645
+ hits[37] := T_181649
+ hits[38] := T_181653
+ hits[39] := T_181657
+ hits[40] := T_181661
+ hits[41] := T_181665
+ hits[42] := T_181669
+ hits[43] := T_181673
+ hits[44] := T_181677
+ hits[45] := T_181681
+ hits[46] := T_181685
+ hits[47] := T_181689
+ hits[48] := T_181693
+ hits[49] := T_181697
+ hits[50] := T_181701
+ hits[51] := T_181705
+ hits[52] := T_181709
+ hits[53] := T_181713
+ hits[54] := T_181717
+ hits[55] := T_181721
+ hits[56] := T_181725
+ hits[57] := T_181729
+ hits[58] := T_181733
+ hits[59] := T_181737
+ hits[60] := T_181741
+ hits[61] := T_181745
+ node T_181746 = shr(r_btb_update.bits.pc, 12)
+ infer accessor T_181747 = pages[UInt<1>(0)]
+ node T_181748 = eq(T_181747, T_181746)
+ infer accessor T_181749 = pages[UInt<1>(1)]
+ node T_181750 = eq(T_181749, T_181746)
+ infer accessor T_181751 = pages[UInt<2>(2)]
+ node T_181752 = eq(T_181751, T_181746)
+ infer accessor T_181753 = pages[UInt<2>(3)]
+ node T_181754 = eq(T_181753, T_181746)
+ infer accessor T_181755 = pages[UInt<3>(4)]
+ node T_181756 = eq(T_181755, T_181746)
+ infer accessor T_181757 = pages[UInt<3>(5)]
+ node T_181758 = eq(T_181757, T_181746)
+ wire T_181759 : UInt<1>[6]
+ T_181759[0] := T_181748
+ T_181759[1] := T_181750
+ T_181759[2] := T_181752
+ T_181759[3] := T_181754
+ T_181759[4] := T_181756
+ T_181759[5] := T_181758
+ node T_181760 = cat(T_181759[4], T_181759[3])
+ node T_181761 = cat(T_181759[5], T_181760)
+ node T_181762 = cat(T_181759[1], T_181759[0])
+ node T_181763 = cat(T_181759[2], T_181762)
+ node T_181764 = cat(T_181761, T_181763)
+ node updatePageHit = and(T_181764, pageValid)
+ node T_181765 = bits(r_btb_update.bits.pc, 11, 0)
+ infer accessor T_181766 = idxs[UInt<1>(0)]
+ node T_181767 = eq(T_181766, T_181765)
+ infer accessor T_181768 = idxs[UInt<1>(1)]
+ node T_181769 = eq(T_181768, T_181765)
+ infer accessor T_181770 = idxs[UInt<2>(2)]
+ node T_181771 = eq(T_181770, T_181765)
+ infer accessor T_181772 = idxs[UInt<2>(3)]
+ node T_181773 = eq(T_181772, T_181765)
+ infer accessor T_181774 = idxs[UInt<3>(4)]
+ node T_181775 = eq(T_181774, T_181765)
+ infer accessor T_181776 = idxs[UInt<3>(5)]
+ node T_181777 = eq(T_181776, T_181765)
+ infer accessor T_181778 = idxs[UInt<3>(6)]
+ node T_181779 = eq(T_181778, T_181765)
+ infer accessor T_181780 = idxs[UInt<3>(7)]
+ node T_181781 = eq(T_181780, T_181765)
+ infer accessor T_181782 = idxs[UInt<4>(8)]
+ node T_181783 = eq(T_181782, T_181765)
+ infer accessor T_181784 = idxs[UInt<4>(9)]
+ node T_181785 = eq(T_181784, T_181765)
+ infer accessor T_181786 = idxs[UInt<4>(10)]
+ node T_181787 = eq(T_181786, T_181765)
+ infer accessor T_181788 = idxs[UInt<4>(11)]
+ node T_181789 = eq(T_181788, T_181765)
+ infer accessor T_181790 = idxs[UInt<4>(12)]
+ node T_181791 = eq(T_181790, T_181765)
+ infer accessor T_181792 = idxs[UInt<4>(13)]
+ node T_181793 = eq(T_181792, T_181765)
+ infer accessor T_181794 = idxs[UInt<4>(14)]
+ node T_181795 = eq(T_181794, T_181765)
+ infer accessor T_181796 = idxs[UInt<4>(15)]
+ node T_181797 = eq(T_181796, T_181765)
+ infer accessor T_181798 = idxs[UInt<5>(16)]
+ node T_181799 = eq(T_181798, T_181765)
+ infer accessor T_181800 = idxs[UInt<5>(17)]
+ node T_181801 = eq(T_181800, T_181765)
+ infer accessor T_181802 = idxs[UInt<5>(18)]
+ node T_181803 = eq(T_181802, T_181765)
+ infer accessor T_181804 = idxs[UInt<5>(19)]
+ node T_181805 = eq(T_181804, T_181765)
+ infer accessor T_181806 = idxs[UInt<5>(20)]
+ node T_181807 = eq(T_181806, T_181765)
+ infer accessor T_181808 = idxs[UInt<5>(21)]
+ node T_181809 = eq(T_181808, T_181765)
+ infer accessor T_181810 = idxs[UInt<5>(22)]
+ node T_181811 = eq(T_181810, T_181765)
+ infer accessor T_181812 = idxs[UInt<5>(23)]
+ node T_181813 = eq(T_181812, T_181765)
+ infer accessor T_181814 = idxs[UInt<5>(24)]
+ node T_181815 = eq(T_181814, T_181765)
+ infer accessor T_181816 = idxs[UInt<5>(25)]
+ node T_181817 = eq(T_181816, T_181765)
+ infer accessor T_181818 = idxs[UInt<5>(26)]
+ node T_181819 = eq(T_181818, T_181765)
+ infer accessor T_181820 = idxs[UInt<5>(27)]
+ node T_181821 = eq(T_181820, T_181765)
+ infer accessor T_181822 = idxs[UInt<5>(28)]
+ node T_181823 = eq(T_181822, T_181765)
+ infer accessor T_181824 = idxs[UInt<5>(29)]
+ node T_181825 = eq(T_181824, T_181765)
+ infer accessor T_181826 = idxs[UInt<5>(30)]
+ node T_181827 = eq(T_181826, T_181765)
+ infer accessor T_181828 = idxs[UInt<5>(31)]
+ node T_181829 = eq(T_181828, T_181765)
+ infer accessor T_181830 = idxs[UInt<6>(32)]
+ node T_181831 = eq(T_181830, T_181765)
+ infer accessor T_181832 = idxs[UInt<6>(33)]
+ node T_181833 = eq(T_181832, T_181765)
+ infer accessor T_181834 = idxs[UInt<6>(34)]
+ node T_181835 = eq(T_181834, T_181765)
+ infer accessor T_181836 = idxs[UInt<6>(35)]
+ node T_181837 = eq(T_181836, T_181765)
+ infer accessor T_181838 = idxs[UInt<6>(36)]
+ node T_181839 = eq(T_181838, T_181765)
+ infer accessor T_181840 = idxs[UInt<6>(37)]
+ node T_181841 = eq(T_181840, T_181765)
+ infer accessor T_181842 = idxs[UInt<6>(38)]
+ node T_181843 = eq(T_181842, T_181765)
+ infer accessor T_181844 = idxs[UInt<6>(39)]
+ node T_181845 = eq(T_181844, T_181765)
+ infer accessor T_181846 = idxs[UInt<6>(40)]
+ node T_181847 = eq(T_181846, T_181765)
+ infer accessor T_181848 = idxs[UInt<6>(41)]
+ node T_181849 = eq(T_181848, T_181765)
+ infer accessor T_181850 = idxs[UInt<6>(42)]
+ node T_181851 = eq(T_181850, T_181765)
+ infer accessor T_181852 = idxs[UInt<6>(43)]
+ node T_181853 = eq(T_181852, T_181765)
+ infer accessor T_181854 = idxs[UInt<6>(44)]
+ node T_181855 = eq(T_181854, T_181765)
+ infer accessor T_181856 = idxs[UInt<6>(45)]
+ node T_181857 = eq(T_181856, T_181765)
+ infer accessor T_181858 = idxs[UInt<6>(46)]
+ node T_181859 = eq(T_181858, T_181765)
+ infer accessor T_181860 = idxs[UInt<6>(47)]
+ node T_181861 = eq(T_181860, T_181765)
+ infer accessor T_181862 = idxs[UInt<6>(48)]
+ node T_181863 = eq(T_181862, T_181765)
+ infer accessor T_181864 = idxs[UInt<6>(49)]
+ node T_181865 = eq(T_181864, T_181765)
+ infer accessor T_181866 = idxs[UInt<6>(50)]
+ node T_181867 = eq(T_181866, T_181765)
+ infer accessor T_181868 = idxs[UInt<6>(51)]
+ node T_181869 = eq(T_181868, T_181765)
+ infer accessor T_181870 = idxs[UInt<6>(52)]
+ node T_181871 = eq(T_181870, T_181765)
+ infer accessor T_181872 = idxs[UInt<6>(53)]
+ node T_181873 = eq(T_181872, T_181765)
+ infer accessor T_181874 = idxs[UInt<6>(54)]
+ node T_181875 = eq(T_181874, T_181765)
+ infer accessor T_181876 = idxs[UInt<6>(55)]
+ node T_181877 = eq(T_181876, T_181765)
+ infer accessor T_181878 = idxs[UInt<6>(56)]
+ node T_181879 = eq(T_181878, T_181765)
+ infer accessor T_181880 = idxs[UInt<6>(57)]
+ node T_181881 = eq(T_181880, T_181765)
+ infer accessor T_181882 = idxs[UInt<6>(58)]
+ node T_181883 = eq(T_181882, T_181765)
+ infer accessor T_181884 = idxs[UInt<6>(59)]
+ node T_181885 = eq(T_181884, T_181765)
+ infer accessor T_181886 = idxs[UInt<6>(60)]
+ node T_181887 = eq(T_181886, T_181765)
+ infer accessor T_181888 = idxs[UInt<6>(61)]
+ node T_181889 = eq(T_181888, T_181765)
+ wire T_181890 : UInt<1>[62]
+ T_181890[0] := T_181767
+ T_181890[1] := T_181769
+ T_181890[2] := T_181771
+ T_181890[3] := T_181773
+ T_181890[4] := T_181775
+ T_181890[5] := T_181777
+ T_181890[6] := T_181779
+ T_181890[7] := T_181781
+ T_181890[8] := T_181783
+ T_181890[9] := T_181785
+ T_181890[10] := T_181787
+ T_181890[11] := T_181789
+ T_181890[12] := T_181791
+ T_181890[13] := T_181793
+ T_181890[14] := T_181795
+ T_181890[15] := T_181797
+ T_181890[16] := T_181799
+ T_181890[17] := T_181801
+ T_181890[18] := T_181803
+ T_181890[19] := T_181805
+ T_181890[20] := T_181807
+ T_181890[21] := T_181809
+ T_181890[22] := T_181811
+ T_181890[23] := T_181813
+ T_181890[24] := T_181815
+ T_181890[25] := T_181817
+ T_181890[26] := T_181819
+ T_181890[27] := T_181821
+ T_181890[28] := T_181823
+ T_181890[29] := T_181825
+ T_181890[30] := T_181827
+ T_181890[31] := T_181829
+ T_181890[32] := T_181831
+ T_181890[33] := T_181833
+ T_181890[34] := T_181835
+ T_181890[35] := T_181837
+ T_181890[36] := T_181839
+ T_181890[37] := T_181841
+ T_181890[38] := T_181843
+ T_181890[39] := T_181845
+ T_181890[40] := T_181847
+ T_181890[41] := T_181849
+ T_181890[42] := T_181851
+ T_181890[43] := T_181853
+ T_181890[44] := T_181855
+ T_181890[45] := T_181857
+ T_181890[46] := T_181859
+ T_181890[47] := T_181861
+ T_181890[48] := T_181863
+ T_181890[49] := T_181865
+ T_181890[50] := T_181867
+ T_181890[51] := T_181869
+ T_181890[52] := T_181871
+ T_181890[53] := T_181873
+ T_181890[54] := T_181875
+ T_181890[55] := T_181877
+ T_181890[56] := T_181879
+ T_181890[57] := T_181881
+ T_181890[58] := T_181883
+ T_181890[59] := T_181885
+ T_181890[60] := T_181887
+ T_181890[61] := T_181889
+ node T_181891 = cat(T_181890[60], T_181890[59])
+ node T_181892 = cat(T_181890[61], T_181891)
+ node T_181893 = cat(T_181890[58], T_181890[57])
+ node T_181894 = cat(T_181890[56], T_181890[55])
+ node T_181895 = cat(T_181893, T_181894)
+ node T_181896 = cat(T_181892, T_181895)
+ node T_181897 = cat(T_181890[54], T_181890[53])
+ node T_181898 = cat(T_181890[52], T_181890[51])
+ node T_181899 = cat(T_181897, T_181898)
+ node T_181900 = cat(T_181890[50], T_181890[49])
+ node T_181901 = cat(T_181890[48], T_181890[47])
+ node T_181902 = cat(T_181900, T_181901)
+ node T_181903 = cat(T_181899, T_181902)
+ node T_181904 = cat(T_181896, T_181903)
+ node T_181905 = cat(T_181890[46], T_181890[45])
+ node T_181906 = cat(T_181890[44], T_181890[43])
+ node T_181907 = cat(T_181905, T_181906)
+ node T_181908 = cat(T_181890[42], T_181890[41])
+ node T_181909 = cat(T_181890[40], T_181890[39])
+ node T_181910 = cat(T_181908, T_181909)
+ node T_181911 = cat(T_181907, T_181910)
+ node T_181912 = cat(T_181890[38], T_181890[37])
+ node T_181913 = cat(T_181890[36], T_181890[35])
+ node T_181914 = cat(T_181912, T_181913)
+ node T_181915 = cat(T_181890[34], T_181890[33])
+ node T_181916 = cat(T_181890[32], T_181890[31])
+ node T_181917 = cat(T_181915, T_181916)
+ node T_181918 = cat(T_181914, T_181917)
+ node T_181919 = cat(T_181911, T_181918)
+ node T_181920 = cat(T_181904, T_181919)
+ node T_181921 = cat(T_181890[29], T_181890[28])
+ node T_181922 = cat(T_181890[30], T_181921)
+ node T_181923 = cat(T_181890[27], T_181890[26])
+ node T_181924 = cat(T_181890[25], T_181890[24])
+ node T_181925 = cat(T_181923, T_181924)
+ node T_181926 = cat(T_181922, T_181925)
+ node T_181927 = cat(T_181890[23], T_181890[22])
+ node T_181928 = cat(T_181890[21], T_181890[20])
+ node T_181929 = cat(T_181927, T_181928)
+ node T_181930 = cat(T_181890[19], T_181890[18])
+ node T_181931 = cat(T_181890[17], T_181890[16])
+ node T_181932 = cat(T_181930, T_181931)
+ node T_181933 = cat(T_181929, T_181932)
+ node T_181934 = cat(T_181926, T_181933)
+ node T_181935 = cat(T_181890[15], T_181890[14])
+ node T_181936 = cat(T_181890[13], T_181890[12])
+ node T_181937 = cat(T_181935, T_181936)
+ node T_181938 = cat(T_181890[11], T_181890[10])
+ node T_181939 = cat(T_181890[9], T_181890[8])
+ node T_181940 = cat(T_181938, T_181939)
+ node T_181941 = cat(T_181937, T_181940)
+ node T_181942 = cat(T_181890[7], T_181890[6])
+ node T_181943 = cat(T_181890[5], T_181890[4])
+ node T_181944 = cat(T_181942, T_181943)
+ node T_181945 = cat(T_181890[3], T_181890[2])
+ node T_181946 = cat(T_181890[1], T_181890[0])
+ node T_181947 = cat(T_181945, T_181946)
+ node T_181948 = cat(T_181944, T_181947)
+ node T_181949 = cat(T_181941, T_181948)
+ node T_181950 = cat(T_181934, T_181949)
+ node T_181951 = cat(T_181920, T_181950)
+ node T_181952 = and(T_180672, updatePageHit)
+ node T_181953 = and(T_180675, updatePageHit)
+ node T_181954 = and(T_180678, updatePageHit)
+ node T_181955 = and(T_180681, updatePageHit)
+ node T_181956 = and(T_180684, updatePageHit)
+ node T_181957 = and(T_180687, updatePageHit)
+ node T_181958 = and(T_180690, updatePageHit)
+ node T_181959 = and(T_180693, updatePageHit)
+ node T_181960 = and(T_180696, updatePageHit)
+ node T_181961 = and(T_180699, updatePageHit)
+ node T_181962 = and(T_180702, updatePageHit)
+ node T_181963 = and(T_180705, updatePageHit)
+ node T_181964 = and(T_180708, updatePageHit)
+ node T_181965 = and(T_180711, updatePageHit)
+ node T_181966 = and(T_180714, updatePageHit)
+ node T_181967 = and(T_180717, updatePageHit)
+ node T_181968 = and(T_180720, updatePageHit)
+ node T_181969 = and(T_180723, updatePageHit)
+ node T_181970 = and(T_180726, updatePageHit)
+ node T_181971 = and(T_180729, updatePageHit)
+ node T_181972 = and(T_180732, updatePageHit)
+ node T_181973 = and(T_180735, updatePageHit)
+ node T_181974 = and(T_180738, updatePageHit)
+ node T_181975 = and(T_180741, updatePageHit)
+ node T_181976 = and(T_180744, updatePageHit)
+ node T_181977 = and(T_180747, updatePageHit)
+ node T_181978 = and(T_180750, updatePageHit)
+ node T_181979 = and(T_180753, updatePageHit)
+ node T_181980 = and(T_180756, updatePageHit)
+ node T_181981 = and(T_180759, updatePageHit)
+ node T_181982 = and(T_180762, updatePageHit)
+ node T_181983 = and(T_180765, updatePageHit)
+ node T_181984 = and(T_180768, updatePageHit)
+ node T_181985 = and(T_180771, updatePageHit)
+ node T_181986 = and(T_180774, updatePageHit)
+ node T_181987 = and(T_180777, updatePageHit)
+ node T_181988 = and(T_180780, updatePageHit)
+ node T_181989 = and(T_180783, updatePageHit)
+ node T_181990 = and(T_180786, updatePageHit)
+ node T_181991 = and(T_180789, updatePageHit)
+ node T_181992 = and(T_180792, updatePageHit)
+ node T_181993 = and(T_180795, updatePageHit)
+ node T_181994 = and(T_180798, updatePageHit)
+ node T_181995 = and(T_180801, updatePageHit)
+ node T_181996 = and(T_180804, updatePageHit)
+ node T_181997 = and(T_180807, updatePageHit)
+ node T_181998 = and(T_180810, updatePageHit)
+ node T_181999 = and(T_180813, updatePageHit)
+ node T_182000 = and(T_180816, updatePageHit)
+ node T_182001 = and(T_180819, updatePageHit)
+ node T_182002 = and(T_180822, updatePageHit)
+ node T_182003 = and(T_180825, updatePageHit)
+ node T_182004 = and(T_180828, updatePageHit)
+ node T_182005 = and(T_180831, updatePageHit)
+ node T_182006 = and(T_180834, updatePageHit)
+ node T_182007 = and(T_180837, updatePageHit)
+ node T_182008 = and(T_180840, updatePageHit)
+ node T_182009 = and(T_180843, updatePageHit)
+ node T_182010 = and(T_180846, updatePageHit)
+ node T_182011 = and(T_180849, updatePageHit)
+ node T_182012 = and(T_180852, updatePageHit)
+ node T_182013 = and(T_180855, updatePageHit)
+ node T_182014 = eq(T_181952, UInt<1>(0))
+ node T_182015 = eq(T_182014, UInt<1>(0))
+ node T_182016 = eq(T_181953, UInt<1>(0))
+ node T_182017 = eq(T_182016, UInt<1>(0))
+ node T_182018 = eq(T_181954, UInt<1>(0))
+ node T_182019 = eq(T_182018, UInt<1>(0))
+ node T_182020 = eq(T_181955, UInt<1>(0))
+ node T_182021 = eq(T_182020, UInt<1>(0))
+ node T_182022 = eq(T_181956, UInt<1>(0))
+ node T_182023 = eq(T_182022, UInt<1>(0))
+ node T_182024 = eq(T_181957, UInt<1>(0))
+ node T_182025 = eq(T_182024, UInt<1>(0))
+ node T_182026 = eq(T_181958, UInt<1>(0))
+ node T_182027 = eq(T_182026, UInt<1>(0))
+ node T_182028 = eq(T_181959, UInt<1>(0))
+ node T_182029 = eq(T_182028, UInt<1>(0))
+ node T_182030 = eq(T_181960, UInt<1>(0))
+ node T_182031 = eq(T_182030, UInt<1>(0))
+ node T_182032 = eq(T_181961, UInt<1>(0))
+ node T_182033 = eq(T_182032, UInt<1>(0))
+ node T_182034 = eq(T_181962, UInt<1>(0))
+ node T_182035 = eq(T_182034, UInt<1>(0))
+ node T_182036 = eq(T_181963, UInt<1>(0))
+ node T_182037 = eq(T_182036, UInt<1>(0))
+ node T_182038 = eq(T_181964, UInt<1>(0))
+ node T_182039 = eq(T_182038, UInt<1>(0))
+ node T_182040 = eq(T_181965, UInt<1>(0))
+ node T_182041 = eq(T_182040, UInt<1>(0))
+ node T_182042 = eq(T_181966, UInt<1>(0))
+ node T_182043 = eq(T_182042, UInt<1>(0))
+ node T_182044 = eq(T_181967, UInt<1>(0))
+ node T_182045 = eq(T_182044, UInt<1>(0))
+ node T_182046 = eq(T_181968, UInt<1>(0))
+ node T_182047 = eq(T_182046, UInt<1>(0))
+ node T_182048 = eq(T_181969, UInt<1>(0))
+ node T_182049 = eq(T_182048, UInt<1>(0))
+ node T_182050 = eq(T_181970, UInt<1>(0))
+ node T_182051 = eq(T_182050, UInt<1>(0))
+ node T_182052 = eq(T_181971, UInt<1>(0))
+ node T_182053 = eq(T_182052, UInt<1>(0))
+ node T_182054 = eq(T_181972, UInt<1>(0))
+ node T_182055 = eq(T_182054, UInt<1>(0))
+ node T_182056 = eq(T_181973, UInt<1>(0))
+ node T_182057 = eq(T_182056, UInt<1>(0))
+ node T_182058 = eq(T_181974, UInt<1>(0))
+ node T_182059 = eq(T_182058, UInt<1>(0))
+ node T_182060 = eq(T_181975, UInt<1>(0))
+ node T_182061 = eq(T_182060, UInt<1>(0))
+ node T_182062 = eq(T_181976, UInt<1>(0))
+ node T_182063 = eq(T_182062, UInt<1>(0))
+ node T_182064 = eq(T_181977, UInt<1>(0))
+ node T_182065 = eq(T_182064, UInt<1>(0))
+ node T_182066 = eq(T_181978, UInt<1>(0))
+ node T_182067 = eq(T_182066, UInt<1>(0))
+ node T_182068 = eq(T_181979, UInt<1>(0))
+ node T_182069 = eq(T_182068, UInt<1>(0))
+ node T_182070 = eq(T_181980, UInt<1>(0))
+ node T_182071 = eq(T_182070, UInt<1>(0))
+ node T_182072 = eq(T_181981, UInt<1>(0))
+ node T_182073 = eq(T_182072, UInt<1>(0))
+ node T_182074 = eq(T_181982, UInt<1>(0))
+ node T_182075 = eq(T_182074, UInt<1>(0))
+ node T_182076 = eq(T_181983, UInt<1>(0))
+ node T_182077 = eq(T_182076, UInt<1>(0))
+ node T_182078 = eq(T_181984, UInt<1>(0))
+ node T_182079 = eq(T_182078, UInt<1>(0))
+ node T_182080 = eq(T_181985, UInt<1>(0))
+ node T_182081 = eq(T_182080, UInt<1>(0))
+ node T_182082 = eq(T_181986, UInt<1>(0))
+ node T_182083 = eq(T_182082, UInt<1>(0))
+ node T_182084 = eq(T_181987, UInt<1>(0))
+ node T_182085 = eq(T_182084, UInt<1>(0))
+ node T_182086 = eq(T_181988, UInt<1>(0))
+ node T_182087 = eq(T_182086, UInt<1>(0))
+ node T_182088 = eq(T_181989, UInt<1>(0))
+ node T_182089 = eq(T_182088, UInt<1>(0))
+ node T_182090 = eq(T_181990, UInt<1>(0))
+ node T_182091 = eq(T_182090, UInt<1>(0))
+ node T_182092 = eq(T_181991, UInt<1>(0))
+ node T_182093 = eq(T_182092, UInt<1>(0))
+ node T_182094 = eq(T_181992, UInt<1>(0))
+ node T_182095 = eq(T_182094, UInt<1>(0))
+ node T_182096 = eq(T_181993, UInt<1>(0))
+ node T_182097 = eq(T_182096, UInt<1>(0))
+ node T_182098 = eq(T_181994, UInt<1>(0))
+ node T_182099 = eq(T_182098, UInt<1>(0))
+ node T_182100 = eq(T_181995, UInt<1>(0))
+ node T_182101 = eq(T_182100, UInt<1>(0))
+ node T_182102 = eq(T_181996, UInt<1>(0))
+ node T_182103 = eq(T_182102, UInt<1>(0))
+ node T_182104 = eq(T_181997, UInt<1>(0))
+ node T_182105 = eq(T_182104, UInt<1>(0))
+ node T_182106 = eq(T_181998, UInt<1>(0))
+ node T_182107 = eq(T_182106, UInt<1>(0))
+ node T_182108 = eq(T_181999, UInt<1>(0))
+ node T_182109 = eq(T_182108, UInt<1>(0))
+ node T_182110 = eq(T_182000, UInt<1>(0))
+ node T_182111 = eq(T_182110, UInt<1>(0))
+ node T_182112 = eq(T_182001, UInt<1>(0))
+ node T_182113 = eq(T_182112, UInt<1>(0))
+ node T_182114 = eq(T_182002, UInt<1>(0))
+ node T_182115 = eq(T_182114, UInt<1>(0))
+ node T_182116 = eq(T_182003, UInt<1>(0))
+ node T_182117 = eq(T_182116, UInt<1>(0))
+ node T_182118 = eq(T_182004, UInt<1>(0))
+ node T_182119 = eq(T_182118, UInt<1>(0))
+ node T_182120 = eq(T_182005, UInt<1>(0))
+ node T_182121 = eq(T_182120, UInt<1>(0))
+ node T_182122 = eq(T_182006, UInt<1>(0))
+ node T_182123 = eq(T_182122, UInt<1>(0))
+ node T_182124 = eq(T_182007, UInt<1>(0))
+ node T_182125 = eq(T_182124, UInt<1>(0))
+ node T_182126 = eq(T_182008, UInt<1>(0))
+ node T_182127 = eq(T_182126, UInt<1>(0))
+ node T_182128 = eq(T_182009, UInt<1>(0))
+ node T_182129 = eq(T_182128, UInt<1>(0))
+ node T_182130 = eq(T_182010, UInt<1>(0))
+ node T_182131 = eq(T_182130, UInt<1>(0))
+ node T_182132 = eq(T_182011, UInt<1>(0))
+ node T_182133 = eq(T_182132, UInt<1>(0))
+ node T_182134 = eq(T_182012, UInt<1>(0))
+ node T_182135 = eq(T_182134, UInt<1>(0))
+ node T_182136 = eq(T_182013, UInt<1>(0))
+ node T_182137 = eq(T_182136, UInt<1>(0))
+ wire T_182138 : UInt<1>[62]
+ T_182138[0] := T_182015
+ T_182138[1] := T_182017
+ T_182138[2] := T_182019
+ T_182138[3] := T_182021
+ T_182138[4] := T_182023
+ T_182138[5] := T_182025
+ T_182138[6] := T_182027
+ T_182138[7] := T_182029
+ T_182138[8] := T_182031
+ T_182138[9] := T_182033
+ T_182138[10] := T_182035
+ T_182138[11] := T_182037
+ T_182138[12] := T_182039
+ T_182138[13] := T_182041
+ T_182138[14] := T_182043
+ T_182138[15] := T_182045
+ T_182138[16] := T_182047
+ T_182138[17] := T_182049
+ T_182138[18] := T_182051
+ T_182138[19] := T_182053
+ T_182138[20] := T_182055
+ T_182138[21] := T_182057
+ T_182138[22] := T_182059
+ T_182138[23] := T_182061
+ T_182138[24] := T_182063
+ T_182138[25] := T_182065
+ T_182138[26] := T_182067
+ T_182138[27] := T_182069
+ T_182138[28] := T_182071
+ T_182138[29] := T_182073
+ T_182138[30] := T_182075
+ T_182138[31] := T_182077
+ T_182138[32] := T_182079
+ T_182138[33] := T_182081
+ T_182138[34] := T_182083
+ T_182138[35] := T_182085
+ T_182138[36] := T_182087
+ T_182138[37] := T_182089
+ T_182138[38] := T_182091
+ T_182138[39] := T_182093
+ T_182138[40] := T_182095
+ T_182138[41] := T_182097
+ T_182138[42] := T_182099
+ T_182138[43] := T_182101
+ T_182138[44] := T_182103
+ T_182138[45] := T_182105
+ T_182138[46] := T_182107
+ T_182138[47] := T_182109
+ T_182138[48] := T_182111
+ T_182138[49] := T_182113
+ T_182138[50] := T_182115
+ T_182138[51] := T_182117
+ T_182138[52] := T_182119
+ T_182138[53] := T_182121
+ T_182138[54] := T_182123
+ T_182138[55] := T_182125
+ T_182138[56] := T_182127
+ T_182138[57] := T_182129
+ T_182138[58] := T_182131
+ T_182138[59] := T_182133
+ T_182138[60] := T_182135
+ T_182138[61] := T_182137
+ node T_182139 = cat(T_182138[60], T_182138[59])
+ node T_182140 = cat(T_182138[61], T_182139)
+ node T_182141 = cat(T_182138[58], T_182138[57])
+ node T_182142 = cat(T_182138[56], T_182138[55])
+ node T_182143 = cat(T_182141, T_182142)
+ node T_182144 = cat(T_182140, T_182143)
+ node T_182145 = cat(T_182138[54], T_182138[53])
+ node T_182146 = cat(T_182138[52], T_182138[51])
+ node T_182147 = cat(T_182145, T_182146)
+ node T_182148 = cat(T_182138[50], T_182138[49])
+ node T_182149 = cat(T_182138[48], T_182138[47])
+ node T_182150 = cat(T_182148, T_182149)
+ node T_182151 = cat(T_182147, T_182150)
+ node T_182152 = cat(T_182144, T_182151)
+ node T_182153 = cat(T_182138[46], T_182138[45])
+ node T_182154 = cat(T_182138[44], T_182138[43])
+ node T_182155 = cat(T_182153, T_182154)
+ node T_182156 = cat(T_182138[42], T_182138[41])
+ node T_182157 = cat(T_182138[40], T_182138[39])
+ node T_182158 = cat(T_182156, T_182157)
+ node T_182159 = cat(T_182155, T_182158)
+ node T_182160 = cat(T_182138[38], T_182138[37])
+ node T_182161 = cat(T_182138[36], T_182138[35])
+ node T_182162 = cat(T_182160, T_182161)
+ node T_182163 = cat(T_182138[34], T_182138[33])
+ node T_182164 = cat(T_182138[32], T_182138[31])
+ node T_182165 = cat(T_182163, T_182164)
+ node T_182166 = cat(T_182162, T_182165)
+ node T_182167 = cat(T_182159, T_182166)
+ node T_182168 = cat(T_182152, T_182167)
+ node T_182169 = cat(T_182138[29], T_182138[28])
+ node T_182170 = cat(T_182138[30], T_182169)
+ node T_182171 = cat(T_182138[27], T_182138[26])
+ node T_182172 = cat(T_182138[25], T_182138[24])
+ node T_182173 = cat(T_182171, T_182172)
+ node T_182174 = cat(T_182170, T_182173)
+ node T_182175 = cat(T_182138[23], T_182138[22])
+ node T_182176 = cat(T_182138[21], T_182138[20])
+ node T_182177 = cat(T_182175, T_182176)
+ node T_182178 = cat(T_182138[19], T_182138[18])
+ node T_182179 = cat(T_182138[17], T_182138[16])
+ node T_182180 = cat(T_182178, T_182179)
+ node T_182181 = cat(T_182177, T_182180)
+ node T_182182 = cat(T_182174, T_182181)
+ node T_182183 = cat(T_182138[15], T_182138[14])
+ node T_182184 = cat(T_182138[13], T_182138[12])
+ node T_182185 = cat(T_182183, T_182184)
+ node T_182186 = cat(T_182138[11], T_182138[10])
+ node T_182187 = cat(T_182138[9], T_182138[8])
+ node T_182188 = cat(T_182186, T_182187)
+ node T_182189 = cat(T_182185, T_182188)
+ node T_182190 = cat(T_182138[7], T_182138[6])
+ node T_182191 = cat(T_182138[5], T_182138[4])
+ node T_182192 = cat(T_182190, T_182191)
+ node T_182193 = cat(T_182138[3], T_182138[2])
+ node T_182194 = cat(T_182138[1], T_182138[0])
+ node T_182195 = cat(T_182193, T_182194)
+ node T_182196 = cat(T_182192, T_182195)
+ node T_182197 = cat(T_182189, T_182196)
+ node T_182198 = cat(T_182182, T_182197)
+ node T_182199 = cat(T_182168, T_182198)
+ node T_182200 = bit(T_181951, 0)
+ node T_182201 = and(idxValid[0], T_182200)
+ node T_182202 = bit(T_182199, 0)
+ node T_182203 = and(T_182201, T_182202)
+ node T_182204 = bit(T_181951, 1)
+ node T_182205 = and(idxValid[1], T_182204)
+ node T_182206 = bit(T_182199, 1)
+ node T_182207 = and(T_182205, T_182206)
+ node T_182208 = bit(T_181951, 2)
+ node T_182209 = and(idxValid[2], T_182208)
+ node T_182210 = bit(T_182199, 2)
+ node T_182211 = and(T_182209, T_182210)
+ node T_182212 = bit(T_181951, 3)
+ node T_182213 = and(idxValid[3], T_182212)
+ node T_182214 = bit(T_182199, 3)
+ node T_182215 = and(T_182213, T_182214)
+ node T_182216 = bit(T_181951, 4)
+ node T_182217 = and(idxValid[4], T_182216)
+ node T_182218 = bit(T_182199, 4)
+ node T_182219 = and(T_182217, T_182218)
+ node T_182220 = bit(T_181951, 5)
+ node T_182221 = and(idxValid[5], T_182220)
+ node T_182222 = bit(T_182199, 5)
+ node T_182223 = and(T_182221, T_182222)
+ node T_182224 = bit(T_181951, 6)
+ node T_182225 = and(idxValid[6], T_182224)
+ node T_182226 = bit(T_182199, 6)
+ node T_182227 = and(T_182225, T_182226)
+ node T_182228 = bit(T_181951, 7)
+ node T_182229 = and(idxValid[7], T_182228)
+ node T_182230 = bit(T_182199, 7)
+ node T_182231 = and(T_182229, T_182230)
+ node T_182232 = bit(T_181951, 8)
+ node T_182233 = and(idxValid[8], T_182232)
+ node T_182234 = bit(T_182199, 8)
+ node T_182235 = and(T_182233, T_182234)
+ node T_182236 = bit(T_181951, 9)
+ node T_182237 = and(idxValid[9], T_182236)
+ node T_182238 = bit(T_182199, 9)
+ node T_182239 = and(T_182237, T_182238)
+ node T_182240 = bit(T_181951, 10)
+ node T_182241 = and(idxValid[10], T_182240)
+ node T_182242 = bit(T_182199, 10)
+ node T_182243 = and(T_182241, T_182242)
+ node T_182244 = bit(T_181951, 11)
+ node T_182245 = and(idxValid[11], T_182244)
+ node T_182246 = bit(T_182199, 11)
+ node T_182247 = and(T_182245, T_182246)
+ node T_182248 = bit(T_181951, 12)
+ node T_182249 = and(idxValid[12], T_182248)
+ node T_182250 = bit(T_182199, 12)
+ node T_182251 = and(T_182249, T_182250)
+ node T_182252 = bit(T_181951, 13)
+ node T_182253 = and(idxValid[13], T_182252)
+ node T_182254 = bit(T_182199, 13)
+ node T_182255 = and(T_182253, T_182254)
+ node T_182256 = bit(T_181951, 14)
+ node T_182257 = and(idxValid[14], T_182256)
+ node T_182258 = bit(T_182199, 14)
+ node T_182259 = and(T_182257, T_182258)
+ node T_182260 = bit(T_181951, 15)
+ node T_182261 = and(idxValid[15], T_182260)
+ node T_182262 = bit(T_182199, 15)
+ node T_182263 = and(T_182261, T_182262)
+ node T_182264 = bit(T_181951, 16)
+ node T_182265 = and(idxValid[16], T_182264)
+ node T_182266 = bit(T_182199, 16)
+ node T_182267 = and(T_182265, T_182266)
+ node T_182268 = bit(T_181951, 17)
+ node T_182269 = and(idxValid[17], T_182268)
+ node T_182270 = bit(T_182199, 17)
+ node T_182271 = and(T_182269, T_182270)
+ node T_182272 = bit(T_181951, 18)
+ node T_182273 = and(idxValid[18], T_182272)
+ node T_182274 = bit(T_182199, 18)
+ node T_182275 = and(T_182273, T_182274)
+ node T_182276 = bit(T_181951, 19)
+ node T_182277 = and(idxValid[19], T_182276)
+ node T_182278 = bit(T_182199, 19)
+ node T_182279 = and(T_182277, T_182278)
+ node T_182280 = bit(T_181951, 20)
+ node T_182281 = and(idxValid[20], T_182280)
+ node T_182282 = bit(T_182199, 20)
+ node T_182283 = and(T_182281, T_182282)
+ node T_182284 = bit(T_181951, 21)
+ node T_182285 = and(idxValid[21], T_182284)
+ node T_182286 = bit(T_182199, 21)
+ node T_182287 = and(T_182285, T_182286)
+ node T_182288 = bit(T_181951, 22)
+ node T_182289 = and(idxValid[22], T_182288)
+ node T_182290 = bit(T_182199, 22)
+ node T_182291 = and(T_182289, T_182290)
+ node T_182292 = bit(T_181951, 23)
+ node T_182293 = and(idxValid[23], T_182292)
+ node T_182294 = bit(T_182199, 23)
+ node T_182295 = and(T_182293, T_182294)
+ node T_182296 = bit(T_181951, 24)
+ node T_182297 = and(idxValid[24], T_182296)
+ node T_182298 = bit(T_182199, 24)
+ node T_182299 = and(T_182297, T_182298)
+ node T_182300 = bit(T_181951, 25)
+ node T_182301 = and(idxValid[25], T_182300)
+ node T_182302 = bit(T_182199, 25)
+ node T_182303 = and(T_182301, T_182302)
+ node T_182304 = bit(T_181951, 26)
+ node T_182305 = and(idxValid[26], T_182304)
+ node T_182306 = bit(T_182199, 26)
+ node T_182307 = and(T_182305, T_182306)
+ node T_182308 = bit(T_181951, 27)
+ node T_182309 = and(idxValid[27], T_182308)
+ node T_182310 = bit(T_182199, 27)
+ node T_182311 = and(T_182309, T_182310)
+ node T_182312 = bit(T_181951, 28)
+ node T_182313 = and(idxValid[28], T_182312)
+ node T_182314 = bit(T_182199, 28)
+ node T_182315 = and(T_182313, T_182314)
+ node T_182316 = bit(T_181951, 29)
+ node T_182317 = and(idxValid[29], T_182316)
+ node T_182318 = bit(T_182199, 29)
+ node T_182319 = and(T_182317, T_182318)
+ node T_182320 = bit(T_181951, 30)
+ node T_182321 = and(idxValid[30], T_182320)
+ node T_182322 = bit(T_182199, 30)
+ node T_182323 = and(T_182321, T_182322)
+ node T_182324 = bit(T_181951, 31)
+ node T_182325 = and(idxValid[31], T_182324)
+ node T_182326 = bit(T_182199, 31)
+ node T_182327 = and(T_182325, T_182326)
+ node T_182328 = bit(T_181951, 32)
+ node T_182329 = and(idxValid[32], T_182328)
+ node T_182330 = bit(T_182199, 32)
+ node T_182331 = and(T_182329, T_182330)
+ node T_182332 = bit(T_181951, 33)
+ node T_182333 = and(idxValid[33], T_182332)
+ node T_182334 = bit(T_182199, 33)
+ node T_182335 = and(T_182333, T_182334)
+ node T_182336 = bit(T_181951, 34)
+ node T_182337 = and(idxValid[34], T_182336)
+ node T_182338 = bit(T_182199, 34)
+ node T_182339 = and(T_182337, T_182338)
+ node T_182340 = bit(T_181951, 35)
+ node T_182341 = and(idxValid[35], T_182340)
+ node T_182342 = bit(T_182199, 35)
+ node T_182343 = and(T_182341, T_182342)
+ node T_182344 = bit(T_181951, 36)
+ node T_182345 = and(idxValid[36], T_182344)
+ node T_182346 = bit(T_182199, 36)
+ node T_182347 = and(T_182345, T_182346)
+ node T_182348 = bit(T_181951, 37)
+ node T_182349 = and(idxValid[37], T_182348)
+ node T_182350 = bit(T_182199, 37)
+ node T_182351 = and(T_182349, T_182350)
+ node T_182352 = bit(T_181951, 38)
+ node T_182353 = and(idxValid[38], T_182352)
+ node T_182354 = bit(T_182199, 38)
+ node T_182355 = and(T_182353, T_182354)
+ node T_182356 = bit(T_181951, 39)
+ node T_182357 = and(idxValid[39], T_182356)
+ node T_182358 = bit(T_182199, 39)
+ node T_182359 = and(T_182357, T_182358)
+ node T_182360 = bit(T_181951, 40)
+ node T_182361 = and(idxValid[40], T_182360)
+ node T_182362 = bit(T_182199, 40)
+ node T_182363 = and(T_182361, T_182362)
+ node T_182364 = bit(T_181951, 41)
+ node T_182365 = and(idxValid[41], T_182364)
+ node T_182366 = bit(T_182199, 41)
+ node T_182367 = and(T_182365, T_182366)
+ node T_182368 = bit(T_181951, 42)
+ node T_182369 = and(idxValid[42], T_182368)
+ node T_182370 = bit(T_182199, 42)
+ node T_182371 = and(T_182369, T_182370)
+ node T_182372 = bit(T_181951, 43)
+ node T_182373 = and(idxValid[43], T_182372)
+ node T_182374 = bit(T_182199, 43)
+ node T_182375 = and(T_182373, T_182374)
+ node T_182376 = bit(T_181951, 44)
+ node T_182377 = and(idxValid[44], T_182376)
+ node T_182378 = bit(T_182199, 44)
+ node T_182379 = and(T_182377, T_182378)
+ node T_182380 = bit(T_181951, 45)
+ node T_182381 = and(idxValid[45], T_182380)
+ node T_182382 = bit(T_182199, 45)
+ node T_182383 = and(T_182381, T_182382)
+ node T_182384 = bit(T_181951, 46)
+ node T_182385 = and(idxValid[46], T_182384)
+ node T_182386 = bit(T_182199, 46)
+ node T_182387 = and(T_182385, T_182386)
+ node T_182388 = bit(T_181951, 47)
+ node T_182389 = and(idxValid[47], T_182388)
+ node T_182390 = bit(T_182199, 47)
+ node T_182391 = and(T_182389, T_182390)
+ node T_182392 = bit(T_181951, 48)
+ node T_182393 = and(idxValid[48], T_182392)
+ node T_182394 = bit(T_182199, 48)
+ node T_182395 = and(T_182393, T_182394)
+ node T_182396 = bit(T_181951, 49)
+ node T_182397 = and(idxValid[49], T_182396)
+ node T_182398 = bit(T_182199, 49)
+ node T_182399 = and(T_182397, T_182398)
+ node T_182400 = bit(T_181951, 50)
+ node T_182401 = and(idxValid[50], T_182400)
+ node T_182402 = bit(T_182199, 50)
+ node T_182403 = and(T_182401, T_182402)
+ node T_182404 = bit(T_181951, 51)
+ node T_182405 = and(idxValid[51], T_182404)
+ node T_182406 = bit(T_182199, 51)
+ node T_182407 = and(T_182405, T_182406)
+ node T_182408 = bit(T_181951, 52)
+ node T_182409 = and(idxValid[52], T_182408)
+ node T_182410 = bit(T_182199, 52)
+ node T_182411 = and(T_182409, T_182410)
+ node T_182412 = bit(T_181951, 53)
+ node T_182413 = and(idxValid[53], T_182412)
+ node T_182414 = bit(T_182199, 53)
+ node T_182415 = and(T_182413, T_182414)
+ node T_182416 = bit(T_181951, 54)
+ node T_182417 = and(idxValid[54], T_182416)
+ node T_182418 = bit(T_182199, 54)
+ node T_182419 = and(T_182417, T_182418)
+ node T_182420 = bit(T_181951, 55)
+ node T_182421 = and(idxValid[55], T_182420)
+ node T_182422 = bit(T_182199, 55)
+ node T_182423 = and(T_182421, T_182422)
+ node T_182424 = bit(T_181951, 56)
+ node T_182425 = and(idxValid[56], T_182424)
+ node T_182426 = bit(T_182199, 56)
+ node T_182427 = and(T_182425, T_182426)
+ node T_182428 = bit(T_181951, 57)
+ node T_182429 = and(idxValid[57], T_182428)
+ node T_182430 = bit(T_182199, 57)
+ node T_182431 = and(T_182429, T_182430)
+ node T_182432 = bit(T_181951, 58)
+ node T_182433 = and(idxValid[58], T_182432)
+ node T_182434 = bit(T_182199, 58)
+ node T_182435 = and(T_182433, T_182434)
+ node T_182436 = bit(T_181951, 59)
+ node T_182437 = and(idxValid[59], T_182436)
+ node T_182438 = bit(T_182199, 59)
+ node T_182439 = and(T_182437, T_182438)
+ node T_182440 = bit(T_181951, 60)
+ node T_182441 = and(idxValid[60], T_182440)
+ node T_182442 = bit(T_182199, 60)
+ node T_182443 = and(T_182441, T_182442)
+ node T_182444 = bit(T_181951, 61)
+ node T_182445 = and(idxValid[61], T_182444)
+ node T_182446 = bit(T_182199, 61)
+ node T_182447 = and(T_182445, T_182446)
+ wire updateHits : UInt<1>[62]
+ updateHits[0] := T_182203
+ updateHits[1] := T_182207
+ updateHits[2] := T_182211
+ updateHits[3] := T_182215
+ updateHits[4] := T_182219
+ updateHits[5] := T_182223
+ updateHits[6] := T_182227
+ updateHits[7] := T_182231
+ updateHits[8] := T_182235
+ updateHits[9] := T_182239
+ updateHits[10] := T_182243
+ updateHits[11] := T_182247
+ updateHits[12] := T_182251
+ updateHits[13] := T_182255
+ updateHits[14] := T_182259
+ updateHits[15] := T_182263
+ updateHits[16] := T_182267
+ updateHits[17] := T_182271
+ updateHits[18] := T_182275
+ updateHits[19] := T_182279
+ updateHits[20] := T_182283
+ updateHits[21] := T_182287
+ updateHits[22] := T_182291
+ updateHits[23] := T_182295
+ updateHits[24] := T_182299
+ updateHits[25] := T_182303
+ updateHits[26] := T_182307
+ updateHits[27] := T_182311
+ updateHits[28] := T_182315
+ updateHits[29] := T_182319
+ updateHits[30] := T_182323
+ updateHits[31] := T_182327
+ updateHits[32] := T_182331
+ updateHits[33] := T_182335
+ updateHits[34] := T_182339
+ updateHits[35] := T_182343
+ updateHits[36] := T_182347
+ updateHits[37] := T_182351
+ updateHits[38] := T_182355
+ updateHits[39] := T_182359
+ updateHits[40] := T_182363
+ updateHits[41] := T_182367
+ updateHits[42] := T_182371
+ updateHits[43] := T_182375
+ updateHits[44] := T_182379
+ updateHits[45] := T_182383
+ updateHits[46] := T_182387
+ updateHits[47] := T_182391
+ updateHits[48] := T_182395
+ updateHits[49] := T_182399
+ updateHits[50] := T_182403
+ updateHits[51] := T_182407
+ updateHits[52] := T_182411
+ updateHits[53] := T_182415
+ updateHits[54] := T_182419
+ updateHits[55] := T_182423
+ updateHits[56] := T_182427
+ updateHits[57] := T_182431
+ updateHits[58] := T_182435
+ updateHits[59] := T_182439
+ updateHits[60] := T_182443
+ updateHits[61] := T_182447
+ reg T_182448 : UInt<16>, clk, reset
+ onreset T_182448 := UInt<16>(1)
+ when r_btb_update.valid :
+ node T_182449 = bit(T_182448, 0)
+ node T_182450 = bit(T_182448, 2)
+ node T_182451 = xor(T_182449, T_182450)
+ node T_182452 = bit(T_182448, 3)
+ node T_182453 = xor(T_182451, T_182452)
+ node T_182454 = bit(T_182448, 5)
+ node T_182455 = xor(T_182453, T_182454)
+ node T_182456 = bits(T_182448, 15, 1)
+ node T_182457 = cat(T_182455, T_182456)
+ T_182448 := T_182457
+ node T_182458 = eq(updatePageHit, UInt<1>(0))
+ node useUpdatePageHit = eq(T_182458, UInt<1>(0))
+ node doIdxPageRepl = eq(useUpdatePageHit, UInt<1>(0))
+ wire idxPageRepl : UInt
+ wire idxPageUpdateOH : UInt
+ idxPageUpdateOH := idxPageRepl
+ when useUpdatePageHit : idxPageUpdateOH := updatePageHit
+ wire idxPageReplEn : UInt<1>
+ idxPageReplEn := UInt<1>(0)
+ when doIdxPageRepl : idxPageReplEn := idxPageRepl
+ node T_182459 = shr(r_btb_update.bits.pc, 12)
+ node T_182460 = shr(req.bits.addr, 12)
+ node samePage = eq(T_182459, T_182460)
+ node T_182461 = not(idxPageReplEn)
+ node T_182462 = and(pageHit, T_182461)
+ node T_182463 = eq(T_182462, UInt<1>(0))
+ node usePageHit = eq(T_182463, UInt<1>(0))
+ node T_182464 = eq(samePage, UInt<1>(0))
+ node T_182465 = eq(usePageHit, UInt<1>(0))
+ node doTgtPageRepl = and(T_182464, T_182465)
+ node T_182466 = bits(idxPageUpdateOH, 4, 0)
+ node T_182467 = shl(T_182466, 1)
+ node T_182468 = bit(idxPageUpdateOH, 5)
+ node T_182469 = or(T_182467, T_182468)
+ wire tgtPageRepl : UInt<6>
+ tgtPageRepl := T_182469
+ when samePage : tgtPageRepl := idxPageUpdateOH
+ wire T_182470 : UInt<6>
+ T_182470 := tgtPageRepl
+ when usePageHit : T_182470 := pageHit
+ node T_182471 = bits(T_182470, 5, 4)
+ node T_182472 = bits(T_182470, 3, 0)
+ node T_182473 = eq(T_182471, UInt<1>(0))
+ node T_182474 = eq(T_182473, UInt<1>(0))
+ node T_182475 = or(T_182471, T_182472)
+ node T_182476 = bits(T_182475, 3, 2)
+ node T_182477 = bits(T_182475, 1, 0)
+ node T_182478 = eq(T_182476, UInt<1>(0))
+ node T_182479 = eq(T_182478, UInt<1>(0))
+ node T_182480 = or(T_182476, T_182477)
+ node T_182481 = bit(T_182480, 1)
+ node T_182482 = cat(T_182479, T_182481)
+ node tgtPageUpdate = cat(T_182474, T_182482)
+ wire tgtPageReplEn : UInt<1>
+ tgtPageReplEn := UInt<1>(0)
+ when doTgtPageRepl : tgtPageReplEn := tgtPageRepl
+ node doPageRepl = or(doIdxPageRepl, doTgtPageRepl)
+ node pageReplEn = or(idxPageReplEn, tgtPageReplEn)
+ node T_182483 = and(r_btb_update.valid, doPageRepl)
+ reg T_182484 : UInt<3>, clk, reset
+ onreset T_182484 := UInt<3>(0)
+ when T_182483 :
+ node T_182485 = eq(T_182484, UInt<3>(5))
+ node T_182486 = and(UInt<1>(1), T_182485)
+ node T_182487 = addw(T_182484, UInt<1>(1))
+ wire T_182488 : UInt<3>
+ T_182488 := T_182487
+ when T_182486 : T_182488 := UInt<1>(0)
+ T_182484 := T_182488
+ node T_182489 = and(T_182483, T_182485)
+ node T_182490 = dshl(UInt<1>(1), T_182484)
+ idxPageRepl := T_182490
+ when r_btb_update.valid :
+ node T_182491 = eq(req.bits.addr, r_btb_update.bits.target)
+ node T_182492 = eq(r_btb_update.bits.prediction.valid, UInt<1>(0))
+ reg T_182493 : UInt<6>, clk, reset
+ onreset T_182493 := UInt<6>(0)
+ when T_182492 :
+ node T_182494 = eq(T_182493, UInt<6>(61))
+ node T_182495 = and(UInt<1>(1), T_182494)
+ node T_182496 = addw(T_182493, UInt<1>(1))
+ wire T_182497 : UInt<6>
+ T_182497 := T_182496
+ when T_182495 : T_182497 := UInt<1>(0)
+ T_182493 := T_182497
+ node T_182498 = and(T_182492, T_182494)
+ wire T_182499 : UInt<6>
+ T_182499 := T_182493
+ when r_btb_update.bits.prediction.valid : T_182499 := r_btb_update.bits.prediction.bits.entry
+
+
+ node T_182500 = or(T_180672, T_180858)
+ node T_182501 = and(pageReplEn, T_182500)
+ node T_182502 = eq(T_182501, UInt<1>(0))
+ node T_182503 = eq(T_182502, UInt<1>(0))
+ when T_182503 : idxValid[0] := UInt<1>(0)
+
+
+ node T_182504 = or(T_180675, T_180861)
+ node T_182505 = and(pageReplEn, T_182504)
+ node T_182506 = eq(T_182505, UInt<1>(0))
+ node T_182507 = eq(T_182506, UInt<1>(0))
+ when T_182507 : idxValid[1] := UInt<1>(0)
+
+
+ node T_182508 = or(T_180678, T_180864)
+ node T_182509 = and(pageReplEn, T_182508)
+ node T_182510 = eq(T_182509, UInt<1>(0))
+ node T_182511 = eq(T_182510, UInt<1>(0))
+ when T_182511 : idxValid[2] := UInt<1>(0)
+
+
+ node T_182512 = or(T_180681, T_180867)
+ node T_182513 = and(pageReplEn, T_182512)
+ node T_182514 = eq(T_182513, UInt<1>(0))
+ node T_182515 = eq(T_182514, UInt<1>(0))
+ when T_182515 : idxValid[3] := UInt<1>(0)
+
+
+ node T_182516 = or(T_180684, T_180870)
+ node T_182517 = and(pageReplEn, T_182516)
+ node T_182518 = eq(T_182517, UInt<1>(0))
+ node T_182519 = eq(T_182518, UInt<1>(0))
+ when T_182519 : idxValid[4] := UInt<1>(0)
+
+
+ node T_182520 = or(T_180687, T_180873)
+ node T_182521 = and(pageReplEn, T_182520)
+ node T_182522 = eq(T_182521, UInt<1>(0))
+ node T_182523 = eq(T_182522, UInt<1>(0))
+ when T_182523 : idxValid[5] := UInt<1>(0)
+
+
+ node T_182524 = or(T_180690, T_180876)
+ node T_182525 = and(pageReplEn, T_182524)
+ node T_182526 = eq(T_182525, UInt<1>(0))
+ node T_182527 = eq(T_182526, UInt<1>(0))
+ when T_182527 : idxValid[6] := UInt<1>(0)
+
+
+ node T_182528 = or(T_180693, T_180879)
+ node T_182529 = and(pageReplEn, T_182528)
+ node T_182530 = eq(T_182529, UInt<1>(0))
+ node T_182531 = eq(T_182530, UInt<1>(0))
+ when T_182531 : idxValid[7] := UInt<1>(0)
+
+
+ node T_182532 = or(T_180696, T_180882)
+ node T_182533 = and(pageReplEn, T_182532)
+ node T_182534 = eq(T_182533, UInt<1>(0))
+ node T_182535 = eq(T_182534, UInt<1>(0))
+ when T_182535 : idxValid[8] := UInt<1>(0)
+
+
+ node T_182536 = or(T_180699, T_180885)
+ node T_182537 = and(pageReplEn, T_182536)
+ node T_182538 = eq(T_182537, UInt<1>(0))
+ node T_182539 = eq(T_182538, UInt<1>(0))
+ when T_182539 : idxValid[9] := UInt<1>(0)
+
+
+ node T_182540 = or(T_180702, T_180888)
+ node T_182541 = and(pageReplEn, T_182540)
+ node T_182542 = eq(T_182541, UInt<1>(0))
+ node T_182543 = eq(T_182542, UInt<1>(0))
+ when T_182543 : idxValid[10] := UInt<1>(0)
+
+
+ node T_182544 = or(T_180705, T_180891)
+ node T_182545 = and(pageReplEn, T_182544)
+ node T_182546 = eq(T_182545, UInt<1>(0))
+ node T_182547 = eq(T_182546, UInt<1>(0))
+ when T_182547 : idxValid[11] := UInt<1>(0)
+
+
+ node T_182548 = or(T_180708, T_180894)
+ node T_182549 = and(pageReplEn, T_182548)
+ node T_182550 = eq(T_182549, UInt<1>(0))
+ node T_182551 = eq(T_182550, UInt<1>(0))
+ when T_182551 : idxValid[12] := UInt<1>(0)
+
+
+ node T_182552 = or(T_180711, T_180897)
+ node T_182553 = and(pageReplEn, T_182552)
+ node T_182554 = eq(T_182553, UInt<1>(0))
+ node T_182555 = eq(T_182554, UInt<1>(0))
+ when T_182555 : idxValid[13] := UInt<1>(0)
+
+
+ node T_182556 = or(T_180714, T_180900)
+ node T_182557 = and(pageReplEn, T_182556)
+ node T_182558 = eq(T_182557, UInt<1>(0))
+ node T_182559 = eq(T_182558, UInt<1>(0))
+ when T_182559 : idxValid[14] := UInt<1>(0)
+
+
+ node T_182560 = or(T_180717, T_180903)
+ node T_182561 = and(pageReplEn, T_182560)
+ node T_182562 = eq(T_182561, UInt<1>(0))
+ node T_182563 = eq(T_182562, UInt<1>(0))
+ when T_182563 : idxValid[15] := UInt<1>(0)
+
+
+ node T_182564 = or(T_180720, T_180906)
+ node T_182565 = and(pageReplEn, T_182564)
+ node T_182566 = eq(T_182565, UInt<1>(0))
+ node T_182567 = eq(T_182566, UInt<1>(0))
+ when T_182567 : idxValid[16] := UInt<1>(0)
+
+
+ node T_182568 = or(T_180723, T_180909)
+ node T_182569 = and(pageReplEn, T_182568)
+ node T_182570 = eq(T_182569, UInt<1>(0))
+ node T_182571 = eq(T_182570, UInt<1>(0))
+ when T_182571 : idxValid[17] := UInt<1>(0)
+
+
+ node T_182572 = or(T_180726, T_180912)
+ node T_182573 = and(pageReplEn, T_182572)
+ node T_182574 = eq(T_182573, UInt<1>(0))
+ node T_182575 = eq(T_182574, UInt<1>(0))
+ when T_182575 : idxValid[18] := UInt<1>(0)
+
+
+ node T_182576 = or(T_180729, T_180915)
+ node T_182577 = and(pageReplEn, T_182576)
+ node T_182578 = eq(T_182577, UInt<1>(0))
+ node T_182579 = eq(T_182578, UInt<1>(0))
+ when T_182579 : idxValid[19] := UInt<1>(0)
+
+
+ node T_182580 = or(T_180732, T_180918)
+ node T_182581 = and(pageReplEn, T_182580)
+ node T_182582 = eq(T_182581, UInt<1>(0))
+ node T_182583 = eq(T_182582, UInt<1>(0))
+ when T_182583 : idxValid[20] := UInt<1>(0)
+
+
+ node T_182584 = or(T_180735, T_180921)
+ node T_182585 = and(pageReplEn, T_182584)
+ node T_182586 = eq(T_182585, UInt<1>(0))
+ node T_182587 = eq(T_182586, UInt<1>(0))
+ when T_182587 : idxValid[21] := UInt<1>(0)
+
+
+ node T_182588 = or(T_180738, T_180924)
+ node T_182589 = and(pageReplEn, T_182588)
+ node T_182590 = eq(T_182589, UInt<1>(0))
+ node T_182591 = eq(T_182590, UInt<1>(0))
+ when T_182591 : idxValid[22] := UInt<1>(0)
+
+
+ node T_182592 = or(T_180741, T_180927)
+ node T_182593 = and(pageReplEn, T_182592)
+ node T_182594 = eq(T_182593, UInt<1>(0))
+ node T_182595 = eq(T_182594, UInt<1>(0))
+ when T_182595 : idxValid[23] := UInt<1>(0)
+
+
+ node T_182596 = or(T_180744, T_180930)
+ node T_182597 = and(pageReplEn, T_182596)
+ node T_182598 = eq(T_182597, UInt<1>(0))
+ node T_182599 = eq(T_182598, UInt<1>(0))
+ when T_182599 : idxValid[24] := UInt<1>(0)
+
+
+ node T_182600 = or(T_180747, T_180933)
+ node T_182601 = and(pageReplEn, T_182600)
+ node T_182602 = eq(T_182601, UInt<1>(0))
+ node T_182603 = eq(T_182602, UInt<1>(0))
+ when T_182603 : idxValid[25] := UInt<1>(0)
+
+
+ node T_182604 = or(T_180750, T_180936)
+ node T_182605 = and(pageReplEn, T_182604)
+ node T_182606 = eq(T_182605, UInt<1>(0))
+ node T_182607 = eq(T_182606, UInt<1>(0))
+ when T_182607 : idxValid[26] := UInt<1>(0)
+
+
+ node T_182608 = or(T_180753, T_180939)
+ node T_182609 = and(pageReplEn, T_182608)
+ node T_182610 = eq(T_182609, UInt<1>(0))
+ node T_182611 = eq(T_182610, UInt<1>(0))
+ when T_182611 : idxValid[27] := UInt<1>(0)
+
+
+ node T_182612 = or(T_180756, T_180942)
+ node T_182613 = and(pageReplEn, T_182612)
+ node T_182614 = eq(T_182613, UInt<1>(0))
+ node T_182615 = eq(T_182614, UInt<1>(0))
+ when T_182615 : idxValid[28] := UInt<1>(0)
+
+
+ node T_182616 = or(T_180759, T_180945)
+ node T_182617 = and(pageReplEn, T_182616)
+ node T_182618 = eq(T_182617, UInt<1>(0))
+ node T_182619 = eq(T_182618, UInt<1>(0))
+ when T_182619 : idxValid[29] := UInt<1>(0)
+
+
+ node T_182620 = or(T_180762, T_180948)
+ node T_182621 = and(pageReplEn, T_182620)
+ node T_182622 = eq(T_182621, UInt<1>(0))
+ node T_182623 = eq(T_182622, UInt<1>(0))
+ when T_182623 : idxValid[30] := UInt<1>(0)
+
+
+ node T_182624 = or(T_180765, T_180951)
+ node T_182625 = and(pageReplEn, T_182624)
+ node T_182626 = eq(T_182625, UInt<1>(0))
+ node T_182627 = eq(T_182626, UInt<1>(0))
+ when T_182627 : idxValid[31] := UInt<1>(0)
+
+
+ node T_182628 = or(T_180768, T_180954)
+ node T_182629 = and(pageReplEn, T_182628)
+ node T_182630 = eq(T_182629, UInt<1>(0))
+ node T_182631 = eq(T_182630, UInt<1>(0))
+ when T_182631 : idxValid[32] := UInt<1>(0)
+
+
+ node T_182632 = or(T_180771, T_180957)
+ node T_182633 = and(pageReplEn, T_182632)
+ node T_182634 = eq(T_182633, UInt<1>(0))
+ node T_182635 = eq(T_182634, UInt<1>(0))
+ when T_182635 : idxValid[33] := UInt<1>(0)
+
+
+ node T_182636 = or(T_180774, T_180960)
+ node T_182637 = and(pageReplEn, T_182636)
+ node T_182638 = eq(T_182637, UInt<1>(0))
+ node T_182639 = eq(T_182638, UInt<1>(0))
+ when T_182639 : idxValid[34] := UInt<1>(0)
+
+
+ node T_182640 = or(T_180777, T_180963)
+ node T_182641 = and(pageReplEn, T_182640)
+ node T_182642 = eq(T_182641, UInt<1>(0))
+ node T_182643 = eq(T_182642, UInt<1>(0))
+ when T_182643 : idxValid[35] := UInt<1>(0)
+
+
+ node T_182644 = or(T_180780, T_180966)
+ node T_182645 = and(pageReplEn, T_182644)
+ node T_182646 = eq(T_182645, UInt<1>(0))
+ node T_182647 = eq(T_182646, UInt<1>(0))
+ when T_182647 : idxValid[36] := UInt<1>(0)
+
+
+ node T_182648 = or(T_180783, T_180969)
+ node T_182649 = and(pageReplEn, T_182648)
+ node T_182650 = eq(T_182649, UInt<1>(0))
+ node T_182651 = eq(T_182650, UInt<1>(0))
+ when T_182651 : idxValid[37] := UInt<1>(0)
+
+
+ node T_182652 = or(T_180786, T_180972)
+ node T_182653 = and(pageReplEn, T_182652)
+ node T_182654 = eq(T_182653, UInt<1>(0))
+ node T_182655 = eq(T_182654, UInt<1>(0))
+ when T_182655 : idxValid[38] := UInt<1>(0)
+
+
+ node T_182656 = or(T_180789, T_180975)
+ node T_182657 = and(pageReplEn, T_182656)
+ node T_182658 = eq(T_182657, UInt<1>(0))
+ node T_182659 = eq(T_182658, UInt<1>(0))
+ when T_182659 : idxValid[39] := UInt<1>(0)
+
+
+ node T_182660 = or(T_180792, T_180978)
+ node T_182661 = and(pageReplEn, T_182660)
+ node T_182662 = eq(T_182661, UInt<1>(0))
+ node T_182663 = eq(T_182662, UInt<1>(0))
+ when T_182663 : idxValid[40] := UInt<1>(0)
+
+
+ node T_182664 = or(T_180795, T_180981)
+ node T_182665 = and(pageReplEn, T_182664)
+ node T_182666 = eq(T_182665, UInt<1>(0))
+ node T_182667 = eq(T_182666, UInt<1>(0))
+ when T_182667 : idxValid[41] := UInt<1>(0)
+
+
+ node T_182668 = or(T_180798, T_180984)
+ node T_182669 = and(pageReplEn, T_182668)
+ node T_182670 = eq(T_182669, UInt<1>(0))
+ node T_182671 = eq(T_182670, UInt<1>(0))
+ when T_182671 : idxValid[42] := UInt<1>(0)
+
+
+ node T_182672 = or(T_180801, T_180987)
+ node T_182673 = and(pageReplEn, T_182672)
+ node T_182674 = eq(T_182673, UInt<1>(0))
+ node T_182675 = eq(T_182674, UInt<1>(0))
+ when T_182675 : idxValid[43] := UInt<1>(0)
+
+
+ node T_182676 = or(T_180804, T_180990)
+ node T_182677 = and(pageReplEn, T_182676)
+ node T_182678 = eq(T_182677, UInt<1>(0))
+ node T_182679 = eq(T_182678, UInt<1>(0))
+ when T_182679 : idxValid[44] := UInt<1>(0)
+
+
+ node T_182680 = or(T_180807, T_180993)
+ node T_182681 = and(pageReplEn, T_182680)
+ node T_182682 = eq(T_182681, UInt<1>(0))
+ node T_182683 = eq(T_182682, UInt<1>(0))
+ when T_182683 : idxValid[45] := UInt<1>(0)
+
+
+ node T_182684 = or(T_180810, T_180996)
+ node T_182685 = and(pageReplEn, T_182684)
+ node T_182686 = eq(T_182685, UInt<1>(0))
+ node T_182687 = eq(T_182686, UInt<1>(0))
+ when T_182687 : idxValid[46] := UInt<1>(0)
+
+
+ node T_182688 = or(T_180813, T_180999)
+ node T_182689 = and(pageReplEn, T_182688)
+ node T_182690 = eq(T_182689, UInt<1>(0))
+ node T_182691 = eq(T_182690, UInt<1>(0))
+ when T_182691 : idxValid[47] := UInt<1>(0)
+
+
+ node T_182692 = or(T_180816, T_181002)
+ node T_182693 = and(pageReplEn, T_182692)
+ node T_182694 = eq(T_182693, UInt<1>(0))
+ node T_182695 = eq(T_182694, UInt<1>(0))
+ when T_182695 : idxValid[48] := UInt<1>(0)
+
+
+ node T_182696 = or(T_180819, T_181005)
+ node T_182697 = and(pageReplEn, T_182696)
+ node T_182698 = eq(T_182697, UInt<1>(0))
+ node T_182699 = eq(T_182698, UInt<1>(0))
+ when T_182699 : idxValid[49] := UInt<1>(0)
+
+
+ node T_182700 = or(T_180822, T_181008)
+ node T_182701 = and(pageReplEn, T_182700)
+ node T_182702 = eq(T_182701, UInt<1>(0))
+ node T_182703 = eq(T_182702, UInt<1>(0))
+ when T_182703 : idxValid[50] := UInt<1>(0)
+
+
+ node T_182704 = or(T_180825, T_181011)
+ node T_182705 = and(pageReplEn, T_182704)
+ node T_182706 = eq(T_182705, UInt<1>(0))
+ node T_182707 = eq(T_182706, UInt<1>(0))
+ when T_182707 : idxValid[51] := UInt<1>(0)
+
+
+ node T_182708 = or(T_180828, T_181014)
+ node T_182709 = and(pageReplEn, T_182708)
+ node T_182710 = eq(T_182709, UInt<1>(0))
+ node T_182711 = eq(T_182710, UInt<1>(0))
+ when T_182711 : idxValid[52] := UInt<1>(0)
+
+
+ node T_182712 = or(T_180831, T_181017)
+ node T_182713 = and(pageReplEn, T_182712)
+ node T_182714 = eq(T_182713, UInt<1>(0))
+ node T_182715 = eq(T_182714, UInt<1>(0))
+ when T_182715 : idxValid[53] := UInt<1>(0)
+
+
+ node T_182716 = or(T_180834, T_181020)
+ node T_182717 = and(pageReplEn, T_182716)
+ node T_182718 = eq(T_182717, UInt<1>(0))
+ node T_182719 = eq(T_182718, UInt<1>(0))
+ when T_182719 : idxValid[54] := UInt<1>(0)
+
+
+ node T_182720 = or(T_180837, T_181023)
+ node T_182721 = and(pageReplEn, T_182720)
+ node T_182722 = eq(T_182721, UInt<1>(0))
+ node T_182723 = eq(T_182722, UInt<1>(0))
+ when T_182723 : idxValid[55] := UInt<1>(0)
+
+
+ node T_182724 = or(T_180840, T_181026)
+ node T_182725 = and(pageReplEn, T_182724)
+ node T_182726 = eq(T_182725, UInt<1>(0))
+ node T_182727 = eq(T_182726, UInt<1>(0))
+ when T_182727 : idxValid[56] := UInt<1>(0)
+
+
+ node T_182728 = or(T_180843, T_181029)
+ node T_182729 = and(pageReplEn, T_182728)
+ node T_182730 = eq(T_182729, UInt<1>(0))
+ node T_182731 = eq(T_182730, UInt<1>(0))
+ when T_182731 : idxValid[57] := UInt<1>(0)
+
+
+ node T_182732 = or(T_180846, T_181032)
+ node T_182733 = and(pageReplEn, T_182732)
+ node T_182734 = eq(T_182733, UInt<1>(0))
+ node T_182735 = eq(T_182734, UInt<1>(0))
+ when T_182735 : idxValid[58] := UInt<1>(0)
+
+
+ node T_182736 = or(T_180849, T_181035)
+ node T_182737 = and(pageReplEn, T_182736)
+ node T_182738 = eq(T_182737, UInt<1>(0))
+ node T_182739 = eq(T_182738, UInt<1>(0))
+ when T_182739 : idxValid[59] := UInt<1>(0)
+
+
+ node T_182740 = or(T_180852, T_181038)
+ node T_182741 = and(pageReplEn, T_182740)
+ node T_182742 = eq(T_182741, UInt<1>(0))
+ node T_182743 = eq(T_182742, UInt<1>(0))
+ when T_182743 : idxValid[60] := UInt<1>(0)
+
+
+ node T_182744 = or(T_180855, T_181041)
+ node T_182745 = and(pageReplEn, T_182744)
+ node T_182746 = eq(T_182745, UInt<1>(0))
+ node T_182747 = eq(T_182746, UInt<1>(0))
+ when T_182747 : idxValid[61] := UInt<1>(0)
+ infer accessor T_182748 = idxValid[T_182499]
+ T_182748 := UInt<1>(1)
+ infer accessor T_182749 = idxs[T_182499]
+ T_182749 := r_btb_update.bits.pc
+ infer accessor T_182750 = tgts[T_182499]
+ T_182750 := req.bits.addr
+ infer accessor T_182751 = idxPages[T_182499]
+ T_182751 := UInt<1>(0)
+ infer accessor T_182752 = tgtPages[T_182499]
+ T_182752 := tgtPageUpdate
+ infer accessor T_182753 = useRAS[T_182499]
+ T_182753 := r_btb_update.bits.isReturn
+ infer accessor T_182754 = isJump[T_182499]
+ T_182754 := r_btb_update.bits.isJump
+ infer accessor T_182755 = brIdx[T_182499]
+ T_182755 := UInt<1>(0)
+ node T_182756 = and(idxPageUpdateOH, UInt<6>(21))
+ node T_182757 = eq(T_182756, UInt<1>(0))
+ node T_182758 = eq(T_182757, UInt<1>(0))
+ wire T_182759 : UInt<1>
+ T_182759 := doTgtPageRepl
+ when T_182758 : T_182759 := doIdxPageRepl
+ node T_182760 = shr(r_btb_update.bits.pc, 12)
+ node T_182761 = shr(req.bits.addr, 12)
+ wire T_182762 : UInt<27>
+ T_182762 := T_182761
+ when T_182758 : T_182762 := T_182760
+
+
+ node T_182763 = bit(pageReplEn, 0)
+ node T_182764 = and(T_182759, T_182763)
+ when T_182764 :
+ infer accessor T_182765 = pages[UInt<1>(0)]
+ T_182765 := T_182762
+
+
+ node T_182766 = bit(pageReplEn, 2)
+ node T_182767 = and(T_182759, T_182766)
+ when T_182767 :
+ infer accessor T_182768 = pages[UInt<2>(2)]
+ T_182768 := T_182762
+
+
+ node T_182769 = bit(pageReplEn, 4)
+ node T_182770 = and(T_182759, T_182769)
+ when T_182770 :
+ infer accessor T_182771 = pages[UInt<3>(4)]
+ T_182771 := T_182762
+ wire T_182772 : UInt<1>
+ T_182772 := doIdxPageRepl
+ when T_182758 : T_182772 := doTgtPageRepl
+ node T_182773 = shr(req.bits.addr, 12)
+ node T_182774 = shr(r_btb_update.bits.pc, 12)
+ wire T_182775 : UInt<27>
+ T_182775 := T_182774
+ when T_182758 : T_182775 := T_182773
+
+
+ node T_182776 = bit(pageReplEn, 1)
+ node T_182777 = and(T_182772, T_182776)
+ when T_182777 :
+ infer accessor T_182778 = pages[UInt<1>(1)]
+ T_182778 := T_182775
+
+
+ node T_182779 = bit(pageReplEn, 3)
+ node T_182780 = and(T_182772, T_182779)
+ when T_182780 :
+ infer accessor T_182781 = pages[UInt<2>(3)]
+ T_182781 := T_182775
+
+
+ node T_182782 = bit(pageReplEn, 5)
+ node T_182783 = and(T_182772, T_182782)
+ when T_182783 :
+ infer accessor T_182784 = pages[UInt<3>(5)]
+ T_182784 := T_182775
+ when doPageRepl :
+ node T_182785 = or(pageValid, pageReplEn)
+ pageValid := T_182785
+ when invalidate :
+ idxValid := UInt<1>(0)
+ pageValid := UInt<1>(0)
+ node T_182786 = or(hits[0], hits[1])
+ node T_182787 = or(T_182786, hits[2])
+ node T_182788 = or(T_182787, hits[3])
+ node T_182789 = or(T_182788, hits[4])
+ node T_182790 = or(T_182789, hits[5])
+ node T_182791 = or(T_182790, hits[6])
+ node T_182792 = or(T_182791, hits[7])
+ node T_182793 = or(T_182792, hits[8])
+ node T_182794 = or(T_182793, hits[9])
+ node T_182795 = or(T_182794, hits[10])
+ node T_182796 = or(T_182795, hits[11])
+ node T_182797 = or(T_182796, hits[12])
+ node T_182798 = or(T_182797, hits[13])
+ node T_182799 = or(T_182798, hits[14])
+ node T_182800 = or(T_182799, hits[15])
+ node T_182801 = or(T_182800, hits[16])
+ node T_182802 = or(T_182801, hits[17])
+ node T_182803 = or(T_182802, hits[18])
+ node T_182804 = or(T_182803, hits[19])
+ node T_182805 = or(T_182804, hits[20])
+ node T_182806 = or(T_182805, hits[21])
+ node T_182807 = or(T_182806, hits[22])
+ node T_182808 = or(T_182807, hits[23])
+ node T_182809 = or(T_182808, hits[24])
+ node T_182810 = or(T_182809, hits[25])
+ node T_182811 = or(T_182810, hits[26])
+ node T_182812 = or(T_182811, hits[27])
+ node T_182813 = or(T_182812, hits[28])
+ node T_182814 = or(T_182813, hits[29])
+ node T_182815 = or(T_182814, hits[30])
+ node T_182816 = or(T_182815, hits[31])
+ node T_182817 = or(T_182816, hits[32])
+ node T_182818 = or(T_182817, hits[33])
+ node T_182819 = or(T_182818, hits[34])
+ node T_182820 = or(T_182819, hits[35])
+ node T_182821 = or(T_182820, hits[36])
+ node T_182822 = or(T_182821, hits[37])
+ node T_182823 = or(T_182822, hits[38])
+ node T_182824 = or(T_182823, hits[39])
+ node T_182825 = or(T_182824, hits[40])
+ node T_182826 = or(T_182825, hits[41])
+ node T_182827 = or(T_182826, hits[42])
+ node T_182828 = or(T_182827, hits[43])
+ node T_182829 = or(T_182828, hits[44])
+ node T_182830 = or(T_182829, hits[45])
+ node T_182831 = or(T_182830, hits[46])
+ node T_182832 = or(T_182831, hits[47])
+ node T_182833 = or(T_182832, hits[48])
+ node T_182834 = or(T_182833, hits[49])
+ node T_182835 = or(T_182834, hits[50])
+ node T_182836 = or(T_182835, hits[51])
+ node T_182837 = or(T_182836, hits[52])
+ node T_182838 = or(T_182837, hits[53])
+ node T_182839 = or(T_182838, hits[54])
+ node T_182840 = or(T_182839, hits[55])
+ node T_182841 = or(T_182840, hits[56])
+ node T_182842 = or(T_182841, hits[57])
+ node T_182843 = or(T_182842, hits[58])
+ node T_182844 = or(T_182843, hits[59])
+ node T_182845 = or(T_182844, hits[60])
+ node T_182846 = or(T_182845, hits[61])
+ resp.valid := T_182846
+ resp.bits.taken := resp.valid
+ wire T_182847 : UInt<1>
+ T_182847 := UInt<1>(0)
+ when hits[0] : T_182847 := T_180858
+ wire T_182848 : UInt<1>
+ T_182848 := UInt<1>(0)
+ when hits[1] : T_182848 := T_180861
+ wire T_182849 : UInt<1>
+ T_182849 := UInt<1>(0)
+ when hits[2] : T_182849 := T_180864
+ wire T_182850 : UInt<1>
+ T_182850 := UInt<1>(0)
+ when hits[3] : T_182850 := T_180867
+ wire T_182851 : UInt<1>
+ T_182851 := UInt<1>(0)
+ when hits[4] : T_182851 := T_180870
+ wire T_182852 : UInt<1>
+ T_182852 := UInt<1>(0)
+ when hits[5] : T_182852 := T_180873
+ wire T_182853 : UInt<1>
+ T_182853 := UInt<1>(0)
+ when hits[6] : T_182853 := T_180876
+ wire T_182854 : UInt<1>
+ T_182854 := UInt<1>(0)
+ when hits[7] : T_182854 := T_180879
+ wire T_182855 : UInt<1>
+ T_182855 := UInt<1>(0)
+ when hits[8] : T_182855 := T_180882
+ wire T_182856 : UInt<1>
+ T_182856 := UInt<1>(0)
+ when hits[9] : T_182856 := T_180885
+ wire T_182857 : UInt<1>
+ T_182857 := UInt<1>(0)
+ when hits[10] : T_182857 := T_180888
+ wire T_182858 : UInt<1>
+ T_182858 := UInt<1>(0)
+ when hits[11] : T_182858 := T_180891
+ wire T_182859 : UInt<1>
+ T_182859 := UInt<1>(0)
+ when hits[12] : T_182859 := T_180894
+ wire T_182860 : UInt<1>
+ T_182860 := UInt<1>(0)
+ when hits[13] : T_182860 := T_180897
+ wire T_182861 : UInt<1>
+ T_182861 := UInt<1>(0)
+ when hits[14] : T_182861 := T_180900
+ wire T_182862 : UInt<1>
+ T_182862 := UInt<1>(0)
+ when hits[15] : T_182862 := T_180903
+ wire T_182863 : UInt<1>
+ T_182863 := UInt<1>(0)
+ when hits[16] : T_182863 := T_180906
+ wire T_182864 : UInt<1>
+ T_182864 := UInt<1>(0)
+ when hits[17] : T_182864 := T_180909
+ wire T_182865 : UInt<1>
+ T_182865 := UInt<1>(0)
+ when hits[18] : T_182865 := T_180912
+ wire T_182866 : UInt<1>
+ T_182866 := UInt<1>(0)
+ when hits[19] : T_182866 := T_180915
+ wire T_182867 : UInt<1>
+ T_182867 := UInt<1>(0)
+ when hits[20] : T_182867 := T_180918
+ wire T_182868 : UInt<1>
+ T_182868 := UInt<1>(0)
+ when hits[21] : T_182868 := T_180921
+ wire T_182869 : UInt<1>
+ T_182869 := UInt<1>(0)
+ when hits[22] : T_182869 := T_180924
+ wire T_182870 : UInt<1>
+ T_182870 := UInt<1>(0)
+ when hits[23] : T_182870 := T_180927
+ wire T_182871 : UInt<1>
+ T_182871 := UInt<1>(0)
+ when hits[24] : T_182871 := T_180930
+ wire T_182872 : UInt<1>
+ T_182872 := UInt<1>(0)
+ when hits[25] : T_182872 := T_180933
+ wire T_182873 : UInt<1>
+ T_182873 := UInt<1>(0)
+ when hits[26] : T_182873 := T_180936
+ wire T_182874 : UInt<1>
+ T_182874 := UInt<1>(0)
+ when hits[27] : T_182874 := T_180939
+ wire T_182875 : UInt<1>
+ T_182875 := UInt<1>(0)
+ when hits[28] : T_182875 := T_180942
+ wire T_182876 : UInt<1>
+ T_182876 := UInt<1>(0)
+ when hits[29] : T_182876 := T_180945
+ wire T_182877 : UInt<1>
+ T_182877 := UInt<1>(0)
+ when hits[30] : T_182877 := T_180948
+ wire T_182878 : UInt<1>
+ T_182878 := UInt<1>(0)
+ when hits[31] : T_182878 := T_180951
+ wire T_182879 : UInt<1>
+ T_182879 := UInt<1>(0)
+ when hits[32] : T_182879 := T_180954
+ wire T_182880 : UInt<1>
+ T_182880 := UInt<1>(0)
+ when hits[33] : T_182880 := T_180957
+ wire T_182881 : UInt<1>
+ T_182881 := UInt<1>(0)
+ when hits[34] : T_182881 := T_180960
+ wire T_182882 : UInt<1>
+ T_182882 := UInt<1>(0)
+ when hits[35] : T_182882 := T_180963
+ wire T_182883 : UInt<1>
+ T_182883 := UInt<1>(0)
+ when hits[36] : T_182883 := T_180966
+ wire T_182884 : UInt<1>
+ T_182884 := UInt<1>(0)
+ when hits[37] : T_182884 := T_180969
+ wire T_182885 : UInt<1>
+ T_182885 := UInt<1>(0)
+ when hits[38] : T_182885 := T_180972
+ wire T_182886 : UInt<1>
+ T_182886 := UInt<1>(0)
+ when hits[39] : T_182886 := T_180975
+ wire T_182887 : UInt<1>
+ T_182887 := UInt<1>(0)
+ when hits[40] : T_182887 := T_180978
+ wire T_182888 : UInt<1>
+ T_182888 := UInt<1>(0)
+ when hits[41] : T_182888 := T_180981
+ wire T_182889 : UInt<1>
+ T_182889 := UInt<1>(0)
+ when hits[42] : T_182889 := T_180984
+ wire T_182890 : UInt<1>
+ T_182890 := UInt<1>(0)
+ when hits[43] : T_182890 := T_180987
+ wire T_182891 : UInt<1>
+ T_182891 := UInt<1>(0)
+ when hits[44] : T_182891 := T_180990
+ wire T_182892 : UInt<1>
+ T_182892 := UInt<1>(0)
+ when hits[45] : T_182892 := T_180993
+ wire T_182893 : UInt<1>
+ T_182893 := UInt<1>(0)
+ when hits[46] : T_182893 := T_180996
+ wire T_182894 : UInt<1>
+ T_182894 := UInt<1>(0)
+ when hits[47] : T_182894 := T_180999
+ wire T_182895 : UInt<1>
+ T_182895 := UInt<1>(0)
+ when hits[48] : T_182895 := T_181002
+ wire T_182896 : UInt<1>
+ T_182896 := UInt<1>(0)
+ when hits[49] : T_182896 := T_181005
+ wire T_182897 : UInt<1>
+ T_182897 := UInt<1>(0)
+ when hits[50] : T_182897 := T_181008
+ wire T_182898 : UInt<1>
+ T_182898 := UInt<1>(0)
+ when hits[51] : T_182898 := T_181011
+ wire T_182899 : UInt<1>
+ T_182899 := UInt<1>(0)
+ when hits[52] : T_182899 := T_181014
+ wire T_182900 : UInt<1>
+ T_182900 := UInt<1>(0)
+ when hits[53] : T_182900 := T_181017
+ wire T_182901 : UInt<1>
+ T_182901 := UInt<1>(0)
+ when hits[54] : T_182901 := T_181020
+ wire T_182902 : UInt<1>
+ T_182902 := UInt<1>(0)
+ when hits[55] : T_182902 := T_181023
+ wire T_182903 : UInt<1>
+ T_182903 := UInt<1>(0)
+ when hits[56] : T_182903 := T_181026
+ wire T_182904 : UInt<1>
+ T_182904 := UInt<1>(0)
+ when hits[57] : T_182904 := T_181029
+ wire T_182905 : UInt<1>
+ T_182905 := UInt<1>(0)
+ when hits[58] : T_182905 := T_181032
+ wire T_182906 : UInt<1>
+ T_182906 := UInt<1>(0)
+ when hits[59] : T_182906 := T_181035
+ wire T_182907 : UInt<1>
+ T_182907 := UInt<1>(0)
+ when hits[60] : T_182907 := T_181038
+ wire T_182908 : UInt<1>
+ T_182908 := UInt<1>(0)
+ when hits[61] : T_182908 := T_181041
+ node T_182909 = or(T_182847, T_182848)
+ node T_182910 = or(T_182909, T_182849)
+ node T_182911 = or(T_182910, T_182850)
+ node T_182912 = or(T_182911, T_182851)
+ node T_182913 = or(T_182912, T_182852)
+ node T_182914 = or(T_182913, T_182853)
+ node T_182915 = or(T_182914, T_182854)
+ node T_182916 = or(T_182915, T_182855)
+ node T_182917 = or(T_182916, T_182856)
+ node T_182918 = or(T_182917, T_182857)
+ node T_182919 = or(T_182918, T_182858)
+ node T_182920 = or(T_182919, T_182859)
+ node T_182921 = or(T_182920, T_182860)
+ node T_182922 = or(T_182921, T_182861)
+ node T_182923 = or(T_182922, T_182862)
+ node T_182924 = or(T_182923, T_182863)
+ node T_182925 = or(T_182924, T_182864)
+ node T_182926 = or(T_182925, T_182865)
+ node T_182927 = or(T_182926, T_182866)
+ node T_182928 = or(T_182927, T_182867)
+ node T_182929 = or(T_182928, T_182868)
+ node T_182930 = or(T_182929, T_182869)
+ node T_182931 = or(T_182930, T_182870)
+ node T_182932 = or(T_182931, T_182871)
+ node T_182933 = or(T_182932, T_182872)
+ node T_182934 = or(T_182933, T_182873)
+ node T_182935 = or(T_182934, T_182874)
+ node T_182936 = or(T_182935, T_182875)
+ node T_182937 = or(T_182936, T_182876)
+ node T_182938 = or(T_182937, T_182877)
+ node T_182939 = or(T_182938, T_182878)
+ node T_182940 = or(T_182939, T_182879)
+ node T_182941 = or(T_182940, T_182880)
+ node T_182942 = or(T_182941, T_182881)
+ node T_182943 = or(T_182942, T_182882)
+ node T_182944 = or(T_182943, T_182883)
+ node T_182945 = or(T_182944, T_182884)
+ node T_182946 = or(T_182945, T_182885)
+ node T_182947 = or(T_182946, T_182886)
+ node T_182948 = or(T_182947, T_182887)
+ node T_182949 = or(T_182948, T_182888)
+ node T_182950 = or(T_182949, T_182889)
+ node T_182951 = or(T_182950, T_182890)
+ node T_182952 = or(T_182951, T_182891)
+ node T_182953 = or(T_182952, T_182892)
+ node T_182954 = or(T_182953, T_182893)
+ node T_182955 = or(T_182954, T_182894)
+ node T_182956 = or(T_182955, T_182895)
+ node T_182957 = or(T_182956, T_182896)
+ node T_182958 = or(T_182957, T_182897)
+ node T_182959 = or(T_182958, T_182898)
+ node T_182960 = or(T_182959, T_182899)
+ node T_182961 = or(T_182960, T_182900)
+ node T_182962 = or(T_182961, T_182901)
+ node T_182963 = or(T_182962, T_182902)
+ node T_182964 = or(T_182963, T_182903)
+ node T_182965 = or(T_182964, T_182904)
+ node T_182966 = or(T_182965, T_182905)
+ node T_182967 = or(T_182966, T_182906)
+ node T_182968 = or(T_182967, T_182907)
+ node T_182969 = or(T_182968, T_182908)
+ wire T_182970 : UInt<6>
+ node T_182971 = bits(T_182969, 5, 0)
+ T_182970 := T_182971
+ node T_182972 = bit(T_182970, 0)
+ node T_182973 = bit(T_182970, 1)
+ node T_182974 = bit(T_182970, 2)
+ node T_182975 = bit(T_182970, 3)
+ node T_182976 = bit(T_182970, 4)
+ node T_182977 = bit(T_182970, 5)
+ infer accessor T_182978 = pages[UInt<1>(0)]
+ infer accessor T_182979 = pages[UInt<1>(1)]
+ infer accessor T_182980 = pages[UInt<2>(2)]
+ infer accessor T_182981 = pages[UInt<2>(3)]
+ infer accessor T_182982 = pages[UInt<3>(4)]
+ infer accessor T_182983 = pages[UInt<3>(5)]
+ wire T_182984 : UInt<1>
+ T_182984 := UInt<1>(0)
+ when T_182972 : T_182984 := T_182978
+ wire T_182985 : UInt<1>
+ T_182985 := UInt<1>(0)
+ when T_182973 : T_182985 := T_182979
+ wire T_182986 : UInt<1>
+ T_182986 := UInt<1>(0)
+ when T_182974 : T_182986 := T_182980
+ wire T_182987 : UInt<1>
+ T_182987 := UInt<1>(0)
+ when T_182975 : T_182987 := T_182981
+ wire T_182988 : UInt<1>
+ T_182988 := UInt<1>(0)
+ when T_182976 : T_182988 := T_182982
+ wire T_182989 : UInt<1>
+ T_182989 := UInt<1>(0)
+ when T_182977 : T_182989 := T_182983
+ node T_182990 = or(T_182984, T_182985)
+ node T_182991 = or(T_182990, T_182986)
+ node T_182992 = or(T_182991, T_182987)
+ node T_182993 = or(T_182992, T_182988)
+ node T_182994 = or(T_182993, T_182989)
+ wire T_182995 : UInt<27>
+ node T_182996 = bits(T_182994, 26, 0)
+ T_182995 := T_182996
+ infer accessor T_182997 = tgts[UInt<1>(0)]
+ infer accessor T_182998 = tgts[UInt<1>(1)]
+ infer accessor T_182999 = tgts[UInt<2>(2)]
+ infer accessor T_183000 = tgts[UInt<2>(3)]
+ infer accessor T_183001 = tgts[UInt<3>(4)]
+ infer accessor T_183002 = tgts[UInt<3>(5)]
+ infer accessor T_183003 = tgts[UInt<3>(6)]
+ infer accessor T_183004 = tgts[UInt<3>(7)]
+ infer accessor T_183005 = tgts[UInt<4>(8)]
+ infer accessor T_183006 = tgts[UInt<4>(9)]
+ infer accessor T_183007 = tgts[UInt<4>(10)]
+ infer accessor T_183008 = tgts[UInt<4>(11)]
+ infer accessor T_183009 = tgts[UInt<4>(12)]
+ infer accessor T_183010 = tgts[UInt<4>(13)]
+ infer accessor T_183011 = tgts[UInt<4>(14)]
+ infer accessor T_183012 = tgts[UInt<4>(15)]
+ infer accessor T_183013 = tgts[UInt<5>(16)]
+ infer accessor T_183014 = tgts[UInt<5>(17)]
+ infer accessor T_183015 = tgts[UInt<5>(18)]
+ infer accessor T_183016 = tgts[UInt<5>(19)]
+ infer accessor T_183017 = tgts[UInt<5>(20)]
+ infer accessor T_183018 = tgts[UInt<5>(21)]
+ infer accessor T_183019 = tgts[UInt<5>(22)]
+ infer accessor T_183020 = tgts[UInt<5>(23)]
+ infer accessor T_183021 = tgts[UInt<5>(24)]
+ infer accessor T_183022 = tgts[UInt<5>(25)]
+ infer accessor T_183023 = tgts[UInt<5>(26)]
+ infer accessor T_183024 = tgts[UInt<5>(27)]
+ infer accessor T_183025 = tgts[UInt<5>(28)]
+ infer accessor T_183026 = tgts[UInt<5>(29)]
+ infer accessor T_183027 = tgts[UInt<5>(30)]
+ infer accessor T_183028 = tgts[UInt<5>(31)]
+ infer accessor T_183029 = tgts[UInt<6>(32)]
+ infer accessor T_183030 = tgts[UInt<6>(33)]
+ infer accessor T_183031 = tgts[UInt<6>(34)]
+ infer accessor T_183032 = tgts[UInt<6>(35)]
+ infer accessor T_183033 = tgts[UInt<6>(36)]
+ infer accessor T_183034 = tgts[UInt<6>(37)]
+ infer accessor T_183035 = tgts[UInt<6>(38)]
+ infer accessor T_183036 = tgts[UInt<6>(39)]
+ infer accessor T_183037 = tgts[UInt<6>(40)]
+ infer accessor T_183038 = tgts[UInt<6>(41)]
+ infer accessor T_183039 = tgts[UInt<6>(42)]
+ infer accessor T_183040 = tgts[UInt<6>(43)]
+ infer accessor T_183041 = tgts[UInt<6>(44)]
+ infer accessor T_183042 = tgts[UInt<6>(45)]
+ infer accessor T_183043 = tgts[UInt<6>(46)]
+ infer accessor T_183044 = tgts[UInt<6>(47)]
+ infer accessor T_183045 = tgts[UInt<6>(48)]
+ infer accessor T_183046 = tgts[UInt<6>(49)]
+ infer accessor T_183047 = tgts[UInt<6>(50)]
+ infer accessor T_183048 = tgts[UInt<6>(51)]
+ infer accessor T_183049 = tgts[UInt<6>(52)]
+ infer accessor T_183050 = tgts[UInt<6>(53)]
+ infer accessor T_183051 = tgts[UInt<6>(54)]
+ infer accessor T_183052 = tgts[UInt<6>(55)]
+ infer accessor T_183053 = tgts[UInt<6>(56)]
+ infer accessor T_183054 = tgts[UInt<6>(57)]
+ infer accessor T_183055 = tgts[UInt<6>(58)]
+ infer accessor T_183056 = tgts[UInt<6>(59)]
+ infer accessor T_183057 = tgts[UInt<6>(60)]
+ infer accessor T_183058 = tgts[UInt<6>(61)]
+ wire T_183059 : UInt<1>
+ T_183059 := UInt<1>(0)
+ when hits[0] : T_183059 := T_182997
+ wire T_183060 : UInt<1>
+ T_183060 := UInt<1>(0)
+ when hits[1] : T_183060 := T_182998
+ wire T_183061 : UInt<1>
+ T_183061 := UInt<1>(0)
+ when hits[2] : T_183061 := T_182999
+ wire T_183062 : UInt<1>
+ T_183062 := UInt<1>(0)
+ when hits[3] : T_183062 := T_183000
+ wire T_183063 : UInt<1>
+ T_183063 := UInt<1>(0)
+ when hits[4] : T_183063 := T_183001
+ wire T_183064 : UInt<1>
+ T_183064 := UInt<1>(0)
+ when hits[5] : T_183064 := T_183002
+ wire T_183065 : UInt<1>
+ T_183065 := UInt<1>(0)
+ when hits[6] : T_183065 := T_183003
+ wire T_183066 : UInt<1>
+ T_183066 := UInt<1>(0)
+ when hits[7] : T_183066 := T_183004
+ wire T_183067 : UInt<1>
+ T_183067 := UInt<1>(0)
+ when hits[8] : T_183067 := T_183005
+ wire T_183068 : UInt<1>
+ T_183068 := UInt<1>(0)
+ when hits[9] : T_183068 := T_183006
+ wire T_183069 : UInt<1>
+ T_183069 := UInt<1>(0)
+ when hits[10] : T_183069 := T_183007
+ wire T_183070 : UInt<1>
+ T_183070 := UInt<1>(0)
+ when hits[11] : T_183070 := T_183008
+ wire T_183071 : UInt<1>
+ T_183071 := UInt<1>(0)
+ when hits[12] : T_183071 := T_183009
+ wire T_183072 : UInt<1>
+ T_183072 := UInt<1>(0)
+ when hits[13] : T_183072 := T_183010
+ wire T_183073 : UInt<1>
+ T_183073 := UInt<1>(0)
+ when hits[14] : T_183073 := T_183011
+ wire T_183074 : UInt<1>
+ T_183074 := UInt<1>(0)
+ when hits[15] : T_183074 := T_183012
+ wire T_183075 : UInt<1>
+ T_183075 := UInt<1>(0)
+ when hits[16] : T_183075 := T_183013
+ wire T_183076 : UInt<1>
+ T_183076 := UInt<1>(0)
+ when hits[17] : T_183076 := T_183014
+ wire T_183077 : UInt<1>
+ T_183077 := UInt<1>(0)
+ when hits[18] : T_183077 := T_183015
+ wire T_183078 : UInt<1>
+ T_183078 := UInt<1>(0)
+ when hits[19] : T_183078 := T_183016
+ wire T_183079 : UInt<1>
+ T_183079 := UInt<1>(0)
+ when hits[20] : T_183079 := T_183017
+ wire T_183080 : UInt<1>
+ T_183080 := UInt<1>(0)
+ when hits[21] : T_183080 := T_183018
+ wire T_183081 : UInt<1>
+ T_183081 := UInt<1>(0)
+ when hits[22] : T_183081 := T_183019
+ wire T_183082 : UInt<1>
+ T_183082 := UInt<1>(0)
+ when hits[23] : T_183082 := T_183020
+ wire T_183083 : UInt<1>
+ T_183083 := UInt<1>(0)
+ when hits[24] : T_183083 := T_183021
+ wire T_183084 : UInt<1>
+ T_183084 := UInt<1>(0)
+ when hits[25] : T_183084 := T_183022
+ wire T_183085 : UInt<1>
+ T_183085 := UInt<1>(0)
+ when hits[26] : T_183085 := T_183023
+ wire T_183086 : UInt<1>
+ T_183086 := UInt<1>(0)
+ when hits[27] : T_183086 := T_183024
+ wire T_183087 : UInt<1>
+ T_183087 := UInt<1>(0)
+ when hits[28] : T_183087 := T_183025
+ wire T_183088 : UInt<1>
+ T_183088 := UInt<1>(0)
+ when hits[29] : T_183088 := T_183026
+ wire T_183089 : UInt<1>
+ T_183089 := UInt<1>(0)
+ when hits[30] : T_183089 := T_183027
+ wire T_183090 : UInt<1>
+ T_183090 := UInt<1>(0)
+ when hits[31] : T_183090 := T_183028
+ wire T_183091 : UInt<1>
+ T_183091 := UInt<1>(0)
+ when hits[32] : T_183091 := T_183029
+ wire T_183092 : UInt<1>
+ T_183092 := UInt<1>(0)
+ when hits[33] : T_183092 := T_183030
+ wire T_183093 : UInt<1>
+ T_183093 := UInt<1>(0)
+ when hits[34] : T_183093 := T_183031
+ wire T_183094 : UInt<1>
+ T_183094 := UInt<1>(0)
+ when hits[35] : T_183094 := T_183032
+ wire T_183095 : UInt<1>
+ T_183095 := UInt<1>(0)
+ when hits[36] : T_183095 := T_183033
+ wire T_183096 : UInt<1>
+ T_183096 := UInt<1>(0)
+ when hits[37] : T_183096 := T_183034
+ wire T_183097 : UInt<1>
+ T_183097 := UInt<1>(0)
+ when hits[38] : T_183097 := T_183035
+ wire T_183098 : UInt<1>
+ T_183098 := UInt<1>(0)
+ when hits[39] : T_183098 := T_183036
+ wire T_183099 : UInt<1>
+ T_183099 := UInt<1>(0)
+ when hits[40] : T_183099 := T_183037
+ wire T_183100 : UInt<1>
+ T_183100 := UInt<1>(0)
+ when hits[41] : T_183100 := T_183038
+ wire T_183101 : UInt<1>
+ T_183101 := UInt<1>(0)
+ when hits[42] : T_183101 := T_183039
+ wire T_183102 : UInt<1>
+ T_183102 := UInt<1>(0)
+ when hits[43] : T_183102 := T_183040
+ wire T_183103 : UInt<1>
+ T_183103 := UInt<1>(0)
+ when hits[44] : T_183103 := T_183041
+ wire T_183104 : UInt<1>
+ T_183104 := UInt<1>(0)
+ when hits[45] : T_183104 := T_183042
+ wire T_183105 : UInt<1>
+ T_183105 := UInt<1>(0)
+ when hits[46] : T_183105 := T_183043
+ wire T_183106 : UInt<1>
+ T_183106 := UInt<1>(0)
+ when hits[47] : T_183106 := T_183044
+ wire T_183107 : UInt<1>
+ T_183107 := UInt<1>(0)
+ when hits[48] : T_183107 := T_183045
+ wire T_183108 : UInt<1>
+ T_183108 := UInt<1>(0)
+ when hits[49] : T_183108 := T_183046
+ wire T_183109 : UInt<1>
+ T_183109 := UInt<1>(0)
+ when hits[50] : T_183109 := T_183047
+ wire T_183110 : UInt<1>
+ T_183110 := UInt<1>(0)
+ when hits[51] : T_183110 := T_183048
+ wire T_183111 : UInt<1>
+ T_183111 := UInt<1>(0)
+ when hits[52] : T_183111 := T_183049
+ wire T_183112 : UInt<1>
+ T_183112 := UInt<1>(0)
+ when hits[53] : T_183112 := T_183050
+ wire T_183113 : UInt<1>
+ T_183113 := UInt<1>(0)
+ when hits[54] : T_183113 := T_183051
+ wire T_183114 : UInt<1>
+ T_183114 := UInt<1>(0)
+ when hits[55] : T_183114 := T_183052
+ wire T_183115 : UInt<1>
+ T_183115 := UInt<1>(0)
+ when hits[56] : T_183115 := T_183053
+ wire T_183116 : UInt<1>
+ T_183116 := UInt<1>(0)
+ when hits[57] : T_183116 := T_183054
+ wire T_183117 : UInt<1>
+ T_183117 := UInt<1>(0)
+ when hits[58] : T_183117 := T_183055
+ wire T_183118 : UInt<1>
+ T_183118 := UInt<1>(0)
+ when hits[59] : T_183118 := T_183056
+ wire T_183119 : UInt<1>
+ T_183119 := UInt<1>(0)
+ when hits[60] : T_183119 := T_183057
+ wire T_183120 : UInt<1>
+ T_183120 := UInt<1>(0)
+ when hits[61] : T_183120 := T_183058
+ node T_183121 = or(T_183059, T_183060)
+ node T_183122 = or(T_183121, T_183061)
+ node T_183123 = or(T_183122, T_183062)
+ node T_183124 = or(T_183123, T_183063)
+ node T_183125 = or(T_183124, T_183064)
+ node T_183126 = or(T_183125, T_183065)
+ node T_183127 = or(T_183126, T_183066)
+ node T_183128 = or(T_183127, T_183067)
+ node T_183129 = or(T_183128, T_183068)
+ node T_183130 = or(T_183129, T_183069)
+ node T_183131 = or(T_183130, T_183070)
+ node T_183132 = or(T_183131, T_183071)
+ node T_183133 = or(T_183132, T_183072)
+ node T_183134 = or(T_183133, T_183073)
+ node T_183135 = or(T_183134, T_183074)
+ node T_183136 = or(T_183135, T_183075)
+ node T_183137 = or(T_183136, T_183076)
+ node T_183138 = or(T_183137, T_183077)
+ node T_183139 = or(T_183138, T_183078)
+ node T_183140 = or(T_183139, T_183079)
+ node T_183141 = or(T_183140, T_183080)
+ node T_183142 = or(T_183141, T_183081)
+ node T_183143 = or(T_183142, T_183082)
+ node T_183144 = or(T_183143, T_183083)
+ node T_183145 = or(T_183144, T_183084)
+ node T_183146 = or(T_183145, T_183085)
+ node T_183147 = or(T_183146, T_183086)
+ node T_183148 = or(T_183147, T_183087)
+ node T_183149 = or(T_183148, T_183088)
+ node T_183150 = or(T_183149, T_183089)
+ node T_183151 = or(T_183150, T_183090)
+ node T_183152 = or(T_183151, T_183091)
+ node T_183153 = or(T_183152, T_183092)
+ node T_183154 = or(T_183153, T_183093)
+ node T_183155 = or(T_183154, T_183094)
+ node T_183156 = or(T_183155, T_183095)
+ node T_183157 = or(T_183156, T_183096)
+ node T_183158 = or(T_183157, T_183097)
+ node T_183159 = or(T_183158, T_183098)
+ node T_183160 = or(T_183159, T_183099)
+ node T_183161 = or(T_183160, T_183100)
+ node T_183162 = or(T_183161, T_183101)
+ node T_183163 = or(T_183162, T_183102)
+ node T_183164 = or(T_183163, T_183103)
+ node T_183165 = or(T_183164, T_183104)
+ node T_183166 = or(T_183165, T_183105)
+ node T_183167 = or(T_183166, T_183106)
+ node T_183168 = or(T_183167, T_183107)
+ node T_183169 = or(T_183168, T_183108)
+ node T_183170 = or(T_183169, T_183109)
+ node T_183171 = or(T_183170, T_183110)
+ node T_183172 = or(T_183171, T_183111)
+ node T_183173 = or(T_183172, T_183112)
+ node T_183174 = or(T_183173, T_183113)
+ node T_183175 = or(T_183174, T_183114)
+ node T_183176 = or(T_183175, T_183115)
+ node T_183177 = or(T_183176, T_183116)
+ node T_183178 = or(T_183177, T_183117)
+ node T_183179 = or(T_183178, T_183118)
+ node T_183180 = or(T_183179, T_183119)
+ node T_183181 = or(T_183180, T_183120)
+ wire T_183182 : UInt<12>
+ node T_183183 = bits(T_183181, 11, 0)
+ T_183182 := T_183183
+ node T_183184 = cat(T_182995, T_183182)
+ resp.bits.target := T_183184
+ node T_183185 = cat(hits[60], hits[59])
+ node T_183186 = cat(hits[61], T_183185)
+ node T_183187 = cat(hits[58], hits[57])
+ node T_183188 = cat(hits[56], hits[55])
+ node T_183189 = cat(T_183187, T_183188)
+ node T_183190 = cat(T_183186, T_183189)
+ node T_183191 = cat(hits[54], hits[53])
+ node T_183192 = cat(hits[52], hits[51])
+ node T_183193 = cat(T_183191, T_183192)
+ node T_183194 = cat(hits[50], hits[49])
+ node T_183195 = cat(hits[48], hits[47])
+ node T_183196 = cat(T_183194, T_183195)
+ node T_183197 = cat(T_183193, T_183196)
+ node T_183198 = cat(T_183190, T_183197)
+ node T_183199 = cat(hits[46], hits[45])
+ node T_183200 = cat(hits[44], hits[43])
+ node T_183201 = cat(T_183199, T_183200)
+ node T_183202 = cat(hits[42], hits[41])
+ node T_183203 = cat(hits[40], hits[39])
+ node T_183204 = cat(T_183202, T_183203)
+ node T_183205 = cat(T_183201, T_183204)
+ node T_183206 = cat(hits[38], hits[37])
+ node T_183207 = cat(hits[36], hits[35])
+ node T_183208 = cat(T_183206, T_183207)
+ node T_183209 = cat(hits[34], hits[33])
+ node T_183210 = cat(hits[32], hits[31])
+ node T_183211 = cat(T_183209, T_183210)
+ node T_183212 = cat(T_183208, T_183211)
+ node T_183213 = cat(T_183205, T_183212)
+ node T_183214 = cat(T_183198, T_183213)
+ node T_183215 = cat(hits[29], hits[28])
+ node T_183216 = cat(hits[30], T_183215)
+ node T_183217 = cat(hits[27], hits[26])
+ node T_183218 = cat(hits[25], hits[24])
+ node T_183219 = cat(T_183217, T_183218)
+ node T_183220 = cat(T_183216, T_183219)
+ node T_183221 = cat(hits[23], hits[22])
+ node T_183222 = cat(hits[21], hits[20])
+ node T_183223 = cat(T_183221, T_183222)
+ node T_183224 = cat(hits[19], hits[18])
+ node T_183225 = cat(hits[17], hits[16])
+ node T_183226 = cat(T_183224, T_183225)
+ node T_183227 = cat(T_183223, T_183226)
+ node T_183228 = cat(T_183220, T_183227)
+ node T_183229 = cat(hits[15], hits[14])
+ node T_183230 = cat(hits[13], hits[12])
+ node T_183231 = cat(T_183229, T_183230)
+ node T_183232 = cat(hits[11], hits[10])
+ node T_183233 = cat(hits[9], hits[8])
+ node T_183234 = cat(T_183232, T_183233)
+ node T_183235 = cat(T_183231, T_183234)
+ node T_183236 = cat(hits[7], hits[6])
+ node T_183237 = cat(hits[5], hits[4])
+ node T_183238 = cat(T_183236, T_183237)
+ node T_183239 = cat(hits[3], hits[2])
+ node T_183240 = cat(hits[1], hits[0])
+ node T_183241 = cat(T_183239, T_183240)
+ node T_183242 = cat(T_183238, T_183241)
+ node T_183243 = cat(T_183235, T_183242)
+ node T_183244 = cat(T_183228, T_183243)
+ node T_183245 = cat(T_183214, T_183244)
+ node T_183246 = bits(T_183245, 61, 32)
+ node T_183247 = bits(T_183245, 31, 0)
+ node T_183248 = eq(T_183246, UInt<1>(0))
+ node T_183249 = eq(T_183248, UInt<1>(0))
+ node T_183250 = or(T_183246, T_183247)
+ node T_183251 = bits(T_183250, 31, 16)
+ node T_183252 = bits(T_183250, 15, 0)
+ node T_183253 = eq(T_183251, UInt<1>(0))
+ node T_183254 = eq(T_183253, UInt<1>(0))
+ node T_183255 = or(T_183251, T_183252)
+ node T_183256 = bits(T_183255, 15, 8)
+ node T_183257 = bits(T_183255, 7, 0)
+ node T_183258 = eq(T_183256, UInt<1>(0))
+ node T_183259 = eq(T_183258, UInt<1>(0))
+ node T_183260 = or(T_183256, T_183257)
+ node T_183261 = bits(T_183260, 7, 4)
+ node T_183262 = bits(T_183260, 3, 0)
+ node T_183263 = eq(T_183261, UInt<1>(0))
+ node T_183264 = eq(T_183263, UInt<1>(0))
+ node T_183265 = or(T_183261, T_183262)
+ node T_183266 = bits(T_183265, 3, 2)
+ node T_183267 = bits(T_183265, 1, 0)
+ node T_183268 = eq(T_183266, UInt<1>(0))
+ node T_183269 = eq(T_183268, UInt<1>(0))
+ node T_183270 = or(T_183266, T_183267)
+ node T_183271 = bit(T_183270, 1)
+ node T_183272 = cat(T_183269, T_183271)
+ node T_183273 = cat(T_183264, T_183272)
+ node T_183274 = cat(T_183259, T_183273)
+ node T_183275 = cat(T_183254, T_183274)
+ node T_183276 = cat(T_183249, T_183275)
+ resp.bits.entry := T_183276
+ infer accessor T_183277 = brIdx[resp.bits.entry]
+ resp.bits.bridx := T_183277
+ resp.bits.mask := UInt<1>(1)
+ cmem T_183278 : UInt<2>[128], clk
+ reg T_183279 : UInt<7>, clk, reset
+ wire T_183280 : UInt<1>
+ T_183280 := UInt<1>(0)
+ when hits[0] : T_183280 := isJump[0]
+ wire T_183281 : UInt<1>
+ T_183281 := UInt<1>(0)
+ when hits[1] : T_183281 := isJump[1]
+ wire T_183282 : UInt<1>
+ T_183282 := UInt<1>(0)
+ when hits[2] : T_183282 := isJump[2]
+ wire T_183283 : UInt<1>
+ T_183283 := UInt<1>(0)
+ when hits[3] : T_183283 := isJump[3]
+ wire T_183284 : UInt<1>
+ T_183284 := UInt<1>(0)
+ when hits[4] : T_183284 := isJump[4]
+ wire T_183285 : UInt<1>
+ T_183285 := UInt<1>(0)
+ when hits[5] : T_183285 := isJump[5]
+ wire T_183286 : UInt<1>
+ T_183286 := UInt<1>(0)
+ when hits[6] : T_183286 := isJump[6]
+ wire T_183287 : UInt<1>
+ T_183287 := UInt<1>(0)
+ when hits[7] : T_183287 := isJump[7]
+ wire T_183288 : UInt<1>
+ T_183288 := UInt<1>(0)
+ when hits[8] : T_183288 := isJump[8]
+ wire T_183289 : UInt<1>
+ T_183289 := UInt<1>(0)
+ when hits[9] : T_183289 := isJump[9]
+ wire T_183290 : UInt<1>
+ T_183290 := UInt<1>(0)
+ when hits[10] : T_183290 := isJump[10]
+ wire T_183291 : UInt<1>
+ T_183291 := UInt<1>(0)
+ when hits[11] : T_183291 := isJump[11]
+ wire T_183292 : UInt<1>
+ T_183292 := UInt<1>(0)
+ when hits[12] : T_183292 := isJump[12]
+ wire T_183293 : UInt<1>
+ T_183293 := UInt<1>(0)
+ when hits[13] : T_183293 := isJump[13]
+ wire T_183294 : UInt<1>
+ T_183294 := UInt<1>(0)
+ when hits[14] : T_183294 := isJump[14]
+ wire T_183295 : UInt<1>
+ T_183295 := UInt<1>(0)
+ when hits[15] : T_183295 := isJump[15]
+ wire T_183296 : UInt<1>
+ T_183296 := UInt<1>(0)
+ when hits[16] : T_183296 := isJump[16]
+ wire T_183297 : UInt<1>
+ T_183297 := UInt<1>(0)
+ when hits[17] : T_183297 := isJump[17]
+ wire T_183298 : UInt<1>
+ T_183298 := UInt<1>(0)
+ when hits[18] : T_183298 := isJump[18]
+ wire T_183299 : UInt<1>
+ T_183299 := UInt<1>(0)
+ when hits[19] : T_183299 := isJump[19]
+ wire T_183300 : UInt<1>
+ T_183300 := UInt<1>(0)
+ when hits[20] : T_183300 := isJump[20]
+ wire T_183301 : UInt<1>
+ T_183301 := UInt<1>(0)
+ when hits[21] : T_183301 := isJump[21]
+ wire T_183302 : UInt<1>
+ T_183302 := UInt<1>(0)
+ when hits[22] : T_183302 := isJump[22]
+ wire T_183303 : UInt<1>
+ T_183303 := UInt<1>(0)
+ when hits[23] : T_183303 := isJump[23]
+ wire T_183304 : UInt<1>
+ T_183304 := UInt<1>(0)
+ when hits[24] : T_183304 := isJump[24]
+ wire T_183305 : UInt<1>
+ T_183305 := UInt<1>(0)
+ when hits[25] : T_183305 := isJump[25]
+ wire T_183306 : UInt<1>
+ T_183306 := UInt<1>(0)
+ when hits[26] : T_183306 := isJump[26]
+ wire T_183307 : UInt<1>
+ T_183307 := UInt<1>(0)
+ when hits[27] : T_183307 := isJump[27]
+ wire T_183308 : UInt<1>
+ T_183308 := UInt<1>(0)
+ when hits[28] : T_183308 := isJump[28]
+ wire T_183309 : UInt<1>
+ T_183309 := UInt<1>(0)
+ when hits[29] : T_183309 := isJump[29]
+ wire T_183310 : UInt<1>
+ T_183310 := UInt<1>(0)
+ when hits[30] : T_183310 := isJump[30]
+ wire T_183311 : UInt<1>
+ T_183311 := UInt<1>(0)
+ when hits[31] : T_183311 := isJump[31]
+ wire T_183312 : UInt<1>
+ T_183312 := UInt<1>(0)
+ when hits[32] : T_183312 := isJump[32]
+ wire T_183313 : UInt<1>
+ T_183313 := UInt<1>(0)
+ when hits[33] : T_183313 := isJump[33]
+ wire T_183314 : UInt<1>
+ T_183314 := UInt<1>(0)
+ when hits[34] : T_183314 := isJump[34]
+ wire T_183315 : UInt<1>
+ T_183315 := UInt<1>(0)
+ when hits[35] : T_183315 := isJump[35]
+ wire T_183316 : UInt<1>
+ T_183316 := UInt<1>(0)
+ when hits[36] : T_183316 := isJump[36]
+ wire T_183317 : UInt<1>
+ T_183317 := UInt<1>(0)
+ when hits[37] : T_183317 := isJump[37]
+ wire T_183318 : UInt<1>
+ T_183318 := UInt<1>(0)
+ when hits[38] : T_183318 := isJump[38]
+ wire T_183319 : UInt<1>
+ T_183319 := UInt<1>(0)
+ when hits[39] : T_183319 := isJump[39]
+ wire T_183320 : UInt<1>
+ T_183320 := UInt<1>(0)
+ when hits[40] : T_183320 := isJump[40]
+ wire T_183321 : UInt<1>
+ T_183321 := UInt<1>(0)
+ when hits[41] : T_183321 := isJump[41]
+ wire T_183322 : UInt<1>
+ T_183322 := UInt<1>(0)
+ when hits[42] : T_183322 := isJump[42]
+ wire T_183323 : UInt<1>
+ T_183323 := UInt<1>(0)
+ when hits[43] : T_183323 := isJump[43]
+ wire T_183324 : UInt<1>
+ T_183324 := UInt<1>(0)
+ when hits[44] : T_183324 := isJump[44]
+ wire T_183325 : UInt<1>
+ T_183325 := UInt<1>(0)
+ when hits[45] : T_183325 := isJump[45]
+ wire T_183326 : UInt<1>
+ T_183326 := UInt<1>(0)
+ when hits[46] : T_183326 := isJump[46]
+ wire T_183327 : UInt<1>
+ T_183327 := UInt<1>(0)
+ when hits[47] : T_183327 := isJump[47]
+ wire T_183328 : UInt<1>
+ T_183328 := UInt<1>(0)
+ when hits[48] : T_183328 := isJump[48]
+ wire T_183329 : UInt<1>
+ T_183329 := UInt<1>(0)
+ when hits[49] : T_183329 := isJump[49]
+ wire T_183330 : UInt<1>
+ T_183330 := UInt<1>(0)
+ when hits[50] : T_183330 := isJump[50]
+ wire T_183331 : UInt<1>
+ T_183331 := UInt<1>(0)
+ when hits[51] : T_183331 := isJump[51]
+ wire T_183332 : UInt<1>
+ T_183332 := UInt<1>(0)
+ when hits[52] : T_183332 := isJump[52]
+ wire T_183333 : UInt<1>
+ T_183333 := UInt<1>(0)
+ when hits[53] : T_183333 := isJump[53]
+ wire T_183334 : UInt<1>
+ T_183334 := UInt<1>(0)
+ when hits[54] : T_183334 := isJump[54]
+ wire T_183335 : UInt<1>
+ T_183335 := UInt<1>(0)
+ when hits[55] : T_183335 := isJump[55]
+ wire T_183336 : UInt<1>
+ T_183336 := UInt<1>(0)
+ when hits[56] : T_183336 := isJump[56]
+ wire T_183337 : UInt<1>
+ T_183337 := UInt<1>(0)
+ when hits[57] : T_183337 := isJump[57]
+ wire T_183338 : UInt<1>
+ T_183338 := UInt<1>(0)
+ when hits[58] : T_183338 := isJump[58]
+ wire T_183339 : UInt<1>
+ T_183339 := UInt<1>(0)
+ when hits[59] : T_183339 := isJump[59]
+ wire T_183340 : UInt<1>
+ T_183340 := UInt<1>(0)
+ when hits[60] : T_183340 := isJump[60]
+ wire T_183341 : UInt<1>
+ T_183341 := UInt<1>(0)
+ when hits[61] : T_183341 := isJump[61]
+ node T_183342 = or(T_183280, T_183281)
+ node T_183343 = or(T_183342, T_183282)
+ node T_183344 = or(T_183343, T_183283)
+ node T_183345 = or(T_183344, T_183284)
+ node T_183346 = or(T_183345, T_183285)
+ node T_183347 = or(T_183346, T_183286)
+ node T_183348 = or(T_183347, T_183287)
+ node T_183349 = or(T_183348, T_183288)
+ node T_183350 = or(T_183349, T_183289)
+ node T_183351 = or(T_183350, T_183290)
+ node T_183352 = or(T_183351, T_183291)
+ node T_183353 = or(T_183352, T_183292)
+ node T_183354 = or(T_183353, T_183293)
+ node T_183355 = or(T_183354, T_183294)
+ node T_183356 = or(T_183355, T_183295)
+ node T_183357 = or(T_183356, T_183296)
+ node T_183358 = or(T_183357, T_183297)
+ node T_183359 = or(T_183358, T_183298)
+ node T_183360 = or(T_183359, T_183299)
+ node T_183361 = or(T_183360, T_183300)
+ node T_183362 = or(T_183361, T_183301)
+ node T_183363 = or(T_183362, T_183302)
+ node T_183364 = or(T_183363, T_183303)
+ node T_183365 = or(T_183364, T_183304)
+ node T_183366 = or(T_183365, T_183305)
+ node T_183367 = or(T_183366, T_183306)
+ node T_183368 = or(T_183367, T_183307)
+ node T_183369 = or(T_183368, T_183308)
+ node T_183370 = or(T_183369, T_183309)
+ node T_183371 = or(T_183370, T_183310)
+ node T_183372 = or(T_183371, T_183311)
+ node T_183373 = or(T_183372, T_183312)
+ node T_183374 = or(T_183373, T_183313)
+ node T_183375 = or(T_183374, T_183314)
+ node T_183376 = or(T_183375, T_183315)
+ node T_183377 = or(T_183376, T_183316)
+ node T_183378 = or(T_183377, T_183317)
+ node T_183379 = or(T_183378, T_183318)
+ node T_183380 = or(T_183379, T_183319)
+ node T_183381 = or(T_183380, T_183320)
+ node T_183382 = or(T_183381, T_183321)
+ node T_183383 = or(T_183382, T_183322)
+ node T_183384 = or(T_183383, T_183323)
+ node T_183385 = or(T_183384, T_183324)
+ node T_183386 = or(T_183385, T_183325)
+ node T_183387 = or(T_183386, T_183326)
+ node T_183388 = or(T_183387, T_183327)
+ node T_183389 = or(T_183388, T_183328)
+ node T_183390 = or(T_183389, T_183329)
+ node T_183391 = or(T_183390, T_183330)
+ node T_183392 = or(T_183391, T_183331)
+ node T_183393 = or(T_183392, T_183332)
+ node T_183394 = or(T_183393, T_183333)
+ node T_183395 = or(T_183394, T_183334)
+ node T_183396 = or(T_183395, T_183335)
+ node T_183397 = or(T_183396, T_183336)
+ node T_183398 = or(T_183397, T_183337)
+ node T_183399 = or(T_183398, T_183338)
+ node T_183400 = or(T_183399, T_183339)
+ node T_183401 = or(T_183400, T_183340)
+ node T_183402 = or(T_183401, T_183341)
+ wire T_183403 : UInt<1>
+ node T_183404 = bits(T_183402, 0, 0)
+ T_183403 := T_183404
+ node T_183405 = eq(T_183403, UInt<1>(0))
+ node T_183406 = and(req.valid, resp.valid)
+ node T_183407 = and(T_183406, T_183405)
+ wire T_183408 : {history : UInt<7>, value : UInt<2>}
+ node T_183409 = bits(req.bits.addr, 8, 2)
+ node T_183410 = xor(T_183409, T_183279)
+ infer accessor T_183411 = T_183278[T_183410]
+ T_183408.value := T_183411
+ T_183408.history := T_183279
+ node T_183412 = bit(T_183408.value, 0)
+ when T_183407 :
+ node T_183413 = bits(T_183279, 6, 1)
+ node T_183414 = cat(T_183412, T_183413)
+ T_183279 := T_183414
+
+ node T_183415 = and(bht_update.valid, bht_update.bits.prediction.valid)
+ when T_183415 :
+ node T_183416 = bits(bht_update.bits.pc, 8, 2)
+ node T_183417 = xor(T_183416, bht_update.bits.prediction.bits.bht.history)
+ infer accessor T_183418 = T_183278[T_183417]
+ node T_183419 = bit(bht_update.bits.prediction.bits.bht.value, 1)
+ node T_183420 = bit(bht_update.bits.prediction.bits.bht.value, 0)
+ node T_183421 = and(T_183419, T_183420)
+ node T_183422 = bit(bht_update.bits.prediction.bits.bht.value, 1)
+ node T_183423 = bit(bht_update.bits.prediction.bits.bht.value, 0)
+ node T_183424 = or(T_183422, T_183423)
+ node T_183425 = and(T_183424, bht_update.bits.taken)
+ node T_183426 = or(T_183421, T_183425)
+ node T_183427 = cat(bht_update.bits.taken, T_183426)
+ T_183418 := T_183427
+ when bht_update.bits.mispredict :
+ node T_183428 = bits(bht_update.bits.prediction.bits.bht.history, 6, 1)
+ node T_183429 = cat(bht_update.bits.taken, T_183428)
+ T_183279 := T_183429
+
+
+ node T_183430 = bit(T_183408.value, 0)
+ node T_183431 = eq(T_183430, UInt<1>(0))
+ node T_183432 = and(T_183431, T_183405)
+ when T_183432 : resp.bits.taken := UInt<1>(0)
+ resp.bits.bht := T_183408
+ reg T_183433 : UInt<2>, clk, reset
+ onreset T_183433 := UInt<2>(0)
+ reg T_183434 : UInt<1>, clk, reset
+ onreset T_183434 := UInt<1>(0)
+ wire T_183435 : UInt[2]
+ T_183435[0] := T_183436
+ T_183435[1] := T_183437
+ reg T_183438 : UInt[2], clk, reset
+ wire T_183439 : UInt<1>
+ T_183439 := UInt<1>(0)
+ when hits[0] : T_183439 := useRAS[0]
+ wire T_183440 : UInt<1>
+ T_183440 := UInt<1>(0)
+ when hits[1] : T_183440 := useRAS[1]
+ wire T_183441 : UInt<1>
+ T_183441 := UInt<1>(0)
+ when hits[2] : T_183441 := useRAS[2]
+ wire T_183442 : UInt<1>
+ T_183442 := UInt<1>(0)
+ when hits[3] : T_183442 := useRAS[3]
+ wire T_183443 : UInt<1>
+ T_183443 := UInt<1>(0)
+ when hits[4] : T_183443 := useRAS[4]
+ wire T_183444 : UInt<1>
+ T_183444 := UInt<1>(0)
+ when hits[5] : T_183444 := useRAS[5]
+ wire T_183445 : UInt<1>
+ T_183445 := UInt<1>(0)
+ when hits[6] : T_183445 := useRAS[6]
+ wire T_183446 : UInt<1>
+ T_183446 := UInt<1>(0)
+ when hits[7] : T_183446 := useRAS[7]
+ wire T_183447 : UInt<1>
+ T_183447 := UInt<1>(0)
+ when hits[8] : T_183447 := useRAS[8]
+ wire T_183448 : UInt<1>
+ T_183448 := UInt<1>(0)
+ when hits[9] : T_183448 := useRAS[9]
+ wire T_183449 : UInt<1>
+ T_183449 := UInt<1>(0)
+ when hits[10] : T_183449 := useRAS[10]
+ wire T_183450 : UInt<1>
+ T_183450 := UInt<1>(0)
+ when hits[11] : T_183450 := useRAS[11]
+ wire T_183451 : UInt<1>
+ T_183451 := UInt<1>(0)
+ when hits[12] : T_183451 := useRAS[12]
+ wire T_183452 : UInt<1>
+ T_183452 := UInt<1>(0)
+ when hits[13] : T_183452 := useRAS[13]
+ wire T_183453 : UInt<1>
+ T_183453 := UInt<1>(0)
+ when hits[14] : T_183453 := useRAS[14]
+ wire T_183454 : UInt<1>
+ T_183454 := UInt<1>(0)
+ when hits[15] : T_183454 := useRAS[15]
+ wire T_183455 : UInt<1>
+ T_183455 := UInt<1>(0)
+ when hits[16] : T_183455 := useRAS[16]
+ wire T_183456 : UInt<1>
+ T_183456 := UInt<1>(0)
+ when hits[17] : T_183456 := useRAS[17]
+ wire T_183457 : UInt<1>
+ T_183457 := UInt<1>(0)
+ when hits[18] : T_183457 := useRAS[18]
+ wire T_183458 : UInt<1>
+ T_183458 := UInt<1>(0)
+ when hits[19] : T_183458 := useRAS[19]
+ wire T_183459 : UInt<1>
+ T_183459 := UInt<1>(0)
+ when hits[20] : T_183459 := useRAS[20]
+ wire T_183460 : UInt<1>
+ T_183460 := UInt<1>(0)
+ when hits[21] : T_183460 := useRAS[21]
+ wire T_183461 : UInt<1>
+ T_183461 := UInt<1>(0)
+ when hits[22] : T_183461 := useRAS[22]
+ wire T_183462 : UInt<1>
+ T_183462 := UInt<1>(0)
+ when hits[23] : T_183462 := useRAS[23]
+ wire T_183463 : UInt<1>
+ T_183463 := UInt<1>(0)
+ when hits[24] : T_183463 := useRAS[24]
+ wire T_183464 : UInt<1>
+ T_183464 := UInt<1>(0)
+ when hits[25] : T_183464 := useRAS[25]
+ wire T_183465 : UInt<1>
+ T_183465 := UInt<1>(0)
+ when hits[26] : T_183465 := useRAS[26]
+ wire T_183466 : UInt<1>
+ T_183466 := UInt<1>(0)
+ when hits[27] : T_183466 := useRAS[27]
+ wire T_183467 : UInt<1>
+ T_183467 := UInt<1>(0)
+ when hits[28] : T_183467 := useRAS[28]
+ wire T_183468 : UInt<1>
+ T_183468 := UInt<1>(0)
+ when hits[29] : T_183468 := useRAS[29]
+ wire T_183469 : UInt<1>
+ T_183469 := UInt<1>(0)
+ when hits[30] : T_183469 := useRAS[30]
+ wire T_183470 : UInt<1>
+ T_183470 := UInt<1>(0)
+ when hits[31] : T_183470 := useRAS[31]
+ wire T_183471 : UInt<1>
+ T_183471 := UInt<1>(0)
+ when hits[32] : T_183471 := useRAS[32]
+ wire T_183472 : UInt<1>
+ T_183472 := UInt<1>(0)
+ when hits[33] : T_183472 := useRAS[33]
+ wire T_183473 : UInt<1>
+ T_183473 := UInt<1>(0)
+ when hits[34] : T_183473 := useRAS[34]
+ wire T_183474 : UInt<1>
+ T_183474 := UInt<1>(0)
+ when hits[35] : T_183474 := useRAS[35]
+ wire T_183475 : UInt<1>
+ T_183475 := UInt<1>(0)
+ when hits[36] : T_183475 := useRAS[36]
+ wire T_183476 : UInt<1>
+ T_183476 := UInt<1>(0)
+ when hits[37] : T_183476 := useRAS[37]
+ wire T_183477 : UInt<1>
+ T_183477 := UInt<1>(0)
+ when hits[38] : T_183477 := useRAS[38]
+ wire T_183478 : UInt<1>
+ T_183478 := UInt<1>(0)
+ when hits[39] : T_183478 := useRAS[39]
+ wire T_183479 : UInt<1>
+ T_183479 := UInt<1>(0)
+ when hits[40] : T_183479 := useRAS[40]
+ wire T_183480 : UInt<1>
+ T_183480 := UInt<1>(0)
+ when hits[41] : T_183480 := useRAS[41]
+ wire T_183481 : UInt<1>
+ T_183481 := UInt<1>(0)
+ when hits[42] : T_183481 := useRAS[42]
+ wire T_183482 : UInt<1>
+ T_183482 := UInt<1>(0)
+ when hits[43] : T_183482 := useRAS[43]
+ wire T_183483 : UInt<1>
+ T_183483 := UInt<1>(0)
+ when hits[44] : T_183483 := useRAS[44]
+ wire T_183484 : UInt<1>
+ T_183484 := UInt<1>(0)
+ when hits[45] : T_183484 := useRAS[45]
+ wire T_183485 : UInt<1>
+ T_183485 := UInt<1>(0)
+ when hits[46] : T_183485 := useRAS[46]
+ wire T_183486 : UInt<1>
+ T_183486 := UInt<1>(0)
+ when hits[47] : T_183486 := useRAS[47]
+ wire T_183487 : UInt<1>
+ T_183487 := UInt<1>(0)
+ when hits[48] : T_183487 := useRAS[48]
+ wire T_183488 : UInt<1>
+ T_183488 := UInt<1>(0)
+ when hits[49] : T_183488 := useRAS[49]
+ wire T_183489 : UInt<1>
+ T_183489 := UInt<1>(0)
+ when hits[50] : T_183489 := useRAS[50]
+ wire T_183490 : UInt<1>
+ T_183490 := UInt<1>(0)
+ when hits[51] : T_183490 := useRAS[51]
+ wire T_183491 : UInt<1>
+ T_183491 := UInt<1>(0)
+ when hits[52] : T_183491 := useRAS[52]
+ wire T_183492 : UInt<1>
+ T_183492 := UInt<1>(0)
+ when hits[53] : T_183492 := useRAS[53]
+ wire T_183493 : UInt<1>
+ T_183493 := UInt<1>(0)
+ when hits[54] : T_183493 := useRAS[54]
+ wire T_183494 : UInt<1>
+ T_183494 := UInt<1>(0)
+ when hits[55] : T_183494 := useRAS[55]
+ wire T_183495 : UInt<1>
+ T_183495 := UInt<1>(0)
+ when hits[56] : T_183495 := useRAS[56]
+ wire T_183496 : UInt<1>
+ T_183496 := UInt<1>(0)
+ when hits[57] : T_183496 := useRAS[57]
+ wire T_183497 : UInt<1>
+ T_183497 := UInt<1>(0)
+ when hits[58] : T_183497 := useRAS[58]
+ wire T_183498 : UInt<1>
+ T_183498 := UInt<1>(0)
+ when hits[59] : T_183498 := useRAS[59]
+ wire T_183499 : UInt<1>
+ T_183499 := UInt<1>(0)
+ when hits[60] : T_183499 := useRAS[60]
+ wire T_183500 : UInt<1>
+ T_183500 := UInt<1>(0)
+ when hits[61] : T_183500 := useRAS[61]
+ node T_183501 = or(T_183439, T_183440)
+ node T_183502 = or(T_183501, T_183441)
+ node T_183503 = or(T_183502, T_183442)
+ node T_183504 = or(T_183503, T_183443)
+ node T_183505 = or(T_183504, T_183444)
+ node T_183506 = or(T_183505, T_183445)
+ node T_183507 = or(T_183506, T_183446)
+ node T_183508 = or(T_183507, T_183447)
+ node T_183509 = or(T_183508, T_183448)
+ node T_183510 = or(T_183509, T_183449)
+ node T_183511 = or(T_183510, T_183450)
+ node T_183512 = or(T_183511, T_183451)
+ node T_183513 = or(T_183512, T_183452)
+ node T_183514 = or(T_183513, T_183453)
+ node T_183515 = or(T_183514, T_183454)
+ node T_183516 = or(T_183515, T_183455)
+ node T_183517 = or(T_183516, T_183456)
+ node T_183518 = or(T_183517, T_183457)
+ node T_183519 = or(T_183518, T_183458)
+ node T_183520 = or(T_183519, T_183459)
+ node T_183521 = or(T_183520, T_183460)
+ node T_183522 = or(T_183521, T_183461)
+ node T_183523 = or(T_183522, T_183462)
+ node T_183524 = or(T_183523, T_183463)
+ node T_183525 = or(T_183524, T_183464)
+ node T_183526 = or(T_183525, T_183465)
+ node T_183527 = or(T_183526, T_183466)
+ node T_183528 = or(T_183527, T_183467)
+ node T_183529 = or(T_183528, T_183468)
+ node T_183530 = or(T_183529, T_183469)
+ node T_183531 = or(T_183530, T_183470)
+ node T_183532 = or(T_183531, T_183471)
+ node T_183533 = or(T_183532, T_183472)
+ node T_183534 = or(T_183533, T_183473)
+ node T_183535 = or(T_183534, T_183474)
+ node T_183536 = or(T_183535, T_183475)
+ node T_183537 = or(T_183536, T_183476)
+ node T_183538 = or(T_183537, T_183477)
+ node T_183539 = or(T_183538, T_183478)
+ node T_183540 = or(T_183539, T_183479)
+ node T_183541 = or(T_183540, T_183480)
+ node T_183542 = or(T_183541, T_183481)
+ node T_183543 = or(T_183542, T_183482)
+ node T_183544 = or(T_183543, T_183483)
+ node T_183545 = or(T_183544, T_183484)
+ node T_183546 = or(T_183545, T_183485)
+ node T_183547 = or(T_183546, T_183486)
+ node T_183548 = or(T_183547, T_183487)
+ node T_183549 = or(T_183548, T_183488)
+ node T_183550 = or(T_183549, T_183489)
+ node T_183551 = or(T_183550, T_183490)
+ node T_183552 = or(T_183551, T_183491)
+ node T_183553 = or(T_183552, T_183492)
+ node T_183554 = or(T_183553, T_183493)
+ node T_183555 = or(T_183554, T_183494)
+ node T_183556 = or(T_183555, T_183495)
+ node T_183557 = or(T_183556, T_183496)
+ node T_183558 = or(T_183557, T_183497)
+ node T_183559 = or(T_183558, T_183498)
+ node T_183560 = or(T_183559, T_183499)
+ node T_183561 = or(T_183560, T_183500)
+ wire T_183562 : UInt<1>
+ node T_183563 = bits(T_183561, 0, 0)
+ T_183562 := T_183563
+
+
+ node T_183564 = eq(T_183433, UInt<1>(0))
+ node T_183565 = eq(T_183564, UInt<1>(0))
+ node T_183566 = and(T_183565, T_183562)
+ when T_183566 :
+ infer accessor T_183567 = T_183438[T_183434]
+ resp.bits.target := T_183567
+ when ras_update.valid : when ras_update.bits.isCall :
+
+ node T_183576 = lt(T_183433, UInt<2>(2))
+ when T_183576 :
+ node T_183577 = addw(T_183433, UInt<1>(1))
+ T_183433 := T_183577
+ node T_183578 = lt(T_183434, UInt<1>(1))
+ node T_183579 = or(UInt<1>(1), T_183578)
+ node T_183580 = addw(T_183434, UInt<1>(1))
+ wire T_183581 : UInt<1>
+ T_183581 := UInt<1>(0)
+ when T_183579 : T_183581 := T_183580
+ infer accessor T_183582 = T_183438[T_183581]
+ T_183582 := ras_update.bits.returnAddr
+ T_183434 := T_183581
+ when T_183562 : resp.bits.target := ras_update.bits.returnAddr
+ else :
+
+ node T_183568 = and(ras_update.bits.isReturn, ras_update.bits.prediction.valid)
+ when T_183568 :
+
+ node T_183569 = eq(T_183433, UInt<1>(0))
+ node T_183570 = eq(T_183569, UInt<1>(0))
+ when T_183570 :
+ node T_183571 = subw(T_183433, UInt<1>(1))
+ T_183433 := T_183571
+ node T_183572 = gt(T_183434, UInt<1>(0))
+ node T_183573 = or(UInt<1>(1), T_183572)
+ node T_183574 = subw(T_183434, UInt<1>(1))
+ wire T_183575 : UInt<1>
+ T_183575 := UInt<1>(1)
+ when T_183573 : T_183575 := T_183574
+ T_183434 := T_183575
+ when invalidate : T_183433 := UInt<1>(0)
diff --git a/test/refchip/Top.fir b/test/refchip/Top.fir
new file mode 100644
index 00000000..843755ba
--- /dev/null
+++ b/test/refchip/Top.fir
@@ -0,0 +1,64516 @@
+; RUN: firrtl -i %s -o %s.v -X verilog -p c | tee %s.out | FileCheck %s
+;CHECK: Done!
+
+circuit Top :
+ module HTIF :
+ output host : {clk : UInt<1>, clk_edge : UInt<1>, flip in : {flip ready : UInt<1>, valid : UInt<1>, bits : UInt<16>}, out : {flip ready : UInt<1>, valid : UInt<1>, bits : UInt<16>}, debug_stats_pcr : UInt<1>}
+ input cpu : {flip reset : UInt<1>, flip id : UInt<1>, flip pcr_req : {flip ready : UInt<1>, valid : UInt<1>, bits : {rw : UInt<1>, addr : UInt<12>, data : UInt<64>}}, pcr_rep : {flip ready : UInt<1>, valid : UInt<1>, bits : UInt<64>}, ipi_req : {flip ready : UInt<1>, valid : UInt<1>, bits : UInt<1>}, flip ipi_rep : {flip ready : UInt<1>, valid : UInt<1>, bits : UInt<1>}, debug_stats_pcr : UInt<1>}[1]
+ output mem__ : {acquire : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_block : UInt<26>, client_xact_id : UInt<1>, addr_beat : UInt<2>, data : UInt<128>, is_builtin_type : UInt<1>, a_type : UInt<3>, union : UInt<17>}}, flip grant : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_beat : UInt<2>, data : UInt<128>, client_xact_id : UInt<1>, manager_xact_id : UInt<2>, is_builtin_type : UInt<1>, g_type : UInt<4>}}}
+ output scr : {flip rdata : UInt<64>[64], wen : UInt<1>, waddr : UInt<6>, wdata : UInt<64>}
+
+ wire cpu : {flip reset : UInt<1>, flip id : UInt<1>, flip pcr_req : {flip ready : UInt<1>, valid : UInt<1>, bits : {rw : UInt<1>, addr : UInt<12>, data : UInt<64>}}, pcr_rep : {flip ready : UInt<1>, valid : UInt<1>, bits : UInt<64>}, ipi_req : {flip ready : UInt<1>, valid : UInt<1>, bits : UInt<1>}, flip ipi_rep : {flip ready : UInt<1>, valid : UInt<1>, bits : UInt<1>}, debug_stats_pcr : UInt<1>}[1]
+ cpu[0] := T_165479
+ wire T_165480 : UInt<3>[3]
+ T_165480[0] := UInt<3>(0)
+ T_165480[1] := UInt<3>(1)
+ T_165480[2] := UInt<3>(2)
+ wire T_165481 : UInt<2>[2]
+ T_165481[0] := UInt<2>(0)
+ T_165481[1] := UInt<2>(1)
+ wire T_165482 : UInt<2>[3]
+ T_165482[0] := UInt<2>(1)
+ T_165482[1] := UInt<2>(2)
+ T_165482[2] := UInt<2>(3)
+ wire T_165483 : UInt<2>[2]
+ T_165483[0] := UInt<2>(2)
+ T_165483[1] := UInt<2>(3)
+ wire T_165484 : UInt<2>[1]
+ T_165484[0] := UInt<2>(3)
+ wire T_165485 : UInt<3>[3]
+ T_165485[0] := UInt<3>(0)
+ T_165485[1] := UInt<3>(1)
+ T_165485[2] := UInt<3>(2)
+ wire T_165486 : UInt<2>[2]
+ T_165486[0] := UInt<2>(0)
+ T_165486[1] := UInt<2>(1)
+ wire T_165487 : UInt<2>[3]
+ T_165487[0] := UInt<2>(1)
+ T_165487[1] := UInt<2>(2)
+ T_165487[2] := UInt<2>(3)
+ wire T_165488 : UInt<2>[2]
+ T_165488[0] := UInt<2>(2)
+ T_165488[1] := UInt<2>(3)
+ wire T_165489 : UInt<2>[1]
+ T_165489[0] := UInt<2>(3)
+ wire T_165490 : UInt<3>[3]
+ T_165490[0] := UInt<3>(0)
+ T_165490[1] := UInt<3>(1)
+ T_165490[2] := UInt<3>(2)
+ wire T_165491 : UInt<2>[2]
+ T_165491[0] := UInt<2>(0)
+ T_165491[1] := UInt<2>(1)
+ wire T_165492 : UInt<2>[3]
+ T_165492[0] := UInt<2>(1)
+ T_165492[1] := UInt<2>(2)
+ T_165492[2] := UInt<2>(3)
+ wire T_165493 : UInt<2>[2]
+ T_165493[0] := UInt<2>(2)
+ T_165493[1] := UInt<2>(3)
+ wire T_165494 : UInt<2>[1]
+ T_165494[0] := UInt<2>(3)
+ wire T_165495 : UInt<3>[3]
+ T_165495[0] := UInt<3>(0)
+ T_165495[1] := UInt<3>(1)
+ T_165495[2] := UInt<3>(2)
+ wire T_165496 : UInt<2>[2]
+ T_165496[0] := UInt<2>(0)
+ T_165496[1] := UInt<2>(1)
+ wire T_165497 : UInt<2>[3]
+ T_165497[0] := UInt<2>(1)
+ T_165497[1] := UInt<2>(2)
+ T_165497[2] := UInt<2>(3)
+ wire T_165498 : UInt<2>[2]
+ T_165498[0] := UInt<2>(2)
+ T_165498[1] := UInt<2>(3)
+ wire T_165499 : UInt<2>[1]
+ T_165499[0] := UInt<2>(3)
+ wire T_165500 : UInt<3>[3]
+ T_165500[0] := UInt<3>(0)
+ T_165500[1] := UInt<3>(1)
+ T_165500[2] := UInt<3>(2)
+ wire T_165501 : UInt<2>[2]
+ T_165501[0] := UInt<2>(0)
+ T_165501[1] := UInt<2>(1)
+ wire T_165502 : UInt<2>[3]
+ T_165502[0] := UInt<2>(1)
+ T_165502[1] := UInt<2>(2)
+ T_165502[2] := UInt<2>(3)
+ wire T_165503 : UInt<2>[2]
+ T_165503[0] := UInt<2>(2)
+ T_165503[1] := UInt<2>(3)
+ wire T_165504 : UInt<2>[1]
+ T_165504[0] := UInt<2>(3)
+ wire rdata : UInt<64>[64]
+ scr.rdata[0] := T_165505
+ scr.rdata[1] := T_165506
+ scr.rdata[2] := T_165507
+ scr.rdata[3] := T_165508
+ scr.rdata[4] := T_165509
+ scr.rdata[5] := T_165510
+ scr.rdata[6] := T_165511
+ scr.rdata[7] := T_165512
+ scr.rdata[8] := T_165513
+ scr.rdata[9] := T_165514
+ scr.rdata[10] := T_165515
+ scr.rdata[11] := T_165516
+ scr.rdata[12] := T_165517
+ scr.rdata[13] := T_165518
+ scr.rdata[14] := T_165519
+ scr.rdata[15] := T_165520
+ scr.rdata[16] := T_165521
+ scr.rdata[17] := T_165522
+ scr.rdata[18] := T_165523
+ scr.rdata[19] := T_165524
+ scr.rdata[20] := T_165525
+ scr.rdata[21] := T_165526
+ scr.rdata[22] := T_165527
+ scr.rdata[23] := T_165528
+ scr.rdata[24] := T_165529
+ scr.rdata[25] := T_165530
+ scr.rdata[26] := T_165531
+ scr.rdata[27] := T_165532
+ scr.rdata[28] := T_165533
+ scr.rdata[29] := T_165534
+ scr.rdata[30] := T_165535
+ scr.rdata[31] := T_165536
+ scr.rdata[32] := T_165537
+ scr.rdata[33] := T_165538
+ scr.rdata[34] := T_165539
+ scr.rdata[35] := T_165540
+ scr.rdata[36] := T_165541
+ scr.rdata[37] := T_165542
+ scr.rdata[38] := T_165543
+ scr.rdata[39] := T_165544
+ scr.rdata[40] := T_165545
+ scr.rdata[41] := T_165546
+ scr.rdata[42] := T_165547
+ scr.rdata[43] := T_165548
+ scr.rdata[44] := T_165549
+ scr.rdata[45] := T_165550
+ scr.rdata[46] := T_165551
+ scr.rdata[47] := T_165552
+ scr.rdata[48] := T_165553
+ scr.rdata[49] := T_165554
+ scr.rdata[50] := T_165555
+ scr.rdata[51] := T_165556
+ scr.rdata[52] := T_165557
+ scr.rdata[53] := T_165558
+ scr.rdata[54] := T_165559
+ scr.rdata[55] := T_165560
+ scr.rdata[56] := T_165561
+ scr.rdata[57] := T_165562
+ scr.rdata[58] := T_165563
+ scr.rdata[59] := T_165564
+ scr.rdata[60] := T_165565
+ scr.rdata[61] := T_165566
+ scr.rdata[62] := T_165567
+ scr.rdata[63] := T_165568
+ host.debug_stats_pcr := cpu[0].debug_stats_pcr
+ reg rx_count : UInt<15>
+ onreset rx_count := UInt<15>(0)
+ reg rx_shifter : UInt<64>
+ node T_165569 = bits(rx_shifter, 63, 16)
+ node rx_shifter_in = cat(host.in.bits, T_165569)
+ node next_cmd = bits(rx_shifter_in, 3, 0)
+ reg cmd : UInt
+ reg size : UInt
+ reg pos : UInt
+ reg seqno : UInt
+ reg addr : UInt
+
+ node T_165570 = and(host.in.valid, host.in.ready)
+ when T_165570 :
+ rx_shifter := rx_shifter_in
+ node T_165571 = addw(rx_count, UInt<1>(1))
+ rx_count := T_165571
+
+ node T_165572 = eq(rx_count, UInt<2>(3))
+ when T_165572 :
+ cmd := next_cmd
+ node T_165573 = bits(rx_shifter_in, 15, 4)
+ size := T_165573
+ node T_165574 = bits(rx_shifter_in, 15, 7)
+ pos := T_165574
+ node T_165575 = bits(rx_shifter_in, 23, 16)
+ seqno := T_165575
+ node T_165576 = bits(rx_shifter_in, 63, 24)
+ addr := T_165576
+ node rx_word_count = dshr(rx_count, UInt<2>(2))
+ node T_165577 = bits(rx_count, 1, 0)
+ node T_165578 = eq(T_165577, UInt<1>(-1))
+ node rx_word_done = and(host.in.valid, T_165578)
+ cmem packet_ram : UInt<64>[8]
+
+ node T_165579 = and(rx_word_done, host.in.ready)
+ when T_165579 :
+ node T_165580 = bits(rx_word_count, 2, 0)
+ node T_165581 = subw(T_165580, UInt<1>(1))
+ accessor T_165582 = packet_ram[T_165581]
+ T_165582 := rx_shifter_in
+ node pcr_addr = bits(addr, 11, 0)
+ node pcr_coreid = bits(addr, 21, 20)
+ accessor pcr_wdata = packet_ram[UInt<1>(0)]
+ node T_165583 = bits(size, 2, 0)
+ node T_165584 = eq(T_165583, UInt<1>(0))
+ node T_165585 = eq(T_165584, UInt<1>(0))
+ node T_165586 = bits(addr, 2, 0)
+ node T_165587 = eq(T_165586, UInt<1>(0))
+ node T_165588 = eq(T_165587, UInt<1>(0))
+ node bad_mem_packet = or(T_165585, T_165588)
+ node T_165589 = eq(cmd, UInt<3>(0))
+ node T_165590 = eq(cmd, UInt<3>(1))
+ node T_165591 = or(T_165589, T_165590)
+ node T_165592 = eq(cmd, UInt<3>(2))
+ node T_165593 = eq(cmd, UInt<3>(3))
+ node T_165594 = or(T_165592, T_165593)
+ node T_165595 = neq(size, UInt<1>(1))
+ wire T_165596 : UInt<1>
+ T_165596 := UInt<1>(1)
+ when T_165594 : T_165596 := T_165595
+ wire nack : UInt<1>
+ nack := T_165596
+ when T_165591 : nack := bad_mem_packet
+ reg tx_count : UInt<15>
+ onreset tx_count := UInt<15>(0)
+ node tx_subword_count = bits(tx_count, 1, 0)
+ node tx_word_count = bits(tx_count, 14, 2)
+ node T_165597 = bits(tx_word_count, 2, 0)
+ node packet_ram_raddr = subw(T_165597, UInt<1>(1))
+
+ node T_165598 = and(host.out.valid, host.out.ready)
+ when T_165598 :
+ node T_165599 = addw(tx_count, UInt<1>(1))
+ tx_count := T_165599
+ node T_165600 = eq(rx_word_count, UInt<1>(0))
+ node T_165601 = neq(next_cmd, UInt<3>(1))
+ node T_165602 = neq(next_cmd, UInt<3>(3))
+ node T_165603 = and(T_165601, T_165602)
+ node T_165604 = eq(rx_word_count, size)
+ node T_165605 = bits(rx_word_count, 2, 0)
+ node T_165606 = eq(T_165605, UInt<1>(0))
+ node T_165607 = or(T_165604, T_165606)
+ wire T_165608 : UInt<1>
+ T_165608 := T_165607
+ when T_165600 : T_165608 := T_165603
+ node rx_done = and(rx_word_done, T_165608)
+ node T_165609 = eq(nack, UInt<1>(0))
+ node T_165610 = eq(cmd, UInt<3>(0))
+ node T_165611 = eq(cmd, UInt<3>(2))
+ node T_165612 = or(T_165610, T_165611)
+ node T_165613 = eq(cmd, UInt<3>(3))
+ node T_165614 = or(T_165612, T_165613)
+ node T_165615 = and(T_165609, T_165614)
+ wire tx_size : UInt<1>
+ tx_size := UInt<1>(0)
+ when T_165615 : tx_size := size
+ node T_165616 = eq(tx_subword_count, UInt<1>(-1))
+ node T_165617 = and(host.out.ready, T_165616)
+ node T_165618 = eq(tx_word_count, tx_size)
+ node T_165619 = gt(tx_word_count, UInt<1>(0))
+ node T_165620 = eq(packet_ram_raddr, UInt<1>(-1))
+ node T_165621 = and(T_165619, T_165620)
+ node T_165622 = or(T_165618, T_165621)
+ node tx_done = and(T_165617, T_165622)
+ reg state : UInt<3>
+ onreset state := UInt<3>(0)
+ node T_165623 = eq(state, UInt<3>(4))
+ node T_165624 = and(T_165623, mem__.acquire.ready)
+ node T_165625 = eq(state, UInt<3>(5))
+ node T_165626 = and(T_165625, mem__.grant.valid)
+ node T_165627 = or(T_165624, T_165626)
+ reg cnt : UInt<2>
+ onreset cnt := UInt<2>(0)
+ when T_165627 :
+ node T_165628 = eq(cnt, UInt<2>(3))
+ node T_165629 = and(UInt<1>(0), T_165628)
+ node T_165630 = addw(cnt, UInt<1>(1))
+ wire T_165631 : UInt<2>
+ T_165631 := T_165630
+ when T_165629 : T_165631 := UInt<1>(0)
+ cnt := T_165631
+ node cnt_done = and(T_165627, T_165628)
+ node T_165632 = eq(rx_word_count, UInt<1>(0))
+ wire rx_cmd : UInt
+ rx_cmd := cmd
+ when T_165632 : rx_cmd := next_cmd
+
+
+ node T_165633 = eq(state, UInt<3>(0))
+ node T_165634 = and(T_165633, rx_done)
+ when T_165634 :
+ node T_165635 = eq(rx_cmd, UInt<3>(0))
+ node T_165636 = eq(rx_cmd, UInt<3>(1))
+ node T_165637 = eq(rx_cmd, UInt<3>(2))
+ node T_165638 = eq(rx_cmd, UInt<3>(3))
+ node T_165639 = or(T_165637, T_165638)
+ wire T_165640 : UInt<3>
+ T_165640 := UInt<3>(7)
+ when T_165639 : T_165640 := UInt<3>(1)
+ wire T_165641 : UInt<3>
+ T_165641 := T_165640
+ when T_165636 : T_165641 := UInt<3>(4)
+ wire T_165642 : UInt<3>
+ T_165642 := T_165641
+ when T_165635 : T_165642 := UInt<3>(3)
+ state := T_165642
+
+ node T_165643 = eq(state, UInt<3>(4))
+ when T_165643 : when cnt_done : state := UInt<3>(6)
+
+ node T_165644 = eq(state, UInt<3>(3))
+ when T_165644 : when mem__.acquire.ready : state := UInt<3>(5)
+
+
+ node T_165645 = eq(state, UInt<3>(6))
+ node T_165646 = and(T_165645, mem__.grant.valid)
+ when T_165646 :
+ node T_165647 = eq(cmd, UInt<3>(0))
+ node T_165648 = eq(pos, UInt<1>(1))
+ node T_165649 = or(T_165647, T_165648)
+ wire T_165650 : UInt<3>
+ T_165650 := UInt<3>(0)
+ when T_165649 : T_165650 := UInt<3>(7)
+ state := T_165650
+ node T_165651 = subw(pos, UInt<1>(1))
+ pos := T_165651
+ node T_165652 = addw(addr, UInt<4>(8))
+ addr := T_165652
+
+
+ node T_165653 = eq(state, UInt<3>(5))
+ node T_165654 = and(T_165653, cnt_done)
+ when T_165654 :
+ node T_165655 = eq(cmd, UInt<3>(0))
+ node T_165656 = eq(pos, UInt<1>(1))
+ node T_165657 = or(T_165655, T_165656)
+ wire T_165658 : UInt<3>
+ T_165658 := UInt<3>(0)
+ when T_165657 : T_165658 := UInt<3>(7)
+ state := T_165658
+ node T_165659 = subw(pos, UInt<1>(1))
+ pos := T_165659
+ node T_165660 = addw(addr, UInt<4>(8))
+ addr := T_165660
+
+
+ node T_165661 = eq(state, UInt<3>(7))
+ node T_165662 = and(T_165661, tx_done)
+ when T_165662 :
+
+ node T_165663 = eq(tx_word_count, tx_size)
+ when T_165663 :
+ rx_count := UInt<1>(0)
+ tx_count := UInt<1>(0)
+ node T_165664 = eq(cmd, UInt<3>(0))
+ node T_165665 = neq(pos, UInt<1>(0))
+ node T_165666 = and(T_165664, T_165665)
+ wire T_165667 : UInt<3>
+ T_165667 := UInt<3>(0)
+ when T_165666 : T_165667 := UInt<3>(3)
+ state := T_165667
+
+
+ node T_165668 = eq(state, UInt<3>(5))
+ node T_165669 = and(T_165668, mem__.grant.valid)
+ when T_165669 :
+ node T_165670 = cat(mem__.grant.bits.addr_beat, UInt<1>(0))
+ accessor T_165671 = packet_ram[T_165670]
+ node T_165672 = bits(mem__.grant.bits.data, 63, 0)
+ T_165671 := T_165672
+ node T_165673 = cat(cnt, UInt<1>(0))
+ accessor T_165674 = packet_ram[T_165673]
+
+
+ node T_165675 = eq(state, UInt<3>(5))
+ node T_165676 = and(T_165675, mem__.grant.valid)
+ when T_165676 :
+ node T_165677 = cat(mem__.grant.bits.addr_beat, UInt<1>(1))
+ accessor T_165678 = packet_ram[T_165677]
+ node T_165679 = bits(mem__.grant.bits.data, 127, 64)
+ T_165678 := T_165679
+ node T_165680 = cat(cnt, UInt<1>(1))
+ accessor T_165681 = packet_ram[T_165680]
+ node mem_req_data = cat(T_165681, T_165674)
+ node init_addr = dshr(addr, UInt<2>(3))
+ node T_165682 = eq(state, UInt<3>(3))
+ node T_165683 = eq(state, UInt<3>(4))
+ node T_165684 = or(T_165682, T_165683)
+ mem__.acquire.valid := T_165684
+ node T_165685 = eq(cmd, UInt<3>(1))
+ wire T_165686 : UInt<3>[3]
+ T_165686[0] := UInt<3>(0)
+ T_165686[1] := UInt<3>(1)
+ T_165686[2] := UInt<3>(2)
+ wire T_165687 : UInt<2>[2]
+ T_165687[0] := UInt<2>(0)
+ T_165687[1] := UInt<2>(1)
+ wire T_165688 : UInt<2>[3]
+ T_165688[0] := UInt<2>(1)
+ T_165688[1] := UInt<2>(2)
+ T_165688[2] := UInt<2>(3)
+ wire T_165689 : UInt<2>[2]
+ T_165689[0] := UInt<2>(2)
+ T_165689[1] := UInt<2>(3)
+ wire T_165690 : UInt<2>[1]
+ T_165690[0] := UInt<2>(3)
+ node T_165691 = asUInt(SInt<16>(-1))
+ node T_165692 = cat(T_165691, UInt<1>(1))
+ wire T_165693 : UInt<3>[3]
+ T_165693[0] := UInt<3>(0)
+ T_165693[1] := UInt<3>(1)
+ T_165693[2] := UInt<3>(2)
+ wire T_165694 : UInt<2>[2]
+ T_165694[0] := UInt<2>(0)
+ T_165694[1] := UInt<2>(1)
+ wire T_165695 : UInt<2>[3]
+ T_165695[0] := UInt<2>(1)
+ T_165695[1] := UInt<2>(2)
+ T_165695[2] := UInt<2>(3)
+ wire T_165696 : UInt<2>[2]
+ T_165696[0] := UInt<2>(2)
+ T_165696[1] := UInt<2>(3)
+ wire T_165697 : UInt<2>[1]
+ T_165697[0] := UInt<2>(3)
+ wire T_165698 : UInt<3>[3]
+ T_165698[0] := UInt<3>(0)
+ T_165698[1] := UInt<3>(1)
+ T_165698[2] := UInt<3>(2)
+ wire T_165699 : UInt<2>[2]
+ T_165699[0] := UInt<2>(0)
+ T_165699[1] := UInt<2>(1)
+ wire T_165700 : UInt<2>[3]
+ T_165700[0] := UInt<2>(1)
+ T_165700[1] := UInt<2>(2)
+ T_165700[2] := UInt<2>(3)
+ wire T_165701 : UInt<2>[2]
+ T_165701[0] := UInt<2>(2)
+ T_165701[1] := UInt<2>(3)
+ wire T_165702 : UInt<2>[1]
+ T_165702[0] := UInt<2>(3)
+ wire T_165703 : {addr_block : UInt<26>, client_xact_id : UInt<1>, addr_beat : UInt<2>, data : UInt<128>, is_builtin_type : UInt<1>, a_type : UInt<3>, union : UInt<17>}
+ T_165703.is_builtin_type := UInt<1>(1)
+ T_165703.a_type := UInt<3>(3)
+ T_165703.client_xact_id := UInt<1>(0)
+ T_165703.addr_block := init_addr
+ T_165703.addr_beat := cnt
+ T_165703.data := mem_req_data
+ T_165703.union := T_165692
+ wire T_165704 : UInt<3>[3]
+ T_165704[0] := UInt<3>(0)
+ T_165704[1] := UInt<3>(1)
+ T_165704[2] := UInt<3>(2)
+ wire T_165705 : UInt<2>[2]
+ T_165705[0] := UInt<2>(0)
+ T_165705[1] := UInt<2>(1)
+ wire T_165706 : UInt<2>[3]
+ T_165706[0] := UInt<2>(1)
+ T_165706[1] := UInt<2>(2)
+ T_165706[2] := UInt<2>(3)
+ wire T_165707 : UInt<2>[2]
+ T_165707[0] := UInt<2>(2)
+ T_165707[1] := UInt<2>(3)
+ wire T_165708 : UInt<2>[1]
+ T_165708[0] := UInt<2>(3)
+ wire T_165709 : UInt<3>[3]
+ T_165709[0] := UInt<3>(0)
+ T_165709[1] := UInt<3>(1)
+ T_165709[2] := UInt<3>(2)
+ wire T_165710 : UInt<2>[2]
+ T_165710[0] := UInt<2>(0)
+ T_165710[1] := UInt<2>(1)
+ wire T_165711 : UInt<2>[3]
+ T_165711[0] := UInt<2>(1)
+ T_165711[1] := UInt<2>(2)
+ T_165711[2] := UInt<2>(3)
+ wire T_165712 : UInt<2>[2]
+ T_165712[0] := UInt<2>(2)
+ T_165712[1] := UInt<2>(3)
+ wire T_165713 : UInt<2>[1]
+ T_165713[0] := UInt<2>(3)
+ wire T_165714 : {addr_block : UInt<26>, client_xact_id : UInt<1>, addr_beat : UInt<2>, data : UInt<128>, is_builtin_type : UInt<1>, a_type : UInt<3>, union : UInt<17>}
+ T_165714.is_builtin_type := UInt<1>(1)
+ T_165714.a_type := UInt<3>(1)
+ T_165714.client_xact_id := UInt<1>(0)
+ T_165714.addr_block := init_addr
+ T_165714.addr_beat := UInt<1>(0)
+ T_165714.data := UInt<1>(0)
+ T_165714.union := UInt<9>(449)
+ wire T_165715 : UInt<3>[3]
+ T_165715[0] := UInt<3>(0)
+ T_165715[1] := UInt<3>(1)
+ T_165715[2] := UInt<3>(2)
+ wire T_165716 : UInt<2>[2]
+ T_165716[0] := UInt<2>(0)
+ T_165716[1] := UInt<2>(1)
+ wire T_165717 : UInt<2>[3]
+ T_165717[0] := UInt<2>(1)
+ T_165717[1] := UInt<2>(2)
+ T_165717[2] := UInt<2>(3)
+ wire T_165718 : UInt<2>[2]
+ T_165718[0] := UInt<2>(2)
+ T_165718[1] := UInt<2>(3)
+ wire T_165719 : UInt<2>[1]
+ T_165719[0] := UInt<2>(3)
+ wire T_165720 : {addr_block : UInt<26>, client_xact_id : UInt<1>, addr_beat : UInt<2>, data : UInt<128>, is_builtin_type : UInt<1>, a_type : UInt<3>, union : UInt<17>}
+ T_165720 := T_165714
+ when T_165685 : T_165720 := T_165703
+ mem__.acquire.bits := T_165720
+ mem__.grant.ready := UInt<1>(1)
+ reg rtc : UInt<64>
+ onreset rtc := UInt<64>(0)
+ reg T_165721 : UInt<7>
+ onreset T_165721 := UInt<7>(0)
+ node rtc_tick = eq(T_165721, UInt<7>(99))
+ node T_165722 = and(UInt<1>(1), rtc_tick)
+ node T_165723 = addw(T_165721, UInt<1>(1))
+ wire T_165724 : UInt<7>
+ T_165724 := T_165723
+ when T_165722 : T_165724 := UInt<1>(0)
+ T_165721 := T_165724
+ when rtc_tick :
+ node T_165725 = addw(rtc, UInt<1>(1))
+ rtc := T_165725
+ reg pcrReadData : UInt<64>
+ reg T_165726 : UInt<1>
+ onreset T_165726 := UInt<1>(1)
+ reg T_165727 : UInt<1>
+ onreset T_165727 := UInt<1>(0)
+ node T_165728 = eq(pcr_coreid, UInt<1>(0))
+ node T_165729 = eq(state, UInt<3>(1))
+ node T_165730 = and(T_165729, T_165728)
+ node T_165731 = neq(pcr_addr, UInt<11>(1922))
+ node T_165732 = and(T_165730, T_165731)
+ cpu[0].pcr_req.valid := T_165732
+ node T_165733 = eq(cmd, UInt<3>(3))
+ cpu[0].pcr_req.bits.rw := T_165733
+ cpu[0].pcr_req.bits.addr := pcr_addr
+ cpu[0].pcr_req.bits.data := pcr_wdata
+ cpu[0].reset := T_165726
+ reg T_165734 : UInt<1>
+ onreset T_165734 := UInt<1>(0)
+ reg T_165735 : UInt<1>
+ onreset T_165735 := UInt<1>(0)
+ when rtc_tick : T_165734 := UInt<1>(0)
+ when cpu[0].pcr_rep.valid : T_165735 := UInt<1>(0)
+ when T_165735 : cpu[0].pcr_req.valid := UInt<1>(0)
+
+
+ node T_165736 = neq(state, UInt<3>(1))
+ node T_165737 = neq(state, UInt<3>(2))
+ node T_165738 = and(T_165736, T_165737)
+ node T_165739 = eq(T_165734, UInt<1>(0))
+ node T_165740 = and(T_165738, T_165739)
+ node T_165741 = eq(T_165735, UInt<1>(0))
+ node T_165742 = and(T_165740, T_165741)
+ when T_165742 :
+ cpu[0].pcr_req.valid := UInt<1>(1)
+ cpu[0].pcr_req.bits.rw := UInt<1>(1)
+ cpu[0].pcr_req.bits.addr := UInt<11>(1922)
+ cpu[0].pcr_req.bits.data := rtc
+ T_165734 := cpu[0].pcr_req.ready
+ T_165735 := cpu[0].pcr_req.ready
+ when cpu[0].ipi_rep.ready : T_165727 := UInt<1>(0)
+ cpu[0].ipi_rep.valid := T_165727
+ cpu[0].ipi_req.ready := UInt<1>(1)
+
+
+ node T_165743 = eq(cpu[0].ipi_req.bits, UInt<1>(0))
+ node T_165744 = and(cpu[0].ipi_req.valid, T_165743)
+ when T_165744 : T_165727 := UInt<1>(1)
+
+
+ node T_165745 = eq(state, UInt<3>(1))
+ node T_165746 = and(cpu[0].pcr_req.ready, cpu[0].pcr_req.valid)
+ node T_165747 = and(T_165745, T_165746)
+ when T_165747 : state := UInt<3>(2)
+
+
+ node T_165748 = eq(state, UInt<3>(1))
+ node T_165749 = and(T_165748, T_165728)
+ node T_165750 = eq(pcr_addr, UInt<11>(1922))
+ node T_165751 = and(T_165749, T_165750)
+ when T_165751 :
+
+ node T_165752 = eq(cmd, UInt<3>(3))
+ when T_165752 :
+ node T_165753 = bit(pcr_wdata, 0)
+ T_165726 := T_165753
+ pcrReadData := T_165726
+ state := UInt<3>(7)
+ cpu[0].pcr_rep.ready := UInt<1>(1)
+
+
+ node T_165754 = eq(state, UInt<3>(2))
+ node T_165755 = and(T_165754, cpu[0].pcr_rep.valid)
+ when T_165755 :
+ pcrReadData := cpu[0].pcr_rep.bits
+ state := UInt<3>(7)
+ node scr_addr = bits(addr, 5, 0)
+ wire scr_rdata : UInt<64>[64]
+ scr_rdata[0] := scr.rdata[0]
+ scr_rdata[1] := scr.rdata[1]
+ scr_rdata[2] := scr.rdata[2]
+ scr_rdata[3] := scr.rdata[3]
+ scr_rdata[4] := scr.rdata[4]
+ scr_rdata[5] := scr.rdata[5]
+ scr_rdata[6] := scr.rdata[6]
+ scr_rdata[7] := scr.rdata[7]
+ scr_rdata[8] := scr.rdata[8]
+ scr_rdata[9] := scr.rdata[9]
+ scr_rdata[10] := scr.rdata[10]
+ scr_rdata[11] := scr.rdata[11]
+ scr_rdata[12] := scr.rdata[12]
+ scr_rdata[13] := scr.rdata[13]
+ scr_rdata[14] := scr.rdata[14]
+ scr_rdata[15] := scr.rdata[15]
+ scr_rdata[16] := scr.rdata[16]
+ scr_rdata[17] := scr.rdata[17]
+ scr_rdata[18] := scr.rdata[18]
+ scr_rdata[19] := scr.rdata[19]
+ scr_rdata[20] := scr.rdata[20]
+ scr_rdata[21] := scr.rdata[21]
+ scr_rdata[22] := scr.rdata[22]
+ scr_rdata[23] := scr.rdata[23]
+ scr_rdata[24] := scr.rdata[24]
+ scr_rdata[25] := scr.rdata[25]
+ scr_rdata[26] := scr.rdata[26]
+ scr_rdata[27] := scr.rdata[27]
+ scr_rdata[28] := scr.rdata[28]
+ scr_rdata[29] := scr.rdata[29]
+ scr_rdata[30] := scr.rdata[30]
+ scr_rdata[31] := scr.rdata[31]
+ scr_rdata[32] := scr.rdata[32]
+ scr_rdata[33] := scr.rdata[33]
+ scr_rdata[34] := scr.rdata[34]
+ scr_rdata[35] := scr.rdata[35]
+ scr_rdata[36] := scr.rdata[36]
+ scr_rdata[37] := scr.rdata[37]
+ scr_rdata[38] := scr.rdata[38]
+ scr_rdata[39] := scr.rdata[39]
+ scr_rdata[40] := scr.rdata[40]
+ scr_rdata[41] := scr.rdata[41]
+ scr_rdata[42] := scr.rdata[42]
+ scr_rdata[43] := scr.rdata[43]
+ scr_rdata[44] := scr.rdata[44]
+ scr_rdata[45] := scr.rdata[45]
+ scr_rdata[46] := scr.rdata[46]
+ scr_rdata[47] := scr.rdata[47]
+ scr_rdata[48] := scr.rdata[48]
+ scr_rdata[49] := scr.rdata[49]
+ scr_rdata[50] := scr.rdata[50]
+ scr_rdata[51] := scr.rdata[51]
+ scr_rdata[52] := scr.rdata[52]
+ scr_rdata[53] := scr.rdata[53]
+ scr_rdata[54] := scr.rdata[54]
+ scr_rdata[55] := scr.rdata[55]
+ scr_rdata[56] := scr.rdata[56]
+ scr_rdata[57] := scr.rdata[57]
+ scr_rdata[58] := scr.rdata[58]
+ scr_rdata[59] := scr.rdata[59]
+ scr_rdata[60] := scr.rdata[60]
+ scr_rdata[61] := scr.rdata[61]
+ scr_rdata[62] := scr.rdata[62]
+ scr_rdata[63] := scr.rdata[63]
+ scr_rdata[0] := UInt<1>(1)
+ scr_rdata[1] := UInt<13>(4096)
+ scr.wen := UInt<1>(0)
+ scr.wdata := pcr_wdata
+ scr.waddr := scr_addr
+
+
+ node T_165756 = eq(state, UInt<3>(1))
+ node T_165757 = eq(pcr_coreid, SInt<1>(-1))
+ node T_165758 = and(T_165756, T_165757)
+ when T_165758 :
+ node T_165759 = eq(cmd, UInt<3>(3))
+ scr.wen := T_165759
+ accessor T_165760 = scr_rdata[scr_addr]
+ pcrReadData := T_165760
+ state := UInt<3>(7)
+ wire tx_cmd : UInt<3>
+ tx_cmd := UInt<3>(4)
+ when nack : tx_cmd := UInt<3>(5)
+ node tx_cmd_ext = cat(UInt<1>(0), tx_cmd)
+ node T_165761 = cat(addr, seqno)
+ node T_165762 = cat(tx_size, tx_cmd_ext)
+ node tx_header = cat(T_165761, T_165762)
+ node T_165763 = eq(tx_word_count, UInt<1>(0))
+ node T_165764 = eq(cmd, UInt<3>(2))
+ node T_165765 = eq(cmd, UInt<3>(3))
+ node T_165766 = or(T_165764, T_165765)
+ accessor T_165767 = packet_ram[packet_ram_raddr]
+ wire T_165768 : UInt<64>
+ T_165768 := T_165767
+ when T_165766 : T_165768 := pcrReadData
+ wire tx_data : UInt<64>
+ tx_data := T_165768
+ when T_165763 : tx_data := tx_header
+ node T_165769 = eq(state, UInt<3>(0))
+ host.in.ready := T_165769
+ node T_165770 = eq(state, UInt<3>(7))
+ host.out.valid := T_165770
+ node T_165771 = bits(tx_count, 1, 0)
+ node T_165772 = cat(T_165771, UInt<4>(0))
+ node T_165773 = dshr(tx_data, T_165772)
+ host.out.bits := T_165773
+ module ClientTileLinkIOWrapper :
+ input in : {acquire : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_block : UInt<26>, client_xact_id : UInt<1>, addr_beat : UInt<2>, data : UInt<128>, is_builtin_type : UInt<1>, a_type : UInt<3>, union : UInt<17>}}, flip grant : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_beat : UInt<2>, data : UInt<128>, client_xact_id : UInt<1>, manager_xact_id : UInt<2>, is_builtin_type : UInt<1>, g_type : UInt<4>}}}
+ output out : {acquire : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_block : UInt<26>, client_xact_id : UInt<1>, addr_beat : UInt<2>, data : UInt<128>, is_builtin_type : UInt<1>, a_type : UInt<3>, union : UInt<17>}}, flip grant : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_beat : UInt<2>, data : UInt<128>, client_xact_id : UInt<1>, manager_xact_id : UInt<2>, is_builtin_type : UInt<1>, g_type : UInt<4>}}, flip probe : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_block : UInt<26>, p_type : UInt<2>}}, release : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_block : UInt<26>, client_xact_id : UInt<1>, addr_beat : UInt<2>, data : UInt<128>, r_type : UInt<3>, voluntary : UInt<1>}}}
+
+ wire T_165774 : UInt<3>[3]
+ T_165774[0] := UInt<3>(0)
+ T_165774[1] := UInt<3>(1)
+ T_165774[2] := UInt<3>(2)
+ wire T_165775 : UInt<2>[2]
+ T_165775[0] := UInt<2>(0)
+ T_165775[1] := UInt<2>(1)
+ wire T_165776 : UInt<2>[3]
+ T_165776[0] := UInt<2>(1)
+ T_165776[1] := UInt<2>(2)
+ T_165776[2] := UInt<2>(3)
+ wire T_165777 : UInt<2>[2]
+ T_165777[0] := UInt<2>(2)
+ T_165777[1] := UInt<2>(3)
+ wire T_165778 : UInt<2>[1]
+ T_165778[0] := UInt<2>(3)
+ wire T_165779 : UInt<3>[3]
+ T_165779[0] := UInt<3>(0)
+ T_165779[1] := UInt<3>(1)
+ T_165779[2] := UInt<3>(2)
+ wire T_165780 : UInt<2>[2]
+ T_165780[0] := UInt<2>(0)
+ T_165780[1] := UInt<2>(1)
+ wire T_165781 : UInt<2>[3]
+ T_165781[0] := UInt<2>(1)
+ T_165781[1] := UInt<2>(2)
+ T_165781[2] := UInt<2>(3)
+ wire T_165782 : UInt<2>[2]
+ T_165782[0] := UInt<2>(2)
+ T_165782[1] := UInt<2>(3)
+ wire T_165783 : UInt<2>[1]
+ T_165783[0] := UInt<2>(3)
+ wire T_165784 : UInt<3>[3]
+ T_165784[0] := UInt<3>(0)
+ T_165784[1] := UInt<3>(1)
+ T_165784[2] := UInt<3>(2)
+ wire T_165785 : UInt<2>[2]
+ T_165785[0] := UInt<2>(0)
+ T_165785[1] := UInt<2>(1)
+ wire T_165786 : UInt<2>[3]
+ T_165786[0] := UInt<2>(1)
+ T_165786[1] := UInt<2>(2)
+ T_165786[2] := UInt<2>(3)
+ wire T_165787 : UInt<2>[2]
+ T_165787[0] := UInt<2>(2)
+ T_165787[1] := UInt<2>(3)
+ wire T_165788 : UInt<2>[1]
+ T_165788[0] := UInt<2>(3)
+ wire T_165789 : UInt<3>[3]
+ T_165789[0] := UInt<3>(0)
+ T_165789[1] := UInt<3>(1)
+ T_165789[2] := UInt<3>(2)
+ wire T_165790 : UInt<2>[2]
+ T_165790[0] := UInt<2>(0)
+ T_165790[1] := UInt<2>(1)
+ wire T_165791 : UInt<2>[3]
+ T_165791[0] := UInt<2>(1)
+ T_165791[1] := UInt<2>(2)
+ T_165791[2] := UInt<2>(3)
+ wire T_165792 : UInt<2>[2]
+ T_165792[0] := UInt<2>(2)
+ T_165792[1] := UInt<2>(3)
+ wire T_165793 : UInt<2>[1]
+ T_165793[0] := UInt<2>(3)
+ wire T_165794 : UInt<3>[3]
+ T_165794[0] := UInt<3>(0)
+ T_165794[1] := UInt<3>(1)
+ T_165794[2] := UInt<3>(2)
+ wire T_165795 : UInt<2>[2]
+ T_165795[0] := UInt<2>(0)
+ T_165795[1] := UInt<2>(1)
+ wire T_165796 : UInt<2>[3]
+ T_165796[0] := UInt<2>(1)
+ T_165796[1] := UInt<2>(2)
+ T_165796[2] := UInt<2>(3)
+ wire T_165797 : UInt<2>[2]
+ T_165797[0] := UInt<2>(2)
+ T_165797[1] := UInt<2>(3)
+ wire T_165798 : UInt<2>[1]
+ T_165798[0] := UInt<2>(3)
+ wire T_165799 : UInt<3>[3]
+ T_165799[0] := UInt<3>(0)
+ T_165799[1] := UInt<3>(1)
+ T_165799[2] := UInt<3>(2)
+ wire T_165800 : UInt<2>[2]
+ T_165800[0] := UInt<2>(0)
+ T_165800[1] := UInt<2>(1)
+ wire T_165801 : UInt<2>[3]
+ T_165801[0] := UInt<2>(1)
+ T_165801[1] := UInt<2>(2)
+ T_165801[2] := UInt<2>(3)
+ wire T_165802 : UInt<2>[2]
+ T_165802[0] := UInt<2>(2)
+ T_165802[1] := UInt<2>(3)
+ wire T_165803 : UInt<2>[1]
+ T_165803[0] := UInt<2>(3)
+ wire T_165804 : UInt<3>[3]
+ T_165804[0] := UInt<3>(0)
+ T_165804[1] := UInt<3>(1)
+ T_165804[2] := UInt<3>(2)
+ wire T_165805 : UInt<2>[2]
+ T_165805[0] := UInt<2>(0)
+ T_165805[1] := UInt<2>(1)
+ wire T_165806 : UInt<2>[3]
+ T_165806[0] := UInt<2>(1)
+ T_165806[1] := UInt<2>(2)
+ T_165806[2] := UInt<2>(3)
+ wire T_165807 : UInt<2>[2]
+ T_165807[0] := UInt<2>(2)
+ T_165807[1] := UInt<2>(3)
+ wire T_165808 : UInt<2>[1]
+ T_165808[0] := UInt<2>(3)
+ wire T_165809 : UInt<3>[3]
+ T_165809[0] := UInt<3>(0)
+ T_165809[1] := UInt<3>(1)
+ T_165809[2] := UInt<3>(2)
+ wire T_165810 : UInt<2>[2]
+ T_165810[0] := UInt<2>(0)
+ T_165810[1] := UInt<2>(1)
+ wire T_165811 : UInt<2>[3]
+ T_165811[0] := UInt<2>(1)
+ T_165811[1] := UInt<2>(2)
+ T_165811[2] := UInt<2>(3)
+ wire T_165812 : UInt<2>[2]
+ T_165812[0] := UInt<2>(2)
+ T_165812[1] := UInt<2>(3)
+ wire T_165813 : UInt<2>[1]
+ T_165813[0] := UInt<2>(3)
+ wire T_165814 : UInt<3>[3]
+ T_165814[0] := UInt<3>(0)
+ T_165814[1] := UInt<3>(1)
+ T_165814[2] := UInt<3>(2)
+ wire T_165815 : UInt<2>[2]
+ T_165815[0] := UInt<2>(0)
+ T_165815[1] := UInt<2>(1)
+ wire T_165816 : UInt<2>[3]
+ T_165816[0] := UInt<2>(1)
+ T_165816[1] := UInt<2>(2)
+ T_165816[2] := UInt<2>(3)
+ wire T_165817 : UInt<2>[2]
+ T_165817[0] := UInt<2>(2)
+ T_165817[1] := UInt<2>(3)
+ wire T_165818 : UInt<2>[1]
+ T_165818[0] := UInt<2>(3)
+ wire T_165819 : UInt<3>[3]
+ T_165819[0] := UInt<3>(0)
+ T_165819[1] := UInt<3>(1)
+ T_165819[2] := UInt<3>(2)
+ wire T_165820 : UInt<2>[2]
+ T_165820[0] := UInt<2>(0)
+ T_165820[1] := UInt<2>(1)
+ wire T_165821 : UInt<2>[3]
+ T_165821[0] := UInt<2>(1)
+ T_165821[1] := UInt<2>(2)
+ T_165821[2] := UInt<2>(3)
+ wire T_165822 : UInt<2>[2]
+ T_165822[0] := UInt<2>(2)
+ T_165822[1] := UInt<2>(3)
+ wire T_165823 : UInt<2>[1]
+ T_165823[0] := UInt<2>(3)
+ wire T_165824 : UInt<3>[3]
+ T_165824[0] := UInt<3>(0)
+ T_165824[1] := UInt<3>(1)
+ T_165824[2] := UInt<3>(2)
+ wire T_165825 : UInt<2>[2]
+ T_165825[0] := UInt<2>(0)
+ T_165825[1] := UInt<2>(1)
+ wire T_165826 : UInt<2>[3]
+ T_165826[0] := UInt<2>(1)
+ T_165826[1] := UInt<2>(2)
+ T_165826[2] := UInt<2>(3)
+ wire T_165827 : UInt<2>[2]
+ T_165827[0] := UInt<2>(2)
+ T_165827[1] := UInt<2>(3)
+ wire T_165828 : UInt<2>[1]
+ T_165828[0] := UInt<2>(3)
+ wire T_165829 : UInt<3>[3]
+ T_165829[0] := UInt<3>(0)
+ T_165829[1] := UInt<3>(1)
+ T_165829[2] := UInt<3>(2)
+ wire T_165830 : UInt<2>[2]
+ T_165830[0] := UInt<2>(0)
+ T_165830[1] := UInt<2>(1)
+ wire T_165831 : UInt<2>[3]
+ T_165831[0] := UInt<2>(1)
+ T_165831[1] := UInt<2>(2)
+ T_165831[2] := UInt<2>(3)
+ wire T_165832 : UInt<2>[2]
+ T_165832[0] := UInt<2>(2)
+ T_165832[1] := UInt<2>(3)
+ wire T_165833 : UInt<2>[1]
+ T_165833[0] := UInt<2>(3)
+ wire T_165834 : UInt<3>[3]
+ T_165834[0] := UInt<3>(0)
+ T_165834[1] := UInt<3>(1)
+ T_165834[2] := UInt<3>(2)
+ wire T_165835 : UInt<2>[2]
+ T_165835[0] := UInt<2>(0)
+ T_165835[1] := UInt<2>(1)
+ wire T_165836 : UInt<2>[3]
+ T_165836[0] := UInt<2>(1)
+ T_165836[1] := UInt<2>(2)
+ T_165836[2] := UInt<2>(3)
+ wire T_165837 : UInt<2>[2]
+ T_165837[0] := UInt<2>(2)
+ T_165837[1] := UInt<2>(3)
+ wire T_165838 : UInt<2>[1]
+ T_165838[0] := UInt<2>(3)
+ wire T_165839 : UInt<3>[3]
+ T_165839[0] := UInt<3>(0)
+ T_165839[1] := UInt<3>(1)
+ T_165839[2] := UInt<3>(2)
+ wire T_165840 : UInt<2>[2]
+ T_165840[0] := UInt<2>(0)
+ T_165840[1] := UInt<2>(1)
+ wire T_165841 : UInt<2>[3]
+ T_165841[0] := UInt<2>(1)
+ T_165841[1] := UInt<2>(2)
+ T_165841[2] := UInt<2>(3)
+ wire T_165842 : UInt<2>[2]
+ T_165842[0] := UInt<2>(2)
+ T_165842[1] := UInt<2>(3)
+ wire T_165843 : UInt<2>[1]
+ T_165843[0] := UInt<2>(3)
+ wire T_165844 : UInt<3>[3]
+ T_165844[0] := UInt<3>(0)
+ T_165844[1] := UInt<3>(1)
+ T_165844[2] := UInt<3>(2)
+ wire T_165845 : UInt<2>[2]
+ T_165845[0] := UInt<2>(0)
+ T_165845[1] := UInt<2>(1)
+ wire T_165846 : UInt<2>[3]
+ T_165846[0] := UInt<2>(1)
+ T_165846[1] := UInt<2>(2)
+ T_165846[2] := UInt<2>(3)
+ wire T_165847 : UInt<2>[2]
+ T_165847[0] := UInt<2>(2)
+ T_165847[1] := UInt<2>(3)
+ wire T_165848 : UInt<2>[1]
+ T_165848[0] := UInt<2>(3)
+ out.acquire <> in.acquire
+ out.grant <> in.grant
+ out.probe.ready := UInt<1>(1)
+ out.release.valid := UInt<1>(0)
+ module ClientTileLinkIOWrapper_7600 :
+ input in : {acquire : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_block : UInt<26>, client_xact_id : UInt<1>, addr_beat : UInt<2>, data : UInt<128>, is_builtin_type : UInt<1>, a_type : UInt<3>, union : UInt<17>}}, flip grant : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_beat : UInt<2>, data : UInt<128>, client_xact_id : UInt<1>, manager_xact_id : UInt<2>, is_builtin_type : UInt<1>, g_type : UInt<4>}}}
+ output out : {acquire : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_block : UInt<26>, client_xact_id : UInt<1>, addr_beat : UInt<2>, data : UInt<128>, is_builtin_type : UInt<1>, a_type : UInt<3>, union : UInt<17>}}, flip grant : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_beat : UInt<2>, data : UInt<128>, client_xact_id : UInt<1>, manager_xact_id : UInt<2>, is_builtin_type : UInt<1>, g_type : UInt<4>}}, flip probe : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_block : UInt<26>, p_type : UInt<2>}}, release : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_block : UInt<26>, client_xact_id : UInt<1>, addr_beat : UInt<2>, data : UInt<128>, r_type : UInt<3>, voluntary : UInt<1>}}}
+
+ wire T_165849 : UInt<3>[3]
+ T_165849[0] := UInt<3>(0)
+ T_165849[1] := UInt<3>(1)
+ T_165849[2] := UInt<3>(2)
+ wire T_165850 : UInt<2>[2]
+ T_165850[0] := UInt<2>(0)
+ T_165850[1] := UInt<2>(1)
+ wire T_165851 : UInt<2>[3]
+ T_165851[0] := UInt<2>(1)
+ T_165851[1] := UInt<2>(2)
+ T_165851[2] := UInt<2>(3)
+ wire T_165852 : UInt<2>[2]
+ T_165852[0] := UInt<2>(2)
+ T_165852[1] := UInt<2>(3)
+ wire T_165853 : UInt<2>[1]
+ T_165853[0] := UInt<2>(3)
+ wire T_165854 : UInt<3>[3]
+ T_165854[0] := UInt<3>(0)
+ T_165854[1] := UInt<3>(1)
+ T_165854[2] := UInt<3>(2)
+ wire T_165855 : UInt<2>[2]
+ T_165855[0] := UInt<2>(0)
+ T_165855[1] := UInt<2>(1)
+ wire T_165856 : UInt<2>[3]
+ T_165856[0] := UInt<2>(1)
+ T_165856[1] := UInt<2>(2)
+ T_165856[2] := UInt<2>(3)
+ wire T_165857 : UInt<2>[2]
+ T_165857[0] := UInt<2>(2)
+ T_165857[1] := UInt<2>(3)
+ wire T_165858 : UInt<2>[1]
+ T_165858[0] := UInt<2>(3)
+ wire T_165859 : UInt<3>[3]
+ T_165859[0] := UInt<3>(0)
+ T_165859[1] := UInt<3>(1)
+ T_165859[2] := UInt<3>(2)
+ wire T_165860 : UInt<2>[2]
+ T_165860[0] := UInt<2>(0)
+ T_165860[1] := UInt<2>(1)
+ wire T_165861 : UInt<2>[3]
+ T_165861[0] := UInt<2>(1)
+ T_165861[1] := UInt<2>(2)
+ T_165861[2] := UInt<2>(3)
+ wire T_165862 : UInt<2>[2]
+ T_165862[0] := UInt<2>(2)
+ T_165862[1] := UInt<2>(3)
+ wire T_165863 : UInt<2>[1]
+ T_165863[0] := UInt<2>(3)
+ wire T_165864 : UInt<3>[3]
+ T_165864[0] := UInt<3>(0)
+ T_165864[1] := UInt<3>(1)
+ T_165864[2] := UInt<3>(2)
+ wire T_165865 : UInt<2>[2]
+ T_165865[0] := UInt<2>(0)
+ T_165865[1] := UInt<2>(1)
+ wire T_165866 : UInt<2>[3]
+ T_165866[0] := UInt<2>(1)
+ T_165866[1] := UInt<2>(2)
+ T_165866[2] := UInt<2>(3)
+ wire T_165867 : UInt<2>[2]
+ T_165867[0] := UInt<2>(2)
+ T_165867[1] := UInt<2>(3)
+ wire T_165868 : UInt<2>[1]
+ T_165868[0] := UInt<2>(3)
+ wire T_165869 : UInt<3>[3]
+ T_165869[0] := UInt<3>(0)
+ T_165869[1] := UInt<3>(1)
+ T_165869[2] := UInt<3>(2)
+ wire T_165870 : UInt<2>[2]
+ T_165870[0] := UInt<2>(0)
+ T_165870[1] := UInt<2>(1)
+ wire T_165871 : UInt<2>[3]
+ T_165871[0] := UInt<2>(1)
+ T_165871[1] := UInt<2>(2)
+ T_165871[2] := UInt<2>(3)
+ wire T_165872 : UInt<2>[2]
+ T_165872[0] := UInt<2>(2)
+ T_165872[1] := UInt<2>(3)
+ wire T_165873 : UInt<2>[1]
+ T_165873[0] := UInt<2>(3)
+ wire T_165874 : UInt<3>[3]
+ T_165874[0] := UInt<3>(0)
+ T_165874[1] := UInt<3>(1)
+ T_165874[2] := UInt<3>(2)
+ wire T_165875 : UInt<2>[2]
+ T_165875[0] := UInt<2>(0)
+ T_165875[1] := UInt<2>(1)
+ wire T_165876 : UInt<2>[3]
+ T_165876[0] := UInt<2>(1)
+ T_165876[1] := UInt<2>(2)
+ T_165876[2] := UInt<2>(3)
+ wire T_165877 : UInt<2>[2]
+ T_165877[0] := UInt<2>(2)
+ T_165877[1] := UInt<2>(3)
+ wire T_165878 : UInt<2>[1]
+ T_165878[0] := UInt<2>(3)
+ wire T_165879 : UInt<3>[3]
+ T_165879[0] := UInt<3>(0)
+ T_165879[1] := UInt<3>(1)
+ T_165879[2] := UInt<3>(2)
+ wire T_165880 : UInt<2>[2]
+ T_165880[0] := UInt<2>(0)
+ T_165880[1] := UInt<2>(1)
+ wire T_165881 : UInt<2>[3]
+ T_165881[0] := UInt<2>(1)
+ T_165881[1] := UInt<2>(2)
+ T_165881[2] := UInt<2>(3)
+ wire T_165882 : UInt<2>[2]
+ T_165882[0] := UInt<2>(2)
+ T_165882[1] := UInt<2>(3)
+ wire T_165883 : UInt<2>[1]
+ T_165883[0] := UInt<2>(3)
+ wire T_165884 : UInt<3>[3]
+ T_165884[0] := UInt<3>(0)
+ T_165884[1] := UInt<3>(1)
+ T_165884[2] := UInt<3>(2)
+ wire T_165885 : UInt<2>[2]
+ T_165885[0] := UInt<2>(0)
+ T_165885[1] := UInt<2>(1)
+ wire T_165886 : UInt<2>[3]
+ T_165886[0] := UInt<2>(1)
+ T_165886[1] := UInt<2>(2)
+ T_165886[2] := UInt<2>(3)
+ wire T_165887 : UInt<2>[2]
+ T_165887[0] := UInt<2>(2)
+ T_165887[1] := UInt<2>(3)
+ wire T_165888 : UInt<2>[1]
+ T_165888[0] := UInt<2>(3)
+ wire T_165889 : UInt<3>[3]
+ T_165889[0] := UInt<3>(0)
+ T_165889[1] := UInt<3>(1)
+ T_165889[2] := UInt<3>(2)
+ wire T_165890 : UInt<2>[2]
+ T_165890[0] := UInt<2>(0)
+ T_165890[1] := UInt<2>(1)
+ wire T_165891 : UInt<2>[3]
+ T_165891[0] := UInt<2>(1)
+ T_165891[1] := UInt<2>(2)
+ T_165891[2] := UInt<2>(3)
+ wire T_165892 : UInt<2>[2]
+ T_165892[0] := UInt<2>(2)
+ T_165892[1] := UInt<2>(3)
+ wire T_165893 : UInt<2>[1]
+ T_165893[0] := UInt<2>(3)
+ wire T_165894 : UInt<3>[3]
+ T_165894[0] := UInt<3>(0)
+ T_165894[1] := UInt<3>(1)
+ T_165894[2] := UInt<3>(2)
+ wire T_165895 : UInt<2>[2]
+ T_165895[0] := UInt<2>(0)
+ T_165895[1] := UInt<2>(1)
+ wire T_165896 : UInt<2>[3]
+ T_165896[0] := UInt<2>(1)
+ T_165896[1] := UInt<2>(2)
+ T_165896[2] := UInt<2>(3)
+ wire T_165897 : UInt<2>[2]
+ T_165897[0] := UInt<2>(2)
+ T_165897[1] := UInt<2>(3)
+ wire T_165898 : UInt<2>[1]
+ T_165898[0] := UInt<2>(3)
+ wire T_165899 : UInt<3>[3]
+ T_165899[0] := UInt<3>(0)
+ T_165899[1] := UInt<3>(1)
+ T_165899[2] := UInt<3>(2)
+ wire T_165900 : UInt<2>[2]
+ T_165900[0] := UInt<2>(0)
+ T_165900[1] := UInt<2>(1)
+ wire T_165901 : UInt<2>[3]
+ T_165901[0] := UInt<2>(1)
+ T_165901[1] := UInt<2>(2)
+ T_165901[2] := UInt<2>(3)
+ wire T_165902 : UInt<2>[2]
+ T_165902[0] := UInt<2>(2)
+ T_165902[1] := UInt<2>(3)
+ wire T_165903 : UInt<2>[1]
+ T_165903[0] := UInt<2>(3)
+ wire T_165904 : UInt<3>[3]
+ T_165904[0] := UInt<3>(0)
+ T_165904[1] := UInt<3>(1)
+ T_165904[2] := UInt<3>(2)
+ wire T_165905 : UInt<2>[2]
+ T_165905[0] := UInt<2>(0)
+ T_165905[1] := UInt<2>(1)
+ wire T_165906 : UInt<2>[3]
+ T_165906[0] := UInt<2>(1)
+ T_165906[1] := UInt<2>(2)
+ T_165906[2] := UInt<2>(3)
+ wire T_165907 : UInt<2>[2]
+ T_165907[0] := UInt<2>(2)
+ T_165907[1] := UInt<2>(3)
+ wire T_165908 : UInt<2>[1]
+ T_165908[0] := UInt<2>(3)
+ wire T_165909 : UInt<3>[3]
+ T_165909[0] := UInt<3>(0)
+ T_165909[1] := UInt<3>(1)
+ T_165909[2] := UInt<3>(2)
+ wire T_165910 : UInt<2>[2]
+ T_165910[0] := UInt<2>(0)
+ T_165910[1] := UInt<2>(1)
+ wire T_165911 : UInt<2>[3]
+ T_165911[0] := UInt<2>(1)
+ T_165911[1] := UInt<2>(2)
+ T_165911[2] := UInt<2>(3)
+ wire T_165912 : UInt<2>[2]
+ T_165912[0] := UInt<2>(2)
+ T_165912[1] := UInt<2>(3)
+ wire T_165913 : UInt<2>[1]
+ T_165913[0] := UInt<2>(3)
+ wire T_165914 : UInt<3>[3]
+ T_165914[0] := UInt<3>(0)
+ T_165914[1] := UInt<3>(1)
+ T_165914[2] := UInt<3>(2)
+ wire T_165915 : UInt<2>[2]
+ T_165915[0] := UInt<2>(0)
+ T_165915[1] := UInt<2>(1)
+ wire T_165916 : UInt<2>[3]
+ T_165916[0] := UInt<2>(1)
+ T_165916[1] := UInt<2>(2)
+ T_165916[2] := UInt<2>(3)
+ wire T_165917 : UInt<2>[2]
+ T_165917[0] := UInt<2>(2)
+ T_165917[1] := UInt<2>(3)
+ wire T_165918 : UInt<2>[1]
+ T_165918[0] := UInt<2>(3)
+ wire T_165919 : UInt<3>[3]
+ T_165919[0] := UInt<3>(0)
+ T_165919[1] := UInt<3>(1)
+ T_165919[2] := UInt<3>(2)
+ wire T_165920 : UInt<2>[2]
+ T_165920[0] := UInt<2>(0)
+ T_165920[1] := UInt<2>(1)
+ wire T_165921 : UInt<2>[3]
+ T_165921[0] := UInt<2>(1)
+ T_165921[1] := UInt<2>(2)
+ T_165921[2] := UInt<2>(3)
+ wire T_165922 : UInt<2>[2]
+ T_165922[0] := UInt<2>(2)
+ T_165922[1] := UInt<2>(3)
+ wire T_165923 : UInt<2>[1]
+ T_165923[0] := UInt<2>(3)
+ out.acquire <> in.acquire
+ out.grant <> in.grant
+ out.probe.ready := UInt<1>(1)
+ out.release.valid := UInt<1>(0)
+ module FinishQueue :
+ input enq : {flip ready : UInt<1>, valid : UInt<1>, bits : {fin : {manager_xact_id : UInt<2>}, dst : UInt<2>}}
+ output deq : {flip ready : UInt<1>, valid : UInt<1>, bits : {fin : {manager_xact_id : UInt<2>}, dst : UInt<2>}}
+ output count : UInt<2>
+
+ wire T_165924 : UInt<3>[3]
+ T_165924[0] := UInt<3>(0)
+ T_165924[1] := UInt<3>(1)
+ T_165924[2] := UInt<3>(2)
+ wire T_165925 : UInt<2>[2]
+ T_165925[0] := UInt<2>(0)
+ T_165925[1] := UInt<2>(1)
+ wire T_165926 : UInt<2>[3]
+ T_165926[0] := UInt<2>(1)
+ T_165926[1] := UInt<2>(2)
+ T_165926[2] := UInt<2>(3)
+ wire T_165927 : UInt<2>[2]
+ T_165927[0] := UInt<2>(2)
+ T_165927[1] := UInt<2>(3)
+ wire T_165928 : UInt<2>[1]
+ T_165928[0] := UInt<2>(3)
+ wire T_165929 : UInt<3>[3]
+ T_165929[0] := UInt<3>(0)
+ T_165929[1] := UInt<3>(1)
+ T_165929[2] := UInt<3>(2)
+ wire T_165930 : UInt<2>[2]
+ T_165930[0] := UInt<2>(0)
+ T_165930[1] := UInt<2>(1)
+ wire T_165931 : UInt<2>[3]
+ T_165931[0] := UInt<2>(1)
+ T_165931[1] := UInt<2>(2)
+ T_165931[2] := UInt<2>(3)
+ wire T_165932 : UInt<2>[2]
+ T_165932[0] := UInt<2>(2)
+ T_165932[1] := UInt<2>(3)
+ wire T_165933 : UInt<2>[1]
+ T_165933[0] := UInt<2>(3)
+ wire T_165934 : UInt<3>[3]
+ T_165934[0] := UInt<3>(0)
+ T_165934[1] := UInt<3>(1)
+ T_165934[2] := UInt<3>(2)
+ wire T_165935 : UInt<2>[2]
+ T_165935[0] := UInt<2>(0)
+ T_165935[1] := UInt<2>(1)
+ wire T_165936 : UInt<2>[3]
+ T_165936[0] := UInt<2>(1)
+ T_165936[1] := UInt<2>(2)
+ T_165936[2] := UInt<2>(3)
+ wire T_165937 : UInt<2>[2]
+ T_165937[0] := UInt<2>(2)
+ T_165937[1] := UInt<2>(3)
+ wire T_165938 : UInt<2>[1]
+ T_165938[0] := UInt<2>(3)
+ wire T_165939 : UInt<3>[3]
+ T_165939[0] := UInt<3>(0)
+ T_165939[1] := UInt<3>(1)
+ T_165939[2] := UInt<3>(2)
+ wire T_165940 : UInt<2>[2]
+ T_165940[0] := UInt<2>(0)
+ T_165940[1] := UInt<2>(1)
+ wire T_165941 : UInt<2>[3]
+ T_165941[0] := UInt<2>(1)
+ T_165941[1] := UInt<2>(2)
+ T_165941[2] := UInt<2>(3)
+ wire T_165942 : UInt<2>[2]
+ T_165942[0] := UInt<2>(2)
+ T_165942[1] := UInt<2>(3)
+ wire T_165943 : UInt<2>[1]
+ T_165943[0] := UInt<2>(3)
+ wire T_165944 : UInt<3>[3]
+ T_165944[0] := UInt<3>(0)
+ T_165944[1] := UInt<3>(1)
+ T_165944[2] := UInt<3>(2)
+ wire T_165945 : UInt<2>[2]
+ T_165945[0] := UInt<2>(0)
+ T_165945[1] := UInt<2>(1)
+ wire T_165946 : UInt<2>[3]
+ T_165946[0] := UInt<2>(1)
+ T_165946[1] := UInt<2>(2)
+ T_165946[2] := UInt<2>(3)
+ wire T_165947 : UInt<2>[2]
+ T_165947[0] := UInt<2>(2)
+ T_165947[1] := UInt<2>(3)
+ wire T_165948 : UInt<2>[1]
+ T_165948[0] := UInt<2>(3)
+ wire T_165949 : UInt<3>[3]
+ T_165949[0] := UInt<3>(0)
+ T_165949[1] := UInt<3>(1)
+ T_165949[2] := UInt<3>(2)
+ wire T_165950 : UInt<2>[2]
+ T_165950[0] := UInt<2>(0)
+ T_165950[1] := UInt<2>(1)
+ wire T_165951 : UInt<2>[3]
+ T_165951[0] := UInt<2>(1)
+ T_165951[1] := UInt<2>(2)
+ T_165951[2] := UInt<2>(3)
+ wire T_165952 : UInt<2>[2]
+ T_165952[0] := UInt<2>(2)
+ T_165952[1] := UInt<2>(3)
+ wire T_165953 : UInt<2>[1]
+ T_165953[0] := UInt<2>(3)
+ wire T_165954 : UInt<3>[3]
+ T_165954[0] := UInt<3>(0)
+ T_165954[1] := UInt<3>(1)
+ T_165954[2] := UInt<3>(2)
+ wire T_165955 : UInt<2>[2]
+ T_165955[0] := UInt<2>(0)
+ T_165955[1] := UInt<2>(1)
+ wire T_165956 : UInt<2>[3]
+ T_165956[0] := UInt<2>(1)
+ T_165956[1] := UInt<2>(2)
+ T_165956[2] := UInt<2>(3)
+ wire T_165957 : UInt<2>[2]
+ T_165957[0] := UInt<2>(2)
+ T_165957[1] := UInt<2>(3)
+ wire T_165958 : UInt<2>[1]
+ T_165958[0] := UInt<2>(3)
+ wire T_165959 : UInt<3>[3]
+ T_165959[0] := UInt<3>(0)
+ T_165959[1] := UInt<3>(1)
+ T_165959[2] := UInt<3>(2)
+ wire T_165960 : UInt<2>[2]
+ T_165960[0] := UInt<2>(0)
+ T_165960[1] := UInt<2>(1)
+ wire T_165961 : UInt<2>[3]
+ T_165961[0] := UInt<2>(1)
+ T_165961[1] := UInt<2>(2)
+ T_165961[2] := UInt<2>(3)
+ wire T_165962 : UInt<2>[2]
+ T_165962[0] := UInt<2>(2)
+ T_165962[1] := UInt<2>(3)
+ wire T_165963 : UInt<2>[1]
+ T_165963[0] := UInt<2>(3)
+ wire T_165964 : UInt<3>[3]
+ T_165964[0] := UInt<3>(0)
+ T_165964[1] := UInt<3>(1)
+ T_165964[2] := UInt<3>(2)
+ wire T_165965 : UInt<2>[2]
+ T_165965[0] := UInt<2>(0)
+ T_165965[1] := UInt<2>(1)
+ wire T_165966 : UInt<2>[3]
+ T_165966[0] := UInt<2>(1)
+ T_165966[1] := UInt<2>(2)
+ T_165966[2] := UInt<2>(3)
+ wire T_165967 : UInt<2>[2]
+ T_165967[0] := UInt<2>(2)
+ T_165967[1] := UInt<2>(3)
+ wire T_165968 : UInt<2>[1]
+ T_165968[0] := UInt<2>(3)
+ wire T_165969 : UInt<3>[3]
+ T_165969[0] := UInt<3>(0)
+ T_165969[1] := UInt<3>(1)
+ T_165969[2] := UInt<3>(2)
+ wire T_165970 : UInt<2>[2]
+ T_165970[0] := UInt<2>(0)
+ T_165970[1] := UInt<2>(1)
+ wire T_165971 : UInt<2>[3]
+ T_165971[0] := UInt<2>(1)
+ T_165971[1] := UInt<2>(2)
+ T_165971[2] := UInt<2>(3)
+ wire T_165972 : UInt<2>[2]
+ T_165972[0] := UInt<2>(2)
+ T_165972[1] := UInt<2>(3)
+ wire T_165973 : UInt<2>[1]
+ T_165973[0] := UInt<2>(3)
+ cmem T_165974 : {fin : {manager_xact_id : UInt<2>}, dst : UInt<2>}[2]
+ reg T_165975 : UInt<1>
+ onreset T_165975 := UInt<1>(0)
+ reg T_165976 : UInt<1>
+ onreset T_165976 := UInt<1>(0)
+ reg T_165977 : UInt<1>
+ onreset T_165977 := UInt<1>(0)
+ node T_165978 = eq(T_165975, T_165976)
+ node T_165979 = eq(T_165977, UInt<1>(0))
+ node T_165980 = and(T_165978, T_165979)
+ node T_165981 = and(T_165978, T_165977)
+ node T_165982 = and(UInt<1>(0), T_165980)
+ node T_165983 = and(T_165982, deq.ready)
+ node T_165984 = and(enq.ready, enq.valid)
+ node T_165985 = eq(T_165983, UInt<1>(0))
+ node T_165986 = and(T_165984, T_165985)
+ node T_165987 = and(deq.ready, deq.valid)
+ node T_165988 = eq(T_165983, UInt<1>(0))
+ node T_165989 = and(T_165987, T_165988)
+ when T_165986 :
+ wire T_165990 : UInt<3>[3]
+ T_165990[0] := UInt<3>(0)
+ T_165990[1] := UInt<3>(1)
+ T_165990[2] := UInt<3>(2)
+ wire T_165991 : UInt<2>[2]
+ T_165991[0] := UInt<2>(0)
+ T_165991[1] := UInt<2>(1)
+ wire T_165992 : UInt<2>[3]
+ T_165992[0] := UInt<2>(1)
+ T_165992[1] := UInt<2>(2)
+ T_165992[2] := UInt<2>(3)
+ wire T_165993 : UInt<2>[2]
+ T_165993[0] := UInt<2>(2)
+ T_165993[1] := UInt<2>(3)
+ wire T_165994 : UInt<2>[1]
+ T_165994[0] := UInt<2>(3)
+ wire T_165995 : UInt<3>[3]
+ T_165995[0] := UInt<3>(0)
+ T_165995[1] := UInt<3>(1)
+ T_165995[2] := UInt<3>(2)
+ wire T_165996 : UInt<2>[2]
+ T_165996[0] := UInt<2>(0)
+ T_165996[1] := UInt<2>(1)
+ wire T_165997 : UInt<2>[3]
+ T_165997[0] := UInt<2>(1)
+ T_165997[1] := UInt<2>(2)
+ T_165997[2] := UInt<2>(3)
+ wire T_165998 : UInt<2>[2]
+ T_165998[0] := UInt<2>(2)
+ T_165998[1] := UInt<2>(3)
+ wire T_165999 : UInt<2>[1]
+ T_165999[0] := UInt<2>(3)
+ accessor T_166000 = T_165974[T_165975]
+ T_166000 := enq.bits
+ node T_166001 = eq(T_165975, UInt<1>(1))
+ node T_166002 = and(UInt<1>(0), T_166001)
+ node T_166003 = addw(T_165975, UInt<1>(1))
+ wire T_166004 : UInt<1>
+ T_166004 := T_166003
+ when T_166002 : T_166004 := UInt<1>(0)
+ T_165975 := T_166004
+ when T_165989 :
+ node T_166005 = eq(T_165976, UInt<1>(1))
+ node T_166006 = and(UInt<1>(0), T_166005)
+ node T_166007 = addw(T_165976, UInt<1>(1))
+ wire T_166008 : UInt<1>
+ T_166008 := T_166007
+ when T_166006 : T_166008 := UInt<1>(0)
+ T_165976 := T_166008
+
+ node T_166009 = neq(T_165986, T_165989)
+ when T_166009 : T_165977 := T_165986
+ node T_166010 = eq(T_165980, UInt<1>(0))
+ node T_166011 = and(UInt<1>(0), enq.valid)
+ node T_166012 = or(T_166010, T_166011)
+ deq.valid := T_166012
+ node T_166013 = eq(T_165981, UInt<1>(0))
+ node T_166014 = and(UInt<1>(0), deq.ready)
+ node T_166015 = or(T_166013, T_166014)
+ enq.ready := T_166015
+ wire T_166016 : UInt<3>[3]
+ T_166016[0] := UInt<3>(0)
+ T_166016[1] := UInt<3>(1)
+ T_166016[2] := UInt<3>(2)
+ wire T_166017 : UInt<2>[2]
+ T_166017[0] := UInt<2>(0)
+ T_166017[1] := UInt<2>(1)
+ wire T_166018 : UInt<2>[3]
+ T_166018[0] := UInt<2>(1)
+ T_166018[1] := UInt<2>(2)
+ T_166018[2] := UInt<2>(3)
+ wire T_166019 : UInt<2>[2]
+ T_166019[0] := UInt<2>(2)
+ T_166019[1] := UInt<2>(3)
+ wire T_166020 : UInt<2>[1]
+ T_166020[0] := UInt<2>(3)
+ wire T_166021 : UInt<3>[3]
+ T_166021[0] := UInt<3>(0)
+ T_166021[1] := UInt<3>(1)
+ T_166021[2] := UInt<3>(2)
+ wire T_166022 : UInt<2>[2]
+ T_166022[0] := UInt<2>(0)
+ T_166022[1] := UInt<2>(1)
+ wire T_166023 : UInt<2>[3]
+ T_166023[0] := UInt<2>(1)
+ T_166023[1] := UInt<2>(2)
+ T_166023[2] := UInt<2>(3)
+ wire T_166024 : UInt<2>[2]
+ T_166024[0] := UInt<2>(2)
+ T_166024[1] := UInt<2>(3)
+ wire T_166025 : UInt<2>[1]
+ T_166025[0] := UInt<2>(3)
+ accessor T_166026 = T_165974[T_165976]
+ wire T_166027 : UInt<3>[3]
+ T_166027[0] := UInt<3>(0)
+ T_166027[1] := UInt<3>(1)
+ T_166027[2] := UInt<3>(2)
+ wire T_166028 : UInt<2>[2]
+ T_166028[0] := UInt<2>(0)
+ T_166028[1] := UInt<2>(1)
+ wire T_166029 : UInt<2>[3]
+ T_166029[0] := UInt<2>(1)
+ T_166029[1] := UInt<2>(2)
+ T_166029[2] := UInt<2>(3)
+ wire T_166030 : UInt<2>[2]
+ T_166030[0] := UInt<2>(2)
+ T_166030[1] := UInt<2>(3)
+ wire T_166031 : UInt<2>[1]
+ T_166031[0] := UInt<2>(3)
+ wire T_166032 : UInt<3>[3]
+ T_166032[0] := UInt<3>(0)
+ T_166032[1] := UInt<3>(1)
+ T_166032[2] := UInt<3>(2)
+ wire T_166033 : UInt<2>[2]
+ T_166033[0] := UInt<2>(0)
+ T_166033[1] := UInt<2>(1)
+ wire T_166034 : UInt<2>[3]
+ T_166034[0] := UInt<2>(1)
+ T_166034[1] := UInt<2>(2)
+ T_166034[2] := UInt<2>(3)
+ wire T_166035 : UInt<2>[2]
+ T_166035[0] := UInt<2>(2)
+ T_166035[1] := UInt<2>(3)
+ wire T_166036 : UInt<2>[1]
+ T_166036[0] := UInt<2>(3)
+ wire T_166037 : {fin : {manager_xact_id : UInt<2>}, dst : UInt<2>}
+ T_166037 := T_166026
+ when T_165982 : T_166037 := enq.bits
+ deq.bits := T_166037
+ node T_166038 = subw(T_165975, T_165976)
+ node T_166039 = and(T_165977, T_165978)
+ node T_166040 = cat(T_166039, T_166038)
+ count := T_166040
+ module FinishUnit :
+ input grant : {flip ready : UInt<1>, valid : UInt<1>, bits : {header : {src : UInt<2>, dst : UInt<2>}, payload : {addr_beat : UInt<2>, data : UInt<128>, client_xact_id : UInt<1>, manager_xact_id : UInt<2>, is_builtin_type : UInt<1>, g_type : UInt<4>}}}
+ output refill : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_beat : UInt<2>, data : UInt<128>, client_xact_id : UInt<1>, manager_xact_id : UInt<2>, is_builtin_type : UInt<1>, g_type : UInt<4>}}
+ output finish : {flip ready : UInt<1>, valid : UInt<1>, bits : {header : {src : UInt<2>, dst : UInt<2>}, payload : {manager_xact_id : UInt<2>}}}
+ output ready : UInt<1>
+
+ wire T_166041 : UInt<3>[3]
+ T_166041[0] := UInt<3>(0)
+ T_166041[1] := UInt<3>(1)
+ T_166041[2] := UInt<3>(2)
+ wire T_166042 : UInt<2>[2]
+ T_166042[0] := UInt<2>(0)
+ T_166042[1] := UInt<2>(1)
+ wire T_166043 : UInt<2>[3]
+ T_166043[0] := UInt<2>(1)
+ T_166043[1] := UInt<2>(2)
+ T_166043[2] := UInt<2>(3)
+ wire T_166044 : UInt<2>[2]
+ T_166044[0] := UInt<2>(2)
+ T_166044[1] := UInt<2>(3)
+ wire T_166045 : UInt<2>[1]
+ T_166045[0] := UInt<2>(3)
+ wire T_166046 : UInt<3>[3]
+ T_166046[0] := UInt<3>(0)
+ T_166046[1] := UInt<3>(1)
+ T_166046[2] := UInt<3>(2)
+ wire T_166047 : UInt<2>[2]
+ T_166047[0] := UInt<2>(0)
+ T_166047[1] := UInt<2>(1)
+ wire T_166048 : UInt<2>[3]
+ T_166048[0] := UInt<2>(1)
+ T_166048[1] := UInt<2>(2)
+ T_166048[2] := UInt<2>(3)
+ wire T_166049 : UInt<2>[2]
+ T_166049[0] := UInt<2>(2)
+ T_166049[1] := UInt<2>(3)
+ wire T_166050 : UInt<2>[1]
+ T_166050[0] := UInt<2>(3)
+ wire T_166051 : UInt<3>[3]
+ T_166051[0] := UInt<3>(0)
+ T_166051[1] := UInt<3>(1)
+ T_166051[2] := UInt<3>(2)
+ wire T_166052 : UInt<2>[2]
+ T_166052[0] := UInt<2>(0)
+ T_166052[1] := UInt<2>(1)
+ wire T_166053 : UInt<2>[3]
+ T_166053[0] := UInt<2>(1)
+ T_166053[1] := UInt<2>(2)
+ T_166053[2] := UInt<2>(3)
+ wire T_166054 : UInt<2>[2]
+ T_166054[0] := UInt<2>(2)
+ T_166054[1] := UInt<2>(3)
+ wire T_166055 : UInt<2>[1]
+ T_166055[0] := UInt<2>(3)
+ wire T_166056 : UInt<3>[3]
+ T_166056[0] := UInt<3>(0)
+ T_166056[1] := UInt<3>(1)
+ T_166056[2] := UInt<3>(2)
+ wire T_166057 : UInt<2>[2]
+ T_166057[0] := UInt<2>(0)
+ T_166057[1] := UInt<2>(1)
+ wire T_166058 : UInt<2>[3]
+ T_166058[0] := UInt<2>(1)
+ T_166058[1] := UInt<2>(2)
+ T_166058[2] := UInt<2>(3)
+ wire T_166059 : UInt<2>[2]
+ T_166059[0] := UInt<2>(2)
+ T_166059[1] := UInt<2>(3)
+ wire T_166060 : UInt<2>[1]
+ T_166060[0] := UInt<2>(3)
+ wire T_166061 : UInt<3>[3]
+ T_166061[0] := UInt<3>(0)
+ T_166061[1] := UInt<3>(1)
+ T_166061[2] := UInt<3>(2)
+ wire T_166062 : UInt<2>[2]
+ T_166062[0] := UInt<2>(0)
+ T_166062[1] := UInt<2>(1)
+ wire T_166063 : UInt<2>[3]
+ T_166063[0] := UInt<2>(1)
+ T_166063[1] := UInt<2>(2)
+ T_166063[2] := UInt<2>(3)
+ wire T_166064 : UInt<2>[2]
+ T_166064[0] := UInt<2>(2)
+ T_166064[1] := UInt<2>(3)
+ wire T_166065 : UInt<2>[1]
+ T_166065[0] := UInt<2>(3)
+ wire T_166066 : UInt<3>[3]
+ T_166066[0] := UInt<3>(0)
+ T_166066[1] := UInt<3>(1)
+ T_166066[2] := UInt<3>(2)
+ wire T_166067 : UInt<2>[2]
+ T_166067[0] := UInt<2>(0)
+ T_166067[1] := UInt<2>(1)
+ wire T_166068 : UInt<2>[3]
+ T_166068[0] := UInt<2>(1)
+ T_166068[1] := UInt<2>(2)
+ T_166068[2] := UInt<2>(3)
+ wire T_166069 : UInt<2>[2]
+ T_166069[0] := UInt<2>(2)
+ T_166069[1] := UInt<2>(3)
+ wire T_166070 : UInt<2>[1]
+ T_166070[0] := UInt<2>(3)
+ wire T_166071 : UInt<3>[3]
+ T_166071[0] := UInt<3>(0)
+ T_166071[1] := UInt<3>(1)
+ T_166071[2] := UInt<3>(2)
+ wire T_166072 : UInt<2>[2]
+ T_166072[0] := UInt<2>(0)
+ T_166072[1] := UInt<2>(1)
+ wire T_166073 : UInt<2>[3]
+ T_166073[0] := UInt<2>(1)
+ T_166073[1] := UInt<2>(2)
+ T_166073[2] := UInt<2>(3)
+ wire T_166074 : UInt<2>[2]
+ T_166074[0] := UInt<2>(2)
+ T_166074[1] := UInt<2>(3)
+ wire T_166075 : UInt<2>[1]
+ T_166075[0] := UInt<2>(3)
+ wire T_166076 : UInt<3>[3]
+ T_166076[0] := UInt<3>(0)
+ T_166076[1] := UInt<3>(1)
+ T_166076[2] := UInt<3>(2)
+ wire T_166077 : UInt<2>[2]
+ T_166077[0] := UInt<2>(0)
+ T_166077[1] := UInt<2>(1)
+ wire T_166078 : UInt<2>[3]
+ T_166078[0] := UInt<2>(1)
+ T_166078[1] := UInt<2>(2)
+ T_166078[2] := UInt<2>(3)
+ wire T_166079 : UInt<2>[2]
+ T_166079[0] := UInt<2>(2)
+ T_166079[1] := UInt<2>(3)
+ wire T_166080 : UInt<2>[1]
+ T_166080[0] := UInt<2>(3)
+ wire T_166081 : UInt<3>[3]
+ T_166081[0] := UInt<3>(0)
+ T_166081[1] := UInt<3>(1)
+ T_166081[2] := UInt<3>(2)
+ wire T_166082 : UInt<2>[2]
+ T_166082[0] := UInt<2>(0)
+ T_166082[1] := UInt<2>(1)
+ wire T_166083 : UInt<2>[3]
+ T_166083[0] := UInt<2>(1)
+ T_166083[1] := UInt<2>(2)
+ T_166083[2] := UInt<2>(3)
+ wire T_166084 : UInt<2>[2]
+ T_166084[0] := UInt<2>(2)
+ T_166084[1] := UInt<2>(3)
+ wire T_166085 : UInt<2>[1]
+ T_166085[0] := UInt<2>(3)
+ node T_166086 = and(grant.ready, grant.valid)
+ wire T_166087 : UInt<3>[1]
+ T_166087[0] := UInt<3>(5)
+ node T_166088 = eq(T_166087[0], grant.bits.payload.g_type)
+ node T_166089 = or(UInt<1>(0), T_166088)
+ node T_166090 = eq(T_166057[0], grant.bits.payload.g_type)
+ node T_166091 = eq(T_166057[1], grant.bits.payload.g_type)
+ node T_166092 = or(UInt<1>(0), T_166090)
+ node T_166093 = or(T_166092, T_166091)
+ wire T_166094 : UInt<1>
+ T_166094 := T_166093
+ when grant.bits.payload.is_builtin_type : T_166094 := T_166089
+ node T_166095 = and(UInt<1>(1), T_166094)
+ node T_166096 = and(T_166086, T_166095)
+ reg T_166097 : UInt<2>
+ onreset T_166097 := UInt<2>(0)
+ when T_166096 :
+ node T_166098 = eq(T_166097, UInt<2>(3))
+ node T_166099 = and(UInt<1>(0), T_166098)
+ node T_166100 = addw(T_166097, UInt<1>(1))
+ wire T_166101 : UInt<2>
+ T_166101 := T_166100
+ when T_166099 : T_166101 := UInt<1>(0)
+ T_166097 := T_166101
+ node T_166102 = and(T_166096, T_166098)
+ wire T_166103 : UInt<1>
+ T_166103 := UInt<1>(0)
+ when T_166095 : T_166103 := T_166097
+ wire T_166104 : UInt<1>
+ T_166104 := T_166086
+ when T_166095 : T_166104 := T_166102
+ wire T_166105 : UInt<3>[3]
+ T_166105[0] := UInt<3>(0)
+ T_166105[1] := UInt<3>(1)
+ T_166105[2] := UInt<3>(2)
+ wire T_166106 : UInt<2>[2]
+ T_166106[0] := UInt<2>(0)
+ T_166106[1] := UInt<2>(1)
+ wire T_166107 : UInt<2>[3]
+ T_166107[0] := UInt<2>(1)
+ T_166107[1] := UInt<2>(2)
+ T_166107[2] := UInt<2>(3)
+ wire T_166108 : UInt<2>[2]
+ T_166108[0] := UInt<2>(2)
+ T_166108[1] := UInt<2>(3)
+ wire T_166109 : UInt<2>[1]
+ T_166109[0] := UInt<2>(3)
+ wire T_166110 : UInt<3>[3]
+ T_166110[0] := UInt<3>(0)
+ T_166110[1] := UInt<3>(1)
+ T_166110[2] := UInt<3>(2)
+ wire T_166111 : UInt<2>[2]
+ T_166111[0] := UInt<2>(0)
+ T_166111[1] := UInt<2>(1)
+ wire T_166112 : UInt<2>[3]
+ T_166112[0] := UInt<2>(1)
+ T_166112[1] := UInt<2>(2)
+ T_166112[2] := UInt<2>(3)
+ wire T_166113 : UInt<2>[2]
+ T_166113[0] := UInt<2>(2)
+ T_166113[1] := UInt<2>(3)
+ wire T_166114 : UInt<2>[1]
+ T_166114[0] := UInt<2>(3)
+ inst T_166115 of FinishQueue
+ node T_166116 = and(grant.ready, grant.valid)
+ node T_166117 = eq(UInt<1>(0), UInt<1>(0))
+ node T_166118 = eq(grant.bits.payload.g_type, UInt<3>(0))
+ node T_166119 = and(grant.bits.payload.is_builtin_type, T_166118)
+ node T_166120 = eq(T_166119, UInt<1>(0))
+ node T_166121 = and(T_166117, T_166120)
+ node T_166122 = and(T_166116, T_166121)
+ wire T_166123 : UInt<3>[1]
+ T_166123[0] := UInt<3>(5)
+ node T_166124 = eq(T_166123[0], grant.bits.payload.g_type)
+ node T_166125 = or(UInt<1>(0), T_166124)
+ node T_166126 = eq(T_166057[0], grant.bits.payload.g_type)
+ node T_166127 = eq(T_166057[1], grant.bits.payload.g_type)
+ node T_166128 = or(UInt<1>(0), T_166126)
+ node T_166129 = or(T_166128, T_166127)
+ wire T_166130 : UInt<1>
+ T_166130 := T_166129
+ when grant.bits.payload.is_builtin_type : T_166130 := T_166125
+ node T_166131 = and(UInt<1>(1), T_166130)
+ node T_166132 = eq(T_166131, UInt<1>(0))
+ node T_166133 = or(T_166132, T_166104)
+ node T_166134 = and(T_166122, T_166133)
+ T_166115.enq.valid := T_166134
+ wire T_166135 : UInt<3>[3]
+ T_166135[0] := UInt<3>(0)
+ T_166135[1] := UInt<3>(1)
+ T_166135[2] := UInt<3>(2)
+ wire T_166136 : UInt<2>[2]
+ T_166136[0] := UInt<2>(0)
+ T_166136[1] := UInt<2>(1)
+ wire T_166137 : UInt<2>[3]
+ T_166137[0] := UInt<2>(1)
+ T_166137[1] := UInt<2>(2)
+ T_166137[2] := UInt<2>(3)
+ wire T_166138 : UInt<2>[2]
+ T_166138[0] := UInt<2>(2)
+ T_166138[1] := UInt<2>(3)
+ wire T_166139 : UInt<2>[1]
+ T_166139[0] := UInt<2>(3)
+ wire T_166140 : UInt<3>[3]
+ T_166140[0] := UInt<3>(0)
+ T_166140[1] := UInt<3>(1)
+ T_166140[2] := UInt<3>(2)
+ wire T_166141 : UInt<2>[2]
+ T_166141[0] := UInt<2>(0)
+ T_166141[1] := UInt<2>(1)
+ wire T_166142 : UInt<2>[3]
+ T_166142[0] := UInt<2>(1)
+ T_166142[1] := UInt<2>(2)
+ T_166142[2] := UInt<2>(3)
+ wire T_166143 : UInt<2>[2]
+ T_166143[0] := UInt<2>(2)
+ T_166143[1] := UInt<2>(3)
+ wire T_166144 : UInt<2>[1]
+ T_166144[0] := UInt<2>(3)
+ wire T_166145 : {manager_xact_id : UInt<2>}
+ T_166145.manager_xact_id := grant.bits.payload.manager_xact_id
+ T_166115.enq.bits.fin := T_166145
+ T_166115.enq.bits.dst := grant.bits.header.src
+ finish.bits.header.src := UInt<1>(0)
+ finish.bits.header.dst := T_166115.deq.bits.dst
+ finish.bits.payload := T_166115.deq.bits.fin
+ finish.valid := T_166115.deq.valid
+ T_166115.deq.ready := finish.ready
+ refill.valid := grant.valid
+ refill.bits := grant.bits.payload
+ node T_166146 = eq(UInt<1>(0), UInt<1>(0))
+ node T_166147 = eq(grant.bits.payload.g_type, UInt<3>(0))
+ node T_166148 = and(grant.bits.payload.is_builtin_type, T_166147)
+ node T_166149 = eq(T_166148, UInt<1>(0))
+ node T_166150 = and(T_166146, T_166149)
+ node T_166151 = eq(T_166150, UInt<1>(0))
+ node T_166152 = or(T_166115.enq.ready, T_166151)
+ node T_166153 = and(T_166152, refill.ready)
+ grant.ready := T_166153
+ ready := T_166115.enq.ready
+ module ClientTileLinkNetworkPort :
+ input client : {acquire : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_block : UInt<26>, client_xact_id : UInt<1>, addr_beat : UInt<2>, data : UInt<128>, is_builtin_type : UInt<1>, a_type : UInt<3>, union : UInt<17>}}, flip grant : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_beat : UInt<2>, data : UInt<128>, client_xact_id : UInt<1>, manager_xact_id : UInt<2>, is_builtin_type : UInt<1>, g_type : UInt<4>}}, flip probe : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_block : UInt<26>, p_type : UInt<2>}}, release : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_block : UInt<26>, client_xact_id : UInt<1>, addr_beat : UInt<2>, data : UInt<128>, r_type : UInt<3>, voluntary : UInt<1>}}}
+ output network : {acquire : {flip ready : UInt<1>, valid : UInt<1>, bits : {header : {src : UInt<2>, dst : UInt<2>}, payload : {addr_block : UInt<26>, client_xact_id : UInt<1>, addr_beat : UInt<2>, data : UInt<128>, is_builtin_type : UInt<1>, a_type : UInt<3>, union : UInt<17>}}}, flip grant : {flip ready : UInt<1>, valid : UInt<1>, bits : {header : {src : UInt<2>, dst : UInt<2>}, payload : {addr_beat : UInt<2>, data : UInt<128>, client_xact_id : UInt<1>, manager_xact_id : UInt<2>, is_builtin_type : UInt<1>, g_type : UInt<4>}}}, finish : {flip ready : UInt<1>, valid : UInt<1>, bits : {header : {src : UInt<2>, dst : UInt<2>}, payload : {manager_xact_id : UInt<2>}}}, flip probe : {flip ready : UInt<1>, valid : UInt<1>, bits : {header : {src : UInt<2>, dst : UInt<2>}, payload : {addr_block : UInt<26>, p_type : UInt<2>}}}, release : {flip ready : UInt<1>, valid : UInt<1>, bits : {header : {src : UInt<2>, dst : UInt<2>}, payload : {addr_block : UInt<26>, client_xact_id : UInt<1>, addr_beat : UInt<2>, data : UInt<128>, r_type : UInt<3>, voluntary : UInt<1>}}}}
+
+ wire T_166154 : UInt<3>[3]
+ T_166154[0] := UInt<3>(0)
+ T_166154[1] := UInt<3>(1)
+ T_166154[2] := UInt<3>(2)
+ wire T_166155 : UInt<2>[2]
+ T_166155[0] := UInt<2>(0)
+ T_166155[1] := UInt<2>(1)
+ wire T_166156 : UInt<2>[3]
+ T_166156[0] := UInt<2>(1)
+ T_166156[1] := UInt<2>(2)
+ T_166156[2] := UInt<2>(3)
+ wire T_166157 : UInt<2>[2]
+ T_166157[0] := UInt<2>(2)
+ T_166157[1] := UInt<2>(3)
+ wire T_166158 : UInt<2>[1]
+ T_166158[0] := UInt<2>(3)
+ wire T_166159 : UInt<3>[3]
+ T_166159[0] := UInt<3>(0)
+ T_166159[1] := UInt<3>(1)
+ T_166159[2] := UInt<3>(2)
+ wire T_166160 : UInt<2>[2]
+ T_166160[0] := UInt<2>(0)
+ T_166160[1] := UInt<2>(1)
+ wire T_166161 : UInt<2>[3]
+ T_166161[0] := UInt<2>(1)
+ T_166161[1] := UInt<2>(2)
+ T_166161[2] := UInt<2>(3)
+ wire T_166162 : UInt<2>[2]
+ T_166162[0] := UInt<2>(2)
+ T_166162[1] := UInt<2>(3)
+ wire T_166163 : UInt<2>[1]
+ T_166163[0] := UInt<2>(3)
+ wire T_166164 : UInt<3>[3]
+ T_166164[0] := UInt<3>(0)
+ T_166164[1] := UInt<3>(1)
+ T_166164[2] := UInt<3>(2)
+ wire T_166165 : UInt<2>[2]
+ T_166165[0] := UInt<2>(0)
+ T_166165[1] := UInt<2>(1)
+ wire T_166166 : UInt<2>[3]
+ T_166166[0] := UInt<2>(1)
+ T_166166[1] := UInt<2>(2)
+ T_166166[2] := UInt<2>(3)
+ wire T_166167 : UInt<2>[2]
+ T_166167[0] := UInt<2>(2)
+ T_166167[1] := UInt<2>(3)
+ wire T_166168 : UInt<2>[1]
+ T_166168[0] := UInt<2>(3)
+ wire T_166169 : UInt<3>[3]
+ T_166169[0] := UInt<3>(0)
+ T_166169[1] := UInt<3>(1)
+ T_166169[2] := UInt<3>(2)
+ wire T_166170 : UInt<2>[2]
+ T_166170[0] := UInt<2>(0)
+ T_166170[1] := UInt<2>(1)
+ wire T_166171 : UInt<2>[3]
+ T_166171[0] := UInt<2>(1)
+ T_166171[1] := UInt<2>(2)
+ T_166171[2] := UInt<2>(3)
+ wire T_166172 : UInt<2>[2]
+ T_166172[0] := UInt<2>(2)
+ T_166172[1] := UInt<2>(3)
+ wire T_166173 : UInt<2>[1]
+ T_166173[0] := UInt<2>(3)
+ wire T_166174 : UInt<3>[3]
+ T_166174[0] := UInt<3>(0)
+ T_166174[1] := UInt<3>(1)
+ T_166174[2] := UInt<3>(2)
+ wire T_166175 : UInt<2>[2]
+ T_166175[0] := UInt<2>(0)
+ T_166175[1] := UInt<2>(1)
+ wire T_166176 : UInt<2>[3]
+ T_166176[0] := UInt<2>(1)
+ T_166176[1] := UInt<2>(2)
+ T_166176[2] := UInt<2>(3)
+ wire T_166177 : UInt<2>[2]
+ T_166177[0] := UInt<2>(2)
+ T_166177[1] := UInt<2>(3)
+ wire T_166178 : UInt<2>[1]
+ T_166178[0] := UInt<2>(3)
+ wire T_166179 : UInt<3>[3]
+ T_166179[0] := UInt<3>(0)
+ T_166179[1] := UInt<3>(1)
+ T_166179[2] := UInt<3>(2)
+ wire T_166180 : UInt<2>[2]
+ T_166180[0] := UInt<2>(0)
+ T_166180[1] := UInt<2>(1)
+ wire T_166181 : UInt<2>[3]
+ T_166181[0] := UInt<2>(1)
+ T_166181[1] := UInt<2>(2)
+ T_166181[2] := UInt<2>(3)
+ wire T_166182 : UInt<2>[2]
+ T_166182[0] := UInt<2>(2)
+ T_166182[1] := UInt<2>(3)
+ wire T_166183 : UInt<2>[1]
+ T_166183[0] := UInt<2>(3)
+ wire T_166184 : UInt<3>[3]
+ T_166184[0] := UInt<3>(0)
+ T_166184[1] := UInt<3>(1)
+ T_166184[2] := UInt<3>(2)
+ wire T_166185 : UInt<2>[2]
+ T_166185[0] := UInt<2>(0)
+ T_166185[1] := UInt<2>(1)
+ wire T_166186 : UInt<2>[3]
+ T_166186[0] := UInt<2>(1)
+ T_166186[1] := UInt<2>(2)
+ T_166186[2] := UInt<2>(3)
+ wire T_166187 : UInt<2>[2]
+ T_166187[0] := UInt<2>(2)
+ T_166187[1] := UInt<2>(3)
+ wire T_166188 : UInt<2>[1]
+ T_166188[0] := UInt<2>(3)
+ wire T_166189 : UInt<3>[3]
+ T_166189[0] := UInt<3>(0)
+ T_166189[1] := UInt<3>(1)
+ T_166189[2] := UInt<3>(2)
+ wire T_166190 : UInt<2>[2]
+ T_166190[0] := UInt<2>(0)
+ T_166190[1] := UInt<2>(1)
+ wire T_166191 : UInt<2>[3]
+ T_166191[0] := UInt<2>(1)
+ T_166191[1] := UInt<2>(2)
+ T_166191[2] := UInt<2>(3)
+ wire T_166192 : UInt<2>[2]
+ T_166192[0] := UInt<2>(2)
+ T_166192[1] := UInt<2>(3)
+ wire T_166193 : UInt<2>[1]
+ T_166193[0] := UInt<2>(3)
+ wire T_166194 : UInt<3>[3]
+ T_166194[0] := UInt<3>(0)
+ T_166194[1] := UInt<3>(1)
+ T_166194[2] := UInt<3>(2)
+ wire T_166195 : UInt<2>[2]
+ T_166195[0] := UInt<2>(0)
+ T_166195[1] := UInt<2>(1)
+ wire T_166196 : UInt<2>[3]
+ T_166196[0] := UInt<2>(1)
+ T_166196[1] := UInt<2>(2)
+ T_166196[2] := UInt<2>(3)
+ wire T_166197 : UInt<2>[2]
+ T_166197[0] := UInt<2>(2)
+ T_166197[1] := UInt<2>(3)
+ wire T_166198 : UInt<2>[1]
+ T_166198[0] := UInt<2>(3)
+ wire T_166199 : UInt<3>[3]
+ T_166199[0] := UInt<3>(0)
+ T_166199[1] := UInt<3>(1)
+ T_166199[2] := UInt<3>(2)
+ wire T_166200 : UInt<2>[2]
+ T_166200[0] := UInt<2>(0)
+ T_166200[1] := UInt<2>(1)
+ wire T_166201 : UInt<2>[3]
+ T_166201[0] := UInt<2>(1)
+ T_166201[1] := UInt<2>(2)
+ T_166201[2] := UInt<2>(3)
+ wire T_166202 : UInt<2>[2]
+ T_166202[0] := UInt<2>(2)
+ T_166202[1] := UInt<2>(3)
+ wire T_166203 : UInt<2>[1]
+ T_166203[0] := UInt<2>(3)
+ wire T_166204 : UInt<3>[3]
+ T_166204[0] := UInt<3>(0)
+ T_166204[1] := UInt<3>(1)
+ T_166204[2] := UInt<3>(2)
+ wire T_166205 : UInt<2>[2]
+ T_166205[0] := UInt<2>(0)
+ T_166205[1] := UInt<2>(1)
+ wire T_166206 : UInt<2>[3]
+ T_166206[0] := UInt<2>(1)
+ T_166206[1] := UInt<2>(2)
+ T_166206[2] := UInt<2>(3)
+ wire T_166207 : UInt<2>[2]
+ T_166207[0] := UInt<2>(2)
+ T_166207[1] := UInt<2>(3)
+ wire T_166208 : UInt<2>[1]
+ T_166208[0] := UInt<2>(3)
+ wire T_166209 : UInt<3>[3]
+ T_166209[0] := UInt<3>(0)
+ T_166209[1] := UInt<3>(1)
+ T_166209[2] := UInt<3>(2)
+ wire T_166210 : UInt<2>[2]
+ T_166210[0] := UInt<2>(0)
+ T_166210[1] := UInt<2>(1)
+ wire T_166211 : UInt<2>[3]
+ T_166211[0] := UInt<2>(1)
+ T_166211[1] := UInt<2>(2)
+ T_166211[2] := UInt<2>(3)
+ wire T_166212 : UInt<2>[2]
+ T_166212[0] := UInt<2>(2)
+ T_166212[1] := UInt<2>(3)
+ wire T_166213 : UInt<2>[1]
+ T_166213[0] := UInt<2>(3)
+ wire T_166214 : UInt<3>[3]
+ T_166214[0] := UInt<3>(0)
+ T_166214[1] := UInt<3>(1)
+ T_166214[2] := UInt<3>(2)
+ wire T_166215 : UInt<2>[2]
+ T_166215[0] := UInt<2>(0)
+ T_166215[1] := UInt<2>(1)
+ wire T_166216 : UInt<2>[3]
+ T_166216[0] := UInt<2>(1)
+ T_166216[1] := UInt<2>(2)
+ T_166216[2] := UInt<2>(3)
+ wire T_166217 : UInt<2>[2]
+ T_166217[0] := UInt<2>(2)
+ T_166217[1] := UInt<2>(3)
+ wire T_166218 : UInt<2>[1]
+ T_166218[0] := UInt<2>(3)
+ wire T_166219 : UInt<3>[3]
+ T_166219[0] := UInt<3>(0)
+ T_166219[1] := UInt<3>(1)
+ T_166219[2] := UInt<3>(2)
+ wire T_166220 : UInt<2>[2]
+ T_166220[0] := UInt<2>(0)
+ T_166220[1] := UInt<2>(1)
+ wire T_166221 : UInt<2>[3]
+ T_166221[0] := UInt<2>(1)
+ T_166221[1] := UInt<2>(2)
+ T_166221[2] := UInt<2>(3)
+ wire T_166222 : UInt<2>[2]
+ T_166222[0] := UInt<2>(2)
+ T_166222[1] := UInt<2>(3)
+ wire T_166223 : UInt<2>[1]
+ T_166223[0] := UInt<2>(3)
+ wire T_166224 : UInt<3>[3]
+ T_166224[0] := UInt<3>(0)
+ T_166224[1] := UInt<3>(1)
+ T_166224[2] := UInt<3>(2)
+ wire T_166225 : UInt<2>[2]
+ T_166225[0] := UInt<2>(0)
+ T_166225[1] := UInt<2>(1)
+ wire T_166226 : UInt<2>[3]
+ T_166226[0] := UInt<2>(1)
+ T_166226[1] := UInt<2>(2)
+ T_166226[2] := UInt<2>(3)
+ wire T_166227 : UInt<2>[2]
+ T_166227[0] := UInt<2>(2)
+ T_166227[1] := UInt<2>(3)
+ wire T_166228 : UInt<2>[1]
+ T_166228[0] := UInt<2>(3)
+ wire T_166229 : UInt<3>[3]
+ T_166229[0] := UInt<3>(0)
+ T_166229[1] := UInt<3>(1)
+ T_166229[2] := UInt<3>(2)
+ wire T_166230 : UInt<2>[2]
+ T_166230[0] := UInt<2>(0)
+ T_166230[1] := UInt<2>(1)
+ wire T_166231 : UInt<2>[3]
+ T_166231[0] := UInt<2>(1)
+ T_166231[1] := UInt<2>(2)
+ T_166231[2] := UInt<2>(3)
+ wire T_166232 : UInt<2>[2]
+ T_166232[0] := UInt<2>(2)
+ T_166232[1] := UInt<2>(3)
+ wire T_166233 : UInt<2>[1]
+ T_166233[0] := UInt<2>(3)
+ wire T_166234 : UInt<3>[3]
+ T_166234[0] := UInt<3>(0)
+ T_166234[1] := UInt<3>(1)
+ T_166234[2] := UInt<3>(2)
+ wire T_166235 : UInt<2>[2]
+ T_166235[0] := UInt<2>(0)
+ T_166235[1] := UInt<2>(1)
+ wire T_166236 : UInt<2>[3]
+ T_166236[0] := UInt<2>(1)
+ T_166236[1] := UInt<2>(2)
+ T_166236[2] := UInt<2>(3)
+ wire T_166237 : UInt<2>[2]
+ T_166237[0] := UInt<2>(2)
+ T_166237[1] := UInt<2>(3)
+ wire T_166238 : UInt<2>[1]
+ T_166238[0] := UInt<2>(3)
+ wire T_166239 : UInt<3>[3]
+ T_166239[0] := UInt<3>(0)
+ T_166239[1] := UInt<3>(1)
+ T_166239[2] := UInt<3>(2)
+ wire T_166240 : UInt<2>[2]
+ T_166240[0] := UInt<2>(0)
+ T_166240[1] := UInt<2>(1)
+ wire T_166241 : UInt<2>[3]
+ T_166241[0] := UInt<2>(1)
+ T_166241[1] := UInt<2>(2)
+ T_166241[2] := UInt<2>(3)
+ wire T_166242 : UInt<2>[2]
+ T_166242[0] := UInt<2>(2)
+ T_166242[1] := UInt<2>(3)
+ wire T_166243 : UInt<2>[1]
+ T_166243[0] := UInt<2>(3)
+ wire T_166244 : UInt<3>[3]
+ T_166244[0] := UInt<3>(0)
+ T_166244[1] := UInt<3>(1)
+ T_166244[2] := UInt<3>(2)
+ wire T_166245 : UInt<2>[2]
+ T_166245[0] := UInt<2>(0)
+ T_166245[1] := UInt<2>(1)
+ wire T_166246 : UInt<2>[3]
+ T_166246[0] := UInt<2>(1)
+ T_166246[1] := UInt<2>(2)
+ T_166246[2] := UInt<2>(3)
+ wire T_166247 : UInt<2>[2]
+ T_166247[0] := UInt<2>(2)
+ T_166247[1] := UInt<2>(3)
+ wire T_166248 : UInt<2>[1]
+ T_166248[0] := UInt<2>(3)
+ wire T_166249 : UInt<3>[3]
+ T_166249[0] := UInt<3>(0)
+ T_166249[1] := UInt<3>(1)
+ T_166249[2] := UInt<3>(2)
+ wire T_166250 : UInt<2>[2]
+ T_166250[0] := UInt<2>(0)
+ T_166250[1] := UInt<2>(1)
+ wire T_166251 : UInt<2>[3]
+ T_166251[0] := UInt<2>(1)
+ T_166251[1] := UInt<2>(2)
+ T_166251[2] := UInt<2>(3)
+ wire T_166252 : UInt<2>[2]
+ T_166252[0] := UInt<2>(2)
+ T_166252[1] := UInt<2>(3)
+ wire T_166253 : UInt<2>[1]
+ T_166253[0] := UInt<2>(3)
+ wire T_166254 : UInt<3>[3]
+ T_166254[0] := UInt<3>(0)
+ T_166254[1] := UInt<3>(1)
+ T_166254[2] := UInt<3>(2)
+ wire T_166255 : UInt<2>[2]
+ T_166255[0] := UInt<2>(0)
+ T_166255[1] := UInt<2>(1)
+ wire T_166256 : UInt<2>[3]
+ T_166256[0] := UInt<2>(1)
+ T_166256[1] := UInt<2>(2)
+ T_166256[2] := UInt<2>(3)
+ wire T_166257 : UInt<2>[2]
+ T_166257[0] := UInt<2>(2)
+ T_166257[1] := UInt<2>(3)
+ wire T_166258 : UInt<2>[1]
+ T_166258[0] := UInt<2>(3)
+ wire T_166259 : UInt<3>[3]
+ T_166259[0] := UInt<3>(0)
+ T_166259[1] := UInt<3>(1)
+ T_166259[2] := UInt<3>(2)
+ wire T_166260 : UInt<2>[2]
+ T_166260[0] := UInt<2>(0)
+ T_166260[1] := UInt<2>(1)
+ wire T_166261 : UInt<2>[3]
+ T_166261[0] := UInt<2>(1)
+ T_166261[1] := UInt<2>(2)
+ T_166261[2] := UInt<2>(3)
+ wire T_166262 : UInt<2>[2]
+ T_166262[0] := UInt<2>(2)
+ T_166262[1] := UInt<2>(3)
+ wire T_166263 : UInt<2>[1]
+ T_166263[0] := UInt<2>(3)
+ wire T_166264 : UInt<3>[3]
+ T_166264[0] := UInt<3>(0)
+ T_166264[1] := UInt<3>(1)
+ T_166264[2] := UInt<3>(2)
+ wire T_166265 : UInt<2>[2]
+ T_166265[0] := UInt<2>(0)
+ T_166265[1] := UInt<2>(1)
+ wire T_166266 : UInt<2>[3]
+ T_166266[0] := UInt<2>(1)
+ T_166266[1] := UInt<2>(2)
+ T_166266[2] := UInt<2>(3)
+ wire T_166267 : UInt<2>[2]
+ T_166267[0] := UInt<2>(2)
+ T_166267[1] := UInt<2>(3)
+ wire T_166268 : UInt<2>[1]
+ T_166268[0] := UInt<2>(3)
+ wire T_166269 : UInt<3>[3]
+ T_166269[0] := UInt<3>(0)
+ T_166269[1] := UInt<3>(1)
+ T_166269[2] := UInt<3>(2)
+ wire T_166270 : UInt<2>[2]
+ T_166270[0] := UInt<2>(0)
+ T_166270[1] := UInt<2>(1)
+ wire T_166271 : UInt<2>[3]
+ T_166271[0] := UInt<2>(1)
+ T_166271[1] := UInt<2>(2)
+ T_166271[2] := UInt<2>(3)
+ wire T_166272 : UInt<2>[2]
+ T_166272[0] := UInt<2>(2)
+ T_166272[1] := UInt<2>(3)
+ wire T_166273 : UInt<2>[1]
+ T_166273[0] := UInt<2>(3)
+ wire T_166274 : UInt<3>[3]
+ T_166274[0] := UInt<3>(0)
+ T_166274[1] := UInt<3>(1)
+ T_166274[2] := UInt<3>(2)
+ wire T_166275 : UInt<2>[2]
+ T_166275[0] := UInt<2>(0)
+ T_166275[1] := UInt<2>(1)
+ wire T_166276 : UInt<2>[3]
+ T_166276[0] := UInt<2>(1)
+ T_166276[1] := UInt<2>(2)
+ T_166276[2] := UInt<2>(3)
+ wire T_166277 : UInt<2>[2]
+ T_166277[0] := UInt<2>(2)
+ T_166277[1] := UInt<2>(3)
+ wire T_166278 : UInt<2>[1]
+ T_166278[0] := UInt<2>(3)
+ wire T_166279 : UInt<3>[3]
+ T_166279[0] := UInt<3>(0)
+ T_166279[1] := UInt<3>(1)
+ T_166279[2] := UInt<3>(2)
+ wire T_166280 : UInt<2>[2]
+ T_166280[0] := UInt<2>(0)
+ T_166280[1] := UInt<2>(1)
+ wire T_166281 : UInt<2>[3]
+ T_166281[0] := UInt<2>(1)
+ T_166281[1] := UInt<2>(2)
+ T_166281[2] := UInt<2>(3)
+ wire T_166282 : UInt<2>[2]
+ T_166282[0] := UInt<2>(2)
+ T_166282[1] := UInt<2>(3)
+ wire T_166283 : UInt<2>[1]
+ T_166283[0] := UInt<2>(3)
+ inst finisher of FinishUnit
+ finisher.grant <> network.grant
+ network.finish <> finisher.finish
+ wire T_166284 : UInt<3>[3]
+ T_166284[0] := UInt<3>(0)
+ T_166284[1] := UInt<3>(1)
+ T_166284[2] := UInt<3>(2)
+ wire T_166285 : UInt<2>[2]
+ T_166285[0] := UInt<2>(0)
+ T_166285[1] := UInt<2>(1)
+ wire T_166286 : UInt<2>[3]
+ T_166286[0] := UInt<2>(1)
+ T_166286[1] := UInt<2>(2)
+ T_166286[2] := UInt<2>(3)
+ wire T_166287 : UInt<2>[2]
+ T_166287[0] := UInt<2>(2)
+ T_166287[1] := UInt<2>(3)
+ wire T_166288 : UInt<2>[1]
+ T_166288[0] := UInt<2>(3)
+ wire T_166289 : UInt<3>[3]
+ T_166289[0] := UInt<3>(0)
+ T_166289[1] := UInt<3>(1)
+ T_166289[2] := UInt<3>(2)
+ wire T_166290 : UInt<2>[2]
+ T_166290[0] := UInt<2>(0)
+ T_166290[1] := UInt<2>(1)
+ wire T_166291 : UInt<2>[3]
+ T_166291[0] := UInt<2>(1)
+ T_166291[1] := UInt<2>(2)
+ T_166291[2] := UInt<2>(3)
+ wire T_166292 : UInt<2>[2]
+ T_166292[0] := UInt<2>(2)
+ T_166292[1] := UInt<2>(3)
+ wire T_166293 : UInt<2>[1]
+ T_166293[0] := UInt<2>(3)
+ wire T_166294 : UInt<3>[3]
+ T_166294[0] := UInt<3>(0)
+ T_166294[1] := UInt<3>(1)
+ T_166294[2] := UInt<3>(2)
+ wire T_166295 : UInt<2>[2]
+ T_166295[0] := UInt<2>(0)
+ T_166295[1] := UInt<2>(1)
+ wire T_166296 : UInt<2>[3]
+ T_166296[0] := UInt<2>(1)
+ T_166296[1] := UInt<2>(2)
+ T_166296[2] := UInt<2>(3)
+ wire T_166297 : UInt<2>[2]
+ T_166297[0] := UInt<2>(2)
+ T_166297[1] := UInt<2>(3)
+ wire T_166298 : UInt<2>[1]
+ T_166298[0] := UInt<2>(3)
+ wire acq_with_header : {flip ready : UInt<1>, valid : UInt<1>, bits : {header : {src : UInt<2>, dst : UInt<2>}, payload : {addr_block : UInt<26>, client_xact_id : UInt<1>, addr_beat : UInt<2>, data : UInt<128>, is_builtin_type : UInt<1>, a_type : UInt<3>, union : UInt<17>}}}
+ acq_with_header.bits.payload := client.acquire.bits
+ acq_with_header.bits.header.src := UInt<1>(0)
+ acq_with_header.bits.header.dst := UInt<1>(0)
+ acq_with_header.valid := client.acquire.valid
+ client.acquire.ready := acq_with_header.ready
+ wire T_166299 : UInt<3>[3]
+ T_166299[0] := UInt<3>(0)
+ T_166299[1] := UInt<3>(1)
+ T_166299[2] := UInt<3>(2)
+ wire T_166300 : UInt<2>[2]
+ T_166300[0] := UInt<2>(0)
+ T_166300[1] := UInt<2>(1)
+ wire T_166301 : UInt<2>[3]
+ T_166301[0] := UInt<2>(1)
+ T_166301[1] := UInt<2>(2)
+ T_166301[2] := UInt<2>(3)
+ wire T_166302 : UInt<2>[2]
+ T_166302[0] := UInt<2>(2)
+ T_166302[1] := UInt<2>(3)
+ wire T_166303 : UInt<2>[1]
+ T_166303[0] := UInt<2>(3)
+ wire T_166304 : UInt<3>[3]
+ T_166304[0] := UInt<3>(0)
+ T_166304[1] := UInt<3>(1)
+ T_166304[2] := UInt<3>(2)
+ wire T_166305 : UInt<2>[2]
+ T_166305[0] := UInt<2>(0)
+ T_166305[1] := UInt<2>(1)
+ wire T_166306 : UInt<2>[3]
+ T_166306[0] := UInt<2>(1)
+ T_166306[1] := UInt<2>(2)
+ T_166306[2] := UInt<2>(3)
+ wire T_166307 : UInt<2>[2]
+ T_166307[0] := UInt<2>(2)
+ T_166307[1] := UInt<2>(3)
+ wire T_166308 : UInt<2>[1]
+ T_166308[0] := UInt<2>(3)
+ wire T_166309 : UInt<3>[3]
+ T_166309[0] := UInt<3>(0)
+ T_166309[1] := UInt<3>(1)
+ T_166309[2] := UInt<3>(2)
+ wire T_166310 : UInt<2>[2]
+ T_166310[0] := UInt<2>(0)
+ T_166310[1] := UInt<2>(1)
+ wire T_166311 : UInt<2>[3]
+ T_166311[0] := UInt<2>(1)
+ T_166311[1] := UInt<2>(2)
+ T_166311[2] := UInt<2>(3)
+ wire T_166312 : UInt<2>[2]
+ T_166312[0] := UInt<2>(2)
+ T_166312[1] := UInt<2>(3)
+ wire T_166313 : UInt<2>[1]
+ T_166313[0] := UInt<2>(3)
+ wire rel_with_header : {flip ready : UInt<1>, valid : UInt<1>, bits : {header : {src : UInt<2>, dst : UInt<2>}, payload : {addr_block : UInt<26>, client_xact_id : UInt<1>, addr_beat : UInt<2>, data : UInt<128>, r_type : UInt<3>, voluntary : UInt<1>}}}
+ rel_with_header.bits.payload := client.release.bits
+ rel_with_header.bits.header.src := UInt<1>(0)
+ rel_with_header.bits.header.dst := UInt<1>(0)
+ rel_with_header.valid := client.release.valid
+ client.release.ready := rel_with_header.ready
+ wire T_166314 : UInt<3>[3]
+ T_166314[0] := UInt<3>(0)
+ T_166314[1] := UInt<3>(1)
+ T_166314[2] := UInt<3>(2)
+ wire T_166315 : UInt<2>[2]
+ T_166315[0] := UInt<2>(0)
+ T_166315[1] := UInt<2>(1)
+ wire T_166316 : UInt<2>[3]
+ T_166316[0] := UInt<2>(1)
+ T_166316[1] := UInt<2>(2)
+ T_166316[2] := UInt<2>(3)
+ wire T_166317 : UInt<2>[2]
+ T_166317[0] := UInt<2>(2)
+ T_166317[1] := UInt<2>(3)
+ wire T_166318 : UInt<2>[1]
+ T_166318[0] := UInt<2>(3)
+ wire T_166319 : UInt<3>[3]
+ T_166319[0] := UInt<3>(0)
+ T_166319[1] := UInt<3>(1)
+ T_166319[2] := UInt<3>(2)
+ wire T_166320 : UInt<2>[2]
+ T_166320[0] := UInt<2>(0)
+ T_166320[1] := UInt<2>(1)
+ wire T_166321 : UInt<2>[3]
+ T_166321[0] := UInt<2>(1)
+ T_166321[1] := UInt<2>(2)
+ T_166321[2] := UInt<2>(3)
+ wire T_166322 : UInt<2>[2]
+ T_166322[0] := UInt<2>(2)
+ T_166322[1] := UInt<2>(3)
+ wire T_166323 : UInt<2>[1]
+ T_166323[0] := UInt<2>(3)
+ wire prb_without_header : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_block : UInt<26>, p_type : UInt<2>}}
+ prb_without_header.valid := network.probe.valid
+ prb_without_header.bits := network.probe.bits.payload
+ network.probe.ready := prb_without_header.ready
+ network.acquire.bits := acq_with_header.bits
+ node T_166324 = and(acq_with_header.valid, finisher.ready)
+ network.acquire.valid := T_166324
+ node T_166325 = and(network.acquire.ready, finisher.ready)
+ acq_with_header.ready := T_166325
+ network.release <> rel_with_header
+ client.probe <> prb_without_header
+ client.grant <> finisher.refill
+ module Queue :
+ input enq : {flip ready : UInt<1>, valid : UInt<1>, bits : {header : {src : UInt<2>, dst : UInt<2>}, payload : {addr_block : UInt<26>, client_xact_id : UInt<1>, addr_beat : UInt<2>, data : UInt<128>, is_builtin_type : UInt<1>, a_type : UInt<3>, union : UInt<17>}}}
+ output deq : {flip ready : UInt<1>, valid : UInt<1>, bits : {header : {src : UInt<2>, dst : UInt<2>}, payload : {addr_block : UInt<26>, client_xact_id : UInt<1>, addr_beat : UInt<2>, data : UInt<128>, is_builtin_type : UInt<1>, a_type : UInt<3>, union : UInt<17>}}}
+ output count : UInt<2>
+
+ wire T_166326 : UInt<3>[3]
+ T_166326[0] := UInt<3>(0)
+ T_166326[1] := UInt<3>(1)
+ T_166326[2] := UInt<3>(2)
+ wire T_166327 : UInt<2>[2]
+ T_166327[0] := UInt<2>(0)
+ T_166327[1] := UInt<2>(1)
+ wire T_166328 : UInt<2>[3]
+ T_166328[0] := UInt<2>(1)
+ T_166328[1] := UInt<2>(2)
+ T_166328[2] := UInt<2>(3)
+ wire T_166329 : UInt<2>[2]
+ T_166329[0] := UInt<2>(2)
+ T_166329[1] := UInt<2>(3)
+ wire T_166330 : UInt<2>[1]
+ T_166330[0] := UInt<2>(3)
+ wire T_166331 : UInt<3>[3]
+ T_166331[0] := UInt<3>(0)
+ T_166331[1] := UInt<3>(1)
+ T_166331[2] := UInt<3>(2)
+ wire T_166332 : UInt<2>[2]
+ T_166332[0] := UInt<2>(0)
+ T_166332[1] := UInt<2>(1)
+ wire T_166333 : UInt<2>[3]
+ T_166333[0] := UInt<2>(1)
+ T_166333[1] := UInt<2>(2)
+ T_166333[2] := UInt<2>(3)
+ wire T_166334 : UInt<2>[2]
+ T_166334[0] := UInt<2>(2)
+ T_166334[1] := UInt<2>(3)
+ wire T_166335 : UInt<2>[1]
+ T_166335[0] := UInt<2>(3)
+ wire T_166336 : UInt<3>[3]
+ T_166336[0] := UInt<3>(0)
+ T_166336[1] := UInt<3>(1)
+ T_166336[2] := UInt<3>(2)
+ wire T_166337 : UInt<2>[2]
+ T_166337[0] := UInt<2>(0)
+ T_166337[1] := UInt<2>(1)
+ wire T_166338 : UInt<2>[3]
+ T_166338[0] := UInt<2>(1)
+ T_166338[1] := UInt<2>(2)
+ T_166338[2] := UInt<2>(3)
+ wire T_166339 : UInt<2>[2]
+ T_166339[0] := UInt<2>(2)
+ T_166339[1] := UInt<2>(3)
+ wire T_166340 : UInt<2>[1]
+ T_166340[0] := UInt<2>(3)
+ wire T_166341 : UInt<3>[3]
+ T_166341[0] := UInt<3>(0)
+ T_166341[1] := UInt<3>(1)
+ T_166341[2] := UInt<3>(2)
+ wire T_166342 : UInt<2>[2]
+ T_166342[0] := UInt<2>(0)
+ T_166342[1] := UInt<2>(1)
+ wire T_166343 : UInt<2>[3]
+ T_166343[0] := UInt<2>(1)
+ T_166343[1] := UInt<2>(2)
+ T_166343[2] := UInt<2>(3)
+ wire T_166344 : UInt<2>[2]
+ T_166344[0] := UInt<2>(2)
+ T_166344[1] := UInt<2>(3)
+ wire T_166345 : UInt<2>[1]
+ T_166345[0] := UInt<2>(3)
+ wire T_166346 : UInt<3>[3]
+ T_166346[0] := UInt<3>(0)
+ T_166346[1] := UInt<3>(1)
+ T_166346[2] := UInt<3>(2)
+ wire T_166347 : UInt<2>[2]
+ T_166347[0] := UInt<2>(0)
+ T_166347[1] := UInt<2>(1)
+ wire T_166348 : UInt<2>[3]
+ T_166348[0] := UInt<2>(1)
+ T_166348[1] := UInt<2>(2)
+ T_166348[2] := UInt<2>(3)
+ wire T_166349 : UInt<2>[2]
+ T_166349[0] := UInt<2>(2)
+ T_166349[1] := UInt<2>(3)
+ wire T_166350 : UInt<2>[1]
+ T_166350[0] := UInt<2>(3)
+ cmem ram : {header : {src : UInt<2>, dst : UInt<2>}, payload : {addr_block : UInt<26>, client_xact_id : UInt<1>, addr_beat : UInt<2>, data : UInt<128>, is_builtin_type : UInt<1>, a_type : UInt<3>, union : UInt<17>}}[2]
+ reg T_166351 : UInt<1>
+ onreset T_166351 := UInt<1>(0)
+ reg T_166352 : UInt<1>
+ onreset T_166352 := UInt<1>(0)
+ reg maybe_full : UInt<1>
+ onreset maybe_full := UInt<1>(0)
+ node ptr_match = eq(T_166351, T_166352)
+ node T_166353 = eq(maybe_full, UInt<1>(0))
+ node empty = and(ptr_match, T_166353)
+ node full = and(ptr_match, maybe_full)
+ node maybe_flow = and(UInt<1>(0), empty)
+ node do_flow = and(maybe_flow, deq.ready)
+ node T_166354 = and(enq.ready, enq.valid)
+ node T_166355 = eq(do_flow, UInt<1>(0))
+ node do_enq = and(T_166354, T_166355)
+ node T_166356 = and(deq.ready, deq.valid)
+ node T_166357 = eq(do_flow, UInt<1>(0))
+ node do_deq = and(T_166356, T_166357)
+ when do_enq :
+ wire T_166358 : UInt<3>[3]
+ T_166358[0] := UInt<3>(0)
+ T_166358[1] := UInt<3>(1)
+ T_166358[2] := UInt<3>(2)
+ wire T_166359 : UInt<2>[2]
+ T_166359[0] := UInt<2>(0)
+ T_166359[1] := UInt<2>(1)
+ wire T_166360 : UInt<2>[3]
+ T_166360[0] := UInt<2>(1)
+ T_166360[1] := UInt<2>(2)
+ T_166360[2] := UInt<2>(3)
+ wire T_166361 : UInt<2>[2]
+ T_166361[0] := UInt<2>(2)
+ T_166361[1] := UInt<2>(3)
+ wire T_166362 : UInt<2>[1]
+ T_166362[0] := UInt<2>(3)
+ accessor T_166363 = ram[T_166351]
+ T_166363 := enq.bits
+ node T_166364 = eq(T_166351, UInt<1>(1))
+ node T_166365 = and(UInt<1>(0), T_166364)
+ node T_166366 = addw(T_166351, UInt<1>(1))
+ wire T_166367 : UInt<1>
+ T_166367 := T_166366
+ when T_166365 : T_166367 := UInt<1>(0)
+ T_166351 := T_166367
+ when do_deq :
+ node T_166368 = eq(T_166352, UInt<1>(1))
+ node T_166369 = and(UInt<1>(0), T_166368)
+ node T_166370 = addw(T_166352, UInt<1>(1))
+ wire T_166371 : UInt<1>
+ T_166371 := T_166370
+ when T_166369 : T_166371 := UInt<1>(0)
+ T_166352 := T_166371
+
+ node T_166372 = neq(do_enq, do_deq)
+ when T_166372 : maybe_full := do_enq
+ node T_166373 = eq(empty, UInt<1>(0))
+ node T_166374 = and(UInt<1>(0), enq.valid)
+ node T_166375 = or(T_166373, T_166374)
+ deq.valid := T_166375
+ node T_166376 = eq(full, UInt<1>(0))
+ node T_166377 = and(UInt<1>(0), deq.ready)
+ node T_166378 = or(T_166376, T_166377)
+ enq.ready := T_166378
+ wire T_166379 : UInt<3>[3]
+ T_166379[0] := UInt<3>(0)
+ T_166379[1] := UInt<3>(1)
+ T_166379[2] := UInt<3>(2)
+ wire T_166380 : UInt<2>[2]
+ T_166380[0] := UInt<2>(0)
+ T_166380[1] := UInt<2>(1)
+ wire T_166381 : UInt<2>[3]
+ T_166381[0] := UInt<2>(1)
+ T_166381[1] := UInt<2>(2)
+ T_166381[2] := UInt<2>(3)
+ wire T_166382 : UInt<2>[2]
+ T_166382[0] := UInt<2>(2)
+ T_166382[1] := UInt<2>(3)
+ wire T_166383 : UInt<2>[1]
+ T_166383[0] := UInt<2>(3)
+ accessor T_166384 = ram[T_166352]
+ wire T_166385 : UInt<3>[3]
+ T_166385[0] := UInt<3>(0)
+ T_166385[1] := UInt<3>(1)
+ T_166385[2] := UInt<3>(2)
+ wire T_166386 : UInt<2>[2]
+ T_166386[0] := UInt<2>(0)
+ T_166386[1] := UInt<2>(1)
+ wire T_166387 : UInt<2>[3]
+ T_166387[0] := UInt<2>(1)
+ T_166387[1] := UInt<2>(2)
+ T_166387[2] := UInt<2>(3)
+ wire T_166388 : UInt<2>[2]
+ T_166388[0] := UInt<2>(2)
+ T_166388[1] := UInt<2>(3)
+ wire T_166389 : UInt<2>[1]
+ T_166389[0] := UInt<2>(3)
+ wire T_166390 : {header : {src : UInt<2>, dst : UInt<2>}, payload : {addr_block : UInt<26>, client_xact_id : UInt<1>, addr_beat : UInt<2>, data : UInt<128>, is_builtin_type : UInt<1>, a_type : UInt<3>, union : UInt<17>}}
+ T_166390 := T_166384
+ when maybe_flow : T_166390 := enq.bits
+ deq.bits := T_166390
+ node ptr_diff = subw(T_166351, T_166352)
+ node T_166391 = and(maybe_full, ptr_match)
+ node T_166392 = cat(T_166391, ptr_diff)
+ count := T_166392
+ module Queue_20089 :
+ input enq : {flip ready : UInt<1>, valid : UInt<1>, bits : {header : {src : UInt<2>, dst : UInt<2>}, payload : {addr_block : UInt<26>, p_type : UInt<2>}}}
+ output deq : {flip ready : UInt<1>, valid : UInt<1>, bits : {header : {src : UInt<2>, dst : UInt<2>}, payload : {addr_block : UInt<26>, p_type : UInt<2>}}}
+ output count : UInt<2>
+
+ wire T_166393 : UInt<3>[3]
+ T_166393[0] := UInt<3>(0)
+ T_166393[1] := UInt<3>(1)
+ T_166393[2] := UInt<3>(2)
+ wire T_166394 : UInt<2>[2]
+ T_166394[0] := UInt<2>(0)
+ T_166394[1] := UInt<2>(1)
+ wire T_166395 : UInt<2>[3]
+ T_166395[0] := UInt<2>(1)
+ T_166395[1] := UInt<2>(2)
+ T_166395[2] := UInt<2>(3)
+ wire T_166396 : UInt<2>[2]
+ T_166396[0] := UInt<2>(2)
+ T_166396[1] := UInt<2>(3)
+ wire T_166397 : UInt<2>[1]
+ T_166397[0] := UInt<2>(3)
+ wire T_166398 : UInt<3>[3]
+ T_166398[0] := UInt<3>(0)
+ T_166398[1] := UInt<3>(1)
+ T_166398[2] := UInt<3>(2)
+ wire T_166399 : UInt<2>[2]
+ T_166399[0] := UInt<2>(0)
+ T_166399[1] := UInt<2>(1)
+ wire T_166400 : UInt<2>[3]
+ T_166400[0] := UInt<2>(1)
+ T_166400[1] := UInt<2>(2)
+ T_166400[2] := UInt<2>(3)
+ wire T_166401 : UInt<2>[2]
+ T_166401[0] := UInt<2>(2)
+ T_166401[1] := UInt<2>(3)
+ wire T_166402 : UInt<2>[1]
+ T_166402[0] := UInt<2>(3)
+ wire T_166403 : UInt<3>[3]
+ T_166403[0] := UInt<3>(0)
+ T_166403[1] := UInt<3>(1)
+ T_166403[2] := UInt<3>(2)
+ wire T_166404 : UInt<2>[2]
+ T_166404[0] := UInt<2>(0)
+ T_166404[1] := UInt<2>(1)
+ wire T_166405 : UInt<2>[3]
+ T_166405[0] := UInt<2>(1)
+ T_166405[1] := UInt<2>(2)
+ T_166405[2] := UInt<2>(3)
+ wire T_166406 : UInt<2>[2]
+ T_166406[0] := UInt<2>(2)
+ T_166406[1] := UInt<2>(3)
+ wire T_166407 : UInt<2>[1]
+ T_166407[0] := UInt<2>(3)
+ wire T_166408 : UInt<3>[3]
+ T_166408[0] := UInt<3>(0)
+ T_166408[1] := UInt<3>(1)
+ T_166408[2] := UInt<3>(2)
+ wire T_166409 : UInt<2>[2]
+ T_166409[0] := UInt<2>(0)
+ T_166409[1] := UInt<2>(1)
+ wire T_166410 : UInt<2>[3]
+ T_166410[0] := UInt<2>(1)
+ T_166410[1] := UInt<2>(2)
+ T_166410[2] := UInt<2>(3)
+ wire T_166411 : UInt<2>[2]
+ T_166411[0] := UInt<2>(2)
+ T_166411[1] := UInt<2>(3)
+ wire T_166412 : UInt<2>[1]
+ T_166412[0] := UInt<2>(3)
+ wire T_166413 : UInt<3>[3]
+ T_166413[0] := UInt<3>(0)
+ T_166413[1] := UInt<3>(1)
+ T_166413[2] := UInt<3>(2)
+ wire T_166414 : UInt<2>[2]
+ T_166414[0] := UInt<2>(0)
+ T_166414[1] := UInt<2>(1)
+ wire T_166415 : UInt<2>[3]
+ T_166415[0] := UInt<2>(1)
+ T_166415[1] := UInt<2>(2)
+ T_166415[2] := UInt<2>(3)
+ wire T_166416 : UInt<2>[2]
+ T_166416[0] := UInt<2>(2)
+ T_166416[1] := UInt<2>(3)
+ wire T_166417 : UInt<2>[1]
+ T_166417[0] := UInt<2>(3)
+ cmem ram : {header : {src : UInt<2>, dst : UInt<2>}, payload : {addr_block : UInt<26>, p_type : UInt<2>}}[2]
+ reg T_166418 : UInt<1>
+ onreset T_166418 := UInt<1>(0)
+ reg T_166419 : UInt<1>
+ onreset T_166419 := UInt<1>(0)
+ reg maybe_full : UInt<1>
+ onreset maybe_full := UInt<1>(0)
+ node ptr_match = eq(T_166418, T_166419)
+ node T_166420 = eq(maybe_full, UInt<1>(0))
+ node empty = and(ptr_match, T_166420)
+ node full = and(ptr_match, maybe_full)
+ node maybe_flow = and(UInt<1>(0), empty)
+ node do_flow = and(maybe_flow, deq.ready)
+ node T_166421 = and(enq.ready, enq.valid)
+ node T_166422 = eq(do_flow, UInt<1>(0))
+ node do_enq = and(T_166421, T_166422)
+ node T_166423 = and(deq.ready, deq.valid)
+ node T_166424 = eq(do_flow, UInt<1>(0))
+ node do_deq = and(T_166423, T_166424)
+ when do_enq :
+ wire T_166425 : UInt<3>[3]
+ T_166425[0] := UInt<3>(0)
+ T_166425[1] := UInt<3>(1)
+ T_166425[2] := UInt<3>(2)
+ wire T_166426 : UInt<2>[2]
+ T_166426[0] := UInt<2>(0)
+ T_166426[1] := UInt<2>(1)
+ wire T_166427 : UInt<2>[3]
+ T_166427[0] := UInt<2>(1)
+ T_166427[1] := UInt<2>(2)
+ T_166427[2] := UInt<2>(3)
+ wire T_166428 : UInt<2>[2]
+ T_166428[0] := UInt<2>(2)
+ T_166428[1] := UInt<2>(3)
+ wire T_166429 : UInt<2>[1]
+ T_166429[0] := UInt<2>(3)
+ accessor T_166430 = ram[T_166418]
+ T_166430 := enq.bits
+ node T_166431 = eq(T_166418, UInt<1>(1))
+ node T_166432 = and(UInt<1>(0), T_166431)
+ node T_166433 = addw(T_166418, UInt<1>(1))
+ wire T_166434 : UInt<1>
+ T_166434 := T_166433
+ when T_166432 : T_166434 := UInt<1>(0)
+ T_166418 := T_166434
+ when do_deq :
+ node T_166435 = eq(T_166419, UInt<1>(1))
+ node T_166436 = and(UInt<1>(0), T_166435)
+ node T_166437 = addw(T_166419, UInt<1>(1))
+ wire T_166438 : UInt<1>
+ T_166438 := T_166437
+ when T_166436 : T_166438 := UInt<1>(0)
+ T_166419 := T_166438
+
+ node T_166439 = neq(do_enq, do_deq)
+ when T_166439 : maybe_full := do_enq
+ node T_166440 = eq(empty, UInt<1>(0))
+ node T_166441 = and(UInt<1>(0), enq.valid)
+ node T_166442 = or(T_166440, T_166441)
+ deq.valid := T_166442
+ node T_166443 = eq(full, UInt<1>(0))
+ node T_166444 = and(UInt<1>(0), deq.ready)
+ node T_166445 = or(T_166443, T_166444)
+ enq.ready := T_166445
+ wire T_166446 : UInt<3>[3]
+ T_166446[0] := UInt<3>(0)
+ T_166446[1] := UInt<3>(1)
+ T_166446[2] := UInt<3>(2)
+ wire T_166447 : UInt<2>[2]
+ T_166447[0] := UInt<2>(0)
+ T_166447[1] := UInt<2>(1)
+ wire T_166448 : UInt<2>[3]
+ T_166448[0] := UInt<2>(1)
+ T_166448[1] := UInt<2>(2)
+ T_166448[2] := UInt<2>(3)
+ wire T_166449 : UInt<2>[2]
+ T_166449[0] := UInt<2>(2)
+ T_166449[1] := UInt<2>(3)
+ wire T_166450 : UInt<2>[1]
+ T_166450[0] := UInt<2>(3)
+ accessor T_166451 = ram[T_166419]
+ wire T_166452 : UInt<3>[3]
+ T_166452[0] := UInt<3>(0)
+ T_166452[1] := UInt<3>(1)
+ T_166452[2] := UInt<3>(2)
+ wire T_166453 : UInt<2>[2]
+ T_166453[0] := UInt<2>(0)
+ T_166453[1] := UInt<2>(1)
+ wire T_166454 : UInt<2>[3]
+ T_166454[0] := UInt<2>(1)
+ T_166454[1] := UInt<2>(2)
+ T_166454[2] := UInt<2>(3)
+ wire T_166455 : UInt<2>[2]
+ T_166455[0] := UInt<2>(2)
+ T_166455[1] := UInt<2>(3)
+ wire T_166456 : UInt<2>[1]
+ T_166456[0] := UInt<2>(3)
+ wire T_166457 : {header : {src : UInt<2>, dst : UInt<2>}, payload : {addr_block : UInt<26>, p_type : UInt<2>}}
+ T_166457 := T_166451
+ when maybe_flow : T_166457 := enq.bits
+ deq.bits := T_166457
+ node ptr_diff = subw(T_166418, T_166419)
+ node T_166458 = and(maybe_full, ptr_match)
+ node T_166459 = cat(T_166458, ptr_diff)
+ count := T_166459
+ module Queue_20764 :
+ input enq : {flip ready : UInt<1>, valid : UInt<1>, bits : {header : {src : UInt<2>, dst : UInt<2>}, payload : {addr_block : UInt<26>, client_xact_id : UInt<1>, addr_beat : UInt<2>, data : UInt<128>, r_type : UInt<3>, voluntary : UInt<1>}}}
+ output deq : {flip ready : UInt<1>, valid : UInt<1>, bits : {header : {src : UInt<2>, dst : UInt<2>}, payload : {addr_block : UInt<26>, client_xact_id : UInt<1>, addr_beat : UInt<2>, data : UInt<128>, r_type : UInt<3>, voluntary : UInt<1>}}}
+ output count : UInt<2>
+
+ wire T_166460 : UInt<3>[3]
+ T_166460[0] := UInt<3>(0)
+ T_166460[1] := UInt<3>(1)
+ T_166460[2] := UInt<3>(2)
+ wire T_166461 : UInt<2>[2]
+ T_166461[0] := UInt<2>(0)
+ T_166461[1] := UInt<2>(1)
+ wire T_166462 : UInt<2>[3]
+ T_166462[0] := UInt<2>(1)
+ T_166462[1] := UInt<2>(2)
+ T_166462[2] := UInt<2>(3)
+ wire T_166463 : UInt<2>[2]
+ T_166463[0] := UInt<2>(2)
+ T_166463[1] := UInt<2>(3)
+ wire T_166464 : UInt<2>[1]
+ T_166464[0] := UInt<2>(3)
+ wire T_166465 : UInt<3>[3]
+ T_166465[0] := UInt<3>(0)
+ T_166465[1] := UInt<3>(1)
+ T_166465[2] := UInt<3>(2)
+ wire T_166466 : UInt<2>[2]
+ T_166466[0] := UInt<2>(0)
+ T_166466[1] := UInt<2>(1)
+ wire T_166467 : UInt<2>[3]
+ T_166467[0] := UInt<2>(1)
+ T_166467[1] := UInt<2>(2)
+ T_166467[2] := UInt<2>(3)
+ wire T_166468 : UInt<2>[2]
+ T_166468[0] := UInt<2>(2)
+ T_166468[1] := UInt<2>(3)
+ wire T_166469 : UInt<2>[1]
+ T_166469[0] := UInt<2>(3)
+ wire T_166470 : UInt<3>[3]
+ T_166470[0] := UInt<3>(0)
+ T_166470[1] := UInt<3>(1)
+ T_166470[2] := UInt<3>(2)
+ wire T_166471 : UInt<2>[2]
+ T_166471[0] := UInt<2>(0)
+ T_166471[1] := UInt<2>(1)
+ wire T_166472 : UInt<2>[3]
+ T_166472[0] := UInt<2>(1)
+ T_166472[1] := UInt<2>(2)
+ T_166472[2] := UInt<2>(3)
+ wire T_166473 : UInt<2>[2]
+ T_166473[0] := UInt<2>(2)
+ T_166473[1] := UInt<2>(3)
+ wire T_166474 : UInt<2>[1]
+ T_166474[0] := UInt<2>(3)
+ wire T_166475 : UInt<3>[3]
+ T_166475[0] := UInt<3>(0)
+ T_166475[1] := UInt<3>(1)
+ T_166475[2] := UInt<3>(2)
+ wire T_166476 : UInt<2>[2]
+ T_166476[0] := UInt<2>(0)
+ T_166476[1] := UInt<2>(1)
+ wire T_166477 : UInt<2>[3]
+ T_166477[0] := UInt<2>(1)
+ T_166477[1] := UInt<2>(2)
+ T_166477[2] := UInt<2>(3)
+ wire T_166478 : UInt<2>[2]
+ T_166478[0] := UInt<2>(2)
+ T_166478[1] := UInt<2>(3)
+ wire T_166479 : UInt<2>[1]
+ T_166479[0] := UInt<2>(3)
+ wire T_166480 : UInt<3>[3]
+ T_166480[0] := UInt<3>(0)
+ T_166480[1] := UInt<3>(1)
+ T_166480[2] := UInt<3>(2)
+ wire T_166481 : UInt<2>[2]
+ T_166481[0] := UInt<2>(0)
+ T_166481[1] := UInt<2>(1)
+ wire T_166482 : UInt<2>[3]
+ T_166482[0] := UInt<2>(1)
+ T_166482[1] := UInt<2>(2)
+ T_166482[2] := UInt<2>(3)
+ wire T_166483 : UInt<2>[2]
+ T_166483[0] := UInt<2>(2)
+ T_166483[1] := UInt<2>(3)
+ wire T_166484 : UInt<2>[1]
+ T_166484[0] := UInt<2>(3)
+ cmem ram : {header : {src : UInt<2>, dst : UInt<2>}, payload : {addr_block : UInt<26>, client_xact_id : UInt<1>, addr_beat : UInt<2>, data : UInt<128>, r_type : UInt<3>, voluntary : UInt<1>}}[2]
+ reg T_166485 : UInt<1>
+ onreset T_166485 := UInt<1>(0)
+ reg T_166486 : UInt<1>
+ onreset T_166486 := UInt<1>(0)
+ reg maybe_full : UInt<1>
+ onreset maybe_full := UInt<1>(0)
+ node ptr_match = eq(T_166485, T_166486)
+ node T_166487 = eq(maybe_full, UInt<1>(0))
+ node empty = and(ptr_match, T_166487)
+ node full = and(ptr_match, maybe_full)
+ node maybe_flow = and(UInt<1>(0), empty)
+ node do_flow = and(maybe_flow, deq.ready)
+ node T_166488 = and(enq.ready, enq.valid)
+ node T_166489 = eq(do_flow, UInt<1>(0))
+ node do_enq = and(T_166488, T_166489)
+ node T_166490 = and(deq.ready, deq.valid)
+ node T_166491 = eq(do_flow, UInt<1>(0))
+ node do_deq = and(T_166490, T_166491)
+ when do_enq :
+ wire T_166492 : UInt<3>[3]
+ T_166492[0] := UInt<3>(0)
+ T_166492[1] := UInt<3>(1)
+ T_166492[2] := UInt<3>(2)
+ wire T_166493 : UInt<2>[2]
+ T_166493[0] := UInt<2>(0)
+ T_166493[1] := UInt<2>(1)
+ wire T_166494 : UInt<2>[3]
+ T_166494[0] := UInt<2>(1)
+ T_166494[1] := UInt<2>(2)
+ T_166494[2] := UInt<2>(3)
+ wire T_166495 : UInt<2>[2]
+ T_166495[0] := UInt<2>(2)
+ T_166495[1] := UInt<2>(3)
+ wire T_166496 : UInt<2>[1]
+ T_166496[0] := UInt<2>(3)
+ accessor T_166497 = ram[T_166485]
+ T_166497 := enq.bits
+ node T_166498 = eq(T_166485, UInt<1>(1))
+ node T_166499 = and(UInt<1>(0), T_166498)
+ node T_166500 = addw(T_166485, UInt<1>(1))
+ wire T_166501 : UInt<1>
+ T_166501 := T_166500
+ when T_166499 : T_166501 := UInt<1>(0)
+ T_166485 := T_166501
+ when do_deq :
+ node T_166502 = eq(T_166486, UInt<1>(1))
+ node T_166503 = and(UInt<1>(0), T_166502)
+ node T_166504 = addw(T_166486, UInt<1>(1))
+ wire T_166505 : UInt<1>
+ T_166505 := T_166504
+ when T_166503 : T_166505 := UInt<1>(0)
+ T_166486 := T_166505
+
+ node T_166506 = neq(do_enq, do_deq)
+ when T_166506 : maybe_full := do_enq
+ node T_166507 = eq(empty, UInt<1>(0))
+ node T_166508 = and(UInt<1>(0), enq.valid)
+ node T_166509 = or(T_166507, T_166508)
+ deq.valid := T_166509
+ node T_166510 = eq(full, UInt<1>(0))
+ node T_166511 = and(UInt<1>(0), deq.ready)
+ node T_166512 = or(T_166510, T_166511)
+ enq.ready := T_166512
+ wire T_166513 : UInt<3>[3]
+ T_166513[0] := UInt<3>(0)
+ T_166513[1] := UInt<3>(1)
+ T_166513[2] := UInt<3>(2)
+ wire T_166514 : UInt<2>[2]
+ T_166514[0] := UInt<2>(0)
+ T_166514[1] := UInt<2>(1)
+ wire T_166515 : UInt<2>[3]
+ T_166515[0] := UInt<2>(1)
+ T_166515[1] := UInt<2>(2)
+ T_166515[2] := UInt<2>(3)
+ wire T_166516 : UInt<2>[2]
+ T_166516[0] := UInt<2>(2)
+ T_166516[1] := UInt<2>(3)
+ wire T_166517 : UInt<2>[1]
+ T_166517[0] := UInt<2>(3)
+ accessor T_166518 = ram[T_166486]
+ wire T_166519 : UInt<3>[3]
+ T_166519[0] := UInt<3>(0)
+ T_166519[1] := UInt<3>(1)
+ T_166519[2] := UInt<3>(2)
+ wire T_166520 : UInt<2>[2]
+ T_166520[0] := UInt<2>(0)
+ T_166520[1] := UInt<2>(1)
+ wire T_166521 : UInt<2>[3]
+ T_166521[0] := UInt<2>(1)
+ T_166521[1] := UInt<2>(2)
+ T_166521[2] := UInt<2>(3)
+ wire T_166522 : UInt<2>[2]
+ T_166522[0] := UInt<2>(2)
+ T_166522[1] := UInt<2>(3)
+ wire T_166523 : UInt<2>[1]
+ T_166523[0] := UInt<2>(3)
+ wire T_166524 : {header : {src : UInt<2>, dst : UInt<2>}, payload : {addr_block : UInt<26>, client_xact_id : UInt<1>, addr_beat : UInt<2>, data : UInt<128>, r_type : UInt<3>, voluntary : UInt<1>}}
+ T_166524 := T_166518
+ when maybe_flow : T_166524 := enq.bits
+ deq.bits := T_166524
+ node ptr_diff = subw(T_166485, T_166486)
+ node T_166525 = and(maybe_full, ptr_match)
+ node T_166526 = cat(T_166525, ptr_diff)
+ count := T_166526
+ module Queue_21439 :
+ input enq : {flip ready : UInt<1>, valid : UInt<1>, bits : {header : {src : UInt<2>, dst : UInt<2>}, payload : {addr_beat : UInt<2>, data : UInt<128>, client_xact_id : UInt<1>, manager_xact_id : UInt<2>, is_builtin_type : UInt<1>, g_type : UInt<4>}}}
+ output deq : {flip ready : UInt<1>, valid : UInt<1>, bits : {header : {src : UInt<2>, dst : UInt<2>}, payload : {addr_beat : UInt<2>, data : UInt<128>, client_xact_id : UInt<1>, manager_xact_id : UInt<2>, is_builtin_type : UInt<1>, g_type : UInt<4>}}}
+ output count : UInt<2>
+
+ wire T_166527 : UInt<3>[3]
+ T_166527[0] := UInt<3>(0)
+ T_166527[1] := UInt<3>(1)
+ T_166527[2] := UInt<3>(2)
+ wire T_166528 : UInt<2>[2]
+ T_166528[0] := UInt<2>(0)
+ T_166528[1] := UInt<2>(1)
+ wire T_166529 : UInt<2>[3]
+ T_166529[0] := UInt<2>(1)
+ T_166529[1] := UInt<2>(2)
+ T_166529[2] := UInt<2>(3)
+ wire T_166530 : UInt<2>[2]
+ T_166530[0] := UInt<2>(2)
+ T_166530[1] := UInt<2>(3)
+ wire T_166531 : UInt<2>[1]
+ T_166531[0] := UInt<2>(3)
+ wire T_166532 : UInt<3>[3]
+ T_166532[0] := UInt<3>(0)
+ T_166532[1] := UInt<3>(1)
+ T_166532[2] := UInt<3>(2)
+ wire T_166533 : UInt<2>[2]
+ T_166533[0] := UInt<2>(0)
+ T_166533[1] := UInt<2>(1)
+ wire T_166534 : UInt<2>[3]
+ T_166534[0] := UInt<2>(1)
+ T_166534[1] := UInt<2>(2)
+ T_166534[2] := UInt<2>(3)
+ wire T_166535 : UInt<2>[2]
+ T_166535[0] := UInt<2>(2)
+ T_166535[1] := UInt<2>(3)
+ wire T_166536 : UInt<2>[1]
+ T_166536[0] := UInt<2>(3)
+ wire T_166537 : UInt<3>[3]
+ T_166537[0] := UInt<3>(0)
+ T_166537[1] := UInt<3>(1)
+ T_166537[2] := UInt<3>(2)
+ wire T_166538 : UInt<2>[2]
+ T_166538[0] := UInt<2>(0)
+ T_166538[1] := UInt<2>(1)
+ wire T_166539 : UInt<2>[3]
+ T_166539[0] := UInt<2>(1)
+ T_166539[1] := UInt<2>(2)
+ T_166539[2] := UInt<2>(3)
+ wire T_166540 : UInt<2>[2]
+ T_166540[0] := UInt<2>(2)
+ T_166540[1] := UInt<2>(3)
+ wire T_166541 : UInt<2>[1]
+ T_166541[0] := UInt<2>(3)
+ wire T_166542 : UInt<3>[3]
+ T_166542[0] := UInt<3>(0)
+ T_166542[1] := UInt<3>(1)
+ T_166542[2] := UInt<3>(2)
+ wire T_166543 : UInt<2>[2]
+ T_166543[0] := UInt<2>(0)
+ T_166543[1] := UInt<2>(1)
+ wire T_166544 : UInt<2>[3]
+ T_166544[0] := UInt<2>(1)
+ T_166544[1] := UInt<2>(2)
+ T_166544[2] := UInt<2>(3)
+ wire T_166545 : UInt<2>[2]
+ T_166545[0] := UInt<2>(2)
+ T_166545[1] := UInt<2>(3)
+ wire T_166546 : UInt<2>[1]
+ T_166546[0] := UInt<2>(3)
+ wire T_166547 : UInt<3>[3]
+ T_166547[0] := UInt<3>(0)
+ T_166547[1] := UInt<3>(1)
+ T_166547[2] := UInt<3>(2)
+ wire T_166548 : UInt<2>[2]
+ T_166548[0] := UInt<2>(0)
+ T_166548[1] := UInt<2>(1)
+ wire T_166549 : UInt<2>[3]
+ T_166549[0] := UInt<2>(1)
+ T_166549[1] := UInt<2>(2)
+ T_166549[2] := UInt<2>(3)
+ wire T_166550 : UInt<2>[2]
+ T_166550[0] := UInt<2>(2)
+ T_166550[1] := UInt<2>(3)
+ wire T_166551 : UInt<2>[1]
+ T_166551[0] := UInt<2>(3)
+ cmem ram : {header : {src : UInt<2>, dst : UInt<2>}, payload : {addr_beat : UInt<2>, data : UInt<128>, client_xact_id : UInt<1>, manager_xact_id : UInt<2>, is_builtin_type : UInt<1>, g_type : UInt<4>}}[2]
+ reg T_166552 : UInt<1>
+ onreset T_166552 := UInt<1>(0)
+ reg T_166553 : UInt<1>
+ onreset T_166553 := UInt<1>(0)
+ reg maybe_full : UInt<1>
+ onreset maybe_full := UInt<1>(0)
+ node ptr_match = eq(T_166552, T_166553)
+ node T_166554 = eq(maybe_full, UInt<1>(0))
+ node empty = and(ptr_match, T_166554)
+ node full = and(ptr_match, maybe_full)
+ node maybe_flow = and(UInt<1>(0), empty)
+ node do_flow = and(maybe_flow, deq.ready)
+ node T_166555 = and(enq.ready, enq.valid)
+ node T_166556 = eq(do_flow, UInt<1>(0))
+ node do_enq = and(T_166555, T_166556)
+ node T_166557 = and(deq.ready, deq.valid)
+ node T_166558 = eq(do_flow, UInt<1>(0))
+ node do_deq = and(T_166557, T_166558)
+ when do_enq :
+ wire T_166559 : UInt<3>[3]
+ T_166559[0] := UInt<3>(0)
+ T_166559[1] := UInt<3>(1)
+ T_166559[2] := UInt<3>(2)
+ wire T_166560 : UInt<2>[2]
+ T_166560[0] := UInt<2>(0)
+ T_166560[1] := UInt<2>(1)
+ wire T_166561 : UInt<2>[3]
+ T_166561[0] := UInt<2>(1)
+ T_166561[1] := UInt<2>(2)
+ T_166561[2] := UInt<2>(3)
+ wire T_166562 : UInt<2>[2]
+ T_166562[0] := UInt<2>(2)
+ T_166562[1] := UInt<2>(3)
+ wire T_166563 : UInt<2>[1]
+ T_166563[0] := UInt<2>(3)
+ accessor T_166564 = ram[T_166552]
+ T_166564 := enq.bits
+ node T_166565 = eq(T_166552, UInt<1>(1))
+ node T_166566 = and(UInt<1>(0), T_166565)
+ node T_166567 = addw(T_166552, UInt<1>(1))
+ wire T_166568 : UInt<1>
+ T_166568 := T_166567
+ when T_166566 : T_166568 := UInt<1>(0)
+ T_166552 := T_166568
+ when do_deq :
+ node T_166569 = eq(T_166553, UInt<1>(1))
+ node T_166570 = and(UInt<1>(0), T_166569)
+ node T_166571 = addw(T_166553, UInt<1>(1))
+ wire T_166572 : UInt<1>
+ T_166572 := T_166571
+ when T_166570 : T_166572 := UInt<1>(0)
+ T_166553 := T_166572
+
+ node T_166573 = neq(do_enq, do_deq)
+ when T_166573 : maybe_full := do_enq
+ node T_166574 = eq(empty, UInt<1>(0))
+ node T_166575 = and(UInt<1>(0), enq.valid)
+ node T_166576 = or(T_166574, T_166575)
+ deq.valid := T_166576
+ node T_166577 = eq(full, UInt<1>(0))
+ node T_166578 = and(UInt<1>(0), deq.ready)
+ node T_166579 = or(T_166577, T_166578)
+ enq.ready := T_166579
+ wire T_166580 : UInt<3>[3]
+ T_166580[0] := UInt<3>(0)
+ T_166580[1] := UInt<3>(1)
+ T_166580[2] := UInt<3>(2)
+ wire T_166581 : UInt<2>[2]
+ T_166581[0] := UInt<2>(0)
+ T_166581[1] := UInt<2>(1)
+ wire T_166582 : UInt<2>[3]
+ T_166582[0] := UInt<2>(1)
+ T_166582[1] := UInt<2>(2)
+ T_166582[2] := UInt<2>(3)
+ wire T_166583 : UInt<2>[2]
+ T_166583[0] := UInt<2>(2)
+ T_166583[1] := UInt<2>(3)
+ wire T_166584 : UInt<2>[1]
+ T_166584[0] := UInt<2>(3)
+ accessor T_166585 = ram[T_166553]
+ wire T_166586 : UInt<3>[3]
+ T_166586[0] := UInt<3>(0)
+ T_166586[1] := UInt<3>(1)
+ T_166586[2] := UInt<3>(2)
+ wire T_166587 : UInt<2>[2]
+ T_166587[0] := UInt<2>(0)
+ T_166587[1] := UInt<2>(1)
+ wire T_166588 : UInt<2>[3]
+ T_166588[0] := UInt<2>(1)
+ T_166588[1] := UInt<2>(2)
+ T_166588[2] := UInt<2>(3)
+ wire T_166589 : UInt<2>[2]
+ T_166589[0] := UInt<2>(2)
+ T_166589[1] := UInt<2>(3)
+ wire T_166590 : UInt<2>[1]
+ T_166590[0] := UInt<2>(3)
+ wire T_166591 : {header : {src : UInt<2>, dst : UInt<2>}, payload : {addr_beat : UInt<2>, data : UInt<128>, client_xact_id : UInt<1>, manager_xact_id : UInt<2>, is_builtin_type : UInt<1>, g_type : UInt<4>}}
+ T_166591 := T_166585
+ when maybe_flow : T_166591 := enq.bits
+ deq.bits := T_166591
+ node ptr_diff = subw(T_166552, T_166553)
+ node T_166592 = and(maybe_full, ptr_match)
+ node T_166593 = cat(T_166592, ptr_diff)
+ count := T_166593
+ module Queue_22069 :
+ input enq : {flip ready : UInt<1>, valid : UInt<1>, bits : {header : {src : UInt<2>, dst : UInt<2>}, payload : {manager_xact_id : UInt<2>}}}
+ output deq : {flip ready : UInt<1>, valid : UInt<1>, bits : {header : {src : UInt<2>, dst : UInt<2>}, payload : {manager_xact_id : UInt<2>}}}
+ output count : UInt<2>
+
+ wire T_166594 : UInt<3>[3]
+ T_166594[0] := UInt<3>(0)
+ T_166594[1] := UInt<3>(1)
+ T_166594[2] := UInt<3>(2)
+ wire T_166595 : UInt<2>[2]
+ T_166595[0] := UInt<2>(0)
+ T_166595[1] := UInt<2>(1)
+ wire T_166596 : UInt<2>[3]
+ T_166596[0] := UInt<2>(1)
+ T_166596[1] := UInt<2>(2)
+ T_166596[2] := UInt<2>(3)
+ wire T_166597 : UInt<2>[2]
+ T_166597[0] := UInt<2>(2)
+ T_166597[1] := UInt<2>(3)
+ wire T_166598 : UInt<2>[1]
+ T_166598[0] := UInt<2>(3)
+ wire T_166599 : UInt<3>[3]
+ T_166599[0] := UInt<3>(0)
+ T_166599[1] := UInt<3>(1)
+ T_166599[2] := UInt<3>(2)
+ wire T_166600 : UInt<2>[2]
+ T_166600[0] := UInt<2>(0)
+ T_166600[1] := UInt<2>(1)
+ wire T_166601 : UInt<2>[3]
+ T_166601[0] := UInt<2>(1)
+ T_166601[1] := UInt<2>(2)
+ T_166601[2] := UInt<2>(3)
+ wire T_166602 : UInt<2>[2]
+ T_166602[0] := UInt<2>(2)
+ T_166602[1] := UInt<2>(3)
+ wire T_166603 : UInt<2>[1]
+ T_166603[0] := UInt<2>(3)
+ wire T_166604 : UInt<3>[3]
+ T_166604[0] := UInt<3>(0)
+ T_166604[1] := UInt<3>(1)
+ T_166604[2] := UInt<3>(2)
+ wire T_166605 : UInt<2>[2]
+ T_166605[0] := UInt<2>(0)
+ T_166605[1] := UInt<2>(1)
+ wire T_166606 : UInt<2>[3]
+ T_166606[0] := UInt<2>(1)
+ T_166606[1] := UInt<2>(2)
+ T_166606[2] := UInt<2>(3)
+ wire T_166607 : UInt<2>[2]
+ T_166607[0] := UInt<2>(2)
+ T_166607[1] := UInt<2>(3)
+ wire T_166608 : UInt<2>[1]
+ T_166608[0] := UInt<2>(3)
+ wire T_166609 : UInt<3>[3]
+ T_166609[0] := UInt<3>(0)
+ T_166609[1] := UInt<3>(1)
+ T_166609[2] := UInt<3>(2)
+ wire T_166610 : UInt<2>[2]
+ T_166610[0] := UInt<2>(0)
+ T_166610[1] := UInt<2>(1)
+ wire T_166611 : UInt<2>[3]
+ T_166611[0] := UInt<2>(1)
+ T_166611[1] := UInt<2>(2)
+ T_166611[2] := UInt<2>(3)
+ wire T_166612 : UInt<2>[2]
+ T_166612[0] := UInt<2>(2)
+ T_166612[1] := UInt<2>(3)
+ wire T_166613 : UInt<2>[1]
+ T_166613[0] := UInt<2>(3)
+ wire T_166614 : UInt<3>[3]
+ T_166614[0] := UInt<3>(0)
+ T_166614[1] := UInt<3>(1)
+ T_166614[2] := UInt<3>(2)
+ wire T_166615 : UInt<2>[2]
+ T_166615[0] := UInt<2>(0)
+ T_166615[1] := UInt<2>(1)
+ wire T_166616 : UInt<2>[3]
+ T_166616[0] := UInt<2>(1)
+ T_166616[1] := UInt<2>(2)
+ T_166616[2] := UInt<2>(3)
+ wire T_166617 : UInt<2>[2]
+ T_166617[0] := UInt<2>(2)
+ T_166617[1] := UInt<2>(3)
+ wire T_166618 : UInt<2>[1]
+ T_166618[0] := UInt<2>(3)
+ cmem ram : {header : {src : UInt<2>, dst : UInt<2>}, payload : {manager_xact_id : UInt<2>}}[2]
+ reg T_166619 : UInt<1>
+ onreset T_166619 := UInt<1>(0)
+ reg T_166620 : UInt<1>
+ onreset T_166620 := UInt<1>(0)
+ reg maybe_full : UInt<1>
+ onreset maybe_full := UInt<1>(0)
+ node ptr_match = eq(T_166619, T_166620)
+ node T_166621 = eq(maybe_full, UInt<1>(0))
+ node empty = and(ptr_match, T_166621)
+ node full = and(ptr_match, maybe_full)
+ node maybe_flow = and(UInt<1>(0), empty)
+ node do_flow = and(maybe_flow, deq.ready)
+ node T_166622 = and(enq.ready, enq.valid)
+ node T_166623 = eq(do_flow, UInt<1>(0))
+ node do_enq = and(T_166622, T_166623)
+ node T_166624 = and(deq.ready, deq.valid)
+ node T_166625 = eq(do_flow, UInt<1>(0))
+ node do_deq = and(T_166624, T_166625)
+ when do_enq :
+ wire T_166626 : UInt<3>[3]
+ T_166626[0] := UInt<3>(0)
+ T_166626[1] := UInt<3>(1)
+ T_166626[2] := UInt<3>(2)
+ wire T_166627 : UInt<2>[2]
+ T_166627[0] := UInt<2>(0)
+ T_166627[1] := UInt<2>(1)
+ wire T_166628 : UInt<2>[3]
+ T_166628[0] := UInt<2>(1)
+ T_166628[1] := UInt<2>(2)
+ T_166628[2] := UInt<2>(3)
+ wire T_166629 : UInt<2>[2]
+ T_166629[0] := UInt<2>(2)
+ T_166629[1] := UInt<2>(3)
+ wire T_166630 : UInt<2>[1]
+ T_166630[0] := UInt<2>(3)
+ accessor T_166631 = ram[T_166619]
+ T_166631 := enq.bits
+ node T_166632 = eq(T_166619, UInt<1>(1))
+ node T_166633 = and(UInt<1>(0), T_166632)
+ node T_166634 = addw(T_166619, UInt<1>(1))
+ wire T_166635 : UInt<1>
+ T_166635 := T_166634
+ when T_166633 : T_166635 := UInt<1>(0)
+ T_166619 := T_166635
+ when do_deq :
+ node T_166636 = eq(T_166620, UInt<1>(1))
+ node T_166637 = and(UInt<1>(0), T_166636)
+ node T_166638 = addw(T_166620, UInt<1>(1))
+ wire T_166639 : UInt<1>
+ T_166639 := T_166638
+ when T_166637 : T_166639 := UInt<1>(0)
+ T_166620 := T_166639
+
+ node T_166640 = neq(do_enq, do_deq)
+ when T_166640 : maybe_full := do_enq
+ node T_166641 = eq(empty, UInt<1>(0))
+ node T_166642 = and(UInt<1>(0), enq.valid)
+ node T_166643 = or(T_166641, T_166642)
+ deq.valid := T_166643
+ node T_166644 = eq(full, UInt<1>(0))
+ node T_166645 = and(UInt<1>(0), deq.ready)
+ node T_166646 = or(T_166644, T_166645)
+ enq.ready := T_166646
+ wire T_166647 : UInt<3>[3]
+ T_166647[0] := UInt<3>(0)
+ T_166647[1] := UInt<3>(1)
+ T_166647[2] := UInt<3>(2)
+ wire T_166648 : UInt<2>[2]
+ T_166648[0] := UInt<2>(0)
+ T_166648[1] := UInt<2>(1)
+ wire T_166649 : UInt<2>[3]
+ T_166649[0] := UInt<2>(1)
+ T_166649[1] := UInt<2>(2)
+ T_166649[2] := UInt<2>(3)
+ wire T_166650 : UInt<2>[2]
+ T_166650[0] := UInt<2>(2)
+ T_166650[1] := UInt<2>(3)
+ wire T_166651 : UInt<2>[1]
+ T_166651[0] := UInt<2>(3)
+ accessor T_166652 = ram[T_166620]
+ wire T_166653 : UInt<3>[3]
+ T_166653[0] := UInt<3>(0)
+ T_166653[1] := UInt<3>(1)
+ T_166653[2] := UInt<3>(2)
+ wire T_166654 : UInt<2>[2]
+ T_166654[0] := UInt<2>(0)
+ T_166654[1] := UInt<2>(1)
+ wire T_166655 : UInt<2>[3]
+ T_166655[0] := UInt<2>(1)
+ T_166655[1] := UInt<2>(2)
+ T_166655[2] := UInt<2>(3)
+ wire T_166656 : UInt<2>[2]
+ T_166656[0] := UInt<2>(2)
+ T_166656[1] := UInt<2>(3)
+ wire T_166657 : UInt<2>[1]
+ T_166657[0] := UInt<2>(3)
+ wire T_166658 : {header : {src : UInt<2>, dst : UInt<2>}, payload : {manager_xact_id : UInt<2>}}
+ T_166658 := T_166652
+ when maybe_flow : T_166658 := enq.bits
+ deq.bits := T_166658
+ node ptr_diff = subw(T_166619, T_166620)
+ node T_166659 = and(maybe_full, ptr_match)
+ node T_166660 = cat(T_166659, ptr_diff)
+ count := T_166660
+ module TileLinkEnqueuer :
+ input client : {acquire : {flip ready : UInt<1>, valid : UInt<1>, bits : {header : {src : UInt<2>, dst : UInt<2>}, payload : {addr_block : UInt<26>, client_xact_id : UInt<1>, addr_beat : UInt<2>, data : UInt<128>, is_builtin_type : UInt<1>, a_type : UInt<3>, union : UInt<17>}}}, flip grant : {flip ready : UInt<1>, valid : UInt<1>, bits : {header : {src : UInt<2>, dst : UInt<2>}, payload : {addr_beat : UInt<2>, data : UInt<128>, client_xact_id : UInt<1>, manager_xact_id : UInt<2>, is_builtin_type : UInt<1>, g_type : UInt<4>}}}, finish : {flip ready : UInt<1>, valid : UInt<1>, bits : {header : {src : UInt<2>, dst : UInt<2>}, payload : {manager_xact_id : UInt<2>}}}, flip probe : {flip ready : UInt<1>, valid : UInt<1>, bits : {header : {src : UInt<2>, dst : UInt<2>}, payload : {addr_block : UInt<26>, p_type : UInt<2>}}}, release : {flip ready : UInt<1>, valid : UInt<1>, bits : {header : {src : UInt<2>, dst : UInt<2>}, payload : {addr_block : UInt<26>, client_xact_id : UInt<1>, addr_beat : UInt<2>, data : UInt<128>, r_type : UInt<3>, voluntary : UInt<1>}}}}
+ output manager : {acquire : {flip ready : UInt<1>, valid : UInt<1>, bits : {header : {src : UInt<2>, dst : UInt<2>}, payload : {addr_block : UInt<26>, client_xact_id : UInt<1>, addr_beat : UInt<2>, data : UInt<128>, is_builtin_type : UInt<1>, a_type : UInt<3>, union : UInt<17>}}}, flip grant : {flip ready : UInt<1>, valid : UInt<1>, bits : {header : {src : UInt<2>, dst : UInt<2>}, payload : {addr_beat : UInt<2>, data : UInt<128>, client_xact_id : UInt<1>, manager_xact_id : UInt<2>, is_builtin_type : UInt<1>, g_type : UInt<4>}}}, finish : {flip ready : UInt<1>, valid : UInt<1>, bits : {header : {src : UInt<2>, dst : UInt<2>}, payload : {manager_xact_id : UInt<2>}}}, flip probe : {flip ready : UInt<1>, valid : UInt<1>, bits : {header : {src : UInt<2>, dst : UInt<2>}, payload : {addr_block : UInt<26>, p_type : UInt<2>}}}, release : {flip ready : UInt<1>, valid : UInt<1>, bits : {header : {src : UInt<2>, dst : UInt<2>}, payload : {addr_block : UInt<26>, client_xact_id : UInt<1>, addr_beat : UInt<2>, data : UInt<128>, r_type : UInt<3>, voluntary : UInt<1>}}}}
+
+ wire T_166661 : UInt<3>[3]
+ T_166661[0] := UInt<3>(0)
+ T_166661[1] := UInt<3>(1)
+ T_166661[2] := UInt<3>(2)
+ wire T_166662 : UInt<2>[2]
+ T_166662[0] := UInt<2>(0)
+ T_166662[1] := UInt<2>(1)
+ wire T_166663 : UInt<2>[3]
+ T_166663[0] := UInt<2>(1)
+ T_166663[1] := UInt<2>(2)
+ T_166663[2] := UInt<2>(3)
+ wire T_166664 : UInt<2>[2]
+ T_166664[0] := UInt<2>(2)
+ T_166664[1] := UInt<2>(3)
+ wire T_166665 : UInt<2>[1]
+ T_166665[0] := UInt<2>(3)
+ wire T_166666 : UInt<3>[3]
+ T_166666[0] := UInt<3>(0)
+ T_166666[1] := UInt<3>(1)
+ T_166666[2] := UInt<3>(2)
+ wire T_166667 : UInt<2>[2]
+ T_166667[0] := UInt<2>(0)
+ T_166667[1] := UInt<2>(1)
+ wire T_166668 : UInt<2>[3]
+ T_166668[0] := UInt<2>(1)
+ T_166668[1] := UInt<2>(2)
+ T_166668[2] := UInt<2>(3)
+ wire T_166669 : UInt<2>[2]
+ T_166669[0] := UInt<2>(2)
+ T_166669[1] := UInt<2>(3)
+ wire T_166670 : UInt<2>[1]
+ T_166670[0] := UInt<2>(3)
+ wire T_166671 : UInt<3>[3]
+ T_166671[0] := UInt<3>(0)
+ T_166671[1] := UInt<3>(1)
+ T_166671[2] := UInt<3>(2)
+ wire T_166672 : UInt<2>[2]
+ T_166672[0] := UInt<2>(0)
+ T_166672[1] := UInt<2>(1)
+ wire T_166673 : UInt<2>[3]
+ T_166673[0] := UInt<2>(1)
+ T_166673[1] := UInt<2>(2)
+ T_166673[2] := UInt<2>(3)
+ wire T_166674 : UInt<2>[2]
+ T_166674[0] := UInt<2>(2)
+ T_166674[1] := UInt<2>(3)
+ wire T_166675 : UInt<2>[1]
+ T_166675[0] := UInt<2>(3)
+ wire T_166676 : UInt<3>[3]
+ T_166676[0] := UInt<3>(0)
+ T_166676[1] := UInt<3>(1)
+ T_166676[2] := UInt<3>(2)
+ wire T_166677 : UInt<2>[2]
+ T_166677[0] := UInt<2>(0)
+ T_166677[1] := UInt<2>(1)
+ wire T_166678 : UInt<2>[3]
+ T_166678[0] := UInt<2>(1)
+ T_166678[1] := UInt<2>(2)
+ T_166678[2] := UInt<2>(3)
+ wire T_166679 : UInt<2>[2]
+ T_166679[0] := UInt<2>(2)
+ T_166679[1] := UInt<2>(3)
+ wire T_166680 : UInt<2>[1]
+ T_166680[0] := UInt<2>(3)
+ wire T_166681 : UInt<3>[3]
+ T_166681[0] := UInt<3>(0)
+ T_166681[1] := UInt<3>(1)
+ T_166681[2] := UInt<3>(2)
+ wire T_166682 : UInt<2>[2]
+ T_166682[0] := UInt<2>(0)
+ T_166682[1] := UInt<2>(1)
+ wire T_166683 : UInt<2>[3]
+ T_166683[0] := UInt<2>(1)
+ T_166683[1] := UInt<2>(2)
+ T_166683[2] := UInt<2>(3)
+ wire T_166684 : UInt<2>[2]
+ T_166684[0] := UInt<2>(2)
+ T_166684[1] := UInt<2>(3)
+ wire T_166685 : UInt<2>[1]
+ T_166685[0] := UInt<2>(3)
+ wire T_166686 : UInt<3>[3]
+ T_166686[0] := UInt<3>(0)
+ T_166686[1] := UInt<3>(1)
+ T_166686[2] := UInt<3>(2)
+ wire T_166687 : UInt<2>[2]
+ T_166687[0] := UInt<2>(0)
+ T_166687[1] := UInt<2>(1)
+ wire T_166688 : UInt<2>[3]
+ T_166688[0] := UInt<2>(1)
+ T_166688[1] := UInt<2>(2)
+ T_166688[2] := UInt<2>(3)
+ wire T_166689 : UInt<2>[2]
+ T_166689[0] := UInt<2>(2)
+ T_166689[1] := UInt<2>(3)
+ wire T_166690 : UInt<2>[1]
+ T_166690[0] := UInt<2>(3)
+ wire T_166691 : UInt<3>[3]
+ T_166691[0] := UInt<3>(0)
+ T_166691[1] := UInt<3>(1)
+ T_166691[2] := UInt<3>(2)
+ wire T_166692 : UInt<2>[2]
+ T_166692[0] := UInt<2>(0)
+ T_166692[1] := UInt<2>(1)
+ wire T_166693 : UInt<2>[3]
+ T_166693[0] := UInt<2>(1)
+ T_166693[1] := UInt<2>(2)
+ T_166693[2] := UInt<2>(3)
+ wire T_166694 : UInt<2>[2]
+ T_166694[0] := UInt<2>(2)
+ T_166694[1] := UInt<2>(3)
+ wire T_166695 : UInt<2>[1]
+ T_166695[0] := UInt<2>(3)
+ wire T_166696 : UInt<3>[3]
+ T_166696[0] := UInt<3>(0)
+ T_166696[1] := UInt<3>(1)
+ T_166696[2] := UInt<3>(2)
+ wire T_166697 : UInt<2>[2]
+ T_166697[0] := UInt<2>(0)
+ T_166697[1] := UInt<2>(1)
+ wire T_166698 : UInt<2>[3]
+ T_166698[0] := UInt<2>(1)
+ T_166698[1] := UInt<2>(2)
+ T_166698[2] := UInt<2>(3)
+ wire T_166699 : UInt<2>[2]
+ T_166699[0] := UInt<2>(2)
+ T_166699[1] := UInt<2>(3)
+ wire T_166700 : UInt<2>[1]
+ T_166700[0] := UInt<2>(3)
+ wire T_166701 : UInt<3>[3]
+ T_166701[0] := UInt<3>(0)
+ T_166701[1] := UInt<3>(1)
+ T_166701[2] := UInt<3>(2)
+ wire T_166702 : UInt<2>[2]
+ T_166702[0] := UInt<2>(0)
+ T_166702[1] := UInt<2>(1)
+ wire T_166703 : UInt<2>[3]
+ T_166703[0] := UInt<2>(1)
+ T_166703[1] := UInt<2>(2)
+ T_166703[2] := UInt<2>(3)
+ wire T_166704 : UInt<2>[2]
+ T_166704[0] := UInt<2>(2)
+ T_166704[1] := UInt<2>(3)
+ wire T_166705 : UInt<2>[1]
+ T_166705[0] := UInt<2>(3)
+ wire T_166706 : UInt<3>[3]
+ T_166706[0] := UInt<3>(0)
+ T_166706[1] := UInt<3>(1)
+ T_166706[2] := UInt<3>(2)
+ wire T_166707 : UInt<2>[2]
+ T_166707[0] := UInt<2>(0)
+ T_166707[1] := UInt<2>(1)
+ wire T_166708 : UInt<2>[3]
+ T_166708[0] := UInt<2>(1)
+ T_166708[1] := UInt<2>(2)
+ T_166708[2] := UInt<2>(3)
+ wire T_166709 : UInt<2>[2]
+ T_166709[0] := UInt<2>(2)
+ T_166709[1] := UInt<2>(3)
+ wire T_166710 : UInt<2>[1]
+ T_166710[0] := UInt<2>(3)
+ wire T_166711 : UInt<3>[3]
+ T_166711[0] := UInt<3>(0)
+ T_166711[1] := UInt<3>(1)
+ T_166711[2] := UInt<3>(2)
+ wire T_166712 : UInt<2>[2]
+ T_166712[0] := UInt<2>(0)
+ T_166712[1] := UInt<2>(1)
+ wire T_166713 : UInt<2>[3]
+ T_166713[0] := UInt<2>(1)
+ T_166713[1] := UInt<2>(2)
+ T_166713[2] := UInt<2>(3)
+ wire T_166714 : UInt<2>[2]
+ T_166714[0] := UInt<2>(2)
+ T_166714[1] := UInt<2>(3)
+ wire T_166715 : UInt<2>[1]
+ T_166715[0] := UInt<2>(3)
+ wire T_166716 : UInt<3>[3]
+ T_166716[0] := UInt<3>(0)
+ T_166716[1] := UInt<3>(1)
+ T_166716[2] := UInt<3>(2)
+ wire T_166717 : UInt<2>[2]
+ T_166717[0] := UInt<2>(0)
+ T_166717[1] := UInt<2>(1)
+ wire T_166718 : UInt<2>[3]
+ T_166718[0] := UInt<2>(1)
+ T_166718[1] := UInt<2>(2)
+ T_166718[2] := UInt<2>(3)
+ wire T_166719 : UInt<2>[2]
+ T_166719[0] := UInt<2>(2)
+ T_166719[1] := UInt<2>(3)
+ wire T_166720 : UInt<2>[1]
+ T_166720[0] := UInt<2>(3)
+ wire T_166721 : UInt<3>[3]
+ T_166721[0] := UInt<3>(0)
+ T_166721[1] := UInt<3>(1)
+ T_166721[2] := UInt<3>(2)
+ wire T_166722 : UInt<2>[2]
+ T_166722[0] := UInt<2>(0)
+ T_166722[1] := UInt<2>(1)
+ wire T_166723 : UInt<2>[3]
+ T_166723[0] := UInt<2>(1)
+ T_166723[1] := UInt<2>(2)
+ T_166723[2] := UInt<2>(3)
+ wire T_166724 : UInt<2>[2]
+ T_166724[0] := UInt<2>(2)
+ T_166724[1] := UInt<2>(3)
+ wire T_166725 : UInt<2>[1]
+ T_166725[0] := UInt<2>(3)
+ wire T_166726 : UInt<3>[3]
+ T_166726[0] := UInt<3>(0)
+ T_166726[1] := UInt<3>(1)
+ T_166726[2] := UInt<3>(2)
+ wire T_166727 : UInt<2>[2]
+ T_166727[0] := UInt<2>(0)
+ T_166727[1] := UInt<2>(1)
+ wire T_166728 : UInt<2>[3]
+ T_166728[0] := UInt<2>(1)
+ T_166728[1] := UInt<2>(2)
+ T_166728[2] := UInt<2>(3)
+ wire T_166729 : UInt<2>[2]
+ T_166729[0] := UInt<2>(2)
+ T_166729[1] := UInt<2>(3)
+ wire T_166730 : UInt<2>[1]
+ T_166730[0] := UInt<2>(3)
+ wire T_166731 : UInt<3>[3]
+ T_166731[0] := UInt<3>(0)
+ T_166731[1] := UInt<3>(1)
+ T_166731[2] := UInt<3>(2)
+ wire T_166732 : UInt<2>[2]
+ T_166732[0] := UInt<2>(0)
+ T_166732[1] := UInt<2>(1)
+ wire T_166733 : UInt<2>[3]
+ T_166733[0] := UInt<2>(1)
+ T_166733[1] := UInt<2>(2)
+ T_166733[2] := UInt<2>(3)
+ wire T_166734 : UInt<2>[2]
+ T_166734[0] := UInt<2>(2)
+ T_166734[1] := UInt<2>(3)
+ wire T_166735 : UInt<2>[1]
+ T_166735[0] := UInt<2>(3)
+ wire T_166736 : UInt<3>[3]
+ T_166736[0] := UInt<3>(0)
+ T_166736[1] := UInt<3>(1)
+ T_166736[2] := UInt<3>(2)
+ wire T_166737 : UInt<2>[2]
+ T_166737[0] := UInt<2>(0)
+ T_166737[1] := UInt<2>(1)
+ wire T_166738 : UInt<2>[3]
+ T_166738[0] := UInt<2>(1)
+ T_166738[1] := UInt<2>(2)
+ T_166738[2] := UInt<2>(3)
+ wire T_166739 : UInt<2>[2]
+ T_166739[0] := UInt<2>(2)
+ T_166739[1] := UInt<2>(3)
+ wire T_166740 : UInt<2>[1]
+ T_166740[0] := UInt<2>(3)
+ wire T_166741 : UInt<3>[3]
+ T_166741[0] := UInt<3>(0)
+ T_166741[1] := UInt<3>(1)
+ T_166741[2] := UInt<3>(2)
+ wire T_166742 : UInt<2>[2]
+ T_166742[0] := UInt<2>(0)
+ T_166742[1] := UInt<2>(1)
+ wire T_166743 : UInt<2>[3]
+ T_166743[0] := UInt<2>(1)
+ T_166743[1] := UInt<2>(2)
+ T_166743[2] := UInt<2>(3)
+ wire T_166744 : UInt<2>[2]
+ T_166744[0] := UInt<2>(2)
+ T_166744[1] := UInt<2>(3)
+ wire T_166745 : UInt<2>[1]
+ T_166745[0] := UInt<2>(3)
+ wire T_166746 : UInt<3>[3]
+ T_166746[0] := UInt<3>(0)
+ T_166746[1] := UInt<3>(1)
+ T_166746[2] := UInt<3>(2)
+ wire T_166747 : UInt<2>[2]
+ T_166747[0] := UInt<2>(0)
+ T_166747[1] := UInt<2>(1)
+ wire T_166748 : UInt<2>[3]
+ T_166748[0] := UInt<2>(1)
+ T_166748[1] := UInt<2>(2)
+ T_166748[2] := UInt<2>(3)
+ wire T_166749 : UInt<2>[2]
+ T_166749[0] := UInt<2>(2)
+ T_166749[1] := UInt<2>(3)
+ wire T_166750 : UInt<2>[1]
+ T_166750[0] := UInt<2>(3)
+ wire T_166751 : UInt<3>[3]
+ T_166751[0] := UInt<3>(0)
+ T_166751[1] := UInt<3>(1)
+ T_166751[2] := UInt<3>(2)
+ wire T_166752 : UInt<2>[2]
+ T_166752[0] := UInt<2>(0)
+ T_166752[1] := UInt<2>(1)
+ wire T_166753 : UInt<2>[3]
+ T_166753[0] := UInt<2>(1)
+ T_166753[1] := UInt<2>(2)
+ T_166753[2] := UInt<2>(3)
+ wire T_166754 : UInt<2>[2]
+ T_166754[0] := UInt<2>(2)
+ T_166754[1] := UInt<2>(3)
+ wire T_166755 : UInt<2>[1]
+ T_166755[0] := UInt<2>(3)
+ wire T_166756 : UInt<3>[3]
+ T_166756[0] := UInt<3>(0)
+ T_166756[1] := UInt<3>(1)
+ T_166756[2] := UInt<3>(2)
+ wire T_166757 : UInt<2>[2]
+ T_166757[0] := UInt<2>(0)
+ T_166757[1] := UInt<2>(1)
+ wire T_166758 : UInt<2>[3]
+ T_166758[0] := UInt<2>(1)
+ T_166758[1] := UInt<2>(2)
+ T_166758[2] := UInt<2>(3)
+ wire T_166759 : UInt<2>[2]
+ T_166759[0] := UInt<2>(2)
+ T_166759[1] := UInt<2>(3)
+ wire T_166760 : UInt<2>[1]
+ T_166760[0] := UInt<2>(3)
+ wire T_166761 : UInt<3>[3]
+ T_166761[0] := UInt<3>(0)
+ T_166761[1] := UInt<3>(1)
+ T_166761[2] := UInt<3>(2)
+ wire T_166762 : UInt<2>[2]
+ T_166762[0] := UInt<2>(0)
+ T_166762[1] := UInt<2>(1)
+ wire T_166763 : UInt<2>[3]
+ T_166763[0] := UInt<2>(1)
+ T_166763[1] := UInt<2>(2)
+ T_166763[2] := UInt<2>(3)
+ wire T_166764 : UInt<2>[2]
+ T_166764[0] := UInt<2>(2)
+ T_166764[1] := UInt<2>(3)
+ wire T_166765 : UInt<2>[1]
+ T_166765[0] := UInt<2>(3)
+ wire T_166766 : UInt<3>[3]
+ T_166766[0] := UInt<3>(0)
+ T_166766[1] := UInt<3>(1)
+ T_166766[2] := UInt<3>(2)
+ wire T_166767 : UInt<2>[2]
+ T_166767[0] := UInt<2>(0)
+ T_166767[1] := UInt<2>(1)
+ wire T_166768 : UInt<2>[3]
+ T_166768[0] := UInt<2>(1)
+ T_166768[1] := UInt<2>(2)
+ T_166768[2] := UInt<2>(3)
+ wire T_166769 : UInt<2>[2]
+ T_166769[0] := UInt<2>(2)
+ T_166769[1] := UInt<2>(3)
+ wire T_166770 : UInt<2>[1]
+ T_166770[0] := UInt<2>(3)
+ wire T_166771 : UInt<3>[3]
+ T_166771[0] := UInt<3>(0)
+ T_166771[1] := UInt<3>(1)
+ T_166771[2] := UInt<3>(2)
+ wire T_166772 : UInt<2>[2]
+ T_166772[0] := UInt<2>(0)
+ T_166772[1] := UInt<2>(1)
+ wire T_166773 : UInt<2>[3]
+ T_166773[0] := UInt<2>(1)
+ T_166773[1] := UInt<2>(2)
+ T_166773[2] := UInt<2>(3)
+ wire T_166774 : UInt<2>[2]
+ T_166774[0] := UInt<2>(2)
+ T_166774[1] := UInt<2>(3)
+ wire T_166775 : UInt<2>[1]
+ T_166775[0] := UInt<2>(3)
+ wire T_166776 : UInt<3>[3]
+ T_166776[0] := UInt<3>(0)
+ T_166776[1] := UInt<3>(1)
+ T_166776[2] := UInt<3>(2)
+ wire T_166777 : UInt<2>[2]
+ T_166777[0] := UInt<2>(0)
+ T_166777[1] := UInt<2>(1)
+ wire T_166778 : UInt<2>[3]
+ T_166778[0] := UInt<2>(1)
+ T_166778[1] := UInt<2>(2)
+ T_166778[2] := UInt<2>(3)
+ wire T_166779 : UInt<2>[2]
+ T_166779[0] := UInt<2>(2)
+ T_166779[1] := UInt<2>(3)
+ wire T_166780 : UInt<2>[1]
+ T_166780[0] := UInt<2>(3)
+ wire T_166781 : UInt<3>[3]
+ T_166781[0] := UInt<3>(0)
+ T_166781[1] := UInt<3>(1)
+ T_166781[2] := UInt<3>(2)
+ wire T_166782 : UInt<2>[2]
+ T_166782[0] := UInt<2>(0)
+ T_166782[1] := UInt<2>(1)
+ wire T_166783 : UInt<2>[3]
+ T_166783[0] := UInt<2>(1)
+ T_166783[1] := UInt<2>(2)
+ T_166783[2] := UInt<2>(3)
+ wire T_166784 : UInt<2>[2]
+ T_166784[0] := UInt<2>(2)
+ T_166784[1] := UInt<2>(3)
+ wire T_166785 : UInt<2>[1]
+ T_166785[0] := UInt<2>(3)
+ wire T_166786 : UInt<3>[3]
+ T_166786[0] := UInt<3>(0)
+ T_166786[1] := UInt<3>(1)
+ T_166786[2] := UInt<3>(2)
+ wire T_166787 : UInt<2>[2]
+ T_166787[0] := UInt<2>(0)
+ T_166787[1] := UInt<2>(1)
+ wire T_166788 : UInt<2>[3]
+ T_166788[0] := UInt<2>(1)
+ T_166788[1] := UInt<2>(2)
+ T_166788[2] := UInt<2>(3)
+ wire T_166789 : UInt<2>[2]
+ T_166789[0] := UInt<2>(2)
+ T_166789[1] := UInt<2>(3)
+ wire T_166790 : UInt<2>[1]
+ T_166790[0] := UInt<2>(3)
+ wire T_166791 : UInt<3>[3]
+ T_166791[0] := UInt<3>(0)
+ T_166791[1] := UInt<3>(1)
+ T_166791[2] := UInt<3>(2)
+ wire T_166792 : UInt<2>[2]
+ T_166792[0] := UInt<2>(0)
+ T_166792[1] := UInt<2>(1)
+ wire T_166793 : UInt<2>[3]
+ T_166793[0] := UInt<2>(1)
+ T_166793[1] := UInt<2>(2)
+ T_166793[2] := UInt<2>(3)
+ wire T_166794 : UInt<2>[2]
+ T_166794[0] := UInt<2>(2)
+ T_166794[1] := UInt<2>(3)
+ wire T_166795 : UInt<2>[1]
+ T_166795[0] := UInt<2>(3)
+ wire T_166796 : UInt<3>[3]
+ T_166796[0] := UInt<3>(0)
+ T_166796[1] := UInt<3>(1)
+ T_166796[2] := UInt<3>(2)
+ wire T_166797 : UInt<2>[2]
+ T_166797[0] := UInt<2>(0)
+ T_166797[1] := UInt<2>(1)
+ wire T_166798 : UInt<2>[3]
+ T_166798[0] := UInt<2>(1)
+ T_166798[1] := UInt<2>(2)
+ T_166798[2] := UInt<2>(3)
+ wire T_166799 : UInt<2>[2]
+ T_166799[0] := UInt<2>(2)
+ T_166799[1] := UInt<2>(3)
+ wire T_166800 : UInt<2>[1]
+ T_166800[0] := UInt<2>(3)
+ wire T_166801 : UInt<3>[3]
+ T_166801[0] := UInt<3>(0)
+ T_166801[1] := UInt<3>(1)
+ T_166801[2] := UInt<3>(2)
+ wire T_166802 : UInt<2>[2]
+ T_166802[0] := UInt<2>(0)
+ T_166802[1] := UInt<2>(1)
+ wire T_166803 : UInt<2>[3]
+ T_166803[0] := UInt<2>(1)
+ T_166803[1] := UInt<2>(2)
+ T_166803[2] := UInt<2>(3)
+ wire T_166804 : UInt<2>[2]
+ T_166804[0] := UInt<2>(2)
+ T_166804[1] := UInt<2>(3)
+ wire T_166805 : UInt<2>[1]
+ T_166805[0] := UInt<2>(3)
+ wire T_166806 : UInt<3>[3]
+ T_166806[0] := UInt<3>(0)
+ T_166806[1] := UInt<3>(1)
+ T_166806[2] := UInt<3>(2)
+ wire T_166807 : UInt<2>[2]
+ T_166807[0] := UInt<2>(0)
+ T_166807[1] := UInt<2>(1)
+ wire T_166808 : UInt<2>[3]
+ T_166808[0] := UInt<2>(1)
+ T_166808[1] := UInt<2>(2)
+ T_166808[2] := UInt<2>(3)
+ wire T_166809 : UInt<2>[2]
+ T_166809[0] := UInt<2>(2)
+ T_166809[1] := UInt<2>(3)
+ wire T_166810 : UInt<2>[1]
+ T_166810[0] := UInt<2>(3)
+ wire T_166811 : UInt<3>[3]
+ T_166811[0] := UInt<3>(0)
+ T_166811[1] := UInt<3>(1)
+ T_166811[2] := UInt<3>(2)
+ wire T_166812 : UInt<2>[2]
+ T_166812[0] := UInt<2>(0)
+ T_166812[1] := UInt<2>(1)
+ wire T_166813 : UInt<2>[3]
+ T_166813[0] := UInt<2>(1)
+ T_166813[1] := UInt<2>(2)
+ T_166813[2] := UInt<2>(3)
+ wire T_166814 : UInt<2>[2]
+ T_166814[0] := UInt<2>(2)
+ T_166814[1] := UInt<2>(3)
+ wire T_166815 : UInt<2>[1]
+ T_166815[0] := UInt<2>(3)
+ wire T_166816 : UInt<3>[3]
+ T_166816[0] := UInt<3>(0)
+ T_166816[1] := UInt<3>(1)
+ T_166816[2] := UInt<3>(2)
+ wire T_166817 : UInt<2>[2]
+ T_166817[0] := UInt<2>(0)
+ T_166817[1] := UInt<2>(1)
+ wire T_166818 : UInt<2>[3]
+ T_166818[0] := UInt<2>(1)
+ T_166818[1] := UInt<2>(2)
+ T_166818[2] := UInt<2>(3)
+ wire T_166819 : UInt<2>[2]
+ T_166819[0] := UInt<2>(2)
+ T_166819[1] := UInt<2>(3)
+ wire T_166820 : UInt<2>[1]
+ T_166820[0] := UInt<2>(3)
+ wire T_166821 : UInt<3>[3]
+ T_166821[0] := UInt<3>(0)
+ T_166821[1] := UInt<3>(1)
+ T_166821[2] := UInt<3>(2)
+ wire T_166822 : UInt<2>[2]
+ T_166822[0] := UInt<2>(0)
+ T_166822[1] := UInt<2>(1)
+ wire T_166823 : UInt<2>[3]
+ T_166823[0] := UInt<2>(1)
+ T_166823[1] := UInt<2>(2)
+ T_166823[2] := UInt<2>(3)
+ wire T_166824 : UInt<2>[2]
+ T_166824[0] := UInt<2>(2)
+ T_166824[1] := UInt<2>(3)
+ wire T_166825 : UInt<2>[1]
+ T_166825[0] := UInt<2>(3)
+ inst T_166826 of Queue
+ T_166826.enq.valid := client.acquire.valid
+ T_166826.enq.bits := client.acquire.bits
+ client.acquire.ready := T_166826.enq.ready
+ manager.acquire <> T_166826.deq
+ wire T_166827 : UInt<3>[3]
+ T_166827[0] := UInt<3>(0)
+ T_166827[1] := UInt<3>(1)
+ T_166827[2] := UInt<3>(2)
+ wire T_166828 : UInt<2>[2]
+ T_166828[0] := UInt<2>(0)
+ T_166828[1] := UInt<2>(1)
+ wire T_166829 : UInt<2>[3]
+ T_166829[0] := UInt<2>(1)
+ T_166829[1] := UInt<2>(2)
+ T_166829[2] := UInt<2>(3)
+ wire T_166830 : UInt<2>[2]
+ T_166830[0] := UInt<2>(2)
+ T_166830[1] := UInt<2>(3)
+ wire T_166831 : UInt<2>[1]
+ T_166831[0] := UInt<2>(3)
+ inst T_166832 of Queue_20089
+ T_166832.enq.valid := manager.probe.valid
+ T_166832.enq.bits := manager.probe.bits
+ manager.probe.ready := T_166832.enq.ready
+ client.probe <> T_166832.deq
+ wire T_166833 : UInt<3>[3]
+ T_166833[0] := UInt<3>(0)
+ T_166833[1] := UInt<3>(1)
+ T_166833[2] := UInt<3>(2)
+ wire T_166834 : UInt<2>[2]
+ T_166834[0] := UInt<2>(0)
+ T_166834[1] := UInt<2>(1)
+ wire T_166835 : UInt<2>[3]
+ T_166835[0] := UInt<2>(1)
+ T_166835[1] := UInt<2>(2)
+ T_166835[2] := UInt<2>(3)
+ wire T_166836 : UInt<2>[2]
+ T_166836[0] := UInt<2>(2)
+ T_166836[1] := UInt<2>(3)
+ wire T_166837 : UInt<2>[1]
+ T_166837[0] := UInt<2>(3)
+ inst T_166838 of Queue_20764
+ T_166838.enq.valid := client.release.valid
+ T_166838.enq.bits := client.release.bits
+ client.release.ready := T_166838.enq.ready
+ manager.release <> T_166838.deq
+ wire T_166839 : UInt<3>[3]
+ T_166839[0] := UInt<3>(0)
+ T_166839[1] := UInt<3>(1)
+ T_166839[2] := UInt<3>(2)
+ wire T_166840 : UInt<2>[2]
+ T_166840[0] := UInt<2>(0)
+ T_166840[1] := UInt<2>(1)
+ wire T_166841 : UInt<2>[3]
+ T_166841[0] := UInt<2>(1)
+ T_166841[1] := UInt<2>(2)
+ T_166841[2] := UInt<2>(3)
+ wire T_166842 : UInt<2>[2]
+ T_166842[0] := UInt<2>(2)
+ T_166842[1] := UInt<2>(3)
+ wire T_166843 : UInt<2>[1]
+ T_166843[0] := UInt<2>(3)
+ inst T_166844 of Queue_21439
+ T_166844.enq.valid := manager.grant.valid
+ T_166844.enq.bits := manager.grant.bits
+ manager.grant.ready := T_166844.enq.ready
+ client.grant <> T_166844.deq
+ wire T_166845 : UInt<3>[3]
+ T_166845[0] := UInt<3>(0)
+ T_166845[1] := UInt<3>(1)
+ T_166845[2] := UInt<3>(2)
+ wire T_166846 : UInt<2>[2]
+ T_166846[0] := UInt<2>(0)
+ T_166846[1] := UInt<2>(1)
+ wire T_166847 : UInt<2>[3]
+ T_166847[0] := UInt<2>(1)
+ T_166847[1] := UInt<2>(2)
+ T_166847[2] := UInt<2>(3)
+ wire T_166848 : UInt<2>[2]
+ T_166848[0] := UInt<2>(2)
+ T_166848[1] := UInt<2>(3)
+ wire T_166849 : UInt<2>[1]
+ T_166849[0] := UInt<2>(3)
+ inst T_166850 of Queue_22069
+ T_166850.enq.valid := client.finish.valid
+ T_166850.enq.bits := client.finish.bits
+ client.finish.ready := T_166850.enq.ready
+ manager.finish <> T_166850.deq
+ module FinishQueue_25492 :
+ input enq : {flip ready : UInt<1>, valid : UInt<1>, bits : {fin : {manager_xact_id : UInt<2>}, dst : UInt<2>}}
+ output deq : {flip ready : UInt<1>, valid : UInt<1>, bits : {fin : {manager_xact_id : UInt<2>}, dst : UInt<2>}}
+ output count : UInt<2>
+
+ wire T_166851 : UInt<3>[3]
+ T_166851[0] := UInt<3>(0)
+ T_166851[1] := UInt<3>(1)
+ T_166851[2] := UInt<3>(2)
+ wire T_166852 : UInt<2>[2]
+ T_166852[0] := UInt<2>(0)
+ T_166852[1] := UInt<2>(1)
+ wire T_166853 : UInt<2>[3]
+ T_166853[0] := UInt<2>(1)
+ T_166853[1] := UInt<2>(2)
+ T_166853[2] := UInt<2>(3)
+ wire T_166854 : UInt<2>[2]
+ T_166854[0] := UInt<2>(2)
+ T_166854[1] := UInt<2>(3)
+ wire T_166855 : UInt<2>[1]
+ T_166855[0] := UInt<2>(3)
+ wire T_166856 : UInt<3>[3]
+ T_166856[0] := UInt<3>(0)
+ T_166856[1] := UInt<3>(1)
+ T_166856[2] := UInt<3>(2)
+ wire T_166857 : UInt<2>[2]
+ T_166857[0] := UInt<2>(0)
+ T_166857[1] := UInt<2>(1)
+ wire T_166858 : UInt<2>[3]
+ T_166858[0] := UInt<2>(1)
+ T_166858[1] := UInt<2>(2)
+ T_166858[2] := UInt<2>(3)
+ wire T_166859 : UInt<2>[2]
+ T_166859[0] := UInt<2>(2)
+ T_166859[1] := UInt<2>(3)
+ wire T_166860 : UInt<2>[1]
+ T_166860[0] := UInt<2>(3)
+ wire T_166861 : UInt<3>[3]
+ T_166861[0] := UInt<3>(0)
+ T_166861[1] := UInt<3>(1)
+ T_166861[2] := UInt<3>(2)
+ wire T_166862 : UInt<2>[2]
+ T_166862[0] := UInt<2>(0)
+ T_166862[1] := UInt<2>(1)
+ wire T_166863 : UInt<2>[3]
+ T_166863[0] := UInt<2>(1)
+ T_166863[1] := UInt<2>(2)
+ T_166863[2] := UInt<2>(3)
+ wire T_166864 : UInt<2>[2]
+ T_166864[0] := UInt<2>(2)
+ T_166864[1] := UInt<2>(3)
+ wire T_166865 : UInt<2>[1]
+ T_166865[0] := UInt<2>(3)
+ wire T_166866 : UInt<3>[3]
+ T_166866[0] := UInt<3>(0)
+ T_166866[1] := UInt<3>(1)
+ T_166866[2] := UInt<3>(2)
+ wire T_166867 : UInt<2>[2]
+ T_166867[0] := UInt<2>(0)
+ T_166867[1] := UInt<2>(1)
+ wire T_166868 : UInt<2>[3]
+ T_166868[0] := UInt<2>(1)
+ T_166868[1] := UInt<2>(2)
+ T_166868[2] := UInt<2>(3)
+ wire T_166869 : UInt<2>[2]
+ T_166869[0] := UInt<2>(2)
+ T_166869[1] := UInt<2>(3)
+ wire T_166870 : UInt<2>[1]
+ T_166870[0] := UInt<2>(3)
+ wire T_166871 : UInt<3>[3]
+ T_166871[0] := UInt<3>(0)
+ T_166871[1] := UInt<3>(1)
+ T_166871[2] := UInt<3>(2)
+ wire T_166872 : UInt<2>[2]
+ T_166872[0] := UInt<2>(0)
+ T_166872[1] := UInt<2>(1)
+ wire T_166873 : UInt<2>[3]
+ T_166873[0] := UInt<2>(1)
+ T_166873[1] := UInt<2>(2)
+ T_166873[2] := UInt<2>(3)
+ wire T_166874 : UInt<2>[2]
+ T_166874[0] := UInt<2>(2)
+ T_166874[1] := UInt<2>(3)
+ wire T_166875 : UInt<2>[1]
+ T_166875[0] := UInt<2>(3)
+ wire T_166876 : UInt<3>[3]
+ T_166876[0] := UInt<3>(0)
+ T_166876[1] := UInt<3>(1)
+ T_166876[2] := UInt<3>(2)
+ wire T_166877 : UInt<2>[2]
+ T_166877[0] := UInt<2>(0)
+ T_166877[1] := UInt<2>(1)
+ wire T_166878 : UInt<2>[3]
+ T_166878[0] := UInt<2>(1)
+ T_166878[1] := UInt<2>(2)
+ T_166878[2] := UInt<2>(3)
+ wire T_166879 : UInt<2>[2]
+ T_166879[0] := UInt<2>(2)
+ T_166879[1] := UInt<2>(3)
+ wire T_166880 : UInt<2>[1]
+ T_166880[0] := UInt<2>(3)
+ wire T_166881 : UInt<3>[3]
+ T_166881[0] := UInt<3>(0)
+ T_166881[1] := UInt<3>(1)
+ T_166881[2] := UInt<3>(2)
+ wire T_166882 : UInt<2>[2]
+ T_166882[0] := UInt<2>(0)
+ T_166882[1] := UInt<2>(1)
+ wire T_166883 : UInt<2>[3]
+ T_166883[0] := UInt<2>(1)
+ T_166883[1] := UInt<2>(2)
+ T_166883[2] := UInt<2>(3)
+ wire T_166884 : UInt<2>[2]
+ T_166884[0] := UInt<2>(2)
+ T_166884[1] := UInt<2>(3)
+ wire T_166885 : UInt<2>[1]
+ T_166885[0] := UInt<2>(3)
+ wire T_166886 : UInt<3>[3]
+ T_166886[0] := UInt<3>(0)
+ T_166886[1] := UInt<3>(1)
+ T_166886[2] := UInt<3>(2)
+ wire T_166887 : UInt<2>[2]
+ T_166887[0] := UInt<2>(0)
+ T_166887[1] := UInt<2>(1)
+ wire T_166888 : UInt<2>[3]
+ T_166888[0] := UInt<2>(1)
+ T_166888[1] := UInt<2>(2)
+ T_166888[2] := UInt<2>(3)
+ wire T_166889 : UInt<2>[2]
+ T_166889[0] := UInt<2>(2)
+ T_166889[1] := UInt<2>(3)
+ wire T_166890 : UInt<2>[1]
+ T_166890[0] := UInt<2>(3)
+ wire T_166891 : UInt<3>[3]
+ T_166891[0] := UInt<3>(0)
+ T_166891[1] := UInt<3>(1)
+ T_166891[2] := UInt<3>(2)
+ wire T_166892 : UInt<2>[2]
+ T_166892[0] := UInt<2>(0)
+ T_166892[1] := UInt<2>(1)
+ wire T_166893 : UInt<2>[3]
+ T_166893[0] := UInt<2>(1)
+ T_166893[1] := UInt<2>(2)
+ T_166893[2] := UInt<2>(3)
+ wire T_166894 : UInt<2>[2]
+ T_166894[0] := UInt<2>(2)
+ T_166894[1] := UInt<2>(3)
+ wire T_166895 : UInt<2>[1]
+ T_166895[0] := UInt<2>(3)
+ wire T_166896 : UInt<3>[3]
+ T_166896[0] := UInt<3>(0)
+ T_166896[1] := UInt<3>(1)
+ T_166896[2] := UInt<3>(2)
+ wire T_166897 : UInt<2>[2]
+ T_166897[0] := UInt<2>(0)
+ T_166897[1] := UInt<2>(1)
+ wire T_166898 : UInt<2>[3]
+ T_166898[0] := UInt<2>(1)
+ T_166898[1] := UInt<2>(2)
+ T_166898[2] := UInt<2>(3)
+ wire T_166899 : UInt<2>[2]
+ T_166899[0] := UInt<2>(2)
+ T_166899[1] := UInt<2>(3)
+ wire T_166900 : UInt<2>[1]
+ T_166900[0] := UInt<2>(3)
+ cmem T_166901 : {fin : {manager_xact_id : UInt<2>}, dst : UInt<2>}[2]
+ reg T_166902 : UInt<1>
+ onreset T_166902 := UInt<1>(0)
+ reg T_166903 : UInt<1>
+ onreset T_166903 := UInt<1>(0)
+ reg T_166904 : UInt<1>
+ onreset T_166904 := UInt<1>(0)
+ node T_166905 = eq(T_166902, T_166903)
+ node T_166906 = eq(T_166904, UInt<1>(0))
+ node T_166907 = and(T_166905, T_166906)
+ node T_166908 = and(T_166905, T_166904)
+ node T_166909 = and(UInt<1>(0), T_166907)
+ node T_166910 = and(T_166909, deq.ready)
+ node T_166911 = and(enq.ready, enq.valid)
+ node T_166912 = eq(T_166910, UInt<1>(0))
+ node T_166913 = and(T_166911, T_166912)
+ node T_166914 = and(deq.ready, deq.valid)
+ node T_166915 = eq(T_166910, UInt<1>(0))
+ node T_166916 = and(T_166914, T_166915)
+ when T_166913 :
+ wire T_166917 : UInt<3>[3]
+ T_166917[0] := UInt<3>(0)
+ T_166917[1] := UInt<3>(1)
+ T_166917[2] := UInt<3>(2)
+ wire T_166918 : UInt<2>[2]
+ T_166918[0] := UInt<2>(0)
+ T_166918[1] := UInt<2>(1)
+ wire T_166919 : UInt<2>[3]
+ T_166919[0] := UInt<2>(1)
+ T_166919[1] := UInt<2>(2)
+ T_166919[2] := UInt<2>(3)
+ wire T_166920 : UInt<2>[2]
+ T_166920[0] := UInt<2>(2)
+ T_166920[1] := UInt<2>(3)
+ wire T_166921 : UInt<2>[1]
+ T_166921[0] := UInt<2>(3)
+ wire T_166922 : UInt<3>[3]
+ T_166922[0] := UInt<3>(0)
+ T_166922[1] := UInt<3>(1)
+ T_166922[2] := UInt<3>(2)
+ wire T_166923 : UInt<2>[2]
+ T_166923[0] := UInt<2>(0)
+ T_166923[1] := UInt<2>(1)
+ wire T_166924 : UInt<2>[3]
+ T_166924[0] := UInt<2>(1)
+ T_166924[1] := UInt<2>(2)
+ T_166924[2] := UInt<2>(3)
+ wire T_166925 : UInt<2>[2]
+ T_166925[0] := UInt<2>(2)
+ T_166925[1] := UInt<2>(3)
+ wire T_166926 : UInt<2>[1]
+ T_166926[0] := UInt<2>(3)
+ accessor T_166927 = T_166901[T_166902]
+ T_166927 := enq.bits
+ node T_166928 = eq(T_166902, UInt<1>(1))
+ node T_166929 = and(UInt<1>(0), T_166928)
+ node T_166930 = addw(T_166902, UInt<1>(1))
+ wire T_166931 : UInt<1>
+ T_166931 := T_166930
+ when T_166929 : T_166931 := UInt<1>(0)
+ T_166902 := T_166931
+ when T_166916 :
+ node T_166932 = eq(T_166903, UInt<1>(1))
+ node T_166933 = and(UInt<1>(0), T_166932)
+ node T_166934 = addw(T_166903, UInt<1>(1))
+ wire T_166935 : UInt<1>
+ T_166935 := T_166934
+ when T_166933 : T_166935 := UInt<1>(0)
+ T_166903 := T_166935
+
+ node T_166936 = neq(T_166913, T_166916)
+ when T_166936 : T_166904 := T_166913
+ node T_166937 = eq(T_166907, UInt<1>(0))
+ node T_166938 = and(UInt<1>(0), enq.valid)
+ node T_166939 = or(T_166937, T_166938)
+ deq.valid := T_166939
+ node T_166940 = eq(T_166908, UInt<1>(0))
+ node T_166941 = and(UInt<1>(0), deq.ready)
+ node T_166942 = or(T_166940, T_166941)
+ enq.ready := T_166942
+ wire T_166943 : UInt<3>[3]
+ T_166943[0] := UInt<3>(0)
+ T_166943[1] := UInt<3>(1)
+ T_166943[2] := UInt<3>(2)
+ wire T_166944 : UInt<2>[2]
+ T_166944[0] := UInt<2>(0)
+ T_166944[1] := UInt<2>(1)
+ wire T_166945 : UInt<2>[3]
+ T_166945[0] := UInt<2>(1)
+ T_166945[1] := UInt<2>(2)
+ T_166945[2] := UInt<2>(3)
+ wire T_166946 : UInt<2>[2]
+ T_166946[0] := UInt<2>(2)
+ T_166946[1] := UInt<2>(3)
+ wire T_166947 : UInt<2>[1]
+ T_166947[0] := UInt<2>(3)
+ wire T_166948 : UInt<3>[3]
+ T_166948[0] := UInt<3>(0)
+ T_166948[1] := UInt<3>(1)
+ T_166948[2] := UInt<3>(2)
+ wire T_166949 : UInt<2>[2]
+ T_166949[0] := UInt<2>(0)
+ T_166949[1] := UInt<2>(1)
+ wire T_166950 : UInt<2>[3]
+ T_166950[0] := UInt<2>(1)
+ T_166950[1] := UInt<2>(2)
+ T_166950[2] := UInt<2>(3)
+ wire T_166951 : UInt<2>[2]
+ T_166951[0] := UInt<2>(2)
+ T_166951[1] := UInt<2>(3)
+ wire T_166952 : UInt<2>[1]
+ T_166952[0] := UInt<2>(3)
+ accessor T_166953 = T_166901[T_166903]
+ wire T_166954 : UInt<3>[3]
+ T_166954[0] := UInt<3>(0)
+ T_166954[1] := UInt<3>(1)
+ T_166954[2] := UInt<3>(2)
+ wire T_166955 : UInt<2>[2]
+ T_166955[0] := UInt<2>(0)
+ T_166955[1] := UInt<2>(1)
+ wire T_166956 : UInt<2>[3]
+ T_166956[0] := UInt<2>(1)
+ T_166956[1] := UInt<2>(2)
+ T_166956[2] := UInt<2>(3)
+ wire T_166957 : UInt<2>[2]
+ T_166957[0] := UInt<2>(2)
+ T_166957[1] := UInt<2>(3)
+ wire T_166958 : UInt<2>[1]
+ T_166958[0] := UInt<2>(3)
+ wire T_166959 : UInt<3>[3]
+ T_166959[0] := UInt<3>(0)
+ T_166959[1] := UInt<3>(1)
+ T_166959[2] := UInt<3>(2)
+ wire T_166960 : UInt<2>[2]
+ T_166960[0] := UInt<2>(0)
+ T_166960[1] := UInt<2>(1)
+ wire T_166961 : UInt<2>[3]
+ T_166961[0] := UInt<2>(1)
+ T_166961[1] := UInt<2>(2)
+ T_166961[2] := UInt<2>(3)
+ wire T_166962 : UInt<2>[2]
+ T_166962[0] := UInt<2>(2)
+ T_166962[1] := UInt<2>(3)
+ wire T_166963 : UInt<2>[1]
+ T_166963[0] := UInt<2>(3)
+ wire T_166964 : {fin : {manager_xact_id : UInt<2>}, dst : UInt<2>}
+ T_166964 := T_166953
+ when T_166909 : T_166964 := enq.bits
+ deq.bits := T_166964
+ node T_166965 = subw(T_166902, T_166903)
+ node T_166966 = and(T_166904, T_166905)
+ node T_166967 = cat(T_166966, T_166965)
+ count := T_166967
+ module FinishUnit_25654 :
+ input grant : {flip ready : UInt<1>, valid : UInt<1>, bits : {header : {src : UInt<2>, dst : UInt<2>}, payload : {addr_beat : UInt<2>, data : UInt<128>, client_xact_id : UInt<1>, manager_xact_id : UInt<2>, is_builtin_type : UInt<1>, g_type : UInt<4>}}}
+ output refill : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_beat : UInt<2>, data : UInt<128>, client_xact_id : UInt<1>, manager_xact_id : UInt<2>, is_builtin_type : UInt<1>, g_type : UInt<4>}}
+ output finish : {flip ready : UInt<1>, valid : UInt<1>, bits : {header : {src : UInt<2>, dst : UInt<2>}, payload : {manager_xact_id : UInt<2>}}}
+ output ready : UInt<1>
+
+ wire T_166968 : UInt<3>[3]
+ T_166968[0] := UInt<3>(0)
+ T_166968[1] := UInt<3>(1)
+ T_166968[2] := UInt<3>(2)
+ wire T_166969 : UInt<2>[2]
+ T_166969[0] := UInt<2>(0)
+ T_166969[1] := UInt<2>(1)
+ wire T_166970 : UInt<2>[3]
+ T_166970[0] := UInt<2>(1)
+ T_166970[1] := UInt<2>(2)
+ T_166970[2] := UInt<2>(3)
+ wire T_166971 : UInt<2>[2]
+ T_166971[0] := UInt<2>(2)
+ T_166971[1] := UInt<2>(3)
+ wire T_166972 : UInt<2>[1]
+ T_166972[0] := UInt<2>(3)
+ wire T_166973 : UInt<3>[3]
+ T_166973[0] := UInt<3>(0)
+ T_166973[1] := UInt<3>(1)
+ T_166973[2] := UInt<3>(2)
+ wire T_166974 : UInt<2>[2]
+ T_166974[0] := UInt<2>(0)
+ T_166974[1] := UInt<2>(1)
+ wire T_166975 : UInt<2>[3]
+ T_166975[0] := UInt<2>(1)
+ T_166975[1] := UInt<2>(2)
+ T_166975[2] := UInt<2>(3)
+ wire T_166976 : UInt<2>[2]
+ T_166976[0] := UInt<2>(2)
+ T_166976[1] := UInt<2>(3)
+ wire T_166977 : UInt<2>[1]
+ T_166977[0] := UInt<2>(3)
+ wire T_166978 : UInt<3>[3]
+ T_166978[0] := UInt<3>(0)
+ T_166978[1] := UInt<3>(1)
+ T_166978[2] := UInt<3>(2)
+ wire T_166979 : UInt<2>[2]
+ T_166979[0] := UInt<2>(0)
+ T_166979[1] := UInt<2>(1)
+ wire T_166980 : UInt<2>[3]
+ T_166980[0] := UInt<2>(1)
+ T_166980[1] := UInt<2>(2)
+ T_166980[2] := UInt<2>(3)
+ wire T_166981 : UInt<2>[2]
+ T_166981[0] := UInt<2>(2)
+ T_166981[1] := UInt<2>(3)
+ wire T_166982 : UInt<2>[1]
+ T_166982[0] := UInt<2>(3)
+ wire T_166983 : UInt<3>[3]
+ T_166983[0] := UInt<3>(0)
+ T_166983[1] := UInt<3>(1)
+ T_166983[2] := UInt<3>(2)
+ wire T_166984 : UInt<2>[2]
+ T_166984[0] := UInt<2>(0)
+ T_166984[1] := UInt<2>(1)
+ wire T_166985 : UInt<2>[3]
+ T_166985[0] := UInt<2>(1)
+ T_166985[1] := UInt<2>(2)
+ T_166985[2] := UInt<2>(3)
+ wire T_166986 : UInt<2>[2]
+ T_166986[0] := UInt<2>(2)
+ T_166986[1] := UInt<2>(3)
+ wire T_166987 : UInt<2>[1]
+ T_166987[0] := UInt<2>(3)
+ wire T_166988 : UInt<3>[3]
+ T_166988[0] := UInt<3>(0)
+ T_166988[1] := UInt<3>(1)
+ T_166988[2] := UInt<3>(2)
+ wire T_166989 : UInt<2>[2]
+ T_166989[0] := UInt<2>(0)
+ T_166989[1] := UInt<2>(1)
+ wire T_166990 : UInt<2>[3]
+ T_166990[0] := UInt<2>(1)
+ T_166990[1] := UInt<2>(2)
+ T_166990[2] := UInt<2>(3)
+ wire T_166991 : UInt<2>[2]
+ T_166991[0] := UInt<2>(2)
+ T_166991[1] := UInt<2>(3)
+ wire T_166992 : UInt<2>[1]
+ T_166992[0] := UInt<2>(3)
+ wire T_166993 : UInt<3>[3]
+ T_166993[0] := UInt<3>(0)
+ T_166993[1] := UInt<3>(1)
+ T_166993[2] := UInt<3>(2)
+ wire T_166994 : UInt<2>[2]
+ T_166994[0] := UInt<2>(0)
+ T_166994[1] := UInt<2>(1)
+ wire T_166995 : UInt<2>[3]
+ T_166995[0] := UInt<2>(1)
+ T_166995[1] := UInt<2>(2)
+ T_166995[2] := UInt<2>(3)
+ wire T_166996 : UInt<2>[2]
+ T_166996[0] := UInt<2>(2)
+ T_166996[1] := UInt<2>(3)
+ wire T_166997 : UInt<2>[1]
+ T_166997[0] := UInt<2>(3)
+ wire T_166998 : UInt<3>[3]
+ T_166998[0] := UInt<3>(0)
+ T_166998[1] := UInt<3>(1)
+ T_166998[2] := UInt<3>(2)
+ wire T_166999 : UInt<2>[2]
+ T_166999[0] := UInt<2>(0)
+ T_166999[1] := UInt<2>(1)
+ wire T_167000 : UInt<2>[3]
+ T_167000[0] := UInt<2>(1)
+ T_167000[1] := UInt<2>(2)
+ T_167000[2] := UInt<2>(3)
+ wire T_167001 : UInt<2>[2]
+ T_167001[0] := UInt<2>(2)
+ T_167001[1] := UInt<2>(3)
+ wire T_167002 : UInt<2>[1]
+ T_167002[0] := UInt<2>(3)
+ wire T_167003 : UInt<3>[3]
+ T_167003[0] := UInt<3>(0)
+ T_167003[1] := UInt<3>(1)
+ T_167003[2] := UInt<3>(2)
+ wire T_167004 : UInt<2>[2]
+ T_167004[0] := UInt<2>(0)
+ T_167004[1] := UInt<2>(1)
+ wire T_167005 : UInt<2>[3]
+ T_167005[0] := UInt<2>(1)
+ T_167005[1] := UInt<2>(2)
+ T_167005[2] := UInt<2>(3)
+ wire T_167006 : UInt<2>[2]
+ T_167006[0] := UInt<2>(2)
+ T_167006[1] := UInt<2>(3)
+ wire T_167007 : UInt<2>[1]
+ T_167007[0] := UInt<2>(3)
+ wire T_167008 : UInt<3>[3]
+ T_167008[0] := UInt<3>(0)
+ T_167008[1] := UInt<3>(1)
+ T_167008[2] := UInt<3>(2)
+ wire T_167009 : UInt<2>[2]
+ T_167009[0] := UInt<2>(0)
+ T_167009[1] := UInt<2>(1)
+ wire T_167010 : UInt<2>[3]
+ T_167010[0] := UInt<2>(1)
+ T_167010[1] := UInt<2>(2)
+ T_167010[2] := UInt<2>(3)
+ wire T_167011 : UInt<2>[2]
+ T_167011[0] := UInt<2>(2)
+ T_167011[1] := UInt<2>(3)
+ wire T_167012 : UInt<2>[1]
+ T_167012[0] := UInt<2>(3)
+ node T_167013 = and(grant.ready, grant.valid)
+ wire T_167014 : UInt<3>[1]
+ T_167014[0] := UInt<3>(5)
+ node T_167015 = eq(T_167014[0], grant.bits.payload.g_type)
+ node T_167016 = or(UInt<1>(0), T_167015)
+ node T_167017 = eq(T_166984[0], grant.bits.payload.g_type)
+ node T_167018 = eq(T_166984[1], grant.bits.payload.g_type)
+ node T_167019 = or(UInt<1>(0), T_167017)
+ node T_167020 = or(T_167019, T_167018)
+ wire T_167021 : UInt<1>
+ T_167021 := T_167020
+ when grant.bits.payload.is_builtin_type : T_167021 := T_167016
+ node T_167022 = and(UInt<1>(1), T_167021)
+ node T_167023 = and(T_167013, T_167022)
+ reg T_167024 : UInt<2>
+ onreset T_167024 := UInt<2>(0)
+ when T_167023 :
+ node T_167025 = eq(T_167024, UInt<2>(3))
+ node T_167026 = and(UInt<1>(0), T_167025)
+ node T_167027 = addw(T_167024, UInt<1>(1))
+ wire T_167028 : UInt<2>
+ T_167028 := T_167027
+ when T_167026 : T_167028 := UInt<1>(0)
+ T_167024 := T_167028
+ node T_167029 = and(T_167023, T_167025)
+ wire T_167030 : UInt<1>
+ T_167030 := UInt<1>(0)
+ when T_167022 : T_167030 := T_167024
+ wire T_167031 : UInt<1>
+ T_167031 := T_167013
+ when T_167022 : T_167031 := T_167029
+ wire T_167032 : UInt<3>[3]
+ T_167032[0] := UInt<3>(0)
+ T_167032[1] := UInt<3>(1)
+ T_167032[2] := UInt<3>(2)
+ wire T_167033 : UInt<2>[2]
+ T_167033[0] := UInt<2>(0)
+ T_167033[1] := UInt<2>(1)
+ wire T_167034 : UInt<2>[3]
+ T_167034[0] := UInt<2>(1)
+ T_167034[1] := UInt<2>(2)
+ T_167034[2] := UInt<2>(3)
+ wire T_167035 : UInt<2>[2]
+ T_167035[0] := UInt<2>(2)
+ T_167035[1] := UInt<2>(3)
+ wire T_167036 : UInt<2>[1]
+ T_167036[0] := UInt<2>(3)
+ wire T_167037 : UInt<3>[3]
+ T_167037[0] := UInt<3>(0)
+ T_167037[1] := UInt<3>(1)
+ T_167037[2] := UInt<3>(2)
+ wire T_167038 : UInt<2>[2]
+ T_167038[0] := UInt<2>(0)
+ T_167038[1] := UInt<2>(1)
+ wire T_167039 : UInt<2>[3]
+ T_167039[0] := UInt<2>(1)
+ T_167039[1] := UInt<2>(2)
+ T_167039[2] := UInt<2>(3)
+ wire T_167040 : UInt<2>[2]
+ T_167040[0] := UInt<2>(2)
+ T_167040[1] := UInt<2>(3)
+ wire T_167041 : UInt<2>[1]
+ T_167041[0] := UInt<2>(3)
+ inst T_167042 of FinishQueue_25492
+ node T_167043 = and(grant.ready, grant.valid)
+ node T_167044 = eq(UInt<1>(0), UInt<1>(0))
+ node T_167045 = eq(grant.bits.payload.g_type, UInt<3>(0))
+ node T_167046 = and(grant.bits.payload.is_builtin_type, T_167045)
+ node T_167047 = eq(T_167046, UInt<1>(0))
+ node T_167048 = and(T_167044, T_167047)
+ node T_167049 = and(T_167043, T_167048)
+ wire T_167050 : UInt<3>[1]
+ T_167050[0] := UInt<3>(5)
+ node T_167051 = eq(T_167050[0], grant.bits.payload.g_type)
+ node T_167052 = or(UInt<1>(0), T_167051)
+ node T_167053 = eq(T_166984[0], grant.bits.payload.g_type)
+ node T_167054 = eq(T_166984[1], grant.bits.payload.g_type)
+ node T_167055 = or(UInt<1>(0), T_167053)
+ node T_167056 = or(T_167055, T_167054)
+ wire T_167057 : UInt<1>
+ T_167057 := T_167056
+ when grant.bits.payload.is_builtin_type : T_167057 := T_167052
+ node T_167058 = and(UInt<1>(1), T_167057)
+ node T_167059 = eq(T_167058, UInt<1>(0))
+ node T_167060 = or(T_167059, T_167031)
+ node T_167061 = and(T_167049, T_167060)
+ T_167042.enq.valid := T_167061
+ wire T_167062 : UInt<3>[3]
+ T_167062[0] := UInt<3>(0)
+ T_167062[1] := UInt<3>(1)
+ T_167062[2] := UInt<3>(2)
+ wire T_167063 : UInt<2>[2]
+ T_167063[0] := UInt<2>(0)
+ T_167063[1] := UInt<2>(1)
+ wire T_167064 : UInt<2>[3]
+ T_167064[0] := UInt<2>(1)
+ T_167064[1] := UInt<2>(2)
+ T_167064[2] := UInt<2>(3)
+ wire T_167065 : UInt<2>[2]
+ T_167065[0] := UInt<2>(2)
+ T_167065[1] := UInt<2>(3)
+ wire T_167066 : UInt<2>[1]
+ T_167066[0] := UInt<2>(3)
+ wire T_167067 : UInt<3>[3]
+ T_167067[0] := UInt<3>(0)
+ T_167067[1] := UInt<3>(1)
+ T_167067[2] := UInt<3>(2)
+ wire T_167068 : UInt<2>[2]
+ T_167068[0] := UInt<2>(0)
+ T_167068[1] := UInt<2>(1)
+ wire T_167069 : UInt<2>[3]
+ T_167069[0] := UInt<2>(1)
+ T_167069[1] := UInt<2>(2)
+ T_167069[2] := UInt<2>(3)
+ wire T_167070 : UInt<2>[2]
+ T_167070[0] := UInt<2>(2)
+ T_167070[1] := UInt<2>(3)
+ wire T_167071 : UInt<2>[1]
+ T_167071[0] := UInt<2>(3)
+ wire T_167072 : {manager_xact_id : UInt<2>}
+ T_167072.manager_xact_id := grant.bits.payload.manager_xact_id
+ T_167042.enq.bits.fin := T_167072
+ T_167042.enq.bits.dst := grant.bits.header.src
+ finish.bits.header.src := UInt<1>(1)
+ finish.bits.header.dst := T_167042.deq.bits.dst
+ finish.bits.payload := T_167042.deq.bits.fin
+ finish.valid := T_167042.deq.valid
+ T_167042.deq.ready := finish.ready
+ refill.valid := grant.valid
+ refill.bits := grant.bits.payload
+ node T_167073 = eq(UInt<1>(0), UInt<1>(0))
+ node T_167074 = eq(grant.bits.payload.g_type, UInt<3>(0))
+ node T_167075 = and(grant.bits.payload.is_builtin_type, T_167074)
+ node T_167076 = eq(T_167075, UInt<1>(0))
+ node T_167077 = and(T_167073, T_167076)
+ node T_167078 = eq(T_167077, UInt<1>(0))
+ node T_167079 = or(T_167042.enq.ready, T_167078)
+ node T_167080 = and(T_167079, refill.ready)
+ grant.ready := T_167080
+ ready := T_167042.enq.ready
+ module ClientTileLinkNetworkPort_26210 :
+ input client : {acquire : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_block : UInt<26>, client_xact_id : UInt<1>, addr_beat : UInt<2>, data : UInt<128>, is_builtin_type : UInt<1>, a_type : UInt<3>, union : UInt<17>}}, flip grant : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_beat : UInt<2>, data : UInt<128>, client_xact_id : UInt<1>, manager_xact_id : UInt<2>, is_builtin_type : UInt<1>, g_type : UInt<4>}}, flip probe : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_block : UInt<26>, p_type : UInt<2>}}, release : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_block : UInt<26>, client_xact_id : UInt<1>, addr_beat : UInt<2>, data : UInt<128>, r_type : UInt<3>, voluntary : UInt<1>}}}
+ output network : {acquire : {flip ready : UInt<1>, valid : UInt<1>, bits : {header : {src : UInt<2>, dst : UInt<2>}, payload : {addr_block : UInt<26>, client_xact_id : UInt<1>, addr_beat : UInt<2>, data : UInt<128>, is_builtin_type : UInt<1>, a_type : UInt<3>, union : UInt<17>}}}, flip grant : {flip ready : UInt<1>, valid : UInt<1>, bits : {header : {src : UInt<2>, dst : UInt<2>}, payload : {addr_beat : UInt<2>, data : UInt<128>, client_xact_id : UInt<1>, manager_xact_id : UInt<2>, is_builtin_type : UInt<1>, g_type : UInt<4>}}}, finish : {flip ready : UInt<1>, valid : UInt<1>, bits : {header : {src : UInt<2>, dst : UInt<2>}, payload : {manager_xact_id : UInt<2>}}}, flip probe : {flip ready : UInt<1>, valid : UInt<1>, bits : {header : {src : UInt<2>, dst : UInt<2>}, payload : {addr_block : UInt<26>, p_type : UInt<2>}}}, release : {flip ready : UInt<1>, valid : UInt<1>, bits : {header : {src : UInt<2>, dst : UInt<2>}, payload : {addr_block : UInt<26>, client_xact_id : UInt<1>, addr_beat : UInt<2>, data : UInt<128>, r_type : UInt<3>, voluntary : UInt<1>}}}}
+
+ wire T_167081 : UInt<3>[3]
+ T_167081[0] := UInt<3>(0)
+ T_167081[1] := UInt<3>(1)
+ T_167081[2] := UInt<3>(2)
+ wire T_167082 : UInt<2>[2]
+ T_167082[0] := UInt<2>(0)
+ T_167082[1] := UInt<2>(1)
+ wire T_167083 : UInt<2>[3]
+ T_167083[0] := UInt<2>(1)
+ T_167083[1] := UInt<2>(2)
+ T_167083[2] := UInt<2>(3)
+ wire T_167084 : UInt<2>[2]
+ T_167084[0] := UInt<2>(2)
+ T_167084[1] := UInt<2>(3)
+ wire T_167085 : UInt<2>[1]
+ T_167085[0] := UInt<2>(3)
+ wire T_167086 : UInt<3>[3]
+ T_167086[0] := UInt<3>(0)
+ T_167086[1] := UInt<3>(1)
+ T_167086[2] := UInt<3>(2)
+ wire T_167087 : UInt<2>[2]
+ T_167087[0] := UInt<2>(0)
+ T_167087[1] := UInt<2>(1)
+ wire T_167088 : UInt<2>[3]
+ T_167088[0] := UInt<2>(1)
+ T_167088[1] := UInt<2>(2)
+ T_167088[2] := UInt<2>(3)
+ wire T_167089 : UInt<2>[2]
+ T_167089[0] := UInt<2>(2)
+ T_167089[1] := UInt<2>(3)
+ wire T_167090 : UInt<2>[1]
+ T_167090[0] := UInt<2>(3)
+ wire T_167091 : UInt<3>[3]
+ T_167091[0] := UInt<3>(0)
+ T_167091[1] := UInt<3>(1)
+ T_167091[2] := UInt<3>(2)
+ wire T_167092 : UInt<2>[2]
+ T_167092[0] := UInt<2>(0)
+ T_167092[1] := UInt<2>(1)
+ wire T_167093 : UInt<2>[3]
+ T_167093[0] := UInt<2>(1)
+ T_167093[1] := UInt<2>(2)
+ T_167093[2] := UInt<2>(3)
+ wire T_167094 : UInt<2>[2]
+ T_167094[0] := UInt<2>(2)
+ T_167094[1] := UInt<2>(3)
+ wire T_167095 : UInt<2>[1]
+ T_167095[0] := UInt<2>(3)
+ wire T_167096 : UInt<3>[3]
+ T_167096[0] := UInt<3>(0)
+ T_167096[1] := UInt<3>(1)
+ T_167096[2] := UInt<3>(2)
+ wire T_167097 : UInt<2>[2]
+ T_167097[0] := UInt<2>(0)
+ T_167097[1] := UInt<2>(1)
+ wire T_167098 : UInt<2>[3]
+ T_167098[0] := UInt<2>(1)
+ T_167098[1] := UInt<2>(2)
+ T_167098[2] := UInt<2>(3)
+ wire T_167099 : UInt<2>[2]
+ T_167099[0] := UInt<2>(2)
+ T_167099[1] := UInt<2>(3)
+ wire T_167100 : UInt<2>[1]
+ T_167100[0] := UInt<2>(3)
+ wire T_167101 : UInt<3>[3]
+ T_167101[0] := UInt<3>(0)
+ T_167101[1] := UInt<3>(1)
+ T_167101[2] := UInt<3>(2)
+ wire T_167102 : UInt<2>[2]
+ T_167102[0] := UInt<2>(0)
+ T_167102[1] := UInt<2>(1)
+ wire T_167103 : UInt<2>[3]
+ T_167103[0] := UInt<2>(1)
+ T_167103[1] := UInt<2>(2)
+ T_167103[2] := UInt<2>(3)
+ wire T_167104 : UInt<2>[2]
+ T_167104[0] := UInt<2>(2)
+ T_167104[1] := UInt<2>(3)
+ wire T_167105 : UInt<2>[1]
+ T_167105[0] := UInt<2>(3)
+ wire T_167106 : UInt<3>[3]
+ T_167106[0] := UInt<3>(0)
+ T_167106[1] := UInt<3>(1)
+ T_167106[2] := UInt<3>(2)
+ wire T_167107 : UInt<2>[2]
+ T_167107[0] := UInt<2>(0)
+ T_167107[1] := UInt<2>(1)
+ wire T_167108 : UInt<2>[3]
+ T_167108[0] := UInt<2>(1)
+ T_167108[1] := UInt<2>(2)
+ T_167108[2] := UInt<2>(3)
+ wire T_167109 : UInt<2>[2]
+ T_167109[0] := UInt<2>(2)
+ T_167109[1] := UInt<2>(3)
+ wire T_167110 : UInt<2>[1]
+ T_167110[0] := UInt<2>(3)
+ wire T_167111 : UInt<3>[3]
+ T_167111[0] := UInt<3>(0)
+ T_167111[1] := UInt<3>(1)
+ T_167111[2] := UInt<3>(2)
+ wire T_167112 : UInt<2>[2]
+ T_167112[0] := UInt<2>(0)
+ T_167112[1] := UInt<2>(1)
+ wire T_167113 : UInt<2>[3]
+ T_167113[0] := UInt<2>(1)
+ T_167113[1] := UInt<2>(2)
+ T_167113[2] := UInt<2>(3)
+ wire T_167114 : UInt<2>[2]
+ T_167114[0] := UInt<2>(2)
+ T_167114[1] := UInt<2>(3)
+ wire T_167115 : UInt<2>[1]
+ T_167115[0] := UInt<2>(3)
+ wire T_167116 : UInt<3>[3]
+ T_167116[0] := UInt<3>(0)
+ T_167116[1] := UInt<3>(1)
+ T_167116[2] := UInt<3>(2)
+ wire T_167117 : UInt<2>[2]
+ T_167117[0] := UInt<2>(0)
+ T_167117[1] := UInt<2>(1)
+ wire T_167118 : UInt<2>[3]
+ T_167118[0] := UInt<2>(1)
+ T_167118[1] := UInt<2>(2)
+ T_167118[2] := UInt<2>(3)
+ wire T_167119 : UInt<2>[2]
+ T_167119[0] := UInt<2>(2)
+ T_167119[1] := UInt<2>(3)
+ wire T_167120 : UInt<2>[1]
+ T_167120[0] := UInt<2>(3)
+ wire T_167121 : UInt<3>[3]
+ T_167121[0] := UInt<3>(0)
+ T_167121[1] := UInt<3>(1)
+ T_167121[2] := UInt<3>(2)
+ wire T_167122 : UInt<2>[2]
+ T_167122[0] := UInt<2>(0)
+ T_167122[1] := UInt<2>(1)
+ wire T_167123 : UInt<2>[3]
+ T_167123[0] := UInt<2>(1)
+ T_167123[1] := UInt<2>(2)
+ T_167123[2] := UInt<2>(3)
+ wire T_167124 : UInt<2>[2]
+ T_167124[0] := UInt<2>(2)
+ T_167124[1] := UInt<2>(3)
+ wire T_167125 : UInt<2>[1]
+ T_167125[0] := UInt<2>(3)
+ wire T_167126 : UInt<3>[3]
+ T_167126[0] := UInt<3>(0)
+ T_167126[1] := UInt<3>(1)
+ T_167126[2] := UInt<3>(2)
+ wire T_167127 : UInt<2>[2]
+ T_167127[0] := UInt<2>(0)
+ T_167127[1] := UInt<2>(1)
+ wire T_167128 : UInt<2>[3]
+ T_167128[0] := UInt<2>(1)
+ T_167128[1] := UInt<2>(2)
+ T_167128[2] := UInt<2>(3)
+ wire T_167129 : UInt<2>[2]
+ T_167129[0] := UInt<2>(2)
+ T_167129[1] := UInt<2>(3)
+ wire T_167130 : UInt<2>[1]
+ T_167130[0] := UInt<2>(3)
+ wire T_167131 : UInt<3>[3]
+ T_167131[0] := UInt<3>(0)
+ T_167131[1] := UInt<3>(1)
+ T_167131[2] := UInt<3>(2)
+ wire T_167132 : UInt<2>[2]
+ T_167132[0] := UInt<2>(0)
+ T_167132[1] := UInt<2>(1)
+ wire T_167133 : UInt<2>[3]
+ T_167133[0] := UInt<2>(1)
+ T_167133[1] := UInt<2>(2)
+ T_167133[2] := UInt<2>(3)
+ wire T_167134 : UInt<2>[2]
+ T_167134[0] := UInt<2>(2)
+ T_167134[1] := UInt<2>(3)
+ wire T_167135 : UInt<2>[1]
+ T_167135[0] := UInt<2>(3)
+ wire T_167136 : UInt<3>[3]
+ T_167136[0] := UInt<3>(0)
+ T_167136[1] := UInt<3>(1)
+ T_167136[2] := UInt<3>(2)
+ wire T_167137 : UInt<2>[2]
+ T_167137[0] := UInt<2>(0)
+ T_167137[1] := UInt<2>(1)
+ wire T_167138 : UInt<2>[3]
+ T_167138[0] := UInt<2>(1)
+ T_167138[1] := UInt<2>(2)
+ T_167138[2] := UInt<2>(3)
+ wire T_167139 : UInt<2>[2]
+ T_167139[0] := UInt<2>(2)
+ T_167139[1] := UInt<2>(3)
+ wire T_167140 : UInt<2>[1]
+ T_167140[0] := UInt<2>(3)
+ wire T_167141 : UInt<3>[3]
+ T_167141[0] := UInt<3>(0)
+ T_167141[1] := UInt<3>(1)
+ T_167141[2] := UInt<3>(2)
+ wire T_167142 : UInt<2>[2]
+ T_167142[0] := UInt<2>(0)
+ T_167142[1] := UInt<2>(1)
+ wire T_167143 : UInt<2>[3]
+ T_167143[0] := UInt<2>(1)
+ T_167143[1] := UInt<2>(2)
+ T_167143[2] := UInt<2>(3)
+ wire T_167144 : UInt<2>[2]
+ T_167144[0] := UInt<2>(2)
+ T_167144[1] := UInt<2>(3)
+ wire T_167145 : UInt<2>[1]
+ T_167145[0] := UInt<2>(3)
+ wire T_167146 : UInt<3>[3]
+ T_167146[0] := UInt<3>(0)
+ T_167146[1] := UInt<3>(1)
+ T_167146[2] := UInt<3>(2)
+ wire T_167147 : UInt<2>[2]
+ T_167147[0] := UInt<2>(0)
+ T_167147[1] := UInt<2>(1)
+ wire T_167148 : UInt<2>[3]
+ T_167148[0] := UInt<2>(1)
+ T_167148[1] := UInt<2>(2)
+ T_167148[2] := UInt<2>(3)
+ wire T_167149 : UInt<2>[2]
+ T_167149[0] := UInt<2>(2)
+ T_167149[1] := UInt<2>(3)
+ wire T_167150 : UInt<2>[1]
+ T_167150[0] := UInt<2>(3)
+ wire T_167151 : UInt<3>[3]
+ T_167151[0] := UInt<3>(0)
+ T_167151[1] := UInt<3>(1)
+ T_167151[2] := UInt<3>(2)
+ wire T_167152 : UInt<2>[2]
+ T_167152[0] := UInt<2>(0)
+ T_167152[1] := UInt<2>(1)
+ wire T_167153 : UInt<2>[3]
+ T_167153[0] := UInt<2>(1)
+ T_167153[1] := UInt<2>(2)
+ T_167153[2] := UInt<2>(3)
+ wire T_167154 : UInt<2>[2]
+ T_167154[0] := UInt<2>(2)
+ T_167154[1] := UInt<2>(3)
+ wire T_167155 : UInt<2>[1]
+ T_167155[0] := UInt<2>(3)
+ wire T_167156 : UInt<3>[3]
+ T_167156[0] := UInt<3>(0)
+ T_167156[1] := UInt<3>(1)
+ T_167156[2] := UInt<3>(2)
+ wire T_167157 : UInt<2>[2]
+ T_167157[0] := UInt<2>(0)
+ T_167157[1] := UInt<2>(1)
+ wire T_167158 : UInt<2>[3]
+ T_167158[0] := UInt<2>(1)
+ T_167158[1] := UInt<2>(2)
+ T_167158[2] := UInt<2>(3)
+ wire T_167159 : UInt<2>[2]
+ T_167159[0] := UInt<2>(2)
+ T_167159[1] := UInt<2>(3)
+ wire T_167160 : UInt<2>[1]
+ T_167160[0] := UInt<2>(3)
+ wire T_167161 : UInt<3>[3]
+ T_167161[0] := UInt<3>(0)
+ T_167161[1] := UInt<3>(1)
+ T_167161[2] := UInt<3>(2)
+ wire T_167162 : UInt<2>[2]
+ T_167162[0] := UInt<2>(0)
+ T_167162[1] := UInt<2>(1)
+ wire T_167163 : UInt<2>[3]
+ T_167163[0] := UInt<2>(1)
+ T_167163[1] := UInt<2>(2)
+ T_167163[2] := UInt<2>(3)
+ wire T_167164 : UInt<2>[2]
+ T_167164[0] := UInt<2>(2)
+ T_167164[1] := UInt<2>(3)
+ wire T_167165 : UInt<2>[1]
+ T_167165[0] := UInt<2>(3)
+ wire T_167166 : UInt<3>[3]
+ T_167166[0] := UInt<3>(0)
+ T_167166[1] := UInt<3>(1)
+ T_167166[2] := UInt<3>(2)
+ wire T_167167 : UInt<2>[2]
+ T_167167[0] := UInt<2>(0)
+ T_167167[1] := UInt<2>(1)
+ wire T_167168 : UInt<2>[3]
+ T_167168[0] := UInt<2>(1)
+ T_167168[1] := UInt<2>(2)
+ T_167168[2] := UInt<2>(3)
+ wire T_167169 : UInt<2>[2]
+ T_167169[0] := UInt<2>(2)
+ T_167169[1] := UInt<2>(3)
+ wire T_167170 : UInt<2>[1]
+ T_167170[0] := UInt<2>(3)
+ wire T_167171 : UInt<3>[3]
+ T_167171[0] := UInt<3>(0)
+ T_167171[1] := UInt<3>(1)
+ T_167171[2] := UInt<3>(2)
+ wire T_167172 : UInt<2>[2]
+ T_167172[0] := UInt<2>(0)
+ T_167172[1] := UInt<2>(1)
+ wire T_167173 : UInt<2>[3]
+ T_167173[0] := UInt<2>(1)
+ T_167173[1] := UInt<2>(2)
+ T_167173[2] := UInt<2>(3)
+ wire T_167174 : UInt<2>[2]
+ T_167174[0] := UInt<2>(2)
+ T_167174[1] := UInt<2>(3)
+ wire T_167175 : UInt<2>[1]
+ T_167175[0] := UInt<2>(3)
+ wire T_167176 : UInt<3>[3]
+ T_167176[0] := UInt<3>(0)
+ T_167176[1] := UInt<3>(1)
+ T_167176[2] := UInt<3>(2)
+ wire T_167177 : UInt<2>[2]
+ T_167177[0] := UInt<2>(0)
+ T_167177[1] := UInt<2>(1)
+ wire T_167178 : UInt<2>[3]
+ T_167178[0] := UInt<2>(1)
+ T_167178[1] := UInt<2>(2)
+ T_167178[2] := UInt<2>(3)
+ wire T_167179 : UInt<2>[2]
+ T_167179[0] := UInt<2>(2)
+ T_167179[1] := UInt<2>(3)
+ wire T_167180 : UInt<2>[1]
+ T_167180[0] := UInt<2>(3)
+ wire T_167181 : UInt<3>[3]
+ T_167181[0] := UInt<3>(0)
+ T_167181[1] := UInt<3>(1)
+ T_167181[2] := UInt<3>(2)
+ wire T_167182 : UInt<2>[2]
+ T_167182[0] := UInt<2>(0)
+ T_167182[1] := UInt<2>(1)
+ wire T_167183 : UInt<2>[3]
+ T_167183[0] := UInt<2>(1)
+ T_167183[1] := UInt<2>(2)
+ T_167183[2] := UInt<2>(3)
+ wire T_167184 : UInt<2>[2]
+ T_167184[0] := UInt<2>(2)
+ T_167184[1] := UInt<2>(3)
+ wire T_167185 : UInt<2>[1]
+ T_167185[0] := UInt<2>(3)
+ wire T_167186 : UInt<3>[3]
+ T_167186[0] := UInt<3>(0)
+ T_167186[1] := UInt<3>(1)
+ T_167186[2] := UInt<3>(2)
+ wire T_167187 : UInt<2>[2]
+ T_167187[0] := UInt<2>(0)
+ T_167187[1] := UInt<2>(1)
+ wire T_167188 : UInt<2>[3]
+ T_167188[0] := UInt<2>(1)
+ T_167188[1] := UInt<2>(2)
+ T_167188[2] := UInt<2>(3)
+ wire T_167189 : UInt<2>[2]
+ T_167189[0] := UInt<2>(2)
+ T_167189[1] := UInt<2>(3)
+ wire T_167190 : UInt<2>[1]
+ T_167190[0] := UInt<2>(3)
+ wire T_167191 : UInt<3>[3]
+ T_167191[0] := UInt<3>(0)
+ T_167191[1] := UInt<3>(1)
+ T_167191[2] := UInt<3>(2)
+ wire T_167192 : UInt<2>[2]
+ T_167192[0] := UInt<2>(0)
+ T_167192[1] := UInt<2>(1)
+ wire T_167193 : UInt<2>[3]
+ T_167193[0] := UInt<2>(1)
+ T_167193[1] := UInt<2>(2)
+ T_167193[2] := UInt<2>(3)
+ wire T_167194 : UInt<2>[2]
+ T_167194[0] := UInt<2>(2)
+ T_167194[1] := UInt<2>(3)
+ wire T_167195 : UInt<2>[1]
+ T_167195[0] := UInt<2>(3)
+ wire T_167196 : UInt<3>[3]
+ T_167196[0] := UInt<3>(0)
+ T_167196[1] := UInt<3>(1)
+ T_167196[2] := UInt<3>(2)
+ wire T_167197 : UInt<2>[2]
+ T_167197[0] := UInt<2>(0)
+ T_167197[1] := UInt<2>(1)
+ wire T_167198 : UInt<2>[3]
+ T_167198[0] := UInt<2>(1)
+ T_167198[1] := UInt<2>(2)
+ T_167198[2] := UInt<2>(3)
+ wire T_167199 : UInt<2>[2]
+ T_167199[0] := UInt<2>(2)
+ T_167199[1] := UInt<2>(3)
+ wire T_167200 : UInt<2>[1]
+ T_167200[0] := UInt<2>(3)
+ wire T_167201 : UInt<3>[3]
+ T_167201[0] := UInt<3>(0)
+ T_167201[1] := UInt<3>(1)
+ T_167201[2] := UInt<3>(2)
+ wire T_167202 : UInt<2>[2]
+ T_167202[0] := UInt<2>(0)
+ T_167202[1] := UInt<2>(1)
+ wire T_167203 : UInt<2>[3]
+ T_167203[0] := UInt<2>(1)
+ T_167203[1] := UInt<2>(2)
+ T_167203[2] := UInt<2>(3)
+ wire T_167204 : UInt<2>[2]
+ T_167204[0] := UInt<2>(2)
+ T_167204[1] := UInt<2>(3)
+ wire T_167205 : UInt<2>[1]
+ T_167205[0] := UInt<2>(3)
+ wire T_167206 : UInt<3>[3]
+ T_167206[0] := UInt<3>(0)
+ T_167206[1] := UInt<3>(1)
+ T_167206[2] := UInt<3>(2)
+ wire T_167207 : UInt<2>[2]
+ T_167207[0] := UInt<2>(0)
+ T_167207[1] := UInt<2>(1)
+ wire T_167208 : UInt<2>[3]
+ T_167208[0] := UInt<2>(1)
+ T_167208[1] := UInt<2>(2)
+ T_167208[2] := UInt<2>(3)
+ wire T_167209 : UInt<2>[2]
+ T_167209[0] := UInt<2>(2)
+ T_167209[1] := UInt<2>(3)
+ wire T_167210 : UInt<2>[1]
+ T_167210[0] := UInt<2>(3)
+ inst finisher of FinishUnit_25654
+ finisher.grant <> network.grant
+ network.finish <> finisher.finish
+ wire T_167211 : UInt<3>[3]
+ T_167211[0] := UInt<3>(0)
+ T_167211[1] := UInt<3>(1)
+ T_167211[2] := UInt<3>(2)
+ wire T_167212 : UInt<2>[2]
+ T_167212[0] := UInt<2>(0)
+ T_167212[1] := UInt<2>(1)
+ wire T_167213 : UInt<2>[3]
+ T_167213[0] := UInt<2>(1)
+ T_167213[1] := UInt<2>(2)
+ T_167213[2] := UInt<2>(3)
+ wire T_167214 : UInt<2>[2]
+ T_167214[0] := UInt<2>(2)
+ T_167214[1] := UInt<2>(3)
+ wire T_167215 : UInt<2>[1]
+ T_167215[0] := UInt<2>(3)
+ wire T_167216 : UInt<3>[3]
+ T_167216[0] := UInt<3>(0)
+ T_167216[1] := UInt<3>(1)
+ T_167216[2] := UInt<3>(2)
+ wire T_167217 : UInt<2>[2]
+ T_167217[0] := UInt<2>(0)
+ T_167217[1] := UInt<2>(1)
+ wire T_167218 : UInt<2>[3]
+ T_167218[0] := UInt<2>(1)
+ T_167218[1] := UInt<2>(2)
+ T_167218[2] := UInt<2>(3)
+ wire T_167219 : UInt<2>[2]
+ T_167219[0] := UInt<2>(2)
+ T_167219[1] := UInt<2>(3)
+ wire T_167220 : UInt<2>[1]
+ T_167220[0] := UInt<2>(3)
+ wire T_167221 : UInt<3>[3]
+ T_167221[0] := UInt<3>(0)
+ T_167221[1] := UInt<3>(1)
+ T_167221[2] := UInt<3>(2)
+ wire T_167222 : UInt<2>[2]
+ T_167222[0] := UInt<2>(0)
+ T_167222[1] := UInt<2>(1)
+ wire T_167223 : UInt<2>[3]
+ T_167223[0] := UInt<2>(1)
+ T_167223[1] := UInt<2>(2)
+ T_167223[2] := UInt<2>(3)
+ wire T_167224 : UInt<2>[2]
+ T_167224[0] := UInt<2>(2)
+ T_167224[1] := UInt<2>(3)
+ wire T_167225 : UInt<2>[1]
+ T_167225[0] := UInt<2>(3)
+ wire acq_with_header : {flip ready : UInt<1>, valid : UInt<1>, bits : {header : {src : UInt<2>, dst : UInt<2>}, payload : {addr_block : UInt<26>, client_xact_id : UInt<1>, addr_beat : UInt<2>, data : UInt<128>, is_builtin_type : UInt<1>, a_type : UInt<3>, union : UInt<17>}}}
+ acq_with_header.bits.payload := client.acquire.bits
+ acq_with_header.bits.header.src := UInt<1>(1)
+ acq_with_header.bits.header.dst := UInt<1>(0)
+ acq_with_header.valid := client.acquire.valid
+ client.acquire.ready := acq_with_header.ready
+ wire T_167226 : UInt<3>[3]
+ T_167226[0] := UInt<3>(0)
+ T_167226[1] := UInt<3>(1)
+ T_167226[2] := UInt<3>(2)
+ wire T_167227 : UInt<2>[2]
+ T_167227[0] := UInt<2>(0)
+ T_167227[1] := UInt<2>(1)
+ wire T_167228 : UInt<2>[3]
+ T_167228[0] := UInt<2>(1)
+ T_167228[1] := UInt<2>(2)
+ T_167228[2] := UInt<2>(3)
+ wire T_167229 : UInt<2>[2]
+ T_167229[0] := UInt<2>(2)
+ T_167229[1] := UInt<2>(3)
+ wire T_167230 : UInt<2>[1]
+ T_167230[0] := UInt<2>(3)
+ wire T_167231 : UInt<3>[3]
+ T_167231[0] := UInt<3>(0)
+ T_167231[1] := UInt<3>(1)
+ T_167231[2] := UInt<3>(2)
+ wire T_167232 : UInt<2>[2]
+ T_167232[0] := UInt<2>(0)
+ T_167232[1] := UInt<2>(1)
+ wire T_167233 : UInt<2>[3]
+ T_167233[0] := UInt<2>(1)
+ T_167233[1] := UInt<2>(2)
+ T_167233[2] := UInt<2>(3)
+ wire T_167234 : UInt<2>[2]
+ T_167234[0] := UInt<2>(2)
+ T_167234[1] := UInt<2>(3)
+ wire T_167235 : UInt<2>[1]
+ T_167235[0] := UInt<2>(3)
+ wire T_167236 : UInt<3>[3]
+ T_167236[0] := UInt<3>(0)
+ T_167236[1] := UInt<3>(1)
+ T_167236[2] := UInt<3>(2)
+ wire T_167237 : UInt<2>[2]
+ T_167237[0] := UInt<2>(0)
+ T_167237[1] := UInt<2>(1)
+ wire T_167238 : UInt<2>[3]
+ T_167238[0] := UInt<2>(1)
+ T_167238[1] := UInt<2>(2)
+ T_167238[2] := UInt<2>(3)
+ wire T_167239 : UInt<2>[2]
+ T_167239[0] := UInt<2>(2)
+ T_167239[1] := UInt<2>(3)
+ wire T_167240 : UInt<2>[1]
+ T_167240[0] := UInt<2>(3)
+ wire rel_with_header : {flip ready : UInt<1>, valid : UInt<1>, bits : {header : {src : UInt<2>, dst : UInt<2>}, payload : {addr_block : UInt<26>, client_xact_id : UInt<1>, addr_beat : UInt<2>, data : UInt<128>, r_type : UInt<3>, voluntary : UInt<1>}}}
+ rel_with_header.bits.payload := client.release.bits
+ rel_with_header.bits.header.src := UInt<1>(1)
+ rel_with_header.bits.header.dst := UInt<1>(0)
+ rel_with_header.valid := client.release.valid
+ client.release.ready := rel_with_header.ready
+ wire T_167241 : UInt<3>[3]
+ T_167241[0] := UInt<3>(0)
+ T_167241[1] := UInt<3>(1)
+ T_167241[2] := UInt<3>(2)
+ wire T_167242 : UInt<2>[2]
+ T_167242[0] := UInt<2>(0)
+ T_167242[1] := UInt<2>(1)
+ wire T_167243 : UInt<2>[3]
+ T_167243[0] := UInt<2>(1)
+ T_167243[1] := UInt<2>(2)
+ T_167243[2] := UInt<2>(3)
+ wire T_167244 : UInt<2>[2]
+ T_167244[0] := UInt<2>(2)
+ T_167244[1] := UInt<2>(3)
+ wire T_167245 : UInt<2>[1]
+ T_167245[0] := UInt<2>(3)
+ wire T_167246 : UInt<3>[3]
+ T_167246[0] := UInt<3>(0)
+ T_167246[1] := UInt<3>(1)
+ T_167246[2] := UInt<3>(2)
+ wire T_167247 : UInt<2>[2]
+ T_167247[0] := UInt<2>(0)
+ T_167247[1] := UInt<2>(1)
+ wire T_167248 : UInt<2>[3]
+ T_167248[0] := UInt<2>(1)
+ T_167248[1] := UInt<2>(2)
+ T_167248[2] := UInt<2>(3)
+ wire T_167249 : UInt<2>[2]
+ T_167249[0] := UInt<2>(2)
+ T_167249[1] := UInt<2>(3)
+ wire T_167250 : UInt<2>[1]
+ T_167250[0] := UInt<2>(3)
+ wire prb_without_header : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_block : UInt<26>, p_type : UInt<2>}}
+ prb_without_header.valid := network.probe.valid
+ prb_without_header.bits := network.probe.bits.payload
+ network.probe.ready := prb_without_header.ready
+ network.acquire.bits := acq_with_header.bits
+ node T_167251 = and(acq_with_header.valid, finisher.ready)
+ network.acquire.valid := T_167251
+ node T_167252 = and(network.acquire.ready, finisher.ready)
+ acq_with_header.ready := T_167252
+ network.release <> rel_with_header
+ client.probe <> prb_without_header
+ client.grant <> finisher.refill
+ module Queue_28995 :
+ input enq : {flip ready : UInt<1>, valid : UInt<1>, bits : {header : {src : UInt<2>, dst : UInt<2>}, payload : {addr_block : UInt<26>, client_xact_id : UInt<1>, addr_beat : UInt<2>, data : UInt<128>, is_builtin_type : UInt<1>, a_type : UInt<3>, union : UInt<17>}}}
+ output deq : {flip ready : UInt<1>, valid : UInt<1>, bits : {header : {src : UInt<2>, dst : UInt<2>}, payload : {addr_block : UInt<26>, client_xact_id : UInt<1>, addr_beat : UInt<2>, data : UInt<128>, is_builtin_type : UInt<1>, a_type : UInt<3>, union : UInt<17>}}}
+ output count : UInt<2>
+
+ wire T_167253 : UInt<3>[3]
+ T_167253[0] := UInt<3>(0)
+ T_167253[1] := UInt<3>(1)
+ T_167253[2] := UInt<3>(2)
+ wire T_167254 : UInt<2>[2]
+ T_167254[0] := UInt<2>(0)
+ T_167254[1] := UInt<2>(1)
+ wire T_167255 : UInt<2>[3]
+ T_167255[0] := UInt<2>(1)
+ T_167255[1] := UInt<2>(2)
+ T_167255[2] := UInt<2>(3)
+ wire T_167256 : UInt<2>[2]
+ T_167256[0] := UInt<2>(2)
+ T_167256[1] := UInt<2>(3)
+ wire T_167257 : UInt<2>[1]
+ T_167257[0] := UInt<2>(3)
+ wire T_167258 : UInt<3>[3]
+ T_167258[0] := UInt<3>(0)
+ T_167258[1] := UInt<3>(1)
+ T_167258[2] := UInt<3>(2)
+ wire T_167259 : UInt<2>[2]
+ T_167259[0] := UInt<2>(0)
+ T_167259[1] := UInt<2>(1)
+ wire T_167260 : UInt<2>[3]
+ T_167260[0] := UInt<2>(1)
+ T_167260[1] := UInt<2>(2)
+ T_167260[2] := UInt<2>(3)
+ wire T_167261 : UInt<2>[2]
+ T_167261[0] := UInt<2>(2)
+ T_167261[1] := UInt<2>(3)
+ wire T_167262 : UInt<2>[1]
+ T_167262[0] := UInt<2>(3)
+ wire T_167263 : UInt<3>[3]
+ T_167263[0] := UInt<3>(0)
+ T_167263[1] := UInt<3>(1)
+ T_167263[2] := UInt<3>(2)
+ wire T_167264 : UInt<2>[2]
+ T_167264[0] := UInt<2>(0)
+ T_167264[1] := UInt<2>(1)
+ wire T_167265 : UInt<2>[3]
+ T_167265[0] := UInt<2>(1)
+ T_167265[1] := UInt<2>(2)
+ T_167265[2] := UInt<2>(3)
+ wire T_167266 : UInt<2>[2]
+ T_167266[0] := UInt<2>(2)
+ T_167266[1] := UInt<2>(3)
+ wire T_167267 : UInt<2>[1]
+ T_167267[0] := UInt<2>(3)
+ wire T_167268 : UInt<3>[3]
+ T_167268[0] := UInt<3>(0)
+ T_167268[1] := UInt<3>(1)
+ T_167268[2] := UInt<3>(2)
+ wire T_167269 : UInt<2>[2]
+ T_167269[0] := UInt<2>(0)
+ T_167269[1] := UInt<2>(1)
+ wire T_167270 : UInt<2>[3]
+ T_167270[0] := UInt<2>(1)
+ T_167270[1] := UInt<2>(2)
+ T_167270[2] := UInt<2>(3)
+ wire T_167271 : UInt<2>[2]
+ T_167271[0] := UInt<2>(2)
+ T_167271[1] := UInt<2>(3)
+ wire T_167272 : UInt<2>[1]
+ T_167272[0] := UInt<2>(3)
+ wire T_167273 : UInt<3>[3]
+ T_167273[0] := UInt<3>(0)
+ T_167273[1] := UInt<3>(1)
+ T_167273[2] := UInt<3>(2)
+ wire T_167274 : UInt<2>[2]
+ T_167274[0] := UInt<2>(0)
+ T_167274[1] := UInt<2>(1)
+ wire T_167275 : UInt<2>[3]
+ T_167275[0] := UInt<2>(1)
+ T_167275[1] := UInt<2>(2)
+ T_167275[2] := UInt<2>(3)
+ wire T_167276 : UInt<2>[2]
+ T_167276[0] := UInt<2>(2)
+ T_167276[1] := UInt<2>(3)
+ wire T_167277 : UInt<2>[1]
+ T_167277[0] := UInt<2>(3)
+ cmem ram : {header : {src : UInt<2>, dst : UInt<2>}, payload : {addr_block : UInt<26>, client_xact_id : UInt<1>, addr_beat : UInt<2>, data : UInt<128>, is_builtin_type : UInt<1>, a_type : UInt<3>, union : UInt<17>}}[2]
+ reg T_167278 : UInt<1>
+ onreset T_167278 := UInt<1>(0)
+ reg T_167279 : UInt<1>
+ onreset T_167279 := UInt<1>(0)
+ reg maybe_full : UInt<1>
+ onreset maybe_full := UInt<1>(0)
+ node ptr_match = eq(T_167278, T_167279)
+ node T_167280 = eq(maybe_full, UInt<1>(0))
+ node empty = and(ptr_match, T_167280)
+ node full = and(ptr_match, maybe_full)
+ node maybe_flow = and(UInt<1>(0), empty)
+ node do_flow = and(maybe_flow, deq.ready)
+ node T_167281 = and(enq.ready, enq.valid)
+ node T_167282 = eq(do_flow, UInt<1>(0))
+ node do_enq = and(T_167281, T_167282)
+ node T_167283 = and(deq.ready, deq.valid)
+ node T_167284 = eq(do_flow, UInt<1>(0))
+ node do_deq = and(T_167283, T_167284)
+ when do_enq :
+ wire T_167285 : UInt<3>[3]
+ T_167285[0] := UInt<3>(0)
+ T_167285[1] := UInt<3>(1)
+ T_167285[2] := UInt<3>(2)
+ wire T_167286 : UInt<2>[2]
+ T_167286[0] := UInt<2>(0)
+ T_167286[1] := UInt<2>(1)
+ wire T_167287 : UInt<2>[3]
+ T_167287[0] := UInt<2>(1)
+ T_167287[1] := UInt<2>(2)
+ T_167287[2] := UInt<2>(3)
+ wire T_167288 : UInt<2>[2]
+ T_167288[0] := UInt<2>(2)
+ T_167288[1] := UInt<2>(3)
+ wire T_167289 : UInt<2>[1]
+ T_167289[0] := UInt<2>(3)
+ accessor T_167290 = ram[T_167278]
+ T_167290 := enq.bits
+ node T_167291 = eq(T_167278, UInt<1>(1))
+ node T_167292 = and(UInt<1>(0), T_167291)
+ node T_167293 = addw(T_167278, UInt<1>(1))
+ wire T_167294 : UInt<1>
+ T_167294 := T_167293
+ when T_167292 : T_167294 := UInt<1>(0)
+ T_167278 := T_167294
+ when do_deq :
+ node T_167295 = eq(T_167279, UInt<1>(1))
+ node T_167296 = and(UInt<1>(0), T_167295)
+ node T_167297 = addw(T_167279, UInt<1>(1))
+ wire T_167298 : UInt<1>
+ T_167298 := T_167297
+ when T_167296 : T_167298 := UInt<1>(0)
+ T_167279 := T_167298
+
+ node T_167299 = neq(do_enq, do_deq)
+ when T_167299 : maybe_full := do_enq
+ node T_167300 = eq(empty, UInt<1>(0))
+ node T_167301 = and(UInt<1>(0), enq.valid)
+ node T_167302 = or(T_167300, T_167301)
+ deq.valid := T_167302
+ node T_167303 = eq(full, UInt<1>(0))
+ node T_167304 = and(UInt<1>(0), deq.ready)
+ node T_167305 = or(T_167303, T_167304)
+ enq.ready := T_167305
+ wire T_167306 : UInt<3>[3]
+ T_167306[0] := UInt<3>(0)
+ T_167306[1] := UInt<3>(1)
+ T_167306[2] := UInt<3>(2)
+ wire T_167307 : UInt<2>[2]
+ T_167307[0] := UInt<2>(0)
+ T_167307[1] := UInt<2>(1)
+ wire T_167308 : UInt<2>[3]
+ T_167308[0] := UInt<2>(1)
+ T_167308[1] := UInt<2>(2)
+ T_167308[2] := UInt<2>(3)
+ wire T_167309 : UInt<2>[2]
+ T_167309[0] := UInt<2>(2)
+ T_167309[1] := UInt<2>(3)
+ wire T_167310 : UInt<2>[1]
+ T_167310[0] := UInt<2>(3)
+ accessor T_167311 = ram[T_167279]
+ wire T_167312 : UInt<3>[3]
+ T_167312[0] := UInt<3>(0)
+ T_167312[1] := UInt<3>(1)
+ T_167312[2] := UInt<3>(2)
+ wire T_167313 : UInt<2>[2]
+ T_167313[0] := UInt<2>(0)
+ T_167313[1] := UInt<2>(1)
+ wire T_167314 : UInt<2>[3]
+ T_167314[0] := UInt<2>(1)
+ T_167314[1] := UInt<2>(2)
+ T_167314[2] := UInt<2>(3)
+ wire T_167315 : UInt<2>[2]
+ T_167315[0] := UInt<2>(2)
+ T_167315[1] := UInt<2>(3)
+ wire T_167316 : UInt<2>[1]
+ T_167316[0] := UInt<2>(3)
+ wire T_167317 : {header : {src : UInt<2>, dst : UInt<2>}, payload : {addr_block : UInt<26>, client_xact_id : UInt<1>, addr_beat : UInt<2>, data : UInt<128>, is_builtin_type : UInt<1>, a_type : UInt<3>, union : UInt<17>}}
+ T_167317 := T_167311
+ when maybe_flow : T_167317 := enq.bits
+ deq.bits := T_167317
+ node ptr_diff = subw(T_167278, T_167279)
+ node T_167318 = and(maybe_full, ptr_match)
+ node T_167319 = cat(T_167318, ptr_diff)
+ count := T_167319
+ module Queue_29634 :
+ input enq : {flip ready : UInt<1>, valid : UInt<1>, bits : {header : {src : UInt<2>, dst : UInt<2>}, payload : {addr_block : UInt<26>, p_type : UInt<2>}}}
+ output deq : {flip ready : UInt<1>, valid : UInt<1>, bits : {header : {src : UInt<2>, dst : UInt<2>}, payload : {addr_block : UInt<26>, p_type : UInt<2>}}}
+ output count : UInt<2>
+
+ wire T_167320 : UInt<3>[3]
+ T_167320[0] := UInt<3>(0)
+ T_167320[1] := UInt<3>(1)
+ T_167320[2] := UInt<3>(2)
+ wire T_167321 : UInt<2>[2]
+ T_167321[0] := UInt<2>(0)
+ T_167321[1] := UInt<2>(1)
+ wire T_167322 : UInt<2>[3]
+ T_167322[0] := UInt<2>(1)
+ T_167322[1] := UInt<2>(2)
+ T_167322[2] := UInt<2>(3)
+ wire T_167323 : UInt<2>[2]
+ T_167323[0] := UInt<2>(2)
+ T_167323[1] := UInt<2>(3)
+ wire T_167324 : UInt<2>[1]
+ T_167324[0] := UInt<2>(3)
+ wire T_167325 : UInt<3>[3]
+ T_167325[0] := UInt<3>(0)
+ T_167325[1] := UInt<3>(1)
+ T_167325[2] := UInt<3>(2)
+ wire T_167326 : UInt<2>[2]
+ T_167326[0] := UInt<2>(0)
+ T_167326[1] := UInt<2>(1)
+ wire T_167327 : UInt<2>[3]
+ T_167327[0] := UInt<2>(1)
+ T_167327[1] := UInt<2>(2)
+ T_167327[2] := UInt<2>(3)
+ wire T_167328 : UInt<2>[2]
+ T_167328[0] := UInt<2>(2)
+ T_167328[1] := UInt<2>(3)
+ wire T_167329 : UInt<2>[1]
+ T_167329[0] := UInt<2>(3)
+ wire T_167330 : UInt<3>[3]
+ T_167330[0] := UInt<3>(0)
+ T_167330[1] := UInt<3>(1)
+ T_167330[2] := UInt<3>(2)
+ wire T_167331 : UInt<2>[2]
+ T_167331[0] := UInt<2>(0)
+ T_167331[1] := UInt<2>(1)
+ wire T_167332 : UInt<2>[3]
+ T_167332[0] := UInt<2>(1)
+ T_167332[1] := UInt<2>(2)
+ T_167332[2] := UInt<2>(3)
+ wire T_167333 : UInt<2>[2]
+ T_167333[0] := UInt<2>(2)
+ T_167333[1] := UInt<2>(3)
+ wire T_167334 : UInt<2>[1]
+ T_167334[0] := UInt<2>(3)
+ wire T_167335 : UInt<3>[3]
+ T_167335[0] := UInt<3>(0)
+ T_167335[1] := UInt<3>(1)
+ T_167335[2] := UInt<3>(2)
+ wire T_167336 : UInt<2>[2]
+ T_167336[0] := UInt<2>(0)
+ T_167336[1] := UInt<2>(1)
+ wire T_167337 : UInt<2>[3]
+ T_167337[0] := UInt<2>(1)
+ T_167337[1] := UInt<2>(2)
+ T_167337[2] := UInt<2>(3)
+ wire T_167338 : UInt<2>[2]
+ T_167338[0] := UInt<2>(2)
+ T_167338[1] := UInt<2>(3)
+ wire T_167339 : UInt<2>[1]
+ T_167339[0] := UInt<2>(3)
+ wire T_167340 : UInt<3>[3]
+ T_167340[0] := UInt<3>(0)
+ T_167340[1] := UInt<3>(1)
+ T_167340[2] := UInt<3>(2)
+ wire T_167341 : UInt<2>[2]
+ T_167341[0] := UInt<2>(0)
+ T_167341[1] := UInt<2>(1)
+ wire T_167342 : UInt<2>[3]
+ T_167342[0] := UInt<2>(1)
+ T_167342[1] := UInt<2>(2)
+ T_167342[2] := UInt<2>(3)
+ wire T_167343 : UInt<2>[2]
+ T_167343[0] := UInt<2>(2)
+ T_167343[1] := UInt<2>(3)
+ wire T_167344 : UInt<2>[1]
+ T_167344[0] := UInt<2>(3)
+ cmem ram : {header : {src : UInt<2>, dst : UInt<2>}, payload : {addr_block : UInt<26>, p_type : UInt<2>}}[2]
+ reg T_167345 : UInt<1>
+ onreset T_167345 := UInt<1>(0)
+ reg T_167346 : UInt<1>
+ onreset T_167346 := UInt<1>(0)
+ reg maybe_full : UInt<1>
+ onreset maybe_full := UInt<1>(0)
+ node ptr_match = eq(T_167345, T_167346)
+ node T_167347 = eq(maybe_full, UInt<1>(0))
+ node empty = and(ptr_match, T_167347)
+ node full = and(ptr_match, maybe_full)
+ node maybe_flow = and(UInt<1>(0), empty)
+ node do_flow = and(maybe_flow, deq.ready)
+ node T_167348 = and(enq.ready, enq.valid)
+ node T_167349 = eq(do_flow, UInt<1>(0))
+ node do_enq = and(T_167348, T_167349)
+ node T_167350 = and(deq.ready, deq.valid)
+ node T_167351 = eq(do_flow, UInt<1>(0))
+ node do_deq = and(T_167350, T_167351)
+ when do_enq :
+ wire T_167352 : UInt<3>[3]
+ T_167352[0] := UInt<3>(0)
+ T_167352[1] := UInt<3>(1)
+ T_167352[2] := UInt<3>(2)
+ wire T_167353 : UInt<2>[2]
+ T_167353[0] := UInt<2>(0)
+ T_167353[1] := UInt<2>(1)
+ wire T_167354 : UInt<2>[3]
+ T_167354[0] := UInt<2>(1)
+ T_167354[1] := UInt<2>(2)
+ T_167354[2] := UInt<2>(3)
+ wire T_167355 : UInt<2>[2]
+ T_167355[0] := UInt<2>(2)
+ T_167355[1] := UInt<2>(3)
+ wire T_167356 : UInt<2>[1]
+ T_167356[0] := UInt<2>(3)
+ accessor T_167357 = ram[T_167345]
+ T_167357 := enq.bits
+ node T_167358 = eq(T_167345, UInt<1>(1))
+ node T_167359 = and(UInt<1>(0), T_167358)
+ node T_167360 = addw(T_167345, UInt<1>(1))
+ wire T_167361 : UInt<1>
+ T_167361 := T_167360
+ when T_167359 : T_167361 := UInt<1>(0)
+ T_167345 := T_167361
+ when do_deq :
+ node T_167362 = eq(T_167346, UInt<1>(1))
+ node T_167363 = and(UInt<1>(0), T_167362)
+ node T_167364 = addw(T_167346, UInt<1>(1))
+ wire T_167365 : UInt<1>
+ T_167365 := T_167364
+ when T_167363 : T_167365 := UInt<1>(0)
+ T_167346 := T_167365
+
+ node T_167366 = neq(do_enq, do_deq)
+ when T_167366 : maybe_full := do_enq
+ node T_167367 = eq(empty, UInt<1>(0))
+ node T_167368 = and(UInt<1>(0), enq.valid)
+ node T_167369 = or(T_167367, T_167368)
+ deq.valid := T_167369
+ node T_167370 = eq(full, UInt<1>(0))
+ node T_167371 = and(UInt<1>(0), deq.ready)
+ node T_167372 = or(T_167370, T_167371)
+ enq.ready := T_167372
+ wire T_167373 : UInt<3>[3]
+ T_167373[0] := UInt<3>(0)
+ T_167373[1] := UInt<3>(1)
+ T_167373[2] := UInt<3>(2)
+ wire T_167374 : UInt<2>[2]
+ T_167374[0] := UInt<2>(0)
+ T_167374[1] := UInt<2>(1)
+ wire T_167375 : UInt<2>[3]
+ T_167375[0] := UInt<2>(1)
+ T_167375[1] := UInt<2>(2)
+ T_167375[2] := UInt<2>(3)
+ wire T_167376 : UInt<2>[2]
+ T_167376[0] := UInt<2>(2)
+ T_167376[1] := UInt<2>(3)
+ wire T_167377 : UInt<2>[1]
+ T_167377[0] := UInt<2>(3)
+ accessor T_167378 = ram[T_167346]
+ wire T_167379 : UInt<3>[3]
+ T_167379[0] := UInt<3>(0)
+ T_167379[1] := UInt<3>(1)
+ T_167379[2] := UInt<3>(2)
+ wire T_167380 : UInt<2>[2]
+ T_167380[0] := UInt<2>(0)
+ T_167380[1] := UInt<2>(1)
+ wire T_167381 : UInt<2>[3]
+ T_167381[0] := UInt<2>(1)
+ T_167381[1] := UInt<2>(2)
+ T_167381[2] := UInt<2>(3)
+ wire T_167382 : UInt<2>[2]
+ T_167382[0] := UInt<2>(2)
+ T_167382[1] := UInt<2>(3)
+ wire T_167383 : UInt<2>[1]
+ T_167383[0] := UInt<2>(3)
+ wire T_167384 : {header : {src : UInt<2>, dst : UInt<2>}, payload : {addr_block : UInt<26>, p_type : UInt<2>}}
+ T_167384 := T_167378
+ when maybe_flow : T_167384 := enq.bits
+ deq.bits := T_167384
+ node ptr_diff = subw(T_167345, T_167346)
+ node T_167385 = and(maybe_full, ptr_match)
+ node T_167386 = cat(T_167385, ptr_diff)
+ count := T_167386
+ module Queue_30309 :
+ input enq : {flip ready : UInt<1>, valid : UInt<1>, bits : {header : {src : UInt<2>, dst : UInt<2>}, payload : {addr_block : UInt<26>, client_xact_id : UInt<1>, addr_beat : UInt<2>, data : UInt<128>, r_type : UInt<3>, voluntary : UInt<1>}}}
+ output deq : {flip ready : UInt<1>, valid : UInt<1>, bits : {header : {src : UInt<2>, dst : UInt<2>}, payload : {addr_block : UInt<26>, client_xact_id : UInt<1>, addr_beat : UInt<2>, data : UInt<128>, r_type : UInt<3>, voluntary : UInt<1>}}}
+ output count : UInt<2>
+
+ wire T_167387 : UInt<3>[3]
+ T_167387[0] := UInt<3>(0)
+ T_167387[1] := UInt<3>(1)
+ T_167387[2] := UInt<3>(2)
+ wire T_167388 : UInt<2>[2]
+ T_167388[0] := UInt<2>(0)
+ T_167388[1] := UInt<2>(1)
+ wire T_167389 : UInt<2>[3]
+ T_167389[0] := UInt<2>(1)
+ T_167389[1] := UInt<2>(2)
+ T_167389[2] := UInt<2>(3)
+ wire T_167390 : UInt<2>[2]
+ T_167390[0] := UInt<2>(2)
+ T_167390[1] := UInt<2>(3)
+ wire T_167391 : UInt<2>[1]
+ T_167391[0] := UInt<2>(3)
+ wire T_167392 : UInt<3>[3]
+ T_167392[0] := UInt<3>(0)
+ T_167392[1] := UInt<3>(1)
+ T_167392[2] := UInt<3>(2)
+ wire T_167393 : UInt<2>[2]
+ T_167393[0] := UInt<2>(0)
+ T_167393[1] := UInt<2>(1)
+ wire T_167394 : UInt<2>[3]
+ T_167394[0] := UInt<2>(1)
+ T_167394[1] := UInt<2>(2)
+ T_167394[2] := UInt<2>(3)
+ wire T_167395 : UInt<2>[2]
+ T_167395[0] := UInt<2>(2)
+ T_167395[1] := UInt<2>(3)
+ wire T_167396 : UInt<2>[1]
+ T_167396[0] := UInt<2>(3)
+ wire T_167397 : UInt<3>[3]
+ T_167397[0] := UInt<3>(0)
+ T_167397[1] := UInt<3>(1)
+ T_167397[2] := UInt<3>(2)
+ wire T_167398 : UInt<2>[2]
+ T_167398[0] := UInt<2>(0)
+ T_167398[1] := UInt<2>(1)
+ wire T_167399 : UInt<2>[3]
+ T_167399[0] := UInt<2>(1)
+ T_167399[1] := UInt<2>(2)
+ T_167399[2] := UInt<2>(3)
+ wire T_167400 : UInt<2>[2]
+ T_167400[0] := UInt<2>(2)
+ T_167400[1] := UInt<2>(3)
+ wire T_167401 : UInt<2>[1]
+ T_167401[0] := UInt<2>(3)
+ wire T_167402 : UInt<3>[3]
+ T_167402[0] := UInt<3>(0)
+ T_167402[1] := UInt<3>(1)
+ T_167402[2] := UInt<3>(2)
+ wire T_167403 : UInt<2>[2]
+ T_167403[0] := UInt<2>(0)
+ T_167403[1] := UInt<2>(1)
+ wire T_167404 : UInt<2>[3]
+ T_167404[0] := UInt<2>(1)
+ T_167404[1] := UInt<2>(2)
+ T_167404[2] := UInt<2>(3)
+ wire T_167405 : UInt<2>[2]
+ T_167405[0] := UInt<2>(2)
+ T_167405[1] := UInt<2>(3)
+ wire T_167406 : UInt<2>[1]
+ T_167406[0] := UInt<2>(3)
+ wire T_167407 : UInt<3>[3]
+ T_167407[0] := UInt<3>(0)
+ T_167407[1] := UInt<3>(1)
+ T_167407[2] := UInt<3>(2)
+ wire T_167408 : UInt<2>[2]
+ T_167408[0] := UInt<2>(0)
+ T_167408[1] := UInt<2>(1)
+ wire T_167409 : UInt<2>[3]
+ T_167409[0] := UInt<2>(1)
+ T_167409[1] := UInt<2>(2)
+ T_167409[2] := UInt<2>(3)
+ wire T_167410 : UInt<2>[2]
+ T_167410[0] := UInt<2>(2)
+ T_167410[1] := UInt<2>(3)
+ wire T_167411 : UInt<2>[1]
+ T_167411[0] := UInt<2>(3)
+ cmem ram : {header : {src : UInt<2>, dst : UInt<2>}, payload : {addr_block : UInt<26>, client_xact_id : UInt<1>, addr_beat : UInt<2>, data : UInt<128>, r_type : UInt<3>, voluntary : UInt<1>}}[2]
+ reg T_167412 : UInt<1>
+ onreset T_167412 := UInt<1>(0)
+ reg T_167413 : UInt<1>
+ onreset T_167413 := UInt<1>(0)
+ reg maybe_full : UInt<1>
+ onreset maybe_full := UInt<1>(0)
+ node ptr_match = eq(T_167412, T_167413)
+ node T_167414 = eq(maybe_full, UInt<1>(0))
+ node empty = and(ptr_match, T_167414)
+ node full = and(ptr_match, maybe_full)
+ node maybe_flow = and(UInt<1>(0), empty)
+ node do_flow = and(maybe_flow, deq.ready)
+ node T_167415 = and(enq.ready, enq.valid)
+ node T_167416 = eq(do_flow, UInt<1>(0))
+ node do_enq = and(T_167415, T_167416)
+ node T_167417 = and(deq.ready, deq.valid)
+ node T_167418 = eq(do_flow, UInt<1>(0))
+ node do_deq = and(T_167417, T_167418)
+ when do_enq :
+ wire T_167419 : UInt<3>[3]
+ T_167419[0] := UInt<3>(0)
+ T_167419[1] := UInt<3>(1)
+ T_167419[2] := UInt<3>(2)
+ wire T_167420 : UInt<2>[2]
+ T_167420[0] := UInt<2>(0)
+ T_167420[1] := UInt<2>(1)
+ wire T_167421 : UInt<2>[3]
+ T_167421[0] := UInt<2>(1)
+ T_167421[1] := UInt<2>(2)
+ T_167421[2] := UInt<2>(3)
+ wire T_167422 : UInt<2>[2]
+ T_167422[0] := UInt<2>(2)
+ T_167422[1] := UInt<2>(3)
+ wire T_167423 : UInt<2>[1]
+ T_167423[0] := UInt<2>(3)
+ accessor T_167424 = ram[T_167412]
+ T_167424 := enq.bits
+ node T_167425 = eq(T_167412, UInt<1>(1))
+ node T_167426 = and(UInt<1>(0), T_167425)
+ node T_167427 = addw(T_167412, UInt<1>(1))
+ wire T_167428 : UInt<1>
+ T_167428 := T_167427
+ when T_167426 : T_167428 := UInt<1>(0)
+ T_167412 := T_167428
+ when do_deq :
+ node T_167429 = eq(T_167413, UInt<1>(1))
+ node T_167430 = and(UInt<1>(0), T_167429)
+ node T_167431 = addw(T_167413, UInt<1>(1))
+ wire T_167432 : UInt<1>
+ T_167432 := T_167431
+ when T_167430 : T_167432 := UInt<1>(0)
+ T_167413 := T_167432
+
+ node T_167433 = neq(do_enq, do_deq)
+ when T_167433 : maybe_full := do_enq
+ node T_167434 = eq(empty, UInt<1>(0))
+ node T_167435 = and(UInt<1>(0), enq.valid)
+ node T_167436 = or(T_167434, T_167435)
+ deq.valid := T_167436
+ node T_167437 = eq(full, UInt<1>(0))
+ node T_167438 = and(UInt<1>(0), deq.ready)
+ node T_167439 = or(T_167437, T_167438)
+ enq.ready := T_167439
+ wire T_167440 : UInt<3>[3]
+ T_167440[0] := UInt<3>(0)
+ T_167440[1] := UInt<3>(1)
+ T_167440[2] := UInt<3>(2)
+ wire T_167441 : UInt<2>[2]
+ T_167441[0] := UInt<2>(0)
+ T_167441[1] := UInt<2>(1)
+ wire T_167442 : UInt<2>[3]
+ T_167442[0] := UInt<2>(1)
+ T_167442[1] := UInt<2>(2)
+ T_167442[2] := UInt<2>(3)
+ wire T_167443 : UInt<2>[2]
+ T_167443[0] := UInt<2>(2)
+ T_167443[1] := UInt<2>(3)
+ wire T_167444 : UInt<2>[1]
+ T_167444[0] := UInt<2>(3)
+ accessor T_167445 = ram[T_167413]
+ wire T_167446 : UInt<3>[3]
+ T_167446[0] := UInt<3>(0)
+ T_167446[1] := UInt<3>(1)
+ T_167446[2] := UInt<3>(2)
+ wire T_167447 : UInt<2>[2]
+ T_167447[0] := UInt<2>(0)
+ T_167447[1] := UInt<2>(1)
+ wire T_167448 : UInt<2>[3]
+ T_167448[0] := UInt<2>(1)
+ T_167448[1] := UInt<2>(2)
+ T_167448[2] := UInt<2>(3)
+ wire T_167449 : UInt<2>[2]
+ T_167449[0] := UInt<2>(2)
+ T_167449[1] := UInt<2>(3)
+ wire T_167450 : UInt<2>[1]
+ T_167450[0] := UInt<2>(3)
+ wire T_167451 : {header : {src : UInt<2>, dst : UInt<2>}, payload : {addr_block : UInt<26>, client_xact_id : UInt<1>, addr_beat : UInt<2>, data : UInt<128>, r_type : UInt<3>, voluntary : UInt<1>}}
+ T_167451 := T_167445
+ when maybe_flow : T_167451 := enq.bits
+ deq.bits := T_167451
+ node ptr_diff = subw(T_167412, T_167413)
+ node T_167452 = and(maybe_full, ptr_match)
+ node T_167453 = cat(T_167452, ptr_diff)
+ count := T_167453
+ module Queue_30984 :
+ input enq : {flip ready : UInt<1>, valid : UInt<1>, bits : {header : {src : UInt<2>, dst : UInt<2>}, payload : {addr_beat : UInt<2>, data : UInt<128>, client_xact_id : UInt<1>, manager_xact_id : UInt<2>, is_builtin_type : UInt<1>, g_type : UInt<4>}}}
+ output deq : {flip ready : UInt<1>, valid : UInt<1>, bits : {header : {src : UInt<2>, dst : UInt<2>}, payload : {addr_beat : UInt<2>, data : UInt<128>, client_xact_id : UInt<1>, manager_xact_id : UInt<2>, is_builtin_type : UInt<1>, g_type : UInt<4>}}}
+ output count : UInt<2>
+
+ wire T_167454 : UInt<3>[3]
+ T_167454[0] := UInt<3>(0)
+ T_167454[1] := UInt<3>(1)
+ T_167454[2] := UInt<3>(2)
+ wire T_167455 : UInt<2>[2]
+ T_167455[0] := UInt<2>(0)
+ T_167455[1] := UInt<2>(1)
+ wire T_167456 : UInt<2>[3]
+ T_167456[0] := UInt<2>(1)
+ T_167456[1] := UInt<2>(2)
+ T_167456[2] := UInt<2>(3)
+ wire T_167457 : UInt<2>[2]
+ T_167457[0] := UInt<2>(2)
+ T_167457[1] := UInt<2>(3)
+ wire T_167458 : UInt<2>[1]
+ T_167458[0] := UInt<2>(3)
+ wire T_167459 : UInt<3>[3]
+ T_167459[0] := UInt<3>(0)
+ T_167459[1] := UInt<3>(1)
+ T_167459[2] := UInt<3>(2)
+ wire T_167460 : UInt<2>[2]
+ T_167460[0] := UInt<2>(0)
+ T_167460[1] := UInt<2>(1)
+ wire T_167461 : UInt<2>[3]
+ T_167461[0] := UInt<2>(1)
+ T_167461[1] := UInt<2>(2)
+ T_167461[2] := UInt<2>(3)
+ wire T_167462 : UInt<2>[2]
+ T_167462[0] := UInt<2>(2)
+ T_167462[1] := UInt<2>(3)
+ wire T_167463 : UInt<2>[1]
+ T_167463[0] := UInt<2>(3)
+ wire T_167464 : UInt<3>[3]
+ T_167464[0] := UInt<3>(0)
+ T_167464[1] := UInt<3>(1)
+ T_167464[2] := UInt<3>(2)
+ wire T_167465 : UInt<2>[2]
+ T_167465[0] := UInt<2>(0)
+ T_167465[1] := UInt<2>(1)
+ wire T_167466 : UInt<2>[3]
+ T_167466[0] := UInt<2>(1)
+ T_167466[1] := UInt<2>(2)
+ T_167466[2] := UInt<2>(3)
+ wire T_167467 : UInt<2>[2]
+ T_167467[0] := UInt<2>(2)
+ T_167467[1] := UInt<2>(3)
+ wire T_167468 : UInt<2>[1]
+ T_167468[0] := UInt<2>(3)
+ wire T_167469 : UInt<3>[3]
+ T_167469[0] := UInt<3>(0)
+ T_167469[1] := UInt<3>(1)
+ T_167469[2] := UInt<3>(2)
+ wire T_167470 : UInt<2>[2]
+ T_167470[0] := UInt<2>(0)
+ T_167470[1] := UInt<2>(1)
+ wire T_167471 : UInt<2>[3]
+ T_167471[0] := UInt<2>(1)
+ T_167471[1] := UInt<2>(2)
+ T_167471[2] := UInt<2>(3)
+ wire T_167472 : UInt<2>[2]
+ T_167472[0] := UInt<2>(2)
+ T_167472[1] := UInt<2>(3)
+ wire T_167473 : UInt<2>[1]
+ T_167473[0] := UInt<2>(3)
+ wire T_167474 : UInt<3>[3]
+ T_167474[0] := UInt<3>(0)
+ T_167474[1] := UInt<3>(1)
+ T_167474[2] := UInt<3>(2)
+ wire T_167475 : UInt<2>[2]
+ T_167475[0] := UInt<2>(0)
+ T_167475[1] := UInt<2>(1)
+ wire T_167476 : UInt<2>[3]
+ T_167476[0] := UInt<2>(1)
+ T_167476[1] := UInt<2>(2)
+ T_167476[2] := UInt<2>(3)
+ wire T_167477 : UInt<2>[2]
+ T_167477[0] := UInt<2>(2)
+ T_167477[1] := UInt<2>(3)
+ wire T_167478 : UInt<2>[1]
+ T_167478[0] := UInt<2>(3)
+ cmem ram : {header : {src : UInt<2>, dst : UInt<2>}, payload : {addr_beat : UInt<2>, data : UInt<128>, client_xact_id : UInt<1>, manager_xact_id : UInt<2>, is_builtin_type : UInt<1>, g_type : UInt<4>}}[2]
+ reg T_167479 : UInt<1>
+ onreset T_167479 := UInt<1>(0)
+ reg T_167480 : UInt<1>
+ onreset T_167480 := UInt<1>(0)
+ reg maybe_full : UInt<1>
+ onreset maybe_full := UInt<1>(0)
+ node ptr_match = eq(T_167479, T_167480)
+ node T_167481 = eq(maybe_full, UInt<1>(0))
+ node empty = and(ptr_match, T_167481)
+ node full = and(ptr_match, maybe_full)
+ node maybe_flow = and(UInt<1>(0), empty)
+ node do_flow = and(maybe_flow, deq.ready)
+ node T_167482 = and(enq.ready, enq.valid)
+ node T_167483 = eq(do_flow, UInt<1>(0))
+ node do_enq = and(T_167482, T_167483)
+ node T_167484 = and(deq.ready, deq.valid)
+ node T_167485 = eq(do_flow, UInt<1>(0))
+ node do_deq = and(T_167484, T_167485)
+ when do_enq :
+ wire T_167486 : UInt<3>[3]
+ T_167486[0] := UInt<3>(0)
+ T_167486[1] := UInt<3>(1)
+ T_167486[2] := UInt<3>(2)
+ wire T_167487 : UInt<2>[2]
+ T_167487[0] := UInt<2>(0)
+ T_167487[1] := UInt<2>(1)
+ wire T_167488 : UInt<2>[3]
+ T_167488[0] := UInt<2>(1)
+ T_167488[1] := UInt<2>(2)
+ T_167488[2] := UInt<2>(3)
+ wire T_167489 : UInt<2>[2]
+ T_167489[0] := UInt<2>(2)
+ T_167489[1] := UInt<2>(3)
+ wire T_167490 : UInt<2>[1]
+ T_167490[0] := UInt<2>(3)
+ accessor T_167491 = ram[T_167479]
+ T_167491 := enq.bits
+ node T_167492 = eq(T_167479, UInt<1>(1))
+ node T_167493 = and(UInt<1>(0), T_167492)
+ node T_167494 = addw(T_167479, UInt<1>(1))
+ wire T_167495 : UInt<1>
+ T_167495 := T_167494
+ when T_167493 : T_167495 := UInt<1>(0)
+ T_167479 := T_167495
+ when do_deq :
+ node T_167496 = eq(T_167480, UInt<1>(1))
+ node T_167497 = and(UInt<1>(0), T_167496)
+ node T_167498 = addw(T_167480, UInt<1>(1))
+ wire T_167499 : UInt<1>
+ T_167499 := T_167498
+ when T_167497 : T_167499 := UInt<1>(0)
+ T_167480 := T_167499
+
+ node T_167500 = neq(do_enq, do_deq)
+ when T_167500 : maybe_full := do_enq
+ node T_167501 = eq(empty, UInt<1>(0))
+ node T_167502 = and(UInt<1>(0), enq.valid)
+ node T_167503 = or(T_167501, T_167502)
+ deq.valid := T_167503
+ node T_167504 = eq(full, UInt<1>(0))
+ node T_167505 = and(UInt<1>(0), deq.ready)
+ node T_167506 = or(T_167504, T_167505)
+ enq.ready := T_167506
+ wire T_167507 : UInt<3>[3]
+ T_167507[0] := UInt<3>(0)
+ T_167507[1] := UInt<3>(1)
+ T_167507[2] := UInt<3>(2)
+ wire T_167508 : UInt<2>[2]
+ T_167508[0] := UInt<2>(0)
+ T_167508[1] := UInt<2>(1)
+ wire T_167509 : UInt<2>[3]
+ T_167509[0] := UInt<2>(1)
+ T_167509[1] := UInt<2>(2)
+ T_167509[2] := UInt<2>(3)
+ wire T_167510 : UInt<2>[2]
+ T_167510[0] := UInt<2>(2)
+ T_167510[1] := UInt<2>(3)
+ wire T_167511 : UInt<2>[1]
+ T_167511[0] := UInt<2>(3)
+ accessor T_167512 = ram[T_167480]
+ wire T_167513 : UInt<3>[3]
+ T_167513[0] := UInt<3>(0)
+ T_167513[1] := UInt<3>(1)
+ T_167513[2] := UInt<3>(2)
+ wire T_167514 : UInt<2>[2]
+ T_167514[0] := UInt<2>(0)
+ T_167514[1] := UInt<2>(1)
+ wire T_167515 : UInt<2>[3]
+ T_167515[0] := UInt<2>(1)
+ T_167515[1] := UInt<2>(2)
+ T_167515[2] := UInt<2>(3)
+ wire T_167516 : UInt<2>[2]
+ T_167516[0] := UInt<2>(2)
+ T_167516[1] := UInt<2>(3)
+ wire T_167517 : UInt<2>[1]
+ T_167517[0] := UInt<2>(3)
+ wire T_167518 : {header : {src : UInt<2>, dst : UInt<2>}, payload : {addr_beat : UInt<2>, data : UInt<128>, client_xact_id : UInt<1>, manager_xact_id : UInt<2>, is_builtin_type : UInt<1>, g_type : UInt<4>}}
+ T_167518 := T_167512
+ when maybe_flow : T_167518 := enq.bits
+ deq.bits := T_167518
+ node ptr_diff = subw(T_167479, T_167480)
+ node T_167519 = and(maybe_full, ptr_match)
+ node T_167520 = cat(T_167519, ptr_diff)
+ count := T_167520
+ module Queue_31614 :
+ input enq : {flip ready : UInt<1>, valid : UInt<1>, bits : {header : {src : UInt<2>, dst : UInt<2>}, payload : {manager_xact_id : UInt<2>}}}
+ output deq : {flip ready : UInt<1>, valid : UInt<1>, bits : {header : {src : UInt<2>, dst : UInt<2>}, payload : {manager_xact_id : UInt<2>}}}
+ output count : UInt<2>
+
+ wire T_167521 : UInt<3>[3]
+ T_167521[0] := UInt<3>(0)
+ T_167521[1] := UInt<3>(1)
+ T_167521[2] := UInt<3>(2)
+ wire T_167522 : UInt<2>[2]
+ T_167522[0] := UInt<2>(0)
+ T_167522[1] := UInt<2>(1)
+ wire T_167523 : UInt<2>[3]
+ T_167523[0] := UInt<2>(1)
+ T_167523[1] := UInt<2>(2)
+ T_167523[2] := UInt<2>(3)
+ wire T_167524 : UInt<2>[2]
+ T_167524[0] := UInt<2>(2)
+ T_167524[1] := UInt<2>(3)
+ wire T_167525 : UInt<2>[1]
+ T_167525[0] := UInt<2>(3)
+ wire T_167526 : UInt<3>[3]
+ T_167526[0] := UInt<3>(0)
+ T_167526[1] := UInt<3>(1)
+ T_167526[2] := UInt<3>(2)
+ wire T_167527 : UInt<2>[2]
+ T_167527[0] := UInt<2>(0)
+ T_167527[1] := UInt<2>(1)
+ wire T_167528 : UInt<2>[3]
+ T_167528[0] := UInt<2>(1)
+ T_167528[1] := UInt<2>(2)
+ T_167528[2] := UInt<2>(3)
+ wire T_167529 : UInt<2>[2]
+ T_167529[0] := UInt<2>(2)
+ T_167529[1] := UInt<2>(3)
+ wire T_167530 : UInt<2>[1]
+ T_167530[0] := UInt<2>(3)
+ wire T_167531 : UInt<3>[3]
+ T_167531[0] := UInt<3>(0)
+ T_167531[1] := UInt<3>(1)
+ T_167531[2] := UInt<3>(2)
+ wire T_167532 : UInt<2>[2]
+ T_167532[0] := UInt<2>(0)
+ T_167532[1] := UInt<2>(1)
+ wire T_167533 : UInt<2>[3]
+ T_167533[0] := UInt<2>(1)
+ T_167533[1] := UInt<2>(2)
+ T_167533[2] := UInt<2>(3)
+ wire T_167534 : UInt<2>[2]
+ T_167534[0] := UInt<2>(2)
+ T_167534[1] := UInt<2>(3)
+ wire T_167535 : UInt<2>[1]
+ T_167535[0] := UInt<2>(3)
+ wire T_167536 : UInt<3>[3]
+ T_167536[0] := UInt<3>(0)
+ T_167536[1] := UInt<3>(1)
+ T_167536[2] := UInt<3>(2)
+ wire T_167537 : UInt<2>[2]
+ T_167537[0] := UInt<2>(0)
+ T_167537[1] := UInt<2>(1)
+ wire T_167538 : UInt<2>[3]
+ T_167538[0] := UInt<2>(1)
+ T_167538[1] := UInt<2>(2)
+ T_167538[2] := UInt<2>(3)
+ wire T_167539 : UInt<2>[2]
+ T_167539[0] := UInt<2>(2)
+ T_167539[1] := UInt<2>(3)
+ wire T_167540 : UInt<2>[1]
+ T_167540[0] := UInt<2>(3)
+ wire T_167541 : UInt<3>[3]
+ T_167541[0] := UInt<3>(0)
+ T_167541[1] := UInt<3>(1)
+ T_167541[2] := UInt<3>(2)
+ wire T_167542 : UInt<2>[2]
+ T_167542[0] := UInt<2>(0)
+ T_167542[1] := UInt<2>(1)
+ wire T_167543 : UInt<2>[3]
+ T_167543[0] := UInt<2>(1)
+ T_167543[1] := UInt<2>(2)
+ T_167543[2] := UInt<2>(3)
+ wire T_167544 : UInt<2>[2]
+ T_167544[0] := UInt<2>(2)
+ T_167544[1] := UInt<2>(3)
+ wire T_167545 : UInt<2>[1]
+ T_167545[0] := UInt<2>(3)
+ cmem ram : {header : {src : UInt<2>, dst : UInt<2>}, payload : {manager_xact_id : UInt<2>}}[2]
+ reg T_167546 : UInt<1>
+ onreset T_167546 := UInt<1>(0)
+ reg T_167547 : UInt<1>
+ onreset T_167547 := UInt<1>(0)
+ reg maybe_full : UInt<1>
+ onreset maybe_full := UInt<1>(0)
+ node ptr_match = eq(T_167546, T_167547)
+ node T_167548 = eq(maybe_full, UInt<1>(0))
+ node empty = and(ptr_match, T_167548)
+ node full = and(ptr_match, maybe_full)
+ node maybe_flow = and(UInt<1>(0), empty)
+ node do_flow = and(maybe_flow, deq.ready)
+ node T_167549 = and(enq.ready, enq.valid)
+ node T_167550 = eq(do_flow, UInt<1>(0))
+ node do_enq = and(T_167549, T_167550)
+ node T_167551 = and(deq.ready, deq.valid)
+ node T_167552 = eq(do_flow, UInt<1>(0))
+ node do_deq = and(T_167551, T_167552)
+ when do_enq :
+ wire T_167553 : UInt<3>[3]
+ T_167553[0] := UInt<3>(0)
+ T_167553[1] := UInt<3>(1)
+ T_167553[2] := UInt<3>(2)
+ wire T_167554 : UInt<2>[2]
+ T_167554[0] := UInt<2>(0)
+ T_167554[1] := UInt<2>(1)
+ wire T_167555 : UInt<2>[3]
+ T_167555[0] := UInt<2>(1)
+ T_167555[1] := UInt<2>(2)
+ T_167555[2] := UInt<2>(3)
+ wire T_167556 : UInt<2>[2]
+ T_167556[0] := UInt<2>(2)
+ T_167556[1] := UInt<2>(3)
+ wire T_167557 : UInt<2>[1]
+ T_167557[0] := UInt<2>(3)
+ accessor T_167558 = ram[T_167546]
+ T_167558 := enq.bits
+ node T_167559 = eq(T_167546, UInt<1>(1))
+ node T_167560 = and(UInt<1>(0), T_167559)
+ node T_167561 = addw(T_167546, UInt<1>(1))
+ wire T_167562 : UInt<1>
+ T_167562 := T_167561
+ when T_167560 : T_167562 := UInt<1>(0)
+ T_167546 := T_167562
+ when do_deq :
+ node T_167563 = eq(T_167547, UInt<1>(1))
+ node T_167564 = and(UInt<1>(0), T_167563)
+ node T_167565 = addw(T_167547, UInt<1>(1))
+ wire T_167566 : UInt<1>
+ T_167566 := T_167565
+ when T_167564 : T_167566 := UInt<1>(0)
+ T_167547 := T_167566
+
+ node T_167567 = neq(do_enq, do_deq)
+ when T_167567 : maybe_full := do_enq
+ node T_167568 = eq(empty, UInt<1>(0))
+ node T_167569 = and(UInt<1>(0), enq.valid)
+ node T_167570 = or(T_167568, T_167569)
+ deq.valid := T_167570
+ node T_167571 = eq(full, UInt<1>(0))
+ node T_167572 = and(UInt<1>(0), deq.ready)
+ node T_167573 = or(T_167571, T_167572)
+ enq.ready := T_167573
+ wire T_167574 : UInt<3>[3]
+ T_167574[0] := UInt<3>(0)
+ T_167574[1] := UInt<3>(1)
+ T_167574[2] := UInt<3>(2)
+ wire T_167575 : UInt<2>[2]
+ T_167575[0] := UInt<2>(0)
+ T_167575[1] := UInt<2>(1)
+ wire T_167576 : UInt<2>[3]
+ T_167576[0] := UInt<2>(1)
+ T_167576[1] := UInt<2>(2)
+ T_167576[2] := UInt<2>(3)
+ wire T_167577 : UInt<2>[2]
+ T_167577[0] := UInt<2>(2)
+ T_167577[1] := UInt<2>(3)
+ wire T_167578 : UInt<2>[1]
+ T_167578[0] := UInt<2>(3)
+ accessor T_167579 = ram[T_167547]
+ wire T_167580 : UInt<3>[3]
+ T_167580[0] := UInt<3>(0)
+ T_167580[1] := UInt<3>(1)
+ T_167580[2] := UInt<3>(2)
+ wire T_167581 : UInt<2>[2]
+ T_167581[0] := UInt<2>(0)
+ T_167581[1] := UInt<2>(1)
+ wire T_167582 : UInt<2>[3]
+ T_167582[0] := UInt<2>(1)
+ T_167582[1] := UInt<2>(2)
+ T_167582[2] := UInt<2>(3)
+ wire T_167583 : UInt<2>[2]
+ T_167583[0] := UInt<2>(2)
+ T_167583[1] := UInt<2>(3)
+ wire T_167584 : UInt<2>[1]
+ T_167584[0] := UInt<2>(3)
+ wire T_167585 : {header : {src : UInt<2>, dst : UInt<2>}, payload : {manager_xact_id : UInt<2>}}
+ T_167585 := T_167579
+ when maybe_flow : T_167585 := enq.bits
+ deq.bits := T_167585
+ node ptr_diff = subw(T_167546, T_167547)
+ node T_167586 = and(maybe_full, ptr_match)
+ node T_167587 = cat(T_167586, ptr_diff)
+ count := T_167587
+ module TileLinkEnqueuer_31615 :
+ input client : {acquire : {flip ready : UInt<1>, valid : UInt<1>, bits : {header : {src : UInt<2>, dst : UInt<2>}, payload : {addr_block : UInt<26>, client_xact_id : UInt<1>, addr_beat : UInt<2>, data : UInt<128>, is_builtin_type : UInt<1>, a_type : UInt<3>, union : UInt<17>}}}, flip grant : {flip ready : UInt<1>, valid : UInt<1>, bits : {header : {src : UInt<2>, dst : UInt<2>}, payload : {addr_beat : UInt<2>, data : UInt<128>, client_xact_id : UInt<1>, manager_xact_id : UInt<2>, is_builtin_type : UInt<1>, g_type : UInt<4>}}}, finish : {flip ready : UInt<1>, valid : UInt<1>, bits : {header : {src : UInt<2>, dst : UInt<2>}, payload : {manager_xact_id : UInt<2>}}}, flip probe : {flip ready : UInt<1>, valid : UInt<1>, bits : {header : {src : UInt<2>, dst : UInt<2>}, payload : {addr_block : UInt<26>, p_type : UInt<2>}}}, release : {flip ready : UInt<1>, valid : UInt<1>, bits : {header : {src : UInt<2>, dst : UInt<2>}, payload : {addr_block : UInt<26>, client_xact_id : UInt<1>, addr_beat : UInt<2>, data : UInt<128>, r_type : UInt<3>, voluntary : UInt<1>}}}}
+ output manager : {acquire : {flip ready : UInt<1>, valid : UInt<1>, bits : {header : {src : UInt<2>, dst : UInt<2>}, payload : {addr_block : UInt<26>, client_xact_id : UInt<1>, addr_beat : UInt<2>, data : UInt<128>, is_builtin_type : UInt<1>, a_type : UInt<3>, union : UInt<17>}}}, flip grant : {flip ready : UInt<1>, valid : UInt<1>, bits : {header : {src : UInt<2>, dst : UInt<2>}, payload : {addr_beat : UInt<2>, data : UInt<128>, client_xact_id : UInt<1>, manager_xact_id : UInt<2>, is_builtin_type : UInt<1>, g_type : UInt<4>}}}, finish : {flip ready : UInt<1>, valid : UInt<1>, bits : {header : {src : UInt<2>, dst : UInt<2>}, payload : {manager_xact_id : UInt<2>}}}, flip probe : {flip ready : UInt<1>, valid : UInt<1>, bits : {header : {src : UInt<2>, dst : UInt<2>}, payload : {addr_block : UInt<26>, p_type : UInt<2>}}}, release : {flip ready : UInt<1>, valid : UInt<1>, bits : {header : {src : UInt<2>, dst : UInt<2>}, payload : {addr_block : UInt<26>, client_xact_id : UInt<1>, addr_beat : UInt<2>, data : UInt<128>, r_type : UInt<3>, voluntary : UInt<1>}}}}
+
+ wire T_167588 : UInt<3>[3]
+ T_167588[0] := UInt<3>(0)
+ T_167588[1] := UInt<3>(1)
+ T_167588[2] := UInt<3>(2)
+ wire T_167589 : UInt<2>[2]
+ T_167589[0] := UInt<2>(0)
+ T_167589[1] := UInt<2>(1)
+ wire T_167590 : UInt<2>[3]
+ T_167590[0] := UInt<2>(1)
+ T_167590[1] := UInt<2>(2)
+ T_167590[2] := UInt<2>(3)
+ wire T_167591 : UInt<2>[2]
+ T_167591[0] := UInt<2>(2)
+ T_167591[1] := UInt<2>(3)
+ wire T_167592 : UInt<2>[1]
+ T_167592[0] := UInt<2>(3)
+ wire T_167593 : UInt<3>[3]
+ T_167593[0] := UInt<3>(0)
+ T_167593[1] := UInt<3>(1)
+ T_167593[2] := UInt<3>(2)
+ wire T_167594 : UInt<2>[2]
+ T_167594[0] := UInt<2>(0)
+ T_167594[1] := UInt<2>(1)
+ wire T_167595 : UInt<2>[3]
+ T_167595[0] := UInt<2>(1)
+ T_167595[1] := UInt<2>(2)
+ T_167595[2] := UInt<2>(3)
+ wire T_167596 : UInt<2>[2]
+ T_167596[0] := UInt<2>(2)
+ T_167596[1] := UInt<2>(3)
+ wire T_167597 : UInt<2>[1]
+ T_167597[0] := UInt<2>(3)
+ wire T_167598 : UInt<3>[3]
+ T_167598[0] := UInt<3>(0)
+ T_167598[1] := UInt<3>(1)
+ T_167598[2] := UInt<3>(2)
+ wire T_167599 : UInt<2>[2]
+ T_167599[0] := UInt<2>(0)
+ T_167599[1] := UInt<2>(1)
+ wire T_167600 : UInt<2>[3]
+ T_167600[0] := UInt<2>(1)
+ T_167600[1] := UInt<2>(2)
+ T_167600[2] := UInt<2>(3)
+ wire T_167601 : UInt<2>[2]
+ T_167601[0] := UInt<2>(2)
+ T_167601[1] := UInt<2>(3)
+ wire T_167602 : UInt<2>[1]
+ T_167602[0] := UInt<2>(3)
+ wire T_167603 : UInt<3>[3]
+ T_167603[0] := UInt<3>(0)
+ T_167603[1] := UInt<3>(1)
+ T_167603[2] := UInt<3>(2)
+ wire T_167604 : UInt<2>[2]
+ T_167604[0] := UInt<2>(0)
+ T_167604[1] := UInt<2>(1)
+ wire T_167605 : UInt<2>[3]
+ T_167605[0] := UInt<2>(1)
+ T_167605[1] := UInt<2>(2)
+ T_167605[2] := UInt<2>(3)
+ wire T_167606 : UInt<2>[2]
+ T_167606[0] := UInt<2>(2)
+ T_167606[1] := UInt<2>(3)
+ wire T_167607 : UInt<2>[1]
+ T_167607[0] := UInt<2>(3)
+ wire T_167608 : UInt<3>[3]
+ T_167608[0] := UInt<3>(0)
+ T_167608[1] := UInt<3>(1)
+ T_167608[2] := UInt<3>(2)
+ wire T_167609 : UInt<2>[2]
+ T_167609[0] := UInt<2>(0)
+ T_167609[1] := UInt<2>(1)
+ wire T_167610 : UInt<2>[3]
+ T_167610[0] := UInt<2>(1)
+ T_167610[1] := UInt<2>(2)
+ T_167610[2] := UInt<2>(3)
+ wire T_167611 : UInt<2>[2]
+ T_167611[0] := UInt<2>(2)
+ T_167611[1] := UInt<2>(3)
+ wire T_167612 : UInt<2>[1]
+ T_167612[0] := UInt<2>(3)
+ wire T_167613 : UInt<3>[3]
+ T_167613[0] := UInt<3>(0)
+ T_167613[1] := UInt<3>(1)
+ T_167613[2] := UInt<3>(2)
+ wire T_167614 : UInt<2>[2]
+ T_167614[0] := UInt<2>(0)
+ T_167614[1] := UInt<2>(1)
+ wire T_167615 : UInt<2>[3]
+ T_167615[0] := UInt<2>(1)
+ T_167615[1] := UInt<2>(2)
+ T_167615[2] := UInt<2>(3)
+ wire T_167616 : UInt<2>[2]
+ T_167616[0] := UInt<2>(2)
+ T_167616[1] := UInt<2>(3)
+ wire T_167617 : UInt<2>[1]
+ T_167617[0] := UInt<2>(3)
+ wire T_167618 : UInt<3>[3]
+ T_167618[0] := UInt<3>(0)
+ T_167618[1] := UInt<3>(1)
+ T_167618[2] := UInt<3>(2)
+ wire T_167619 : UInt<2>[2]
+ T_167619[0] := UInt<2>(0)
+ T_167619[1] := UInt<2>(1)
+ wire T_167620 : UInt<2>[3]
+ T_167620[0] := UInt<2>(1)
+ T_167620[1] := UInt<2>(2)
+ T_167620[2] := UInt<2>(3)
+ wire T_167621 : UInt<2>[2]
+ T_167621[0] := UInt<2>(2)
+ T_167621[1] := UInt<2>(3)
+ wire T_167622 : UInt<2>[1]
+ T_167622[0] := UInt<2>(3)
+ wire T_167623 : UInt<3>[3]
+ T_167623[0] := UInt<3>(0)
+ T_167623[1] := UInt<3>(1)
+ T_167623[2] := UInt<3>(2)
+ wire T_167624 : UInt<2>[2]
+ T_167624[0] := UInt<2>(0)
+ T_167624[1] := UInt<2>(1)
+ wire T_167625 : UInt<2>[3]
+ T_167625[0] := UInt<2>(1)
+ T_167625[1] := UInt<2>(2)
+ T_167625[2] := UInt<2>(3)
+ wire T_167626 : UInt<2>[2]
+ T_167626[0] := UInt<2>(2)
+ T_167626[1] := UInt<2>(3)
+ wire T_167627 : UInt<2>[1]
+ T_167627[0] := UInt<2>(3)
+ wire T_167628 : UInt<3>[3]
+ T_167628[0] := UInt<3>(0)
+ T_167628[1] := UInt<3>(1)
+ T_167628[2] := UInt<3>(2)
+ wire T_167629 : UInt<2>[2]
+ T_167629[0] := UInt<2>(0)
+ T_167629[1] := UInt<2>(1)
+ wire T_167630 : UInt<2>[3]
+ T_167630[0] := UInt<2>(1)
+ T_167630[1] := UInt<2>(2)
+ T_167630[2] := UInt<2>(3)
+ wire T_167631 : UInt<2>[2]
+ T_167631[0] := UInt<2>(2)
+ T_167631[1] := UInt<2>(3)
+ wire T_167632 : UInt<2>[1]
+ T_167632[0] := UInt<2>(3)
+ wire T_167633 : UInt<3>[3]
+ T_167633[0] := UInt<3>(0)
+ T_167633[1] := UInt<3>(1)
+ T_167633[2] := UInt<3>(2)
+ wire T_167634 : UInt<2>[2]
+ T_167634[0] := UInt<2>(0)
+ T_167634[1] := UInt<2>(1)
+ wire T_167635 : UInt<2>[3]
+ T_167635[0] := UInt<2>(1)
+ T_167635[1] := UInt<2>(2)
+ T_167635[2] := UInt<2>(3)
+ wire T_167636 : UInt<2>[2]
+ T_167636[0] := UInt<2>(2)
+ T_167636[1] := UInt<2>(3)
+ wire T_167637 : UInt<2>[1]
+ T_167637[0] := UInt<2>(3)
+ wire T_167638 : UInt<3>[3]
+ T_167638[0] := UInt<3>(0)
+ T_167638[1] := UInt<3>(1)
+ T_167638[2] := UInt<3>(2)
+ wire T_167639 : UInt<2>[2]
+ T_167639[0] := UInt<2>(0)
+ T_167639[1] := UInt<2>(1)
+ wire T_167640 : UInt<2>[3]
+ T_167640[0] := UInt<2>(1)
+ T_167640[1] := UInt<2>(2)
+ T_167640[2] := UInt<2>(3)
+ wire T_167641 : UInt<2>[2]
+ T_167641[0] := UInt<2>(2)
+ T_167641[1] := UInt<2>(3)
+ wire T_167642 : UInt<2>[1]
+ T_167642[0] := UInt<2>(3)
+ wire T_167643 : UInt<3>[3]
+ T_167643[0] := UInt<3>(0)
+ T_167643[1] := UInt<3>(1)
+ T_167643[2] := UInt<3>(2)
+ wire T_167644 : UInt<2>[2]
+ T_167644[0] := UInt<2>(0)
+ T_167644[1] := UInt<2>(1)
+ wire T_167645 : UInt<2>[3]
+ T_167645[0] := UInt<2>(1)
+ T_167645[1] := UInt<2>(2)
+ T_167645[2] := UInt<2>(3)
+ wire T_167646 : UInt<2>[2]
+ T_167646[0] := UInt<2>(2)
+ T_167646[1] := UInt<2>(3)
+ wire T_167647 : UInt<2>[1]
+ T_167647[0] := UInt<2>(3)
+ wire T_167648 : UInt<3>[3]
+ T_167648[0] := UInt<3>(0)
+ T_167648[1] := UInt<3>(1)
+ T_167648[2] := UInt<3>(2)
+ wire T_167649 : UInt<2>[2]
+ T_167649[0] := UInt<2>(0)
+ T_167649[1] := UInt<2>(1)
+ wire T_167650 : UInt<2>[3]
+ T_167650[0] := UInt<2>(1)
+ T_167650[1] := UInt<2>(2)
+ T_167650[2] := UInt<2>(3)
+ wire T_167651 : UInt<2>[2]
+ T_167651[0] := UInt<2>(2)
+ T_167651[1] := UInt<2>(3)
+ wire T_167652 : UInt<2>[1]
+ T_167652[0] := UInt<2>(3)
+ wire T_167653 : UInt<3>[3]
+ T_167653[0] := UInt<3>(0)
+ T_167653[1] := UInt<3>(1)
+ T_167653[2] := UInt<3>(2)
+ wire T_167654 : UInt<2>[2]
+ T_167654[0] := UInt<2>(0)
+ T_167654[1] := UInt<2>(1)
+ wire T_167655 : UInt<2>[3]
+ T_167655[0] := UInt<2>(1)
+ T_167655[1] := UInt<2>(2)
+ T_167655[2] := UInt<2>(3)
+ wire T_167656 : UInt<2>[2]
+ T_167656[0] := UInt<2>(2)
+ T_167656[1] := UInt<2>(3)
+ wire T_167657 : UInt<2>[1]
+ T_167657[0] := UInt<2>(3)
+ wire T_167658 : UInt<3>[3]
+ T_167658[0] := UInt<3>(0)
+ T_167658[1] := UInt<3>(1)
+ T_167658[2] := UInt<3>(2)
+ wire T_167659 : UInt<2>[2]
+ T_167659[0] := UInt<2>(0)
+ T_167659[1] := UInt<2>(1)
+ wire T_167660 : UInt<2>[3]
+ T_167660[0] := UInt<2>(1)
+ T_167660[1] := UInt<2>(2)
+ T_167660[2] := UInt<2>(3)
+ wire T_167661 : UInt<2>[2]
+ T_167661[0] := UInt<2>(2)
+ T_167661[1] := UInt<2>(3)
+ wire T_167662 : UInt<2>[1]
+ T_167662[0] := UInt<2>(3)
+ wire T_167663 : UInt<3>[3]
+ T_167663[0] := UInt<3>(0)
+ T_167663[1] := UInt<3>(1)
+ T_167663[2] := UInt<3>(2)
+ wire T_167664 : UInt<2>[2]
+ T_167664[0] := UInt<2>(0)
+ T_167664[1] := UInt<2>(1)
+ wire T_167665 : UInt<2>[3]
+ T_167665[0] := UInt<2>(1)
+ T_167665[1] := UInt<2>(2)
+ T_167665[2] := UInt<2>(3)
+ wire T_167666 : UInt<2>[2]
+ T_167666[0] := UInt<2>(2)
+ T_167666[1] := UInt<2>(3)
+ wire T_167667 : UInt<2>[1]
+ T_167667[0] := UInt<2>(3)
+ wire T_167668 : UInt<3>[3]
+ T_167668[0] := UInt<3>(0)
+ T_167668[1] := UInt<3>(1)
+ T_167668[2] := UInt<3>(2)
+ wire T_167669 : UInt<2>[2]
+ T_167669[0] := UInt<2>(0)
+ T_167669[1] := UInt<2>(1)
+ wire T_167670 : UInt<2>[3]
+ T_167670[0] := UInt<2>(1)
+ T_167670[1] := UInt<2>(2)
+ T_167670[2] := UInt<2>(3)
+ wire T_167671 : UInt<2>[2]
+ T_167671[0] := UInt<2>(2)
+ T_167671[1] := UInt<2>(3)
+ wire T_167672 : UInt<2>[1]
+ T_167672[0] := UInt<2>(3)
+ wire T_167673 : UInt<3>[3]
+ T_167673[0] := UInt<3>(0)
+ T_167673[1] := UInt<3>(1)
+ T_167673[2] := UInt<3>(2)
+ wire T_167674 : UInt<2>[2]
+ T_167674[0] := UInt<2>(0)
+ T_167674[1] := UInt<2>(1)
+ wire T_167675 : UInt<2>[3]
+ T_167675[0] := UInt<2>(1)
+ T_167675[1] := UInt<2>(2)
+ T_167675[2] := UInt<2>(3)
+ wire T_167676 : UInt<2>[2]
+ T_167676[0] := UInt<2>(2)
+ T_167676[1] := UInt<2>(3)
+ wire T_167677 : UInt<2>[1]
+ T_167677[0] := UInt<2>(3)
+ wire T_167678 : UInt<3>[3]
+ T_167678[0] := UInt<3>(0)
+ T_167678[1] := UInt<3>(1)
+ T_167678[2] := UInt<3>(2)
+ wire T_167679 : UInt<2>[2]
+ T_167679[0] := UInt<2>(0)
+ T_167679[1] := UInt<2>(1)
+ wire T_167680 : UInt<2>[3]
+ T_167680[0] := UInt<2>(1)
+ T_167680[1] := UInt<2>(2)
+ T_167680[2] := UInt<2>(3)
+ wire T_167681 : UInt<2>[2]
+ T_167681[0] := UInt<2>(2)
+ T_167681[1] := UInt<2>(3)
+ wire T_167682 : UInt<2>[1]
+ T_167682[0] := UInt<2>(3)
+ wire T_167683 : UInt<3>[3]
+ T_167683[0] := UInt<3>(0)
+ T_167683[1] := UInt<3>(1)
+ T_167683[2] := UInt<3>(2)
+ wire T_167684 : UInt<2>[2]
+ T_167684[0] := UInt<2>(0)
+ T_167684[1] := UInt<2>(1)
+ wire T_167685 : UInt<2>[3]
+ T_167685[0] := UInt<2>(1)
+ T_167685[1] := UInt<2>(2)
+ T_167685[2] := UInt<2>(3)
+ wire T_167686 : UInt<2>[2]
+ T_167686[0] := UInt<2>(2)
+ T_167686[1] := UInt<2>(3)
+ wire T_167687 : UInt<2>[1]
+ T_167687[0] := UInt<2>(3)
+ wire T_167688 : UInt<3>[3]
+ T_167688[0] := UInt<3>(0)
+ T_167688[1] := UInt<3>(1)
+ T_167688[2] := UInt<3>(2)
+ wire T_167689 : UInt<2>[2]
+ T_167689[0] := UInt<2>(0)
+ T_167689[1] := UInt<2>(1)
+ wire T_167690 : UInt<2>[3]
+ T_167690[0] := UInt<2>(1)
+ T_167690[1] := UInt<2>(2)
+ T_167690[2] := UInt<2>(3)
+ wire T_167691 : UInt<2>[2]
+ T_167691[0] := UInt<2>(2)
+ T_167691[1] := UInt<2>(3)
+ wire T_167692 : UInt<2>[1]
+ T_167692[0] := UInt<2>(3)
+ wire T_167693 : UInt<3>[3]
+ T_167693[0] := UInt<3>(0)
+ T_167693[1] := UInt<3>(1)
+ T_167693[2] := UInt<3>(2)
+ wire T_167694 : UInt<2>[2]
+ T_167694[0] := UInt<2>(0)
+ T_167694[1] := UInt<2>(1)
+ wire T_167695 : UInt<2>[3]
+ T_167695[0] := UInt<2>(1)
+ T_167695[1] := UInt<2>(2)
+ T_167695[2] := UInt<2>(3)
+ wire T_167696 : UInt<2>[2]
+ T_167696[0] := UInt<2>(2)
+ T_167696[1] := UInt<2>(3)
+ wire T_167697 : UInt<2>[1]
+ T_167697[0] := UInt<2>(3)
+ wire T_167698 : UInt<3>[3]
+ T_167698[0] := UInt<3>(0)
+ T_167698[1] := UInt<3>(1)
+ T_167698[2] := UInt<3>(2)
+ wire T_167699 : UInt<2>[2]
+ T_167699[0] := UInt<2>(0)
+ T_167699[1] := UInt<2>(1)
+ wire T_167700 : UInt<2>[3]
+ T_167700[0] := UInt<2>(1)
+ T_167700[1] := UInt<2>(2)
+ T_167700[2] := UInt<2>(3)
+ wire T_167701 : UInt<2>[2]
+ T_167701[0] := UInt<2>(2)
+ T_167701[1] := UInt<2>(3)
+ wire T_167702 : UInt<2>[1]
+ T_167702[0] := UInt<2>(3)
+ wire T_167703 : UInt<3>[3]
+ T_167703[0] := UInt<3>(0)
+ T_167703[1] := UInt<3>(1)
+ T_167703[2] := UInt<3>(2)
+ wire T_167704 : UInt<2>[2]
+ T_167704[0] := UInt<2>(0)
+ T_167704[1] := UInt<2>(1)
+ wire T_167705 : UInt<2>[3]
+ T_167705[0] := UInt<2>(1)
+ T_167705[1] := UInt<2>(2)
+ T_167705[2] := UInt<2>(3)
+ wire T_167706 : UInt<2>[2]
+ T_167706[0] := UInt<2>(2)
+ T_167706[1] := UInt<2>(3)
+ wire T_167707 : UInt<2>[1]
+ T_167707[0] := UInt<2>(3)
+ wire T_167708 : UInt<3>[3]
+ T_167708[0] := UInt<3>(0)
+ T_167708[1] := UInt<3>(1)
+ T_167708[2] := UInt<3>(2)
+ wire T_167709 : UInt<2>[2]
+ T_167709[0] := UInt<2>(0)
+ T_167709[1] := UInt<2>(1)
+ wire T_167710 : UInt<2>[3]
+ T_167710[0] := UInt<2>(1)
+ T_167710[1] := UInt<2>(2)
+ T_167710[2] := UInt<2>(3)
+ wire T_167711 : UInt<2>[2]
+ T_167711[0] := UInt<2>(2)
+ T_167711[1] := UInt<2>(3)
+ wire T_167712 : UInt<2>[1]
+ T_167712[0] := UInt<2>(3)
+ wire T_167713 : UInt<3>[3]
+ T_167713[0] := UInt<3>(0)
+ T_167713[1] := UInt<3>(1)
+ T_167713[2] := UInt<3>(2)
+ wire T_167714 : UInt<2>[2]
+ T_167714[0] := UInt<2>(0)
+ T_167714[1] := UInt<2>(1)
+ wire T_167715 : UInt<2>[3]
+ T_167715[0] := UInt<2>(1)
+ T_167715[1] := UInt<2>(2)
+ T_167715[2] := UInt<2>(3)
+ wire T_167716 : UInt<2>[2]
+ T_167716[0] := UInt<2>(2)
+ T_167716[1] := UInt<2>(3)
+ wire T_167717 : UInt<2>[1]
+ T_167717[0] := UInt<2>(3)
+ wire T_167718 : UInt<3>[3]
+ T_167718[0] := UInt<3>(0)
+ T_167718[1] := UInt<3>(1)
+ T_167718[2] := UInt<3>(2)
+ wire T_167719 : UInt<2>[2]
+ T_167719[0] := UInt<2>(0)
+ T_167719[1] := UInt<2>(1)
+ wire T_167720 : UInt<2>[3]
+ T_167720[0] := UInt<2>(1)
+ T_167720[1] := UInt<2>(2)
+ T_167720[2] := UInt<2>(3)
+ wire T_167721 : UInt<2>[2]
+ T_167721[0] := UInt<2>(2)
+ T_167721[1] := UInt<2>(3)
+ wire T_167722 : UInt<2>[1]
+ T_167722[0] := UInt<2>(3)
+ wire T_167723 : UInt<3>[3]
+ T_167723[0] := UInt<3>(0)
+ T_167723[1] := UInt<3>(1)
+ T_167723[2] := UInt<3>(2)
+ wire T_167724 : UInt<2>[2]
+ T_167724[0] := UInt<2>(0)
+ T_167724[1] := UInt<2>(1)
+ wire T_167725 : UInt<2>[3]
+ T_167725[0] := UInt<2>(1)
+ T_167725[1] := UInt<2>(2)
+ T_167725[2] := UInt<2>(3)
+ wire T_167726 : UInt<2>[2]
+ T_167726[0] := UInt<2>(2)
+ T_167726[1] := UInt<2>(3)
+ wire T_167727 : UInt<2>[1]
+ T_167727[0] := UInt<2>(3)
+ wire T_167728 : UInt<3>[3]
+ T_167728[0] := UInt<3>(0)
+ T_167728[1] := UInt<3>(1)
+ T_167728[2] := UInt<3>(2)
+ wire T_167729 : UInt<2>[2]
+ T_167729[0] := UInt<2>(0)
+ T_167729[1] := UInt<2>(1)
+ wire T_167730 : UInt<2>[3]
+ T_167730[0] := UInt<2>(1)
+ T_167730[1] := UInt<2>(2)
+ T_167730[2] := UInt<2>(3)
+ wire T_167731 : UInt<2>[2]
+ T_167731[0] := UInt<2>(2)
+ T_167731[1] := UInt<2>(3)
+ wire T_167732 : UInt<2>[1]
+ T_167732[0] := UInt<2>(3)
+ wire T_167733 : UInt<3>[3]
+ T_167733[0] := UInt<3>(0)
+ T_167733[1] := UInt<3>(1)
+ T_167733[2] := UInt<3>(2)
+ wire T_167734 : UInt<2>[2]
+ T_167734[0] := UInt<2>(0)
+ T_167734[1] := UInt<2>(1)
+ wire T_167735 : UInt<2>[3]
+ T_167735[0] := UInt<2>(1)
+ T_167735[1] := UInt<2>(2)
+ T_167735[2] := UInt<2>(3)
+ wire T_167736 : UInt<2>[2]
+ T_167736[0] := UInt<2>(2)
+ T_167736[1] := UInt<2>(3)
+ wire T_167737 : UInt<2>[1]
+ T_167737[0] := UInt<2>(3)
+ wire T_167738 : UInt<3>[3]
+ T_167738[0] := UInt<3>(0)
+ T_167738[1] := UInt<3>(1)
+ T_167738[2] := UInt<3>(2)
+ wire T_167739 : UInt<2>[2]
+ T_167739[0] := UInt<2>(0)
+ T_167739[1] := UInt<2>(1)
+ wire T_167740 : UInt<2>[3]
+ T_167740[0] := UInt<2>(1)
+ T_167740[1] := UInt<2>(2)
+ T_167740[2] := UInt<2>(3)
+ wire T_167741 : UInt<2>[2]
+ T_167741[0] := UInt<2>(2)
+ T_167741[1] := UInt<2>(3)
+ wire T_167742 : UInt<2>[1]
+ T_167742[0] := UInt<2>(3)
+ wire T_167743 : UInt<3>[3]
+ T_167743[0] := UInt<3>(0)
+ T_167743[1] := UInt<3>(1)
+ T_167743[2] := UInt<3>(2)
+ wire T_167744 : UInt<2>[2]
+ T_167744[0] := UInt<2>(0)
+ T_167744[1] := UInt<2>(1)
+ wire T_167745 : UInt<2>[3]
+ T_167745[0] := UInt<2>(1)
+ T_167745[1] := UInt<2>(2)
+ T_167745[2] := UInt<2>(3)
+ wire T_167746 : UInt<2>[2]
+ T_167746[0] := UInt<2>(2)
+ T_167746[1] := UInt<2>(3)
+ wire T_167747 : UInt<2>[1]
+ T_167747[0] := UInt<2>(3)
+ wire T_167748 : UInt<3>[3]
+ T_167748[0] := UInt<3>(0)
+ T_167748[1] := UInt<3>(1)
+ T_167748[2] := UInt<3>(2)
+ wire T_167749 : UInt<2>[2]
+ T_167749[0] := UInt<2>(0)
+ T_167749[1] := UInt<2>(1)
+ wire T_167750 : UInt<2>[3]
+ T_167750[0] := UInt<2>(1)
+ T_167750[1] := UInt<2>(2)
+ T_167750[2] := UInt<2>(3)
+ wire T_167751 : UInt<2>[2]
+ T_167751[0] := UInt<2>(2)
+ T_167751[1] := UInt<2>(3)
+ wire T_167752 : UInt<2>[1]
+ T_167752[0] := UInt<2>(3)
+ inst T_167753 of Queue_28995
+ T_167753.enq.valid := client.acquire.valid
+ T_167753.enq.bits := client.acquire.bits
+ client.acquire.ready := T_167753.enq.ready
+ manager.acquire <> T_167753.deq
+ wire T_167754 : UInt<3>[3]
+ T_167754[0] := UInt<3>(0)
+ T_167754[1] := UInt<3>(1)
+ T_167754[2] := UInt<3>(2)
+ wire T_167755 : UInt<2>[2]
+ T_167755[0] := UInt<2>(0)
+ T_167755[1] := UInt<2>(1)
+ wire T_167756 : UInt<2>[3]
+ T_167756[0] := UInt<2>(1)
+ T_167756[1] := UInt<2>(2)
+ T_167756[2] := UInt<2>(3)
+ wire T_167757 : UInt<2>[2]
+ T_167757[0] := UInt<2>(2)
+ T_167757[1] := UInt<2>(3)
+ wire T_167758 : UInt<2>[1]
+ T_167758[0] := UInt<2>(3)
+ inst T_167759 of Queue_29634
+ T_167759.enq.valid := manager.probe.valid
+ T_167759.enq.bits := manager.probe.bits
+ manager.probe.ready := T_167759.enq.ready
+ client.probe <> T_167759.deq
+ wire T_167760 : UInt<3>[3]
+ T_167760[0] := UInt<3>(0)
+ T_167760[1] := UInt<3>(1)
+ T_167760[2] := UInt<3>(2)
+ wire T_167761 : UInt<2>[2]
+ T_167761[0] := UInt<2>(0)
+ T_167761[1] := UInt<2>(1)
+ wire T_167762 : UInt<2>[3]
+ T_167762[0] := UInt<2>(1)
+ T_167762[1] := UInt<2>(2)
+ T_167762[2] := UInt<2>(3)
+ wire T_167763 : UInt<2>[2]
+ T_167763[0] := UInt<2>(2)
+ T_167763[1] := UInt<2>(3)
+ wire T_167764 : UInt<2>[1]
+ T_167764[0] := UInt<2>(3)
+ inst T_167765 of Queue_30309
+ T_167765.enq.valid := client.release.valid
+ T_167765.enq.bits := client.release.bits
+ client.release.ready := T_167765.enq.ready
+ manager.release <> T_167765.deq
+ wire T_167766 : UInt<3>[3]
+ T_167766[0] := UInt<3>(0)
+ T_167766[1] := UInt<3>(1)
+ T_167766[2] := UInt<3>(2)
+ wire T_167767 : UInt<2>[2]
+ T_167767[0] := UInt<2>(0)
+ T_167767[1] := UInt<2>(1)
+ wire T_167768 : UInt<2>[3]
+ T_167768[0] := UInt<2>(1)
+ T_167768[1] := UInt<2>(2)
+ T_167768[2] := UInt<2>(3)
+ wire T_167769 : UInt<2>[2]
+ T_167769[0] := UInt<2>(2)
+ T_167769[1] := UInt<2>(3)
+ wire T_167770 : UInt<2>[1]
+ T_167770[0] := UInt<2>(3)
+ inst T_167771 of Queue_30984
+ T_167771.enq.valid := manager.grant.valid
+ T_167771.enq.bits := manager.grant.bits
+ manager.grant.ready := T_167771.enq.ready
+ client.grant <> T_167771.deq
+ wire T_167772 : UInt<3>[3]
+ T_167772[0] := UInt<3>(0)
+ T_167772[1] := UInt<3>(1)
+ T_167772[2] := UInt<3>(2)
+ wire T_167773 : UInt<2>[2]
+ T_167773[0] := UInt<2>(0)
+ T_167773[1] := UInt<2>(1)
+ wire T_167774 : UInt<2>[3]
+ T_167774[0] := UInt<2>(1)
+ T_167774[1] := UInt<2>(2)
+ T_167774[2] := UInt<2>(3)
+ wire T_167775 : UInt<2>[2]
+ T_167775[0] := UInt<2>(2)
+ T_167775[1] := UInt<2>(3)
+ wire T_167776 : UInt<2>[1]
+ T_167776[0] := UInt<2>(3)
+ inst T_167777 of Queue_31614
+ T_167777.enq.valid := client.finish.valid
+ T_167777.enq.bits := client.finish.bits
+ client.finish.ready := T_167777.enq.ready
+ manager.finish <> T_167777.deq
+ module FinishQueue_35038 :
+ input enq : {flip ready : UInt<1>, valid : UInt<1>, bits : {fin : {manager_xact_id : UInt<2>}, dst : UInt<2>}}
+ output deq : {flip ready : UInt<1>, valid : UInt<1>, bits : {fin : {manager_xact_id : UInt<2>}, dst : UInt<2>}}
+ output count : UInt<2>
+
+ wire T_167778 : UInt<3>[3]
+ T_167778[0] := UInt<3>(0)
+ T_167778[1] := UInt<3>(1)
+ T_167778[2] := UInt<3>(2)
+ wire T_167779 : UInt<2>[2]
+ T_167779[0] := UInt<2>(0)
+ T_167779[1] := UInt<2>(1)
+ wire T_167780 : UInt<2>[3]
+ T_167780[0] := UInt<2>(1)
+ T_167780[1] := UInt<2>(2)
+ T_167780[2] := UInt<2>(3)
+ wire T_167781 : UInt<2>[2]
+ T_167781[0] := UInt<2>(2)
+ T_167781[1] := UInt<2>(3)
+ wire T_167782 : UInt<2>[1]
+ T_167782[0] := UInt<2>(3)
+ wire T_167783 : UInt<3>[3]
+ T_167783[0] := UInt<3>(0)
+ T_167783[1] := UInt<3>(1)
+ T_167783[2] := UInt<3>(2)
+ wire T_167784 : UInt<2>[2]
+ T_167784[0] := UInt<2>(0)
+ T_167784[1] := UInt<2>(1)
+ wire T_167785 : UInt<2>[3]
+ T_167785[0] := UInt<2>(1)
+ T_167785[1] := UInt<2>(2)
+ T_167785[2] := UInt<2>(3)
+ wire T_167786 : UInt<2>[2]
+ T_167786[0] := UInt<2>(2)
+ T_167786[1] := UInt<2>(3)
+ wire T_167787 : UInt<2>[1]
+ T_167787[0] := UInt<2>(3)
+ wire T_167788 : UInt<3>[3]
+ T_167788[0] := UInt<3>(0)
+ T_167788[1] := UInt<3>(1)
+ T_167788[2] := UInt<3>(2)
+ wire T_167789 : UInt<2>[2]
+ T_167789[0] := UInt<2>(0)
+ T_167789[1] := UInt<2>(1)
+ wire T_167790 : UInt<2>[3]
+ T_167790[0] := UInt<2>(1)
+ T_167790[1] := UInt<2>(2)
+ T_167790[2] := UInt<2>(3)
+ wire T_167791 : UInt<2>[2]
+ T_167791[0] := UInt<2>(2)
+ T_167791[1] := UInt<2>(3)
+ wire T_167792 : UInt<2>[1]
+ T_167792[0] := UInt<2>(3)
+ wire T_167793 : UInt<3>[3]
+ T_167793[0] := UInt<3>(0)
+ T_167793[1] := UInt<3>(1)
+ T_167793[2] := UInt<3>(2)
+ wire T_167794 : UInt<2>[2]
+ T_167794[0] := UInt<2>(0)
+ T_167794[1] := UInt<2>(1)
+ wire T_167795 : UInt<2>[3]
+ T_167795[0] := UInt<2>(1)
+ T_167795[1] := UInt<2>(2)
+ T_167795[2] := UInt<2>(3)
+ wire T_167796 : UInt<2>[2]
+ T_167796[0] := UInt<2>(2)
+ T_167796[1] := UInt<2>(3)
+ wire T_167797 : UInt<2>[1]
+ T_167797[0] := UInt<2>(3)
+ wire T_167798 : UInt<3>[3]
+ T_167798[0] := UInt<3>(0)
+ T_167798[1] := UInt<3>(1)
+ T_167798[2] := UInt<3>(2)
+ wire T_167799 : UInt<2>[2]
+ T_167799[0] := UInt<2>(0)
+ T_167799[1] := UInt<2>(1)
+ wire T_167800 : UInt<2>[3]
+ T_167800[0] := UInt<2>(1)
+ T_167800[1] := UInt<2>(2)
+ T_167800[2] := UInt<2>(3)
+ wire T_167801 : UInt<2>[2]
+ T_167801[0] := UInt<2>(2)
+ T_167801[1] := UInt<2>(3)
+ wire T_167802 : UInt<2>[1]
+ T_167802[0] := UInt<2>(3)
+ wire T_167803 : UInt<3>[3]
+ T_167803[0] := UInt<3>(0)
+ T_167803[1] := UInt<3>(1)
+ T_167803[2] := UInt<3>(2)
+ wire T_167804 : UInt<2>[2]
+ T_167804[0] := UInt<2>(0)
+ T_167804[1] := UInt<2>(1)
+ wire T_167805 : UInt<2>[3]
+ T_167805[0] := UInt<2>(1)
+ T_167805[1] := UInt<2>(2)
+ T_167805[2] := UInt<2>(3)
+ wire T_167806 : UInt<2>[2]
+ T_167806[0] := UInt<2>(2)
+ T_167806[1] := UInt<2>(3)
+ wire T_167807 : UInt<2>[1]
+ T_167807[0] := UInt<2>(3)
+ wire T_167808 : UInt<3>[3]
+ T_167808[0] := UInt<3>(0)
+ T_167808[1] := UInt<3>(1)
+ T_167808[2] := UInt<3>(2)
+ wire T_167809 : UInt<2>[2]
+ T_167809[0] := UInt<2>(0)
+ T_167809[1] := UInt<2>(1)
+ wire T_167810 : UInt<2>[3]
+ T_167810[0] := UInt<2>(1)
+ T_167810[1] := UInt<2>(2)
+ T_167810[2] := UInt<2>(3)
+ wire T_167811 : UInt<2>[2]
+ T_167811[0] := UInt<2>(2)
+ T_167811[1] := UInt<2>(3)
+ wire T_167812 : UInt<2>[1]
+ T_167812[0] := UInt<2>(3)
+ wire T_167813 : UInt<3>[3]
+ T_167813[0] := UInt<3>(0)
+ T_167813[1] := UInt<3>(1)
+ T_167813[2] := UInt<3>(2)
+ wire T_167814 : UInt<2>[2]
+ T_167814[0] := UInt<2>(0)
+ T_167814[1] := UInt<2>(1)
+ wire T_167815 : UInt<2>[3]
+ T_167815[0] := UInt<2>(1)
+ T_167815[1] := UInt<2>(2)
+ T_167815[2] := UInt<2>(3)
+ wire T_167816 : UInt<2>[2]
+ T_167816[0] := UInt<2>(2)
+ T_167816[1] := UInt<2>(3)
+ wire T_167817 : UInt<2>[1]
+ T_167817[0] := UInt<2>(3)
+ wire T_167818 : UInt<3>[3]
+ T_167818[0] := UInt<3>(0)
+ T_167818[1] := UInt<3>(1)
+ T_167818[2] := UInt<3>(2)
+ wire T_167819 : UInt<2>[2]
+ T_167819[0] := UInt<2>(0)
+ T_167819[1] := UInt<2>(1)
+ wire T_167820 : UInt<2>[3]
+ T_167820[0] := UInt<2>(1)
+ T_167820[1] := UInt<2>(2)
+ T_167820[2] := UInt<2>(3)
+ wire T_167821 : UInt<2>[2]
+ T_167821[0] := UInt<2>(2)
+ T_167821[1] := UInt<2>(3)
+ wire T_167822 : UInt<2>[1]
+ T_167822[0] := UInt<2>(3)
+ wire T_167823 : UInt<3>[3]
+ T_167823[0] := UInt<3>(0)
+ T_167823[1] := UInt<3>(1)
+ T_167823[2] := UInt<3>(2)
+ wire T_167824 : UInt<2>[2]
+ T_167824[0] := UInt<2>(0)
+ T_167824[1] := UInt<2>(1)
+ wire T_167825 : UInt<2>[3]
+ T_167825[0] := UInt<2>(1)
+ T_167825[1] := UInt<2>(2)
+ T_167825[2] := UInt<2>(3)
+ wire T_167826 : UInt<2>[2]
+ T_167826[0] := UInt<2>(2)
+ T_167826[1] := UInt<2>(3)
+ wire T_167827 : UInt<2>[1]
+ T_167827[0] := UInt<2>(3)
+ cmem T_167828 : {fin : {manager_xact_id : UInt<2>}, dst : UInt<2>}[2]
+ reg T_167829 : UInt<1>
+ onreset T_167829 := UInt<1>(0)
+ reg T_167830 : UInt<1>
+ onreset T_167830 := UInt<1>(0)
+ reg T_167831 : UInt<1>
+ onreset T_167831 := UInt<1>(0)
+ node T_167832 = eq(T_167829, T_167830)
+ node T_167833 = eq(T_167831, UInt<1>(0))
+ node T_167834 = and(T_167832, T_167833)
+ node T_167835 = and(T_167832, T_167831)
+ node T_167836 = and(UInt<1>(0), T_167834)
+ node T_167837 = and(T_167836, deq.ready)
+ node T_167838 = and(enq.ready, enq.valid)
+ node T_167839 = eq(T_167837, UInt<1>(0))
+ node T_167840 = and(T_167838, T_167839)
+ node T_167841 = and(deq.ready, deq.valid)
+ node T_167842 = eq(T_167837, UInt<1>(0))
+ node T_167843 = and(T_167841, T_167842)
+ when T_167840 :
+ wire T_167844 : UInt<3>[3]
+ T_167844[0] := UInt<3>(0)
+ T_167844[1] := UInt<3>(1)
+ T_167844[2] := UInt<3>(2)
+ wire T_167845 : UInt<2>[2]
+ T_167845[0] := UInt<2>(0)
+ T_167845[1] := UInt<2>(1)
+ wire T_167846 : UInt<2>[3]
+ T_167846[0] := UInt<2>(1)
+ T_167846[1] := UInt<2>(2)
+ T_167846[2] := UInt<2>(3)
+ wire T_167847 : UInt<2>[2]
+ T_167847[0] := UInt<2>(2)
+ T_167847[1] := UInt<2>(3)
+ wire T_167848 : UInt<2>[1]
+ T_167848[0] := UInt<2>(3)
+ wire T_167849 : UInt<3>[3]
+ T_167849[0] := UInt<3>(0)
+ T_167849[1] := UInt<3>(1)
+ T_167849[2] := UInt<3>(2)
+ wire T_167850 : UInt<2>[2]
+ T_167850[0] := UInt<2>(0)
+ T_167850[1] := UInt<2>(1)
+ wire T_167851 : UInt<2>[3]
+ T_167851[0] := UInt<2>(1)
+ T_167851[1] := UInt<2>(2)
+ T_167851[2] := UInt<2>(3)
+ wire T_167852 : UInt<2>[2]
+ T_167852[0] := UInt<2>(2)
+ T_167852[1] := UInt<2>(3)
+ wire T_167853 : UInt<2>[1]
+ T_167853[0] := UInt<2>(3)
+ accessor T_167854 = T_167828[T_167829]
+ T_167854 := enq.bits
+ node T_167855 = eq(T_167829, UInt<1>(1))
+ node T_167856 = and(UInt<1>(0), T_167855)
+ node T_167857 = addw(T_167829, UInt<1>(1))
+ wire T_167858 : UInt<1>
+ T_167858 := T_167857
+ when T_167856 : T_167858 := UInt<1>(0)
+ T_167829 := T_167858
+ when T_167843 :
+ node T_167859 = eq(T_167830, UInt<1>(1))
+ node T_167860 = and(UInt<1>(0), T_167859)
+ node T_167861 = addw(T_167830, UInt<1>(1))
+ wire T_167862 : UInt<1>
+ T_167862 := T_167861
+ when T_167860 : T_167862 := UInt<1>(0)
+ T_167830 := T_167862
+
+ node T_167863 = neq(T_167840, T_167843)
+ when T_167863 : T_167831 := T_167840
+ node T_167864 = eq(T_167834, UInt<1>(0))
+ node T_167865 = and(UInt<1>(0), enq.valid)
+ node T_167866 = or(T_167864, T_167865)
+ deq.valid := T_167866
+ node T_167867 = eq(T_167835, UInt<1>(0))
+ node T_167868 = and(UInt<1>(0), deq.ready)
+ node T_167869 = or(T_167867, T_167868)
+ enq.ready := T_167869
+ wire T_167870 : UInt<3>[3]
+ T_167870[0] := UInt<3>(0)
+ T_167870[1] := UInt<3>(1)
+ T_167870[2] := UInt<3>(2)
+ wire T_167871 : UInt<2>[2]
+ T_167871[0] := UInt<2>(0)
+ T_167871[1] := UInt<2>(1)
+ wire T_167872 : UInt<2>[3]
+ T_167872[0] := UInt<2>(1)
+ T_167872[1] := UInt<2>(2)
+ T_167872[2] := UInt<2>(3)
+ wire T_167873 : UInt<2>[2]
+ T_167873[0] := UInt<2>(2)
+ T_167873[1] := UInt<2>(3)
+ wire T_167874 : UInt<2>[1]
+ T_167874[0] := UInt<2>(3)
+ wire T_167875 : UInt<3>[3]
+ T_167875[0] := UInt<3>(0)
+ T_167875[1] := UInt<3>(1)
+ T_167875[2] := UInt<3>(2)
+ wire T_167876 : UInt<2>[2]
+ T_167876[0] := UInt<2>(0)
+ T_167876[1] := UInt<2>(1)
+ wire T_167877 : UInt<2>[3]
+ T_167877[0] := UInt<2>(1)
+ T_167877[1] := UInt<2>(2)
+ T_167877[2] := UInt<2>(3)
+ wire T_167878 : UInt<2>[2]
+ T_167878[0] := UInt<2>(2)
+ T_167878[1] := UInt<2>(3)
+ wire T_167879 : UInt<2>[1]
+ T_167879[0] := UInt<2>(3)
+ accessor T_167880 = T_167828[T_167830]
+ wire T_167881 : UInt<3>[3]
+ T_167881[0] := UInt<3>(0)
+ T_167881[1] := UInt<3>(1)
+ T_167881[2] := UInt<3>(2)
+ wire T_167882 : UInt<2>[2]
+ T_167882[0] := UInt<2>(0)
+ T_167882[1] := UInt<2>(1)
+ wire T_167883 : UInt<2>[3]
+ T_167883[0] := UInt<2>(1)
+ T_167883[1] := UInt<2>(2)
+ T_167883[2] := UInt<2>(3)
+ wire T_167884 : UInt<2>[2]
+ T_167884[0] := UInt<2>(2)
+ T_167884[1] := UInt<2>(3)
+ wire T_167885 : UInt<2>[1]
+ T_167885[0] := UInt<2>(3)
+ wire T_167886 : UInt<3>[3]
+ T_167886[0] := UInt<3>(0)
+ T_167886[1] := UInt<3>(1)
+ T_167886[2] := UInt<3>(2)
+ wire T_167887 : UInt<2>[2]
+ T_167887[0] := UInt<2>(0)
+ T_167887[1] := UInt<2>(1)
+ wire T_167888 : UInt<2>[3]
+ T_167888[0] := UInt<2>(1)
+ T_167888[1] := UInt<2>(2)
+ T_167888[2] := UInt<2>(3)
+ wire T_167889 : UInt<2>[2]
+ T_167889[0] := UInt<2>(2)
+ T_167889[1] := UInt<2>(3)
+ wire T_167890 : UInt<2>[1]
+ T_167890[0] := UInt<2>(3)
+ wire T_167891 : {fin : {manager_xact_id : UInt<2>}, dst : UInt<2>}
+ T_167891 := T_167880
+ when T_167836 : T_167891 := enq.bits
+ deq.bits := T_167891
+ node T_167892 = subw(T_167829, T_167830)
+ node T_167893 = and(T_167831, T_167832)
+ node T_167894 = cat(T_167893, T_167892)
+ count := T_167894
+ module FinishUnit_35200 :
+ input grant : {flip ready : UInt<1>, valid : UInt<1>, bits : {header : {src : UInt<2>, dst : UInt<2>}, payload : {addr_beat : UInt<2>, data : UInt<128>, client_xact_id : UInt<1>, manager_xact_id : UInt<2>, is_builtin_type : UInt<1>, g_type : UInt<4>}}}
+ output refill : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_beat : UInt<2>, data : UInt<128>, client_xact_id : UInt<1>, manager_xact_id : UInt<2>, is_builtin_type : UInt<1>, g_type : UInt<4>}}
+ output finish : {flip ready : UInt<1>, valid : UInt<1>, bits : {header : {src : UInt<2>, dst : UInt<2>}, payload : {manager_xact_id : UInt<2>}}}
+ output ready : UInt<1>
+
+ wire T_167895 : UInt<3>[3]
+ T_167895[0] := UInt<3>(0)
+ T_167895[1] := UInt<3>(1)
+ T_167895[2] := UInt<3>(2)
+ wire T_167896 : UInt<2>[2]
+ T_167896[0] := UInt<2>(0)
+ T_167896[1] := UInt<2>(1)
+ wire T_167897 : UInt<2>[3]
+ T_167897[0] := UInt<2>(1)
+ T_167897[1] := UInt<2>(2)
+ T_167897[2] := UInt<2>(3)
+ wire T_167898 : UInt<2>[2]
+ T_167898[0] := UInt<2>(2)
+ T_167898[1] := UInt<2>(3)
+ wire T_167899 : UInt<2>[1]
+ T_167899[0] := UInt<2>(3)
+ wire T_167900 : UInt<3>[3]
+ T_167900[0] := UInt<3>(0)
+ T_167900[1] := UInt<3>(1)
+ T_167900[2] := UInt<3>(2)
+ wire T_167901 : UInt<2>[2]
+ T_167901[0] := UInt<2>(0)
+ T_167901[1] := UInt<2>(1)
+ wire T_167902 : UInt<2>[3]
+ T_167902[0] := UInt<2>(1)
+ T_167902[1] := UInt<2>(2)
+ T_167902[2] := UInt<2>(3)
+ wire T_167903 : UInt<2>[2]
+ T_167903[0] := UInt<2>(2)
+ T_167903[1] := UInt<2>(3)
+ wire T_167904 : UInt<2>[1]
+ T_167904[0] := UInt<2>(3)
+ wire T_167905 : UInt<3>[3]
+ T_167905[0] := UInt<3>(0)
+ T_167905[1] := UInt<3>(1)
+ T_167905[2] := UInt<3>(2)
+ wire T_167906 : UInt<2>[2]
+ T_167906[0] := UInt<2>(0)
+ T_167906[1] := UInt<2>(1)
+ wire T_167907 : UInt<2>[3]
+ T_167907[0] := UInt<2>(1)
+ T_167907[1] := UInt<2>(2)
+ T_167907[2] := UInt<2>(3)
+ wire T_167908 : UInt<2>[2]
+ T_167908[0] := UInt<2>(2)
+ T_167908[1] := UInt<2>(3)
+ wire T_167909 : UInt<2>[1]
+ T_167909[0] := UInt<2>(3)
+ wire T_167910 : UInt<3>[3]
+ T_167910[0] := UInt<3>(0)
+ T_167910[1] := UInt<3>(1)
+ T_167910[2] := UInt<3>(2)
+ wire T_167911 : UInt<2>[2]
+ T_167911[0] := UInt<2>(0)
+ T_167911[1] := UInt<2>(1)
+ wire T_167912 : UInt<2>[3]
+ T_167912[0] := UInt<2>(1)
+ T_167912[1] := UInt<2>(2)
+ T_167912[2] := UInt<2>(3)
+ wire T_167913 : UInt<2>[2]
+ T_167913[0] := UInt<2>(2)
+ T_167913[1] := UInt<2>(3)
+ wire T_167914 : UInt<2>[1]
+ T_167914[0] := UInt<2>(3)
+ wire T_167915 : UInt<3>[3]
+ T_167915[0] := UInt<3>(0)
+ T_167915[1] := UInt<3>(1)
+ T_167915[2] := UInt<3>(2)
+ wire T_167916 : UInt<2>[2]
+ T_167916[0] := UInt<2>(0)
+ T_167916[1] := UInt<2>(1)
+ wire T_167917 : UInt<2>[3]
+ T_167917[0] := UInt<2>(1)
+ T_167917[1] := UInt<2>(2)
+ T_167917[2] := UInt<2>(3)
+ wire T_167918 : UInt<2>[2]
+ T_167918[0] := UInt<2>(2)
+ T_167918[1] := UInt<2>(3)
+ wire T_167919 : UInt<2>[1]
+ T_167919[0] := UInt<2>(3)
+ wire T_167920 : UInt<3>[3]
+ T_167920[0] := UInt<3>(0)
+ T_167920[1] := UInt<3>(1)
+ T_167920[2] := UInt<3>(2)
+ wire T_167921 : UInt<2>[2]
+ T_167921[0] := UInt<2>(0)
+ T_167921[1] := UInt<2>(1)
+ wire T_167922 : UInt<2>[3]
+ T_167922[0] := UInt<2>(1)
+ T_167922[1] := UInt<2>(2)
+ T_167922[2] := UInt<2>(3)
+ wire T_167923 : UInt<2>[2]
+ T_167923[0] := UInt<2>(2)
+ T_167923[1] := UInt<2>(3)
+ wire T_167924 : UInt<2>[1]
+ T_167924[0] := UInt<2>(3)
+ wire T_167925 : UInt<3>[3]
+ T_167925[0] := UInt<3>(0)
+ T_167925[1] := UInt<3>(1)
+ T_167925[2] := UInt<3>(2)
+ wire T_167926 : UInt<2>[2]
+ T_167926[0] := UInt<2>(0)
+ T_167926[1] := UInt<2>(1)
+ wire T_167927 : UInt<2>[3]
+ T_167927[0] := UInt<2>(1)
+ T_167927[1] := UInt<2>(2)
+ T_167927[2] := UInt<2>(3)
+ wire T_167928 : UInt<2>[2]
+ T_167928[0] := UInt<2>(2)
+ T_167928[1] := UInt<2>(3)
+ wire T_167929 : UInt<2>[1]
+ T_167929[0] := UInt<2>(3)
+ wire T_167930 : UInt<3>[3]
+ T_167930[0] := UInt<3>(0)
+ T_167930[1] := UInt<3>(1)
+ T_167930[2] := UInt<3>(2)
+ wire T_167931 : UInt<2>[2]
+ T_167931[0] := UInt<2>(0)
+ T_167931[1] := UInt<2>(1)
+ wire T_167932 : UInt<2>[3]
+ T_167932[0] := UInt<2>(1)
+ T_167932[1] := UInt<2>(2)
+ T_167932[2] := UInt<2>(3)
+ wire T_167933 : UInt<2>[2]
+ T_167933[0] := UInt<2>(2)
+ T_167933[1] := UInt<2>(3)
+ wire T_167934 : UInt<2>[1]
+ T_167934[0] := UInt<2>(3)
+ wire T_167935 : UInt<3>[3]
+ T_167935[0] := UInt<3>(0)
+ T_167935[1] := UInt<3>(1)
+ T_167935[2] := UInt<3>(2)
+ wire T_167936 : UInt<2>[2]
+ T_167936[0] := UInt<2>(0)
+ T_167936[1] := UInt<2>(1)
+ wire T_167937 : UInt<2>[3]
+ T_167937[0] := UInt<2>(1)
+ T_167937[1] := UInt<2>(2)
+ T_167937[2] := UInt<2>(3)
+ wire T_167938 : UInt<2>[2]
+ T_167938[0] := UInt<2>(2)
+ T_167938[1] := UInt<2>(3)
+ wire T_167939 : UInt<2>[1]
+ T_167939[0] := UInt<2>(3)
+ node T_167940 = and(grant.ready, grant.valid)
+ wire T_167941 : UInt<3>[1]
+ T_167941[0] := UInt<3>(5)
+ node T_167942 = eq(T_167941[0], grant.bits.payload.g_type)
+ node T_167943 = or(UInt<1>(0), T_167942)
+ node T_167944 = eq(T_167911[0], grant.bits.payload.g_type)
+ node T_167945 = eq(T_167911[1], grant.bits.payload.g_type)
+ node T_167946 = or(UInt<1>(0), T_167944)
+ node T_167947 = or(T_167946, T_167945)
+ wire T_167948 : UInt<1>
+ T_167948 := T_167947
+ when grant.bits.payload.is_builtin_type : T_167948 := T_167943
+ node T_167949 = and(UInt<1>(1), T_167948)
+ node T_167950 = and(T_167940, T_167949)
+ reg T_167951 : UInt<2>
+ onreset T_167951 := UInt<2>(0)
+ when T_167950 :
+ node T_167952 = eq(T_167951, UInt<2>(3))
+ node T_167953 = and(UInt<1>(0), T_167952)
+ node T_167954 = addw(T_167951, UInt<1>(1))
+ wire T_167955 : UInt<2>
+ T_167955 := T_167954
+ when T_167953 : T_167955 := UInt<1>(0)
+ T_167951 := T_167955
+ node T_167956 = and(T_167950, T_167952)
+ wire T_167957 : UInt<1>
+ T_167957 := UInt<1>(0)
+ when T_167949 : T_167957 := T_167951
+ wire T_167958 : UInt<1>
+ T_167958 := T_167940
+ when T_167949 : T_167958 := T_167956
+ wire T_167959 : UInt<3>[3]
+ T_167959[0] := UInt<3>(0)
+ T_167959[1] := UInt<3>(1)
+ T_167959[2] := UInt<3>(2)
+ wire T_167960 : UInt<2>[2]
+ T_167960[0] := UInt<2>(0)
+ T_167960[1] := UInt<2>(1)
+ wire T_167961 : UInt<2>[3]
+ T_167961[0] := UInt<2>(1)
+ T_167961[1] := UInt<2>(2)
+ T_167961[2] := UInt<2>(3)
+ wire T_167962 : UInt<2>[2]
+ T_167962[0] := UInt<2>(2)
+ T_167962[1] := UInt<2>(3)
+ wire T_167963 : UInt<2>[1]
+ T_167963[0] := UInt<2>(3)
+ wire T_167964 : UInt<3>[3]
+ T_167964[0] := UInt<3>(0)
+ T_167964[1] := UInt<3>(1)
+ T_167964[2] := UInt<3>(2)
+ wire T_167965 : UInt<2>[2]
+ T_167965[0] := UInt<2>(0)
+ T_167965[1] := UInt<2>(1)
+ wire T_167966 : UInt<2>[3]
+ T_167966[0] := UInt<2>(1)
+ T_167966[1] := UInt<2>(2)
+ T_167966[2] := UInt<2>(3)
+ wire T_167967 : UInt<2>[2]
+ T_167967[0] := UInt<2>(2)
+ T_167967[1] := UInt<2>(3)
+ wire T_167968 : UInt<2>[1]
+ T_167968[0] := UInt<2>(3)
+ inst T_167969 of FinishQueue_35038
+ node T_167970 = and(grant.ready, grant.valid)
+ node T_167971 = eq(UInt<1>(0), UInt<1>(0))
+ node T_167972 = eq(grant.bits.payload.g_type, UInt<3>(0))
+ node T_167973 = and(grant.bits.payload.is_builtin_type, T_167972)
+ node T_167974 = eq(T_167973, UInt<1>(0))
+ node T_167975 = and(T_167971, T_167974)
+ node T_167976 = and(T_167970, T_167975)
+ wire T_167977 : UInt<3>[1]
+ T_167977[0] := UInt<3>(5)
+ node T_167978 = eq(T_167977[0], grant.bits.payload.g_type)
+ node T_167979 = or(UInt<1>(0), T_167978)
+ node T_167980 = eq(T_167911[0], grant.bits.payload.g_type)
+ node T_167981 = eq(T_167911[1], grant.bits.payload.g_type)
+ node T_167982 = or(UInt<1>(0), T_167980)
+ node T_167983 = or(T_167982, T_167981)
+ wire T_167984 : UInt<1>
+ T_167984 := T_167983
+ when grant.bits.payload.is_builtin_type : T_167984 := T_167979
+ node T_167985 = and(UInt<1>(1), T_167984)
+ node T_167986 = eq(T_167985, UInt<1>(0))
+ node T_167987 = or(T_167986, T_167958)
+ node T_167988 = and(T_167976, T_167987)
+ T_167969.enq.valid := T_167988
+ wire T_167989 : UInt<3>[3]
+ T_167989[0] := UInt<3>(0)
+ T_167989[1] := UInt<3>(1)
+ T_167989[2] := UInt<3>(2)
+ wire T_167990 : UInt<2>[2]
+ T_167990[0] := UInt<2>(0)
+ T_167990[1] := UInt<2>(1)
+ wire T_167991 : UInt<2>[3]
+ T_167991[0] := UInt<2>(1)
+ T_167991[1] := UInt<2>(2)
+ T_167991[2] := UInt<2>(3)
+ wire T_167992 : UInt<2>[2]
+ T_167992[0] := UInt<2>(2)
+ T_167992[1] := UInt<2>(3)
+ wire T_167993 : UInt<2>[1]
+ T_167993[0] := UInt<2>(3)
+ wire T_167994 : UInt<3>[3]
+ T_167994[0] := UInt<3>(0)
+ T_167994[1] := UInt<3>(1)
+ T_167994[2] := UInt<3>(2)
+ wire T_167995 : UInt<2>[2]
+ T_167995[0] := UInt<2>(0)
+ T_167995[1] := UInt<2>(1)
+ wire T_167996 : UInt<2>[3]
+ T_167996[0] := UInt<2>(1)
+ T_167996[1] := UInt<2>(2)
+ T_167996[2] := UInt<2>(3)
+ wire T_167997 : UInt<2>[2]
+ T_167997[0] := UInt<2>(2)
+ T_167997[1] := UInt<2>(3)
+ wire T_167998 : UInt<2>[1]
+ T_167998[0] := UInt<2>(3)
+ wire T_167999 : {manager_xact_id : UInt<2>}
+ T_167999.manager_xact_id := grant.bits.payload.manager_xact_id
+ T_167969.enq.bits.fin := T_167999
+ T_167969.enq.bits.dst := grant.bits.header.src
+ finish.bits.header.src := UInt<2>(2)
+ finish.bits.header.dst := T_167969.deq.bits.dst
+ finish.bits.payload := T_167969.deq.bits.fin
+ finish.valid := T_167969.deq.valid
+ T_167969.deq.ready := finish.ready
+ refill.valid := grant.valid
+ refill.bits := grant.bits.payload
+ node T_168000 = eq(UInt<1>(0), UInt<1>(0))
+ node T_168001 = eq(grant.bits.payload.g_type, UInt<3>(0))
+ node T_168002 = and(grant.bits.payload.is_builtin_type, T_168001)
+ node T_168003 = eq(T_168002, UInt<1>(0))
+ node T_168004 = and(T_168000, T_168003)
+ node T_168005 = eq(T_168004, UInt<1>(0))
+ node T_168006 = or(T_167969.enq.ready, T_168005)
+ node T_168007 = and(T_168006, refill.ready)
+ grant.ready := T_168007
+ ready := T_167969.enq.ready
+ module ClientTileLinkNetworkPort_35756 :
+ input client : {acquire : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_block : UInt<26>, client_xact_id : UInt<1>, addr_beat : UInt<2>, data : UInt<128>, is_builtin_type : UInt<1>, a_type : UInt<3>, union : UInt<17>}}, flip grant : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_beat : UInt<2>, data : UInt<128>, client_xact_id : UInt<1>, manager_xact_id : UInt<2>, is_builtin_type : UInt<1>, g_type : UInt<4>}}, flip probe : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_block : UInt<26>, p_type : UInt<2>}}, release : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_block : UInt<26>, client_xact_id : UInt<1>, addr_beat : UInt<2>, data : UInt<128>, r_type : UInt<3>, voluntary : UInt<1>}}}
+ output network : {acquire : {flip ready : UInt<1>, valid : UInt<1>, bits : {header : {src : UInt<2>, dst : UInt<2>}, payload : {addr_block : UInt<26>, client_xact_id : UInt<1>, addr_beat : UInt<2>, data : UInt<128>, is_builtin_type : UInt<1>, a_type : UInt<3>, union : UInt<17>}}}, flip grant : {flip ready : UInt<1>, valid : UInt<1>, bits : {header : {src : UInt<2>, dst : UInt<2>}, payload : {addr_beat : UInt<2>, data : UInt<128>, client_xact_id : UInt<1>, manager_xact_id : UInt<2>, is_builtin_type : UInt<1>, g_type : UInt<4>}}}, finish : {flip ready : UInt<1>, valid : UInt<1>, bits : {header : {src : UInt<2>, dst : UInt<2>}, payload : {manager_xact_id : UInt<2>}}}, flip probe : {flip ready : UInt<1>, valid : UInt<1>, bits : {header : {src : UInt<2>, dst : UInt<2>}, payload : {addr_block : UInt<26>, p_type : UInt<2>}}}, release : {flip ready : UInt<1>, valid : UInt<1>, bits : {header : {src : UInt<2>, dst : UInt<2>}, payload : {addr_block : UInt<26>, client_xact_id : UInt<1>, addr_beat : UInt<2>, data : UInt<128>, r_type : UInt<3>, voluntary : UInt<1>}}}}
+
+ wire T_168008 : UInt<3>[3]
+ T_168008[0] := UInt<3>(0)
+ T_168008[1] := UInt<3>(1)
+ T_168008[2] := UInt<3>(2)
+ wire T_168009 : UInt<2>[2]
+ T_168009[0] := UInt<2>(0)
+ T_168009[1] := UInt<2>(1)
+ wire T_168010 : UInt<2>[3]
+ T_168010[0] := UInt<2>(1)
+ T_168010[1] := UInt<2>(2)
+ T_168010[2] := UInt<2>(3)
+ wire T_168011 : UInt<2>[2]
+ T_168011[0] := UInt<2>(2)
+ T_168011[1] := UInt<2>(3)
+ wire T_168012 : UInt<2>[1]
+ T_168012[0] := UInt<2>(3)
+ wire T_168013 : UInt<3>[3]
+ T_168013[0] := UInt<3>(0)
+ T_168013[1] := UInt<3>(1)
+ T_168013[2] := UInt<3>(2)
+ wire T_168014 : UInt<2>[2]
+ T_168014[0] := UInt<2>(0)
+ T_168014[1] := UInt<2>(1)
+ wire T_168015 : UInt<2>[3]
+ T_168015[0] := UInt<2>(1)
+ T_168015[1] := UInt<2>(2)
+ T_168015[2] := UInt<2>(3)
+ wire T_168016 : UInt<2>[2]
+ T_168016[0] := UInt<2>(2)
+ T_168016[1] := UInt<2>(3)
+ wire T_168017 : UInt<2>[1]
+ T_168017[0] := UInt<2>(3)
+ wire T_168018 : UInt<3>[3]
+ T_168018[0] := UInt<3>(0)
+ T_168018[1] := UInt<3>(1)
+ T_168018[2] := UInt<3>(2)
+ wire T_168019 : UInt<2>[2]
+ T_168019[0] := UInt<2>(0)
+ T_168019[1] := UInt<2>(1)
+ wire T_168020 : UInt<2>[3]
+ T_168020[0] := UInt<2>(1)
+ T_168020[1] := UInt<2>(2)
+ T_168020[2] := UInt<2>(3)
+ wire T_168021 : UInt<2>[2]
+ T_168021[0] := UInt<2>(2)
+ T_168021[1] := UInt<2>(3)
+ wire T_168022 : UInt<2>[1]
+ T_168022[0] := UInt<2>(3)
+ wire T_168023 : UInt<3>[3]
+ T_168023[0] := UInt<3>(0)
+ T_168023[1] := UInt<3>(1)
+ T_168023[2] := UInt<3>(2)
+ wire T_168024 : UInt<2>[2]
+ T_168024[0] := UInt<2>(0)
+ T_168024[1] := UInt<2>(1)
+ wire T_168025 : UInt<2>[3]
+ T_168025[0] := UInt<2>(1)
+ T_168025[1] := UInt<2>(2)
+ T_168025[2] := UInt<2>(3)
+ wire T_168026 : UInt<2>[2]
+ T_168026[0] := UInt<2>(2)
+ T_168026[1] := UInt<2>(3)
+ wire T_168027 : UInt<2>[1]
+ T_168027[0] := UInt<2>(3)
+ wire T_168028 : UInt<3>[3]
+ T_168028[0] := UInt<3>(0)
+ T_168028[1] := UInt<3>(1)
+ T_168028[2] := UInt<3>(2)
+ wire T_168029 : UInt<2>[2]
+ T_168029[0] := UInt<2>(0)
+ T_168029[1] := UInt<2>(1)
+ wire T_168030 : UInt<2>[3]
+ T_168030[0] := UInt<2>(1)
+ T_168030[1] := UInt<2>(2)
+ T_168030[2] := UInt<2>(3)
+ wire T_168031 : UInt<2>[2]
+ T_168031[0] := UInt<2>(2)
+ T_168031[1] := UInt<2>(3)
+ wire T_168032 : UInt<2>[1]
+ T_168032[0] := UInt<2>(3)
+ wire T_168033 : UInt<3>[3]
+ T_168033[0] := UInt<3>(0)
+ T_168033[1] := UInt<3>(1)
+ T_168033[2] := UInt<3>(2)
+ wire T_168034 : UInt<2>[2]
+ T_168034[0] := UInt<2>(0)
+ T_168034[1] := UInt<2>(1)
+ wire T_168035 : UInt<2>[3]
+ T_168035[0] := UInt<2>(1)
+ T_168035[1] := UInt<2>(2)
+ T_168035[2] := UInt<2>(3)
+ wire T_168036 : UInt<2>[2]
+ T_168036[0] := UInt<2>(2)
+ T_168036[1] := UInt<2>(3)
+ wire T_168037 : UInt<2>[1]
+ T_168037[0] := UInt<2>(3)
+ wire T_168038 : UInt<3>[3]
+ T_168038[0] := UInt<3>(0)
+ T_168038[1] := UInt<3>(1)
+ T_168038[2] := UInt<3>(2)
+ wire T_168039 : UInt<2>[2]
+ T_168039[0] := UInt<2>(0)
+ T_168039[1] := UInt<2>(1)
+ wire T_168040 : UInt<2>[3]
+ T_168040[0] := UInt<2>(1)
+ T_168040[1] := UInt<2>(2)
+ T_168040[2] := UInt<2>(3)
+ wire T_168041 : UInt<2>[2]
+ T_168041[0] := UInt<2>(2)
+ T_168041[1] := UInt<2>(3)
+ wire T_168042 : UInt<2>[1]
+ T_168042[0] := UInt<2>(3)
+ wire T_168043 : UInt<3>[3]
+ T_168043[0] := UInt<3>(0)
+ T_168043[1] := UInt<3>(1)
+ T_168043[2] := UInt<3>(2)
+ wire T_168044 : UInt<2>[2]
+ T_168044[0] := UInt<2>(0)
+ T_168044[1] := UInt<2>(1)
+ wire T_168045 : UInt<2>[3]
+ T_168045[0] := UInt<2>(1)
+ T_168045[1] := UInt<2>(2)
+ T_168045[2] := UInt<2>(3)
+ wire T_168046 : UInt<2>[2]
+ T_168046[0] := UInt<2>(2)
+ T_168046[1] := UInt<2>(3)
+ wire T_168047 : UInt<2>[1]
+ T_168047[0] := UInt<2>(3)
+ wire T_168048 : UInt<3>[3]
+ T_168048[0] := UInt<3>(0)
+ T_168048[1] := UInt<3>(1)
+ T_168048[2] := UInt<3>(2)
+ wire T_168049 : UInt<2>[2]
+ T_168049[0] := UInt<2>(0)
+ T_168049[1] := UInt<2>(1)
+ wire T_168050 : UInt<2>[3]
+ T_168050[0] := UInt<2>(1)
+ T_168050[1] := UInt<2>(2)
+ T_168050[2] := UInt<2>(3)
+ wire T_168051 : UInt<2>[2]
+ T_168051[0] := UInt<2>(2)
+ T_168051[1] := UInt<2>(3)
+ wire T_168052 : UInt<2>[1]
+ T_168052[0] := UInt<2>(3)
+ wire T_168053 : UInt<3>[3]
+ T_168053[0] := UInt<3>(0)
+ T_168053[1] := UInt<3>(1)
+ T_168053[2] := UInt<3>(2)
+ wire T_168054 : UInt<2>[2]
+ T_168054[0] := UInt<2>(0)
+ T_168054[1] := UInt<2>(1)
+ wire T_168055 : UInt<2>[3]
+ T_168055[0] := UInt<2>(1)
+ T_168055[1] := UInt<2>(2)
+ T_168055[2] := UInt<2>(3)
+ wire T_168056 : UInt<2>[2]
+ T_168056[0] := UInt<2>(2)
+ T_168056[1] := UInt<2>(3)
+ wire T_168057 : UInt<2>[1]
+ T_168057[0] := UInt<2>(3)
+ wire T_168058 : UInt<3>[3]
+ T_168058[0] := UInt<3>(0)
+ T_168058[1] := UInt<3>(1)
+ T_168058[2] := UInt<3>(2)
+ wire T_168059 : UInt<2>[2]
+ T_168059[0] := UInt<2>(0)
+ T_168059[1] := UInt<2>(1)
+ wire T_168060 : UInt<2>[3]
+ T_168060[0] := UInt<2>(1)
+ T_168060[1] := UInt<2>(2)
+ T_168060[2] := UInt<2>(3)
+ wire T_168061 : UInt<2>[2]
+ T_168061[0] := UInt<2>(2)
+ T_168061[1] := UInt<2>(3)
+ wire T_168062 : UInt<2>[1]
+ T_168062[0] := UInt<2>(3)
+ wire T_168063 : UInt<3>[3]
+ T_168063[0] := UInt<3>(0)
+ T_168063[1] := UInt<3>(1)
+ T_168063[2] := UInt<3>(2)
+ wire T_168064 : UInt<2>[2]
+ T_168064[0] := UInt<2>(0)
+ T_168064[1] := UInt<2>(1)
+ wire T_168065 : UInt<2>[3]
+ T_168065[0] := UInt<2>(1)
+ T_168065[1] := UInt<2>(2)
+ T_168065[2] := UInt<2>(3)
+ wire T_168066 : UInt<2>[2]
+ T_168066[0] := UInt<2>(2)
+ T_168066[1] := UInt<2>(3)
+ wire T_168067 : UInt<2>[1]
+ T_168067[0] := UInt<2>(3)
+ wire T_168068 : UInt<3>[3]
+ T_168068[0] := UInt<3>(0)
+ T_168068[1] := UInt<3>(1)
+ T_168068[2] := UInt<3>(2)
+ wire T_168069 : UInt<2>[2]
+ T_168069[0] := UInt<2>(0)
+ T_168069[1] := UInt<2>(1)
+ wire T_168070 : UInt<2>[3]
+ T_168070[0] := UInt<2>(1)
+ T_168070[1] := UInt<2>(2)
+ T_168070[2] := UInt<2>(3)
+ wire T_168071 : UInt<2>[2]
+ T_168071[0] := UInt<2>(2)
+ T_168071[1] := UInt<2>(3)
+ wire T_168072 : UInt<2>[1]
+ T_168072[0] := UInt<2>(3)
+ wire T_168073 : UInt<3>[3]
+ T_168073[0] := UInt<3>(0)
+ T_168073[1] := UInt<3>(1)
+ T_168073[2] := UInt<3>(2)
+ wire T_168074 : UInt<2>[2]
+ T_168074[0] := UInt<2>(0)
+ T_168074[1] := UInt<2>(1)
+ wire T_168075 : UInt<2>[3]
+ T_168075[0] := UInt<2>(1)
+ T_168075[1] := UInt<2>(2)
+ T_168075[2] := UInt<2>(3)
+ wire T_168076 : UInt<2>[2]
+ T_168076[0] := UInt<2>(2)
+ T_168076[1] := UInt<2>(3)
+ wire T_168077 : UInt<2>[1]
+ T_168077[0] := UInt<2>(3)
+ wire T_168078 : UInt<3>[3]
+ T_168078[0] := UInt<3>(0)
+ T_168078[1] := UInt<3>(1)
+ T_168078[2] := UInt<3>(2)
+ wire T_168079 : UInt<2>[2]
+ T_168079[0] := UInt<2>(0)
+ T_168079[1] := UInt<2>(1)
+ wire T_168080 : UInt<2>[3]
+ T_168080[0] := UInt<2>(1)
+ T_168080[1] := UInt<2>(2)
+ T_168080[2] := UInt<2>(3)
+ wire T_168081 : UInt<2>[2]
+ T_168081[0] := UInt<2>(2)
+ T_168081[1] := UInt<2>(3)
+ wire T_168082 : UInt<2>[1]
+ T_168082[0] := UInt<2>(3)
+ wire T_168083 : UInt<3>[3]
+ T_168083[0] := UInt<3>(0)
+ T_168083[1] := UInt<3>(1)
+ T_168083[2] := UInt<3>(2)
+ wire T_168084 : UInt<2>[2]
+ T_168084[0] := UInt<2>(0)
+ T_168084[1] := UInt<2>(1)
+ wire T_168085 : UInt<2>[3]
+ T_168085[0] := UInt<2>(1)
+ T_168085[1] := UInt<2>(2)
+ T_168085[2] := UInt<2>(3)
+ wire T_168086 : UInt<2>[2]
+ T_168086[0] := UInt<2>(2)
+ T_168086[1] := UInt<2>(3)
+ wire T_168087 : UInt<2>[1]
+ T_168087[0] := UInt<2>(3)
+ wire T_168088 : UInt<3>[3]
+ T_168088[0] := UInt<3>(0)
+ T_168088[1] := UInt<3>(1)
+ T_168088[2] := UInt<3>(2)
+ wire T_168089 : UInt<2>[2]
+ T_168089[0] := UInt<2>(0)
+ T_168089[1] := UInt<2>(1)
+ wire T_168090 : UInt<2>[3]
+ T_168090[0] := UInt<2>(1)
+ T_168090[1] := UInt<2>(2)
+ T_168090[2] := UInt<2>(3)
+ wire T_168091 : UInt<2>[2]
+ T_168091[0] := UInt<2>(2)
+ T_168091[1] := UInt<2>(3)
+ wire T_168092 : UInt<2>[1]
+ T_168092[0] := UInt<2>(3)
+ wire T_168093 : UInt<3>[3]
+ T_168093[0] := UInt<3>(0)
+ T_168093[1] := UInt<3>(1)
+ T_168093[2] := UInt<3>(2)
+ wire T_168094 : UInt<2>[2]
+ T_168094[0] := UInt<2>(0)
+ T_168094[1] := UInt<2>(1)
+ wire T_168095 : UInt<2>[3]
+ T_168095[0] := UInt<2>(1)
+ T_168095[1] := UInt<2>(2)
+ T_168095[2] := UInt<2>(3)
+ wire T_168096 : UInt<2>[2]
+ T_168096[0] := UInt<2>(2)
+ T_168096[1] := UInt<2>(3)
+ wire T_168097 : UInt<2>[1]
+ T_168097[0] := UInt<2>(3)
+ wire T_168098 : UInt<3>[3]
+ T_168098[0] := UInt<3>(0)
+ T_168098[1] := UInt<3>(1)
+ T_168098[2] := UInt<3>(2)
+ wire T_168099 : UInt<2>[2]
+ T_168099[0] := UInt<2>(0)
+ T_168099[1] := UInt<2>(1)
+ wire T_168100 : UInt<2>[3]
+ T_168100[0] := UInt<2>(1)
+ T_168100[1] := UInt<2>(2)
+ T_168100[2] := UInt<2>(3)
+ wire T_168101 : UInt<2>[2]
+ T_168101[0] := UInt<2>(2)
+ T_168101[1] := UInt<2>(3)
+ wire T_168102 : UInt<2>[1]
+ T_168102[0] := UInt<2>(3)
+ wire T_168103 : UInt<3>[3]
+ T_168103[0] := UInt<3>(0)
+ T_168103[1] := UInt<3>(1)
+ T_168103[2] := UInt<3>(2)
+ wire T_168104 : UInt<2>[2]
+ T_168104[0] := UInt<2>(0)
+ T_168104[1] := UInt<2>(1)
+ wire T_168105 : UInt<2>[3]
+ T_168105[0] := UInt<2>(1)
+ T_168105[1] := UInt<2>(2)
+ T_168105[2] := UInt<2>(3)
+ wire T_168106 : UInt<2>[2]
+ T_168106[0] := UInt<2>(2)
+ T_168106[1] := UInt<2>(3)
+ wire T_168107 : UInt<2>[1]
+ T_168107[0] := UInt<2>(3)
+ wire T_168108 : UInt<3>[3]
+ T_168108[0] := UInt<3>(0)
+ T_168108[1] := UInt<3>(1)
+ T_168108[2] := UInt<3>(2)
+ wire T_168109 : UInt<2>[2]
+ T_168109[0] := UInt<2>(0)
+ T_168109[1] := UInt<2>(1)
+ wire T_168110 : UInt<2>[3]
+ T_168110[0] := UInt<2>(1)
+ T_168110[1] := UInt<2>(2)
+ T_168110[2] := UInt<2>(3)
+ wire T_168111 : UInt<2>[2]
+ T_168111[0] := UInt<2>(2)
+ T_168111[1] := UInt<2>(3)
+ wire T_168112 : UInt<2>[1]
+ T_168112[0] := UInt<2>(3)
+ wire T_168113 : UInt<3>[3]
+ T_168113[0] := UInt<3>(0)
+ T_168113[1] := UInt<3>(1)
+ T_168113[2] := UInt<3>(2)
+ wire T_168114 : UInt<2>[2]
+ T_168114[0] := UInt<2>(0)
+ T_168114[1] := UInt<2>(1)
+ wire T_168115 : UInt<2>[3]
+ T_168115[0] := UInt<2>(1)
+ T_168115[1] := UInt<2>(2)
+ T_168115[2] := UInt<2>(3)
+ wire T_168116 : UInt<2>[2]
+ T_168116[0] := UInt<2>(2)
+ T_168116[1] := UInt<2>(3)
+ wire T_168117 : UInt<2>[1]
+ T_168117[0] := UInt<2>(3)
+ wire T_168118 : UInt<3>[3]
+ T_168118[0] := UInt<3>(0)
+ T_168118[1] := UInt<3>(1)
+ T_168118[2] := UInt<3>(2)
+ wire T_168119 : UInt<2>[2]
+ T_168119[0] := UInt<2>(0)
+ T_168119[1] := UInt<2>(1)
+ wire T_168120 : UInt<2>[3]
+ T_168120[0] := UInt<2>(1)
+ T_168120[1] := UInt<2>(2)
+ T_168120[2] := UInt<2>(3)
+ wire T_168121 : UInt<2>[2]
+ T_168121[0] := UInt<2>(2)
+ T_168121[1] := UInt<2>(3)
+ wire T_168122 : UInt<2>[1]
+ T_168122[0] := UInt<2>(3)
+ wire T_168123 : UInt<3>[3]
+ T_168123[0] := UInt<3>(0)
+ T_168123[1] := UInt<3>(1)
+ T_168123[2] := UInt<3>(2)
+ wire T_168124 : UInt<2>[2]
+ T_168124[0] := UInt<2>(0)
+ T_168124[1] := UInt<2>(1)
+ wire T_168125 : UInt<2>[3]
+ T_168125[0] := UInt<2>(1)
+ T_168125[1] := UInt<2>(2)
+ T_168125[2] := UInt<2>(3)
+ wire T_168126 : UInt<2>[2]
+ T_168126[0] := UInt<2>(2)
+ T_168126[1] := UInt<2>(3)
+ wire T_168127 : UInt<2>[1]
+ T_168127[0] := UInt<2>(3)
+ wire T_168128 : UInt<3>[3]
+ T_168128[0] := UInt<3>(0)
+ T_168128[1] := UInt<3>(1)
+ T_168128[2] := UInt<3>(2)
+ wire T_168129 : UInt<2>[2]
+ T_168129[0] := UInt<2>(0)
+ T_168129[1] := UInt<2>(1)
+ wire T_168130 : UInt<2>[3]
+ T_168130[0] := UInt<2>(1)
+ T_168130[1] := UInt<2>(2)
+ T_168130[2] := UInt<2>(3)
+ wire T_168131 : UInt<2>[2]
+ T_168131[0] := UInt<2>(2)
+ T_168131[1] := UInt<2>(3)
+ wire T_168132 : UInt<2>[1]
+ T_168132[0] := UInt<2>(3)
+ wire T_168133 : UInt<3>[3]
+ T_168133[0] := UInt<3>(0)
+ T_168133[1] := UInt<3>(1)
+ T_168133[2] := UInt<3>(2)
+ wire T_168134 : UInt<2>[2]
+ T_168134[0] := UInt<2>(0)
+ T_168134[1] := UInt<2>(1)
+ wire T_168135 : UInt<2>[3]
+ T_168135[0] := UInt<2>(1)
+ T_168135[1] := UInt<2>(2)
+ T_168135[2] := UInt<2>(3)
+ wire T_168136 : UInt<2>[2]
+ T_168136[0] := UInt<2>(2)
+ T_168136[1] := UInt<2>(3)
+ wire T_168137 : UInt<2>[1]
+ T_168137[0] := UInt<2>(3)
+ inst finisher of FinishUnit_35200
+ finisher.grant <> network.grant
+ network.finish <> finisher.finish
+ wire T_168138 : UInt<3>[3]
+ T_168138[0] := UInt<3>(0)
+ T_168138[1] := UInt<3>(1)
+ T_168138[2] := UInt<3>(2)
+ wire T_168139 : UInt<2>[2]
+ T_168139[0] := UInt<2>(0)
+ T_168139[1] := UInt<2>(1)
+ wire T_168140 : UInt<2>[3]
+ T_168140[0] := UInt<2>(1)
+ T_168140[1] := UInt<2>(2)
+ T_168140[2] := UInt<2>(3)
+ wire T_168141 : UInt<2>[2]
+ T_168141[0] := UInt<2>(2)
+ T_168141[1] := UInt<2>(3)
+ wire T_168142 : UInt<2>[1]
+ T_168142[0] := UInt<2>(3)
+ wire T_168143 : UInt<3>[3]
+ T_168143[0] := UInt<3>(0)
+ T_168143[1] := UInt<3>(1)
+ T_168143[2] := UInt<3>(2)
+ wire T_168144 : UInt<2>[2]
+ T_168144[0] := UInt<2>(0)
+ T_168144[1] := UInt<2>(1)
+ wire T_168145 : UInt<2>[3]
+ T_168145[0] := UInt<2>(1)
+ T_168145[1] := UInt<2>(2)
+ T_168145[2] := UInt<2>(3)
+ wire T_168146 : UInt<2>[2]
+ T_168146[0] := UInt<2>(2)
+ T_168146[1] := UInt<2>(3)
+ wire T_168147 : UInt<2>[1]
+ T_168147[0] := UInt<2>(3)
+ wire T_168148 : UInt<3>[3]
+ T_168148[0] := UInt<3>(0)
+ T_168148[1] := UInt<3>(1)
+ T_168148[2] := UInt<3>(2)
+ wire T_168149 : UInt<2>[2]
+ T_168149[0] := UInt<2>(0)
+ T_168149[1] := UInt<2>(1)
+ wire T_168150 : UInt<2>[3]
+ T_168150[0] := UInt<2>(1)
+ T_168150[1] := UInt<2>(2)
+ T_168150[2] := UInt<2>(3)
+ wire T_168151 : UInt<2>[2]
+ T_168151[0] := UInt<2>(2)
+ T_168151[1] := UInt<2>(3)
+ wire T_168152 : UInt<2>[1]
+ T_168152[0] := UInt<2>(3)
+ wire acq_with_header : {flip ready : UInt<1>, valid : UInt<1>, bits : {header : {src : UInt<2>, dst : UInt<2>}, payload : {addr_block : UInt<26>, client_xact_id : UInt<1>, addr_beat : UInt<2>, data : UInt<128>, is_builtin_type : UInt<1>, a_type : UInt<3>, union : UInt<17>}}}
+ acq_with_header.bits.payload := client.acquire.bits
+ acq_with_header.bits.header.src := UInt<2>(2)
+ acq_with_header.bits.header.dst := UInt<1>(0)
+ acq_with_header.valid := client.acquire.valid
+ client.acquire.ready := acq_with_header.ready
+ wire T_168153 : UInt<3>[3]
+ T_168153[0] := UInt<3>(0)
+ T_168153[1] := UInt<3>(1)
+ T_168153[2] := UInt<3>(2)
+ wire T_168154 : UInt<2>[2]
+ T_168154[0] := UInt<2>(0)
+ T_168154[1] := UInt<2>(1)
+ wire T_168155 : UInt<2>[3]
+ T_168155[0] := UInt<2>(1)
+ T_168155[1] := UInt<2>(2)
+ T_168155[2] := UInt<2>(3)
+ wire T_168156 : UInt<2>[2]
+ T_168156[0] := UInt<2>(2)
+ T_168156[1] := UInt<2>(3)
+ wire T_168157 : UInt<2>[1]
+ T_168157[0] := UInt<2>(3)
+ wire T_168158 : UInt<3>[3]
+ T_168158[0] := UInt<3>(0)
+ T_168158[1] := UInt<3>(1)
+ T_168158[2] := UInt<3>(2)
+ wire T_168159 : UInt<2>[2]
+ T_168159[0] := UInt<2>(0)
+ T_168159[1] := UInt<2>(1)
+ wire T_168160 : UInt<2>[3]
+ T_168160[0] := UInt<2>(1)
+ T_168160[1] := UInt<2>(2)
+ T_168160[2] := UInt<2>(3)
+ wire T_168161 : UInt<2>[2]
+ T_168161[0] := UInt<2>(2)
+ T_168161[1] := UInt<2>(3)
+ wire T_168162 : UInt<2>[1]
+ T_168162[0] := UInt<2>(3)
+ wire T_168163 : UInt<3>[3]
+ T_168163[0] := UInt<3>(0)
+ T_168163[1] := UInt<3>(1)
+ T_168163[2] := UInt<3>(2)
+ wire T_168164 : UInt<2>[2]
+ T_168164[0] := UInt<2>(0)
+ T_168164[1] := UInt<2>(1)
+ wire T_168165 : UInt<2>[3]
+ T_168165[0] := UInt<2>(1)
+ T_168165[1] := UInt<2>(2)
+ T_168165[2] := UInt<2>(3)
+ wire T_168166 : UInt<2>[2]
+ T_168166[0] := UInt<2>(2)
+ T_168166[1] := UInt<2>(3)
+ wire T_168167 : UInt<2>[1]
+ T_168167[0] := UInt<2>(3)
+ wire rel_with_header : {flip ready : UInt<1>, valid : UInt<1>, bits : {header : {src : UInt<2>, dst : UInt<2>}, payload : {addr_block : UInt<26>, client_xact_id : UInt<1>, addr_beat : UInt<2>, data : UInt<128>, r_type : UInt<3>, voluntary : UInt<1>}}}
+ rel_with_header.bits.payload := client.release.bits
+ rel_with_header.bits.header.src := UInt<2>(2)
+ rel_with_header.bits.header.dst := UInt<1>(0)
+ rel_with_header.valid := client.release.valid
+ client.release.ready := rel_with_header.ready
+ wire T_168168 : UInt<3>[3]
+ T_168168[0] := UInt<3>(0)
+ T_168168[1] := UInt<3>(1)
+ T_168168[2] := UInt<3>(2)
+ wire T_168169 : UInt<2>[2]
+ T_168169[0] := UInt<2>(0)
+ T_168169[1] := UInt<2>(1)
+ wire T_168170 : UInt<2>[3]
+ T_168170[0] := UInt<2>(1)
+ T_168170[1] := UInt<2>(2)
+ T_168170[2] := UInt<2>(3)
+ wire T_168171 : UInt<2>[2]
+ T_168171[0] := UInt<2>(2)
+ T_168171[1] := UInt<2>(3)
+ wire T_168172 : UInt<2>[1]
+ T_168172[0] := UInt<2>(3)
+ wire T_168173 : UInt<3>[3]
+ T_168173[0] := UInt<3>(0)
+ T_168173[1] := UInt<3>(1)
+ T_168173[2] := UInt<3>(2)
+ wire T_168174 : UInt<2>[2]
+ T_168174[0] := UInt<2>(0)
+ T_168174[1] := UInt<2>(1)
+ wire T_168175 : UInt<2>[3]
+ T_168175[0] := UInt<2>(1)
+ T_168175[1] := UInt<2>(2)
+ T_168175[2] := UInt<2>(3)
+ wire T_168176 : UInt<2>[2]
+ T_168176[0] := UInt<2>(2)
+ T_168176[1] := UInt<2>(3)
+ wire T_168177 : UInt<2>[1]
+ T_168177[0] := UInt<2>(3)
+ wire prb_without_header : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_block : UInt<26>, p_type : UInt<2>}}
+ prb_without_header.valid := network.probe.valid
+ prb_without_header.bits := network.probe.bits.payload
+ network.probe.ready := prb_without_header.ready
+ network.acquire.bits := acq_with_header.bits
+ node T_168178 = and(acq_with_header.valid, finisher.ready)
+ network.acquire.valid := T_168178
+ node T_168179 = and(network.acquire.ready, finisher.ready)
+ acq_with_header.ready := T_168179
+ network.release <> rel_with_header
+ client.probe <> prb_without_header
+ client.grant <> finisher.refill
+ module Queue_38541 :
+ input enq : {flip ready : UInt<1>, valid : UInt<1>, bits : {header : {src : UInt<2>, dst : UInt<2>}, payload : {addr_block : UInt<26>, client_xact_id : UInt<1>, addr_beat : UInt<2>, data : UInt<128>, is_builtin_type : UInt<1>, a_type : UInt<3>, union : UInt<17>}}}
+ output deq : {flip ready : UInt<1>, valid : UInt<1>, bits : {header : {src : UInt<2>, dst : UInt<2>}, payload : {addr_block : UInt<26>, client_xact_id : UInt<1>, addr_beat : UInt<2>, data : UInt<128>, is_builtin_type : UInt<1>, a_type : UInt<3>, union : UInt<17>}}}
+ output count : UInt<2>
+
+ wire T_168180 : UInt<3>[3]
+ T_168180[0] := UInt<3>(0)
+ T_168180[1] := UInt<3>(1)
+ T_168180[2] := UInt<3>(2)
+ wire T_168181 : UInt<2>[2]
+ T_168181[0] := UInt<2>(0)
+ T_168181[1] := UInt<2>(1)
+ wire T_168182 : UInt<2>[3]
+ T_168182[0] := UInt<2>(1)
+ T_168182[1] := UInt<2>(2)
+ T_168182[2] := UInt<2>(3)
+ wire T_168183 : UInt<2>[2]
+ T_168183[0] := UInt<2>(2)
+ T_168183[1] := UInt<2>(3)
+ wire T_168184 : UInt<2>[1]
+ T_168184[0] := UInt<2>(3)
+ wire T_168185 : UInt<3>[3]
+ T_168185[0] := UInt<3>(0)
+ T_168185[1] := UInt<3>(1)
+ T_168185[2] := UInt<3>(2)
+ wire T_168186 : UInt<2>[2]
+ T_168186[0] := UInt<2>(0)
+ T_168186[1] := UInt<2>(1)
+ wire T_168187 : UInt<2>[3]
+ T_168187[0] := UInt<2>(1)
+ T_168187[1] := UInt<2>(2)
+ T_168187[2] := UInt<2>(3)
+ wire T_168188 : UInt<2>[2]
+ T_168188[0] := UInt<2>(2)
+ T_168188[1] := UInt<2>(3)
+ wire T_168189 : UInt<2>[1]
+ T_168189[0] := UInt<2>(3)
+ wire T_168190 : UInt<3>[3]
+ T_168190[0] := UInt<3>(0)
+ T_168190[1] := UInt<3>(1)
+ T_168190[2] := UInt<3>(2)
+ wire T_168191 : UInt<2>[2]
+ T_168191[0] := UInt<2>(0)
+ T_168191[1] := UInt<2>(1)
+ wire T_168192 : UInt<2>[3]
+ T_168192[0] := UInt<2>(1)
+ T_168192[1] := UInt<2>(2)
+ T_168192[2] := UInt<2>(3)
+ wire T_168193 : UInt<2>[2]
+ T_168193[0] := UInt<2>(2)
+ T_168193[1] := UInt<2>(3)
+ wire T_168194 : UInt<2>[1]
+ T_168194[0] := UInt<2>(3)
+ wire T_168195 : UInt<3>[3]
+ T_168195[0] := UInt<3>(0)
+ T_168195[1] := UInt<3>(1)
+ T_168195[2] := UInt<3>(2)
+ wire T_168196 : UInt<2>[2]
+ T_168196[0] := UInt<2>(0)
+ T_168196[1] := UInt<2>(1)
+ wire T_168197 : UInt<2>[3]
+ T_168197[0] := UInt<2>(1)
+ T_168197[1] := UInt<2>(2)
+ T_168197[2] := UInt<2>(3)
+ wire T_168198 : UInt<2>[2]
+ T_168198[0] := UInt<2>(2)
+ T_168198[1] := UInt<2>(3)
+ wire T_168199 : UInt<2>[1]
+ T_168199[0] := UInt<2>(3)
+ wire T_168200 : UInt<3>[3]
+ T_168200[0] := UInt<3>(0)
+ T_168200[1] := UInt<3>(1)
+ T_168200[2] := UInt<3>(2)
+ wire T_168201 : UInt<2>[2]
+ T_168201[0] := UInt<2>(0)
+ T_168201[1] := UInt<2>(1)
+ wire T_168202 : UInt<2>[3]
+ T_168202[0] := UInt<2>(1)
+ T_168202[1] := UInt<2>(2)
+ T_168202[2] := UInt<2>(3)
+ wire T_168203 : UInt<2>[2]
+ T_168203[0] := UInt<2>(2)
+ T_168203[1] := UInt<2>(3)
+ wire T_168204 : UInt<2>[1]
+ T_168204[0] := UInt<2>(3)
+ cmem ram : {header : {src : UInt<2>, dst : UInt<2>}, payload : {addr_block : UInt<26>, client_xact_id : UInt<1>, addr_beat : UInt<2>, data : UInt<128>, is_builtin_type : UInt<1>, a_type : UInt<3>, union : UInt<17>}}[2]
+ reg T_168205 : UInt<1>
+ onreset T_168205 := UInt<1>(0)
+ reg T_168206 : UInt<1>
+ onreset T_168206 := UInt<1>(0)
+ reg maybe_full : UInt<1>
+ onreset maybe_full := UInt<1>(0)
+ node ptr_match = eq(T_168205, T_168206)
+ node T_168207 = eq(maybe_full, UInt<1>(0))
+ node empty = and(ptr_match, T_168207)
+ node full = and(ptr_match, maybe_full)
+ node maybe_flow = and(UInt<1>(0), empty)
+ node do_flow = and(maybe_flow, deq.ready)
+ node T_168208 = and(enq.ready, enq.valid)
+ node T_168209 = eq(do_flow, UInt<1>(0))
+ node do_enq = and(T_168208, T_168209)
+ node T_168210 = and(deq.ready, deq.valid)
+ node T_168211 = eq(do_flow, UInt<1>(0))
+ node do_deq = and(T_168210, T_168211)
+ when do_enq :
+ wire T_168212 : UInt<3>[3]
+ T_168212[0] := UInt<3>(0)
+ T_168212[1] := UInt<3>(1)
+ T_168212[2] := UInt<3>(2)
+ wire T_168213 : UInt<2>[2]
+ T_168213[0] := UInt<2>(0)
+ T_168213[1] := UInt<2>(1)
+ wire T_168214 : UInt<2>[3]
+ T_168214[0] := UInt<2>(1)
+ T_168214[1] := UInt<2>(2)
+ T_168214[2] := UInt<2>(3)
+ wire T_168215 : UInt<2>[2]
+ T_168215[0] := UInt<2>(2)
+ T_168215[1] := UInt<2>(3)
+ wire T_168216 : UInt<2>[1]
+ T_168216[0] := UInt<2>(3)
+ accessor T_168217 = ram[T_168205]
+ T_168217 := enq.bits
+ node T_168218 = eq(T_168205, UInt<1>(1))
+ node T_168219 = and(UInt<1>(0), T_168218)
+ node T_168220 = addw(T_168205, UInt<1>(1))
+ wire T_168221 : UInt<1>
+ T_168221 := T_168220
+ when T_168219 : T_168221 := UInt<1>(0)
+ T_168205 := T_168221
+ when do_deq :
+ node T_168222 = eq(T_168206, UInt<1>(1))
+ node T_168223 = and(UInt<1>(0), T_168222)
+ node T_168224 = addw(T_168206, UInt<1>(1))
+ wire T_168225 : UInt<1>
+ T_168225 := T_168224
+ when T_168223 : T_168225 := UInt<1>(0)
+ T_168206 := T_168225
+
+ node T_168226 = neq(do_enq, do_deq)
+ when T_168226 : maybe_full := do_enq
+ node T_168227 = eq(empty, UInt<1>(0))
+ node T_168228 = and(UInt<1>(0), enq.valid)
+ node T_168229 = or(T_168227, T_168228)
+ deq.valid := T_168229
+ node T_168230 = eq(full, UInt<1>(0))
+ node T_168231 = and(UInt<1>(0), deq.ready)
+ node T_168232 = or(T_168230, T_168231)
+ enq.ready := T_168232
+ wire T_168233 : UInt<3>[3]
+ T_168233[0] := UInt<3>(0)
+ T_168233[1] := UInt<3>(1)
+ T_168233[2] := UInt<3>(2)
+ wire T_168234 : UInt<2>[2]
+ T_168234[0] := UInt<2>(0)
+ T_168234[1] := UInt<2>(1)
+ wire T_168235 : UInt<2>[3]
+ T_168235[0] := UInt<2>(1)
+ T_168235[1] := UInt<2>(2)
+ T_168235[2] := UInt<2>(3)
+ wire T_168236 : UInt<2>[2]
+ T_168236[0] := UInt<2>(2)
+ T_168236[1] := UInt<2>(3)
+ wire T_168237 : UInt<2>[1]
+ T_168237[0] := UInt<2>(3)
+ accessor T_168238 = ram[T_168206]
+ wire T_168239 : UInt<3>[3]
+ T_168239[0] := UInt<3>(0)
+ T_168239[1] := UInt<3>(1)
+ T_168239[2] := UInt<3>(2)
+ wire T_168240 : UInt<2>[2]
+ T_168240[0] := UInt<2>(0)
+ T_168240[1] := UInt<2>(1)
+ wire T_168241 : UInt<2>[3]
+ T_168241[0] := UInt<2>(1)
+ T_168241[1] := UInt<2>(2)
+ T_168241[2] := UInt<2>(3)
+ wire T_168242 : UInt<2>[2]
+ T_168242[0] := UInt<2>(2)
+ T_168242[1] := UInt<2>(3)
+ wire T_168243 : UInt<2>[1]
+ T_168243[0] := UInt<2>(3)
+ wire T_168244 : {header : {src : UInt<2>, dst : UInt<2>}, payload : {addr_block : UInt<26>, client_xact_id : UInt<1>, addr_beat : UInt<2>, data : UInt<128>, is_builtin_type : UInt<1>, a_type : UInt<3>, union : UInt<17>}}
+ T_168244 := T_168238
+ when maybe_flow : T_168244 := enq.bits
+ deq.bits := T_168244
+ node ptr_diff = subw(T_168205, T_168206)
+ node T_168245 = and(maybe_full, ptr_match)
+ node T_168246 = cat(T_168245, ptr_diff)
+ count := T_168246
+ module Queue_39180 :
+ input enq : {flip ready : UInt<1>, valid : UInt<1>, bits : {header : {src : UInt<2>, dst : UInt<2>}, payload : {addr_block : UInt<26>, p_type : UInt<2>}}}
+ output deq : {flip ready : UInt<1>, valid : UInt<1>, bits : {header : {src : UInt<2>, dst : UInt<2>}, payload : {addr_block : UInt<26>, p_type : UInt<2>}}}
+ output count : UInt<2>
+
+ wire T_168247 : UInt<3>[3]
+ T_168247[0] := UInt<3>(0)
+ T_168247[1] := UInt<3>(1)
+ T_168247[2] := UInt<3>(2)
+ wire T_168248 : UInt<2>[2]
+ T_168248[0] := UInt<2>(0)
+ T_168248[1] := UInt<2>(1)
+ wire T_168249 : UInt<2>[3]
+ T_168249[0] := UInt<2>(1)
+ T_168249[1] := UInt<2>(2)
+ T_168249[2] := UInt<2>(3)
+ wire T_168250 : UInt<2>[2]
+ T_168250[0] := UInt<2>(2)
+ T_168250[1] := UInt<2>(3)
+ wire T_168251 : UInt<2>[1]
+ T_168251[0] := UInt<2>(3)
+ wire T_168252 : UInt<3>[3]
+ T_168252[0] := UInt<3>(0)
+ T_168252[1] := UInt<3>(1)
+ T_168252[2] := UInt<3>(2)
+ wire T_168253 : UInt<2>[2]
+ T_168253[0] := UInt<2>(0)
+ T_168253[1] := UInt<2>(1)
+ wire T_168254 : UInt<2>[3]
+ T_168254[0] := UInt<2>(1)
+ T_168254[1] := UInt<2>(2)
+ T_168254[2] := UInt<2>(3)
+ wire T_168255 : UInt<2>[2]
+ T_168255[0] := UInt<2>(2)
+ T_168255[1] := UInt<2>(3)
+ wire T_168256 : UInt<2>[1]
+ T_168256[0] := UInt<2>(3)
+ wire T_168257 : UInt<3>[3]
+ T_168257[0] := UInt<3>(0)
+ T_168257[1] := UInt<3>(1)
+ T_168257[2] := UInt<3>(2)
+ wire T_168258 : UInt<2>[2]
+ T_168258[0] := UInt<2>(0)
+ T_168258[1] := UInt<2>(1)
+ wire T_168259 : UInt<2>[3]
+ T_168259[0] := UInt<2>(1)
+ T_168259[1] := UInt<2>(2)
+ T_168259[2] := UInt<2>(3)
+ wire T_168260 : UInt<2>[2]
+ T_168260[0] := UInt<2>(2)
+ T_168260[1] := UInt<2>(3)
+ wire T_168261 : UInt<2>[1]
+ T_168261[0] := UInt<2>(3)
+ wire T_168262 : UInt<3>[3]
+ T_168262[0] := UInt<3>(0)
+ T_168262[1] := UInt<3>(1)
+ T_168262[2] := UInt<3>(2)
+ wire T_168263 : UInt<2>[2]
+ T_168263[0] := UInt<2>(0)
+ T_168263[1] := UInt<2>(1)
+ wire T_168264 : UInt<2>[3]
+ T_168264[0] := UInt<2>(1)
+ T_168264[1] := UInt<2>(2)
+ T_168264[2] := UInt<2>(3)
+ wire T_168265 : UInt<2>[2]
+ T_168265[0] := UInt<2>(2)
+ T_168265[1] := UInt<2>(3)
+ wire T_168266 : UInt<2>[1]
+ T_168266[0] := UInt<2>(3)
+ wire T_168267 : UInt<3>[3]
+ T_168267[0] := UInt<3>(0)
+ T_168267[1] := UInt<3>(1)
+ T_168267[2] := UInt<3>(2)
+ wire T_168268 : UInt<2>[2]
+ T_168268[0] := UInt<2>(0)
+ T_168268[1] := UInt<2>(1)
+ wire T_168269 : UInt<2>[3]
+ T_168269[0] := UInt<2>(1)
+ T_168269[1] := UInt<2>(2)
+ T_168269[2] := UInt<2>(3)
+ wire T_168270 : UInt<2>[2]
+ T_168270[0] := UInt<2>(2)
+ T_168270[1] := UInt<2>(3)
+ wire T_168271 : UInt<2>[1]
+ T_168271[0] := UInt<2>(3)
+ cmem ram : {header : {src : UInt<2>, dst : UInt<2>}, payload : {addr_block : UInt<26>, p_type : UInt<2>}}[2]
+ reg T_168272 : UInt<1>
+ onreset T_168272 := UInt<1>(0)
+ reg T_168273 : UInt<1>
+ onreset T_168273 := UInt<1>(0)
+ reg maybe_full : UInt<1>
+ onreset maybe_full := UInt<1>(0)
+ node ptr_match = eq(T_168272, T_168273)
+ node T_168274 = eq(maybe_full, UInt<1>(0))
+ node empty = and(ptr_match, T_168274)
+ node full = and(ptr_match, maybe_full)
+ node maybe_flow = and(UInt<1>(0), empty)
+ node do_flow = and(maybe_flow, deq.ready)
+ node T_168275 = and(enq.ready, enq.valid)
+ node T_168276 = eq(do_flow, UInt<1>(0))
+ node do_enq = and(T_168275, T_168276)
+ node T_168277 = and(deq.ready, deq.valid)
+ node T_168278 = eq(do_flow, UInt<1>(0))
+ node do_deq = and(T_168277, T_168278)
+ when do_enq :
+ wire T_168279 : UInt<3>[3]
+ T_168279[0] := UInt<3>(0)
+ T_168279[1] := UInt<3>(1)
+ T_168279[2] := UInt<3>(2)
+ wire T_168280 : UInt<2>[2]
+ T_168280[0] := UInt<2>(0)
+ T_168280[1] := UInt<2>(1)
+ wire T_168281 : UInt<2>[3]
+ T_168281[0] := UInt<2>(1)
+ T_168281[1] := UInt<2>(2)
+ T_168281[2] := UInt<2>(3)
+ wire T_168282 : UInt<2>[2]
+ T_168282[0] := UInt<2>(2)
+ T_168282[1] := UInt<2>(3)
+ wire T_168283 : UInt<2>[1]
+ T_168283[0] := UInt<2>(3)
+ accessor T_168284 = ram[T_168272]
+ T_168284 := enq.bits
+ node T_168285 = eq(T_168272, UInt<1>(1))
+ node T_168286 = and(UInt<1>(0), T_168285)
+ node T_168287 = addw(T_168272, UInt<1>(1))
+ wire T_168288 : UInt<1>
+ T_168288 := T_168287
+ when T_168286 : T_168288 := UInt<1>(0)
+ T_168272 := T_168288
+ when do_deq :
+ node T_168289 = eq(T_168273, UInt<1>(1))
+ node T_168290 = and(UInt<1>(0), T_168289)
+ node T_168291 = addw(T_168273, UInt<1>(1))
+ wire T_168292 : UInt<1>
+ T_168292 := T_168291
+ when T_168290 : T_168292 := UInt<1>(0)
+ T_168273 := T_168292
+
+ node T_168293 = neq(do_enq, do_deq)
+ when T_168293 : maybe_full := do_enq
+ node T_168294 = eq(empty, UInt<1>(0))
+ node T_168295 = and(UInt<1>(0), enq.valid)
+ node T_168296 = or(T_168294, T_168295)
+ deq.valid := T_168296
+ node T_168297 = eq(full, UInt<1>(0))
+ node T_168298 = and(UInt<1>(0), deq.ready)
+ node T_168299 = or(T_168297, T_168298)
+ enq.ready := T_168299
+ wire T_168300 : UInt<3>[3]
+ T_168300[0] := UInt<3>(0)
+ T_168300[1] := UInt<3>(1)
+ T_168300[2] := UInt<3>(2)
+ wire T_168301 : UInt<2>[2]
+ T_168301[0] := UInt<2>(0)
+ T_168301[1] := UInt<2>(1)
+ wire T_168302 : UInt<2>[3]
+ T_168302[0] := UInt<2>(1)
+ T_168302[1] := UInt<2>(2)
+ T_168302[2] := UInt<2>(3)
+ wire T_168303 : UInt<2>[2]
+ T_168303[0] := UInt<2>(2)
+ T_168303[1] := UInt<2>(3)
+ wire T_168304 : UInt<2>[1]
+ T_168304[0] := UInt<2>(3)
+ accessor T_168305 = ram[T_168273]
+ wire T_168306 : UInt<3>[3]
+ T_168306[0] := UInt<3>(0)
+ T_168306[1] := UInt<3>(1)
+ T_168306[2] := UInt<3>(2)
+ wire T_168307 : UInt<2>[2]
+ T_168307[0] := UInt<2>(0)
+ T_168307[1] := UInt<2>(1)
+ wire T_168308 : UInt<2>[3]
+ T_168308[0] := UInt<2>(1)
+ T_168308[1] := UInt<2>(2)
+ T_168308[2] := UInt<2>(3)
+ wire T_168309 : UInt<2>[2]
+ T_168309[0] := UInt<2>(2)
+ T_168309[1] := UInt<2>(3)
+ wire T_168310 : UInt<2>[1]
+ T_168310[0] := UInt<2>(3)
+ wire T_168311 : {header : {src : UInt<2>, dst : UInt<2>}, payload : {addr_block : UInt<26>, p_type : UInt<2>}}
+ T_168311 := T_168305
+ when maybe_flow : T_168311 := enq.bits
+ deq.bits := T_168311
+ node ptr_diff = subw(T_168272, T_168273)
+ node T_168312 = and(maybe_full, ptr_match)
+ node T_168313 = cat(T_168312, ptr_diff)
+ count := T_168313
+ module Queue_39855 :
+ input enq : {flip ready : UInt<1>, valid : UInt<1>, bits : {header : {src : UInt<2>, dst : UInt<2>}, payload : {addr_block : UInt<26>, client_xact_id : UInt<1>, addr_beat : UInt<2>, data : UInt<128>, r_type : UInt<3>, voluntary : UInt<1>}}}
+ output deq : {flip ready : UInt<1>, valid : UInt<1>, bits : {header : {src : UInt<2>, dst : UInt<2>}, payload : {addr_block : UInt<26>, client_xact_id : UInt<1>, addr_beat : UInt<2>, data : UInt<128>, r_type : UInt<3>, voluntary : UInt<1>}}}
+ output count : UInt<2>
+
+ wire T_168314 : UInt<3>[3]
+ T_168314[0] := UInt<3>(0)
+ T_168314[1] := UInt<3>(1)
+ T_168314[2] := UInt<3>(2)
+ wire T_168315 : UInt<2>[2]
+ T_168315[0] := UInt<2>(0)
+ T_168315[1] := UInt<2>(1)
+ wire T_168316 : UInt<2>[3]
+ T_168316[0] := UInt<2>(1)
+ T_168316[1] := UInt<2>(2)
+ T_168316[2] := UInt<2>(3)
+ wire T_168317 : UInt<2>[2]
+ T_168317[0] := UInt<2>(2)
+ T_168317[1] := UInt<2>(3)
+ wire T_168318 : UInt<2>[1]
+ T_168318[0] := UInt<2>(3)
+ wire T_168319 : UInt<3>[3]
+ T_168319[0] := UInt<3>(0)
+ T_168319[1] := UInt<3>(1)
+ T_168319[2] := UInt<3>(2)
+ wire T_168320 : UInt<2>[2]
+ T_168320[0] := UInt<2>(0)
+ T_168320[1] := UInt<2>(1)
+ wire T_168321 : UInt<2>[3]
+ T_168321[0] := UInt<2>(1)
+ T_168321[1] := UInt<2>(2)
+ T_168321[2] := UInt<2>(3)
+ wire T_168322 : UInt<2>[2]
+ T_168322[0] := UInt<2>(2)
+ T_168322[1] := UInt<2>(3)
+ wire T_168323 : UInt<2>[1]
+ T_168323[0] := UInt<2>(3)
+ wire T_168324 : UInt<3>[3]
+ T_168324[0] := UInt<3>(0)
+ T_168324[1] := UInt<3>(1)
+ T_168324[2] := UInt<3>(2)
+ wire T_168325 : UInt<2>[2]
+ T_168325[0] := UInt<2>(0)
+ T_168325[1] := UInt<2>(1)
+ wire T_168326 : UInt<2>[3]
+ T_168326[0] := UInt<2>(1)
+ T_168326[1] := UInt<2>(2)
+ T_168326[2] := UInt<2>(3)
+ wire T_168327 : UInt<2>[2]
+ T_168327[0] := UInt<2>(2)
+ T_168327[1] := UInt<2>(3)
+ wire T_168328 : UInt<2>[1]
+ T_168328[0] := UInt<2>(3)
+ wire T_168329 : UInt<3>[3]
+ T_168329[0] := UInt<3>(0)
+ T_168329[1] := UInt<3>(1)
+ T_168329[2] := UInt<3>(2)
+ wire T_168330 : UInt<2>[2]
+ T_168330[0] := UInt<2>(0)
+ T_168330[1] := UInt<2>(1)
+ wire T_168331 : UInt<2>[3]
+ T_168331[0] := UInt<2>(1)
+ T_168331[1] := UInt<2>(2)
+ T_168331[2] := UInt<2>(3)
+ wire T_168332 : UInt<2>[2]
+ T_168332[0] := UInt<2>(2)
+ T_168332[1] := UInt<2>(3)
+ wire T_168333 : UInt<2>[1]
+ T_168333[0] := UInt<2>(3)
+ wire T_168334 : UInt<3>[3]
+ T_168334[0] := UInt<3>(0)
+ T_168334[1] := UInt<3>(1)
+ T_168334[2] := UInt<3>(2)
+ wire T_168335 : UInt<2>[2]
+ T_168335[0] := UInt<2>(0)
+ T_168335[1] := UInt<2>(1)
+ wire T_168336 : UInt<2>[3]
+ T_168336[0] := UInt<2>(1)
+ T_168336[1] := UInt<2>(2)
+ T_168336[2] := UInt<2>(3)
+ wire T_168337 : UInt<2>[2]
+ T_168337[0] := UInt<2>(2)
+ T_168337[1] := UInt<2>(3)
+ wire T_168338 : UInt<2>[1]
+ T_168338[0] := UInt<2>(3)
+ cmem ram : {header : {src : UInt<2>, dst : UInt<2>}, payload : {addr_block : UInt<26>, client_xact_id : UInt<1>, addr_beat : UInt<2>, data : UInt<128>, r_type : UInt<3>, voluntary : UInt<1>}}[2]
+ reg T_168339 : UInt<1>
+ onreset T_168339 := UInt<1>(0)
+ reg T_168340 : UInt<1>
+ onreset T_168340 := UInt<1>(0)
+ reg maybe_full : UInt<1>
+ onreset maybe_full := UInt<1>(0)
+ node ptr_match = eq(T_168339, T_168340)
+ node T_168341 = eq(maybe_full, UInt<1>(0))
+ node empty = and(ptr_match, T_168341)
+ node full = and(ptr_match, maybe_full)
+ node maybe_flow = and(UInt<1>(0), empty)
+ node do_flow = and(maybe_flow, deq.ready)
+ node T_168342 = and(enq.ready, enq.valid)
+ node T_168343 = eq(do_flow, UInt<1>(0))
+ node do_enq = and(T_168342, T_168343)
+ node T_168344 = and(deq.ready, deq.valid)
+ node T_168345 = eq(do_flow, UInt<1>(0))
+ node do_deq = and(T_168344, T_168345)
+ when do_enq :
+ wire T_168346 : UInt<3>[3]
+ T_168346[0] := UInt<3>(0)
+ T_168346[1] := UInt<3>(1)
+ T_168346[2] := UInt<3>(2)
+ wire T_168347 : UInt<2>[2]
+ T_168347[0] := UInt<2>(0)
+ T_168347[1] := UInt<2>(1)
+ wire T_168348 : UInt<2>[3]
+ T_168348[0] := UInt<2>(1)
+ T_168348[1] := UInt<2>(2)
+ T_168348[2] := UInt<2>(3)
+ wire T_168349 : UInt<2>[2]
+ T_168349[0] := UInt<2>(2)
+ T_168349[1] := UInt<2>(3)
+ wire T_168350 : UInt<2>[1]
+ T_168350[0] := UInt<2>(3)
+ accessor T_168351 = ram[T_168339]
+ T_168351 := enq.bits
+ node T_168352 = eq(T_168339, UInt<1>(1))
+ node T_168353 = and(UInt<1>(0), T_168352)
+ node T_168354 = addw(T_168339, UInt<1>(1))
+ wire T_168355 : UInt<1>
+ T_168355 := T_168354
+ when T_168353 : T_168355 := UInt<1>(0)
+ T_168339 := T_168355
+ when do_deq :
+ node T_168356 = eq(T_168340, UInt<1>(1))
+ node T_168357 = and(UInt<1>(0), T_168356)
+ node T_168358 = addw(T_168340, UInt<1>(1))
+ wire T_168359 : UInt<1>
+ T_168359 := T_168358
+ when T_168357 : T_168359 := UInt<1>(0)
+ T_168340 := T_168359
+
+ node T_168360 = neq(do_enq, do_deq)
+ when T_168360 : maybe_full := do_enq
+ node T_168361 = eq(empty, UInt<1>(0))
+ node T_168362 = and(UInt<1>(0), enq.valid)
+ node T_168363 = or(T_168361, T_168362)
+ deq.valid := T_168363
+ node T_168364 = eq(full, UInt<1>(0))
+ node T_168365 = and(UInt<1>(0), deq.ready)
+ node T_168366 = or(T_168364, T_168365)
+ enq.ready := T_168366
+ wire T_168367 : UInt<3>[3]
+ T_168367[0] := UInt<3>(0)
+ T_168367[1] := UInt<3>(1)
+ T_168367[2] := UInt<3>(2)
+ wire T_168368 : UInt<2>[2]
+ T_168368[0] := UInt<2>(0)
+ T_168368[1] := UInt<2>(1)
+ wire T_168369 : UInt<2>[3]
+ T_168369[0] := UInt<2>(1)
+ T_168369[1] := UInt<2>(2)
+ T_168369[2] := UInt<2>(3)
+ wire T_168370 : UInt<2>[2]
+ T_168370[0] := UInt<2>(2)
+ T_168370[1] := UInt<2>(3)
+ wire T_168371 : UInt<2>[1]
+ T_168371[0] := UInt<2>(3)
+ accessor T_168372 = ram[T_168340]
+ wire T_168373 : UInt<3>[3]
+ T_168373[0] := UInt<3>(0)
+ T_168373[1] := UInt<3>(1)
+ T_168373[2] := UInt<3>(2)
+ wire T_168374 : UInt<2>[2]
+ T_168374[0] := UInt<2>(0)
+ T_168374[1] := UInt<2>(1)
+ wire T_168375 : UInt<2>[3]
+ T_168375[0] := UInt<2>(1)
+ T_168375[1] := UInt<2>(2)
+ T_168375[2] := UInt<2>(3)
+ wire T_168376 : UInt<2>[2]
+ T_168376[0] := UInt<2>(2)
+ T_168376[1] := UInt<2>(3)
+ wire T_168377 : UInt<2>[1]
+ T_168377[0] := UInt<2>(3)
+ wire T_168378 : {header : {src : UInt<2>, dst : UInt<2>}, payload : {addr_block : UInt<26>, client_xact_id : UInt<1>, addr_beat : UInt<2>, data : UInt<128>, r_type : UInt<3>, voluntary : UInt<1>}}
+ T_168378 := T_168372
+ when maybe_flow : T_168378 := enq.bits
+ deq.bits := T_168378
+ node ptr_diff = subw(T_168339, T_168340)
+ node T_168379 = and(maybe_full, ptr_match)
+ node T_168380 = cat(T_168379, ptr_diff)
+ count := T_168380
+ module Queue_40530 :
+ input enq : {flip ready : UInt<1>, valid : UInt<1>, bits : {header : {src : UInt<2>, dst : UInt<2>}, payload : {addr_beat : UInt<2>, data : UInt<128>, client_xact_id : UInt<1>, manager_xact_id : UInt<2>, is_builtin_type : UInt<1>, g_type : UInt<4>}}}
+ output deq : {flip ready : UInt<1>, valid : UInt<1>, bits : {header : {src : UInt<2>, dst : UInt<2>}, payload : {addr_beat : UInt<2>, data : UInt<128>, client_xact_id : UInt<1>, manager_xact_id : UInt<2>, is_builtin_type : UInt<1>, g_type : UInt<4>}}}
+ output count : UInt<2>
+
+ wire T_168381 : UInt<3>[3]
+ T_168381[0] := UInt<3>(0)
+ T_168381[1] := UInt<3>(1)
+ T_168381[2] := UInt<3>(2)
+ wire T_168382 : UInt<2>[2]
+ T_168382[0] := UInt<2>(0)
+ T_168382[1] := UInt<2>(1)
+ wire T_168383 : UInt<2>[3]
+ T_168383[0] := UInt<2>(1)
+ T_168383[1] := UInt<2>(2)
+ T_168383[2] := UInt<2>(3)
+ wire T_168384 : UInt<2>[2]
+ T_168384[0] := UInt<2>(2)
+ T_168384[1] := UInt<2>(3)
+ wire T_168385 : UInt<2>[1]
+ T_168385[0] := UInt<2>(3)
+ wire T_168386 : UInt<3>[3]
+ T_168386[0] := UInt<3>(0)
+ T_168386[1] := UInt<3>(1)
+ T_168386[2] := UInt<3>(2)
+ wire T_168387 : UInt<2>[2]
+ T_168387[0] := UInt<2>(0)
+ T_168387[1] := UInt<2>(1)
+ wire T_168388 : UInt<2>[3]
+ T_168388[0] := UInt<2>(1)
+ T_168388[1] := UInt<2>(2)
+ T_168388[2] := UInt<2>(3)
+ wire T_168389 : UInt<2>[2]
+ T_168389[0] := UInt<2>(2)
+ T_168389[1] := UInt<2>(3)
+ wire T_168390 : UInt<2>[1]
+ T_168390[0] := UInt<2>(3)
+ wire T_168391 : UInt<3>[3]
+ T_168391[0] := UInt<3>(0)
+ T_168391[1] := UInt<3>(1)
+ T_168391[2] := UInt<3>(2)
+ wire T_168392 : UInt<2>[2]
+ T_168392[0] := UInt<2>(0)
+ T_168392[1] := UInt<2>(1)
+ wire T_168393 : UInt<2>[3]
+ T_168393[0] := UInt<2>(1)
+ T_168393[1] := UInt<2>(2)
+ T_168393[2] := UInt<2>(3)
+ wire T_168394 : UInt<2>[2]
+ T_168394[0] := UInt<2>(2)
+ T_168394[1] := UInt<2>(3)
+ wire T_168395 : UInt<2>[1]
+ T_168395[0] := UInt<2>(3)
+ wire T_168396 : UInt<3>[3]
+ T_168396[0] := UInt<3>(0)
+ T_168396[1] := UInt<3>(1)
+ T_168396[2] := UInt<3>(2)
+ wire T_168397 : UInt<2>[2]
+ T_168397[0] := UInt<2>(0)
+ T_168397[1] := UInt<2>(1)
+ wire T_168398 : UInt<2>[3]
+ T_168398[0] := UInt<2>(1)
+ T_168398[1] := UInt<2>(2)
+ T_168398[2] := UInt<2>(3)
+ wire T_168399 : UInt<2>[2]
+ T_168399[0] := UInt<2>(2)
+ T_168399[1] := UInt<2>(3)
+ wire T_168400 : UInt<2>[1]
+ T_168400[0] := UInt<2>(3)
+ wire T_168401 : UInt<3>[3]
+ T_168401[0] := UInt<3>(0)
+ T_168401[1] := UInt<3>(1)
+ T_168401[2] := UInt<3>(2)
+ wire T_168402 : UInt<2>[2]
+ T_168402[0] := UInt<2>(0)
+ T_168402[1] := UInt<2>(1)
+ wire T_168403 : UInt<2>[3]
+ T_168403[0] := UInt<2>(1)
+ T_168403[1] := UInt<2>(2)
+ T_168403[2] := UInt<2>(3)
+ wire T_168404 : UInt<2>[2]
+ T_168404[0] := UInt<2>(2)
+ T_168404[1] := UInt<2>(3)
+ wire T_168405 : UInt<2>[1]
+ T_168405[0] := UInt<2>(3)
+ cmem ram : {header : {src : UInt<2>, dst : UInt<2>}, payload : {addr_beat : UInt<2>, data : UInt<128>, client_xact_id : UInt<1>, manager_xact_id : UInt<2>, is_builtin_type : UInt<1>, g_type : UInt<4>}}[2]
+ reg T_168406 : UInt<1>
+ onreset T_168406 := UInt<1>(0)
+ reg T_168407 : UInt<1>
+ onreset T_168407 := UInt<1>(0)
+ reg maybe_full : UInt<1>
+ onreset maybe_full := UInt<1>(0)
+ node ptr_match = eq(T_168406, T_168407)
+ node T_168408 = eq(maybe_full, UInt<1>(0))
+ node empty = and(ptr_match, T_168408)
+ node full = and(ptr_match, maybe_full)
+ node maybe_flow = and(UInt<1>(0), empty)
+ node do_flow = and(maybe_flow, deq.ready)
+ node T_168409 = and(enq.ready, enq.valid)
+ node T_168410 = eq(do_flow, UInt<1>(0))
+ node do_enq = and(T_168409, T_168410)
+ node T_168411 = and(deq.ready, deq.valid)
+ node T_168412 = eq(do_flow, UInt<1>(0))
+ node do_deq = and(T_168411, T_168412)
+ when do_enq :
+ wire T_168413 : UInt<3>[3]
+ T_168413[0] := UInt<3>(0)
+ T_168413[1] := UInt<3>(1)
+ T_168413[2] := UInt<3>(2)
+ wire T_168414 : UInt<2>[2]
+ T_168414[0] := UInt<2>(0)
+ T_168414[1] := UInt<2>(1)
+ wire T_168415 : UInt<2>[3]
+ T_168415[0] := UInt<2>(1)
+ T_168415[1] := UInt<2>(2)
+ T_168415[2] := UInt<2>(3)
+ wire T_168416 : UInt<2>[2]
+ T_168416[0] := UInt<2>(2)
+ T_168416[1] := UInt<2>(3)
+ wire T_168417 : UInt<2>[1]
+ T_168417[0] := UInt<2>(3)
+ accessor T_168418 = ram[T_168406]
+ T_168418 := enq.bits
+ node T_168419 = eq(T_168406, UInt<1>(1))
+ node T_168420 = and(UInt<1>(0), T_168419)
+ node T_168421 = addw(T_168406, UInt<1>(1))
+ wire T_168422 : UInt<1>
+ T_168422 := T_168421
+ when T_168420 : T_168422 := UInt<1>(0)
+ T_168406 := T_168422
+ when do_deq :
+ node T_168423 = eq(T_168407, UInt<1>(1))
+ node T_168424 = and(UInt<1>(0), T_168423)
+ node T_168425 = addw(T_168407, UInt<1>(1))
+ wire T_168426 : UInt<1>
+ T_168426 := T_168425
+ when T_168424 : T_168426 := UInt<1>(0)
+ T_168407 := T_168426
+
+ node T_168427 = neq(do_enq, do_deq)
+ when T_168427 : maybe_full := do_enq
+ node T_168428 = eq(empty, UInt<1>(0))
+ node T_168429 = and(UInt<1>(0), enq.valid)
+ node T_168430 = or(T_168428, T_168429)
+ deq.valid := T_168430
+ node T_168431 = eq(full, UInt<1>(0))
+ node T_168432 = and(UInt<1>(0), deq.ready)
+ node T_168433 = or(T_168431, T_168432)
+ enq.ready := T_168433
+ wire T_168434 : UInt<3>[3]
+ T_168434[0] := UInt<3>(0)
+ T_168434[1] := UInt<3>(1)
+ T_168434[2] := UInt<3>(2)
+ wire T_168435 : UInt<2>[2]
+ T_168435[0] := UInt<2>(0)
+ T_168435[1] := UInt<2>(1)
+ wire T_168436 : UInt<2>[3]
+ T_168436[0] := UInt<2>(1)
+ T_168436[1] := UInt<2>(2)
+ T_168436[2] := UInt<2>(3)
+ wire T_168437 : UInt<2>[2]
+ T_168437[0] := UInt<2>(2)
+ T_168437[1] := UInt<2>(3)
+ wire T_168438 : UInt<2>[1]
+ T_168438[0] := UInt<2>(3)
+ accessor T_168439 = ram[T_168407]
+ wire T_168440 : UInt<3>[3]
+ T_168440[0] := UInt<3>(0)
+ T_168440[1] := UInt<3>(1)
+ T_168440[2] := UInt<3>(2)
+ wire T_168441 : UInt<2>[2]
+ T_168441[0] := UInt<2>(0)
+ T_168441[1] := UInt<2>(1)
+ wire T_168442 : UInt<2>[3]
+ T_168442[0] := UInt<2>(1)
+ T_168442[1] := UInt<2>(2)
+ T_168442[2] := UInt<2>(3)
+ wire T_168443 : UInt<2>[2]
+ T_168443[0] := UInt<2>(2)
+ T_168443[1] := UInt<2>(3)
+ wire T_168444 : UInt<2>[1]
+ T_168444[0] := UInt<2>(3)
+ wire T_168445 : {header : {src : UInt<2>, dst : UInt<2>}, payload : {addr_beat : UInt<2>, data : UInt<128>, client_xact_id : UInt<1>, manager_xact_id : UInt<2>, is_builtin_type : UInt<1>, g_type : UInt<4>}}
+ T_168445 := T_168439
+ when maybe_flow : T_168445 := enq.bits
+ deq.bits := T_168445
+ node ptr_diff = subw(T_168406, T_168407)
+ node T_168446 = and(maybe_full, ptr_match)
+ node T_168447 = cat(T_168446, ptr_diff)
+ count := T_168447
+ module Queue_41160 :
+ input enq : {flip ready : UInt<1>, valid : UInt<1>, bits : {header : {src : UInt<2>, dst : UInt<2>}, payload : {manager_xact_id : UInt<2>}}}
+ output deq : {flip ready : UInt<1>, valid : UInt<1>, bits : {header : {src : UInt<2>, dst : UInt<2>}, payload : {manager_xact_id : UInt<2>}}}
+ output count : UInt<2>
+
+ wire T_168448 : UInt<3>[3]
+ T_168448[0] := UInt<3>(0)
+ T_168448[1] := UInt<3>(1)
+ T_168448[2] := UInt<3>(2)
+ wire T_168449 : UInt<2>[2]
+ T_168449[0] := UInt<2>(0)
+ T_168449[1] := UInt<2>(1)
+ wire T_168450 : UInt<2>[3]
+ T_168450[0] := UInt<2>(1)
+ T_168450[1] := UInt<2>(2)
+ T_168450[2] := UInt<2>(3)
+ wire T_168451 : UInt<2>[2]
+ T_168451[0] := UInt<2>(2)
+ T_168451[1] := UInt<2>(3)
+ wire T_168452 : UInt<2>[1]
+ T_168452[0] := UInt<2>(3)
+ wire T_168453 : UInt<3>[3]
+ T_168453[0] := UInt<3>(0)
+ T_168453[1] := UInt<3>(1)
+ T_168453[2] := UInt<3>(2)
+ wire T_168454 : UInt<2>[2]
+ T_168454[0] := UInt<2>(0)
+ T_168454[1] := UInt<2>(1)
+ wire T_168455 : UInt<2>[3]
+ T_168455[0] := UInt<2>(1)
+ T_168455[1] := UInt<2>(2)
+ T_168455[2] := UInt<2>(3)
+ wire T_168456 : UInt<2>[2]
+ T_168456[0] := UInt<2>(2)
+ T_168456[1] := UInt<2>(3)
+ wire T_168457 : UInt<2>[1]
+ T_168457[0] := UInt<2>(3)
+ wire T_168458 : UInt<3>[3]
+ T_168458[0] := UInt<3>(0)
+ T_168458[1] := UInt<3>(1)
+ T_168458[2] := UInt<3>(2)
+ wire T_168459 : UInt<2>[2]
+ T_168459[0] := UInt<2>(0)
+ T_168459[1] := UInt<2>(1)
+ wire T_168460 : UInt<2>[3]
+ T_168460[0] := UInt<2>(1)
+ T_168460[1] := UInt<2>(2)
+ T_168460[2] := UInt<2>(3)
+ wire T_168461 : UInt<2>[2]
+ T_168461[0] := UInt<2>(2)
+ T_168461[1] := UInt<2>(3)
+ wire T_168462 : UInt<2>[1]
+ T_168462[0] := UInt<2>(3)
+ wire T_168463 : UInt<3>[3]
+ T_168463[0] := UInt<3>(0)
+ T_168463[1] := UInt<3>(1)
+ T_168463[2] := UInt<3>(2)
+ wire T_168464 : UInt<2>[2]
+ T_168464[0] := UInt<2>(0)
+ T_168464[1] := UInt<2>(1)
+ wire T_168465 : UInt<2>[3]
+ T_168465[0] := UInt<2>(1)
+ T_168465[1] := UInt<2>(2)
+ T_168465[2] := UInt<2>(3)
+ wire T_168466 : UInt<2>[2]
+ T_168466[0] := UInt<2>(2)
+ T_168466[1] := UInt<2>(3)
+ wire T_168467 : UInt<2>[1]
+ T_168467[0] := UInt<2>(3)
+ wire T_168468 : UInt<3>[3]
+ T_168468[0] := UInt<3>(0)
+ T_168468[1] := UInt<3>(1)
+ T_168468[2] := UInt<3>(2)
+ wire T_168469 : UInt<2>[2]
+ T_168469[0] := UInt<2>(0)
+ T_168469[1] := UInt<2>(1)
+ wire T_168470 : UInt<2>[3]
+ T_168470[0] := UInt<2>(1)
+ T_168470[1] := UInt<2>(2)
+ T_168470[2] := UInt<2>(3)
+ wire T_168471 : UInt<2>[2]
+ T_168471[0] := UInt<2>(2)
+ T_168471[1] := UInt<2>(3)
+ wire T_168472 : UInt<2>[1]
+ T_168472[0] := UInt<2>(3)
+ cmem ram : {header : {src : UInt<2>, dst : UInt<2>}, payload : {manager_xact_id : UInt<2>}}[2]
+ reg T_168473 : UInt<1>
+ onreset T_168473 := UInt<1>(0)
+ reg T_168474 : UInt<1>
+ onreset T_168474 := UInt<1>(0)
+ reg maybe_full : UInt<1>
+ onreset maybe_full := UInt<1>(0)
+ node ptr_match = eq(T_168473, T_168474)
+ node T_168475 = eq(maybe_full, UInt<1>(0))
+ node empty = and(ptr_match, T_168475)
+ node full = and(ptr_match, maybe_full)
+ node maybe_flow = and(UInt<1>(0), empty)
+ node do_flow = and(maybe_flow, deq.ready)
+ node T_168476 = and(enq.ready, enq.valid)
+ node T_168477 = eq(do_flow, UInt<1>(0))
+ node do_enq = and(T_168476, T_168477)
+ node T_168478 = and(deq.ready, deq.valid)
+ node T_168479 = eq(do_flow, UInt<1>(0))
+ node do_deq = and(T_168478, T_168479)
+ when do_enq :
+ wire T_168480 : UInt<3>[3]
+ T_168480[0] := UInt<3>(0)
+ T_168480[1] := UInt<3>(1)
+ T_168480[2] := UInt<3>(2)
+ wire T_168481 : UInt<2>[2]
+ T_168481[0] := UInt<2>(0)
+ T_168481[1] := UInt<2>(1)
+ wire T_168482 : UInt<2>[3]
+ T_168482[0] := UInt<2>(1)
+ T_168482[1] := UInt<2>(2)
+ T_168482[2] := UInt<2>(3)
+ wire T_168483 : UInt<2>[2]
+ T_168483[0] := UInt<2>(2)
+ T_168483[1] := UInt<2>(3)
+ wire T_168484 : UInt<2>[1]
+ T_168484[0] := UInt<2>(3)
+ accessor T_168485 = ram[T_168473]
+ T_168485 := enq.bits
+ node T_168486 = eq(T_168473, UInt<1>(1))
+ node T_168487 = and(UInt<1>(0), T_168486)
+ node T_168488 = addw(T_168473, UInt<1>(1))
+ wire T_168489 : UInt<1>
+ T_168489 := T_168488
+ when T_168487 : T_168489 := UInt<1>(0)
+ T_168473 := T_168489
+ when do_deq :
+ node T_168490 = eq(T_168474, UInt<1>(1))
+ node T_168491 = and(UInt<1>(0), T_168490)
+ node T_168492 = addw(T_168474, UInt<1>(1))
+ wire T_168493 : UInt<1>
+ T_168493 := T_168492
+ when T_168491 : T_168493 := UInt<1>(0)
+ T_168474 := T_168493
+
+ node T_168494 = neq(do_enq, do_deq)
+ when T_168494 : maybe_full := do_enq
+ node T_168495 = eq(empty, UInt<1>(0))
+ node T_168496 = and(UInt<1>(0), enq.valid)
+ node T_168497 = or(T_168495, T_168496)
+ deq.valid := T_168497
+ node T_168498 = eq(full, UInt<1>(0))
+ node T_168499 = and(UInt<1>(0), deq.ready)
+ node T_168500 = or(T_168498, T_168499)
+ enq.ready := T_168500
+ wire T_168501 : UInt<3>[3]
+ T_168501[0] := UInt<3>(0)
+ T_168501[1] := UInt<3>(1)
+ T_168501[2] := UInt<3>(2)
+ wire T_168502 : UInt<2>[2]
+ T_168502[0] := UInt<2>(0)
+ T_168502[1] := UInt<2>(1)
+ wire T_168503 : UInt<2>[3]
+ T_168503[0] := UInt<2>(1)
+ T_168503[1] := UInt<2>(2)
+ T_168503[2] := UInt<2>(3)
+ wire T_168504 : UInt<2>[2]
+ T_168504[0] := UInt<2>(2)
+ T_168504[1] := UInt<2>(3)
+ wire T_168505 : UInt<2>[1]
+ T_168505[0] := UInt<2>(3)
+ accessor T_168506 = ram[T_168474]
+ wire T_168507 : UInt<3>[3]
+ T_168507[0] := UInt<3>(0)
+ T_168507[1] := UInt<3>(1)
+ T_168507[2] := UInt<3>(2)
+ wire T_168508 : UInt<2>[2]
+ T_168508[0] := UInt<2>(0)
+ T_168508[1] := UInt<2>(1)
+ wire T_168509 : UInt<2>[3]
+ T_168509[0] := UInt<2>(1)
+ T_168509[1] := UInt<2>(2)
+ T_168509[2] := UInt<2>(3)
+ wire T_168510 : UInt<2>[2]
+ T_168510[0] := UInt<2>(2)
+ T_168510[1] := UInt<2>(3)
+ wire T_168511 : UInt<2>[1]
+ T_168511[0] := UInt<2>(3)
+ wire T_168512 : {header : {src : UInt<2>, dst : UInt<2>}, payload : {manager_xact_id : UInt<2>}}
+ T_168512 := T_168506
+ when maybe_flow : T_168512 := enq.bits
+ deq.bits := T_168512
+ node ptr_diff = subw(T_168473, T_168474)
+ node T_168513 = and(maybe_full, ptr_match)
+ node T_168514 = cat(T_168513, ptr_diff)
+ count := T_168514
+ module TileLinkEnqueuer_41161 :
+ input client : {acquire : {flip ready : UInt<1>, valid : UInt<1>, bits : {header : {src : UInt<2>, dst : UInt<2>}, payload : {addr_block : UInt<26>, client_xact_id : UInt<1>, addr_beat : UInt<2>, data : UInt<128>, is_builtin_type : UInt<1>, a_type : UInt<3>, union : UInt<17>}}}, flip grant : {flip ready : UInt<1>, valid : UInt<1>, bits : {header : {src : UInt<2>, dst : UInt<2>}, payload : {addr_beat : UInt<2>, data : UInt<128>, client_xact_id : UInt<1>, manager_xact_id : UInt<2>, is_builtin_type : UInt<1>, g_type : UInt<4>}}}, finish : {flip ready : UInt<1>, valid : UInt<1>, bits : {header : {src : UInt<2>, dst : UInt<2>}, payload : {manager_xact_id : UInt<2>}}}, flip probe : {flip ready : UInt<1>, valid : UInt<1>, bits : {header : {src : UInt<2>, dst : UInt<2>}, payload : {addr_block : UInt<26>, p_type : UInt<2>}}}, release : {flip ready : UInt<1>, valid : UInt<1>, bits : {header : {src : UInt<2>, dst : UInt<2>}, payload : {addr_block : UInt<26>, client_xact_id : UInt<1>, addr_beat : UInt<2>, data : UInt<128>, r_type : UInt<3>, voluntary : UInt<1>}}}}
+ output manager : {acquire : {flip ready : UInt<1>, valid : UInt<1>, bits : {header : {src : UInt<2>, dst : UInt<2>}, payload : {addr_block : UInt<26>, client_xact_id : UInt<1>, addr_beat : UInt<2>, data : UInt<128>, is_builtin_type : UInt<1>, a_type : UInt<3>, union : UInt<17>}}}, flip grant : {flip ready : UInt<1>, valid : UInt<1>, bits : {header : {src : UInt<2>, dst : UInt<2>}, payload : {addr_beat : UInt<2>, data : UInt<128>, client_xact_id : UInt<1>, manager_xact_id : UInt<2>, is_builtin_type : UInt<1>, g_type : UInt<4>}}}, finish : {flip ready : UInt<1>, valid : UInt<1>, bits : {header : {src : UInt<2>, dst : UInt<2>}, payload : {manager_xact_id : UInt<2>}}}, flip probe : {flip ready : UInt<1>, valid : UInt<1>, bits : {header : {src : UInt<2>, dst : UInt<2>}, payload : {addr_block : UInt<26>, p_type : UInt<2>}}}, release : {flip ready : UInt<1>, valid : UInt<1>, bits : {header : {src : UInt<2>, dst : UInt<2>}, payload : {addr_block : UInt<26>, client_xact_id : UInt<1>, addr_beat : UInt<2>, data : UInt<128>, r_type : UInt<3>, voluntary : UInt<1>}}}}
+
+ wire T_168515 : UInt<3>[3]
+ T_168515[0] := UInt<3>(0)
+ T_168515[1] := UInt<3>(1)
+ T_168515[2] := UInt<3>(2)
+ wire T_168516 : UInt<2>[2]
+ T_168516[0] := UInt<2>(0)
+ T_168516[1] := UInt<2>(1)
+ wire T_168517 : UInt<2>[3]
+ T_168517[0] := UInt<2>(1)
+ T_168517[1] := UInt<2>(2)
+ T_168517[2] := UInt<2>(3)
+ wire T_168518 : UInt<2>[2]
+ T_168518[0] := UInt<2>(2)
+ T_168518[1] := UInt<2>(3)
+ wire T_168519 : UInt<2>[1]
+ T_168519[0] := UInt<2>(3)
+ wire T_168520 : UInt<3>[3]
+ T_168520[0] := UInt<3>(0)
+ T_168520[1] := UInt<3>(1)
+ T_168520[2] := UInt<3>(2)
+ wire T_168521 : UInt<2>[2]
+ T_168521[0] := UInt<2>(0)
+ T_168521[1] := UInt<2>(1)
+ wire T_168522 : UInt<2>[3]
+ T_168522[0] := UInt<2>(1)
+ T_168522[1] := UInt<2>(2)
+ T_168522[2] := UInt<2>(3)
+ wire T_168523 : UInt<2>[2]
+ T_168523[0] := UInt<2>(2)
+ T_168523[1] := UInt<2>(3)
+ wire T_168524 : UInt<2>[1]
+ T_168524[0] := UInt<2>(3)
+ wire T_168525 : UInt<3>[3]
+ T_168525[0] := UInt<3>(0)
+ T_168525[1] := UInt<3>(1)
+ T_168525[2] := UInt<3>(2)
+ wire T_168526 : UInt<2>[2]
+ T_168526[0] := UInt<2>(0)
+ T_168526[1] := UInt<2>(1)
+ wire T_168527 : UInt<2>[3]
+ T_168527[0] := UInt<2>(1)
+ T_168527[1] := UInt<2>(2)
+ T_168527[2] := UInt<2>(3)
+ wire T_168528 : UInt<2>[2]
+ T_168528[0] := UInt<2>(2)
+ T_168528[1] := UInt<2>(3)
+ wire T_168529 : UInt<2>[1]
+ T_168529[0] := UInt<2>(3)
+ wire T_168530 : UInt<3>[3]
+ T_168530[0] := UInt<3>(0)
+ T_168530[1] := UInt<3>(1)
+ T_168530[2] := UInt<3>(2)
+ wire T_168531 : UInt<2>[2]
+ T_168531[0] := UInt<2>(0)
+ T_168531[1] := UInt<2>(1)
+ wire T_168532 : UInt<2>[3]
+ T_168532[0] := UInt<2>(1)
+ T_168532[1] := UInt<2>(2)
+ T_168532[2] := UInt<2>(3)
+ wire T_168533 : UInt<2>[2]
+ T_168533[0] := UInt<2>(2)
+ T_168533[1] := UInt<2>(3)
+ wire T_168534 : UInt<2>[1]
+ T_168534[0] := UInt<2>(3)
+ wire T_168535 : UInt<3>[3]
+ T_168535[0] := UInt<3>(0)
+ T_168535[1] := UInt<3>(1)
+ T_168535[2] := UInt<3>(2)
+ wire T_168536 : UInt<2>[2]
+ T_168536[0] := UInt<2>(0)
+ T_168536[1] := UInt<2>(1)
+ wire T_168537 : UInt<2>[3]
+ T_168537[0] := UInt<2>(1)
+ T_168537[1] := UInt<2>(2)
+ T_168537[2] := UInt<2>(3)
+ wire T_168538 : UInt<2>[2]
+ T_168538[0] := UInt<2>(2)
+ T_168538[1] := UInt<2>(3)
+ wire T_168539 : UInt<2>[1]
+ T_168539[0] := UInt<2>(3)
+ wire T_168540 : UInt<3>[3]
+ T_168540[0] := UInt<3>(0)
+ T_168540[1] := UInt<3>(1)
+ T_168540[2] := UInt<3>(2)
+ wire T_168541 : UInt<2>[2]
+ T_168541[0] := UInt<2>(0)
+ T_168541[1] := UInt<2>(1)
+ wire T_168542 : UInt<2>[3]
+ T_168542[0] := UInt<2>(1)
+ T_168542[1] := UInt<2>(2)
+ T_168542[2] := UInt<2>(3)
+ wire T_168543 : UInt<2>[2]
+ T_168543[0] := UInt<2>(2)
+ T_168543[1] := UInt<2>(3)
+ wire T_168544 : UInt<2>[1]
+ T_168544[0] := UInt<2>(3)
+ wire T_168545 : UInt<3>[3]
+ T_168545[0] := UInt<3>(0)
+ T_168545[1] := UInt<3>(1)
+ T_168545[2] := UInt<3>(2)
+ wire T_168546 : UInt<2>[2]
+ T_168546[0] := UInt<2>(0)
+ T_168546[1] := UInt<2>(1)
+ wire T_168547 : UInt<2>[3]
+ T_168547[0] := UInt<2>(1)
+ T_168547[1] := UInt<2>(2)
+ T_168547[2] := UInt<2>(3)
+ wire T_168548 : UInt<2>[2]
+ T_168548[0] := UInt<2>(2)
+ T_168548[1] := UInt<2>(3)
+ wire T_168549 : UInt<2>[1]
+ T_168549[0] := UInt<2>(3)
+ wire T_168550 : UInt<3>[3]
+ T_168550[0] := UInt<3>(0)
+ T_168550[1] := UInt<3>(1)
+ T_168550[2] := UInt<3>(2)
+ wire T_168551 : UInt<2>[2]
+ T_168551[0] := UInt<2>(0)
+ T_168551[1] := UInt<2>(1)
+ wire T_168552 : UInt<2>[3]
+ T_168552[0] := UInt<2>(1)
+ T_168552[1] := UInt<2>(2)
+ T_168552[2] := UInt<2>(3)
+ wire T_168553 : UInt<2>[2]
+ T_168553[0] := UInt<2>(2)
+ T_168553[1] := UInt<2>(3)
+ wire T_168554 : UInt<2>[1]
+ T_168554[0] := UInt<2>(3)
+ wire T_168555 : UInt<3>[3]
+ T_168555[0] := UInt<3>(0)
+ T_168555[1] := UInt<3>(1)
+ T_168555[2] := UInt<3>(2)
+ wire T_168556 : UInt<2>[2]
+ T_168556[0] := UInt<2>(0)
+ T_168556[1] := UInt<2>(1)
+ wire T_168557 : UInt<2>[3]
+ T_168557[0] := UInt<2>(1)
+ T_168557[1] := UInt<2>(2)
+ T_168557[2] := UInt<2>(3)
+ wire T_168558 : UInt<2>[2]
+ T_168558[0] := UInt<2>(2)
+ T_168558[1] := UInt<2>(3)
+ wire T_168559 : UInt<2>[1]
+ T_168559[0] := UInt<2>(3)
+ wire T_168560 : UInt<3>[3]
+ T_168560[0] := UInt<3>(0)
+ T_168560[1] := UInt<3>(1)
+ T_168560[2] := UInt<3>(2)
+ wire T_168561 : UInt<2>[2]
+ T_168561[0] := UInt<2>(0)
+ T_168561[1] := UInt<2>(1)
+ wire T_168562 : UInt<2>[3]
+ T_168562[0] := UInt<2>(1)
+ T_168562[1] := UInt<2>(2)
+ T_168562[2] := UInt<2>(3)
+ wire T_168563 : UInt<2>[2]
+ T_168563[0] := UInt<2>(2)
+ T_168563[1] := UInt<2>(3)
+ wire T_168564 : UInt<2>[1]
+ T_168564[0] := UInt<2>(3)
+ wire T_168565 : UInt<3>[3]
+ T_168565[0] := UInt<3>(0)
+ T_168565[1] := UInt<3>(1)
+ T_168565[2] := UInt<3>(2)
+ wire T_168566 : UInt<2>[2]
+ T_168566[0] := UInt<2>(0)
+ T_168566[1] := UInt<2>(1)
+ wire T_168567 : UInt<2>[3]
+ T_168567[0] := UInt<2>(1)
+ T_168567[1] := UInt<2>(2)
+ T_168567[2] := UInt<2>(3)
+ wire T_168568 : UInt<2>[2]
+ T_168568[0] := UInt<2>(2)
+ T_168568[1] := UInt<2>(3)
+ wire T_168569 : UInt<2>[1]
+ T_168569[0] := UInt<2>(3)
+ wire T_168570 : UInt<3>[3]
+ T_168570[0] := UInt<3>(0)
+ T_168570[1] := UInt<3>(1)
+ T_168570[2] := UInt<3>(2)
+ wire T_168571 : UInt<2>[2]
+ T_168571[0] := UInt<2>(0)
+ T_168571[1] := UInt<2>(1)
+ wire T_168572 : UInt<2>[3]
+ T_168572[0] := UInt<2>(1)
+ T_168572[1] := UInt<2>(2)
+ T_168572[2] := UInt<2>(3)
+ wire T_168573 : UInt<2>[2]
+ T_168573[0] := UInt<2>(2)
+ T_168573[1] := UInt<2>(3)
+ wire T_168574 : UInt<2>[1]
+ T_168574[0] := UInt<2>(3)
+ wire T_168575 : UInt<3>[3]
+ T_168575[0] := UInt<3>(0)
+ T_168575[1] := UInt<3>(1)
+ T_168575[2] := UInt<3>(2)
+ wire T_168576 : UInt<2>[2]
+ T_168576[0] := UInt<2>(0)
+ T_168576[1] := UInt<2>(1)
+ wire T_168577 : UInt<2>[3]
+ T_168577[0] := UInt<2>(1)
+ T_168577[1] := UInt<2>(2)
+ T_168577[2] := UInt<2>(3)
+ wire T_168578 : UInt<2>[2]
+ T_168578[0] := UInt<2>(2)
+ T_168578[1] := UInt<2>(3)
+ wire T_168579 : UInt<2>[1]
+ T_168579[0] := UInt<2>(3)
+ wire T_168580 : UInt<3>[3]
+ T_168580[0] := UInt<3>(0)
+ T_168580[1] := UInt<3>(1)
+ T_168580[2] := UInt<3>(2)
+ wire T_168581 : UInt<2>[2]
+ T_168581[0] := UInt<2>(0)
+ T_168581[1] := UInt<2>(1)
+ wire T_168582 : UInt<2>[3]
+ T_168582[0] := UInt<2>(1)
+ T_168582[1] := UInt<2>(2)
+ T_168582[2] := UInt<2>(3)
+ wire T_168583 : UInt<2>[2]
+ T_168583[0] := UInt<2>(2)
+ T_168583[1] := UInt<2>(3)
+ wire T_168584 : UInt<2>[1]
+ T_168584[0] := UInt<2>(3)
+ wire T_168585 : UInt<3>[3]
+ T_168585[0] := UInt<3>(0)
+ T_168585[1] := UInt<3>(1)
+ T_168585[2] := UInt<3>(2)
+ wire T_168586 : UInt<2>[2]
+ T_168586[0] := UInt<2>(0)
+ T_168586[1] := UInt<2>(1)
+ wire T_168587 : UInt<2>[3]
+ T_168587[0] := UInt<2>(1)
+ T_168587[1] := UInt<2>(2)
+ T_168587[2] := UInt<2>(3)
+ wire T_168588 : UInt<2>[2]
+ T_168588[0] := UInt<2>(2)
+ T_168588[1] := UInt<2>(3)
+ wire T_168589 : UInt<2>[1]
+ T_168589[0] := UInt<2>(3)
+ wire T_168590 : UInt<3>[3]
+ T_168590[0] := UInt<3>(0)
+ T_168590[1] := UInt<3>(1)
+ T_168590[2] := UInt<3>(2)
+ wire T_168591 : UInt<2>[2]
+ T_168591[0] := UInt<2>(0)
+ T_168591[1] := UInt<2>(1)
+ wire T_168592 : UInt<2>[3]
+ T_168592[0] := UInt<2>(1)
+ T_168592[1] := UInt<2>(2)
+ T_168592[2] := UInt<2>(3)
+ wire T_168593 : UInt<2>[2]
+ T_168593[0] := UInt<2>(2)
+ T_168593[1] := UInt<2>(3)
+ wire T_168594 : UInt<2>[1]
+ T_168594[0] := UInt<2>(3)
+ wire T_168595 : UInt<3>[3]
+ T_168595[0] := UInt<3>(0)
+ T_168595[1] := UInt<3>(1)
+ T_168595[2] := UInt<3>(2)
+ wire T_168596 : UInt<2>[2]
+ T_168596[0] := UInt<2>(0)
+ T_168596[1] := UInt<2>(1)
+ wire T_168597 : UInt<2>[3]
+ T_168597[0] := UInt<2>(1)
+ T_168597[1] := UInt<2>(2)
+ T_168597[2] := UInt<2>(3)
+ wire T_168598 : UInt<2>[2]
+ T_168598[0] := UInt<2>(2)
+ T_168598[1] := UInt<2>(3)
+ wire T_168599 : UInt<2>[1]
+ T_168599[0] := UInt<2>(3)
+ wire T_168600 : UInt<3>[3]
+ T_168600[0] := UInt<3>(0)
+ T_168600[1] := UInt<3>(1)
+ T_168600[2] := UInt<3>(2)
+ wire T_168601 : UInt<2>[2]
+ T_168601[0] := UInt<2>(0)
+ T_168601[1] := UInt<2>(1)
+ wire T_168602 : UInt<2>[3]
+ T_168602[0] := UInt<2>(1)
+ T_168602[1] := UInt<2>(2)
+ T_168602[2] := UInt<2>(3)
+ wire T_168603 : UInt<2>[2]
+ T_168603[0] := UInt<2>(2)
+ T_168603[1] := UInt<2>(3)
+ wire T_168604 : UInt<2>[1]
+ T_168604[0] := UInt<2>(3)
+ wire T_168605 : UInt<3>[3]
+ T_168605[0] := UInt<3>(0)
+ T_168605[1] := UInt<3>(1)
+ T_168605[2] := UInt<3>(2)
+ wire T_168606 : UInt<2>[2]
+ T_168606[0] := UInt<2>(0)
+ T_168606[1] := UInt<2>(1)
+ wire T_168607 : UInt<2>[3]
+ T_168607[0] := UInt<2>(1)
+ T_168607[1] := UInt<2>(2)
+ T_168607[2] := UInt<2>(3)
+ wire T_168608 : UInt<2>[2]
+ T_168608[0] := UInt<2>(2)
+ T_168608[1] := UInt<2>(3)
+ wire T_168609 : UInt<2>[1]
+ T_168609[0] := UInt<2>(3)
+ wire T_168610 : UInt<3>[3]
+ T_168610[0] := UInt<3>(0)
+ T_168610[1] := UInt<3>(1)
+ T_168610[2] := UInt<3>(2)
+ wire T_168611 : UInt<2>[2]
+ T_168611[0] := UInt<2>(0)
+ T_168611[1] := UInt<2>(1)
+ wire T_168612 : UInt<2>[3]
+ T_168612[0] := UInt<2>(1)
+ T_168612[1] := UInt<2>(2)
+ T_168612[2] := UInt<2>(3)
+ wire T_168613 : UInt<2>[2]
+ T_168613[0] := UInt<2>(2)
+ T_168613[1] := UInt<2>(3)
+ wire T_168614 : UInt<2>[1]
+ T_168614[0] := UInt<2>(3)
+ wire T_168615 : UInt<3>[3]
+ T_168615[0] := UInt<3>(0)
+ T_168615[1] := UInt<3>(1)
+ T_168615[2] := UInt<3>(2)
+ wire T_168616 : UInt<2>[2]
+ T_168616[0] := UInt<2>(0)
+ T_168616[1] := UInt<2>(1)
+ wire T_168617 : UInt<2>[3]
+ T_168617[0] := UInt<2>(1)
+ T_168617[1] := UInt<2>(2)
+ T_168617[2] := UInt<2>(3)
+ wire T_168618 : UInt<2>[2]
+ T_168618[0] := UInt<2>(2)
+ T_168618[1] := UInt<2>(3)
+ wire T_168619 : UInt<2>[1]
+ T_168619[0] := UInt<2>(3)
+ wire T_168620 : UInt<3>[3]
+ T_168620[0] := UInt<3>(0)
+ T_168620[1] := UInt<3>(1)
+ T_168620[2] := UInt<3>(2)
+ wire T_168621 : UInt<2>[2]
+ T_168621[0] := UInt<2>(0)
+ T_168621[1] := UInt<2>(1)
+ wire T_168622 : UInt<2>[3]
+ T_168622[0] := UInt<2>(1)
+ T_168622[1] := UInt<2>(2)
+ T_168622[2] := UInt<2>(3)
+ wire T_168623 : UInt<2>[2]
+ T_168623[0] := UInt<2>(2)
+ T_168623[1] := UInt<2>(3)
+ wire T_168624 : UInt<2>[1]
+ T_168624[0] := UInt<2>(3)
+ wire T_168625 : UInt<3>[3]
+ T_168625[0] := UInt<3>(0)
+ T_168625[1] := UInt<3>(1)
+ T_168625[2] := UInt<3>(2)
+ wire T_168626 : UInt<2>[2]
+ T_168626[0] := UInt<2>(0)
+ T_168626[1] := UInt<2>(1)
+ wire T_168627 : UInt<2>[3]
+ T_168627[0] := UInt<2>(1)
+ T_168627[1] := UInt<2>(2)
+ T_168627[2] := UInt<2>(3)
+ wire T_168628 : UInt<2>[2]
+ T_168628[0] := UInt<2>(2)
+ T_168628[1] := UInt<2>(3)
+ wire T_168629 : UInt<2>[1]
+ T_168629[0] := UInt<2>(3)
+ wire T_168630 : UInt<3>[3]
+ T_168630[0] := UInt<3>(0)
+ T_168630[1] := UInt<3>(1)
+ T_168630[2] := UInt<3>(2)
+ wire T_168631 : UInt<2>[2]
+ T_168631[0] := UInt<2>(0)
+ T_168631[1] := UInt<2>(1)
+ wire T_168632 : UInt<2>[3]
+ T_168632[0] := UInt<2>(1)
+ T_168632[1] := UInt<2>(2)
+ T_168632[2] := UInt<2>(3)
+ wire T_168633 : UInt<2>[2]
+ T_168633[0] := UInt<2>(2)
+ T_168633[1] := UInt<2>(3)
+ wire T_168634 : UInt<2>[1]
+ T_168634[0] := UInt<2>(3)
+ wire T_168635 : UInt<3>[3]
+ T_168635[0] := UInt<3>(0)
+ T_168635[1] := UInt<3>(1)
+ T_168635[2] := UInt<3>(2)
+ wire T_168636 : UInt<2>[2]
+ T_168636[0] := UInt<2>(0)
+ T_168636[1] := UInt<2>(1)
+ wire T_168637 : UInt<2>[3]
+ T_168637[0] := UInt<2>(1)
+ T_168637[1] := UInt<2>(2)
+ T_168637[2] := UInt<2>(3)
+ wire T_168638 : UInt<2>[2]
+ T_168638[0] := UInt<2>(2)
+ T_168638[1] := UInt<2>(3)
+ wire T_168639 : UInt<2>[1]
+ T_168639[0] := UInt<2>(3)
+ wire T_168640 : UInt<3>[3]
+ T_168640[0] := UInt<3>(0)
+ T_168640[1] := UInt<3>(1)
+ T_168640[2] := UInt<3>(2)
+ wire T_168641 : UInt<2>[2]
+ T_168641[0] := UInt<2>(0)
+ T_168641[1] := UInt<2>(1)
+ wire T_168642 : UInt<2>[3]
+ T_168642[0] := UInt<2>(1)
+ T_168642[1] := UInt<2>(2)
+ T_168642[2] := UInt<2>(3)
+ wire T_168643 : UInt<2>[2]
+ T_168643[0] := UInt<2>(2)
+ T_168643[1] := UInt<2>(3)
+ wire T_168644 : UInt<2>[1]
+ T_168644[0] := UInt<2>(3)
+ wire T_168645 : UInt<3>[3]
+ T_168645[0] := UInt<3>(0)
+ T_168645[1] := UInt<3>(1)
+ T_168645[2] := UInt<3>(2)
+ wire T_168646 : UInt<2>[2]
+ T_168646[0] := UInt<2>(0)
+ T_168646[1] := UInt<2>(1)
+ wire T_168647 : UInt<2>[3]
+ T_168647[0] := UInt<2>(1)
+ T_168647[1] := UInt<2>(2)
+ T_168647[2] := UInt<2>(3)
+ wire T_168648 : UInt<2>[2]
+ T_168648[0] := UInt<2>(2)
+ T_168648[1] := UInt<2>(3)
+ wire T_168649 : UInt<2>[1]
+ T_168649[0] := UInt<2>(3)
+ wire T_168650 : UInt<3>[3]
+ T_168650[0] := UInt<3>(0)
+ T_168650[1] := UInt<3>(1)
+ T_168650[2] := UInt<3>(2)
+ wire T_168651 : UInt<2>[2]
+ T_168651[0] := UInt<2>(0)
+ T_168651[1] := UInt<2>(1)
+ wire T_168652 : UInt<2>[3]
+ T_168652[0] := UInt<2>(1)
+ T_168652[1] := UInt<2>(2)
+ T_168652[2] := UInt<2>(3)
+ wire T_168653 : UInt<2>[2]
+ T_168653[0] := UInt<2>(2)
+ T_168653[1] := UInt<2>(3)
+ wire T_168654 : UInt<2>[1]
+ T_168654[0] := UInt<2>(3)
+ wire T_168655 : UInt<3>[3]
+ T_168655[0] := UInt<3>(0)
+ T_168655[1] := UInt<3>(1)
+ T_168655[2] := UInt<3>(2)
+ wire T_168656 : UInt<2>[2]
+ T_168656[0] := UInt<2>(0)
+ T_168656[1] := UInt<2>(1)
+ wire T_168657 : UInt<2>[3]
+ T_168657[0] := UInt<2>(1)
+ T_168657[1] := UInt<2>(2)
+ T_168657[2] := UInt<2>(3)
+ wire T_168658 : UInt<2>[2]
+ T_168658[0] := UInt<2>(2)
+ T_168658[1] := UInt<2>(3)
+ wire T_168659 : UInt<2>[1]
+ T_168659[0] := UInt<2>(3)
+ wire T_168660 : UInt<3>[3]
+ T_168660[0] := UInt<3>(0)
+ T_168660[1] := UInt<3>(1)
+ T_168660[2] := UInt<3>(2)
+ wire T_168661 : UInt<2>[2]
+ T_168661[0] := UInt<2>(0)
+ T_168661[1] := UInt<2>(1)
+ wire T_168662 : UInt<2>[3]
+ T_168662[0] := UInt<2>(1)
+ T_168662[1] := UInt<2>(2)
+ T_168662[2] := UInt<2>(3)
+ wire T_168663 : UInt<2>[2]
+ T_168663[0] := UInt<2>(2)
+ T_168663[1] := UInt<2>(3)
+ wire T_168664 : UInt<2>[1]
+ T_168664[0] := UInt<2>(3)
+ wire T_168665 : UInt<3>[3]
+ T_168665[0] := UInt<3>(0)
+ T_168665[1] := UInt<3>(1)
+ T_168665[2] := UInt<3>(2)
+ wire T_168666 : UInt<2>[2]
+ T_168666[0] := UInt<2>(0)
+ T_168666[1] := UInt<2>(1)
+ wire T_168667 : UInt<2>[3]
+ T_168667[0] := UInt<2>(1)
+ T_168667[1] := UInt<2>(2)
+ T_168667[2] := UInt<2>(3)
+ wire T_168668 : UInt<2>[2]
+ T_168668[0] := UInt<2>(2)
+ T_168668[1] := UInt<2>(3)
+ wire T_168669 : UInt<2>[1]
+ T_168669[0] := UInt<2>(3)
+ wire T_168670 : UInt<3>[3]
+ T_168670[0] := UInt<3>(0)
+ T_168670[1] := UInt<3>(1)
+ T_168670[2] := UInt<3>(2)
+ wire T_168671 : UInt<2>[2]
+ T_168671[0] := UInt<2>(0)
+ T_168671[1] := UInt<2>(1)
+ wire T_168672 : UInt<2>[3]
+ T_168672[0] := UInt<2>(1)
+ T_168672[1] := UInt<2>(2)
+ T_168672[2] := UInt<2>(3)
+ wire T_168673 : UInt<2>[2]
+ T_168673[0] := UInt<2>(2)
+ T_168673[1] := UInt<2>(3)
+ wire T_168674 : UInt<2>[1]
+ T_168674[0] := UInt<2>(3)
+ wire T_168675 : UInt<3>[3]
+ T_168675[0] := UInt<3>(0)
+ T_168675[1] := UInt<3>(1)
+ T_168675[2] := UInt<3>(2)
+ wire T_168676 : UInt<2>[2]
+ T_168676[0] := UInt<2>(0)
+ T_168676[1] := UInt<2>(1)
+ wire T_168677 : UInt<2>[3]
+ T_168677[0] := UInt<2>(1)
+ T_168677[1] := UInt<2>(2)
+ T_168677[2] := UInt<2>(3)
+ wire T_168678 : UInt<2>[2]
+ T_168678[0] := UInt<2>(2)
+ T_168678[1] := UInt<2>(3)
+ wire T_168679 : UInt<2>[1]
+ T_168679[0] := UInt<2>(3)
+ inst T_168680 of Queue_38541
+ T_168680.enq.valid := client.acquire.valid
+ T_168680.enq.bits := client.acquire.bits
+ client.acquire.ready := T_168680.enq.ready
+ manager.acquire <> T_168680.deq
+ wire T_168681 : UInt<3>[3]
+ T_168681[0] := UInt<3>(0)
+ T_168681[1] := UInt<3>(1)
+ T_168681[2] := UInt<3>(2)
+ wire T_168682 : UInt<2>[2]
+ T_168682[0] := UInt<2>(0)
+ T_168682[1] := UInt<2>(1)
+ wire T_168683 : UInt<2>[3]
+ T_168683[0] := UInt<2>(1)
+ T_168683[1] := UInt<2>(2)
+ T_168683[2] := UInt<2>(3)
+ wire T_168684 : UInt<2>[2]
+ T_168684[0] := UInt<2>(2)
+ T_168684[1] := UInt<2>(3)
+ wire T_168685 : UInt<2>[1]
+ T_168685[0] := UInt<2>(3)
+ inst T_168686 of Queue_39180
+ T_168686.enq.valid := manager.probe.valid
+ T_168686.enq.bits := manager.probe.bits
+ manager.probe.ready := T_168686.enq.ready
+ client.probe <> T_168686.deq
+ wire T_168687 : UInt<3>[3]
+ T_168687[0] := UInt<3>(0)
+ T_168687[1] := UInt<3>(1)
+ T_168687[2] := UInt<3>(2)
+ wire T_168688 : UInt<2>[2]
+ T_168688[0] := UInt<2>(0)
+ T_168688[1] := UInt<2>(1)
+ wire T_168689 : UInt<2>[3]
+ T_168689[0] := UInt<2>(1)
+ T_168689[1] := UInt<2>(2)
+ T_168689[2] := UInt<2>(3)
+ wire T_168690 : UInt<2>[2]
+ T_168690[0] := UInt<2>(2)
+ T_168690[1] := UInt<2>(3)
+ wire T_168691 : UInt<2>[1]
+ T_168691[0] := UInt<2>(3)
+ inst T_168692 of Queue_39855
+ T_168692.enq.valid := client.release.valid
+ T_168692.enq.bits := client.release.bits
+ client.release.ready := T_168692.enq.ready
+ manager.release <> T_168692.deq
+ wire T_168693 : UInt<3>[3]
+ T_168693[0] := UInt<3>(0)
+ T_168693[1] := UInt<3>(1)
+ T_168693[2] := UInt<3>(2)
+ wire T_168694 : UInt<2>[2]
+ T_168694[0] := UInt<2>(0)
+ T_168694[1] := UInt<2>(1)
+ wire T_168695 : UInt<2>[3]
+ T_168695[0] := UInt<2>(1)
+ T_168695[1] := UInt<2>(2)
+ T_168695[2] := UInt<2>(3)
+ wire T_168696 : UInt<2>[2]
+ T_168696[0] := UInt<2>(2)
+ T_168696[1] := UInt<2>(3)
+ wire T_168697 : UInt<2>[1]
+ T_168697[0] := UInt<2>(3)
+ inst T_168698 of Queue_40530
+ T_168698.enq.valid := manager.grant.valid
+ T_168698.enq.bits := manager.grant.bits
+ manager.grant.ready := T_168698.enq.ready
+ client.grant <> T_168698.deq
+ wire T_168699 : UInt<3>[3]
+ T_168699[0] := UInt<3>(0)
+ T_168699[1] := UInt<3>(1)
+ T_168699[2] := UInt<3>(2)
+ wire T_168700 : UInt<2>[2]
+ T_168700[0] := UInt<2>(0)
+ T_168700[1] := UInt<2>(1)
+ wire T_168701 : UInt<2>[3]
+ T_168701[0] := UInt<2>(1)
+ T_168701[1] := UInt<2>(2)
+ T_168701[2] := UInt<2>(3)
+ wire T_168702 : UInt<2>[2]
+ T_168702[0] := UInt<2>(2)
+ T_168702[1] := UInt<2>(3)
+ wire T_168703 : UInt<2>[1]
+ T_168703[0] := UInt<2>(3)
+ inst T_168704 of Queue_41160
+ T_168704.enq.valid := client.finish.valid
+ T_168704.enq.bits := client.finish.bits
+ client.finish.ready := T_168704.enq.ready
+ manager.finish <> T_168704.deq
+ module ManagerTileLinkNetworkPort :
+ input manager : {flip acquire : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_block : UInt<26>, client_xact_id : UInt<1>, addr_beat : UInt<2>, data : UInt<128>, is_builtin_type : UInt<1>, a_type : UInt<3>, union : UInt<17>, client_id : UInt<2>}}, grant : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_beat : UInt<2>, data : UInt<128>, client_xact_id : UInt<1>, manager_xact_id : UInt<2>, is_builtin_type : UInt<1>, g_type : UInt<4>, client_id : UInt<2>}}, flip finish : {flip ready : UInt<1>, valid : UInt<1>, bits : {manager_xact_id : UInt<2>}}, probe : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_block : UInt<26>, p_type : UInt<2>, client_id : UInt<2>}}, flip release : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_block : UInt<26>, client_xact_id : UInt<1>, addr_beat : UInt<2>, data : UInt<128>, r_type : UInt<3>, voluntary : UInt<1>, client_id : UInt<2>}}}
+ input network : {acquire : {flip ready : UInt<1>, valid : UInt<1>, bits : {header : {src : UInt<2>, dst : UInt<2>}, payload : {addr_block : UInt<26>, client_xact_id : UInt<1>, addr_beat : UInt<2>, data : UInt<128>, is_builtin_type : UInt<1>, a_type : UInt<3>, union : UInt<17>}}}, flip grant : {flip ready : UInt<1>, valid : UInt<1>, bits : {header : {src : UInt<2>, dst : UInt<2>}, payload : {addr_beat : UInt<2>, data : UInt<128>, client_xact_id : UInt<1>, manager_xact_id : UInt<2>, is_builtin_type : UInt<1>, g_type : UInt<4>}}}, finish : {flip ready : UInt<1>, valid : UInt<1>, bits : {header : {src : UInt<2>, dst : UInt<2>}, payload : {manager_xact_id : UInt<2>}}}, flip probe : {flip ready : UInt<1>, valid : UInt<1>, bits : {header : {src : UInt<2>, dst : UInt<2>}, payload : {addr_block : UInt<26>, p_type : UInt<2>}}}, release : {flip ready : UInt<1>, valid : UInt<1>, bits : {header : {src : UInt<2>, dst : UInt<2>}, payload : {addr_block : UInt<26>, client_xact_id : UInt<1>, addr_beat : UInt<2>, data : UInt<128>, r_type : UInt<3>, voluntary : UInt<1>}}}}
+
+ wire T_168705 : UInt<3>[3]
+ T_168705[0] := UInt<3>(0)
+ T_168705[1] := UInt<3>(1)
+ T_168705[2] := UInt<3>(2)
+ wire T_168706 : UInt<2>[2]
+ T_168706[0] := UInt<2>(0)
+ T_168706[1] := UInt<2>(1)
+ wire T_168707 : UInt<2>[3]
+ T_168707[0] := UInt<2>(1)
+ T_168707[1] := UInt<2>(2)
+ T_168707[2] := UInt<2>(3)
+ wire T_168708 : UInt<2>[2]
+ T_168708[0] := UInt<2>(2)
+ T_168708[1] := UInt<2>(3)
+ wire T_168709 : UInt<2>[1]
+ T_168709[0] := UInt<2>(3)
+ wire T_168710 : UInt<3>[3]
+ T_168710[0] := UInt<3>(0)
+ T_168710[1] := UInt<3>(1)
+ T_168710[2] := UInt<3>(2)
+ wire T_168711 : UInt<2>[2]
+ T_168711[0] := UInt<2>(0)
+ T_168711[1] := UInt<2>(1)
+ wire T_168712 : UInt<2>[3]
+ T_168712[0] := UInt<2>(1)
+ T_168712[1] := UInt<2>(2)
+ T_168712[2] := UInt<2>(3)
+ wire T_168713 : UInt<2>[2]
+ T_168713[0] := UInt<2>(2)
+ T_168713[1] := UInt<2>(3)
+ wire T_168714 : UInt<2>[1]
+ T_168714[0] := UInt<2>(3)
+ wire T_168715 : UInt<3>[3]
+ T_168715[0] := UInt<3>(0)
+ T_168715[1] := UInt<3>(1)
+ T_168715[2] := UInt<3>(2)
+ wire T_168716 : UInt<2>[2]
+ T_168716[0] := UInt<2>(0)
+ T_168716[1] := UInt<2>(1)
+ wire T_168717 : UInt<2>[3]
+ T_168717[0] := UInt<2>(1)
+ T_168717[1] := UInt<2>(2)
+ T_168717[2] := UInt<2>(3)
+ wire T_168718 : UInt<2>[2]
+ T_168718[0] := UInt<2>(2)
+ T_168718[1] := UInt<2>(3)
+ wire T_168719 : UInt<2>[1]
+ T_168719[0] := UInt<2>(3)
+ wire T_168720 : UInt<3>[3]
+ T_168720[0] := UInt<3>(0)
+ T_168720[1] := UInt<3>(1)
+ T_168720[2] := UInt<3>(2)
+ wire T_168721 : UInt<2>[2]
+ T_168721[0] := UInt<2>(0)
+ T_168721[1] := UInt<2>(1)
+ wire T_168722 : UInt<2>[3]
+ T_168722[0] := UInt<2>(1)
+ T_168722[1] := UInt<2>(2)
+ T_168722[2] := UInt<2>(3)
+ wire T_168723 : UInt<2>[2]
+ T_168723[0] := UInt<2>(2)
+ T_168723[1] := UInt<2>(3)
+ wire T_168724 : UInt<2>[1]
+ T_168724[0] := UInt<2>(3)
+ wire T_168725 : UInt<3>[3]
+ T_168725[0] := UInt<3>(0)
+ T_168725[1] := UInt<3>(1)
+ T_168725[2] := UInt<3>(2)
+ wire T_168726 : UInt<2>[2]
+ T_168726[0] := UInt<2>(0)
+ T_168726[1] := UInt<2>(1)
+ wire T_168727 : UInt<2>[3]
+ T_168727[0] := UInt<2>(1)
+ T_168727[1] := UInt<2>(2)
+ T_168727[2] := UInt<2>(3)
+ wire T_168728 : UInt<2>[2]
+ T_168728[0] := UInt<2>(2)
+ T_168728[1] := UInt<2>(3)
+ wire T_168729 : UInt<2>[1]
+ T_168729[0] := UInt<2>(3)
+ wire T_168730 : UInt<3>[3]
+ T_168730[0] := UInt<3>(0)
+ T_168730[1] := UInt<3>(1)
+ T_168730[2] := UInt<3>(2)
+ wire T_168731 : UInt<2>[2]
+ T_168731[0] := UInt<2>(0)
+ T_168731[1] := UInt<2>(1)
+ wire T_168732 : UInt<2>[3]
+ T_168732[0] := UInt<2>(1)
+ T_168732[1] := UInt<2>(2)
+ T_168732[2] := UInt<2>(3)
+ wire T_168733 : UInt<2>[2]
+ T_168733[0] := UInt<2>(2)
+ T_168733[1] := UInt<2>(3)
+ wire T_168734 : UInt<2>[1]
+ T_168734[0] := UInt<2>(3)
+ wire T_168735 : UInt<3>[3]
+ T_168735[0] := UInt<3>(0)
+ T_168735[1] := UInt<3>(1)
+ T_168735[2] := UInt<3>(2)
+ wire T_168736 : UInt<2>[2]
+ T_168736[0] := UInt<2>(0)
+ T_168736[1] := UInt<2>(1)
+ wire T_168737 : UInt<2>[3]
+ T_168737[0] := UInt<2>(1)
+ T_168737[1] := UInt<2>(2)
+ T_168737[2] := UInt<2>(3)
+ wire T_168738 : UInt<2>[2]
+ T_168738[0] := UInt<2>(2)
+ T_168738[1] := UInt<2>(3)
+ wire T_168739 : UInt<2>[1]
+ T_168739[0] := UInt<2>(3)
+ wire T_168740 : UInt<3>[3]
+ T_168740[0] := UInt<3>(0)
+ T_168740[1] := UInt<3>(1)
+ T_168740[2] := UInt<3>(2)
+ wire T_168741 : UInt<2>[2]
+ T_168741[0] := UInt<2>(0)
+ T_168741[1] := UInt<2>(1)
+ wire T_168742 : UInt<2>[3]
+ T_168742[0] := UInt<2>(1)
+ T_168742[1] := UInt<2>(2)
+ T_168742[2] := UInt<2>(3)
+ wire T_168743 : UInt<2>[2]
+ T_168743[0] := UInt<2>(2)
+ T_168743[1] := UInt<2>(3)
+ wire T_168744 : UInt<2>[1]
+ T_168744[0] := UInt<2>(3)
+ wire T_168745 : UInt<3>[3]
+ T_168745[0] := UInt<3>(0)
+ T_168745[1] := UInt<3>(1)
+ T_168745[2] := UInt<3>(2)
+ wire T_168746 : UInt<2>[2]
+ T_168746[0] := UInt<2>(0)
+ T_168746[1] := UInt<2>(1)
+ wire T_168747 : UInt<2>[3]
+ T_168747[0] := UInt<2>(1)
+ T_168747[1] := UInt<2>(2)
+ T_168747[2] := UInt<2>(3)
+ wire T_168748 : UInt<2>[2]
+ T_168748[0] := UInt<2>(2)
+ T_168748[1] := UInt<2>(3)
+ wire T_168749 : UInt<2>[1]
+ T_168749[0] := UInt<2>(3)
+ wire T_168750 : UInt<3>[3]
+ T_168750[0] := UInt<3>(0)
+ T_168750[1] := UInt<3>(1)
+ T_168750[2] := UInt<3>(2)
+ wire T_168751 : UInt<2>[2]
+ T_168751[0] := UInt<2>(0)
+ T_168751[1] := UInt<2>(1)
+ wire T_168752 : UInt<2>[3]
+ T_168752[0] := UInt<2>(1)
+ T_168752[1] := UInt<2>(2)
+ T_168752[2] := UInt<2>(3)
+ wire T_168753 : UInt<2>[2]
+ T_168753[0] := UInt<2>(2)
+ T_168753[1] := UInt<2>(3)
+ wire T_168754 : UInt<2>[1]
+ T_168754[0] := UInt<2>(3)
+ wire T_168755 : UInt<3>[3]
+ T_168755[0] := UInt<3>(0)
+ T_168755[1] := UInt<3>(1)
+ T_168755[2] := UInt<3>(2)
+ wire T_168756 : UInt<2>[2]
+ T_168756[0] := UInt<2>(0)
+ T_168756[1] := UInt<2>(1)
+ wire T_168757 : UInt<2>[3]
+ T_168757[0] := UInt<2>(1)
+ T_168757[1] := UInt<2>(2)
+ T_168757[2] := UInt<2>(3)
+ wire T_168758 : UInt<2>[2]
+ T_168758[0] := UInt<2>(2)
+ T_168758[1] := UInt<2>(3)
+ wire T_168759 : UInt<2>[1]
+ T_168759[0] := UInt<2>(3)
+ wire T_168760 : UInt<3>[3]
+ T_168760[0] := UInt<3>(0)
+ T_168760[1] := UInt<3>(1)
+ T_168760[2] := UInt<3>(2)
+ wire T_168761 : UInt<2>[2]
+ T_168761[0] := UInt<2>(0)
+ T_168761[1] := UInt<2>(1)
+ wire T_168762 : UInt<2>[3]
+ T_168762[0] := UInt<2>(1)
+ T_168762[1] := UInt<2>(2)
+ T_168762[2] := UInt<2>(3)
+ wire T_168763 : UInt<2>[2]
+ T_168763[0] := UInt<2>(2)
+ T_168763[1] := UInt<2>(3)
+ wire T_168764 : UInt<2>[1]
+ T_168764[0] := UInt<2>(3)
+ wire T_168765 : UInt<3>[3]
+ T_168765[0] := UInt<3>(0)
+ T_168765[1] := UInt<3>(1)
+ T_168765[2] := UInt<3>(2)
+ wire T_168766 : UInt<2>[2]
+ T_168766[0] := UInt<2>(0)
+ T_168766[1] := UInt<2>(1)
+ wire T_168767 : UInt<2>[3]
+ T_168767[0] := UInt<2>(1)
+ T_168767[1] := UInt<2>(2)
+ T_168767[2] := UInt<2>(3)
+ wire T_168768 : UInt<2>[2]
+ T_168768[0] := UInt<2>(2)
+ T_168768[1] := UInt<2>(3)
+ wire T_168769 : UInt<2>[1]
+ T_168769[0] := UInt<2>(3)
+ wire T_168770 : UInt<3>[3]
+ T_168770[0] := UInt<3>(0)
+ T_168770[1] := UInt<3>(1)
+ T_168770[2] := UInt<3>(2)
+ wire T_168771 : UInt<2>[2]
+ T_168771[0] := UInt<2>(0)
+ T_168771[1] := UInt<2>(1)
+ wire T_168772 : UInt<2>[3]
+ T_168772[0] := UInt<2>(1)
+ T_168772[1] := UInt<2>(2)
+ T_168772[2] := UInt<2>(3)
+ wire T_168773 : UInt<2>[2]
+ T_168773[0] := UInt<2>(2)
+ T_168773[1] := UInt<2>(3)
+ wire T_168774 : UInt<2>[1]
+ T_168774[0] := UInt<2>(3)
+ wire T_168775 : UInt<3>[3]
+ T_168775[0] := UInt<3>(0)
+ T_168775[1] := UInt<3>(1)
+ T_168775[2] := UInt<3>(2)
+ wire T_168776 : UInt<2>[2]
+ T_168776[0] := UInt<2>(0)
+ T_168776[1] := UInt<2>(1)
+ wire T_168777 : UInt<2>[3]
+ T_168777[0] := UInt<2>(1)
+ T_168777[1] := UInt<2>(2)
+ T_168777[2] := UInt<2>(3)
+ wire T_168778 : UInt<2>[2]
+ T_168778[0] := UInt<2>(2)
+ T_168778[1] := UInt<2>(3)
+ wire T_168779 : UInt<2>[1]
+ T_168779[0] := UInt<2>(3)
+ wire T_168780 : UInt<3>[3]
+ T_168780[0] := UInt<3>(0)
+ T_168780[1] := UInt<3>(1)
+ T_168780[2] := UInt<3>(2)
+ wire T_168781 : UInt<2>[2]
+ T_168781[0] := UInt<2>(0)
+ T_168781[1] := UInt<2>(1)
+ wire T_168782 : UInt<2>[3]
+ T_168782[0] := UInt<2>(1)
+ T_168782[1] := UInt<2>(2)
+ T_168782[2] := UInt<2>(3)
+ wire T_168783 : UInt<2>[2]
+ T_168783[0] := UInt<2>(2)
+ T_168783[1] := UInt<2>(3)
+ wire T_168784 : UInt<2>[1]
+ T_168784[0] := UInt<2>(3)
+ wire T_168785 : UInt<3>[3]
+ T_168785[0] := UInt<3>(0)
+ T_168785[1] := UInt<3>(1)
+ T_168785[2] := UInt<3>(2)
+ wire T_168786 : UInt<2>[2]
+ T_168786[0] := UInt<2>(0)
+ T_168786[1] := UInt<2>(1)
+ wire T_168787 : UInt<2>[3]
+ T_168787[0] := UInt<2>(1)
+ T_168787[1] := UInt<2>(2)
+ T_168787[2] := UInt<2>(3)
+ wire T_168788 : UInt<2>[2]
+ T_168788[0] := UInt<2>(2)
+ T_168788[1] := UInt<2>(3)
+ wire T_168789 : UInt<2>[1]
+ T_168789[0] := UInt<2>(3)
+ wire T_168790 : UInt<3>[3]
+ T_168790[0] := UInt<3>(0)
+ T_168790[1] := UInt<3>(1)
+ T_168790[2] := UInt<3>(2)
+ wire T_168791 : UInt<2>[2]
+ T_168791[0] := UInt<2>(0)
+ T_168791[1] := UInt<2>(1)
+ wire T_168792 : UInt<2>[3]
+ T_168792[0] := UInt<2>(1)
+ T_168792[1] := UInt<2>(2)
+ T_168792[2] := UInt<2>(3)
+ wire T_168793 : UInt<2>[2]
+ T_168793[0] := UInt<2>(2)
+ T_168793[1] := UInt<2>(3)
+ wire T_168794 : UInt<2>[1]
+ T_168794[0] := UInt<2>(3)
+ wire T_168795 : UInt<3>[3]
+ T_168795[0] := UInt<3>(0)
+ T_168795[1] := UInt<3>(1)
+ T_168795[2] := UInt<3>(2)
+ wire T_168796 : UInt<2>[2]
+ T_168796[0] := UInt<2>(0)
+ T_168796[1] := UInt<2>(1)
+ wire T_168797 : UInt<2>[3]
+ T_168797[0] := UInt<2>(1)
+ T_168797[1] := UInt<2>(2)
+ T_168797[2] := UInt<2>(3)
+ wire T_168798 : UInt<2>[2]
+ T_168798[0] := UInt<2>(2)
+ T_168798[1] := UInt<2>(3)
+ wire T_168799 : UInt<2>[1]
+ T_168799[0] := UInt<2>(3)
+ wire T_168800 : UInt<3>[3]
+ T_168800[0] := UInt<3>(0)
+ T_168800[1] := UInt<3>(1)
+ T_168800[2] := UInt<3>(2)
+ wire T_168801 : UInt<2>[2]
+ T_168801[0] := UInt<2>(0)
+ T_168801[1] := UInt<2>(1)
+ wire T_168802 : UInt<2>[3]
+ T_168802[0] := UInt<2>(1)
+ T_168802[1] := UInt<2>(2)
+ T_168802[2] := UInt<2>(3)
+ wire T_168803 : UInt<2>[2]
+ T_168803[0] := UInt<2>(2)
+ T_168803[1] := UInt<2>(3)
+ wire T_168804 : UInt<2>[1]
+ T_168804[0] := UInt<2>(3)
+ wire T_168805 : UInt<3>[3]
+ T_168805[0] := UInt<3>(0)
+ T_168805[1] := UInt<3>(1)
+ T_168805[2] := UInt<3>(2)
+ wire T_168806 : UInt<2>[2]
+ T_168806[0] := UInt<2>(0)
+ T_168806[1] := UInt<2>(1)
+ wire T_168807 : UInt<2>[3]
+ T_168807[0] := UInt<2>(1)
+ T_168807[1] := UInt<2>(2)
+ T_168807[2] := UInt<2>(3)
+ wire T_168808 : UInt<2>[2]
+ T_168808[0] := UInt<2>(2)
+ T_168808[1] := UInt<2>(3)
+ wire T_168809 : UInt<2>[1]
+ T_168809[0] := UInt<2>(3)
+ wire T_168810 : UInt<3>[3]
+ T_168810[0] := UInt<3>(0)
+ T_168810[1] := UInt<3>(1)
+ T_168810[2] := UInt<3>(2)
+ wire T_168811 : UInt<2>[2]
+ T_168811[0] := UInt<2>(0)
+ T_168811[1] := UInt<2>(1)
+ wire T_168812 : UInt<2>[3]
+ T_168812[0] := UInt<2>(1)
+ T_168812[1] := UInt<2>(2)
+ T_168812[2] := UInt<2>(3)
+ wire T_168813 : UInt<2>[2]
+ T_168813[0] := UInt<2>(2)
+ T_168813[1] := UInt<2>(3)
+ wire T_168814 : UInt<2>[1]
+ T_168814[0] := UInt<2>(3)
+ wire T_168815 : UInt<3>[3]
+ T_168815[0] := UInt<3>(0)
+ T_168815[1] := UInt<3>(1)
+ T_168815[2] := UInt<3>(2)
+ wire T_168816 : UInt<2>[2]
+ T_168816[0] := UInt<2>(0)
+ T_168816[1] := UInt<2>(1)
+ wire T_168817 : UInt<2>[3]
+ T_168817[0] := UInt<2>(1)
+ T_168817[1] := UInt<2>(2)
+ T_168817[2] := UInt<2>(3)
+ wire T_168818 : UInt<2>[2]
+ T_168818[0] := UInt<2>(2)
+ T_168818[1] := UInt<2>(3)
+ wire T_168819 : UInt<2>[1]
+ T_168819[0] := UInt<2>(3)
+ wire T_168820 : UInt<3>[3]
+ T_168820[0] := UInt<3>(0)
+ T_168820[1] := UInt<3>(1)
+ T_168820[2] := UInt<3>(2)
+ wire T_168821 : UInt<2>[2]
+ T_168821[0] := UInt<2>(0)
+ T_168821[1] := UInt<2>(1)
+ wire T_168822 : UInt<2>[3]
+ T_168822[0] := UInt<2>(1)
+ T_168822[1] := UInt<2>(2)
+ T_168822[2] := UInt<2>(3)
+ wire T_168823 : UInt<2>[2]
+ T_168823[0] := UInt<2>(2)
+ T_168823[1] := UInt<2>(3)
+ wire T_168824 : UInt<2>[1]
+ T_168824[0] := UInt<2>(3)
+ wire T_168825 : UInt<3>[3]
+ T_168825[0] := UInt<3>(0)
+ T_168825[1] := UInt<3>(1)
+ T_168825[2] := UInt<3>(2)
+ wire T_168826 : UInt<2>[2]
+ T_168826[0] := UInt<2>(0)
+ T_168826[1] := UInt<2>(1)
+ wire T_168827 : UInt<2>[3]
+ T_168827[0] := UInt<2>(1)
+ T_168827[1] := UInt<2>(2)
+ T_168827[2] := UInt<2>(3)
+ wire T_168828 : UInt<2>[2]
+ T_168828[0] := UInt<2>(2)
+ T_168828[1] := UInt<2>(3)
+ wire T_168829 : UInt<2>[1]
+ T_168829[0] := UInt<2>(3)
+ wire T_168830 : UInt<3>[3]
+ T_168830[0] := UInt<3>(0)
+ T_168830[1] := UInt<3>(1)
+ T_168830[2] := UInt<3>(2)
+ wire T_168831 : UInt<2>[2]
+ T_168831[0] := UInt<2>(0)
+ T_168831[1] := UInt<2>(1)
+ wire T_168832 : UInt<2>[3]
+ T_168832[0] := UInt<2>(1)
+ T_168832[1] := UInt<2>(2)
+ T_168832[2] := UInt<2>(3)
+ wire T_168833 : UInt<2>[2]
+ T_168833[0] := UInt<2>(2)
+ T_168833[1] := UInt<2>(3)
+ wire T_168834 : UInt<2>[1]
+ T_168834[0] := UInt<2>(3)
+ wire T_168835 : UInt<3>[3]
+ T_168835[0] := UInt<3>(0)
+ T_168835[1] := UInt<3>(1)
+ T_168835[2] := UInt<3>(2)
+ wire T_168836 : UInt<2>[2]
+ T_168836[0] := UInt<2>(0)
+ T_168836[1] := UInt<2>(1)
+ wire T_168837 : UInt<2>[3]
+ T_168837[0] := UInt<2>(1)
+ T_168837[1] := UInt<2>(2)
+ T_168837[2] := UInt<2>(3)
+ wire T_168838 : UInt<2>[2]
+ T_168838[0] := UInt<2>(2)
+ T_168838[1] := UInt<2>(3)
+ wire T_168839 : UInt<2>[1]
+ T_168839[0] := UInt<2>(3)
+ wire T_168840 : UInt<3>[3]
+ T_168840[0] := UInt<3>(0)
+ T_168840[1] := UInt<3>(1)
+ T_168840[2] := UInt<3>(2)
+ wire T_168841 : UInt<2>[2]
+ T_168841[0] := UInt<2>(0)
+ T_168841[1] := UInt<2>(1)
+ wire T_168842 : UInt<2>[3]
+ T_168842[0] := UInt<2>(1)
+ T_168842[1] := UInt<2>(2)
+ T_168842[2] := UInt<2>(3)
+ wire T_168843 : UInt<2>[2]
+ T_168843[0] := UInt<2>(2)
+ T_168843[1] := UInt<2>(3)
+ wire T_168844 : UInt<2>[1]
+ T_168844[0] := UInt<2>(3)
+ wire T_168845 : UInt<3>[3]
+ T_168845[0] := UInt<3>(0)
+ T_168845[1] := UInt<3>(1)
+ T_168845[2] := UInt<3>(2)
+ wire T_168846 : UInt<2>[2]
+ T_168846[0] := UInt<2>(0)
+ T_168846[1] := UInt<2>(1)
+ wire T_168847 : UInt<2>[3]
+ T_168847[0] := UInt<2>(1)
+ T_168847[1] := UInt<2>(2)
+ T_168847[2] := UInt<2>(3)
+ wire T_168848 : UInt<2>[2]
+ T_168848[0] := UInt<2>(2)
+ T_168848[1] := UInt<2>(3)
+ wire T_168849 : UInt<2>[1]
+ T_168849[0] := UInt<2>(3)
+ wire T_168850 : UInt<3>[3]
+ T_168850[0] := UInt<3>(0)
+ T_168850[1] := UInt<3>(1)
+ T_168850[2] := UInt<3>(2)
+ wire T_168851 : UInt<2>[2]
+ T_168851[0] := UInt<2>(0)
+ T_168851[1] := UInt<2>(1)
+ wire T_168852 : UInt<2>[3]
+ T_168852[0] := UInt<2>(1)
+ T_168852[1] := UInt<2>(2)
+ T_168852[2] := UInt<2>(3)
+ wire T_168853 : UInt<2>[2]
+ T_168853[0] := UInt<2>(2)
+ T_168853[1] := UInt<2>(3)
+ wire T_168854 : UInt<2>[1]
+ T_168854[0] := UInt<2>(3)
+ wire T_168855 : UInt<3>[3]
+ T_168855[0] := UInt<3>(0)
+ T_168855[1] := UInt<3>(1)
+ T_168855[2] := UInt<3>(2)
+ wire T_168856 : UInt<2>[2]
+ T_168856[0] := UInt<2>(0)
+ T_168856[1] := UInt<2>(1)
+ wire T_168857 : UInt<2>[3]
+ T_168857[0] := UInt<2>(1)
+ T_168857[1] := UInt<2>(2)
+ T_168857[2] := UInt<2>(3)
+ wire T_168858 : UInt<2>[2]
+ T_168858[0] := UInt<2>(2)
+ T_168858[1] := UInt<2>(3)
+ wire T_168859 : UInt<2>[1]
+ T_168859[0] := UInt<2>(3)
+ wire T_168860 : {flip ready : UInt<1>, valid : UInt<1>, bits : {header : {src : UInt<2>, dst : UInt<2>}, payload : {addr_beat : UInt<2>, data : UInt<128>, client_xact_id : UInt<1>, manager_xact_id : UInt<2>, is_builtin_type : UInt<1>, g_type : UInt<4>, client_id : UInt<2>}}}
+ T_168860.bits.payload := manager.grant.bits
+ T_168860.bits.header.src := UInt<1>(0)
+ T_168860.bits.header.dst := manager.grant.bits.client_id
+ T_168860.valid := manager.grant.valid
+ manager.grant.ready := T_168860.ready
+ network.grant <> T_168860
+ wire T_168861 : UInt<3>[3]
+ T_168861[0] := UInt<3>(0)
+ T_168861[1] := UInt<3>(1)
+ T_168861[2] := UInt<3>(2)
+ wire T_168862 : UInt<2>[2]
+ T_168862[0] := UInt<2>(0)
+ T_168862[1] := UInt<2>(1)
+ wire T_168863 : UInt<2>[3]
+ T_168863[0] := UInt<2>(1)
+ T_168863[1] := UInt<2>(2)
+ T_168863[2] := UInt<2>(3)
+ wire T_168864 : UInt<2>[2]
+ T_168864[0] := UInt<2>(2)
+ T_168864[1] := UInt<2>(3)
+ wire T_168865 : UInt<2>[1]
+ T_168865[0] := UInt<2>(3)
+ wire T_168866 : UInt<3>[3]
+ T_168866[0] := UInt<3>(0)
+ T_168866[1] := UInt<3>(1)
+ T_168866[2] := UInt<3>(2)
+ wire T_168867 : UInt<2>[2]
+ T_168867[0] := UInt<2>(0)
+ T_168867[1] := UInt<2>(1)
+ wire T_168868 : UInt<2>[3]
+ T_168868[0] := UInt<2>(1)
+ T_168868[1] := UInt<2>(2)
+ T_168868[2] := UInt<2>(3)
+ wire T_168869 : UInt<2>[2]
+ T_168869[0] := UInt<2>(2)
+ T_168869[1] := UInt<2>(3)
+ wire T_168870 : UInt<2>[1]
+ T_168870[0] := UInt<2>(3)
+ wire T_168871 : UInt<3>[3]
+ T_168871[0] := UInt<3>(0)
+ T_168871[1] := UInt<3>(1)
+ T_168871[2] := UInt<3>(2)
+ wire T_168872 : UInt<2>[2]
+ T_168872[0] := UInt<2>(0)
+ T_168872[1] := UInt<2>(1)
+ wire T_168873 : UInt<2>[3]
+ T_168873[0] := UInt<2>(1)
+ T_168873[1] := UInt<2>(2)
+ T_168873[2] := UInt<2>(3)
+ wire T_168874 : UInt<2>[2]
+ T_168874[0] := UInt<2>(2)
+ T_168874[1] := UInt<2>(3)
+ wire T_168875 : UInt<2>[1]
+ T_168875[0] := UInt<2>(3)
+ wire T_168876 : {flip ready : UInt<1>, valid : UInt<1>, bits : {header : {src : UInt<2>, dst : UInt<2>}, payload : {addr_block : UInt<26>, p_type : UInt<2>, client_id : UInt<2>}}}
+ T_168876.bits.payload := manager.probe.bits
+ T_168876.bits.header.src := UInt<1>(0)
+ T_168876.bits.header.dst := manager.probe.bits.client_id
+ T_168876.valid := manager.probe.valid
+ manager.probe.ready := T_168876.ready
+ network.probe <> T_168876
+ manager.acquire.bits.client_id := network.acquire.bits.header.src
+ wire T_168877 : UInt<3>[3]
+ T_168877[0] := UInt<3>(0)
+ T_168877[1] := UInt<3>(1)
+ T_168877[2] := UInt<3>(2)
+ wire T_168878 : UInt<2>[2]
+ T_168878[0] := UInt<2>(0)
+ T_168878[1] := UInt<2>(1)
+ wire T_168879 : UInt<2>[3]
+ T_168879[0] := UInt<2>(1)
+ T_168879[1] := UInt<2>(2)
+ T_168879[2] := UInt<2>(3)
+ wire T_168880 : UInt<2>[2]
+ T_168880[0] := UInt<2>(2)
+ T_168880[1] := UInt<2>(3)
+ wire T_168881 : UInt<2>[1]
+ T_168881[0] := UInt<2>(3)
+ wire T_168882 : UInt<3>[3]
+ T_168882[0] := UInt<3>(0)
+ T_168882[1] := UInt<3>(1)
+ T_168882[2] := UInt<3>(2)
+ wire T_168883 : UInt<2>[2]
+ T_168883[0] := UInt<2>(0)
+ T_168883[1] := UInt<2>(1)
+ wire T_168884 : UInt<2>[3]
+ T_168884[0] := UInt<2>(1)
+ T_168884[1] := UInt<2>(2)
+ T_168884[2] := UInt<2>(3)
+ wire T_168885 : UInt<2>[2]
+ T_168885[0] := UInt<2>(2)
+ T_168885[1] := UInt<2>(3)
+ wire T_168886 : UInt<2>[1]
+ T_168886[0] := UInt<2>(3)
+ wire T_168887 : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_block : UInt<26>, client_xact_id : UInt<1>, addr_beat : UInt<2>, data : UInt<128>, is_builtin_type : UInt<1>, a_type : UInt<3>, union : UInt<17>}}
+ T_168887.valid := network.acquire.valid
+ T_168887.bits := network.acquire.bits.payload
+ network.acquire.ready := T_168887.ready
+ manager.acquire <> T_168887
+ manager.release.bits.client_id := network.release.bits.header.src
+ wire T_168888 : UInt<3>[3]
+ T_168888[0] := UInt<3>(0)
+ T_168888[1] := UInt<3>(1)
+ T_168888[2] := UInt<3>(2)
+ wire T_168889 : UInt<2>[2]
+ T_168889[0] := UInt<2>(0)
+ T_168889[1] := UInt<2>(1)
+ wire T_168890 : UInt<2>[3]
+ T_168890[0] := UInt<2>(1)
+ T_168890[1] := UInt<2>(2)
+ T_168890[2] := UInt<2>(3)
+ wire T_168891 : UInt<2>[2]
+ T_168891[0] := UInt<2>(2)
+ T_168891[1] := UInt<2>(3)
+ wire T_168892 : UInt<2>[1]
+ T_168892[0] := UInt<2>(3)
+ wire T_168893 : UInt<3>[3]
+ T_168893[0] := UInt<3>(0)
+ T_168893[1] := UInt<3>(1)
+ T_168893[2] := UInt<3>(2)
+ wire T_168894 : UInt<2>[2]
+ T_168894[0] := UInt<2>(0)
+ T_168894[1] := UInt<2>(1)
+ wire T_168895 : UInt<2>[3]
+ T_168895[0] := UInt<2>(1)
+ T_168895[1] := UInt<2>(2)
+ T_168895[2] := UInt<2>(3)
+ wire T_168896 : UInt<2>[2]
+ T_168896[0] := UInt<2>(2)
+ T_168896[1] := UInt<2>(3)
+ wire T_168897 : UInt<2>[1]
+ T_168897[0] := UInt<2>(3)
+ wire T_168898 : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_block : UInt<26>, client_xact_id : UInt<1>, addr_beat : UInt<2>, data : UInt<128>, r_type : UInt<3>, voluntary : UInt<1>}}
+ T_168898.valid := network.release.valid
+ T_168898.bits := network.release.bits.payload
+ network.release.ready := T_168898.ready
+ manager.release <> T_168898
+ wire T_168899 : UInt<3>[3]
+ T_168899[0] := UInt<3>(0)
+ T_168899[1] := UInt<3>(1)
+ T_168899[2] := UInt<3>(2)
+ wire T_168900 : UInt<2>[2]
+ T_168900[0] := UInt<2>(0)
+ T_168900[1] := UInt<2>(1)
+ wire T_168901 : UInt<2>[3]
+ T_168901[0] := UInt<2>(1)
+ T_168901[1] := UInt<2>(2)
+ T_168901[2] := UInt<2>(3)
+ wire T_168902 : UInt<2>[2]
+ T_168902[0] := UInt<2>(2)
+ T_168902[1] := UInt<2>(3)
+ wire T_168903 : UInt<2>[1]
+ T_168903[0] := UInt<2>(3)
+ wire T_168904 : UInt<3>[3]
+ T_168904[0] := UInt<3>(0)
+ T_168904[1] := UInt<3>(1)
+ T_168904[2] := UInt<3>(2)
+ wire T_168905 : UInt<2>[2]
+ T_168905[0] := UInt<2>(0)
+ T_168905[1] := UInt<2>(1)
+ wire T_168906 : UInt<2>[3]
+ T_168906[0] := UInt<2>(1)
+ T_168906[1] := UInt<2>(2)
+ T_168906[2] := UInt<2>(3)
+ wire T_168907 : UInt<2>[2]
+ T_168907[0] := UInt<2>(2)
+ T_168907[1] := UInt<2>(3)
+ wire T_168908 : UInt<2>[1]
+ T_168908[0] := UInt<2>(3)
+ wire T_168909 : {flip ready : UInt<1>, valid : UInt<1>, bits : {manager_xact_id : UInt<2>}}
+ T_168909.valid := network.finish.valid
+ T_168909.bits := network.finish.bits.payload
+ network.finish.ready := T_168909.ready
+ manager.finish <> T_168909
+ module Queue_46545 :
+ input enq : {flip ready : UInt<1>, valid : UInt<1>, bits : {header : {src : UInt<2>, dst : UInt<2>}, payload : {addr_block : UInt<26>, client_xact_id : UInt<1>, addr_beat : UInt<2>, data : UInt<128>, r_type : UInt<3>, voluntary : UInt<1>}}}
+ output deq : {flip ready : UInt<1>, valid : UInt<1>, bits : {header : {src : UInt<2>, dst : UInt<2>}, payload : {addr_block : UInt<26>, client_xact_id : UInt<1>, addr_beat : UInt<2>, data : UInt<128>, r_type : UInt<3>, voluntary : UInt<1>}}}
+ output count : UInt<1>
+
+ wire T_168910 : UInt<3>[3]
+ T_168910[0] := UInt<3>(0)
+ T_168910[1] := UInt<3>(1)
+ T_168910[2] := UInt<3>(2)
+ wire T_168911 : UInt<2>[2]
+ T_168911[0] := UInt<2>(0)
+ T_168911[1] := UInt<2>(1)
+ wire T_168912 : UInt<2>[3]
+ T_168912[0] := UInt<2>(1)
+ T_168912[1] := UInt<2>(2)
+ T_168912[2] := UInt<2>(3)
+ wire T_168913 : UInt<2>[2]
+ T_168913[0] := UInt<2>(2)
+ T_168913[1] := UInt<2>(3)
+ wire T_168914 : UInt<2>[1]
+ T_168914[0] := UInt<2>(3)
+ wire T_168915 : UInt<3>[3]
+ T_168915[0] := UInt<3>(0)
+ T_168915[1] := UInt<3>(1)
+ T_168915[2] := UInt<3>(2)
+ wire T_168916 : UInt<2>[2]
+ T_168916[0] := UInt<2>(0)
+ T_168916[1] := UInt<2>(1)
+ wire T_168917 : UInt<2>[3]
+ T_168917[0] := UInt<2>(1)
+ T_168917[1] := UInt<2>(2)
+ T_168917[2] := UInt<2>(3)
+ wire T_168918 : UInt<2>[2]
+ T_168918[0] := UInt<2>(2)
+ T_168918[1] := UInt<2>(3)
+ wire T_168919 : UInt<2>[1]
+ T_168919[0] := UInt<2>(3)
+ wire T_168920 : UInt<3>[3]
+ T_168920[0] := UInt<3>(0)
+ T_168920[1] := UInt<3>(1)
+ T_168920[2] := UInt<3>(2)
+ wire T_168921 : UInt<2>[2]
+ T_168921[0] := UInt<2>(0)
+ T_168921[1] := UInt<2>(1)
+ wire T_168922 : UInt<2>[3]
+ T_168922[0] := UInt<2>(1)
+ T_168922[1] := UInt<2>(2)
+ T_168922[2] := UInt<2>(3)
+ wire T_168923 : UInt<2>[2]
+ T_168923[0] := UInt<2>(2)
+ T_168923[1] := UInt<2>(3)
+ wire T_168924 : UInt<2>[1]
+ T_168924[0] := UInt<2>(3)
+ wire T_168925 : UInt<3>[3]
+ T_168925[0] := UInt<3>(0)
+ T_168925[1] := UInt<3>(1)
+ T_168925[2] := UInt<3>(2)
+ wire T_168926 : UInt<2>[2]
+ T_168926[0] := UInt<2>(0)
+ T_168926[1] := UInt<2>(1)
+ wire T_168927 : UInt<2>[3]
+ T_168927[0] := UInt<2>(1)
+ T_168927[1] := UInt<2>(2)
+ T_168927[2] := UInt<2>(3)
+ wire T_168928 : UInt<2>[2]
+ T_168928[0] := UInt<2>(2)
+ T_168928[1] := UInt<2>(3)
+ wire T_168929 : UInt<2>[1]
+ T_168929[0] := UInt<2>(3)
+ wire T_168930 : UInt<3>[3]
+ T_168930[0] := UInt<3>(0)
+ T_168930[1] := UInt<3>(1)
+ T_168930[2] := UInt<3>(2)
+ wire T_168931 : UInt<2>[2]
+ T_168931[0] := UInt<2>(0)
+ T_168931[1] := UInt<2>(1)
+ wire T_168932 : UInt<2>[3]
+ T_168932[0] := UInt<2>(1)
+ T_168932[1] := UInt<2>(2)
+ T_168932[2] := UInt<2>(3)
+ wire T_168933 : UInt<2>[2]
+ T_168933[0] := UInt<2>(2)
+ T_168933[1] := UInt<2>(3)
+ wire T_168934 : UInt<2>[1]
+ T_168934[0] := UInt<2>(3)
+ cmem ram : {header : {src : UInt<2>, dst : UInt<2>}, payload : {addr_block : UInt<26>, client_xact_id : UInt<1>, addr_beat : UInt<2>, data : UInt<128>, r_type : UInt<3>, voluntary : UInt<1>}}[1]
+ reg maybe_full : UInt<1>
+ onreset maybe_full := UInt<1>(0)
+ node ptr_match = eq(UInt<1>(0), UInt<1>(0))
+ node T_168935 = eq(maybe_full, UInt<1>(0))
+ node empty = and(ptr_match, T_168935)
+ node full = and(ptr_match, maybe_full)
+ node maybe_flow = and(UInt<1>(0), empty)
+ node do_flow = and(maybe_flow, deq.ready)
+ node T_168936 = and(enq.ready, enq.valid)
+ node T_168937 = eq(do_flow, UInt<1>(0))
+ node do_enq = and(T_168936, T_168937)
+ node T_168938 = and(deq.ready, deq.valid)
+ node T_168939 = eq(do_flow, UInt<1>(0))
+ node do_deq = and(T_168938, T_168939)
+ when do_enq :
+ wire T_168940 : UInt<3>[3]
+ T_168940[0] := UInt<3>(0)
+ T_168940[1] := UInt<3>(1)
+ T_168940[2] := UInt<3>(2)
+ wire T_168941 : UInt<2>[2]
+ T_168941[0] := UInt<2>(0)
+ T_168941[1] := UInt<2>(1)
+ wire T_168942 : UInt<2>[3]
+ T_168942[0] := UInt<2>(1)
+ T_168942[1] := UInt<2>(2)
+ T_168942[2] := UInt<2>(3)
+ wire T_168943 : UInt<2>[2]
+ T_168943[0] := UInt<2>(2)
+ T_168943[1] := UInt<2>(3)
+ wire T_168944 : UInt<2>[1]
+ T_168944[0] := UInt<2>(3)
+ accessor T_168945 = ram[UInt<1>(0)]
+ T_168945 := enq.bits
+ when do_deq : skip
+
+ node T_168946 = neq(do_enq, do_deq)
+ when T_168946 : maybe_full := do_enq
+ node T_168947 = eq(empty, UInt<1>(0))
+ node T_168948 = and(UInt<1>(0), enq.valid)
+ node T_168949 = or(T_168947, T_168948)
+ deq.valid := T_168949
+ node T_168950 = eq(full, UInt<1>(0))
+ node T_168951 = and(UInt<1>(0), deq.ready)
+ node T_168952 = or(T_168950, T_168951)
+ enq.ready := T_168952
+ wire T_168953 : UInt<3>[3]
+ T_168953[0] := UInt<3>(0)
+ T_168953[1] := UInt<3>(1)
+ T_168953[2] := UInt<3>(2)
+ wire T_168954 : UInt<2>[2]
+ T_168954[0] := UInt<2>(0)
+ T_168954[1] := UInt<2>(1)
+ wire T_168955 : UInt<2>[3]
+ T_168955[0] := UInt<2>(1)
+ T_168955[1] := UInt<2>(2)
+ T_168955[2] := UInt<2>(3)
+ wire T_168956 : UInt<2>[2]
+ T_168956[0] := UInt<2>(2)
+ T_168956[1] := UInt<2>(3)
+ wire T_168957 : UInt<2>[1]
+ T_168957[0] := UInt<2>(3)
+ accessor T_168958 = ram[UInt<1>(0)]
+ wire T_168959 : UInt<3>[3]
+ T_168959[0] := UInt<3>(0)
+ T_168959[1] := UInt<3>(1)
+ T_168959[2] := UInt<3>(2)
+ wire T_168960 : UInt<2>[2]
+ T_168960[0] := UInt<2>(0)
+ T_168960[1] := UInt<2>(1)
+ wire T_168961 : UInt<2>[3]
+ T_168961[0] := UInt<2>(1)
+ T_168961[1] := UInt<2>(2)
+ T_168961[2] := UInt<2>(3)
+ wire T_168962 : UInt<2>[2]
+ T_168962[0] := UInt<2>(2)
+ T_168962[1] := UInt<2>(3)
+ wire T_168963 : UInt<2>[1]
+ T_168963[0] := UInt<2>(3)
+ wire T_168964 : {header : {src : UInt<2>, dst : UInt<2>}, payload : {addr_block : UInt<26>, client_xact_id : UInt<1>, addr_beat : UInt<2>, data : UInt<128>, r_type : UInt<3>, voluntary : UInt<1>}}
+ T_168964 := T_168958
+ when maybe_flow : T_168964 := enq.bits
+ deq.bits := T_168964
+ node ptr_diff = subw(UInt<1>(0), UInt<1>(0))
+ node T_168965 = and(maybe_full, ptr_match)
+ node T_168966 = cat(T_168965, ptr_diff)
+ count := T_168966
+ module TileLinkEnqueuer_46546 :
+ input client : {acquire : {flip ready : UInt<1>, valid : UInt<1>, bits : {header : {src : UInt<2>, dst : UInt<2>}, payload : {addr_block : UInt<26>, client_xact_id : UInt<1>, addr_beat : UInt<2>, data : UInt<128>, is_builtin_type : UInt<1>, a_type : UInt<3>, union : UInt<17>}}}, flip grant : {flip ready : UInt<1>, valid : UInt<1>, bits : {header : {src : UInt<2>, dst : UInt<2>}, payload : {addr_beat : UInt<2>, data : UInt<128>, client_xact_id : UInt<1>, manager_xact_id : UInt<2>, is_builtin_type : UInt<1>, g_type : UInt<4>}}}, finish : {flip ready : UInt<1>, valid : UInt<1>, bits : {header : {src : UInt<2>, dst : UInt<2>}, payload : {manager_xact_id : UInt<2>}}}, flip probe : {flip ready : UInt<1>, valid : UInt<1>, bits : {header : {src : UInt<2>, dst : UInt<2>}, payload : {addr_block : UInt<26>, p_type : UInt<2>}}}, release : {flip ready : UInt<1>, valid : UInt<1>, bits : {header : {src : UInt<2>, dst : UInt<2>}, payload : {addr_block : UInt<26>, client_xact_id : UInt<1>, addr_beat : UInt<2>, data : UInt<128>, r_type : UInt<3>, voluntary : UInt<1>}}}}
+ output manager : {acquire : {flip ready : UInt<1>, valid : UInt<1>, bits : {header : {src : UInt<2>, dst : UInt<2>}, payload : {addr_block : UInt<26>, client_xact_id : UInt<1>, addr_beat : UInt<2>, data : UInt<128>, is_builtin_type : UInt<1>, a_type : UInt<3>, union : UInt<17>}}}, flip grant : {flip ready : UInt<1>, valid : UInt<1>, bits : {header : {src : UInt<2>, dst : UInt<2>}, payload : {addr_beat : UInt<2>, data : UInt<128>, client_xact_id : UInt<1>, manager_xact_id : UInt<2>, is_builtin_type : UInt<1>, g_type : UInt<4>}}}, finish : {flip ready : UInt<1>, valid : UInt<1>, bits : {header : {src : UInt<2>, dst : UInt<2>}, payload : {manager_xact_id : UInt<2>}}}, flip probe : {flip ready : UInt<1>, valid : UInt<1>, bits : {header : {src : UInt<2>, dst : UInt<2>}, payload : {addr_block : UInt<26>, p_type : UInt<2>}}}, release : {flip ready : UInt<1>, valid : UInt<1>, bits : {header : {src : UInt<2>, dst : UInt<2>}, payload : {addr_block : UInt<26>, client_xact_id : UInt<1>, addr_beat : UInt<2>, data : UInt<128>, r_type : UInt<3>, voluntary : UInt<1>}}}}
+
+ wire T_168967 : UInt<3>[3]
+ T_168967[0] := UInt<3>(0)
+ T_168967[1] := UInt<3>(1)
+ T_168967[2] := UInt<3>(2)
+ wire T_168968 : UInt<2>[2]
+ T_168968[0] := UInt<2>(0)
+ T_168968[1] := UInt<2>(1)
+ wire T_168969 : UInt<2>[3]
+ T_168969[0] := UInt<2>(1)
+ T_168969[1] := UInt<2>(2)
+ T_168969[2] := UInt<2>(3)
+ wire T_168970 : UInt<2>[2]
+ T_168970[0] := UInt<2>(2)
+ T_168970[1] := UInt<2>(3)
+ wire T_168971 : UInt<2>[1]
+ T_168971[0] := UInt<2>(3)
+ wire T_168972 : UInt<3>[3]
+ T_168972[0] := UInt<3>(0)
+ T_168972[1] := UInt<3>(1)
+ T_168972[2] := UInt<3>(2)
+ wire T_168973 : UInt<2>[2]
+ T_168973[0] := UInt<2>(0)
+ T_168973[1] := UInt<2>(1)
+ wire T_168974 : UInt<2>[3]
+ T_168974[0] := UInt<2>(1)
+ T_168974[1] := UInt<2>(2)
+ T_168974[2] := UInt<2>(3)
+ wire T_168975 : UInt<2>[2]
+ T_168975[0] := UInt<2>(2)
+ T_168975[1] := UInt<2>(3)
+ wire T_168976 : UInt<2>[1]
+ T_168976[0] := UInt<2>(3)
+ wire T_168977 : UInt<3>[3]
+ T_168977[0] := UInt<3>(0)
+ T_168977[1] := UInt<3>(1)
+ T_168977[2] := UInt<3>(2)
+ wire T_168978 : UInt<2>[2]
+ T_168978[0] := UInt<2>(0)
+ T_168978[1] := UInt<2>(1)
+ wire T_168979 : UInt<2>[3]
+ T_168979[0] := UInt<2>(1)
+ T_168979[1] := UInt<2>(2)
+ T_168979[2] := UInt<2>(3)
+ wire T_168980 : UInt<2>[2]
+ T_168980[0] := UInt<2>(2)
+ T_168980[1] := UInt<2>(3)
+ wire T_168981 : UInt<2>[1]
+ T_168981[0] := UInt<2>(3)
+ wire T_168982 : UInt<3>[3]
+ T_168982[0] := UInt<3>(0)
+ T_168982[1] := UInt<3>(1)
+ T_168982[2] := UInt<3>(2)
+ wire T_168983 : UInt<2>[2]
+ T_168983[0] := UInt<2>(0)
+ T_168983[1] := UInt<2>(1)
+ wire T_168984 : UInt<2>[3]
+ T_168984[0] := UInt<2>(1)
+ T_168984[1] := UInt<2>(2)
+ T_168984[2] := UInt<2>(3)
+ wire T_168985 : UInt<2>[2]
+ T_168985[0] := UInt<2>(2)
+ T_168985[1] := UInt<2>(3)
+ wire T_168986 : UInt<2>[1]
+ T_168986[0] := UInt<2>(3)
+ wire T_168987 : UInt<3>[3]
+ T_168987[0] := UInt<3>(0)
+ T_168987[1] := UInt<3>(1)
+ T_168987[2] := UInt<3>(2)
+ wire T_168988 : UInt<2>[2]
+ T_168988[0] := UInt<2>(0)
+ T_168988[1] := UInt<2>(1)
+ wire T_168989 : UInt<2>[3]
+ T_168989[0] := UInt<2>(1)
+ T_168989[1] := UInt<2>(2)
+ T_168989[2] := UInt<2>(3)
+ wire T_168990 : UInt<2>[2]
+ T_168990[0] := UInt<2>(2)
+ T_168990[1] := UInt<2>(3)
+ wire T_168991 : UInt<2>[1]
+ T_168991[0] := UInt<2>(3)
+ wire T_168992 : UInt<3>[3]
+ T_168992[0] := UInt<3>(0)
+ T_168992[1] := UInt<3>(1)
+ T_168992[2] := UInt<3>(2)
+ wire T_168993 : UInt<2>[2]
+ T_168993[0] := UInt<2>(0)
+ T_168993[1] := UInt<2>(1)
+ wire T_168994 : UInt<2>[3]
+ T_168994[0] := UInt<2>(1)
+ T_168994[1] := UInt<2>(2)
+ T_168994[2] := UInt<2>(3)
+ wire T_168995 : UInt<2>[2]
+ T_168995[0] := UInt<2>(2)
+ T_168995[1] := UInt<2>(3)
+ wire T_168996 : UInt<2>[1]
+ T_168996[0] := UInt<2>(3)
+ wire T_168997 : UInt<3>[3]
+ T_168997[0] := UInt<3>(0)
+ T_168997[1] := UInt<3>(1)
+ T_168997[2] := UInt<3>(2)
+ wire T_168998 : UInt<2>[2]
+ T_168998[0] := UInt<2>(0)
+ T_168998[1] := UInt<2>(1)
+ wire T_168999 : UInt<2>[3]
+ T_168999[0] := UInt<2>(1)
+ T_168999[1] := UInt<2>(2)
+ T_168999[2] := UInt<2>(3)
+ wire T_169000 : UInt<2>[2]
+ T_169000[0] := UInt<2>(2)
+ T_169000[1] := UInt<2>(3)
+ wire T_169001 : UInt<2>[1]
+ T_169001[0] := UInt<2>(3)
+ wire T_169002 : UInt<3>[3]
+ T_169002[0] := UInt<3>(0)
+ T_169002[1] := UInt<3>(1)
+ T_169002[2] := UInt<3>(2)
+ wire T_169003 : UInt<2>[2]
+ T_169003[0] := UInt<2>(0)
+ T_169003[1] := UInt<2>(1)
+ wire T_169004 : UInt<2>[3]
+ T_169004[0] := UInt<2>(1)
+ T_169004[1] := UInt<2>(2)
+ T_169004[2] := UInt<2>(3)
+ wire T_169005 : UInt<2>[2]
+ T_169005[0] := UInt<2>(2)
+ T_169005[1] := UInt<2>(3)
+ wire T_169006 : UInt<2>[1]
+ T_169006[0] := UInt<2>(3)
+ wire T_169007 : UInt<3>[3]
+ T_169007[0] := UInt<3>(0)
+ T_169007[1] := UInt<3>(1)
+ T_169007[2] := UInt<3>(2)
+ wire T_169008 : UInt<2>[2]
+ T_169008[0] := UInt<2>(0)
+ T_169008[1] := UInt<2>(1)
+ wire T_169009 : UInt<2>[3]
+ T_169009[0] := UInt<2>(1)
+ T_169009[1] := UInt<2>(2)
+ T_169009[2] := UInt<2>(3)
+ wire T_169010 : UInt<2>[2]
+ T_169010[0] := UInt<2>(2)
+ T_169010[1] := UInt<2>(3)
+ wire T_169011 : UInt<2>[1]
+ T_169011[0] := UInt<2>(3)
+ wire T_169012 : UInt<3>[3]
+ T_169012[0] := UInt<3>(0)
+ T_169012[1] := UInt<3>(1)
+ T_169012[2] := UInt<3>(2)
+ wire T_169013 : UInt<2>[2]
+ T_169013[0] := UInt<2>(0)
+ T_169013[1] := UInt<2>(1)
+ wire T_169014 : UInt<2>[3]
+ T_169014[0] := UInt<2>(1)
+ T_169014[1] := UInt<2>(2)
+ T_169014[2] := UInt<2>(3)
+ wire T_169015 : UInt<2>[2]
+ T_169015[0] := UInt<2>(2)
+ T_169015[1] := UInt<2>(3)
+ wire T_169016 : UInt<2>[1]
+ T_169016[0] := UInt<2>(3)
+ wire T_169017 : UInt<3>[3]
+ T_169017[0] := UInt<3>(0)
+ T_169017[1] := UInt<3>(1)
+ T_169017[2] := UInt<3>(2)
+ wire T_169018 : UInt<2>[2]
+ T_169018[0] := UInt<2>(0)
+ T_169018[1] := UInt<2>(1)
+ wire T_169019 : UInt<2>[3]
+ T_169019[0] := UInt<2>(1)
+ T_169019[1] := UInt<2>(2)
+ T_169019[2] := UInt<2>(3)
+ wire T_169020 : UInt<2>[2]
+ T_169020[0] := UInt<2>(2)
+ T_169020[1] := UInt<2>(3)
+ wire T_169021 : UInt<2>[1]
+ T_169021[0] := UInt<2>(3)
+ wire T_169022 : UInt<3>[3]
+ T_169022[0] := UInt<3>(0)
+ T_169022[1] := UInt<3>(1)
+ T_169022[2] := UInt<3>(2)
+ wire T_169023 : UInt<2>[2]
+ T_169023[0] := UInt<2>(0)
+ T_169023[1] := UInt<2>(1)
+ wire T_169024 : UInt<2>[3]
+ T_169024[0] := UInt<2>(1)
+ T_169024[1] := UInt<2>(2)
+ T_169024[2] := UInt<2>(3)
+ wire T_169025 : UInt<2>[2]
+ T_169025[0] := UInt<2>(2)
+ T_169025[1] := UInt<2>(3)
+ wire T_169026 : UInt<2>[1]
+ T_169026[0] := UInt<2>(3)
+ wire T_169027 : UInt<3>[3]
+ T_169027[0] := UInt<3>(0)
+ T_169027[1] := UInt<3>(1)
+ T_169027[2] := UInt<3>(2)
+ wire T_169028 : UInt<2>[2]
+ T_169028[0] := UInt<2>(0)
+ T_169028[1] := UInt<2>(1)
+ wire T_169029 : UInt<2>[3]
+ T_169029[0] := UInt<2>(1)
+ T_169029[1] := UInt<2>(2)
+ T_169029[2] := UInt<2>(3)
+ wire T_169030 : UInt<2>[2]
+ T_169030[0] := UInt<2>(2)
+ T_169030[1] := UInt<2>(3)
+ wire T_169031 : UInt<2>[1]
+ T_169031[0] := UInt<2>(3)
+ wire T_169032 : UInt<3>[3]
+ T_169032[0] := UInt<3>(0)
+ T_169032[1] := UInt<3>(1)
+ T_169032[2] := UInt<3>(2)
+ wire T_169033 : UInt<2>[2]
+ T_169033[0] := UInt<2>(0)
+ T_169033[1] := UInt<2>(1)
+ wire T_169034 : UInt<2>[3]
+ T_169034[0] := UInt<2>(1)
+ T_169034[1] := UInt<2>(2)
+ T_169034[2] := UInt<2>(3)
+ wire T_169035 : UInt<2>[2]
+ T_169035[0] := UInt<2>(2)
+ T_169035[1] := UInt<2>(3)
+ wire T_169036 : UInt<2>[1]
+ T_169036[0] := UInt<2>(3)
+ wire T_169037 : UInt<3>[3]
+ T_169037[0] := UInt<3>(0)
+ T_169037[1] := UInt<3>(1)
+ T_169037[2] := UInt<3>(2)
+ wire T_169038 : UInt<2>[2]
+ T_169038[0] := UInt<2>(0)
+ T_169038[1] := UInt<2>(1)
+ wire T_169039 : UInt<2>[3]
+ T_169039[0] := UInt<2>(1)
+ T_169039[1] := UInt<2>(2)
+ T_169039[2] := UInt<2>(3)
+ wire T_169040 : UInt<2>[2]
+ T_169040[0] := UInt<2>(2)
+ T_169040[1] := UInt<2>(3)
+ wire T_169041 : UInt<2>[1]
+ T_169041[0] := UInt<2>(3)
+ wire T_169042 : UInt<3>[3]
+ T_169042[0] := UInt<3>(0)
+ T_169042[1] := UInt<3>(1)
+ T_169042[2] := UInt<3>(2)
+ wire T_169043 : UInt<2>[2]
+ T_169043[0] := UInt<2>(0)
+ T_169043[1] := UInt<2>(1)
+ wire T_169044 : UInt<2>[3]
+ T_169044[0] := UInt<2>(1)
+ T_169044[1] := UInt<2>(2)
+ T_169044[2] := UInt<2>(3)
+ wire T_169045 : UInt<2>[2]
+ T_169045[0] := UInt<2>(2)
+ T_169045[1] := UInt<2>(3)
+ wire T_169046 : UInt<2>[1]
+ T_169046[0] := UInt<2>(3)
+ wire T_169047 : UInt<3>[3]
+ T_169047[0] := UInt<3>(0)
+ T_169047[1] := UInt<3>(1)
+ T_169047[2] := UInt<3>(2)
+ wire T_169048 : UInt<2>[2]
+ T_169048[0] := UInt<2>(0)
+ T_169048[1] := UInt<2>(1)
+ wire T_169049 : UInt<2>[3]
+ T_169049[0] := UInt<2>(1)
+ T_169049[1] := UInt<2>(2)
+ T_169049[2] := UInt<2>(3)
+ wire T_169050 : UInt<2>[2]
+ T_169050[0] := UInt<2>(2)
+ T_169050[1] := UInt<2>(3)
+ wire T_169051 : UInt<2>[1]
+ T_169051[0] := UInt<2>(3)
+ wire T_169052 : UInt<3>[3]
+ T_169052[0] := UInt<3>(0)
+ T_169052[1] := UInt<3>(1)
+ T_169052[2] := UInt<3>(2)
+ wire T_169053 : UInt<2>[2]
+ T_169053[0] := UInt<2>(0)
+ T_169053[1] := UInt<2>(1)
+ wire T_169054 : UInt<2>[3]
+ T_169054[0] := UInt<2>(1)
+ T_169054[1] := UInt<2>(2)
+ T_169054[2] := UInt<2>(3)
+ wire T_169055 : UInt<2>[2]
+ T_169055[0] := UInt<2>(2)
+ T_169055[1] := UInt<2>(3)
+ wire T_169056 : UInt<2>[1]
+ T_169056[0] := UInt<2>(3)
+ wire T_169057 : UInt<3>[3]
+ T_169057[0] := UInt<3>(0)
+ T_169057[1] := UInt<3>(1)
+ T_169057[2] := UInt<3>(2)
+ wire T_169058 : UInt<2>[2]
+ T_169058[0] := UInt<2>(0)
+ T_169058[1] := UInt<2>(1)
+ wire T_169059 : UInt<2>[3]
+ T_169059[0] := UInt<2>(1)
+ T_169059[1] := UInt<2>(2)
+ T_169059[2] := UInt<2>(3)
+ wire T_169060 : UInt<2>[2]
+ T_169060[0] := UInt<2>(2)
+ T_169060[1] := UInt<2>(3)
+ wire T_169061 : UInt<2>[1]
+ T_169061[0] := UInt<2>(3)
+ wire T_169062 : UInt<3>[3]
+ T_169062[0] := UInt<3>(0)
+ T_169062[1] := UInt<3>(1)
+ T_169062[2] := UInt<3>(2)
+ wire T_169063 : UInt<2>[2]
+ T_169063[0] := UInt<2>(0)
+ T_169063[1] := UInt<2>(1)
+ wire T_169064 : UInt<2>[3]
+ T_169064[0] := UInt<2>(1)
+ T_169064[1] := UInt<2>(2)
+ T_169064[2] := UInt<2>(3)
+ wire T_169065 : UInt<2>[2]
+ T_169065[0] := UInt<2>(2)
+ T_169065[1] := UInt<2>(3)
+ wire T_169066 : UInt<2>[1]
+ T_169066[0] := UInt<2>(3)
+ wire T_169067 : UInt<3>[3]
+ T_169067[0] := UInt<3>(0)
+ T_169067[1] := UInt<3>(1)
+ T_169067[2] := UInt<3>(2)
+ wire T_169068 : UInt<2>[2]
+ T_169068[0] := UInt<2>(0)
+ T_169068[1] := UInt<2>(1)
+ wire T_169069 : UInt<2>[3]
+ T_169069[0] := UInt<2>(1)
+ T_169069[1] := UInt<2>(2)
+ T_169069[2] := UInt<2>(3)
+ wire T_169070 : UInt<2>[2]
+ T_169070[0] := UInt<2>(2)
+ T_169070[1] := UInt<2>(3)
+ wire T_169071 : UInt<2>[1]
+ T_169071[0] := UInt<2>(3)
+ wire T_169072 : UInt<3>[3]
+ T_169072[0] := UInt<3>(0)
+ T_169072[1] := UInt<3>(1)
+ T_169072[2] := UInt<3>(2)
+ wire T_169073 : UInt<2>[2]
+ T_169073[0] := UInt<2>(0)
+ T_169073[1] := UInt<2>(1)
+ wire T_169074 : UInt<2>[3]
+ T_169074[0] := UInt<2>(1)
+ T_169074[1] := UInt<2>(2)
+ T_169074[2] := UInt<2>(3)
+ wire T_169075 : UInt<2>[2]
+ T_169075[0] := UInt<2>(2)
+ T_169075[1] := UInt<2>(3)
+ wire T_169076 : UInt<2>[1]
+ T_169076[0] := UInt<2>(3)
+ wire T_169077 : UInt<3>[3]
+ T_169077[0] := UInt<3>(0)
+ T_169077[1] := UInt<3>(1)
+ T_169077[2] := UInt<3>(2)
+ wire T_169078 : UInt<2>[2]
+ T_169078[0] := UInt<2>(0)
+ T_169078[1] := UInt<2>(1)
+ wire T_169079 : UInt<2>[3]
+ T_169079[0] := UInt<2>(1)
+ T_169079[1] := UInt<2>(2)
+ T_169079[2] := UInt<2>(3)
+ wire T_169080 : UInt<2>[2]
+ T_169080[0] := UInt<2>(2)
+ T_169080[1] := UInt<2>(3)
+ wire T_169081 : UInt<2>[1]
+ T_169081[0] := UInt<2>(3)
+ wire T_169082 : UInt<3>[3]
+ T_169082[0] := UInt<3>(0)
+ T_169082[1] := UInt<3>(1)
+ T_169082[2] := UInt<3>(2)
+ wire T_169083 : UInt<2>[2]
+ T_169083[0] := UInt<2>(0)
+ T_169083[1] := UInt<2>(1)
+ wire T_169084 : UInt<2>[3]
+ T_169084[0] := UInt<2>(1)
+ T_169084[1] := UInt<2>(2)
+ T_169084[2] := UInt<2>(3)
+ wire T_169085 : UInt<2>[2]
+ T_169085[0] := UInt<2>(2)
+ T_169085[1] := UInt<2>(3)
+ wire T_169086 : UInt<2>[1]
+ T_169086[0] := UInt<2>(3)
+ wire T_169087 : UInt<3>[3]
+ T_169087[0] := UInt<3>(0)
+ T_169087[1] := UInt<3>(1)
+ T_169087[2] := UInt<3>(2)
+ wire T_169088 : UInt<2>[2]
+ T_169088[0] := UInt<2>(0)
+ T_169088[1] := UInt<2>(1)
+ wire T_169089 : UInt<2>[3]
+ T_169089[0] := UInt<2>(1)
+ T_169089[1] := UInt<2>(2)
+ T_169089[2] := UInt<2>(3)
+ wire T_169090 : UInt<2>[2]
+ T_169090[0] := UInt<2>(2)
+ T_169090[1] := UInt<2>(3)
+ wire T_169091 : UInt<2>[1]
+ T_169091[0] := UInt<2>(3)
+ wire T_169092 : UInt<3>[3]
+ T_169092[0] := UInt<3>(0)
+ T_169092[1] := UInt<3>(1)
+ T_169092[2] := UInt<3>(2)
+ wire T_169093 : UInt<2>[2]
+ T_169093[0] := UInt<2>(0)
+ T_169093[1] := UInt<2>(1)
+ wire T_169094 : UInt<2>[3]
+ T_169094[0] := UInt<2>(1)
+ T_169094[1] := UInt<2>(2)
+ T_169094[2] := UInt<2>(3)
+ wire T_169095 : UInt<2>[2]
+ T_169095[0] := UInt<2>(2)
+ T_169095[1] := UInt<2>(3)
+ wire T_169096 : UInt<2>[1]
+ T_169096[0] := UInt<2>(3)
+ wire T_169097 : UInt<3>[3]
+ T_169097[0] := UInt<3>(0)
+ T_169097[1] := UInt<3>(1)
+ T_169097[2] := UInt<3>(2)
+ wire T_169098 : UInt<2>[2]
+ T_169098[0] := UInt<2>(0)
+ T_169098[1] := UInt<2>(1)
+ wire T_169099 : UInt<2>[3]
+ T_169099[0] := UInt<2>(1)
+ T_169099[1] := UInt<2>(2)
+ T_169099[2] := UInt<2>(3)
+ wire T_169100 : UInt<2>[2]
+ T_169100[0] := UInt<2>(2)
+ T_169100[1] := UInt<2>(3)
+ wire T_169101 : UInt<2>[1]
+ T_169101[0] := UInt<2>(3)
+ wire T_169102 : UInt<3>[3]
+ T_169102[0] := UInt<3>(0)
+ T_169102[1] := UInt<3>(1)
+ T_169102[2] := UInt<3>(2)
+ wire T_169103 : UInt<2>[2]
+ T_169103[0] := UInt<2>(0)
+ T_169103[1] := UInt<2>(1)
+ wire T_169104 : UInt<2>[3]
+ T_169104[0] := UInt<2>(1)
+ T_169104[1] := UInt<2>(2)
+ T_169104[2] := UInt<2>(3)
+ wire T_169105 : UInt<2>[2]
+ T_169105[0] := UInt<2>(2)
+ T_169105[1] := UInt<2>(3)
+ wire T_169106 : UInt<2>[1]
+ T_169106[0] := UInt<2>(3)
+ wire T_169107 : UInt<3>[3]
+ T_169107[0] := UInt<3>(0)
+ T_169107[1] := UInt<3>(1)
+ T_169107[2] := UInt<3>(2)
+ wire T_169108 : UInt<2>[2]
+ T_169108[0] := UInt<2>(0)
+ T_169108[1] := UInt<2>(1)
+ wire T_169109 : UInt<2>[3]
+ T_169109[0] := UInt<2>(1)
+ T_169109[1] := UInt<2>(2)
+ T_169109[2] := UInt<2>(3)
+ wire T_169110 : UInt<2>[2]
+ T_169110[0] := UInt<2>(2)
+ T_169110[1] := UInt<2>(3)
+ wire T_169111 : UInt<2>[1]
+ T_169111[0] := UInt<2>(3)
+ wire T_169112 : UInt<3>[3]
+ T_169112[0] := UInt<3>(0)
+ T_169112[1] := UInt<3>(1)
+ T_169112[2] := UInt<3>(2)
+ wire T_169113 : UInt<2>[2]
+ T_169113[0] := UInt<2>(0)
+ T_169113[1] := UInt<2>(1)
+ wire T_169114 : UInt<2>[3]
+ T_169114[0] := UInt<2>(1)
+ T_169114[1] := UInt<2>(2)
+ T_169114[2] := UInt<2>(3)
+ wire T_169115 : UInt<2>[2]
+ T_169115[0] := UInt<2>(2)
+ T_169115[1] := UInt<2>(3)
+ wire T_169116 : UInt<2>[1]
+ T_169116[0] := UInt<2>(3)
+ wire T_169117 : UInt<3>[3]
+ T_169117[0] := UInt<3>(0)
+ T_169117[1] := UInt<3>(1)
+ T_169117[2] := UInt<3>(2)
+ wire T_169118 : UInt<2>[2]
+ T_169118[0] := UInt<2>(0)
+ T_169118[1] := UInt<2>(1)
+ wire T_169119 : UInt<2>[3]
+ T_169119[0] := UInt<2>(1)
+ T_169119[1] := UInt<2>(2)
+ T_169119[2] := UInt<2>(3)
+ wire T_169120 : UInt<2>[2]
+ T_169120[0] := UInt<2>(2)
+ T_169120[1] := UInt<2>(3)
+ wire T_169121 : UInt<2>[1]
+ T_169121[0] := UInt<2>(3)
+ wire T_169122 : UInt<3>[3]
+ T_169122[0] := UInt<3>(0)
+ T_169122[1] := UInt<3>(1)
+ T_169122[2] := UInt<3>(2)
+ wire T_169123 : UInt<2>[2]
+ T_169123[0] := UInt<2>(0)
+ T_169123[1] := UInt<2>(1)
+ wire T_169124 : UInt<2>[3]
+ T_169124[0] := UInt<2>(1)
+ T_169124[1] := UInt<2>(2)
+ T_169124[2] := UInt<2>(3)
+ wire T_169125 : UInt<2>[2]
+ T_169125[0] := UInt<2>(2)
+ T_169125[1] := UInt<2>(3)
+ wire T_169126 : UInt<2>[1]
+ T_169126[0] := UInt<2>(3)
+ manager.acquire <> client.acquire
+ client.probe <> manager.probe
+ wire T_169127 : UInt<3>[3]
+ T_169127[0] := UInt<3>(0)
+ T_169127[1] := UInt<3>(1)
+ T_169127[2] := UInt<3>(2)
+ wire T_169128 : UInt<2>[2]
+ T_169128[0] := UInt<2>(0)
+ T_169128[1] := UInt<2>(1)
+ wire T_169129 : UInt<2>[3]
+ T_169129[0] := UInt<2>(1)
+ T_169129[1] := UInt<2>(2)
+ T_169129[2] := UInt<2>(3)
+ wire T_169130 : UInt<2>[2]
+ T_169130[0] := UInt<2>(2)
+ T_169130[1] := UInt<2>(3)
+ wire T_169131 : UInt<2>[1]
+ T_169131[0] := UInt<2>(3)
+ inst T_169132 of Queue_46545
+ T_169132.enq.valid := client.release.valid
+ T_169132.enq.bits := client.release.bits
+ client.release.ready := T_169132.enq.ready
+ manager.release <> T_169132.deq
+ client.grant <> manager.grant
+ manager.finish <> client.finish
+ module LockingRRArbiter :
+ input in : {flip ready : UInt<1>, valid : UInt<1>, bits : {header : {src : UInt<2>, dst : UInt<2>}, payload : {addr_block : UInt<26>, client_xact_id : UInt<1>, addr_beat : UInt<2>, data : UInt<128>, is_builtin_type : UInt<1>, a_type : UInt<3>, union : UInt<17>}}}[3]
+ output out : {flip ready : UInt<1>, valid : UInt<1>, bits : {header : {src : UInt<2>, dst : UInt<2>}, payload : {addr_block : UInt<26>, client_xact_id : UInt<1>, addr_beat : UInt<2>, data : UInt<128>, is_builtin_type : UInt<1>, a_type : UInt<3>, union : UInt<17>}}}
+ output chosen : UInt<2>
+
+ wire T_169133 : UInt<3>[3]
+ T_169133[0] := UInt<3>(0)
+ T_169133[1] := UInt<3>(1)
+ T_169133[2] := UInt<3>(2)
+ wire T_169134 : UInt<2>[2]
+ T_169134[0] := UInt<2>(0)
+ T_169134[1] := UInt<2>(1)
+ wire T_169135 : UInt<2>[3]
+ T_169135[0] := UInt<2>(1)
+ T_169135[1] := UInt<2>(2)
+ T_169135[2] := UInt<2>(3)
+ wire T_169136 : UInt<2>[2]
+ T_169136[0] := UInt<2>(2)
+ T_169136[1] := UInt<2>(3)
+ wire T_169137 : UInt<2>[1]
+ T_169137[0] := UInt<2>(3)
+ wire T_169138 : UInt<3>[3]
+ T_169138[0] := UInt<3>(0)
+ T_169138[1] := UInt<3>(1)
+ T_169138[2] := UInt<3>(2)
+ wire T_169139 : UInt<2>[2]
+ T_169139[0] := UInt<2>(0)
+ T_169139[1] := UInt<2>(1)
+ wire T_169140 : UInt<2>[3]
+ T_169140[0] := UInt<2>(1)
+ T_169140[1] := UInt<2>(2)
+ T_169140[2] := UInt<2>(3)
+ wire T_169141 : UInt<2>[2]
+ T_169141[0] := UInt<2>(2)
+ T_169141[1] := UInt<2>(3)
+ wire T_169142 : UInt<2>[1]
+ T_169142[0] := UInt<2>(3)
+ wire T_169143 : UInt<3>[3]
+ T_169143[0] := UInt<3>(0)
+ T_169143[1] := UInt<3>(1)
+ T_169143[2] := UInt<3>(2)
+ wire T_169144 : UInt<2>[2]
+ T_169144[0] := UInt<2>(0)
+ T_169144[1] := UInt<2>(1)
+ wire T_169145 : UInt<2>[3]
+ T_169145[0] := UInt<2>(1)
+ T_169145[1] := UInt<2>(2)
+ T_169145[2] := UInt<2>(3)
+ wire T_169146 : UInt<2>[2]
+ T_169146[0] := UInt<2>(2)
+ T_169146[1] := UInt<2>(3)
+ wire T_169147 : UInt<2>[1]
+ T_169147[0] := UInt<2>(3)
+ wire T_169148 : UInt<3>[3]
+ T_169148[0] := UInt<3>(0)
+ T_169148[1] := UInt<3>(1)
+ T_169148[2] := UInt<3>(2)
+ wire T_169149 : UInt<2>[2]
+ T_169149[0] := UInt<2>(0)
+ T_169149[1] := UInt<2>(1)
+ wire T_169150 : UInt<2>[3]
+ T_169150[0] := UInt<2>(1)
+ T_169150[1] := UInt<2>(2)
+ T_169150[2] := UInt<2>(3)
+ wire T_169151 : UInt<2>[2]
+ T_169151[0] := UInt<2>(2)
+ T_169151[1] := UInt<2>(3)
+ wire T_169152 : UInt<2>[1]
+ T_169152[0] := UInt<2>(3)
+ wire T_169153 : UInt<3>[3]
+ T_169153[0] := UInt<3>(0)
+ T_169153[1] := UInt<3>(1)
+ T_169153[2] := UInt<3>(2)
+ wire T_169154 : UInt<2>[2]
+ T_169154[0] := UInt<2>(0)
+ T_169154[1] := UInt<2>(1)
+ wire T_169155 : UInt<2>[3]
+ T_169155[0] := UInt<2>(1)
+ T_169155[1] := UInt<2>(2)
+ T_169155[2] := UInt<2>(3)
+ wire T_169156 : UInt<2>[2]
+ T_169156[0] := UInt<2>(2)
+ T_169156[1] := UInt<2>(3)
+ wire T_169157 : UInt<2>[1]
+ T_169157[0] := UInt<2>(3)
+ reg T_169158 : UInt<1>
+ onreset T_169158 := UInt<1>(0)
+ reg T_169159 : UInt<2>
+ onreset T_169159 := UInt<2>(2)
+ wire T_169160 : UInt<2>
+ reg last_grant : UInt<2>
+ onreset last_grant := UInt<2>(0)
+ node T_169161 = gt(UInt<1>(0), last_grant)
+ node T_169162 = and(in[0].valid, T_169161)
+ node T_169163 = gt(UInt<1>(1), last_grant)
+ node T_169164 = and(in[1].valid, T_169163)
+ node T_169165 = gt(UInt<2>(2), last_grant)
+ node T_169166 = and(in[2].valid, T_169165)
+ node T_169167 = or(UInt<1>(0), T_169162)
+ node T_169168 = eq(T_169167, UInt<1>(0))
+ node T_169169 = or(UInt<1>(0), T_169162)
+ node T_169170 = or(T_169169, T_169164)
+ node T_169171 = eq(T_169170, UInt<1>(0))
+ node T_169172 = or(UInt<1>(0), T_169162)
+ node T_169173 = or(T_169172, T_169164)
+ node T_169174 = or(T_169173, T_169166)
+ node T_169175 = eq(T_169174, UInt<1>(0))
+ node T_169176 = or(UInt<1>(0), T_169162)
+ node T_169177 = or(T_169176, T_169164)
+ node T_169178 = or(T_169177, T_169166)
+ node T_169179 = or(T_169178, in[0].valid)
+ node T_169180 = eq(T_169179, UInt<1>(0))
+ node T_169181 = or(UInt<1>(0), T_169162)
+ node T_169182 = or(T_169181, T_169164)
+ node T_169183 = or(T_169182, T_169166)
+ node T_169184 = or(T_169183, in[0].valid)
+ node T_169185 = or(T_169184, in[1].valid)
+ node T_169186 = eq(T_169185, UInt<1>(0))
+ node T_169187 = gt(UInt<1>(0), last_grant)
+ node T_169188 = and(UInt<1>(1), T_169187)
+ node T_169189 = or(T_169188, T_169175)
+ node T_169190 = gt(UInt<1>(1), last_grant)
+ node T_169191 = and(T_169168, T_169190)
+ node T_169192 = or(T_169191, T_169180)
+ node T_169193 = gt(UInt<2>(2), last_grant)
+ node T_169194 = and(T_169171, T_169193)
+ node T_169195 = or(T_169194, T_169186)
+ node T_169196 = eq(T_169159, UInt<1>(0))
+ wire T_169197 : UInt<1>
+ T_169197 := T_169189
+ when T_169158 : T_169197 := T_169196
+ node T_169198 = and(T_169197, out.ready)
+ in[0].ready := T_169198
+ node T_169199 = eq(T_169159, UInt<1>(1))
+ wire T_169200 : UInt<1>
+ T_169200 := T_169192
+ when T_169158 : T_169200 := T_169199
+ node T_169201 = and(T_169200, out.ready)
+ in[1].ready := T_169201
+ node T_169202 = eq(T_169159, UInt<2>(2))
+ wire T_169203 : UInt<1>
+ T_169203 := T_169195
+ when T_169158 : T_169203 := T_169202
+ node T_169204 = and(T_169203, out.ready)
+ in[2].ready := T_169204
+ wire T_169205 : UInt<3>[3]
+ T_169205[0] := UInt<3>(0)
+ T_169205[1] := UInt<3>(1)
+ T_169205[2] := UInt<3>(2)
+ wire T_169206 : UInt<2>[2]
+ T_169206[0] := UInt<2>(0)
+ T_169206[1] := UInt<2>(1)
+ wire T_169207 : UInt<2>[3]
+ T_169207[0] := UInt<2>(1)
+ T_169207[1] := UInt<2>(2)
+ T_169207[2] := UInt<2>(3)
+ wire T_169208 : UInt<2>[2]
+ T_169208[0] := UInt<2>(2)
+ T_169208[1] := UInt<2>(3)
+ wire T_169209 : UInt<2>[1]
+ T_169209[0] := UInt<2>(3)
+ accessor T_169210 = in[T_169160]
+ out.valid := T_169210.valid
+ wire T_169211 : UInt<3>[3]
+ T_169211[0] := UInt<3>(0)
+ T_169211[1] := UInt<3>(1)
+ T_169211[2] := UInt<3>(2)
+ wire T_169212 : UInt<2>[2]
+ T_169212[0] := UInt<2>(0)
+ T_169212[1] := UInt<2>(1)
+ wire T_169213 : UInt<2>[3]
+ T_169213[0] := UInt<2>(1)
+ T_169213[1] := UInt<2>(2)
+ T_169213[2] := UInt<2>(3)
+ wire T_169214 : UInt<2>[2]
+ T_169214[0] := UInt<2>(2)
+ T_169214[1] := UInt<2>(3)
+ wire T_169215 : UInt<2>[1]
+ T_169215[0] := UInt<2>(3)
+ accessor T_169216 = in[T_169160]
+ out.bits := T_169216.bits
+ chosen := T_169160
+ reg T_169217 : UInt<2>
+ onreset T_169217 := UInt<2>(0)
+ node T_169218 = addw(T_169217, UInt<1>(1))
+
+ node T_169219 = and(out.ready, out.valid)
+ when T_169219 :
+
+
+ node T_169220 = and(UInt<1>(1), out.bits.payload.is_builtin_type)
+ wire T_169221 : UInt<3>[1]
+ T_169221[0] := UInt<3>(3)
+ node T_169222 = eq(T_169221[0], out.bits.payload.a_type)
+ node T_169223 = or(UInt<1>(0), T_169222)
+ node T_169224 = and(T_169220, T_169223)
+ when T_169224 :
+ T_169217 := T_169218
+
+ node T_169225 = eq(T_169158, UInt<1>(0))
+ when T_169225 :
+ T_169158 := UInt<1>(1)
+ node T_169226 = and(in[0].ready, in[0].valid)
+ node T_169227 = and(in[1].ready, in[1].valid)
+ node T_169228 = and(in[2].ready, in[2].valid)
+ wire T_169229 : UInt<1>[3]
+ T_169229[0] := T_169226
+ T_169229[1] := T_169227
+ T_169229[2] := T_169228
+ wire T_169230 : UInt<2>
+ T_169230 := UInt<2>(2)
+ when T_169229[1] : T_169230 := UInt<1>(1)
+ wire T_169231 : UInt<2>
+ T_169231 := T_169230
+ when T_169229[0] : T_169231 := UInt<1>(0)
+ T_169159 := T_169231
+
+ node T_169232 = eq(T_169218, UInt<1>(0))
+ when T_169232 : T_169158 := UInt<1>(0)
+ wire T_169233 : UInt<2>
+ T_169233 := UInt<2>(2)
+ when in[1].valid : T_169233 := UInt<1>(1)
+ wire T_169234 : UInt<2>
+ T_169234 := T_169233
+ when in[0].valid : T_169234 := UInt<1>(0)
+ node T_169235 = gt(UInt<2>(2), last_grant)
+ node T_169236 = and(in[2].valid, T_169235)
+ wire T_169237 : UInt<2>
+ T_169237 := T_169234
+ when T_169236 : T_169237 := UInt<2>(2)
+ node T_169238 = gt(UInt<1>(1), last_grant)
+ node T_169239 = and(in[1].valid, T_169238)
+ wire choose : UInt<2>
+ choose := T_169237
+ when T_169239 : choose := UInt<1>(1)
+ wire T_169240 : UInt<2>
+ T_169240 := choose
+ when T_169158 : T_169240 := T_169159
+ T_169160 := T_169240
+
+ node T_169241 = and(out.ready, out.valid)
+ when T_169241 : last_grant := T_169160
+ module LockingRRArbiter_47800 :
+ input in : {flip ready : UInt<1>, valid : UInt<1>, bits : {header : {src : UInt<2>, dst : UInt<2>}, payload : {addr_block : UInt<26>, client_xact_id : UInt<1>, addr_beat : UInt<2>, data : UInt<128>, r_type : UInt<3>, voluntary : UInt<1>}}}[3]
+ output out : {flip ready : UInt<1>, valid : UInt<1>, bits : {header : {src : UInt<2>, dst : UInt<2>}, payload : {addr_block : UInt<26>, client_xact_id : UInt<1>, addr_beat : UInt<2>, data : UInt<128>, r_type : UInt<3>, voluntary : UInt<1>}}}
+ output chosen : UInt<2>
+
+ wire T_169242 : UInt<3>[3]
+ T_169242[0] := UInt<3>(0)
+ T_169242[1] := UInt<3>(1)
+ T_169242[2] := UInt<3>(2)
+ wire T_169243 : UInt<2>[2]
+ T_169243[0] := UInt<2>(0)
+ T_169243[1] := UInt<2>(1)
+ wire T_169244 : UInt<2>[3]
+ T_169244[0] := UInt<2>(1)
+ T_169244[1] := UInt<2>(2)
+ T_169244[2] := UInt<2>(3)
+ wire T_169245 : UInt<2>[2]
+ T_169245[0] := UInt<2>(2)
+ T_169245[1] := UInt<2>(3)
+ wire T_169246 : UInt<2>[1]
+ T_169246[0] := UInt<2>(3)
+ wire T_169247 : UInt<3>[3]
+ T_169247[0] := UInt<3>(0)
+ T_169247[1] := UInt<3>(1)
+ T_169247[2] := UInt<3>(2)
+ wire T_169248 : UInt<2>[2]
+ T_169248[0] := UInt<2>(0)
+ T_169248[1] := UInt<2>(1)
+ wire T_169249 : UInt<2>[3]
+ T_169249[0] := UInt<2>(1)
+ T_169249[1] := UInt<2>(2)
+ T_169249[2] := UInt<2>(3)
+ wire T_169250 : UInt<2>[2]
+ T_169250[0] := UInt<2>(2)
+ T_169250[1] := UInt<2>(3)
+ wire T_169251 : UInt<2>[1]
+ T_169251[0] := UInt<2>(3)
+ wire T_169252 : UInt<3>[3]
+ T_169252[0] := UInt<3>(0)
+ T_169252[1] := UInt<3>(1)
+ T_169252[2] := UInt<3>(2)
+ wire T_169253 : UInt<2>[2]
+ T_169253[0] := UInt<2>(0)
+ T_169253[1] := UInt<2>(1)
+ wire T_169254 : UInt<2>[3]
+ T_169254[0] := UInt<2>(1)
+ T_169254[1] := UInt<2>(2)
+ T_169254[2] := UInt<2>(3)
+ wire T_169255 : UInt<2>[2]
+ T_169255[0] := UInt<2>(2)
+ T_169255[1] := UInt<2>(3)
+ wire T_169256 : UInt<2>[1]
+ T_169256[0] := UInt<2>(3)
+ wire T_169257 : UInt<3>[3]
+ T_169257[0] := UInt<3>(0)
+ T_169257[1] := UInt<3>(1)
+ T_169257[2] := UInt<3>(2)
+ wire T_169258 : UInt<2>[2]
+ T_169258[0] := UInt<2>(0)
+ T_169258[1] := UInt<2>(1)
+ wire T_169259 : UInt<2>[3]
+ T_169259[0] := UInt<2>(1)
+ T_169259[1] := UInt<2>(2)
+ T_169259[2] := UInt<2>(3)
+ wire T_169260 : UInt<2>[2]
+ T_169260[0] := UInt<2>(2)
+ T_169260[1] := UInt<2>(3)
+ wire T_169261 : UInt<2>[1]
+ T_169261[0] := UInt<2>(3)
+ wire T_169262 : UInt<3>[3]
+ T_169262[0] := UInt<3>(0)
+ T_169262[1] := UInt<3>(1)
+ T_169262[2] := UInt<3>(2)
+ wire T_169263 : UInt<2>[2]
+ T_169263[0] := UInt<2>(0)
+ T_169263[1] := UInt<2>(1)
+ wire T_169264 : UInt<2>[3]
+ T_169264[0] := UInt<2>(1)
+ T_169264[1] := UInt<2>(2)
+ T_169264[2] := UInt<2>(3)
+ wire T_169265 : UInt<2>[2]
+ T_169265[0] := UInt<2>(2)
+ T_169265[1] := UInt<2>(3)
+ wire T_169266 : UInt<2>[1]
+ T_169266[0] := UInt<2>(3)
+ reg T_169267 : UInt<1>
+ onreset T_169267 := UInt<1>(0)
+ reg T_169268 : UInt<2>
+ onreset T_169268 := UInt<2>(2)
+ wire T_169269 : UInt<2>
+ reg last_grant : UInt<2>
+ onreset last_grant := UInt<2>(0)
+ node T_169270 = gt(UInt<1>(0), last_grant)
+ node T_169271 = and(in[0].valid, T_169270)
+ node T_169272 = gt(UInt<1>(1), last_grant)
+ node T_169273 = and(in[1].valid, T_169272)
+ node T_169274 = gt(UInt<2>(2), last_grant)
+ node T_169275 = and(in[2].valid, T_169274)
+ node T_169276 = or(UInt<1>(0), T_169271)
+ node T_169277 = eq(T_169276, UInt<1>(0))
+ node T_169278 = or(UInt<1>(0), T_169271)
+ node T_169279 = or(T_169278, T_169273)
+ node T_169280 = eq(T_169279, UInt<1>(0))
+ node T_169281 = or(UInt<1>(0), T_169271)
+ node T_169282 = or(T_169281, T_169273)
+ node T_169283 = or(T_169282, T_169275)
+ node T_169284 = eq(T_169283, UInt<1>(0))
+ node T_169285 = or(UInt<1>(0), T_169271)
+ node T_169286 = or(T_169285, T_169273)
+ node T_169287 = or(T_169286, T_169275)
+ node T_169288 = or(T_169287, in[0].valid)
+ node T_169289 = eq(T_169288, UInt<1>(0))
+ node T_169290 = or(UInt<1>(0), T_169271)
+ node T_169291 = or(T_169290, T_169273)
+ node T_169292 = or(T_169291, T_169275)
+ node T_169293 = or(T_169292, in[0].valid)
+ node T_169294 = or(T_169293, in[1].valid)
+ node T_169295 = eq(T_169294, UInt<1>(0))
+ node T_169296 = gt(UInt<1>(0), last_grant)
+ node T_169297 = and(UInt<1>(1), T_169296)
+ node T_169298 = or(T_169297, T_169284)
+ node T_169299 = gt(UInt<1>(1), last_grant)
+ node T_169300 = and(T_169277, T_169299)
+ node T_169301 = or(T_169300, T_169289)
+ node T_169302 = gt(UInt<2>(2), last_grant)
+ node T_169303 = and(T_169280, T_169302)
+ node T_169304 = or(T_169303, T_169295)
+ node T_169305 = eq(T_169268, UInt<1>(0))
+ wire T_169306 : UInt<1>
+ T_169306 := T_169298
+ when T_169267 : T_169306 := T_169305
+ node T_169307 = and(T_169306, out.ready)
+ in[0].ready := T_169307
+ node T_169308 = eq(T_169268, UInt<1>(1))
+ wire T_169309 : UInt<1>
+ T_169309 := T_169301
+ when T_169267 : T_169309 := T_169308
+ node T_169310 = and(T_169309, out.ready)
+ in[1].ready := T_169310
+ node T_169311 = eq(T_169268, UInt<2>(2))
+ wire T_169312 : UInt<1>
+ T_169312 := T_169304
+ when T_169267 : T_169312 := T_169311
+ node T_169313 = and(T_169312, out.ready)
+ in[2].ready := T_169313
+ wire T_169314 : UInt<3>[3]
+ T_169314[0] := UInt<3>(0)
+ T_169314[1] := UInt<3>(1)
+ T_169314[2] := UInt<3>(2)
+ wire T_169315 : UInt<2>[2]
+ T_169315[0] := UInt<2>(0)
+ T_169315[1] := UInt<2>(1)
+ wire T_169316 : UInt<2>[3]
+ T_169316[0] := UInt<2>(1)
+ T_169316[1] := UInt<2>(2)
+ T_169316[2] := UInt<2>(3)
+ wire T_169317 : UInt<2>[2]
+ T_169317[0] := UInt<2>(2)
+ T_169317[1] := UInt<2>(3)
+ wire T_169318 : UInt<2>[1]
+ T_169318[0] := UInt<2>(3)
+ accessor T_169319 = in[T_169269]
+ out.valid := T_169319.valid
+ wire T_169320 : UInt<3>[3]
+ T_169320[0] := UInt<3>(0)
+ T_169320[1] := UInt<3>(1)
+ T_169320[2] := UInt<3>(2)
+ wire T_169321 : UInt<2>[2]
+ T_169321[0] := UInt<2>(0)
+ T_169321[1] := UInt<2>(1)
+ wire T_169322 : UInt<2>[3]
+ T_169322[0] := UInt<2>(1)
+ T_169322[1] := UInt<2>(2)
+ T_169322[2] := UInt<2>(3)
+ wire T_169323 : UInt<2>[2]
+ T_169323[0] := UInt<2>(2)
+ T_169323[1] := UInt<2>(3)
+ wire T_169324 : UInt<2>[1]
+ T_169324[0] := UInt<2>(3)
+ accessor T_169325 = in[T_169269]
+ out.bits := T_169325.bits
+ chosen := T_169269
+ reg T_169326 : UInt<2>
+ onreset T_169326 := UInt<2>(0)
+ node T_169327 = addw(T_169326, UInt<1>(1))
+
+ node T_169328 = and(out.ready, out.valid)
+ when T_169328 :
+
+
+ node T_169329 = eq(T_169262[0], out.bits.payload.r_type)
+ node T_169330 = eq(T_169262[1], out.bits.payload.r_type)
+ node T_169331 = eq(T_169262[2], out.bits.payload.r_type)
+ node T_169332 = or(UInt<1>(0), T_169329)
+ node T_169333 = or(T_169332, T_169330)
+ node T_169334 = or(T_169333, T_169331)
+ node T_169335 = and(UInt<1>(1), T_169334)
+ when T_169335 :
+ T_169326 := T_169327
+
+ node T_169336 = eq(T_169267, UInt<1>(0))
+ when T_169336 :
+ T_169267 := UInt<1>(1)
+ node T_169337 = and(in[0].ready, in[0].valid)
+ node T_169338 = and(in[1].ready, in[1].valid)
+ node T_169339 = and(in[2].ready, in[2].valid)
+ wire T_169340 : UInt<1>[3]
+ T_169340[0] := T_169337
+ T_169340[1] := T_169338
+ T_169340[2] := T_169339
+ wire T_169341 : UInt<2>
+ T_169341 := UInt<2>(2)
+ when T_169340[1] : T_169341 := UInt<1>(1)
+ wire T_169342 : UInt<2>
+ T_169342 := T_169341
+ when T_169340[0] : T_169342 := UInt<1>(0)
+ T_169268 := T_169342
+
+ node T_169343 = eq(T_169327, UInt<1>(0))
+ when T_169343 : T_169267 := UInt<1>(0)
+ wire T_169344 : UInt<2>
+ T_169344 := UInt<2>(2)
+ when in[1].valid : T_169344 := UInt<1>(1)
+ wire T_169345 : UInt<2>
+ T_169345 := T_169344
+ when in[0].valid : T_169345 := UInt<1>(0)
+ node T_169346 = gt(UInt<2>(2), last_grant)
+ node T_169347 = and(in[2].valid, T_169346)
+ wire T_169348 : UInt<2>
+ T_169348 := T_169345
+ when T_169347 : T_169348 := UInt<2>(2)
+ node T_169349 = gt(UInt<1>(1), last_grant)
+ node T_169350 = and(in[1].valid, T_169349)
+ wire choose : UInt<2>
+ choose := T_169348
+ when T_169350 : choose := UInt<1>(1)
+ wire T_169351 : UInt<2>
+ T_169351 := choose
+ when T_169267 : T_169351 := T_169268
+ T_169269 := T_169351
+
+ node T_169352 = and(out.ready, out.valid)
+ when T_169352 : last_grant := T_169269
+ module RRArbiter :
+ input in : {flip ready : UInt<1>, valid : UInt<1>, bits : {header : {src : UInt<2>, dst : UInt<2>}, payload : {manager_xact_id : UInt<2>}}}[3]
+ output out : {flip ready : UInt<1>, valid : UInt<1>, bits : {header : {src : UInt<2>, dst : UInt<2>}, payload : {manager_xact_id : UInt<2>}}}
+ output chosen : UInt<2>
+
+ wire T_169353 : UInt<3>[3]
+ T_169353[0] := UInt<3>(0)
+ T_169353[1] := UInt<3>(1)
+ T_169353[2] := UInt<3>(2)
+ wire T_169354 : UInt<2>[2]
+ T_169354[0] := UInt<2>(0)
+ T_169354[1] := UInt<2>(1)
+ wire T_169355 : UInt<2>[3]
+ T_169355[0] := UInt<2>(1)
+ T_169355[1] := UInt<2>(2)
+ T_169355[2] := UInt<2>(3)
+ wire T_169356 : UInt<2>[2]
+ T_169356[0] := UInt<2>(2)
+ T_169356[1] := UInt<2>(3)
+ wire T_169357 : UInt<2>[1]
+ T_169357[0] := UInt<2>(3)
+ wire T_169358 : UInt<3>[3]
+ T_169358[0] := UInt<3>(0)
+ T_169358[1] := UInt<3>(1)
+ T_169358[2] := UInt<3>(2)
+ wire T_169359 : UInt<2>[2]
+ T_169359[0] := UInt<2>(0)
+ T_169359[1] := UInt<2>(1)
+ wire T_169360 : UInt<2>[3]
+ T_169360[0] := UInt<2>(1)
+ T_169360[1] := UInt<2>(2)
+ T_169360[2] := UInt<2>(3)
+ wire T_169361 : UInt<2>[2]
+ T_169361[0] := UInt<2>(2)
+ T_169361[1] := UInt<2>(3)
+ wire T_169362 : UInt<2>[1]
+ T_169362[0] := UInt<2>(3)
+ wire T_169363 : UInt<3>[3]
+ T_169363[0] := UInt<3>(0)
+ T_169363[1] := UInt<3>(1)
+ T_169363[2] := UInt<3>(2)
+ wire T_169364 : UInt<2>[2]
+ T_169364[0] := UInt<2>(0)
+ T_169364[1] := UInt<2>(1)
+ wire T_169365 : UInt<2>[3]
+ T_169365[0] := UInt<2>(1)
+ T_169365[1] := UInt<2>(2)
+ T_169365[2] := UInt<2>(3)
+ wire T_169366 : UInt<2>[2]
+ T_169366[0] := UInt<2>(2)
+ T_169366[1] := UInt<2>(3)
+ wire T_169367 : UInt<2>[1]
+ T_169367[0] := UInt<2>(3)
+ wire T_169368 : UInt<3>[3]
+ T_169368[0] := UInt<3>(0)
+ T_169368[1] := UInt<3>(1)
+ T_169368[2] := UInt<3>(2)
+ wire T_169369 : UInt<2>[2]
+ T_169369[0] := UInt<2>(0)
+ T_169369[1] := UInt<2>(1)
+ wire T_169370 : UInt<2>[3]
+ T_169370[0] := UInt<2>(1)
+ T_169370[1] := UInt<2>(2)
+ T_169370[2] := UInt<2>(3)
+ wire T_169371 : UInt<2>[2]
+ T_169371[0] := UInt<2>(2)
+ T_169371[1] := UInt<2>(3)
+ wire T_169372 : UInt<2>[1]
+ T_169372[0] := UInt<2>(3)
+ wire T_169373 : UInt<3>[3]
+ T_169373[0] := UInt<3>(0)
+ T_169373[1] := UInt<3>(1)
+ T_169373[2] := UInt<3>(2)
+ wire T_169374 : UInt<2>[2]
+ T_169374[0] := UInt<2>(0)
+ T_169374[1] := UInt<2>(1)
+ wire T_169375 : UInt<2>[3]
+ T_169375[0] := UInt<2>(1)
+ T_169375[1] := UInt<2>(2)
+ T_169375[2] := UInt<2>(3)
+ wire T_169376 : UInt<2>[2]
+ T_169376[0] := UInt<2>(2)
+ T_169376[1] := UInt<2>(3)
+ wire T_169377 : UInt<2>[1]
+ T_169377[0] := UInt<2>(3)
+ wire T_169378 : UInt<2>
+ reg T_169379 : UInt<2>
+ onreset T_169379 := UInt<2>(0)
+ node T_169380 = gt(UInt<1>(0), T_169379)
+ node T_169381 = and(in[0].valid, T_169380)
+ node T_169382 = gt(UInt<1>(1), T_169379)
+ node T_169383 = and(in[1].valid, T_169382)
+ node T_169384 = gt(UInt<2>(2), T_169379)
+ node T_169385 = and(in[2].valid, T_169384)
+ node T_169386 = or(UInt<1>(0), T_169381)
+ node T_169387 = eq(T_169386, UInt<1>(0))
+ node T_169388 = or(UInt<1>(0), T_169381)
+ node T_169389 = or(T_169388, T_169383)
+ node T_169390 = eq(T_169389, UInt<1>(0))
+ node T_169391 = or(UInt<1>(0), T_169381)
+ node T_169392 = or(T_169391, T_169383)
+ node T_169393 = or(T_169392, T_169385)
+ node T_169394 = eq(T_169393, UInt<1>(0))
+ node T_169395 = or(UInt<1>(0), T_169381)
+ node T_169396 = or(T_169395, T_169383)
+ node T_169397 = or(T_169396, T_169385)
+ node T_169398 = or(T_169397, in[0].valid)
+ node T_169399 = eq(T_169398, UInt<1>(0))
+ node T_169400 = or(UInt<1>(0), T_169381)
+ node T_169401 = or(T_169400, T_169383)
+ node T_169402 = or(T_169401, T_169385)
+ node T_169403 = or(T_169402, in[0].valid)
+ node T_169404 = or(T_169403, in[1].valid)
+ node T_169405 = eq(T_169404, UInt<1>(0))
+ node T_169406 = gt(UInt<1>(0), T_169379)
+ node T_169407 = and(UInt<1>(1), T_169406)
+ node T_169408 = or(T_169407, T_169394)
+ node T_169409 = gt(UInt<1>(1), T_169379)
+ node T_169410 = and(T_169387, T_169409)
+ node T_169411 = or(T_169410, T_169399)
+ node T_169412 = gt(UInt<2>(2), T_169379)
+ node T_169413 = and(T_169390, T_169412)
+ node T_169414 = or(T_169413, T_169405)
+ node T_169415 = eq(UInt<2>(2), UInt<1>(0))
+ wire T_169416 : UInt<1>
+ T_169416 := T_169408
+ when UInt<1>(0) : T_169416 := T_169415
+ node T_169417 = and(T_169416, out.ready)
+ in[0].ready := T_169417
+ node T_169418 = eq(UInt<2>(2), UInt<1>(1))
+ wire T_169419 : UInt<1>
+ T_169419 := T_169411
+ when UInt<1>(0) : T_169419 := T_169418
+ node T_169420 = and(T_169419, out.ready)
+ in[1].ready := T_169420
+ node T_169421 = eq(UInt<2>(2), UInt<2>(2))
+ wire T_169422 : UInt<1>
+ T_169422 := T_169414
+ when UInt<1>(0) : T_169422 := T_169421
+ node T_169423 = and(T_169422, out.ready)
+ in[2].ready := T_169423
+ wire T_169424 : UInt<3>[3]
+ T_169424[0] := UInt<3>(0)
+ T_169424[1] := UInt<3>(1)
+ T_169424[2] := UInt<3>(2)
+ wire T_169425 : UInt<2>[2]
+ T_169425[0] := UInt<2>(0)
+ T_169425[1] := UInt<2>(1)
+ wire T_169426 : UInt<2>[3]
+ T_169426[0] := UInt<2>(1)
+ T_169426[1] := UInt<2>(2)
+ T_169426[2] := UInt<2>(3)
+ wire T_169427 : UInt<2>[2]
+ T_169427[0] := UInt<2>(2)
+ T_169427[1] := UInt<2>(3)
+ wire T_169428 : UInt<2>[1]
+ T_169428[0] := UInt<2>(3)
+ accessor T_169429 = in[T_169378]
+ out.valid := T_169429.valid
+ wire T_169430 : UInt<3>[3]
+ T_169430[0] := UInt<3>(0)
+ T_169430[1] := UInt<3>(1)
+ T_169430[2] := UInt<3>(2)
+ wire T_169431 : UInt<2>[2]
+ T_169431[0] := UInt<2>(0)
+ T_169431[1] := UInt<2>(1)
+ wire T_169432 : UInt<2>[3]
+ T_169432[0] := UInt<2>(1)
+ T_169432[1] := UInt<2>(2)
+ T_169432[2] := UInt<2>(3)
+ wire T_169433 : UInt<2>[2]
+ T_169433[0] := UInt<2>(2)
+ T_169433[1] := UInt<2>(3)
+ wire T_169434 : UInt<2>[1]
+ T_169434[0] := UInt<2>(3)
+ accessor T_169435 = in[T_169378]
+ out.bits := T_169435.bits
+ chosen := T_169378
+ wire T_169436 : UInt<2>
+ T_169436 := UInt<2>(2)
+ when in[1].valid : T_169436 := UInt<1>(1)
+ wire T_169437 : UInt<2>
+ T_169437 := T_169436
+ when in[0].valid : T_169437 := UInt<1>(0)
+ node T_169438 = gt(UInt<2>(2), T_169379)
+ node T_169439 = and(in[2].valid, T_169438)
+ wire T_169440 : UInt<2>
+ T_169440 := T_169437
+ when T_169439 : T_169440 := UInt<2>(2)
+ node T_169441 = gt(UInt<1>(1), T_169379)
+ node T_169442 = and(in[1].valid, T_169441)
+ wire T_169443 : UInt<2>
+ T_169443 := T_169440
+ when T_169442 : T_169443 := UInt<1>(1)
+ wire T_169444 : UInt<2>
+ T_169444 := T_169443
+ when UInt<1>(0) : T_169444 := UInt<2>(2)
+ T_169378 := T_169444
+
+ node T_169445 = and(out.ready, out.valid)
+ when T_169445 : T_169379 := T_169378
+ module RocketChipTileLinkArbiter :
+ input clients : {acquire : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_block : UInt<26>, client_xact_id : UInt<1>, addr_beat : UInt<2>, data : UInt<128>, is_builtin_type : UInt<1>, a_type : UInt<3>, union : UInt<17>}}, flip grant : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_beat : UInt<2>, data : UInt<128>, client_xact_id : UInt<1>, manager_xact_id : UInt<2>, is_builtin_type : UInt<1>, g_type : UInt<4>}}, flip probe : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_block : UInt<26>, p_type : UInt<2>}}, release : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_block : UInt<26>, client_xact_id : UInt<1>, addr_beat : UInt<2>, data : UInt<128>, r_type : UInt<3>, voluntary : UInt<1>}}}[3]
+ input managers : {flip acquire : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_block : UInt<26>, client_xact_id : UInt<1>, addr_beat : UInt<2>, data : UInt<128>, is_builtin_type : UInt<1>, a_type : UInt<3>, union : UInt<17>, client_id : UInt<2>}}, grant : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_beat : UInt<2>, data : UInt<128>, client_xact_id : UInt<1>, manager_xact_id : UInt<2>, is_builtin_type : UInt<1>, g_type : UInt<4>, client_id : UInt<2>}}, flip finish : {flip ready : UInt<1>, valid : UInt<1>, bits : {manager_xact_id : UInt<2>}}, probe : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_block : UInt<26>, p_type : UInt<2>, client_id : UInt<2>}}, flip release : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_block : UInt<26>, client_xact_id : UInt<1>, addr_beat : UInt<2>, data : UInt<128>, r_type : UInt<3>, voluntary : UInt<1>, client_id : UInt<2>}}}[1]
+
+ wire T_169446 : UInt<3>[3]
+ T_169446[0] := UInt<3>(0)
+ T_169446[1] := UInt<3>(1)
+ T_169446[2] := UInt<3>(2)
+ wire T_169447 : UInt<2>[2]
+ T_169447[0] := UInt<2>(0)
+ T_169447[1] := UInt<2>(1)
+ wire T_169448 : UInt<2>[3]
+ T_169448[0] := UInt<2>(1)
+ T_169448[1] := UInt<2>(2)
+ T_169448[2] := UInt<2>(3)
+ wire T_169449 : UInt<2>[2]
+ T_169449[0] := UInt<2>(2)
+ T_169449[1] := UInt<2>(3)
+ wire T_169450 : UInt<2>[1]
+ T_169450[0] := UInt<2>(3)
+ wire T_169451 : UInt<3>[3]
+ T_169451[0] := UInt<3>(0)
+ T_169451[1] := UInt<3>(1)
+ T_169451[2] := UInt<3>(2)
+ wire T_169452 : UInt<2>[2]
+ T_169452[0] := UInt<2>(0)
+ T_169452[1] := UInt<2>(1)
+ wire T_169453 : UInt<2>[3]
+ T_169453[0] := UInt<2>(1)
+ T_169453[1] := UInt<2>(2)
+ T_169453[2] := UInt<2>(3)
+ wire T_169454 : UInt<2>[2]
+ T_169454[0] := UInt<2>(2)
+ T_169454[1] := UInt<2>(3)
+ wire T_169455 : UInt<2>[1]
+ T_169455[0] := UInt<2>(3)
+ wire T_169456 : UInt<3>[3]
+ T_169456[0] := UInt<3>(0)
+ T_169456[1] := UInt<3>(1)
+ T_169456[2] := UInt<3>(2)
+ wire T_169457 : UInt<2>[2]
+ T_169457[0] := UInt<2>(0)
+ T_169457[1] := UInt<2>(1)
+ wire T_169458 : UInt<2>[3]
+ T_169458[0] := UInt<2>(1)
+ T_169458[1] := UInt<2>(2)
+ T_169458[2] := UInt<2>(3)
+ wire T_169459 : UInt<2>[2]
+ T_169459[0] := UInt<2>(2)
+ T_169459[1] := UInt<2>(3)
+ wire T_169460 : UInt<2>[1]
+ T_169460[0] := UInt<2>(3)
+ wire T_169461 : UInt<3>[3]
+ T_169461[0] := UInt<3>(0)
+ T_169461[1] := UInt<3>(1)
+ T_169461[2] := UInt<3>(2)
+ wire T_169462 : UInt<2>[2]
+ T_169462[0] := UInt<2>(0)
+ T_169462[1] := UInt<2>(1)
+ wire T_169463 : UInt<2>[3]
+ T_169463[0] := UInt<2>(1)
+ T_169463[1] := UInt<2>(2)
+ T_169463[2] := UInt<2>(3)
+ wire T_169464 : UInt<2>[2]
+ T_169464[0] := UInt<2>(2)
+ T_169464[1] := UInt<2>(3)
+ wire T_169465 : UInt<2>[1]
+ T_169465[0] := UInt<2>(3)
+ wire T_169466 : UInt<3>[3]
+ T_169466[0] := UInt<3>(0)
+ T_169466[1] := UInt<3>(1)
+ T_169466[2] := UInt<3>(2)
+ wire T_169467 : UInt<2>[2]
+ T_169467[0] := UInt<2>(0)
+ T_169467[1] := UInt<2>(1)
+ wire T_169468 : UInt<2>[3]
+ T_169468[0] := UInt<2>(1)
+ T_169468[1] := UInt<2>(2)
+ T_169468[2] := UInt<2>(3)
+ wire T_169469 : UInt<2>[2]
+ T_169469[0] := UInt<2>(2)
+ T_169469[1] := UInt<2>(3)
+ wire T_169470 : UInt<2>[1]
+ T_169470[0] := UInt<2>(3)
+ wire T_169471 : UInt<3>[3]
+ T_169471[0] := UInt<3>(0)
+ T_169471[1] := UInt<3>(1)
+ T_169471[2] := UInt<3>(2)
+ wire T_169472 : UInt<2>[2]
+ T_169472[0] := UInt<2>(0)
+ T_169472[1] := UInt<2>(1)
+ wire T_169473 : UInt<2>[3]
+ T_169473[0] := UInt<2>(1)
+ T_169473[1] := UInt<2>(2)
+ T_169473[2] := UInt<2>(3)
+ wire T_169474 : UInt<2>[2]
+ T_169474[0] := UInt<2>(2)
+ T_169474[1] := UInt<2>(3)
+ wire T_169475 : UInt<2>[1]
+ T_169475[0] := UInt<2>(3)
+ wire T_169476 : UInt<3>[3]
+ T_169476[0] := UInt<3>(0)
+ T_169476[1] := UInt<3>(1)
+ T_169476[2] := UInt<3>(2)
+ wire T_169477 : UInt<2>[2]
+ T_169477[0] := UInt<2>(0)
+ T_169477[1] := UInt<2>(1)
+ wire T_169478 : UInt<2>[3]
+ T_169478[0] := UInt<2>(1)
+ T_169478[1] := UInt<2>(2)
+ T_169478[2] := UInt<2>(3)
+ wire T_169479 : UInt<2>[2]
+ T_169479[0] := UInt<2>(2)
+ T_169479[1] := UInt<2>(3)
+ wire T_169480 : UInt<2>[1]
+ T_169480[0] := UInt<2>(3)
+ wire T_169481 : UInt<3>[3]
+ T_169481[0] := UInt<3>(0)
+ T_169481[1] := UInt<3>(1)
+ T_169481[2] := UInt<3>(2)
+ wire T_169482 : UInt<2>[2]
+ T_169482[0] := UInt<2>(0)
+ T_169482[1] := UInt<2>(1)
+ wire T_169483 : UInt<2>[3]
+ T_169483[0] := UInt<2>(1)
+ T_169483[1] := UInt<2>(2)
+ T_169483[2] := UInt<2>(3)
+ wire T_169484 : UInt<2>[2]
+ T_169484[0] := UInt<2>(2)
+ T_169484[1] := UInt<2>(3)
+ wire T_169485 : UInt<2>[1]
+ T_169485[0] := UInt<2>(3)
+ wire T_169486 : UInt<3>[3]
+ T_169486[0] := UInt<3>(0)
+ T_169486[1] := UInt<3>(1)
+ T_169486[2] := UInt<3>(2)
+ wire T_169487 : UInt<2>[2]
+ T_169487[0] := UInt<2>(0)
+ T_169487[1] := UInt<2>(1)
+ wire T_169488 : UInt<2>[3]
+ T_169488[0] := UInt<2>(1)
+ T_169488[1] := UInt<2>(2)
+ T_169488[2] := UInt<2>(3)
+ wire T_169489 : UInt<2>[2]
+ T_169489[0] := UInt<2>(2)
+ T_169489[1] := UInt<2>(3)
+ wire T_169490 : UInt<2>[1]
+ T_169490[0] := UInt<2>(3)
+ wire T_169491 : UInt<3>[3]
+ T_169491[0] := UInt<3>(0)
+ T_169491[1] := UInt<3>(1)
+ T_169491[2] := UInt<3>(2)
+ wire T_169492 : UInt<2>[2]
+ T_169492[0] := UInt<2>(0)
+ T_169492[1] := UInt<2>(1)
+ wire T_169493 : UInt<2>[3]
+ T_169493[0] := UInt<2>(1)
+ T_169493[1] := UInt<2>(2)
+ T_169493[2] := UInt<2>(3)
+ wire T_169494 : UInt<2>[2]
+ T_169494[0] := UInt<2>(2)
+ T_169494[1] := UInt<2>(3)
+ wire T_169495 : UInt<2>[1]
+ T_169495[0] := UInt<2>(3)
+ wire T_169496 : UInt<3>[3]
+ T_169496[0] := UInt<3>(0)
+ T_169496[1] := UInt<3>(1)
+ T_169496[2] := UInt<3>(2)
+ wire T_169497 : UInt<2>[2]
+ T_169497[0] := UInt<2>(0)
+ T_169497[1] := UInt<2>(1)
+ wire T_169498 : UInt<2>[3]
+ T_169498[0] := UInt<2>(1)
+ T_169498[1] := UInt<2>(2)
+ T_169498[2] := UInt<2>(3)
+ wire T_169499 : UInt<2>[2]
+ T_169499[0] := UInt<2>(2)
+ T_169499[1] := UInt<2>(3)
+ wire T_169500 : UInt<2>[1]
+ T_169500[0] := UInt<2>(3)
+ wire T_169501 : UInt<3>[3]
+ T_169501[0] := UInt<3>(0)
+ T_169501[1] := UInt<3>(1)
+ T_169501[2] := UInt<3>(2)
+ wire T_169502 : UInt<2>[2]
+ T_169502[0] := UInt<2>(0)
+ T_169502[1] := UInt<2>(1)
+ wire T_169503 : UInt<2>[3]
+ T_169503[0] := UInt<2>(1)
+ T_169503[1] := UInt<2>(2)
+ T_169503[2] := UInt<2>(3)
+ wire T_169504 : UInt<2>[2]
+ T_169504[0] := UInt<2>(2)
+ T_169504[1] := UInt<2>(3)
+ wire T_169505 : UInt<2>[1]
+ T_169505[0] := UInt<2>(3)
+ wire T_169506 : UInt<3>[3]
+ T_169506[0] := UInt<3>(0)
+ T_169506[1] := UInt<3>(1)
+ T_169506[2] := UInt<3>(2)
+ wire T_169507 : UInt<2>[2]
+ T_169507[0] := UInt<2>(0)
+ T_169507[1] := UInt<2>(1)
+ wire T_169508 : UInt<2>[3]
+ T_169508[0] := UInt<2>(1)
+ T_169508[1] := UInt<2>(2)
+ T_169508[2] := UInt<2>(3)
+ wire T_169509 : UInt<2>[2]
+ T_169509[0] := UInt<2>(2)
+ T_169509[1] := UInt<2>(3)
+ wire T_169510 : UInt<2>[1]
+ T_169510[0] := UInt<2>(3)
+ wire T_169511 : UInt<3>[3]
+ T_169511[0] := UInt<3>(0)
+ T_169511[1] := UInt<3>(1)
+ T_169511[2] := UInt<3>(2)
+ wire T_169512 : UInt<2>[2]
+ T_169512[0] := UInt<2>(0)
+ T_169512[1] := UInt<2>(1)
+ wire T_169513 : UInt<2>[3]
+ T_169513[0] := UInt<2>(1)
+ T_169513[1] := UInt<2>(2)
+ T_169513[2] := UInt<2>(3)
+ wire T_169514 : UInt<2>[2]
+ T_169514[0] := UInt<2>(2)
+ T_169514[1] := UInt<2>(3)
+ wire T_169515 : UInt<2>[1]
+ T_169515[0] := UInt<2>(3)
+ wire T_169516 : UInt<3>[3]
+ T_169516[0] := UInt<3>(0)
+ T_169516[1] := UInt<3>(1)
+ T_169516[2] := UInt<3>(2)
+ wire T_169517 : UInt<2>[2]
+ T_169517[0] := UInt<2>(0)
+ T_169517[1] := UInt<2>(1)
+ wire T_169518 : UInt<2>[3]
+ T_169518[0] := UInt<2>(1)
+ T_169518[1] := UInt<2>(2)
+ T_169518[2] := UInt<2>(3)
+ wire T_169519 : UInt<2>[2]
+ T_169519[0] := UInt<2>(2)
+ T_169519[1] := UInt<2>(3)
+ wire T_169520 : UInt<2>[1]
+ T_169520[0] := UInt<2>(3)
+ wire T_169521 : UInt<3>[3]
+ T_169521[0] := UInt<3>(0)
+ T_169521[1] := UInt<3>(1)
+ T_169521[2] := UInt<3>(2)
+ wire T_169522 : UInt<2>[2]
+ T_169522[0] := UInt<2>(0)
+ T_169522[1] := UInt<2>(1)
+ wire T_169523 : UInt<2>[3]
+ T_169523[0] := UInt<2>(1)
+ T_169523[1] := UInt<2>(2)
+ T_169523[2] := UInt<2>(3)
+ wire T_169524 : UInt<2>[2]
+ T_169524[0] := UInt<2>(2)
+ T_169524[1] := UInt<2>(3)
+ wire T_169525 : UInt<2>[1]
+ T_169525[0] := UInt<2>(3)
+ wire T_169526 : UInt<3>[3]
+ T_169526[0] := UInt<3>(0)
+ T_169526[1] := UInt<3>(1)
+ T_169526[2] := UInt<3>(2)
+ wire T_169527 : UInt<2>[2]
+ T_169527[0] := UInt<2>(0)
+ T_169527[1] := UInt<2>(1)
+ wire T_169528 : UInt<2>[3]
+ T_169528[0] := UInt<2>(1)
+ T_169528[1] := UInt<2>(2)
+ T_169528[2] := UInt<2>(3)
+ wire T_169529 : UInt<2>[2]
+ T_169529[0] := UInt<2>(2)
+ T_169529[1] := UInt<2>(3)
+ wire T_169530 : UInt<2>[1]
+ T_169530[0] := UInt<2>(3)
+ wire T_169531 : UInt<3>[3]
+ T_169531[0] := UInt<3>(0)
+ T_169531[1] := UInt<3>(1)
+ T_169531[2] := UInt<3>(2)
+ wire T_169532 : UInt<2>[2]
+ T_169532[0] := UInt<2>(0)
+ T_169532[1] := UInt<2>(1)
+ wire T_169533 : UInt<2>[3]
+ T_169533[0] := UInt<2>(1)
+ T_169533[1] := UInt<2>(2)
+ T_169533[2] := UInt<2>(3)
+ wire T_169534 : UInt<2>[2]
+ T_169534[0] := UInt<2>(2)
+ T_169534[1] := UInt<2>(3)
+ wire T_169535 : UInt<2>[1]
+ T_169535[0] := UInt<2>(3)
+ wire T_169536 : UInt<3>[3]
+ T_169536[0] := UInt<3>(0)
+ T_169536[1] := UInt<3>(1)
+ T_169536[2] := UInt<3>(2)
+ wire T_169537 : UInt<2>[2]
+ T_169537[0] := UInt<2>(0)
+ T_169537[1] := UInt<2>(1)
+ wire T_169538 : UInt<2>[3]
+ T_169538[0] := UInt<2>(1)
+ T_169538[1] := UInt<2>(2)
+ T_169538[2] := UInt<2>(3)
+ wire T_169539 : UInt<2>[2]
+ T_169539[0] := UInt<2>(2)
+ T_169539[1] := UInt<2>(3)
+ wire T_169540 : UInt<2>[1]
+ T_169540[0] := UInt<2>(3)
+ wire T_169541 : UInt<3>[3]
+ T_169541[0] := UInt<3>(0)
+ T_169541[1] := UInt<3>(1)
+ T_169541[2] := UInt<3>(2)
+ wire T_169542 : UInt<2>[2]
+ T_169542[0] := UInt<2>(0)
+ T_169542[1] := UInt<2>(1)
+ wire T_169543 : UInt<2>[3]
+ T_169543[0] := UInt<2>(1)
+ T_169543[1] := UInt<2>(2)
+ T_169543[2] := UInt<2>(3)
+ wire T_169544 : UInt<2>[2]
+ T_169544[0] := UInt<2>(2)
+ T_169544[1] := UInt<2>(3)
+ wire T_169545 : UInt<2>[1]
+ T_169545[0] := UInt<2>(3)
+ wire T_169546 : UInt<3>[3]
+ T_169546[0] := UInt<3>(0)
+ T_169546[1] := UInt<3>(1)
+ T_169546[2] := UInt<3>(2)
+ wire T_169547 : UInt<2>[2]
+ T_169547[0] := UInt<2>(0)
+ T_169547[1] := UInt<2>(1)
+ wire T_169548 : UInt<2>[3]
+ T_169548[0] := UInt<2>(1)
+ T_169548[1] := UInt<2>(2)
+ T_169548[2] := UInt<2>(3)
+ wire T_169549 : UInt<2>[2]
+ T_169549[0] := UInt<2>(2)
+ T_169549[1] := UInt<2>(3)
+ wire T_169550 : UInt<2>[1]
+ T_169550[0] := UInt<2>(3)
+ wire T_169551 : UInt<3>[3]
+ T_169551[0] := UInt<3>(0)
+ T_169551[1] := UInt<3>(1)
+ T_169551[2] := UInt<3>(2)
+ wire T_169552 : UInt<2>[2]
+ T_169552[0] := UInt<2>(0)
+ T_169552[1] := UInt<2>(1)
+ wire T_169553 : UInt<2>[3]
+ T_169553[0] := UInt<2>(1)
+ T_169553[1] := UInt<2>(2)
+ T_169553[2] := UInt<2>(3)
+ wire T_169554 : UInt<2>[2]
+ T_169554[0] := UInt<2>(2)
+ T_169554[1] := UInt<2>(3)
+ wire T_169555 : UInt<2>[1]
+ T_169555[0] := UInt<2>(3)
+ wire T_169556 : UInt<3>[3]
+ T_169556[0] := UInt<3>(0)
+ T_169556[1] := UInt<3>(1)
+ T_169556[2] := UInt<3>(2)
+ wire T_169557 : UInt<2>[2]
+ T_169557[0] := UInt<2>(0)
+ T_169557[1] := UInt<2>(1)
+ wire T_169558 : UInt<2>[3]
+ T_169558[0] := UInt<2>(1)
+ T_169558[1] := UInt<2>(2)
+ T_169558[2] := UInt<2>(3)
+ wire T_169559 : UInt<2>[2]
+ T_169559[0] := UInt<2>(2)
+ T_169559[1] := UInt<2>(3)
+ wire T_169560 : UInt<2>[1]
+ T_169560[0] := UInt<2>(3)
+ wire T_169561 : UInt<3>[3]
+ T_169561[0] := UInt<3>(0)
+ T_169561[1] := UInt<3>(1)
+ T_169561[2] := UInt<3>(2)
+ wire T_169562 : UInt<2>[2]
+ T_169562[0] := UInt<2>(0)
+ T_169562[1] := UInt<2>(1)
+ wire T_169563 : UInt<2>[3]
+ T_169563[0] := UInt<2>(1)
+ T_169563[1] := UInt<2>(2)
+ T_169563[2] := UInt<2>(3)
+ wire T_169564 : UInt<2>[2]
+ T_169564[0] := UInt<2>(2)
+ T_169564[1] := UInt<2>(3)
+ wire T_169565 : UInt<2>[1]
+ T_169565[0] := UInt<2>(3)
+ wire T_169566 : UInt<3>[3]
+ T_169566[0] := UInt<3>(0)
+ T_169566[1] := UInt<3>(1)
+ T_169566[2] := UInt<3>(2)
+ wire T_169567 : UInt<2>[2]
+ T_169567[0] := UInt<2>(0)
+ T_169567[1] := UInt<2>(1)
+ wire T_169568 : UInt<2>[3]
+ T_169568[0] := UInt<2>(1)
+ T_169568[1] := UInt<2>(2)
+ T_169568[2] := UInt<2>(3)
+ wire T_169569 : UInt<2>[2]
+ T_169569[0] := UInt<2>(2)
+ T_169569[1] := UInt<2>(3)
+ wire T_169570 : UInt<2>[1]
+ T_169570[0] := UInt<2>(3)
+ wire T_169571 : UInt<3>[3]
+ T_169571[0] := UInt<3>(0)
+ T_169571[1] := UInt<3>(1)
+ T_169571[2] := UInt<3>(2)
+ wire T_169572 : UInt<2>[2]
+ T_169572[0] := UInt<2>(0)
+ T_169572[1] := UInt<2>(1)
+ wire T_169573 : UInt<2>[3]
+ T_169573[0] := UInt<2>(1)
+ T_169573[1] := UInt<2>(2)
+ T_169573[2] := UInt<2>(3)
+ wire T_169574 : UInt<2>[2]
+ T_169574[0] := UInt<2>(2)
+ T_169574[1] := UInt<2>(3)
+ wire T_169575 : UInt<2>[1]
+ T_169575[0] := UInt<2>(3)
+ wire T_169576 : UInt<3>[3]
+ T_169576[0] := UInt<3>(0)
+ T_169576[1] := UInt<3>(1)
+ T_169576[2] := UInt<3>(2)
+ wire T_169577 : UInt<2>[2]
+ T_169577[0] := UInt<2>(0)
+ T_169577[1] := UInt<2>(1)
+ wire T_169578 : UInt<2>[3]
+ T_169578[0] := UInt<2>(1)
+ T_169578[1] := UInt<2>(2)
+ T_169578[2] := UInt<2>(3)
+ wire T_169579 : UInt<2>[2]
+ T_169579[0] := UInt<2>(2)
+ T_169579[1] := UInt<2>(3)
+ wire T_169580 : UInt<2>[1]
+ T_169580[0] := UInt<2>(3)
+ wire T_169581 : UInt<3>[3]
+ T_169581[0] := UInt<3>(0)
+ T_169581[1] := UInt<3>(1)
+ T_169581[2] := UInt<3>(2)
+ wire T_169582 : UInt<2>[2]
+ T_169582[0] := UInt<2>(0)
+ T_169582[1] := UInt<2>(1)
+ wire T_169583 : UInt<2>[3]
+ T_169583[0] := UInt<2>(1)
+ T_169583[1] := UInt<2>(2)
+ T_169583[2] := UInt<2>(3)
+ wire T_169584 : UInt<2>[2]
+ T_169584[0] := UInt<2>(2)
+ T_169584[1] := UInt<2>(3)
+ wire T_169585 : UInt<2>[1]
+ T_169585[0] := UInt<2>(3)
+ wire T_169586 : UInt<3>[3]
+ T_169586[0] := UInt<3>(0)
+ T_169586[1] := UInt<3>(1)
+ T_169586[2] := UInt<3>(2)
+ wire T_169587 : UInt<2>[2]
+ T_169587[0] := UInt<2>(0)
+ T_169587[1] := UInt<2>(1)
+ wire T_169588 : UInt<2>[3]
+ T_169588[0] := UInt<2>(1)
+ T_169588[1] := UInt<2>(2)
+ T_169588[2] := UInt<2>(3)
+ wire T_169589 : UInt<2>[2]
+ T_169589[0] := UInt<2>(2)
+ T_169589[1] := UInt<2>(3)
+ wire T_169590 : UInt<2>[1]
+ T_169590[0] := UInt<2>(3)
+ wire T_169591 : UInt<3>[3]
+ T_169591[0] := UInt<3>(0)
+ T_169591[1] := UInt<3>(1)
+ T_169591[2] := UInt<3>(2)
+ wire T_169592 : UInt<2>[2]
+ T_169592[0] := UInt<2>(0)
+ T_169592[1] := UInt<2>(1)
+ wire T_169593 : UInt<2>[3]
+ T_169593[0] := UInt<2>(1)
+ T_169593[1] := UInt<2>(2)
+ T_169593[2] := UInt<2>(3)
+ wire T_169594 : UInt<2>[2]
+ T_169594[0] := UInt<2>(2)
+ T_169594[1] := UInt<2>(3)
+ wire T_169595 : UInt<2>[1]
+ T_169595[0] := UInt<2>(3)
+ wire T_169596 : UInt<3>[3]
+ T_169596[0] := UInt<3>(0)
+ T_169596[1] := UInt<3>(1)
+ T_169596[2] := UInt<3>(2)
+ wire T_169597 : UInt<2>[2]
+ T_169597[0] := UInt<2>(0)
+ T_169597[1] := UInt<2>(1)
+ wire T_169598 : UInt<2>[3]
+ T_169598[0] := UInt<2>(1)
+ T_169598[1] := UInt<2>(2)
+ T_169598[2] := UInt<2>(3)
+ wire T_169599 : UInt<2>[2]
+ T_169599[0] := UInt<2>(2)
+ T_169599[1] := UInt<2>(3)
+ wire T_169600 : UInt<2>[1]
+ T_169600[0] := UInt<2>(3)
+ wire T_169601 : UInt<3>[3]
+ T_169601[0] := UInt<3>(0)
+ T_169601[1] := UInt<3>(1)
+ T_169601[2] := UInt<3>(2)
+ wire T_169602 : UInt<2>[2]
+ T_169602[0] := UInt<2>(0)
+ T_169602[1] := UInt<2>(1)
+ wire T_169603 : UInt<2>[3]
+ T_169603[0] := UInt<2>(1)
+ T_169603[1] := UInt<2>(2)
+ T_169603[2] := UInt<2>(3)
+ wire T_169604 : UInt<2>[2]
+ T_169604[0] := UInt<2>(2)
+ T_169604[1] := UInt<2>(3)
+ wire T_169605 : UInt<2>[1]
+ T_169605[0] := UInt<2>(3)
+ wire T_169606 : UInt<3>[3]
+ T_169606[0] := UInt<3>(0)
+ T_169606[1] := UInt<3>(1)
+ T_169606[2] := UInt<3>(2)
+ wire T_169607 : UInt<2>[2]
+ T_169607[0] := UInt<2>(0)
+ T_169607[1] := UInt<2>(1)
+ wire T_169608 : UInt<2>[3]
+ T_169608[0] := UInt<2>(1)
+ T_169608[1] := UInt<2>(2)
+ T_169608[2] := UInt<2>(3)
+ wire T_169609 : UInt<2>[2]
+ T_169609[0] := UInt<2>(2)
+ T_169609[1] := UInt<2>(3)
+ wire T_169610 : UInt<2>[1]
+ T_169610[0] := UInt<2>(3)
+ wire T_169611 : UInt<3>[3]
+ T_169611[0] := UInt<3>(0)
+ T_169611[1] := UInt<3>(1)
+ T_169611[2] := UInt<3>(2)
+ wire T_169612 : UInt<2>[2]
+ T_169612[0] := UInt<2>(0)
+ T_169612[1] := UInt<2>(1)
+ wire T_169613 : UInt<2>[3]
+ T_169613[0] := UInt<2>(1)
+ T_169613[1] := UInt<2>(2)
+ T_169613[2] := UInt<2>(3)
+ wire T_169614 : UInt<2>[2]
+ T_169614[0] := UInt<2>(2)
+ T_169614[1] := UInt<2>(3)
+ wire T_169615 : UInt<2>[1]
+ T_169615[0] := UInt<2>(3)
+ wire T_169616 : UInt<3>[3]
+ T_169616[0] := UInt<3>(0)
+ T_169616[1] := UInt<3>(1)
+ T_169616[2] := UInt<3>(2)
+ wire T_169617 : UInt<2>[2]
+ T_169617[0] := UInt<2>(0)
+ T_169617[1] := UInt<2>(1)
+ wire T_169618 : UInt<2>[3]
+ T_169618[0] := UInt<2>(1)
+ T_169618[1] := UInt<2>(2)
+ T_169618[2] := UInt<2>(3)
+ wire T_169619 : UInt<2>[2]
+ T_169619[0] := UInt<2>(2)
+ T_169619[1] := UInt<2>(3)
+ wire T_169620 : UInt<2>[1]
+ T_169620[0] := UInt<2>(3)
+ wire T_169621 : UInt<3>[3]
+ T_169621[0] := UInt<3>(0)
+ T_169621[1] := UInt<3>(1)
+ T_169621[2] := UInt<3>(2)
+ wire T_169622 : UInt<2>[2]
+ T_169622[0] := UInt<2>(0)
+ T_169622[1] := UInt<2>(1)
+ wire T_169623 : UInt<2>[3]
+ T_169623[0] := UInt<2>(1)
+ T_169623[1] := UInt<2>(2)
+ T_169623[2] := UInt<2>(3)
+ wire T_169624 : UInt<2>[2]
+ T_169624[0] := UInt<2>(2)
+ T_169624[1] := UInt<2>(3)
+ wire T_169625 : UInt<2>[1]
+ T_169625[0] := UInt<2>(3)
+ wire T_169626 : UInt<3>[3]
+ T_169626[0] := UInt<3>(0)
+ T_169626[1] := UInt<3>(1)
+ T_169626[2] := UInt<3>(2)
+ wire T_169627 : UInt<2>[2]
+ T_169627[0] := UInt<2>(0)
+ T_169627[1] := UInt<2>(1)
+ wire T_169628 : UInt<2>[3]
+ T_169628[0] := UInt<2>(1)
+ T_169628[1] := UInt<2>(2)
+ T_169628[2] := UInt<2>(3)
+ wire T_169629 : UInt<2>[2]
+ T_169629[0] := UInt<2>(2)
+ T_169629[1] := UInt<2>(3)
+ wire T_169630 : UInt<2>[1]
+ T_169630[0] := UInt<2>(3)
+ wire T_169631 : UInt<3>[3]
+ T_169631[0] := UInt<3>(0)
+ T_169631[1] := UInt<3>(1)
+ T_169631[2] := UInt<3>(2)
+ wire T_169632 : UInt<2>[2]
+ T_169632[0] := UInt<2>(0)
+ T_169632[1] := UInt<2>(1)
+ wire T_169633 : UInt<2>[3]
+ T_169633[0] := UInt<2>(1)
+ T_169633[1] := UInt<2>(2)
+ T_169633[2] := UInt<2>(3)
+ wire T_169634 : UInt<2>[2]
+ T_169634[0] := UInt<2>(2)
+ T_169634[1] := UInt<2>(3)
+ wire T_169635 : UInt<2>[1]
+ T_169635[0] := UInt<2>(3)
+ wire T_169636 : UInt<3>[3]
+ T_169636[0] := UInt<3>(0)
+ T_169636[1] := UInt<3>(1)
+ T_169636[2] := UInt<3>(2)
+ wire T_169637 : UInt<2>[2]
+ T_169637[0] := UInt<2>(0)
+ T_169637[1] := UInt<2>(1)
+ wire T_169638 : UInt<2>[3]
+ T_169638[0] := UInt<2>(1)
+ T_169638[1] := UInt<2>(2)
+ T_169638[2] := UInt<2>(3)
+ wire T_169639 : UInt<2>[2]
+ T_169639[0] := UInt<2>(2)
+ T_169639[1] := UInt<2>(3)
+ wire T_169640 : UInt<2>[1]
+ T_169640[0] := UInt<2>(3)
+ wire T_169641 : UInt<3>[3]
+ T_169641[0] := UInt<3>(0)
+ T_169641[1] := UInt<3>(1)
+ T_169641[2] := UInt<3>(2)
+ wire T_169642 : UInt<2>[2]
+ T_169642[0] := UInt<2>(0)
+ T_169642[1] := UInt<2>(1)
+ wire T_169643 : UInt<2>[3]
+ T_169643[0] := UInt<2>(1)
+ T_169643[1] := UInt<2>(2)
+ T_169643[2] := UInt<2>(3)
+ wire T_169644 : UInt<2>[2]
+ T_169644[0] := UInt<2>(2)
+ T_169644[1] := UInt<2>(3)
+ wire T_169645 : UInt<2>[1]
+ T_169645[0] := UInt<2>(3)
+ wire T_169646 : UInt<3>[3]
+ T_169646[0] := UInt<3>(0)
+ T_169646[1] := UInt<3>(1)
+ T_169646[2] := UInt<3>(2)
+ wire T_169647 : UInt<2>[2]
+ T_169647[0] := UInt<2>(0)
+ T_169647[1] := UInt<2>(1)
+ wire T_169648 : UInt<2>[3]
+ T_169648[0] := UInt<2>(1)
+ T_169648[1] := UInt<2>(2)
+ T_169648[2] := UInt<2>(3)
+ wire T_169649 : UInt<2>[2]
+ T_169649[0] := UInt<2>(2)
+ T_169649[1] := UInt<2>(3)
+ wire T_169650 : UInt<2>[1]
+ T_169650[0] := UInt<2>(3)
+ wire T_169651 : UInt<3>[3]
+ T_169651[0] := UInt<3>(0)
+ T_169651[1] := UInt<3>(1)
+ T_169651[2] := UInt<3>(2)
+ wire T_169652 : UInt<2>[2]
+ T_169652[0] := UInt<2>(0)
+ T_169652[1] := UInt<2>(1)
+ wire T_169653 : UInt<2>[3]
+ T_169653[0] := UInt<2>(1)
+ T_169653[1] := UInt<2>(2)
+ T_169653[2] := UInt<2>(3)
+ wire T_169654 : UInt<2>[2]
+ T_169654[0] := UInt<2>(2)
+ T_169654[1] := UInt<2>(3)
+ wire T_169655 : UInt<2>[1]
+ T_169655[0] := UInt<2>(3)
+ wire T_169656 : UInt<3>[3]
+ T_169656[0] := UInt<3>(0)
+ T_169656[1] := UInt<3>(1)
+ T_169656[2] := UInt<3>(2)
+ wire T_169657 : UInt<2>[2]
+ T_169657[0] := UInt<2>(0)
+ T_169657[1] := UInt<2>(1)
+ wire T_169658 : UInt<2>[3]
+ T_169658[0] := UInt<2>(1)
+ T_169658[1] := UInt<2>(2)
+ T_169658[2] := UInt<2>(3)
+ wire T_169659 : UInt<2>[2]
+ T_169659[0] := UInt<2>(2)
+ T_169659[1] := UInt<2>(3)
+ wire T_169660 : UInt<2>[1]
+ T_169660[0] := UInt<2>(3)
+ wire T_169661 : UInt<3>[3]
+ T_169661[0] := UInt<3>(0)
+ T_169661[1] := UInt<3>(1)
+ T_169661[2] := UInt<3>(2)
+ wire T_169662 : UInt<2>[2]
+ T_169662[0] := UInt<2>(0)
+ T_169662[1] := UInt<2>(1)
+ wire T_169663 : UInt<2>[3]
+ T_169663[0] := UInt<2>(1)
+ T_169663[1] := UInt<2>(2)
+ T_169663[2] := UInt<2>(3)
+ wire T_169664 : UInt<2>[2]
+ T_169664[0] := UInt<2>(2)
+ T_169664[1] := UInt<2>(3)
+ wire T_169665 : UInt<2>[1]
+ T_169665[0] := UInt<2>(3)
+ wire T_169666 : UInt<3>[3]
+ T_169666[0] := UInt<3>(0)
+ T_169666[1] := UInt<3>(1)
+ T_169666[2] := UInt<3>(2)
+ wire T_169667 : UInt<2>[2]
+ T_169667[0] := UInt<2>(0)
+ T_169667[1] := UInt<2>(1)
+ wire T_169668 : UInt<2>[3]
+ T_169668[0] := UInt<2>(1)
+ T_169668[1] := UInt<2>(2)
+ T_169668[2] := UInt<2>(3)
+ wire T_169669 : UInt<2>[2]
+ T_169669[0] := UInt<2>(2)
+ T_169669[1] := UInt<2>(3)
+ wire T_169670 : UInt<2>[1]
+ T_169670[0] := UInt<2>(3)
+ wire T_169671 : UInt<3>[3]
+ T_169671[0] := UInt<3>(0)
+ T_169671[1] := UInt<3>(1)
+ T_169671[2] := UInt<3>(2)
+ wire T_169672 : UInt<2>[2]
+ T_169672[0] := UInt<2>(0)
+ T_169672[1] := UInt<2>(1)
+ wire T_169673 : UInt<2>[3]
+ T_169673[0] := UInt<2>(1)
+ T_169673[1] := UInt<2>(2)
+ T_169673[2] := UInt<2>(3)
+ wire T_169674 : UInt<2>[2]
+ T_169674[0] := UInt<2>(2)
+ T_169674[1] := UInt<2>(3)
+ wire T_169675 : UInt<2>[1]
+ T_169675[0] := UInt<2>(3)
+ wire T_169676 : UInt<3>[3]
+ T_169676[0] := UInt<3>(0)
+ T_169676[1] := UInt<3>(1)
+ T_169676[2] := UInt<3>(2)
+ wire T_169677 : UInt<2>[2]
+ T_169677[0] := UInt<2>(0)
+ T_169677[1] := UInt<2>(1)
+ wire T_169678 : UInt<2>[3]
+ T_169678[0] := UInt<2>(1)
+ T_169678[1] := UInt<2>(2)
+ T_169678[2] := UInt<2>(3)
+ wire T_169679 : UInt<2>[2]
+ T_169679[0] := UInt<2>(2)
+ T_169679[1] := UInt<2>(3)
+ wire T_169680 : UInt<2>[1]
+ T_169680[0] := UInt<2>(3)
+ wire T_169681 : UInt<3>[3]
+ T_169681[0] := UInt<3>(0)
+ T_169681[1] := UInt<3>(1)
+ T_169681[2] := UInt<3>(2)
+ wire T_169682 : UInt<2>[2]
+ T_169682[0] := UInt<2>(0)
+ T_169682[1] := UInt<2>(1)
+ wire T_169683 : UInt<2>[3]
+ T_169683[0] := UInt<2>(1)
+ T_169683[1] := UInt<2>(2)
+ T_169683[2] := UInt<2>(3)
+ wire T_169684 : UInt<2>[2]
+ T_169684[0] := UInt<2>(2)
+ T_169684[1] := UInt<2>(3)
+ wire T_169685 : UInt<2>[1]
+ T_169685[0] := UInt<2>(3)
+ wire T_169686 : UInt<3>[3]
+ T_169686[0] := UInt<3>(0)
+ T_169686[1] := UInt<3>(1)
+ T_169686[2] := UInt<3>(2)
+ wire T_169687 : UInt<2>[2]
+ T_169687[0] := UInt<2>(0)
+ T_169687[1] := UInt<2>(1)
+ wire T_169688 : UInt<2>[3]
+ T_169688[0] := UInt<2>(1)
+ T_169688[1] := UInt<2>(2)
+ T_169688[2] := UInt<2>(3)
+ wire T_169689 : UInt<2>[2]
+ T_169689[0] := UInt<2>(2)
+ T_169689[1] := UInt<2>(3)
+ wire T_169690 : UInt<2>[1]
+ T_169690[0] := UInt<2>(3)
+ wire T_169691 : UInt<3>[3]
+ T_169691[0] := UInt<3>(0)
+ T_169691[1] := UInt<3>(1)
+ T_169691[2] := UInt<3>(2)
+ wire T_169692 : UInt<2>[2]
+ T_169692[0] := UInt<2>(0)
+ T_169692[1] := UInt<2>(1)
+ wire T_169693 : UInt<2>[3]
+ T_169693[0] := UInt<2>(1)
+ T_169693[1] := UInt<2>(2)
+ T_169693[2] := UInt<2>(3)
+ wire T_169694 : UInt<2>[2]
+ T_169694[0] := UInt<2>(2)
+ T_169694[1] := UInt<2>(3)
+ wire T_169695 : UInt<2>[1]
+ T_169695[0] := UInt<2>(3)
+ wire T_169696 : UInt<3>[3]
+ T_169696[0] := UInt<3>(0)
+ T_169696[1] := UInt<3>(1)
+ T_169696[2] := UInt<3>(2)
+ wire T_169697 : UInt<2>[2]
+ T_169697[0] := UInt<2>(0)
+ T_169697[1] := UInt<2>(1)
+ wire T_169698 : UInt<2>[3]
+ T_169698[0] := UInt<2>(1)
+ T_169698[1] := UInt<2>(2)
+ T_169698[2] := UInt<2>(3)
+ wire T_169699 : UInt<2>[2]
+ T_169699[0] := UInt<2>(2)
+ T_169699[1] := UInt<2>(3)
+ wire T_169700 : UInt<2>[1]
+ T_169700[0] := UInt<2>(3)
+ wire T_169701 : UInt<3>[3]
+ T_169701[0] := UInt<3>(0)
+ T_169701[1] := UInt<3>(1)
+ T_169701[2] := UInt<3>(2)
+ wire T_169702 : UInt<2>[2]
+ T_169702[0] := UInt<2>(0)
+ T_169702[1] := UInt<2>(1)
+ wire T_169703 : UInt<2>[3]
+ T_169703[0] := UInt<2>(1)
+ T_169703[1] := UInt<2>(2)
+ T_169703[2] := UInt<2>(3)
+ wire T_169704 : UInt<2>[2]
+ T_169704[0] := UInt<2>(2)
+ T_169704[1] := UInt<2>(3)
+ wire T_169705 : UInt<2>[1]
+ T_169705[0] := UInt<2>(3)
+ wire T_169706 : UInt<3>[3]
+ T_169706[0] := UInt<3>(0)
+ T_169706[1] := UInt<3>(1)
+ T_169706[2] := UInt<3>(2)
+ wire T_169707 : UInt<2>[2]
+ T_169707[0] := UInt<2>(0)
+ T_169707[1] := UInt<2>(1)
+ wire T_169708 : UInt<2>[3]
+ T_169708[0] := UInt<2>(1)
+ T_169708[1] := UInt<2>(2)
+ T_169708[2] := UInt<2>(3)
+ wire T_169709 : UInt<2>[2]
+ T_169709[0] := UInt<2>(2)
+ T_169709[1] := UInt<2>(3)
+ wire T_169710 : UInt<2>[1]
+ T_169710[0] := UInt<2>(3)
+ wire T_169711 : UInt<3>[3]
+ T_169711[0] := UInt<3>(0)
+ T_169711[1] := UInt<3>(1)
+ T_169711[2] := UInt<3>(2)
+ wire T_169712 : UInt<2>[2]
+ T_169712[0] := UInt<2>(0)
+ T_169712[1] := UInt<2>(1)
+ wire T_169713 : UInt<2>[3]
+ T_169713[0] := UInt<2>(1)
+ T_169713[1] := UInt<2>(2)
+ T_169713[2] := UInt<2>(3)
+ wire T_169714 : UInt<2>[2]
+ T_169714[0] := UInt<2>(2)
+ T_169714[1] := UInt<2>(3)
+ wire T_169715 : UInt<2>[1]
+ T_169715[0] := UInt<2>(3)
+ wire T_169716 : UInt<3>[3]
+ T_169716[0] := UInt<3>(0)
+ T_169716[1] := UInt<3>(1)
+ T_169716[2] := UInt<3>(2)
+ wire T_169717 : UInt<2>[2]
+ T_169717[0] := UInt<2>(0)
+ T_169717[1] := UInt<2>(1)
+ wire T_169718 : UInt<2>[3]
+ T_169718[0] := UInt<2>(1)
+ T_169718[1] := UInt<2>(2)
+ T_169718[2] := UInt<2>(3)
+ wire T_169719 : UInt<2>[2]
+ T_169719[0] := UInt<2>(2)
+ T_169719[1] := UInt<2>(3)
+ wire T_169720 : UInt<2>[1]
+ T_169720[0] := UInt<2>(3)
+ wire clients : {acquire : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_block : UInt<26>, client_xact_id : UInt<1>, addr_beat : UInt<2>, data : UInt<128>, is_builtin_type : UInt<1>, a_type : UInt<3>, union : UInt<17>}}, flip grant : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_beat : UInt<2>, data : UInt<128>, client_xact_id : UInt<1>, manager_xact_id : UInt<2>, is_builtin_type : UInt<1>, g_type : UInt<4>}}, flip probe : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_block : UInt<26>, p_type : UInt<2>}}, release : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_block : UInt<26>, client_xact_id : UInt<1>, addr_beat : UInt<2>, data : UInt<128>, r_type : UInt<3>, voluntary : UInt<1>}}}[3]
+ clients[0] := T_169721
+ clients[1] := T_169722
+ clients[2] := T_169723
+ wire T_169724 : UInt<3>[3]
+ T_169724[0] := UInt<3>(0)
+ T_169724[1] := UInt<3>(1)
+ T_169724[2] := UInt<3>(2)
+ wire T_169725 : UInt<2>[2]
+ T_169725[0] := UInt<2>(0)
+ T_169725[1] := UInt<2>(1)
+ wire T_169726 : UInt<2>[3]
+ T_169726[0] := UInt<2>(1)
+ T_169726[1] := UInt<2>(2)
+ T_169726[2] := UInt<2>(3)
+ wire T_169727 : UInt<2>[2]
+ T_169727[0] := UInt<2>(2)
+ T_169727[1] := UInt<2>(3)
+ wire T_169728 : UInt<2>[1]
+ T_169728[0] := UInt<2>(3)
+ wire T_169729 : UInt<3>[3]
+ T_169729[0] := UInt<3>(0)
+ T_169729[1] := UInt<3>(1)
+ T_169729[2] := UInt<3>(2)
+ wire T_169730 : UInt<2>[2]
+ T_169730[0] := UInt<2>(0)
+ T_169730[1] := UInt<2>(1)
+ wire T_169731 : UInt<2>[3]
+ T_169731[0] := UInt<2>(1)
+ T_169731[1] := UInt<2>(2)
+ T_169731[2] := UInt<2>(3)
+ wire T_169732 : UInt<2>[2]
+ T_169732[0] := UInt<2>(2)
+ T_169732[1] := UInt<2>(3)
+ wire T_169733 : UInt<2>[1]
+ T_169733[0] := UInt<2>(3)
+ wire T_169734 : UInt<3>[3]
+ T_169734[0] := UInt<3>(0)
+ T_169734[1] := UInt<3>(1)
+ T_169734[2] := UInt<3>(2)
+ wire T_169735 : UInt<2>[2]
+ T_169735[0] := UInt<2>(0)
+ T_169735[1] := UInt<2>(1)
+ wire T_169736 : UInt<2>[3]
+ T_169736[0] := UInt<2>(1)
+ T_169736[1] := UInt<2>(2)
+ T_169736[2] := UInt<2>(3)
+ wire T_169737 : UInt<2>[2]
+ T_169737[0] := UInt<2>(2)
+ T_169737[1] := UInt<2>(3)
+ wire T_169738 : UInt<2>[1]
+ T_169738[0] := UInt<2>(3)
+ wire T_169739 : UInt<3>[3]
+ T_169739[0] := UInt<3>(0)
+ T_169739[1] := UInt<3>(1)
+ T_169739[2] := UInt<3>(2)
+ wire T_169740 : UInt<2>[2]
+ T_169740[0] := UInt<2>(0)
+ T_169740[1] := UInt<2>(1)
+ wire T_169741 : UInt<2>[3]
+ T_169741[0] := UInt<2>(1)
+ T_169741[1] := UInt<2>(2)
+ T_169741[2] := UInt<2>(3)
+ wire T_169742 : UInt<2>[2]
+ T_169742[0] := UInt<2>(2)
+ T_169742[1] := UInt<2>(3)
+ wire T_169743 : UInt<2>[1]
+ T_169743[0] := UInt<2>(3)
+ wire T_169744 : UInt<3>[3]
+ T_169744[0] := UInt<3>(0)
+ T_169744[1] := UInt<3>(1)
+ T_169744[2] := UInt<3>(2)
+ wire T_169745 : UInt<2>[2]
+ T_169745[0] := UInt<2>(0)
+ T_169745[1] := UInt<2>(1)
+ wire T_169746 : UInt<2>[3]
+ T_169746[0] := UInt<2>(1)
+ T_169746[1] := UInt<2>(2)
+ T_169746[2] := UInt<2>(3)
+ wire T_169747 : UInt<2>[2]
+ T_169747[0] := UInt<2>(2)
+ T_169747[1] := UInt<2>(3)
+ wire T_169748 : UInt<2>[1]
+ T_169748[0] := UInt<2>(3)
+ wire T_169749 : UInt<3>[3]
+ T_169749[0] := UInt<3>(0)
+ T_169749[1] := UInt<3>(1)
+ T_169749[2] := UInt<3>(2)
+ wire T_169750 : UInt<2>[2]
+ T_169750[0] := UInt<2>(0)
+ T_169750[1] := UInt<2>(1)
+ wire T_169751 : UInt<2>[3]
+ T_169751[0] := UInt<2>(1)
+ T_169751[1] := UInt<2>(2)
+ T_169751[2] := UInt<2>(3)
+ wire T_169752 : UInt<2>[2]
+ T_169752[0] := UInt<2>(2)
+ T_169752[1] := UInt<2>(3)
+ wire T_169753 : UInt<2>[1]
+ T_169753[0] := UInt<2>(3)
+ wire T_169754 : UInt<3>[3]
+ T_169754[0] := UInt<3>(0)
+ T_169754[1] := UInt<3>(1)
+ T_169754[2] := UInt<3>(2)
+ wire T_169755 : UInt<2>[2]
+ T_169755[0] := UInt<2>(0)
+ T_169755[1] := UInt<2>(1)
+ wire T_169756 : UInt<2>[3]
+ T_169756[0] := UInt<2>(1)
+ T_169756[1] := UInt<2>(2)
+ T_169756[2] := UInt<2>(3)
+ wire T_169757 : UInt<2>[2]
+ T_169757[0] := UInt<2>(2)
+ T_169757[1] := UInt<2>(3)
+ wire T_169758 : UInt<2>[1]
+ T_169758[0] := UInt<2>(3)
+ wire T_169759 : UInt<3>[3]
+ T_169759[0] := UInt<3>(0)
+ T_169759[1] := UInt<3>(1)
+ T_169759[2] := UInt<3>(2)
+ wire T_169760 : UInt<2>[2]
+ T_169760[0] := UInt<2>(0)
+ T_169760[1] := UInt<2>(1)
+ wire T_169761 : UInt<2>[3]
+ T_169761[0] := UInt<2>(1)
+ T_169761[1] := UInt<2>(2)
+ T_169761[2] := UInt<2>(3)
+ wire T_169762 : UInt<2>[2]
+ T_169762[0] := UInt<2>(2)
+ T_169762[1] := UInt<2>(3)
+ wire T_169763 : UInt<2>[1]
+ T_169763[0] := UInt<2>(3)
+ wire T_169764 : UInt<3>[3]
+ T_169764[0] := UInt<3>(0)
+ T_169764[1] := UInt<3>(1)
+ T_169764[2] := UInt<3>(2)
+ wire T_169765 : UInt<2>[2]
+ T_169765[0] := UInt<2>(0)
+ T_169765[1] := UInt<2>(1)
+ wire T_169766 : UInt<2>[3]
+ T_169766[0] := UInt<2>(1)
+ T_169766[1] := UInt<2>(2)
+ T_169766[2] := UInt<2>(3)
+ wire T_169767 : UInt<2>[2]
+ T_169767[0] := UInt<2>(2)
+ T_169767[1] := UInt<2>(3)
+ wire T_169768 : UInt<2>[1]
+ T_169768[0] := UInt<2>(3)
+ wire T_169769 : UInt<3>[3]
+ T_169769[0] := UInt<3>(0)
+ T_169769[1] := UInt<3>(1)
+ T_169769[2] := UInt<3>(2)
+ wire T_169770 : UInt<2>[2]
+ T_169770[0] := UInt<2>(0)
+ T_169770[1] := UInt<2>(1)
+ wire T_169771 : UInt<2>[3]
+ T_169771[0] := UInt<2>(1)
+ T_169771[1] := UInt<2>(2)
+ T_169771[2] := UInt<2>(3)
+ wire T_169772 : UInt<2>[2]
+ T_169772[0] := UInt<2>(2)
+ T_169772[1] := UInt<2>(3)
+ wire T_169773 : UInt<2>[1]
+ T_169773[0] := UInt<2>(3)
+ wire T_169774 : UInt<3>[3]
+ T_169774[0] := UInt<3>(0)
+ T_169774[1] := UInt<3>(1)
+ T_169774[2] := UInt<3>(2)
+ wire T_169775 : UInt<2>[2]
+ T_169775[0] := UInt<2>(0)
+ T_169775[1] := UInt<2>(1)
+ wire T_169776 : UInt<2>[3]
+ T_169776[0] := UInt<2>(1)
+ T_169776[1] := UInt<2>(2)
+ T_169776[2] := UInt<2>(3)
+ wire T_169777 : UInt<2>[2]
+ T_169777[0] := UInt<2>(2)
+ T_169777[1] := UInt<2>(3)
+ wire T_169778 : UInt<2>[1]
+ T_169778[0] := UInt<2>(3)
+ wire T_169779 : UInt<3>[3]
+ T_169779[0] := UInt<3>(0)
+ T_169779[1] := UInt<3>(1)
+ T_169779[2] := UInt<3>(2)
+ wire T_169780 : UInt<2>[2]
+ T_169780[0] := UInt<2>(0)
+ T_169780[1] := UInt<2>(1)
+ wire T_169781 : UInt<2>[3]
+ T_169781[0] := UInt<2>(1)
+ T_169781[1] := UInt<2>(2)
+ T_169781[2] := UInt<2>(3)
+ wire T_169782 : UInt<2>[2]
+ T_169782[0] := UInt<2>(2)
+ T_169782[1] := UInt<2>(3)
+ wire T_169783 : UInt<2>[1]
+ T_169783[0] := UInt<2>(3)
+ wire T_169784 : UInt<3>[3]
+ T_169784[0] := UInt<3>(0)
+ T_169784[1] := UInt<3>(1)
+ T_169784[2] := UInt<3>(2)
+ wire T_169785 : UInt<2>[2]
+ T_169785[0] := UInt<2>(0)
+ T_169785[1] := UInt<2>(1)
+ wire T_169786 : UInt<2>[3]
+ T_169786[0] := UInt<2>(1)
+ T_169786[1] := UInt<2>(2)
+ T_169786[2] := UInt<2>(3)
+ wire T_169787 : UInt<2>[2]
+ T_169787[0] := UInt<2>(2)
+ T_169787[1] := UInt<2>(3)
+ wire T_169788 : UInt<2>[1]
+ T_169788[0] := UInt<2>(3)
+ wire T_169789 : UInt<3>[3]
+ T_169789[0] := UInt<3>(0)
+ T_169789[1] := UInt<3>(1)
+ T_169789[2] := UInt<3>(2)
+ wire T_169790 : UInt<2>[2]
+ T_169790[0] := UInt<2>(0)
+ T_169790[1] := UInt<2>(1)
+ wire T_169791 : UInt<2>[3]
+ T_169791[0] := UInt<2>(1)
+ T_169791[1] := UInt<2>(2)
+ T_169791[2] := UInt<2>(3)
+ wire T_169792 : UInt<2>[2]
+ T_169792[0] := UInt<2>(2)
+ T_169792[1] := UInt<2>(3)
+ wire T_169793 : UInt<2>[1]
+ T_169793[0] := UInt<2>(3)
+ wire T_169794 : UInt<3>[3]
+ T_169794[0] := UInt<3>(0)
+ T_169794[1] := UInt<3>(1)
+ T_169794[2] := UInt<3>(2)
+ wire T_169795 : UInt<2>[2]
+ T_169795[0] := UInt<2>(0)
+ T_169795[1] := UInt<2>(1)
+ wire T_169796 : UInt<2>[3]
+ T_169796[0] := UInt<2>(1)
+ T_169796[1] := UInt<2>(2)
+ T_169796[2] := UInt<2>(3)
+ wire T_169797 : UInt<2>[2]
+ T_169797[0] := UInt<2>(2)
+ T_169797[1] := UInt<2>(3)
+ wire T_169798 : UInt<2>[1]
+ T_169798[0] := UInt<2>(3)
+ wire T_169799 : UInt<3>[3]
+ T_169799[0] := UInt<3>(0)
+ T_169799[1] := UInt<3>(1)
+ T_169799[2] := UInt<3>(2)
+ wire T_169800 : UInt<2>[2]
+ T_169800[0] := UInt<2>(0)
+ T_169800[1] := UInt<2>(1)
+ wire T_169801 : UInt<2>[3]
+ T_169801[0] := UInt<2>(1)
+ T_169801[1] := UInt<2>(2)
+ T_169801[2] := UInt<2>(3)
+ wire T_169802 : UInt<2>[2]
+ T_169802[0] := UInt<2>(2)
+ T_169802[1] := UInt<2>(3)
+ wire T_169803 : UInt<2>[1]
+ T_169803[0] := UInt<2>(3)
+ wire T_169804 : UInt<3>[3]
+ T_169804[0] := UInt<3>(0)
+ T_169804[1] := UInt<3>(1)
+ T_169804[2] := UInt<3>(2)
+ wire T_169805 : UInt<2>[2]
+ T_169805[0] := UInt<2>(0)
+ T_169805[1] := UInt<2>(1)
+ wire T_169806 : UInt<2>[3]
+ T_169806[0] := UInt<2>(1)
+ T_169806[1] := UInt<2>(2)
+ T_169806[2] := UInt<2>(3)
+ wire T_169807 : UInt<2>[2]
+ T_169807[0] := UInt<2>(2)
+ T_169807[1] := UInt<2>(3)
+ wire T_169808 : UInt<2>[1]
+ T_169808[0] := UInt<2>(3)
+ wire T_169809 : UInt<3>[3]
+ T_169809[0] := UInt<3>(0)
+ T_169809[1] := UInt<3>(1)
+ T_169809[2] := UInt<3>(2)
+ wire T_169810 : UInt<2>[2]
+ T_169810[0] := UInt<2>(0)
+ T_169810[1] := UInt<2>(1)
+ wire T_169811 : UInt<2>[3]
+ T_169811[0] := UInt<2>(1)
+ T_169811[1] := UInt<2>(2)
+ T_169811[2] := UInt<2>(3)
+ wire T_169812 : UInt<2>[2]
+ T_169812[0] := UInt<2>(2)
+ T_169812[1] := UInt<2>(3)
+ wire T_169813 : UInt<2>[1]
+ T_169813[0] := UInt<2>(3)
+ wire T_169814 : UInt<3>[3]
+ T_169814[0] := UInt<3>(0)
+ T_169814[1] := UInt<3>(1)
+ T_169814[2] := UInt<3>(2)
+ wire T_169815 : UInt<2>[2]
+ T_169815[0] := UInt<2>(0)
+ T_169815[1] := UInt<2>(1)
+ wire T_169816 : UInt<2>[3]
+ T_169816[0] := UInt<2>(1)
+ T_169816[1] := UInt<2>(2)
+ T_169816[2] := UInt<2>(3)
+ wire T_169817 : UInt<2>[2]
+ T_169817[0] := UInt<2>(2)
+ T_169817[1] := UInt<2>(3)
+ wire T_169818 : UInt<2>[1]
+ T_169818[0] := UInt<2>(3)
+ wire T_169819 : UInt<3>[3]
+ T_169819[0] := UInt<3>(0)
+ T_169819[1] := UInt<3>(1)
+ T_169819[2] := UInt<3>(2)
+ wire T_169820 : UInt<2>[2]
+ T_169820[0] := UInt<2>(0)
+ T_169820[1] := UInt<2>(1)
+ wire T_169821 : UInt<2>[3]
+ T_169821[0] := UInt<2>(1)
+ T_169821[1] := UInt<2>(2)
+ T_169821[2] := UInt<2>(3)
+ wire T_169822 : UInt<2>[2]
+ T_169822[0] := UInt<2>(2)
+ T_169822[1] := UInt<2>(3)
+ wire T_169823 : UInt<2>[1]
+ T_169823[0] := UInt<2>(3)
+ wire T_169824 : UInt<3>[3]
+ T_169824[0] := UInt<3>(0)
+ T_169824[1] := UInt<3>(1)
+ T_169824[2] := UInt<3>(2)
+ wire T_169825 : UInt<2>[2]
+ T_169825[0] := UInt<2>(0)
+ T_169825[1] := UInt<2>(1)
+ wire T_169826 : UInt<2>[3]
+ T_169826[0] := UInt<2>(1)
+ T_169826[1] := UInt<2>(2)
+ T_169826[2] := UInt<2>(3)
+ wire T_169827 : UInt<2>[2]
+ T_169827[0] := UInt<2>(2)
+ T_169827[1] := UInt<2>(3)
+ wire T_169828 : UInt<2>[1]
+ T_169828[0] := UInt<2>(3)
+ wire T_169829 : UInt<3>[3]
+ T_169829[0] := UInt<3>(0)
+ T_169829[1] := UInt<3>(1)
+ T_169829[2] := UInt<3>(2)
+ wire T_169830 : UInt<2>[2]
+ T_169830[0] := UInt<2>(0)
+ T_169830[1] := UInt<2>(1)
+ wire T_169831 : UInt<2>[3]
+ T_169831[0] := UInt<2>(1)
+ T_169831[1] := UInt<2>(2)
+ T_169831[2] := UInt<2>(3)
+ wire T_169832 : UInt<2>[2]
+ T_169832[0] := UInt<2>(2)
+ T_169832[1] := UInt<2>(3)
+ wire T_169833 : UInt<2>[1]
+ T_169833[0] := UInt<2>(3)
+ wire managers : {flip acquire : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_block : UInt<26>, client_xact_id : UInt<1>, addr_beat : UInt<2>, data : UInt<128>, is_builtin_type : UInt<1>, a_type : UInt<3>, union : UInt<17>, client_id : UInt<2>}}, grant : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_beat : UInt<2>, data : UInt<128>, client_xact_id : UInt<1>, manager_xact_id : UInt<2>, is_builtin_type : UInt<1>, g_type : UInt<4>, client_id : UInt<2>}}, flip finish : {flip ready : UInt<1>, valid : UInt<1>, bits : {manager_xact_id : UInt<2>}}, probe : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_block : UInt<26>, p_type : UInt<2>, client_id : UInt<2>}}, flip release : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_block : UInt<26>, client_xact_id : UInt<1>, addr_beat : UInt<2>, data : UInt<128>, r_type : UInt<3>, voluntary : UInt<1>, client_id : UInt<2>}}}[1]
+ managers[0] := T_169834
+ inst T_169835 of ClientTileLinkNetworkPort
+ inst T_169836 of TileLinkEnqueuer
+ T_169835.client <> clients[0]
+ T_169836.client <> T_169835.network
+ inst T_169837 of ClientTileLinkNetworkPort_26210
+ inst T_169838 of TileLinkEnqueuer_31615
+ T_169837.client <> clients[1]
+ T_169838.client <> T_169837.network
+ inst T_169839 of ClientTileLinkNetworkPort_35756
+ inst T_169840 of TileLinkEnqueuer_41161
+ T_169839.client <> clients[2]
+ T_169840.client <> T_169839.network
+ inst T_169841 of ManagerTileLinkNetworkPort
+ inst T_169842 of TileLinkEnqueuer_46546
+ managers[0] <> T_169841.manager
+ T_169841.network <> T_169842.manager
+ inst T_169843 of LockingRRArbiter
+ T_169843.in[0].valid := T_169836.manager.acquire.valid
+ T_169843.in[0].bits := T_169836.manager.acquire.bits
+ T_169843.in[0].bits.payload.client_xact_id := T_169836.manager.acquire.bits.payload.client_xact_id
+ T_169836.manager.acquire.ready := T_169843.in[0].ready
+ T_169843.in[1].valid := T_169838.manager.acquire.valid
+ T_169843.in[1].bits := T_169838.manager.acquire.bits
+ T_169843.in[1].bits.payload.client_xact_id := T_169838.manager.acquire.bits.payload.client_xact_id
+ T_169838.manager.acquire.ready := T_169843.in[1].ready
+ T_169843.in[2].valid := T_169840.manager.acquire.valid
+ T_169843.in[2].bits := T_169840.manager.acquire.bits
+ T_169843.in[2].bits.payload.client_xact_id := T_169840.manager.acquire.bits.payload.client_xact_id
+ T_169840.manager.acquire.ready := T_169843.in[2].ready
+ T_169843.out <> T_169842.client.acquire
+ inst T_169844 of LockingRRArbiter_47800
+ T_169844.in[0].valid := T_169836.manager.release.valid
+ T_169844.in[0].bits := T_169836.manager.release.bits
+ T_169844.in[0].bits.payload.client_xact_id := T_169836.manager.release.bits.payload.client_xact_id
+ T_169836.manager.release.ready := T_169844.in[0].ready
+ T_169844.in[1].valid := T_169838.manager.release.valid
+ T_169844.in[1].bits := T_169838.manager.release.bits
+ T_169844.in[1].bits.payload.client_xact_id := T_169838.manager.release.bits.payload.client_xact_id
+ T_169838.manager.release.ready := T_169844.in[1].ready
+ T_169844.in[2].valid := T_169840.manager.release.valid
+ T_169844.in[2].bits := T_169840.manager.release.bits
+ T_169844.in[2].bits.payload.client_xact_id := T_169840.manager.release.bits.payload.client_xact_id
+ T_169840.manager.release.ready := T_169844.in[2].ready
+ T_169844.out <> T_169842.client.release
+ inst T_169845 of RRArbiter
+ T_169845.in[0] <> T_169836.manager.finish
+ T_169845.in[1] <> T_169838.manager.finish
+ T_169845.in[2] <> T_169840.manager.finish
+ T_169845.out <> T_169842.client.finish
+ T_169842.client.probe.ready := UInt<1>(0)
+ T_169836.manager.probe.valid := UInt<1>(0)
+
+ node T_169846 = eq(T_169842.client.probe.bits.header.dst, UInt<1>(0))
+ when T_169846 :
+ T_169836.manager.probe.valid := T_169842.client.probe.valid
+ T_169842.client.probe.ready := T_169836.manager.probe.ready
+ T_169836.manager.probe.bits := T_169842.client.probe.bits
+ T_169838.manager.probe.valid := UInt<1>(0)
+
+ node T_169847 = eq(T_169842.client.probe.bits.header.dst, UInt<1>(1))
+ when T_169847 :
+ T_169838.manager.probe.valid := T_169842.client.probe.valid
+ T_169842.client.probe.ready := T_169838.manager.probe.ready
+ T_169838.manager.probe.bits := T_169842.client.probe.bits
+ T_169840.manager.probe.valid := UInt<1>(0)
+
+ node T_169848 = eq(T_169842.client.probe.bits.header.dst, UInt<2>(2))
+ when T_169848 :
+ T_169840.manager.probe.valid := T_169842.client.probe.valid
+ T_169842.client.probe.ready := T_169840.manager.probe.ready
+ T_169840.manager.probe.bits := T_169842.client.probe.bits
+ T_169842.client.grant.ready := UInt<1>(0)
+ T_169836.manager.grant.valid := UInt<1>(0)
+
+ node T_169849 = eq(T_169842.client.grant.bits.header.dst, UInt<1>(0))
+ when T_169849 :
+ T_169836.manager.grant.valid := T_169842.client.grant.valid
+ T_169842.client.grant.ready := T_169836.manager.grant.ready
+ T_169836.manager.grant.bits := T_169842.client.grant.bits
+ T_169838.manager.grant.valid := UInt<1>(0)
+
+ node T_169850 = eq(T_169842.client.grant.bits.header.dst, UInt<1>(1))
+ when T_169850 :
+ T_169838.manager.grant.valid := T_169842.client.grant.valid
+ T_169842.client.grant.ready := T_169838.manager.grant.ready
+ T_169838.manager.grant.bits := T_169842.client.grant.bits
+ T_169840.manager.grant.valid := UInt<1>(0)
+
+ node T_169851 = eq(T_169842.client.grant.bits.header.dst, UInt<2>(2))
+ when T_169851 :
+ T_169840.manager.grant.valid := T_169842.client.grant.valid
+ T_169842.client.grant.ready := T_169840.manager.grant.ready
+ T_169840.manager.grant.bits := T_169842.client.grant.bits
+ module MetadataArray :
+ input read : {flip ready : UInt<1>, valid : UInt<1>, bits : {idx : UInt<12>}}
+ input write : {flip ready : UInt<1>, valid : UInt<1>, bits : {idx : UInt<12>, way_en : UInt<8>, data : {tag : UInt<14>, coh : {inner : {sharers : UInt<1>, makeGrant$default$3 : UInt<1>, makeGrant$default$4 : UInt<1>}, outer : {state : UInt<2>, makeRelease$default$2 : UInt<1>, makeRelease$default$3 : UInt<1>, makeVoluntaryRelease$default$4 : UInt<1>, makeVoluntaryRelease$default$5 : UInt<1>, makeVoluntaryWriteback$default$3 : UInt<1>, makeVoluntaryWriteback$default$4 : UInt<1>}}}}}
+ output resp : {tag : UInt<14>, coh : {inner : {sharers : UInt<1>, makeGrant$default$3 : UInt<1>, makeGrant$default$4 : UInt<1>}, outer : {state : UInt<2>, makeRelease$default$2 : UInt<1>, makeRelease$default$3 : UInt<1>, makeVoluntaryRelease$default$4 : UInt<1>, makeVoluntaryRelease$default$5 : UInt<1>, makeVoluntaryWriteback$default$3 : UInt<1>, makeVoluntaryWriteback$default$4 : UInt<1>}}}[8]
+
+ wire T_169852 : UInt<3>[3]
+ T_169852[0] := UInt<3>(0)
+ T_169852[1] := UInt<3>(1)
+ T_169852[2] := UInt<3>(2)
+ wire T_169853 : UInt<2>[2]
+ T_169853[0] := UInt<2>(0)
+ T_169853[1] := UInt<2>(1)
+ wire T_169854 : UInt<2>[3]
+ T_169854[0] := UInt<2>(1)
+ T_169854[1] := UInt<2>(2)
+ T_169854[2] := UInt<2>(3)
+ wire T_169855 : UInt<2>[2]
+ T_169855[0] := UInt<2>(2)
+ T_169855[1] := UInt<2>(3)
+ wire T_169856 : UInt<2>[1]
+ T_169856[0] := UInt<2>(3)
+ wire T_169857 : UInt<3>[3]
+ T_169857[0] := UInt<3>(0)
+ T_169857[1] := UInt<3>(1)
+ T_169857[2] := UInt<3>(2)
+ wire T_169858 : UInt<2>[2]
+ T_169858[0] := UInt<2>(0)
+ T_169858[1] := UInt<2>(1)
+ wire T_169859 : UInt<2>[3]
+ T_169859[0] := UInt<2>(1)
+ T_169859[1] := UInt<2>(2)
+ T_169859[2] := UInt<2>(3)
+ wire T_169860 : UInt<2>[2]
+ T_169860[0] := UInt<2>(2)
+ T_169860[1] := UInt<2>(3)
+ wire T_169861 : UInt<2>[1]
+ T_169861[0] := UInt<2>(3)
+ wire T_169862 : UInt<3>[3]
+ T_169862[0] := UInt<3>(0)
+ T_169862[1] := UInt<3>(1)
+ T_169862[2] := UInt<3>(2)
+ wire T_169863 : UInt<2>[2]
+ T_169863[0] := UInt<2>(0)
+ T_169863[1] := UInt<2>(1)
+ wire T_169864 : UInt<2>[3]
+ T_169864[0] := UInt<2>(1)
+ T_169864[1] := UInt<2>(2)
+ T_169864[2] := UInt<2>(3)
+ wire T_169865 : UInt<2>[2]
+ T_169865[0] := UInt<2>(2)
+ T_169865[1] := UInt<2>(3)
+ wire T_169866 : UInt<2>[1]
+ T_169866[0] := UInt<2>(3)
+ wire T_169867 : {sharers : UInt<1>, makeGrant$default$3 : UInt<1>, makeGrant$default$4 : UInt<1>}
+ T_169867.sharers := UInt<1>(0)
+ wire T_169868 : UInt<3>[3]
+ T_169868[0] := UInt<3>(0)
+ T_169868[1] := UInt<3>(1)
+ T_169868[2] := UInt<3>(2)
+ wire T_169869 : UInt<2>[2]
+ T_169869[0] := UInt<2>(0)
+ T_169869[1] := UInt<2>(1)
+ wire T_169870 : UInt<2>[3]
+ T_169870[0] := UInt<2>(1)
+ T_169870[1] := UInt<2>(2)
+ T_169870[2] := UInt<2>(3)
+ wire T_169871 : UInt<2>[2]
+ T_169871[0] := UInt<2>(2)
+ T_169871[1] := UInt<2>(3)
+ wire T_169872 : UInt<2>[1]
+ T_169872[0] := UInt<2>(3)
+ wire T_169873 : UInt<3>[3]
+ T_169873[0] := UInt<3>(0)
+ T_169873[1] := UInt<3>(1)
+ T_169873[2] := UInt<3>(2)
+ wire T_169874 : UInt<2>[2]
+ T_169874[0] := UInt<2>(0)
+ T_169874[1] := UInt<2>(1)
+ wire T_169875 : UInt<2>[3]
+ T_169875[0] := UInt<2>(1)
+ T_169875[1] := UInt<2>(2)
+ T_169875[2] := UInt<2>(3)
+ wire T_169876 : UInt<2>[2]
+ T_169876[0] := UInt<2>(2)
+ T_169876[1] := UInt<2>(3)
+ wire T_169877 : UInt<2>[1]
+ T_169877[0] := UInt<2>(3)
+ wire T_169878 : UInt<3>[3]
+ T_169878[0] := UInt<3>(0)
+ T_169878[1] := UInt<3>(1)
+ T_169878[2] := UInt<3>(2)
+ wire T_169879 : UInt<2>[2]
+ T_169879[0] := UInt<2>(0)
+ T_169879[1] := UInt<2>(1)
+ wire T_169880 : UInt<2>[3]
+ T_169880[0] := UInt<2>(1)
+ T_169880[1] := UInt<2>(2)
+ T_169880[2] := UInt<2>(3)
+ wire T_169881 : UInt<2>[2]
+ T_169881[0] := UInt<2>(2)
+ T_169881[1] := UInt<2>(3)
+ wire T_169882 : UInt<2>[1]
+ T_169882[0] := UInt<2>(3)
+ wire T_169883 : {state : UInt<2>, makeRelease$default$2 : UInt<1>, makeRelease$default$3 : UInt<1>, makeVoluntaryRelease$default$4 : UInt<1>, makeVoluntaryRelease$default$5 : UInt<1>, makeVoluntaryWriteback$default$3 : UInt<1>, makeVoluntaryWriteback$default$4 : UInt<1>}
+ T_169883.state := UInt<2>(0)
+ wire T_169884 : UInt<3>[3]
+ T_169884[0] := UInt<3>(0)
+ T_169884[1] := UInt<3>(1)
+ T_169884[2] := UInt<3>(2)
+ wire T_169885 : UInt<2>[2]
+ T_169885[0] := UInt<2>(0)
+ T_169885[1] := UInt<2>(1)
+ wire T_169886 : UInt<2>[3]
+ T_169886[0] := UInt<2>(1)
+ T_169886[1] := UInt<2>(2)
+ T_169886[2] := UInt<2>(3)
+ wire T_169887 : UInt<2>[2]
+ T_169887[0] := UInt<2>(2)
+ T_169887[1] := UInt<2>(3)
+ wire T_169888 : UInt<2>[1]
+ T_169888[0] := UInt<2>(3)
+ wire T_169889 : UInt<3>[3]
+ T_169889[0] := UInt<3>(0)
+ T_169889[1] := UInt<3>(1)
+ T_169889[2] := UInt<3>(2)
+ wire T_169890 : UInt<2>[2]
+ T_169890[0] := UInt<2>(0)
+ T_169890[1] := UInt<2>(1)
+ wire T_169891 : UInt<2>[3]
+ T_169891[0] := UInt<2>(1)
+ T_169891[1] := UInt<2>(2)
+ T_169891[2] := UInt<2>(3)
+ wire T_169892 : UInt<2>[2]
+ T_169892[0] := UInt<2>(2)
+ T_169892[1] := UInt<2>(3)
+ wire T_169893 : UInt<2>[1]
+ T_169893[0] := UInt<2>(3)
+ wire T_169894 : UInt<3>[3]
+ T_169894[0] := UInt<3>(0)
+ T_169894[1] := UInt<3>(1)
+ T_169894[2] := UInt<3>(2)
+ wire T_169895 : UInt<0>[1]
+ T_169895[0] := UInt<0>(0)
+ wire T_169896 : UInt<2>[2]
+ T_169896[0] := UInt<2>(1)
+ T_169896[1] := UInt<2>(2)
+ wire T_169897 : UInt<2>[2]
+ T_169897[0] := UInt<2>(1)
+ T_169897[1] := UInt<2>(2)
+ wire T_169898 : UInt<2>[1]
+ T_169898[0] := UInt<2>(2)
+ wire T_169899 : UInt<3>[3]
+ T_169899[0] := UInt<3>(0)
+ T_169899[1] := UInt<3>(1)
+ T_169899[2] := UInt<3>(2)
+ wire T_169900 : UInt<2>[2]
+ T_169900[0] := UInt<2>(0)
+ T_169900[1] := UInt<2>(1)
+ wire T_169901 : UInt<2>[3]
+ T_169901[0] := UInt<2>(1)
+ T_169901[1] := UInt<2>(2)
+ T_169901[2] := UInt<2>(3)
+ wire T_169902 : UInt<2>[2]
+ T_169902[0] := UInt<2>(2)
+ T_169902[1] := UInt<2>(3)
+ wire T_169903 : UInt<2>[1]
+ T_169903[0] := UInt<2>(3)
+ wire T_169904 : UInt<3>[3]
+ T_169904[0] := UInt<3>(0)
+ T_169904[1] := UInt<3>(1)
+ T_169904[2] := UInt<3>(2)
+ wire T_169905 : UInt<2>[2]
+ T_169905[0] := UInt<2>(0)
+ T_169905[1] := UInt<2>(1)
+ wire T_169906 : UInt<2>[3]
+ T_169906[0] := UInt<2>(1)
+ T_169906[1] := UInt<2>(2)
+ T_169906[2] := UInt<2>(3)
+ wire T_169907 : UInt<2>[2]
+ T_169907[0] := UInt<2>(2)
+ T_169907[1] := UInt<2>(3)
+ wire T_169908 : UInt<2>[1]
+ T_169908[0] := UInt<2>(3)
+ wire T_169909 : UInt<3>[3]
+ T_169909[0] := UInt<3>(0)
+ T_169909[1] := UInt<3>(1)
+ T_169909[2] := UInt<3>(2)
+ wire T_169910 : UInt<0>[1]
+ T_169910[0] := UInt<0>(0)
+ wire T_169911 : UInt<2>[2]
+ T_169911[0] := UInt<2>(1)
+ T_169911[1] := UInt<2>(2)
+ wire T_169912 : UInt<2>[2]
+ T_169912[0] := UInt<2>(1)
+ T_169912[1] := UInt<2>(2)
+ wire T_169913 : UInt<2>[1]
+ T_169913[0] := UInt<2>(2)
+ wire T_169914 : {inner : {sharers : UInt<1>, makeGrant$default$3 : UInt<1>, makeGrant$default$4 : UInt<1>}, outer : {state : UInt<2>, makeRelease$default$2 : UInt<1>, makeRelease$default$3 : UInt<1>, makeVoluntaryRelease$default$4 : UInt<1>, makeVoluntaryRelease$default$5 : UInt<1>, makeVoluntaryWriteback$default$3 : UInt<1>, makeVoluntaryWriteback$default$4 : UInt<1>}}
+ T_169914.inner := T_169867
+ T_169914.outer := T_169883
+ wire T_169915 : UInt<3>[3]
+ T_169915[0] := UInt<3>(0)
+ T_169915[1] := UInt<3>(1)
+ T_169915[2] := UInt<3>(2)
+ wire T_169916 : UInt<2>[2]
+ T_169916[0] := UInt<2>(0)
+ T_169916[1] := UInt<2>(1)
+ wire T_169917 : UInt<2>[3]
+ T_169917[0] := UInt<2>(1)
+ T_169917[1] := UInt<2>(2)
+ T_169917[2] := UInt<2>(3)
+ wire T_169918 : UInt<2>[2]
+ T_169918[0] := UInt<2>(2)
+ T_169918[1] := UInt<2>(3)
+ wire T_169919 : UInt<2>[1]
+ T_169919[0] := UInt<2>(3)
+ wire T_169920 : UInt<3>[3]
+ T_169920[0] := UInt<3>(0)
+ T_169920[1] := UInt<3>(1)
+ T_169920[2] := UInt<3>(2)
+ wire T_169921 : UInt<2>[2]
+ T_169921[0] := UInt<2>(0)
+ T_169921[1] := UInt<2>(1)
+ wire T_169922 : UInt<2>[3]
+ T_169922[0] := UInt<2>(1)
+ T_169922[1] := UInt<2>(2)
+ T_169922[2] := UInt<2>(3)
+ wire T_169923 : UInt<2>[2]
+ T_169923[0] := UInt<2>(2)
+ T_169923[1] := UInt<2>(3)
+ wire T_169924 : UInt<2>[1]
+ T_169924[0] := UInt<2>(3)
+ wire T_169925 : UInt<3>[3]
+ T_169925[0] := UInt<3>(0)
+ T_169925[1] := UInt<3>(1)
+ T_169925[2] := UInt<3>(2)
+ wire T_169926 : UInt<0>[1]
+ T_169926[0] := UInt<0>(0)
+ wire T_169927 : UInt<2>[2]
+ T_169927[0] := UInt<2>(1)
+ T_169927[1] := UInt<2>(2)
+ wire T_169928 : UInt<2>[2]
+ T_169928[0] := UInt<2>(1)
+ T_169928[1] := UInt<2>(2)
+ wire T_169929 : UInt<2>[1]
+ T_169929[0] := UInt<2>(2)
+ wire T_169930 : UInt<3>[3]
+ T_169930[0] := UInt<3>(0)
+ T_169930[1] := UInt<3>(1)
+ T_169930[2] := UInt<3>(2)
+ wire T_169931 : UInt<2>[2]
+ T_169931[0] := UInt<2>(0)
+ T_169931[1] := UInt<2>(1)
+ wire T_169932 : UInt<2>[3]
+ T_169932[0] := UInt<2>(1)
+ T_169932[1] := UInt<2>(2)
+ T_169932[2] := UInt<2>(3)
+ wire T_169933 : UInt<2>[2]
+ T_169933[0] := UInt<2>(2)
+ T_169933[1] := UInt<2>(3)
+ wire T_169934 : UInt<2>[1]
+ T_169934[0] := UInt<2>(3)
+ wire T_169935 : UInt<3>[3]
+ T_169935[0] := UInt<3>(0)
+ T_169935[1] := UInt<3>(1)
+ T_169935[2] := UInt<3>(2)
+ wire T_169936 : UInt<2>[2]
+ T_169936[0] := UInt<2>(0)
+ T_169936[1] := UInt<2>(1)
+ wire T_169937 : UInt<2>[3]
+ T_169937[0] := UInt<2>(1)
+ T_169937[1] := UInt<2>(2)
+ T_169937[2] := UInt<2>(3)
+ wire T_169938 : UInt<2>[2]
+ T_169938[0] := UInt<2>(2)
+ T_169938[1] := UInt<2>(3)
+ wire T_169939 : UInt<2>[1]
+ T_169939[0] := UInt<2>(3)
+ wire T_169940 : UInt<3>[3]
+ T_169940[0] := UInt<3>(0)
+ T_169940[1] := UInt<3>(1)
+ T_169940[2] := UInt<3>(2)
+ wire T_169941 : UInt<0>[1]
+ T_169941[0] := UInt<0>(0)
+ wire T_169942 : UInt<2>[2]
+ T_169942[0] := UInt<2>(1)
+ T_169942[1] := UInt<2>(2)
+ wire T_169943 : UInt<2>[2]
+ T_169943[0] := UInt<2>(1)
+ T_169943[1] := UInt<2>(2)
+ wire T_169944 : UInt<2>[1]
+ T_169944[0] := UInt<2>(2)
+ wire rstVal : {tag : UInt<14>, coh : {inner : {sharers : UInt<1>, makeGrant$default$3 : UInt<1>, makeGrant$default$4 : UInt<1>}, outer : {state : UInt<2>, makeRelease$default$2 : UInt<1>, makeRelease$default$3 : UInt<1>, makeVoluntaryRelease$default$4 : UInt<1>, makeVoluntaryRelease$default$5 : UInt<1>, makeVoluntaryWriteback$default$3 : UInt<1>, makeVoluntaryWriteback$default$4 : UInt<1>}}}
+ rstVal.tag := UInt<1>(0)
+ rstVal.coh := T_169914
+ wire T_169945 : UInt<3>[3]
+ T_169945[0] := UInt<3>(0)
+ T_169945[1] := UInt<3>(1)
+ T_169945[2] := UInt<3>(2)
+ wire T_169946 : UInt<2>[2]
+ T_169946[0] := UInt<2>(0)
+ T_169946[1] := UInt<2>(1)
+ wire T_169947 : UInt<2>[3]
+ T_169947[0] := UInt<2>(1)
+ T_169947[1] := UInt<2>(2)
+ T_169947[2] := UInt<2>(3)
+ wire T_169948 : UInt<2>[2]
+ T_169948[0] := UInt<2>(2)
+ T_169948[1] := UInt<2>(3)
+ wire T_169949 : UInt<2>[1]
+ T_169949[0] := UInt<2>(3)
+ wire T_169950 : UInt<3>[3]
+ T_169950[0] := UInt<3>(0)
+ T_169950[1] := UInt<3>(1)
+ T_169950[2] := UInt<3>(2)
+ wire T_169951 : UInt<2>[2]
+ T_169951[0] := UInt<2>(0)
+ T_169951[1] := UInt<2>(1)
+ wire T_169952 : UInt<2>[3]
+ T_169952[0] := UInt<2>(1)
+ T_169952[1] := UInt<2>(2)
+ T_169952[2] := UInt<2>(3)
+ wire T_169953 : UInt<2>[2]
+ T_169953[0] := UInt<2>(2)
+ T_169953[1] := UInt<2>(3)
+ wire T_169954 : UInt<2>[1]
+ T_169954[0] := UInt<2>(3)
+ wire T_169955 : UInt<3>[3]
+ T_169955[0] := UInt<3>(0)
+ T_169955[1] := UInt<3>(1)
+ T_169955[2] := UInt<3>(2)
+ wire T_169956 : UInt<0>[1]
+ T_169956[0] := UInt<0>(0)
+ wire T_169957 : UInt<2>[2]
+ T_169957[0] := UInt<2>(1)
+ T_169957[1] := UInt<2>(2)
+ wire T_169958 : UInt<2>[2]
+ T_169958[0] := UInt<2>(1)
+ T_169958[1] := UInt<2>(2)
+ wire T_169959 : UInt<2>[1]
+ T_169959[0] := UInt<2>(2)
+ wire T_169960 : UInt<3>[3]
+ T_169960[0] := UInt<3>(0)
+ T_169960[1] := UInt<3>(1)
+ T_169960[2] := UInt<3>(2)
+ wire T_169961 : UInt<2>[2]
+ T_169961[0] := UInt<2>(0)
+ T_169961[1] := UInt<2>(1)
+ wire T_169962 : UInt<2>[3]
+ T_169962[0] := UInt<2>(1)
+ T_169962[1] := UInt<2>(2)
+ T_169962[2] := UInt<2>(3)
+ wire T_169963 : UInt<2>[2]
+ T_169963[0] := UInt<2>(2)
+ T_169963[1] := UInt<2>(3)
+ wire T_169964 : UInt<2>[1]
+ T_169964[0] := UInt<2>(3)
+ wire T_169965 : UInt<3>[3]
+ T_169965[0] := UInt<3>(0)
+ T_169965[1] := UInt<3>(1)
+ T_169965[2] := UInt<3>(2)
+ wire T_169966 : UInt<2>[2]
+ T_169966[0] := UInt<2>(0)
+ T_169966[1] := UInt<2>(1)
+ wire T_169967 : UInt<2>[3]
+ T_169967[0] := UInt<2>(1)
+ T_169967[1] := UInt<2>(2)
+ T_169967[2] := UInt<2>(3)
+ wire T_169968 : UInt<2>[2]
+ T_169968[0] := UInt<2>(2)
+ T_169968[1] := UInt<2>(3)
+ wire T_169969 : UInt<2>[1]
+ T_169969[0] := UInt<2>(3)
+ wire T_169970 : UInt<3>[3]
+ T_169970[0] := UInt<3>(0)
+ T_169970[1] := UInt<3>(1)
+ T_169970[2] := UInt<3>(2)
+ wire T_169971 : UInt<0>[1]
+ T_169971[0] := UInt<0>(0)
+ wire T_169972 : UInt<2>[2]
+ T_169972[0] := UInt<2>(1)
+ T_169972[1] := UInt<2>(2)
+ wire T_169973 : UInt<2>[2]
+ T_169973[0] := UInt<2>(1)
+ T_169973[1] := UInt<2>(2)
+ wire T_169974 : UInt<2>[1]
+ T_169974[0] := UInt<2>(2)
+ wire T_169975 : UInt<3>[3]
+ T_169975[0] := UInt<3>(0)
+ T_169975[1] := UInt<3>(1)
+ T_169975[2] := UInt<3>(2)
+ wire T_169976 : UInt<2>[2]
+ T_169976[0] := UInt<2>(0)
+ T_169976[1] := UInt<2>(1)
+ wire T_169977 : UInt<2>[3]
+ T_169977[0] := UInt<2>(1)
+ T_169977[1] := UInt<2>(2)
+ T_169977[2] := UInt<2>(3)
+ wire T_169978 : UInt<2>[2]
+ T_169978[0] := UInt<2>(2)
+ T_169978[1] := UInt<2>(3)
+ wire T_169979 : UInt<2>[1]
+ T_169979[0] := UInt<2>(3)
+ wire T_169980 : UInt<3>[3]
+ T_169980[0] := UInt<3>(0)
+ T_169980[1] := UInt<3>(1)
+ T_169980[2] := UInt<3>(2)
+ wire T_169981 : UInt<2>[2]
+ T_169981[0] := UInt<2>(0)
+ T_169981[1] := UInt<2>(1)
+ wire T_169982 : UInt<2>[3]
+ T_169982[0] := UInt<2>(1)
+ T_169982[1] := UInt<2>(2)
+ T_169982[2] := UInt<2>(3)
+ wire T_169983 : UInt<2>[2]
+ T_169983[0] := UInt<2>(2)
+ T_169983[1] := UInt<2>(3)
+ wire T_169984 : UInt<2>[1]
+ T_169984[0] := UInt<2>(3)
+ wire T_169985 : UInt<3>[3]
+ T_169985[0] := UInt<3>(0)
+ T_169985[1] := UInt<3>(1)
+ T_169985[2] := UInt<3>(2)
+ wire T_169986 : UInt<0>[1]
+ T_169986[0] := UInt<0>(0)
+ wire T_169987 : UInt<2>[2]
+ T_169987[0] := UInt<2>(1)
+ T_169987[1] := UInt<2>(2)
+ wire T_169988 : UInt<2>[2]
+ T_169988[0] := UInt<2>(1)
+ T_169988[1] := UInt<2>(2)
+ wire T_169989 : UInt<2>[1]
+ T_169989[0] := UInt<2>(2)
+ wire T_169990 : UInt<3>[3]
+ T_169990[0] := UInt<3>(0)
+ T_169990[1] := UInt<3>(1)
+ T_169990[2] := UInt<3>(2)
+ wire T_169991 : UInt<2>[2]
+ T_169991[0] := UInt<2>(0)
+ T_169991[1] := UInt<2>(1)
+ wire T_169992 : UInt<2>[3]
+ T_169992[0] := UInt<2>(1)
+ T_169992[1] := UInt<2>(2)
+ T_169992[2] := UInt<2>(3)
+ wire T_169993 : UInt<2>[2]
+ T_169993[0] := UInt<2>(2)
+ T_169993[1] := UInt<2>(3)
+ wire T_169994 : UInt<2>[1]
+ T_169994[0] := UInt<2>(3)
+ wire T_169995 : UInt<3>[3]
+ T_169995[0] := UInt<3>(0)
+ T_169995[1] := UInt<3>(1)
+ T_169995[2] := UInt<3>(2)
+ wire T_169996 : UInt<2>[2]
+ T_169996[0] := UInt<2>(0)
+ T_169996[1] := UInt<2>(1)
+ wire T_169997 : UInt<2>[3]
+ T_169997[0] := UInt<2>(1)
+ T_169997[1] := UInt<2>(2)
+ T_169997[2] := UInt<2>(3)
+ wire T_169998 : UInt<2>[2]
+ T_169998[0] := UInt<2>(2)
+ T_169998[1] := UInt<2>(3)
+ wire T_169999 : UInt<2>[1]
+ T_169999[0] := UInt<2>(3)
+ wire T_170000 : UInt<3>[3]
+ T_170000[0] := UInt<3>(0)
+ T_170000[1] := UInt<3>(1)
+ T_170000[2] := UInt<3>(2)
+ wire T_170001 : UInt<0>[1]
+ T_170001[0] := UInt<0>(0)
+ wire T_170002 : UInt<2>[2]
+ T_170002[0] := UInt<2>(1)
+ T_170002[1] := UInt<2>(2)
+ wire T_170003 : UInt<2>[2]
+ T_170003[0] := UInt<2>(1)
+ T_170003[1] := UInt<2>(2)
+ wire T_170004 : UInt<2>[1]
+ T_170004[0] := UInt<2>(2)
+ wire T_170005 : UInt<3>[3]
+ T_170005[0] := UInt<3>(0)
+ T_170005[1] := UInt<3>(1)
+ T_170005[2] := UInt<3>(2)
+ wire T_170006 : UInt<2>[2]
+ T_170006[0] := UInt<2>(0)
+ T_170006[1] := UInt<2>(1)
+ wire T_170007 : UInt<2>[3]
+ T_170007[0] := UInt<2>(1)
+ T_170007[1] := UInt<2>(2)
+ T_170007[2] := UInt<2>(3)
+ wire T_170008 : UInt<2>[2]
+ T_170008[0] := UInt<2>(2)
+ T_170008[1] := UInt<2>(3)
+ wire T_170009 : UInt<2>[1]
+ T_170009[0] := UInt<2>(3)
+ wire T_170010 : UInt<3>[3]
+ T_170010[0] := UInt<3>(0)
+ T_170010[1] := UInt<3>(1)
+ T_170010[2] := UInt<3>(2)
+ wire T_170011 : UInt<2>[2]
+ T_170011[0] := UInt<2>(0)
+ T_170011[1] := UInt<2>(1)
+ wire T_170012 : UInt<2>[3]
+ T_170012[0] := UInt<2>(1)
+ T_170012[1] := UInt<2>(2)
+ T_170012[2] := UInt<2>(3)
+ wire T_170013 : UInt<2>[2]
+ T_170013[0] := UInt<2>(2)
+ T_170013[1] := UInt<2>(3)
+ wire T_170014 : UInt<2>[1]
+ T_170014[0] := UInt<2>(3)
+ wire T_170015 : UInt<3>[3]
+ T_170015[0] := UInt<3>(0)
+ T_170015[1] := UInt<3>(1)
+ T_170015[2] := UInt<3>(2)
+ wire T_170016 : UInt<0>[1]
+ T_170016[0] := UInt<0>(0)
+ wire T_170017 : UInt<2>[2]
+ T_170017[0] := UInt<2>(1)
+ T_170017[1] := UInt<2>(2)
+ wire T_170018 : UInt<2>[2]
+ T_170018[0] := UInt<2>(1)
+ T_170018[1] := UInt<2>(2)
+ wire T_170019 : UInt<2>[1]
+ T_170019[0] := UInt<2>(2)
+ wire T_170020 : UInt<3>[3]
+ T_170020[0] := UInt<3>(0)
+ T_170020[1] := UInt<3>(1)
+ T_170020[2] := UInt<3>(2)
+ wire T_170021 : UInt<2>[2]
+ T_170021[0] := UInt<2>(0)
+ T_170021[1] := UInt<2>(1)
+ wire T_170022 : UInt<2>[3]
+ T_170022[0] := UInt<2>(1)
+ T_170022[1] := UInt<2>(2)
+ T_170022[2] := UInt<2>(3)
+ wire T_170023 : UInt<2>[2]
+ T_170023[0] := UInt<2>(2)
+ T_170023[1] := UInt<2>(3)
+ wire T_170024 : UInt<2>[1]
+ T_170024[0] := UInt<2>(3)
+ wire T_170025 : UInt<3>[3]
+ T_170025[0] := UInt<3>(0)
+ T_170025[1] := UInt<3>(1)
+ T_170025[2] := UInt<3>(2)
+ wire T_170026 : UInt<2>[2]
+ T_170026[0] := UInt<2>(0)
+ T_170026[1] := UInt<2>(1)
+ wire T_170027 : UInt<2>[3]
+ T_170027[0] := UInt<2>(1)
+ T_170027[1] := UInt<2>(2)
+ T_170027[2] := UInt<2>(3)
+ wire T_170028 : UInt<2>[2]
+ T_170028[0] := UInt<2>(2)
+ T_170028[1] := UInt<2>(3)
+ wire T_170029 : UInt<2>[1]
+ T_170029[0] := UInt<2>(3)
+ wire T_170030 : UInt<3>[3]
+ T_170030[0] := UInt<3>(0)
+ T_170030[1] := UInt<3>(1)
+ T_170030[2] := UInt<3>(2)
+ wire T_170031 : UInt<0>[1]
+ T_170031[0] := UInt<0>(0)
+ wire T_170032 : UInt<2>[2]
+ T_170032[0] := UInt<2>(1)
+ T_170032[1] := UInt<2>(2)
+ wire T_170033 : UInt<2>[2]
+ T_170033[0] := UInt<2>(1)
+ T_170033[1] := UInt<2>(2)
+ wire T_170034 : UInt<2>[1]
+ T_170034[0] := UInt<2>(2)
+ wire T_170035 : UInt<3>[3]
+ T_170035[0] := UInt<3>(0)
+ T_170035[1] := UInt<3>(1)
+ T_170035[2] := UInt<3>(2)
+ wire T_170036 : UInt<2>[2]
+ T_170036[0] := UInt<2>(0)
+ T_170036[1] := UInt<2>(1)
+ wire T_170037 : UInt<2>[3]
+ T_170037[0] := UInt<2>(1)
+ T_170037[1] := UInt<2>(2)
+ T_170037[2] := UInt<2>(3)
+ wire T_170038 : UInt<2>[2]
+ T_170038[0] := UInt<2>(2)
+ T_170038[1] := UInt<2>(3)
+ wire T_170039 : UInt<2>[1]
+ T_170039[0] := UInt<2>(3)
+ wire T_170040 : UInt<3>[3]
+ T_170040[0] := UInt<3>(0)
+ T_170040[1] := UInt<3>(1)
+ T_170040[2] := UInt<3>(2)
+ wire T_170041 : UInt<2>[2]
+ T_170041[0] := UInt<2>(0)
+ T_170041[1] := UInt<2>(1)
+ wire T_170042 : UInt<2>[3]
+ T_170042[0] := UInt<2>(1)
+ T_170042[1] := UInt<2>(2)
+ T_170042[2] := UInt<2>(3)
+ wire T_170043 : UInt<2>[2]
+ T_170043[0] := UInt<2>(2)
+ T_170043[1] := UInt<2>(3)
+ wire T_170044 : UInt<2>[1]
+ T_170044[0] := UInt<2>(3)
+ wire T_170045 : UInt<3>[3]
+ T_170045[0] := UInt<3>(0)
+ T_170045[1] := UInt<3>(1)
+ T_170045[2] := UInt<3>(2)
+ wire T_170046 : UInt<0>[1]
+ T_170046[0] := UInt<0>(0)
+ wire T_170047 : UInt<2>[2]
+ T_170047[0] := UInt<2>(1)
+ T_170047[1] := UInt<2>(2)
+ wire T_170048 : UInt<2>[2]
+ T_170048[0] := UInt<2>(1)
+ T_170048[1] := UInt<2>(2)
+ wire T_170049 : UInt<2>[1]
+ T_170049[0] := UInt<2>(2)
+ wire T_170050 : UInt<3>[3]
+ T_170050[0] := UInt<3>(0)
+ T_170050[1] := UInt<3>(1)
+ T_170050[2] := UInt<3>(2)
+ wire T_170051 : UInt<2>[2]
+ T_170051[0] := UInt<2>(0)
+ T_170051[1] := UInt<2>(1)
+ wire T_170052 : UInt<2>[3]
+ T_170052[0] := UInt<2>(1)
+ T_170052[1] := UInt<2>(2)
+ T_170052[2] := UInt<2>(3)
+ wire T_170053 : UInt<2>[2]
+ T_170053[0] := UInt<2>(2)
+ T_170053[1] := UInt<2>(3)
+ wire T_170054 : UInt<2>[1]
+ T_170054[0] := UInt<2>(3)
+ wire T_170055 : UInt<3>[3]
+ T_170055[0] := UInt<3>(0)
+ T_170055[1] := UInt<3>(1)
+ T_170055[2] := UInt<3>(2)
+ wire T_170056 : UInt<2>[2]
+ T_170056[0] := UInt<2>(0)
+ T_170056[1] := UInt<2>(1)
+ wire T_170057 : UInt<2>[3]
+ T_170057[0] := UInt<2>(1)
+ T_170057[1] := UInt<2>(2)
+ T_170057[2] := UInt<2>(3)
+ wire T_170058 : UInt<2>[2]
+ T_170058[0] := UInt<2>(2)
+ T_170058[1] := UInt<2>(3)
+ wire T_170059 : UInt<2>[1]
+ T_170059[0] := UInt<2>(3)
+ wire T_170060 : UInt<3>[3]
+ T_170060[0] := UInt<3>(0)
+ T_170060[1] := UInt<3>(1)
+ T_170060[2] := UInt<3>(2)
+ wire T_170061 : UInt<0>[1]
+ T_170061[0] := UInt<0>(0)
+ wire T_170062 : UInt<2>[2]
+ T_170062[0] := UInt<2>(1)
+ T_170062[1] := UInt<2>(2)
+ wire T_170063 : UInt<2>[2]
+ T_170063[0] := UInt<2>(1)
+ T_170063[1] := UInt<2>(2)
+ wire T_170064 : UInt<2>[1]
+ T_170064[0] := UInt<2>(2)
+ wire T_170065 : UInt<3>[3]
+ T_170065[0] := UInt<3>(0)
+ T_170065[1] := UInt<3>(1)
+ T_170065[2] := UInt<3>(2)
+ wire T_170066 : UInt<2>[2]
+ T_170066[0] := UInt<2>(0)
+ T_170066[1] := UInt<2>(1)
+ wire T_170067 : UInt<2>[3]
+ T_170067[0] := UInt<2>(1)
+ T_170067[1] := UInt<2>(2)
+ T_170067[2] := UInt<2>(3)
+ wire T_170068 : UInt<2>[2]
+ T_170068[0] := UInt<2>(2)
+ T_170068[1] := UInt<2>(3)
+ wire T_170069 : UInt<2>[1]
+ T_170069[0] := UInt<2>(3)
+ wire T_170070 : UInt<3>[3]
+ T_170070[0] := UInt<3>(0)
+ T_170070[1] := UInt<3>(1)
+ T_170070[2] := UInt<3>(2)
+ wire T_170071 : UInt<2>[2]
+ T_170071[0] := UInt<2>(0)
+ T_170071[1] := UInt<2>(1)
+ wire T_170072 : UInt<2>[3]
+ T_170072[0] := UInt<2>(1)
+ T_170072[1] := UInt<2>(2)
+ T_170072[2] := UInt<2>(3)
+ wire T_170073 : UInt<2>[2]
+ T_170073[0] := UInt<2>(2)
+ T_170073[1] := UInt<2>(3)
+ wire T_170074 : UInt<2>[1]
+ T_170074[0] := UInt<2>(3)
+ wire T_170075 : UInt<3>[3]
+ T_170075[0] := UInt<3>(0)
+ T_170075[1] := UInt<3>(1)
+ T_170075[2] := UInt<3>(2)
+ wire T_170076 : UInt<0>[1]
+ T_170076[0] := UInt<0>(0)
+ wire T_170077 : UInt<2>[2]
+ T_170077[0] := UInt<2>(1)
+ T_170077[1] := UInt<2>(2)
+ wire T_170078 : UInt<2>[2]
+ T_170078[0] := UInt<2>(1)
+ T_170078[1] := UInt<2>(2)
+ wire T_170079 : UInt<2>[1]
+ T_170079[0] := UInt<2>(2)
+ wire T_170080 : UInt<3>[3]
+ T_170080[0] := UInt<3>(0)
+ T_170080[1] := UInt<3>(1)
+ T_170080[2] := UInt<3>(2)
+ wire T_170081 : UInt<2>[2]
+ T_170081[0] := UInt<2>(0)
+ T_170081[1] := UInt<2>(1)
+ wire T_170082 : UInt<2>[3]
+ T_170082[0] := UInt<2>(1)
+ T_170082[1] := UInt<2>(2)
+ T_170082[2] := UInt<2>(3)
+ wire T_170083 : UInt<2>[2]
+ T_170083[0] := UInt<2>(2)
+ T_170083[1] := UInt<2>(3)
+ wire T_170084 : UInt<2>[1]
+ T_170084[0] := UInt<2>(3)
+ wire T_170085 : UInt<3>[3]
+ T_170085[0] := UInt<3>(0)
+ T_170085[1] := UInt<3>(1)
+ T_170085[2] := UInt<3>(2)
+ wire T_170086 : UInt<2>[2]
+ T_170086[0] := UInt<2>(0)
+ T_170086[1] := UInt<2>(1)
+ wire T_170087 : UInt<2>[3]
+ T_170087[0] := UInt<2>(1)
+ T_170087[1] := UInt<2>(2)
+ T_170087[2] := UInt<2>(3)
+ wire T_170088 : UInt<2>[2]
+ T_170088[0] := UInt<2>(2)
+ T_170088[1] := UInt<2>(3)
+ wire T_170089 : UInt<2>[1]
+ T_170089[0] := UInt<2>(3)
+ wire T_170090 : UInt<3>[3]
+ T_170090[0] := UInt<3>(0)
+ T_170090[1] := UInt<3>(1)
+ T_170090[2] := UInt<3>(2)
+ wire T_170091 : UInt<0>[1]
+ T_170091[0] := UInt<0>(0)
+ wire T_170092 : UInt<2>[2]
+ T_170092[0] := UInt<2>(1)
+ T_170092[1] := UInt<2>(2)
+ wire T_170093 : UInt<2>[2]
+ T_170093[0] := UInt<2>(1)
+ T_170093[1] := UInt<2>(2)
+ wire T_170094 : UInt<2>[1]
+ T_170094[0] := UInt<2>(2)
+ wire T_170095 : UInt<3>[3]
+ T_170095[0] := UInt<3>(0)
+ T_170095[1] := UInt<3>(1)
+ T_170095[2] := UInt<3>(2)
+ wire T_170096 : UInt<2>[2]
+ T_170096[0] := UInt<2>(0)
+ T_170096[1] := UInt<2>(1)
+ wire T_170097 : UInt<2>[3]
+ T_170097[0] := UInt<2>(1)
+ T_170097[1] := UInt<2>(2)
+ T_170097[2] := UInt<2>(3)
+ wire T_170098 : UInt<2>[2]
+ T_170098[0] := UInt<2>(2)
+ T_170098[1] := UInt<2>(3)
+ wire T_170099 : UInt<2>[1]
+ T_170099[0] := UInt<2>(3)
+ wire T_170100 : UInt<3>[3]
+ T_170100[0] := UInt<3>(0)
+ T_170100[1] := UInt<3>(1)
+ T_170100[2] := UInt<3>(2)
+ wire T_170101 : UInt<2>[2]
+ T_170101[0] := UInt<2>(0)
+ T_170101[1] := UInt<2>(1)
+ wire T_170102 : UInt<2>[3]
+ T_170102[0] := UInt<2>(1)
+ T_170102[1] := UInt<2>(2)
+ T_170102[2] := UInt<2>(3)
+ wire T_170103 : UInt<2>[2]
+ T_170103[0] := UInt<2>(2)
+ T_170103[1] := UInt<2>(3)
+ wire T_170104 : UInt<2>[1]
+ T_170104[0] := UInt<2>(3)
+ wire T_170105 : UInt<3>[3]
+ T_170105[0] := UInt<3>(0)
+ T_170105[1] := UInt<3>(1)
+ T_170105[2] := UInt<3>(2)
+ wire T_170106 : UInt<0>[1]
+ T_170106[0] := UInt<0>(0)
+ wire T_170107 : UInt<2>[2]
+ T_170107[0] := UInt<2>(1)
+ T_170107[1] := UInt<2>(2)
+ wire T_170108 : UInt<2>[2]
+ T_170108[0] := UInt<2>(1)
+ T_170108[1] := UInt<2>(2)
+ wire T_170109 : UInt<2>[1]
+ T_170109[0] := UInt<2>(2)
+ wire T_170110 : UInt<3>[3]
+ T_170110[0] := UInt<3>(0)
+ T_170110[1] := UInt<3>(1)
+ T_170110[2] := UInt<3>(2)
+ wire T_170111 : UInt<2>[2]
+ T_170111[0] := UInt<2>(0)
+ T_170111[1] := UInt<2>(1)
+ wire T_170112 : UInt<2>[3]
+ T_170112[0] := UInt<2>(1)
+ T_170112[1] := UInt<2>(2)
+ T_170112[2] := UInt<2>(3)
+ wire T_170113 : UInt<2>[2]
+ T_170113[0] := UInt<2>(2)
+ T_170113[1] := UInt<2>(3)
+ wire T_170114 : UInt<2>[1]
+ T_170114[0] := UInt<2>(3)
+ wire T_170115 : UInt<3>[3]
+ T_170115[0] := UInt<3>(0)
+ T_170115[1] := UInt<3>(1)
+ T_170115[2] := UInt<3>(2)
+ wire T_170116 : UInt<2>[2]
+ T_170116[0] := UInt<2>(0)
+ T_170116[1] := UInt<2>(1)
+ wire T_170117 : UInt<2>[3]
+ T_170117[0] := UInt<2>(1)
+ T_170117[1] := UInt<2>(2)
+ T_170117[2] := UInt<2>(3)
+ wire T_170118 : UInt<2>[2]
+ T_170118[0] := UInt<2>(2)
+ T_170118[1] := UInt<2>(3)
+ wire T_170119 : UInt<2>[1]
+ T_170119[0] := UInt<2>(3)
+ wire T_170120 : UInt<3>[3]
+ T_170120[0] := UInt<3>(0)
+ T_170120[1] := UInt<3>(1)
+ T_170120[2] := UInt<3>(2)
+ wire T_170121 : UInt<0>[1]
+ T_170121[0] := UInt<0>(0)
+ wire T_170122 : UInt<2>[2]
+ T_170122[0] := UInt<2>(1)
+ T_170122[1] := UInt<2>(2)
+ wire T_170123 : UInt<2>[2]
+ T_170123[0] := UInt<2>(1)
+ T_170123[1] := UInt<2>(2)
+ wire T_170124 : UInt<2>[1]
+ T_170124[0] := UInt<2>(2)
+ wire T_170125 : UInt<3>[3]
+ T_170125[0] := UInt<3>(0)
+ T_170125[1] := UInt<3>(1)
+ T_170125[2] := UInt<3>(2)
+ wire T_170126 : UInt<2>[2]
+ T_170126[0] := UInt<2>(0)
+ T_170126[1] := UInt<2>(1)
+ wire T_170127 : UInt<2>[3]
+ T_170127[0] := UInt<2>(1)
+ T_170127[1] := UInt<2>(2)
+ T_170127[2] := UInt<2>(3)
+ wire T_170128 : UInt<2>[2]
+ T_170128[0] := UInt<2>(2)
+ T_170128[1] := UInt<2>(3)
+ wire T_170129 : UInt<2>[1]
+ T_170129[0] := UInt<2>(3)
+ wire T_170130 : UInt<3>[3]
+ T_170130[0] := UInt<3>(0)
+ T_170130[1] := UInt<3>(1)
+ T_170130[2] := UInt<3>(2)
+ wire T_170131 : UInt<2>[2]
+ T_170131[0] := UInt<2>(0)
+ T_170131[1] := UInt<2>(1)
+ wire T_170132 : UInt<2>[3]
+ T_170132[0] := UInt<2>(1)
+ T_170132[1] := UInt<2>(2)
+ T_170132[2] := UInt<2>(3)
+ wire T_170133 : UInt<2>[2]
+ T_170133[0] := UInt<2>(2)
+ T_170133[1] := UInt<2>(3)
+ wire T_170134 : UInt<2>[1]
+ T_170134[0] := UInt<2>(3)
+ wire T_170135 : UInt<3>[3]
+ T_170135[0] := UInt<3>(0)
+ T_170135[1] := UInt<3>(1)
+ T_170135[2] := UInt<3>(2)
+ wire T_170136 : UInt<0>[1]
+ T_170136[0] := UInt<0>(0)
+ wire T_170137 : UInt<2>[2]
+ T_170137[0] := UInt<2>(1)
+ T_170137[1] := UInt<2>(2)
+ wire T_170138 : UInt<2>[2]
+ T_170138[0] := UInt<2>(1)
+ T_170138[1] := UInt<2>(2)
+ wire T_170139 : UInt<2>[1]
+ T_170139[0] := UInt<2>(2)
+ wire T_170140 : UInt<3>[3]
+ T_170140[0] := UInt<3>(0)
+ T_170140[1] := UInt<3>(1)
+ T_170140[2] := UInt<3>(2)
+ wire T_170141 : UInt<2>[2]
+ T_170141[0] := UInt<2>(0)
+ T_170141[1] := UInt<2>(1)
+ wire T_170142 : UInt<2>[3]
+ T_170142[0] := UInt<2>(1)
+ T_170142[1] := UInt<2>(2)
+ T_170142[2] := UInt<2>(3)
+ wire T_170143 : UInt<2>[2]
+ T_170143[0] := UInt<2>(2)
+ T_170143[1] := UInt<2>(3)
+ wire T_170144 : UInt<2>[1]
+ T_170144[0] := UInt<2>(3)
+ wire T_170145 : UInt<3>[3]
+ T_170145[0] := UInt<3>(0)
+ T_170145[1] := UInt<3>(1)
+ T_170145[2] := UInt<3>(2)
+ wire T_170146 : UInt<2>[2]
+ T_170146[0] := UInt<2>(0)
+ T_170146[1] := UInt<2>(1)
+ wire T_170147 : UInt<2>[3]
+ T_170147[0] := UInt<2>(1)
+ T_170147[1] := UInt<2>(2)
+ T_170147[2] := UInt<2>(3)
+ wire T_170148 : UInt<2>[2]
+ T_170148[0] := UInt<2>(2)
+ T_170148[1] := UInt<2>(3)
+ wire T_170149 : UInt<2>[1]
+ T_170149[0] := UInt<2>(3)
+ wire T_170150 : UInt<3>[3]
+ T_170150[0] := UInt<3>(0)
+ T_170150[1] := UInt<3>(1)
+ T_170150[2] := UInt<3>(2)
+ wire T_170151 : UInt<0>[1]
+ T_170151[0] := UInt<0>(0)
+ wire T_170152 : UInt<2>[2]
+ T_170152[0] := UInt<2>(1)
+ T_170152[1] := UInt<2>(2)
+ wire T_170153 : UInt<2>[2]
+ T_170153[0] := UInt<2>(1)
+ T_170153[1] := UInt<2>(2)
+ wire T_170154 : UInt<2>[1]
+ T_170154[0] := UInt<2>(2)
+ wire T_170155 : UInt<3>[3]
+ T_170155[0] := UInt<3>(0)
+ T_170155[1] := UInt<3>(1)
+ T_170155[2] := UInt<3>(2)
+ wire T_170156 : UInt<2>[2]
+ T_170156[0] := UInt<2>(0)
+ T_170156[1] := UInt<2>(1)
+ wire T_170157 : UInt<2>[3]
+ T_170157[0] := UInt<2>(1)
+ T_170157[1] := UInt<2>(2)
+ T_170157[2] := UInt<2>(3)
+ wire T_170158 : UInt<2>[2]
+ T_170158[0] := UInt<2>(2)
+ T_170158[1] := UInt<2>(3)
+ wire T_170159 : UInt<2>[1]
+ T_170159[0] := UInt<2>(3)
+ wire T_170160 : UInt<3>[3]
+ T_170160[0] := UInt<3>(0)
+ T_170160[1] := UInt<3>(1)
+ T_170160[2] := UInt<3>(2)
+ wire T_170161 : UInt<2>[2]
+ T_170161[0] := UInt<2>(0)
+ T_170161[1] := UInt<2>(1)
+ wire T_170162 : UInt<2>[3]
+ T_170162[0] := UInt<2>(1)
+ T_170162[1] := UInt<2>(2)
+ T_170162[2] := UInt<2>(3)
+ wire T_170163 : UInt<2>[2]
+ T_170163[0] := UInt<2>(2)
+ T_170163[1] := UInt<2>(3)
+ wire T_170164 : UInt<2>[1]
+ T_170164[0] := UInt<2>(3)
+ wire T_170165 : UInt<3>[3]
+ T_170165[0] := UInt<3>(0)
+ T_170165[1] := UInt<3>(1)
+ T_170165[2] := UInt<3>(2)
+ wire T_170166 : UInt<0>[1]
+ T_170166[0] := UInt<0>(0)
+ wire T_170167 : UInt<2>[2]
+ T_170167[0] := UInt<2>(1)
+ T_170167[1] := UInt<2>(2)
+ wire T_170168 : UInt<2>[2]
+ T_170168[0] := UInt<2>(1)
+ T_170168[1] := UInt<2>(2)
+ wire T_170169 : UInt<2>[1]
+ T_170169[0] := UInt<2>(2)
+ wire T_170170 : UInt<3>[3]
+ T_170170[0] := UInt<3>(0)
+ T_170170[1] := UInt<3>(1)
+ T_170170[2] := UInt<3>(2)
+ wire T_170171 : UInt<2>[2]
+ T_170171[0] := UInt<2>(0)
+ T_170171[1] := UInt<2>(1)
+ wire T_170172 : UInt<2>[3]
+ T_170172[0] := UInt<2>(1)
+ T_170172[1] := UInt<2>(2)
+ T_170172[2] := UInt<2>(3)
+ wire T_170173 : UInt<2>[2]
+ T_170173[0] := UInt<2>(2)
+ T_170173[1] := UInt<2>(3)
+ wire T_170174 : UInt<2>[1]
+ T_170174[0] := UInt<2>(3)
+ wire T_170175 : UInt<3>[3]
+ T_170175[0] := UInt<3>(0)
+ T_170175[1] := UInt<3>(1)
+ T_170175[2] := UInt<3>(2)
+ wire T_170176 : UInt<2>[2]
+ T_170176[0] := UInt<2>(0)
+ T_170176[1] := UInt<2>(1)
+ wire T_170177 : UInt<2>[3]
+ T_170177[0] := UInt<2>(1)
+ T_170177[1] := UInt<2>(2)
+ T_170177[2] := UInt<2>(3)
+ wire T_170178 : UInt<2>[2]
+ T_170178[0] := UInt<2>(2)
+ T_170178[1] := UInt<2>(3)
+ wire T_170179 : UInt<2>[1]
+ T_170179[0] := UInt<2>(3)
+ wire T_170180 : UInt<3>[3]
+ T_170180[0] := UInt<3>(0)
+ T_170180[1] := UInt<3>(1)
+ T_170180[2] := UInt<3>(2)
+ wire T_170181 : UInt<0>[1]
+ T_170181[0] := UInt<0>(0)
+ wire T_170182 : UInt<2>[2]
+ T_170182[0] := UInt<2>(1)
+ T_170182[1] := UInt<2>(2)
+ wire T_170183 : UInt<2>[2]
+ T_170183[0] := UInt<2>(1)
+ T_170183[1] := UInt<2>(2)
+ wire T_170184 : UInt<2>[1]
+ T_170184[0] := UInt<2>(2)
+ wire T_170185 : UInt<3>[3]
+ T_170185[0] := UInt<3>(0)
+ T_170185[1] := UInt<3>(1)
+ T_170185[2] := UInt<3>(2)
+ wire T_170186 : UInt<2>[2]
+ T_170186[0] := UInt<2>(0)
+ T_170186[1] := UInt<2>(1)
+ wire T_170187 : UInt<2>[3]
+ T_170187[0] := UInt<2>(1)
+ T_170187[1] := UInt<2>(2)
+ T_170187[2] := UInt<2>(3)
+ wire T_170188 : UInt<2>[2]
+ T_170188[0] := UInt<2>(2)
+ T_170188[1] := UInt<2>(3)
+ wire T_170189 : UInt<2>[1]
+ T_170189[0] := UInt<2>(3)
+ wire T_170190 : UInt<3>[3]
+ T_170190[0] := UInt<3>(0)
+ T_170190[1] := UInt<3>(1)
+ T_170190[2] := UInt<3>(2)
+ wire T_170191 : UInt<2>[2]
+ T_170191[0] := UInt<2>(0)
+ T_170191[1] := UInt<2>(1)
+ wire T_170192 : UInt<2>[3]
+ T_170192[0] := UInt<2>(1)
+ T_170192[1] := UInt<2>(2)
+ T_170192[2] := UInt<2>(3)
+ wire T_170193 : UInt<2>[2]
+ T_170193[0] := UInt<2>(2)
+ T_170193[1] := UInt<2>(3)
+ wire T_170194 : UInt<2>[1]
+ T_170194[0] := UInt<2>(3)
+ wire T_170195 : UInt<3>[3]
+ T_170195[0] := UInt<3>(0)
+ T_170195[1] := UInt<3>(1)
+ T_170195[2] := UInt<3>(2)
+ wire T_170196 : UInt<0>[1]
+ T_170196[0] := UInt<0>(0)
+ wire T_170197 : UInt<2>[2]
+ T_170197[0] := UInt<2>(1)
+ T_170197[1] := UInt<2>(2)
+ wire T_170198 : UInt<2>[2]
+ T_170198[0] := UInt<2>(1)
+ T_170198[1] := UInt<2>(2)
+ wire T_170199 : UInt<2>[1]
+ T_170199[0] := UInt<2>(2)
+ wire T_170200 : UInt<3>[3]
+ T_170200[0] := UInt<3>(0)
+ T_170200[1] := UInt<3>(1)
+ T_170200[2] := UInt<3>(2)
+ wire T_170201 : UInt<2>[2]
+ T_170201[0] := UInt<2>(0)
+ T_170201[1] := UInt<2>(1)
+ wire T_170202 : UInt<2>[3]
+ T_170202[0] := UInt<2>(1)
+ T_170202[1] := UInt<2>(2)
+ T_170202[2] := UInt<2>(3)
+ wire T_170203 : UInt<2>[2]
+ T_170203[0] := UInt<2>(2)
+ T_170203[1] := UInt<2>(3)
+ wire T_170204 : UInt<2>[1]
+ T_170204[0] := UInt<2>(3)
+ wire T_170205 : UInt<3>[3]
+ T_170205[0] := UInt<3>(0)
+ T_170205[1] := UInt<3>(1)
+ T_170205[2] := UInt<3>(2)
+ wire T_170206 : UInt<2>[2]
+ T_170206[0] := UInt<2>(0)
+ T_170206[1] := UInt<2>(1)
+ wire T_170207 : UInt<2>[3]
+ T_170207[0] := UInt<2>(1)
+ T_170207[1] := UInt<2>(2)
+ T_170207[2] := UInt<2>(3)
+ wire T_170208 : UInt<2>[2]
+ T_170208[0] := UInt<2>(2)
+ T_170208[1] := UInt<2>(3)
+ wire T_170209 : UInt<2>[1]
+ T_170209[0] := UInt<2>(3)
+ wire T_170210 : UInt<3>[3]
+ T_170210[0] := UInt<3>(0)
+ T_170210[1] := UInt<3>(1)
+ T_170210[2] := UInt<3>(2)
+ wire T_170211 : UInt<0>[1]
+ T_170211[0] := UInt<0>(0)
+ wire T_170212 : UInt<2>[2]
+ T_170212[0] := UInt<2>(1)
+ T_170212[1] := UInt<2>(2)
+ wire T_170213 : UInt<2>[2]
+ T_170213[0] := UInt<2>(1)
+ T_170213[1] := UInt<2>(2)
+ wire T_170214 : UInt<2>[1]
+ T_170214[0] := UInt<2>(2)
+ wire resp : {tag : UInt<14>, coh : {inner : {sharers : UInt<1>, makeGrant$default$3 : UInt<1>, makeGrant$default$4 : UInt<1>}, outer : {state : UInt<2>, makeRelease$default$2 : UInt<1>, makeRelease$default$3 : UInt<1>, makeVoluntaryRelease$default$4 : UInt<1>, makeVoluntaryRelease$default$5 : UInt<1>, makeVoluntaryWriteback$default$3 : UInt<1>, makeVoluntaryWriteback$default$4 : UInt<1>}}}[8]
+ resp[0] := T_170215
+ resp[1] := T_170216
+ resp[2] := T_170217
+ resp[3] := T_170218
+ resp[4] := T_170219
+ resp[5] := T_170220
+ resp[6] := T_170221
+ resp[7] := T_170222
+ reg rst_cnt : UInt<13>
+ onreset rst_cnt := UInt<13>(0)
+ node rst = lt(rst_cnt, UInt<13>(4096))
+ wire waddr : UInt<12>
+ waddr := write.bits.idx
+ when rst : waddr := rst_cnt
+ wire T_170223 : UInt<3>[3]
+ T_170223[0] := UInt<3>(0)
+ T_170223[1] := UInt<3>(1)
+ T_170223[2] := UInt<3>(2)
+ wire T_170224 : UInt<2>[2]
+ T_170224[0] := UInt<2>(0)
+ T_170224[1] := UInt<2>(1)
+ wire T_170225 : UInt<2>[3]
+ T_170225[0] := UInt<2>(1)
+ T_170225[1] := UInt<2>(2)
+ T_170225[2] := UInt<2>(3)
+ wire T_170226 : UInt<2>[2]
+ T_170226[0] := UInt<2>(2)
+ T_170226[1] := UInt<2>(3)
+ wire T_170227 : UInt<2>[1]
+ T_170227[0] := UInt<2>(3)
+ wire T_170228 : UInt<3>[3]
+ T_170228[0] := UInt<3>(0)
+ T_170228[1] := UInt<3>(1)
+ T_170228[2] := UInt<3>(2)
+ wire T_170229 : UInt<2>[2]
+ T_170229[0] := UInt<2>(0)
+ T_170229[1] := UInt<2>(1)
+ wire T_170230 : UInt<2>[3]
+ T_170230[0] := UInt<2>(1)
+ T_170230[1] := UInt<2>(2)
+ T_170230[2] := UInt<2>(3)
+ wire T_170231 : UInt<2>[2]
+ T_170231[0] := UInt<2>(2)
+ T_170231[1] := UInt<2>(3)
+ wire T_170232 : UInt<2>[1]
+ T_170232[0] := UInt<2>(3)
+ wire T_170233 : UInt<3>[3]
+ T_170233[0] := UInt<3>(0)
+ T_170233[1] := UInt<3>(1)
+ T_170233[2] := UInt<3>(2)
+ wire T_170234 : UInt<0>[1]
+ T_170234[0] := UInt<0>(0)
+ wire T_170235 : UInt<2>[2]
+ T_170235[0] := UInt<2>(1)
+ T_170235[1] := UInt<2>(2)
+ wire T_170236 : UInt<2>[2]
+ T_170236[0] := UInt<2>(1)
+ T_170236[1] := UInt<2>(2)
+ wire T_170237 : UInt<2>[1]
+ T_170237[0] := UInt<2>(2)
+ wire T_170238 : {tag : UInt<14>, coh : {inner : {sharers : UInt<1>, makeGrant$default$3 : UInt<1>, makeGrant$default$4 : UInt<1>}, outer : {state : UInt<2>, makeRelease$default$2 : UInt<1>, makeRelease$default$3 : UInt<1>, makeVoluntaryRelease$default$4 : UInt<1>, makeVoluntaryRelease$default$5 : UInt<1>, makeVoluntaryWriteback$default$3 : UInt<1>, makeVoluntaryWriteback$default$4 : UInt<1>}}}
+ T_170238 := write.bits.data
+ when rst : T_170238 := rstVal
+ node T_170239 = cat(T_170238.tag, T_170238.coh.inner.sharers)
+ node T_170240 = cat(UInt<1>(0), T_170238.coh.outer.state)
+ node T_170241 = cat(UInt<1>(0), T_170240)
+ node T_170242 = cat(T_170239, T_170241)
+ node T_170243 = cat(T_170242, UInt<5>(0))
+ node T_170244 = cat(UInt<1>(0), T_170238.coh.inner.sharers)
+ node T_170245 = cat(UInt<1>(0), T_170238.coh.outer.state)
+ node T_170246 = cat(UInt<1>(0), T_170245)
+ node T_170247 = cat(T_170244, T_170246)
+ node T_170248 = cat(T_170247, UInt<6>(0))
+ node wdata = cat(T_170243, T_170248)
+ node T_170249 = asSInt(write.bits.way_en)
+ wire T_170250 : SInt<8>
+ T_170250 := T_170249
+ when rst : T_170250 := SInt<1>(-1)
+ node wmask = asUInt(T_170250)
+ when rst :
+ node T_170251 = addw(rst_cnt, UInt<1>(1))
+ rst_cnt := T_170251
+ cmem T_170252 : UInt<288>[4096]
+
+ node T_170253 = or(rst, write.valid)
+ when T_170253 :
+ node T_170254 = cat(wdata, wdata)
+ node T_170255 = cat(T_170254, T_170254)
+ node T_170256 = cat(T_170255, T_170255)
+ node T_170257 = bit(wmask, 0)
+ node T_170258 = bit(wmask, 1)
+ node T_170259 = bit(wmask, 2)
+ node T_170260 = bit(wmask, 3)
+ node T_170261 = bit(wmask, 4)
+ node T_170262 = bit(wmask, 5)
+ node T_170263 = bit(wmask, 6)
+ node T_170264 = bit(wmask, 7)
+ wire T_170265 : UInt<1>[8]
+ T_170265[0] := T_170257
+ T_170265[1] := T_170258
+ T_170265[2] := T_170259
+ T_170265[3] := T_170260
+ T_170265[4] := T_170261
+ T_170265[5] := T_170262
+ T_170265[6] := T_170263
+ T_170265[7] := T_170264
+ node T_170266 = subw(UInt<36>(0), UInt<6>(36))
+ node T_170267 = subw(UInt<36>(0), UInt<6>(36))
+ node T_170268 = subw(UInt<36>(0), UInt<6>(36))
+ node T_170269 = subw(UInt<36>(0), UInt<6>(36))
+ node T_170270 = subw(UInt<36>(0), UInt<6>(36))
+ node T_170271 = subw(UInt<36>(0), UInt<6>(36))
+ node T_170272 = subw(UInt<36>(0), UInt<6>(36))
+ node T_170273 = subw(UInt<36>(0), UInt<6>(36))
+ wire T_170274 : UInt<36>[8]
+ T_170274[0] := T_170266
+ T_170274[1] := T_170267
+ T_170274[2] := T_170268
+ T_170274[3] := T_170269
+ T_170274[4] := T_170270
+ T_170274[5] := T_170271
+ T_170274[6] := T_170272
+ T_170274[7] := T_170273
+ node T_170275 = cat(T_170274[7], T_170274[6])
+ node T_170276 = cat(T_170274[5], T_170274[4])
+ node T_170277 = cat(T_170275, T_170276)
+ node T_170278 = cat(T_170274[3], T_170274[2])
+ node T_170279 = cat(T_170274[1], T_170274[0])
+ node T_170280 = cat(T_170278, T_170279)
+ node T_170281 = cat(T_170277, T_170280)
+ accessor T_170282 = T_170252[waddr]
+ node T_170283 = not(T_170281)
+ node T_170284 = and(T_170282, T_170283)
+ node T_170285 = and(T_170256, T_170281)
+ node T_170286 = or(T_170284, T_170285)
+ wire T_170287 : UInt<288>
+ node T_170288 = bits(T_170286, 287, 0)
+ T_170287 := T_170288
+ accessor T_170289 = T_170252[waddr]
+ T_170289 := T_170287
+ reg T_170290 : UInt<12>
+ when read.valid : T_170290 := read.bits.idx
+ accessor tags = T_170252[T_170290]
+ wire T_170291 : UInt<3>[3]
+ T_170291[0] := UInt<3>(0)
+ T_170291[1] := UInt<3>(1)
+ T_170291[2] := UInt<3>(2)
+ wire T_170292 : UInt<2>[2]
+ T_170292[0] := UInt<2>(0)
+ T_170292[1] := UInt<2>(1)
+ wire T_170293 : UInt<2>[3]
+ T_170293[0] := UInt<2>(1)
+ T_170293[1] := UInt<2>(2)
+ T_170293[2] := UInt<2>(3)
+ wire T_170294 : UInt<2>[2]
+ T_170294[0] := UInt<2>(2)
+ T_170294[1] := UInt<2>(3)
+ wire T_170295 : UInt<2>[1]
+ T_170295[0] := UInt<2>(3)
+ wire T_170296 : UInt<3>[3]
+ T_170296[0] := UInt<3>(0)
+ T_170296[1] := UInt<3>(1)
+ T_170296[2] := UInt<3>(2)
+ wire T_170297 : UInt<2>[2]
+ T_170297[0] := UInt<2>(0)
+ T_170297[1] := UInt<2>(1)
+ wire T_170298 : UInt<2>[3]
+ T_170298[0] := UInt<2>(1)
+ T_170298[1] := UInt<2>(2)
+ T_170298[2] := UInt<2>(3)
+ wire T_170299 : UInt<2>[2]
+ T_170299[0] := UInt<2>(2)
+ T_170299[1] := UInt<2>(3)
+ wire T_170300 : UInt<2>[1]
+ T_170300[0] := UInt<2>(3)
+ wire T_170301 : UInt<3>[3]
+ T_170301[0] := UInt<3>(0)
+ T_170301[1] := UInt<3>(1)
+ T_170301[2] := UInt<3>(2)
+ wire T_170302 : UInt<0>[1]
+ T_170302[0] := UInt<0>(0)
+ wire T_170303 : UInt<2>[2]
+ T_170303[0] := UInt<2>(1)
+ T_170303[1] := UInt<2>(2)
+ wire T_170304 : UInt<2>[2]
+ T_170304[0] := UInt<2>(1)
+ T_170304[1] := UInt<2>(2)
+ wire T_170305 : UInt<2>[1]
+ T_170305[0] := UInt<2>(2)
+ wire T_170306 : UInt<3>[3]
+ T_170306[0] := UInt<3>(0)
+ T_170306[1] := UInt<3>(1)
+ T_170306[2] := UInt<3>(2)
+ wire T_170307 : UInt<2>[2]
+ T_170307[0] := UInt<2>(0)
+ T_170307[1] := UInt<2>(1)
+ wire T_170308 : UInt<2>[3]
+ T_170308[0] := UInt<2>(1)
+ T_170308[1] := UInt<2>(2)
+ T_170308[2] := UInt<2>(3)
+ wire T_170309 : UInt<2>[2]
+ T_170309[0] := UInt<2>(2)
+ T_170309[1] := UInt<2>(3)
+ wire T_170310 : UInt<2>[1]
+ T_170310[0] := UInt<2>(3)
+ wire T_170311 : UInt<3>[3]
+ T_170311[0] := UInt<3>(0)
+ T_170311[1] := UInt<3>(1)
+ T_170311[2] := UInt<3>(2)
+ wire T_170312 : UInt<2>[2]
+ T_170312[0] := UInt<2>(0)
+ T_170312[1] := UInt<2>(1)
+ wire T_170313 : UInt<2>[3]
+ T_170313[0] := UInt<2>(1)
+ T_170313[1] := UInt<2>(2)
+ T_170313[2] := UInt<2>(3)
+ wire T_170314 : UInt<2>[2]
+ T_170314[0] := UInt<2>(2)
+ T_170314[1] := UInt<2>(3)
+ wire T_170315 : UInt<2>[1]
+ T_170315[0] := UInt<2>(3)
+ wire T_170316 : UInt<3>[3]
+ T_170316[0] := UInt<3>(0)
+ T_170316[1] := UInt<3>(1)
+ T_170316[2] := UInt<3>(2)
+ wire T_170317 : UInt<0>[1]
+ T_170317[0] := UInt<0>(0)
+ wire T_170318 : UInt<2>[2]
+ T_170318[0] := UInt<2>(1)
+ T_170318[1] := UInt<2>(2)
+ wire T_170319 : UInt<2>[2]
+ T_170319[0] := UInt<2>(1)
+ T_170319[1] := UInt<2>(2)
+ wire T_170320 : UInt<2>[1]
+ T_170320[0] := UInt<2>(2)
+ wire T_170321 : UInt<3>[3]
+ T_170321[0] := UInt<3>(0)
+ T_170321[1] := UInt<3>(1)
+ T_170321[2] := UInt<3>(2)
+ wire T_170322 : UInt<2>[2]
+ T_170322[0] := UInt<2>(0)
+ T_170322[1] := UInt<2>(1)
+ wire T_170323 : UInt<2>[3]
+ T_170323[0] := UInt<2>(1)
+ T_170323[1] := UInt<2>(2)
+ T_170323[2] := UInt<2>(3)
+ wire T_170324 : UInt<2>[2]
+ T_170324[0] := UInt<2>(2)
+ T_170324[1] := UInt<2>(3)
+ wire T_170325 : UInt<2>[1]
+ T_170325[0] := UInt<2>(3)
+ wire T_170326 : UInt<3>[3]
+ T_170326[0] := UInt<3>(0)
+ T_170326[1] := UInt<3>(1)
+ T_170326[2] := UInt<3>(2)
+ wire T_170327 : UInt<2>[2]
+ T_170327[0] := UInt<2>(0)
+ T_170327[1] := UInt<2>(1)
+ wire T_170328 : UInt<2>[3]
+ T_170328[0] := UInt<2>(1)
+ T_170328[1] := UInt<2>(2)
+ T_170328[2] := UInt<2>(3)
+ wire T_170329 : UInt<2>[2]
+ T_170329[0] := UInt<2>(2)
+ T_170329[1] := UInt<2>(3)
+ wire T_170330 : UInt<2>[1]
+ T_170330[0] := UInt<2>(3)
+ wire T_170331 : UInt<3>[3]
+ T_170331[0] := UInt<3>(0)
+ T_170331[1] := UInt<3>(1)
+ T_170331[2] := UInt<3>(2)
+ wire T_170332 : UInt<0>[1]
+ T_170332[0] := UInt<0>(0)
+ wire T_170333 : UInt<2>[2]
+ T_170333[0] := UInt<2>(1)
+ T_170333[1] := UInt<2>(2)
+ wire T_170334 : UInt<2>[2]
+ T_170334[0] := UInt<2>(1)
+ T_170334[1] := UInt<2>(2)
+ wire T_170335 : UInt<2>[1]
+ T_170335[0] := UInt<2>(2)
+ wire T_170336 : UInt<3>[3]
+ T_170336[0] := UInt<3>(0)
+ T_170336[1] := UInt<3>(1)
+ T_170336[2] := UInt<3>(2)
+ wire T_170337 : UInt<2>[2]
+ T_170337[0] := UInt<2>(0)
+ T_170337[1] := UInt<2>(1)
+ wire T_170338 : UInt<2>[3]
+ T_170338[0] := UInt<2>(1)
+ T_170338[1] := UInt<2>(2)
+ T_170338[2] := UInt<2>(3)
+ wire T_170339 : UInt<2>[2]
+ T_170339[0] := UInt<2>(2)
+ T_170339[1] := UInt<2>(3)
+ wire T_170340 : UInt<2>[1]
+ T_170340[0] := UInt<2>(3)
+ wire T_170341 : UInt<3>[3]
+ T_170341[0] := UInt<3>(0)
+ T_170341[1] := UInt<3>(1)
+ T_170341[2] := UInt<3>(2)
+ wire T_170342 : UInt<2>[2]
+ T_170342[0] := UInt<2>(0)
+ T_170342[1] := UInt<2>(1)
+ wire T_170343 : UInt<2>[3]
+ T_170343[0] := UInt<2>(1)
+ T_170343[1] := UInt<2>(2)
+ T_170343[2] := UInt<2>(3)
+ wire T_170344 : UInt<2>[2]
+ T_170344[0] := UInt<2>(2)
+ T_170344[1] := UInt<2>(3)
+ wire T_170345 : UInt<2>[1]
+ T_170345[0] := UInt<2>(3)
+ wire T_170346 : UInt<3>[3]
+ T_170346[0] := UInt<3>(0)
+ T_170346[1] := UInt<3>(1)
+ T_170346[2] := UInt<3>(2)
+ wire T_170347 : UInt<0>[1]
+ T_170347[0] := UInt<0>(0)
+ wire T_170348 : UInt<2>[2]
+ T_170348[0] := UInt<2>(1)
+ T_170348[1] := UInt<2>(2)
+ wire T_170349 : UInt<2>[2]
+ T_170349[0] := UInt<2>(1)
+ T_170349[1] := UInt<2>(2)
+ wire T_170350 : UInt<2>[1]
+ T_170350[0] := UInt<2>(2)
+ wire T_170351 : UInt<3>[3]
+ T_170351[0] := UInt<3>(0)
+ T_170351[1] := UInt<3>(1)
+ T_170351[2] := UInt<3>(2)
+ wire T_170352 : UInt<2>[2]
+ T_170352[0] := UInt<2>(0)
+ T_170352[1] := UInt<2>(1)
+ wire T_170353 : UInt<2>[3]
+ T_170353[0] := UInt<2>(1)
+ T_170353[1] := UInt<2>(2)
+ T_170353[2] := UInt<2>(3)
+ wire T_170354 : UInt<2>[2]
+ T_170354[0] := UInt<2>(2)
+ T_170354[1] := UInt<2>(3)
+ wire T_170355 : UInt<2>[1]
+ T_170355[0] := UInt<2>(3)
+ wire T_170356 : UInt<3>[3]
+ T_170356[0] := UInt<3>(0)
+ T_170356[1] := UInt<3>(1)
+ T_170356[2] := UInt<3>(2)
+ wire T_170357 : UInt<2>[2]
+ T_170357[0] := UInt<2>(0)
+ T_170357[1] := UInt<2>(1)
+ wire T_170358 : UInt<2>[3]
+ T_170358[0] := UInt<2>(1)
+ T_170358[1] := UInt<2>(2)
+ T_170358[2] := UInt<2>(3)
+ wire T_170359 : UInt<2>[2]
+ T_170359[0] := UInt<2>(2)
+ T_170359[1] := UInt<2>(3)
+ wire T_170360 : UInt<2>[1]
+ T_170360[0] := UInt<2>(3)
+ wire T_170361 : UInt<3>[3]
+ T_170361[0] := UInt<3>(0)
+ T_170361[1] := UInt<3>(1)
+ T_170361[2] := UInt<3>(2)
+ wire T_170362 : UInt<0>[1]
+ T_170362[0] := UInt<0>(0)
+ wire T_170363 : UInt<2>[2]
+ T_170363[0] := UInt<2>(1)
+ T_170363[1] := UInt<2>(2)
+ wire T_170364 : UInt<2>[2]
+ T_170364[0] := UInt<2>(1)
+ T_170364[1] := UInt<2>(2)
+ wire T_170365 : UInt<2>[1]
+ T_170365[0] := UInt<2>(2)
+ wire T_170366 : UInt<3>[3]
+ T_170366[0] := UInt<3>(0)
+ T_170366[1] := UInt<3>(1)
+ T_170366[2] := UInt<3>(2)
+ wire T_170367 : UInt<2>[2]
+ T_170367[0] := UInt<2>(0)
+ T_170367[1] := UInt<2>(1)
+ wire T_170368 : UInt<2>[3]
+ T_170368[0] := UInt<2>(1)
+ T_170368[1] := UInt<2>(2)
+ T_170368[2] := UInt<2>(3)
+ wire T_170369 : UInt<2>[2]
+ T_170369[0] := UInt<2>(2)
+ T_170369[1] := UInt<2>(3)
+ wire T_170370 : UInt<2>[1]
+ T_170370[0] := UInt<2>(3)
+ wire T_170371 : UInt<3>[3]
+ T_170371[0] := UInt<3>(0)
+ T_170371[1] := UInt<3>(1)
+ T_170371[2] := UInt<3>(2)
+ wire T_170372 : UInt<2>[2]
+ T_170372[0] := UInt<2>(0)
+ T_170372[1] := UInt<2>(1)
+ wire T_170373 : UInt<2>[3]
+ T_170373[0] := UInt<2>(1)
+ T_170373[1] := UInt<2>(2)
+ T_170373[2] := UInt<2>(3)
+ wire T_170374 : UInt<2>[2]
+ T_170374[0] := UInt<2>(2)
+ T_170374[1] := UInt<2>(3)
+ wire T_170375 : UInt<2>[1]
+ T_170375[0] := UInt<2>(3)
+ wire T_170376 : UInt<3>[3]
+ T_170376[0] := UInt<3>(0)
+ T_170376[1] := UInt<3>(1)
+ T_170376[2] := UInt<3>(2)
+ wire T_170377 : UInt<0>[1]
+ T_170377[0] := UInt<0>(0)
+ wire T_170378 : UInt<2>[2]
+ T_170378[0] := UInt<2>(1)
+ T_170378[1] := UInt<2>(2)
+ wire T_170379 : UInt<2>[2]
+ T_170379[0] := UInt<2>(1)
+ T_170379[1] := UInt<2>(2)
+ wire T_170380 : UInt<2>[1]
+ T_170380[0] := UInt<2>(2)
+ wire T_170381 : UInt<3>[3]
+ T_170381[0] := UInt<3>(0)
+ T_170381[1] := UInt<3>(1)
+ T_170381[2] := UInt<3>(2)
+ wire T_170382 : UInt<2>[2]
+ T_170382[0] := UInt<2>(0)
+ T_170382[1] := UInt<2>(1)
+ wire T_170383 : UInt<2>[3]
+ T_170383[0] := UInt<2>(1)
+ T_170383[1] := UInt<2>(2)
+ T_170383[2] := UInt<2>(3)
+ wire T_170384 : UInt<2>[2]
+ T_170384[0] := UInt<2>(2)
+ T_170384[1] := UInt<2>(3)
+ wire T_170385 : UInt<2>[1]
+ T_170385[0] := UInt<2>(3)
+ wire T_170386 : UInt<3>[3]
+ T_170386[0] := UInt<3>(0)
+ T_170386[1] := UInt<3>(1)
+ T_170386[2] := UInt<3>(2)
+ wire T_170387 : UInt<2>[2]
+ T_170387[0] := UInt<2>(0)
+ T_170387[1] := UInt<2>(1)
+ wire T_170388 : UInt<2>[3]
+ T_170388[0] := UInt<2>(1)
+ T_170388[1] := UInt<2>(2)
+ T_170388[2] := UInt<2>(3)
+ wire T_170389 : UInt<2>[2]
+ T_170389[0] := UInt<2>(2)
+ T_170389[1] := UInt<2>(3)
+ wire T_170390 : UInt<2>[1]
+ T_170390[0] := UInt<2>(3)
+ wire T_170391 : UInt<3>[3]
+ T_170391[0] := UInt<3>(0)
+ T_170391[1] := UInt<3>(1)
+ T_170391[2] := UInt<3>(2)
+ wire T_170392 : UInt<0>[1]
+ T_170392[0] := UInt<0>(0)
+ wire T_170393 : UInt<2>[2]
+ T_170393[0] := UInt<2>(1)
+ T_170393[1] := UInt<2>(2)
+ wire T_170394 : UInt<2>[2]
+ T_170394[0] := UInt<2>(1)
+ T_170394[1] := UInt<2>(2)
+ wire T_170395 : UInt<2>[1]
+ T_170395[0] := UInt<2>(2)
+ wire T_170396 : UInt<3>[3]
+ T_170396[0] := UInt<3>(0)
+ T_170396[1] := UInt<3>(1)
+ T_170396[2] := UInt<3>(2)
+ wire T_170397 : UInt<2>[2]
+ T_170397[0] := UInt<2>(0)
+ T_170397[1] := UInt<2>(1)
+ wire T_170398 : UInt<2>[3]
+ T_170398[0] := UInt<2>(1)
+ T_170398[1] := UInt<2>(2)
+ T_170398[2] := UInt<2>(3)
+ wire T_170399 : UInt<2>[2]
+ T_170399[0] := UInt<2>(2)
+ T_170399[1] := UInt<2>(3)
+ wire T_170400 : UInt<2>[1]
+ T_170400[0] := UInt<2>(3)
+ wire T_170401 : UInt<3>[3]
+ T_170401[0] := UInt<3>(0)
+ T_170401[1] := UInt<3>(1)
+ T_170401[2] := UInt<3>(2)
+ wire T_170402 : UInt<2>[2]
+ T_170402[0] := UInt<2>(0)
+ T_170402[1] := UInt<2>(1)
+ wire T_170403 : UInt<2>[3]
+ T_170403[0] := UInt<2>(1)
+ T_170403[1] := UInt<2>(2)
+ T_170403[2] := UInt<2>(3)
+ wire T_170404 : UInt<2>[2]
+ T_170404[0] := UInt<2>(2)
+ T_170404[1] := UInt<2>(3)
+ wire T_170405 : UInt<2>[1]
+ T_170405[0] := UInt<2>(3)
+ wire T_170406 : UInt<3>[3]
+ T_170406[0] := UInt<3>(0)
+ T_170406[1] := UInt<3>(1)
+ T_170406[2] := UInt<3>(2)
+ wire T_170407 : UInt<0>[1]
+ T_170407[0] := UInt<0>(0)
+ wire T_170408 : UInt<2>[2]
+ T_170408[0] := UInt<2>(1)
+ T_170408[1] := UInt<2>(2)
+ wire T_170409 : UInt<2>[2]
+ T_170409[0] := UInt<2>(1)
+ T_170409[1] := UInt<2>(2)
+ wire T_170410 : UInt<2>[1]
+ T_170410[0] := UInt<2>(2)
+ wire T_170411 : UInt<3>[3]
+ T_170411[0] := UInt<3>(0)
+ T_170411[1] := UInt<3>(1)
+ T_170411[2] := UInt<3>(2)
+ wire T_170412 : UInt<2>[2]
+ T_170412[0] := UInt<2>(0)
+ T_170412[1] := UInt<2>(1)
+ wire T_170413 : UInt<2>[3]
+ T_170413[0] := UInt<2>(1)
+ T_170413[1] := UInt<2>(2)
+ T_170413[2] := UInt<2>(3)
+ wire T_170414 : UInt<2>[2]
+ T_170414[0] := UInt<2>(2)
+ T_170414[1] := UInt<2>(3)
+ wire T_170415 : UInt<2>[1]
+ T_170415[0] := UInt<2>(3)
+ wire T_170416 : UInt<3>[3]
+ T_170416[0] := UInt<3>(0)
+ T_170416[1] := UInt<3>(1)
+ T_170416[2] := UInt<3>(2)
+ wire T_170417 : UInt<2>[2]
+ T_170417[0] := UInt<2>(0)
+ T_170417[1] := UInt<2>(1)
+ wire T_170418 : UInt<2>[3]
+ T_170418[0] := UInt<2>(1)
+ T_170418[1] := UInt<2>(2)
+ T_170418[2] := UInt<2>(3)
+ wire T_170419 : UInt<2>[2]
+ T_170419[0] := UInt<2>(2)
+ T_170419[1] := UInt<2>(3)
+ wire T_170420 : UInt<2>[1]
+ T_170420[0] := UInt<2>(3)
+ wire T_170421 : UInt<3>[3]
+ T_170421[0] := UInt<3>(0)
+ T_170421[1] := UInt<3>(1)
+ T_170421[2] := UInt<3>(2)
+ wire T_170422 : UInt<0>[1]
+ T_170422[0] := UInt<0>(0)
+ wire T_170423 : UInt<2>[2]
+ T_170423[0] := UInt<2>(1)
+ T_170423[1] := UInt<2>(2)
+ wire T_170424 : UInt<2>[2]
+ T_170424[0] := UInt<2>(1)
+ T_170424[1] := UInt<2>(2)
+ wire T_170425 : UInt<2>[1]
+ T_170425[0] := UInt<2>(2)
+ wire T_170426 : UInt<3>[3]
+ T_170426[0] := UInt<3>(0)
+ T_170426[1] := UInt<3>(1)
+ T_170426[2] := UInt<3>(2)
+ wire T_170427 : UInt<2>[2]
+ T_170427[0] := UInt<2>(0)
+ T_170427[1] := UInt<2>(1)
+ wire T_170428 : UInt<2>[3]
+ T_170428[0] := UInt<2>(1)
+ T_170428[1] := UInt<2>(2)
+ T_170428[2] := UInt<2>(3)
+ wire T_170429 : UInt<2>[2]
+ T_170429[0] := UInt<2>(2)
+ T_170429[1] := UInt<2>(3)
+ wire T_170430 : UInt<2>[1]
+ T_170430[0] := UInt<2>(3)
+ wire T_170431 : UInt<3>[3]
+ T_170431[0] := UInt<3>(0)
+ T_170431[1] := UInt<3>(1)
+ T_170431[2] := UInt<3>(2)
+ wire T_170432 : UInt<2>[2]
+ T_170432[0] := UInt<2>(0)
+ T_170432[1] := UInt<2>(1)
+ wire T_170433 : UInt<2>[3]
+ T_170433[0] := UInt<2>(1)
+ T_170433[1] := UInt<2>(2)
+ T_170433[2] := UInt<2>(3)
+ wire T_170434 : UInt<2>[2]
+ T_170434[0] := UInt<2>(2)
+ T_170434[1] := UInt<2>(3)
+ wire T_170435 : UInt<2>[1]
+ T_170435[0] := UInt<2>(3)
+ wire T_170436 : UInt<3>[3]
+ T_170436[0] := UInt<3>(0)
+ T_170436[1] := UInt<3>(1)
+ T_170436[2] := UInt<3>(2)
+ wire T_170437 : UInt<0>[1]
+ T_170437[0] := UInt<0>(0)
+ wire T_170438 : UInt<2>[2]
+ T_170438[0] := UInt<2>(1)
+ T_170438[1] := UInt<2>(2)
+ wire T_170439 : UInt<2>[2]
+ T_170439[0] := UInt<2>(1)
+ T_170439[1] := UInt<2>(2)
+ wire T_170440 : UInt<2>[1]
+ T_170440[0] := UInt<2>(2)
+ wire T_170441 : UInt<3>[3]
+ T_170441[0] := UInt<3>(0)
+ T_170441[1] := UInt<3>(1)
+ T_170441[2] := UInt<3>(2)
+ wire T_170442 : UInt<2>[2]
+ T_170442[0] := UInt<2>(0)
+ T_170442[1] := UInt<2>(1)
+ wire T_170443 : UInt<2>[3]
+ T_170443[0] := UInt<2>(1)
+ T_170443[1] := UInt<2>(2)
+ T_170443[2] := UInt<2>(3)
+ wire T_170444 : UInt<2>[2]
+ T_170444[0] := UInt<2>(2)
+ T_170444[1] := UInt<2>(3)
+ wire T_170445 : UInt<2>[1]
+ T_170445[0] := UInt<2>(3)
+ wire T_170446 : UInt<3>[3]
+ T_170446[0] := UInt<3>(0)
+ T_170446[1] := UInt<3>(1)
+ T_170446[2] := UInt<3>(2)
+ wire T_170447 : UInt<2>[2]
+ T_170447[0] := UInt<2>(0)
+ T_170447[1] := UInt<2>(1)
+ wire T_170448 : UInt<2>[3]
+ T_170448[0] := UInt<2>(1)
+ T_170448[1] := UInt<2>(2)
+ T_170448[2] := UInt<2>(3)
+ wire T_170449 : UInt<2>[2]
+ T_170449[0] := UInt<2>(2)
+ T_170449[1] := UInt<2>(3)
+ wire T_170450 : UInt<2>[1]
+ T_170450[0] := UInt<2>(3)
+ wire T_170451 : UInt<3>[3]
+ T_170451[0] := UInt<3>(0)
+ T_170451[1] := UInt<3>(1)
+ T_170451[2] := UInt<3>(2)
+ wire T_170452 : UInt<0>[1]
+ T_170452[0] := UInt<0>(0)
+ wire T_170453 : UInt<2>[2]
+ T_170453[0] := UInt<2>(1)
+ T_170453[1] := UInt<2>(2)
+ wire T_170454 : UInt<2>[2]
+ T_170454[0] := UInt<2>(1)
+ T_170454[1] := UInt<2>(2)
+ wire T_170455 : UInt<2>[1]
+ T_170455[0] := UInt<2>(2)
+ wire T_170456 : UInt<3>[3]
+ T_170456[0] := UInt<3>(0)
+ T_170456[1] := UInt<3>(1)
+ T_170456[2] := UInt<3>(2)
+ wire T_170457 : UInt<2>[2]
+ T_170457[0] := UInt<2>(0)
+ T_170457[1] := UInt<2>(1)
+ wire T_170458 : UInt<2>[3]
+ T_170458[0] := UInt<2>(1)
+ T_170458[1] := UInt<2>(2)
+ T_170458[2] := UInt<2>(3)
+ wire T_170459 : UInt<2>[2]
+ T_170459[0] := UInt<2>(2)
+ T_170459[1] := UInt<2>(3)
+ wire T_170460 : UInt<2>[1]
+ T_170460[0] := UInt<2>(3)
+ wire T_170461 : UInt<3>[3]
+ T_170461[0] := UInt<3>(0)
+ T_170461[1] := UInt<3>(1)
+ T_170461[2] := UInt<3>(2)
+ wire T_170462 : UInt<2>[2]
+ T_170462[0] := UInt<2>(0)
+ T_170462[1] := UInt<2>(1)
+ wire T_170463 : UInt<2>[3]
+ T_170463[0] := UInt<2>(1)
+ T_170463[1] := UInt<2>(2)
+ T_170463[2] := UInt<2>(3)
+ wire T_170464 : UInt<2>[2]
+ T_170464[0] := UInt<2>(2)
+ T_170464[1] := UInt<2>(3)
+ wire T_170465 : UInt<2>[1]
+ T_170465[0] := UInt<2>(3)
+ wire T_170466 : UInt<3>[3]
+ T_170466[0] := UInt<3>(0)
+ T_170466[1] := UInt<3>(1)
+ T_170466[2] := UInt<3>(2)
+ wire T_170467 : UInt<0>[1]
+ T_170467[0] := UInt<0>(0)
+ wire T_170468 : UInt<2>[2]
+ T_170468[0] := UInt<2>(1)
+ T_170468[1] := UInt<2>(2)
+ wire T_170469 : UInt<2>[2]
+ T_170469[0] := UInt<2>(1)
+ T_170469[1] := UInt<2>(2)
+ wire T_170470 : UInt<2>[1]
+ T_170470[0] := UInt<2>(2)
+ wire T_170471 : UInt<3>[3]
+ T_170471[0] := UInt<3>(0)
+ T_170471[1] := UInt<3>(1)
+ T_170471[2] := UInt<3>(2)
+ wire T_170472 : UInt<2>[2]
+ T_170472[0] := UInt<2>(0)
+ T_170472[1] := UInt<2>(1)
+ wire T_170473 : UInt<2>[3]
+ T_170473[0] := UInt<2>(1)
+ T_170473[1] := UInt<2>(2)
+ T_170473[2] := UInt<2>(3)
+ wire T_170474 : UInt<2>[2]
+ T_170474[0] := UInt<2>(2)
+ T_170474[1] := UInt<2>(3)
+ wire T_170475 : UInt<2>[1]
+ T_170475[0] := UInt<2>(3)
+ wire T_170476 : UInt<3>[3]
+ T_170476[0] := UInt<3>(0)
+ T_170476[1] := UInt<3>(1)
+ T_170476[2] := UInt<3>(2)
+ wire T_170477 : UInt<2>[2]
+ T_170477[0] := UInt<2>(0)
+ T_170477[1] := UInt<2>(1)
+ wire T_170478 : UInt<2>[3]
+ T_170478[0] := UInt<2>(1)
+ T_170478[1] := UInt<2>(2)
+ T_170478[2] := UInt<2>(3)
+ wire T_170479 : UInt<2>[2]
+ T_170479[0] := UInt<2>(2)
+ T_170479[1] := UInt<2>(3)
+ wire T_170480 : UInt<2>[1]
+ T_170480[0] := UInt<2>(3)
+ wire T_170481 : UInt<3>[3]
+ T_170481[0] := UInt<3>(0)
+ T_170481[1] := UInt<3>(1)
+ T_170481[2] := UInt<3>(2)
+ wire T_170482 : UInt<0>[1]
+ T_170482[0] := UInt<0>(0)
+ wire T_170483 : UInt<2>[2]
+ T_170483[0] := UInt<2>(1)
+ T_170483[1] := UInt<2>(2)
+ wire T_170484 : UInt<2>[2]
+ T_170484[0] := UInt<2>(1)
+ T_170484[1] := UInt<2>(2)
+ wire T_170485 : UInt<2>[1]
+ T_170485[0] := UInt<2>(2)
+ wire T_170486 : UInt<3>[3]
+ T_170486[0] := UInt<3>(0)
+ T_170486[1] := UInt<3>(1)
+ T_170486[2] := UInt<3>(2)
+ wire T_170487 : UInt<2>[2]
+ T_170487[0] := UInt<2>(0)
+ T_170487[1] := UInt<2>(1)
+ wire T_170488 : UInt<2>[3]
+ T_170488[0] := UInt<2>(1)
+ T_170488[1] := UInt<2>(2)
+ T_170488[2] := UInt<2>(3)
+ wire T_170489 : UInt<2>[2]
+ T_170489[0] := UInt<2>(2)
+ T_170489[1] := UInt<2>(3)
+ wire T_170490 : UInt<2>[1]
+ T_170490[0] := UInt<2>(3)
+ wire T_170491 : UInt<3>[3]
+ T_170491[0] := UInt<3>(0)
+ T_170491[1] := UInt<3>(1)
+ T_170491[2] := UInt<3>(2)
+ wire T_170492 : UInt<2>[2]
+ T_170492[0] := UInt<2>(0)
+ T_170492[1] := UInt<2>(1)
+ wire T_170493 : UInt<2>[3]
+ T_170493[0] := UInt<2>(1)
+ T_170493[1] := UInt<2>(2)
+ T_170493[2] := UInt<2>(3)
+ wire T_170494 : UInt<2>[2]
+ T_170494[0] := UInt<2>(2)
+ T_170494[1] := UInt<2>(3)
+ wire T_170495 : UInt<2>[1]
+ T_170495[0] := UInt<2>(3)
+ wire T_170496 : UInt<3>[3]
+ T_170496[0] := UInt<3>(0)
+ T_170496[1] := UInt<3>(1)
+ T_170496[2] := UInt<3>(2)
+ wire T_170497 : UInt<0>[1]
+ T_170497[0] := UInt<0>(0)
+ wire T_170498 : UInt<2>[2]
+ T_170498[0] := UInt<2>(1)
+ T_170498[1] := UInt<2>(2)
+ wire T_170499 : UInt<2>[2]
+ T_170499[0] := UInt<2>(1)
+ T_170499[1] := UInt<2>(2)
+ wire T_170500 : UInt<2>[1]
+ T_170500[0] := UInt<2>(2)
+ wire T_170501 : UInt<3>[3]
+ T_170501[0] := UInt<3>(0)
+ T_170501[1] := UInt<3>(1)
+ T_170501[2] := UInt<3>(2)
+ wire T_170502 : UInt<2>[2]
+ T_170502[0] := UInt<2>(0)
+ T_170502[1] := UInt<2>(1)
+ wire T_170503 : UInt<2>[3]
+ T_170503[0] := UInt<2>(1)
+ T_170503[1] := UInt<2>(2)
+ T_170503[2] := UInt<2>(3)
+ wire T_170504 : UInt<2>[2]
+ T_170504[0] := UInt<2>(2)
+ T_170504[1] := UInt<2>(3)
+ wire T_170505 : UInt<2>[1]
+ T_170505[0] := UInt<2>(3)
+ wire T_170506 : UInt<3>[3]
+ T_170506[0] := UInt<3>(0)
+ T_170506[1] := UInt<3>(1)
+ T_170506[2] := UInt<3>(2)
+ wire T_170507 : UInt<2>[2]
+ T_170507[0] := UInt<2>(0)
+ T_170507[1] := UInt<2>(1)
+ wire T_170508 : UInt<2>[3]
+ T_170508[0] := UInt<2>(1)
+ T_170508[1] := UInt<2>(2)
+ T_170508[2] := UInt<2>(3)
+ wire T_170509 : UInt<2>[2]
+ T_170509[0] := UInt<2>(2)
+ T_170509[1] := UInt<2>(3)
+ wire T_170510 : UInt<2>[1]
+ T_170510[0] := UInt<2>(3)
+ wire T_170511 : UInt<3>[3]
+ T_170511[0] := UInt<3>(0)
+ T_170511[1] := UInt<3>(1)
+ T_170511[2] := UInt<3>(2)
+ wire T_170512 : UInt<0>[1]
+ T_170512[0] := UInt<0>(0)
+ wire T_170513 : UInt<2>[2]
+ T_170513[0] := UInt<2>(1)
+ T_170513[1] := UInt<2>(2)
+ wire T_170514 : UInt<2>[2]
+ T_170514[0] := UInt<2>(1)
+ T_170514[1] := UInt<2>(2)
+ wire T_170515 : UInt<2>[1]
+ T_170515[0] := UInt<2>(2)
+ wire T_170516 : UInt<3>[3]
+ T_170516[0] := UInt<3>(0)
+ T_170516[1] := UInt<3>(1)
+ T_170516[2] := UInt<3>(2)
+ wire T_170517 : UInt<2>[2]
+ T_170517[0] := UInt<2>(0)
+ T_170517[1] := UInt<2>(1)
+ wire T_170518 : UInt<2>[3]
+ T_170518[0] := UInt<2>(1)
+ T_170518[1] := UInt<2>(2)
+ T_170518[2] := UInt<2>(3)
+ wire T_170519 : UInt<2>[2]
+ T_170519[0] := UInt<2>(2)
+ T_170519[1] := UInt<2>(3)
+ wire T_170520 : UInt<2>[1]
+ T_170520[0] := UInt<2>(3)
+ wire T_170521 : UInt<3>[3]
+ T_170521[0] := UInt<3>(0)
+ T_170521[1] := UInt<3>(1)
+ T_170521[2] := UInt<3>(2)
+ wire T_170522 : UInt<2>[2]
+ T_170522[0] := UInt<2>(0)
+ T_170522[1] := UInt<2>(1)
+ wire T_170523 : UInt<2>[3]
+ T_170523[0] := UInt<2>(1)
+ T_170523[1] := UInt<2>(2)
+ T_170523[2] := UInt<2>(3)
+ wire T_170524 : UInt<2>[2]
+ T_170524[0] := UInt<2>(2)
+ T_170524[1] := UInt<2>(3)
+ wire T_170525 : UInt<2>[1]
+ T_170525[0] := UInt<2>(3)
+ wire T_170526 : UInt<3>[3]
+ T_170526[0] := UInt<3>(0)
+ T_170526[1] := UInt<3>(1)
+ T_170526[2] := UInt<3>(2)
+ wire T_170527 : UInt<0>[1]
+ T_170527[0] := UInt<0>(0)
+ wire T_170528 : UInt<2>[2]
+ T_170528[0] := UInt<2>(1)
+ T_170528[1] := UInt<2>(2)
+ wire T_170529 : UInt<2>[2]
+ T_170529[0] := UInt<2>(1)
+ T_170529[1] := UInt<2>(2)
+ wire T_170530 : UInt<2>[1]
+ T_170530[0] := UInt<2>(2)
+ wire T_170531 : UInt<3>[3]
+ T_170531[0] := UInt<3>(0)
+ T_170531[1] := UInt<3>(1)
+ T_170531[2] := UInt<3>(2)
+ wire T_170532 : UInt<2>[2]
+ T_170532[0] := UInt<2>(0)
+ T_170532[1] := UInt<2>(1)
+ wire T_170533 : UInt<2>[3]
+ T_170533[0] := UInt<2>(1)
+ T_170533[1] := UInt<2>(2)
+ T_170533[2] := UInt<2>(3)
+ wire T_170534 : UInt<2>[2]
+ T_170534[0] := UInt<2>(2)
+ T_170534[1] := UInt<2>(3)
+ wire T_170535 : UInt<2>[1]
+ T_170535[0] := UInt<2>(3)
+ wire T_170536 : UInt<3>[3]
+ T_170536[0] := UInt<3>(0)
+ T_170536[1] := UInt<3>(1)
+ T_170536[2] := UInt<3>(2)
+ wire T_170537 : UInt<2>[2]
+ T_170537[0] := UInt<2>(0)
+ T_170537[1] := UInt<2>(1)
+ wire T_170538 : UInt<2>[3]
+ T_170538[0] := UInt<2>(1)
+ T_170538[1] := UInt<2>(2)
+ T_170538[2] := UInt<2>(3)
+ wire T_170539 : UInt<2>[2]
+ T_170539[0] := UInt<2>(2)
+ T_170539[1] := UInt<2>(3)
+ wire T_170540 : UInt<2>[1]
+ T_170540[0] := UInt<2>(3)
+ wire T_170541 : UInt<3>[3]
+ T_170541[0] := UInt<3>(0)
+ T_170541[1] := UInt<3>(1)
+ T_170541[2] := UInt<3>(2)
+ wire T_170542 : UInt<0>[1]
+ T_170542[0] := UInt<0>(0)
+ wire T_170543 : UInt<2>[2]
+ T_170543[0] := UInt<2>(1)
+ T_170543[1] := UInt<2>(2)
+ wire T_170544 : UInt<2>[2]
+ T_170544[0] := UInt<2>(1)
+ T_170544[1] := UInt<2>(2)
+ wire T_170545 : UInt<2>[1]
+ T_170545[0] := UInt<2>(2)
+ wire T_170546 : UInt<3>[3]
+ T_170546[0] := UInt<3>(0)
+ T_170546[1] := UInt<3>(1)
+ T_170546[2] := UInt<3>(2)
+ wire T_170547 : UInt<2>[2]
+ T_170547[0] := UInt<2>(0)
+ T_170547[1] := UInt<2>(1)
+ wire T_170548 : UInt<2>[3]
+ T_170548[0] := UInt<2>(1)
+ T_170548[1] := UInt<2>(2)
+ T_170548[2] := UInt<2>(3)
+ wire T_170549 : UInt<2>[2]
+ T_170549[0] := UInt<2>(2)
+ T_170549[1] := UInt<2>(3)
+ wire T_170550 : UInt<2>[1]
+ T_170550[0] := UInt<2>(3)
+ wire T_170551 : UInt<3>[3]
+ T_170551[0] := UInt<3>(0)
+ T_170551[1] := UInt<3>(1)
+ T_170551[2] := UInt<3>(2)
+ wire T_170552 : UInt<2>[2]
+ T_170552[0] := UInt<2>(0)
+ T_170552[1] := UInt<2>(1)
+ wire T_170553 : UInt<2>[3]
+ T_170553[0] := UInt<2>(1)
+ T_170553[1] := UInt<2>(2)
+ T_170553[2] := UInt<2>(3)
+ wire T_170554 : UInt<2>[2]
+ T_170554[0] := UInt<2>(2)
+ T_170554[1] := UInt<2>(3)
+ wire T_170555 : UInt<2>[1]
+ T_170555[0] := UInt<2>(3)
+ wire T_170556 : UInt<3>[3]
+ T_170556[0] := UInt<3>(0)
+ T_170556[1] := UInt<3>(1)
+ T_170556[2] := UInt<3>(2)
+ wire T_170557 : UInt<0>[1]
+ T_170557[0] := UInt<0>(0)
+ wire T_170558 : UInt<2>[2]
+ T_170558[0] := UInt<2>(1)
+ T_170558[1] := UInt<2>(2)
+ wire T_170559 : UInt<2>[2]
+ T_170559[0] := UInt<2>(1)
+ T_170559[1] := UInt<2>(2)
+ wire T_170560 : UInt<2>[1]
+ T_170560[0] := UInt<2>(2)
+ wire T_170561 : {tag : UInt<14>, coh : {inner : {sharers : UInt<1>, makeGrant$default$3 : UInt<1>, makeGrant$default$4 : UInt<1>}, outer : {state : UInt<2>, makeRelease$default$2 : UInt<1>, makeRelease$default$3 : UInt<1>, makeVoluntaryRelease$default$4 : UInt<1>, makeVoluntaryRelease$default$5 : UInt<1>, makeVoluntaryWriteback$default$3 : UInt<1>, makeVoluntaryWriteback$default$4 : UInt<1>}}}[8]
+ node T_170562 = bits(tags, 0, 0)
+ T_170561[0].coh.outer.makeVoluntaryWriteback$default$4 := T_170562
+ node T_170563 = bits(tags, 1, 1)
+ T_170561[0].coh.outer.makeVoluntaryWriteback$default$3 := T_170563
+ node T_170564 = bits(tags, 2, 2)
+ T_170561[0].coh.outer.makeVoluntaryRelease$default$5 := T_170564
+ node T_170565 = bits(tags, 3, 3)
+ T_170561[0].coh.outer.makeVoluntaryRelease$default$4 := T_170565
+ node T_170566 = bits(tags, 4, 4)
+ T_170561[0].coh.outer.makeRelease$default$3 := T_170566
+ node T_170567 = bits(tags, 5, 5)
+ T_170561[0].coh.outer.makeRelease$default$2 := T_170567
+ node T_170568 = bits(tags, 7, 6)
+ T_170561[0].coh.outer.state := T_170568
+ node T_170569 = bits(tags, 8, 8)
+ T_170561[0].coh.inner.makeGrant$default$4 := T_170569
+ node T_170570 = bits(tags, 9, 9)
+ T_170561[0].coh.inner.makeGrant$default$3 := T_170570
+ node T_170571 = bits(tags, 10, 10)
+ T_170561[0].coh.inner.sharers := T_170571
+ node T_170572 = bits(tags, 11, 11)
+ T_170561[0].coh.outer.makeVoluntaryWriteback$default$4 := T_170572
+ node T_170573 = bits(tags, 12, 12)
+ T_170561[0].coh.outer.makeVoluntaryWriteback$default$3 := T_170573
+ node T_170574 = bits(tags, 13, 13)
+ T_170561[0].coh.outer.makeVoluntaryRelease$default$5 := T_170574
+ node T_170575 = bits(tags, 14, 14)
+ T_170561[0].coh.outer.makeVoluntaryRelease$default$4 := T_170575
+ node T_170576 = bits(tags, 15, 15)
+ T_170561[0].coh.outer.makeRelease$default$3 := T_170576
+ node T_170577 = bits(tags, 16, 16)
+ T_170561[0].coh.outer.makeRelease$default$2 := T_170577
+ node T_170578 = bits(tags, 18, 17)
+ T_170561[0].coh.outer.state := T_170578
+ node T_170579 = bits(tags, 19, 19)
+ T_170561[0].coh.inner.makeGrant$default$4 := T_170579
+ node T_170580 = bits(tags, 20, 20)
+ T_170561[0].coh.inner.makeGrant$default$3 := T_170580
+ node T_170581 = bits(tags, 21, 21)
+ T_170561[0].coh.inner.sharers := T_170581
+ node T_170582 = bits(tags, 35, 22)
+ T_170561[0].tag := T_170582
+ node T_170583 = bits(tags, 36, 36)
+ T_170561[1].coh.outer.makeVoluntaryWriteback$default$4 := T_170583
+ node T_170584 = bits(tags, 37, 37)
+ T_170561[1].coh.outer.makeVoluntaryWriteback$default$3 := T_170584
+ node T_170585 = bits(tags, 38, 38)
+ T_170561[1].coh.outer.makeVoluntaryRelease$default$5 := T_170585
+ node T_170586 = bits(tags, 39, 39)
+ T_170561[1].coh.outer.makeVoluntaryRelease$default$4 := T_170586
+ node T_170587 = bits(tags, 40, 40)
+ T_170561[1].coh.outer.makeRelease$default$3 := T_170587
+ node T_170588 = bits(tags, 41, 41)
+ T_170561[1].coh.outer.makeRelease$default$2 := T_170588
+ node T_170589 = bits(tags, 43, 42)
+ T_170561[1].coh.outer.state := T_170589
+ node T_170590 = bits(tags, 44, 44)
+ T_170561[1].coh.inner.makeGrant$default$4 := T_170590
+ node T_170591 = bits(tags, 45, 45)
+ T_170561[1].coh.inner.makeGrant$default$3 := T_170591
+ node T_170592 = bits(tags, 46, 46)
+ T_170561[1].coh.inner.sharers := T_170592
+ node T_170593 = bits(tags, 47, 47)
+ T_170561[1].coh.outer.makeVoluntaryWriteback$default$4 := T_170593
+ node T_170594 = bits(tags, 48, 48)
+ T_170561[1].coh.outer.makeVoluntaryWriteback$default$3 := T_170594
+ node T_170595 = bits(tags, 49, 49)
+ T_170561[1].coh.outer.makeVoluntaryRelease$default$5 := T_170595
+ node T_170596 = bits(tags, 50, 50)
+ T_170561[1].coh.outer.makeVoluntaryRelease$default$4 := T_170596
+ node T_170597 = bits(tags, 51, 51)
+ T_170561[1].coh.outer.makeRelease$default$3 := T_170597
+ node T_170598 = bits(tags, 52, 52)
+ T_170561[1].coh.outer.makeRelease$default$2 := T_170598
+ node T_170599 = bits(tags, 54, 53)
+ T_170561[1].coh.outer.state := T_170599
+ node T_170600 = bits(tags, 55, 55)
+ T_170561[1].coh.inner.makeGrant$default$4 := T_170600
+ node T_170601 = bits(tags, 56, 56)
+ T_170561[1].coh.inner.makeGrant$default$3 := T_170601
+ node T_170602 = bits(tags, 57, 57)
+ T_170561[1].coh.inner.sharers := T_170602
+ node T_170603 = bits(tags, 71, 58)
+ T_170561[1].tag := T_170603
+ node T_170604 = bits(tags, 72, 72)
+ T_170561[2].coh.outer.makeVoluntaryWriteback$default$4 := T_170604
+ node T_170605 = bits(tags, 73, 73)
+ T_170561[2].coh.outer.makeVoluntaryWriteback$default$3 := T_170605
+ node T_170606 = bits(tags, 74, 74)
+ T_170561[2].coh.outer.makeVoluntaryRelease$default$5 := T_170606
+ node T_170607 = bits(tags, 75, 75)
+ T_170561[2].coh.outer.makeVoluntaryRelease$default$4 := T_170607
+ node T_170608 = bits(tags, 76, 76)
+ T_170561[2].coh.outer.makeRelease$default$3 := T_170608
+ node T_170609 = bits(tags, 77, 77)
+ T_170561[2].coh.outer.makeRelease$default$2 := T_170609
+ node T_170610 = bits(tags, 79, 78)
+ T_170561[2].coh.outer.state := T_170610
+ node T_170611 = bits(tags, 80, 80)
+ T_170561[2].coh.inner.makeGrant$default$4 := T_170611
+ node T_170612 = bits(tags, 81, 81)
+ T_170561[2].coh.inner.makeGrant$default$3 := T_170612
+ node T_170613 = bits(tags, 82, 82)
+ T_170561[2].coh.inner.sharers := T_170613
+ node T_170614 = bits(tags, 83, 83)
+ T_170561[2].coh.outer.makeVoluntaryWriteback$default$4 := T_170614
+ node T_170615 = bits(tags, 84, 84)
+ T_170561[2].coh.outer.makeVoluntaryWriteback$default$3 := T_170615
+ node T_170616 = bits(tags, 85, 85)
+ T_170561[2].coh.outer.makeVoluntaryRelease$default$5 := T_170616
+ node T_170617 = bits(tags, 86, 86)
+ T_170561[2].coh.outer.makeVoluntaryRelease$default$4 := T_170617
+ node T_170618 = bits(tags, 87, 87)
+ T_170561[2].coh.outer.makeRelease$default$3 := T_170618
+ node T_170619 = bits(tags, 88, 88)
+ T_170561[2].coh.outer.makeRelease$default$2 := T_170619
+ node T_170620 = bits(tags, 90, 89)
+ T_170561[2].coh.outer.state := T_170620
+ node T_170621 = bits(tags, 91, 91)
+ T_170561[2].coh.inner.makeGrant$default$4 := T_170621
+ node T_170622 = bits(tags, 92, 92)
+ T_170561[2].coh.inner.makeGrant$default$3 := T_170622
+ node T_170623 = bits(tags, 93, 93)
+ T_170561[2].coh.inner.sharers := T_170623
+ node T_170624 = bits(tags, 107, 94)
+ T_170561[2].tag := T_170624
+ node T_170625 = bits(tags, 108, 108)
+ T_170561[3].coh.outer.makeVoluntaryWriteback$default$4 := T_170625
+ node T_170626 = bits(tags, 109, 109)
+ T_170561[3].coh.outer.makeVoluntaryWriteback$default$3 := T_170626
+ node T_170627 = bits(tags, 110, 110)
+ T_170561[3].coh.outer.makeVoluntaryRelease$default$5 := T_170627
+ node T_170628 = bits(tags, 111, 111)
+ T_170561[3].coh.outer.makeVoluntaryRelease$default$4 := T_170628
+ node T_170629 = bits(tags, 112, 112)
+ T_170561[3].coh.outer.makeRelease$default$3 := T_170629
+ node T_170630 = bits(tags, 113, 113)
+ T_170561[3].coh.outer.makeRelease$default$2 := T_170630
+ node T_170631 = bits(tags, 115, 114)
+ T_170561[3].coh.outer.state := T_170631
+ node T_170632 = bits(tags, 116, 116)
+ T_170561[3].coh.inner.makeGrant$default$4 := T_170632
+ node T_170633 = bits(tags, 117, 117)
+ T_170561[3].coh.inner.makeGrant$default$3 := T_170633
+ node T_170634 = bits(tags, 118, 118)
+ T_170561[3].coh.inner.sharers := T_170634
+ node T_170635 = bits(tags, 119, 119)
+ T_170561[3].coh.outer.makeVoluntaryWriteback$default$4 := T_170635
+ node T_170636 = bits(tags, 120, 120)
+ T_170561[3].coh.outer.makeVoluntaryWriteback$default$3 := T_170636
+ node T_170637 = bits(tags, 121, 121)
+ T_170561[3].coh.outer.makeVoluntaryRelease$default$5 := T_170637
+ node T_170638 = bits(tags, 122, 122)
+ T_170561[3].coh.outer.makeVoluntaryRelease$default$4 := T_170638
+ node T_170639 = bits(tags, 123, 123)
+ T_170561[3].coh.outer.makeRelease$default$3 := T_170639
+ node T_170640 = bits(tags, 124, 124)
+ T_170561[3].coh.outer.makeRelease$default$2 := T_170640
+ node T_170641 = bits(tags, 126, 125)
+ T_170561[3].coh.outer.state := T_170641
+ node T_170642 = bits(tags, 127, 127)
+ T_170561[3].coh.inner.makeGrant$default$4 := T_170642
+ node T_170643 = bits(tags, 128, 128)
+ T_170561[3].coh.inner.makeGrant$default$3 := T_170643
+ node T_170644 = bits(tags, 129, 129)
+ T_170561[3].coh.inner.sharers := T_170644
+ node T_170645 = bits(tags, 143, 130)
+ T_170561[3].tag := T_170645
+ node T_170646 = bits(tags, 144, 144)
+ T_170561[4].coh.outer.makeVoluntaryWriteback$default$4 := T_170646
+ node T_170647 = bits(tags, 145, 145)
+ T_170561[4].coh.outer.makeVoluntaryWriteback$default$3 := T_170647
+ node T_170648 = bits(tags, 146, 146)
+ T_170561[4].coh.outer.makeVoluntaryRelease$default$5 := T_170648
+ node T_170649 = bits(tags, 147, 147)
+ T_170561[4].coh.outer.makeVoluntaryRelease$default$4 := T_170649
+ node T_170650 = bits(tags, 148, 148)
+ T_170561[4].coh.outer.makeRelease$default$3 := T_170650
+ node T_170651 = bits(tags, 149, 149)
+ T_170561[4].coh.outer.makeRelease$default$2 := T_170651
+ node T_170652 = bits(tags, 151, 150)
+ T_170561[4].coh.outer.state := T_170652
+ node T_170653 = bits(tags, 152, 152)
+ T_170561[4].coh.inner.makeGrant$default$4 := T_170653
+ node T_170654 = bits(tags, 153, 153)
+ T_170561[4].coh.inner.makeGrant$default$3 := T_170654
+ node T_170655 = bits(tags, 154, 154)
+ T_170561[4].coh.inner.sharers := T_170655
+ node T_170656 = bits(tags, 155, 155)
+ T_170561[4].coh.outer.makeVoluntaryWriteback$default$4 := T_170656
+ node T_170657 = bits(tags, 156, 156)
+ T_170561[4].coh.outer.makeVoluntaryWriteback$default$3 := T_170657
+ node T_170658 = bits(tags, 157, 157)
+ T_170561[4].coh.outer.makeVoluntaryRelease$default$5 := T_170658
+ node T_170659 = bits(tags, 158, 158)
+ T_170561[4].coh.outer.makeVoluntaryRelease$default$4 := T_170659
+ node T_170660 = bits(tags, 159, 159)
+ T_170561[4].coh.outer.makeRelease$default$3 := T_170660
+ node T_170661 = bits(tags, 160, 160)
+ T_170561[4].coh.outer.makeRelease$default$2 := T_170661
+ node T_170662 = bits(tags, 162, 161)
+ T_170561[4].coh.outer.state := T_170662
+ node T_170663 = bits(tags, 163, 163)
+ T_170561[4].coh.inner.makeGrant$default$4 := T_170663
+ node T_170664 = bits(tags, 164, 164)
+ T_170561[4].coh.inner.makeGrant$default$3 := T_170664
+ node T_170665 = bits(tags, 165, 165)
+ T_170561[4].coh.inner.sharers := T_170665
+ node T_170666 = bits(tags, 179, 166)
+ T_170561[4].tag := T_170666
+ node T_170667 = bits(tags, 180, 180)
+ T_170561[5].coh.outer.makeVoluntaryWriteback$default$4 := T_170667
+ node T_170668 = bits(tags, 181, 181)
+ T_170561[5].coh.outer.makeVoluntaryWriteback$default$3 := T_170668
+ node T_170669 = bits(tags, 182, 182)
+ T_170561[5].coh.outer.makeVoluntaryRelease$default$5 := T_170669
+ node T_170670 = bits(tags, 183, 183)
+ T_170561[5].coh.outer.makeVoluntaryRelease$default$4 := T_170670
+ node T_170671 = bits(tags, 184, 184)
+ T_170561[5].coh.outer.makeRelease$default$3 := T_170671
+ node T_170672 = bits(tags, 185, 185)
+ T_170561[5].coh.outer.makeRelease$default$2 := T_170672
+ node T_170673 = bits(tags, 187, 186)
+ T_170561[5].coh.outer.state := T_170673
+ node T_170674 = bits(tags, 188, 188)
+ T_170561[5].coh.inner.makeGrant$default$4 := T_170674
+ node T_170675 = bits(tags, 189, 189)
+ T_170561[5].coh.inner.makeGrant$default$3 := T_170675
+ node T_170676 = bits(tags, 190, 190)
+ T_170561[5].coh.inner.sharers := T_170676
+ node T_170677 = bits(tags, 191, 191)
+ T_170561[5].coh.outer.makeVoluntaryWriteback$default$4 := T_170677
+ node T_170678 = bits(tags, 192, 192)
+ T_170561[5].coh.outer.makeVoluntaryWriteback$default$3 := T_170678
+ node T_170679 = bits(tags, 193, 193)
+ T_170561[5].coh.outer.makeVoluntaryRelease$default$5 := T_170679
+ node T_170680 = bits(tags, 194, 194)
+ T_170561[5].coh.outer.makeVoluntaryRelease$default$4 := T_170680
+ node T_170681 = bits(tags, 195, 195)
+ T_170561[5].coh.outer.makeRelease$default$3 := T_170681
+ node T_170682 = bits(tags, 196, 196)
+ T_170561[5].coh.outer.makeRelease$default$2 := T_170682
+ node T_170683 = bits(tags, 198, 197)
+ T_170561[5].coh.outer.state := T_170683
+ node T_170684 = bits(tags, 199, 199)
+ T_170561[5].coh.inner.makeGrant$default$4 := T_170684
+ node T_170685 = bits(tags, 200, 200)
+ T_170561[5].coh.inner.makeGrant$default$3 := T_170685
+ node T_170686 = bits(tags, 201, 201)
+ T_170561[5].coh.inner.sharers := T_170686
+ node T_170687 = bits(tags, 215, 202)
+ T_170561[5].tag := T_170687
+ node T_170688 = bits(tags, 216, 216)
+ T_170561[6].coh.outer.makeVoluntaryWriteback$default$4 := T_170688
+ node T_170689 = bits(tags, 217, 217)
+ T_170561[6].coh.outer.makeVoluntaryWriteback$default$3 := T_170689
+ node T_170690 = bits(tags, 218, 218)
+ T_170561[6].coh.outer.makeVoluntaryRelease$default$5 := T_170690
+ node T_170691 = bits(tags, 219, 219)
+ T_170561[6].coh.outer.makeVoluntaryRelease$default$4 := T_170691
+ node T_170692 = bits(tags, 220, 220)
+ T_170561[6].coh.outer.makeRelease$default$3 := T_170692
+ node T_170693 = bits(tags, 221, 221)
+ T_170561[6].coh.outer.makeRelease$default$2 := T_170693
+ node T_170694 = bits(tags, 223, 222)
+ T_170561[6].coh.outer.state := T_170694
+ node T_170695 = bits(tags, 224, 224)
+ T_170561[6].coh.inner.makeGrant$default$4 := T_170695
+ node T_170696 = bits(tags, 225, 225)
+ T_170561[6].coh.inner.makeGrant$default$3 := T_170696
+ node T_170697 = bits(tags, 226, 226)
+ T_170561[6].coh.inner.sharers := T_170697
+ node T_170698 = bits(tags, 227, 227)
+ T_170561[6].coh.outer.makeVoluntaryWriteback$default$4 := T_170698
+ node T_170699 = bits(tags, 228, 228)
+ T_170561[6].coh.outer.makeVoluntaryWriteback$default$3 := T_170699
+ node T_170700 = bits(tags, 229, 229)
+ T_170561[6].coh.outer.makeVoluntaryRelease$default$5 := T_170700
+ node T_170701 = bits(tags, 230, 230)
+ T_170561[6].coh.outer.makeVoluntaryRelease$default$4 := T_170701
+ node T_170702 = bits(tags, 231, 231)
+ T_170561[6].coh.outer.makeRelease$default$3 := T_170702
+ node T_170703 = bits(tags, 232, 232)
+ T_170561[6].coh.outer.makeRelease$default$2 := T_170703
+ node T_170704 = bits(tags, 234, 233)
+ T_170561[6].coh.outer.state := T_170704
+ node T_170705 = bits(tags, 235, 235)
+ T_170561[6].coh.inner.makeGrant$default$4 := T_170705
+ node T_170706 = bits(tags, 236, 236)
+ T_170561[6].coh.inner.makeGrant$default$3 := T_170706
+ node T_170707 = bits(tags, 237, 237)
+ T_170561[6].coh.inner.sharers := T_170707
+ node T_170708 = bits(tags, 251, 238)
+ T_170561[6].tag := T_170708
+ node T_170709 = bits(tags, 252, 252)
+ T_170561[7].coh.outer.makeVoluntaryWriteback$default$4 := T_170709
+ node T_170710 = bits(tags, 253, 253)
+ T_170561[7].coh.outer.makeVoluntaryWriteback$default$3 := T_170710
+ node T_170711 = bits(tags, 254, 254)
+ T_170561[7].coh.outer.makeVoluntaryRelease$default$5 := T_170711
+ node T_170712 = bits(tags, 255, 255)
+ T_170561[7].coh.outer.makeVoluntaryRelease$default$4 := T_170712
+ node T_170713 = bits(tags, 256, 256)
+ T_170561[7].coh.outer.makeRelease$default$3 := T_170713
+ node T_170714 = bits(tags, 257, 257)
+ T_170561[7].coh.outer.makeRelease$default$2 := T_170714
+ node T_170715 = bits(tags, 259, 258)
+ T_170561[7].coh.outer.state := T_170715
+ node T_170716 = bits(tags, 260, 260)
+ T_170561[7].coh.inner.makeGrant$default$4 := T_170716
+ node T_170717 = bits(tags, 261, 261)
+ T_170561[7].coh.inner.makeGrant$default$3 := T_170717
+ node T_170718 = bits(tags, 262, 262)
+ T_170561[7].coh.inner.sharers := T_170718
+ node T_170719 = bits(tags, 263, 263)
+ T_170561[7].coh.outer.makeVoluntaryWriteback$default$4 := T_170719
+ node T_170720 = bits(tags, 264, 264)
+ T_170561[7].coh.outer.makeVoluntaryWriteback$default$3 := T_170720
+ node T_170721 = bits(tags, 265, 265)
+ T_170561[7].coh.outer.makeVoluntaryRelease$default$5 := T_170721
+ node T_170722 = bits(tags, 266, 266)
+ T_170561[7].coh.outer.makeVoluntaryRelease$default$4 := T_170722
+ node T_170723 = bits(tags, 267, 267)
+ T_170561[7].coh.outer.makeRelease$default$3 := T_170723
+ node T_170724 = bits(tags, 268, 268)
+ T_170561[7].coh.outer.makeRelease$default$2 := T_170724
+ node T_170725 = bits(tags, 270, 269)
+ T_170561[7].coh.outer.state := T_170725
+ node T_170726 = bits(tags, 271, 271)
+ T_170561[7].coh.inner.makeGrant$default$4 := T_170726
+ node T_170727 = bits(tags, 272, 272)
+ T_170561[7].coh.inner.makeGrant$default$3 := T_170727
+ node T_170728 = bits(tags, 273, 273)
+ T_170561[7].coh.inner.sharers := T_170728
+ node T_170729 = bits(tags, 287, 274)
+ T_170561[7].tag := T_170729
+ resp[0] := T_170561[0]
+ resp[1] := T_170561[1]
+ resp[2] := T_170561[2]
+ resp[3] := T_170561[3]
+ resp[4] := T_170561[4]
+ resp[5] := T_170561[5]
+ resp[6] := T_170561[6]
+ resp[7] := T_170561[7]
+ node T_170730 = eq(rst, UInt<1>(0))
+ node T_170731 = eq(write.valid, UInt<1>(0))
+ node T_170732 = and(T_170730, T_170731)
+ read.ready := T_170732
+ node T_170733 = eq(rst, UInt<1>(0))
+ write.ready := T_170733
+ module L2MetadataArray :
+ output read : {flip ready : UInt<1>, valid : UInt<1>, bits : {idx : UInt<12>, id : UInt<2>, tag : UInt<14>}}
+ input resp : {valid : UInt<1>, bits : {id : UInt<2>, tag_match : UInt<1>, meta : {tag : UInt<14>, coh : {inner : {sharers : UInt<1>, makeGrant$default$3 : UInt<1>, makeGrant$default$4 : UInt<1>}, outer : {state : UInt<2>, makeRelease$default$2 : UInt<1>, makeRelease$default$3 : UInt<1>, makeVoluntaryRelease$default$4 : UInt<1>, makeVoluntaryRelease$default$5 : UInt<1>, makeVoluntaryWriteback$default$3 : UInt<1>, makeVoluntaryWriteback$default$4 : UInt<1>}}}, way_en : UInt<8>}}
+ output write : {flip ready : UInt<1>, valid : UInt<1>, bits : {idx : UInt<12>, way_en : UInt<8>, data : {tag : UInt<14>, coh : {inner : {sharers : UInt<1>, makeGrant$default$3 : UInt<1>, makeGrant$default$4 : UInt<1>}, outer : {state : UInt<2>, makeRelease$default$2 : UInt<1>, makeRelease$default$3 : UInt<1>, makeVoluntaryRelease$default$4 : UInt<1>, makeVoluntaryRelease$default$5 : UInt<1>, makeVoluntaryWriteback$default$3 : UInt<1>, makeVoluntaryWriteback$default$4 : UInt<1>}}}, id : UInt<2>}}
+
+ wire T_170734 : UInt<3>[3]
+ T_170734[0] := UInt<3>(0)
+ T_170734[1] := UInt<3>(1)
+ T_170734[2] := UInt<3>(2)
+ wire T_170735 : UInt<2>[2]
+ T_170735[0] := UInt<2>(0)
+ T_170735[1] := UInt<2>(1)
+ wire T_170736 : UInt<2>[3]
+ T_170736[0] := UInt<2>(1)
+ T_170736[1] := UInt<2>(2)
+ T_170736[2] := UInt<2>(3)
+ wire T_170737 : UInt<2>[2]
+ T_170737[0] := UInt<2>(2)
+ T_170737[1] := UInt<2>(3)
+ wire T_170738 : UInt<2>[1]
+ T_170738[0] := UInt<2>(3)
+ wire T_170739 : UInt<3>[3]
+ T_170739[0] := UInt<3>(0)
+ T_170739[1] := UInt<3>(1)
+ T_170739[2] := UInt<3>(2)
+ wire T_170740 : UInt<2>[2]
+ T_170740[0] := UInt<2>(0)
+ T_170740[1] := UInt<2>(1)
+ wire T_170741 : UInt<2>[3]
+ T_170741[0] := UInt<2>(1)
+ T_170741[1] := UInt<2>(2)
+ T_170741[2] := UInt<2>(3)
+ wire T_170742 : UInt<2>[2]
+ T_170742[0] := UInt<2>(2)
+ T_170742[1] := UInt<2>(3)
+ wire T_170743 : UInt<2>[1]
+ T_170743[0] := UInt<2>(3)
+ wire T_170744 : UInt<3>[3]
+ T_170744[0] := UInt<3>(0)
+ T_170744[1] := UInt<3>(1)
+ T_170744[2] := UInt<3>(2)
+ wire T_170745 : UInt<0>[1]
+ T_170745[0] := UInt<0>(0)
+ wire T_170746 : UInt<2>[2]
+ T_170746[0] := UInt<2>(1)
+ T_170746[1] := UInt<2>(2)
+ wire T_170747 : UInt<2>[2]
+ T_170747[0] := UInt<2>(1)
+ T_170747[1] := UInt<2>(2)
+ wire T_170748 : UInt<2>[1]
+ T_170748[0] := UInt<2>(2)
+ wire T_170749 : UInt<3>[3]
+ T_170749[0] := UInt<3>(0)
+ T_170749[1] := UInt<3>(1)
+ T_170749[2] := UInt<3>(2)
+ wire T_170750 : UInt<2>[2]
+ T_170750[0] := UInt<2>(0)
+ T_170750[1] := UInt<2>(1)
+ wire T_170751 : UInt<2>[3]
+ T_170751[0] := UInt<2>(1)
+ T_170751[1] := UInt<2>(2)
+ T_170751[2] := UInt<2>(3)
+ wire T_170752 : UInt<2>[2]
+ T_170752[0] := UInt<2>(2)
+ T_170752[1] := UInt<2>(3)
+ wire T_170753 : UInt<2>[1]
+ T_170753[0] := UInt<2>(3)
+ wire T_170754 : UInt<3>[3]
+ T_170754[0] := UInt<3>(0)
+ T_170754[1] := UInt<3>(1)
+ T_170754[2] := UInt<3>(2)
+ wire T_170755 : UInt<2>[2]
+ T_170755[0] := UInt<2>(0)
+ T_170755[1] := UInt<2>(1)
+ wire T_170756 : UInt<2>[3]
+ T_170756[0] := UInt<2>(1)
+ T_170756[1] := UInt<2>(2)
+ T_170756[2] := UInt<2>(3)
+ wire T_170757 : UInt<2>[2]
+ T_170757[0] := UInt<2>(2)
+ T_170757[1] := UInt<2>(3)
+ wire T_170758 : UInt<2>[1]
+ T_170758[0] := UInt<2>(3)
+ wire T_170759 : UInt<3>[3]
+ T_170759[0] := UInt<3>(0)
+ T_170759[1] := UInt<3>(1)
+ T_170759[2] := UInt<3>(2)
+ wire T_170760 : UInt<0>[1]
+ T_170760[0] := UInt<0>(0)
+ wire T_170761 : UInt<2>[2]
+ T_170761[0] := UInt<2>(1)
+ T_170761[1] := UInt<2>(2)
+ wire T_170762 : UInt<2>[2]
+ T_170762[0] := UInt<2>(1)
+ T_170762[1] := UInt<2>(2)
+ wire T_170763 : UInt<2>[1]
+ T_170763[0] := UInt<2>(2)
+ wire T_170764 : UInt<3>[3]
+ T_170764[0] := UInt<3>(0)
+ T_170764[1] := UInt<3>(1)
+ T_170764[2] := UInt<3>(2)
+ wire T_170765 : UInt<2>[2]
+ T_170765[0] := UInt<2>(0)
+ T_170765[1] := UInt<2>(1)
+ wire T_170766 : UInt<2>[3]
+ T_170766[0] := UInt<2>(1)
+ T_170766[1] := UInt<2>(2)
+ T_170766[2] := UInt<2>(3)
+ wire T_170767 : UInt<2>[2]
+ T_170767[0] := UInt<2>(2)
+ T_170767[1] := UInt<2>(3)
+ wire T_170768 : UInt<2>[1]
+ T_170768[0] := UInt<2>(3)
+ wire T_170769 : UInt<3>[3]
+ T_170769[0] := UInt<3>(0)
+ T_170769[1] := UInt<3>(1)
+ T_170769[2] := UInt<3>(2)
+ wire T_170770 : UInt<2>[2]
+ T_170770[0] := UInt<2>(0)
+ T_170770[1] := UInt<2>(1)
+ wire T_170771 : UInt<2>[3]
+ T_170771[0] := UInt<2>(1)
+ T_170771[1] := UInt<2>(2)
+ T_170771[2] := UInt<2>(3)
+ wire T_170772 : UInt<2>[2]
+ T_170772[0] := UInt<2>(2)
+ T_170772[1] := UInt<2>(3)
+ wire T_170773 : UInt<2>[1]
+ T_170773[0] := UInt<2>(3)
+ wire T_170774 : UInt<3>[3]
+ T_170774[0] := UInt<3>(0)
+ T_170774[1] := UInt<3>(1)
+ T_170774[2] := UInt<3>(2)
+ wire T_170775 : UInt<0>[1]
+ T_170775[0] := UInt<0>(0)
+ wire T_170776 : UInt<2>[2]
+ T_170776[0] := UInt<2>(1)
+ T_170776[1] := UInt<2>(2)
+ wire T_170777 : UInt<2>[2]
+ T_170777[0] := UInt<2>(1)
+ T_170777[1] := UInt<2>(2)
+ wire T_170778 : UInt<2>[1]
+ T_170778[0] := UInt<2>(2)
+ wire T_170779 : UInt<3>[3]
+ T_170779[0] := UInt<3>(0)
+ T_170779[1] := UInt<3>(1)
+ T_170779[2] := UInt<3>(2)
+ wire T_170780 : UInt<2>[2]
+ T_170780[0] := UInt<2>(0)
+ T_170780[1] := UInt<2>(1)
+ wire T_170781 : UInt<2>[3]
+ T_170781[0] := UInt<2>(1)
+ T_170781[1] := UInt<2>(2)
+ T_170781[2] := UInt<2>(3)
+ wire T_170782 : UInt<2>[2]
+ T_170782[0] := UInt<2>(2)
+ T_170782[1] := UInt<2>(3)
+ wire T_170783 : UInt<2>[1]
+ T_170783[0] := UInt<2>(3)
+ wire T_170784 : UInt<3>[3]
+ T_170784[0] := UInt<3>(0)
+ T_170784[1] := UInt<3>(1)
+ T_170784[2] := UInt<3>(2)
+ wire T_170785 : UInt<2>[2]
+ T_170785[0] := UInt<2>(0)
+ T_170785[1] := UInt<2>(1)
+ wire T_170786 : UInt<2>[3]
+ T_170786[0] := UInt<2>(1)
+ T_170786[1] := UInt<2>(2)
+ T_170786[2] := UInt<2>(3)
+ wire T_170787 : UInt<2>[2]
+ T_170787[0] := UInt<2>(2)
+ T_170787[1] := UInt<2>(3)
+ wire T_170788 : UInt<2>[1]
+ T_170788[0] := UInt<2>(3)
+ wire T_170789 : UInt<3>[3]
+ T_170789[0] := UInt<3>(0)
+ T_170789[1] := UInt<3>(1)
+ T_170789[2] := UInt<3>(2)
+ wire T_170790 : UInt<0>[1]
+ T_170790[0] := UInt<0>(0)
+ wire T_170791 : UInt<2>[2]
+ T_170791[0] := UInt<2>(1)
+ T_170791[1] := UInt<2>(2)
+ wire T_170792 : UInt<2>[2]
+ T_170792[0] := UInt<2>(1)
+ T_170792[1] := UInt<2>(2)
+ wire T_170793 : UInt<2>[1]
+ T_170793[0] := UInt<2>(2)
+ wire T_170794 : UInt<3>[3]
+ T_170794[0] := UInt<3>(0)
+ T_170794[1] := UInt<3>(1)
+ T_170794[2] := UInt<3>(2)
+ wire T_170795 : UInt<2>[2]
+ T_170795[0] := UInt<2>(0)
+ T_170795[1] := UInt<2>(1)
+ wire T_170796 : UInt<2>[3]
+ T_170796[0] := UInt<2>(1)
+ T_170796[1] := UInt<2>(2)
+ T_170796[2] := UInt<2>(3)
+ wire T_170797 : UInt<2>[2]
+ T_170797[0] := UInt<2>(2)
+ T_170797[1] := UInt<2>(3)
+ wire T_170798 : UInt<2>[1]
+ T_170798[0] := UInt<2>(3)
+ wire T_170799 : UInt<3>[3]
+ T_170799[0] := UInt<3>(0)
+ T_170799[1] := UInt<3>(1)
+ T_170799[2] := UInt<3>(2)
+ wire T_170800 : UInt<2>[2]
+ T_170800[0] := UInt<2>(0)
+ T_170800[1] := UInt<2>(1)
+ wire T_170801 : UInt<2>[3]
+ T_170801[0] := UInt<2>(1)
+ T_170801[1] := UInt<2>(2)
+ T_170801[2] := UInt<2>(3)
+ wire T_170802 : UInt<2>[2]
+ T_170802[0] := UInt<2>(2)
+ T_170802[1] := UInt<2>(3)
+ wire T_170803 : UInt<2>[1]
+ T_170803[0] := UInt<2>(3)
+ wire T_170804 : UInt<3>[3]
+ T_170804[0] := UInt<3>(0)
+ T_170804[1] := UInt<3>(1)
+ T_170804[2] := UInt<3>(2)
+ wire T_170805 : UInt<0>[1]
+ T_170805[0] := UInt<0>(0)
+ wire T_170806 : UInt<2>[2]
+ T_170806[0] := UInt<2>(1)
+ T_170806[1] := UInt<2>(2)
+ wire T_170807 : UInt<2>[2]
+ T_170807[0] := UInt<2>(1)
+ T_170807[1] := UInt<2>(2)
+ wire T_170808 : UInt<2>[1]
+ T_170808[0] := UInt<2>(2)
+ wire T_170809 : UInt<3>[3]
+ T_170809[0] := UInt<3>(0)
+ T_170809[1] := UInt<3>(1)
+ T_170809[2] := UInt<3>(2)
+ wire T_170810 : UInt<2>[2]
+ T_170810[0] := UInt<2>(0)
+ T_170810[1] := UInt<2>(1)
+ wire T_170811 : UInt<2>[3]
+ T_170811[0] := UInt<2>(1)
+ T_170811[1] := UInt<2>(2)
+ T_170811[2] := UInt<2>(3)
+ wire T_170812 : UInt<2>[2]
+ T_170812[0] := UInt<2>(2)
+ T_170812[1] := UInt<2>(3)
+ wire T_170813 : UInt<2>[1]
+ T_170813[0] := UInt<2>(3)
+ wire T_170814 : UInt<3>[3]
+ T_170814[0] := UInt<3>(0)
+ T_170814[1] := UInt<3>(1)
+ T_170814[2] := UInt<3>(2)
+ wire T_170815 : UInt<2>[2]
+ T_170815[0] := UInt<2>(0)
+ T_170815[1] := UInt<2>(1)
+ wire T_170816 : UInt<2>[3]
+ T_170816[0] := UInt<2>(1)
+ T_170816[1] := UInt<2>(2)
+ T_170816[2] := UInt<2>(3)
+ wire T_170817 : UInt<2>[2]
+ T_170817[0] := UInt<2>(2)
+ T_170817[1] := UInt<2>(3)
+ wire T_170818 : UInt<2>[1]
+ T_170818[0] := UInt<2>(3)
+ wire T_170819 : UInt<3>[3]
+ T_170819[0] := UInt<3>(0)
+ T_170819[1] := UInt<3>(1)
+ T_170819[2] := UInt<3>(2)
+ wire T_170820 : UInt<0>[1]
+ T_170820[0] := UInt<0>(0)
+ wire T_170821 : UInt<2>[2]
+ T_170821[0] := UInt<2>(1)
+ T_170821[1] := UInt<2>(2)
+ wire T_170822 : UInt<2>[2]
+ T_170822[0] := UInt<2>(1)
+ T_170822[1] := UInt<2>(2)
+ wire T_170823 : UInt<2>[1]
+ T_170823[0] := UInt<2>(2)
+ inst meta of MetadataArray
+ meta.read <> read
+ meta.write <> write
+ reg s1_tag : UInt<14>
+ when read.valid : s1_tag := read.bits.tag
+ reg s1_id : UInt<2>
+ when read.valid : s1_id := read.bits.id
+ node T_170824 = and(read.ready, read.valid)
+ reg s1_clk_en : UInt<1>
+ s1_clk_en := T_170824
+ node T_170825 = eq(meta.resp[0].tag, s1_tag)
+ node T_170826 = eq(meta.resp[1].tag, s1_tag)
+ node T_170827 = eq(meta.resp[2].tag, s1_tag)
+ node T_170828 = eq(meta.resp[3].tag, s1_tag)
+ node T_170829 = eq(meta.resp[4].tag, s1_tag)
+ node T_170830 = eq(meta.resp[5].tag, s1_tag)
+ node T_170831 = eq(meta.resp[6].tag, s1_tag)
+ node T_170832 = eq(meta.resp[7].tag, s1_tag)
+ wire s1_tag_eq_way : UInt<1>[8]
+ s1_tag_eq_way[0] := T_170825
+ s1_tag_eq_way[1] := T_170826
+ s1_tag_eq_way[2] := T_170827
+ s1_tag_eq_way[3] := T_170828
+ s1_tag_eq_way[4] := T_170829
+ s1_tag_eq_way[5] := T_170830
+ s1_tag_eq_way[6] := T_170831
+ s1_tag_eq_way[7] := T_170832
+ node T_170833 = neq(meta.resp[0].coh.outer.state, UInt<2>(0))
+ node T_170834 = and(s1_tag_eq_way[0], T_170833)
+ node T_170835 = neq(meta.resp[1].coh.outer.state, UInt<2>(0))
+ node T_170836 = and(s1_tag_eq_way[1], T_170835)
+ node T_170837 = neq(meta.resp[2].coh.outer.state, UInt<2>(0))
+ node T_170838 = and(s1_tag_eq_way[2], T_170837)
+ node T_170839 = neq(meta.resp[3].coh.outer.state, UInt<2>(0))
+ node T_170840 = and(s1_tag_eq_way[3], T_170839)
+ node T_170841 = neq(meta.resp[4].coh.outer.state, UInt<2>(0))
+ node T_170842 = and(s1_tag_eq_way[4], T_170841)
+ node T_170843 = neq(meta.resp[5].coh.outer.state, UInt<2>(0))
+ node T_170844 = and(s1_tag_eq_way[5], T_170843)
+ node T_170845 = neq(meta.resp[6].coh.outer.state, UInt<2>(0))
+ node T_170846 = and(s1_tag_eq_way[6], T_170845)
+ node T_170847 = neq(meta.resp[7].coh.outer.state, UInt<2>(0))
+ node T_170848 = and(s1_tag_eq_way[7], T_170847)
+ wire T_170849 : UInt<1>[8]
+ T_170849[0] := T_170834
+ T_170849[1] := T_170836
+ T_170849[2] := T_170838
+ T_170849[3] := T_170840
+ T_170849[4] := T_170842
+ T_170849[5] := T_170844
+ T_170849[6] := T_170846
+ T_170849[7] := T_170848
+ node T_170850 = cat(T_170849[7], T_170849[6])
+ node T_170851 = cat(T_170849[5], T_170849[4])
+ node T_170852 = cat(T_170850, T_170851)
+ node T_170853 = cat(T_170849[3], T_170849[2])
+ node T_170854 = cat(T_170849[1], T_170849[0])
+ node T_170855 = cat(T_170853, T_170854)
+ node s1_tag_match_way = cat(T_170852, T_170855)
+ reg s2_tag_match_way : UInt<8>
+ when s1_clk_en : s2_tag_match_way := s1_tag_match_way
+ node T_170856 = eq(s2_tag_match_way, UInt<1>(0))
+ node s2_tag_match = eq(T_170856, UInt<1>(0))
+ wire T_170857 : UInt<3>[3]
+ T_170857[0] := UInt<3>(0)
+ T_170857[1] := UInt<3>(1)
+ T_170857[2] := UInt<3>(2)
+ wire T_170858 : UInt<2>[2]
+ T_170858[0] := UInt<2>(0)
+ T_170858[1] := UInt<2>(1)
+ wire T_170859 : UInt<2>[3]
+ T_170859[0] := UInt<2>(1)
+ T_170859[1] := UInt<2>(2)
+ T_170859[2] := UInt<2>(3)
+ wire T_170860 : UInt<2>[2]
+ T_170860[0] := UInt<2>(2)
+ T_170860[1] := UInt<2>(3)
+ wire T_170861 : UInt<2>[1]
+ T_170861[0] := UInt<2>(3)
+ wire T_170862 : UInt<3>[3]
+ T_170862[0] := UInt<3>(0)
+ T_170862[1] := UInt<3>(1)
+ T_170862[2] := UInt<3>(2)
+ wire T_170863 : UInt<2>[2]
+ T_170863[0] := UInt<2>(0)
+ T_170863[1] := UInt<2>(1)
+ wire T_170864 : UInt<2>[3]
+ T_170864[0] := UInt<2>(1)
+ T_170864[1] := UInt<2>(2)
+ T_170864[2] := UInt<2>(3)
+ wire T_170865 : UInt<2>[2]
+ T_170865[0] := UInt<2>(2)
+ T_170865[1] := UInt<2>(3)
+ wire T_170866 : UInt<2>[1]
+ T_170866[0] := UInt<2>(3)
+ wire T_170867 : UInt<3>[3]
+ T_170867[0] := UInt<3>(0)
+ T_170867[1] := UInt<3>(1)
+ T_170867[2] := UInt<3>(2)
+ wire T_170868 : UInt<0>[1]
+ T_170868[0] := UInt<0>(0)
+ wire T_170869 : UInt<2>[2]
+ T_170869[0] := UInt<2>(1)
+ T_170869[1] := UInt<2>(2)
+ wire T_170870 : UInt<2>[2]
+ T_170870[0] := UInt<2>(1)
+ T_170870[1] := UInt<2>(2)
+ wire T_170871 : UInt<2>[1]
+ T_170871[0] := UInt<2>(2)
+ reg T_170872 : {inner : {sharers : UInt<1>, makeGrant$default$3 : UInt<1>, makeGrant$default$4 : UInt<1>}, outer : {state : UInt<2>, makeRelease$default$2 : UInt<1>, makeRelease$default$3 : UInt<1>, makeVoluntaryRelease$default$4 : UInt<1>, makeVoluntaryRelease$default$5 : UInt<1>, makeVoluntaryWriteback$default$3 : UInt<1>, makeVoluntaryWriteback$default$4 : UInt<1>}}
+ when s1_clk_en : T_170872 := meta.resp[0].coh
+ wire T_170873 : UInt<3>[3]
+ T_170873[0] := UInt<3>(0)
+ T_170873[1] := UInt<3>(1)
+ T_170873[2] := UInt<3>(2)
+ wire T_170874 : UInt<2>[2]
+ T_170874[0] := UInt<2>(0)
+ T_170874[1] := UInt<2>(1)
+ wire T_170875 : UInt<2>[3]
+ T_170875[0] := UInt<2>(1)
+ T_170875[1] := UInt<2>(2)
+ T_170875[2] := UInt<2>(3)
+ wire T_170876 : UInt<2>[2]
+ T_170876[0] := UInt<2>(2)
+ T_170876[1] := UInt<2>(3)
+ wire T_170877 : UInt<2>[1]
+ T_170877[0] := UInt<2>(3)
+ wire T_170878 : UInt<3>[3]
+ T_170878[0] := UInt<3>(0)
+ T_170878[1] := UInt<3>(1)
+ T_170878[2] := UInt<3>(2)
+ wire T_170879 : UInt<2>[2]
+ T_170879[0] := UInt<2>(0)
+ T_170879[1] := UInt<2>(1)
+ wire T_170880 : UInt<2>[3]
+ T_170880[0] := UInt<2>(1)
+ T_170880[1] := UInt<2>(2)
+ T_170880[2] := UInt<2>(3)
+ wire T_170881 : UInt<2>[2]
+ T_170881[0] := UInt<2>(2)
+ T_170881[1] := UInt<2>(3)
+ wire T_170882 : UInt<2>[1]
+ T_170882[0] := UInt<2>(3)
+ wire T_170883 : UInt<3>[3]
+ T_170883[0] := UInt<3>(0)
+ T_170883[1] := UInt<3>(1)
+ T_170883[2] := UInt<3>(2)
+ wire T_170884 : UInt<0>[1]
+ T_170884[0] := UInt<0>(0)
+ wire T_170885 : UInt<2>[2]
+ T_170885[0] := UInt<2>(1)
+ T_170885[1] := UInt<2>(2)
+ wire T_170886 : UInt<2>[2]
+ T_170886[0] := UInt<2>(1)
+ T_170886[1] := UInt<2>(2)
+ wire T_170887 : UInt<2>[1]
+ T_170887[0] := UInt<2>(2)
+ reg T_170888 : {inner : {sharers : UInt<1>, makeGrant$default$3 : UInt<1>, makeGrant$default$4 : UInt<1>}, outer : {state : UInt<2>, makeRelease$default$2 : UInt<1>, makeRelease$default$3 : UInt<1>, makeVoluntaryRelease$default$4 : UInt<1>, makeVoluntaryRelease$default$5 : UInt<1>, makeVoluntaryWriteback$default$3 : UInt<1>, makeVoluntaryWriteback$default$4 : UInt<1>}}
+ when s1_clk_en : T_170888 := meta.resp[1].coh
+ wire T_170889 : UInt<3>[3]
+ T_170889[0] := UInt<3>(0)
+ T_170889[1] := UInt<3>(1)
+ T_170889[2] := UInt<3>(2)
+ wire T_170890 : UInt<2>[2]
+ T_170890[0] := UInt<2>(0)
+ T_170890[1] := UInt<2>(1)
+ wire T_170891 : UInt<2>[3]
+ T_170891[0] := UInt<2>(1)
+ T_170891[1] := UInt<2>(2)
+ T_170891[2] := UInt<2>(3)
+ wire T_170892 : UInt<2>[2]
+ T_170892[0] := UInt<2>(2)
+ T_170892[1] := UInt<2>(3)
+ wire T_170893 : UInt<2>[1]
+ T_170893[0] := UInt<2>(3)
+ wire T_170894 : UInt<3>[3]
+ T_170894[0] := UInt<3>(0)
+ T_170894[1] := UInt<3>(1)
+ T_170894[2] := UInt<3>(2)
+ wire T_170895 : UInt<2>[2]
+ T_170895[0] := UInt<2>(0)
+ T_170895[1] := UInt<2>(1)
+ wire T_170896 : UInt<2>[3]
+ T_170896[0] := UInt<2>(1)
+ T_170896[1] := UInt<2>(2)
+ T_170896[2] := UInt<2>(3)
+ wire T_170897 : UInt<2>[2]
+ T_170897[0] := UInt<2>(2)
+ T_170897[1] := UInt<2>(3)
+ wire T_170898 : UInt<2>[1]
+ T_170898[0] := UInt<2>(3)
+ wire T_170899 : UInt<3>[3]
+ T_170899[0] := UInt<3>(0)
+ T_170899[1] := UInt<3>(1)
+ T_170899[2] := UInt<3>(2)
+ wire T_170900 : UInt<0>[1]
+ T_170900[0] := UInt<0>(0)
+ wire T_170901 : UInt<2>[2]
+ T_170901[0] := UInt<2>(1)
+ T_170901[1] := UInt<2>(2)
+ wire T_170902 : UInt<2>[2]
+ T_170902[0] := UInt<2>(1)
+ T_170902[1] := UInt<2>(2)
+ wire T_170903 : UInt<2>[1]
+ T_170903[0] := UInt<2>(2)
+ reg T_170904 : {inner : {sharers : UInt<1>, makeGrant$default$3 : UInt<1>, makeGrant$default$4 : UInt<1>}, outer : {state : UInt<2>, makeRelease$default$2 : UInt<1>, makeRelease$default$3 : UInt<1>, makeVoluntaryRelease$default$4 : UInt<1>, makeVoluntaryRelease$default$5 : UInt<1>, makeVoluntaryWriteback$default$3 : UInt<1>, makeVoluntaryWriteback$default$4 : UInt<1>}}
+ when s1_clk_en : T_170904 := meta.resp[2].coh
+ wire T_170905 : UInt<3>[3]
+ T_170905[0] := UInt<3>(0)
+ T_170905[1] := UInt<3>(1)
+ T_170905[2] := UInt<3>(2)
+ wire T_170906 : UInt<2>[2]
+ T_170906[0] := UInt<2>(0)
+ T_170906[1] := UInt<2>(1)
+ wire T_170907 : UInt<2>[3]
+ T_170907[0] := UInt<2>(1)
+ T_170907[1] := UInt<2>(2)
+ T_170907[2] := UInt<2>(3)
+ wire T_170908 : UInt<2>[2]
+ T_170908[0] := UInt<2>(2)
+ T_170908[1] := UInt<2>(3)
+ wire T_170909 : UInt<2>[1]
+ T_170909[0] := UInt<2>(3)
+ wire T_170910 : UInt<3>[3]
+ T_170910[0] := UInt<3>(0)
+ T_170910[1] := UInt<3>(1)
+ T_170910[2] := UInt<3>(2)
+ wire T_170911 : UInt<2>[2]
+ T_170911[0] := UInt<2>(0)
+ T_170911[1] := UInt<2>(1)
+ wire T_170912 : UInt<2>[3]
+ T_170912[0] := UInt<2>(1)
+ T_170912[1] := UInt<2>(2)
+ T_170912[2] := UInt<2>(3)
+ wire T_170913 : UInt<2>[2]
+ T_170913[0] := UInt<2>(2)
+ T_170913[1] := UInt<2>(3)
+ wire T_170914 : UInt<2>[1]
+ T_170914[0] := UInt<2>(3)
+ wire T_170915 : UInt<3>[3]
+ T_170915[0] := UInt<3>(0)
+ T_170915[1] := UInt<3>(1)
+ T_170915[2] := UInt<3>(2)
+ wire T_170916 : UInt<0>[1]
+ T_170916[0] := UInt<0>(0)
+ wire T_170917 : UInt<2>[2]
+ T_170917[0] := UInt<2>(1)
+ T_170917[1] := UInt<2>(2)
+ wire T_170918 : UInt<2>[2]
+ T_170918[0] := UInt<2>(1)
+ T_170918[1] := UInt<2>(2)
+ wire T_170919 : UInt<2>[1]
+ T_170919[0] := UInt<2>(2)
+ reg T_170920 : {inner : {sharers : UInt<1>, makeGrant$default$3 : UInt<1>, makeGrant$default$4 : UInt<1>}, outer : {state : UInt<2>, makeRelease$default$2 : UInt<1>, makeRelease$default$3 : UInt<1>, makeVoluntaryRelease$default$4 : UInt<1>, makeVoluntaryRelease$default$5 : UInt<1>, makeVoluntaryWriteback$default$3 : UInt<1>, makeVoluntaryWriteback$default$4 : UInt<1>}}
+ when s1_clk_en : T_170920 := meta.resp[3].coh
+ wire T_170921 : UInt<3>[3]
+ T_170921[0] := UInt<3>(0)
+ T_170921[1] := UInt<3>(1)
+ T_170921[2] := UInt<3>(2)
+ wire T_170922 : UInt<2>[2]
+ T_170922[0] := UInt<2>(0)
+ T_170922[1] := UInt<2>(1)
+ wire T_170923 : UInt<2>[3]
+ T_170923[0] := UInt<2>(1)
+ T_170923[1] := UInt<2>(2)
+ T_170923[2] := UInt<2>(3)
+ wire T_170924 : UInt<2>[2]
+ T_170924[0] := UInt<2>(2)
+ T_170924[1] := UInt<2>(3)
+ wire T_170925 : UInt<2>[1]
+ T_170925[0] := UInt<2>(3)
+ wire T_170926 : UInt<3>[3]
+ T_170926[0] := UInt<3>(0)
+ T_170926[1] := UInt<3>(1)
+ T_170926[2] := UInt<3>(2)
+ wire T_170927 : UInt<2>[2]
+ T_170927[0] := UInt<2>(0)
+ T_170927[1] := UInt<2>(1)
+ wire T_170928 : UInt<2>[3]
+ T_170928[0] := UInt<2>(1)
+ T_170928[1] := UInt<2>(2)
+ T_170928[2] := UInt<2>(3)
+ wire T_170929 : UInt<2>[2]
+ T_170929[0] := UInt<2>(2)
+ T_170929[1] := UInt<2>(3)
+ wire T_170930 : UInt<2>[1]
+ T_170930[0] := UInt<2>(3)
+ wire T_170931 : UInt<3>[3]
+ T_170931[0] := UInt<3>(0)
+ T_170931[1] := UInt<3>(1)
+ T_170931[2] := UInt<3>(2)
+ wire T_170932 : UInt<0>[1]
+ T_170932[0] := UInt<0>(0)
+ wire T_170933 : UInt<2>[2]
+ T_170933[0] := UInt<2>(1)
+ T_170933[1] := UInt<2>(2)
+ wire T_170934 : UInt<2>[2]
+ T_170934[0] := UInt<2>(1)
+ T_170934[1] := UInt<2>(2)
+ wire T_170935 : UInt<2>[1]
+ T_170935[0] := UInt<2>(2)
+ reg T_170936 : {inner : {sharers : UInt<1>, makeGrant$default$3 : UInt<1>, makeGrant$default$4 : UInt<1>}, outer : {state : UInt<2>, makeRelease$default$2 : UInt<1>, makeRelease$default$3 : UInt<1>, makeVoluntaryRelease$default$4 : UInt<1>, makeVoluntaryRelease$default$5 : UInt<1>, makeVoluntaryWriteback$default$3 : UInt<1>, makeVoluntaryWriteback$default$4 : UInt<1>}}
+ when s1_clk_en : T_170936 := meta.resp[4].coh
+ wire T_170937 : UInt<3>[3]
+ T_170937[0] := UInt<3>(0)
+ T_170937[1] := UInt<3>(1)
+ T_170937[2] := UInt<3>(2)
+ wire T_170938 : UInt<2>[2]
+ T_170938[0] := UInt<2>(0)
+ T_170938[1] := UInt<2>(1)
+ wire T_170939 : UInt<2>[3]
+ T_170939[0] := UInt<2>(1)
+ T_170939[1] := UInt<2>(2)
+ T_170939[2] := UInt<2>(3)
+ wire T_170940 : UInt<2>[2]
+ T_170940[0] := UInt<2>(2)
+ T_170940[1] := UInt<2>(3)
+ wire T_170941 : UInt<2>[1]
+ T_170941[0] := UInt<2>(3)
+ wire T_170942 : UInt<3>[3]
+ T_170942[0] := UInt<3>(0)
+ T_170942[1] := UInt<3>(1)
+ T_170942[2] := UInt<3>(2)
+ wire T_170943 : UInt<2>[2]
+ T_170943[0] := UInt<2>(0)
+ T_170943[1] := UInt<2>(1)
+ wire T_170944 : UInt<2>[3]
+ T_170944[0] := UInt<2>(1)
+ T_170944[1] := UInt<2>(2)
+ T_170944[2] := UInt<2>(3)
+ wire T_170945 : UInt<2>[2]
+ T_170945[0] := UInt<2>(2)
+ T_170945[1] := UInt<2>(3)
+ wire T_170946 : UInt<2>[1]
+ T_170946[0] := UInt<2>(3)
+ wire T_170947 : UInt<3>[3]
+ T_170947[0] := UInt<3>(0)
+ T_170947[1] := UInt<3>(1)
+ T_170947[2] := UInt<3>(2)
+ wire T_170948 : UInt<0>[1]
+ T_170948[0] := UInt<0>(0)
+ wire T_170949 : UInt<2>[2]
+ T_170949[0] := UInt<2>(1)
+ T_170949[1] := UInt<2>(2)
+ wire T_170950 : UInt<2>[2]
+ T_170950[0] := UInt<2>(1)
+ T_170950[1] := UInt<2>(2)
+ wire T_170951 : UInt<2>[1]
+ T_170951[0] := UInt<2>(2)
+ reg T_170952 : {inner : {sharers : UInt<1>, makeGrant$default$3 : UInt<1>, makeGrant$default$4 : UInt<1>}, outer : {state : UInt<2>, makeRelease$default$2 : UInt<1>, makeRelease$default$3 : UInt<1>, makeVoluntaryRelease$default$4 : UInt<1>, makeVoluntaryRelease$default$5 : UInt<1>, makeVoluntaryWriteback$default$3 : UInt<1>, makeVoluntaryWriteback$default$4 : UInt<1>}}
+ when s1_clk_en : T_170952 := meta.resp[5].coh
+ wire T_170953 : UInt<3>[3]
+ T_170953[0] := UInt<3>(0)
+ T_170953[1] := UInt<3>(1)
+ T_170953[2] := UInt<3>(2)
+ wire T_170954 : UInt<2>[2]
+ T_170954[0] := UInt<2>(0)
+ T_170954[1] := UInt<2>(1)
+ wire T_170955 : UInt<2>[3]
+ T_170955[0] := UInt<2>(1)
+ T_170955[1] := UInt<2>(2)
+ T_170955[2] := UInt<2>(3)
+ wire T_170956 : UInt<2>[2]
+ T_170956[0] := UInt<2>(2)
+ T_170956[1] := UInt<2>(3)
+ wire T_170957 : UInt<2>[1]
+ T_170957[0] := UInt<2>(3)
+ wire T_170958 : UInt<3>[3]
+ T_170958[0] := UInt<3>(0)
+ T_170958[1] := UInt<3>(1)
+ T_170958[2] := UInt<3>(2)
+ wire T_170959 : UInt<2>[2]
+ T_170959[0] := UInt<2>(0)
+ T_170959[1] := UInt<2>(1)
+ wire T_170960 : UInt<2>[3]
+ T_170960[0] := UInt<2>(1)
+ T_170960[1] := UInt<2>(2)
+ T_170960[2] := UInt<2>(3)
+ wire T_170961 : UInt<2>[2]
+ T_170961[0] := UInt<2>(2)
+ T_170961[1] := UInt<2>(3)
+ wire T_170962 : UInt<2>[1]
+ T_170962[0] := UInt<2>(3)
+ wire T_170963 : UInt<3>[3]
+ T_170963[0] := UInt<3>(0)
+ T_170963[1] := UInt<3>(1)
+ T_170963[2] := UInt<3>(2)
+ wire T_170964 : UInt<0>[1]
+ T_170964[0] := UInt<0>(0)
+ wire T_170965 : UInt<2>[2]
+ T_170965[0] := UInt<2>(1)
+ T_170965[1] := UInt<2>(2)
+ wire T_170966 : UInt<2>[2]
+ T_170966[0] := UInt<2>(1)
+ T_170966[1] := UInt<2>(2)
+ wire T_170967 : UInt<2>[1]
+ T_170967[0] := UInt<2>(2)
+ reg T_170968 : {inner : {sharers : UInt<1>, makeGrant$default$3 : UInt<1>, makeGrant$default$4 : UInt<1>}, outer : {state : UInt<2>, makeRelease$default$2 : UInt<1>, makeRelease$default$3 : UInt<1>, makeVoluntaryRelease$default$4 : UInt<1>, makeVoluntaryRelease$default$5 : UInt<1>, makeVoluntaryWriteback$default$3 : UInt<1>, makeVoluntaryWriteback$default$4 : UInt<1>}}
+ when s1_clk_en : T_170968 := meta.resp[6].coh
+ wire T_170969 : UInt<3>[3]
+ T_170969[0] := UInt<3>(0)
+ T_170969[1] := UInt<3>(1)
+ T_170969[2] := UInt<3>(2)
+ wire T_170970 : UInt<2>[2]
+ T_170970[0] := UInt<2>(0)
+ T_170970[1] := UInt<2>(1)
+ wire T_170971 : UInt<2>[3]
+ T_170971[0] := UInt<2>(1)
+ T_170971[1] := UInt<2>(2)
+ T_170971[2] := UInt<2>(3)
+ wire T_170972 : UInt<2>[2]
+ T_170972[0] := UInt<2>(2)
+ T_170972[1] := UInt<2>(3)
+ wire T_170973 : UInt<2>[1]
+ T_170973[0] := UInt<2>(3)
+ wire T_170974 : UInt<3>[3]
+ T_170974[0] := UInt<3>(0)
+ T_170974[1] := UInt<3>(1)
+ T_170974[2] := UInt<3>(2)
+ wire T_170975 : UInt<2>[2]
+ T_170975[0] := UInt<2>(0)
+ T_170975[1] := UInt<2>(1)
+ wire T_170976 : UInt<2>[3]
+ T_170976[0] := UInt<2>(1)
+ T_170976[1] := UInt<2>(2)
+ T_170976[2] := UInt<2>(3)
+ wire T_170977 : UInt<2>[2]
+ T_170977[0] := UInt<2>(2)
+ T_170977[1] := UInt<2>(3)
+ wire T_170978 : UInt<2>[1]
+ T_170978[0] := UInt<2>(3)
+ wire T_170979 : UInt<3>[3]
+ T_170979[0] := UInt<3>(0)
+ T_170979[1] := UInt<3>(1)
+ T_170979[2] := UInt<3>(2)
+ wire T_170980 : UInt<0>[1]
+ T_170980[0] := UInt<0>(0)
+ wire T_170981 : UInt<2>[2]
+ T_170981[0] := UInt<2>(1)
+ T_170981[1] := UInt<2>(2)
+ wire T_170982 : UInt<2>[2]
+ T_170982[0] := UInt<2>(1)
+ T_170982[1] := UInt<2>(2)
+ wire T_170983 : UInt<2>[1]
+ T_170983[0] := UInt<2>(2)
+ reg T_170984 : {inner : {sharers : UInt<1>, makeGrant$default$3 : UInt<1>, makeGrant$default$4 : UInt<1>}, outer : {state : UInt<2>, makeRelease$default$2 : UInt<1>, makeRelease$default$3 : UInt<1>, makeVoluntaryRelease$default$4 : UInt<1>, makeVoluntaryRelease$default$5 : UInt<1>, makeVoluntaryWriteback$default$3 : UInt<1>, makeVoluntaryWriteback$default$4 : UInt<1>}}
+ when s1_clk_en : T_170984 := meta.resp[7].coh
+ wire T_170985 : UInt<3>[3]
+ T_170985[0] := UInt<3>(0)
+ T_170985[1] := UInt<3>(1)
+ T_170985[2] := UInt<3>(2)
+ wire T_170986 : UInt<2>[2]
+ T_170986[0] := UInt<2>(0)
+ T_170986[1] := UInt<2>(1)
+ wire T_170987 : UInt<2>[3]
+ T_170987[0] := UInt<2>(1)
+ T_170987[1] := UInt<2>(2)
+ T_170987[2] := UInt<2>(3)
+ wire T_170988 : UInt<2>[2]
+ T_170988[0] := UInt<2>(2)
+ T_170988[1] := UInt<2>(3)
+ wire T_170989 : UInt<2>[1]
+ T_170989[0] := UInt<2>(3)
+ wire T_170990 : UInt<3>[3]
+ T_170990[0] := UInt<3>(0)
+ T_170990[1] := UInt<3>(1)
+ T_170990[2] := UInt<3>(2)
+ wire T_170991 : UInt<2>[2]
+ T_170991[0] := UInt<2>(0)
+ T_170991[1] := UInt<2>(1)
+ wire T_170992 : UInt<2>[3]
+ T_170992[0] := UInt<2>(1)
+ T_170992[1] := UInt<2>(2)
+ T_170992[2] := UInt<2>(3)
+ wire T_170993 : UInt<2>[2]
+ T_170993[0] := UInt<2>(2)
+ T_170993[1] := UInt<2>(3)
+ wire T_170994 : UInt<2>[1]
+ T_170994[0] := UInt<2>(3)
+ wire T_170995 : UInt<3>[3]
+ T_170995[0] := UInt<3>(0)
+ T_170995[1] := UInt<3>(1)
+ T_170995[2] := UInt<3>(2)
+ wire T_170996 : UInt<0>[1]
+ T_170996[0] := UInt<0>(0)
+ wire T_170997 : UInt<2>[2]
+ T_170997[0] := UInt<2>(1)
+ T_170997[1] := UInt<2>(2)
+ wire T_170998 : UInt<2>[2]
+ T_170998[0] := UInt<2>(1)
+ T_170998[1] := UInt<2>(2)
+ wire T_170999 : UInt<2>[1]
+ T_170999[0] := UInt<2>(2)
+ wire T_171000 : UInt<3>[3]
+ T_171000[0] := UInt<3>(0)
+ T_171000[1] := UInt<3>(1)
+ T_171000[2] := UInt<3>(2)
+ wire T_171001 : UInt<2>[2]
+ T_171001[0] := UInt<2>(0)
+ T_171001[1] := UInt<2>(1)
+ wire T_171002 : UInt<2>[3]
+ T_171002[0] := UInt<2>(1)
+ T_171002[1] := UInt<2>(2)
+ T_171002[2] := UInt<2>(3)
+ wire T_171003 : UInt<2>[2]
+ T_171003[0] := UInt<2>(2)
+ T_171003[1] := UInt<2>(3)
+ wire T_171004 : UInt<2>[1]
+ T_171004[0] := UInt<2>(3)
+ wire T_171005 : UInt<3>[3]
+ T_171005[0] := UInt<3>(0)
+ T_171005[1] := UInt<3>(1)
+ T_171005[2] := UInt<3>(2)
+ wire T_171006 : UInt<2>[2]
+ T_171006[0] := UInt<2>(0)
+ T_171006[1] := UInt<2>(1)
+ wire T_171007 : UInt<2>[3]
+ T_171007[0] := UInt<2>(1)
+ T_171007[1] := UInt<2>(2)
+ T_171007[2] := UInt<2>(3)
+ wire T_171008 : UInt<2>[2]
+ T_171008[0] := UInt<2>(2)
+ T_171008[1] := UInt<2>(3)
+ wire T_171009 : UInt<2>[1]
+ T_171009[0] := UInt<2>(3)
+ wire T_171010 : UInt<3>[3]
+ T_171010[0] := UInt<3>(0)
+ T_171010[1] := UInt<3>(1)
+ T_171010[2] := UInt<3>(2)
+ wire T_171011 : UInt<0>[1]
+ T_171011[0] := UInt<0>(0)
+ wire T_171012 : UInt<2>[2]
+ T_171012[0] := UInt<2>(1)
+ T_171012[1] := UInt<2>(2)
+ wire T_171013 : UInt<2>[2]
+ T_171013[0] := UInt<2>(1)
+ T_171013[1] := UInt<2>(2)
+ wire T_171014 : UInt<2>[1]
+ T_171014[0] := UInt<2>(2)
+ wire T_171015 : UInt<3>[3]
+ T_171015[0] := UInt<3>(0)
+ T_171015[1] := UInt<3>(1)
+ T_171015[2] := UInt<3>(2)
+ wire T_171016 : UInt<2>[2]
+ T_171016[0] := UInt<2>(0)
+ T_171016[1] := UInt<2>(1)
+ wire T_171017 : UInt<2>[3]
+ T_171017[0] := UInt<2>(1)
+ T_171017[1] := UInt<2>(2)
+ T_171017[2] := UInt<2>(3)
+ wire T_171018 : UInt<2>[2]
+ T_171018[0] := UInt<2>(2)
+ T_171018[1] := UInt<2>(3)
+ wire T_171019 : UInt<2>[1]
+ T_171019[0] := UInt<2>(3)
+ wire T_171020 : UInt<3>[3]
+ T_171020[0] := UInt<3>(0)
+ T_171020[1] := UInt<3>(1)
+ T_171020[2] := UInt<3>(2)
+ wire T_171021 : UInt<2>[2]
+ T_171021[0] := UInt<2>(0)
+ T_171021[1] := UInt<2>(1)
+ wire T_171022 : UInt<2>[3]
+ T_171022[0] := UInt<2>(1)
+ T_171022[1] := UInt<2>(2)
+ T_171022[2] := UInt<2>(3)
+ wire T_171023 : UInt<2>[2]
+ T_171023[0] := UInt<2>(2)
+ T_171023[1] := UInt<2>(3)
+ wire T_171024 : UInt<2>[1]
+ T_171024[0] := UInt<2>(3)
+ wire T_171025 : UInt<3>[3]
+ T_171025[0] := UInt<3>(0)
+ T_171025[1] := UInt<3>(1)
+ T_171025[2] := UInt<3>(2)
+ wire T_171026 : UInt<0>[1]
+ T_171026[0] := UInt<0>(0)
+ wire T_171027 : UInt<2>[2]
+ T_171027[0] := UInt<2>(1)
+ T_171027[1] := UInt<2>(2)
+ wire T_171028 : UInt<2>[2]
+ T_171028[0] := UInt<2>(1)
+ T_171028[1] := UInt<2>(2)
+ wire T_171029 : UInt<2>[1]
+ T_171029[0] := UInt<2>(2)
+ wire T_171030 : UInt<3>[3]
+ T_171030[0] := UInt<3>(0)
+ T_171030[1] := UInt<3>(1)
+ T_171030[2] := UInt<3>(2)
+ wire T_171031 : UInt<2>[2]
+ T_171031[0] := UInt<2>(0)
+ T_171031[1] := UInt<2>(1)
+ wire T_171032 : UInt<2>[3]
+ T_171032[0] := UInt<2>(1)
+ T_171032[1] := UInt<2>(2)
+ T_171032[2] := UInt<2>(3)
+ wire T_171033 : UInt<2>[2]
+ T_171033[0] := UInt<2>(2)
+ T_171033[1] := UInt<2>(3)
+ wire T_171034 : UInt<2>[1]
+ T_171034[0] := UInt<2>(3)
+ wire T_171035 : UInt<3>[3]
+ T_171035[0] := UInt<3>(0)
+ T_171035[1] := UInt<3>(1)
+ T_171035[2] := UInt<3>(2)
+ wire T_171036 : UInt<2>[2]
+ T_171036[0] := UInt<2>(0)
+ T_171036[1] := UInt<2>(1)
+ wire T_171037 : UInt<2>[3]
+ T_171037[0] := UInt<2>(1)
+ T_171037[1] := UInt<2>(2)
+ T_171037[2] := UInt<2>(3)
+ wire T_171038 : UInt<2>[2]
+ T_171038[0] := UInt<2>(2)
+ T_171038[1] := UInt<2>(3)
+ wire T_171039 : UInt<2>[1]
+ T_171039[0] := UInt<2>(3)
+ wire T_171040 : UInt<3>[3]
+ T_171040[0] := UInt<3>(0)
+ T_171040[1] := UInt<3>(1)
+ T_171040[2] := UInt<3>(2)
+ wire T_171041 : UInt<0>[1]
+ T_171041[0] := UInt<0>(0)
+ wire T_171042 : UInt<2>[2]
+ T_171042[0] := UInt<2>(1)
+ T_171042[1] := UInt<2>(2)
+ wire T_171043 : UInt<2>[2]
+ T_171043[0] := UInt<2>(1)
+ T_171043[1] := UInt<2>(2)
+ wire T_171044 : UInt<2>[1]
+ T_171044[0] := UInt<2>(2)
+ wire T_171045 : UInt<3>[3]
+ T_171045[0] := UInt<3>(0)
+ T_171045[1] := UInt<3>(1)
+ T_171045[2] := UInt<3>(2)
+ wire T_171046 : UInt<2>[2]
+ T_171046[0] := UInt<2>(0)
+ T_171046[1] := UInt<2>(1)
+ wire T_171047 : UInt<2>[3]
+ T_171047[0] := UInt<2>(1)
+ T_171047[1] := UInt<2>(2)
+ T_171047[2] := UInt<2>(3)
+ wire T_171048 : UInt<2>[2]
+ T_171048[0] := UInt<2>(2)
+ T_171048[1] := UInt<2>(3)
+ wire T_171049 : UInt<2>[1]
+ T_171049[0] := UInt<2>(3)
+ wire T_171050 : UInt<3>[3]
+ T_171050[0] := UInt<3>(0)
+ T_171050[1] := UInt<3>(1)
+ T_171050[2] := UInt<3>(2)
+ wire T_171051 : UInt<2>[2]
+ T_171051[0] := UInt<2>(0)
+ T_171051[1] := UInt<2>(1)
+ wire T_171052 : UInt<2>[3]
+ T_171052[0] := UInt<2>(1)
+ T_171052[1] := UInt<2>(2)
+ T_171052[2] := UInt<2>(3)
+ wire T_171053 : UInt<2>[2]
+ T_171053[0] := UInt<2>(2)
+ T_171053[1] := UInt<2>(3)
+ wire T_171054 : UInt<2>[1]
+ T_171054[0] := UInt<2>(3)
+ wire T_171055 : UInt<3>[3]
+ T_171055[0] := UInt<3>(0)
+ T_171055[1] := UInt<3>(1)
+ T_171055[2] := UInt<3>(2)
+ wire T_171056 : UInt<0>[1]
+ T_171056[0] := UInt<0>(0)
+ wire T_171057 : UInt<2>[2]
+ T_171057[0] := UInt<2>(1)
+ T_171057[1] := UInt<2>(2)
+ wire T_171058 : UInt<2>[2]
+ T_171058[0] := UInt<2>(1)
+ T_171058[1] := UInt<2>(2)
+ wire T_171059 : UInt<2>[1]
+ T_171059[0] := UInt<2>(2)
+ wire T_171060 : UInt<3>[3]
+ T_171060[0] := UInt<3>(0)
+ T_171060[1] := UInt<3>(1)
+ T_171060[2] := UInt<3>(2)
+ wire T_171061 : UInt<2>[2]
+ T_171061[0] := UInt<2>(0)
+ T_171061[1] := UInt<2>(1)
+ wire T_171062 : UInt<2>[3]
+ T_171062[0] := UInt<2>(1)
+ T_171062[1] := UInt<2>(2)
+ T_171062[2] := UInt<2>(3)
+ wire T_171063 : UInt<2>[2]
+ T_171063[0] := UInt<2>(2)
+ T_171063[1] := UInt<2>(3)
+ wire T_171064 : UInt<2>[1]
+ T_171064[0] := UInt<2>(3)
+ wire T_171065 : UInt<3>[3]
+ T_171065[0] := UInt<3>(0)
+ T_171065[1] := UInt<3>(1)
+ T_171065[2] := UInt<3>(2)
+ wire T_171066 : UInt<2>[2]
+ T_171066[0] := UInt<2>(0)
+ T_171066[1] := UInt<2>(1)
+ wire T_171067 : UInt<2>[3]
+ T_171067[0] := UInt<2>(1)
+ T_171067[1] := UInt<2>(2)
+ T_171067[2] := UInt<2>(3)
+ wire T_171068 : UInt<2>[2]
+ T_171068[0] := UInt<2>(2)
+ T_171068[1] := UInt<2>(3)
+ wire T_171069 : UInt<2>[1]
+ T_171069[0] := UInt<2>(3)
+ wire T_171070 : UInt<3>[3]
+ T_171070[0] := UInt<3>(0)
+ T_171070[1] := UInt<3>(1)
+ T_171070[2] := UInt<3>(2)
+ wire T_171071 : UInt<0>[1]
+ T_171071[0] := UInt<0>(0)
+ wire T_171072 : UInt<2>[2]
+ T_171072[0] := UInt<2>(1)
+ T_171072[1] := UInt<2>(2)
+ wire T_171073 : UInt<2>[2]
+ T_171073[0] := UInt<2>(1)
+ T_171073[1] := UInt<2>(2)
+ wire T_171074 : UInt<2>[1]
+ T_171074[0] := UInt<2>(2)
+ wire T_171075 : UInt<3>[3]
+ T_171075[0] := UInt<3>(0)
+ T_171075[1] := UInt<3>(1)
+ T_171075[2] := UInt<3>(2)
+ wire T_171076 : UInt<2>[2]
+ T_171076[0] := UInt<2>(0)
+ T_171076[1] := UInt<2>(1)
+ wire T_171077 : UInt<2>[3]
+ T_171077[0] := UInt<2>(1)
+ T_171077[1] := UInt<2>(2)
+ T_171077[2] := UInt<2>(3)
+ wire T_171078 : UInt<2>[2]
+ T_171078[0] := UInt<2>(2)
+ T_171078[1] := UInt<2>(3)
+ wire T_171079 : UInt<2>[1]
+ T_171079[0] := UInt<2>(3)
+ wire T_171080 : UInt<3>[3]
+ T_171080[0] := UInt<3>(0)
+ T_171080[1] := UInt<3>(1)
+ T_171080[2] := UInt<3>(2)
+ wire T_171081 : UInt<2>[2]
+ T_171081[0] := UInt<2>(0)
+ T_171081[1] := UInt<2>(1)
+ wire T_171082 : UInt<2>[3]
+ T_171082[0] := UInt<2>(1)
+ T_171082[1] := UInt<2>(2)
+ T_171082[2] := UInt<2>(3)
+ wire T_171083 : UInt<2>[2]
+ T_171083[0] := UInt<2>(2)
+ T_171083[1] := UInt<2>(3)
+ wire T_171084 : UInt<2>[1]
+ T_171084[0] := UInt<2>(3)
+ wire T_171085 : UInt<3>[3]
+ T_171085[0] := UInt<3>(0)
+ T_171085[1] := UInt<3>(1)
+ T_171085[2] := UInt<3>(2)
+ wire T_171086 : UInt<0>[1]
+ T_171086[0] := UInt<0>(0)
+ wire T_171087 : UInt<2>[2]
+ T_171087[0] := UInt<2>(1)
+ T_171087[1] := UInt<2>(2)
+ wire T_171088 : UInt<2>[2]
+ T_171088[0] := UInt<2>(1)
+ T_171088[1] := UInt<2>(2)
+ wire T_171089 : UInt<2>[1]
+ T_171089[0] := UInt<2>(2)
+ wire T_171090 : UInt<3>[3]
+ T_171090[0] := UInt<3>(0)
+ T_171090[1] := UInt<3>(1)
+ T_171090[2] := UInt<3>(2)
+ wire T_171091 : UInt<2>[2]
+ T_171091[0] := UInt<2>(0)
+ T_171091[1] := UInt<2>(1)
+ wire T_171092 : UInt<2>[3]
+ T_171092[0] := UInt<2>(1)
+ T_171092[1] := UInt<2>(2)
+ T_171092[2] := UInt<2>(3)
+ wire T_171093 : UInt<2>[2]
+ T_171093[0] := UInt<2>(2)
+ T_171093[1] := UInt<2>(3)
+ wire T_171094 : UInt<2>[1]
+ T_171094[0] := UInt<2>(3)
+ wire T_171095 : UInt<3>[3]
+ T_171095[0] := UInt<3>(0)
+ T_171095[1] := UInt<3>(1)
+ T_171095[2] := UInt<3>(2)
+ wire T_171096 : UInt<2>[2]
+ T_171096[0] := UInt<2>(0)
+ T_171096[1] := UInt<2>(1)
+ wire T_171097 : UInt<2>[3]
+ T_171097[0] := UInt<2>(1)
+ T_171097[1] := UInt<2>(2)
+ T_171097[2] := UInt<2>(3)
+ wire T_171098 : UInt<2>[2]
+ T_171098[0] := UInt<2>(2)
+ T_171098[1] := UInt<2>(3)
+ wire T_171099 : UInt<2>[1]
+ T_171099[0] := UInt<2>(3)
+ wire T_171100 : UInt<3>[3]
+ T_171100[0] := UInt<3>(0)
+ T_171100[1] := UInt<3>(1)
+ T_171100[2] := UInt<3>(2)
+ wire T_171101 : UInt<0>[1]
+ T_171101[0] := UInt<0>(0)
+ wire T_171102 : UInt<2>[2]
+ T_171102[0] := UInt<2>(1)
+ T_171102[1] := UInt<2>(2)
+ wire T_171103 : UInt<2>[2]
+ T_171103[0] := UInt<2>(1)
+ T_171103[1] := UInt<2>(2)
+ wire T_171104 : UInt<2>[1]
+ T_171104[0] := UInt<2>(2)
+ wire T_171105 : {inner : {sharers : UInt<1>, makeGrant$default$3 : UInt<1>, makeGrant$default$4 : UInt<1>}, outer : {state : UInt<2>, makeRelease$default$2 : UInt<1>, makeRelease$default$3 : UInt<1>, makeVoluntaryRelease$default$4 : UInt<1>, makeVoluntaryRelease$default$5 : UInt<1>, makeVoluntaryWriteback$default$3 : UInt<1>, makeVoluntaryWriteback$default$4 : UInt<1>}}[8]
+ T_171105[0] := T_170872
+ T_171105[1] := T_170888
+ T_171105[2] := T_170904
+ T_171105[3] := T_170920
+ T_171105[4] := T_170936
+ T_171105[5] := T_170952
+ T_171105[6] := T_170968
+ T_171105[7] := T_170984
+ node T_171106 = bit(s2_tag_match_way, 0)
+ node T_171107 = bit(s2_tag_match_way, 1)
+ node T_171108 = bit(s2_tag_match_way, 2)
+ node T_171109 = bit(s2_tag_match_way, 3)
+ node T_171110 = bit(s2_tag_match_way, 4)
+ node T_171111 = bit(s2_tag_match_way, 5)
+ node T_171112 = bit(s2_tag_match_way, 6)
+ node T_171113 = bit(s2_tag_match_way, 7)
+ node T_171114 = cat(T_171105[0].inner.sharers, UInt<1>(0))
+ node T_171115 = cat(T_171105[0].outer.state, UInt<1>(0))
+ node T_171116 = cat(UInt<1>(0), T_171115)
+ node T_171117 = cat(T_171114, T_171116)
+ node T_171118 = cat(T_171117, UInt<5>(0))
+ wire T_171119 : UInt<1>
+ T_171119 := UInt<1>(0)
+ when T_171106 : T_171119 := T_171118
+ node T_171120 = cat(T_171105[1].inner.sharers, UInt<1>(0))
+ node T_171121 = cat(T_171105[1].outer.state, UInt<1>(0))
+ node T_171122 = cat(UInt<1>(0), T_171121)
+ node T_171123 = cat(T_171120, T_171122)
+ node T_171124 = cat(T_171123, UInt<5>(0))
+ wire T_171125 : UInt<1>
+ T_171125 := UInt<1>(0)
+ when T_171107 : T_171125 := T_171124
+ node T_171126 = cat(T_171105[2].inner.sharers, UInt<1>(0))
+ node T_171127 = cat(T_171105[2].outer.state, UInt<1>(0))
+ node T_171128 = cat(UInt<1>(0), T_171127)
+ node T_171129 = cat(T_171126, T_171128)
+ node T_171130 = cat(T_171129, UInt<5>(0))
+ wire T_171131 : UInt<1>
+ T_171131 := UInt<1>(0)
+ when T_171108 : T_171131 := T_171130
+ node T_171132 = cat(T_171105[3].inner.sharers, UInt<1>(0))
+ node T_171133 = cat(T_171105[3].outer.state, UInt<1>(0))
+ node T_171134 = cat(UInt<1>(0), T_171133)
+ node T_171135 = cat(T_171132, T_171134)
+ node T_171136 = cat(T_171135, UInt<5>(0))
+ wire T_171137 : UInt<1>
+ T_171137 := UInt<1>(0)
+ when T_171109 : T_171137 := T_171136
+ node T_171138 = cat(T_171105[4].inner.sharers, UInt<1>(0))
+ node T_171139 = cat(T_171105[4].outer.state, UInt<1>(0))
+ node T_171140 = cat(UInt<1>(0), T_171139)
+ node T_171141 = cat(T_171138, T_171140)
+ node T_171142 = cat(T_171141, UInt<5>(0))
+ wire T_171143 : UInt<1>
+ T_171143 := UInt<1>(0)
+ when T_171110 : T_171143 := T_171142
+ node T_171144 = cat(T_171105[5].inner.sharers, UInt<1>(0))
+ node T_171145 = cat(T_171105[5].outer.state, UInt<1>(0))
+ node T_171146 = cat(UInt<1>(0), T_171145)
+ node T_171147 = cat(T_171144, T_171146)
+ node T_171148 = cat(T_171147, UInt<5>(0))
+ wire T_171149 : UInt<1>
+ T_171149 := UInt<1>(0)
+ when T_171111 : T_171149 := T_171148
+ node T_171150 = cat(T_171105[6].inner.sharers, UInt<1>(0))
+ node T_171151 = cat(T_171105[6].outer.state, UInt<1>(0))
+ node T_171152 = cat(UInt<1>(0), T_171151)
+ node T_171153 = cat(T_171150, T_171152)
+ node T_171154 = cat(T_171153, UInt<5>(0))
+ wire T_171155 : UInt<1>
+ T_171155 := UInt<1>(0)
+ when T_171112 : T_171155 := T_171154
+ node T_171156 = cat(T_171105[7].inner.sharers, UInt<1>(0))
+ node T_171157 = cat(T_171105[7].outer.state, UInt<1>(0))
+ node T_171158 = cat(UInt<1>(0), T_171157)
+ node T_171159 = cat(T_171156, T_171158)
+ node T_171160 = cat(T_171159, UInt<5>(0))
+ wire T_171161 : UInt<1>
+ T_171161 := UInt<1>(0)
+ when T_171113 : T_171161 := T_171160
+ node T_171162 = or(T_171119, T_171125)
+ node T_171163 = or(T_171162, T_171131)
+ node T_171164 = or(T_171163, T_171137)
+ node T_171165 = or(T_171164, T_171143)
+ node T_171166 = or(T_171165, T_171149)
+ node T_171167 = or(T_171166, T_171155)
+ node T_171168 = or(T_171167, T_171161)
+ wire T_171169 : UInt<3>[3]
+ T_171169[0] := UInt<3>(0)
+ T_171169[1] := UInt<3>(1)
+ T_171169[2] := UInt<3>(2)
+ wire T_171170 : UInt<2>[2]
+ T_171170[0] := UInt<2>(0)
+ T_171170[1] := UInt<2>(1)
+ wire T_171171 : UInt<2>[3]
+ T_171171[0] := UInt<2>(1)
+ T_171171[1] := UInt<2>(2)
+ T_171171[2] := UInt<2>(3)
+ wire T_171172 : UInt<2>[2]
+ T_171172[0] := UInt<2>(2)
+ T_171172[1] := UInt<2>(3)
+ wire T_171173 : UInt<2>[1]
+ T_171173[0] := UInt<2>(3)
+ wire T_171174 : UInt<3>[3]
+ T_171174[0] := UInt<3>(0)
+ T_171174[1] := UInt<3>(1)
+ T_171174[2] := UInt<3>(2)
+ wire T_171175 : UInt<2>[2]
+ T_171175[0] := UInt<2>(0)
+ T_171175[1] := UInt<2>(1)
+ wire T_171176 : UInt<2>[3]
+ T_171176[0] := UInt<2>(1)
+ T_171176[1] := UInt<2>(2)
+ T_171176[2] := UInt<2>(3)
+ wire T_171177 : UInt<2>[2]
+ T_171177[0] := UInt<2>(2)
+ T_171177[1] := UInt<2>(3)
+ wire T_171178 : UInt<2>[1]
+ T_171178[0] := UInt<2>(3)
+ wire T_171179 : UInt<3>[3]
+ T_171179[0] := UInt<3>(0)
+ T_171179[1] := UInt<3>(1)
+ T_171179[2] := UInt<3>(2)
+ wire T_171180 : UInt<0>[1]
+ T_171180[0] := UInt<0>(0)
+ wire T_171181 : UInt<2>[2]
+ T_171181[0] := UInt<2>(1)
+ T_171181[1] := UInt<2>(2)
+ wire T_171182 : UInt<2>[2]
+ T_171182[0] := UInt<2>(1)
+ T_171182[1] := UInt<2>(2)
+ wire T_171183 : UInt<2>[1]
+ T_171183[0] := UInt<2>(2)
+ wire T_171184 : UInt<3>[3]
+ T_171184[0] := UInt<3>(0)
+ T_171184[1] := UInt<3>(1)
+ T_171184[2] := UInt<3>(2)
+ wire T_171185 : UInt<2>[2]
+ T_171185[0] := UInt<2>(0)
+ T_171185[1] := UInt<2>(1)
+ wire T_171186 : UInt<2>[3]
+ T_171186[0] := UInt<2>(1)
+ T_171186[1] := UInt<2>(2)
+ T_171186[2] := UInt<2>(3)
+ wire T_171187 : UInt<2>[2]
+ T_171187[0] := UInt<2>(2)
+ T_171187[1] := UInt<2>(3)
+ wire T_171188 : UInt<2>[1]
+ T_171188[0] := UInt<2>(3)
+ wire T_171189 : UInt<3>[3]
+ T_171189[0] := UInt<3>(0)
+ T_171189[1] := UInt<3>(1)
+ T_171189[2] := UInt<3>(2)
+ wire T_171190 : UInt<2>[2]
+ T_171190[0] := UInt<2>(0)
+ T_171190[1] := UInt<2>(1)
+ wire T_171191 : UInt<2>[3]
+ T_171191[0] := UInt<2>(1)
+ T_171191[1] := UInt<2>(2)
+ T_171191[2] := UInt<2>(3)
+ wire T_171192 : UInt<2>[2]
+ T_171192[0] := UInt<2>(2)
+ T_171192[1] := UInt<2>(3)
+ wire T_171193 : UInt<2>[1]
+ T_171193[0] := UInt<2>(3)
+ wire T_171194 : UInt<3>[3]
+ T_171194[0] := UInt<3>(0)
+ T_171194[1] := UInt<3>(1)
+ T_171194[2] := UInt<3>(2)
+ wire T_171195 : UInt<0>[1]
+ T_171195[0] := UInt<0>(0)
+ wire T_171196 : UInt<2>[2]
+ T_171196[0] := UInt<2>(1)
+ T_171196[1] := UInt<2>(2)
+ wire T_171197 : UInt<2>[2]
+ T_171197[0] := UInt<2>(1)
+ T_171197[1] := UInt<2>(2)
+ wire T_171198 : UInt<2>[1]
+ T_171198[0] := UInt<2>(2)
+ wire s2_hit_coh : {inner : {sharers : UInt<1>, makeGrant$default$3 : UInt<1>, makeGrant$default$4 : UInt<1>}, outer : {state : UInt<2>, makeRelease$default$2 : UInt<1>, makeRelease$default$3 : UInt<1>, makeVoluntaryRelease$default$4 : UInt<1>, makeVoluntaryRelease$default$5 : UInt<1>, makeVoluntaryWriteback$default$3 : UInt<1>, makeVoluntaryWriteback$default$4 : UInt<1>}}
+ node T_171199 = bits(T_171168, 0, 0)
+ s2_hit_coh.outer.makeVoluntaryWriteback$default$4 := T_171199
+ node T_171200 = bits(T_171168, 1, 1)
+ s2_hit_coh.outer.makeVoluntaryWriteback$default$3 := T_171200
+ node T_171201 = bits(T_171168, 2, 2)
+ s2_hit_coh.outer.makeVoluntaryRelease$default$5 := T_171201
+ node T_171202 = bits(T_171168, 3, 3)
+ s2_hit_coh.outer.makeVoluntaryRelease$default$4 := T_171202
+ node T_171203 = bits(T_171168, 4, 4)
+ s2_hit_coh.outer.makeRelease$default$3 := T_171203
+ node T_171204 = bits(T_171168, 5, 5)
+ s2_hit_coh.outer.makeRelease$default$2 := T_171204
+ node T_171205 = bits(T_171168, 7, 6)
+ s2_hit_coh.outer.state := T_171205
+ node T_171206 = bits(T_171168, 8, 8)
+ s2_hit_coh.inner.makeGrant$default$4 := T_171206
+ node T_171207 = bits(T_171168, 9, 9)
+ s2_hit_coh.inner.makeGrant$default$3 := T_171207
+ node T_171208 = bits(T_171168, 10, 10)
+ s2_hit_coh.inner.sharers := T_171208
+ wire T_171209 : UInt<1>
+ T_171209 := UInt<1>(0)
+ reg T_171210 : UInt<16>
+ onreset T_171210 := UInt<16>(1)
+ when T_171209 :
+ node T_171211 = bit(T_171210, 0)
+ node T_171212 = bit(T_171210, 2)
+ node T_171213 = xor(T_171211, T_171212)
+ node T_171214 = bit(T_171210, 3)
+ node T_171215 = xor(T_171213, T_171214)
+ node T_171216 = bit(T_171210, 5)
+ node T_171217 = xor(T_171215, T_171216)
+ node T_171218 = bits(T_171210, 15, 1)
+ node T_171219 = cat(T_171217, T_171218)
+ T_171210 := T_171219
+ node T_171220 = bits(T_171210, 2, 0)
+ node s1_replaced_way_en = dshl(UInt<1>(1), T_171220)
+ node T_171221 = bits(T_171210, 2, 0)
+ reg T_171222 : UInt<3>
+ when s1_clk_en : T_171222 := T_171221
+ node s2_replaced_way_en = dshl(UInt<1>(1), T_171222)
+ node T_171223 = bit(s1_replaced_way_en, 0)
+ node T_171224 = and(s1_clk_en, T_171223)
+ wire T_171225 : UInt<3>[3]
+ T_171225[0] := UInt<3>(0)
+ T_171225[1] := UInt<3>(1)
+ T_171225[2] := UInt<3>(2)
+ wire T_171226 : UInt<2>[2]
+ T_171226[0] := UInt<2>(0)
+ T_171226[1] := UInt<2>(1)
+ wire T_171227 : UInt<2>[3]
+ T_171227[0] := UInt<2>(1)
+ T_171227[1] := UInt<2>(2)
+ T_171227[2] := UInt<2>(3)
+ wire T_171228 : UInt<2>[2]
+ T_171228[0] := UInt<2>(2)
+ T_171228[1] := UInt<2>(3)
+ wire T_171229 : UInt<2>[1]
+ T_171229[0] := UInt<2>(3)
+ wire T_171230 : UInt<3>[3]
+ T_171230[0] := UInt<3>(0)
+ T_171230[1] := UInt<3>(1)
+ T_171230[2] := UInt<3>(2)
+ wire T_171231 : UInt<2>[2]
+ T_171231[0] := UInt<2>(0)
+ T_171231[1] := UInt<2>(1)
+ wire T_171232 : UInt<2>[3]
+ T_171232[0] := UInt<2>(1)
+ T_171232[1] := UInt<2>(2)
+ T_171232[2] := UInt<2>(3)
+ wire T_171233 : UInt<2>[2]
+ T_171233[0] := UInt<2>(2)
+ T_171233[1] := UInt<2>(3)
+ wire T_171234 : UInt<2>[1]
+ T_171234[0] := UInt<2>(3)
+ wire T_171235 : UInt<3>[3]
+ T_171235[0] := UInt<3>(0)
+ T_171235[1] := UInt<3>(1)
+ T_171235[2] := UInt<3>(2)
+ wire T_171236 : UInt<0>[1]
+ T_171236[0] := UInt<0>(0)
+ wire T_171237 : UInt<2>[2]
+ T_171237[0] := UInt<2>(1)
+ T_171237[1] := UInt<2>(2)
+ wire T_171238 : UInt<2>[2]
+ T_171238[0] := UInt<2>(1)
+ T_171238[1] := UInt<2>(2)
+ wire T_171239 : UInt<2>[1]
+ T_171239[0] := UInt<2>(2)
+ reg T_171240 : {tag : UInt<14>, coh : {inner : {sharers : UInt<1>, makeGrant$default$3 : UInt<1>, makeGrant$default$4 : UInt<1>}, outer : {state : UInt<2>, makeRelease$default$2 : UInt<1>, makeRelease$default$3 : UInt<1>, makeVoluntaryRelease$default$4 : UInt<1>, makeVoluntaryRelease$default$5 : UInt<1>, makeVoluntaryWriteback$default$3 : UInt<1>, makeVoluntaryWriteback$default$4 : UInt<1>}}}
+ when T_171224 : T_171240 := meta.resp[0]
+ node T_171241 = bit(s1_replaced_way_en, 1)
+ node T_171242 = and(s1_clk_en, T_171241)
+ wire T_171243 : UInt<3>[3]
+ T_171243[0] := UInt<3>(0)
+ T_171243[1] := UInt<3>(1)
+ T_171243[2] := UInt<3>(2)
+ wire T_171244 : UInt<2>[2]
+ T_171244[0] := UInt<2>(0)
+ T_171244[1] := UInt<2>(1)
+ wire T_171245 : UInt<2>[3]
+ T_171245[0] := UInt<2>(1)
+ T_171245[1] := UInt<2>(2)
+ T_171245[2] := UInt<2>(3)
+ wire T_171246 : UInt<2>[2]
+ T_171246[0] := UInt<2>(2)
+ T_171246[1] := UInt<2>(3)
+ wire T_171247 : UInt<2>[1]
+ T_171247[0] := UInt<2>(3)
+ wire T_171248 : UInt<3>[3]
+ T_171248[0] := UInt<3>(0)
+ T_171248[1] := UInt<3>(1)
+ T_171248[2] := UInt<3>(2)
+ wire T_171249 : UInt<2>[2]
+ T_171249[0] := UInt<2>(0)
+ T_171249[1] := UInt<2>(1)
+ wire T_171250 : UInt<2>[3]
+ T_171250[0] := UInt<2>(1)
+ T_171250[1] := UInt<2>(2)
+ T_171250[2] := UInt<2>(3)
+ wire T_171251 : UInt<2>[2]
+ T_171251[0] := UInt<2>(2)
+ T_171251[1] := UInt<2>(3)
+ wire T_171252 : UInt<2>[1]
+ T_171252[0] := UInt<2>(3)
+ wire T_171253 : UInt<3>[3]
+ T_171253[0] := UInt<3>(0)
+ T_171253[1] := UInt<3>(1)
+ T_171253[2] := UInt<3>(2)
+ wire T_171254 : UInt<0>[1]
+ T_171254[0] := UInt<0>(0)
+ wire T_171255 : UInt<2>[2]
+ T_171255[0] := UInt<2>(1)
+ T_171255[1] := UInt<2>(2)
+ wire T_171256 : UInt<2>[2]
+ T_171256[0] := UInt<2>(1)
+ T_171256[1] := UInt<2>(2)
+ wire T_171257 : UInt<2>[1]
+ T_171257[0] := UInt<2>(2)
+ reg T_171258 : {tag : UInt<14>, coh : {inner : {sharers : UInt<1>, makeGrant$default$3 : UInt<1>, makeGrant$default$4 : UInt<1>}, outer : {state : UInt<2>, makeRelease$default$2 : UInt<1>, makeRelease$default$3 : UInt<1>, makeVoluntaryRelease$default$4 : UInt<1>, makeVoluntaryRelease$default$5 : UInt<1>, makeVoluntaryWriteback$default$3 : UInt<1>, makeVoluntaryWriteback$default$4 : UInt<1>}}}
+ when T_171242 : T_171258 := meta.resp[1]
+ node T_171259 = bit(s1_replaced_way_en, 2)
+ node T_171260 = and(s1_clk_en, T_171259)
+ wire T_171261 : UInt<3>[3]
+ T_171261[0] := UInt<3>(0)
+ T_171261[1] := UInt<3>(1)
+ T_171261[2] := UInt<3>(2)
+ wire T_171262 : UInt<2>[2]
+ T_171262[0] := UInt<2>(0)
+ T_171262[1] := UInt<2>(1)
+ wire T_171263 : UInt<2>[3]
+ T_171263[0] := UInt<2>(1)
+ T_171263[1] := UInt<2>(2)
+ T_171263[2] := UInt<2>(3)
+ wire T_171264 : UInt<2>[2]
+ T_171264[0] := UInt<2>(2)
+ T_171264[1] := UInt<2>(3)
+ wire T_171265 : UInt<2>[1]
+ T_171265[0] := UInt<2>(3)
+ wire T_171266 : UInt<3>[3]
+ T_171266[0] := UInt<3>(0)
+ T_171266[1] := UInt<3>(1)
+ T_171266[2] := UInt<3>(2)
+ wire T_171267 : UInt<2>[2]
+ T_171267[0] := UInt<2>(0)
+ T_171267[1] := UInt<2>(1)
+ wire T_171268 : UInt<2>[3]
+ T_171268[0] := UInt<2>(1)
+ T_171268[1] := UInt<2>(2)
+ T_171268[2] := UInt<2>(3)
+ wire T_171269 : UInt<2>[2]
+ T_171269[0] := UInt<2>(2)
+ T_171269[1] := UInt<2>(3)
+ wire T_171270 : UInt<2>[1]
+ T_171270[0] := UInt<2>(3)
+ wire T_171271 : UInt<3>[3]
+ T_171271[0] := UInt<3>(0)
+ T_171271[1] := UInt<3>(1)
+ T_171271[2] := UInt<3>(2)
+ wire T_171272 : UInt<0>[1]
+ T_171272[0] := UInt<0>(0)
+ wire T_171273 : UInt<2>[2]
+ T_171273[0] := UInt<2>(1)
+ T_171273[1] := UInt<2>(2)
+ wire T_171274 : UInt<2>[2]
+ T_171274[0] := UInt<2>(1)
+ T_171274[1] := UInt<2>(2)
+ wire T_171275 : UInt<2>[1]
+ T_171275[0] := UInt<2>(2)
+ reg T_171276 : {tag : UInt<14>, coh : {inner : {sharers : UInt<1>, makeGrant$default$3 : UInt<1>, makeGrant$default$4 : UInt<1>}, outer : {state : UInt<2>, makeRelease$default$2 : UInt<1>, makeRelease$default$3 : UInt<1>, makeVoluntaryRelease$default$4 : UInt<1>, makeVoluntaryRelease$default$5 : UInt<1>, makeVoluntaryWriteback$default$3 : UInt<1>, makeVoluntaryWriteback$default$4 : UInt<1>}}}
+ when T_171260 : T_171276 := meta.resp[2]
+ node T_171277 = bit(s1_replaced_way_en, 3)
+ node T_171278 = and(s1_clk_en, T_171277)
+ wire T_171279 : UInt<3>[3]
+ T_171279[0] := UInt<3>(0)
+ T_171279[1] := UInt<3>(1)
+ T_171279[2] := UInt<3>(2)
+ wire T_171280 : UInt<2>[2]
+ T_171280[0] := UInt<2>(0)
+ T_171280[1] := UInt<2>(1)
+ wire T_171281 : UInt<2>[3]
+ T_171281[0] := UInt<2>(1)
+ T_171281[1] := UInt<2>(2)
+ T_171281[2] := UInt<2>(3)
+ wire T_171282 : UInt<2>[2]
+ T_171282[0] := UInt<2>(2)
+ T_171282[1] := UInt<2>(3)
+ wire T_171283 : UInt<2>[1]
+ T_171283[0] := UInt<2>(3)
+ wire T_171284 : UInt<3>[3]
+ T_171284[0] := UInt<3>(0)
+ T_171284[1] := UInt<3>(1)
+ T_171284[2] := UInt<3>(2)
+ wire T_171285 : UInt<2>[2]
+ T_171285[0] := UInt<2>(0)
+ T_171285[1] := UInt<2>(1)
+ wire T_171286 : UInt<2>[3]
+ T_171286[0] := UInt<2>(1)
+ T_171286[1] := UInt<2>(2)
+ T_171286[2] := UInt<2>(3)
+ wire T_171287 : UInt<2>[2]
+ T_171287[0] := UInt<2>(2)
+ T_171287[1] := UInt<2>(3)
+ wire T_171288 : UInt<2>[1]
+ T_171288[0] := UInt<2>(3)
+ wire T_171289 : UInt<3>[3]
+ T_171289[0] := UInt<3>(0)
+ T_171289[1] := UInt<3>(1)
+ T_171289[2] := UInt<3>(2)
+ wire T_171290 : UInt<0>[1]
+ T_171290[0] := UInt<0>(0)
+ wire T_171291 : UInt<2>[2]
+ T_171291[0] := UInt<2>(1)
+ T_171291[1] := UInt<2>(2)
+ wire T_171292 : UInt<2>[2]
+ T_171292[0] := UInt<2>(1)
+ T_171292[1] := UInt<2>(2)
+ wire T_171293 : UInt<2>[1]
+ T_171293[0] := UInt<2>(2)
+ reg T_171294 : {tag : UInt<14>, coh : {inner : {sharers : UInt<1>, makeGrant$default$3 : UInt<1>, makeGrant$default$4 : UInt<1>}, outer : {state : UInt<2>, makeRelease$default$2 : UInt<1>, makeRelease$default$3 : UInt<1>, makeVoluntaryRelease$default$4 : UInt<1>, makeVoluntaryRelease$default$5 : UInt<1>, makeVoluntaryWriteback$default$3 : UInt<1>, makeVoluntaryWriteback$default$4 : UInt<1>}}}
+ when T_171278 : T_171294 := meta.resp[3]
+ node T_171295 = bit(s1_replaced_way_en, 4)
+ node T_171296 = and(s1_clk_en, T_171295)
+ wire T_171297 : UInt<3>[3]
+ T_171297[0] := UInt<3>(0)
+ T_171297[1] := UInt<3>(1)
+ T_171297[2] := UInt<3>(2)
+ wire T_171298 : UInt<2>[2]
+ T_171298[0] := UInt<2>(0)
+ T_171298[1] := UInt<2>(1)
+ wire T_171299 : UInt<2>[3]
+ T_171299[0] := UInt<2>(1)
+ T_171299[1] := UInt<2>(2)
+ T_171299[2] := UInt<2>(3)
+ wire T_171300 : UInt<2>[2]
+ T_171300[0] := UInt<2>(2)
+ T_171300[1] := UInt<2>(3)
+ wire T_171301 : UInt<2>[1]
+ T_171301[0] := UInt<2>(3)
+ wire T_171302 : UInt<3>[3]
+ T_171302[0] := UInt<3>(0)
+ T_171302[1] := UInt<3>(1)
+ T_171302[2] := UInt<3>(2)
+ wire T_171303 : UInt<2>[2]
+ T_171303[0] := UInt<2>(0)
+ T_171303[1] := UInt<2>(1)
+ wire T_171304 : UInt<2>[3]
+ T_171304[0] := UInt<2>(1)
+ T_171304[1] := UInt<2>(2)
+ T_171304[2] := UInt<2>(3)
+ wire T_171305 : UInt<2>[2]
+ T_171305[0] := UInt<2>(2)
+ T_171305[1] := UInt<2>(3)
+ wire T_171306 : UInt<2>[1]
+ T_171306[0] := UInt<2>(3)
+ wire T_171307 : UInt<3>[3]
+ T_171307[0] := UInt<3>(0)
+ T_171307[1] := UInt<3>(1)
+ T_171307[2] := UInt<3>(2)
+ wire T_171308 : UInt<0>[1]
+ T_171308[0] := UInt<0>(0)
+ wire T_171309 : UInt<2>[2]
+ T_171309[0] := UInt<2>(1)
+ T_171309[1] := UInt<2>(2)
+ wire T_171310 : UInt<2>[2]
+ T_171310[0] := UInt<2>(1)
+ T_171310[1] := UInt<2>(2)
+ wire T_171311 : UInt<2>[1]
+ T_171311[0] := UInt<2>(2)
+ reg T_171312 : {tag : UInt<14>, coh : {inner : {sharers : UInt<1>, makeGrant$default$3 : UInt<1>, makeGrant$default$4 : UInt<1>}, outer : {state : UInt<2>, makeRelease$default$2 : UInt<1>, makeRelease$default$3 : UInt<1>, makeVoluntaryRelease$default$4 : UInt<1>, makeVoluntaryRelease$default$5 : UInt<1>, makeVoluntaryWriteback$default$3 : UInt<1>, makeVoluntaryWriteback$default$4 : UInt<1>}}}
+ when T_171296 : T_171312 := meta.resp[4]
+ node T_171313 = bit(s1_replaced_way_en, 5)
+ node T_171314 = and(s1_clk_en, T_171313)
+ wire T_171315 : UInt<3>[3]
+ T_171315[0] := UInt<3>(0)
+ T_171315[1] := UInt<3>(1)
+ T_171315[2] := UInt<3>(2)
+ wire T_171316 : UInt<2>[2]
+ T_171316[0] := UInt<2>(0)
+ T_171316[1] := UInt<2>(1)
+ wire T_171317 : UInt<2>[3]
+ T_171317[0] := UInt<2>(1)
+ T_171317[1] := UInt<2>(2)
+ T_171317[2] := UInt<2>(3)
+ wire T_171318 : UInt<2>[2]
+ T_171318[0] := UInt<2>(2)
+ T_171318[1] := UInt<2>(3)
+ wire T_171319 : UInt<2>[1]
+ T_171319[0] := UInt<2>(3)
+ wire T_171320 : UInt<3>[3]
+ T_171320[0] := UInt<3>(0)
+ T_171320[1] := UInt<3>(1)
+ T_171320[2] := UInt<3>(2)
+ wire T_171321 : UInt<2>[2]
+ T_171321[0] := UInt<2>(0)
+ T_171321[1] := UInt<2>(1)
+ wire T_171322 : UInt<2>[3]
+ T_171322[0] := UInt<2>(1)
+ T_171322[1] := UInt<2>(2)
+ T_171322[2] := UInt<2>(3)
+ wire T_171323 : UInt<2>[2]
+ T_171323[0] := UInt<2>(2)
+ T_171323[1] := UInt<2>(3)
+ wire T_171324 : UInt<2>[1]
+ T_171324[0] := UInt<2>(3)
+ wire T_171325 : UInt<3>[3]
+ T_171325[0] := UInt<3>(0)
+ T_171325[1] := UInt<3>(1)
+ T_171325[2] := UInt<3>(2)
+ wire T_171326 : UInt<0>[1]
+ T_171326[0] := UInt<0>(0)
+ wire T_171327 : UInt<2>[2]
+ T_171327[0] := UInt<2>(1)
+ T_171327[1] := UInt<2>(2)
+ wire T_171328 : UInt<2>[2]
+ T_171328[0] := UInt<2>(1)
+ T_171328[1] := UInt<2>(2)
+ wire T_171329 : UInt<2>[1]
+ T_171329[0] := UInt<2>(2)
+ reg T_171330 : {tag : UInt<14>, coh : {inner : {sharers : UInt<1>, makeGrant$default$3 : UInt<1>, makeGrant$default$4 : UInt<1>}, outer : {state : UInt<2>, makeRelease$default$2 : UInt<1>, makeRelease$default$3 : UInt<1>, makeVoluntaryRelease$default$4 : UInt<1>, makeVoluntaryRelease$default$5 : UInt<1>, makeVoluntaryWriteback$default$3 : UInt<1>, makeVoluntaryWriteback$default$4 : UInt<1>}}}
+ when T_171314 : T_171330 := meta.resp[5]
+ node T_171331 = bit(s1_replaced_way_en, 6)
+ node T_171332 = and(s1_clk_en, T_171331)
+ wire T_171333 : UInt<3>[3]
+ T_171333[0] := UInt<3>(0)
+ T_171333[1] := UInt<3>(1)
+ T_171333[2] := UInt<3>(2)
+ wire T_171334 : UInt<2>[2]
+ T_171334[0] := UInt<2>(0)
+ T_171334[1] := UInt<2>(1)
+ wire T_171335 : UInt<2>[3]
+ T_171335[0] := UInt<2>(1)
+ T_171335[1] := UInt<2>(2)
+ T_171335[2] := UInt<2>(3)
+ wire T_171336 : UInt<2>[2]
+ T_171336[0] := UInt<2>(2)
+ T_171336[1] := UInt<2>(3)
+ wire T_171337 : UInt<2>[1]
+ T_171337[0] := UInt<2>(3)
+ wire T_171338 : UInt<3>[3]
+ T_171338[0] := UInt<3>(0)
+ T_171338[1] := UInt<3>(1)
+ T_171338[2] := UInt<3>(2)
+ wire T_171339 : UInt<2>[2]
+ T_171339[0] := UInt<2>(0)
+ T_171339[1] := UInt<2>(1)
+ wire T_171340 : UInt<2>[3]
+ T_171340[0] := UInt<2>(1)
+ T_171340[1] := UInt<2>(2)
+ T_171340[2] := UInt<2>(3)
+ wire T_171341 : UInt<2>[2]
+ T_171341[0] := UInt<2>(2)
+ T_171341[1] := UInt<2>(3)
+ wire T_171342 : UInt<2>[1]
+ T_171342[0] := UInt<2>(3)
+ wire T_171343 : UInt<3>[3]
+ T_171343[0] := UInt<3>(0)
+ T_171343[1] := UInt<3>(1)
+ T_171343[2] := UInt<3>(2)
+ wire T_171344 : UInt<0>[1]
+ T_171344[0] := UInt<0>(0)
+ wire T_171345 : UInt<2>[2]
+ T_171345[0] := UInt<2>(1)
+ T_171345[1] := UInt<2>(2)
+ wire T_171346 : UInt<2>[2]
+ T_171346[0] := UInt<2>(1)
+ T_171346[1] := UInt<2>(2)
+ wire T_171347 : UInt<2>[1]
+ T_171347[0] := UInt<2>(2)
+ reg T_171348 : {tag : UInt<14>, coh : {inner : {sharers : UInt<1>, makeGrant$default$3 : UInt<1>, makeGrant$default$4 : UInt<1>}, outer : {state : UInt<2>, makeRelease$default$2 : UInt<1>, makeRelease$default$3 : UInt<1>, makeVoluntaryRelease$default$4 : UInt<1>, makeVoluntaryRelease$default$5 : UInt<1>, makeVoluntaryWriteback$default$3 : UInt<1>, makeVoluntaryWriteback$default$4 : UInt<1>}}}
+ when T_171332 : T_171348 := meta.resp[6]
+ node T_171349 = bit(s1_replaced_way_en, 7)
+ node T_171350 = and(s1_clk_en, T_171349)
+ wire T_171351 : UInt<3>[3]
+ T_171351[0] := UInt<3>(0)
+ T_171351[1] := UInt<3>(1)
+ T_171351[2] := UInt<3>(2)
+ wire T_171352 : UInt<2>[2]
+ T_171352[0] := UInt<2>(0)
+ T_171352[1] := UInt<2>(1)
+ wire T_171353 : UInt<2>[3]
+ T_171353[0] := UInt<2>(1)
+ T_171353[1] := UInt<2>(2)
+ T_171353[2] := UInt<2>(3)
+ wire T_171354 : UInt<2>[2]
+ T_171354[0] := UInt<2>(2)
+ T_171354[1] := UInt<2>(3)
+ wire T_171355 : UInt<2>[1]
+ T_171355[0] := UInt<2>(3)
+ wire T_171356 : UInt<3>[3]
+ T_171356[0] := UInt<3>(0)
+ T_171356[1] := UInt<3>(1)
+ T_171356[2] := UInt<3>(2)
+ wire T_171357 : UInt<2>[2]
+ T_171357[0] := UInt<2>(0)
+ T_171357[1] := UInt<2>(1)
+ wire T_171358 : UInt<2>[3]
+ T_171358[0] := UInt<2>(1)
+ T_171358[1] := UInt<2>(2)
+ T_171358[2] := UInt<2>(3)
+ wire T_171359 : UInt<2>[2]
+ T_171359[0] := UInt<2>(2)
+ T_171359[1] := UInt<2>(3)
+ wire T_171360 : UInt<2>[1]
+ T_171360[0] := UInt<2>(3)
+ wire T_171361 : UInt<3>[3]
+ T_171361[0] := UInt<3>(0)
+ T_171361[1] := UInt<3>(1)
+ T_171361[2] := UInt<3>(2)
+ wire T_171362 : UInt<0>[1]
+ T_171362[0] := UInt<0>(0)
+ wire T_171363 : UInt<2>[2]
+ T_171363[0] := UInt<2>(1)
+ T_171363[1] := UInt<2>(2)
+ wire T_171364 : UInt<2>[2]
+ T_171364[0] := UInt<2>(1)
+ T_171364[1] := UInt<2>(2)
+ wire T_171365 : UInt<2>[1]
+ T_171365[0] := UInt<2>(2)
+ reg T_171366 : {tag : UInt<14>, coh : {inner : {sharers : UInt<1>, makeGrant$default$3 : UInt<1>, makeGrant$default$4 : UInt<1>}, outer : {state : UInt<2>, makeRelease$default$2 : UInt<1>, makeRelease$default$3 : UInt<1>, makeVoluntaryRelease$default$4 : UInt<1>, makeVoluntaryRelease$default$5 : UInt<1>, makeVoluntaryWriteback$default$3 : UInt<1>, makeVoluntaryWriteback$default$4 : UInt<1>}}}
+ when T_171350 : T_171366 := meta.resp[7]
+ wire T_171367 : UInt<3>[3]
+ T_171367[0] := UInt<3>(0)
+ T_171367[1] := UInt<3>(1)
+ T_171367[2] := UInt<3>(2)
+ wire T_171368 : UInt<2>[2]
+ T_171368[0] := UInt<2>(0)
+ T_171368[1] := UInt<2>(1)
+ wire T_171369 : UInt<2>[3]
+ T_171369[0] := UInt<2>(1)
+ T_171369[1] := UInt<2>(2)
+ T_171369[2] := UInt<2>(3)
+ wire T_171370 : UInt<2>[2]
+ T_171370[0] := UInt<2>(2)
+ T_171370[1] := UInt<2>(3)
+ wire T_171371 : UInt<2>[1]
+ T_171371[0] := UInt<2>(3)
+ wire T_171372 : UInt<3>[3]
+ T_171372[0] := UInt<3>(0)
+ T_171372[1] := UInt<3>(1)
+ T_171372[2] := UInt<3>(2)
+ wire T_171373 : UInt<2>[2]
+ T_171373[0] := UInt<2>(0)
+ T_171373[1] := UInt<2>(1)
+ wire T_171374 : UInt<2>[3]
+ T_171374[0] := UInt<2>(1)
+ T_171374[1] := UInt<2>(2)
+ T_171374[2] := UInt<2>(3)
+ wire T_171375 : UInt<2>[2]
+ T_171375[0] := UInt<2>(2)
+ T_171375[1] := UInt<2>(3)
+ wire T_171376 : UInt<2>[1]
+ T_171376[0] := UInt<2>(3)
+ wire T_171377 : UInt<3>[3]
+ T_171377[0] := UInt<3>(0)
+ T_171377[1] := UInt<3>(1)
+ T_171377[2] := UInt<3>(2)
+ wire T_171378 : UInt<0>[1]
+ T_171378[0] := UInt<0>(0)
+ wire T_171379 : UInt<2>[2]
+ T_171379[0] := UInt<2>(1)
+ T_171379[1] := UInt<2>(2)
+ wire T_171380 : UInt<2>[2]
+ T_171380[0] := UInt<2>(1)
+ T_171380[1] := UInt<2>(2)
+ wire T_171381 : UInt<2>[1]
+ T_171381[0] := UInt<2>(2)
+ wire T_171382 : UInt<3>[3]
+ T_171382[0] := UInt<3>(0)
+ T_171382[1] := UInt<3>(1)
+ T_171382[2] := UInt<3>(2)
+ wire T_171383 : UInt<2>[2]
+ T_171383[0] := UInt<2>(0)
+ T_171383[1] := UInt<2>(1)
+ wire T_171384 : UInt<2>[3]
+ T_171384[0] := UInt<2>(1)
+ T_171384[1] := UInt<2>(2)
+ T_171384[2] := UInt<2>(3)
+ wire T_171385 : UInt<2>[2]
+ T_171385[0] := UInt<2>(2)
+ T_171385[1] := UInt<2>(3)
+ wire T_171386 : UInt<2>[1]
+ T_171386[0] := UInt<2>(3)
+ wire T_171387 : UInt<3>[3]
+ T_171387[0] := UInt<3>(0)
+ T_171387[1] := UInt<3>(1)
+ T_171387[2] := UInt<3>(2)
+ wire T_171388 : UInt<2>[2]
+ T_171388[0] := UInt<2>(0)
+ T_171388[1] := UInt<2>(1)
+ wire T_171389 : UInt<2>[3]
+ T_171389[0] := UInt<2>(1)
+ T_171389[1] := UInt<2>(2)
+ T_171389[2] := UInt<2>(3)
+ wire T_171390 : UInt<2>[2]
+ T_171390[0] := UInt<2>(2)
+ T_171390[1] := UInt<2>(3)
+ wire T_171391 : UInt<2>[1]
+ T_171391[0] := UInt<2>(3)
+ wire T_171392 : UInt<3>[3]
+ T_171392[0] := UInt<3>(0)
+ T_171392[1] := UInt<3>(1)
+ T_171392[2] := UInt<3>(2)
+ wire T_171393 : UInt<0>[1]
+ T_171393[0] := UInt<0>(0)
+ wire T_171394 : UInt<2>[2]
+ T_171394[0] := UInt<2>(1)
+ T_171394[1] := UInt<2>(2)
+ wire T_171395 : UInt<2>[2]
+ T_171395[0] := UInt<2>(1)
+ T_171395[1] := UInt<2>(2)
+ wire T_171396 : UInt<2>[1]
+ T_171396[0] := UInt<2>(2)
+ wire T_171397 : UInt<3>[3]
+ T_171397[0] := UInt<3>(0)
+ T_171397[1] := UInt<3>(1)
+ T_171397[2] := UInt<3>(2)
+ wire T_171398 : UInt<2>[2]
+ T_171398[0] := UInt<2>(0)
+ T_171398[1] := UInt<2>(1)
+ wire T_171399 : UInt<2>[3]
+ T_171399[0] := UInt<2>(1)
+ T_171399[1] := UInt<2>(2)
+ T_171399[2] := UInt<2>(3)
+ wire T_171400 : UInt<2>[2]
+ T_171400[0] := UInt<2>(2)
+ T_171400[1] := UInt<2>(3)
+ wire T_171401 : UInt<2>[1]
+ T_171401[0] := UInt<2>(3)
+ wire T_171402 : UInt<3>[3]
+ T_171402[0] := UInt<3>(0)
+ T_171402[1] := UInt<3>(1)
+ T_171402[2] := UInt<3>(2)
+ wire T_171403 : UInt<2>[2]
+ T_171403[0] := UInt<2>(0)
+ T_171403[1] := UInt<2>(1)
+ wire T_171404 : UInt<2>[3]
+ T_171404[0] := UInt<2>(1)
+ T_171404[1] := UInt<2>(2)
+ T_171404[2] := UInt<2>(3)
+ wire T_171405 : UInt<2>[2]
+ T_171405[0] := UInt<2>(2)
+ T_171405[1] := UInt<2>(3)
+ wire T_171406 : UInt<2>[1]
+ T_171406[0] := UInt<2>(3)
+ wire T_171407 : UInt<3>[3]
+ T_171407[0] := UInt<3>(0)
+ T_171407[1] := UInt<3>(1)
+ T_171407[2] := UInt<3>(2)
+ wire T_171408 : UInt<0>[1]
+ T_171408[0] := UInt<0>(0)
+ wire T_171409 : UInt<2>[2]
+ T_171409[0] := UInt<2>(1)
+ T_171409[1] := UInt<2>(2)
+ wire T_171410 : UInt<2>[2]
+ T_171410[0] := UInt<2>(1)
+ T_171410[1] := UInt<2>(2)
+ wire T_171411 : UInt<2>[1]
+ T_171411[0] := UInt<2>(2)
+ wire T_171412 : UInt<3>[3]
+ T_171412[0] := UInt<3>(0)
+ T_171412[1] := UInt<3>(1)
+ T_171412[2] := UInt<3>(2)
+ wire T_171413 : UInt<2>[2]
+ T_171413[0] := UInt<2>(0)
+ T_171413[1] := UInt<2>(1)
+ wire T_171414 : UInt<2>[3]
+ T_171414[0] := UInt<2>(1)
+ T_171414[1] := UInt<2>(2)
+ T_171414[2] := UInt<2>(3)
+ wire T_171415 : UInt<2>[2]
+ T_171415[0] := UInt<2>(2)
+ T_171415[1] := UInt<2>(3)
+ wire T_171416 : UInt<2>[1]
+ T_171416[0] := UInt<2>(3)
+ wire T_171417 : UInt<3>[3]
+ T_171417[0] := UInt<3>(0)
+ T_171417[1] := UInt<3>(1)
+ T_171417[2] := UInt<3>(2)
+ wire T_171418 : UInt<2>[2]
+ T_171418[0] := UInt<2>(0)
+ T_171418[1] := UInt<2>(1)
+ wire T_171419 : UInt<2>[3]
+ T_171419[0] := UInt<2>(1)
+ T_171419[1] := UInt<2>(2)
+ T_171419[2] := UInt<2>(3)
+ wire T_171420 : UInt<2>[2]
+ T_171420[0] := UInt<2>(2)
+ T_171420[1] := UInt<2>(3)
+ wire T_171421 : UInt<2>[1]
+ T_171421[0] := UInt<2>(3)
+ wire T_171422 : UInt<3>[3]
+ T_171422[0] := UInt<3>(0)
+ T_171422[1] := UInt<3>(1)
+ T_171422[2] := UInt<3>(2)
+ wire T_171423 : UInt<0>[1]
+ T_171423[0] := UInt<0>(0)
+ wire T_171424 : UInt<2>[2]
+ T_171424[0] := UInt<2>(1)
+ T_171424[1] := UInt<2>(2)
+ wire T_171425 : UInt<2>[2]
+ T_171425[0] := UInt<2>(1)
+ T_171425[1] := UInt<2>(2)
+ wire T_171426 : UInt<2>[1]
+ T_171426[0] := UInt<2>(2)
+ wire T_171427 : UInt<3>[3]
+ T_171427[0] := UInt<3>(0)
+ T_171427[1] := UInt<3>(1)
+ T_171427[2] := UInt<3>(2)
+ wire T_171428 : UInt<2>[2]
+ T_171428[0] := UInt<2>(0)
+ T_171428[1] := UInt<2>(1)
+ wire T_171429 : UInt<2>[3]
+ T_171429[0] := UInt<2>(1)
+ T_171429[1] := UInt<2>(2)
+ T_171429[2] := UInt<2>(3)
+ wire T_171430 : UInt<2>[2]
+ T_171430[0] := UInt<2>(2)
+ T_171430[1] := UInt<2>(3)
+ wire T_171431 : UInt<2>[1]
+ T_171431[0] := UInt<2>(3)
+ wire T_171432 : UInt<3>[3]
+ T_171432[0] := UInt<3>(0)
+ T_171432[1] := UInt<3>(1)
+ T_171432[2] := UInt<3>(2)
+ wire T_171433 : UInt<2>[2]
+ T_171433[0] := UInt<2>(0)
+ T_171433[1] := UInt<2>(1)
+ wire T_171434 : UInt<2>[3]
+ T_171434[0] := UInt<2>(1)
+ T_171434[1] := UInt<2>(2)
+ T_171434[2] := UInt<2>(3)
+ wire T_171435 : UInt<2>[2]
+ T_171435[0] := UInt<2>(2)
+ T_171435[1] := UInt<2>(3)
+ wire T_171436 : UInt<2>[1]
+ T_171436[0] := UInt<2>(3)
+ wire T_171437 : UInt<3>[3]
+ T_171437[0] := UInt<3>(0)
+ T_171437[1] := UInt<3>(1)
+ T_171437[2] := UInt<3>(2)
+ wire T_171438 : UInt<0>[1]
+ T_171438[0] := UInt<0>(0)
+ wire T_171439 : UInt<2>[2]
+ T_171439[0] := UInt<2>(1)
+ T_171439[1] := UInt<2>(2)
+ wire T_171440 : UInt<2>[2]
+ T_171440[0] := UInt<2>(1)
+ T_171440[1] := UInt<2>(2)
+ wire T_171441 : UInt<2>[1]
+ T_171441[0] := UInt<2>(2)
+ wire T_171442 : UInt<3>[3]
+ T_171442[0] := UInt<3>(0)
+ T_171442[1] := UInt<3>(1)
+ T_171442[2] := UInt<3>(2)
+ wire T_171443 : UInt<2>[2]
+ T_171443[0] := UInt<2>(0)
+ T_171443[1] := UInt<2>(1)
+ wire T_171444 : UInt<2>[3]
+ T_171444[0] := UInt<2>(1)
+ T_171444[1] := UInt<2>(2)
+ T_171444[2] := UInt<2>(3)
+ wire T_171445 : UInt<2>[2]
+ T_171445[0] := UInt<2>(2)
+ T_171445[1] := UInt<2>(3)
+ wire T_171446 : UInt<2>[1]
+ T_171446[0] := UInt<2>(3)
+ wire T_171447 : UInt<3>[3]
+ T_171447[0] := UInt<3>(0)
+ T_171447[1] := UInt<3>(1)
+ T_171447[2] := UInt<3>(2)
+ wire T_171448 : UInt<2>[2]
+ T_171448[0] := UInt<2>(0)
+ T_171448[1] := UInt<2>(1)
+ wire T_171449 : UInt<2>[3]
+ T_171449[0] := UInt<2>(1)
+ T_171449[1] := UInt<2>(2)
+ T_171449[2] := UInt<2>(3)
+ wire T_171450 : UInt<2>[2]
+ T_171450[0] := UInt<2>(2)
+ T_171450[1] := UInt<2>(3)
+ wire T_171451 : UInt<2>[1]
+ T_171451[0] := UInt<2>(3)
+ wire T_171452 : UInt<3>[3]
+ T_171452[0] := UInt<3>(0)
+ T_171452[1] := UInt<3>(1)
+ T_171452[2] := UInt<3>(2)
+ wire T_171453 : UInt<0>[1]
+ T_171453[0] := UInt<0>(0)
+ wire T_171454 : UInt<2>[2]
+ T_171454[0] := UInt<2>(1)
+ T_171454[1] := UInt<2>(2)
+ wire T_171455 : UInt<2>[2]
+ T_171455[0] := UInt<2>(1)
+ T_171455[1] := UInt<2>(2)
+ wire T_171456 : UInt<2>[1]
+ T_171456[0] := UInt<2>(2)
+ wire T_171457 : UInt<3>[3]
+ T_171457[0] := UInt<3>(0)
+ T_171457[1] := UInt<3>(1)
+ T_171457[2] := UInt<3>(2)
+ wire T_171458 : UInt<2>[2]
+ T_171458[0] := UInt<2>(0)
+ T_171458[1] := UInt<2>(1)
+ wire T_171459 : UInt<2>[3]
+ T_171459[0] := UInt<2>(1)
+ T_171459[1] := UInt<2>(2)
+ T_171459[2] := UInt<2>(3)
+ wire T_171460 : UInt<2>[2]
+ T_171460[0] := UInt<2>(2)
+ T_171460[1] := UInt<2>(3)
+ wire T_171461 : UInt<2>[1]
+ T_171461[0] := UInt<2>(3)
+ wire T_171462 : UInt<3>[3]
+ T_171462[0] := UInt<3>(0)
+ T_171462[1] := UInt<3>(1)
+ T_171462[2] := UInt<3>(2)
+ wire T_171463 : UInt<2>[2]
+ T_171463[0] := UInt<2>(0)
+ T_171463[1] := UInt<2>(1)
+ wire T_171464 : UInt<2>[3]
+ T_171464[0] := UInt<2>(1)
+ T_171464[1] := UInt<2>(2)
+ T_171464[2] := UInt<2>(3)
+ wire T_171465 : UInt<2>[2]
+ T_171465[0] := UInt<2>(2)
+ T_171465[1] := UInt<2>(3)
+ wire T_171466 : UInt<2>[1]
+ T_171466[0] := UInt<2>(3)
+ wire T_171467 : UInt<3>[3]
+ T_171467[0] := UInt<3>(0)
+ T_171467[1] := UInt<3>(1)
+ T_171467[2] := UInt<3>(2)
+ wire T_171468 : UInt<0>[1]
+ T_171468[0] := UInt<0>(0)
+ wire T_171469 : UInt<2>[2]
+ T_171469[0] := UInt<2>(1)
+ T_171469[1] := UInt<2>(2)
+ wire T_171470 : UInt<2>[2]
+ T_171470[0] := UInt<2>(1)
+ T_171470[1] := UInt<2>(2)
+ wire T_171471 : UInt<2>[1]
+ T_171471[0] := UInt<2>(2)
+ wire T_171472 : UInt<3>[3]
+ T_171472[0] := UInt<3>(0)
+ T_171472[1] := UInt<3>(1)
+ T_171472[2] := UInt<3>(2)
+ wire T_171473 : UInt<2>[2]
+ T_171473[0] := UInt<2>(0)
+ T_171473[1] := UInt<2>(1)
+ wire T_171474 : UInt<2>[3]
+ T_171474[0] := UInt<2>(1)
+ T_171474[1] := UInt<2>(2)
+ T_171474[2] := UInt<2>(3)
+ wire T_171475 : UInt<2>[2]
+ T_171475[0] := UInt<2>(2)
+ T_171475[1] := UInt<2>(3)
+ wire T_171476 : UInt<2>[1]
+ T_171476[0] := UInt<2>(3)
+ wire T_171477 : UInt<3>[3]
+ T_171477[0] := UInt<3>(0)
+ T_171477[1] := UInt<3>(1)
+ T_171477[2] := UInt<3>(2)
+ wire T_171478 : UInt<2>[2]
+ T_171478[0] := UInt<2>(0)
+ T_171478[1] := UInt<2>(1)
+ wire T_171479 : UInt<2>[3]
+ T_171479[0] := UInt<2>(1)
+ T_171479[1] := UInt<2>(2)
+ T_171479[2] := UInt<2>(3)
+ wire T_171480 : UInt<2>[2]
+ T_171480[0] := UInt<2>(2)
+ T_171480[1] := UInt<2>(3)
+ wire T_171481 : UInt<2>[1]
+ T_171481[0] := UInt<2>(3)
+ wire T_171482 : UInt<3>[3]
+ T_171482[0] := UInt<3>(0)
+ T_171482[1] := UInt<3>(1)
+ T_171482[2] := UInt<3>(2)
+ wire T_171483 : UInt<0>[1]
+ T_171483[0] := UInt<0>(0)
+ wire T_171484 : UInt<2>[2]
+ T_171484[0] := UInt<2>(1)
+ T_171484[1] := UInt<2>(2)
+ wire T_171485 : UInt<2>[2]
+ T_171485[0] := UInt<2>(1)
+ T_171485[1] := UInt<2>(2)
+ wire T_171486 : UInt<2>[1]
+ T_171486[0] := UInt<2>(2)
+ wire T_171487 : {tag : UInt<14>, coh : {inner : {sharers : UInt<1>, makeGrant$default$3 : UInt<1>, makeGrant$default$4 : UInt<1>}, outer : {state : UInt<2>, makeRelease$default$2 : UInt<1>, makeRelease$default$3 : UInt<1>, makeVoluntaryRelease$default$4 : UInt<1>, makeVoluntaryRelease$default$5 : UInt<1>, makeVoluntaryWriteback$default$3 : UInt<1>, makeVoluntaryWriteback$default$4 : UInt<1>}}}[8]
+ T_171487[0] := T_171240
+ T_171487[1] := T_171258
+ T_171487[2] := T_171276
+ T_171487[3] := T_171294
+ T_171487[4] := T_171312
+ T_171487[5] := T_171330
+ T_171487[6] := T_171348
+ T_171487[7] := T_171366
+ node T_171488 = bit(s2_replaced_way_en, 0)
+ node T_171489 = bit(s2_replaced_way_en, 1)
+ node T_171490 = bit(s2_replaced_way_en, 2)
+ node T_171491 = bit(s2_replaced_way_en, 3)
+ node T_171492 = bit(s2_replaced_way_en, 4)
+ node T_171493 = bit(s2_replaced_way_en, 5)
+ node T_171494 = bit(s2_replaced_way_en, 6)
+ node T_171495 = bit(s2_replaced_way_en, 7)
+ node T_171496 = cat(T_171487[0].tag, T_171487[0].coh.inner.sharers)
+ node T_171497 = cat(UInt<1>(0), T_171487[0].coh.outer.state)
+ node T_171498 = cat(UInt<1>(0), T_171497)
+ node T_171499 = cat(T_171496, T_171498)
+ node T_171500 = cat(T_171499, UInt<5>(0))
+ node T_171501 = cat(UInt<1>(0), T_171487[0].coh.inner.sharers)
+ node T_171502 = cat(UInt<1>(0), T_171487[0].coh.outer.state)
+ node T_171503 = cat(UInt<1>(0), T_171502)
+ node T_171504 = cat(T_171501, T_171503)
+ node T_171505 = cat(T_171504, UInt<6>(0))
+ node T_171506 = cat(T_171500, T_171505)
+ wire T_171507 : UInt<1>
+ T_171507 := UInt<1>(0)
+ when T_171488 : T_171507 := T_171506
+ node T_171508 = cat(T_171487[1].tag, T_171487[1].coh.inner.sharers)
+ node T_171509 = cat(UInt<1>(0), T_171487[1].coh.outer.state)
+ node T_171510 = cat(UInt<1>(0), T_171509)
+ node T_171511 = cat(T_171508, T_171510)
+ node T_171512 = cat(T_171511, UInt<5>(0))
+ node T_171513 = cat(UInt<1>(0), T_171487[1].coh.inner.sharers)
+ node T_171514 = cat(UInt<1>(0), T_171487[1].coh.outer.state)
+ node T_171515 = cat(UInt<1>(0), T_171514)
+ node T_171516 = cat(T_171513, T_171515)
+ node T_171517 = cat(T_171516, UInt<6>(0))
+ node T_171518 = cat(T_171512, T_171517)
+ wire T_171519 : UInt<1>
+ T_171519 := UInt<1>(0)
+ when T_171489 : T_171519 := T_171518
+ node T_171520 = cat(T_171487[2].tag, T_171487[2].coh.inner.sharers)
+ node T_171521 = cat(UInt<1>(0), T_171487[2].coh.outer.state)
+ node T_171522 = cat(UInt<1>(0), T_171521)
+ node T_171523 = cat(T_171520, T_171522)
+ node T_171524 = cat(T_171523, UInt<5>(0))
+ node T_171525 = cat(UInt<1>(0), T_171487[2].coh.inner.sharers)
+ node T_171526 = cat(UInt<1>(0), T_171487[2].coh.outer.state)
+ node T_171527 = cat(UInt<1>(0), T_171526)
+ node T_171528 = cat(T_171525, T_171527)
+ node T_171529 = cat(T_171528, UInt<6>(0))
+ node T_171530 = cat(T_171524, T_171529)
+ wire T_171531 : UInt<1>
+ T_171531 := UInt<1>(0)
+ when T_171490 : T_171531 := T_171530
+ node T_171532 = cat(T_171487[3].tag, T_171487[3].coh.inner.sharers)
+ node T_171533 = cat(UInt<1>(0), T_171487[3].coh.outer.state)
+ node T_171534 = cat(UInt<1>(0), T_171533)
+ node T_171535 = cat(T_171532, T_171534)
+ node T_171536 = cat(T_171535, UInt<5>(0))
+ node T_171537 = cat(UInt<1>(0), T_171487[3].coh.inner.sharers)
+ node T_171538 = cat(UInt<1>(0), T_171487[3].coh.outer.state)
+ node T_171539 = cat(UInt<1>(0), T_171538)
+ node T_171540 = cat(T_171537, T_171539)
+ node T_171541 = cat(T_171540, UInt<6>(0))
+ node T_171542 = cat(T_171536, T_171541)
+ wire T_171543 : UInt<1>
+ T_171543 := UInt<1>(0)
+ when T_171491 : T_171543 := T_171542
+ node T_171544 = cat(T_171487[4].tag, T_171487[4].coh.inner.sharers)
+ node T_171545 = cat(UInt<1>(0), T_171487[4].coh.outer.state)
+ node T_171546 = cat(UInt<1>(0), T_171545)
+ node T_171547 = cat(T_171544, T_171546)
+ node T_171548 = cat(T_171547, UInt<5>(0))
+ node T_171549 = cat(UInt<1>(0), T_171487[4].coh.inner.sharers)
+ node T_171550 = cat(UInt<1>(0), T_171487[4].coh.outer.state)
+ node T_171551 = cat(UInt<1>(0), T_171550)
+ node T_171552 = cat(T_171549, T_171551)
+ node T_171553 = cat(T_171552, UInt<6>(0))
+ node T_171554 = cat(T_171548, T_171553)
+ wire T_171555 : UInt<1>
+ T_171555 := UInt<1>(0)
+ when T_171492 : T_171555 := T_171554
+ node T_171556 = cat(T_171487[5].tag, T_171487[5].coh.inner.sharers)
+ node T_171557 = cat(UInt<1>(0), T_171487[5].coh.outer.state)
+ node T_171558 = cat(UInt<1>(0), T_171557)
+ node T_171559 = cat(T_171556, T_171558)
+ node T_171560 = cat(T_171559, UInt<5>(0))
+ node T_171561 = cat(UInt<1>(0), T_171487[5].coh.inner.sharers)
+ node T_171562 = cat(UInt<1>(0), T_171487[5].coh.outer.state)
+ node T_171563 = cat(UInt<1>(0), T_171562)
+ node T_171564 = cat(T_171561, T_171563)
+ node T_171565 = cat(T_171564, UInt<6>(0))
+ node T_171566 = cat(T_171560, T_171565)
+ wire T_171567 : UInt<1>
+ T_171567 := UInt<1>(0)
+ when T_171493 : T_171567 := T_171566
+ node T_171568 = cat(T_171487[6].tag, T_171487[6].coh.inner.sharers)
+ node T_171569 = cat(UInt<1>(0), T_171487[6].coh.outer.state)
+ node T_171570 = cat(UInt<1>(0), T_171569)
+ node T_171571 = cat(T_171568, T_171570)
+ node T_171572 = cat(T_171571, UInt<5>(0))
+ node T_171573 = cat(UInt<1>(0), T_171487[6].coh.inner.sharers)
+ node T_171574 = cat(UInt<1>(0), T_171487[6].coh.outer.state)
+ node T_171575 = cat(UInt<1>(0), T_171574)
+ node T_171576 = cat(T_171573, T_171575)
+ node T_171577 = cat(T_171576, UInt<6>(0))
+ node T_171578 = cat(T_171572, T_171577)
+ wire T_171579 : UInt<1>
+ T_171579 := UInt<1>(0)
+ when T_171494 : T_171579 := T_171578
+ node T_171580 = cat(T_171487[7].tag, T_171487[7].coh.inner.sharers)
+ node T_171581 = cat(UInt<1>(0), T_171487[7].coh.outer.state)
+ node T_171582 = cat(UInt<1>(0), T_171581)
+ node T_171583 = cat(T_171580, T_171582)
+ node T_171584 = cat(T_171583, UInt<5>(0))
+ node T_171585 = cat(UInt<1>(0), T_171487[7].coh.inner.sharers)
+ node T_171586 = cat(UInt<1>(0), T_171487[7].coh.outer.state)
+ node T_171587 = cat(UInt<1>(0), T_171586)
+ node T_171588 = cat(T_171585, T_171587)
+ node T_171589 = cat(T_171588, UInt<6>(0))
+ node T_171590 = cat(T_171584, T_171589)
+ wire T_171591 : UInt<1>
+ T_171591 := UInt<1>(0)
+ when T_171495 : T_171591 := T_171590
+ node T_171592 = or(T_171507, T_171519)
+ node T_171593 = or(T_171592, T_171531)
+ node T_171594 = or(T_171593, T_171543)
+ node T_171595 = or(T_171594, T_171555)
+ node T_171596 = or(T_171595, T_171567)
+ node T_171597 = or(T_171596, T_171579)
+ node T_171598 = or(T_171597, T_171591)
+ wire T_171599 : UInt<3>[3]
+ T_171599[0] := UInt<3>(0)
+ T_171599[1] := UInt<3>(1)
+ T_171599[2] := UInt<3>(2)
+ wire T_171600 : UInt<2>[2]
+ T_171600[0] := UInt<2>(0)
+ T_171600[1] := UInt<2>(1)
+ wire T_171601 : UInt<2>[3]
+ T_171601[0] := UInt<2>(1)
+ T_171601[1] := UInt<2>(2)
+ T_171601[2] := UInt<2>(3)
+ wire T_171602 : UInt<2>[2]
+ T_171602[0] := UInt<2>(2)
+ T_171602[1] := UInt<2>(3)
+ wire T_171603 : UInt<2>[1]
+ T_171603[0] := UInt<2>(3)
+ wire T_171604 : UInt<3>[3]
+ T_171604[0] := UInt<3>(0)
+ T_171604[1] := UInt<3>(1)
+ T_171604[2] := UInt<3>(2)
+ wire T_171605 : UInt<2>[2]
+ T_171605[0] := UInt<2>(0)
+ T_171605[1] := UInt<2>(1)
+ wire T_171606 : UInt<2>[3]
+ T_171606[0] := UInt<2>(1)
+ T_171606[1] := UInt<2>(2)
+ T_171606[2] := UInt<2>(3)
+ wire T_171607 : UInt<2>[2]
+ T_171607[0] := UInt<2>(2)
+ T_171607[1] := UInt<2>(3)
+ wire T_171608 : UInt<2>[1]
+ T_171608[0] := UInt<2>(3)
+ wire T_171609 : UInt<3>[3]
+ T_171609[0] := UInt<3>(0)
+ T_171609[1] := UInt<3>(1)
+ T_171609[2] := UInt<3>(2)
+ wire T_171610 : UInt<0>[1]
+ T_171610[0] := UInt<0>(0)
+ wire T_171611 : UInt<2>[2]
+ T_171611[0] := UInt<2>(1)
+ T_171611[1] := UInt<2>(2)
+ wire T_171612 : UInt<2>[2]
+ T_171612[0] := UInt<2>(1)
+ T_171612[1] := UInt<2>(2)
+ wire T_171613 : UInt<2>[1]
+ T_171613[0] := UInt<2>(2)
+ wire T_171614 : UInt<3>[3]
+ T_171614[0] := UInt<3>(0)
+ T_171614[1] := UInt<3>(1)
+ T_171614[2] := UInt<3>(2)
+ wire T_171615 : UInt<2>[2]
+ T_171615[0] := UInt<2>(0)
+ T_171615[1] := UInt<2>(1)
+ wire T_171616 : UInt<2>[3]
+ T_171616[0] := UInt<2>(1)
+ T_171616[1] := UInt<2>(2)
+ T_171616[2] := UInt<2>(3)
+ wire T_171617 : UInt<2>[2]
+ T_171617[0] := UInt<2>(2)
+ T_171617[1] := UInt<2>(3)
+ wire T_171618 : UInt<2>[1]
+ T_171618[0] := UInt<2>(3)
+ wire T_171619 : UInt<3>[3]
+ T_171619[0] := UInt<3>(0)
+ T_171619[1] := UInt<3>(1)
+ T_171619[2] := UInt<3>(2)
+ wire T_171620 : UInt<2>[2]
+ T_171620[0] := UInt<2>(0)
+ T_171620[1] := UInt<2>(1)
+ wire T_171621 : UInt<2>[3]
+ T_171621[0] := UInt<2>(1)
+ T_171621[1] := UInt<2>(2)
+ T_171621[2] := UInt<2>(3)
+ wire T_171622 : UInt<2>[2]
+ T_171622[0] := UInt<2>(2)
+ T_171622[1] := UInt<2>(3)
+ wire T_171623 : UInt<2>[1]
+ T_171623[0] := UInt<2>(3)
+ wire T_171624 : UInt<3>[3]
+ T_171624[0] := UInt<3>(0)
+ T_171624[1] := UInt<3>(1)
+ T_171624[2] := UInt<3>(2)
+ wire T_171625 : UInt<0>[1]
+ T_171625[0] := UInt<0>(0)
+ wire T_171626 : UInt<2>[2]
+ T_171626[0] := UInt<2>(1)
+ T_171626[1] := UInt<2>(2)
+ wire T_171627 : UInt<2>[2]
+ T_171627[0] := UInt<2>(1)
+ T_171627[1] := UInt<2>(2)
+ wire T_171628 : UInt<2>[1]
+ T_171628[0] := UInt<2>(2)
+ wire s2_repl_meta : {tag : UInt<14>, coh : {inner : {sharers : UInt<1>, makeGrant$default$3 : UInt<1>, makeGrant$default$4 : UInt<1>}, outer : {state : UInt<2>, makeRelease$default$2 : UInt<1>, makeRelease$default$3 : UInt<1>, makeVoluntaryRelease$default$4 : UInt<1>, makeVoluntaryRelease$default$5 : UInt<1>, makeVoluntaryWriteback$default$3 : UInt<1>, makeVoluntaryWriteback$default$4 : UInt<1>}}}
+ node T_171629 = bits(T_171598, 0, 0)
+ s2_repl_meta.coh.outer.makeVoluntaryWriteback$default$4 := T_171629
+ node T_171630 = bits(T_171598, 1, 1)
+ s2_repl_meta.coh.outer.makeVoluntaryWriteback$default$3 := T_171630
+ node T_171631 = bits(T_171598, 2, 2)
+ s2_repl_meta.coh.outer.makeVoluntaryRelease$default$5 := T_171631
+ node T_171632 = bits(T_171598, 3, 3)
+ s2_repl_meta.coh.outer.makeVoluntaryRelease$default$4 := T_171632
+ node T_171633 = bits(T_171598, 4, 4)
+ s2_repl_meta.coh.outer.makeRelease$default$3 := T_171633
+ node T_171634 = bits(T_171598, 5, 5)
+ s2_repl_meta.coh.outer.makeRelease$default$2 := T_171634
+ node T_171635 = bits(T_171598, 7, 6)
+ s2_repl_meta.coh.outer.state := T_171635
+ node T_171636 = bits(T_171598, 8, 8)
+ s2_repl_meta.coh.inner.makeGrant$default$4 := T_171636
+ node T_171637 = bits(T_171598, 9, 9)
+ s2_repl_meta.coh.inner.makeGrant$default$3 := T_171637
+ node T_171638 = bits(T_171598, 10, 10)
+ s2_repl_meta.coh.inner.sharers := T_171638
+ node T_171639 = bits(T_171598, 11, 11)
+ s2_repl_meta.coh.outer.makeVoluntaryWriteback$default$4 := T_171639
+ node T_171640 = bits(T_171598, 12, 12)
+ s2_repl_meta.coh.outer.makeVoluntaryWriteback$default$3 := T_171640
+ node T_171641 = bits(T_171598, 13, 13)
+ s2_repl_meta.coh.outer.makeVoluntaryRelease$default$5 := T_171641
+ node T_171642 = bits(T_171598, 14, 14)
+ s2_repl_meta.coh.outer.makeVoluntaryRelease$default$4 := T_171642
+ node T_171643 = bits(T_171598, 15, 15)
+ s2_repl_meta.coh.outer.makeRelease$default$3 := T_171643
+ node T_171644 = bits(T_171598, 16, 16)
+ s2_repl_meta.coh.outer.makeRelease$default$2 := T_171644
+ node T_171645 = bits(T_171598, 18, 17)
+ s2_repl_meta.coh.outer.state := T_171645
+ node T_171646 = bits(T_171598, 19, 19)
+ s2_repl_meta.coh.inner.makeGrant$default$4 := T_171646
+ node T_171647 = bits(T_171598, 20, 20)
+ s2_repl_meta.coh.inner.makeGrant$default$3 := T_171647
+ node T_171648 = bits(T_171598, 21, 21)
+ s2_repl_meta.coh.inner.sharers := T_171648
+ node T_171649 = bits(T_171598, 35, 22)
+ s2_repl_meta.tag := T_171649
+
+ node T_171650 = eq(s2_tag_match, UInt<1>(0))
+ when T_171650 : T_171209 := UInt<1>(1)
+ reg T_171651 : UInt<1>
+ T_171651 := s1_clk_en
+ resp.valid := T_171651
+ reg T_171652 : UInt<2>
+ when s1_clk_en : T_171652 := s1_id
+ resp.bits.id := T_171652
+ resp.bits.tag_match := s2_tag_match
+ wire T_171653 : UInt<3>[3]
+ T_171653[0] := UInt<3>(0)
+ T_171653[1] := UInt<3>(1)
+ T_171653[2] := UInt<3>(2)
+ wire T_171654 : UInt<2>[2]
+ T_171654[0] := UInt<2>(0)
+ T_171654[1] := UInt<2>(1)
+ wire T_171655 : UInt<2>[3]
+ T_171655[0] := UInt<2>(1)
+ T_171655[1] := UInt<2>(2)
+ T_171655[2] := UInt<2>(3)
+ wire T_171656 : UInt<2>[2]
+ T_171656[0] := UInt<2>(2)
+ T_171656[1] := UInt<2>(3)
+ wire T_171657 : UInt<2>[1]
+ T_171657[0] := UInt<2>(3)
+ wire T_171658 : UInt<3>[3]
+ T_171658[0] := UInt<3>(0)
+ T_171658[1] := UInt<3>(1)
+ T_171658[2] := UInt<3>(2)
+ wire T_171659 : UInt<2>[2]
+ T_171659[0] := UInt<2>(0)
+ T_171659[1] := UInt<2>(1)
+ wire T_171660 : UInt<2>[3]
+ T_171660[0] := UInt<2>(1)
+ T_171660[1] := UInt<2>(2)
+ T_171660[2] := UInt<2>(3)
+ wire T_171661 : UInt<2>[2]
+ T_171661[0] := UInt<2>(2)
+ T_171661[1] := UInt<2>(3)
+ wire T_171662 : UInt<2>[1]
+ T_171662[0] := UInt<2>(3)
+ wire T_171663 : UInt<3>[3]
+ T_171663[0] := UInt<3>(0)
+ T_171663[1] := UInt<3>(1)
+ T_171663[2] := UInt<3>(2)
+ wire T_171664 : UInt<0>[1]
+ T_171664[0] := UInt<0>(0)
+ wire T_171665 : UInt<2>[2]
+ T_171665[0] := UInt<2>(1)
+ T_171665[1] := UInt<2>(2)
+ wire T_171666 : UInt<2>[2]
+ T_171666[0] := UInt<2>(1)
+ T_171666[1] := UInt<2>(2)
+ wire T_171667 : UInt<2>[1]
+ T_171667[0] := UInt<2>(2)
+ wire T_171668 : UInt<3>[3]
+ T_171668[0] := UInt<3>(0)
+ T_171668[1] := UInt<3>(1)
+ T_171668[2] := UInt<3>(2)
+ wire T_171669 : UInt<2>[2]
+ T_171669[0] := UInt<2>(0)
+ T_171669[1] := UInt<2>(1)
+ wire T_171670 : UInt<2>[3]
+ T_171670[0] := UInt<2>(1)
+ T_171670[1] := UInt<2>(2)
+ T_171670[2] := UInt<2>(3)
+ wire T_171671 : UInt<2>[2]
+ T_171671[0] := UInt<2>(2)
+ T_171671[1] := UInt<2>(3)
+ wire T_171672 : UInt<2>[1]
+ T_171672[0] := UInt<2>(3)
+ wire T_171673 : UInt<3>[3]
+ T_171673[0] := UInt<3>(0)
+ T_171673[1] := UInt<3>(1)
+ T_171673[2] := UInt<3>(2)
+ wire T_171674 : UInt<2>[2]
+ T_171674[0] := UInt<2>(0)
+ T_171674[1] := UInt<2>(1)
+ wire T_171675 : UInt<2>[3]
+ T_171675[0] := UInt<2>(1)
+ T_171675[1] := UInt<2>(2)
+ T_171675[2] := UInt<2>(3)
+ wire T_171676 : UInt<2>[2]
+ T_171676[0] := UInt<2>(2)
+ T_171676[1] := UInt<2>(3)
+ wire T_171677 : UInt<2>[1]
+ T_171677[0] := UInt<2>(3)
+ wire T_171678 : UInt<3>[3]
+ T_171678[0] := UInt<3>(0)
+ T_171678[1] := UInt<3>(1)
+ T_171678[2] := UInt<3>(2)
+ wire T_171679 : UInt<0>[1]
+ T_171679[0] := UInt<0>(0)
+ wire T_171680 : UInt<2>[2]
+ T_171680[0] := UInt<2>(1)
+ T_171680[1] := UInt<2>(2)
+ wire T_171681 : UInt<2>[2]
+ T_171681[0] := UInt<2>(1)
+ T_171681[1] := UInt<2>(2)
+ wire T_171682 : UInt<2>[1]
+ T_171682[0] := UInt<2>(2)
+ wire T_171683 : {tag : UInt<14>, coh : {inner : {sharers : UInt<1>, makeGrant$default$3 : UInt<1>, makeGrant$default$4 : UInt<1>}, outer : {state : UInt<2>, makeRelease$default$2 : UInt<1>, makeRelease$default$3 : UInt<1>, makeVoluntaryRelease$default$4 : UInt<1>, makeVoluntaryRelease$default$5 : UInt<1>, makeVoluntaryWriteback$default$3 : UInt<1>, makeVoluntaryWriteback$default$4 : UInt<1>}}}
+ T_171683.tag := s2_repl_meta.tag
+ T_171683.coh := s2_hit_coh
+ wire T_171684 : UInt<3>[3]
+ T_171684[0] := UInt<3>(0)
+ T_171684[1] := UInt<3>(1)
+ T_171684[2] := UInt<3>(2)
+ wire T_171685 : UInt<2>[2]
+ T_171685[0] := UInt<2>(0)
+ T_171685[1] := UInt<2>(1)
+ wire T_171686 : UInt<2>[3]
+ T_171686[0] := UInt<2>(1)
+ T_171686[1] := UInt<2>(2)
+ T_171686[2] := UInt<2>(3)
+ wire T_171687 : UInt<2>[2]
+ T_171687[0] := UInt<2>(2)
+ T_171687[1] := UInt<2>(3)
+ wire T_171688 : UInt<2>[1]
+ T_171688[0] := UInt<2>(3)
+ wire T_171689 : UInt<3>[3]
+ T_171689[0] := UInt<3>(0)
+ T_171689[1] := UInt<3>(1)
+ T_171689[2] := UInt<3>(2)
+ wire T_171690 : UInt<2>[2]
+ T_171690[0] := UInt<2>(0)
+ T_171690[1] := UInt<2>(1)
+ wire T_171691 : UInt<2>[3]
+ T_171691[0] := UInt<2>(1)
+ T_171691[1] := UInt<2>(2)
+ T_171691[2] := UInt<2>(3)
+ wire T_171692 : UInt<2>[2]
+ T_171692[0] := UInt<2>(2)
+ T_171692[1] := UInt<2>(3)
+ wire T_171693 : UInt<2>[1]
+ T_171693[0] := UInt<2>(3)
+ wire T_171694 : UInt<3>[3]
+ T_171694[0] := UInt<3>(0)
+ T_171694[1] := UInt<3>(1)
+ T_171694[2] := UInt<3>(2)
+ wire T_171695 : UInt<0>[1]
+ T_171695[0] := UInt<0>(0)
+ wire T_171696 : UInt<2>[2]
+ T_171696[0] := UInt<2>(1)
+ T_171696[1] := UInt<2>(2)
+ wire T_171697 : UInt<2>[2]
+ T_171697[0] := UInt<2>(1)
+ T_171697[1] := UInt<2>(2)
+ wire T_171698 : UInt<2>[1]
+ T_171698[0] := UInt<2>(2)
+ wire T_171699 : {tag : UInt<14>, coh : {inner : {sharers : UInt<1>, makeGrant$default$3 : UInt<1>, makeGrant$default$4 : UInt<1>}, outer : {state : UInt<2>, makeRelease$default$2 : UInt<1>, makeRelease$default$3 : UInt<1>, makeVoluntaryRelease$default$4 : UInt<1>, makeVoluntaryRelease$default$5 : UInt<1>, makeVoluntaryWriteback$default$3 : UInt<1>, makeVoluntaryWriteback$default$4 : UInt<1>}}}
+ T_171699 := s2_repl_meta
+ when s2_tag_match : T_171699 := T_171683
+ resp.bits.meta := T_171699
+ wire T_171700 : UInt<9>
+ T_171700 := s2_replaced_way_en
+ when s2_tag_match : T_171700 := s2_tag_match_way
+ resp.bits.way_en := T_171700
+ module L2DataArray :
+ output read : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_beat : UInt<2>, id : UInt<2>, addr_idx : UInt<12>, way_en : UInt<8>}}
+ input resp : {valid : UInt<1>, bits : {id : UInt<2>, addr_beat : UInt<2>, data : UInt<128>}}
+ output write : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_beat : UInt<2>, id : UInt<2>, addr_idx : UInt<12>, way_en : UInt<8>, data : UInt<128>, wmask : UInt<16>}}
+
+ cmem T_171701 : UInt<128>[131072]
+ node T_171702 = eq(write.valid, UInt<1>(0))
+ node ren = and(T_171702, read.valid)
+ node T_171703 = bits(read.bits.way_en, 7, 4)
+ node T_171704 = bits(read.bits.way_en, 3, 0)
+ node T_171705 = eq(T_171703, UInt<1>(0))
+ node T_171706 = eq(T_171705, UInt<1>(0))
+ node T_171707 = or(T_171703, T_171704)
+ node T_171708 = bits(T_171707, 3, 2)
+ node T_171709 = bits(T_171707, 1, 0)
+ node T_171710 = eq(T_171708, UInt<1>(0))
+ node T_171711 = eq(T_171710, UInt<1>(0))
+ node T_171712 = or(T_171708, T_171709)
+ node T_171713 = bit(T_171712, 1)
+ node T_171714 = cat(T_171711, T_171713)
+ node T_171715 = cat(T_171706, T_171714)
+ node T_171716 = cat(read.bits.addr_idx, read.bits.addr_beat)
+ node raddr = cat(T_171715, T_171716)
+ node T_171717 = bits(write.bits.way_en, 7, 4)
+ node T_171718 = bits(write.bits.way_en, 3, 0)
+ node T_171719 = eq(T_171717, UInt<1>(0))
+ node T_171720 = eq(T_171719, UInt<1>(0))
+ node T_171721 = or(T_171717, T_171718)
+ node T_171722 = bits(T_171721, 3, 2)
+ node T_171723 = bits(T_171721, 1, 0)
+ node T_171724 = eq(T_171722, UInt<1>(0))
+ node T_171725 = eq(T_171724, UInt<1>(0))
+ node T_171726 = or(T_171722, T_171723)
+ node T_171727 = bit(T_171726, 1)
+ node T_171728 = cat(T_171725, T_171727)
+ node T_171729 = cat(T_171720, T_171728)
+ node T_171730 = cat(write.bits.addr_idx, write.bits.addr_beat)
+ node waddr = cat(T_171729, T_171730)
+ node T_171731 = bit(write.bits.wmask, 0)
+ node T_171732 = bit(write.bits.wmask, 1)
+ node T_171733 = bit(write.bits.wmask, 2)
+ node T_171734 = bit(write.bits.wmask, 3)
+ node T_171735 = bit(write.bits.wmask, 4)
+ node T_171736 = bit(write.bits.wmask, 5)
+ node T_171737 = bit(write.bits.wmask, 6)
+ node T_171738 = bit(write.bits.wmask, 7)
+ node T_171739 = bit(write.bits.wmask, 8)
+ node T_171740 = bit(write.bits.wmask, 9)
+ node T_171741 = bit(write.bits.wmask, 10)
+ node T_171742 = bit(write.bits.wmask, 11)
+ node T_171743 = bit(write.bits.wmask, 12)
+ node T_171744 = bit(write.bits.wmask, 13)
+ node T_171745 = bit(write.bits.wmask, 14)
+ node T_171746 = bit(write.bits.wmask, 15)
+ wire T_171747 : UInt<1>[16]
+ T_171747[0] := T_171731
+ T_171747[1] := T_171732
+ T_171747[2] := T_171733
+ T_171747[3] := T_171734
+ T_171747[4] := T_171735
+ T_171747[5] := T_171736
+ T_171747[6] := T_171737
+ T_171747[7] := T_171738
+ T_171747[8] := T_171739
+ T_171747[9] := T_171740
+ T_171747[10] := T_171741
+ T_171747[11] := T_171742
+ T_171747[12] := T_171743
+ T_171747[13] := T_171744
+ T_171747[14] := T_171745
+ T_171747[15] := T_171746
+ node T_171748 = subw(UInt<8>(0), UInt<4>(8))
+ node T_171749 = subw(UInt<8>(0), UInt<4>(8))
+ node T_171750 = subw(UInt<8>(0), UInt<4>(8))
+ node T_171751 = subw(UInt<8>(0), UInt<4>(8))
+ node T_171752 = subw(UInt<8>(0), UInt<4>(8))
+ node T_171753 = subw(UInt<8>(0), UInt<4>(8))
+ node T_171754 = subw(UInt<8>(0), UInt<4>(8))
+ node T_171755 = subw(UInt<8>(0), UInt<4>(8))
+ node T_171756 = subw(UInt<8>(0), UInt<4>(8))
+ node T_171757 = subw(UInt<8>(0), UInt<4>(8))
+ node T_171758 = subw(UInt<8>(0), UInt<4>(8))
+ node T_171759 = subw(UInt<8>(0), UInt<4>(8))
+ node T_171760 = subw(UInt<8>(0), UInt<4>(8))
+ node T_171761 = subw(UInt<8>(0), UInt<4>(8))
+ node T_171762 = subw(UInt<8>(0), UInt<4>(8))
+ node T_171763 = subw(UInt<8>(0), UInt<4>(8))
+ wire T_171764 : UInt<8>[16]
+ T_171764[0] := T_171748
+ T_171764[1] := T_171749
+ T_171764[2] := T_171750
+ T_171764[3] := T_171751
+ T_171764[4] := T_171752
+ T_171764[5] := T_171753
+ T_171764[6] := T_171754
+ T_171764[7] := T_171755
+ T_171764[8] := T_171756
+ T_171764[9] := T_171757
+ T_171764[10] := T_171758
+ T_171764[11] := T_171759
+ T_171764[12] := T_171760
+ T_171764[13] := T_171761
+ T_171764[14] := T_171762
+ T_171764[15] := T_171763
+ node T_171765 = cat(T_171764[15], T_171764[14])
+ node T_171766 = cat(T_171764[13], T_171764[12])
+ node T_171767 = cat(T_171765, T_171766)
+ node T_171768 = cat(T_171764[11], T_171764[10])
+ node T_171769 = cat(T_171764[9], T_171764[8])
+ node T_171770 = cat(T_171768, T_171769)
+ node T_171771 = cat(T_171767, T_171770)
+ node T_171772 = cat(T_171764[7], T_171764[6])
+ node T_171773 = cat(T_171764[5], T_171764[4])
+ node T_171774 = cat(T_171772, T_171773)
+ node T_171775 = cat(T_171764[3], T_171764[2])
+ node T_171776 = cat(T_171764[1], T_171764[0])
+ node T_171777 = cat(T_171775, T_171776)
+ node T_171778 = cat(T_171774, T_171777)
+ node wmask = cat(T_171771, T_171778)
+ when write.valid :
+ accessor T_171779 = T_171701[waddr]
+ node T_171780 = not(wmask)
+ node T_171781 = and(T_171779, T_171780)
+ node T_171782 = and(write.bits.data, wmask)
+ node T_171783 = or(T_171781, T_171782)
+ wire T_171784 : UInt<128>
+ node T_171785 = bits(T_171783, 127, 0)
+ T_171784 := T_171785
+ accessor T_171786 = T_171701[waddr]
+ T_171786 := T_171784
+ node T_171787 = and(read.ready, read.valid)
+ reg T_171788 : UInt<1>
+ onreset T_171788 := UInt<1>(0)
+ T_171788 := T_171787
+ reg T_171789 : {addr_beat : UInt<2>, id : UInt<2>, addr_idx : UInt<12>, way_en : UInt<8>}
+ when T_171787 : T_171789 := read.bits
+ r_req.valid <> T_171788
+ r_req.bits <> T_171789
+ reg T_171790 : UInt<1>
+ onreset T_171790 := UInt<1>(0)
+ T_171790 := r_req.valid
+ reg T_171791 : {addr_beat : UInt<2>, id : UInt<2>, addr_idx : UInt<12>, way_en : UInt<8>}
+ when r_req.valid : T_171791 := r_req.bits
+ T_171792.valid <> T_171790
+ T_171792.bits <> T_171791
+ resp := T_171792
+ reg T_171793 : UInt<17>
+ when ren : T_171793 := raddr
+ accessor T_171794 = T_171701[T_171793]
+ reg T_171795 : UInt<1>
+ onreset T_171795 := UInt<1>(0)
+ T_171795 := r_req.valid
+ reg T_171796 : UInt<128>
+ when r_req.valid : T_171796 := T_171794
+ T_171797.valid <> T_171795
+ T_171797.bits <> T_171796
+ resp.bits.data := T_171797.bits
+ node T_171798 = eq(write.valid, UInt<1>(0))
+ read.ready := T_171798
+ write.ready := UInt<1>(1)
+ module L2VoluntaryReleaseTracker :
+ output inner : {flip acquire : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_block : UInt<26>, client_xact_id : UInt<1>, addr_beat : UInt<2>, data : UInt<128>, is_builtin_type : UInt<1>, a_type : UInt<3>, union : UInt<17>, client_id : UInt<2>}}, grant : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_beat : UInt<2>, data : UInt<128>, client_xact_id : UInt<1>, manager_xact_id : UInt<2>, is_builtin_type : UInt<1>, g_type : UInt<4>, client_id : UInt<2>}}, flip finish : {flip ready : UInt<1>, valid : UInt<1>, bits : {manager_xact_id : UInt<2>}}, probe : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_block : UInt<26>, p_type : UInt<2>, client_id : UInt<2>}}, flip release : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_block : UInt<26>, client_xact_id : UInt<1>, addr_beat : UInt<2>, data : UInt<128>, r_type : UInt<3>, voluntary : UInt<1>, client_id : UInt<2>}}}
+ input incoherent : UInt<1>[1]
+ output outer : {acquire : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_block : UInt<26>, client_xact_id : UInt<2>, addr_beat : UInt<2>, data : UInt<128>, is_builtin_type : UInt<1>, a_type : UInt<3>, union : UInt<17>}}, flip grant : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_beat : UInt<2>, data : UInt<128>, client_xact_id : UInt<2>, manager_xact_id : UInt<1>, is_builtin_type : UInt<1>, g_type : UInt<4>}}, flip probe : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_block : UInt<26>, p_type : UInt<2>}}, release : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_block : UInt<26>, client_xact_id : UInt<2>, addr_beat : UInt<2>, data : UInt<128>, r_type : UInt<3>, voluntary : UInt<1>}}}
+ output has_acquire_conflict : UInt<1>
+ output has_acquire_match : UInt<1>
+ output has_release_match : UInt<1>
+ output data : {read : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_beat : UInt<2>, id : UInt<2>, addr_idx : UInt<12>, way_en : UInt<8>}}, flip resp : {valid : UInt<1>, bits : {id : UInt<2>, addr_beat : UInt<2>, data : UInt<128>}}, write : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_beat : UInt<2>, id : UInt<2>, addr_idx : UInt<12>, way_en : UInt<8>, data : UInt<128>, wmask : UInt<16>}}}
+ output meta : {read : {flip ready : UInt<1>, valid : UInt<1>, bits : {idx : UInt<12>, id : UInt<2>, tag : UInt<14>}}, flip resp : {valid : UInt<1>, bits : {id : UInt<2>, tag_match : UInt<1>, meta : {tag : UInt<14>, coh : {inner : {sharers : UInt<1>, makeGrant$default$3 : UInt<1>, makeGrant$default$4 : UInt<1>}, outer : {state : UInt<2>, makeRelease$default$2 : UInt<1>, makeRelease$default$3 : UInt<1>, makeVoluntaryRelease$default$4 : UInt<1>, makeVoluntaryRelease$default$5 : UInt<1>, makeVoluntaryWriteback$default$3 : UInt<1>, makeVoluntaryWriteback$default$4 : UInt<1>}}}, way_en : UInt<8>}}, write : {flip ready : UInt<1>, valid : UInt<1>, bits : {idx : UInt<12>, way_en : UInt<8>, data : {tag : UInt<14>, coh : {inner : {sharers : UInt<1>, makeGrant$default$3 : UInt<1>, makeGrant$default$4 : UInt<1>}, outer : {state : UInt<2>, makeRelease$default$2 : UInt<1>, makeRelease$default$3 : UInt<1>, makeVoluntaryRelease$default$4 : UInt<1>, makeVoluntaryRelease$default$5 : UInt<1>, makeVoluntaryWriteback$default$3 : UInt<1>, makeVoluntaryWriteback$default$4 : UInt<1>}}}, id : UInt<2>}}}
+ output wb : {req : {flip ready : UInt<1>, valid : UInt<1>, bits : {tag : UInt<14>, coh : {inner : {sharers : UInt<1>, makeGrant$default$3 : UInt<1>, makeGrant$default$4 : UInt<1>}, outer : {state : UInt<2>, makeRelease$default$2 : UInt<1>, makeRelease$default$3 : UInt<1>, makeVoluntaryRelease$default$4 : UInt<1>, makeVoluntaryRelease$default$5 : UInt<1>, makeVoluntaryWriteback$default$3 : UInt<1>, makeVoluntaryWriteback$default$4 : UInt<1>}}, id : UInt<2>, idx : UInt<12>, way_en : UInt<8>}}, flip resp : {valid : UInt<1>, bits : {id : UInt<2>}}}
+
+ wire T_171799 : UInt<3>[3]
+ T_171799[0] := UInt<3>(0)
+ T_171799[1] := UInt<3>(1)
+ T_171799[2] := UInt<3>(2)
+ wire T_171800 : UInt<2>[2]
+ T_171800[0] := UInt<2>(0)
+ T_171800[1] := UInt<2>(1)
+ wire T_171801 : UInt<2>[3]
+ T_171801[0] := UInt<2>(1)
+ T_171801[1] := UInt<2>(2)
+ T_171801[2] := UInt<2>(3)
+ wire T_171802 : UInt<2>[2]
+ T_171802[0] := UInt<2>(2)
+ T_171802[1] := UInt<2>(3)
+ wire T_171803 : UInt<2>[1]
+ T_171803[0] := UInt<2>(3)
+ wire T_171804 : UInt<3>[3]
+ T_171804[0] := UInt<3>(0)
+ T_171804[1] := UInt<3>(1)
+ T_171804[2] := UInt<3>(2)
+ wire T_171805 : UInt<2>[2]
+ T_171805[0] := UInt<2>(0)
+ T_171805[1] := UInt<2>(1)
+ wire T_171806 : UInt<2>[3]
+ T_171806[0] := UInt<2>(1)
+ T_171806[1] := UInt<2>(2)
+ T_171806[2] := UInt<2>(3)
+ wire T_171807 : UInt<2>[2]
+ T_171807[0] := UInt<2>(2)
+ T_171807[1] := UInt<2>(3)
+ wire T_171808 : UInt<2>[1]
+ T_171808[0] := UInt<2>(3)
+ wire T_171809 : UInt<3>[3]
+ T_171809[0] := UInt<3>(0)
+ T_171809[1] := UInt<3>(1)
+ T_171809[2] := UInt<3>(2)
+ wire T_171810 : UInt<2>[2]
+ T_171810[0] := UInt<2>(0)
+ T_171810[1] := UInt<2>(1)
+ wire T_171811 : UInt<2>[3]
+ T_171811[0] := UInt<2>(1)
+ T_171811[1] := UInt<2>(2)
+ T_171811[2] := UInt<2>(3)
+ wire T_171812 : UInt<2>[2]
+ T_171812[0] := UInt<2>(2)
+ T_171812[1] := UInt<2>(3)
+ wire T_171813 : UInt<2>[1]
+ T_171813[0] := UInt<2>(3)
+ wire T_171814 : UInt<3>[3]
+ T_171814[0] := UInt<3>(0)
+ T_171814[1] := UInt<3>(1)
+ T_171814[2] := UInt<3>(2)
+ wire T_171815 : UInt<2>[2]
+ T_171815[0] := UInt<2>(0)
+ T_171815[1] := UInt<2>(1)
+ wire T_171816 : UInt<2>[3]
+ T_171816[0] := UInt<2>(1)
+ T_171816[1] := UInt<2>(2)
+ T_171816[2] := UInt<2>(3)
+ wire T_171817 : UInt<2>[2]
+ T_171817[0] := UInt<2>(2)
+ T_171817[1] := UInt<2>(3)
+ wire T_171818 : UInt<2>[1]
+ T_171818[0] := UInt<2>(3)
+ wire T_171819 : UInt<3>[3]
+ T_171819[0] := UInt<3>(0)
+ T_171819[1] := UInt<3>(1)
+ T_171819[2] := UInt<3>(2)
+ wire T_171820 : UInt<2>[2]
+ T_171820[0] := UInt<2>(0)
+ T_171820[1] := UInt<2>(1)
+ wire T_171821 : UInt<2>[3]
+ T_171821[0] := UInt<2>(1)
+ T_171821[1] := UInt<2>(2)
+ T_171821[2] := UInt<2>(3)
+ wire T_171822 : UInt<2>[2]
+ T_171822[0] := UInt<2>(2)
+ T_171822[1] := UInt<2>(3)
+ wire T_171823 : UInt<2>[1]
+ T_171823[0] := UInt<2>(3)
+ wire T_171824 : UInt<3>[3]
+ T_171824[0] := UInt<3>(0)
+ T_171824[1] := UInt<3>(1)
+ T_171824[2] := UInt<3>(2)
+ wire T_171825 : UInt<2>[2]
+ T_171825[0] := UInt<2>(0)
+ T_171825[1] := UInt<2>(1)
+ wire T_171826 : UInt<2>[3]
+ T_171826[0] := UInt<2>(1)
+ T_171826[1] := UInt<2>(2)
+ T_171826[2] := UInt<2>(3)
+ wire T_171827 : UInt<2>[2]
+ T_171827[0] := UInt<2>(2)
+ T_171827[1] := UInt<2>(3)
+ wire T_171828 : UInt<2>[1]
+ T_171828[0] := UInt<2>(3)
+ wire T_171829 : UInt<3>[3]
+ T_171829[0] := UInt<3>(0)
+ T_171829[1] := UInt<3>(1)
+ T_171829[2] := UInt<3>(2)
+ wire T_171830 : UInt<2>[2]
+ T_171830[0] := UInt<2>(0)
+ T_171830[1] := UInt<2>(1)
+ wire T_171831 : UInt<2>[3]
+ T_171831[0] := UInt<2>(1)
+ T_171831[1] := UInt<2>(2)
+ T_171831[2] := UInt<2>(3)
+ wire T_171832 : UInt<2>[2]
+ T_171832[0] := UInt<2>(2)
+ T_171832[1] := UInt<2>(3)
+ wire T_171833 : UInt<2>[1]
+ T_171833[0] := UInt<2>(3)
+ wire T_171834 : UInt<3>[3]
+ T_171834[0] := UInt<3>(0)
+ T_171834[1] := UInt<3>(1)
+ T_171834[2] := UInt<3>(2)
+ wire T_171835 : UInt<2>[2]
+ T_171835[0] := UInt<2>(0)
+ T_171835[1] := UInt<2>(1)
+ wire T_171836 : UInt<2>[3]
+ T_171836[0] := UInt<2>(1)
+ T_171836[1] := UInt<2>(2)
+ T_171836[2] := UInt<2>(3)
+ wire T_171837 : UInt<2>[2]
+ T_171837[0] := UInt<2>(2)
+ T_171837[1] := UInt<2>(3)
+ wire T_171838 : UInt<2>[1]
+ T_171838[0] := UInt<2>(3)
+ wire T_171839 : UInt<3>[3]
+ T_171839[0] := UInt<3>(0)
+ T_171839[1] := UInt<3>(1)
+ T_171839[2] := UInt<3>(2)
+ wire T_171840 : UInt<2>[2]
+ T_171840[0] := UInt<2>(0)
+ T_171840[1] := UInt<2>(1)
+ wire T_171841 : UInt<2>[3]
+ T_171841[0] := UInt<2>(1)
+ T_171841[1] := UInt<2>(2)
+ T_171841[2] := UInt<2>(3)
+ wire T_171842 : UInt<2>[2]
+ T_171842[0] := UInt<2>(2)
+ T_171842[1] := UInt<2>(3)
+ wire T_171843 : UInt<2>[1]
+ T_171843[0] := UInt<2>(3)
+ wire T_171844 : UInt<3>[3]
+ T_171844[0] := UInt<3>(0)
+ T_171844[1] := UInt<3>(1)
+ T_171844[2] := UInt<3>(2)
+ wire T_171845 : UInt<2>[2]
+ T_171845[0] := UInt<2>(0)
+ T_171845[1] := UInt<2>(1)
+ wire T_171846 : UInt<2>[3]
+ T_171846[0] := UInt<2>(1)
+ T_171846[1] := UInt<2>(2)
+ T_171846[2] := UInt<2>(3)
+ wire T_171847 : UInt<2>[2]
+ T_171847[0] := UInt<2>(2)
+ T_171847[1] := UInt<2>(3)
+ wire T_171848 : UInt<2>[1]
+ T_171848[0] := UInt<2>(3)
+ wire T_171849 : UInt<3>[3]
+ T_171849[0] := UInt<3>(0)
+ T_171849[1] := UInt<3>(1)
+ T_171849[2] := UInt<3>(2)
+ wire T_171850 : UInt<2>[2]
+ T_171850[0] := UInt<2>(0)
+ T_171850[1] := UInt<2>(1)
+ wire T_171851 : UInt<2>[3]
+ T_171851[0] := UInt<2>(1)
+ T_171851[1] := UInt<2>(2)
+ T_171851[2] := UInt<2>(3)
+ wire T_171852 : UInt<2>[2]
+ T_171852[0] := UInt<2>(2)
+ T_171852[1] := UInt<2>(3)
+ wire T_171853 : UInt<2>[1]
+ T_171853[0] := UInt<2>(3)
+ wire incoherent : UInt<1>[1]
+ incoherent[0] := T_171854
+ wire T_171855 : UInt<3>[3]
+ T_171855[0] := UInt<3>(0)
+ T_171855[1] := UInt<3>(1)
+ T_171855[2] := UInt<3>(2)
+ wire T_171856 : UInt<0>[1]
+ T_171856[0] := UInt<0>(0)
+ wire T_171857 : UInt<2>[2]
+ T_171857[0] := UInt<2>(1)
+ T_171857[1] := UInt<2>(2)
+ wire T_171858 : UInt<2>[2]
+ T_171858[0] := UInt<2>(1)
+ T_171858[1] := UInt<2>(2)
+ wire T_171859 : UInt<2>[1]
+ T_171859[0] := UInt<2>(2)
+ wire T_171860 : UInt<3>[3]
+ T_171860[0] := UInt<3>(0)
+ T_171860[1] := UInt<3>(1)
+ T_171860[2] := UInt<3>(2)
+ wire T_171861 : UInt<0>[1]
+ T_171861[0] := UInt<0>(0)
+ wire T_171862 : UInt<2>[2]
+ T_171862[0] := UInt<2>(1)
+ T_171862[1] := UInt<2>(2)
+ wire T_171863 : UInt<2>[2]
+ T_171863[0] := UInt<2>(1)
+ T_171863[1] := UInt<2>(2)
+ wire T_171864 : UInt<2>[1]
+ T_171864[0] := UInt<2>(2)
+ wire T_171865 : UInt<3>[3]
+ T_171865[0] := UInt<3>(0)
+ T_171865[1] := UInt<3>(1)
+ T_171865[2] := UInt<3>(2)
+ wire T_171866 : UInt<0>[1]
+ T_171866[0] := UInt<0>(0)
+ wire T_171867 : UInt<2>[2]
+ T_171867[0] := UInt<2>(1)
+ T_171867[1] := UInt<2>(2)
+ wire T_171868 : UInt<2>[2]
+ T_171868[0] := UInt<2>(1)
+ T_171868[1] := UInt<2>(2)
+ wire T_171869 : UInt<2>[1]
+ T_171869[0] := UInt<2>(2)
+ wire T_171870 : UInt<3>[3]
+ T_171870[0] := UInt<3>(0)
+ T_171870[1] := UInt<3>(1)
+ T_171870[2] := UInt<3>(2)
+ wire T_171871 : UInt<0>[1]
+ T_171871[0] := UInt<0>(0)
+ wire T_171872 : UInt<2>[2]
+ T_171872[0] := UInt<2>(1)
+ T_171872[1] := UInt<2>(2)
+ wire T_171873 : UInt<2>[2]
+ T_171873[0] := UInt<2>(1)
+ T_171873[1] := UInt<2>(2)
+ wire T_171874 : UInt<2>[1]
+ T_171874[0] := UInt<2>(2)
+ wire T_171875 : UInt<3>[3]
+ T_171875[0] := UInt<3>(0)
+ T_171875[1] := UInt<3>(1)
+ T_171875[2] := UInt<3>(2)
+ wire T_171876 : UInt<0>[1]
+ T_171876[0] := UInt<0>(0)
+ wire T_171877 : UInt<2>[2]
+ T_171877[0] := UInt<2>(1)
+ T_171877[1] := UInt<2>(2)
+ wire T_171878 : UInt<2>[2]
+ T_171878[0] := UInt<2>(1)
+ T_171878[1] := UInt<2>(2)
+ wire T_171879 : UInt<2>[1]
+ T_171879[0] := UInt<2>(2)
+ wire T_171880 : UInt<3>[3]
+ T_171880[0] := UInt<3>(0)
+ T_171880[1] := UInt<3>(1)
+ T_171880[2] := UInt<3>(2)
+ wire T_171881 : UInt<0>[1]
+ T_171881[0] := UInt<0>(0)
+ wire T_171882 : UInt<2>[2]
+ T_171882[0] := UInt<2>(1)
+ T_171882[1] := UInt<2>(2)
+ wire T_171883 : UInt<2>[2]
+ T_171883[0] := UInt<2>(1)
+ T_171883[1] := UInt<2>(2)
+ wire T_171884 : UInt<2>[1]
+ T_171884[0] := UInt<2>(2)
+ wire T_171885 : UInt<3>[3]
+ T_171885[0] := UInt<3>(0)
+ T_171885[1] := UInt<3>(1)
+ T_171885[2] := UInt<3>(2)
+ wire T_171886 : UInt<0>[1]
+ T_171886[0] := UInt<0>(0)
+ wire T_171887 : UInt<2>[2]
+ T_171887[0] := UInt<2>(1)
+ T_171887[1] := UInt<2>(2)
+ wire T_171888 : UInt<2>[2]
+ T_171888[0] := UInt<2>(1)
+ T_171888[1] := UInt<2>(2)
+ wire T_171889 : UInt<2>[1]
+ T_171889[0] := UInt<2>(2)
+ wire T_171890 : UInt<3>[3]
+ T_171890[0] := UInt<3>(0)
+ T_171890[1] := UInt<3>(1)
+ T_171890[2] := UInt<3>(2)
+ wire T_171891 : UInt<0>[1]
+ T_171891[0] := UInt<0>(0)
+ wire T_171892 : UInt<2>[2]
+ T_171892[0] := UInt<2>(1)
+ T_171892[1] := UInt<2>(2)
+ wire T_171893 : UInt<2>[2]
+ T_171893[0] := UInt<2>(1)
+ T_171893[1] := UInt<2>(2)
+ wire T_171894 : UInt<2>[1]
+ T_171894[0] := UInt<2>(2)
+ wire T_171895 : UInt<3>[3]
+ T_171895[0] := UInt<3>(0)
+ T_171895[1] := UInt<3>(1)
+ T_171895[2] := UInt<3>(2)
+ wire T_171896 : UInt<0>[1]
+ T_171896[0] := UInt<0>(0)
+ wire T_171897 : UInt<2>[2]
+ T_171897[0] := UInt<2>(1)
+ T_171897[1] := UInt<2>(2)
+ wire T_171898 : UInt<2>[2]
+ T_171898[0] := UInt<2>(1)
+ T_171898[1] := UInt<2>(2)
+ wire T_171899 : UInt<2>[1]
+ T_171899[0] := UInt<2>(2)
+ wire T_171900 : UInt<3>[3]
+ T_171900[0] := UInt<3>(0)
+ T_171900[1] := UInt<3>(1)
+ T_171900[2] := UInt<3>(2)
+ wire T_171901 : UInt<2>[2]
+ T_171901[0] := UInt<2>(0)
+ T_171901[1] := UInt<2>(1)
+ wire T_171902 : UInt<2>[3]
+ T_171902[0] := UInt<2>(1)
+ T_171902[1] := UInt<2>(2)
+ T_171902[2] := UInt<2>(3)
+ wire T_171903 : UInt<2>[2]
+ T_171903[0] := UInt<2>(2)
+ T_171903[1] := UInt<2>(3)
+ wire T_171904 : UInt<2>[1]
+ T_171904[0] := UInt<2>(3)
+ wire T_171905 : UInt<3>[3]
+ T_171905[0] := UInt<3>(0)
+ T_171905[1] := UInt<3>(1)
+ T_171905[2] := UInt<3>(2)
+ wire T_171906 : UInt<2>[2]
+ T_171906[0] := UInt<2>(0)
+ T_171906[1] := UInt<2>(1)
+ wire T_171907 : UInt<2>[3]
+ T_171907[0] := UInt<2>(1)
+ T_171907[1] := UInt<2>(2)
+ T_171907[2] := UInt<2>(3)
+ wire T_171908 : UInt<2>[2]
+ T_171908[0] := UInt<2>(2)
+ T_171908[1] := UInt<2>(3)
+ wire T_171909 : UInt<2>[1]
+ T_171909[0] := UInt<2>(3)
+ wire T_171910 : UInt<3>[3]
+ T_171910[0] := UInt<3>(0)
+ T_171910[1] := UInt<3>(1)
+ T_171910[2] := UInt<3>(2)
+ wire T_171911 : UInt<0>[1]
+ T_171911[0] := UInt<0>(0)
+ wire T_171912 : UInt<2>[2]
+ T_171912[0] := UInt<2>(1)
+ T_171912[1] := UInt<2>(2)
+ wire T_171913 : UInt<2>[2]
+ T_171913[0] := UInt<2>(1)
+ T_171913[1] := UInt<2>(2)
+ wire T_171914 : UInt<2>[1]
+ T_171914[0] := UInt<2>(2)
+ wire T_171915 : UInt<3>[3]
+ T_171915[0] := UInt<3>(0)
+ T_171915[1] := UInt<3>(1)
+ T_171915[2] := UInt<3>(2)
+ wire T_171916 : UInt<2>[2]
+ T_171916[0] := UInt<2>(0)
+ T_171916[1] := UInt<2>(1)
+ wire T_171917 : UInt<2>[3]
+ T_171917[0] := UInt<2>(1)
+ T_171917[1] := UInt<2>(2)
+ T_171917[2] := UInt<2>(3)
+ wire T_171918 : UInt<2>[2]
+ T_171918[0] := UInt<2>(2)
+ T_171918[1] := UInt<2>(3)
+ wire T_171919 : UInt<2>[1]
+ T_171919[0] := UInt<2>(3)
+ wire T_171920 : UInt<3>[3]
+ T_171920[0] := UInt<3>(0)
+ T_171920[1] := UInt<3>(1)
+ T_171920[2] := UInt<3>(2)
+ wire T_171921 : UInt<2>[2]
+ T_171921[0] := UInt<2>(0)
+ T_171921[1] := UInt<2>(1)
+ wire T_171922 : UInt<2>[3]
+ T_171922[0] := UInt<2>(1)
+ T_171922[1] := UInt<2>(2)
+ T_171922[2] := UInt<2>(3)
+ wire T_171923 : UInt<2>[2]
+ T_171923[0] := UInt<2>(2)
+ T_171923[1] := UInt<2>(3)
+ wire T_171924 : UInt<2>[1]
+ T_171924[0] := UInt<2>(3)
+ wire T_171925 : UInt<3>[3]
+ T_171925[0] := UInt<3>(0)
+ T_171925[1] := UInt<3>(1)
+ T_171925[2] := UInt<3>(2)
+ wire T_171926 : UInt<0>[1]
+ T_171926[0] := UInt<0>(0)
+ wire T_171927 : UInt<2>[2]
+ T_171927[0] := UInt<2>(1)
+ T_171927[1] := UInt<2>(2)
+ wire T_171928 : UInt<2>[2]
+ T_171928[0] := UInt<2>(1)
+ T_171928[1] := UInt<2>(2)
+ wire T_171929 : UInt<2>[1]
+ T_171929[0] := UInt<2>(2)
+ wire T_171930 : UInt<3>[3]
+ T_171930[0] := UInt<3>(0)
+ T_171930[1] := UInt<3>(1)
+ T_171930[2] := UInt<3>(2)
+ wire T_171931 : UInt<2>[2]
+ T_171931[0] := UInt<2>(0)
+ T_171931[1] := UInt<2>(1)
+ wire T_171932 : UInt<2>[3]
+ T_171932[0] := UInt<2>(1)
+ T_171932[1] := UInt<2>(2)
+ T_171932[2] := UInt<2>(3)
+ wire T_171933 : UInt<2>[2]
+ T_171933[0] := UInt<2>(2)
+ T_171933[1] := UInt<2>(3)
+ wire T_171934 : UInt<2>[1]
+ T_171934[0] := UInt<2>(3)
+ wire T_171935 : UInt<3>[3]
+ T_171935[0] := UInt<3>(0)
+ T_171935[1] := UInt<3>(1)
+ T_171935[2] := UInt<3>(2)
+ wire T_171936 : UInt<2>[2]
+ T_171936[0] := UInt<2>(0)
+ T_171936[1] := UInt<2>(1)
+ wire T_171937 : UInt<2>[3]
+ T_171937[0] := UInt<2>(1)
+ T_171937[1] := UInt<2>(2)
+ T_171937[2] := UInt<2>(3)
+ wire T_171938 : UInt<2>[2]
+ T_171938[0] := UInt<2>(2)
+ T_171938[1] := UInt<2>(3)
+ wire T_171939 : UInt<2>[1]
+ T_171939[0] := UInt<2>(3)
+ wire T_171940 : UInt<3>[3]
+ T_171940[0] := UInt<3>(0)
+ T_171940[1] := UInt<3>(1)
+ T_171940[2] := UInt<3>(2)
+ wire T_171941 : UInt<0>[1]
+ T_171941[0] := UInt<0>(0)
+ wire T_171942 : UInt<2>[2]
+ T_171942[0] := UInt<2>(1)
+ T_171942[1] := UInt<2>(2)
+ wire T_171943 : UInt<2>[2]
+ T_171943[0] := UInt<2>(1)
+ T_171943[1] := UInt<2>(2)
+ wire T_171944 : UInt<2>[1]
+ T_171944[0] := UInt<2>(2)
+ wire T_171945 : UInt<3>[3]
+ T_171945[0] := UInt<3>(0)
+ T_171945[1] := UInt<3>(1)
+ T_171945[2] := UInt<3>(2)
+ wire T_171946 : UInt<2>[2]
+ T_171946[0] := UInt<2>(0)
+ T_171946[1] := UInt<2>(1)
+ wire T_171947 : UInt<2>[3]
+ T_171947[0] := UInt<2>(1)
+ T_171947[1] := UInt<2>(2)
+ T_171947[2] := UInt<2>(3)
+ wire T_171948 : UInt<2>[2]
+ T_171948[0] := UInt<2>(2)
+ T_171948[1] := UInt<2>(3)
+ wire T_171949 : UInt<2>[1]
+ T_171949[0] := UInt<2>(3)
+ wire T_171950 : UInt<3>[3]
+ T_171950[0] := UInt<3>(0)
+ T_171950[1] := UInt<3>(1)
+ T_171950[2] := UInt<3>(2)
+ wire T_171951 : UInt<2>[2]
+ T_171951[0] := UInt<2>(0)
+ T_171951[1] := UInt<2>(1)
+ wire T_171952 : UInt<2>[3]
+ T_171952[0] := UInt<2>(1)
+ T_171952[1] := UInt<2>(2)
+ T_171952[2] := UInt<2>(3)
+ wire T_171953 : UInt<2>[2]
+ T_171953[0] := UInt<2>(2)
+ T_171953[1] := UInt<2>(3)
+ wire T_171954 : UInt<2>[1]
+ T_171954[0] := UInt<2>(3)
+ wire T_171955 : UInt<3>[3]
+ T_171955[0] := UInt<3>(0)
+ T_171955[1] := UInt<3>(1)
+ T_171955[2] := UInt<3>(2)
+ wire T_171956 : UInt<0>[1]
+ T_171956[0] := UInt<0>(0)
+ wire T_171957 : UInt<2>[2]
+ T_171957[0] := UInt<2>(1)
+ T_171957[1] := UInt<2>(2)
+ wire T_171958 : UInt<2>[2]
+ T_171958[0] := UInt<2>(1)
+ T_171958[1] := UInt<2>(2)
+ wire T_171959 : UInt<2>[1]
+ T_171959[0] := UInt<2>(2)
+ wire T_171960 : UInt<3>[3]
+ T_171960[0] := UInt<3>(0)
+ T_171960[1] := UInt<3>(1)
+ T_171960[2] := UInt<3>(2)
+ wire T_171961 : UInt<2>[2]
+ T_171961[0] := UInt<2>(0)
+ T_171961[1] := UInt<2>(1)
+ wire T_171962 : UInt<2>[3]
+ T_171962[0] := UInt<2>(1)
+ T_171962[1] := UInt<2>(2)
+ T_171962[2] := UInt<2>(3)
+ wire T_171963 : UInt<2>[2]
+ T_171963[0] := UInt<2>(2)
+ T_171963[1] := UInt<2>(3)
+ wire T_171964 : UInt<2>[1]
+ T_171964[0] := UInt<2>(3)
+ wire T_171965 : UInt<3>[3]
+ T_171965[0] := UInt<3>(0)
+ T_171965[1] := UInt<3>(1)
+ T_171965[2] := UInt<3>(2)
+ wire T_171966 : UInt<2>[2]
+ T_171966[0] := UInt<2>(0)
+ T_171966[1] := UInt<2>(1)
+ wire T_171967 : UInt<2>[3]
+ T_171967[0] := UInt<2>(1)
+ T_171967[1] := UInt<2>(2)
+ T_171967[2] := UInt<2>(3)
+ wire T_171968 : UInt<2>[2]
+ T_171968[0] := UInt<2>(2)
+ T_171968[1] := UInt<2>(3)
+ wire T_171969 : UInt<2>[1]
+ T_171969[0] := UInt<2>(3)
+ wire T_171970 : UInt<3>[3]
+ T_171970[0] := UInt<3>(0)
+ T_171970[1] := UInt<3>(1)
+ T_171970[2] := UInt<3>(2)
+ wire T_171971 : UInt<0>[1]
+ T_171971[0] := UInt<0>(0)
+ wire T_171972 : UInt<2>[2]
+ T_171972[0] := UInt<2>(1)
+ T_171972[1] := UInt<2>(2)
+ wire T_171973 : UInt<2>[2]
+ T_171973[0] := UInt<2>(1)
+ T_171973[1] := UInt<2>(2)
+ wire T_171974 : UInt<2>[1]
+ T_171974[0] := UInt<2>(2)
+ wire T_171975 : UInt<3>[3]
+ T_171975[0] := UInt<3>(0)
+ T_171975[1] := UInt<3>(1)
+ T_171975[2] := UInt<3>(2)
+ wire T_171976 : UInt<2>[2]
+ T_171976[0] := UInt<2>(0)
+ T_171976[1] := UInt<2>(1)
+ wire T_171977 : UInt<2>[3]
+ T_171977[0] := UInt<2>(1)
+ T_171977[1] := UInt<2>(2)
+ T_171977[2] := UInt<2>(3)
+ wire T_171978 : UInt<2>[2]
+ T_171978[0] := UInt<2>(2)
+ T_171978[1] := UInt<2>(3)
+ wire T_171979 : UInt<2>[1]
+ T_171979[0] := UInt<2>(3)
+ wire T_171980 : UInt<3>[3]
+ T_171980[0] := UInt<3>(0)
+ T_171980[1] := UInt<3>(1)
+ T_171980[2] := UInt<3>(2)
+ wire T_171981 : UInt<2>[2]
+ T_171981[0] := UInt<2>(0)
+ T_171981[1] := UInt<2>(1)
+ wire T_171982 : UInt<2>[3]
+ T_171982[0] := UInt<2>(1)
+ T_171982[1] := UInt<2>(2)
+ T_171982[2] := UInt<2>(3)
+ wire T_171983 : UInt<2>[2]
+ T_171983[0] := UInt<2>(2)
+ T_171983[1] := UInt<2>(3)
+ wire T_171984 : UInt<2>[1]
+ T_171984[0] := UInt<2>(3)
+ wire T_171985 : UInt<3>[3]
+ T_171985[0] := UInt<3>(0)
+ T_171985[1] := UInt<3>(1)
+ T_171985[2] := UInt<3>(2)
+ wire T_171986 : UInt<0>[1]
+ T_171986[0] := UInt<0>(0)
+ wire T_171987 : UInt<2>[2]
+ T_171987[0] := UInt<2>(1)
+ T_171987[1] := UInt<2>(2)
+ wire T_171988 : UInt<2>[2]
+ T_171988[0] := UInt<2>(1)
+ T_171988[1] := UInt<2>(2)
+ wire T_171989 : UInt<2>[1]
+ T_171989[0] := UInt<2>(2)
+ wire T_171990 : UInt<3>[3]
+ T_171990[0] := UInt<3>(0)
+ T_171990[1] := UInt<3>(1)
+ T_171990[2] := UInt<3>(2)
+ wire T_171991 : UInt<2>[2]
+ T_171991[0] := UInt<2>(0)
+ T_171991[1] := UInt<2>(1)
+ wire T_171992 : UInt<2>[3]
+ T_171992[0] := UInt<2>(1)
+ T_171992[1] := UInt<2>(2)
+ T_171992[2] := UInt<2>(3)
+ wire T_171993 : UInt<2>[2]
+ T_171993[0] := UInt<2>(2)
+ T_171993[1] := UInt<2>(3)
+ wire T_171994 : UInt<2>[1]
+ T_171994[0] := UInt<2>(3)
+ wire T_171995 : UInt<3>[3]
+ T_171995[0] := UInt<3>(0)
+ T_171995[1] := UInt<3>(1)
+ T_171995[2] := UInt<3>(2)
+ wire T_171996 : UInt<2>[2]
+ T_171996[0] := UInt<2>(0)
+ T_171996[1] := UInt<2>(1)
+ wire T_171997 : UInt<2>[3]
+ T_171997[0] := UInt<2>(1)
+ T_171997[1] := UInt<2>(2)
+ T_171997[2] := UInt<2>(3)
+ wire T_171998 : UInt<2>[2]
+ T_171998[0] := UInt<2>(2)
+ T_171998[1] := UInt<2>(3)
+ wire T_171999 : UInt<2>[1]
+ T_171999[0] := UInt<2>(3)
+ wire T_172000 : UInt<3>[3]
+ T_172000[0] := UInt<3>(0)
+ T_172000[1] := UInt<3>(1)
+ T_172000[2] := UInt<3>(2)
+ wire T_172001 : UInt<0>[1]
+ T_172001[0] := UInt<0>(0)
+ wire T_172002 : UInt<2>[2]
+ T_172002[0] := UInt<2>(1)
+ T_172002[1] := UInt<2>(2)
+ wire T_172003 : UInt<2>[2]
+ T_172003[0] := UInt<2>(1)
+ T_172003[1] := UInt<2>(2)
+ wire T_172004 : UInt<2>[1]
+ T_172004[0] := UInt<2>(2)
+ wire T_172005 : UInt<3>[3]
+ T_172005[0] := UInt<3>(0)
+ T_172005[1] := UInt<3>(1)
+ T_172005[2] := UInt<3>(2)
+ wire T_172006 : UInt<2>[2]
+ T_172006[0] := UInt<2>(0)
+ T_172006[1] := UInt<2>(1)
+ wire T_172007 : UInt<2>[3]
+ T_172007[0] := UInt<2>(1)
+ T_172007[1] := UInt<2>(2)
+ T_172007[2] := UInt<2>(3)
+ wire T_172008 : UInt<2>[2]
+ T_172008[0] := UInt<2>(2)
+ T_172008[1] := UInt<2>(3)
+ wire T_172009 : UInt<2>[1]
+ T_172009[0] := UInt<2>(3)
+ wire T_172010 : UInt<3>[3]
+ T_172010[0] := UInt<3>(0)
+ T_172010[1] := UInt<3>(1)
+ T_172010[2] := UInt<3>(2)
+ wire T_172011 : UInt<2>[2]
+ T_172011[0] := UInt<2>(0)
+ T_172011[1] := UInt<2>(1)
+ wire T_172012 : UInt<2>[3]
+ T_172012[0] := UInt<2>(1)
+ T_172012[1] := UInt<2>(2)
+ T_172012[2] := UInt<2>(3)
+ wire T_172013 : UInt<2>[2]
+ T_172013[0] := UInt<2>(2)
+ T_172013[1] := UInt<2>(3)
+ wire T_172014 : UInt<2>[1]
+ T_172014[0] := UInt<2>(3)
+ wire T_172015 : UInt<3>[3]
+ T_172015[0] := UInt<3>(0)
+ T_172015[1] := UInt<3>(1)
+ T_172015[2] := UInt<3>(2)
+ wire T_172016 : UInt<0>[1]
+ T_172016[0] := UInt<0>(0)
+ wire T_172017 : UInt<2>[2]
+ T_172017[0] := UInt<2>(1)
+ T_172017[1] := UInt<2>(2)
+ wire T_172018 : UInt<2>[2]
+ T_172018[0] := UInt<2>(1)
+ T_172018[1] := UInt<2>(2)
+ wire T_172019 : UInt<2>[1]
+ T_172019[0] := UInt<2>(2)
+ wb.resp.valid := UInt<1>(0)
+ wb.req.valid := UInt<1>(0)
+ meta.write.valid := UInt<1>(0)
+ meta.resp.valid := UInt<1>(0)
+ meta.read.valid := UInt<1>(0)
+ data.write.valid := UInt<1>(0)
+ data.resp.valid := UInt<1>(0)
+ data.read.valid := UInt<1>(0)
+ outer.release.valid := UInt<1>(0)
+ outer.probe.valid := UInt<1>(0)
+ outer.grant.valid := UInt<1>(0)
+ outer.acquire.valid := UInt<1>(0)
+ inner.release.valid := UInt<1>(0)
+ inner.probe.valid := UInt<1>(0)
+ inner.finish.valid := UInt<1>(0)
+ inner.grant.valid := UInt<1>(0)
+ inner.acquire.valid := UInt<1>(0)
+ reg state : UInt<3>
+ onreset state := UInt<3>(0)
+ wire T_172020 : UInt<3>[3]
+ T_172020[0] := UInt<3>(0)
+ T_172020[1] := UInt<3>(1)
+ T_172020[2] := UInt<3>(2)
+ wire T_172021 : UInt<2>[2]
+ T_172021[0] := UInt<2>(0)
+ T_172021[1] := UInt<2>(1)
+ wire T_172022 : UInt<2>[3]
+ T_172022[0] := UInt<2>(1)
+ T_172022[1] := UInt<2>(2)
+ T_172022[2] := UInt<2>(3)
+ wire T_172023 : UInt<2>[2]
+ T_172023[0] := UInt<2>(2)
+ T_172023[1] := UInt<2>(3)
+ wire T_172024 : UInt<2>[1]
+ T_172024[0] := UInt<2>(3)
+ wire T_172025 : UInt<3>[3]
+ T_172025[0] := UInt<3>(0)
+ T_172025[1] := UInt<3>(1)
+ T_172025[2] := UInt<3>(2)
+ wire T_172026 : UInt<2>[2]
+ T_172026[0] := UInt<2>(0)
+ T_172026[1] := UInt<2>(1)
+ wire T_172027 : UInt<2>[3]
+ T_172027[0] := UInt<2>(1)
+ T_172027[1] := UInt<2>(2)
+ T_172027[2] := UInt<2>(3)
+ wire T_172028 : UInt<2>[2]
+ T_172028[0] := UInt<2>(2)
+ T_172028[1] := UInt<2>(3)
+ wire T_172029 : UInt<2>[1]
+ T_172029[0] := UInt<2>(3)
+ reg xact : {addr_block : UInt<26>, client_xact_id : UInt<1>, addr_beat : UInt<2>, data : UInt<128>, r_type : UInt<3>, voluntary : UInt<1>, client_id : UInt<2>}
+ wire T_172030 : UInt<128>[4]
+ T_172030[0] := UInt<128>(0)
+ T_172030[1] := UInt<128>(0)
+ T_172030[2] := UInt<128>(0)
+ T_172030[3] := UInt<128>(0)
+ reg data_buffer : UInt<128>[4]
+ onreset data_buffer := T_172030
+ reg xact_way_en : UInt<8>
+ wire T_172031 : UInt<3>[3]
+ T_172031[0] := UInt<3>(0)
+ T_172031[1] := UInt<3>(1)
+ T_172031[2] := UInt<3>(2)
+ wire T_172032 : UInt<2>[2]
+ T_172032[0] := UInt<2>(0)
+ T_172032[1] := UInt<2>(1)
+ wire T_172033 : UInt<2>[3]
+ T_172033[0] := UInt<2>(1)
+ T_172033[1] := UInt<2>(2)
+ T_172033[2] := UInt<2>(3)
+ wire T_172034 : UInt<2>[2]
+ T_172034[0] := UInt<2>(2)
+ T_172034[1] := UInt<2>(3)
+ wire T_172035 : UInt<2>[1]
+ T_172035[0] := UInt<2>(3)
+ wire T_172036 : UInt<3>[3]
+ T_172036[0] := UInt<3>(0)
+ T_172036[1] := UInt<3>(1)
+ T_172036[2] := UInt<3>(2)
+ wire T_172037 : UInt<2>[2]
+ T_172037[0] := UInt<2>(0)
+ T_172037[1] := UInt<2>(1)
+ wire T_172038 : UInt<2>[3]
+ T_172038[0] := UInt<2>(1)
+ T_172038[1] := UInt<2>(2)
+ T_172038[2] := UInt<2>(3)
+ wire T_172039 : UInt<2>[2]
+ T_172039[0] := UInt<2>(2)
+ T_172039[1] := UInt<2>(3)
+ wire T_172040 : UInt<2>[1]
+ T_172040[0] := UInt<2>(3)
+ wire T_172041 : UInt<3>[3]
+ T_172041[0] := UInt<3>(0)
+ T_172041[1] := UInt<3>(1)
+ T_172041[2] := UInt<3>(2)
+ wire T_172042 : UInt<0>[1]
+ T_172042[0] := UInt<0>(0)
+ wire T_172043 : UInt<2>[2]
+ T_172043[0] := UInt<2>(1)
+ T_172043[1] := UInt<2>(2)
+ wire T_172044 : UInt<2>[2]
+ T_172044[0] := UInt<2>(1)
+ T_172044[1] := UInt<2>(2)
+ wire T_172045 : UInt<2>[1]
+ T_172045[0] := UInt<2>(2)
+ wire T_172046 : UInt<3>[3]
+ T_172046[0] := UInt<3>(0)
+ T_172046[1] := UInt<3>(1)
+ T_172046[2] := UInt<3>(2)
+ wire T_172047 : UInt<2>[2]
+ T_172047[0] := UInt<2>(0)
+ T_172047[1] := UInt<2>(1)
+ wire T_172048 : UInt<2>[3]
+ T_172048[0] := UInt<2>(1)
+ T_172048[1] := UInt<2>(2)
+ T_172048[2] := UInt<2>(3)
+ wire T_172049 : UInt<2>[2]
+ T_172049[0] := UInt<2>(2)
+ T_172049[1] := UInt<2>(3)
+ wire T_172050 : UInt<2>[1]
+ T_172050[0] := UInt<2>(3)
+ wire T_172051 : UInt<3>[3]
+ T_172051[0] := UInt<3>(0)
+ T_172051[1] := UInt<3>(1)
+ T_172051[2] := UInt<3>(2)
+ wire T_172052 : UInt<2>[2]
+ T_172052[0] := UInt<2>(0)
+ T_172052[1] := UInt<2>(1)
+ wire T_172053 : UInt<2>[3]
+ T_172053[0] := UInt<2>(1)
+ T_172053[1] := UInt<2>(2)
+ T_172053[2] := UInt<2>(3)
+ wire T_172054 : UInt<2>[2]
+ T_172054[0] := UInt<2>(2)
+ T_172054[1] := UInt<2>(3)
+ wire T_172055 : UInt<2>[1]
+ T_172055[0] := UInt<2>(3)
+ wire T_172056 : UInt<3>[3]
+ T_172056[0] := UInt<3>(0)
+ T_172056[1] := UInt<3>(1)
+ T_172056[2] := UInt<3>(2)
+ wire T_172057 : UInt<0>[1]
+ T_172057[0] := UInt<0>(0)
+ wire T_172058 : UInt<2>[2]
+ T_172058[0] := UInt<2>(1)
+ T_172058[1] := UInt<2>(2)
+ wire T_172059 : UInt<2>[2]
+ T_172059[0] := UInt<2>(1)
+ T_172059[1] := UInt<2>(2)
+ wire T_172060 : UInt<2>[1]
+ T_172060[0] := UInt<2>(2)
+ reg xact_old_meta : {tag : UInt<14>, coh : {inner : {sharers : UInt<1>, makeGrant$default$3 : UInt<1>, makeGrant$default$4 : UInt<1>}, outer : {state : UInt<2>, makeRelease$default$2 : UInt<1>, makeRelease$default$3 : UInt<1>, makeVoluntaryRelease$default$4 : UInt<1>, makeVoluntaryRelease$default$5 : UInt<1>, makeVoluntaryWriteback$default$3 : UInt<1>, makeVoluntaryWriteback$default$4 : UInt<1>}}}
+ reg pending_irels : UInt<4>
+ onreset pending_irels := UInt<4>(0)
+ reg pending_writes : UInt<4>
+ onreset pending_writes := UInt<4>(0)
+ reg pending_ignt : UInt<1>
+ onreset pending_ignt := UInt<1>(0)
+ node T_172061 = eq(pending_writes, UInt<1>(0))
+ node T_172062 = eq(T_172061, UInt<1>(0))
+ node T_172063 = or(T_172062, pending_ignt)
+ node all_pending_done = eq(T_172063, UInt<1>(0))
+ node T_172064 = and(inner.release.ready, inner.release.valid)
+ node T_172065 = eq(T_171849[0], inner.release.bits.r_type)
+ node T_172066 = eq(T_171849[1], inner.release.bits.r_type)
+ node T_172067 = eq(T_171849[2], inner.release.bits.r_type)
+ node T_172068 = or(UInt<1>(0), T_172065)
+ node T_172069 = or(T_172068, T_172066)
+ node T_172070 = or(T_172069, T_172067)
+ node T_172071 = and(T_172064, T_172070)
+ node T_172072 = subw(UInt<4>(0), UInt<3>(4))
+ node T_172073 = not(T_172072)
+ node T_172074 = dshl(UInt<1>(1), inner.release.bits.addr_beat)
+ node T_172075 = not(T_172074)
+ node T_172076 = or(T_172073, T_172075)
+ node T_172077 = and(pending_irels, T_172076)
+ pending_irels := T_172077
+ node T_172078 = eq(state, UInt<3>(0))
+ node T_172079 = eq(pending_irels, UInt<1>(0))
+ node T_172080 = eq(T_172079, UInt<1>(0))
+ node T_172081 = or(T_172078, T_172080)
+ inner.release.ready := T_172081
+
+ node T_172082 = and(inner.release.ready, inner.release.valid)
+ when T_172082 :
+ accessor T_172083 = data_buffer[inner.release.bits.addr_beat]
+ T_172083 := inner.release.bits.data
+ node T_172084 = eq(state, UInt<3>(1))
+ meta.read.valid := T_172084
+ meta.read.bits.id := UInt<1>(0)
+ node T_172085 = bits(xact.addr_block, 11, 0)
+ meta.read.bits.idx := T_172085
+ node T_172086 = dshr(xact.addr_block, UInt<4>(12))
+ meta.read.bits.tag := T_172086
+ node T_172087 = and(data.write.ready, data.write.valid)
+ node T_172088 = subw(UInt<4>(0), UInt<3>(4))
+ node T_172089 = not(T_172088)
+ node T_172090 = dshl(UInt<1>(1), data.write.bits.addr_beat)
+ node T_172091 = not(T_172090)
+ node T_172092 = or(T_172089, T_172091)
+ node T_172093 = and(pending_writes, T_172092)
+ node T_172094 = and(inner.release.ready, inner.release.valid)
+ node T_172095 = eq(T_171849[0], inner.release.bits.r_type)
+ node T_172096 = eq(T_171849[1], inner.release.bits.r_type)
+ node T_172097 = eq(T_171849[2], inner.release.bits.r_type)
+ node T_172098 = or(UInt<1>(0), T_172095)
+ node T_172099 = or(T_172098, T_172096)
+ node T_172100 = or(T_172099, T_172097)
+ node T_172101 = and(T_172094, T_172100)
+ node T_172102 = subw(UInt<4>(0), UInt<3>(4))
+ node T_172103 = dshl(UInt<1>(1), inner.release.bits.addr_beat)
+ node T_172104 = and(T_172102, T_172103)
+ node T_172105 = or(T_172093, T_172104)
+ pending_writes := T_172105
+ node T_172106 = bit(pending_writes, 0)
+ node T_172107 = bit(pending_writes, 1)
+ node T_172108 = bit(pending_writes, 2)
+ node T_172109 = bit(pending_writes, 3)
+ wire T_172110 : UInt<1>[4]
+ T_172110[0] := T_172106
+ T_172110[1] := T_172107
+ T_172110[2] := T_172108
+ T_172110[3] := T_172109
+ wire T_172111 : UInt<2>
+ T_172111 := UInt<2>(3)
+ when T_172110[2] : T_172111 := UInt<2>(2)
+ wire T_172112 : UInt<2>
+ T_172112 := T_172111
+ when T_172110[1] : T_172112 := UInt<1>(1)
+ wire curr_write_beat : UInt<2>
+ curr_write_beat := T_172112
+ when T_172110[0] : curr_write_beat := UInt<1>(0)
+ node T_172113 = eq(state, UInt<3>(3))
+ node T_172114 = eq(pending_writes, UInt<1>(0))
+ node T_172115 = eq(T_172114, UInt<1>(0))
+ node T_172116 = and(T_172113, T_172115)
+ data.write.valid := T_172116
+ data.write.bits.id := UInt<1>(0)
+ data.write.bits.way_en := xact_way_en
+ node T_172117 = bits(xact.addr_block, 11, 0)
+ data.write.bits.addr_idx := T_172117
+ data.write.bits.addr_beat := curr_write_beat
+ data.write.bits.wmask := SInt<1>(-1)
+ accessor T_172118 = data_buffer[curr_write_beat]
+ data.write.bits.data := T_172118
+ node T_172119 = eq(state, UInt<3>(3))
+ node T_172120 = and(T_172119, pending_ignt)
+ node T_172121 = eq(pending_irels, UInt<1>(0))
+ node T_172122 = and(T_172120, T_172121)
+ inner.grant.valid := T_172122
+ wire T_172123 : UInt<3>[3]
+ T_172123[0] := UInt<3>(0)
+ T_172123[1] := UInt<3>(1)
+ T_172123[2] := UInt<3>(2)
+ wire T_172124 : UInt<2>[2]
+ T_172124[0] := UInt<2>(0)
+ T_172124[1] := UInt<2>(1)
+ wire T_172125 : UInt<2>[3]
+ T_172125[0] := UInt<2>(1)
+ T_172125[1] := UInt<2>(2)
+ T_172125[2] := UInt<2>(3)
+ wire T_172126 : UInt<2>[2]
+ T_172126[0] := UInt<2>(2)
+ T_172126[1] := UInt<2>(3)
+ wire T_172127 : UInt<2>[1]
+ T_172127[0] := UInt<2>(3)
+ wire T_172128 : UInt<3>[3]
+ T_172128[0] := UInt<3>(0)
+ T_172128[1] := UInt<3>(1)
+ T_172128[2] := UInt<3>(2)
+ wire T_172129 : UInt<2>[2]
+ T_172129[0] := UInt<2>(0)
+ T_172129[1] := UInt<2>(1)
+ wire T_172130 : UInt<2>[3]
+ T_172130[0] := UInt<2>(1)
+ T_172130[1] := UInt<2>(2)
+ T_172130[2] := UInt<2>(3)
+ wire T_172131 : UInt<2>[2]
+ T_172131[0] := UInt<2>(2)
+ T_172131[1] := UInt<2>(3)
+ wire T_172132 : UInt<2>[1]
+ T_172132[0] := UInt<2>(3)
+ wire T_172133 : {addr_beat : UInt<2>, data : UInt<128>, client_xact_id : UInt<1>, manager_xact_id : UInt<2>, is_builtin_type : UInt<1>, g_type : UInt<4>, client_id : UInt<2>}
+ T_172133.client_id := xact.client_id
+ T_172133.is_builtin_type := UInt<1>(1)
+ T_172133.g_type := UInt<3>(0)
+ T_172133.client_xact_id := xact.client_xact_id
+ T_172133.manager_xact_id := UInt<1>(0)
+ T_172133.addr_beat := UInt<1>(0)
+ T_172133.data := UInt<1>(0)
+ inner.grant.bits := T_172133
+
+ node T_172134 = and(inner.grant.ready, inner.grant.valid)
+ when T_172134 : pending_ignt := UInt<1>(0)
+ node T_172135 = eq(state, UInt<3>(4))
+ meta.write.valid := T_172135
+ meta.write.bits.id := UInt<1>(0)
+ node T_172136 = bits(xact.addr_block, 11, 0)
+ meta.write.bits.idx := T_172136
+ meta.write.bits.way_en := xact_way_en
+ node T_172137 = dshr(xact.addr_block, UInt<4>(12))
+ meta.write.bits.data.tag := T_172137
+ node T_172138 = dshl(UInt<1>(1), xact.client_id)
+ node T_172139 = not(T_172138)
+ node T_172140 = and(xact_old_meta.coh.inner.sharers, T_172139)
+ wire T_172141 : UInt<3>[3]
+ T_172141[0] := UInt<3>(0)
+ T_172141[1] := UInt<3>(1)
+ T_172141[2] := UInt<3>(2)
+ wire T_172142 : UInt<2>[2]
+ T_172142[0] := UInt<2>(0)
+ T_172142[1] := UInt<2>(1)
+ wire T_172143 : UInt<2>[3]
+ T_172143[0] := UInt<2>(1)
+ T_172143[1] := UInt<2>(2)
+ T_172143[2] := UInt<2>(3)
+ wire T_172144 : UInt<2>[2]
+ T_172144[0] := UInt<2>(2)
+ T_172144[1] := UInt<2>(3)
+ wire T_172145 : UInt<2>[1]
+ T_172145[0] := UInt<2>(3)
+ wire T_172146 : UInt<3>[3]
+ T_172146[0] := UInt<3>(0)
+ T_172146[1] := UInt<3>(1)
+ T_172146[2] := UInt<3>(2)
+ wire T_172147 : UInt<2>[2]
+ T_172147[0] := UInt<2>(0)
+ T_172147[1] := UInt<2>(1)
+ wire T_172148 : UInt<2>[3]
+ T_172148[0] := UInt<2>(1)
+ T_172148[1] := UInt<2>(2)
+ T_172148[2] := UInt<2>(3)
+ wire T_172149 : UInt<2>[2]
+ T_172149[0] := UInt<2>(2)
+ T_172149[1] := UInt<2>(3)
+ wire T_172150 : UInt<2>[1]
+ T_172150[0] := UInt<2>(3)
+ wire T_172151 : {sharers : UInt<1>, makeGrant$default$3 : UInt<1>, makeGrant$default$4 : UInt<1>}
+ T_172151.sharers := T_172140
+ node T_172152 = eq(xact.r_type, UInt<3>(0))
+ node T_172153 = eq(xact.r_type, UInt<3>(3))
+ wire T_172154 : UInt<3>[3]
+ T_172154[0] := UInt<3>(0)
+ T_172154[1] := UInt<3>(1)
+ T_172154[2] := UInt<3>(2)
+ wire T_172155 : UInt<2>[2]
+ T_172155[0] := UInt<2>(0)
+ T_172155[1] := UInt<2>(1)
+ wire T_172156 : UInt<2>[3]
+ T_172156[0] := UInt<2>(1)
+ T_172156[1] := UInt<2>(2)
+ T_172156[2] := UInt<2>(3)
+ wire T_172157 : UInt<2>[2]
+ T_172157[0] := UInt<2>(2)
+ T_172157[1] := UInt<2>(3)
+ wire T_172158 : UInt<2>[1]
+ T_172158[0] := UInt<2>(3)
+ wire T_172159 : {sharers : UInt<1>, makeGrant$default$3 : UInt<1>, makeGrant$default$4 : UInt<1>}
+ T_172159 := xact_old_meta.coh.inner
+ when T_172153 : T_172159 := T_172151
+ wire T_172160 : UInt<3>[3]
+ T_172160[0] := UInt<3>(0)
+ T_172160[1] := UInt<3>(1)
+ T_172160[2] := UInt<3>(2)
+ wire T_172161 : UInt<2>[2]
+ T_172161[0] := UInt<2>(0)
+ T_172161[1] := UInt<2>(1)
+ wire T_172162 : UInt<2>[3]
+ T_172162[0] := UInt<2>(1)
+ T_172162[1] := UInt<2>(2)
+ T_172162[2] := UInt<2>(3)
+ wire T_172163 : UInt<2>[2]
+ T_172163[0] := UInt<2>(2)
+ T_172163[1] := UInt<2>(3)
+ wire T_172164 : UInt<2>[1]
+ T_172164[0] := UInt<2>(3)
+ wire T_172165 : {sharers : UInt<1>, makeGrant$default$3 : UInt<1>, makeGrant$default$4 : UInt<1>}
+ T_172165 := T_172159
+ when T_172152 : T_172165 := T_172151
+ meta.write.bits.data.coh.inner := T_172165
+ node T_172166 = eq(T_172025[0], xact.r_type)
+ node T_172167 = eq(T_172025[1], xact.r_type)
+ node T_172168 = eq(T_172025[2], xact.r_type)
+ node T_172169 = or(UInt<1>(0), T_172166)
+ node T_172170 = or(T_172169, T_172167)
+ node T_172171 = or(T_172170, T_172168)
+ node T_172172 = eq(UInt<5>(1), UInt<5>(1))
+ node T_172173 = eq(UInt<5>(1), UInt<5>(7))
+ node T_172174 = or(T_172172, T_172173)
+ node T_172175 = eq(UInt<5>(1), UInt<5>(4))
+ node T_172176 = or(UInt<1>(0), T_172175)
+ node T_172177 = or(T_172174, T_172176)
+ wire T_172178 : UInt<2>
+ T_172178 := xact_old_meta.coh.outer.state
+ when T_172177 : T_172178 := UInt<2>(2)
+ wire T_172179 : UInt<3>[3]
+ T_172179[0] := UInt<3>(0)
+ T_172179[1] := UInt<3>(1)
+ T_172179[2] := UInt<3>(2)
+ wire T_172180 : UInt<0>[1]
+ T_172180[0] := UInt<0>(0)
+ wire T_172181 : UInt<2>[2]
+ T_172181[0] := UInt<2>(1)
+ T_172181[1] := UInt<2>(2)
+ wire T_172182 : UInt<2>[2]
+ T_172182[0] := UInt<2>(1)
+ T_172182[1] := UInt<2>(2)
+ wire T_172183 : UInt<2>[1]
+ T_172183[0] := UInt<2>(2)
+ wire T_172184 : UInt<3>[3]
+ T_172184[0] := UInt<3>(0)
+ T_172184[1] := UInt<3>(1)
+ T_172184[2] := UInt<3>(2)
+ wire T_172185 : UInt<0>[1]
+ T_172185[0] := UInt<0>(0)
+ wire T_172186 : UInt<2>[2]
+ T_172186[0] := UInt<2>(1)
+ T_172186[1] := UInt<2>(2)
+ wire T_172187 : UInt<2>[2]
+ T_172187[0] := UInt<2>(1)
+ T_172187[1] := UInt<2>(2)
+ wire T_172188 : UInt<2>[1]
+ T_172188[0] := UInt<2>(2)
+ wire T_172189 : {state : UInt<2>, makeRelease$default$2 : UInt<1>, makeRelease$default$3 : UInt<1>, makeVoluntaryRelease$default$4 : UInt<1>, makeVoluntaryRelease$default$5 : UInt<1>, makeVoluntaryWriteback$default$3 : UInt<1>, makeVoluntaryWriteback$default$4 : UInt<1>}
+ T_172189.state := T_172178
+ wire T_172190 : UInt<3>[3]
+ T_172190[0] := UInt<3>(0)
+ T_172190[1] := UInt<3>(1)
+ T_172190[2] := UInt<3>(2)
+ wire T_172191 : UInt<2>[2]
+ T_172191[0] := UInt<2>(0)
+ T_172191[1] := UInt<2>(1)
+ wire T_172192 : UInt<2>[3]
+ T_172192[0] := UInt<2>(1)
+ T_172192[1] := UInt<2>(2)
+ T_172192[2] := UInt<2>(3)
+ wire T_172193 : UInt<2>[2]
+ T_172193[0] := UInt<2>(2)
+ T_172193[1] := UInt<2>(3)
+ wire T_172194 : UInt<2>[1]
+ T_172194[0] := UInt<2>(3)
+ wire T_172195 : {state : UInt<2>, makeRelease$default$2 : UInt<1>, makeRelease$default$3 : UInt<1>, makeVoluntaryRelease$default$4 : UInt<1>, makeVoluntaryRelease$default$5 : UInt<1>, makeVoluntaryWriteback$default$3 : UInt<1>, makeVoluntaryWriteback$default$4 : UInt<1>}
+ T_172195 := xact_old_meta.coh.outer
+ when T_172171 : T_172195 := T_172189
+ meta.write.bits.data.coh.outer := T_172195
+
+
+ node T_172196 = eq(state, UInt<3>(0))
+ node T_172197 = and(T_172196, inner.release.valid)
+ when T_172197 :
+ xact := inner.release.bits
+
+
+ node T_172198 = eq(T_171849[0], inner.release.bits.r_type)
+ node T_172199 = eq(T_171849[1], inner.release.bits.r_type)
+ node T_172200 = eq(T_171849[2], inner.release.bits.r_type)
+ node T_172201 = or(UInt<1>(0), T_172198)
+ node T_172202 = or(T_172201, T_172199)
+ node T_172203 = or(T_172202, T_172200)
+ node T_172204 = and(UInt<1>(1), T_172203)
+ when T_172204 :
+ node T_172205 = and(inner.release.ready, inner.release.valid)
+ node T_172206 = eq(T_171849[0], inner.release.bits.r_type)
+ node T_172207 = eq(T_171849[1], inner.release.bits.r_type)
+ node T_172208 = eq(T_171849[2], inner.release.bits.r_type)
+ node T_172209 = or(UInt<1>(0), T_172206)
+ node T_172210 = or(T_172209, T_172207)
+ node T_172211 = or(T_172210, T_172208)
+ node T_172212 = and(T_172205, T_172211)
+ node T_172213 = subw(UInt<4>(0), UInt<3>(4))
+ node T_172214 = not(T_172213)
+ node T_172215 = dshl(UInt<1>(1), inner.release.bits.addr_beat)
+ node T_172216 = not(T_172215)
+ node T_172217 = or(T_172214, T_172216)
+ pending_irels := T_172217
+ else :
+ pending_irels := UInt<1>(0)
+ node T_172218 = and(inner.release.ready, inner.release.valid)
+ node T_172219 = eq(T_171849[0], inner.release.bits.r_type)
+ node T_172220 = eq(T_171849[1], inner.release.bits.r_type)
+ node T_172221 = eq(T_171849[2], inner.release.bits.r_type)
+ node T_172222 = or(UInt<1>(0), T_172219)
+ node T_172223 = or(T_172222, T_172220)
+ node T_172224 = or(T_172223, T_172221)
+ node T_172225 = and(T_172218, T_172224)
+ node T_172226 = subw(UInt<4>(0), UInt<3>(4))
+ node T_172227 = dshl(UInt<1>(1), inner.release.bits.addr_beat)
+ node T_172228 = and(T_172226, T_172227)
+ pending_writes := T_172228
+ node T_172229 = eq(UInt<1>(0), UInt<1>(0))
+ pending_ignt := T_172229
+ state := UInt<3>(1)
+
+
+ node T_172230 = eq(state, UInt<3>(1))
+ node T_172231 = and(T_172230, meta.read.ready)
+ when T_172231 : state := UInt<3>(2)
+
+
+ node T_172232 = eq(state, UInt<3>(2))
+ node T_172233 = and(T_172232, meta.resp.valid)
+ when T_172233 :
+ xact_old_meta := meta.resp.bits.meta
+ xact_way_en := meta.resp.bits.way_en
+ state := UInt<3>(3)
+
+
+ node T_172234 = eq(state, UInt<3>(3))
+ node T_172235 = and(T_172234, all_pending_done)
+ when T_172235 : state := UInt<3>(4)
+
+
+ node T_172236 = eq(state, UInt<3>(4))
+ node T_172237 = and(T_172236, meta.write.ready)
+ when T_172237 : state := UInt<3>(0)
+ has_release_match := inner.release.bits.voluntary
+ has_acquire_match := UInt<1>(0)
+ has_acquire_conflict := UInt<1>(0)
+ node T_172238 = eq(state, UInt<3>(2))
+ node T_172239 = and(T_172238, meta.resp.valid)
+ node T_172240 = eq(meta.resp.bits.tag_match, UInt<1>(0))
+ node T_172241 = and(T_172239, T_172240)
+ node T_172242 = eq(T_172241, UInt<1>(0))
+ node T_172243 = eq(state, UInt<3>(0))
+ node T_172244 = and(inner.release.ready, inner.release.valid)
+ node T_172245 = and(T_172243, T_172244)
+ node T_172246 = eq(inner.release.bits.voluntary, UInt<1>(0))
+ node T_172247 = and(T_172245, T_172246)
+ node T_172248 = eq(T_172247, UInt<1>(0))
+ module Queue_76584 :
+ input enq : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_beat : UInt<2>, client_xact_id : UInt<1>}}
+ output deq : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_beat : UInt<2>, client_xact_id : UInt<1>}}
+ output count : UInt<3>
+
+ wire T_172249 : UInt<3>[3]
+ T_172249[0] := UInt<3>(0)
+ T_172249[1] := UInt<3>(1)
+ T_172249[2] := UInt<3>(2)
+ wire T_172250 : UInt<2>[2]
+ T_172250[0] := UInt<2>(0)
+ T_172250[1] := UInt<2>(1)
+ wire T_172251 : UInt<2>[3]
+ T_172251[0] := UInt<2>(1)
+ T_172251[1] := UInt<2>(2)
+ T_172251[2] := UInt<2>(3)
+ wire T_172252 : UInt<2>[2]
+ T_172252[0] := UInt<2>(2)
+ T_172252[1] := UInt<2>(3)
+ wire T_172253 : UInt<2>[1]
+ T_172253[0] := UInt<2>(3)
+ wire T_172254 : UInt<3>[3]
+ T_172254[0] := UInt<3>(0)
+ T_172254[1] := UInt<3>(1)
+ T_172254[2] := UInt<3>(2)
+ wire T_172255 : UInt<2>[2]
+ T_172255[0] := UInt<2>(0)
+ T_172255[1] := UInt<2>(1)
+ wire T_172256 : UInt<2>[3]
+ T_172256[0] := UInt<2>(1)
+ T_172256[1] := UInt<2>(2)
+ T_172256[2] := UInt<2>(3)
+ wire T_172257 : UInt<2>[2]
+ T_172257[0] := UInt<2>(2)
+ T_172257[1] := UInt<2>(3)
+ wire T_172258 : UInt<2>[1]
+ T_172258[0] := UInt<2>(3)
+ wire T_172259 : UInt<3>[3]
+ T_172259[0] := UInt<3>(0)
+ T_172259[1] := UInt<3>(1)
+ T_172259[2] := UInt<3>(2)
+ wire T_172260 : UInt<2>[2]
+ T_172260[0] := UInt<2>(0)
+ T_172260[1] := UInt<2>(1)
+ wire T_172261 : UInt<2>[3]
+ T_172261[0] := UInt<2>(1)
+ T_172261[1] := UInt<2>(2)
+ T_172261[2] := UInt<2>(3)
+ wire T_172262 : UInt<2>[2]
+ T_172262[0] := UInt<2>(2)
+ T_172262[1] := UInt<2>(3)
+ wire T_172263 : UInt<2>[1]
+ T_172263[0] := UInt<2>(3)
+ wire T_172264 : UInt<3>[3]
+ T_172264[0] := UInt<3>(0)
+ T_172264[1] := UInt<3>(1)
+ T_172264[2] := UInt<3>(2)
+ wire T_172265 : UInt<2>[2]
+ T_172265[0] := UInt<2>(0)
+ T_172265[1] := UInt<2>(1)
+ wire T_172266 : UInt<2>[3]
+ T_172266[0] := UInt<2>(1)
+ T_172266[1] := UInt<2>(2)
+ T_172266[2] := UInt<2>(3)
+ wire T_172267 : UInt<2>[2]
+ T_172267[0] := UInt<2>(2)
+ T_172267[1] := UInt<2>(3)
+ wire T_172268 : UInt<2>[1]
+ T_172268[0] := UInt<2>(3)
+ wire T_172269 : UInt<3>[3]
+ T_172269[0] := UInt<3>(0)
+ T_172269[1] := UInt<3>(1)
+ T_172269[2] := UInt<3>(2)
+ wire T_172270 : UInt<2>[2]
+ T_172270[0] := UInt<2>(0)
+ T_172270[1] := UInt<2>(1)
+ wire T_172271 : UInt<2>[3]
+ T_172271[0] := UInt<2>(1)
+ T_172271[1] := UInt<2>(2)
+ T_172271[2] := UInt<2>(3)
+ wire T_172272 : UInt<2>[2]
+ T_172272[0] := UInt<2>(2)
+ T_172272[1] := UInt<2>(3)
+ wire T_172273 : UInt<2>[1]
+ T_172273[0] := UInt<2>(3)
+ cmem ram : {addr_beat : UInt<2>, client_xact_id : UInt<1>}[4]
+ reg T_172274 : UInt<2>
+ onreset T_172274 := UInt<2>(0)
+ reg T_172275 : UInt<2>
+ onreset T_172275 := UInt<2>(0)
+ reg maybe_full : UInt<1>
+ onreset maybe_full := UInt<1>(0)
+ node ptr_match = eq(T_172274, T_172275)
+ node T_172276 = eq(maybe_full, UInt<1>(0))
+ node empty = and(ptr_match, T_172276)
+ node full = and(ptr_match, maybe_full)
+ node maybe_flow = and(UInt<1>(0), empty)
+ node do_flow = and(maybe_flow, deq.ready)
+ node T_172277 = and(enq.ready, enq.valid)
+ node T_172278 = eq(do_flow, UInt<1>(0))
+ node do_enq = and(T_172277, T_172278)
+ node T_172279 = and(deq.ready, deq.valid)
+ node T_172280 = eq(do_flow, UInt<1>(0))
+ node do_deq = and(T_172279, T_172280)
+ when do_enq :
+ wire T_172281 : UInt<3>[3]
+ T_172281[0] := UInt<3>(0)
+ T_172281[1] := UInt<3>(1)
+ T_172281[2] := UInt<3>(2)
+ wire T_172282 : UInt<2>[2]
+ T_172282[0] := UInt<2>(0)
+ T_172282[1] := UInt<2>(1)
+ wire T_172283 : UInt<2>[3]
+ T_172283[0] := UInt<2>(1)
+ T_172283[1] := UInt<2>(2)
+ T_172283[2] := UInt<2>(3)
+ wire T_172284 : UInt<2>[2]
+ T_172284[0] := UInt<2>(2)
+ T_172284[1] := UInt<2>(3)
+ wire T_172285 : UInt<2>[1]
+ T_172285[0] := UInt<2>(3)
+ accessor T_172286 = ram[T_172274]
+ T_172286 := enq.bits
+ node T_172287 = eq(T_172274, UInt<2>(3))
+ node T_172288 = and(UInt<1>(0), T_172287)
+ node T_172289 = addw(T_172274, UInt<1>(1))
+ wire T_172290 : UInt<2>
+ T_172290 := T_172289
+ when T_172288 : T_172290 := UInt<1>(0)
+ T_172274 := T_172290
+ when do_deq :
+ node T_172291 = eq(T_172275, UInt<2>(3))
+ node T_172292 = and(UInt<1>(0), T_172291)
+ node T_172293 = addw(T_172275, UInt<1>(1))
+ wire T_172294 : UInt<2>
+ T_172294 := T_172293
+ when T_172292 : T_172294 := UInt<1>(0)
+ T_172275 := T_172294
+
+ node T_172295 = neq(do_enq, do_deq)
+ when T_172295 : maybe_full := do_enq
+ node T_172296 = eq(empty, UInt<1>(0))
+ node T_172297 = and(UInt<1>(0), enq.valid)
+ node T_172298 = or(T_172296, T_172297)
+ deq.valid := T_172298
+ node T_172299 = eq(full, UInt<1>(0))
+ node T_172300 = and(UInt<1>(0), deq.ready)
+ node T_172301 = or(T_172299, T_172300)
+ enq.ready := T_172301
+ wire T_172302 : UInt<3>[3]
+ T_172302[0] := UInt<3>(0)
+ T_172302[1] := UInt<3>(1)
+ T_172302[2] := UInt<3>(2)
+ wire T_172303 : UInt<2>[2]
+ T_172303[0] := UInt<2>(0)
+ T_172303[1] := UInt<2>(1)
+ wire T_172304 : UInt<2>[3]
+ T_172304[0] := UInt<2>(1)
+ T_172304[1] := UInt<2>(2)
+ T_172304[2] := UInt<2>(3)
+ wire T_172305 : UInt<2>[2]
+ T_172305[0] := UInt<2>(2)
+ T_172305[1] := UInt<2>(3)
+ wire T_172306 : UInt<2>[1]
+ T_172306[0] := UInt<2>(3)
+ accessor T_172307 = ram[T_172275]
+ wire T_172308 : UInt<3>[3]
+ T_172308[0] := UInt<3>(0)
+ T_172308[1] := UInt<3>(1)
+ T_172308[2] := UInt<3>(2)
+ wire T_172309 : UInt<2>[2]
+ T_172309[0] := UInt<2>(0)
+ T_172309[1] := UInt<2>(1)
+ wire T_172310 : UInt<2>[3]
+ T_172310[0] := UInt<2>(1)
+ T_172310[1] := UInt<2>(2)
+ T_172310[2] := UInt<2>(3)
+ wire T_172311 : UInt<2>[2]
+ T_172311[0] := UInt<2>(2)
+ T_172311[1] := UInt<2>(3)
+ wire T_172312 : UInt<2>[1]
+ T_172312[0] := UInt<2>(3)
+ wire T_172313 : {addr_beat : UInt<2>, client_xact_id : UInt<1>}
+ T_172313 := T_172307
+ when maybe_flow : T_172313 := enq.bits
+ deq.bits := T_172313
+ node ptr_diff = subw(T_172274, T_172275)
+ node T_172314 = and(maybe_full, ptr_match)
+ node T_172315 = cat(T_172314, ptr_diff)
+ count := T_172315
+ module AMOALU :
+ input addr : UInt<6>
+ input cmd : UInt<5>
+ input typ : UInt<3>
+ input lhs : UInt<64>
+ input rhs : UInt<64>
+ output out : UInt<64>
+
+ node T_172316 = eq(typ, UInt<3>(0))
+ node T_172317 = eq(typ, UInt<3>(4))
+ node T_172318 = or(T_172316, T_172317)
+ node T_172319 = eq(typ, UInt<3>(1))
+ node T_172320 = eq(typ, UInt<3>(5))
+ node T_172321 = or(T_172319, T_172320)
+ node T_172322 = eq(typ, UInt<3>(2))
+ node T_172323 = eq(typ, UInt<3>(6))
+ node T_172324 = or(T_172322, T_172323)
+ node T_172325 = bits(rhs, 31, 0)
+ node T_172326 = cat(T_172325, T_172325)
+ wire rhs : UInt<64>
+ rhs := rhs
+ when T_172324 : rhs := T_172326
+ node T_172327 = eq(cmd, UInt<5>(12))
+ node T_172328 = eq(cmd, UInt<5>(13))
+ node sgned = or(T_172327, T_172328)
+ node T_172329 = eq(cmd, UInt<5>(13))
+ node T_172330 = eq(cmd, UInt<5>(15))
+ node max = or(T_172329, T_172330)
+ node T_172331 = eq(cmd, UInt<5>(12))
+ node T_172332 = eq(cmd, UInt<5>(14))
+ node min = or(T_172331, T_172332)
+ node T_172333 = eq(typ, UInt<3>(2))
+ node T_172334 = eq(typ, UInt<3>(6))
+ node T_172335 = or(T_172333, T_172334)
+ node T_172336 = eq(typ, UInt<3>(0))
+ node T_172337 = or(T_172335, T_172336)
+ node T_172338 = eq(typ, UInt<3>(4))
+ node word = or(T_172337, T_172338)
+ node T_172339 = not(UInt<64>(0))
+ node T_172340 = bit(addr, 2)
+ node T_172341 = dshl(T_172340, UInt<5>(31))
+ node mask = xor(T_172339, T_172341)
+ node T_172342 = and(lhs, mask)
+ node T_172343 = and(rhs, mask)
+ node adder_out = addw(T_172342, T_172343)
+ node T_172344 = bit(addr, 2)
+ node T_172345 = eq(T_172344, UInt<1>(0))
+ node T_172346 = and(word, T_172345)
+ node T_172347 = bit(lhs, 31)
+ node T_172348 = bit(lhs, 63)
+ wire cmp_lhs : UInt<1>
+ cmp_lhs := T_172348
+ when T_172346 : cmp_lhs := T_172347
+ node T_172349 = bit(addr, 2)
+ node T_172350 = eq(T_172349, UInt<1>(0))
+ node T_172351 = and(word, T_172350)
+ node T_172352 = bit(rhs, 31)
+ node T_172353 = bit(rhs, 63)
+ wire cmp_rhs : UInt<1>
+ cmp_rhs := T_172353
+ when T_172351 : cmp_rhs := T_172352
+ node T_172354 = bits(lhs, 31, 0)
+ node T_172355 = bits(rhs, 31, 0)
+ node lt_lo = lt(T_172354, T_172355)
+ node T_172356 = bits(lhs, 63, 32)
+ node T_172357 = bits(rhs, 63, 32)
+ node lt_hi = lt(T_172356, T_172357)
+ node T_172358 = bits(lhs, 63, 32)
+ node T_172359 = bits(rhs, 63, 32)
+ node eq_hi = eq(T_172358, T_172359)
+ node T_172360 = bit(addr, 2)
+ wire T_172361 : UInt<1>
+ T_172361 := lt_lo
+ when T_172360 : T_172361 := lt_hi
+ node T_172362 = and(eq_hi, lt_lo)
+ node T_172363 = or(lt_hi, T_172362)
+ wire lt : UInt<1>
+ lt := T_172363
+ when word : lt := T_172361
+ node T_172364 = eq(cmp_lhs, cmp_rhs)
+ wire T_172365 : UInt<1>
+ T_172365 := cmp_rhs
+ when sgned : T_172365 := cmp_lhs
+ wire less : UInt<1>
+ less := T_172365
+ when T_172364 : less := lt
+ node T_172366 = eq(cmd, UInt<5>(8))
+ node T_172367 = eq(cmd, UInt<5>(11))
+ node T_172368 = and(lhs, rhs)
+ node T_172369 = eq(cmd, UInt<5>(10))
+ node T_172370 = or(lhs, rhs)
+ node T_172371 = eq(cmd, UInt<5>(9))
+ node T_172372 = xor(lhs, rhs)
+ wire T_172373 : UInt<1>
+ T_172373 := max
+ when less : T_172373 := min
+ node T_172374 = bits(rhs, 7, 0)
+ node T_172375 = cat(T_172374, T_172374)
+ node T_172376 = cat(T_172375, T_172375)
+ node T_172377 = cat(T_172376, T_172376)
+ node T_172378 = bits(rhs, 15, 0)
+ node T_172379 = cat(T_172378, T_172378)
+ node T_172380 = cat(T_172379, T_172379)
+ wire T_172381 : UInt<64>
+ T_172381 := rhs
+ when T_172321 : T_172381 := T_172380
+ wire T_172382 : UInt<64>
+ T_172382 := T_172381
+ when T_172318 : T_172382 := T_172377
+ wire T_172383 : UInt<64>
+ T_172383 := T_172382
+ when T_172373 : T_172383 := lhs
+ wire T_172384 : UInt<64>
+ T_172384 := T_172383
+ when T_172371 : T_172384 := T_172372
+ wire T_172385 : UInt<64>
+ T_172385 := T_172384
+ when T_172369 : T_172385 := T_172370
+ wire T_172386 : UInt<64>
+ T_172386 := T_172385
+ when T_172367 : T_172386 := T_172368
+ wire out : UInt<64>
+ out := T_172386
+ when T_172366 : out := adder_out
+ node T_172387 = bits(addr, 2, 0)
+ node T_172388 = dshl(UInt<1>(1), T_172387)
+ node T_172389 = bits(addr, 2, 1)
+ node T_172390 = cat(T_172389, UInt<1>(0))
+ node T_172391 = dshl(UInt<2>(3), T_172390)
+ node T_172392 = bit(addr, 2)
+ node T_172393 = cat(T_172392, UInt<2>(0))
+ node T_172394 = dshl(UInt<4>(15), T_172393)
+ wire T_172395 : UInt<8>
+ T_172395 := UInt<8>(255)
+ when T_172324 : T_172395 := T_172394
+ wire T_172396 : UInt<8>
+ T_172396 := T_172395
+ when T_172321 : T_172396 := T_172391
+ wire T_172397 : UInt<8>
+ T_172397 := T_172396
+ when T_172318 : T_172397 := T_172388
+ node T_172398 = bit(T_172397, 0)
+ node T_172399 = bit(T_172397, 1)
+ node T_172400 = bit(T_172397, 2)
+ node T_172401 = bit(T_172397, 3)
+ node T_172402 = bit(T_172397, 4)
+ node T_172403 = bit(T_172397, 5)
+ node T_172404 = bit(T_172397, 6)
+ node T_172405 = bit(T_172397, 7)
+ wire T_172406 : UInt<1>[8]
+ T_172406[0] := T_172398
+ T_172406[1] := T_172399
+ T_172406[2] := T_172400
+ T_172406[3] := T_172401
+ T_172406[4] := T_172402
+ T_172406[5] := T_172403
+ T_172406[6] := T_172404
+ T_172406[7] := T_172405
+ node T_172407 = subw(UInt<8>(0), UInt<4>(8))
+ node T_172408 = subw(UInt<8>(0), UInt<4>(8))
+ node T_172409 = subw(UInt<8>(0), UInt<4>(8))
+ node T_172410 = subw(UInt<8>(0), UInt<4>(8))
+ node T_172411 = subw(UInt<8>(0), UInt<4>(8))
+ node T_172412 = subw(UInt<8>(0), UInt<4>(8))
+ node T_172413 = subw(UInt<8>(0), UInt<4>(8))
+ node T_172414 = subw(UInt<8>(0), UInt<4>(8))
+ wire T_172415 : UInt<8>[8]
+ T_172415[0] := T_172407
+ T_172415[1] := T_172408
+ T_172415[2] := T_172409
+ T_172415[3] := T_172410
+ T_172415[4] := T_172411
+ T_172415[5] := T_172412
+ T_172415[6] := T_172413
+ T_172415[7] := T_172414
+ node T_172416 = cat(T_172415[7], T_172415[6])
+ node T_172417 = cat(T_172415[5], T_172415[4])
+ node T_172418 = cat(T_172416, T_172417)
+ node T_172419 = cat(T_172415[3], T_172415[2])
+ node T_172420 = cat(T_172415[1], T_172415[0])
+ node T_172421 = cat(T_172419, T_172420)
+ node wmask = cat(T_172418, T_172421)
+ node T_172422 = and(wmask, out)
+ node T_172423 = not(wmask)
+ node T_172424 = and(T_172423, lhs)
+ node T_172425 = or(T_172422, T_172424)
+ out := T_172425
+ module L2AcquireTracker :
+ output inner : {flip acquire : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_block : UInt<26>, client_xact_id : UInt<1>, addr_beat : UInt<2>, data : UInt<128>, is_builtin_type : UInt<1>, a_type : UInt<3>, union : UInt<17>, client_id : UInt<2>}}, grant : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_beat : UInt<2>, data : UInt<128>, client_xact_id : UInt<1>, manager_xact_id : UInt<2>, is_builtin_type : UInt<1>, g_type : UInt<4>, client_id : UInt<2>}}, flip finish : {flip ready : UInt<1>, valid : UInt<1>, bits : {manager_xact_id : UInt<2>}}, probe : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_block : UInt<26>, p_type : UInt<2>, client_id : UInt<2>}}, flip release : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_block : UInt<26>, client_xact_id : UInt<1>, addr_beat : UInt<2>, data : UInt<128>, r_type : UInt<3>, voluntary : UInt<1>, client_id : UInt<2>}}}
+ input incoherent : UInt<1>[1]
+ output outer : {acquire : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_block : UInt<26>, client_xact_id : UInt<2>, addr_beat : UInt<2>, data : UInt<128>, is_builtin_type : UInt<1>, a_type : UInt<3>, union : UInt<17>}}, flip grant : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_beat : UInt<2>, data : UInt<128>, client_xact_id : UInt<2>, manager_xact_id : UInt<1>, is_builtin_type : UInt<1>, g_type : UInt<4>}}, flip probe : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_block : UInt<26>, p_type : UInt<2>}}, release : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_block : UInt<26>, client_xact_id : UInt<2>, addr_beat : UInt<2>, data : UInt<128>, r_type : UInt<3>, voluntary : UInt<1>}}}
+ output has_acquire_conflict : UInt<1>
+ output has_acquire_match : UInt<1>
+ output has_release_match : UInt<1>
+ output data : {read : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_beat : UInt<2>, id : UInt<2>, addr_idx : UInt<12>, way_en : UInt<8>}}, flip resp : {valid : UInt<1>, bits : {id : UInt<2>, addr_beat : UInt<2>, data : UInt<128>}}, write : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_beat : UInt<2>, id : UInt<2>, addr_idx : UInt<12>, way_en : UInt<8>, data : UInt<128>, wmask : UInt<16>}}}
+ output meta : {read : {flip ready : UInt<1>, valid : UInt<1>, bits : {idx : UInt<12>, id : UInt<2>, tag : UInt<14>}}, flip resp : {valid : UInt<1>, bits : {id : UInt<2>, tag_match : UInt<1>, meta : {tag : UInt<14>, coh : {inner : {sharers : UInt<1>, makeGrant$default$3 : UInt<1>, makeGrant$default$4 : UInt<1>}, outer : {state : UInt<2>, makeRelease$default$2 : UInt<1>, makeRelease$default$3 : UInt<1>, makeVoluntaryRelease$default$4 : UInt<1>, makeVoluntaryRelease$default$5 : UInt<1>, makeVoluntaryWriteback$default$3 : UInt<1>, makeVoluntaryWriteback$default$4 : UInt<1>}}}, way_en : UInt<8>}}, write : {flip ready : UInt<1>, valid : UInt<1>, bits : {idx : UInt<12>, way_en : UInt<8>, data : {tag : UInt<14>, coh : {inner : {sharers : UInt<1>, makeGrant$default$3 : UInt<1>, makeGrant$default$4 : UInt<1>}, outer : {state : UInt<2>, makeRelease$default$2 : UInt<1>, makeRelease$default$3 : UInt<1>, makeVoluntaryRelease$default$4 : UInt<1>, makeVoluntaryRelease$default$5 : UInt<1>, makeVoluntaryWriteback$default$3 : UInt<1>, makeVoluntaryWriteback$default$4 : UInt<1>}}}, id : UInt<2>}}}
+ output wb : {req : {flip ready : UInt<1>, valid : UInt<1>, bits : {tag : UInt<14>, coh : {inner : {sharers : UInt<1>, makeGrant$default$3 : UInt<1>, makeGrant$default$4 : UInt<1>}, outer : {state : UInt<2>, makeRelease$default$2 : UInt<1>, makeRelease$default$3 : UInt<1>, makeVoluntaryRelease$default$4 : UInt<1>, makeVoluntaryRelease$default$5 : UInt<1>, makeVoluntaryWriteback$default$3 : UInt<1>, makeVoluntaryWriteback$default$4 : UInt<1>}}, id : UInt<2>, idx : UInt<12>, way_en : UInt<8>}}, flip resp : {valid : UInt<1>, bits : {id : UInt<2>}}}
+
+ wire T_172426 : UInt<3>[3]
+ T_172426[0] := UInt<3>(0)
+ T_172426[1] := UInt<3>(1)
+ T_172426[2] := UInt<3>(2)
+ wire T_172427 : UInt<2>[2]
+ T_172427[0] := UInt<2>(0)
+ T_172427[1] := UInt<2>(1)
+ wire T_172428 : UInt<2>[3]
+ T_172428[0] := UInt<2>(1)
+ T_172428[1] := UInt<2>(2)
+ T_172428[2] := UInt<2>(3)
+ wire T_172429 : UInt<2>[2]
+ T_172429[0] := UInt<2>(2)
+ T_172429[1] := UInt<2>(3)
+ wire T_172430 : UInt<2>[1]
+ T_172430[0] := UInt<2>(3)
+ wire T_172431 : UInt<3>[3]
+ T_172431[0] := UInt<3>(0)
+ T_172431[1] := UInt<3>(1)
+ T_172431[2] := UInt<3>(2)
+ wire T_172432 : UInt<2>[2]
+ T_172432[0] := UInt<2>(0)
+ T_172432[1] := UInt<2>(1)
+ wire T_172433 : UInt<2>[3]
+ T_172433[0] := UInt<2>(1)
+ T_172433[1] := UInt<2>(2)
+ T_172433[2] := UInt<2>(3)
+ wire T_172434 : UInt<2>[2]
+ T_172434[0] := UInt<2>(2)
+ T_172434[1] := UInt<2>(3)
+ wire T_172435 : UInt<2>[1]
+ T_172435[0] := UInt<2>(3)
+ wire T_172436 : UInt<3>[3]
+ T_172436[0] := UInt<3>(0)
+ T_172436[1] := UInt<3>(1)
+ T_172436[2] := UInt<3>(2)
+ wire T_172437 : UInt<2>[2]
+ T_172437[0] := UInt<2>(0)
+ T_172437[1] := UInt<2>(1)
+ wire T_172438 : UInt<2>[3]
+ T_172438[0] := UInt<2>(1)
+ T_172438[1] := UInt<2>(2)
+ T_172438[2] := UInt<2>(3)
+ wire T_172439 : UInt<2>[2]
+ T_172439[0] := UInt<2>(2)
+ T_172439[1] := UInt<2>(3)
+ wire T_172440 : UInt<2>[1]
+ T_172440[0] := UInt<2>(3)
+ wire T_172441 : UInt<3>[3]
+ T_172441[0] := UInt<3>(0)
+ T_172441[1] := UInt<3>(1)
+ T_172441[2] := UInt<3>(2)
+ wire T_172442 : UInt<2>[2]
+ T_172442[0] := UInt<2>(0)
+ T_172442[1] := UInt<2>(1)
+ wire T_172443 : UInt<2>[3]
+ T_172443[0] := UInt<2>(1)
+ T_172443[1] := UInt<2>(2)
+ T_172443[2] := UInt<2>(3)
+ wire T_172444 : UInt<2>[2]
+ T_172444[0] := UInt<2>(2)
+ T_172444[1] := UInt<2>(3)
+ wire T_172445 : UInt<2>[1]
+ T_172445[0] := UInt<2>(3)
+ wire T_172446 : UInt<3>[3]
+ T_172446[0] := UInt<3>(0)
+ T_172446[1] := UInt<3>(1)
+ T_172446[2] := UInt<3>(2)
+ wire T_172447 : UInt<2>[2]
+ T_172447[0] := UInt<2>(0)
+ T_172447[1] := UInt<2>(1)
+ wire T_172448 : UInt<2>[3]
+ T_172448[0] := UInt<2>(1)
+ T_172448[1] := UInt<2>(2)
+ T_172448[2] := UInt<2>(3)
+ wire T_172449 : UInt<2>[2]
+ T_172449[0] := UInt<2>(2)
+ T_172449[1] := UInt<2>(3)
+ wire T_172450 : UInt<2>[1]
+ T_172450[0] := UInt<2>(3)
+ wire T_172451 : UInt<3>[3]
+ T_172451[0] := UInt<3>(0)
+ T_172451[1] := UInt<3>(1)
+ T_172451[2] := UInt<3>(2)
+ wire T_172452 : UInt<2>[2]
+ T_172452[0] := UInt<2>(0)
+ T_172452[1] := UInt<2>(1)
+ wire T_172453 : UInt<2>[3]
+ T_172453[0] := UInt<2>(1)
+ T_172453[1] := UInt<2>(2)
+ T_172453[2] := UInt<2>(3)
+ wire T_172454 : UInt<2>[2]
+ T_172454[0] := UInt<2>(2)
+ T_172454[1] := UInt<2>(3)
+ wire T_172455 : UInt<2>[1]
+ T_172455[0] := UInt<2>(3)
+ wire T_172456 : UInt<3>[3]
+ T_172456[0] := UInt<3>(0)
+ T_172456[1] := UInt<3>(1)
+ T_172456[2] := UInt<3>(2)
+ wire T_172457 : UInt<2>[2]
+ T_172457[0] := UInt<2>(0)
+ T_172457[1] := UInt<2>(1)
+ wire T_172458 : UInt<2>[3]
+ T_172458[0] := UInt<2>(1)
+ T_172458[1] := UInt<2>(2)
+ T_172458[2] := UInt<2>(3)
+ wire T_172459 : UInt<2>[2]
+ T_172459[0] := UInt<2>(2)
+ T_172459[1] := UInt<2>(3)
+ wire T_172460 : UInt<2>[1]
+ T_172460[0] := UInt<2>(3)
+ wire T_172461 : UInt<3>[3]
+ T_172461[0] := UInt<3>(0)
+ T_172461[1] := UInt<3>(1)
+ T_172461[2] := UInt<3>(2)
+ wire T_172462 : UInt<2>[2]
+ T_172462[0] := UInt<2>(0)
+ T_172462[1] := UInt<2>(1)
+ wire T_172463 : UInt<2>[3]
+ T_172463[0] := UInt<2>(1)
+ T_172463[1] := UInt<2>(2)
+ T_172463[2] := UInt<2>(3)
+ wire T_172464 : UInt<2>[2]
+ T_172464[0] := UInt<2>(2)
+ T_172464[1] := UInt<2>(3)
+ wire T_172465 : UInt<2>[1]
+ T_172465[0] := UInt<2>(3)
+ wire T_172466 : UInt<3>[3]
+ T_172466[0] := UInt<3>(0)
+ T_172466[1] := UInt<3>(1)
+ T_172466[2] := UInt<3>(2)
+ wire T_172467 : UInt<2>[2]
+ T_172467[0] := UInt<2>(0)
+ T_172467[1] := UInt<2>(1)
+ wire T_172468 : UInt<2>[3]
+ T_172468[0] := UInt<2>(1)
+ T_172468[1] := UInt<2>(2)
+ T_172468[2] := UInt<2>(3)
+ wire T_172469 : UInt<2>[2]
+ T_172469[0] := UInt<2>(2)
+ T_172469[1] := UInt<2>(3)
+ wire T_172470 : UInt<2>[1]
+ T_172470[0] := UInt<2>(3)
+ wire T_172471 : UInt<3>[3]
+ T_172471[0] := UInt<3>(0)
+ T_172471[1] := UInt<3>(1)
+ T_172471[2] := UInt<3>(2)
+ wire T_172472 : UInt<2>[2]
+ T_172472[0] := UInt<2>(0)
+ T_172472[1] := UInt<2>(1)
+ wire T_172473 : UInt<2>[3]
+ T_172473[0] := UInt<2>(1)
+ T_172473[1] := UInt<2>(2)
+ T_172473[2] := UInt<2>(3)
+ wire T_172474 : UInt<2>[2]
+ T_172474[0] := UInt<2>(2)
+ T_172474[1] := UInt<2>(3)
+ wire T_172475 : UInt<2>[1]
+ T_172475[0] := UInt<2>(3)
+ wire T_172476 : UInt<3>[3]
+ T_172476[0] := UInt<3>(0)
+ T_172476[1] := UInt<3>(1)
+ T_172476[2] := UInt<3>(2)
+ wire T_172477 : UInt<2>[2]
+ T_172477[0] := UInt<2>(0)
+ T_172477[1] := UInt<2>(1)
+ wire T_172478 : UInt<2>[3]
+ T_172478[0] := UInt<2>(1)
+ T_172478[1] := UInt<2>(2)
+ T_172478[2] := UInt<2>(3)
+ wire T_172479 : UInt<2>[2]
+ T_172479[0] := UInt<2>(2)
+ T_172479[1] := UInt<2>(3)
+ wire T_172480 : UInt<2>[1]
+ T_172480[0] := UInt<2>(3)
+ wire incoherent : UInt<1>[1]
+ incoherent[0] := T_172481
+ wire T_172482 : UInt<3>[3]
+ T_172482[0] := UInt<3>(0)
+ T_172482[1] := UInt<3>(1)
+ T_172482[2] := UInt<3>(2)
+ wire T_172483 : UInt<0>[1]
+ T_172483[0] := UInt<0>(0)
+ wire T_172484 : UInt<2>[2]
+ T_172484[0] := UInt<2>(1)
+ T_172484[1] := UInt<2>(2)
+ wire T_172485 : UInt<2>[2]
+ T_172485[0] := UInt<2>(1)
+ T_172485[1] := UInt<2>(2)
+ wire T_172486 : UInt<2>[1]
+ T_172486[0] := UInt<2>(2)
+ wire T_172487 : UInt<3>[3]
+ T_172487[0] := UInt<3>(0)
+ T_172487[1] := UInt<3>(1)
+ T_172487[2] := UInt<3>(2)
+ wire T_172488 : UInt<0>[1]
+ T_172488[0] := UInt<0>(0)
+ wire T_172489 : UInt<2>[2]
+ T_172489[0] := UInt<2>(1)
+ T_172489[1] := UInt<2>(2)
+ wire T_172490 : UInt<2>[2]
+ T_172490[0] := UInt<2>(1)
+ T_172490[1] := UInt<2>(2)
+ wire T_172491 : UInt<2>[1]
+ T_172491[0] := UInt<2>(2)
+ wire T_172492 : UInt<3>[3]
+ T_172492[0] := UInt<3>(0)
+ T_172492[1] := UInt<3>(1)
+ T_172492[2] := UInt<3>(2)
+ wire T_172493 : UInt<0>[1]
+ T_172493[0] := UInt<0>(0)
+ wire T_172494 : UInt<2>[2]
+ T_172494[0] := UInt<2>(1)
+ T_172494[1] := UInt<2>(2)
+ wire T_172495 : UInt<2>[2]
+ T_172495[0] := UInt<2>(1)
+ T_172495[1] := UInt<2>(2)
+ wire T_172496 : UInt<2>[1]
+ T_172496[0] := UInt<2>(2)
+ wire T_172497 : UInt<3>[3]
+ T_172497[0] := UInt<3>(0)
+ T_172497[1] := UInt<3>(1)
+ T_172497[2] := UInt<3>(2)
+ wire T_172498 : UInt<0>[1]
+ T_172498[0] := UInt<0>(0)
+ wire T_172499 : UInt<2>[2]
+ T_172499[0] := UInt<2>(1)
+ T_172499[1] := UInt<2>(2)
+ wire T_172500 : UInt<2>[2]
+ T_172500[0] := UInt<2>(1)
+ T_172500[1] := UInt<2>(2)
+ wire T_172501 : UInt<2>[1]
+ T_172501[0] := UInt<2>(2)
+ wire T_172502 : UInt<3>[3]
+ T_172502[0] := UInt<3>(0)
+ T_172502[1] := UInt<3>(1)
+ T_172502[2] := UInt<3>(2)
+ wire T_172503 : UInt<0>[1]
+ T_172503[0] := UInt<0>(0)
+ wire T_172504 : UInt<2>[2]
+ T_172504[0] := UInt<2>(1)
+ T_172504[1] := UInt<2>(2)
+ wire T_172505 : UInt<2>[2]
+ T_172505[0] := UInt<2>(1)
+ T_172505[1] := UInt<2>(2)
+ wire T_172506 : UInt<2>[1]
+ T_172506[0] := UInt<2>(2)
+ wire T_172507 : UInt<3>[3]
+ T_172507[0] := UInt<3>(0)
+ T_172507[1] := UInt<3>(1)
+ T_172507[2] := UInt<3>(2)
+ wire T_172508 : UInt<0>[1]
+ T_172508[0] := UInt<0>(0)
+ wire T_172509 : UInt<2>[2]
+ T_172509[0] := UInt<2>(1)
+ T_172509[1] := UInt<2>(2)
+ wire T_172510 : UInt<2>[2]
+ T_172510[0] := UInt<2>(1)
+ T_172510[1] := UInt<2>(2)
+ wire T_172511 : UInt<2>[1]
+ T_172511[0] := UInt<2>(2)
+ wire T_172512 : UInt<3>[3]
+ T_172512[0] := UInt<3>(0)
+ T_172512[1] := UInt<3>(1)
+ T_172512[2] := UInt<3>(2)
+ wire T_172513 : UInt<0>[1]
+ T_172513[0] := UInt<0>(0)
+ wire T_172514 : UInt<2>[2]
+ T_172514[0] := UInt<2>(1)
+ T_172514[1] := UInt<2>(2)
+ wire T_172515 : UInt<2>[2]
+ T_172515[0] := UInt<2>(1)
+ T_172515[1] := UInt<2>(2)
+ wire T_172516 : UInt<2>[1]
+ T_172516[0] := UInt<2>(2)
+ wire T_172517 : UInt<3>[3]
+ T_172517[0] := UInt<3>(0)
+ T_172517[1] := UInt<3>(1)
+ T_172517[2] := UInt<3>(2)
+ wire T_172518 : UInt<0>[1]
+ T_172518[0] := UInt<0>(0)
+ wire T_172519 : UInt<2>[2]
+ T_172519[0] := UInt<2>(1)
+ T_172519[1] := UInt<2>(2)
+ wire T_172520 : UInt<2>[2]
+ T_172520[0] := UInt<2>(1)
+ T_172520[1] := UInt<2>(2)
+ wire T_172521 : UInt<2>[1]
+ T_172521[0] := UInt<2>(2)
+ wire T_172522 : UInt<3>[3]
+ T_172522[0] := UInt<3>(0)
+ T_172522[1] := UInt<3>(1)
+ T_172522[2] := UInt<3>(2)
+ wire T_172523 : UInt<0>[1]
+ T_172523[0] := UInt<0>(0)
+ wire T_172524 : UInt<2>[2]
+ T_172524[0] := UInt<2>(1)
+ T_172524[1] := UInt<2>(2)
+ wire T_172525 : UInt<2>[2]
+ T_172525[0] := UInt<2>(1)
+ T_172525[1] := UInt<2>(2)
+ wire T_172526 : UInt<2>[1]
+ T_172526[0] := UInt<2>(2)
+ wire T_172527 : UInt<3>[3]
+ T_172527[0] := UInt<3>(0)
+ T_172527[1] := UInt<3>(1)
+ T_172527[2] := UInt<3>(2)
+ wire T_172528 : UInt<2>[2]
+ T_172528[0] := UInt<2>(0)
+ T_172528[1] := UInt<2>(1)
+ wire T_172529 : UInt<2>[3]
+ T_172529[0] := UInt<2>(1)
+ T_172529[1] := UInt<2>(2)
+ T_172529[2] := UInt<2>(3)
+ wire T_172530 : UInt<2>[2]
+ T_172530[0] := UInt<2>(2)
+ T_172530[1] := UInt<2>(3)
+ wire T_172531 : UInt<2>[1]
+ T_172531[0] := UInt<2>(3)
+ wire T_172532 : UInt<3>[3]
+ T_172532[0] := UInt<3>(0)
+ T_172532[1] := UInt<3>(1)
+ T_172532[2] := UInt<3>(2)
+ wire T_172533 : UInt<2>[2]
+ T_172533[0] := UInt<2>(0)
+ T_172533[1] := UInt<2>(1)
+ wire T_172534 : UInt<2>[3]
+ T_172534[0] := UInt<2>(1)
+ T_172534[1] := UInt<2>(2)
+ T_172534[2] := UInt<2>(3)
+ wire T_172535 : UInt<2>[2]
+ T_172535[0] := UInt<2>(2)
+ T_172535[1] := UInt<2>(3)
+ wire T_172536 : UInt<2>[1]
+ T_172536[0] := UInt<2>(3)
+ wire T_172537 : UInt<3>[3]
+ T_172537[0] := UInt<3>(0)
+ T_172537[1] := UInt<3>(1)
+ T_172537[2] := UInt<3>(2)
+ wire T_172538 : UInt<0>[1]
+ T_172538[0] := UInt<0>(0)
+ wire T_172539 : UInt<2>[2]
+ T_172539[0] := UInt<2>(1)
+ T_172539[1] := UInt<2>(2)
+ wire T_172540 : UInt<2>[2]
+ T_172540[0] := UInt<2>(1)
+ T_172540[1] := UInt<2>(2)
+ wire T_172541 : UInt<2>[1]
+ T_172541[0] := UInt<2>(2)
+ wire T_172542 : UInt<3>[3]
+ T_172542[0] := UInt<3>(0)
+ T_172542[1] := UInt<3>(1)
+ T_172542[2] := UInt<3>(2)
+ wire T_172543 : UInt<2>[2]
+ T_172543[0] := UInt<2>(0)
+ T_172543[1] := UInt<2>(1)
+ wire T_172544 : UInt<2>[3]
+ T_172544[0] := UInt<2>(1)
+ T_172544[1] := UInt<2>(2)
+ T_172544[2] := UInt<2>(3)
+ wire T_172545 : UInt<2>[2]
+ T_172545[0] := UInt<2>(2)
+ T_172545[1] := UInt<2>(3)
+ wire T_172546 : UInt<2>[1]
+ T_172546[0] := UInt<2>(3)
+ wire T_172547 : UInt<3>[3]
+ T_172547[0] := UInt<3>(0)
+ T_172547[1] := UInt<3>(1)
+ T_172547[2] := UInt<3>(2)
+ wire T_172548 : UInt<2>[2]
+ T_172548[0] := UInt<2>(0)
+ T_172548[1] := UInt<2>(1)
+ wire T_172549 : UInt<2>[3]
+ T_172549[0] := UInt<2>(1)
+ T_172549[1] := UInt<2>(2)
+ T_172549[2] := UInt<2>(3)
+ wire T_172550 : UInt<2>[2]
+ T_172550[0] := UInt<2>(2)
+ T_172550[1] := UInt<2>(3)
+ wire T_172551 : UInt<2>[1]
+ T_172551[0] := UInt<2>(3)
+ wire T_172552 : UInt<3>[3]
+ T_172552[0] := UInt<3>(0)
+ T_172552[1] := UInt<3>(1)
+ T_172552[2] := UInt<3>(2)
+ wire T_172553 : UInt<0>[1]
+ T_172553[0] := UInt<0>(0)
+ wire T_172554 : UInt<2>[2]
+ T_172554[0] := UInt<2>(1)
+ T_172554[1] := UInt<2>(2)
+ wire T_172555 : UInt<2>[2]
+ T_172555[0] := UInt<2>(1)
+ T_172555[1] := UInt<2>(2)
+ wire T_172556 : UInt<2>[1]
+ T_172556[0] := UInt<2>(2)
+ wire T_172557 : UInt<3>[3]
+ T_172557[0] := UInt<3>(0)
+ T_172557[1] := UInt<3>(1)
+ T_172557[2] := UInt<3>(2)
+ wire T_172558 : UInt<2>[2]
+ T_172558[0] := UInt<2>(0)
+ T_172558[1] := UInt<2>(1)
+ wire T_172559 : UInt<2>[3]
+ T_172559[0] := UInt<2>(1)
+ T_172559[1] := UInt<2>(2)
+ T_172559[2] := UInt<2>(3)
+ wire T_172560 : UInt<2>[2]
+ T_172560[0] := UInt<2>(2)
+ T_172560[1] := UInt<2>(3)
+ wire T_172561 : UInt<2>[1]
+ T_172561[0] := UInt<2>(3)
+ wire T_172562 : UInt<3>[3]
+ T_172562[0] := UInt<3>(0)
+ T_172562[1] := UInt<3>(1)
+ T_172562[2] := UInt<3>(2)
+ wire T_172563 : UInt<2>[2]
+ T_172563[0] := UInt<2>(0)
+ T_172563[1] := UInt<2>(1)
+ wire T_172564 : UInt<2>[3]
+ T_172564[0] := UInt<2>(1)
+ T_172564[1] := UInt<2>(2)
+ T_172564[2] := UInt<2>(3)
+ wire T_172565 : UInt<2>[2]
+ T_172565[0] := UInt<2>(2)
+ T_172565[1] := UInt<2>(3)
+ wire T_172566 : UInt<2>[1]
+ T_172566[0] := UInt<2>(3)
+ wire T_172567 : UInt<3>[3]
+ T_172567[0] := UInt<3>(0)
+ T_172567[1] := UInt<3>(1)
+ T_172567[2] := UInt<3>(2)
+ wire T_172568 : UInt<0>[1]
+ T_172568[0] := UInt<0>(0)
+ wire T_172569 : UInt<2>[2]
+ T_172569[0] := UInt<2>(1)
+ T_172569[1] := UInt<2>(2)
+ wire T_172570 : UInt<2>[2]
+ T_172570[0] := UInt<2>(1)
+ T_172570[1] := UInt<2>(2)
+ wire T_172571 : UInt<2>[1]
+ T_172571[0] := UInt<2>(2)
+ wire T_172572 : UInt<3>[3]
+ T_172572[0] := UInt<3>(0)
+ T_172572[1] := UInt<3>(1)
+ T_172572[2] := UInt<3>(2)
+ wire T_172573 : UInt<2>[2]
+ T_172573[0] := UInt<2>(0)
+ T_172573[1] := UInt<2>(1)
+ wire T_172574 : UInt<2>[3]
+ T_172574[0] := UInt<2>(1)
+ T_172574[1] := UInt<2>(2)
+ T_172574[2] := UInt<2>(3)
+ wire T_172575 : UInt<2>[2]
+ T_172575[0] := UInt<2>(2)
+ T_172575[1] := UInt<2>(3)
+ wire T_172576 : UInt<2>[1]
+ T_172576[0] := UInt<2>(3)
+ wire T_172577 : UInt<3>[3]
+ T_172577[0] := UInt<3>(0)
+ T_172577[1] := UInt<3>(1)
+ T_172577[2] := UInt<3>(2)
+ wire T_172578 : UInt<2>[2]
+ T_172578[0] := UInt<2>(0)
+ T_172578[1] := UInt<2>(1)
+ wire T_172579 : UInt<2>[3]
+ T_172579[0] := UInt<2>(1)
+ T_172579[1] := UInt<2>(2)
+ T_172579[2] := UInt<2>(3)
+ wire T_172580 : UInt<2>[2]
+ T_172580[0] := UInt<2>(2)
+ T_172580[1] := UInt<2>(3)
+ wire T_172581 : UInt<2>[1]
+ T_172581[0] := UInt<2>(3)
+ wire T_172582 : UInt<3>[3]
+ T_172582[0] := UInt<3>(0)
+ T_172582[1] := UInt<3>(1)
+ T_172582[2] := UInt<3>(2)
+ wire T_172583 : UInt<0>[1]
+ T_172583[0] := UInt<0>(0)
+ wire T_172584 : UInt<2>[2]
+ T_172584[0] := UInt<2>(1)
+ T_172584[1] := UInt<2>(2)
+ wire T_172585 : UInt<2>[2]
+ T_172585[0] := UInt<2>(1)
+ T_172585[1] := UInt<2>(2)
+ wire T_172586 : UInt<2>[1]
+ T_172586[0] := UInt<2>(2)
+ wire T_172587 : UInt<3>[3]
+ T_172587[0] := UInt<3>(0)
+ T_172587[1] := UInt<3>(1)
+ T_172587[2] := UInt<3>(2)
+ wire T_172588 : UInt<2>[2]
+ T_172588[0] := UInt<2>(0)
+ T_172588[1] := UInt<2>(1)
+ wire T_172589 : UInt<2>[3]
+ T_172589[0] := UInt<2>(1)
+ T_172589[1] := UInt<2>(2)
+ T_172589[2] := UInt<2>(3)
+ wire T_172590 : UInt<2>[2]
+ T_172590[0] := UInt<2>(2)
+ T_172590[1] := UInt<2>(3)
+ wire T_172591 : UInt<2>[1]
+ T_172591[0] := UInt<2>(3)
+ wire T_172592 : UInt<3>[3]
+ T_172592[0] := UInt<3>(0)
+ T_172592[1] := UInt<3>(1)
+ T_172592[2] := UInt<3>(2)
+ wire T_172593 : UInt<2>[2]
+ T_172593[0] := UInt<2>(0)
+ T_172593[1] := UInt<2>(1)
+ wire T_172594 : UInt<2>[3]
+ T_172594[0] := UInt<2>(1)
+ T_172594[1] := UInt<2>(2)
+ T_172594[2] := UInt<2>(3)
+ wire T_172595 : UInt<2>[2]
+ T_172595[0] := UInt<2>(2)
+ T_172595[1] := UInt<2>(3)
+ wire T_172596 : UInt<2>[1]
+ T_172596[0] := UInt<2>(3)
+ wire T_172597 : UInt<3>[3]
+ T_172597[0] := UInt<3>(0)
+ T_172597[1] := UInt<3>(1)
+ T_172597[2] := UInt<3>(2)
+ wire T_172598 : UInt<0>[1]
+ T_172598[0] := UInt<0>(0)
+ wire T_172599 : UInt<2>[2]
+ T_172599[0] := UInt<2>(1)
+ T_172599[1] := UInt<2>(2)
+ wire T_172600 : UInt<2>[2]
+ T_172600[0] := UInt<2>(1)
+ T_172600[1] := UInt<2>(2)
+ wire T_172601 : UInt<2>[1]
+ T_172601[0] := UInt<2>(2)
+ wire T_172602 : UInt<3>[3]
+ T_172602[0] := UInt<3>(0)
+ T_172602[1] := UInt<3>(1)
+ T_172602[2] := UInt<3>(2)
+ wire T_172603 : UInt<2>[2]
+ T_172603[0] := UInt<2>(0)
+ T_172603[1] := UInt<2>(1)
+ wire T_172604 : UInt<2>[3]
+ T_172604[0] := UInt<2>(1)
+ T_172604[1] := UInt<2>(2)
+ T_172604[2] := UInt<2>(3)
+ wire T_172605 : UInt<2>[2]
+ T_172605[0] := UInt<2>(2)
+ T_172605[1] := UInt<2>(3)
+ wire T_172606 : UInt<2>[1]
+ T_172606[0] := UInt<2>(3)
+ wire T_172607 : UInt<3>[3]
+ T_172607[0] := UInt<3>(0)
+ T_172607[1] := UInt<3>(1)
+ T_172607[2] := UInt<3>(2)
+ wire T_172608 : UInt<2>[2]
+ T_172608[0] := UInt<2>(0)
+ T_172608[1] := UInt<2>(1)
+ wire T_172609 : UInt<2>[3]
+ T_172609[0] := UInt<2>(1)
+ T_172609[1] := UInt<2>(2)
+ T_172609[2] := UInt<2>(3)
+ wire T_172610 : UInt<2>[2]
+ T_172610[0] := UInt<2>(2)
+ T_172610[1] := UInt<2>(3)
+ wire T_172611 : UInt<2>[1]
+ T_172611[0] := UInt<2>(3)
+ wire T_172612 : UInt<3>[3]
+ T_172612[0] := UInt<3>(0)
+ T_172612[1] := UInt<3>(1)
+ T_172612[2] := UInt<3>(2)
+ wire T_172613 : UInt<0>[1]
+ T_172613[0] := UInt<0>(0)
+ wire T_172614 : UInt<2>[2]
+ T_172614[0] := UInt<2>(1)
+ T_172614[1] := UInt<2>(2)
+ wire T_172615 : UInt<2>[2]
+ T_172615[0] := UInt<2>(1)
+ T_172615[1] := UInt<2>(2)
+ wire T_172616 : UInt<2>[1]
+ T_172616[0] := UInt<2>(2)
+ wire T_172617 : UInt<3>[3]
+ T_172617[0] := UInt<3>(0)
+ T_172617[1] := UInt<3>(1)
+ T_172617[2] := UInt<3>(2)
+ wire T_172618 : UInt<2>[2]
+ T_172618[0] := UInt<2>(0)
+ T_172618[1] := UInt<2>(1)
+ wire T_172619 : UInt<2>[3]
+ T_172619[0] := UInt<2>(1)
+ T_172619[1] := UInt<2>(2)
+ T_172619[2] := UInt<2>(3)
+ wire T_172620 : UInt<2>[2]
+ T_172620[0] := UInt<2>(2)
+ T_172620[1] := UInt<2>(3)
+ wire T_172621 : UInt<2>[1]
+ T_172621[0] := UInt<2>(3)
+ wire T_172622 : UInt<3>[3]
+ T_172622[0] := UInt<3>(0)
+ T_172622[1] := UInt<3>(1)
+ T_172622[2] := UInt<3>(2)
+ wire T_172623 : UInt<2>[2]
+ T_172623[0] := UInt<2>(0)
+ T_172623[1] := UInt<2>(1)
+ wire T_172624 : UInt<2>[3]
+ T_172624[0] := UInt<2>(1)
+ T_172624[1] := UInt<2>(2)
+ T_172624[2] := UInt<2>(3)
+ wire T_172625 : UInt<2>[2]
+ T_172625[0] := UInt<2>(2)
+ T_172625[1] := UInt<2>(3)
+ wire T_172626 : UInt<2>[1]
+ T_172626[0] := UInt<2>(3)
+ wire T_172627 : UInt<3>[3]
+ T_172627[0] := UInt<3>(0)
+ T_172627[1] := UInt<3>(1)
+ T_172627[2] := UInt<3>(2)
+ wire T_172628 : UInt<0>[1]
+ T_172628[0] := UInt<0>(0)
+ wire T_172629 : UInt<2>[2]
+ T_172629[0] := UInt<2>(1)
+ T_172629[1] := UInt<2>(2)
+ wire T_172630 : UInt<2>[2]
+ T_172630[0] := UInt<2>(1)
+ T_172630[1] := UInt<2>(2)
+ wire T_172631 : UInt<2>[1]
+ T_172631[0] := UInt<2>(2)
+ wire T_172632 : UInt<3>[3]
+ T_172632[0] := UInt<3>(0)
+ T_172632[1] := UInt<3>(1)
+ T_172632[2] := UInt<3>(2)
+ wire T_172633 : UInt<2>[2]
+ T_172633[0] := UInt<2>(0)
+ T_172633[1] := UInt<2>(1)
+ wire T_172634 : UInt<2>[3]
+ T_172634[0] := UInt<2>(1)
+ T_172634[1] := UInt<2>(2)
+ T_172634[2] := UInt<2>(3)
+ wire T_172635 : UInt<2>[2]
+ T_172635[0] := UInt<2>(2)
+ T_172635[1] := UInt<2>(3)
+ wire T_172636 : UInt<2>[1]
+ T_172636[0] := UInt<2>(3)
+ wire T_172637 : UInt<3>[3]
+ T_172637[0] := UInt<3>(0)
+ T_172637[1] := UInt<3>(1)
+ T_172637[2] := UInt<3>(2)
+ wire T_172638 : UInt<2>[2]
+ T_172638[0] := UInt<2>(0)
+ T_172638[1] := UInt<2>(1)
+ wire T_172639 : UInt<2>[3]
+ T_172639[0] := UInt<2>(1)
+ T_172639[1] := UInt<2>(2)
+ T_172639[2] := UInt<2>(3)
+ wire T_172640 : UInt<2>[2]
+ T_172640[0] := UInt<2>(2)
+ T_172640[1] := UInt<2>(3)
+ wire T_172641 : UInt<2>[1]
+ T_172641[0] := UInt<2>(3)
+ wire T_172642 : UInt<3>[3]
+ T_172642[0] := UInt<3>(0)
+ T_172642[1] := UInt<3>(1)
+ T_172642[2] := UInt<3>(2)
+ wire T_172643 : UInt<0>[1]
+ T_172643[0] := UInt<0>(0)
+ wire T_172644 : UInt<2>[2]
+ T_172644[0] := UInt<2>(1)
+ T_172644[1] := UInt<2>(2)
+ wire T_172645 : UInt<2>[2]
+ T_172645[0] := UInt<2>(1)
+ T_172645[1] := UInt<2>(2)
+ wire T_172646 : UInt<2>[1]
+ T_172646[0] := UInt<2>(2)
+ wb.resp.valid := UInt<1>(0)
+ wb.req.valid := UInt<1>(0)
+ meta.write.valid := UInt<1>(0)
+ meta.resp.valid := UInt<1>(0)
+ meta.read.valid := UInt<1>(0)
+ data.write.valid := UInt<1>(0)
+ data.resp.valid := UInt<1>(0)
+ data.read.valid := UInt<1>(0)
+ outer.release.valid := UInt<1>(0)
+ outer.probe.valid := UInt<1>(0)
+ outer.grant.valid := UInt<1>(0)
+ outer.acquire.valid := UInt<1>(0)
+ inner.release.valid := UInt<1>(0)
+ inner.probe.valid := UInt<1>(0)
+ inner.finish.valid := UInt<1>(0)
+ inner.grant.valid := UInt<1>(0)
+ inner.acquire.valid := UInt<1>(0)
+ reg state : UInt<4>
+ onreset state := UInt<4>(0)
+ wire T_172647 : UInt<3>[3]
+ T_172647[0] := UInt<3>(0)
+ T_172647[1] := UInt<3>(1)
+ T_172647[2] := UInt<3>(2)
+ wire T_172648 : UInt<2>[2]
+ T_172648[0] := UInt<2>(0)
+ T_172648[1] := UInt<2>(1)
+ wire T_172649 : UInt<2>[3]
+ T_172649[0] := UInt<2>(1)
+ T_172649[1] := UInt<2>(2)
+ T_172649[2] := UInt<2>(3)
+ wire T_172650 : UInt<2>[2]
+ T_172650[0] := UInt<2>(2)
+ T_172650[1] := UInt<2>(3)
+ wire T_172651 : UInt<2>[1]
+ T_172651[0] := UInt<2>(3)
+ wire T_172652 : UInt<3>[3]
+ T_172652[0] := UInt<3>(0)
+ T_172652[1] := UInt<3>(1)
+ T_172652[2] := UInt<3>(2)
+ wire T_172653 : UInt<2>[2]
+ T_172653[0] := UInt<2>(0)
+ T_172653[1] := UInt<2>(1)
+ wire T_172654 : UInt<2>[3]
+ T_172654[0] := UInt<2>(1)
+ T_172654[1] := UInt<2>(2)
+ T_172654[2] := UInt<2>(3)
+ wire T_172655 : UInt<2>[2]
+ T_172655[0] := UInt<2>(2)
+ T_172655[1] := UInt<2>(3)
+ wire T_172656 : UInt<2>[1]
+ T_172656[0] := UInt<2>(3)
+ reg xact : {addr_block : UInt<26>, client_xact_id : UInt<1>, addr_beat : UInt<2>, data : UInt<128>, is_builtin_type : UInt<1>, a_type : UInt<3>, union : UInt<17>, client_id : UInt<2>}
+ wire T_172657 : UInt<128>[4]
+ T_172657[0] := UInt<128>(0)
+ T_172657[1] := UInt<128>(0)
+ T_172657[2] := UInt<128>(0)
+ T_172657[3] := UInt<128>(0)
+ reg data_buffer : UInt<128>[4]
+ onreset data_buffer := T_172657
+ wire T_172658 : UInt<16>[4]
+ T_172658[0] := UInt<16>(0)
+ T_172658[1] := UInt<16>(0)
+ T_172658[2] := UInt<16>(0)
+ T_172658[3] := UInt<16>(0)
+ reg wmask_buffer : UInt<16>[4]
+ onreset wmask_buffer := T_172658
+ reg xact_tag_match : UInt<1>
+ reg xact_way_en : UInt<8>
+ wire T_172659 : UInt<3>[3]
+ T_172659[0] := UInt<3>(0)
+ T_172659[1] := UInt<3>(1)
+ T_172659[2] := UInt<3>(2)
+ wire T_172660 : UInt<2>[2]
+ T_172660[0] := UInt<2>(0)
+ T_172660[1] := UInt<2>(1)
+ wire T_172661 : UInt<2>[3]
+ T_172661[0] := UInt<2>(1)
+ T_172661[1] := UInt<2>(2)
+ T_172661[2] := UInt<2>(3)
+ wire T_172662 : UInt<2>[2]
+ T_172662[0] := UInt<2>(2)
+ T_172662[1] := UInt<2>(3)
+ wire T_172663 : UInt<2>[1]
+ T_172663[0] := UInt<2>(3)
+ wire T_172664 : UInt<3>[3]
+ T_172664[0] := UInt<3>(0)
+ T_172664[1] := UInt<3>(1)
+ T_172664[2] := UInt<3>(2)
+ wire T_172665 : UInt<2>[2]
+ T_172665[0] := UInt<2>(0)
+ T_172665[1] := UInt<2>(1)
+ wire T_172666 : UInt<2>[3]
+ T_172666[0] := UInt<2>(1)
+ T_172666[1] := UInt<2>(2)
+ T_172666[2] := UInt<2>(3)
+ wire T_172667 : UInt<2>[2]
+ T_172667[0] := UInt<2>(2)
+ T_172667[1] := UInt<2>(3)
+ wire T_172668 : UInt<2>[1]
+ T_172668[0] := UInt<2>(3)
+ wire T_172669 : UInt<3>[3]
+ T_172669[0] := UInt<3>(0)
+ T_172669[1] := UInt<3>(1)
+ T_172669[2] := UInt<3>(2)
+ wire T_172670 : UInt<0>[1]
+ T_172670[0] := UInt<0>(0)
+ wire T_172671 : UInt<2>[2]
+ T_172671[0] := UInt<2>(1)
+ T_172671[1] := UInt<2>(2)
+ wire T_172672 : UInt<2>[2]
+ T_172672[0] := UInt<2>(1)
+ T_172672[1] := UInt<2>(2)
+ wire T_172673 : UInt<2>[1]
+ T_172673[0] := UInt<2>(2)
+ wire T_172674 : UInt<3>[3]
+ T_172674[0] := UInt<3>(0)
+ T_172674[1] := UInt<3>(1)
+ T_172674[2] := UInt<3>(2)
+ wire T_172675 : UInt<2>[2]
+ T_172675[0] := UInt<2>(0)
+ T_172675[1] := UInt<2>(1)
+ wire T_172676 : UInt<2>[3]
+ T_172676[0] := UInt<2>(1)
+ T_172676[1] := UInt<2>(2)
+ T_172676[2] := UInt<2>(3)
+ wire T_172677 : UInt<2>[2]
+ T_172677[0] := UInt<2>(2)
+ T_172677[1] := UInt<2>(3)
+ wire T_172678 : UInt<2>[1]
+ T_172678[0] := UInt<2>(3)
+ wire T_172679 : UInt<3>[3]
+ T_172679[0] := UInt<3>(0)
+ T_172679[1] := UInt<3>(1)
+ T_172679[2] := UInt<3>(2)
+ wire T_172680 : UInt<2>[2]
+ T_172680[0] := UInt<2>(0)
+ T_172680[1] := UInt<2>(1)
+ wire T_172681 : UInt<2>[3]
+ T_172681[0] := UInt<2>(1)
+ T_172681[1] := UInt<2>(2)
+ T_172681[2] := UInt<2>(3)
+ wire T_172682 : UInt<2>[2]
+ T_172682[0] := UInt<2>(2)
+ T_172682[1] := UInt<2>(3)
+ wire T_172683 : UInt<2>[1]
+ T_172683[0] := UInt<2>(3)
+ wire T_172684 : UInt<3>[3]
+ T_172684[0] := UInt<3>(0)
+ T_172684[1] := UInt<3>(1)
+ T_172684[2] := UInt<3>(2)
+ wire T_172685 : UInt<0>[1]
+ T_172685[0] := UInt<0>(0)
+ wire T_172686 : UInt<2>[2]
+ T_172686[0] := UInt<2>(1)
+ T_172686[1] := UInt<2>(2)
+ wire T_172687 : UInt<2>[2]
+ T_172687[0] := UInt<2>(1)
+ T_172687[1] := UInt<2>(2)
+ wire T_172688 : UInt<2>[1]
+ T_172688[0] := UInt<2>(2)
+ reg xact_old_meta : {tag : UInt<14>, coh : {inner : {sharers : UInt<1>, makeGrant$default$3 : UInt<1>, makeGrant$default$4 : UInt<1>}, outer : {state : UInt<2>, makeRelease$default$2 : UInt<1>, makeRelease$default$3 : UInt<1>, makeVoluntaryRelease$default$4 : UInt<1>, makeVoluntaryRelease$default$5 : UInt<1>, makeVoluntaryWriteback$default$3 : UInt<1>, makeVoluntaryWriteback$default$4 : UInt<1>}}}
+ wire T_172689 : UInt<3>[3]
+ T_172689[0] := UInt<3>(0)
+ T_172689[1] := UInt<3>(1)
+ T_172689[2] := UInt<3>(2)
+ wire T_172690 : UInt<2>[2]
+ T_172690[0] := UInt<2>(0)
+ T_172690[1] := UInt<2>(1)
+ wire T_172691 : UInt<2>[3]
+ T_172691[0] := UInt<2>(1)
+ T_172691[1] := UInt<2>(2)
+ T_172691[2] := UInt<2>(3)
+ wire T_172692 : UInt<2>[2]
+ T_172692[0] := UInt<2>(2)
+ T_172692[1] := UInt<2>(3)
+ wire T_172693 : UInt<2>[1]
+ T_172693[0] := UInt<2>(3)
+ wire T_172694 : UInt<3>[3]
+ T_172694[0] := UInt<3>(0)
+ T_172694[1] := UInt<3>(1)
+ T_172694[2] := UInt<3>(2)
+ wire T_172695 : UInt<2>[2]
+ T_172695[0] := UInt<2>(0)
+ T_172695[1] := UInt<2>(1)
+ wire T_172696 : UInt<2>[3]
+ T_172696[0] := UInt<2>(1)
+ T_172696[1] := UInt<2>(2)
+ T_172696[2] := UInt<2>(3)
+ wire T_172697 : UInt<2>[2]
+ T_172697[0] := UInt<2>(2)
+ T_172697[1] := UInt<2>(3)
+ wire T_172698 : UInt<2>[1]
+ T_172698[0] := UInt<2>(3)
+ wire T_172699 : UInt<3>[3]
+ T_172699[0] := UInt<3>(0)
+ T_172699[1] := UInt<3>(1)
+ T_172699[2] := UInt<3>(2)
+ wire T_172700 : UInt<0>[1]
+ T_172700[0] := UInt<0>(0)
+ wire T_172701 : UInt<2>[2]
+ T_172701[0] := UInt<2>(1)
+ T_172701[1] := UInt<2>(2)
+ wire T_172702 : UInt<2>[2]
+ T_172702[0] := UInt<2>(1)
+ T_172702[1] := UInt<2>(2)
+ wire T_172703 : UInt<2>[1]
+ T_172703[0] := UInt<2>(2)
+ reg pending_coh : {inner : {sharers : UInt<1>, makeGrant$default$3 : UInt<1>, makeGrant$default$4 : UInt<1>}, outer : {state : UInt<2>, makeRelease$default$2 : UInt<1>, makeRelease$default$3 : UInt<1>, makeVoluntaryRelease$default$4 : UInt<1>, makeVoluntaryRelease$default$5 : UInt<1>, makeVoluntaryWriteback$default$3 : UInt<1>, makeVoluntaryWriteback$default$4 : UInt<1>}}
+ wire T_172704 : UInt<3>[3]
+ T_172704[0] := UInt<3>(0)
+ T_172704[1] := UInt<3>(1)
+ T_172704[2] := UInt<3>(2)
+ wire T_172705 : UInt<2>[2]
+ T_172705[0] := UInt<2>(0)
+ T_172705[1] := UInt<2>(1)
+ wire T_172706 : UInt<2>[3]
+ T_172706[0] := UInt<2>(1)
+ T_172706[1] := UInt<2>(2)
+ T_172706[2] := UInt<2>(3)
+ wire T_172707 : UInt<2>[2]
+ T_172707[0] := UInt<2>(2)
+ T_172707[1] := UInt<2>(3)
+ wire T_172708 : UInt<2>[1]
+ T_172708[0] := UInt<2>(3)
+ inst ignt_q of Queue_76584
+ node T_172709 = and(inner.acquire.ready, inner.acquire.valid)
+ node T_172710 = and(UInt<1>(1), inner.acquire.bits.is_builtin_type)
+ wire T_172711 : UInt<3>[1]
+ T_172711[0] := UInt<3>(3)
+ node T_172712 = eq(T_172711[0], inner.acquire.bits.a_type)
+ node T_172713 = or(UInt<1>(0), T_172712)
+ node T_172714 = and(T_172710, T_172713)
+ node T_172715 = and(T_172709, T_172714)
+ reg T_172716 : UInt<2>
+ onreset T_172716 := UInt<2>(0)
+ when T_172715 :
+ node T_172717 = eq(T_172716, UInt<2>(3))
+ node T_172718 = and(UInt<1>(0), T_172717)
+ node T_172719 = addw(T_172716, UInt<1>(1))
+ wire T_172720 : UInt<2>
+ T_172720 := T_172719
+ when T_172718 : T_172720 := UInt<1>(0)
+ T_172716 := T_172720
+ node T_172721 = and(T_172715, T_172717)
+ wire T_172722 : UInt<1>
+ T_172722 := UInt<1>(0)
+ when T_172714 : T_172722 := T_172716
+ wire iacq_data_done : UInt<1>
+ iacq_data_done := T_172709
+ when T_172714 : iacq_data_done := T_172721
+ reg T_172723 : UInt<1>
+ onreset T_172723 := UInt<1>(0)
+ node T_172724 = and(inner.probe.ready, inner.probe.valid)
+ node T_172725 = and(T_172724, UInt<1>(0))
+ reg T_172726 : UInt<2>
+ onreset T_172726 := UInt<2>(0)
+ when T_172725 :
+ node T_172727 = eq(T_172726, UInt<2>(3))
+ node T_172728 = and(UInt<1>(0), T_172727)
+ node T_172729 = addw(T_172726, UInt<1>(1))
+ wire T_172730 : UInt<2>
+ T_172730 := T_172729
+ when T_172728 : T_172730 := UInt<1>(0)
+ T_172726 := T_172730
+ node T_172731 = and(T_172725, T_172727)
+ wire T_172732 : UInt<1>
+ T_172732 := UInt<1>(0)
+ when UInt<1>(0) : T_172732 := T_172726
+ wire T_172733 : UInt<1>
+ T_172733 := T_172724
+ when UInt<1>(0) : T_172733 := T_172731
+ node T_172734 = and(inner.release.ready, inner.release.valid)
+ node T_172735 = eq(T_172476[0], inner.release.bits.r_type)
+ node T_172736 = eq(T_172476[1], inner.release.bits.r_type)
+ node T_172737 = eq(T_172476[2], inner.release.bits.r_type)
+ node T_172738 = or(UInt<1>(0), T_172735)
+ node T_172739 = or(T_172738, T_172736)
+ node T_172740 = or(T_172739, T_172737)
+ node T_172741 = and(UInt<1>(1), T_172740)
+ node T_172742 = and(T_172734, T_172741)
+ reg T_172743 : UInt<2>
+ onreset T_172743 := UInt<2>(0)
+ when T_172742 :
+ node T_172744 = eq(T_172743, UInt<2>(3))
+ node T_172745 = and(UInt<1>(0), T_172744)
+ node T_172746 = addw(T_172743, UInt<1>(1))
+ wire T_172747 : UInt<2>
+ T_172747 := T_172746
+ when T_172745 : T_172747 := UInt<1>(0)
+ T_172743 := T_172747
+ node T_172748 = and(T_172742, T_172744)
+ wire T_172749 : UInt<1>
+ T_172749 := UInt<1>(0)
+ when T_172741 : T_172749 := T_172743
+ wire T_172750 : UInt<1>
+ T_172750 := T_172734
+ when T_172741 : T_172750 := T_172748
+ node T_172751 = and(T_172733, UInt<1>(1))
+ node T_172752 = subw(T_172723, UInt<1>(1))
+ wire T_172753 : UInt<1>
+ T_172753 := T_172752
+ when T_172751 : T_172753 := T_172723
+ node T_172754 = addw(T_172723, UInt<1>(1))
+ wire T_172755 : UInt<1>
+ T_172755 := T_172723
+ when T_172751 : T_172755 := T_172754
+ wire T_172756 : UInt<1>
+ T_172756 := T_172755
+ when T_172750 : T_172756 := T_172753
+ T_172723 := T_172756
+ node pending_irels = gt(T_172723, UInt<1>(0))
+ reg T_172757 : UInt<1>
+ onreset T_172757 := UInt<1>(0)
+ node T_172758 = and(outer.acquire.ready, outer.acquire.valid)
+ node T_172759 = and(UInt<1>(1), outer.acquire.bits.is_builtin_type)
+ wire T_172760 : UInt<3>[1]
+ T_172760[0] := UInt<3>(3)
+ node T_172761 = eq(T_172760[0], outer.acquire.bits.a_type)
+ node T_172762 = or(UInt<1>(0), T_172761)
+ node T_172763 = and(T_172759, T_172762)
+ node T_172764 = and(T_172758, T_172763)
+ reg T_172765 : UInt<2>
+ onreset T_172765 := UInt<2>(0)
+ when T_172764 :
+ node T_172766 = eq(T_172765, UInt<2>(3))
+ node T_172767 = and(UInt<1>(0), T_172766)
+ node T_172768 = addw(T_172765, UInt<1>(1))
+ wire T_172769 : UInt<2>
+ T_172769 := T_172768
+ when T_172767 : T_172769 := UInt<1>(0)
+ T_172765 := T_172769
+ node T_172770 = and(T_172764, T_172766)
+ wire oacq_data_idx : UInt<2>
+ oacq_data_idx := xact.addr_beat
+ when T_172763 : oacq_data_idx := T_172765
+ wire oacq_data_done : UInt<1>
+ oacq_data_done := T_172758
+ when T_172763 : oacq_data_done := T_172770
+ node T_172771 = and(outer.grant.ready, outer.grant.valid)
+ wire T_172772 : UInt<3>[1]
+ T_172772[0] := UInt<3>(5)
+ node T_172773 = eq(T_172772[0], outer.grant.bits.g_type)
+ node T_172774 = or(UInt<1>(0), T_172773)
+ node T_172775 = eq(T_172503[0], outer.grant.bits.g_type)
+ node T_172776 = or(UInt<1>(0), T_172775)
+ wire T_172777 : UInt<1>
+ T_172777 := T_172776
+ when outer.grant.bits.is_builtin_type : T_172777 := T_172774
+ node T_172778 = and(UInt<1>(1), T_172777)
+ node T_172779 = and(T_172771, T_172778)
+ reg T_172780 : UInt<2>
+ onreset T_172780 := UInt<2>(0)
+ when T_172779 :
+ node T_172781 = eq(T_172780, UInt<2>(3))
+ node T_172782 = and(UInt<1>(0), T_172781)
+ node T_172783 = addw(T_172780, UInt<1>(1))
+ wire T_172784 : UInt<2>
+ T_172784 := T_172783
+ when T_172782 : T_172784 := UInt<1>(0)
+ T_172780 := T_172784
+ node T_172785 = and(T_172779, T_172781)
+ wire ognt_data_idx : UInt<2>
+ ognt_data_idx := xact.addr_beat
+ when T_172778 : ognt_data_idx := T_172780
+ wire ognt_data_done : UInt<1>
+ ognt_data_done := T_172771
+ when T_172778 : ognt_data_done := T_172785
+ node T_172786 = and(oacq_data_done, UInt<1>(1))
+ node T_172787 = subw(T_172757, UInt<1>(1))
+ wire T_172788 : UInt<1>
+ T_172788 := T_172787
+ when T_172786 : T_172788 := T_172757
+ node T_172789 = addw(T_172757, UInt<1>(1))
+ wire T_172790 : UInt<1>
+ T_172790 := T_172757
+ when T_172786 : T_172790 := T_172789
+ wire T_172791 : UInt<1>
+ T_172791 := T_172790
+ when ognt_data_done : T_172791 := T_172788
+ T_172757 := T_172791
+ node pending_ognt = gt(T_172757, UInt<1>(0))
+ node T_172792 = and(inner.grant.ready, inner.grant.valid)
+ wire T_172793 : UInt<3>[1]
+ T_172793[0] := UInt<3>(5)
+ node T_172794 = eq(T_172793[0], inner.grant.bits.g_type)
+ node T_172795 = or(UInt<1>(0), T_172794)
+ node T_172796 = eq(T_172447[0], inner.grant.bits.g_type)
+ node T_172797 = eq(T_172447[1], inner.grant.bits.g_type)
+ node T_172798 = or(UInt<1>(0), T_172796)
+ node T_172799 = or(T_172798, T_172797)
+ wire T_172800 : UInt<1>
+ T_172800 := T_172799
+ when inner.grant.bits.is_builtin_type : T_172800 := T_172795
+ node T_172801 = and(UInt<1>(1), T_172800)
+ node T_172802 = and(T_172792, T_172801)
+ reg T_172803 : UInt<2>
+ onreset T_172803 := UInt<2>(0)
+ when T_172802 :
+ node T_172804 = eq(T_172803, UInt<2>(3))
+ node T_172805 = and(UInt<1>(0), T_172804)
+ node T_172806 = addw(T_172803, UInt<1>(1))
+ wire T_172807 : UInt<2>
+ T_172807 := T_172806
+ when T_172805 : T_172807 := UInt<1>(0)
+ T_172803 := T_172807
+ node T_172808 = and(T_172802, T_172804)
+ wire ignt_data_idx : UInt<2>
+ ignt_data_idx := ignt_q.deq.bits.addr_beat
+ when T_172801 : ignt_data_idx := T_172803
+ wire ignt_data_done : UInt<1>
+ ignt_data_done := T_172792
+ when T_172801 : ignt_data_done := T_172808
+ reg T_172809 : UInt<3>
+ onreset T_172809 := UInt<3>(0)
+ node T_172810 = and(inner.grant.ready, inner.grant.valid)
+ wire T_172811 : UInt<3>[1]
+ T_172811[0] := UInt<3>(5)
+ node T_172812 = eq(T_172811[0], inner.grant.bits.g_type)
+ node T_172813 = or(UInt<1>(0), T_172812)
+ node T_172814 = eq(T_172447[0], inner.grant.bits.g_type)
+ node T_172815 = eq(T_172447[1], inner.grant.bits.g_type)
+ node T_172816 = or(UInt<1>(0), T_172814)
+ node T_172817 = or(T_172816, T_172815)
+ wire T_172818 : UInt<1>
+ T_172818 := T_172817
+ when inner.grant.bits.is_builtin_type : T_172818 := T_172813
+ node T_172819 = and(UInt<1>(1), T_172818)
+ node T_172820 = and(T_172810, T_172819)
+ reg T_172821 : UInt<2>
+ onreset T_172821 := UInt<2>(0)
+ when T_172820 :
+ node T_172822 = eq(T_172821, UInt<2>(3))
+ node T_172823 = and(UInt<1>(0), T_172822)
+ node T_172824 = addw(T_172821, UInt<1>(1))
+ wire T_172825 : UInt<2>
+ T_172825 := T_172824
+ when T_172823 : T_172825 := UInt<1>(0)
+ T_172821 := T_172825
+ node T_172826 = and(T_172820, T_172822)
+ wire T_172827 : UInt<1>
+ T_172827 := UInt<1>(0)
+ when T_172819 : T_172827 := T_172821
+ wire T_172828 : UInt<1>
+ T_172828 := T_172810
+ when T_172819 : T_172828 := T_172826
+ node T_172829 = and(inner.finish.ready, inner.finish.valid)
+ node T_172830 = and(T_172829, UInt<1>(0))
+ reg T_172831 : UInt<2>
+ onreset T_172831 := UInt<2>(0)
+ when T_172830 :
+ node T_172832 = eq(T_172831, UInt<2>(3))
+ node T_172833 = and(UInt<1>(0), T_172832)
+ node T_172834 = addw(T_172831, UInt<1>(1))
+ wire T_172835 : UInt<2>
+ T_172835 := T_172834
+ when T_172833 : T_172835 := UInt<1>(0)
+ T_172831 := T_172835
+ node T_172836 = and(T_172830, T_172832)
+ wire T_172837 : UInt<1>
+ T_172837 := UInt<1>(0)
+ when UInt<1>(0) : T_172837 := T_172831
+ wire T_172838 : UInt<1>
+ T_172838 := T_172829
+ when UInt<1>(0) : T_172838 := T_172836
+ node T_172839 = eq(UInt<1>(0), UInt<1>(0))
+ node T_172840 = eq(inner.grant.bits.g_type, UInt<3>(0))
+ node T_172841 = and(inner.grant.bits.is_builtin_type, T_172840)
+ node T_172842 = eq(T_172841, UInt<1>(0))
+ node T_172843 = and(T_172839, T_172842)
+ node T_172844 = and(T_172828, T_172843)
+ node T_172845 = subw(T_172809, UInt<1>(1))
+ wire T_172846 : UInt<3>
+ T_172846 := T_172845
+ when T_172844 : T_172846 := T_172809
+ node T_172847 = addw(T_172809, UInt<1>(1))
+ wire T_172848 : UInt<3>
+ T_172848 := T_172809
+ when T_172844 : T_172848 := T_172847
+ wire T_172849 : UInt<3>
+ T_172849 := T_172848
+ when T_172838 : T_172849 := T_172846
+ T_172809 := T_172849
+ node pending_ifins = gt(T_172809, UInt<1>(0))
+ reg pending_puts : UInt<4>
+ onreset pending_puts := UInt<4>(0)
+ reg pending_iprbs : UInt<1>
+ onreset pending_iprbs := UInt<1>(0)
+ reg pending_reads : UInt<4>
+ onreset pending_reads := UInt<4>(0)
+ reg pending_writes : UInt<4>
+ onreset pending_writes := UInt<4>(0)
+ reg pending_resps : UInt<4>
+ onreset pending_resps := UInt<4>(0)
+ reg pending_ignt_data : UInt<4>
+ onreset pending_ignt_data := UInt<4>(0)
+ reg pending_meta_write : UInt<1>
+ node T_172850 = eq(pending_reads, UInt<1>(0))
+ node T_172851 = eq(T_172850, UInt<1>(0))
+ node T_172852 = eq(pending_writes, UInt<1>(0))
+ node T_172853 = eq(T_172852, UInt<1>(0))
+ node T_172854 = or(T_172851, T_172853)
+ node T_172855 = eq(pending_resps, UInt<1>(0))
+ node T_172856 = eq(T_172855, UInt<1>(0))
+ node T_172857 = or(T_172854, T_172856)
+ node T_172858 = eq(pending_puts, UInt<1>(0))
+ node T_172859 = eq(T_172858, UInt<1>(0))
+ node T_172860 = or(T_172857, T_172859)
+ node T_172861 = or(T_172860, pending_ognt)
+ node T_172862 = gt(ignt_q.count, UInt<1>(0))
+ node T_172863 = or(T_172861, T_172862)
+ node T_172864 = or(T_172863, pending_ifins)
+ node all_pending_done = eq(T_172864, UInt<1>(0))
+ inst amoalu of AMOALU
+ node T_172865 = bits(xact.union, 12, 9)
+ node T_172866 = cat(xact.addr_beat, T_172865)
+ node T_172867 = cat(xact.addr_block, T_172866)
+ amoalu.addr := T_172867
+ node T_172868 = eq(xact.a_type, UInt<3>(2))
+ node T_172869 = and(xact.is_builtin_type, T_172868)
+ node T_172870 = eq(xact.a_type, UInt<3>(3))
+ node T_172871 = and(xact.is_builtin_type, T_172870)
+ node T_172872 = or(T_172869, T_172871)
+ node T_172873 = bits(xact.union, 5, 1)
+ wire T_172874 : UInt<5>
+ T_172874 := T_172873
+ when T_172872 : T_172874 := UInt<5>(1)
+ amoalu.cmd := T_172874
+ node T_172875 = bits(xact.union, 8, 6)
+ amoalu.typ := T_172875
+ amoalu.lhs := data.resp.bits.data
+ amoalu.rhs := data_buffer[0]
+ node T_172876 = eq(xact.a_type, UInt<3>(0))
+ node T_172877 = and(xact.is_builtin_type, T_172876)
+ node T_172878 = eq(inner.acquire.bits.a_type, UInt<3>(0))
+ node T_172879 = and(inner.acquire.bits.is_builtin_type, T_172878)
+ node T_172880 = and(T_172877, T_172879)
+ node T_172881 = eq(xact.client_id, inner.acquire.bits.client_id)
+ node T_172882 = and(T_172880, T_172881)
+ node T_172883 = eq(xact.addr_block, inner.acquire.bits.addr_block)
+ node T_172884 = and(T_172882, T_172883)
+ node T_172885 = neq(state, UInt<4>(0))
+ node T_172886 = and(T_172884, T_172885)
+ node T_172887 = neq(state, UInt<4>(8))
+ node T_172888 = and(T_172886, T_172887)
+ node T_172889 = eq(all_pending_done, UInt<1>(0))
+ node T_172890 = and(T_172888, T_172889)
+ node T_172891 = bit(xact.union, 0)
+ node T_172892 = and(T_172890, T_172891)
+ node T_172893 = and(inner.release.ready, inner.release.valid)
+ node T_172894 = eq(T_172893, UInt<1>(0))
+ node T_172895 = and(T_172892, T_172894)
+ node T_172896 = and(outer.grant.ready, outer.grant.valid)
+ node T_172897 = eq(T_172896, UInt<1>(0))
+ node T_172898 = and(T_172895, T_172897)
+ node T_172899 = eq(data.resp.valid, UInt<1>(0))
+ node T_172900 = and(T_172898, T_172899)
+ node can_merge_iacq_get = and(T_172900, ignt_q.enq.ready)
+ node T_172901 = eq(xact.a_type, UInt<3>(2))
+ node T_172902 = and(xact.is_builtin_type, T_172901)
+ node T_172903 = eq(inner.acquire.bits.a_type, UInt<3>(2))
+ node T_172904 = and(inner.acquire.bits.is_builtin_type, T_172903)
+ node T_172905 = and(T_172902, T_172904)
+ node T_172906 = eq(xact.a_type, UInt<3>(3))
+ node T_172907 = and(xact.is_builtin_type, T_172906)
+ node T_172908 = eq(inner.acquire.bits.a_type, UInt<3>(3))
+ node T_172909 = and(inner.acquire.bits.is_builtin_type, T_172908)
+ node T_172910 = and(T_172907, T_172909)
+ node T_172911 = or(T_172905, T_172910)
+ node T_172912 = eq(xact.client_id, inner.acquire.bits.client_id)
+ node T_172913 = and(T_172911, T_172912)
+ node T_172914 = eq(xact.addr_block, inner.acquire.bits.addr_block)
+ node T_172915 = and(T_172913, T_172914)
+ node T_172916 = neq(state, UInt<4>(0))
+ node T_172917 = and(T_172915, T_172916)
+ node T_172918 = neq(state, UInt<4>(8))
+ node T_172919 = and(T_172917, T_172918)
+ node T_172920 = eq(all_pending_done, UInt<1>(0))
+ node T_172921 = and(T_172919, T_172920)
+ node T_172922 = bit(xact.union, 0)
+ node T_172923 = eq(xact.a_type, UInt<3>(3))
+ node T_172924 = and(xact.is_builtin_type, T_172923)
+ node T_172925 = or(T_172922, T_172924)
+ node T_172926 = and(T_172921, T_172925)
+ node T_172927 = and(inner.release.ready, inner.release.valid)
+ node T_172928 = eq(T_172927, UInt<1>(0))
+ node T_172929 = and(T_172926, T_172928)
+ node T_172930 = and(outer.grant.ready, outer.grant.valid)
+ node T_172931 = eq(T_172930, UInt<1>(0))
+ node T_172932 = and(T_172929, T_172931)
+ node T_172933 = eq(data.resp.valid, UInt<1>(0))
+ node T_172934 = and(T_172932, T_172933)
+ node can_merge_iacq_put = and(T_172934, ignt_q.enq.ready)
+ node T_172935 = eq(state, UInt<4>(0))
+ node T_172936 = or(T_172935, can_merge_iacq_put)
+ node T_172937 = or(T_172936, can_merge_iacq_get)
+ inner.acquire.ready := T_172937
+ ignt_q.enq.valid := iacq_data_done
+ ignt_q.enq.bits.client_xact_id := inner.acquire.bits.client_xact_id
+ ignt_q.enq.bits.addr_beat := inner.acquire.bits.addr_beat
+ node T_172938 = and(inner.acquire.ready, inner.acquire.valid)
+ wire T_172939 : UInt<3>[3]
+ T_172939[0] := UInt<3>(2)
+ T_172939[1] := UInt<3>(3)
+ T_172939[2] := UInt<3>(4)
+ node T_172940 = eq(T_172939[0], inner.acquire.bits.a_type)
+ node T_172941 = eq(T_172939[1], inner.acquire.bits.a_type)
+ node T_172942 = eq(T_172939[2], inner.acquire.bits.a_type)
+ node T_172943 = or(UInt<1>(0), T_172940)
+ node T_172944 = or(T_172943, T_172941)
+ node T_172945 = or(T_172944, T_172942)
+ node T_172946 = and(inner.acquire.bits.is_builtin_type, T_172945)
+ node T_172947 = and(T_172938, T_172946)
+ node T_172948 = subw(UInt<4>(0), UInt<3>(4))
+ node T_172949 = not(T_172948)
+ node T_172950 = dshl(UInt<1>(1), inner.acquire.bits.addr_beat)
+ node T_172951 = not(T_172950)
+ node T_172952 = or(T_172949, T_172951)
+ node T_172953 = and(pending_puts, T_172952)
+ pending_puts := T_172953
+ node T_172954 = eq(state, UInt<4>(1))
+ meta.read.valid := T_172954
+ meta.read.bits.id := UInt<1>(1)
+ node T_172955 = bits(xact.addr_block, 11, 0)
+ meta.read.bits.idx := T_172955
+ node T_172956 = dshr(xact.addr_block, UInt<4>(12))
+ meta.read.bits.tag := T_172956
+ node T_172957 = eq(state, UInt<4>(3))
+ wb.req.valid := T_172957
+ wb.req.bits.id := UInt<1>(1)
+ node T_172958 = bits(xact.addr_block, 11, 0)
+ wb.req.bits.idx := T_172958
+ wb.req.bits.tag := xact_old_meta.tag
+ wb.req.bits.coh := xact_old_meta.coh
+ wb.req.bits.way_en := xact_way_en
+ node T_172959 = and(inner.probe.ready, inner.probe.valid)
+ node T_172960 = not(T_172959)
+ node T_172961 = dshl(UInt<1>(1), inner.probe.bits.client_id)
+ node T_172962 = not(T_172961)
+ node T_172963 = or(T_172960, T_172962)
+ node T_172964 = and(pending_iprbs, T_172963)
+ pending_iprbs := T_172964
+ node T_172965 = bit(pending_iprbs, 0)
+ wire T_172966 : UInt<1>[1]
+ T_172966[0] := T_172965
+ node T_172967 = eq(state, UInt<4>(5))
+ node T_172968 = eq(pending_iprbs, UInt<1>(0))
+ node T_172969 = eq(T_172968, UInt<1>(0))
+ node T_172970 = and(T_172967, T_172969)
+ inner.probe.valid := T_172970
+ node T_172971 = eq(UInt<3>(4), xact.a_type)
+ wire T_172972 : UInt<2>
+ T_172972 := UInt<2>(2)
+ when T_172971 : T_172972 := UInt<2>(0)
+ node T_172973 = eq(UInt<3>(2), xact.a_type)
+ wire T_172974 : UInt<2>
+ T_172974 := T_172972
+ when T_172973 : T_172974 := UInt<2>(0)
+ node T_172975 = eq(UInt<3>(0), xact.a_type)
+ wire T_172976 : UInt<2>
+ T_172976 := T_172974
+ when T_172975 : T_172976 := UInt<2>(2)
+ node T_172977 = eq(UInt<3>(3), xact.a_type)
+ wire T_172978 : UInt<2>
+ T_172978 := T_172976
+ when T_172977 : T_172978 := UInt<2>(0)
+ node T_172979 = eq(UInt<3>(1), xact.a_type)
+ wire T_172980 : UInt<2>
+ T_172980 := T_172978
+ when T_172979 : T_172980 := UInt<2>(2)
+ node T_172981 = eq(UInt<1>(1), xact.a_type)
+ wire T_172982 : UInt<2>
+ T_172982 := UInt<2>(2)
+ when T_172981 : T_172982 := UInt<2>(0)
+ node T_172983 = eq(UInt<1>(0), xact.a_type)
+ wire T_172984 : UInt<2>
+ T_172984 := T_172982
+ when T_172983 : T_172984 := UInt<2>(1)
+ wire T_172985 : UInt<2>
+ T_172985 := T_172984
+ when xact.is_builtin_type : T_172985 := T_172980
+ wire T_172986 : UInt<3>[3]
+ T_172986[0] := UInt<3>(0)
+ T_172986[1] := UInt<3>(1)
+ T_172986[2] := UInt<3>(2)
+ wire T_172987 : UInt<2>[2]
+ T_172987[0] := UInt<2>(0)
+ T_172987[1] := UInt<2>(1)
+ wire T_172988 : UInt<2>[3]
+ T_172988[0] := UInt<2>(1)
+ T_172988[1] := UInt<2>(2)
+ T_172988[2] := UInt<2>(3)
+ wire T_172989 : UInt<2>[2]
+ T_172989[0] := UInt<2>(2)
+ T_172989[1] := UInt<2>(3)
+ wire T_172990 : UInt<2>[1]
+ T_172990[0] := UInt<2>(3)
+ wire T_172991 : UInt<3>[3]
+ T_172991[0] := UInt<3>(0)
+ T_172991[1] := UInt<3>(1)
+ T_172991[2] := UInt<3>(2)
+ wire T_172992 : UInt<2>[2]
+ T_172992[0] := UInt<2>(0)
+ T_172992[1] := UInt<2>(1)
+ wire T_172993 : UInt<2>[3]
+ T_172993[0] := UInt<2>(1)
+ T_172993[1] := UInt<2>(2)
+ T_172993[2] := UInt<2>(3)
+ wire T_172994 : UInt<2>[2]
+ T_172994[0] := UInt<2>(2)
+ T_172994[1] := UInt<2>(3)
+ wire T_172995 : UInt<2>[1]
+ T_172995[0] := UInt<2>(3)
+ wire T_172996 : {addr_block : UInt<26>, p_type : UInt<2>, client_id : UInt<2>}
+ T_172996.client_id := UInt<1>(0)
+ T_172996.p_type := T_172985
+ T_172996.addr_block := xact.addr_block
+ inner.probe.bits := T_172996
+ node T_172997 = eq(state, UInt<4>(5))
+ inner.release.ready := T_172997
+ node T_172998 = dshl(UInt<1>(1), inner.release.bits.client_id)
+ node T_172999 = not(T_172998)
+ node T_173000 = and(pending_coh.inner.sharers, T_172999)
+ wire T_173001 : UInt<3>[3]
+ T_173001[0] := UInt<3>(0)
+ T_173001[1] := UInt<3>(1)
+ T_173001[2] := UInt<3>(2)
+ wire T_173002 : UInt<2>[2]
+ T_173002[0] := UInt<2>(0)
+ T_173002[1] := UInt<2>(1)
+ wire T_173003 : UInt<2>[3]
+ T_173003[0] := UInt<2>(1)
+ T_173003[1] := UInt<2>(2)
+ T_173003[2] := UInt<2>(3)
+ wire T_173004 : UInt<2>[2]
+ T_173004[0] := UInt<2>(2)
+ T_173004[1] := UInt<2>(3)
+ wire T_173005 : UInt<2>[1]
+ T_173005[0] := UInt<2>(3)
+ wire T_173006 : UInt<3>[3]
+ T_173006[0] := UInt<3>(0)
+ T_173006[1] := UInt<3>(1)
+ T_173006[2] := UInt<3>(2)
+ wire T_173007 : UInt<2>[2]
+ T_173007[0] := UInt<2>(0)
+ T_173007[1] := UInt<2>(1)
+ wire T_173008 : UInt<2>[3]
+ T_173008[0] := UInt<2>(1)
+ T_173008[1] := UInt<2>(2)
+ T_173008[2] := UInt<2>(3)
+ wire T_173009 : UInt<2>[2]
+ T_173009[0] := UInt<2>(2)
+ T_173009[1] := UInt<2>(3)
+ wire T_173010 : UInt<2>[1]
+ T_173010[0] := UInt<2>(3)
+ wire T_173011 : {sharers : UInt<1>, makeGrant$default$3 : UInt<1>, makeGrant$default$4 : UInt<1>}
+ T_173011.sharers := T_173000
+ node T_173012 = eq(inner.release.bits.r_type, UInt<3>(0))
+ node T_173013 = eq(inner.release.bits.r_type, UInt<3>(3))
+ wire T_173014 : UInt<3>[3]
+ T_173014[0] := UInt<3>(0)
+ T_173014[1] := UInt<3>(1)
+ T_173014[2] := UInt<3>(2)
+ wire T_173015 : UInt<2>[2]
+ T_173015[0] := UInt<2>(0)
+ T_173015[1] := UInt<2>(1)
+ wire T_173016 : UInt<2>[3]
+ T_173016[0] := UInt<2>(1)
+ T_173016[1] := UInt<2>(2)
+ T_173016[2] := UInt<2>(3)
+ wire T_173017 : UInt<2>[2]
+ T_173017[0] := UInt<2>(2)
+ T_173017[1] := UInt<2>(3)
+ wire T_173018 : UInt<2>[1]
+ T_173018[0] := UInt<2>(3)
+ wire T_173019 : {sharers : UInt<1>, makeGrant$default$3 : UInt<1>, makeGrant$default$4 : UInt<1>}
+ T_173019 := pending_coh.inner
+ when T_173013 : T_173019 := T_173011
+ wire T_173020 : UInt<3>[3]
+ T_173020[0] := UInt<3>(0)
+ T_173020[1] := UInt<3>(1)
+ T_173020[2] := UInt<3>(2)
+ wire T_173021 : UInt<2>[2]
+ T_173021[0] := UInt<2>(0)
+ T_173021[1] := UInt<2>(1)
+ wire T_173022 : UInt<2>[3]
+ T_173022[0] := UInt<2>(1)
+ T_173022[1] := UInt<2>(2)
+ T_173022[2] := UInt<2>(3)
+ wire T_173023 : UInt<2>[2]
+ T_173023[0] := UInt<2>(2)
+ T_173023[1] := UInt<2>(3)
+ wire T_173024 : UInt<2>[1]
+ T_173024[0] := UInt<2>(3)
+ wire T_173025 : {sharers : UInt<1>, makeGrant$default$3 : UInt<1>, makeGrant$default$4 : UInt<1>}
+ T_173025 := T_173019
+ when T_173012 : T_173025 := T_173011
+ node T_173026 = eq(T_172476[0], inner.release.bits.r_type)
+ node T_173027 = eq(T_172476[1], inner.release.bits.r_type)
+ node T_173028 = eq(T_172476[2], inner.release.bits.r_type)
+ node T_173029 = or(UInt<1>(0), T_173026)
+ node T_173030 = or(T_173029, T_173027)
+ node T_173031 = or(T_173030, T_173028)
+ node T_173032 = eq(UInt<5>(1), UInt<5>(1))
+ node T_173033 = eq(UInt<5>(1), UInt<5>(7))
+ node T_173034 = or(T_173032, T_173033)
+ node T_173035 = eq(UInt<5>(1), UInt<5>(4))
+ node T_173036 = or(UInt<1>(0), T_173035)
+ node T_173037 = or(T_173034, T_173036)
+ wire T_173038 : UInt<2>
+ T_173038 := pending_coh.outer.state
+ when T_173037 : T_173038 := UInt<2>(2)
+ wire T_173039 : UInt<3>[3]
+ T_173039[0] := UInt<3>(0)
+ T_173039[1] := UInt<3>(1)
+ T_173039[2] := UInt<3>(2)
+ wire T_173040 : UInt<0>[1]
+ T_173040[0] := UInt<0>(0)
+ wire T_173041 : UInt<2>[2]
+ T_173041[0] := UInt<2>(1)
+ T_173041[1] := UInt<2>(2)
+ wire T_173042 : UInt<2>[2]
+ T_173042[0] := UInt<2>(1)
+ T_173042[1] := UInt<2>(2)
+ wire T_173043 : UInt<2>[1]
+ T_173043[0] := UInt<2>(2)
+ wire T_173044 : UInt<3>[3]
+ T_173044[0] := UInt<3>(0)
+ T_173044[1] := UInt<3>(1)
+ T_173044[2] := UInt<3>(2)
+ wire T_173045 : UInt<0>[1]
+ T_173045[0] := UInt<0>(0)
+ wire T_173046 : UInt<2>[2]
+ T_173046[0] := UInt<2>(1)
+ T_173046[1] := UInt<2>(2)
+ wire T_173047 : UInt<2>[2]
+ T_173047[0] := UInt<2>(1)
+ T_173047[1] := UInt<2>(2)
+ wire T_173048 : UInt<2>[1]
+ T_173048[0] := UInt<2>(2)
+ wire T_173049 : {state : UInt<2>, makeRelease$default$2 : UInt<1>, makeRelease$default$3 : UInt<1>, makeVoluntaryRelease$default$4 : UInt<1>, makeVoluntaryRelease$default$5 : UInt<1>, makeVoluntaryWriteback$default$3 : UInt<1>, makeVoluntaryWriteback$default$4 : UInt<1>}
+ T_173049.state := T_173038
+ wire T_173050 : UInt<3>[3]
+ T_173050[0] := UInt<3>(0)
+ T_173050[1] := UInt<3>(1)
+ T_173050[2] := UInt<3>(2)
+ wire T_173051 : UInt<2>[2]
+ T_173051[0] := UInt<2>(0)
+ T_173051[1] := UInt<2>(1)
+ wire T_173052 : UInt<2>[3]
+ T_173052[0] := UInt<2>(1)
+ T_173052[1] := UInt<2>(2)
+ T_173052[2] := UInt<2>(3)
+ wire T_173053 : UInt<2>[2]
+ T_173053[0] := UInt<2>(2)
+ T_173053[1] := UInt<2>(3)
+ wire T_173054 : UInt<2>[1]
+ T_173054[0] := UInt<2>(3)
+ wire T_173055 : {state : UInt<2>, makeRelease$default$2 : UInt<1>, makeRelease$default$3 : UInt<1>, makeVoluntaryRelease$default$4 : UInt<1>, makeVoluntaryRelease$default$5 : UInt<1>, makeVoluntaryWriteback$default$3 : UInt<1>, makeVoluntaryWriteback$default$4 : UInt<1>}
+ T_173055 := pending_coh.outer
+ when T_173031 : T_173055 := T_173049
+ wire T_173056 : UInt<3>[3]
+ T_173056[0] := UInt<3>(0)
+ T_173056[1] := UInt<3>(1)
+ T_173056[2] := UInt<3>(2)
+ wire T_173057 : UInt<2>[2]
+ T_173057[0] := UInt<2>(0)
+ T_173057[1] := UInt<2>(1)
+ wire T_173058 : UInt<2>[3]
+ T_173058[0] := UInt<2>(1)
+ T_173058[1] := UInt<2>(2)
+ T_173058[2] := UInt<2>(3)
+ wire T_173059 : UInt<2>[2]
+ T_173059[0] := UInt<2>(2)
+ T_173059[1] := UInt<2>(3)
+ wire T_173060 : UInt<2>[1]
+ T_173060[0] := UInt<2>(3)
+ wire T_173061 : UInt<3>[3]
+ T_173061[0] := UInt<3>(0)
+ T_173061[1] := UInt<3>(1)
+ T_173061[2] := UInt<3>(2)
+ wire T_173062 : UInt<2>[2]
+ T_173062[0] := UInt<2>(0)
+ T_173062[1] := UInt<2>(1)
+ wire T_173063 : UInt<2>[3]
+ T_173063[0] := UInt<2>(1)
+ T_173063[1] := UInt<2>(2)
+ T_173063[2] := UInt<2>(3)
+ wire T_173064 : UInt<2>[2]
+ T_173064[0] := UInt<2>(2)
+ T_173064[1] := UInt<2>(3)
+ wire T_173065 : UInt<2>[1]
+ T_173065[0] := UInt<2>(3)
+ wire T_173066 : UInt<3>[3]
+ T_173066[0] := UInt<3>(0)
+ T_173066[1] := UInt<3>(1)
+ T_173066[2] := UInt<3>(2)
+ wire T_173067 : UInt<0>[1]
+ T_173067[0] := UInt<0>(0)
+ wire T_173068 : UInt<2>[2]
+ T_173068[0] := UInt<2>(1)
+ T_173068[1] := UInt<2>(2)
+ wire T_173069 : UInt<2>[2]
+ T_173069[0] := UInt<2>(1)
+ T_173069[1] := UInt<2>(2)
+ wire T_173070 : UInt<2>[1]
+ T_173070[0] := UInt<2>(2)
+ wire T_173071 : UInt<3>[3]
+ T_173071[0] := UInt<3>(0)
+ T_173071[1] := UInt<3>(1)
+ T_173071[2] := UInt<3>(2)
+ wire T_173072 : UInt<2>[2]
+ T_173072[0] := UInt<2>(0)
+ T_173072[1] := UInt<2>(1)
+ wire T_173073 : UInt<2>[3]
+ T_173073[0] := UInt<2>(1)
+ T_173073[1] := UInt<2>(2)
+ T_173073[2] := UInt<2>(3)
+ wire T_173074 : UInt<2>[2]
+ T_173074[0] := UInt<2>(2)
+ T_173074[1] := UInt<2>(3)
+ wire T_173075 : UInt<2>[1]
+ T_173075[0] := UInt<2>(3)
+ wire T_173076 : UInt<3>[3]
+ T_173076[0] := UInt<3>(0)
+ T_173076[1] := UInt<3>(1)
+ T_173076[2] := UInt<3>(2)
+ wire T_173077 : UInt<2>[2]
+ T_173077[0] := UInt<2>(0)
+ T_173077[1] := UInt<2>(1)
+ wire T_173078 : UInt<2>[3]
+ T_173078[0] := UInt<2>(1)
+ T_173078[1] := UInt<2>(2)
+ T_173078[2] := UInt<2>(3)
+ wire T_173079 : UInt<2>[2]
+ T_173079[0] := UInt<2>(2)
+ T_173079[1] := UInt<2>(3)
+ wire T_173080 : UInt<2>[1]
+ T_173080[0] := UInt<2>(3)
+ wire T_173081 : UInt<3>[3]
+ T_173081[0] := UInt<3>(0)
+ T_173081[1] := UInt<3>(1)
+ T_173081[2] := UInt<3>(2)
+ wire T_173082 : UInt<0>[1]
+ T_173082[0] := UInt<0>(0)
+ wire T_173083 : UInt<2>[2]
+ T_173083[0] := UInt<2>(1)
+ T_173083[1] := UInt<2>(2)
+ wire T_173084 : UInt<2>[2]
+ T_173084[0] := UInt<2>(1)
+ T_173084[1] := UInt<2>(2)
+ wire T_173085 : UInt<2>[1]
+ T_173085[0] := UInt<2>(2)
+ wire pending_coh_on_irel : {inner : {sharers : UInt<1>, makeGrant$default$3 : UInt<1>, makeGrant$default$4 : UInt<1>}, outer : {state : UInt<2>, makeRelease$default$2 : UInt<1>, makeRelease$default$3 : UInt<1>, makeVoluntaryRelease$default$4 : UInt<1>, makeVoluntaryRelease$default$5 : UInt<1>, makeVoluntaryWriteback$default$3 : UInt<1>, makeVoluntaryWriteback$default$4 : UInt<1>}}
+ pending_coh_on_irel.inner := T_173025
+ pending_coh_on_irel.outer := T_173055
+ node T_173086 = and(inner.release.ready, inner.release.valid)
+
+
+ node T_173087 = eq(pending_coh.inner.sharers, pending_coh_on_irel.inner.sharers)
+ node T_173088 = eq(pending_coh.outer.state, pending_coh_on_irel.outer.state)
+ node T_173089 = and(T_173087, T_173088)
+ node T_173090 = eq(T_173089, UInt<1>(0))
+ node T_173091 = and(T_173086, T_173090)
+ when T_173091 :
+ pending_meta_write := UInt<1>(1)
+ pending_coh := pending_coh_on_irel
+
+
+ node T_173092 = and(inner.release.ready, inner.release.valid)
+ node T_173093 = eq(T_172476[0], inner.release.bits.r_type)
+ node T_173094 = eq(T_172476[1], inner.release.bits.r_type)
+ node T_173095 = eq(T_172476[2], inner.release.bits.r_type)
+ node T_173096 = or(UInt<1>(0), T_173093)
+ node T_173097 = or(T_173096, T_173094)
+ node T_173098 = or(T_173097, T_173095)
+ node T_173099 = and(T_173092, T_173098)
+ when T_173099 :
+ accessor T_173100 = data_buffer[inner.release.bits.addr_beat]
+ node T_173101 = bits(xact.union, 12, 9)
+ node T_173102 = bits(T_173101, 3, 3)
+ node T_173103 = mul(UInt<7>(64), T_173102)
+ node T_173104 = dshr(inner.release.bits.data, T_173103)
+ amoalu.lhs := T_173104
+ node T_173105 = bits(xact.union, 12, 9)
+ node T_173106 = bits(T_173105, 3, 3)
+ node T_173107 = mul(UInt<7>(64), T_173106)
+ node T_173108 = dshr(T_173100, T_173107)
+ amoalu.rhs := T_173108
+ accessor T_173109 = wmask_buffer[inner.release.bits.addr_beat]
+ node T_173110 = bit(T_173109, 0)
+ node T_173111 = bit(T_173109, 1)
+ node T_173112 = bit(T_173109, 2)
+ node T_173113 = bit(T_173109, 3)
+ node T_173114 = bit(T_173109, 4)
+ node T_173115 = bit(T_173109, 5)
+ node T_173116 = bit(T_173109, 6)
+ node T_173117 = bit(T_173109, 7)
+ node T_173118 = bit(T_173109, 8)
+ node T_173119 = bit(T_173109, 9)
+ node T_173120 = bit(T_173109, 10)
+ node T_173121 = bit(T_173109, 11)
+ node T_173122 = bit(T_173109, 12)
+ node T_173123 = bit(T_173109, 13)
+ node T_173124 = bit(T_173109, 14)
+ node T_173125 = bit(T_173109, 15)
+ wire T_173126 : UInt<1>[16]
+ T_173126[0] := T_173110
+ T_173126[1] := T_173111
+ T_173126[2] := T_173112
+ T_173126[3] := T_173113
+ T_173126[4] := T_173114
+ T_173126[5] := T_173115
+ T_173126[6] := T_173116
+ T_173126[7] := T_173117
+ T_173126[8] := T_173118
+ T_173126[9] := T_173119
+ T_173126[10] := T_173120
+ T_173126[11] := T_173121
+ T_173126[12] := T_173122
+ T_173126[13] := T_173123
+ T_173126[14] := T_173124
+ T_173126[15] := T_173125
+ node T_173127 = subw(UInt<8>(0), UInt<4>(8))
+ node T_173128 = subw(UInt<8>(0), UInt<4>(8))
+ node T_173129 = subw(UInt<8>(0), UInt<4>(8))
+ node T_173130 = subw(UInt<8>(0), UInt<4>(8))
+ node T_173131 = subw(UInt<8>(0), UInt<4>(8))
+ node T_173132 = subw(UInt<8>(0), UInt<4>(8))
+ node T_173133 = subw(UInt<8>(0), UInt<4>(8))
+ node T_173134 = subw(UInt<8>(0), UInt<4>(8))
+ node T_173135 = subw(UInt<8>(0), UInt<4>(8))
+ node T_173136 = subw(UInt<8>(0), UInt<4>(8))
+ node T_173137 = subw(UInt<8>(0), UInt<4>(8))
+ node T_173138 = subw(UInt<8>(0), UInt<4>(8))
+ node T_173139 = subw(UInt<8>(0), UInt<4>(8))
+ node T_173140 = subw(UInt<8>(0), UInt<4>(8))
+ node T_173141 = subw(UInt<8>(0), UInt<4>(8))
+ node T_173142 = subw(UInt<8>(0), UInt<4>(8))
+ wire T_173143 : UInt<8>[16]
+ T_173143[0] := T_173127
+ T_173143[1] := T_173128
+ T_173143[2] := T_173129
+ T_173143[3] := T_173130
+ T_173143[4] := T_173131
+ T_173143[5] := T_173132
+ T_173143[6] := T_173133
+ T_173143[7] := T_173134
+ T_173143[8] := T_173135
+ T_173143[9] := T_173136
+ T_173143[10] := T_173137
+ T_173143[11] := T_173138
+ T_173143[12] := T_173139
+ T_173143[13] := T_173140
+ T_173143[14] := T_173141
+ T_173143[15] := T_173142
+ node T_173144 = cat(T_173143[15], T_173143[14])
+ node T_173145 = cat(T_173143[13], T_173143[12])
+ node T_173146 = cat(T_173144, T_173145)
+ node T_173147 = cat(T_173143[11], T_173143[10])
+ node T_173148 = cat(T_173143[9], T_173143[8])
+ node T_173149 = cat(T_173147, T_173148)
+ node T_173150 = cat(T_173146, T_173149)
+ node T_173151 = cat(T_173143[7], T_173143[6])
+ node T_173152 = cat(T_173143[5], T_173143[4])
+ node T_173153 = cat(T_173151, T_173152)
+ node T_173154 = cat(T_173143[3], T_173143[2])
+ node T_173155 = cat(T_173143[1], T_173143[0])
+ node T_173156 = cat(T_173154, T_173155)
+ node T_173157 = cat(T_173153, T_173156)
+ node T_173158 = cat(T_173150, T_173157)
+ accessor T_173159 = data_buffer[inner.release.bits.addr_beat]
+ node T_173160 = not(T_173158)
+ node T_173161 = and(T_173160, inner.release.bits.data)
+ node T_173162 = eq(xact.a_type, UInt<3>(4))
+ node T_173163 = and(xact.is_builtin_type, T_173162)
+ node T_173164 = bits(xact.union, 12, 9)
+ node T_173165 = bits(T_173164, 3, 3)
+ node T_173166 = mul(UInt<7>(64), T_173165)
+ node T_173167 = dshl(amoalu.out, T_173166)
+ wire T_173168 : UInt<128>
+ T_173168 := T_173100
+ when T_173163 : T_173168 := T_173167
+ node T_173169 = and(T_173158, T_173168)
+ node T_173170 = or(T_173161, T_173169)
+ T_173159 := T_173170
+ accessor T_173171 = wmask_buffer[inner.release.bits.addr_beat]
+ T_173171 := SInt<1>(-1)
+
+
+ node T_173172 = eq(xact.a_type, UInt<3>(4))
+ node T_173173 = eq(xact.addr_beat, inner.release.bits.addr_beat)
+ node T_173174 = and(T_173172, T_173173)
+ when T_173174 : xact.data := inner.release.bits.data
+ node T_173175 = eq(state, UInt<4>(6))
+ node T_173176 = bit(xact.union, 0)
+ node T_173177 = dshr(pending_puts, oacq_data_idx)
+ node T_173178 = bit(T_173177, 0)
+ node T_173179 = eq(T_173178, UInt<1>(0))
+ node T_173180 = or(T_173176, T_173179)
+ node T_173181 = and(T_173175, T_173180)
+ outer.acquire.valid := T_173181
+ node T_173182 = bit(xact.union, 0)
+ node T_173183 = eq(xact.a_type, UInt<3>(2))
+ node T_173184 = and(xact.is_builtin_type, T_173183)
+ node T_173185 = eq(xact.a_type, UInt<3>(3))
+ node T_173186 = and(xact.is_builtin_type, T_173185)
+ node T_173187 = or(T_173184, T_173186)
+ node T_173188 = bits(xact.union, 5, 1)
+ wire T_173189 : UInt<5>
+ T_173189 := T_173188
+ when T_173187 : T_173189 := UInt<5>(1)
+ node T_173190 = eq(T_173189, UInt<5>(1))
+ node T_173191 = eq(T_173189, UInt<5>(7))
+ node T_173192 = or(T_173190, T_173191)
+ node T_173193 = bit(T_173189, 3)
+ node T_173194 = eq(T_173189, UInt<5>(4))
+ node T_173195 = or(T_173193, T_173194)
+ node T_173196 = or(T_173192, T_173195)
+ node T_173197 = eq(T_173189, UInt<5>(3))
+ node T_173198 = or(T_173196, T_173197)
+ node T_173199 = eq(T_173189, UInt<5>(6))
+ node T_173200 = or(T_173198, T_173199)
+ wire T_173201 : UInt<1>
+ T_173201 := UInt<1>(0)
+ when T_173200 : T_173201 := UInt<1>(1)
+ node T_173202 = cat(T_173189, UInt<1>(1))
+ wire T_173203 : UInt<3>[3]
+ T_173203[0] := UInt<3>(0)
+ T_173203[1] := UInt<3>(1)
+ T_173203[2] := UInt<3>(2)
+ wire T_173204 : UInt<0>[1]
+ T_173204[0] := UInt<0>(0)
+ wire T_173205 : UInt<2>[2]
+ T_173205[0] := UInt<2>(1)
+ T_173205[1] := UInt<2>(2)
+ wire T_173206 : UInt<2>[2]
+ T_173206[0] := UInt<2>(1)
+ T_173206[1] := UInt<2>(2)
+ wire T_173207 : UInt<2>[1]
+ T_173207[0] := UInt<2>(2)
+ wire T_173208 : UInt<3>[3]
+ T_173208[0] := UInt<3>(0)
+ T_173208[1] := UInt<3>(1)
+ T_173208[2] := UInt<3>(2)
+ wire T_173209 : UInt<0>[1]
+ T_173209[0] := UInt<0>(0)
+ wire T_173210 : UInt<2>[2]
+ T_173210[0] := UInt<2>(1)
+ T_173210[1] := UInt<2>(2)
+ wire T_173211 : UInt<2>[2]
+ T_173211[0] := UInt<2>(1)
+ T_173211[1] := UInt<2>(2)
+ wire T_173212 : UInt<2>[1]
+ T_173212[0] := UInt<2>(2)
+ wire T_173213 : {addr_block : UInt<26>, client_xact_id : UInt<2>, addr_beat : UInt<2>, data : UInt<128>, is_builtin_type : UInt<1>, a_type : UInt<3>, union : UInt<17>}
+ T_173213.is_builtin_type := UInt<1>(0)
+ T_173213.a_type := T_173201
+ T_173213.client_xact_id := UInt<1>(0)
+ T_173213.addr_block := xact.addr_block
+ T_173213.addr_beat := UInt<1>(0)
+ T_173213.data := UInt<1>(0)
+ T_173213.union := T_173202
+ wire T_173214 : UInt<3>[3]
+ T_173214[0] := UInt<3>(0)
+ T_173214[1] := UInt<3>(1)
+ T_173214[2] := UInt<3>(2)
+ wire T_173215 : UInt<0>[1]
+ T_173215[0] := UInt<0>(0)
+ wire T_173216 : UInt<2>[2]
+ T_173216[0] := UInt<2>(1)
+ T_173216[1] := UInt<2>(2)
+ wire T_173217 : UInt<2>[2]
+ T_173217[0] := UInt<2>(1)
+ T_173217[1] := UInt<2>(2)
+ wire T_173218 : UInt<2>[1]
+ T_173218[0] := UInt<2>(2)
+ wire T_173219 : UInt<3>[3]
+ T_173219[0] := UInt<3>(0)
+ T_173219[1] := UInt<3>(1)
+ T_173219[2] := UInt<3>(2)
+ wire T_173220 : UInt<0>[1]
+ T_173220[0] := UInt<0>(0)
+ wire T_173221 : UInt<2>[2]
+ T_173221[0] := UInt<2>(1)
+ T_173221[1] := UInt<2>(2)
+ wire T_173222 : UInt<2>[2]
+ T_173222[0] := UInt<2>(1)
+ T_173222[1] := UInt<2>(2)
+ wire T_173223 : UInt<2>[1]
+ T_173223[0] := UInt<2>(2)
+ wire T_173224 : {addr_block : UInt<26>, client_xact_id : UInt<2>, addr_beat : UInt<2>, data : UInt<128>, is_builtin_type : UInt<1>, a_type : UInt<3>, union : UInt<17>}
+ T_173224 := xact
+ wire T_173225 : UInt<3>[3]
+ T_173225[0] := UInt<3>(0)
+ T_173225[1] := UInt<3>(1)
+ T_173225[2] := UInt<3>(2)
+ wire T_173226 : UInt<2>[2]
+ T_173226[0] := UInt<2>(0)
+ T_173226[1] := UInt<2>(1)
+ wire T_173227 : UInt<2>[3]
+ T_173227[0] := UInt<2>(1)
+ T_173227[1] := UInt<2>(2)
+ T_173227[2] := UInt<2>(3)
+ wire T_173228 : UInt<2>[2]
+ T_173228[0] := UInt<2>(2)
+ T_173228[1] := UInt<2>(3)
+ wire T_173229 : UInt<2>[1]
+ T_173229[0] := UInt<2>(3)
+ wire T_173230 : {addr_block : UInt<26>, client_xact_id : UInt<1>, addr_beat : UInt<2>, data : UInt<128>, is_builtin_type : UInt<1>, a_type : UInt<3>, union : UInt<17>}
+ T_173230 := T_173224
+ when T_173182 : T_173230 := T_173213
+ outer.acquire.bits := T_173230
+ accessor T_173231 = data_buffer[oacq_data_idx]
+ outer.acquire.bits.data := T_173231
+ node T_173232 = eq(state, UInt<4>(7))
+ outer.grant.ready := T_173232
+ wire T_173233 : UInt<3>[3]
+ T_173233[0] := UInt<3>(0)
+ T_173233[1] := UInt<3>(1)
+ T_173233[2] := UInt<3>(2)
+ wire T_173234 : UInt<2>[2]
+ T_173234[0] := UInt<2>(0)
+ T_173234[1] := UInt<2>(1)
+ wire T_173235 : UInt<2>[3]
+ T_173235[0] := UInt<2>(1)
+ T_173235[1] := UInt<2>(2)
+ T_173235[2] := UInt<2>(3)
+ wire T_173236 : UInt<2>[2]
+ T_173236[0] := UInt<2>(2)
+ T_173236[1] := UInt<2>(3)
+ wire T_173237 : UInt<2>[1]
+ T_173237[0] := UInt<2>(3)
+ wire T_173238 : UInt<3>[3]
+ T_173238[0] := UInt<3>(0)
+ T_173238[1] := UInt<3>(1)
+ T_173238[2] := UInt<3>(2)
+ wire T_173239 : UInt<2>[2]
+ T_173239[0] := UInt<2>(0)
+ T_173239[1] := UInt<2>(1)
+ wire T_173240 : UInt<2>[3]
+ T_173240[0] := UInt<2>(1)
+ T_173240[1] := UInt<2>(2)
+ T_173240[2] := UInt<2>(3)
+ wire T_173241 : UInt<2>[2]
+ T_173241[0] := UInt<2>(2)
+ T_173241[1] := UInt<2>(3)
+ wire T_173242 : UInt<2>[1]
+ T_173242[0] := UInt<2>(3)
+ wire T_173243 : UInt<3>[3]
+ T_173243[0] := UInt<3>(0)
+ T_173243[1] := UInt<3>(1)
+ T_173243[2] := UInt<3>(2)
+ wire T_173244 : UInt<2>[2]
+ T_173244[0] := UInt<2>(0)
+ T_173244[1] := UInt<2>(1)
+ wire T_173245 : UInt<2>[3]
+ T_173245[0] := UInt<2>(1)
+ T_173245[1] := UInt<2>(2)
+ T_173245[2] := UInt<2>(3)
+ wire T_173246 : UInt<2>[2]
+ T_173246[0] := UInt<2>(2)
+ T_173246[1] := UInt<2>(3)
+ wire T_173247 : UInt<2>[1]
+ T_173247[0] := UInt<2>(3)
+ wire T_173248 : {sharers : UInt<1>, makeGrant$default$3 : UInt<1>, makeGrant$default$4 : UInt<1>}
+ T_173248.sharers := UInt<1>(0)
+ node T_173249 = eq(xact.a_type, UInt<3>(2))
+ node T_173250 = and(xact.is_builtin_type, T_173249)
+ node T_173251 = eq(xact.a_type, UInt<3>(3))
+ node T_173252 = and(xact.is_builtin_type, T_173251)
+ node T_173253 = or(T_173250, T_173252)
+ node T_173254 = bits(xact.union, 5, 1)
+ wire T_173255 : UInt<5>
+ T_173255 := T_173254
+ when T_173253 : T_173255 := UInt<5>(1)
+ node T_173256 = eq(T_173255, UInt<5>(1))
+ node T_173257 = eq(T_173255, UInt<5>(7))
+ node T_173258 = or(T_173256, T_173257)
+ node T_173259 = bit(T_173255, 3)
+ node T_173260 = eq(T_173255, UInt<5>(4))
+ node T_173261 = or(T_173259, T_173260)
+ node T_173262 = or(T_173258, T_173261)
+ wire T_173263 : UInt<2>
+ T_173263 := UInt<2>(1)
+ when T_173262 : T_173263 := UInt<2>(2)
+ wire T_173264 : UInt<2>
+ T_173264 := T_173263
+ when outer.grant.bits.is_builtin_type : T_173264 := UInt<2>(0)
+ wire T_173265 : UInt<3>[3]
+ T_173265[0] := UInt<3>(0)
+ T_173265[1] := UInt<3>(1)
+ T_173265[2] := UInt<3>(2)
+ wire T_173266 : UInt<0>[1]
+ T_173266[0] := UInt<0>(0)
+ wire T_173267 : UInt<2>[2]
+ T_173267[0] := UInt<2>(1)
+ T_173267[1] := UInt<2>(2)
+ wire T_173268 : UInt<2>[2]
+ T_173268[0] := UInt<2>(1)
+ T_173268[1] := UInt<2>(2)
+ wire T_173269 : UInt<2>[1]
+ T_173269[0] := UInt<2>(2)
+ wire T_173270 : UInt<3>[3]
+ T_173270[0] := UInt<3>(0)
+ T_173270[1] := UInt<3>(1)
+ T_173270[2] := UInt<3>(2)
+ wire T_173271 : UInt<0>[1]
+ T_173271[0] := UInt<0>(0)
+ wire T_173272 : UInt<2>[2]
+ T_173272[0] := UInt<2>(1)
+ T_173272[1] := UInt<2>(2)
+ wire T_173273 : UInt<2>[2]
+ T_173273[0] := UInt<2>(1)
+ T_173273[1] := UInt<2>(2)
+ wire T_173274 : UInt<2>[1]
+ T_173274[0] := UInt<2>(2)
+ wire T_173275 : {state : UInt<2>, makeRelease$default$2 : UInt<1>, makeRelease$default$3 : UInt<1>, makeVoluntaryRelease$default$4 : UInt<1>, makeVoluntaryRelease$default$5 : UInt<1>, makeVoluntaryWriteback$default$3 : UInt<1>, makeVoluntaryWriteback$default$4 : UInt<1>}
+ T_173275.state := T_173264
+ wire T_173276 : UInt<3>[3]
+ T_173276[0] := UInt<3>(0)
+ T_173276[1] := UInt<3>(1)
+ T_173276[2] := UInt<3>(2)
+ wire T_173277 : UInt<2>[2]
+ T_173277[0] := UInt<2>(0)
+ T_173277[1] := UInt<2>(1)
+ wire T_173278 : UInt<2>[3]
+ T_173278[0] := UInt<2>(1)
+ T_173278[1] := UInt<2>(2)
+ T_173278[2] := UInt<2>(3)
+ wire T_173279 : UInt<2>[2]
+ T_173279[0] := UInt<2>(2)
+ T_173279[1] := UInt<2>(3)
+ wire T_173280 : UInt<2>[1]
+ T_173280[0] := UInt<2>(3)
+ wire T_173281 : UInt<3>[3]
+ T_173281[0] := UInt<3>(0)
+ T_173281[1] := UInt<3>(1)
+ T_173281[2] := UInt<3>(2)
+ wire T_173282 : UInt<2>[2]
+ T_173282[0] := UInt<2>(0)
+ T_173282[1] := UInt<2>(1)
+ wire T_173283 : UInt<2>[3]
+ T_173283[0] := UInt<2>(1)
+ T_173283[1] := UInt<2>(2)
+ T_173283[2] := UInt<2>(3)
+ wire T_173284 : UInt<2>[2]
+ T_173284[0] := UInt<2>(2)
+ T_173284[1] := UInt<2>(3)
+ wire T_173285 : UInt<2>[1]
+ T_173285[0] := UInt<2>(3)
+ wire T_173286 : UInt<3>[3]
+ T_173286[0] := UInt<3>(0)
+ T_173286[1] := UInt<3>(1)
+ T_173286[2] := UInt<3>(2)
+ wire T_173287 : UInt<0>[1]
+ T_173287[0] := UInt<0>(0)
+ wire T_173288 : UInt<2>[2]
+ T_173288[0] := UInt<2>(1)
+ T_173288[1] := UInt<2>(2)
+ wire T_173289 : UInt<2>[2]
+ T_173289[0] := UInt<2>(1)
+ T_173289[1] := UInt<2>(2)
+ wire T_173290 : UInt<2>[1]
+ T_173290[0] := UInt<2>(2)
+ wire T_173291 : UInt<3>[3]
+ T_173291[0] := UInt<3>(0)
+ T_173291[1] := UInt<3>(1)
+ T_173291[2] := UInt<3>(2)
+ wire T_173292 : UInt<2>[2]
+ T_173292[0] := UInt<2>(0)
+ T_173292[1] := UInt<2>(1)
+ wire T_173293 : UInt<2>[3]
+ T_173293[0] := UInt<2>(1)
+ T_173293[1] := UInt<2>(2)
+ T_173293[2] := UInt<2>(3)
+ wire T_173294 : UInt<2>[2]
+ T_173294[0] := UInt<2>(2)
+ T_173294[1] := UInt<2>(3)
+ wire T_173295 : UInt<2>[1]
+ T_173295[0] := UInt<2>(3)
+ wire T_173296 : UInt<3>[3]
+ T_173296[0] := UInt<3>(0)
+ T_173296[1] := UInt<3>(1)
+ T_173296[2] := UInt<3>(2)
+ wire T_173297 : UInt<2>[2]
+ T_173297[0] := UInt<2>(0)
+ T_173297[1] := UInt<2>(1)
+ wire T_173298 : UInt<2>[3]
+ T_173298[0] := UInt<2>(1)
+ T_173298[1] := UInt<2>(2)
+ T_173298[2] := UInt<2>(3)
+ wire T_173299 : UInt<2>[2]
+ T_173299[0] := UInt<2>(2)
+ T_173299[1] := UInt<2>(3)
+ wire T_173300 : UInt<2>[1]
+ T_173300[0] := UInt<2>(3)
+ wire T_173301 : UInt<3>[3]
+ T_173301[0] := UInt<3>(0)
+ T_173301[1] := UInt<3>(1)
+ T_173301[2] := UInt<3>(2)
+ wire T_173302 : UInt<0>[1]
+ T_173302[0] := UInt<0>(0)
+ wire T_173303 : UInt<2>[2]
+ T_173303[0] := UInt<2>(1)
+ T_173303[1] := UInt<2>(2)
+ wire T_173304 : UInt<2>[2]
+ T_173304[0] := UInt<2>(1)
+ T_173304[1] := UInt<2>(2)
+ wire T_173305 : UInt<2>[1]
+ T_173305[0] := UInt<2>(2)
+ wire pending_coh_on_ognt : {inner : {sharers : UInt<1>, makeGrant$default$3 : UInt<1>, makeGrant$default$4 : UInt<1>}, outer : {state : UInt<2>, makeRelease$default$2 : UInt<1>, makeRelease$default$3 : UInt<1>, makeVoluntaryRelease$default$4 : UInt<1>, makeVoluntaryRelease$default$5 : UInt<1>, makeVoluntaryWriteback$default$3 : UInt<1>, makeVoluntaryWriteback$default$4 : UInt<1>}}
+ pending_coh_on_ognt.inner := T_173248
+ pending_coh_on_ognt.outer := T_173275
+
+
+ node T_173306 = eq(pending_coh.inner.sharers, pending_coh_on_ognt.inner.sharers)
+ node T_173307 = eq(pending_coh.outer.state, pending_coh_on_ognt.outer.state)
+ node T_173308 = and(T_173306, T_173307)
+ node T_173309 = eq(T_173308, UInt<1>(0))
+ node T_173310 = and(ognt_data_done, T_173309)
+ when T_173310 :
+ pending_meta_write := UInt<1>(1)
+ pending_coh := pending_coh_on_ognt
+
+
+ node T_173311 = and(outer.grant.ready, outer.grant.valid)
+ wire T_173312 : UInt<3>[2]
+ T_173312[0] := UInt<3>(5)
+ T_173312[1] := UInt<3>(4)
+ node T_173313 = eq(T_173312[0], outer.grant.bits.g_type)
+ node T_173314 = eq(T_173312[1], outer.grant.bits.g_type)
+ node T_173315 = or(UInt<1>(0), T_173313)
+ node T_173316 = or(T_173315, T_173314)
+ node T_173317 = eq(T_172503[0], outer.grant.bits.g_type)
+ node T_173318 = or(UInt<1>(0), T_173317)
+ wire T_173319 : UInt<1>
+ T_173319 := T_173318
+ when outer.grant.bits.is_builtin_type : T_173319 := T_173316
+ node T_173320 = and(T_173311, T_173319)
+ when T_173320 :
+ accessor T_173321 = data_buffer[outer.grant.bits.addr_beat]
+ node T_173322 = bits(xact.union, 12, 9)
+ node T_173323 = bits(T_173322, 3, 3)
+ node T_173324 = mul(UInt<7>(64), T_173323)
+ node T_173325 = dshr(outer.grant.bits.data, T_173324)
+ amoalu.lhs := T_173325
+ node T_173326 = bits(xact.union, 12, 9)
+ node T_173327 = bits(T_173326, 3, 3)
+ node T_173328 = mul(UInt<7>(64), T_173327)
+ node T_173329 = dshr(T_173321, T_173328)
+ amoalu.rhs := T_173329
+ accessor T_173330 = wmask_buffer[outer.grant.bits.addr_beat]
+ node T_173331 = bit(T_173330, 0)
+ node T_173332 = bit(T_173330, 1)
+ node T_173333 = bit(T_173330, 2)
+ node T_173334 = bit(T_173330, 3)
+ node T_173335 = bit(T_173330, 4)
+ node T_173336 = bit(T_173330, 5)
+ node T_173337 = bit(T_173330, 6)
+ node T_173338 = bit(T_173330, 7)
+ node T_173339 = bit(T_173330, 8)
+ node T_173340 = bit(T_173330, 9)
+ node T_173341 = bit(T_173330, 10)
+ node T_173342 = bit(T_173330, 11)
+ node T_173343 = bit(T_173330, 12)
+ node T_173344 = bit(T_173330, 13)
+ node T_173345 = bit(T_173330, 14)
+ node T_173346 = bit(T_173330, 15)
+ wire T_173347 : UInt<1>[16]
+ T_173347[0] := T_173331
+ T_173347[1] := T_173332
+ T_173347[2] := T_173333
+ T_173347[3] := T_173334
+ T_173347[4] := T_173335
+ T_173347[5] := T_173336
+ T_173347[6] := T_173337
+ T_173347[7] := T_173338
+ T_173347[8] := T_173339
+ T_173347[9] := T_173340
+ T_173347[10] := T_173341
+ T_173347[11] := T_173342
+ T_173347[12] := T_173343
+ T_173347[13] := T_173344
+ T_173347[14] := T_173345
+ T_173347[15] := T_173346
+ node T_173348 = subw(UInt<8>(0), UInt<4>(8))
+ node T_173349 = subw(UInt<8>(0), UInt<4>(8))
+ node T_173350 = subw(UInt<8>(0), UInt<4>(8))
+ node T_173351 = subw(UInt<8>(0), UInt<4>(8))
+ node T_173352 = subw(UInt<8>(0), UInt<4>(8))
+ node T_173353 = subw(UInt<8>(0), UInt<4>(8))
+ node T_173354 = subw(UInt<8>(0), UInt<4>(8))
+ node T_173355 = subw(UInt<8>(0), UInt<4>(8))
+ node T_173356 = subw(UInt<8>(0), UInt<4>(8))
+ node T_173357 = subw(UInt<8>(0), UInt<4>(8))
+ node T_173358 = subw(UInt<8>(0), UInt<4>(8))
+ node T_173359 = subw(UInt<8>(0), UInt<4>(8))
+ node T_173360 = subw(UInt<8>(0), UInt<4>(8))
+ node T_173361 = subw(UInt<8>(0), UInt<4>(8))
+ node T_173362 = subw(UInt<8>(0), UInt<4>(8))
+ node T_173363 = subw(UInt<8>(0), UInt<4>(8))
+ wire T_173364 : UInt<8>[16]
+ T_173364[0] := T_173348
+ T_173364[1] := T_173349
+ T_173364[2] := T_173350
+ T_173364[3] := T_173351
+ T_173364[4] := T_173352
+ T_173364[5] := T_173353
+ T_173364[6] := T_173354
+ T_173364[7] := T_173355
+ T_173364[8] := T_173356
+ T_173364[9] := T_173357
+ T_173364[10] := T_173358
+ T_173364[11] := T_173359
+ T_173364[12] := T_173360
+ T_173364[13] := T_173361
+ T_173364[14] := T_173362
+ T_173364[15] := T_173363
+ node T_173365 = cat(T_173364[15], T_173364[14])
+ node T_173366 = cat(T_173364[13], T_173364[12])
+ node T_173367 = cat(T_173365, T_173366)
+ node T_173368 = cat(T_173364[11], T_173364[10])
+ node T_173369 = cat(T_173364[9], T_173364[8])
+ node T_173370 = cat(T_173368, T_173369)
+ node T_173371 = cat(T_173367, T_173370)
+ node T_173372 = cat(T_173364[7], T_173364[6])
+ node T_173373 = cat(T_173364[5], T_173364[4])
+ node T_173374 = cat(T_173372, T_173373)
+ node T_173375 = cat(T_173364[3], T_173364[2])
+ node T_173376 = cat(T_173364[1], T_173364[0])
+ node T_173377 = cat(T_173375, T_173376)
+ node T_173378 = cat(T_173374, T_173377)
+ node T_173379 = cat(T_173371, T_173378)
+ accessor T_173380 = data_buffer[outer.grant.bits.addr_beat]
+ node T_173381 = not(T_173379)
+ node T_173382 = and(T_173381, outer.grant.bits.data)
+ node T_173383 = eq(xact.a_type, UInt<3>(4))
+ node T_173384 = and(xact.is_builtin_type, T_173383)
+ node T_173385 = bits(xact.union, 12, 9)
+ node T_173386 = bits(T_173385, 3, 3)
+ node T_173387 = mul(UInt<7>(64), T_173386)
+ node T_173388 = dshl(amoalu.out, T_173387)
+ wire T_173389 : UInt<128>
+ T_173389 := T_173321
+ when T_173384 : T_173389 := T_173388
+ node T_173390 = and(T_173379, T_173389)
+ node T_173391 = or(T_173382, T_173390)
+ T_173380 := T_173391
+ accessor T_173392 = wmask_buffer[outer.grant.bits.addr_beat]
+ T_173392 := SInt<1>(-1)
+
+
+ node T_173393 = eq(xact.a_type, UInt<3>(4))
+ node T_173394 = eq(xact.addr_beat, outer.grant.bits.addr_beat)
+ node T_173395 = and(T_173393, T_173394)
+ when T_173395 : xact.data := outer.grant.bits.data
+ node T_173396 = and(inner.release.ready, inner.release.valid)
+ node T_173397 = eq(T_172476[0], inner.release.bits.r_type)
+ node T_173398 = eq(T_172476[1], inner.release.bits.r_type)
+ node T_173399 = eq(T_172476[2], inner.release.bits.r_type)
+ node T_173400 = or(UInt<1>(0), T_173397)
+ node T_173401 = or(T_173400, T_173398)
+ node T_173402 = or(T_173401, T_173399)
+ node T_173403 = and(T_173396, T_173402)
+ node T_173404 = subw(UInt<4>(0), UInt<3>(4))
+ node T_173405 = dshl(UInt<1>(1), inner.release.bits.addr_beat)
+ node T_173406 = and(T_173404, T_173405)
+ node T_173407 = or(pending_ignt_data, T_173406)
+ node T_173408 = and(outer.grant.ready, outer.grant.valid)
+ wire T_173409 : UInt<3>[2]
+ T_173409[0] := UInt<3>(5)
+ T_173409[1] := UInt<3>(4)
+ node T_173410 = eq(T_173409[0], outer.grant.bits.g_type)
+ node T_173411 = eq(T_173409[1], outer.grant.bits.g_type)
+ node T_173412 = or(UInt<1>(0), T_173410)
+ node T_173413 = or(T_173412, T_173411)
+ node T_173414 = eq(T_172503[0], outer.grant.bits.g_type)
+ node T_173415 = or(UInt<1>(0), T_173414)
+ wire T_173416 : UInt<1>
+ T_173416 := T_173415
+ when outer.grant.bits.is_builtin_type : T_173416 := T_173413
+ node T_173417 = and(T_173408, T_173416)
+ node T_173418 = subw(UInt<4>(0), UInt<3>(4))
+ node T_173419 = dshl(UInt<1>(1), outer.grant.bits.addr_beat)
+ node T_173420 = and(T_173418, T_173419)
+ node T_173421 = or(T_173407, T_173420)
+ node T_173422 = subw(UInt<4>(0), UInt<3>(4))
+ node T_173423 = dshl(UInt<1>(1), data.resp.bits.addr_beat)
+ node T_173424 = and(T_173422, T_173423)
+ node T_173425 = or(T_173421, T_173424)
+ pending_ignt_data := T_173425
+ ignt_q.deq.ready := ignt_data_done
+ node T_173426 = eq(state, UInt<4>(7))
+ node T_173427 = and(T_173426, ignt_q.deq.valid)
+ wire T_173428 : UInt<3>[2]
+ T_173428[0] := UInt<3>(5)
+ T_173428[1] := UInt<3>(4)
+ node T_173429 = eq(T_173428[0], inner.grant.bits.g_type)
+ node T_173430 = eq(T_173428[1], inner.grant.bits.g_type)
+ node T_173431 = or(UInt<1>(0), T_173429)
+ node T_173432 = or(T_173431, T_173430)
+ node T_173433 = eq(T_172447[0], inner.grant.bits.g_type)
+ node T_173434 = eq(T_172447[1], inner.grant.bits.g_type)
+ node T_173435 = or(UInt<1>(0), T_173433)
+ node T_173436 = or(T_173435, T_173434)
+ wire T_173437 : UInt<1>
+ T_173437 := T_173436
+ when inner.grant.bits.is_builtin_type : T_173437 := T_173432
+ node T_173438 = eq(T_173437, UInt<1>(0))
+ node T_173439 = dshr(pending_ignt_data, ignt_data_idx)
+ node T_173440 = bit(T_173439, 0)
+ node T_173441 = or(T_173438, T_173440)
+ node T_173442 = and(T_173427, T_173441)
+ inner.grant.valid := T_173442
+ node T_173443 = eq(xact.a_type, UInt<3>(4))
+ accessor T_173444 = data_buffer[ignt_data_idx]
+ wire T_173445 : UInt<128>
+ T_173445 := T_173444
+ when T_173443 : T_173445 := xact.data
+ node T_173446 = eq(UInt<3>(5), xact.a_type)
+ wire T_173447 : UInt<3>
+ T_173447 := UInt<3>(3)
+ when T_173446 : T_173447 := UInt<3>(1)
+ node T_173448 = eq(UInt<3>(4), xact.a_type)
+ wire T_173449 : UInt<3>
+ T_173449 := T_173447
+ when T_173448 : T_173449 := UInt<3>(4)
+ node T_173450 = eq(UInt<3>(3), xact.a_type)
+ wire T_173451 : UInt<3>
+ T_173451 := T_173449
+ when T_173450 : T_173451 := UInt<3>(3)
+ node T_173452 = eq(UInt<3>(2), xact.a_type)
+ wire T_173453 : UInt<3>
+ T_173453 := T_173451
+ when T_173452 : T_173453 := UInt<3>(3)
+ node T_173454 = eq(UInt<3>(1), xact.a_type)
+ wire T_173455 : UInt<3>
+ T_173455 := T_173453
+ when T_173454 : T_173455 := UInt<3>(5)
+ node T_173456 = eq(UInt<3>(0), xact.a_type)
+ wire T_173457 : UInt<3>
+ T_173457 := T_173455
+ when T_173456 : T_173457 := UInt<3>(4)
+ node T_173458 = eq(xact.a_type, UInt<1>(0))
+ node T_173459 = eq(pending_coh.inner.sharers, UInt<1>(0))
+ node T_173460 = eq(T_173459, UInt<1>(0))
+ wire T_173461 : UInt<2>
+ T_173461 := UInt<2>(1)
+ when T_173460 : T_173461 := UInt<2>(0)
+ wire T_173462 : UInt<2>
+ T_173462 := UInt<2>(1)
+ when T_173458 : T_173462 := T_173461
+ wire T_173463 : UInt<2>
+ T_173463 := T_173462
+ when xact.is_builtin_type : T_173463 := T_173457
+ wire T_173464 : UInt<3>[3]
+ T_173464[0] := UInt<3>(0)
+ T_173464[1] := UInt<3>(1)
+ T_173464[2] := UInt<3>(2)
+ wire T_173465 : UInt<2>[2]
+ T_173465[0] := UInt<2>(0)
+ T_173465[1] := UInt<2>(1)
+ wire T_173466 : UInt<2>[3]
+ T_173466[0] := UInt<2>(1)
+ T_173466[1] := UInt<2>(2)
+ T_173466[2] := UInt<2>(3)
+ wire T_173467 : UInt<2>[2]
+ T_173467[0] := UInt<2>(2)
+ T_173467[1] := UInt<2>(3)
+ wire T_173468 : UInt<2>[1]
+ T_173468[0] := UInt<2>(3)
+ wire T_173469 : UInt<3>[3]
+ T_173469[0] := UInt<3>(0)
+ T_173469[1] := UInt<3>(1)
+ T_173469[2] := UInt<3>(2)
+ wire T_173470 : UInt<2>[2]
+ T_173470[0] := UInt<2>(0)
+ T_173470[1] := UInt<2>(1)
+ wire T_173471 : UInt<2>[3]
+ T_173471[0] := UInt<2>(1)
+ T_173471[1] := UInt<2>(2)
+ T_173471[2] := UInt<2>(3)
+ wire T_173472 : UInt<2>[2]
+ T_173472[0] := UInt<2>(2)
+ T_173472[1] := UInt<2>(3)
+ wire T_173473 : UInt<2>[1]
+ T_173473[0] := UInt<2>(3)
+ wire T_173474 : {addr_beat : UInt<2>, data : UInt<128>, client_xact_id : UInt<1>, manager_xact_id : UInt<2>, is_builtin_type : UInt<1>, g_type : UInt<4>, client_id : UInt<2>}
+ T_173474.client_id := xact.client_id
+ T_173474.is_builtin_type := xact.is_builtin_type
+ T_173474.g_type := T_173463
+ T_173474.client_xact_id := xact.client_xact_id
+ T_173474.manager_xact_id := UInt<1>(1)
+ T_173474.addr_beat := ignt_q.deq.bits.addr_beat
+ T_173474.data := T_173445
+ T_173474.client_xact_id := ignt_q.deq.bits.client_xact_id
+ inner.grant.bits := T_173474
+ inner.grant.bits.addr_beat := ignt_data_idx
+ node T_173475 = dshl(UInt<1>(1), inner.grant.bits.client_id)
+ node T_173476 = or(pending_coh.inner.sharers, T_173475)
+ wire T_173477 : UInt<5>
+ T_173477 := T_173476
+ when inner.grant.bits.is_builtin_type : T_173477 := pending_coh.inner.sharers
+ wire T_173478 : UInt<3>[3]
+ T_173478[0] := UInt<3>(0)
+ T_173478[1] := UInt<3>(1)
+ T_173478[2] := UInt<3>(2)
+ wire T_173479 : UInt<2>[2]
+ T_173479[0] := UInt<2>(0)
+ T_173479[1] := UInt<2>(1)
+ wire T_173480 : UInt<2>[3]
+ T_173480[0] := UInt<2>(1)
+ T_173480[1] := UInt<2>(2)
+ T_173480[2] := UInt<2>(3)
+ wire T_173481 : UInt<2>[2]
+ T_173481[0] := UInt<2>(2)
+ T_173481[1] := UInt<2>(3)
+ wire T_173482 : UInt<2>[1]
+ T_173482[0] := UInt<2>(3)
+ wire T_173483 : UInt<3>[3]
+ T_173483[0] := UInt<3>(0)
+ T_173483[1] := UInt<3>(1)
+ T_173483[2] := UInt<3>(2)
+ wire T_173484 : UInt<2>[2]
+ T_173484[0] := UInt<2>(0)
+ T_173484[1] := UInt<2>(1)
+ wire T_173485 : UInt<2>[3]
+ T_173485[0] := UInt<2>(1)
+ T_173485[1] := UInt<2>(2)
+ T_173485[2] := UInt<2>(3)
+ wire T_173486 : UInt<2>[2]
+ T_173486[0] := UInt<2>(2)
+ T_173486[1] := UInt<2>(3)
+ wire T_173487 : UInt<2>[1]
+ T_173487[0] := UInt<2>(3)
+ wire T_173488 : {sharers : UInt<1>, makeGrant$default$3 : UInt<1>, makeGrant$default$4 : UInt<1>}
+ T_173488.sharers := T_173477
+ wire T_173489 : UInt<3>[3]
+ T_173489[0] := UInt<3>(0)
+ T_173489[1] := UInt<3>(1)
+ T_173489[2] := UInt<3>(2)
+ wire T_173490 : UInt<2>[2]
+ T_173490[0] := UInt<2>(0)
+ T_173490[1] := UInt<2>(1)
+ wire T_173491 : UInt<2>[3]
+ T_173491[0] := UInt<2>(1)
+ T_173491[1] := UInt<2>(2)
+ T_173491[2] := UInt<2>(3)
+ wire T_173492 : UInt<2>[2]
+ T_173492[0] := UInt<2>(2)
+ T_173492[1] := UInt<2>(3)
+ wire T_173493 : UInt<2>[1]
+ T_173493[0] := UInt<2>(3)
+ wire T_173494 : {state : UInt<2>, makeRelease$default$2 : UInt<1>, makeRelease$default$3 : UInt<1>, makeVoluntaryRelease$default$4 : UInt<1>, makeVoluntaryRelease$default$5 : UInt<1>, makeVoluntaryWriteback$default$3 : UInt<1>, makeVoluntaryWriteback$default$4 : UInt<1>}
+ T_173494 := pending_coh.outer
+ when ognt_data_done : T_173494 := pending_coh_on_ognt.outer
+ wire T_173495 : UInt<3>[3]
+ T_173495[0] := UInt<3>(0)
+ T_173495[1] := UInt<3>(1)
+ T_173495[2] := UInt<3>(2)
+ wire T_173496 : UInt<2>[2]
+ T_173496[0] := UInt<2>(0)
+ T_173496[1] := UInt<2>(1)
+ wire T_173497 : UInt<2>[3]
+ T_173497[0] := UInt<2>(1)
+ T_173497[1] := UInt<2>(2)
+ T_173497[2] := UInt<2>(3)
+ wire T_173498 : UInt<2>[2]
+ T_173498[0] := UInt<2>(2)
+ T_173498[1] := UInt<2>(3)
+ wire T_173499 : UInt<2>[1]
+ T_173499[0] := UInt<2>(3)
+ wire T_173500 : UInt<3>[3]
+ T_173500[0] := UInt<3>(0)
+ T_173500[1] := UInt<3>(1)
+ T_173500[2] := UInt<3>(2)
+ wire T_173501 : UInt<2>[2]
+ T_173501[0] := UInt<2>(0)
+ T_173501[1] := UInt<2>(1)
+ wire T_173502 : UInt<2>[3]
+ T_173502[0] := UInt<2>(1)
+ T_173502[1] := UInt<2>(2)
+ T_173502[2] := UInt<2>(3)
+ wire T_173503 : UInt<2>[2]
+ T_173503[0] := UInt<2>(2)
+ T_173503[1] := UInt<2>(3)
+ wire T_173504 : UInt<2>[1]
+ T_173504[0] := UInt<2>(3)
+ wire T_173505 : UInt<3>[3]
+ T_173505[0] := UInt<3>(0)
+ T_173505[1] := UInt<3>(1)
+ T_173505[2] := UInt<3>(2)
+ wire T_173506 : UInt<0>[1]
+ T_173506[0] := UInt<0>(0)
+ wire T_173507 : UInt<2>[2]
+ T_173507[0] := UInt<2>(1)
+ T_173507[1] := UInt<2>(2)
+ wire T_173508 : UInt<2>[2]
+ T_173508[0] := UInt<2>(1)
+ T_173508[1] := UInt<2>(2)
+ wire T_173509 : UInt<2>[1]
+ T_173509[0] := UInt<2>(2)
+ wire T_173510 : UInt<3>[3]
+ T_173510[0] := UInt<3>(0)
+ T_173510[1] := UInt<3>(1)
+ T_173510[2] := UInt<3>(2)
+ wire T_173511 : UInt<2>[2]
+ T_173511[0] := UInt<2>(0)
+ T_173511[1] := UInt<2>(1)
+ wire T_173512 : UInt<2>[3]
+ T_173512[0] := UInt<2>(1)
+ T_173512[1] := UInt<2>(2)
+ T_173512[2] := UInt<2>(3)
+ wire T_173513 : UInt<2>[2]
+ T_173513[0] := UInt<2>(2)
+ T_173513[1] := UInt<2>(3)
+ wire T_173514 : UInt<2>[1]
+ T_173514[0] := UInt<2>(3)
+ wire T_173515 : UInt<3>[3]
+ T_173515[0] := UInt<3>(0)
+ T_173515[1] := UInt<3>(1)
+ T_173515[2] := UInt<3>(2)
+ wire T_173516 : UInt<2>[2]
+ T_173516[0] := UInt<2>(0)
+ T_173516[1] := UInt<2>(1)
+ wire T_173517 : UInt<2>[3]
+ T_173517[0] := UInt<2>(1)
+ T_173517[1] := UInt<2>(2)
+ T_173517[2] := UInt<2>(3)
+ wire T_173518 : UInt<2>[2]
+ T_173518[0] := UInt<2>(2)
+ T_173518[1] := UInt<2>(3)
+ wire T_173519 : UInt<2>[1]
+ T_173519[0] := UInt<2>(3)
+ wire T_173520 : UInt<3>[3]
+ T_173520[0] := UInt<3>(0)
+ T_173520[1] := UInt<3>(1)
+ T_173520[2] := UInt<3>(2)
+ wire T_173521 : UInt<0>[1]
+ T_173521[0] := UInt<0>(0)
+ wire T_173522 : UInt<2>[2]
+ T_173522[0] := UInt<2>(1)
+ T_173522[1] := UInt<2>(2)
+ wire T_173523 : UInt<2>[2]
+ T_173523[0] := UInt<2>(1)
+ T_173523[1] := UInt<2>(2)
+ wire T_173524 : UInt<2>[1]
+ T_173524[0] := UInt<2>(2)
+ wire pending_coh_on_ignt : {inner : {sharers : UInt<1>, makeGrant$default$3 : UInt<1>, makeGrant$default$4 : UInt<1>}, outer : {state : UInt<2>, makeRelease$default$2 : UInt<1>, makeRelease$default$3 : UInt<1>, makeVoluntaryRelease$default$4 : UInt<1>, makeVoluntaryRelease$default$5 : UInt<1>, makeVoluntaryWriteback$default$3 : UInt<1>, makeVoluntaryWriteback$default$4 : UInt<1>}}
+ pending_coh_on_ignt.inner := T_173488
+ pending_coh_on_ignt.outer := T_173494
+ node T_173525 = and(inner.grant.ready, inner.grant.valid)
+
+
+ node T_173526 = eq(pending_coh.inner.sharers, pending_coh_on_ignt.inner.sharers)
+ node T_173527 = eq(pending_coh.outer.state, pending_coh_on_ignt.outer.state)
+ node T_173528 = and(T_173526, T_173527)
+ node T_173529 = eq(T_173528, UInt<1>(0))
+ node T_173530 = and(T_173525, T_173529)
+ when T_173530 :
+ pending_meta_write := UInt<1>(1)
+ pending_coh := pending_coh_on_ignt
+ node T_173531 = eq(state, UInt<4>(7))
+ inner.finish.ready := T_173531
+ node T_173532 = and(data.read.ready, data.read.valid)
+ node T_173533 = subw(UInt<4>(0), UInt<3>(4))
+ node T_173534 = not(T_173533)
+ node T_173535 = dshl(UInt<1>(1), data.read.bits.addr_beat)
+ node T_173536 = not(T_173535)
+ node T_173537 = or(T_173534, T_173536)
+ node T_173538 = and(pending_reads, T_173537)
+ node T_173539 = and(inner.release.ready, inner.release.valid)
+ node T_173540 = eq(T_172476[0], inner.release.bits.r_type)
+ node T_173541 = eq(T_172476[1], inner.release.bits.r_type)
+ node T_173542 = eq(T_172476[2], inner.release.bits.r_type)
+ node T_173543 = or(UInt<1>(0), T_173540)
+ node T_173544 = or(T_173543, T_173541)
+ node T_173545 = or(T_173544, T_173542)
+ node T_173546 = and(T_173539, T_173545)
+ node T_173547 = subw(UInt<4>(0), UInt<3>(4))
+ node T_173548 = not(T_173547)
+ node T_173549 = dshl(UInt<1>(1), inner.release.bits.addr_beat)
+ node T_173550 = not(T_173549)
+ node T_173551 = or(T_173548, T_173550)
+ node T_173552 = and(T_173538, T_173551)
+ node T_173553 = and(outer.grant.ready, outer.grant.valid)
+ wire T_173554 : UInt<3>[2]
+ T_173554[0] := UInt<3>(5)
+ T_173554[1] := UInt<3>(4)
+ node T_173555 = eq(T_173554[0], outer.grant.bits.g_type)
+ node T_173556 = eq(T_173554[1], outer.grant.bits.g_type)
+ node T_173557 = or(UInt<1>(0), T_173555)
+ node T_173558 = or(T_173557, T_173556)
+ node T_173559 = eq(T_172503[0], outer.grant.bits.g_type)
+ node T_173560 = or(UInt<1>(0), T_173559)
+ wire T_173561 : UInt<1>
+ T_173561 := T_173560
+ when outer.grant.bits.is_builtin_type : T_173561 := T_173558
+ node T_173562 = and(T_173553, T_173561)
+ node T_173563 = subw(UInt<4>(0), UInt<3>(4))
+ node T_173564 = not(T_173563)
+ node T_173565 = dshl(UInt<1>(1), outer.grant.bits.addr_beat)
+ node T_173566 = not(T_173565)
+ node T_173567 = or(T_173564, T_173566)
+ node T_173568 = and(T_173552, T_173567)
+ wire T_173569 : UInt<3>[3]
+ T_173569[0] := UInt<3>(0)
+ T_173569[1] := UInt<3>(1)
+ T_173569[2] := UInt<3>(4)
+ node T_173570 = eq(T_173569[0], inner.acquire.bits.a_type)
+ node T_173571 = eq(T_173569[1], inner.acquire.bits.a_type)
+ node T_173572 = eq(T_173569[2], inner.acquire.bits.a_type)
+ node T_173573 = or(UInt<1>(0), T_173570)
+ node T_173574 = or(T_173573, T_173571)
+ node T_173575 = or(T_173574, T_173572)
+ node T_173576 = and(inner.acquire.bits.is_builtin_type, T_173575)
+ node T_173577 = and(inner.acquire.ready, inner.acquire.valid)
+ node T_173578 = and(T_173577, T_173576)
+ node T_173579 = subw(UInt<4>(0), UInt<3>(4))
+ node T_173580 = dshl(UInt<1>(1), inner.acquire.bits.addr_beat)
+ node T_173581 = and(T_173579, T_173580)
+ node T_173582 = or(T_173568, T_173581)
+ node T_173583 = eq(inner.acquire.bits.a_type, UInt<3>(4))
+ node T_173584 = and(inner.acquire.bits.is_builtin_type, T_173583)
+ node T_173585 = bits(inner.acquire.bits.union, 12, 9)
+ node T_173586 = bits(T_173585, 3, 3)
+ node T_173587 = dshl(UInt<1>(1), T_173586)
+ node T_173588 = bit(T_173587, 0)
+ node T_173589 = bit(T_173587, 1)
+ node T_173590 = bit(T_173587, 2)
+ wire T_173591 : UInt<1>[3]
+ T_173591[0] := T_173588
+ T_173591[1] := T_173589
+ T_173591[2] := T_173590
+ node T_173592 = subw(UInt<8>(0), UInt<4>(8))
+ node T_173593 = subw(UInt<8>(0), UInt<4>(8))
+ node T_173594 = subw(UInt<8>(0), UInt<4>(8))
+ wire T_173595 : UInt<8>[3]
+ T_173595[0] := T_173592
+ T_173595[1] := T_173593
+ T_173595[2] := T_173594
+ node T_173596 = cat(T_173595[1], T_173595[0])
+ node T_173597 = cat(T_173595[2], T_173596)
+ node T_173598 = eq(inner.acquire.bits.a_type, UInt<3>(3))
+ node T_173599 = and(inner.acquire.bits.is_builtin_type, T_173598)
+ node T_173600 = eq(inner.acquire.bits.a_type, UInt<3>(2))
+ node T_173601 = and(inner.acquire.bits.is_builtin_type, T_173600)
+ node T_173602 = or(T_173599, T_173601)
+ node T_173603 = bits(inner.acquire.bits.union, 16, 1)
+ wire T_173604 : UInt<16>
+ T_173604 := UInt<16>(0)
+ when T_173602 : T_173604 := T_173603
+ wire T_173605 : UInt<16>
+ T_173605 := T_173604
+ when T_173584 : T_173605 := T_173597
+ wire T_173606 : UInt<3>[3]
+ T_173606[0] := UInt<3>(0)
+ T_173606[1] := UInt<3>(1)
+ T_173606[2] := UInt<3>(2)
+ wire T_173607 : UInt<2>[2]
+ T_173607[0] := UInt<2>(0)
+ T_173607[1] := UInt<2>(1)
+ wire T_173608 : UInt<2>[3]
+ T_173608[0] := UInt<2>(1)
+ T_173608[1] := UInt<2>(2)
+ T_173608[2] := UInt<2>(3)
+ wire T_173609 : UInt<2>[2]
+ T_173609[0] := UInt<2>(2)
+ T_173609[1] := UInt<2>(3)
+ wire T_173610 : UInt<2>[1]
+ T_173610[0] := UInt<2>(3)
+ node T_173611 = asUInt(SInt<16>(-1))
+ node T_173612 = neq(T_173605, T_173611)
+ node T_173613 = and(inner.acquire.ready, inner.acquire.valid)
+ node T_173614 = and(T_173613, T_173612)
+ node T_173615 = and(T_173614, UInt<1>(0))
+ node T_173616 = subw(UInt<4>(0), UInt<3>(4))
+ node T_173617 = dshl(UInt<1>(1), inner.acquire.bits.addr_beat)
+ node T_173618 = and(T_173616, T_173617)
+ node T_173619 = or(T_173582, T_173618)
+ pending_reads := T_173619
+ node T_173620 = bit(pending_reads, 0)
+ node T_173621 = bit(pending_reads, 1)
+ node T_173622 = bit(pending_reads, 2)
+ node T_173623 = bit(pending_reads, 3)
+ wire T_173624 : UInt<1>[4]
+ T_173624[0] := T_173620
+ T_173624[1] := T_173621
+ T_173624[2] := T_173622
+ T_173624[3] := T_173623
+ wire T_173625 : UInt<2>
+ T_173625 := UInt<2>(3)
+ when T_173624[2] : T_173625 := UInt<2>(2)
+ wire T_173626 : UInt<2>
+ T_173626 := T_173625
+ when T_173624[1] : T_173626 := UInt<1>(1)
+ wire curr_read_beat : UInt<2>
+ curr_read_beat := T_173626
+ when T_173624[0] : curr_read_beat := UInt<1>(0)
+ node T_173627 = eq(state, UInt<4>(7))
+ node T_173628 = eq(pending_reads, UInt<1>(0))
+ node T_173629 = eq(T_173628, UInt<1>(0))
+ node T_173630 = and(T_173627, T_173629)
+ node T_173631 = eq(pending_ognt, UInt<1>(0))
+ node T_173632 = and(T_173630, T_173631)
+ data.read.valid := T_173632
+ data.read.bits.id := UInt<1>(1)
+ data.read.bits.way_en := xact_way_en
+ node T_173633 = bits(xact.addr_block, 11, 0)
+ data.read.bits.addr_idx := T_173633
+ data.read.bits.addr_beat := curr_read_beat
+ node T_173634 = subw(UInt<4>(0), UInt<3>(4))
+ node T_173635 = not(T_173634)
+ node T_173636 = dshl(UInt<1>(1), data.resp.bits.addr_beat)
+ node T_173637 = not(T_173636)
+ node T_173638 = or(T_173635, T_173637)
+ node T_173639 = and(pending_resps, T_173638)
+ node T_173640 = and(data.read.ready, data.read.valid)
+ node T_173641 = subw(UInt<4>(0), UInt<3>(4))
+ node T_173642 = dshl(UInt<1>(1), data.read.bits.addr_beat)
+ node T_173643 = and(T_173641, T_173642)
+ node T_173644 = or(T_173639, T_173643)
+ pending_resps := T_173644
+ when data.resp.valid :
+ accessor T_173645 = data_buffer[data.resp.bits.addr_beat]
+ node T_173646 = bits(xact.union, 12, 9)
+ node T_173647 = bits(T_173646, 3, 3)
+ node T_173648 = mul(UInt<7>(64), T_173647)
+ node T_173649 = dshr(data.resp.bits.data, T_173648)
+ amoalu.lhs := T_173649
+ node T_173650 = bits(xact.union, 12, 9)
+ node T_173651 = bits(T_173650, 3, 3)
+ node T_173652 = mul(UInt<7>(64), T_173651)
+ node T_173653 = dshr(T_173645, T_173652)
+ amoalu.rhs := T_173653
+ accessor T_173654 = wmask_buffer[data.resp.bits.addr_beat]
+ node T_173655 = bit(T_173654, 0)
+ node T_173656 = bit(T_173654, 1)
+ node T_173657 = bit(T_173654, 2)
+ node T_173658 = bit(T_173654, 3)
+ node T_173659 = bit(T_173654, 4)
+ node T_173660 = bit(T_173654, 5)
+ node T_173661 = bit(T_173654, 6)
+ node T_173662 = bit(T_173654, 7)
+ node T_173663 = bit(T_173654, 8)
+ node T_173664 = bit(T_173654, 9)
+ node T_173665 = bit(T_173654, 10)
+ node T_173666 = bit(T_173654, 11)
+ node T_173667 = bit(T_173654, 12)
+ node T_173668 = bit(T_173654, 13)
+ node T_173669 = bit(T_173654, 14)
+ node T_173670 = bit(T_173654, 15)
+ wire T_173671 : UInt<1>[16]
+ T_173671[0] := T_173655
+ T_173671[1] := T_173656
+ T_173671[2] := T_173657
+ T_173671[3] := T_173658
+ T_173671[4] := T_173659
+ T_173671[5] := T_173660
+ T_173671[6] := T_173661
+ T_173671[7] := T_173662
+ T_173671[8] := T_173663
+ T_173671[9] := T_173664
+ T_173671[10] := T_173665
+ T_173671[11] := T_173666
+ T_173671[12] := T_173667
+ T_173671[13] := T_173668
+ T_173671[14] := T_173669
+ T_173671[15] := T_173670
+ node T_173672 = subw(UInt<8>(0), UInt<4>(8))
+ node T_173673 = subw(UInt<8>(0), UInt<4>(8))
+ node T_173674 = subw(UInt<8>(0), UInt<4>(8))
+ node T_173675 = subw(UInt<8>(0), UInt<4>(8))
+ node T_173676 = subw(UInt<8>(0), UInt<4>(8))
+ node T_173677 = subw(UInt<8>(0), UInt<4>(8))
+ node T_173678 = subw(UInt<8>(0), UInt<4>(8))
+ node T_173679 = subw(UInt<8>(0), UInt<4>(8))
+ node T_173680 = subw(UInt<8>(0), UInt<4>(8))
+ node T_173681 = subw(UInt<8>(0), UInt<4>(8))
+ node T_173682 = subw(UInt<8>(0), UInt<4>(8))
+ node T_173683 = subw(UInt<8>(0), UInt<4>(8))
+ node T_173684 = subw(UInt<8>(0), UInt<4>(8))
+ node T_173685 = subw(UInt<8>(0), UInt<4>(8))
+ node T_173686 = subw(UInt<8>(0), UInt<4>(8))
+ node T_173687 = subw(UInt<8>(0), UInt<4>(8))
+ wire T_173688 : UInt<8>[16]
+ T_173688[0] := T_173672
+ T_173688[1] := T_173673
+ T_173688[2] := T_173674
+ T_173688[3] := T_173675
+ T_173688[4] := T_173676
+ T_173688[5] := T_173677
+ T_173688[6] := T_173678
+ T_173688[7] := T_173679
+ T_173688[8] := T_173680
+ T_173688[9] := T_173681
+ T_173688[10] := T_173682
+ T_173688[11] := T_173683
+ T_173688[12] := T_173684
+ T_173688[13] := T_173685
+ T_173688[14] := T_173686
+ T_173688[15] := T_173687
+ node T_173689 = cat(T_173688[15], T_173688[14])
+ node T_173690 = cat(T_173688[13], T_173688[12])
+ node T_173691 = cat(T_173689, T_173690)
+ node T_173692 = cat(T_173688[11], T_173688[10])
+ node T_173693 = cat(T_173688[9], T_173688[8])
+ node T_173694 = cat(T_173692, T_173693)
+ node T_173695 = cat(T_173691, T_173694)
+ node T_173696 = cat(T_173688[7], T_173688[6])
+ node T_173697 = cat(T_173688[5], T_173688[4])
+ node T_173698 = cat(T_173696, T_173697)
+ node T_173699 = cat(T_173688[3], T_173688[2])
+ node T_173700 = cat(T_173688[1], T_173688[0])
+ node T_173701 = cat(T_173699, T_173700)
+ node T_173702 = cat(T_173698, T_173701)
+ node T_173703 = cat(T_173695, T_173702)
+ accessor T_173704 = data_buffer[data.resp.bits.addr_beat]
+ node T_173705 = not(T_173703)
+ node T_173706 = and(T_173705, data.resp.bits.data)
+ node T_173707 = eq(xact.a_type, UInt<3>(4))
+ node T_173708 = and(xact.is_builtin_type, T_173707)
+ node T_173709 = bits(xact.union, 12, 9)
+ node T_173710 = bits(T_173709, 3, 3)
+ node T_173711 = mul(UInt<7>(64), T_173710)
+ node T_173712 = dshl(amoalu.out, T_173711)
+ wire T_173713 : UInt<128>
+ T_173713 := T_173645
+ when T_173708 : T_173713 := T_173712
+ node T_173714 = and(T_173703, T_173713)
+ node T_173715 = or(T_173706, T_173714)
+ T_173704 := T_173715
+ accessor T_173716 = wmask_buffer[data.resp.bits.addr_beat]
+ T_173716 := SInt<1>(-1)
+
+
+ node T_173717 = eq(xact.a_type, UInt<3>(4))
+ node T_173718 = eq(xact.addr_beat, data.resp.bits.addr_beat)
+ node T_173719 = and(T_173717, T_173718)
+ when T_173719 : xact.data := data.resp.bits.data
+ node T_173720 = and(data.write.ready, data.write.valid)
+ node T_173721 = subw(UInt<4>(0), UInt<3>(4))
+ node T_173722 = not(T_173721)
+ node T_173723 = dshl(UInt<1>(1), data.write.bits.addr_beat)
+ node T_173724 = not(T_173723)
+ node T_173725 = or(T_173722, T_173724)
+ node T_173726 = and(pending_writes, T_173725)
+ node T_173727 = and(inner.acquire.ready, inner.acquire.valid)
+ wire T_173728 : UInt<3>[3]
+ T_173728[0] := UInt<3>(2)
+ T_173728[1] := UInt<3>(3)
+ T_173728[2] := UInt<3>(4)
+ node T_173729 = eq(T_173728[0], inner.acquire.bits.a_type)
+ node T_173730 = eq(T_173728[1], inner.acquire.bits.a_type)
+ node T_173731 = eq(T_173728[2], inner.acquire.bits.a_type)
+ node T_173732 = or(UInt<1>(0), T_173729)
+ node T_173733 = or(T_173732, T_173730)
+ node T_173734 = or(T_173733, T_173731)
+ node T_173735 = and(inner.acquire.bits.is_builtin_type, T_173734)
+ node T_173736 = and(T_173727, T_173735)
+ node T_173737 = bit(inner.acquire.bits.union, 0)
+ node T_173738 = and(T_173736, T_173737)
+ node T_173739 = subw(UInt<4>(0), UInt<3>(4))
+ node T_173740 = dshl(UInt<1>(1), inner.acquire.bits.addr_beat)
+ node T_173741 = and(T_173739, T_173740)
+ node T_173742 = or(T_173726, T_173741)
+ node T_173743 = and(inner.release.ready, inner.release.valid)
+ node T_173744 = eq(T_172476[0], inner.release.bits.r_type)
+ node T_173745 = eq(T_172476[1], inner.release.bits.r_type)
+ node T_173746 = eq(T_172476[2], inner.release.bits.r_type)
+ node T_173747 = or(UInt<1>(0), T_173744)
+ node T_173748 = or(T_173747, T_173745)
+ node T_173749 = or(T_173748, T_173746)
+ node T_173750 = and(T_173743, T_173749)
+ node T_173751 = subw(UInt<4>(0), UInt<3>(4))
+ node T_173752 = dshl(UInt<1>(1), inner.release.bits.addr_beat)
+ node T_173753 = and(T_173751, T_173752)
+ node T_173754 = or(T_173742, T_173753)
+ node T_173755 = and(outer.grant.ready, outer.grant.valid)
+ wire T_173756 : UInt<3>[2]
+ T_173756[0] := UInt<3>(5)
+ T_173756[1] := UInt<3>(4)
+ node T_173757 = eq(T_173756[0], outer.grant.bits.g_type)
+ node T_173758 = eq(T_173756[1], outer.grant.bits.g_type)
+ node T_173759 = or(UInt<1>(0), T_173757)
+ node T_173760 = or(T_173759, T_173758)
+ node T_173761 = eq(T_172503[0], outer.grant.bits.g_type)
+ node T_173762 = or(UInt<1>(0), T_173761)
+ wire T_173763 : UInt<1>
+ T_173763 := T_173762
+ when outer.grant.bits.is_builtin_type : T_173763 := T_173760
+ node T_173764 = and(T_173755, T_173763)
+ node T_173765 = subw(UInt<4>(0), UInt<3>(4))
+ node T_173766 = dshl(UInt<1>(1), outer.grant.bits.addr_beat)
+ node T_173767 = and(T_173765, T_173766)
+ node T_173768 = or(T_173754, T_173767)
+ pending_writes := T_173768
+ node T_173769 = bit(pending_writes, 0)
+ node T_173770 = bit(pending_writes, 1)
+ node T_173771 = bit(pending_writes, 2)
+ node T_173772 = bit(pending_writes, 3)
+ wire T_173773 : UInt<1>[4]
+ T_173773[0] := T_173769
+ T_173773[1] := T_173770
+ T_173773[2] := T_173771
+ T_173773[3] := T_173772
+ wire T_173774 : UInt<2>
+ T_173774 := UInt<2>(3)
+ when T_173773[2] : T_173774 := UInt<2>(2)
+ wire T_173775 : UInt<2>
+ T_173775 := T_173774
+ when T_173773[1] : T_173775 := UInt<1>(1)
+ wire curr_write_beat : UInt<2>
+ curr_write_beat := T_173775
+ when T_173773[0] : curr_write_beat := UInt<1>(0)
+ node T_173776 = eq(state, UInt<4>(7))
+ node T_173777 = eq(pending_writes, UInt<1>(0))
+ node T_173778 = eq(T_173777, UInt<1>(0))
+ node T_173779 = and(T_173776, T_173778)
+ node T_173780 = eq(pending_ognt, UInt<1>(0))
+ node T_173781 = and(T_173779, T_173780)
+ node T_173782 = dshr(pending_reads, curr_write_beat)
+ node T_173783 = bit(T_173782, 0)
+ node T_173784 = eq(T_173783, UInt<1>(0))
+ node T_173785 = and(T_173781, T_173784)
+ node T_173786 = dshr(pending_resps, curr_write_beat)
+ node T_173787 = bit(T_173786, 0)
+ node T_173788 = eq(T_173787, UInt<1>(0))
+ node T_173789 = and(T_173785, T_173788)
+ data.write.valid := T_173789
+ data.write.bits.id := UInt<1>(1)
+ data.write.bits.way_en := xact_way_en
+ node T_173790 = bits(xact.addr_block, 11, 0)
+ data.write.bits.addr_idx := T_173790
+ data.write.bits.addr_beat := curr_write_beat
+ accessor T_173791 = wmask_buffer[curr_write_beat]
+ data.write.bits.wmask := T_173791
+ accessor T_173792 = data_buffer[curr_write_beat]
+ data.write.bits.data := T_173792
+ node T_173793 = eq(state, UInt<4>(8))
+ meta.write.valid := T_173793
+ meta.write.bits.id := UInt<1>(1)
+ node T_173794 = bits(xact.addr_block, 11, 0)
+ meta.write.bits.idx := T_173794
+ meta.write.bits.way_en := xact_way_en
+ node T_173795 = dshr(xact.addr_block, UInt<4>(12))
+ meta.write.bits.data.tag := T_173795
+ meta.write.bits.data.coh := pending_coh
+
+
+ node T_173796 = and(inner.acquire.ready, inner.acquire.valid)
+ wire T_173797 : UInt<3>[3]
+ T_173797[0] := UInt<3>(2)
+ T_173797[1] := UInt<3>(3)
+ T_173797[2] := UInt<3>(4)
+ node T_173798 = eq(T_173797[0], inner.acquire.bits.a_type)
+ node T_173799 = eq(T_173797[1], inner.acquire.bits.a_type)
+ node T_173800 = eq(T_173797[2], inner.acquire.bits.a_type)
+ node T_173801 = or(UInt<1>(0), T_173798)
+ node T_173802 = or(T_173801, T_173799)
+ node T_173803 = or(T_173802, T_173800)
+ node T_173804 = and(inner.acquire.bits.is_builtin_type, T_173803)
+ node T_173805 = and(T_173796, T_173804)
+ when T_173805 :
+ node T_173806 = eq(inner.acquire.bits.a_type, UInt<3>(4))
+ node T_173807 = and(inner.acquire.bits.is_builtin_type, T_173806)
+ node T_173808 = bits(inner.acquire.bits.union, 12, 9)
+ node T_173809 = bits(T_173808, 3, 3)
+ node T_173810 = dshl(UInt<1>(1), T_173809)
+ node T_173811 = bit(T_173810, 0)
+ node T_173812 = bit(T_173810, 1)
+ node T_173813 = bit(T_173810, 2)
+ wire T_173814 : UInt<1>[3]
+ T_173814[0] := T_173811
+ T_173814[1] := T_173812
+ T_173814[2] := T_173813
+ node T_173815 = subw(UInt<8>(0), UInt<4>(8))
+ node T_173816 = subw(UInt<8>(0), UInt<4>(8))
+ node T_173817 = subw(UInt<8>(0), UInt<4>(8))
+ wire T_173818 : UInt<8>[3]
+ T_173818[0] := T_173815
+ T_173818[1] := T_173816
+ T_173818[2] := T_173817
+ node T_173819 = cat(T_173818[1], T_173818[0])
+ node T_173820 = cat(T_173818[2], T_173819)
+ node T_173821 = eq(inner.acquire.bits.a_type, UInt<3>(3))
+ node T_173822 = and(inner.acquire.bits.is_builtin_type, T_173821)
+ node T_173823 = eq(inner.acquire.bits.a_type, UInt<3>(2))
+ node T_173824 = and(inner.acquire.bits.is_builtin_type, T_173823)
+ node T_173825 = or(T_173822, T_173824)
+ node T_173826 = bits(inner.acquire.bits.union, 16, 1)
+ wire T_173827 : UInt<16>
+ T_173827 := UInt<16>(0)
+ when T_173825 : T_173827 := T_173826
+ wire T_173828 : UInt<16>
+ T_173828 := T_173827
+ when T_173807 : T_173828 := T_173820
+ node T_173829 = bit(T_173828, 0)
+ node T_173830 = bit(T_173828, 1)
+ node T_173831 = bit(T_173828, 2)
+ node T_173832 = bit(T_173828, 3)
+ node T_173833 = bit(T_173828, 4)
+ node T_173834 = bit(T_173828, 5)
+ node T_173835 = bit(T_173828, 6)
+ node T_173836 = bit(T_173828, 7)
+ node T_173837 = bit(T_173828, 8)
+ node T_173838 = bit(T_173828, 9)
+ node T_173839 = bit(T_173828, 10)
+ node T_173840 = bit(T_173828, 11)
+ node T_173841 = bit(T_173828, 12)
+ node T_173842 = bit(T_173828, 13)
+ node T_173843 = bit(T_173828, 14)
+ node T_173844 = bit(T_173828, 15)
+ wire T_173845 : UInt<1>[16]
+ T_173845[0] := T_173829
+ T_173845[1] := T_173830
+ T_173845[2] := T_173831
+ T_173845[3] := T_173832
+ T_173845[4] := T_173833
+ T_173845[5] := T_173834
+ T_173845[6] := T_173835
+ T_173845[7] := T_173836
+ T_173845[8] := T_173837
+ T_173845[9] := T_173838
+ T_173845[10] := T_173839
+ T_173845[11] := T_173840
+ T_173845[12] := T_173841
+ T_173845[13] := T_173842
+ T_173845[14] := T_173843
+ T_173845[15] := T_173844
+ node T_173846 = subw(UInt<8>(0), UInt<4>(8))
+ node T_173847 = subw(UInt<8>(0), UInt<4>(8))
+ node T_173848 = subw(UInt<8>(0), UInt<4>(8))
+ node T_173849 = subw(UInt<8>(0), UInt<4>(8))
+ node T_173850 = subw(UInt<8>(0), UInt<4>(8))
+ node T_173851 = subw(UInt<8>(0), UInt<4>(8))
+ node T_173852 = subw(UInt<8>(0), UInt<4>(8))
+ node T_173853 = subw(UInt<8>(0), UInt<4>(8))
+ node T_173854 = subw(UInt<8>(0), UInt<4>(8))
+ node T_173855 = subw(UInt<8>(0), UInt<4>(8))
+ node T_173856 = subw(UInt<8>(0), UInt<4>(8))
+ node T_173857 = subw(UInt<8>(0), UInt<4>(8))
+ node T_173858 = subw(UInt<8>(0), UInt<4>(8))
+ node T_173859 = subw(UInt<8>(0), UInt<4>(8))
+ node T_173860 = subw(UInt<8>(0), UInt<4>(8))
+ node T_173861 = subw(UInt<8>(0), UInt<4>(8))
+ wire T_173862 : UInt<8>[16]
+ T_173862[0] := T_173846
+ T_173862[1] := T_173847
+ T_173862[2] := T_173848
+ T_173862[3] := T_173849
+ T_173862[4] := T_173850
+ T_173862[5] := T_173851
+ T_173862[6] := T_173852
+ T_173862[7] := T_173853
+ T_173862[8] := T_173854
+ T_173862[9] := T_173855
+ T_173862[10] := T_173856
+ T_173862[11] := T_173857
+ T_173862[12] := T_173858
+ T_173862[13] := T_173859
+ T_173862[14] := T_173860
+ T_173862[15] := T_173861
+ node T_173863 = cat(T_173862[15], T_173862[14])
+ node T_173864 = cat(T_173862[13], T_173862[12])
+ node T_173865 = cat(T_173863, T_173864)
+ node T_173866 = cat(T_173862[11], T_173862[10])
+ node T_173867 = cat(T_173862[9], T_173862[8])
+ node T_173868 = cat(T_173866, T_173867)
+ node T_173869 = cat(T_173865, T_173868)
+ node T_173870 = cat(T_173862[7], T_173862[6])
+ node T_173871 = cat(T_173862[5], T_173862[4])
+ node T_173872 = cat(T_173870, T_173871)
+ node T_173873 = cat(T_173862[3], T_173862[2])
+ node T_173874 = cat(T_173862[1], T_173862[0])
+ node T_173875 = cat(T_173873, T_173874)
+ node T_173876 = cat(T_173872, T_173875)
+ node T_173877 = cat(T_173869, T_173876)
+ accessor T_173878 = data_buffer[inner.acquire.bits.addr_beat]
+ node T_173879 = not(T_173877)
+ accessor T_173880 = data_buffer[inner.acquire.bits.addr_beat]
+ node T_173881 = and(T_173879, T_173880)
+ node T_173882 = and(T_173877, inner.acquire.bits.data)
+ node T_173883 = or(T_173881, T_173882)
+ T_173878 := T_173883
+ accessor T_173884 = wmask_buffer[inner.acquire.bits.addr_beat]
+ node T_173885 = eq(state, UInt<4>(0))
+ accessor T_173886 = wmask_buffer[inner.acquire.bits.addr_beat]
+ wire T_173887 : UInt<16>
+ T_173887 := T_173886
+ when T_173885 : T_173887 := UInt<1>(0)
+ node T_173888 = or(T_173828, T_173887)
+ T_173884 := T_173888
+ node T_173889 = eq(xact.a_type, UInt<3>(2))
+ node T_173890 = and(xact.is_builtin_type, T_173889)
+ node T_173891 = eq(xact.a_type, UInt<3>(3))
+ node T_173892 = and(xact.is_builtin_type, T_173891)
+ node T_173893 = or(T_173890, T_173892)
+ node T_173894 = bits(xact.union, 5, 1)
+ wire T_173895 : UInt<5>
+ T_173895 := T_173894
+ when T_173893 : T_173895 := UInt<5>(1)
+ node T_173896 = eq(T_173895, UInt<5>(1))
+ node T_173897 = eq(T_173895, UInt<5>(7))
+ node T_173898 = or(T_173896, T_173897)
+ node T_173899 = bit(T_173895, 3)
+ node T_173900 = eq(T_173895, UInt<5>(4))
+ node T_173901 = or(T_173899, T_173900)
+ node T_173902 = or(T_173898, T_173901)
+ wire T_173903 : UInt<2>
+ T_173903 := meta.resp.bits.meta.coh.outer.state
+ when T_173902 : T_173903 := UInt<2>(2)
+ wire T_173904 : UInt<3>[3]
+ T_173904[0] := UInt<3>(0)
+ T_173904[1] := UInt<3>(1)
+ T_173904[2] := UInt<3>(2)
+ wire T_173905 : UInt<0>[1]
+ T_173905[0] := UInt<0>(0)
+ wire T_173906 : UInt<2>[2]
+ T_173906[0] := UInt<2>(1)
+ T_173906[1] := UInt<2>(2)
+ wire T_173907 : UInt<2>[2]
+ T_173907[0] := UInt<2>(1)
+ T_173907[1] := UInt<2>(2)
+ wire T_173908 : UInt<2>[1]
+ T_173908[0] := UInt<2>(2)
+ wire T_173909 : UInt<3>[3]
+ T_173909[0] := UInt<3>(0)
+ T_173909[1] := UInt<3>(1)
+ T_173909[2] := UInt<3>(2)
+ wire T_173910 : UInt<0>[1]
+ T_173910[0] := UInt<0>(0)
+ wire T_173911 : UInt<2>[2]
+ T_173911[0] := UInt<2>(1)
+ T_173911[1] := UInt<2>(2)
+ wire T_173912 : UInt<2>[2]
+ T_173912[0] := UInt<2>(1)
+ T_173912[1] := UInt<2>(2)
+ wire T_173913 : UInt<2>[1]
+ T_173913[0] := UInt<2>(2)
+ wire T_173914 : {state : UInt<2>, makeRelease$default$2 : UInt<1>, makeRelease$default$3 : UInt<1>, makeVoluntaryRelease$default$4 : UInt<1>, makeVoluntaryRelease$default$5 : UInt<1>, makeVoluntaryWriteback$default$3 : UInt<1>, makeVoluntaryWriteback$default$4 : UInt<1>}
+ T_173914.state := T_173903
+ wire T_173915 : UInt<3>[3]
+ T_173915[0] := UInt<3>(0)
+ T_173915[1] := UInt<3>(1)
+ T_173915[2] := UInt<3>(2)
+ wire T_173916 : UInt<2>[2]
+ T_173916[0] := UInt<2>(0)
+ T_173916[1] := UInt<2>(1)
+ wire T_173917 : UInt<2>[3]
+ T_173917[0] := UInt<2>(1)
+ T_173917[1] := UInt<2>(2)
+ T_173917[2] := UInt<2>(3)
+ wire T_173918 : UInt<2>[2]
+ T_173918[0] := UInt<2>(2)
+ T_173918[1] := UInt<2>(3)
+ wire T_173919 : UInt<2>[1]
+ T_173919[0] := UInt<2>(3)
+ wire T_173920 : UInt<3>[3]
+ T_173920[0] := UInt<3>(0)
+ T_173920[1] := UInt<3>(1)
+ T_173920[2] := UInt<3>(2)
+ wire T_173921 : UInt<2>[2]
+ T_173921[0] := UInt<2>(0)
+ T_173921[1] := UInt<2>(1)
+ wire T_173922 : UInt<2>[3]
+ T_173922[0] := UInt<2>(1)
+ T_173922[1] := UInt<2>(2)
+ T_173922[2] := UInt<2>(3)
+ wire T_173923 : UInt<2>[2]
+ T_173923[0] := UInt<2>(2)
+ T_173923[1] := UInt<2>(3)
+ wire T_173924 : UInt<2>[1]
+ T_173924[0] := UInt<2>(3)
+ wire T_173925 : UInt<3>[3]
+ T_173925[0] := UInt<3>(0)
+ T_173925[1] := UInt<3>(1)
+ T_173925[2] := UInt<3>(2)
+ wire T_173926 : UInt<0>[1]
+ T_173926[0] := UInt<0>(0)
+ wire T_173927 : UInt<2>[2]
+ T_173927[0] := UInt<2>(1)
+ T_173927[1] := UInt<2>(2)
+ wire T_173928 : UInt<2>[2]
+ T_173928[0] := UInt<2>(1)
+ T_173928[1] := UInt<2>(2)
+ wire T_173929 : UInt<2>[1]
+ T_173929[0] := UInt<2>(2)
+ wire T_173930 : UInt<3>[3]
+ T_173930[0] := UInt<3>(0)
+ T_173930[1] := UInt<3>(1)
+ T_173930[2] := UInt<3>(2)
+ wire T_173931 : UInt<2>[2]
+ T_173931[0] := UInt<2>(0)
+ T_173931[1] := UInt<2>(1)
+ wire T_173932 : UInt<2>[3]
+ T_173932[0] := UInt<2>(1)
+ T_173932[1] := UInt<2>(2)
+ T_173932[2] := UInt<2>(3)
+ wire T_173933 : UInt<2>[2]
+ T_173933[0] := UInt<2>(2)
+ T_173933[1] := UInt<2>(3)
+ wire T_173934 : UInt<2>[1]
+ T_173934[0] := UInt<2>(3)
+ wire T_173935 : UInt<3>[3]
+ T_173935[0] := UInt<3>(0)
+ T_173935[1] := UInt<3>(1)
+ T_173935[2] := UInt<3>(2)
+ wire T_173936 : UInt<2>[2]
+ T_173936[0] := UInt<2>(0)
+ T_173936[1] := UInt<2>(1)
+ wire T_173937 : UInt<2>[3]
+ T_173937[0] := UInt<2>(1)
+ T_173937[1] := UInt<2>(2)
+ T_173937[2] := UInt<2>(3)
+ wire T_173938 : UInt<2>[2]
+ T_173938[0] := UInt<2>(2)
+ T_173938[1] := UInt<2>(3)
+ wire T_173939 : UInt<2>[1]
+ T_173939[0] := UInt<2>(3)
+ wire T_173940 : UInt<3>[3]
+ T_173940[0] := UInt<3>(0)
+ T_173940[1] := UInt<3>(1)
+ T_173940[2] := UInt<3>(2)
+ wire T_173941 : UInt<0>[1]
+ T_173941[0] := UInt<0>(0)
+ wire T_173942 : UInt<2>[2]
+ T_173942[0] := UInt<2>(1)
+ T_173942[1] := UInt<2>(2)
+ wire T_173943 : UInt<2>[2]
+ T_173943[0] := UInt<2>(1)
+ T_173943[1] := UInt<2>(2)
+ wire T_173944 : UInt<2>[1]
+ T_173944[0] := UInt<2>(2)
+ wire pending_coh_on_hit : {inner : {sharers : UInt<1>, makeGrant$default$3 : UInt<1>, makeGrant$default$4 : UInt<1>}, outer : {state : UInt<2>, makeRelease$default$2 : UInt<1>, makeRelease$default$3 : UInt<1>, makeVoluntaryRelease$default$4 : UInt<1>, makeVoluntaryRelease$default$5 : UInt<1>, makeVoluntaryWriteback$default$3 : UInt<1>, makeVoluntaryWriteback$default$4 : UInt<1>}}
+ pending_coh_on_hit.inner := meta.resp.bits.meta.coh.inner
+ pending_coh_on_hit.outer := T_173914
+ wire T_173945 : UInt<3>[3]
+ T_173945[0] := UInt<3>(0)
+ T_173945[1] := UInt<3>(1)
+ T_173945[2] := UInt<3>(2)
+ wire T_173946 : UInt<2>[2]
+ T_173946[0] := UInt<2>(0)
+ T_173946[1] := UInt<2>(1)
+ wire T_173947 : UInt<2>[3]
+ T_173947[0] := UInt<2>(1)
+ T_173947[1] := UInt<2>(2)
+ T_173947[2] := UInt<2>(3)
+ wire T_173948 : UInt<2>[2]
+ T_173948[0] := UInt<2>(2)
+ T_173948[1] := UInt<2>(3)
+ wire T_173949 : UInt<2>[1]
+ T_173949[0] := UInt<2>(3)
+ wire T_173950 : UInt<3>[3]
+ T_173950[0] := UInt<3>(0)
+ T_173950[1] := UInt<3>(1)
+ T_173950[2] := UInt<3>(2)
+ wire T_173951 : UInt<2>[2]
+ T_173951[0] := UInt<2>(0)
+ T_173951[1] := UInt<2>(1)
+ wire T_173952 : UInt<2>[3]
+ T_173952[0] := UInt<2>(1)
+ T_173952[1] := UInt<2>(2)
+ T_173952[2] := UInt<2>(3)
+ wire T_173953 : UInt<2>[2]
+ T_173953[0] := UInt<2>(2)
+ T_173953[1] := UInt<2>(3)
+ wire T_173954 : UInt<2>[1]
+ T_173954[0] := UInt<2>(3)
+ wire T_173955 : UInt<3>[3]
+ T_173955[0] := UInt<3>(0)
+ T_173955[1] := UInt<3>(1)
+ T_173955[2] := UInt<3>(2)
+ wire T_173956 : UInt<2>[2]
+ T_173956[0] := UInt<2>(0)
+ T_173956[1] := UInt<2>(1)
+ wire T_173957 : UInt<2>[3]
+ T_173957[0] := UInt<2>(1)
+ T_173957[1] := UInt<2>(2)
+ T_173957[2] := UInt<2>(3)
+ wire T_173958 : UInt<2>[2]
+ T_173958[0] := UInt<2>(2)
+ T_173958[1] := UInt<2>(3)
+ wire T_173959 : UInt<2>[1]
+ T_173959[0] := UInt<2>(3)
+ wire T_173960 : {sharers : UInt<1>, makeGrant$default$3 : UInt<1>, makeGrant$default$4 : UInt<1>}
+ T_173960.sharers := UInt<1>(0)
+ wire T_173961 : UInt<3>[3]
+ T_173961[0] := UInt<3>(0)
+ T_173961[1] := UInt<3>(1)
+ T_173961[2] := UInt<3>(2)
+ wire T_173962 : UInt<2>[2]
+ T_173962[0] := UInt<2>(0)
+ T_173962[1] := UInt<2>(1)
+ wire T_173963 : UInt<2>[3]
+ T_173963[0] := UInt<2>(1)
+ T_173963[1] := UInt<2>(2)
+ T_173963[2] := UInt<2>(3)
+ wire T_173964 : UInt<2>[2]
+ T_173964[0] := UInt<2>(2)
+ T_173964[1] := UInt<2>(3)
+ wire T_173965 : UInt<2>[1]
+ T_173965[0] := UInt<2>(3)
+ wire T_173966 : UInt<3>[3]
+ T_173966[0] := UInt<3>(0)
+ T_173966[1] := UInt<3>(1)
+ T_173966[2] := UInt<3>(2)
+ wire T_173967 : UInt<2>[2]
+ T_173967[0] := UInt<2>(0)
+ T_173967[1] := UInt<2>(1)
+ wire T_173968 : UInt<2>[3]
+ T_173968[0] := UInt<2>(1)
+ T_173968[1] := UInt<2>(2)
+ T_173968[2] := UInt<2>(3)
+ wire T_173969 : UInt<2>[2]
+ T_173969[0] := UInt<2>(2)
+ T_173969[1] := UInt<2>(3)
+ wire T_173970 : UInt<2>[1]
+ T_173970[0] := UInt<2>(3)
+ wire T_173971 : UInt<3>[3]
+ T_173971[0] := UInt<3>(0)
+ T_173971[1] := UInt<3>(1)
+ T_173971[2] := UInt<3>(2)
+ wire T_173972 : UInt<2>[2]
+ T_173972[0] := UInt<2>(0)
+ T_173972[1] := UInt<2>(1)
+ wire T_173973 : UInt<2>[3]
+ T_173973[0] := UInt<2>(1)
+ T_173973[1] := UInt<2>(2)
+ T_173973[2] := UInt<2>(3)
+ wire T_173974 : UInt<2>[2]
+ T_173974[0] := UInt<2>(2)
+ T_173974[1] := UInt<2>(3)
+ wire T_173975 : UInt<2>[1]
+ T_173975[0] := UInt<2>(3)
+ wire T_173976 : {state : UInt<2>, makeRelease$default$2 : UInt<1>, makeRelease$default$3 : UInt<1>, makeVoluntaryRelease$default$4 : UInt<1>, makeVoluntaryRelease$default$5 : UInt<1>, makeVoluntaryWriteback$default$3 : UInt<1>, makeVoluntaryWriteback$default$4 : UInt<1>}
+ T_173976.state := UInt<2>(0)
+ wire T_173977 : UInt<3>[3]
+ T_173977[0] := UInt<3>(0)
+ T_173977[1] := UInt<3>(1)
+ T_173977[2] := UInt<3>(2)
+ wire T_173978 : UInt<2>[2]
+ T_173978[0] := UInt<2>(0)
+ T_173978[1] := UInt<2>(1)
+ wire T_173979 : UInt<2>[3]
+ T_173979[0] := UInt<2>(1)
+ T_173979[1] := UInt<2>(2)
+ T_173979[2] := UInt<2>(3)
+ wire T_173980 : UInt<2>[2]
+ T_173980[0] := UInt<2>(2)
+ T_173980[1] := UInt<2>(3)
+ wire T_173981 : UInt<2>[1]
+ T_173981[0] := UInt<2>(3)
+ wire T_173982 : UInt<3>[3]
+ T_173982[0] := UInt<3>(0)
+ T_173982[1] := UInt<3>(1)
+ T_173982[2] := UInt<3>(2)
+ wire T_173983 : UInt<2>[2]
+ T_173983[0] := UInt<2>(0)
+ T_173983[1] := UInt<2>(1)
+ wire T_173984 : UInt<2>[3]
+ T_173984[0] := UInt<2>(1)
+ T_173984[1] := UInt<2>(2)
+ T_173984[2] := UInt<2>(3)
+ wire T_173985 : UInt<2>[2]
+ T_173985[0] := UInt<2>(2)
+ T_173985[1] := UInt<2>(3)
+ wire T_173986 : UInt<2>[1]
+ T_173986[0] := UInt<2>(3)
+ wire T_173987 : UInt<3>[3]
+ T_173987[0] := UInt<3>(0)
+ T_173987[1] := UInt<3>(1)
+ T_173987[2] := UInt<3>(2)
+ wire T_173988 : UInt<0>[1]
+ T_173988[0] := UInt<0>(0)
+ wire T_173989 : UInt<2>[2]
+ T_173989[0] := UInt<2>(1)
+ T_173989[1] := UInt<2>(2)
+ wire T_173990 : UInt<2>[2]
+ T_173990[0] := UInt<2>(1)
+ T_173990[1] := UInt<2>(2)
+ wire T_173991 : UInt<2>[1]
+ T_173991[0] := UInt<2>(2)
+ wire T_173992 : UInt<3>[3]
+ T_173992[0] := UInt<3>(0)
+ T_173992[1] := UInt<3>(1)
+ T_173992[2] := UInt<3>(2)
+ wire T_173993 : UInt<2>[2]
+ T_173993[0] := UInt<2>(0)
+ T_173993[1] := UInt<2>(1)
+ wire T_173994 : UInt<2>[3]
+ T_173994[0] := UInt<2>(1)
+ T_173994[1] := UInt<2>(2)
+ T_173994[2] := UInt<2>(3)
+ wire T_173995 : UInt<2>[2]
+ T_173995[0] := UInt<2>(2)
+ T_173995[1] := UInt<2>(3)
+ wire T_173996 : UInt<2>[1]
+ T_173996[0] := UInt<2>(3)
+ wire T_173997 : UInt<3>[3]
+ T_173997[0] := UInt<3>(0)
+ T_173997[1] := UInt<3>(1)
+ T_173997[2] := UInt<3>(2)
+ wire T_173998 : UInt<2>[2]
+ T_173998[0] := UInt<2>(0)
+ T_173998[1] := UInt<2>(1)
+ wire T_173999 : UInt<2>[3]
+ T_173999[0] := UInt<2>(1)
+ T_173999[1] := UInt<2>(2)
+ T_173999[2] := UInt<2>(3)
+ wire T_174000 : UInt<2>[2]
+ T_174000[0] := UInt<2>(2)
+ T_174000[1] := UInt<2>(3)
+ wire T_174001 : UInt<2>[1]
+ T_174001[0] := UInt<2>(3)
+ wire T_174002 : UInt<3>[3]
+ T_174002[0] := UInt<3>(0)
+ T_174002[1] := UInt<3>(1)
+ T_174002[2] := UInt<3>(2)
+ wire T_174003 : UInt<0>[1]
+ T_174003[0] := UInt<0>(0)
+ wire T_174004 : UInt<2>[2]
+ T_174004[0] := UInt<2>(1)
+ T_174004[1] := UInt<2>(2)
+ wire T_174005 : UInt<2>[2]
+ T_174005[0] := UInt<2>(1)
+ T_174005[1] := UInt<2>(2)
+ wire T_174006 : UInt<2>[1]
+ T_174006[0] := UInt<2>(2)
+ wire pending_coh_on_miss : {inner : {sharers : UInt<1>, makeGrant$default$3 : UInt<1>, makeGrant$default$4 : UInt<1>}, outer : {state : UInt<2>, makeRelease$default$2 : UInt<1>, makeRelease$default$3 : UInt<1>, makeVoluntaryRelease$default$4 : UInt<1>, makeVoluntaryRelease$default$5 : UInt<1>, makeVoluntaryWriteback$default$3 : UInt<1>, makeVoluntaryWriteback$default$4 : UInt<1>}}
+ pending_coh_on_miss.inner := T_173960
+ pending_coh_on_miss.outer := T_173976
+
+
+ node T_174007 = eq(state, UInt<4>(0))
+ node T_174008 = and(T_174007, inner.acquire.valid)
+ when T_174008 :
+ xact := inner.acquire.bits
+ xact.data := UInt<1>(0)
+ node T_174009 = eq(inner.acquire.bits.a_type, UInt<3>(3))
+ node T_174010 = and(inner.acquire.bits.is_builtin_type, T_174009)
+ node T_174011 = and(inner.acquire.ready, inner.acquire.valid)
+ wire T_174012 : UInt<3>[3]
+ T_174012[0] := UInt<3>(2)
+ T_174012[1] := UInt<3>(3)
+ T_174012[2] := UInt<3>(4)
+ node T_174013 = eq(T_174012[0], inner.acquire.bits.a_type)
+ node T_174014 = eq(T_174012[1], inner.acquire.bits.a_type)
+ node T_174015 = eq(T_174012[2], inner.acquire.bits.a_type)
+ node T_174016 = or(UInt<1>(0), T_174013)
+ node T_174017 = or(T_174016, T_174014)
+ node T_174018 = or(T_174017, T_174015)
+ node T_174019 = and(inner.acquire.bits.is_builtin_type, T_174018)
+ node T_174020 = and(T_174011, T_174019)
+ node T_174021 = subw(UInt<4>(0), UInt<3>(4))
+ node T_174022 = not(T_174021)
+ node T_174023 = dshl(UInt<1>(1), inner.acquire.bits.addr_beat)
+ node T_174024 = not(T_174023)
+ node T_174025 = or(T_174022, T_174024)
+ wire T_174026 : UInt<1>
+ T_174026 := UInt<1>(0)
+ when T_174010 : T_174026 := T_174025
+ pending_puts := T_174026
+ node T_174027 = eq(inner.acquire.bits.a_type, UInt<3>(1))
+ node T_174028 = and(inner.acquire.bits.is_builtin_type, T_174027)
+ node T_174029 = eq(inner.acquire.bits.is_builtin_type, UInt<1>(0))
+ node T_174030 = or(T_174028, T_174029)
+ wire T_174031 : UInt<3>[3]
+ T_174031[0] := UInt<3>(0)
+ T_174031[1] := UInt<3>(1)
+ T_174031[2] := UInt<3>(4)
+ node T_174032 = eq(T_174031[0], inner.acquire.bits.a_type)
+ node T_174033 = eq(T_174031[1], inner.acquire.bits.a_type)
+ node T_174034 = eq(T_174031[2], inner.acquire.bits.a_type)
+ node T_174035 = or(UInt<1>(0), T_174032)
+ node T_174036 = or(T_174035, T_174033)
+ node T_174037 = or(T_174036, T_174034)
+ node T_174038 = and(inner.acquire.bits.is_builtin_type, T_174037)
+ node T_174039 = and(inner.acquire.ready, inner.acquire.valid)
+ node T_174040 = and(T_174039, T_174038)
+ node T_174041 = subw(UInt<4>(0), UInt<3>(4))
+ node T_174042 = dshl(UInt<1>(1), inner.acquire.bits.addr_beat)
+ node T_174043 = and(T_174041, T_174042)
+ node T_174044 = eq(inner.acquire.bits.a_type, UInt<3>(4))
+ node T_174045 = and(inner.acquire.bits.is_builtin_type, T_174044)
+ node T_174046 = bits(inner.acquire.bits.union, 12, 9)
+ node T_174047 = bits(T_174046, 3, 3)
+ node T_174048 = dshl(UInt<1>(1), T_174047)
+ node T_174049 = bit(T_174048, 0)
+ node T_174050 = bit(T_174048, 1)
+ node T_174051 = bit(T_174048, 2)
+ wire T_174052 : UInt<1>[3]
+ T_174052[0] := T_174049
+ T_174052[1] := T_174050
+ T_174052[2] := T_174051
+ node T_174053 = subw(UInt<8>(0), UInt<4>(8))
+ node T_174054 = subw(UInt<8>(0), UInt<4>(8))
+ node T_174055 = subw(UInt<8>(0), UInt<4>(8))
+ wire T_174056 : UInt<8>[3]
+ T_174056[0] := T_174053
+ T_174056[1] := T_174054
+ T_174056[2] := T_174055
+ node T_174057 = cat(T_174056[1], T_174056[0])
+ node T_174058 = cat(T_174056[2], T_174057)
+ node T_174059 = eq(inner.acquire.bits.a_type, UInt<3>(3))
+ node T_174060 = and(inner.acquire.bits.is_builtin_type, T_174059)
+ node T_174061 = eq(inner.acquire.bits.a_type, UInt<3>(2))
+ node T_174062 = and(inner.acquire.bits.is_builtin_type, T_174061)
+ node T_174063 = or(T_174060, T_174062)
+ node T_174064 = bits(inner.acquire.bits.union, 16, 1)
+ wire T_174065 : UInt<16>
+ T_174065 := UInt<16>(0)
+ when T_174063 : T_174065 := T_174064
+ wire T_174066 : UInt<16>
+ T_174066 := T_174065
+ when T_174045 : T_174066 := T_174058
+ wire T_174067 : UInt<3>[3]
+ T_174067[0] := UInt<3>(0)
+ T_174067[1] := UInt<3>(1)
+ T_174067[2] := UInt<3>(2)
+ wire T_174068 : UInt<2>[2]
+ T_174068[0] := UInt<2>(0)
+ T_174068[1] := UInt<2>(1)
+ wire T_174069 : UInt<2>[3]
+ T_174069[0] := UInt<2>(1)
+ T_174069[1] := UInt<2>(2)
+ T_174069[2] := UInt<2>(3)
+ wire T_174070 : UInt<2>[2]
+ T_174070[0] := UInt<2>(2)
+ T_174070[1] := UInt<2>(3)
+ wire T_174071 : UInt<2>[1]
+ T_174071[0] := UInt<2>(3)
+ node T_174072 = asUInt(SInt<16>(-1))
+ node T_174073 = neq(T_174066, T_174072)
+ node T_174074 = and(inner.acquire.ready, inner.acquire.valid)
+ node T_174075 = and(T_174074, T_174073)
+ node T_174076 = and(T_174075, UInt<1>(0))
+ node T_174077 = subw(UInt<4>(0), UInt<3>(4))
+ node T_174078 = dshl(UInt<1>(1), inner.acquire.bits.addr_beat)
+ node T_174079 = and(T_174077, T_174078)
+ node T_174080 = or(T_174043, T_174079)
+ node T_174081 = asSInt(T_174080)
+ wire T_174082 : SInt<5>
+ T_174082 := T_174081
+ when T_174030 : T_174082 := SInt<1>(-1)
+ node T_174083 = asUInt(T_174082)
+ pending_reads := T_174083
+ node T_174084 = and(inner.acquire.ready, inner.acquire.valid)
+ wire T_174085 : UInt<3>[3]
+ T_174085[0] := UInt<3>(2)
+ T_174085[1] := UInt<3>(3)
+ T_174085[2] := UInt<3>(4)
+ node T_174086 = eq(T_174085[0], inner.acquire.bits.a_type)
+ node T_174087 = eq(T_174085[1], inner.acquire.bits.a_type)
+ node T_174088 = eq(T_174085[2], inner.acquire.bits.a_type)
+ node T_174089 = or(UInt<1>(0), T_174086)
+ node T_174090 = or(T_174089, T_174087)
+ node T_174091 = or(T_174090, T_174088)
+ node T_174092 = and(inner.acquire.bits.is_builtin_type, T_174091)
+ node T_174093 = and(T_174084, T_174092)
+ node T_174094 = bit(inner.acquire.bits.union, 0)
+ node T_174095 = and(T_174093, T_174094)
+ node T_174096 = subw(UInt<4>(0), UInt<3>(4))
+ node T_174097 = dshl(UInt<1>(1), inner.acquire.bits.addr_beat)
+ node T_174098 = and(T_174096, T_174097)
+ pending_writes := T_174098
+ pending_resps := UInt<1>(0)
+ pending_ignt_data := UInt<1>(0)
+ pending_meta_write := UInt<1>(0)
+ state := UInt<4>(1)
+
+
+ node T_174099 = eq(state, UInt<4>(1))
+ node T_174100 = and(T_174099, meta.read.ready)
+ when T_174100 : state := UInt<4>(2)
+
+
+ node T_174101 = eq(state, UInt<4>(2))
+ node T_174102 = and(T_174101, meta.resp.valid)
+ when T_174102 :
+ xact_tag_match := meta.resp.bits.tag_match
+ xact_old_meta := meta.resp.bits.meta
+ xact_way_en := meta.resp.bits.way_en
+ node T_174103 = eq(xact.a_type, UInt<3>(3))
+ node T_174104 = and(xact.is_builtin_type, T_174103)
+ node T_174105 = neq(meta.resp.bits.meta.coh.outer.state, UInt<2>(0))
+ node T_174106 = and(meta.resp.bits.tag_match, T_174105)
+ node T_174107 = or(T_174104, T_174106)
+ node T_174108 = eq(meta.resp.bits.tag_match, UInt<1>(0))
+ node T_174109 = bit(xact.union, 0)
+ node T_174110 = and(T_174108, T_174109)
+ node T_174111 = eq(T_172556[0], meta.resp.bits.meta.coh.outer.state)
+ node T_174112 = or(UInt<1>(0), T_174111)
+ node T_174113 = eq(meta.resp.bits.meta.coh.inner.sharers, UInt<1>(0))
+ node T_174114 = eq(T_174113, UInt<1>(0))
+ node T_174115 = or(T_174112, T_174114)
+ node T_174116 = and(T_174110, T_174115)
+ node T_174117 = eq(meta.resp.bits.meta.coh.inner.sharers, UInt<1>(0))
+ node T_174118 = bit(meta.resp.bits.meta.coh.inner.sharers, 0)
+ node T_174119 = eq(T_174118, UInt<1>(1))
+ wire T_174120 : UInt<3>[3]
+ T_174120[0] := UInt<3>(2)
+ T_174120[1] := UInt<3>(3)
+ T_174120[2] := UInt<3>(4)
+ node T_174121 = eq(T_174120[0], xact.a_type)
+ node T_174122 = eq(T_174120[1], xact.a_type)
+ node T_174123 = eq(T_174120[2], xact.a_type)
+ node T_174124 = or(UInt<1>(0), T_174121)
+ node T_174125 = or(T_174124, T_174122)
+ node T_174126 = or(T_174125, T_174123)
+ node T_174127 = and(xact.is_builtin_type, T_174126)
+ node T_174128 = neq(xact.a_type, UInt<1>(0))
+ wire T_174129 : UInt<1>
+ T_174129 := T_174128
+ when xact.is_builtin_type : T_174129 := T_174127
+ wire T_174130 : UInt<1>
+ T_174130 := T_174129
+ when T_174119 : T_174130 := UInt<1>(1)
+ wire T_174131 : UInt<1>
+ T_174131 := T_174130
+ when T_174117 : T_174131 := UInt<1>(0)
+ node T_174132 = and(meta.resp.bits.tag_match, T_174131)
+
+
+ node T_174133 = eq(meta.resp.bits.tag_match, UInt<1>(0))
+ node T_174134 = eq(pending_coh_on_hit.inner.sharers, meta.resp.bits.meta.coh.inner.sharers)
+ node T_174135 = eq(pending_coh_on_hit.outer.state, meta.resp.bits.meta.coh.outer.state)
+ node T_174136 = and(T_174134, T_174135)
+ node T_174137 = eq(T_174136, UInt<1>(0))
+ node T_174138 = and(T_174107, T_174137)
+ node T_174139 = or(T_174133, T_174138)
+ when T_174139 : pending_meta_write := UInt<1>(1)
+ wire T_174140 : UInt<3>[3]
+ T_174140[0] := UInt<3>(0)
+ T_174140[1] := UInt<3>(1)
+ T_174140[2] := UInt<3>(2)
+ wire T_174141 : UInt<2>[2]
+ T_174141[0] := UInt<2>(0)
+ T_174141[1] := UInt<2>(1)
+ wire T_174142 : UInt<2>[3]
+ T_174142[0] := UInt<2>(1)
+ T_174142[1] := UInt<2>(2)
+ T_174142[2] := UInt<2>(3)
+ wire T_174143 : UInt<2>[2]
+ T_174143[0] := UInt<2>(2)
+ T_174143[1] := UInt<2>(3)
+ wire T_174144 : UInt<2>[1]
+ T_174144[0] := UInt<2>(3)
+ wire T_174145 : UInt<3>[3]
+ T_174145[0] := UInt<3>(0)
+ T_174145[1] := UInt<3>(1)
+ T_174145[2] := UInt<3>(2)
+ wire T_174146 : UInt<2>[2]
+ T_174146[0] := UInt<2>(0)
+ T_174146[1] := UInt<2>(1)
+ wire T_174147 : UInt<2>[3]
+ T_174147[0] := UInt<2>(1)
+ T_174147[1] := UInt<2>(2)
+ T_174147[2] := UInt<2>(3)
+ wire T_174148 : UInt<2>[2]
+ T_174148[0] := UInt<2>(2)
+ T_174148[1] := UInt<2>(3)
+ wire T_174149 : UInt<2>[1]
+ T_174149[0] := UInt<2>(3)
+ wire T_174150 : UInt<3>[3]
+ T_174150[0] := UInt<3>(0)
+ T_174150[1] := UInt<3>(1)
+ T_174150[2] := UInt<3>(2)
+ wire T_174151 : UInt<0>[1]
+ T_174151[0] := UInt<0>(0)
+ wire T_174152 : UInt<2>[2]
+ T_174152[0] := UInt<2>(1)
+ T_174152[1] := UInt<2>(2)
+ wire T_174153 : UInt<2>[2]
+ T_174153[0] := UInt<2>(1)
+ T_174153[1] := UInt<2>(2)
+ wire T_174154 : UInt<2>[1]
+ T_174154[0] := UInt<2>(2)
+ wire T_174155 : {inner : {sharers : UInt<1>, makeGrant$default$3 : UInt<1>, makeGrant$default$4 : UInt<1>}, outer : {state : UInt<2>, makeRelease$default$2 : UInt<1>, makeRelease$default$3 : UInt<1>, makeVoluntaryRelease$default$4 : UInt<1>, makeVoluntaryRelease$default$5 : UInt<1>, makeVoluntaryWriteback$default$3 : UInt<1>, makeVoluntaryWriteback$default$4 : UInt<1>}}
+ T_174155 := pending_coh_on_miss
+ when meta.resp.bits.tag_match : T_174155 := meta.resp.bits.meta.coh
+ wire T_174156 : UInt<3>[3]
+ T_174156[0] := UInt<3>(0)
+ T_174156[1] := UInt<3>(1)
+ T_174156[2] := UInt<3>(2)
+ wire T_174157 : UInt<2>[2]
+ T_174157[0] := UInt<2>(0)
+ T_174157[1] := UInt<2>(1)
+ wire T_174158 : UInt<2>[3]
+ T_174158[0] := UInt<2>(1)
+ T_174158[1] := UInt<2>(2)
+ T_174158[2] := UInt<2>(3)
+ wire T_174159 : UInt<2>[2]
+ T_174159[0] := UInt<2>(2)
+ T_174159[1] := UInt<2>(3)
+ wire T_174160 : UInt<2>[1]
+ T_174160[0] := UInt<2>(3)
+ wire T_174161 : UInt<3>[3]
+ T_174161[0] := UInt<3>(0)
+ T_174161[1] := UInt<3>(1)
+ T_174161[2] := UInt<3>(2)
+ wire T_174162 : UInt<2>[2]
+ T_174162[0] := UInt<2>(0)
+ T_174162[1] := UInt<2>(1)
+ wire T_174163 : UInt<2>[3]
+ T_174163[0] := UInt<2>(1)
+ T_174163[1] := UInt<2>(2)
+ T_174163[2] := UInt<2>(3)
+ wire T_174164 : UInt<2>[2]
+ T_174164[0] := UInt<2>(2)
+ T_174164[1] := UInt<2>(3)
+ wire T_174165 : UInt<2>[1]
+ T_174165[0] := UInt<2>(3)
+ wire T_174166 : UInt<3>[3]
+ T_174166[0] := UInt<3>(0)
+ T_174166[1] := UInt<3>(1)
+ T_174166[2] := UInt<3>(2)
+ wire T_174167 : UInt<0>[1]
+ T_174167[0] := UInt<0>(0)
+ wire T_174168 : UInt<2>[2]
+ T_174168[0] := UInt<2>(1)
+ T_174168[1] := UInt<2>(2)
+ wire T_174169 : UInt<2>[2]
+ T_174169[0] := UInt<2>(1)
+ T_174169[1] := UInt<2>(2)
+ wire T_174170 : UInt<2>[1]
+ T_174170[0] := UInt<2>(2)
+ wire T_174171 : {inner : {sharers : UInt<1>, makeGrant$default$3 : UInt<1>, makeGrant$default$4 : UInt<1>}, outer : {state : UInt<2>, makeRelease$default$2 : UInt<1>, makeRelease$default$3 : UInt<1>, makeVoluntaryRelease$default$4 : UInt<1>, makeVoluntaryRelease$default$5 : UInt<1>, makeVoluntaryWriteback$default$3 : UInt<1>, makeVoluntaryWriteback$default$4 : UInt<1>}}
+ T_174171 := T_174155
+ when T_174107 : T_174171 := pending_coh_on_hit
+ pending_coh := T_174171
+ when T_174132 :
+ node T_174172 = dshl(UInt<1>(1), xact.client_id)
+ node T_174173 = or(meta.resp.bits.meta.coh.inner.sharers, T_174172)
+ node T_174174 = dshl(UInt<1>(1), xact.client_id)
+ node T_174175 = not(T_174174)
+ node T_174176 = and(meta.resp.bits.meta.coh.inner.sharers, T_174175)
+ wire T_174177 : UInt<5>
+ T_174177 := T_174176
+ when UInt<1>(0) : T_174177 := T_174173
+ node T_174178 = not(incoherent[0])
+ node T_174179 = and(T_174177, T_174178)
+ pending_iprbs := T_174179
+ node T_174180 = eq(T_174107, UInt<1>(0))
+ wire T_174181 : UInt<4>
+ T_174181 := UInt<4>(7)
+ when T_174180 : T_174181 := UInt<4>(6)
+ wire T_174182 : UInt<4>
+ T_174182 := T_174181
+ when T_174132 : T_174182 := UInt<4>(5)
+ wire T_174183 : UInt<4>
+ T_174183 := T_174182
+ when T_174116 : T_174183 := UInt<4>(3)
+ state := T_174183
+
+
+ node T_174184 = eq(state, UInt<4>(3))
+ node T_174185 = and(T_174184, wb.req.ready)
+ when T_174185 : state := UInt<4>(4)
+
+
+ node T_174186 = eq(state, UInt<4>(4))
+ node T_174187 = and(T_174186, wb.resp.valid)
+ when T_174187 :
+ node T_174188 = eq(xact.a_type, UInt<3>(3))
+ node T_174189 = and(xact.is_builtin_type, T_174188)
+ node T_174190 = and(UInt<1>(1), T_174189)
+ node T_174191 = eq(T_174190, UInt<1>(0))
+ wire T_174192 : UInt<4>
+ T_174192 := UInt<4>(7)
+ when T_174191 : T_174192 := UInt<4>(6)
+ state := T_174192
+
+
+ node T_174193 = eq(state, UInt<4>(5))
+ node T_174194 = eq(pending_iprbs, UInt<1>(0))
+ node T_174195 = eq(T_174194, UInt<1>(0))
+ node T_174196 = or(T_174195, pending_irels)
+ node T_174197 = eq(T_174196, UInt<1>(0))
+ node T_174198 = and(T_174193, T_174197)
+ when T_174198 :
+ node T_174199 = eq(xact.a_type, UInt<3>(3))
+ node T_174200 = and(xact.is_builtin_type, T_174199)
+ node T_174201 = neq(xact_old_meta.coh.outer.state, UInt<2>(0))
+ node T_174202 = or(T_174200, T_174201)
+ node T_174203 = eq(T_174202, UInt<1>(0))
+ wire T_174204 : UInt<4>
+ T_174204 := UInt<4>(7)
+ when T_174203 : T_174204 := UInt<4>(6)
+ state := T_174204
+
+
+ node T_174205 = eq(state, UInt<4>(6))
+ node T_174206 = and(T_174205, oacq_data_done)
+ when T_174206 : state := UInt<4>(7)
+
+
+ node T_174207 = eq(state, UInt<4>(7))
+ node T_174208 = and(T_174207, all_pending_done)
+ when T_174208 : state := UInt<4>(8)
+
+
+ node T_174209 = eq(state, UInt<4>(8))
+ node T_174210 = eq(pending_meta_write, UInt<1>(0))
+ node T_174211 = or(meta.write.ready, T_174210)
+ node T_174212 = and(T_174209, T_174211)
+ when T_174212 :
+ wmask_buffer[0] := UInt<1>(0)
+ wmask_buffer[1] := UInt<1>(0)
+ wmask_buffer[2] := UInt<1>(0)
+ wmask_buffer[3] := UInt<1>(0)
+ state := UInt<4>(0)
+ node T_174213 = bits(xact.addr_block, 11, 0)
+ node T_174214 = bits(inner.acquire.bits.addr_block, 11, 0)
+ node in_same_set = eq(T_174213, T_174214)
+ node T_174215 = eq(xact.addr_block, inner.release.bits.addr_block)
+ node T_174216 = eq(inner.release.bits.voluntary, UInt<1>(0))
+ node T_174217 = and(T_174215, T_174216)
+ node T_174218 = and(T_174217, inner.release.ready)
+ has_release_match := T_174218
+ node T_174219 = or(can_merge_iacq_put, can_merge_iacq_get)
+ has_acquire_match := T_174219
+ node T_174220 = neq(state, UInt<4>(0))
+ node T_174221 = and(in_same_set, T_174220)
+ node T_174222 = eq(has_acquire_match, UInt<1>(0))
+ node T_174223 = and(T_174221, T_174222)
+ has_acquire_conflict := T_174223
+ node T_174224 = neq(state, UInt<4>(0))
+ node T_174225 = and(inner.acquire.ready, inner.acquire.valid)
+ node T_174226 = and(T_174224, T_174225)
+ node T_174227 = neq(inner.acquire.bits.client_id, xact.client_id)
+ node T_174228 = and(T_174226, T_174227)
+ node T_174229 = eq(T_174228, UInt<1>(0))
+ module Queue_86917 :
+ input enq : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_beat : UInt<2>, client_xact_id : UInt<1>}}
+ output deq : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_beat : UInt<2>, client_xact_id : UInt<1>}}
+ output count : UInt<3>
+
+ wire T_174230 : UInt<3>[3]
+ T_174230[0] := UInt<3>(0)
+ T_174230[1] := UInt<3>(1)
+ T_174230[2] := UInt<3>(2)
+ wire T_174231 : UInt<2>[2]
+ T_174231[0] := UInt<2>(0)
+ T_174231[1] := UInt<2>(1)
+ wire T_174232 : UInt<2>[3]
+ T_174232[0] := UInt<2>(1)
+ T_174232[1] := UInt<2>(2)
+ T_174232[2] := UInt<2>(3)
+ wire T_174233 : UInt<2>[2]
+ T_174233[0] := UInt<2>(2)
+ T_174233[1] := UInt<2>(3)
+ wire T_174234 : UInt<2>[1]
+ T_174234[0] := UInt<2>(3)
+ wire T_174235 : UInt<3>[3]
+ T_174235[0] := UInt<3>(0)
+ T_174235[1] := UInt<3>(1)
+ T_174235[2] := UInt<3>(2)
+ wire T_174236 : UInt<2>[2]
+ T_174236[0] := UInt<2>(0)
+ T_174236[1] := UInt<2>(1)
+ wire T_174237 : UInt<2>[3]
+ T_174237[0] := UInt<2>(1)
+ T_174237[1] := UInt<2>(2)
+ T_174237[2] := UInt<2>(3)
+ wire T_174238 : UInt<2>[2]
+ T_174238[0] := UInt<2>(2)
+ T_174238[1] := UInt<2>(3)
+ wire T_174239 : UInt<2>[1]
+ T_174239[0] := UInt<2>(3)
+ wire T_174240 : UInt<3>[3]
+ T_174240[0] := UInt<3>(0)
+ T_174240[1] := UInt<3>(1)
+ T_174240[2] := UInt<3>(2)
+ wire T_174241 : UInt<2>[2]
+ T_174241[0] := UInt<2>(0)
+ T_174241[1] := UInt<2>(1)
+ wire T_174242 : UInt<2>[3]
+ T_174242[0] := UInt<2>(1)
+ T_174242[1] := UInt<2>(2)
+ T_174242[2] := UInt<2>(3)
+ wire T_174243 : UInt<2>[2]
+ T_174243[0] := UInt<2>(2)
+ T_174243[1] := UInt<2>(3)
+ wire T_174244 : UInt<2>[1]
+ T_174244[0] := UInt<2>(3)
+ wire T_174245 : UInt<3>[3]
+ T_174245[0] := UInt<3>(0)
+ T_174245[1] := UInt<3>(1)
+ T_174245[2] := UInt<3>(2)
+ wire T_174246 : UInt<2>[2]
+ T_174246[0] := UInt<2>(0)
+ T_174246[1] := UInt<2>(1)
+ wire T_174247 : UInt<2>[3]
+ T_174247[0] := UInt<2>(1)
+ T_174247[1] := UInt<2>(2)
+ T_174247[2] := UInt<2>(3)
+ wire T_174248 : UInt<2>[2]
+ T_174248[0] := UInt<2>(2)
+ T_174248[1] := UInt<2>(3)
+ wire T_174249 : UInt<2>[1]
+ T_174249[0] := UInt<2>(3)
+ wire T_174250 : UInt<3>[3]
+ T_174250[0] := UInt<3>(0)
+ T_174250[1] := UInt<3>(1)
+ T_174250[2] := UInt<3>(2)
+ wire T_174251 : UInt<2>[2]
+ T_174251[0] := UInt<2>(0)
+ T_174251[1] := UInt<2>(1)
+ wire T_174252 : UInt<2>[3]
+ T_174252[0] := UInt<2>(1)
+ T_174252[1] := UInt<2>(2)
+ T_174252[2] := UInt<2>(3)
+ wire T_174253 : UInt<2>[2]
+ T_174253[0] := UInt<2>(2)
+ T_174253[1] := UInt<2>(3)
+ wire T_174254 : UInt<2>[1]
+ T_174254[0] := UInt<2>(3)
+ cmem ram : {addr_beat : UInt<2>, client_xact_id : UInt<1>}[4]
+ reg T_174255 : UInt<2>
+ onreset T_174255 := UInt<2>(0)
+ reg T_174256 : UInt<2>
+ onreset T_174256 := UInt<2>(0)
+ reg maybe_full : UInt<1>
+ onreset maybe_full := UInt<1>(0)
+ node ptr_match = eq(T_174255, T_174256)
+ node T_174257 = eq(maybe_full, UInt<1>(0))
+ node empty = and(ptr_match, T_174257)
+ node full = and(ptr_match, maybe_full)
+ node maybe_flow = and(UInt<1>(0), empty)
+ node do_flow = and(maybe_flow, deq.ready)
+ node T_174258 = and(enq.ready, enq.valid)
+ node T_174259 = eq(do_flow, UInt<1>(0))
+ node do_enq = and(T_174258, T_174259)
+ node T_174260 = and(deq.ready, deq.valid)
+ node T_174261 = eq(do_flow, UInt<1>(0))
+ node do_deq = and(T_174260, T_174261)
+ when do_enq :
+ wire T_174262 : UInt<3>[3]
+ T_174262[0] := UInt<3>(0)
+ T_174262[1] := UInt<3>(1)
+ T_174262[2] := UInt<3>(2)
+ wire T_174263 : UInt<2>[2]
+ T_174263[0] := UInt<2>(0)
+ T_174263[1] := UInt<2>(1)
+ wire T_174264 : UInt<2>[3]
+ T_174264[0] := UInt<2>(1)
+ T_174264[1] := UInt<2>(2)
+ T_174264[2] := UInt<2>(3)
+ wire T_174265 : UInt<2>[2]
+ T_174265[0] := UInt<2>(2)
+ T_174265[1] := UInt<2>(3)
+ wire T_174266 : UInt<2>[1]
+ T_174266[0] := UInt<2>(3)
+ accessor T_174267 = ram[T_174255]
+ T_174267 := enq.bits
+ node T_174268 = eq(T_174255, UInt<2>(3))
+ node T_174269 = and(UInt<1>(0), T_174268)
+ node T_174270 = addw(T_174255, UInt<1>(1))
+ wire T_174271 : UInt<2>
+ T_174271 := T_174270
+ when T_174269 : T_174271 := UInt<1>(0)
+ T_174255 := T_174271
+ when do_deq :
+ node T_174272 = eq(T_174256, UInt<2>(3))
+ node T_174273 = and(UInt<1>(0), T_174272)
+ node T_174274 = addw(T_174256, UInt<1>(1))
+ wire T_174275 : UInt<2>
+ T_174275 := T_174274
+ when T_174273 : T_174275 := UInt<1>(0)
+ T_174256 := T_174275
+
+ node T_174276 = neq(do_enq, do_deq)
+ when T_174276 : maybe_full := do_enq
+ node T_174277 = eq(empty, UInt<1>(0))
+ node T_174278 = and(UInt<1>(0), enq.valid)
+ node T_174279 = or(T_174277, T_174278)
+ deq.valid := T_174279
+ node T_174280 = eq(full, UInt<1>(0))
+ node T_174281 = and(UInt<1>(0), deq.ready)
+ node T_174282 = or(T_174280, T_174281)
+ enq.ready := T_174282
+ wire T_174283 : UInt<3>[3]
+ T_174283[0] := UInt<3>(0)
+ T_174283[1] := UInt<3>(1)
+ T_174283[2] := UInt<3>(2)
+ wire T_174284 : UInt<2>[2]
+ T_174284[0] := UInt<2>(0)
+ T_174284[1] := UInt<2>(1)
+ wire T_174285 : UInt<2>[3]
+ T_174285[0] := UInt<2>(1)
+ T_174285[1] := UInt<2>(2)
+ T_174285[2] := UInt<2>(3)
+ wire T_174286 : UInt<2>[2]
+ T_174286[0] := UInt<2>(2)
+ T_174286[1] := UInt<2>(3)
+ wire T_174287 : UInt<2>[1]
+ T_174287[0] := UInt<2>(3)
+ accessor T_174288 = ram[T_174256]
+ wire T_174289 : UInt<3>[3]
+ T_174289[0] := UInt<3>(0)
+ T_174289[1] := UInt<3>(1)
+ T_174289[2] := UInt<3>(2)
+ wire T_174290 : UInt<2>[2]
+ T_174290[0] := UInt<2>(0)
+ T_174290[1] := UInt<2>(1)
+ wire T_174291 : UInt<2>[3]
+ T_174291[0] := UInt<2>(1)
+ T_174291[1] := UInt<2>(2)
+ T_174291[2] := UInt<2>(3)
+ wire T_174292 : UInt<2>[2]
+ T_174292[0] := UInt<2>(2)
+ T_174292[1] := UInt<2>(3)
+ wire T_174293 : UInt<2>[1]
+ T_174293[0] := UInt<2>(3)
+ wire T_174294 : {addr_beat : UInt<2>, client_xact_id : UInt<1>}
+ T_174294 := T_174288
+ when maybe_flow : T_174294 := enq.bits
+ deq.bits := T_174294
+ node ptr_diff = subw(T_174255, T_174256)
+ node T_174295 = and(maybe_full, ptr_match)
+ node T_174296 = cat(T_174295, ptr_diff)
+ count := T_174296
+ module AMOALU_87374 :
+ input addr : UInt<6>
+ input cmd : UInt<5>
+ input typ : UInt<3>
+ input lhs : UInt<64>
+ input rhs : UInt<64>
+ output out : UInt<64>
+
+ node T_174297 = eq(typ, UInt<3>(0))
+ node T_174298 = eq(typ, UInt<3>(4))
+ node T_174299 = or(T_174297, T_174298)
+ node T_174300 = eq(typ, UInt<3>(1))
+ node T_174301 = eq(typ, UInt<3>(5))
+ node T_174302 = or(T_174300, T_174301)
+ node T_174303 = eq(typ, UInt<3>(2))
+ node T_174304 = eq(typ, UInt<3>(6))
+ node T_174305 = or(T_174303, T_174304)
+ node T_174306 = bits(rhs, 31, 0)
+ node T_174307 = cat(T_174306, T_174306)
+ wire rhs : UInt<64>
+ rhs := rhs
+ when T_174305 : rhs := T_174307
+ node T_174308 = eq(cmd, UInt<5>(12))
+ node T_174309 = eq(cmd, UInt<5>(13))
+ node sgned = or(T_174308, T_174309)
+ node T_174310 = eq(cmd, UInt<5>(13))
+ node T_174311 = eq(cmd, UInt<5>(15))
+ node max = or(T_174310, T_174311)
+ node T_174312 = eq(cmd, UInt<5>(12))
+ node T_174313 = eq(cmd, UInt<5>(14))
+ node min = or(T_174312, T_174313)
+ node T_174314 = eq(typ, UInt<3>(2))
+ node T_174315 = eq(typ, UInt<3>(6))
+ node T_174316 = or(T_174314, T_174315)
+ node T_174317 = eq(typ, UInt<3>(0))
+ node T_174318 = or(T_174316, T_174317)
+ node T_174319 = eq(typ, UInt<3>(4))
+ node word = or(T_174318, T_174319)
+ node T_174320 = not(UInt<64>(0))
+ node T_174321 = bit(addr, 2)
+ node T_174322 = dshl(T_174321, UInt<5>(31))
+ node mask = xor(T_174320, T_174322)
+ node T_174323 = and(lhs, mask)
+ node T_174324 = and(rhs, mask)
+ node adder_out = addw(T_174323, T_174324)
+ node T_174325 = bit(addr, 2)
+ node T_174326 = eq(T_174325, UInt<1>(0))
+ node T_174327 = and(word, T_174326)
+ node T_174328 = bit(lhs, 31)
+ node T_174329 = bit(lhs, 63)
+ wire cmp_lhs : UInt<1>
+ cmp_lhs := T_174329
+ when T_174327 : cmp_lhs := T_174328
+ node T_174330 = bit(addr, 2)
+ node T_174331 = eq(T_174330, UInt<1>(0))
+ node T_174332 = and(word, T_174331)
+ node T_174333 = bit(rhs, 31)
+ node T_174334 = bit(rhs, 63)
+ wire cmp_rhs : UInt<1>
+ cmp_rhs := T_174334
+ when T_174332 : cmp_rhs := T_174333
+ node T_174335 = bits(lhs, 31, 0)
+ node T_174336 = bits(rhs, 31, 0)
+ node lt_lo = lt(T_174335, T_174336)
+ node T_174337 = bits(lhs, 63, 32)
+ node T_174338 = bits(rhs, 63, 32)
+ node lt_hi = lt(T_174337, T_174338)
+ node T_174339 = bits(lhs, 63, 32)
+ node T_174340 = bits(rhs, 63, 32)
+ node eq_hi = eq(T_174339, T_174340)
+ node T_174341 = bit(addr, 2)
+ wire T_174342 : UInt<1>
+ T_174342 := lt_lo
+ when T_174341 : T_174342 := lt_hi
+ node T_174343 = and(eq_hi, lt_lo)
+ node T_174344 = or(lt_hi, T_174343)
+ wire lt : UInt<1>
+ lt := T_174344
+ when word : lt := T_174342
+ node T_174345 = eq(cmp_lhs, cmp_rhs)
+ wire T_174346 : UInt<1>
+ T_174346 := cmp_rhs
+ when sgned : T_174346 := cmp_lhs
+ wire less : UInt<1>
+ less := T_174346
+ when T_174345 : less := lt
+ node T_174347 = eq(cmd, UInt<5>(8))
+ node T_174348 = eq(cmd, UInt<5>(11))
+ node T_174349 = and(lhs, rhs)
+ node T_174350 = eq(cmd, UInt<5>(10))
+ node T_174351 = or(lhs, rhs)
+ node T_174352 = eq(cmd, UInt<5>(9))
+ node T_174353 = xor(lhs, rhs)
+ wire T_174354 : UInt<1>
+ T_174354 := max
+ when less : T_174354 := min
+ node T_174355 = bits(rhs, 7, 0)
+ node T_174356 = cat(T_174355, T_174355)
+ node T_174357 = cat(T_174356, T_174356)
+ node T_174358 = cat(T_174357, T_174357)
+ node T_174359 = bits(rhs, 15, 0)
+ node T_174360 = cat(T_174359, T_174359)
+ node T_174361 = cat(T_174360, T_174360)
+ wire T_174362 : UInt<64>
+ T_174362 := rhs
+ when T_174302 : T_174362 := T_174361
+ wire T_174363 : UInt<64>
+ T_174363 := T_174362
+ when T_174299 : T_174363 := T_174358
+ wire T_174364 : UInt<64>
+ T_174364 := T_174363
+ when T_174354 : T_174364 := lhs
+ wire T_174365 : UInt<64>
+ T_174365 := T_174364
+ when T_174352 : T_174365 := T_174353
+ wire T_174366 : UInt<64>
+ T_174366 := T_174365
+ when T_174350 : T_174366 := T_174351
+ wire T_174367 : UInt<64>
+ T_174367 := T_174366
+ when T_174348 : T_174367 := T_174349
+ wire out : UInt<64>
+ out := T_174367
+ when T_174347 : out := adder_out
+ node T_174368 = bits(addr, 2, 0)
+ node T_174369 = dshl(UInt<1>(1), T_174368)
+ node T_174370 = bits(addr, 2, 1)
+ node T_174371 = cat(T_174370, UInt<1>(0))
+ node T_174372 = dshl(UInt<2>(3), T_174371)
+ node T_174373 = bit(addr, 2)
+ node T_174374 = cat(T_174373, UInt<2>(0))
+ node T_174375 = dshl(UInt<4>(15), T_174374)
+ wire T_174376 : UInt<8>
+ T_174376 := UInt<8>(255)
+ when T_174305 : T_174376 := T_174375
+ wire T_174377 : UInt<8>
+ T_174377 := T_174376
+ when T_174302 : T_174377 := T_174372
+ wire T_174378 : UInt<8>
+ T_174378 := T_174377
+ when T_174299 : T_174378 := T_174369
+ node T_174379 = bit(T_174378, 0)
+ node T_174380 = bit(T_174378, 1)
+ node T_174381 = bit(T_174378, 2)
+ node T_174382 = bit(T_174378, 3)
+ node T_174383 = bit(T_174378, 4)
+ node T_174384 = bit(T_174378, 5)
+ node T_174385 = bit(T_174378, 6)
+ node T_174386 = bit(T_174378, 7)
+ wire T_174387 : UInt<1>[8]
+ T_174387[0] := T_174379
+ T_174387[1] := T_174380
+ T_174387[2] := T_174381
+ T_174387[3] := T_174382
+ T_174387[4] := T_174383
+ T_174387[5] := T_174384
+ T_174387[6] := T_174385
+ T_174387[7] := T_174386
+ node T_174388 = subw(UInt<8>(0), UInt<4>(8))
+ node T_174389 = subw(UInt<8>(0), UInt<4>(8))
+ node T_174390 = subw(UInt<8>(0), UInt<4>(8))
+ node T_174391 = subw(UInt<8>(0), UInt<4>(8))
+ node T_174392 = subw(UInt<8>(0), UInt<4>(8))
+ node T_174393 = subw(UInt<8>(0), UInt<4>(8))
+ node T_174394 = subw(UInt<8>(0), UInt<4>(8))
+ node T_174395 = subw(UInt<8>(0), UInt<4>(8))
+ wire T_174396 : UInt<8>[8]
+ T_174396[0] := T_174388
+ T_174396[1] := T_174389
+ T_174396[2] := T_174390
+ T_174396[3] := T_174391
+ T_174396[4] := T_174392
+ T_174396[5] := T_174393
+ T_174396[6] := T_174394
+ T_174396[7] := T_174395
+ node T_174397 = cat(T_174396[7], T_174396[6])
+ node T_174398 = cat(T_174396[5], T_174396[4])
+ node T_174399 = cat(T_174397, T_174398)
+ node T_174400 = cat(T_174396[3], T_174396[2])
+ node T_174401 = cat(T_174396[1], T_174396[0])
+ node T_174402 = cat(T_174400, T_174401)
+ node wmask = cat(T_174399, T_174402)
+ node T_174403 = and(wmask, out)
+ node T_174404 = not(wmask)
+ node T_174405 = and(T_174404, lhs)
+ node T_174406 = or(T_174403, T_174405)
+ out := T_174406
+ module L2AcquireTracker_93254 :
+ output inner : {flip acquire : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_block : UInt<26>, client_xact_id : UInt<1>, addr_beat : UInt<2>, data : UInt<128>, is_builtin_type : UInt<1>, a_type : UInt<3>, union : UInt<17>, client_id : UInt<2>}}, grant : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_beat : UInt<2>, data : UInt<128>, client_xact_id : UInt<1>, manager_xact_id : UInt<2>, is_builtin_type : UInt<1>, g_type : UInt<4>, client_id : UInt<2>}}, flip finish : {flip ready : UInt<1>, valid : UInt<1>, bits : {manager_xact_id : UInt<2>}}, probe : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_block : UInt<26>, p_type : UInt<2>, client_id : UInt<2>}}, flip release : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_block : UInt<26>, client_xact_id : UInt<1>, addr_beat : UInt<2>, data : UInt<128>, r_type : UInt<3>, voluntary : UInt<1>, client_id : UInt<2>}}}
+ input incoherent : UInt<1>[1]
+ output outer : {acquire : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_block : UInt<26>, client_xact_id : UInt<2>, addr_beat : UInt<2>, data : UInt<128>, is_builtin_type : UInt<1>, a_type : UInt<3>, union : UInt<17>}}, flip grant : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_beat : UInt<2>, data : UInt<128>, client_xact_id : UInt<2>, manager_xact_id : UInt<1>, is_builtin_type : UInt<1>, g_type : UInt<4>}}, flip probe : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_block : UInt<26>, p_type : UInt<2>}}, release : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_block : UInt<26>, client_xact_id : UInt<2>, addr_beat : UInt<2>, data : UInt<128>, r_type : UInt<3>, voluntary : UInt<1>}}}
+ output has_acquire_conflict : UInt<1>
+ output has_acquire_match : UInt<1>
+ output has_release_match : UInt<1>
+ output data : {read : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_beat : UInt<2>, id : UInt<2>, addr_idx : UInt<12>, way_en : UInt<8>}}, flip resp : {valid : UInt<1>, bits : {id : UInt<2>, addr_beat : UInt<2>, data : UInt<128>}}, write : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_beat : UInt<2>, id : UInt<2>, addr_idx : UInt<12>, way_en : UInt<8>, data : UInt<128>, wmask : UInt<16>}}}
+ output meta : {read : {flip ready : UInt<1>, valid : UInt<1>, bits : {idx : UInt<12>, id : UInt<2>, tag : UInt<14>}}, flip resp : {valid : UInt<1>, bits : {id : UInt<2>, tag_match : UInt<1>, meta : {tag : UInt<14>, coh : {inner : {sharers : UInt<1>, makeGrant$default$3 : UInt<1>, makeGrant$default$4 : UInt<1>}, outer : {state : UInt<2>, makeRelease$default$2 : UInt<1>, makeRelease$default$3 : UInt<1>, makeVoluntaryRelease$default$4 : UInt<1>, makeVoluntaryRelease$default$5 : UInt<1>, makeVoluntaryWriteback$default$3 : UInt<1>, makeVoluntaryWriteback$default$4 : UInt<1>}}}, way_en : UInt<8>}}, write : {flip ready : UInt<1>, valid : UInt<1>, bits : {idx : UInt<12>, way_en : UInt<8>, data : {tag : UInt<14>, coh : {inner : {sharers : UInt<1>, makeGrant$default$3 : UInt<1>, makeGrant$default$4 : UInt<1>}, outer : {state : UInt<2>, makeRelease$default$2 : UInt<1>, makeRelease$default$3 : UInt<1>, makeVoluntaryRelease$default$4 : UInt<1>, makeVoluntaryRelease$default$5 : UInt<1>, makeVoluntaryWriteback$default$3 : UInt<1>, makeVoluntaryWriteback$default$4 : UInt<1>}}}, id : UInt<2>}}}
+ output wb : {req : {flip ready : UInt<1>, valid : UInt<1>, bits : {tag : UInt<14>, coh : {inner : {sharers : UInt<1>, makeGrant$default$3 : UInt<1>, makeGrant$default$4 : UInt<1>}, outer : {state : UInt<2>, makeRelease$default$2 : UInt<1>, makeRelease$default$3 : UInt<1>, makeVoluntaryRelease$default$4 : UInt<1>, makeVoluntaryRelease$default$5 : UInt<1>, makeVoluntaryWriteback$default$3 : UInt<1>, makeVoluntaryWriteback$default$4 : UInt<1>}}, id : UInt<2>, idx : UInt<12>, way_en : UInt<8>}}, flip resp : {valid : UInt<1>, bits : {id : UInt<2>}}}
+
+ wire T_174407 : UInt<3>[3]
+ T_174407[0] := UInt<3>(0)
+ T_174407[1] := UInt<3>(1)
+ T_174407[2] := UInt<3>(2)
+ wire T_174408 : UInt<2>[2]
+ T_174408[0] := UInt<2>(0)
+ T_174408[1] := UInt<2>(1)
+ wire T_174409 : UInt<2>[3]
+ T_174409[0] := UInt<2>(1)
+ T_174409[1] := UInt<2>(2)
+ T_174409[2] := UInt<2>(3)
+ wire T_174410 : UInt<2>[2]
+ T_174410[0] := UInt<2>(2)
+ T_174410[1] := UInt<2>(3)
+ wire T_174411 : UInt<2>[1]
+ T_174411[0] := UInt<2>(3)
+ wire T_174412 : UInt<3>[3]
+ T_174412[0] := UInt<3>(0)
+ T_174412[1] := UInt<3>(1)
+ T_174412[2] := UInt<3>(2)
+ wire T_174413 : UInt<2>[2]
+ T_174413[0] := UInt<2>(0)
+ T_174413[1] := UInt<2>(1)
+ wire T_174414 : UInt<2>[3]
+ T_174414[0] := UInt<2>(1)
+ T_174414[1] := UInt<2>(2)
+ T_174414[2] := UInt<2>(3)
+ wire T_174415 : UInt<2>[2]
+ T_174415[0] := UInt<2>(2)
+ T_174415[1] := UInt<2>(3)
+ wire T_174416 : UInt<2>[1]
+ T_174416[0] := UInt<2>(3)
+ wire T_174417 : UInt<3>[3]
+ T_174417[0] := UInt<3>(0)
+ T_174417[1] := UInt<3>(1)
+ T_174417[2] := UInt<3>(2)
+ wire T_174418 : UInt<2>[2]
+ T_174418[0] := UInt<2>(0)
+ T_174418[1] := UInt<2>(1)
+ wire T_174419 : UInt<2>[3]
+ T_174419[0] := UInt<2>(1)
+ T_174419[1] := UInt<2>(2)
+ T_174419[2] := UInt<2>(3)
+ wire T_174420 : UInt<2>[2]
+ T_174420[0] := UInt<2>(2)
+ T_174420[1] := UInt<2>(3)
+ wire T_174421 : UInt<2>[1]
+ T_174421[0] := UInt<2>(3)
+ wire T_174422 : UInt<3>[3]
+ T_174422[0] := UInt<3>(0)
+ T_174422[1] := UInt<3>(1)
+ T_174422[2] := UInt<3>(2)
+ wire T_174423 : UInt<2>[2]
+ T_174423[0] := UInt<2>(0)
+ T_174423[1] := UInt<2>(1)
+ wire T_174424 : UInt<2>[3]
+ T_174424[0] := UInt<2>(1)
+ T_174424[1] := UInt<2>(2)
+ T_174424[2] := UInt<2>(3)
+ wire T_174425 : UInt<2>[2]
+ T_174425[0] := UInt<2>(2)
+ T_174425[1] := UInt<2>(3)
+ wire T_174426 : UInt<2>[1]
+ T_174426[0] := UInt<2>(3)
+ wire T_174427 : UInt<3>[3]
+ T_174427[0] := UInt<3>(0)
+ T_174427[1] := UInt<3>(1)
+ T_174427[2] := UInt<3>(2)
+ wire T_174428 : UInt<2>[2]
+ T_174428[0] := UInt<2>(0)
+ T_174428[1] := UInt<2>(1)
+ wire T_174429 : UInt<2>[3]
+ T_174429[0] := UInt<2>(1)
+ T_174429[1] := UInt<2>(2)
+ T_174429[2] := UInt<2>(3)
+ wire T_174430 : UInt<2>[2]
+ T_174430[0] := UInt<2>(2)
+ T_174430[1] := UInt<2>(3)
+ wire T_174431 : UInt<2>[1]
+ T_174431[0] := UInt<2>(3)
+ wire T_174432 : UInt<3>[3]
+ T_174432[0] := UInt<3>(0)
+ T_174432[1] := UInt<3>(1)
+ T_174432[2] := UInt<3>(2)
+ wire T_174433 : UInt<2>[2]
+ T_174433[0] := UInt<2>(0)
+ T_174433[1] := UInt<2>(1)
+ wire T_174434 : UInt<2>[3]
+ T_174434[0] := UInt<2>(1)
+ T_174434[1] := UInt<2>(2)
+ T_174434[2] := UInt<2>(3)
+ wire T_174435 : UInt<2>[2]
+ T_174435[0] := UInt<2>(2)
+ T_174435[1] := UInt<2>(3)
+ wire T_174436 : UInt<2>[1]
+ T_174436[0] := UInt<2>(3)
+ wire T_174437 : UInt<3>[3]
+ T_174437[0] := UInt<3>(0)
+ T_174437[1] := UInt<3>(1)
+ T_174437[2] := UInt<3>(2)
+ wire T_174438 : UInt<2>[2]
+ T_174438[0] := UInt<2>(0)
+ T_174438[1] := UInt<2>(1)
+ wire T_174439 : UInt<2>[3]
+ T_174439[0] := UInt<2>(1)
+ T_174439[1] := UInt<2>(2)
+ T_174439[2] := UInt<2>(3)
+ wire T_174440 : UInt<2>[2]
+ T_174440[0] := UInt<2>(2)
+ T_174440[1] := UInt<2>(3)
+ wire T_174441 : UInt<2>[1]
+ T_174441[0] := UInt<2>(3)
+ wire T_174442 : UInt<3>[3]
+ T_174442[0] := UInt<3>(0)
+ T_174442[1] := UInt<3>(1)
+ T_174442[2] := UInt<3>(2)
+ wire T_174443 : UInt<2>[2]
+ T_174443[0] := UInt<2>(0)
+ T_174443[1] := UInt<2>(1)
+ wire T_174444 : UInt<2>[3]
+ T_174444[0] := UInt<2>(1)
+ T_174444[1] := UInt<2>(2)
+ T_174444[2] := UInt<2>(3)
+ wire T_174445 : UInt<2>[2]
+ T_174445[0] := UInt<2>(2)
+ T_174445[1] := UInt<2>(3)
+ wire T_174446 : UInt<2>[1]
+ T_174446[0] := UInt<2>(3)
+ wire T_174447 : UInt<3>[3]
+ T_174447[0] := UInt<3>(0)
+ T_174447[1] := UInt<3>(1)
+ T_174447[2] := UInt<3>(2)
+ wire T_174448 : UInt<2>[2]
+ T_174448[0] := UInt<2>(0)
+ T_174448[1] := UInt<2>(1)
+ wire T_174449 : UInt<2>[3]
+ T_174449[0] := UInt<2>(1)
+ T_174449[1] := UInt<2>(2)
+ T_174449[2] := UInt<2>(3)
+ wire T_174450 : UInt<2>[2]
+ T_174450[0] := UInt<2>(2)
+ T_174450[1] := UInt<2>(3)
+ wire T_174451 : UInt<2>[1]
+ T_174451[0] := UInt<2>(3)
+ wire T_174452 : UInt<3>[3]
+ T_174452[0] := UInt<3>(0)
+ T_174452[1] := UInt<3>(1)
+ T_174452[2] := UInt<3>(2)
+ wire T_174453 : UInt<2>[2]
+ T_174453[0] := UInt<2>(0)
+ T_174453[1] := UInt<2>(1)
+ wire T_174454 : UInt<2>[3]
+ T_174454[0] := UInt<2>(1)
+ T_174454[1] := UInt<2>(2)
+ T_174454[2] := UInt<2>(3)
+ wire T_174455 : UInt<2>[2]
+ T_174455[0] := UInt<2>(2)
+ T_174455[1] := UInt<2>(3)
+ wire T_174456 : UInt<2>[1]
+ T_174456[0] := UInt<2>(3)
+ wire T_174457 : UInt<3>[3]
+ T_174457[0] := UInt<3>(0)
+ T_174457[1] := UInt<3>(1)
+ T_174457[2] := UInt<3>(2)
+ wire T_174458 : UInt<2>[2]
+ T_174458[0] := UInt<2>(0)
+ T_174458[1] := UInt<2>(1)
+ wire T_174459 : UInt<2>[3]
+ T_174459[0] := UInt<2>(1)
+ T_174459[1] := UInt<2>(2)
+ T_174459[2] := UInt<2>(3)
+ wire T_174460 : UInt<2>[2]
+ T_174460[0] := UInt<2>(2)
+ T_174460[1] := UInt<2>(3)
+ wire T_174461 : UInt<2>[1]
+ T_174461[0] := UInt<2>(3)
+ wire incoherent : UInt<1>[1]
+ incoherent[0] := T_174462
+ wire T_174463 : UInt<3>[3]
+ T_174463[0] := UInt<3>(0)
+ T_174463[1] := UInt<3>(1)
+ T_174463[2] := UInt<3>(2)
+ wire T_174464 : UInt<0>[1]
+ T_174464[0] := UInt<0>(0)
+ wire T_174465 : UInt<2>[2]
+ T_174465[0] := UInt<2>(1)
+ T_174465[1] := UInt<2>(2)
+ wire T_174466 : UInt<2>[2]
+ T_174466[0] := UInt<2>(1)
+ T_174466[1] := UInt<2>(2)
+ wire T_174467 : UInt<2>[1]
+ T_174467[0] := UInt<2>(2)
+ wire T_174468 : UInt<3>[3]
+ T_174468[0] := UInt<3>(0)
+ T_174468[1] := UInt<3>(1)
+ T_174468[2] := UInt<3>(2)
+ wire T_174469 : UInt<0>[1]
+ T_174469[0] := UInt<0>(0)
+ wire T_174470 : UInt<2>[2]
+ T_174470[0] := UInt<2>(1)
+ T_174470[1] := UInt<2>(2)
+ wire T_174471 : UInt<2>[2]
+ T_174471[0] := UInt<2>(1)
+ T_174471[1] := UInt<2>(2)
+ wire T_174472 : UInt<2>[1]
+ T_174472[0] := UInt<2>(2)
+ wire T_174473 : UInt<3>[3]
+ T_174473[0] := UInt<3>(0)
+ T_174473[1] := UInt<3>(1)
+ T_174473[2] := UInt<3>(2)
+ wire T_174474 : UInt<0>[1]
+ T_174474[0] := UInt<0>(0)
+ wire T_174475 : UInt<2>[2]
+ T_174475[0] := UInt<2>(1)
+ T_174475[1] := UInt<2>(2)
+ wire T_174476 : UInt<2>[2]
+ T_174476[0] := UInt<2>(1)
+ T_174476[1] := UInt<2>(2)
+ wire T_174477 : UInt<2>[1]
+ T_174477[0] := UInt<2>(2)
+ wire T_174478 : UInt<3>[3]
+ T_174478[0] := UInt<3>(0)
+ T_174478[1] := UInt<3>(1)
+ T_174478[2] := UInt<3>(2)
+ wire T_174479 : UInt<0>[1]
+ T_174479[0] := UInt<0>(0)
+ wire T_174480 : UInt<2>[2]
+ T_174480[0] := UInt<2>(1)
+ T_174480[1] := UInt<2>(2)
+ wire T_174481 : UInt<2>[2]
+ T_174481[0] := UInt<2>(1)
+ T_174481[1] := UInt<2>(2)
+ wire T_174482 : UInt<2>[1]
+ T_174482[0] := UInt<2>(2)
+ wire T_174483 : UInt<3>[3]
+ T_174483[0] := UInt<3>(0)
+ T_174483[1] := UInt<3>(1)
+ T_174483[2] := UInt<3>(2)
+ wire T_174484 : UInt<0>[1]
+ T_174484[0] := UInt<0>(0)
+ wire T_174485 : UInt<2>[2]
+ T_174485[0] := UInt<2>(1)
+ T_174485[1] := UInt<2>(2)
+ wire T_174486 : UInt<2>[2]
+ T_174486[0] := UInt<2>(1)
+ T_174486[1] := UInt<2>(2)
+ wire T_174487 : UInt<2>[1]
+ T_174487[0] := UInt<2>(2)
+ wire T_174488 : UInt<3>[3]
+ T_174488[0] := UInt<3>(0)
+ T_174488[1] := UInt<3>(1)
+ T_174488[2] := UInt<3>(2)
+ wire T_174489 : UInt<0>[1]
+ T_174489[0] := UInt<0>(0)
+ wire T_174490 : UInt<2>[2]
+ T_174490[0] := UInt<2>(1)
+ T_174490[1] := UInt<2>(2)
+ wire T_174491 : UInt<2>[2]
+ T_174491[0] := UInt<2>(1)
+ T_174491[1] := UInt<2>(2)
+ wire T_174492 : UInt<2>[1]
+ T_174492[0] := UInt<2>(2)
+ wire T_174493 : UInt<3>[3]
+ T_174493[0] := UInt<3>(0)
+ T_174493[1] := UInt<3>(1)
+ T_174493[2] := UInt<3>(2)
+ wire T_174494 : UInt<0>[1]
+ T_174494[0] := UInt<0>(0)
+ wire T_174495 : UInt<2>[2]
+ T_174495[0] := UInt<2>(1)
+ T_174495[1] := UInt<2>(2)
+ wire T_174496 : UInt<2>[2]
+ T_174496[0] := UInt<2>(1)
+ T_174496[1] := UInt<2>(2)
+ wire T_174497 : UInt<2>[1]
+ T_174497[0] := UInt<2>(2)
+ wire T_174498 : UInt<3>[3]
+ T_174498[0] := UInt<3>(0)
+ T_174498[1] := UInt<3>(1)
+ T_174498[2] := UInt<3>(2)
+ wire T_174499 : UInt<0>[1]
+ T_174499[0] := UInt<0>(0)
+ wire T_174500 : UInt<2>[2]
+ T_174500[0] := UInt<2>(1)
+ T_174500[1] := UInt<2>(2)
+ wire T_174501 : UInt<2>[2]
+ T_174501[0] := UInt<2>(1)
+ T_174501[1] := UInt<2>(2)
+ wire T_174502 : UInt<2>[1]
+ T_174502[0] := UInt<2>(2)
+ wire T_174503 : UInt<3>[3]
+ T_174503[0] := UInt<3>(0)
+ T_174503[1] := UInt<3>(1)
+ T_174503[2] := UInt<3>(2)
+ wire T_174504 : UInt<0>[1]
+ T_174504[0] := UInt<0>(0)
+ wire T_174505 : UInt<2>[2]
+ T_174505[0] := UInt<2>(1)
+ T_174505[1] := UInt<2>(2)
+ wire T_174506 : UInt<2>[2]
+ T_174506[0] := UInt<2>(1)
+ T_174506[1] := UInt<2>(2)
+ wire T_174507 : UInt<2>[1]
+ T_174507[0] := UInt<2>(2)
+ wire T_174508 : UInt<3>[3]
+ T_174508[0] := UInt<3>(0)
+ T_174508[1] := UInt<3>(1)
+ T_174508[2] := UInt<3>(2)
+ wire T_174509 : UInt<2>[2]
+ T_174509[0] := UInt<2>(0)
+ T_174509[1] := UInt<2>(1)
+ wire T_174510 : UInt<2>[3]
+ T_174510[0] := UInt<2>(1)
+ T_174510[1] := UInt<2>(2)
+ T_174510[2] := UInt<2>(3)
+ wire T_174511 : UInt<2>[2]
+ T_174511[0] := UInt<2>(2)
+ T_174511[1] := UInt<2>(3)
+ wire T_174512 : UInt<2>[1]
+ T_174512[0] := UInt<2>(3)
+ wire T_174513 : UInt<3>[3]
+ T_174513[0] := UInt<3>(0)
+ T_174513[1] := UInt<3>(1)
+ T_174513[2] := UInt<3>(2)
+ wire T_174514 : UInt<2>[2]
+ T_174514[0] := UInt<2>(0)
+ T_174514[1] := UInt<2>(1)
+ wire T_174515 : UInt<2>[3]
+ T_174515[0] := UInt<2>(1)
+ T_174515[1] := UInt<2>(2)
+ T_174515[2] := UInt<2>(3)
+ wire T_174516 : UInt<2>[2]
+ T_174516[0] := UInt<2>(2)
+ T_174516[1] := UInt<2>(3)
+ wire T_174517 : UInt<2>[1]
+ T_174517[0] := UInt<2>(3)
+ wire T_174518 : UInt<3>[3]
+ T_174518[0] := UInt<3>(0)
+ T_174518[1] := UInt<3>(1)
+ T_174518[2] := UInt<3>(2)
+ wire T_174519 : UInt<0>[1]
+ T_174519[0] := UInt<0>(0)
+ wire T_174520 : UInt<2>[2]
+ T_174520[0] := UInt<2>(1)
+ T_174520[1] := UInt<2>(2)
+ wire T_174521 : UInt<2>[2]
+ T_174521[0] := UInt<2>(1)
+ T_174521[1] := UInt<2>(2)
+ wire T_174522 : UInt<2>[1]
+ T_174522[0] := UInt<2>(2)
+ wire T_174523 : UInt<3>[3]
+ T_174523[0] := UInt<3>(0)
+ T_174523[1] := UInt<3>(1)
+ T_174523[2] := UInt<3>(2)
+ wire T_174524 : UInt<2>[2]
+ T_174524[0] := UInt<2>(0)
+ T_174524[1] := UInt<2>(1)
+ wire T_174525 : UInt<2>[3]
+ T_174525[0] := UInt<2>(1)
+ T_174525[1] := UInt<2>(2)
+ T_174525[2] := UInt<2>(3)
+ wire T_174526 : UInt<2>[2]
+ T_174526[0] := UInt<2>(2)
+ T_174526[1] := UInt<2>(3)
+ wire T_174527 : UInt<2>[1]
+ T_174527[0] := UInt<2>(3)
+ wire T_174528 : UInt<3>[3]
+ T_174528[0] := UInt<3>(0)
+ T_174528[1] := UInt<3>(1)
+ T_174528[2] := UInt<3>(2)
+ wire T_174529 : UInt<2>[2]
+ T_174529[0] := UInt<2>(0)
+ T_174529[1] := UInt<2>(1)
+ wire T_174530 : UInt<2>[3]
+ T_174530[0] := UInt<2>(1)
+ T_174530[1] := UInt<2>(2)
+ T_174530[2] := UInt<2>(3)
+ wire T_174531 : UInt<2>[2]
+ T_174531[0] := UInt<2>(2)
+ T_174531[1] := UInt<2>(3)
+ wire T_174532 : UInt<2>[1]
+ T_174532[0] := UInt<2>(3)
+ wire T_174533 : UInt<3>[3]
+ T_174533[0] := UInt<3>(0)
+ T_174533[1] := UInt<3>(1)
+ T_174533[2] := UInt<3>(2)
+ wire T_174534 : UInt<0>[1]
+ T_174534[0] := UInt<0>(0)
+ wire T_174535 : UInt<2>[2]
+ T_174535[0] := UInt<2>(1)
+ T_174535[1] := UInt<2>(2)
+ wire T_174536 : UInt<2>[2]
+ T_174536[0] := UInt<2>(1)
+ T_174536[1] := UInt<2>(2)
+ wire T_174537 : UInt<2>[1]
+ T_174537[0] := UInt<2>(2)
+ wire T_174538 : UInt<3>[3]
+ T_174538[0] := UInt<3>(0)
+ T_174538[1] := UInt<3>(1)
+ T_174538[2] := UInt<3>(2)
+ wire T_174539 : UInt<2>[2]
+ T_174539[0] := UInt<2>(0)
+ T_174539[1] := UInt<2>(1)
+ wire T_174540 : UInt<2>[3]
+ T_174540[0] := UInt<2>(1)
+ T_174540[1] := UInt<2>(2)
+ T_174540[2] := UInt<2>(3)
+ wire T_174541 : UInt<2>[2]
+ T_174541[0] := UInt<2>(2)
+ T_174541[1] := UInt<2>(3)
+ wire T_174542 : UInt<2>[1]
+ T_174542[0] := UInt<2>(3)
+ wire T_174543 : UInt<3>[3]
+ T_174543[0] := UInt<3>(0)
+ T_174543[1] := UInt<3>(1)
+ T_174543[2] := UInt<3>(2)
+ wire T_174544 : UInt<2>[2]
+ T_174544[0] := UInt<2>(0)
+ T_174544[1] := UInt<2>(1)
+ wire T_174545 : UInt<2>[3]
+ T_174545[0] := UInt<2>(1)
+ T_174545[1] := UInt<2>(2)
+ T_174545[2] := UInt<2>(3)
+ wire T_174546 : UInt<2>[2]
+ T_174546[0] := UInt<2>(2)
+ T_174546[1] := UInt<2>(3)
+ wire T_174547 : UInt<2>[1]
+ T_174547[0] := UInt<2>(3)
+ wire T_174548 : UInt<3>[3]
+ T_174548[0] := UInt<3>(0)
+ T_174548[1] := UInt<3>(1)
+ T_174548[2] := UInt<3>(2)
+ wire T_174549 : UInt<0>[1]
+ T_174549[0] := UInt<0>(0)
+ wire T_174550 : UInt<2>[2]
+ T_174550[0] := UInt<2>(1)
+ T_174550[1] := UInt<2>(2)
+ wire T_174551 : UInt<2>[2]
+ T_174551[0] := UInt<2>(1)
+ T_174551[1] := UInt<2>(2)
+ wire T_174552 : UInt<2>[1]
+ T_174552[0] := UInt<2>(2)
+ wire T_174553 : UInt<3>[3]
+ T_174553[0] := UInt<3>(0)
+ T_174553[1] := UInt<3>(1)
+ T_174553[2] := UInt<3>(2)
+ wire T_174554 : UInt<2>[2]
+ T_174554[0] := UInt<2>(0)
+ T_174554[1] := UInt<2>(1)
+ wire T_174555 : UInt<2>[3]
+ T_174555[0] := UInt<2>(1)
+ T_174555[1] := UInt<2>(2)
+ T_174555[2] := UInt<2>(3)
+ wire T_174556 : UInt<2>[2]
+ T_174556[0] := UInt<2>(2)
+ T_174556[1] := UInt<2>(3)
+ wire T_174557 : UInt<2>[1]
+ T_174557[0] := UInt<2>(3)
+ wire T_174558 : UInt<3>[3]
+ T_174558[0] := UInt<3>(0)
+ T_174558[1] := UInt<3>(1)
+ T_174558[2] := UInt<3>(2)
+ wire T_174559 : UInt<2>[2]
+ T_174559[0] := UInt<2>(0)
+ T_174559[1] := UInt<2>(1)
+ wire T_174560 : UInt<2>[3]
+ T_174560[0] := UInt<2>(1)
+ T_174560[1] := UInt<2>(2)
+ T_174560[2] := UInt<2>(3)
+ wire T_174561 : UInt<2>[2]
+ T_174561[0] := UInt<2>(2)
+ T_174561[1] := UInt<2>(3)
+ wire T_174562 : UInt<2>[1]
+ T_174562[0] := UInt<2>(3)
+ wire T_174563 : UInt<3>[3]
+ T_174563[0] := UInt<3>(0)
+ T_174563[1] := UInt<3>(1)
+ T_174563[2] := UInt<3>(2)
+ wire T_174564 : UInt<0>[1]
+ T_174564[0] := UInt<0>(0)
+ wire T_174565 : UInt<2>[2]
+ T_174565[0] := UInt<2>(1)
+ T_174565[1] := UInt<2>(2)
+ wire T_174566 : UInt<2>[2]
+ T_174566[0] := UInt<2>(1)
+ T_174566[1] := UInt<2>(2)
+ wire T_174567 : UInt<2>[1]
+ T_174567[0] := UInt<2>(2)
+ wire T_174568 : UInt<3>[3]
+ T_174568[0] := UInt<3>(0)
+ T_174568[1] := UInt<3>(1)
+ T_174568[2] := UInt<3>(2)
+ wire T_174569 : UInt<2>[2]
+ T_174569[0] := UInt<2>(0)
+ T_174569[1] := UInt<2>(1)
+ wire T_174570 : UInt<2>[3]
+ T_174570[0] := UInt<2>(1)
+ T_174570[1] := UInt<2>(2)
+ T_174570[2] := UInt<2>(3)
+ wire T_174571 : UInt<2>[2]
+ T_174571[0] := UInt<2>(2)
+ T_174571[1] := UInt<2>(3)
+ wire T_174572 : UInt<2>[1]
+ T_174572[0] := UInt<2>(3)
+ wire T_174573 : UInt<3>[3]
+ T_174573[0] := UInt<3>(0)
+ T_174573[1] := UInt<3>(1)
+ T_174573[2] := UInt<3>(2)
+ wire T_174574 : UInt<2>[2]
+ T_174574[0] := UInt<2>(0)
+ T_174574[1] := UInt<2>(1)
+ wire T_174575 : UInt<2>[3]
+ T_174575[0] := UInt<2>(1)
+ T_174575[1] := UInt<2>(2)
+ T_174575[2] := UInt<2>(3)
+ wire T_174576 : UInt<2>[2]
+ T_174576[0] := UInt<2>(2)
+ T_174576[1] := UInt<2>(3)
+ wire T_174577 : UInt<2>[1]
+ T_174577[0] := UInt<2>(3)
+ wire T_174578 : UInt<3>[3]
+ T_174578[0] := UInt<3>(0)
+ T_174578[1] := UInt<3>(1)
+ T_174578[2] := UInt<3>(2)
+ wire T_174579 : UInt<0>[1]
+ T_174579[0] := UInt<0>(0)
+ wire T_174580 : UInt<2>[2]
+ T_174580[0] := UInt<2>(1)
+ T_174580[1] := UInt<2>(2)
+ wire T_174581 : UInt<2>[2]
+ T_174581[0] := UInt<2>(1)
+ T_174581[1] := UInt<2>(2)
+ wire T_174582 : UInt<2>[1]
+ T_174582[0] := UInt<2>(2)
+ wire T_174583 : UInt<3>[3]
+ T_174583[0] := UInt<3>(0)
+ T_174583[1] := UInt<3>(1)
+ T_174583[2] := UInt<3>(2)
+ wire T_174584 : UInt<2>[2]
+ T_174584[0] := UInt<2>(0)
+ T_174584[1] := UInt<2>(1)
+ wire T_174585 : UInt<2>[3]
+ T_174585[0] := UInt<2>(1)
+ T_174585[1] := UInt<2>(2)
+ T_174585[2] := UInt<2>(3)
+ wire T_174586 : UInt<2>[2]
+ T_174586[0] := UInt<2>(2)
+ T_174586[1] := UInt<2>(3)
+ wire T_174587 : UInt<2>[1]
+ T_174587[0] := UInt<2>(3)
+ wire T_174588 : UInt<3>[3]
+ T_174588[0] := UInt<3>(0)
+ T_174588[1] := UInt<3>(1)
+ T_174588[2] := UInt<3>(2)
+ wire T_174589 : UInt<2>[2]
+ T_174589[0] := UInt<2>(0)
+ T_174589[1] := UInt<2>(1)
+ wire T_174590 : UInt<2>[3]
+ T_174590[0] := UInt<2>(1)
+ T_174590[1] := UInt<2>(2)
+ T_174590[2] := UInt<2>(3)
+ wire T_174591 : UInt<2>[2]
+ T_174591[0] := UInt<2>(2)
+ T_174591[1] := UInt<2>(3)
+ wire T_174592 : UInt<2>[1]
+ T_174592[0] := UInt<2>(3)
+ wire T_174593 : UInt<3>[3]
+ T_174593[0] := UInt<3>(0)
+ T_174593[1] := UInt<3>(1)
+ T_174593[2] := UInt<3>(2)
+ wire T_174594 : UInt<0>[1]
+ T_174594[0] := UInt<0>(0)
+ wire T_174595 : UInt<2>[2]
+ T_174595[0] := UInt<2>(1)
+ T_174595[1] := UInt<2>(2)
+ wire T_174596 : UInt<2>[2]
+ T_174596[0] := UInt<2>(1)
+ T_174596[1] := UInt<2>(2)
+ wire T_174597 : UInt<2>[1]
+ T_174597[0] := UInt<2>(2)
+ wire T_174598 : UInt<3>[3]
+ T_174598[0] := UInt<3>(0)
+ T_174598[1] := UInt<3>(1)
+ T_174598[2] := UInt<3>(2)
+ wire T_174599 : UInt<2>[2]
+ T_174599[0] := UInt<2>(0)
+ T_174599[1] := UInt<2>(1)
+ wire T_174600 : UInt<2>[3]
+ T_174600[0] := UInt<2>(1)
+ T_174600[1] := UInt<2>(2)
+ T_174600[2] := UInt<2>(3)
+ wire T_174601 : UInt<2>[2]
+ T_174601[0] := UInt<2>(2)
+ T_174601[1] := UInt<2>(3)
+ wire T_174602 : UInt<2>[1]
+ T_174602[0] := UInt<2>(3)
+ wire T_174603 : UInt<3>[3]
+ T_174603[0] := UInt<3>(0)
+ T_174603[1] := UInt<3>(1)
+ T_174603[2] := UInt<3>(2)
+ wire T_174604 : UInt<2>[2]
+ T_174604[0] := UInt<2>(0)
+ T_174604[1] := UInt<2>(1)
+ wire T_174605 : UInt<2>[3]
+ T_174605[0] := UInt<2>(1)
+ T_174605[1] := UInt<2>(2)
+ T_174605[2] := UInt<2>(3)
+ wire T_174606 : UInt<2>[2]
+ T_174606[0] := UInt<2>(2)
+ T_174606[1] := UInt<2>(3)
+ wire T_174607 : UInt<2>[1]
+ T_174607[0] := UInt<2>(3)
+ wire T_174608 : UInt<3>[3]
+ T_174608[0] := UInt<3>(0)
+ T_174608[1] := UInt<3>(1)
+ T_174608[2] := UInt<3>(2)
+ wire T_174609 : UInt<0>[1]
+ T_174609[0] := UInt<0>(0)
+ wire T_174610 : UInt<2>[2]
+ T_174610[0] := UInt<2>(1)
+ T_174610[1] := UInt<2>(2)
+ wire T_174611 : UInt<2>[2]
+ T_174611[0] := UInt<2>(1)
+ T_174611[1] := UInt<2>(2)
+ wire T_174612 : UInt<2>[1]
+ T_174612[0] := UInt<2>(2)
+ wire T_174613 : UInt<3>[3]
+ T_174613[0] := UInt<3>(0)
+ T_174613[1] := UInt<3>(1)
+ T_174613[2] := UInt<3>(2)
+ wire T_174614 : UInt<2>[2]
+ T_174614[0] := UInt<2>(0)
+ T_174614[1] := UInt<2>(1)
+ wire T_174615 : UInt<2>[3]
+ T_174615[0] := UInt<2>(1)
+ T_174615[1] := UInt<2>(2)
+ T_174615[2] := UInt<2>(3)
+ wire T_174616 : UInt<2>[2]
+ T_174616[0] := UInt<2>(2)
+ T_174616[1] := UInt<2>(3)
+ wire T_174617 : UInt<2>[1]
+ T_174617[0] := UInt<2>(3)
+ wire T_174618 : UInt<3>[3]
+ T_174618[0] := UInt<3>(0)
+ T_174618[1] := UInt<3>(1)
+ T_174618[2] := UInt<3>(2)
+ wire T_174619 : UInt<2>[2]
+ T_174619[0] := UInt<2>(0)
+ T_174619[1] := UInt<2>(1)
+ wire T_174620 : UInt<2>[3]
+ T_174620[0] := UInt<2>(1)
+ T_174620[1] := UInt<2>(2)
+ T_174620[2] := UInt<2>(3)
+ wire T_174621 : UInt<2>[2]
+ T_174621[0] := UInt<2>(2)
+ T_174621[1] := UInt<2>(3)
+ wire T_174622 : UInt<2>[1]
+ T_174622[0] := UInt<2>(3)
+ wire T_174623 : UInt<3>[3]
+ T_174623[0] := UInt<3>(0)
+ T_174623[1] := UInt<3>(1)
+ T_174623[2] := UInt<3>(2)
+ wire T_174624 : UInt<0>[1]
+ T_174624[0] := UInt<0>(0)
+ wire T_174625 : UInt<2>[2]
+ T_174625[0] := UInt<2>(1)
+ T_174625[1] := UInt<2>(2)
+ wire T_174626 : UInt<2>[2]
+ T_174626[0] := UInt<2>(1)
+ T_174626[1] := UInt<2>(2)
+ wire T_174627 : UInt<2>[1]
+ T_174627[0] := UInt<2>(2)
+ wb.resp.valid := UInt<1>(0)
+ wb.req.valid := UInt<1>(0)
+ meta.write.valid := UInt<1>(0)
+ meta.resp.valid := UInt<1>(0)
+ meta.read.valid := UInt<1>(0)
+ data.write.valid := UInt<1>(0)
+ data.resp.valid := UInt<1>(0)
+ data.read.valid := UInt<1>(0)
+ outer.release.valid := UInt<1>(0)
+ outer.probe.valid := UInt<1>(0)
+ outer.grant.valid := UInt<1>(0)
+ outer.acquire.valid := UInt<1>(0)
+ inner.release.valid := UInt<1>(0)
+ inner.probe.valid := UInt<1>(0)
+ inner.finish.valid := UInt<1>(0)
+ inner.grant.valid := UInt<1>(0)
+ inner.acquire.valid := UInt<1>(0)
+ reg state : UInt<4>
+ onreset state := UInt<4>(0)
+ wire T_174628 : UInt<3>[3]
+ T_174628[0] := UInt<3>(0)
+ T_174628[1] := UInt<3>(1)
+ T_174628[2] := UInt<3>(2)
+ wire T_174629 : UInt<2>[2]
+ T_174629[0] := UInt<2>(0)
+ T_174629[1] := UInt<2>(1)
+ wire T_174630 : UInt<2>[3]
+ T_174630[0] := UInt<2>(1)
+ T_174630[1] := UInt<2>(2)
+ T_174630[2] := UInt<2>(3)
+ wire T_174631 : UInt<2>[2]
+ T_174631[0] := UInt<2>(2)
+ T_174631[1] := UInt<2>(3)
+ wire T_174632 : UInt<2>[1]
+ T_174632[0] := UInt<2>(3)
+ wire T_174633 : UInt<3>[3]
+ T_174633[0] := UInt<3>(0)
+ T_174633[1] := UInt<3>(1)
+ T_174633[2] := UInt<3>(2)
+ wire T_174634 : UInt<2>[2]
+ T_174634[0] := UInt<2>(0)
+ T_174634[1] := UInt<2>(1)
+ wire T_174635 : UInt<2>[3]
+ T_174635[0] := UInt<2>(1)
+ T_174635[1] := UInt<2>(2)
+ T_174635[2] := UInt<2>(3)
+ wire T_174636 : UInt<2>[2]
+ T_174636[0] := UInt<2>(2)
+ T_174636[1] := UInt<2>(3)
+ wire T_174637 : UInt<2>[1]
+ T_174637[0] := UInt<2>(3)
+ reg xact : {addr_block : UInt<26>, client_xact_id : UInt<1>, addr_beat : UInt<2>, data : UInt<128>, is_builtin_type : UInt<1>, a_type : UInt<3>, union : UInt<17>, client_id : UInt<2>}
+ wire T_174638 : UInt<128>[4]
+ T_174638[0] := UInt<128>(0)
+ T_174638[1] := UInt<128>(0)
+ T_174638[2] := UInt<128>(0)
+ T_174638[3] := UInt<128>(0)
+ reg data_buffer : UInt<128>[4]
+ onreset data_buffer := T_174638
+ wire T_174639 : UInt<16>[4]
+ T_174639[0] := UInt<16>(0)
+ T_174639[1] := UInt<16>(0)
+ T_174639[2] := UInt<16>(0)
+ T_174639[3] := UInt<16>(0)
+ reg wmask_buffer : UInt<16>[4]
+ onreset wmask_buffer := T_174639
+ reg xact_tag_match : UInt<1>
+ reg xact_way_en : UInt<8>
+ wire T_174640 : UInt<3>[3]
+ T_174640[0] := UInt<3>(0)
+ T_174640[1] := UInt<3>(1)
+ T_174640[2] := UInt<3>(2)
+ wire T_174641 : UInt<2>[2]
+ T_174641[0] := UInt<2>(0)
+ T_174641[1] := UInt<2>(1)
+ wire T_174642 : UInt<2>[3]
+ T_174642[0] := UInt<2>(1)
+ T_174642[1] := UInt<2>(2)
+ T_174642[2] := UInt<2>(3)
+ wire T_174643 : UInt<2>[2]
+ T_174643[0] := UInt<2>(2)
+ T_174643[1] := UInt<2>(3)
+ wire T_174644 : UInt<2>[1]
+ T_174644[0] := UInt<2>(3)
+ wire T_174645 : UInt<3>[3]
+ T_174645[0] := UInt<3>(0)
+ T_174645[1] := UInt<3>(1)
+ T_174645[2] := UInt<3>(2)
+ wire T_174646 : UInt<2>[2]
+ T_174646[0] := UInt<2>(0)
+ T_174646[1] := UInt<2>(1)
+ wire T_174647 : UInt<2>[3]
+ T_174647[0] := UInt<2>(1)
+ T_174647[1] := UInt<2>(2)
+ T_174647[2] := UInt<2>(3)
+ wire T_174648 : UInt<2>[2]
+ T_174648[0] := UInt<2>(2)
+ T_174648[1] := UInt<2>(3)
+ wire T_174649 : UInt<2>[1]
+ T_174649[0] := UInt<2>(3)
+ wire T_174650 : UInt<3>[3]
+ T_174650[0] := UInt<3>(0)
+ T_174650[1] := UInt<3>(1)
+ T_174650[2] := UInt<3>(2)
+ wire T_174651 : UInt<0>[1]
+ T_174651[0] := UInt<0>(0)
+ wire T_174652 : UInt<2>[2]
+ T_174652[0] := UInt<2>(1)
+ T_174652[1] := UInt<2>(2)
+ wire T_174653 : UInt<2>[2]
+ T_174653[0] := UInt<2>(1)
+ T_174653[1] := UInt<2>(2)
+ wire T_174654 : UInt<2>[1]
+ T_174654[0] := UInt<2>(2)
+ wire T_174655 : UInt<3>[3]
+ T_174655[0] := UInt<3>(0)
+ T_174655[1] := UInt<3>(1)
+ T_174655[2] := UInt<3>(2)
+ wire T_174656 : UInt<2>[2]
+ T_174656[0] := UInt<2>(0)
+ T_174656[1] := UInt<2>(1)
+ wire T_174657 : UInt<2>[3]
+ T_174657[0] := UInt<2>(1)
+ T_174657[1] := UInt<2>(2)
+ T_174657[2] := UInt<2>(3)
+ wire T_174658 : UInt<2>[2]
+ T_174658[0] := UInt<2>(2)
+ T_174658[1] := UInt<2>(3)
+ wire T_174659 : UInt<2>[1]
+ T_174659[0] := UInt<2>(3)
+ wire T_174660 : UInt<3>[3]
+ T_174660[0] := UInt<3>(0)
+ T_174660[1] := UInt<3>(1)
+ T_174660[2] := UInt<3>(2)
+ wire T_174661 : UInt<2>[2]
+ T_174661[0] := UInt<2>(0)
+ T_174661[1] := UInt<2>(1)
+ wire T_174662 : UInt<2>[3]
+ T_174662[0] := UInt<2>(1)
+ T_174662[1] := UInt<2>(2)
+ T_174662[2] := UInt<2>(3)
+ wire T_174663 : UInt<2>[2]
+ T_174663[0] := UInt<2>(2)
+ T_174663[1] := UInt<2>(3)
+ wire T_174664 : UInt<2>[1]
+ T_174664[0] := UInt<2>(3)
+ wire T_174665 : UInt<3>[3]
+ T_174665[0] := UInt<3>(0)
+ T_174665[1] := UInt<3>(1)
+ T_174665[2] := UInt<3>(2)
+ wire T_174666 : UInt<0>[1]
+ T_174666[0] := UInt<0>(0)
+ wire T_174667 : UInt<2>[2]
+ T_174667[0] := UInt<2>(1)
+ T_174667[1] := UInt<2>(2)
+ wire T_174668 : UInt<2>[2]
+ T_174668[0] := UInt<2>(1)
+ T_174668[1] := UInt<2>(2)
+ wire T_174669 : UInt<2>[1]
+ T_174669[0] := UInt<2>(2)
+ reg xact_old_meta : {tag : UInt<14>, coh : {inner : {sharers : UInt<1>, makeGrant$default$3 : UInt<1>, makeGrant$default$4 : UInt<1>}, outer : {state : UInt<2>, makeRelease$default$2 : UInt<1>, makeRelease$default$3 : UInt<1>, makeVoluntaryRelease$default$4 : UInt<1>, makeVoluntaryRelease$default$5 : UInt<1>, makeVoluntaryWriteback$default$3 : UInt<1>, makeVoluntaryWriteback$default$4 : UInt<1>}}}
+ wire T_174670 : UInt<3>[3]
+ T_174670[0] := UInt<3>(0)
+ T_174670[1] := UInt<3>(1)
+ T_174670[2] := UInt<3>(2)
+ wire T_174671 : UInt<2>[2]
+ T_174671[0] := UInt<2>(0)
+ T_174671[1] := UInt<2>(1)
+ wire T_174672 : UInt<2>[3]
+ T_174672[0] := UInt<2>(1)
+ T_174672[1] := UInt<2>(2)
+ T_174672[2] := UInt<2>(3)
+ wire T_174673 : UInt<2>[2]
+ T_174673[0] := UInt<2>(2)
+ T_174673[1] := UInt<2>(3)
+ wire T_174674 : UInt<2>[1]
+ T_174674[0] := UInt<2>(3)
+ wire T_174675 : UInt<3>[3]
+ T_174675[0] := UInt<3>(0)
+ T_174675[1] := UInt<3>(1)
+ T_174675[2] := UInt<3>(2)
+ wire T_174676 : UInt<2>[2]
+ T_174676[0] := UInt<2>(0)
+ T_174676[1] := UInt<2>(1)
+ wire T_174677 : UInt<2>[3]
+ T_174677[0] := UInt<2>(1)
+ T_174677[1] := UInt<2>(2)
+ T_174677[2] := UInt<2>(3)
+ wire T_174678 : UInt<2>[2]
+ T_174678[0] := UInt<2>(2)
+ T_174678[1] := UInt<2>(3)
+ wire T_174679 : UInt<2>[1]
+ T_174679[0] := UInt<2>(3)
+ wire T_174680 : UInt<3>[3]
+ T_174680[0] := UInt<3>(0)
+ T_174680[1] := UInt<3>(1)
+ T_174680[2] := UInt<3>(2)
+ wire T_174681 : UInt<0>[1]
+ T_174681[0] := UInt<0>(0)
+ wire T_174682 : UInt<2>[2]
+ T_174682[0] := UInt<2>(1)
+ T_174682[1] := UInt<2>(2)
+ wire T_174683 : UInt<2>[2]
+ T_174683[0] := UInt<2>(1)
+ T_174683[1] := UInt<2>(2)
+ wire T_174684 : UInt<2>[1]
+ T_174684[0] := UInt<2>(2)
+ reg pending_coh : {inner : {sharers : UInt<1>, makeGrant$default$3 : UInt<1>, makeGrant$default$4 : UInt<1>}, outer : {state : UInt<2>, makeRelease$default$2 : UInt<1>, makeRelease$default$3 : UInt<1>, makeVoluntaryRelease$default$4 : UInt<1>, makeVoluntaryRelease$default$5 : UInt<1>, makeVoluntaryWriteback$default$3 : UInt<1>, makeVoluntaryWriteback$default$4 : UInt<1>}}
+ wire T_174685 : UInt<3>[3]
+ T_174685[0] := UInt<3>(0)
+ T_174685[1] := UInt<3>(1)
+ T_174685[2] := UInt<3>(2)
+ wire T_174686 : UInt<2>[2]
+ T_174686[0] := UInt<2>(0)
+ T_174686[1] := UInt<2>(1)
+ wire T_174687 : UInt<2>[3]
+ T_174687[0] := UInt<2>(1)
+ T_174687[1] := UInt<2>(2)
+ T_174687[2] := UInt<2>(3)
+ wire T_174688 : UInt<2>[2]
+ T_174688[0] := UInt<2>(2)
+ T_174688[1] := UInt<2>(3)
+ wire T_174689 : UInt<2>[1]
+ T_174689[0] := UInt<2>(3)
+ inst ignt_q of Queue_86917
+ node T_174690 = and(inner.acquire.ready, inner.acquire.valid)
+ node T_174691 = and(UInt<1>(1), inner.acquire.bits.is_builtin_type)
+ wire T_174692 : UInt<3>[1]
+ T_174692[0] := UInt<3>(3)
+ node T_174693 = eq(T_174692[0], inner.acquire.bits.a_type)
+ node T_174694 = or(UInt<1>(0), T_174693)
+ node T_174695 = and(T_174691, T_174694)
+ node T_174696 = and(T_174690, T_174695)
+ reg T_174697 : UInt<2>
+ onreset T_174697 := UInt<2>(0)
+ when T_174696 :
+ node T_174698 = eq(T_174697, UInt<2>(3))
+ node T_174699 = and(UInt<1>(0), T_174698)
+ node T_174700 = addw(T_174697, UInt<1>(1))
+ wire T_174701 : UInt<2>
+ T_174701 := T_174700
+ when T_174699 : T_174701 := UInt<1>(0)
+ T_174697 := T_174701
+ node T_174702 = and(T_174696, T_174698)
+ wire T_174703 : UInt<1>
+ T_174703 := UInt<1>(0)
+ when T_174695 : T_174703 := T_174697
+ wire iacq_data_done : UInt<1>
+ iacq_data_done := T_174690
+ when T_174695 : iacq_data_done := T_174702
+ reg T_174704 : UInt<1>
+ onreset T_174704 := UInt<1>(0)
+ node T_174705 = and(inner.probe.ready, inner.probe.valid)
+ node T_174706 = and(T_174705, UInt<1>(0))
+ reg T_174707 : UInt<2>
+ onreset T_174707 := UInt<2>(0)
+ when T_174706 :
+ node T_174708 = eq(T_174707, UInt<2>(3))
+ node T_174709 = and(UInt<1>(0), T_174708)
+ node T_174710 = addw(T_174707, UInt<1>(1))
+ wire T_174711 : UInt<2>
+ T_174711 := T_174710
+ when T_174709 : T_174711 := UInt<1>(0)
+ T_174707 := T_174711
+ node T_174712 = and(T_174706, T_174708)
+ wire T_174713 : UInt<1>
+ T_174713 := UInt<1>(0)
+ when UInt<1>(0) : T_174713 := T_174707
+ wire T_174714 : UInt<1>
+ T_174714 := T_174705
+ when UInt<1>(0) : T_174714 := T_174712
+ node T_174715 = and(inner.release.ready, inner.release.valid)
+ node T_174716 = eq(T_174457[0], inner.release.bits.r_type)
+ node T_174717 = eq(T_174457[1], inner.release.bits.r_type)
+ node T_174718 = eq(T_174457[2], inner.release.bits.r_type)
+ node T_174719 = or(UInt<1>(0), T_174716)
+ node T_174720 = or(T_174719, T_174717)
+ node T_174721 = or(T_174720, T_174718)
+ node T_174722 = and(UInt<1>(1), T_174721)
+ node T_174723 = and(T_174715, T_174722)
+ reg T_174724 : UInt<2>
+ onreset T_174724 := UInt<2>(0)
+ when T_174723 :
+ node T_174725 = eq(T_174724, UInt<2>(3))
+ node T_174726 = and(UInt<1>(0), T_174725)
+ node T_174727 = addw(T_174724, UInt<1>(1))
+ wire T_174728 : UInt<2>
+ T_174728 := T_174727
+ when T_174726 : T_174728 := UInt<1>(0)
+ T_174724 := T_174728
+ node T_174729 = and(T_174723, T_174725)
+ wire T_174730 : UInt<1>
+ T_174730 := UInt<1>(0)
+ when T_174722 : T_174730 := T_174724
+ wire T_174731 : UInt<1>
+ T_174731 := T_174715
+ when T_174722 : T_174731 := T_174729
+ node T_174732 = and(T_174714, UInt<1>(1))
+ node T_174733 = subw(T_174704, UInt<1>(1))
+ wire T_174734 : UInt<1>
+ T_174734 := T_174733
+ when T_174732 : T_174734 := T_174704
+ node T_174735 = addw(T_174704, UInt<1>(1))
+ wire T_174736 : UInt<1>
+ T_174736 := T_174704
+ when T_174732 : T_174736 := T_174735
+ wire T_174737 : UInt<1>
+ T_174737 := T_174736
+ when T_174731 : T_174737 := T_174734
+ T_174704 := T_174737
+ node pending_irels = gt(T_174704, UInt<1>(0))
+ reg T_174738 : UInt<1>
+ onreset T_174738 := UInt<1>(0)
+ node T_174739 = and(outer.acquire.ready, outer.acquire.valid)
+ node T_174740 = and(UInt<1>(1), outer.acquire.bits.is_builtin_type)
+ wire T_174741 : UInt<3>[1]
+ T_174741[0] := UInt<3>(3)
+ node T_174742 = eq(T_174741[0], outer.acquire.bits.a_type)
+ node T_174743 = or(UInt<1>(0), T_174742)
+ node T_174744 = and(T_174740, T_174743)
+ node T_174745 = and(T_174739, T_174744)
+ reg T_174746 : UInt<2>
+ onreset T_174746 := UInt<2>(0)
+ when T_174745 :
+ node T_174747 = eq(T_174746, UInt<2>(3))
+ node T_174748 = and(UInt<1>(0), T_174747)
+ node T_174749 = addw(T_174746, UInt<1>(1))
+ wire T_174750 : UInt<2>
+ T_174750 := T_174749
+ when T_174748 : T_174750 := UInt<1>(0)
+ T_174746 := T_174750
+ node T_174751 = and(T_174745, T_174747)
+ wire oacq_data_idx : UInt<2>
+ oacq_data_idx := xact.addr_beat
+ when T_174744 : oacq_data_idx := T_174746
+ wire oacq_data_done : UInt<1>
+ oacq_data_done := T_174739
+ when T_174744 : oacq_data_done := T_174751
+ node T_174752 = and(outer.grant.ready, outer.grant.valid)
+ wire T_174753 : UInt<3>[1]
+ T_174753[0] := UInt<3>(5)
+ node T_174754 = eq(T_174753[0], outer.grant.bits.g_type)
+ node T_174755 = or(UInt<1>(0), T_174754)
+ node T_174756 = eq(T_174484[0], outer.grant.bits.g_type)
+ node T_174757 = or(UInt<1>(0), T_174756)
+ wire T_174758 : UInt<1>
+ T_174758 := T_174757
+ when outer.grant.bits.is_builtin_type : T_174758 := T_174755
+ node T_174759 = and(UInt<1>(1), T_174758)
+ node T_174760 = and(T_174752, T_174759)
+ reg T_174761 : UInt<2>
+ onreset T_174761 := UInt<2>(0)
+ when T_174760 :
+ node T_174762 = eq(T_174761, UInt<2>(3))
+ node T_174763 = and(UInt<1>(0), T_174762)
+ node T_174764 = addw(T_174761, UInt<1>(1))
+ wire T_174765 : UInt<2>
+ T_174765 := T_174764
+ when T_174763 : T_174765 := UInt<1>(0)
+ T_174761 := T_174765
+ node T_174766 = and(T_174760, T_174762)
+ wire ognt_data_idx : UInt<2>
+ ognt_data_idx := xact.addr_beat
+ when T_174759 : ognt_data_idx := T_174761
+ wire ognt_data_done : UInt<1>
+ ognt_data_done := T_174752
+ when T_174759 : ognt_data_done := T_174766
+ node T_174767 = and(oacq_data_done, UInt<1>(1))
+ node T_174768 = subw(T_174738, UInt<1>(1))
+ wire T_174769 : UInt<1>
+ T_174769 := T_174768
+ when T_174767 : T_174769 := T_174738
+ node T_174770 = addw(T_174738, UInt<1>(1))
+ wire T_174771 : UInt<1>
+ T_174771 := T_174738
+ when T_174767 : T_174771 := T_174770
+ wire T_174772 : UInt<1>
+ T_174772 := T_174771
+ when ognt_data_done : T_174772 := T_174769
+ T_174738 := T_174772
+ node pending_ognt = gt(T_174738, UInt<1>(0))
+ node T_174773 = and(inner.grant.ready, inner.grant.valid)
+ wire T_174774 : UInt<3>[1]
+ T_174774[0] := UInt<3>(5)
+ node T_174775 = eq(T_174774[0], inner.grant.bits.g_type)
+ node T_174776 = or(UInt<1>(0), T_174775)
+ node T_174777 = eq(T_174428[0], inner.grant.bits.g_type)
+ node T_174778 = eq(T_174428[1], inner.grant.bits.g_type)
+ node T_174779 = or(UInt<1>(0), T_174777)
+ node T_174780 = or(T_174779, T_174778)
+ wire T_174781 : UInt<1>
+ T_174781 := T_174780
+ when inner.grant.bits.is_builtin_type : T_174781 := T_174776
+ node T_174782 = and(UInt<1>(1), T_174781)
+ node T_174783 = and(T_174773, T_174782)
+ reg T_174784 : UInt<2>
+ onreset T_174784 := UInt<2>(0)
+ when T_174783 :
+ node T_174785 = eq(T_174784, UInt<2>(3))
+ node T_174786 = and(UInt<1>(0), T_174785)
+ node T_174787 = addw(T_174784, UInt<1>(1))
+ wire T_174788 : UInt<2>
+ T_174788 := T_174787
+ when T_174786 : T_174788 := UInt<1>(0)
+ T_174784 := T_174788
+ node T_174789 = and(T_174783, T_174785)
+ wire ignt_data_idx : UInt<2>
+ ignt_data_idx := ignt_q.deq.bits.addr_beat
+ when T_174782 : ignt_data_idx := T_174784
+ wire ignt_data_done : UInt<1>
+ ignt_data_done := T_174773
+ when T_174782 : ignt_data_done := T_174789
+ reg T_174790 : UInt<3>
+ onreset T_174790 := UInt<3>(0)
+ node T_174791 = and(inner.grant.ready, inner.grant.valid)
+ wire T_174792 : UInt<3>[1]
+ T_174792[0] := UInt<3>(5)
+ node T_174793 = eq(T_174792[0], inner.grant.bits.g_type)
+ node T_174794 = or(UInt<1>(0), T_174793)
+ node T_174795 = eq(T_174428[0], inner.grant.bits.g_type)
+ node T_174796 = eq(T_174428[1], inner.grant.bits.g_type)
+ node T_174797 = or(UInt<1>(0), T_174795)
+ node T_174798 = or(T_174797, T_174796)
+ wire T_174799 : UInt<1>
+ T_174799 := T_174798
+ when inner.grant.bits.is_builtin_type : T_174799 := T_174794
+ node T_174800 = and(UInt<1>(1), T_174799)
+ node T_174801 = and(T_174791, T_174800)
+ reg T_174802 : UInt<2>
+ onreset T_174802 := UInt<2>(0)
+ when T_174801 :
+ node T_174803 = eq(T_174802, UInt<2>(3))
+ node T_174804 = and(UInt<1>(0), T_174803)
+ node T_174805 = addw(T_174802, UInt<1>(1))
+ wire T_174806 : UInt<2>
+ T_174806 := T_174805
+ when T_174804 : T_174806 := UInt<1>(0)
+ T_174802 := T_174806
+ node T_174807 = and(T_174801, T_174803)
+ wire T_174808 : UInt<1>
+ T_174808 := UInt<1>(0)
+ when T_174800 : T_174808 := T_174802
+ wire T_174809 : UInt<1>
+ T_174809 := T_174791
+ when T_174800 : T_174809 := T_174807
+ node T_174810 = and(inner.finish.ready, inner.finish.valid)
+ node T_174811 = and(T_174810, UInt<1>(0))
+ reg T_174812 : UInt<2>
+ onreset T_174812 := UInt<2>(0)
+ when T_174811 :
+ node T_174813 = eq(T_174812, UInt<2>(3))
+ node T_174814 = and(UInt<1>(0), T_174813)
+ node T_174815 = addw(T_174812, UInt<1>(1))
+ wire T_174816 : UInt<2>
+ T_174816 := T_174815
+ when T_174814 : T_174816 := UInt<1>(0)
+ T_174812 := T_174816
+ node T_174817 = and(T_174811, T_174813)
+ wire T_174818 : UInt<1>
+ T_174818 := UInt<1>(0)
+ when UInt<1>(0) : T_174818 := T_174812
+ wire T_174819 : UInt<1>
+ T_174819 := T_174810
+ when UInt<1>(0) : T_174819 := T_174817
+ node T_174820 = eq(UInt<1>(0), UInt<1>(0))
+ node T_174821 = eq(inner.grant.bits.g_type, UInt<3>(0))
+ node T_174822 = and(inner.grant.bits.is_builtin_type, T_174821)
+ node T_174823 = eq(T_174822, UInt<1>(0))
+ node T_174824 = and(T_174820, T_174823)
+ node T_174825 = and(T_174809, T_174824)
+ node T_174826 = subw(T_174790, UInt<1>(1))
+ wire T_174827 : UInt<3>
+ T_174827 := T_174826
+ when T_174825 : T_174827 := T_174790
+ node T_174828 = addw(T_174790, UInt<1>(1))
+ wire T_174829 : UInt<3>
+ T_174829 := T_174790
+ when T_174825 : T_174829 := T_174828
+ wire T_174830 : UInt<3>
+ T_174830 := T_174829
+ when T_174819 : T_174830 := T_174827
+ T_174790 := T_174830
+ node pending_ifins = gt(T_174790, UInt<1>(0))
+ reg pending_puts : UInt<4>
+ onreset pending_puts := UInt<4>(0)
+ reg pending_iprbs : UInt<1>
+ onreset pending_iprbs := UInt<1>(0)
+ reg pending_reads : UInt<4>
+ onreset pending_reads := UInt<4>(0)
+ reg pending_writes : UInt<4>
+ onreset pending_writes := UInt<4>(0)
+ reg pending_resps : UInt<4>
+ onreset pending_resps := UInt<4>(0)
+ reg pending_ignt_data : UInt<4>
+ onreset pending_ignt_data := UInt<4>(0)
+ reg pending_meta_write : UInt<1>
+ node T_174831 = eq(pending_reads, UInt<1>(0))
+ node T_174832 = eq(T_174831, UInt<1>(0))
+ node T_174833 = eq(pending_writes, UInt<1>(0))
+ node T_174834 = eq(T_174833, UInt<1>(0))
+ node T_174835 = or(T_174832, T_174834)
+ node T_174836 = eq(pending_resps, UInt<1>(0))
+ node T_174837 = eq(T_174836, UInt<1>(0))
+ node T_174838 = or(T_174835, T_174837)
+ node T_174839 = eq(pending_puts, UInt<1>(0))
+ node T_174840 = eq(T_174839, UInt<1>(0))
+ node T_174841 = or(T_174838, T_174840)
+ node T_174842 = or(T_174841, pending_ognt)
+ node T_174843 = gt(ignt_q.count, UInt<1>(0))
+ node T_174844 = or(T_174842, T_174843)
+ node T_174845 = or(T_174844, pending_ifins)
+ node all_pending_done = eq(T_174845, UInt<1>(0))
+ inst amoalu of AMOALU_87374
+ node T_174846 = bits(xact.union, 12, 9)
+ node T_174847 = cat(xact.addr_beat, T_174846)
+ node T_174848 = cat(xact.addr_block, T_174847)
+ amoalu.addr := T_174848
+ node T_174849 = eq(xact.a_type, UInt<3>(2))
+ node T_174850 = and(xact.is_builtin_type, T_174849)
+ node T_174851 = eq(xact.a_type, UInt<3>(3))
+ node T_174852 = and(xact.is_builtin_type, T_174851)
+ node T_174853 = or(T_174850, T_174852)
+ node T_174854 = bits(xact.union, 5, 1)
+ wire T_174855 : UInt<5>
+ T_174855 := T_174854
+ when T_174853 : T_174855 := UInt<5>(1)
+ amoalu.cmd := T_174855
+ node T_174856 = bits(xact.union, 8, 6)
+ amoalu.typ := T_174856
+ amoalu.lhs := data.resp.bits.data
+ amoalu.rhs := data_buffer[0]
+ node T_174857 = eq(xact.a_type, UInt<3>(0))
+ node T_174858 = and(xact.is_builtin_type, T_174857)
+ node T_174859 = eq(inner.acquire.bits.a_type, UInt<3>(0))
+ node T_174860 = and(inner.acquire.bits.is_builtin_type, T_174859)
+ node T_174861 = and(T_174858, T_174860)
+ node T_174862 = eq(xact.client_id, inner.acquire.bits.client_id)
+ node T_174863 = and(T_174861, T_174862)
+ node T_174864 = eq(xact.addr_block, inner.acquire.bits.addr_block)
+ node T_174865 = and(T_174863, T_174864)
+ node T_174866 = neq(state, UInt<4>(0))
+ node T_174867 = and(T_174865, T_174866)
+ node T_174868 = neq(state, UInt<4>(8))
+ node T_174869 = and(T_174867, T_174868)
+ node T_174870 = eq(all_pending_done, UInt<1>(0))
+ node T_174871 = and(T_174869, T_174870)
+ node T_174872 = bit(xact.union, 0)
+ node T_174873 = and(T_174871, T_174872)
+ node T_174874 = and(inner.release.ready, inner.release.valid)
+ node T_174875 = eq(T_174874, UInt<1>(0))
+ node T_174876 = and(T_174873, T_174875)
+ node T_174877 = and(outer.grant.ready, outer.grant.valid)
+ node T_174878 = eq(T_174877, UInt<1>(0))
+ node T_174879 = and(T_174876, T_174878)
+ node T_174880 = eq(data.resp.valid, UInt<1>(0))
+ node T_174881 = and(T_174879, T_174880)
+ node can_merge_iacq_get = and(T_174881, ignt_q.enq.ready)
+ node T_174882 = eq(xact.a_type, UInt<3>(2))
+ node T_174883 = and(xact.is_builtin_type, T_174882)
+ node T_174884 = eq(inner.acquire.bits.a_type, UInt<3>(2))
+ node T_174885 = and(inner.acquire.bits.is_builtin_type, T_174884)
+ node T_174886 = and(T_174883, T_174885)
+ node T_174887 = eq(xact.a_type, UInt<3>(3))
+ node T_174888 = and(xact.is_builtin_type, T_174887)
+ node T_174889 = eq(inner.acquire.bits.a_type, UInt<3>(3))
+ node T_174890 = and(inner.acquire.bits.is_builtin_type, T_174889)
+ node T_174891 = and(T_174888, T_174890)
+ node T_174892 = or(T_174886, T_174891)
+ node T_174893 = eq(xact.client_id, inner.acquire.bits.client_id)
+ node T_174894 = and(T_174892, T_174893)
+ node T_174895 = eq(xact.addr_block, inner.acquire.bits.addr_block)
+ node T_174896 = and(T_174894, T_174895)
+ node T_174897 = neq(state, UInt<4>(0))
+ node T_174898 = and(T_174896, T_174897)
+ node T_174899 = neq(state, UInt<4>(8))
+ node T_174900 = and(T_174898, T_174899)
+ node T_174901 = eq(all_pending_done, UInt<1>(0))
+ node T_174902 = and(T_174900, T_174901)
+ node T_174903 = bit(xact.union, 0)
+ node T_174904 = eq(xact.a_type, UInt<3>(3))
+ node T_174905 = and(xact.is_builtin_type, T_174904)
+ node T_174906 = or(T_174903, T_174905)
+ node T_174907 = and(T_174902, T_174906)
+ node T_174908 = and(inner.release.ready, inner.release.valid)
+ node T_174909 = eq(T_174908, UInt<1>(0))
+ node T_174910 = and(T_174907, T_174909)
+ node T_174911 = and(outer.grant.ready, outer.grant.valid)
+ node T_174912 = eq(T_174911, UInt<1>(0))
+ node T_174913 = and(T_174910, T_174912)
+ node T_174914 = eq(data.resp.valid, UInt<1>(0))
+ node T_174915 = and(T_174913, T_174914)
+ node can_merge_iacq_put = and(T_174915, ignt_q.enq.ready)
+ node T_174916 = eq(state, UInt<4>(0))
+ node T_174917 = or(T_174916, can_merge_iacq_put)
+ node T_174918 = or(T_174917, can_merge_iacq_get)
+ inner.acquire.ready := T_174918
+ ignt_q.enq.valid := iacq_data_done
+ ignt_q.enq.bits.client_xact_id := inner.acquire.bits.client_xact_id
+ ignt_q.enq.bits.addr_beat := inner.acquire.bits.addr_beat
+ node T_174919 = and(inner.acquire.ready, inner.acquire.valid)
+ wire T_174920 : UInt<3>[3]
+ T_174920[0] := UInt<3>(2)
+ T_174920[1] := UInt<3>(3)
+ T_174920[2] := UInt<3>(4)
+ node T_174921 = eq(T_174920[0], inner.acquire.bits.a_type)
+ node T_174922 = eq(T_174920[1], inner.acquire.bits.a_type)
+ node T_174923 = eq(T_174920[2], inner.acquire.bits.a_type)
+ node T_174924 = or(UInt<1>(0), T_174921)
+ node T_174925 = or(T_174924, T_174922)
+ node T_174926 = or(T_174925, T_174923)
+ node T_174927 = and(inner.acquire.bits.is_builtin_type, T_174926)
+ node T_174928 = and(T_174919, T_174927)
+ node T_174929 = subw(UInt<4>(0), UInt<3>(4))
+ node T_174930 = not(T_174929)
+ node T_174931 = dshl(UInt<1>(1), inner.acquire.bits.addr_beat)
+ node T_174932 = not(T_174931)
+ node T_174933 = or(T_174930, T_174932)
+ node T_174934 = and(pending_puts, T_174933)
+ pending_puts := T_174934
+ node T_174935 = eq(state, UInt<4>(1))
+ meta.read.valid := T_174935
+ meta.read.bits.id := UInt<2>(2)
+ node T_174936 = bits(xact.addr_block, 11, 0)
+ meta.read.bits.idx := T_174936
+ node T_174937 = dshr(xact.addr_block, UInt<4>(12))
+ meta.read.bits.tag := T_174937
+ node T_174938 = eq(state, UInt<4>(3))
+ wb.req.valid := T_174938
+ wb.req.bits.id := UInt<2>(2)
+ node T_174939 = bits(xact.addr_block, 11, 0)
+ wb.req.bits.idx := T_174939
+ wb.req.bits.tag := xact_old_meta.tag
+ wb.req.bits.coh := xact_old_meta.coh
+ wb.req.bits.way_en := xact_way_en
+ node T_174940 = and(inner.probe.ready, inner.probe.valid)
+ node T_174941 = not(T_174940)
+ node T_174942 = dshl(UInt<1>(1), inner.probe.bits.client_id)
+ node T_174943 = not(T_174942)
+ node T_174944 = or(T_174941, T_174943)
+ node T_174945 = and(pending_iprbs, T_174944)
+ pending_iprbs := T_174945
+ node T_174946 = bit(pending_iprbs, 0)
+ wire T_174947 : UInt<1>[1]
+ T_174947[0] := T_174946
+ node T_174948 = eq(state, UInt<4>(5))
+ node T_174949 = eq(pending_iprbs, UInt<1>(0))
+ node T_174950 = eq(T_174949, UInt<1>(0))
+ node T_174951 = and(T_174948, T_174950)
+ inner.probe.valid := T_174951
+ node T_174952 = eq(UInt<3>(4), xact.a_type)
+ wire T_174953 : UInt<2>
+ T_174953 := UInt<2>(2)
+ when T_174952 : T_174953 := UInt<2>(0)
+ node T_174954 = eq(UInt<3>(2), xact.a_type)
+ wire T_174955 : UInt<2>
+ T_174955 := T_174953
+ when T_174954 : T_174955 := UInt<2>(0)
+ node T_174956 = eq(UInt<3>(0), xact.a_type)
+ wire T_174957 : UInt<2>
+ T_174957 := T_174955
+ when T_174956 : T_174957 := UInt<2>(2)
+ node T_174958 = eq(UInt<3>(3), xact.a_type)
+ wire T_174959 : UInt<2>
+ T_174959 := T_174957
+ when T_174958 : T_174959 := UInt<2>(0)
+ node T_174960 = eq(UInt<3>(1), xact.a_type)
+ wire T_174961 : UInt<2>
+ T_174961 := T_174959
+ when T_174960 : T_174961 := UInt<2>(2)
+ node T_174962 = eq(UInt<1>(1), xact.a_type)
+ wire T_174963 : UInt<2>
+ T_174963 := UInt<2>(2)
+ when T_174962 : T_174963 := UInt<2>(0)
+ node T_174964 = eq(UInt<1>(0), xact.a_type)
+ wire T_174965 : UInt<2>
+ T_174965 := T_174963
+ when T_174964 : T_174965 := UInt<2>(1)
+ wire T_174966 : UInt<2>
+ T_174966 := T_174965
+ when xact.is_builtin_type : T_174966 := T_174961
+ wire T_174967 : UInt<3>[3]
+ T_174967[0] := UInt<3>(0)
+ T_174967[1] := UInt<3>(1)
+ T_174967[2] := UInt<3>(2)
+ wire T_174968 : UInt<2>[2]
+ T_174968[0] := UInt<2>(0)
+ T_174968[1] := UInt<2>(1)
+ wire T_174969 : UInt<2>[3]
+ T_174969[0] := UInt<2>(1)
+ T_174969[1] := UInt<2>(2)
+ T_174969[2] := UInt<2>(3)
+ wire T_174970 : UInt<2>[2]
+ T_174970[0] := UInt<2>(2)
+ T_174970[1] := UInt<2>(3)
+ wire T_174971 : UInt<2>[1]
+ T_174971[0] := UInt<2>(3)
+ wire T_174972 : UInt<3>[3]
+ T_174972[0] := UInt<3>(0)
+ T_174972[1] := UInt<3>(1)
+ T_174972[2] := UInt<3>(2)
+ wire T_174973 : UInt<2>[2]
+ T_174973[0] := UInt<2>(0)
+ T_174973[1] := UInt<2>(1)
+ wire T_174974 : UInt<2>[3]
+ T_174974[0] := UInt<2>(1)
+ T_174974[1] := UInt<2>(2)
+ T_174974[2] := UInt<2>(3)
+ wire T_174975 : UInt<2>[2]
+ T_174975[0] := UInt<2>(2)
+ T_174975[1] := UInt<2>(3)
+ wire T_174976 : UInt<2>[1]
+ T_174976[0] := UInt<2>(3)
+ wire T_174977 : {addr_block : UInt<26>, p_type : UInt<2>, client_id : UInt<2>}
+ T_174977.client_id := UInt<1>(0)
+ T_174977.p_type := T_174966
+ T_174977.addr_block := xact.addr_block
+ inner.probe.bits := T_174977
+ node T_174978 = eq(state, UInt<4>(5))
+ inner.release.ready := T_174978
+ node T_174979 = dshl(UInt<1>(1), inner.release.bits.client_id)
+ node T_174980 = not(T_174979)
+ node T_174981 = and(pending_coh.inner.sharers, T_174980)
+ wire T_174982 : UInt<3>[3]
+ T_174982[0] := UInt<3>(0)
+ T_174982[1] := UInt<3>(1)
+ T_174982[2] := UInt<3>(2)
+ wire T_174983 : UInt<2>[2]
+ T_174983[0] := UInt<2>(0)
+ T_174983[1] := UInt<2>(1)
+ wire T_174984 : UInt<2>[3]
+ T_174984[0] := UInt<2>(1)
+ T_174984[1] := UInt<2>(2)
+ T_174984[2] := UInt<2>(3)
+ wire T_174985 : UInt<2>[2]
+ T_174985[0] := UInt<2>(2)
+ T_174985[1] := UInt<2>(3)
+ wire T_174986 : UInt<2>[1]
+ T_174986[0] := UInt<2>(3)
+ wire T_174987 : UInt<3>[3]
+ T_174987[0] := UInt<3>(0)
+ T_174987[1] := UInt<3>(1)
+ T_174987[2] := UInt<3>(2)
+ wire T_174988 : UInt<2>[2]
+ T_174988[0] := UInt<2>(0)
+ T_174988[1] := UInt<2>(1)
+ wire T_174989 : UInt<2>[3]
+ T_174989[0] := UInt<2>(1)
+ T_174989[1] := UInt<2>(2)
+ T_174989[2] := UInt<2>(3)
+ wire T_174990 : UInt<2>[2]
+ T_174990[0] := UInt<2>(2)
+ T_174990[1] := UInt<2>(3)
+ wire T_174991 : UInt<2>[1]
+ T_174991[0] := UInt<2>(3)
+ wire T_174992 : {sharers : UInt<1>, makeGrant$default$3 : UInt<1>, makeGrant$default$4 : UInt<1>}
+ T_174992.sharers := T_174981
+ node T_174993 = eq(inner.release.bits.r_type, UInt<3>(0))
+ node T_174994 = eq(inner.release.bits.r_type, UInt<3>(3))
+ wire T_174995 : UInt<3>[3]
+ T_174995[0] := UInt<3>(0)
+ T_174995[1] := UInt<3>(1)
+ T_174995[2] := UInt<3>(2)
+ wire T_174996 : UInt<2>[2]
+ T_174996[0] := UInt<2>(0)
+ T_174996[1] := UInt<2>(1)
+ wire T_174997 : UInt<2>[3]
+ T_174997[0] := UInt<2>(1)
+ T_174997[1] := UInt<2>(2)
+ T_174997[2] := UInt<2>(3)
+ wire T_174998 : UInt<2>[2]
+ T_174998[0] := UInt<2>(2)
+ T_174998[1] := UInt<2>(3)
+ wire T_174999 : UInt<2>[1]
+ T_174999[0] := UInt<2>(3)
+ wire T_175000 : {sharers : UInt<1>, makeGrant$default$3 : UInt<1>, makeGrant$default$4 : UInt<1>}
+ T_175000 := pending_coh.inner
+ when T_174994 : T_175000 := T_174992
+ wire T_175001 : UInt<3>[3]
+ T_175001[0] := UInt<3>(0)
+ T_175001[1] := UInt<3>(1)
+ T_175001[2] := UInt<3>(2)
+ wire T_175002 : UInt<2>[2]
+ T_175002[0] := UInt<2>(0)
+ T_175002[1] := UInt<2>(1)
+ wire T_175003 : UInt<2>[3]
+ T_175003[0] := UInt<2>(1)
+ T_175003[1] := UInt<2>(2)
+ T_175003[2] := UInt<2>(3)
+ wire T_175004 : UInt<2>[2]
+ T_175004[0] := UInt<2>(2)
+ T_175004[1] := UInt<2>(3)
+ wire T_175005 : UInt<2>[1]
+ T_175005[0] := UInt<2>(3)
+ wire T_175006 : {sharers : UInt<1>, makeGrant$default$3 : UInt<1>, makeGrant$default$4 : UInt<1>}
+ T_175006 := T_175000
+ when T_174993 : T_175006 := T_174992
+ node T_175007 = eq(T_174457[0], inner.release.bits.r_type)
+ node T_175008 = eq(T_174457[1], inner.release.bits.r_type)
+ node T_175009 = eq(T_174457[2], inner.release.bits.r_type)
+ node T_175010 = or(UInt<1>(0), T_175007)
+ node T_175011 = or(T_175010, T_175008)
+ node T_175012 = or(T_175011, T_175009)
+ node T_175013 = eq(UInt<5>(1), UInt<5>(1))
+ node T_175014 = eq(UInt<5>(1), UInt<5>(7))
+ node T_175015 = or(T_175013, T_175014)
+ node T_175016 = eq(UInt<5>(1), UInt<5>(4))
+ node T_175017 = or(UInt<1>(0), T_175016)
+ node T_175018 = or(T_175015, T_175017)
+ wire T_175019 : UInt<2>
+ T_175019 := pending_coh.outer.state
+ when T_175018 : T_175019 := UInt<2>(2)
+ wire T_175020 : UInt<3>[3]
+ T_175020[0] := UInt<3>(0)
+ T_175020[1] := UInt<3>(1)
+ T_175020[2] := UInt<3>(2)
+ wire T_175021 : UInt<0>[1]
+ T_175021[0] := UInt<0>(0)
+ wire T_175022 : UInt<2>[2]
+ T_175022[0] := UInt<2>(1)
+ T_175022[1] := UInt<2>(2)
+ wire T_175023 : UInt<2>[2]
+ T_175023[0] := UInt<2>(1)
+ T_175023[1] := UInt<2>(2)
+ wire T_175024 : UInt<2>[1]
+ T_175024[0] := UInt<2>(2)
+ wire T_175025 : UInt<3>[3]
+ T_175025[0] := UInt<3>(0)
+ T_175025[1] := UInt<3>(1)
+ T_175025[2] := UInt<3>(2)
+ wire T_175026 : UInt<0>[1]
+ T_175026[0] := UInt<0>(0)
+ wire T_175027 : UInt<2>[2]
+ T_175027[0] := UInt<2>(1)
+ T_175027[1] := UInt<2>(2)
+ wire T_175028 : UInt<2>[2]
+ T_175028[0] := UInt<2>(1)
+ T_175028[1] := UInt<2>(2)
+ wire T_175029 : UInt<2>[1]
+ T_175029[0] := UInt<2>(2)
+ wire T_175030 : {state : UInt<2>, makeRelease$default$2 : UInt<1>, makeRelease$default$3 : UInt<1>, makeVoluntaryRelease$default$4 : UInt<1>, makeVoluntaryRelease$default$5 : UInt<1>, makeVoluntaryWriteback$default$3 : UInt<1>, makeVoluntaryWriteback$default$4 : UInt<1>}
+ T_175030.state := T_175019
+ wire T_175031 : UInt<3>[3]
+ T_175031[0] := UInt<3>(0)
+ T_175031[1] := UInt<3>(1)
+ T_175031[2] := UInt<3>(2)
+ wire T_175032 : UInt<2>[2]
+ T_175032[0] := UInt<2>(0)
+ T_175032[1] := UInt<2>(1)
+ wire T_175033 : UInt<2>[3]
+ T_175033[0] := UInt<2>(1)
+ T_175033[1] := UInt<2>(2)
+ T_175033[2] := UInt<2>(3)
+ wire T_175034 : UInt<2>[2]
+ T_175034[0] := UInt<2>(2)
+ T_175034[1] := UInt<2>(3)
+ wire T_175035 : UInt<2>[1]
+ T_175035[0] := UInt<2>(3)
+ wire T_175036 : {state : UInt<2>, makeRelease$default$2 : UInt<1>, makeRelease$default$3 : UInt<1>, makeVoluntaryRelease$default$4 : UInt<1>, makeVoluntaryRelease$default$5 : UInt<1>, makeVoluntaryWriteback$default$3 : UInt<1>, makeVoluntaryWriteback$default$4 : UInt<1>}
+ T_175036 := pending_coh.outer
+ when T_175012 : T_175036 := T_175030
+ wire T_175037 : UInt<3>[3]
+ T_175037[0] := UInt<3>(0)
+ T_175037[1] := UInt<3>(1)
+ T_175037[2] := UInt<3>(2)
+ wire T_175038 : UInt<2>[2]
+ T_175038[0] := UInt<2>(0)
+ T_175038[1] := UInt<2>(1)
+ wire T_175039 : UInt<2>[3]
+ T_175039[0] := UInt<2>(1)
+ T_175039[1] := UInt<2>(2)
+ T_175039[2] := UInt<2>(3)
+ wire T_175040 : UInt<2>[2]
+ T_175040[0] := UInt<2>(2)
+ T_175040[1] := UInt<2>(3)
+ wire T_175041 : UInt<2>[1]
+ T_175041[0] := UInt<2>(3)
+ wire T_175042 : UInt<3>[3]
+ T_175042[0] := UInt<3>(0)
+ T_175042[1] := UInt<3>(1)
+ T_175042[2] := UInt<3>(2)
+ wire T_175043 : UInt<2>[2]
+ T_175043[0] := UInt<2>(0)
+ T_175043[1] := UInt<2>(1)
+ wire T_175044 : UInt<2>[3]
+ T_175044[0] := UInt<2>(1)
+ T_175044[1] := UInt<2>(2)
+ T_175044[2] := UInt<2>(3)
+ wire T_175045 : UInt<2>[2]
+ T_175045[0] := UInt<2>(2)
+ T_175045[1] := UInt<2>(3)
+ wire T_175046 : UInt<2>[1]
+ T_175046[0] := UInt<2>(3)
+ wire T_175047 : UInt<3>[3]
+ T_175047[0] := UInt<3>(0)
+ T_175047[1] := UInt<3>(1)
+ T_175047[2] := UInt<3>(2)
+ wire T_175048 : UInt<0>[1]
+ T_175048[0] := UInt<0>(0)
+ wire T_175049 : UInt<2>[2]
+ T_175049[0] := UInt<2>(1)
+ T_175049[1] := UInt<2>(2)
+ wire T_175050 : UInt<2>[2]
+ T_175050[0] := UInt<2>(1)
+ T_175050[1] := UInt<2>(2)
+ wire T_175051 : UInt<2>[1]
+ T_175051[0] := UInt<2>(2)
+ wire T_175052 : UInt<3>[3]
+ T_175052[0] := UInt<3>(0)
+ T_175052[1] := UInt<3>(1)
+ T_175052[2] := UInt<3>(2)
+ wire T_175053 : UInt<2>[2]
+ T_175053[0] := UInt<2>(0)
+ T_175053[1] := UInt<2>(1)
+ wire T_175054 : UInt<2>[3]
+ T_175054[0] := UInt<2>(1)
+ T_175054[1] := UInt<2>(2)
+ T_175054[2] := UInt<2>(3)
+ wire T_175055 : UInt<2>[2]
+ T_175055[0] := UInt<2>(2)
+ T_175055[1] := UInt<2>(3)
+ wire T_175056 : UInt<2>[1]
+ T_175056[0] := UInt<2>(3)
+ wire T_175057 : UInt<3>[3]
+ T_175057[0] := UInt<3>(0)
+ T_175057[1] := UInt<3>(1)
+ T_175057[2] := UInt<3>(2)
+ wire T_175058 : UInt<2>[2]
+ T_175058[0] := UInt<2>(0)
+ T_175058[1] := UInt<2>(1)
+ wire T_175059 : UInt<2>[3]
+ T_175059[0] := UInt<2>(1)
+ T_175059[1] := UInt<2>(2)
+ T_175059[2] := UInt<2>(3)
+ wire T_175060 : UInt<2>[2]
+ T_175060[0] := UInt<2>(2)
+ T_175060[1] := UInt<2>(3)
+ wire T_175061 : UInt<2>[1]
+ T_175061[0] := UInt<2>(3)
+ wire T_175062 : UInt<3>[3]
+ T_175062[0] := UInt<3>(0)
+ T_175062[1] := UInt<3>(1)
+ T_175062[2] := UInt<3>(2)
+ wire T_175063 : UInt<0>[1]
+ T_175063[0] := UInt<0>(0)
+ wire T_175064 : UInt<2>[2]
+ T_175064[0] := UInt<2>(1)
+ T_175064[1] := UInt<2>(2)
+ wire T_175065 : UInt<2>[2]
+ T_175065[0] := UInt<2>(1)
+ T_175065[1] := UInt<2>(2)
+ wire T_175066 : UInt<2>[1]
+ T_175066[0] := UInt<2>(2)
+ wire pending_coh_on_irel : {inner : {sharers : UInt<1>, makeGrant$default$3 : UInt<1>, makeGrant$default$4 : UInt<1>}, outer : {state : UInt<2>, makeRelease$default$2 : UInt<1>, makeRelease$default$3 : UInt<1>, makeVoluntaryRelease$default$4 : UInt<1>, makeVoluntaryRelease$default$5 : UInt<1>, makeVoluntaryWriteback$default$3 : UInt<1>, makeVoluntaryWriteback$default$4 : UInt<1>}}
+ pending_coh_on_irel.inner := T_175006
+ pending_coh_on_irel.outer := T_175036
+ node T_175067 = and(inner.release.ready, inner.release.valid)
+
+
+ node T_175068 = eq(pending_coh.inner.sharers, pending_coh_on_irel.inner.sharers)
+ node T_175069 = eq(pending_coh.outer.state, pending_coh_on_irel.outer.state)
+ node T_175070 = and(T_175068, T_175069)
+ node T_175071 = eq(T_175070, UInt<1>(0))
+ node T_175072 = and(T_175067, T_175071)
+ when T_175072 :
+ pending_meta_write := UInt<1>(1)
+ pending_coh := pending_coh_on_irel
+
+
+ node T_175073 = and(inner.release.ready, inner.release.valid)
+ node T_175074 = eq(T_174457[0], inner.release.bits.r_type)
+ node T_175075 = eq(T_174457[1], inner.release.bits.r_type)
+ node T_175076 = eq(T_174457[2], inner.release.bits.r_type)
+ node T_175077 = or(UInt<1>(0), T_175074)
+ node T_175078 = or(T_175077, T_175075)
+ node T_175079 = or(T_175078, T_175076)
+ node T_175080 = and(T_175073, T_175079)
+ when T_175080 :
+ accessor T_175081 = data_buffer[inner.release.bits.addr_beat]
+ node T_175082 = bits(xact.union, 12, 9)
+ node T_175083 = bits(T_175082, 3, 3)
+ node T_175084 = mul(UInt<7>(64), T_175083)
+ node T_175085 = dshr(inner.release.bits.data, T_175084)
+ amoalu.lhs := T_175085
+ node T_175086 = bits(xact.union, 12, 9)
+ node T_175087 = bits(T_175086, 3, 3)
+ node T_175088 = mul(UInt<7>(64), T_175087)
+ node T_175089 = dshr(T_175081, T_175088)
+ amoalu.rhs := T_175089
+ accessor T_175090 = wmask_buffer[inner.release.bits.addr_beat]
+ node T_175091 = bit(T_175090, 0)
+ node T_175092 = bit(T_175090, 1)
+ node T_175093 = bit(T_175090, 2)
+ node T_175094 = bit(T_175090, 3)
+ node T_175095 = bit(T_175090, 4)
+ node T_175096 = bit(T_175090, 5)
+ node T_175097 = bit(T_175090, 6)
+ node T_175098 = bit(T_175090, 7)
+ node T_175099 = bit(T_175090, 8)
+ node T_175100 = bit(T_175090, 9)
+ node T_175101 = bit(T_175090, 10)
+ node T_175102 = bit(T_175090, 11)
+ node T_175103 = bit(T_175090, 12)
+ node T_175104 = bit(T_175090, 13)
+ node T_175105 = bit(T_175090, 14)
+ node T_175106 = bit(T_175090, 15)
+ wire T_175107 : UInt<1>[16]
+ T_175107[0] := T_175091
+ T_175107[1] := T_175092
+ T_175107[2] := T_175093
+ T_175107[3] := T_175094
+ T_175107[4] := T_175095
+ T_175107[5] := T_175096
+ T_175107[6] := T_175097
+ T_175107[7] := T_175098
+ T_175107[8] := T_175099
+ T_175107[9] := T_175100
+ T_175107[10] := T_175101
+ T_175107[11] := T_175102
+ T_175107[12] := T_175103
+ T_175107[13] := T_175104
+ T_175107[14] := T_175105
+ T_175107[15] := T_175106
+ node T_175108 = subw(UInt<8>(0), UInt<4>(8))
+ node T_175109 = subw(UInt<8>(0), UInt<4>(8))
+ node T_175110 = subw(UInt<8>(0), UInt<4>(8))
+ node T_175111 = subw(UInt<8>(0), UInt<4>(8))
+ node T_175112 = subw(UInt<8>(0), UInt<4>(8))
+ node T_175113 = subw(UInt<8>(0), UInt<4>(8))
+ node T_175114 = subw(UInt<8>(0), UInt<4>(8))
+ node T_175115 = subw(UInt<8>(0), UInt<4>(8))
+ node T_175116 = subw(UInt<8>(0), UInt<4>(8))
+ node T_175117 = subw(UInt<8>(0), UInt<4>(8))
+ node T_175118 = subw(UInt<8>(0), UInt<4>(8))
+ node T_175119 = subw(UInt<8>(0), UInt<4>(8))
+ node T_175120 = subw(UInt<8>(0), UInt<4>(8))
+ node T_175121 = subw(UInt<8>(0), UInt<4>(8))
+ node T_175122 = subw(UInt<8>(0), UInt<4>(8))
+ node T_175123 = subw(UInt<8>(0), UInt<4>(8))
+ wire T_175124 : UInt<8>[16]
+ T_175124[0] := T_175108
+ T_175124[1] := T_175109
+ T_175124[2] := T_175110
+ T_175124[3] := T_175111
+ T_175124[4] := T_175112
+ T_175124[5] := T_175113
+ T_175124[6] := T_175114
+ T_175124[7] := T_175115
+ T_175124[8] := T_175116
+ T_175124[9] := T_175117
+ T_175124[10] := T_175118
+ T_175124[11] := T_175119
+ T_175124[12] := T_175120
+ T_175124[13] := T_175121
+ T_175124[14] := T_175122
+ T_175124[15] := T_175123
+ node T_175125 = cat(T_175124[15], T_175124[14])
+ node T_175126 = cat(T_175124[13], T_175124[12])
+ node T_175127 = cat(T_175125, T_175126)
+ node T_175128 = cat(T_175124[11], T_175124[10])
+ node T_175129 = cat(T_175124[9], T_175124[8])
+ node T_175130 = cat(T_175128, T_175129)
+ node T_175131 = cat(T_175127, T_175130)
+ node T_175132 = cat(T_175124[7], T_175124[6])
+ node T_175133 = cat(T_175124[5], T_175124[4])
+ node T_175134 = cat(T_175132, T_175133)
+ node T_175135 = cat(T_175124[3], T_175124[2])
+ node T_175136 = cat(T_175124[1], T_175124[0])
+ node T_175137 = cat(T_175135, T_175136)
+ node T_175138 = cat(T_175134, T_175137)
+ node T_175139 = cat(T_175131, T_175138)
+ accessor T_175140 = data_buffer[inner.release.bits.addr_beat]
+ node T_175141 = not(T_175139)
+ node T_175142 = and(T_175141, inner.release.bits.data)
+ node T_175143 = eq(xact.a_type, UInt<3>(4))
+ node T_175144 = and(xact.is_builtin_type, T_175143)
+ node T_175145 = bits(xact.union, 12, 9)
+ node T_175146 = bits(T_175145, 3, 3)
+ node T_175147 = mul(UInt<7>(64), T_175146)
+ node T_175148 = dshl(amoalu.out, T_175147)
+ wire T_175149 : UInt<128>
+ T_175149 := T_175081
+ when T_175144 : T_175149 := T_175148
+ node T_175150 = and(T_175139, T_175149)
+ node T_175151 = or(T_175142, T_175150)
+ T_175140 := T_175151
+ accessor T_175152 = wmask_buffer[inner.release.bits.addr_beat]
+ T_175152 := SInt<1>(-1)
+
+
+ node T_175153 = eq(xact.a_type, UInt<3>(4))
+ node T_175154 = eq(xact.addr_beat, inner.release.bits.addr_beat)
+ node T_175155 = and(T_175153, T_175154)
+ when T_175155 : xact.data := inner.release.bits.data
+ node T_175156 = eq(state, UInt<4>(6))
+ node T_175157 = bit(xact.union, 0)
+ node T_175158 = dshr(pending_puts, oacq_data_idx)
+ node T_175159 = bit(T_175158, 0)
+ node T_175160 = eq(T_175159, UInt<1>(0))
+ node T_175161 = or(T_175157, T_175160)
+ node T_175162 = and(T_175156, T_175161)
+ outer.acquire.valid := T_175162
+ node T_175163 = bit(xact.union, 0)
+ node T_175164 = eq(xact.a_type, UInt<3>(2))
+ node T_175165 = and(xact.is_builtin_type, T_175164)
+ node T_175166 = eq(xact.a_type, UInt<3>(3))
+ node T_175167 = and(xact.is_builtin_type, T_175166)
+ node T_175168 = or(T_175165, T_175167)
+ node T_175169 = bits(xact.union, 5, 1)
+ wire T_175170 : UInt<5>
+ T_175170 := T_175169
+ when T_175168 : T_175170 := UInt<5>(1)
+ node T_175171 = eq(T_175170, UInt<5>(1))
+ node T_175172 = eq(T_175170, UInt<5>(7))
+ node T_175173 = or(T_175171, T_175172)
+ node T_175174 = bit(T_175170, 3)
+ node T_175175 = eq(T_175170, UInt<5>(4))
+ node T_175176 = or(T_175174, T_175175)
+ node T_175177 = or(T_175173, T_175176)
+ node T_175178 = eq(T_175170, UInt<5>(3))
+ node T_175179 = or(T_175177, T_175178)
+ node T_175180 = eq(T_175170, UInt<5>(6))
+ node T_175181 = or(T_175179, T_175180)
+ wire T_175182 : UInt<1>
+ T_175182 := UInt<1>(0)
+ when T_175181 : T_175182 := UInt<1>(1)
+ node T_175183 = cat(T_175170, UInt<1>(1))
+ wire T_175184 : UInt<3>[3]
+ T_175184[0] := UInt<3>(0)
+ T_175184[1] := UInt<3>(1)
+ T_175184[2] := UInt<3>(2)
+ wire T_175185 : UInt<0>[1]
+ T_175185[0] := UInt<0>(0)
+ wire T_175186 : UInt<2>[2]
+ T_175186[0] := UInt<2>(1)
+ T_175186[1] := UInt<2>(2)
+ wire T_175187 : UInt<2>[2]
+ T_175187[0] := UInt<2>(1)
+ T_175187[1] := UInt<2>(2)
+ wire T_175188 : UInt<2>[1]
+ T_175188[0] := UInt<2>(2)
+ wire T_175189 : UInt<3>[3]
+ T_175189[0] := UInt<3>(0)
+ T_175189[1] := UInt<3>(1)
+ T_175189[2] := UInt<3>(2)
+ wire T_175190 : UInt<0>[1]
+ T_175190[0] := UInt<0>(0)
+ wire T_175191 : UInt<2>[2]
+ T_175191[0] := UInt<2>(1)
+ T_175191[1] := UInt<2>(2)
+ wire T_175192 : UInt<2>[2]
+ T_175192[0] := UInt<2>(1)
+ T_175192[1] := UInt<2>(2)
+ wire T_175193 : UInt<2>[1]
+ T_175193[0] := UInt<2>(2)
+ wire T_175194 : {addr_block : UInt<26>, client_xact_id : UInt<2>, addr_beat : UInt<2>, data : UInt<128>, is_builtin_type : UInt<1>, a_type : UInt<3>, union : UInt<17>}
+ T_175194.is_builtin_type := UInt<1>(0)
+ T_175194.a_type := T_175182
+ T_175194.client_xact_id := UInt<1>(0)
+ T_175194.addr_block := xact.addr_block
+ T_175194.addr_beat := UInt<1>(0)
+ T_175194.data := UInt<1>(0)
+ T_175194.union := T_175183
+ wire T_175195 : UInt<3>[3]
+ T_175195[0] := UInt<3>(0)
+ T_175195[1] := UInt<3>(1)
+ T_175195[2] := UInt<3>(2)
+ wire T_175196 : UInt<0>[1]
+ T_175196[0] := UInt<0>(0)
+ wire T_175197 : UInt<2>[2]
+ T_175197[0] := UInt<2>(1)
+ T_175197[1] := UInt<2>(2)
+ wire T_175198 : UInt<2>[2]
+ T_175198[0] := UInt<2>(1)
+ T_175198[1] := UInt<2>(2)
+ wire T_175199 : UInt<2>[1]
+ T_175199[0] := UInt<2>(2)
+ wire T_175200 : UInt<3>[3]
+ T_175200[0] := UInt<3>(0)
+ T_175200[1] := UInt<3>(1)
+ T_175200[2] := UInt<3>(2)
+ wire T_175201 : UInt<0>[1]
+ T_175201[0] := UInt<0>(0)
+ wire T_175202 : UInt<2>[2]
+ T_175202[0] := UInt<2>(1)
+ T_175202[1] := UInt<2>(2)
+ wire T_175203 : UInt<2>[2]
+ T_175203[0] := UInt<2>(1)
+ T_175203[1] := UInt<2>(2)
+ wire T_175204 : UInt<2>[1]
+ T_175204[0] := UInt<2>(2)
+ wire T_175205 : {addr_block : UInt<26>, client_xact_id : UInt<2>, addr_beat : UInt<2>, data : UInt<128>, is_builtin_type : UInt<1>, a_type : UInt<3>, union : UInt<17>}
+ T_175205 := xact
+ wire T_175206 : UInt<3>[3]
+ T_175206[0] := UInt<3>(0)
+ T_175206[1] := UInt<3>(1)
+ T_175206[2] := UInt<3>(2)
+ wire T_175207 : UInt<2>[2]
+ T_175207[0] := UInt<2>(0)
+ T_175207[1] := UInt<2>(1)
+ wire T_175208 : UInt<2>[3]
+ T_175208[0] := UInt<2>(1)
+ T_175208[1] := UInt<2>(2)
+ T_175208[2] := UInt<2>(3)
+ wire T_175209 : UInt<2>[2]
+ T_175209[0] := UInt<2>(2)
+ T_175209[1] := UInt<2>(3)
+ wire T_175210 : UInt<2>[1]
+ T_175210[0] := UInt<2>(3)
+ wire T_175211 : {addr_block : UInt<26>, client_xact_id : UInt<1>, addr_beat : UInt<2>, data : UInt<128>, is_builtin_type : UInt<1>, a_type : UInt<3>, union : UInt<17>}
+ T_175211 := T_175205
+ when T_175163 : T_175211 := T_175194
+ outer.acquire.bits := T_175211
+ accessor T_175212 = data_buffer[oacq_data_idx]
+ outer.acquire.bits.data := T_175212
+ node T_175213 = eq(state, UInt<4>(7))
+ outer.grant.ready := T_175213
+ wire T_175214 : UInt<3>[3]
+ T_175214[0] := UInt<3>(0)
+ T_175214[1] := UInt<3>(1)
+ T_175214[2] := UInt<3>(2)
+ wire T_175215 : UInt<2>[2]
+ T_175215[0] := UInt<2>(0)
+ T_175215[1] := UInt<2>(1)
+ wire T_175216 : UInt<2>[3]
+ T_175216[0] := UInt<2>(1)
+ T_175216[1] := UInt<2>(2)
+ T_175216[2] := UInt<2>(3)
+ wire T_175217 : UInt<2>[2]
+ T_175217[0] := UInt<2>(2)
+ T_175217[1] := UInt<2>(3)
+ wire T_175218 : UInt<2>[1]
+ T_175218[0] := UInt<2>(3)
+ wire T_175219 : UInt<3>[3]
+ T_175219[0] := UInt<3>(0)
+ T_175219[1] := UInt<3>(1)
+ T_175219[2] := UInt<3>(2)
+ wire T_175220 : UInt<2>[2]
+ T_175220[0] := UInt<2>(0)
+ T_175220[1] := UInt<2>(1)
+ wire T_175221 : UInt<2>[3]
+ T_175221[0] := UInt<2>(1)
+ T_175221[1] := UInt<2>(2)
+ T_175221[2] := UInt<2>(3)
+ wire T_175222 : UInt<2>[2]
+ T_175222[0] := UInt<2>(2)
+ T_175222[1] := UInt<2>(3)
+ wire T_175223 : UInt<2>[1]
+ T_175223[0] := UInt<2>(3)
+ wire T_175224 : UInt<3>[3]
+ T_175224[0] := UInt<3>(0)
+ T_175224[1] := UInt<3>(1)
+ T_175224[2] := UInt<3>(2)
+ wire T_175225 : UInt<2>[2]
+ T_175225[0] := UInt<2>(0)
+ T_175225[1] := UInt<2>(1)
+ wire T_175226 : UInt<2>[3]
+ T_175226[0] := UInt<2>(1)
+ T_175226[1] := UInt<2>(2)
+ T_175226[2] := UInt<2>(3)
+ wire T_175227 : UInt<2>[2]
+ T_175227[0] := UInt<2>(2)
+ T_175227[1] := UInt<2>(3)
+ wire T_175228 : UInt<2>[1]
+ T_175228[0] := UInt<2>(3)
+ wire T_175229 : {sharers : UInt<1>, makeGrant$default$3 : UInt<1>, makeGrant$default$4 : UInt<1>}
+ T_175229.sharers := UInt<1>(0)
+ node T_175230 = eq(xact.a_type, UInt<3>(2))
+ node T_175231 = and(xact.is_builtin_type, T_175230)
+ node T_175232 = eq(xact.a_type, UInt<3>(3))
+ node T_175233 = and(xact.is_builtin_type, T_175232)
+ node T_175234 = or(T_175231, T_175233)
+ node T_175235 = bits(xact.union, 5, 1)
+ wire T_175236 : UInt<5>
+ T_175236 := T_175235
+ when T_175234 : T_175236 := UInt<5>(1)
+ node T_175237 = eq(T_175236, UInt<5>(1))
+ node T_175238 = eq(T_175236, UInt<5>(7))
+ node T_175239 = or(T_175237, T_175238)
+ node T_175240 = bit(T_175236, 3)
+ node T_175241 = eq(T_175236, UInt<5>(4))
+ node T_175242 = or(T_175240, T_175241)
+ node T_175243 = or(T_175239, T_175242)
+ wire T_175244 : UInt<2>
+ T_175244 := UInt<2>(1)
+ when T_175243 : T_175244 := UInt<2>(2)
+ wire T_175245 : UInt<2>
+ T_175245 := T_175244
+ when outer.grant.bits.is_builtin_type : T_175245 := UInt<2>(0)
+ wire T_175246 : UInt<3>[3]
+ T_175246[0] := UInt<3>(0)
+ T_175246[1] := UInt<3>(1)
+ T_175246[2] := UInt<3>(2)
+ wire T_175247 : UInt<0>[1]
+ T_175247[0] := UInt<0>(0)
+ wire T_175248 : UInt<2>[2]
+ T_175248[0] := UInt<2>(1)
+ T_175248[1] := UInt<2>(2)
+ wire T_175249 : UInt<2>[2]
+ T_175249[0] := UInt<2>(1)
+ T_175249[1] := UInt<2>(2)
+ wire T_175250 : UInt<2>[1]
+ T_175250[0] := UInt<2>(2)
+ wire T_175251 : UInt<3>[3]
+ T_175251[0] := UInt<3>(0)
+ T_175251[1] := UInt<3>(1)
+ T_175251[2] := UInt<3>(2)
+ wire T_175252 : UInt<0>[1]
+ T_175252[0] := UInt<0>(0)
+ wire T_175253 : UInt<2>[2]
+ T_175253[0] := UInt<2>(1)
+ T_175253[1] := UInt<2>(2)
+ wire T_175254 : UInt<2>[2]
+ T_175254[0] := UInt<2>(1)
+ T_175254[1] := UInt<2>(2)
+ wire T_175255 : UInt<2>[1]
+ T_175255[0] := UInt<2>(2)
+ wire T_175256 : {state : UInt<2>, makeRelease$default$2 : UInt<1>, makeRelease$default$3 : UInt<1>, makeVoluntaryRelease$default$4 : UInt<1>, makeVoluntaryRelease$default$5 : UInt<1>, makeVoluntaryWriteback$default$3 : UInt<1>, makeVoluntaryWriteback$default$4 : UInt<1>}
+ T_175256.state := T_175245
+ wire T_175257 : UInt<3>[3]
+ T_175257[0] := UInt<3>(0)
+ T_175257[1] := UInt<3>(1)
+ T_175257[2] := UInt<3>(2)
+ wire T_175258 : UInt<2>[2]
+ T_175258[0] := UInt<2>(0)
+ T_175258[1] := UInt<2>(1)
+ wire T_175259 : UInt<2>[3]
+ T_175259[0] := UInt<2>(1)
+ T_175259[1] := UInt<2>(2)
+ T_175259[2] := UInt<2>(3)
+ wire T_175260 : UInt<2>[2]
+ T_175260[0] := UInt<2>(2)
+ T_175260[1] := UInt<2>(3)
+ wire T_175261 : UInt<2>[1]
+ T_175261[0] := UInt<2>(3)
+ wire T_175262 : UInt<3>[3]
+ T_175262[0] := UInt<3>(0)
+ T_175262[1] := UInt<3>(1)
+ T_175262[2] := UInt<3>(2)
+ wire T_175263 : UInt<2>[2]
+ T_175263[0] := UInt<2>(0)
+ T_175263[1] := UInt<2>(1)
+ wire T_175264 : UInt<2>[3]
+ T_175264[0] := UInt<2>(1)
+ T_175264[1] := UInt<2>(2)
+ T_175264[2] := UInt<2>(3)
+ wire T_175265 : UInt<2>[2]
+ T_175265[0] := UInt<2>(2)
+ T_175265[1] := UInt<2>(3)
+ wire T_175266 : UInt<2>[1]
+ T_175266[0] := UInt<2>(3)
+ wire T_175267 : UInt<3>[3]
+ T_175267[0] := UInt<3>(0)
+ T_175267[1] := UInt<3>(1)
+ T_175267[2] := UInt<3>(2)
+ wire T_175268 : UInt<0>[1]
+ T_175268[0] := UInt<0>(0)
+ wire T_175269 : UInt<2>[2]
+ T_175269[0] := UInt<2>(1)
+ T_175269[1] := UInt<2>(2)
+ wire T_175270 : UInt<2>[2]
+ T_175270[0] := UInt<2>(1)
+ T_175270[1] := UInt<2>(2)
+ wire T_175271 : UInt<2>[1]
+ T_175271[0] := UInt<2>(2)
+ wire T_175272 : UInt<3>[3]
+ T_175272[0] := UInt<3>(0)
+ T_175272[1] := UInt<3>(1)
+ T_175272[2] := UInt<3>(2)
+ wire T_175273 : UInt<2>[2]
+ T_175273[0] := UInt<2>(0)
+ T_175273[1] := UInt<2>(1)
+ wire T_175274 : UInt<2>[3]
+ T_175274[0] := UInt<2>(1)
+ T_175274[1] := UInt<2>(2)
+ T_175274[2] := UInt<2>(3)
+ wire T_175275 : UInt<2>[2]
+ T_175275[0] := UInt<2>(2)
+ T_175275[1] := UInt<2>(3)
+ wire T_175276 : UInt<2>[1]
+ T_175276[0] := UInt<2>(3)
+ wire T_175277 : UInt<3>[3]
+ T_175277[0] := UInt<3>(0)
+ T_175277[1] := UInt<3>(1)
+ T_175277[2] := UInt<3>(2)
+ wire T_175278 : UInt<2>[2]
+ T_175278[0] := UInt<2>(0)
+ T_175278[1] := UInt<2>(1)
+ wire T_175279 : UInt<2>[3]
+ T_175279[0] := UInt<2>(1)
+ T_175279[1] := UInt<2>(2)
+ T_175279[2] := UInt<2>(3)
+ wire T_175280 : UInt<2>[2]
+ T_175280[0] := UInt<2>(2)
+ T_175280[1] := UInt<2>(3)
+ wire T_175281 : UInt<2>[1]
+ T_175281[0] := UInt<2>(3)
+ wire T_175282 : UInt<3>[3]
+ T_175282[0] := UInt<3>(0)
+ T_175282[1] := UInt<3>(1)
+ T_175282[2] := UInt<3>(2)
+ wire T_175283 : UInt<0>[1]
+ T_175283[0] := UInt<0>(0)
+ wire T_175284 : UInt<2>[2]
+ T_175284[0] := UInt<2>(1)
+ T_175284[1] := UInt<2>(2)
+ wire T_175285 : UInt<2>[2]
+ T_175285[0] := UInt<2>(1)
+ T_175285[1] := UInt<2>(2)
+ wire T_175286 : UInt<2>[1]
+ T_175286[0] := UInt<2>(2)
+ wire pending_coh_on_ognt : {inner : {sharers : UInt<1>, makeGrant$default$3 : UInt<1>, makeGrant$default$4 : UInt<1>}, outer : {state : UInt<2>, makeRelease$default$2 : UInt<1>, makeRelease$default$3 : UInt<1>, makeVoluntaryRelease$default$4 : UInt<1>, makeVoluntaryRelease$default$5 : UInt<1>, makeVoluntaryWriteback$default$3 : UInt<1>, makeVoluntaryWriteback$default$4 : UInt<1>}}
+ pending_coh_on_ognt.inner := T_175229
+ pending_coh_on_ognt.outer := T_175256
+
+
+ node T_175287 = eq(pending_coh.inner.sharers, pending_coh_on_ognt.inner.sharers)
+ node T_175288 = eq(pending_coh.outer.state, pending_coh_on_ognt.outer.state)
+ node T_175289 = and(T_175287, T_175288)
+ node T_175290 = eq(T_175289, UInt<1>(0))
+ node T_175291 = and(ognt_data_done, T_175290)
+ when T_175291 :
+ pending_meta_write := UInt<1>(1)
+ pending_coh := pending_coh_on_ognt
+
+
+ node T_175292 = and(outer.grant.ready, outer.grant.valid)
+ wire T_175293 : UInt<3>[2]
+ T_175293[0] := UInt<3>(5)
+ T_175293[1] := UInt<3>(4)
+ node T_175294 = eq(T_175293[0], outer.grant.bits.g_type)
+ node T_175295 = eq(T_175293[1], outer.grant.bits.g_type)
+ node T_175296 = or(UInt<1>(0), T_175294)
+ node T_175297 = or(T_175296, T_175295)
+ node T_175298 = eq(T_174484[0], outer.grant.bits.g_type)
+ node T_175299 = or(UInt<1>(0), T_175298)
+ wire T_175300 : UInt<1>
+ T_175300 := T_175299
+ when outer.grant.bits.is_builtin_type : T_175300 := T_175297
+ node T_175301 = and(T_175292, T_175300)
+ when T_175301 :
+ accessor T_175302 = data_buffer[outer.grant.bits.addr_beat]
+ node T_175303 = bits(xact.union, 12, 9)
+ node T_175304 = bits(T_175303, 3, 3)
+ node T_175305 = mul(UInt<7>(64), T_175304)
+ node T_175306 = dshr(outer.grant.bits.data, T_175305)
+ amoalu.lhs := T_175306
+ node T_175307 = bits(xact.union, 12, 9)
+ node T_175308 = bits(T_175307, 3, 3)
+ node T_175309 = mul(UInt<7>(64), T_175308)
+ node T_175310 = dshr(T_175302, T_175309)
+ amoalu.rhs := T_175310
+ accessor T_175311 = wmask_buffer[outer.grant.bits.addr_beat]
+ node T_175312 = bit(T_175311, 0)
+ node T_175313 = bit(T_175311, 1)
+ node T_175314 = bit(T_175311, 2)
+ node T_175315 = bit(T_175311, 3)
+ node T_175316 = bit(T_175311, 4)
+ node T_175317 = bit(T_175311, 5)
+ node T_175318 = bit(T_175311, 6)
+ node T_175319 = bit(T_175311, 7)
+ node T_175320 = bit(T_175311, 8)
+ node T_175321 = bit(T_175311, 9)
+ node T_175322 = bit(T_175311, 10)
+ node T_175323 = bit(T_175311, 11)
+ node T_175324 = bit(T_175311, 12)
+ node T_175325 = bit(T_175311, 13)
+ node T_175326 = bit(T_175311, 14)
+ node T_175327 = bit(T_175311, 15)
+ wire T_175328 : UInt<1>[16]
+ T_175328[0] := T_175312
+ T_175328[1] := T_175313
+ T_175328[2] := T_175314
+ T_175328[3] := T_175315
+ T_175328[4] := T_175316
+ T_175328[5] := T_175317
+ T_175328[6] := T_175318
+ T_175328[7] := T_175319
+ T_175328[8] := T_175320
+ T_175328[9] := T_175321
+ T_175328[10] := T_175322
+ T_175328[11] := T_175323
+ T_175328[12] := T_175324
+ T_175328[13] := T_175325
+ T_175328[14] := T_175326
+ T_175328[15] := T_175327
+ node T_175329 = subw(UInt<8>(0), UInt<4>(8))
+ node T_175330 = subw(UInt<8>(0), UInt<4>(8))
+ node T_175331 = subw(UInt<8>(0), UInt<4>(8))
+ node T_175332 = subw(UInt<8>(0), UInt<4>(8))
+ node T_175333 = subw(UInt<8>(0), UInt<4>(8))
+ node T_175334 = subw(UInt<8>(0), UInt<4>(8))
+ node T_175335 = subw(UInt<8>(0), UInt<4>(8))
+ node T_175336 = subw(UInt<8>(0), UInt<4>(8))
+ node T_175337 = subw(UInt<8>(0), UInt<4>(8))
+ node T_175338 = subw(UInt<8>(0), UInt<4>(8))
+ node T_175339 = subw(UInt<8>(0), UInt<4>(8))
+ node T_175340 = subw(UInt<8>(0), UInt<4>(8))
+ node T_175341 = subw(UInt<8>(0), UInt<4>(8))
+ node T_175342 = subw(UInt<8>(0), UInt<4>(8))
+ node T_175343 = subw(UInt<8>(0), UInt<4>(8))
+ node T_175344 = subw(UInt<8>(0), UInt<4>(8))
+ wire T_175345 : UInt<8>[16]
+ T_175345[0] := T_175329
+ T_175345[1] := T_175330
+ T_175345[2] := T_175331
+ T_175345[3] := T_175332
+ T_175345[4] := T_175333
+ T_175345[5] := T_175334
+ T_175345[6] := T_175335
+ T_175345[7] := T_175336
+ T_175345[8] := T_175337
+ T_175345[9] := T_175338
+ T_175345[10] := T_175339
+ T_175345[11] := T_175340
+ T_175345[12] := T_175341
+ T_175345[13] := T_175342
+ T_175345[14] := T_175343
+ T_175345[15] := T_175344
+ node T_175346 = cat(T_175345[15], T_175345[14])
+ node T_175347 = cat(T_175345[13], T_175345[12])
+ node T_175348 = cat(T_175346, T_175347)
+ node T_175349 = cat(T_175345[11], T_175345[10])
+ node T_175350 = cat(T_175345[9], T_175345[8])
+ node T_175351 = cat(T_175349, T_175350)
+ node T_175352 = cat(T_175348, T_175351)
+ node T_175353 = cat(T_175345[7], T_175345[6])
+ node T_175354 = cat(T_175345[5], T_175345[4])
+ node T_175355 = cat(T_175353, T_175354)
+ node T_175356 = cat(T_175345[3], T_175345[2])
+ node T_175357 = cat(T_175345[1], T_175345[0])
+ node T_175358 = cat(T_175356, T_175357)
+ node T_175359 = cat(T_175355, T_175358)
+ node T_175360 = cat(T_175352, T_175359)
+ accessor T_175361 = data_buffer[outer.grant.bits.addr_beat]
+ node T_175362 = not(T_175360)
+ node T_175363 = and(T_175362, outer.grant.bits.data)
+ node T_175364 = eq(xact.a_type, UInt<3>(4))
+ node T_175365 = and(xact.is_builtin_type, T_175364)
+ node T_175366 = bits(xact.union, 12, 9)
+ node T_175367 = bits(T_175366, 3, 3)
+ node T_175368 = mul(UInt<7>(64), T_175367)
+ node T_175369 = dshl(amoalu.out, T_175368)
+ wire T_175370 : UInt<128>
+ T_175370 := T_175302
+ when T_175365 : T_175370 := T_175369
+ node T_175371 = and(T_175360, T_175370)
+ node T_175372 = or(T_175363, T_175371)
+ T_175361 := T_175372
+ accessor T_175373 = wmask_buffer[outer.grant.bits.addr_beat]
+ T_175373 := SInt<1>(-1)
+
+
+ node T_175374 = eq(xact.a_type, UInt<3>(4))
+ node T_175375 = eq(xact.addr_beat, outer.grant.bits.addr_beat)
+ node T_175376 = and(T_175374, T_175375)
+ when T_175376 : xact.data := outer.grant.bits.data
+ node T_175377 = and(inner.release.ready, inner.release.valid)
+ node T_175378 = eq(T_174457[0], inner.release.bits.r_type)
+ node T_175379 = eq(T_174457[1], inner.release.bits.r_type)
+ node T_175380 = eq(T_174457[2], inner.release.bits.r_type)
+ node T_175381 = or(UInt<1>(0), T_175378)
+ node T_175382 = or(T_175381, T_175379)
+ node T_175383 = or(T_175382, T_175380)
+ node T_175384 = and(T_175377, T_175383)
+ node T_175385 = subw(UInt<4>(0), UInt<3>(4))
+ node T_175386 = dshl(UInt<1>(1), inner.release.bits.addr_beat)
+ node T_175387 = and(T_175385, T_175386)
+ node T_175388 = or(pending_ignt_data, T_175387)
+ node T_175389 = and(outer.grant.ready, outer.grant.valid)
+ wire T_175390 : UInt<3>[2]
+ T_175390[0] := UInt<3>(5)
+ T_175390[1] := UInt<3>(4)
+ node T_175391 = eq(T_175390[0], outer.grant.bits.g_type)
+ node T_175392 = eq(T_175390[1], outer.grant.bits.g_type)
+ node T_175393 = or(UInt<1>(0), T_175391)
+ node T_175394 = or(T_175393, T_175392)
+ node T_175395 = eq(T_174484[0], outer.grant.bits.g_type)
+ node T_175396 = or(UInt<1>(0), T_175395)
+ wire T_175397 : UInt<1>
+ T_175397 := T_175396
+ when outer.grant.bits.is_builtin_type : T_175397 := T_175394
+ node T_175398 = and(T_175389, T_175397)
+ node T_175399 = subw(UInt<4>(0), UInt<3>(4))
+ node T_175400 = dshl(UInt<1>(1), outer.grant.bits.addr_beat)
+ node T_175401 = and(T_175399, T_175400)
+ node T_175402 = or(T_175388, T_175401)
+ node T_175403 = subw(UInt<4>(0), UInt<3>(4))
+ node T_175404 = dshl(UInt<1>(1), data.resp.bits.addr_beat)
+ node T_175405 = and(T_175403, T_175404)
+ node T_175406 = or(T_175402, T_175405)
+ pending_ignt_data := T_175406
+ ignt_q.deq.ready := ignt_data_done
+ node T_175407 = eq(state, UInt<4>(7))
+ node T_175408 = and(T_175407, ignt_q.deq.valid)
+ wire T_175409 : UInt<3>[2]
+ T_175409[0] := UInt<3>(5)
+ T_175409[1] := UInt<3>(4)
+ node T_175410 = eq(T_175409[0], inner.grant.bits.g_type)
+ node T_175411 = eq(T_175409[1], inner.grant.bits.g_type)
+ node T_175412 = or(UInt<1>(0), T_175410)
+ node T_175413 = or(T_175412, T_175411)
+ node T_175414 = eq(T_174428[0], inner.grant.bits.g_type)
+ node T_175415 = eq(T_174428[1], inner.grant.bits.g_type)
+ node T_175416 = or(UInt<1>(0), T_175414)
+ node T_175417 = or(T_175416, T_175415)
+ wire T_175418 : UInt<1>
+ T_175418 := T_175417
+ when inner.grant.bits.is_builtin_type : T_175418 := T_175413
+ node T_175419 = eq(T_175418, UInt<1>(0))
+ node T_175420 = dshr(pending_ignt_data, ignt_data_idx)
+ node T_175421 = bit(T_175420, 0)
+ node T_175422 = or(T_175419, T_175421)
+ node T_175423 = and(T_175408, T_175422)
+ inner.grant.valid := T_175423
+ node T_175424 = eq(xact.a_type, UInt<3>(4))
+ accessor T_175425 = data_buffer[ignt_data_idx]
+ wire T_175426 : UInt<128>
+ T_175426 := T_175425
+ when T_175424 : T_175426 := xact.data
+ node T_175427 = eq(UInt<3>(5), xact.a_type)
+ wire T_175428 : UInt<3>
+ T_175428 := UInt<3>(3)
+ when T_175427 : T_175428 := UInt<3>(1)
+ node T_175429 = eq(UInt<3>(4), xact.a_type)
+ wire T_175430 : UInt<3>
+ T_175430 := T_175428
+ when T_175429 : T_175430 := UInt<3>(4)
+ node T_175431 = eq(UInt<3>(3), xact.a_type)
+ wire T_175432 : UInt<3>
+ T_175432 := T_175430
+ when T_175431 : T_175432 := UInt<3>(3)
+ node T_175433 = eq(UInt<3>(2), xact.a_type)
+ wire T_175434 : UInt<3>
+ T_175434 := T_175432
+ when T_175433 : T_175434 := UInt<3>(3)
+ node T_175435 = eq(UInt<3>(1), xact.a_type)
+ wire T_175436 : UInt<3>
+ T_175436 := T_175434
+ when T_175435 : T_175436 := UInt<3>(5)
+ node T_175437 = eq(UInt<3>(0), xact.a_type)
+ wire T_175438 : UInt<3>
+ T_175438 := T_175436
+ when T_175437 : T_175438 := UInt<3>(4)
+ node T_175439 = eq(xact.a_type, UInt<1>(0))
+ node T_175440 = eq(pending_coh.inner.sharers, UInt<1>(0))
+ node T_175441 = eq(T_175440, UInt<1>(0))
+ wire T_175442 : UInt<2>
+ T_175442 := UInt<2>(1)
+ when T_175441 : T_175442 := UInt<2>(0)
+ wire T_175443 : UInt<2>
+ T_175443 := UInt<2>(1)
+ when T_175439 : T_175443 := T_175442
+ wire T_175444 : UInt<2>
+ T_175444 := T_175443
+ when xact.is_builtin_type : T_175444 := T_175438
+ wire T_175445 : UInt<3>[3]
+ T_175445[0] := UInt<3>(0)
+ T_175445[1] := UInt<3>(1)
+ T_175445[2] := UInt<3>(2)
+ wire T_175446 : UInt<2>[2]
+ T_175446[0] := UInt<2>(0)
+ T_175446[1] := UInt<2>(1)
+ wire T_175447 : UInt<2>[3]
+ T_175447[0] := UInt<2>(1)
+ T_175447[1] := UInt<2>(2)
+ T_175447[2] := UInt<2>(3)
+ wire T_175448 : UInt<2>[2]
+ T_175448[0] := UInt<2>(2)
+ T_175448[1] := UInt<2>(3)
+ wire T_175449 : UInt<2>[1]
+ T_175449[0] := UInt<2>(3)
+ wire T_175450 : UInt<3>[3]
+ T_175450[0] := UInt<3>(0)
+ T_175450[1] := UInt<3>(1)
+ T_175450[2] := UInt<3>(2)
+ wire T_175451 : UInt<2>[2]
+ T_175451[0] := UInt<2>(0)
+ T_175451[1] := UInt<2>(1)
+ wire T_175452 : UInt<2>[3]
+ T_175452[0] := UInt<2>(1)
+ T_175452[1] := UInt<2>(2)
+ T_175452[2] := UInt<2>(3)
+ wire T_175453 : UInt<2>[2]
+ T_175453[0] := UInt<2>(2)
+ T_175453[1] := UInt<2>(3)
+ wire T_175454 : UInt<2>[1]
+ T_175454[0] := UInt<2>(3)
+ wire T_175455 : {addr_beat : UInt<2>, data : UInt<128>, client_xact_id : UInt<1>, manager_xact_id : UInt<2>, is_builtin_type : UInt<1>, g_type : UInt<4>, client_id : UInt<2>}
+ T_175455.client_id := xact.client_id
+ T_175455.is_builtin_type := xact.is_builtin_type
+ T_175455.g_type := T_175444
+ T_175455.client_xact_id := xact.client_xact_id
+ T_175455.manager_xact_id := UInt<2>(2)
+ T_175455.addr_beat := ignt_q.deq.bits.addr_beat
+ T_175455.data := T_175426
+ T_175455.client_xact_id := ignt_q.deq.bits.client_xact_id
+ inner.grant.bits := T_175455
+ inner.grant.bits.addr_beat := ignt_data_idx
+ node T_175456 = dshl(UInt<1>(1), inner.grant.bits.client_id)
+ node T_175457 = or(pending_coh.inner.sharers, T_175456)
+ wire T_175458 : UInt<5>
+ T_175458 := T_175457
+ when inner.grant.bits.is_builtin_type : T_175458 := pending_coh.inner.sharers
+ wire T_175459 : UInt<3>[3]
+ T_175459[0] := UInt<3>(0)
+ T_175459[1] := UInt<3>(1)
+ T_175459[2] := UInt<3>(2)
+ wire T_175460 : UInt<2>[2]
+ T_175460[0] := UInt<2>(0)
+ T_175460[1] := UInt<2>(1)
+ wire T_175461 : UInt<2>[3]
+ T_175461[0] := UInt<2>(1)
+ T_175461[1] := UInt<2>(2)
+ T_175461[2] := UInt<2>(3)
+ wire T_175462 : UInt<2>[2]
+ T_175462[0] := UInt<2>(2)
+ T_175462[1] := UInt<2>(3)
+ wire T_175463 : UInt<2>[1]
+ T_175463[0] := UInt<2>(3)
+ wire T_175464 : UInt<3>[3]
+ T_175464[0] := UInt<3>(0)
+ T_175464[1] := UInt<3>(1)
+ T_175464[2] := UInt<3>(2)
+ wire T_175465 : UInt<2>[2]
+ T_175465[0] := UInt<2>(0)
+ T_175465[1] := UInt<2>(1)
+ wire T_175466 : UInt<2>[3]
+ T_175466[0] := UInt<2>(1)
+ T_175466[1] := UInt<2>(2)
+ T_175466[2] := UInt<2>(3)
+ wire T_175467 : UInt<2>[2]
+ T_175467[0] := UInt<2>(2)
+ T_175467[1] := UInt<2>(3)
+ wire T_175468 : UInt<2>[1]
+ T_175468[0] := UInt<2>(3)
+ wire T_175469 : {sharers : UInt<1>, makeGrant$default$3 : UInt<1>, makeGrant$default$4 : UInt<1>}
+ T_175469.sharers := T_175458
+ wire T_175470 : UInt<3>[3]
+ T_175470[0] := UInt<3>(0)
+ T_175470[1] := UInt<3>(1)
+ T_175470[2] := UInt<3>(2)
+ wire T_175471 : UInt<2>[2]
+ T_175471[0] := UInt<2>(0)
+ T_175471[1] := UInt<2>(1)
+ wire T_175472 : UInt<2>[3]
+ T_175472[0] := UInt<2>(1)
+ T_175472[1] := UInt<2>(2)
+ T_175472[2] := UInt<2>(3)
+ wire T_175473 : UInt<2>[2]
+ T_175473[0] := UInt<2>(2)
+ T_175473[1] := UInt<2>(3)
+ wire T_175474 : UInt<2>[1]
+ T_175474[0] := UInt<2>(3)
+ wire T_175475 : {state : UInt<2>, makeRelease$default$2 : UInt<1>, makeRelease$default$3 : UInt<1>, makeVoluntaryRelease$default$4 : UInt<1>, makeVoluntaryRelease$default$5 : UInt<1>, makeVoluntaryWriteback$default$3 : UInt<1>, makeVoluntaryWriteback$default$4 : UInt<1>}
+ T_175475 := pending_coh.outer
+ when ognt_data_done : T_175475 := pending_coh_on_ognt.outer
+ wire T_175476 : UInt<3>[3]
+ T_175476[0] := UInt<3>(0)
+ T_175476[1] := UInt<3>(1)
+ T_175476[2] := UInt<3>(2)
+ wire T_175477 : UInt<2>[2]
+ T_175477[0] := UInt<2>(0)
+ T_175477[1] := UInt<2>(1)
+ wire T_175478 : UInt<2>[3]
+ T_175478[0] := UInt<2>(1)
+ T_175478[1] := UInt<2>(2)
+ T_175478[2] := UInt<2>(3)
+ wire T_175479 : UInt<2>[2]
+ T_175479[0] := UInt<2>(2)
+ T_175479[1] := UInt<2>(3)
+ wire T_175480 : UInt<2>[1]
+ T_175480[0] := UInt<2>(3)
+ wire T_175481 : UInt<3>[3]
+ T_175481[0] := UInt<3>(0)
+ T_175481[1] := UInt<3>(1)
+ T_175481[2] := UInt<3>(2)
+ wire T_175482 : UInt<2>[2]
+ T_175482[0] := UInt<2>(0)
+ T_175482[1] := UInt<2>(1)
+ wire T_175483 : UInt<2>[3]
+ T_175483[0] := UInt<2>(1)
+ T_175483[1] := UInt<2>(2)
+ T_175483[2] := UInt<2>(3)
+ wire T_175484 : UInt<2>[2]
+ T_175484[0] := UInt<2>(2)
+ T_175484[1] := UInt<2>(3)
+ wire T_175485 : UInt<2>[1]
+ T_175485[0] := UInt<2>(3)
+ wire T_175486 : UInt<3>[3]
+ T_175486[0] := UInt<3>(0)
+ T_175486[1] := UInt<3>(1)
+ T_175486[2] := UInt<3>(2)
+ wire T_175487 : UInt<0>[1]
+ T_175487[0] := UInt<0>(0)
+ wire T_175488 : UInt<2>[2]
+ T_175488[0] := UInt<2>(1)
+ T_175488[1] := UInt<2>(2)
+ wire T_175489 : UInt<2>[2]
+ T_175489[0] := UInt<2>(1)
+ T_175489[1] := UInt<2>(2)
+ wire T_175490 : UInt<2>[1]
+ T_175490[0] := UInt<2>(2)
+ wire T_175491 : UInt<3>[3]
+ T_175491[0] := UInt<3>(0)
+ T_175491[1] := UInt<3>(1)
+ T_175491[2] := UInt<3>(2)
+ wire T_175492 : UInt<2>[2]
+ T_175492[0] := UInt<2>(0)
+ T_175492[1] := UInt<2>(1)
+ wire T_175493 : UInt<2>[3]
+ T_175493[0] := UInt<2>(1)
+ T_175493[1] := UInt<2>(2)
+ T_175493[2] := UInt<2>(3)
+ wire T_175494 : UInt<2>[2]
+ T_175494[0] := UInt<2>(2)
+ T_175494[1] := UInt<2>(3)
+ wire T_175495 : UInt<2>[1]
+ T_175495[0] := UInt<2>(3)
+ wire T_175496 : UInt<3>[3]
+ T_175496[0] := UInt<3>(0)
+ T_175496[1] := UInt<3>(1)
+ T_175496[2] := UInt<3>(2)
+ wire T_175497 : UInt<2>[2]
+ T_175497[0] := UInt<2>(0)
+ T_175497[1] := UInt<2>(1)
+ wire T_175498 : UInt<2>[3]
+ T_175498[0] := UInt<2>(1)
+ T_175498[1] := UInt<2>(2)
+ T_175498[2] := UInt<2>(3)
+ wire T_175499 : UInt<2>[2]
+ T_175499[0] := UInt<2>(2)
+ T_175499[1] := UInt<2>(3)
+ wire T_175500 : UInt<2>[1]
+ T_175500[0] := UInt<2>(3)
+ wire T_175501 : UInt<3>[3]
+ T_175501[0] := UInt<3>(0)
+ T_175501[1] := UInt<3>(1)
+ T_175501[2] := UInt<3>(2)
+ wire T_175502 : UInt<0>[1]
+ T_175502[0] := UInt<0>(0)
+ wire T_175503 : UInt<2>[2]
+ T_175503[0] := UInt<2>(1)
+ T_175503[1] := UInt<2>(2)
+ wire T_175504 : UInt<2>[2]
+ T_175504[0] := UInt<2>(1)
+ T_175504[1] := UInt<2>(2)
+ wire T_175505 : UInt<2>[1]
+ T_175505[0] := UInt<2>(2)
+ wire pending_coh_on_ignt : {inner : {sharers : UInt<1>, makeGrant$default$3 : UInt<1>, makeGrant$default$4 : UInt<1>}, outer : {state : UInt<2>, makeRelease$default$2 : UInt<1>, makeRelease$default$3 : UInt<1>, makeVoluntaryRelease$default$4 : UInt<1>, makeVoluntaryRelease$default$5 : UInt<1>, makeVoluntaryWriteback$default$3 : UInt<1>, makeVoluntaryWriteback$default$4 : UInt<1>}}
+ pending_coh_on_ignt.inner := T_175469
+ pending_coh_on_ignt.outer := T_175475
+ node T_175506 = and(inner.grant.ready, inner.grant.valid)
+
+
+ node T_175507 = eq(pending_coh.inner.sharers, pending_coh_on_ignt.inner.sharers)
+ node T_175508 = eq(pending_coh.outer.state, pending_coh_on_ignt.outer.state)
+ node T_175509 = and(T_175507, T_175508)
+ node T_175510 = eq(T_175509, UInt<1>(0))
+ node T_175511 = and(T_175506, T_175510)
+ when T_175511 :
+ pending_meta_write := UInt<1>(1)
+ pending_coh := pending_coh_on_ignt
+ node T_175512 = eq(state, UInt<4>(7))
+ inner.finish.ready := T_175512
+ node T_175513 = and(data.read.ready, data.read.valid)
+ node T_175514 = subw(UInt<4>(0), UInt<3>(4))
+ node T_175515 = not(T_175514)
+ node T_175516 = dshl(UInt<1>(1), data.read.bits.addr_beat)
+ node T_175517 = not(T_175516)
+ node T_175518 = or(T_175515, T_175517)
+ node T_175519 = and(pending_reads, T_175518)
+ node T_175520 = and(inner.release.ready, inner.release.valid)
+ node T_175521 = eq(T_174457[0], inner.release.bits.r_type)
+ node T_175522 = eq(T_174457[1], inner.release.bits.r_type)
+ node T_175523 = eq(T_174457[2], inner.release.bits.r_type)
+ node T_175524 = or(UInt<1>(0), T_175521)
+ node T_175525 = or(T_175524, T_175522)
+ node T_175526 = or(T_175525, T_175523)
+ node T_175527 = and(T_175520, T_175526)
+ node T_175528 = subw(UInt<4>(0), UInt<3>(4))
+ node T_175529 = not(T_175528)
+ node T_175530 = dshl(UInt<1>(1), inner.release.bits.addr_beat)
+ node T_175531 = not(T_175530)
+ node T_175532 = or(T_175529, T_175531)
+ node T_175533 = and(T_175519, T_175532)
+ node T_175534 = and(outer.grant.ready, outer.grant.valid)
+ wire T_175535 : UInt<3>[2]
+ T_175535[0] := UInt<3>(5)
+ T_175535[1] := UInt<3>(4)
+ node T_175536 = eq(T_175535[0], outer.grant.bits.g_type)
+ node T_175537 = eq(T_175535[1], outer.grant.bits.g_type)
+ node T_175538 = or(UInt<1>(0), T_175536)
+ node T_175539 = or(T_175538, T_175537)
+ node T_175540 = eq(T_174484[0], outer.grant.bits.g_type)
+ node T_175541 = or(UInt<1>(0), T_175540)
+ wire T_175542 : UInt<1>
+ T_175542 := T_175541
+ when outer.grant.bits.is_builtin_type : T_175542 := T_175539
+ node T_175543 = and(T_175534, T_175542)
+ node T_175544 = subw(UInt<4>(0), UInt<3>(4))
+ node T_175545 = not(T_175544)
+ node T_175546 = dshl(UInt<1>(1), outer.grant.bits.addr_beat)
+ node T_175547 = not(T_175546)
+ node T_175548 = or(T_175545, T_175547)
+ node T_175549 = and(T_175533, T_175548)
+ wire T_175550 : UInt<3>[3]
+ T_175550[0] := UInt<3>(0)
+ T_175550[1] := UInt<3>(1)
+ T_175550[2] := UInt<3>(4)
+ node T_175551 = eq(T_175550[0], inner.acquire.bits.a_type)
+ node T_175552 = eq(T_175550[1], inner.acquire.bits.a_type)
+ node T_175553 = eq(T_175550[2], inner.acquire.bits.a_type)
+ node T_175554 = or(UInt<1>(0), T_175551)
+ node T_175555 = or(T_175554, T_175552)
+ node T_175556 = or(T_175555, T_175553)
+ node T_175557 = and(inner.acquire.bits.is_builtin_type, T_175556)
+ node T_175558 = and(inner.acquire.ready, inner.acquire.valid)
+ node T_175559 = and(T_175558, T_175557)
+ node T_175560 = subw(UInt<4>(0), UInt<3>(4))
+ node T_175561 = dshl(UInt<1>(1), inner.acquire.bits.addr_beat)
+ node T_175562 = and(T_175560, T_175561)
+ node T_175563 = or(T_175549, T_175562)
+ node T_175564 = eq(inner.acquire.bits.a_type, UInt<3>(4))
+ node T_175565 = and(inner.acquire.bits.is_builtin_type, T_175564)
+ node T_175566 = bits(inner.acquire.bits.union, 12, 9)
+ node T_175567 = bits(T_175566, 3, 3)
+ node T_175568 = dshl(UInt<1>(1), T_175567)
+ node T_175569 = bit(T_175568, 0)
+ node T_175570 = bit(T_175568, 1)
+ node T_175571 = bit(T_175568, 2)
+ wire T_175572 : UInt<1>[3]
+ T_175572[0] := T_175569
+ T_175572[1] := T_175570
+ T_175572[2] := T_175571
+ node T_175573 = subw(UInt<8>(0), UInt<4>(8))
+ node T_175574 = subw(UInt<8>(0), UInt<4>(8))
+ node T_175575 = subw(UInt<8>(0), UInt<4>(8))
+ wire T_175576 : UInt<8>[3]
+ T_175576[0] := T_175573
+ T_175576[1] := T_175574
+ T_175576[2] := T_175575
+ node T_175577 = cat(T_175576[1], T_175576[0])
+ node T_175578 = cat(T_175576[2], T_175577)
+ node T_175579 = eq(inner.acquire.bits.a_type, UInt<3>(3))
+ node T_175580 = and(inner.acquire.bits.is_builtin_type, T_175579)
+ node T_175581 = eq(inner.acquire.bits.a_type, UInt<3>(2))
+ node T_175582 = and(inner.acquire.bits.is_builtin_type, T_175581)
+ node T_175583 = or(T_175580, T_175582)
+ node T_175584 = bits(inner.acquire.bits.union, 16, 1)
+ wire T_175585 : UInt<16>
+ T_175585 := UInt<16>(0)
+ when T_175583 : T_175585 := T_175584
+ wire T_175586 : UInt<16>
+ T_175586 := T_175585
+ when T_175565 : T_175586 := T_175578
+ wire T_175587 : UInt<3>[3]
+ T_175587[0] := UInt<3>(0)
+ T_175587[1] := UInt<3>(1)
+ T_175587[2] := UInt<3>(2)
+ wire T_175588 : UInt<2>[2]
+ T_175588[0] := UInt<2>(0)
+ T_175588[1] := UInt<2>(1)
+ wire T_175589 : UInt<2>[3]
+ T_175589[0] := UInt<2>(1)
+ T_175589[1] := UInt<2>(2)
+ T_175589[2] := UInt<2>(3)
+ wire T_175590 : UInt<2>[2]
+ T_175590[0] := UInt<2>(2)
+ T_175590[1] := UInt<2>(3)
+ wire T_175591 : UInt<2>[1]
+ T_175591[0] := UInt<2>(3)
+ node T_175592 = asUInt(SInt<16>(-1))
+ node T_175593 = neq(T_175586, T_175592)
+ node T_175594 = and(inner.acquire.ready, inner.acquire.valid)
+ node T_175595 = and(T_175594, T_175593)
+ node T_175596 = and(T_175595, UInt<1>(0))
+ node T_175597 = subw(UInt<4>(0), UInt<3>(4))
+ node T_175598 = dshl(UInt<1>(1), inner.acquire.bits.addr_beat)
+ node T_175599 = and(T_175597, T_175598)
+ node T_175600 = or(T_175563, T_175599)
+ pending_reads := T_175600
+ node T_175601 = bit(pending_reads, 0)
+ node T_175602 = bit(pending_reads, 1)
+ node T_175603 = bit(pending_reads, 2)
+ node T_175604 = bit(pending_reads, 3)
+ wire T_175605 : UInt<1>[4]
+ T_175605[0] := T_175601
+ T_175605[1] := T_175602
+ T_175605[2] := T_175603
+ T_175605[3] := T_175604
+ wire T_175606 : UInt<2>
+ T_175606 := UInt<2>(3)
+ when T_175605[2] : T_175606 := UInt<2>(2)
+ wire T_175607 : UInt<2>
+ T_175607 := T_175606
+ when T_175605[1] : T_175607 := UInt<1>(1)
+ wire curr_read_beat : UInt<2>
+ curr_read_beat := T_175607
+ when T_175605[0] : curr_read_beat := UInt<1>(0)
+ node T_175608 = eq(state, UInt<4>(7))
+ node T_175609 = eq(pending_reads, UInt<1>(0))
+ node T_175610 = eq(T_175609, UInt<1>(0))
+ node T_175611 = and(T_175608, T_175610)
+ node T_175612 = eq(pending_ognt, UInt<1>(0))
+ node T_175613 = and(T_175611, T_175612)
+ data.read.valid := T_175613
+ data.read.bits.id := UInt<2>(2)
+ data.read.bits.way_en := xact_way_en
+ node T_175614 = bits(xact.addr_block, 11, 0)
+ data.read.bits.addr_idx := T_175614
+ data.read.bits.addr_beat := curr_read_beat
+ node T_175615 = subw(UInt<4>(0), UInt<3>(4))
+ node T_175616 = not(T_175615)
+ node T_175617 = dshl(UInt<1>(1), data.resp.bits.addr_beat)
+ node T_175618 = not(T_175617)
+ node T_175619 = or(T_175616, T_175618)
+ node T_175620 = and(pending_resps, T_175619)
+ node T_175621 = and(data.read.ready, data.read.valid)
+ node T_175622 = subw(UInt<4>(0), UInt<3>(4))
+ node T_175623 = dshl(UInt<1>(1), data.read.bits.addr_beat)
+ node T_175624 = and(T_175622, T_175623)
+ node T_175625 = or(T_175620, T_175624)
+ pending_resps := T_175625
+ when data.resp.valid :
+ accessor T_175626 = data_buffer[data.resp.bits.addr_beat]
+ node T_175627 = bits(xact.union, 12, 9)
+ node T_175628 = bits(T_175627, 3, 3)
+ node T_175629 = mul(UInt<7>(64), T_175628)
+ node T_175630 = dshr(data.resp.bits.data, T_175629)
+ amoalu.lhs := T_175630
+ node T_175631 = bits(xact.union, 12, 9)
+ node T_175632 = bits(T_175631, 3, 3)
+ node T_175633 = mul(UInt<7>(64), T_175632)
+ node T_175634 = dshr(T_175626, T_175633)
+ amoalu.rhs := T_175634
+ accessor T_175635 = wmask_buffer[data.resp.bits.addr_beat]
+ node T_175636 = bit(T_175635, 0)
+ node T_175637 = bit(T_175635, 1)
+ node T_175638 = bit(T_175635, 2)
+ node T_175639 = bit(T_175635, 3)
+ node T_175640 = bit(T_175635, 4)
+ node T_175641 = bit(T_175635, 5)
+ node T_175642 = bit(T_175635, 6)
+ node T_175643 = bit(T_175635, 7)
+ node T_175644 = bit(T_175635, 8)
+ node T_175645 = bit(T_175635, 9)
+ node T_175646 = bit(T_175635, 10)
+ node T_175647 = bit(T_175635, 11)
+ node T_175648 = bit(T_175635, 12)
+ node T_175649 = bit(T_175635, 13)
+ node T_175650 = bit(T_175635, 14)
+ node T_175651 = bit(T_175635, 15)
+ wire T_175652 : UInt<1>[16]
+ T_175652[0] := T_175636
+ T_175652[1] := T_175637
+ T_175652[2] := T_175638
+ T_175652[3] := T_175639
+ T_175652[4] := T_175640
+ T_175652[5] := T_175641
+ T_175652[6] := T_175642
+ T_175652[7] := T_175643
+ T_175652[8] := T_175644
+ T_175652[9] := T_175645
+ T_175652[10] := T_175646
+ T_175652[11] := T_175647
+ T_175652[12] := T_175648
+ T_175652[13] := T_175649
+ T_175652[14] := T_175650
+ T_175652[15] := T_175651
+ node T_175653 = subw(UInt<8>(0), UInt<4>(8))
+ node T_175654 = subw(UInt<8>(0), UInt<4>(8))
+ node T_175655 = subw(UInt<8>(0), UInt<4>(8))
+ node T_175656 = subw(UInt<8>(0), UInt<4>(8))
+ node T_175657 = subw(UInt<8>(0), UInt<4>(8))
+ node T_175658 = subw(UInt<8>(0), UInt<4>(8))
+ node T_175659 = subw(UInt<8>(0), UInt<4>(8))
+ node T_175660 = subw(UInt<8>(0), UInt<4>(8))
+ node T_175661 = subw(UInt<8>(0), UInt<4>(8))
+ node T_175662 = subw(UInt<8>(0), UInt<4>(8))
+ node T_175663 = subw(UInt<8>(0), UInt<4>(8))
+ node T_175664 = subw(UInt<8>(0), UInt<4>(8))
+ node T_175665 = subw(UInt<8>(0), UInt<4>(8))
+ node T_175666 = subw(UInt<8>(0), UInt<4>(8))
+ node T_175667 = subw(UInt<8>(0), UInt<4>(8))
+ node T_175668 = subw(UInt<8>(0), UInt<4>(8))
+ wire T_175669 : UInt<8>[16]
+ T_175669[0] := T_175653
+ T_175669[1] := T_175654
+ T_175669[2] := T_175655
+ T_175669[3] := T_175656
+ T_175669[4] := T_175657
+ T_175669[5] := T_175658
+ T_175669[6] := T_175659
+ T_175669[7] := T_175660
+ T_175669[8] := T_175661
+ T_175669[9] := T_175662
+ T_175669[10] := T_175663
+ T_175669[11] := T_175664
+ T_175669[12] := T_175665
+ T_175669[13] := T_175666
+ T_175669[14] := T_175667
+ T_175669[15] := T_175668
+ node T_175670 = cat(T_175669[15], T_175669[14])
+ node T_175671 = cat(T_175669[13], T_175669[12])
+ node T_175672 = cat(T_175670, T_175671)
+ node T_175673 = cat(T_175669[11], T_175669[10])
+ node T_175674 = cat(T_175669[9], T_175669[8])
+ node T_175675 = cat(T_175673, T_175674)
+ node T_175676 = cat(T_175672, T_175675)
+ node T_175677 = cat(T_175669[7], T_175669[6])
+ node T_175678 = cat(T_175669[5], T_175669[4])
+ node T_175679 = cat(T_175677, T_175678)
+ node T_175680 = cat(T_175669[3], T_175669[2])
+ node T_175681 = cat(T_175669[1], T_175669[0])
+ node T_175682 = cat(T_175680, T_175681)
+ node T_175683 = cat(T_175679, T_175682)
+ node T_175684 = cat(T_175676, T_175683)
+ accessor T_175685 = data_buffer[data.resp.bits.addr_beat]
+ node T_175686 = not(T_175684)
+ node T_175687 = and(T_175686, data.resp.bits.data)
+ node T_175688 = eq(xact.a_type, UInt<3>(4))
+ node T_175689 = and(xact.is_builtin_type, T_175688)
+ node T_175690 = bits(xact.union, 12, 9)
+ node T_175691 = bits(T_175690, 3, 3)
+ node T_175692 = mul(UInt<7>(64), T_175691)
+ node T_175693 = dshl(amoalu.out, T_175692)
+ wire T_175694 : UInt<128>
+ T_175694 := T_175626
+ when T_175689 : T_175694 := T_175693
+ node T_175695 = and(T_175684, T_175694)
+ node T_175696 = or(T_175687, T_175695)
+ T_175685 := T_175696
+ accessor T_175697 = wmask_buffer[data.resp.bits.addr_beat]
+ T_175697 := SInt<1>(-1)
+
+
+ node T_175698 = eq(xact.a_type, UInt<3>(4))
+ node T_175699 = eq(xact.addr_beat, data.resp.bits.addr_beat)
+ node T_175700 = and(T_175698, T_175699)
+ when T_175700 : xact.data := data.resp.bits.data
+ node T_175701 = and(data.write.ready, data.write.valid)
+ node T_175702 = subw(UInt<4>(0), UInt<3>(4))
+ node T_175703 = not(T_175702)
+ node T_175704 = dshl(UInt<1>(1), data.write.bits.addr_beat)
+ node T_175705 = not(T_175704)
+ node T_175706 = or(T_175703, T_175705)
+ node T_175707 = and(pending_writes, T_175706)
+ node T_175708 = and(inner.acquire.ready, inner.acquire.valid)
+ wire T_175709 : UInt<3>[3]
+ T_175709[0] := UInt<3>(2)
+ T_175709[1] := UInt<3>(3)
+ T_175709[2] := UInt<3>(4)
+ node T_175710 = eq(T_175709[0], inner.acquire.bits.a_type)
+ node T_175711 = eq(T_175709[1], inner.acquire.bits.a_type)
+ node T_175712 = eq(T_175709[2], inner.acquire.bits.a_type)
+ node T_175713 = or(UInt<1>(0), T_175710)
+ node T_175714 = or(T_175713, T_175711)
+ node T_175715 = or(T_175714, T_175712)
+ node T_175716 = and(inner.acquire.bits.is_builtin_type, T_175715)
+ node T_175717 = and(T_175708, T_175716)
+ node T_175718 = bit(inner.acquire.bits.union, 0)
+ node T_175719 = and(T_175717, T_175718)
+ node T_175720 = subw(UInt<4>(0), UInt<3>(4))
+ node T_175721 = dshl(UInt<1>(1), inner.acquire.bits.addr_beat)
+ node T_175722 = and(T_175720, T_175721)
+ node T_175723 = or(T_175707, T_175722)
+ node T_175724 = and(inner.release.ready, inner.release.valid)
+ node T_175725 = eq(T_174457[0], inner.release.bits.r_type)
+ node T_175726 = eq(T_174457[1], inner.release.bits.r_type)
+ node T_175727 = eq(T_174457[2], inner.release.bits.r_type)
+ node T_175728 = or(UInt<1>(0), T_175725)
+ node T_175729 = or(T_175728, T_175726)
+ node T_175730 = or(T_175729, T_175727)
+ node T_175731 = and(T_175724, T_175730)
+ node T_175732 = subw(UInt<4>(0), UInt<3>(4))
+ node T_175733 = dshl(UInt<1>(1), inner.release.bits.addr_beat)
+ node T_175734 = and(T_175732, T_175733)
+ node T_175735 = or(T_175723, T_175734)
+ node T_175736 = and(outer.grant.ready, outer.grant.valid)
+ wire T_175737 : UInt<3>[2]
+ T_175737[0] := UInt<3>(5)
+ T_175737[1] := UInt<3>(4)
+ node T_175738 = eq(T_175737[0], outer.grant.bits.g_type)
+ node T_175739 = eq(T_175737[1], outer.grant.bits.g_type)
+ node T_175740 = or(UInt<1>(0), T_175738)
+ node T_175741 = or(T_175740, T_175739)
+ node T_175742 = eq(T_174484[0], outer.grant.bits.g_type)
+ node T_175743 = or(UInt<1>(0), T_175742)
+ wire T_175744 : UInt<1>
+ T_175744 := T_175743
+ when outer.grant.bits.is_builtin_type : T_175744 := T_175741
+ node T_175745 = and(T_175736, T_175744)
+ node T_175746 = subw(UInt<4>(0), UInt<3>(4))
+ node T_175747 = dshl(UInt<1>(1), outer.grant.bits.addr_beat)
+ node T_175748 = and(T_175746, T_175747)
+ node T_175749 = or(T_175735, T_175748)
+ pending_writes := T_175749
+ node T_175750 = bit(pending_writes, 0)
+ node T_175751 = bit(pending_writes, 1)
+ node T_175752 = bit(pending_writes, 2)
+ node T_175753 = bit(pending_writes, 3)
+ wire T_175754 : UInt<1>[4]
+ T_175754[0] := T_175750
+ T_175754[1] := T_175751
+ T_175754[2] := T_175752
+ T_175754[3] := T_175753
+ wire T_175755 : UInt<2>
+ T_175755 := UInt<2>(3)
+ when T_175754[2] : T_175755 := UInt<2>(2)
+ wire T_175756 : UInt<2>
+ T_175756 := T_175755
+ when T_175754[1] : T_175756 := UInt<1>(1)
+ wire curr_write_beat : UInt<2>
+ curr_write_beat := T_175756
+ when T_175754[0] : curr_write_beat := UInt<1>(0)
+ node T_175757 = eq(state, UInt<4>(7))
+ node T_175758 = eq(pending_writes, UInt<1>(0))
+ node T_175759 = eq(T_175758, UInt<1>(0))
+ node T_175760 = and(T_175757, T_175759)
+ node T_175761 = eq(pending_ognt, UInt<1>(0))
+ node T_175762 = and(T_175760, T_175761)
+ node T_175763 = dshr(pending_reads, curr_write_beat)
+ node T_175764 = bit(T_175763, 0)
+ node T_175765 = eq(T_175764, UInt<1>(0))
+ node T_175766 = and(T_175762, T_175765)
+ node T_175767 = dshr(pending_resps, curr_write_beat)
+ node T_175768 = bit(T_175767, 0)
+ node T_175769 = eq(T_175768, UInt<1>(0))
+ node T_175770 = and(T_175766, T_175769)
+ data.write.valid := T_175770
+ data.write.bits.id := UInt<2>(2)
+ data.write.bits.way_en := xact_way_en
+ node T_175771 = bits(xact.addr_block, 11, 0)
+ data.write.bits.addr_idx := T_175771
+ data.write.bits.addr_beat := curr_write_beat
+ accessor T_175772 = wmask_buffer[curr_write_beat]
+ data.write.bits.wmask := T_175772
+ accessor T_175773 = data_buffer[curr_write_beat]
+ data.write.bits.data := T_175773
+ node T_175774 = eq(state, UInt<4>(8))
+ meta.write.valid := T_175774
+ meta.write.bits.id := UInt<2>(2)
+ node T_175775 = bits(xact.addr_block, 11, 0)
+ meta.write.bits.idx := T_175775
+ meta.write.bits.way_en := xact_way_en
+ node T_175776 = dshr(xact.addr_block, UInt<4>(12))
+ meta.write.bits.data.tag := T_175776
+ meta.write.bits.data.coh := pending_coh
+
+
+ node T_175777 = and(inner.acquire.ready, inner.acquire.valid)
+ wire T_175778 : UInt<3>[3]
+ T_175778[0] := UInt<3>(2)
+ T_175778[1] := UInt<3>(3)
+ T_175778[2] := UInt<3>(4)
+ node T_175779 = eq(T_175778[0], inner.acquire.bits.a_type)
+ node T_175780 = eq(T_175778[1], inner.acquire.bits.a_type)
+ node T_175781 = eq(T_175778[2], inner.acquire.bits.a_type)
+ node T_175782 = or(UInt<1>(0), T_175779)
+ node T_175783 = or(T_175782, T_175780)
+ node T_175784 = or(T_175783, T_175781)
+ node T_175785 = and(inner.acquire.bits.is_builtin_type, T_175784)
+ node T_175786 = and(T_175777, T_175785)
+ when T_175786 :
+ node T_175787 = eq(inner.acquire.bits.a_type, UInt<3>(4))
+ node T_175788 = and(inner.acquire.bits.is_builtin_type, T_175787)
+ node T_175789 = bits(inner.acquire.bits.union, 12, 9)
+ node T_175790 = bits(T_175789, 3, 3)
+ node T_175791 = dshl(UInt<1>(1), T_175790)
+ node T_175792 = bit(T_175791, 0)
+ node T_175793 = bit(T_175791, 1)
+ node T_175794 = bit(T_175791, 2)
+ wire T_175795 : UInt<1>[3]
+ T_175795[0] := T_175792
+ T_175795[1] := T_175793
+ T_175795[2] := T_175794
+ node T_175796 = subw(UInt<8>(0), UInt<4>(8))
+ node T_175797 = subw(UInt<8>(0), UInt<4>(8))
+ node T_175798 = subw(UInt<8>(0), UInt<4>(8))
+ wire T_175799 : UInt<8>[3]
+ T_175799[0] := T_175796
+ T_175799[1] := T_175797
+ T_175799[2] := T_175798
+ node T_175800 = cat(T_175799[1], T_175799[0])
+ node T_175801 = cat(T_175799[2], T_175800)
+ node T_175802 = eq(inner.acquire.bits.a_type, UInt<3>(3))
+ node T_175803 = and(inner.acquire.bits.is_builtin_type, T_175802)
+ node T_175804 = eq(inner.acquire.bits.a_type, UInt<3>(2))
+ node T_175805 = and(inner.acquire.bits.is_builtin_type, T_175804)
+ node T_175806 = or(T_175803, T_175805)
+ node T_175807 = bits(inner.acquire.bits.union, 16, 1)
+ wire T_175808 : UInt<16>
+ T_175808 := UInt<16>(0)
+ when T_175806 : T_175808 := T_175807
+ wire T_175809 : UInt<16>
+ T_175809 := T_175808
+ when T_175788 : T_175809 := T_175801
+ node T_175810 = bit(T_175809, 0)
+ node T_175811 = bit(T_175809, 1)
+ node T_175812 = bit(T_175809, 2)
+ node T_175813 = bit(T_175809, 3)
+ node T_175814 = bit(T_175809, 4)
+ node T_175815 = bit(T_175809, 5)
+ node T_175816 = bit(T_175809, 6)
+ node T_175817 = bit(T_175809, 7)
+ node T_175818 = bit(T_175809, 8)
+ node T_175819 = bit(T_175809, 9)
+ node T_175820 = bit(T_175809, 10)
+ node T_175821 = bit(T_175809, 11)
+ node T_175822 = bit(T_175809, 12)
+ node T_175823 = bit(T_175809, 13)
+ node T_175824 = bit(T_175809, 14)
+ node T_175825 = bit(T_175809, 15)
+ wire T_175826 : UInt<1>[16]
+ T_175826[0] := T_175810
+ T_175826[1] := T_175811
+ T_175826[2] := T_175812
+ T_175826[3] := T_175813
+ T_175826[4] := T_175814
+ T_175826[5] := T_175815
+ T_175826[6] := T_175816
+ T_175826[7] := T_175817
+ T_175826[8] := T_175818
+ T_175826[9] := T_175819
+ T_175826[10] := T_175820
+ T_175826[11] := T_175821
+ T_175826[12] := T_175822
+ T_175826[13] := T_175823
+ T_175826[14] := T_175824
+ T_175826[15] := T_175825
+ node T_175827 = subw(UInt<8>(0), UInt<4>(8))
+ node T_175828 = subw(UInt<8>(0), UInt<4>(8))
+ node T_175829 = subw(UInt<8>(0), UInt<4>(8))
+ node T_175830 = subw(UInt<8>(0), UInt<4>(8))
+ node T_175831 = subw(UInt<8>(0), UInt<4>(8))
+ node T_175832 = subw(UInt<8>(0), UInt<4>(8))
+ node T_175833 = subw(UInt<8>(0), UInt<4>(8))
+ node T_175834 = subw(UInt<8>(0), UInt<4>(8))
+ node T_175835 = subw(UInt<8>(0), UInt<4>(8))
+ node T_175836 = subw(UInt<8>(0), UInt<4>(8))
+ node T_175837 = subw(UInt<8>(0), UInt<4>(8))
+ node T_175838 = subw(UInt<8>(0), UInt<4>(8))
+ node T_175839 = subw(UInt<8>(0), UInt<4>(8))
+ node T_175840 = subw(UInt<8>(0), UInt<4>(8))
+ node T_175841 = subw(UInt<8>(0), UInt<4>(8))
+ node T_175842 = subw(UInt<8>(0), UInt<4>(8))
+ wire T_175843 : UInt<8>[16]
+ T_175843[0] := T_175827
+ T_175843[1] := T_175828
+ T_175843[2] := T_175829
+ T_175843[3] := T_175830
+ T_175843[4] := T_175831
+ T_175843[5] := T_175832
+ T_175843[6] := T_175833
+ T_175843[7] := T_175834
+ T_175843[8] := T_175835
+ T_175843[9] := T_175836
+ T_175843[10] := T_175837
+ T_175843[11] := T_175838
+ T_175843[12] := T_175839
+ T_175843[13] := T_175840
+ T_175843[14] := T_175841
+ T_175843[15] := T_175842
+ node T_175844 = cat(T_175843[15], T_175843[14])
+ node T_175845 = cat(T_175843[13], T_175843[12])
+ node T_175846 = cat(T_175844, T_175845)
+ node T_175847 = cat(T_175843[11], T_175843[10])
+ node T_175848 = cat(T_175843[9], T_175843[8])
+ node T_175849 = cat(T_175847, T_175848)
+ node T_175850 = cat(T_175846, T_175849)
+ node T_175851 = cat(T_175843[7], T_175843[6])
+ node T_175852 = cat(T_175843[5], T_175843[4])
+ node T_175853 = cat(T_175851, T_175852)
+ node T_175854 = cat(T_175843[3], T_175843[2])
+ node T_175855 = cat(T_175843[1], T_175843[0])
+ node T_175856 = cat(T_175854, T_175855)
+ node T_175857 = cat(T_175853, T_175856)
+ node T_175858 = cat(T_175850, T_175857)
+ accessor T_175859 = data_buffer[inner.acquire.bits.addr_beat]
+ node T_175860 = not(T_175858)
+ accessor T_175861 = data_buffer[inner.acquire.bits.addr_beat]
+ node T_175862 = and(T_175860, T_175861)
+ node T_175863 = and(T_175858, inner.acquire.bits.data)
+ node T_175864 = or(T_175862, T_175863)
+ T_175859 := T_175864
+ accessor T_175865 = wmask_buffer[inner.acquire.bits.addr_beat]
+ node T_175866 = eq(state, UInt<4>(0))
+ accessor T_175867 = wmask_buffer[inner.acquire.bits.addr_beat]
+ wire T_175868 : UInt<16>
+ T_175868 := T_175867
+ when T_175866 : T_175868 := UInt<1>(0)
+ node T_175869 = or(T_175809, T_175868)
+ T_175865 := T_175869
+ node T_175870 = eq(xact.a_type, UInt<3>(2))
+ node T_175871 = and(xact.is_builtin_type, T_175870)
+ node T_175872 = eq(xact.a_type, UInt<3>(3))
+ node T_175873 = and(xact.is_builtin_type, T_175872)
+ node T_175874 = or(T_175871, T_175873)
+ node T_175875 = bits(xact.union, 5, 1)
+ wire T_175876 : UInt<5>
+ T_175876 := T_175875
+ when T_175874 : T_175876 := UInt<5>(1)
+ node T_175877 = eq(T_175876, UInt<5>(1))
+ node T_175878 = eq(T_175876, UInt<5>(7))
+ node T_175879 = or(T_175877, T_175878)
+ node T_175880 = bit(T_175876, 3)
+ node T_175881 = eq(T_175876, UInt<5>(4))
+ node T_175882 = or(T_175880, T_175881)
+ node T_175883 = or(T_175879, T_175882)
+ wire T_175884 : UInt<2>
+ T_175884 := meta.resp.bits.meta.coh.outer.state
+ when T_175883 : T_175884 := UInt<2>(2)
+ wire T_175885 : UInt<3>[3]
+ T_175885[0] := UInt<3>(0)
+ T_175885[1] := UInt<3>(1)
+ T_175885[2] := UInt<3>(2)
+ wire T_175886 : UInt<0>[1]
+ T_175886[0] := UInt<0>(0)
+ wire T_175887 : UInt<2>[2]
+ T_175887[0] := UInt<2>(1)
+ T_175887[1] := UInt<2>(2)
+ wire T_175888 : UInt<2>[2]
+ T_175888[0] := UInt<2>(1)
+ T_175888[1] := UInt<2>(2)
+ wire T_175889 : UInt<2>[1]
+ T_175889[0] := UInt<2>(2)
+ wire T_175890 : UInt<3>[3]
+ T_175890[0] := UInt<3>(0)
+ T_175890[1] := UInt<3>(1)
+ T_175890[2] := UInt<3>(2)
+ wire T_175891 : UInt<0>[1]
+ T_175891[0] := UInt<0>(0)
+ wire T_175892 : UInt<2>[2]
+ T_175892[0] := UInt<2>(1)
+ T_175892[1] := UInt<2>(2)
+ wire T_175893 : UInt<2>[2]
+ T_175893[0] := UInt<2>(1)
+ T_175893[1] := UInt<2>(2)
+ wire T_175894 : UInt<2>[1]
+ T_175894[0] := UInt<2>(2)
+ wire T_175895 : {state : UInt<2>, makeRelease$default$2 : UInt<1>, makeRelease$default$3 : UInt<1>, makeVoluntaryRelease$default$4 : UInt<1>, makeVoluntaryRelease$default$5 : UInt<1>, makeVoluntaryWriteback$default$3 : UInt<1>, makeVoluntaryWriteback$default$4 : UInt<1>}
+ T_175895.state := T_175884
+ wire T_175896 : UInt<3>[3]
+ T_175896[0] := UInt<3>(0)
+ T_175896[1] := UInt<3>(1)
+ T_175896[2] := UInt<3>(2)
+ wire T_175897 : UInt<2>[2]
+ T_175897[0] := UInt<2>(0)
+ T_175897[1] := UInt<2>(1)
+ wire T_175898 : UInt<2>[3]
+ T_175898[0] := UInt<2>(1)
+ T_175898[1] := UInt<2>(2)
+ T_175898[2] := UInt<2>(3)
+ wire T_175899 : UInt<2>[2]
+ T_175899[0] := UInt<2>(2)
+ T_175899[1] := UInt<2>(3)
+ wire T_175900 : UInt<2>[1]
+ T_175900[0] := UInt<2>(3)
+ wire T_175901 : UInt<3>[3]
+ T_175901[0] := UInt<3>(0)
+ T_175901[1] := UInt<3>(1)
+ T_175901[2] := UInt<3>(2)
+ wire T_175902 : UInt<2>[2]
+ T_175902[0] := UInt<2>(0)
+ T_175902[1] := UInt<2>(1)
+ wire T_175903 : UInt<2>[3]
+ T_175903[0] := UInt<2>(1)
+ T_175903[1] := UInt<2>(2)
+ T_175903[2] := UInt<2>(3)
+ wire T_175904 : UInt<2>[2]
+ T_175904[0] := UInt<2>(2)
+ T_175904[1] := UInt<2>(3)
+ wire T_175905 : UInt<2>[1]
+ T_175905[0] := UInt<2>(3)
+ wire T_175906 : UInt<3>[3]
+ T_175906[0] := UInt<3>(0)
+ T_175906[1] := UInt<3>(1)
+ T_175906[2] := UInt<3>(2)
+ wire T_175907 : UInt<0>[1]
+ T_175907[0] := UInt<0>(0)
+ wire T_175908 : UInt<2>[2]
+ T_175908[0] := UInt<2>(1)
+ T_175908[1] := UInt<2>(2)
+ wire T_175909 : UInt<2>[2]
+ T_175909[0] := UInt<2>(1)
+ T_175909[1] := UInt<2>(2)
+ wire T_175910 : UInt<2>[1]
+ T_175910[0] := UInt<2>(2)
+ wire T_175911 : UInt<3>[3]
+ T_175911[0] := UInt<3>(0)
+ T_175911[1] := UInt<3>(1)
+ T_175911[2] := UInt<3>(2)
+ wire T_175912 : UInt<2>[2]
+ T_175912[0] := UInt<2>(0)
+ T_175912[1] := UInt<2>(1)
+ wire T_175913 : UInt<2>[3]
+ T_175913[0] := UInt<2>(1)
+ T_175913[1] := UInt<2>(2)
+ T_175913[2] := UInt<2>(3)
+ wire T_175914 : UInt<2>[2]
+ T_175914[0] := UInt<2>(2)
+ T_175914[1] := UInt<2>(3)
+ wire T_175915 : UInt<2>[1]
+ T_175915[0] := UInt<2>(3)
+ wire T_175916 : UInt<3>[3]
+ T_175916[0] := UInt<3>(0)
+ T_175916[1] := UInt<3>(1)
+ T_175916[2] := UInt<3>(2)
+ wire T_175917 : UInt<2>[2]
+ T_175917[0] := UInt<2>(0)
+ T_175917[1] := UInt<2>(1)
+ wire T_175918 : UInt<2>[3]
+ T_175918[0] := UInt<2>(1)
+ T_175918[1] := UInt<2>(2)
+ T_175918[2] := UInt<2>(3)
+ wire T_175919 : UInt<2>[2]
+ T_175919[0] := UInt<2>(2)
+ T_175919[1] := UInt<2>(3)
+ wire T_175920 : UInt<2>[1]
+ T_175920[0] := UInt<2>(3)
+ wire T_175921 : UInt<3>[3]
+ T_175921[0] := UInt<3>(0)
+ T_175921[1] := UInt<3>(1)
+ T_175921[2] := UInt<3>(2)
+ wire T_175922 : UInt<0>[1]
+ T_175922[0] := UInt<0>(0)
+ wire T_175923 : UInt<2>[2]
+ T_175923[0] := UInt<2>(1)
+ T_175923[1] := UInt<2>(2)
+ wire T_175924 : UInt<2>[2]
+ T_175924[0] := UInt<2>(1)
+ T_175924[1] := UInt<2>(2)
+ wire T_175925 : UInt<2>[1]
+ T_175925[0] := UInt<2>(2)
+ wire pending_coh_on_hit : {inner : {sharers : UInt<1>, makeGrant$default$3 : UInt<1>, makeGrant$default$4 : UInt<1>}, outer : {state : UInt<2>, makeRelease$default$2 : UInt<1>, makeRelease$default$3 : UInt<1>, makeVoluntaryRelease$default$4 : UInt<1>, makeVoluntaryRelease$default$5 : UInt<1>, makeVoluntaryWriteback$default$3 : UInt<1>, makeVoluntaryWriteback$default$4 : UInt<1>}}
+ pending_coh_on_hit.inner := meta.resp.bits.meta.coh.inner
+ pending_coh_on_hit.outer := T_175895
+ wire T_175926 : UInt<3>[3]
+ T_175926[0] := UInt<3>(0)
+ T_175926[1] := UInt<3>(1)
+ T_175926[2] := UInt<3>(2)
+ wire T_175927 : UInt<2>[2]
+ T_175927[0] := UInt<2>(0)
+ T_175927[1] := UInt<2>(1)
+ wire T_175928 : UInt<2>[3]
+ T_175928[0] := UInt<2>(1)
+ T_175928[1] := UInt<2>(2)
+ T_175928[2] := UInt<2>(3)
+ wire T_175929 : UInt<2>[2]
+ T_175929[0] := UInt<2>(2)
+ T_175929[1] := UInt<2>(3)
+ wire T_175930 : UInt<2>[1]
+ T_175930[0] := UInt<2>(3)
+ wire T_175931 : UInt<3>[3]
+ T_175931[0] := UInt<3>(0)
+ T_175931[1] := UInt<3>(1)
+ T_175931[2] := UInt<3>(2)
+ wire T_175932 : UInt<2>[2]
+ T_175932[0] := UInt<2>(0)
+ T_175932[1] := UInt<2>(1)
+ wire T_175933 : UInt<2>[3]
+ T_175933[0] := UInt<2>(1)
+ T_175933[1] := UInt<2>(2)
+ T_175933[2] := UInt<2>(3)
+ wire T_175934 : UInt<2>[2]
+ T_175934[0] := UInt<2>(2)
+ T_175934[1] := UInt<2>(3)
+ wire T_175935 : UInt<2>[1]
+ T_175935[0] := UInt<2>(3)
+ wire T_175936 : UInt<3>[3]
+ T_175936[0] := UInt<3>(0)
+ T_175936[1] := UInt<3>(1)
+ T_175936[2] := UInt<3>(2)
+ wire T_175937 : UInt<2>[2]
+ T_175937[0] := UInt<2>(0)
+ T_175937[1] := UInt<2>(1)
+ wire T_175938 : UInt<2>[3]
+ T_175938[0] := UInt<2>(1)
+ T_175938[1] := UInt<2>(2)
+ T_175938[2] := UInt<2>(3)
+ wire T_175939 : UInt<2>[2]
+ T_175939[0] := UInt<2>(2)
+ T_175939[1] := UInt<2>(3)
+ wire T_175940 : UInt<2>[1]
+ T_175940[0] := UInt<2>(3)
+ wire T_175941 : {sharers : UInt<1>, makeGrant$default$3 : UInt<1>, makeGrant$default$4 : UInt<1>}
+ T_175941.sharers := UInt<1>(0)
+ wire T_175942 : UInt<3>[3]
+ T_175942[0] := UInt<3>(0)
+ T_175942[1] := UInt<3>(1)
+ T_175942[2] := UInt<3>(2)
+ wire T_175943 : UInt<2>[2]
+ T_175943[0] := UInt<2>(0)
+ T_175943[1] := UInt<2>(1)
+ wire T_175944 : UInt<2>[3]
+ T_175944[0] := UInt<2>(1)
+ T_175944[1] := UInt<2>(2)
+ T_175944[2] := UInt<2>(3)
+ wire T_175945 : UInt<2>[2]
+ T_175945[0] := UInt<2>(2)
+ T_175945[1] := UInt<2>(3)
+ wire T_175946 : UInt<2>[1]
+ T_175946[0] := UInt<2>(3)
+ wire T_175947 : UInt<3>[3]
+ T_175947[0] := UInt<3>(0)
+ T_175947[1] := UInt<3>(1)
+ T_175947[2] := UInt<3>(2)
+ wire T_175948 : UInt<2>[2]
+ T_175948[0] := UInt<2>(0)
+ T_175948[1] := UInt<2>(1)
+ wire T_175949 : UInt<2>[3]
+ T_175949[0] := UInt<2>(1)
+ T_175949[1] := UInt<2>(2)
+ T_175949[2] := UInt<2>(3)
+ wire T_175950 : UInt<2>[2]
+ T_175950[0] := UInt<2>(2)
+ T_175950[1] := UInt<2>(3)
+ wire T_175951 : UInt<2>[1]
+ T_175951[0] := UInt<2>(3)
+ wire T_175952 : UInt<3>[3]
+ T_175952[0] := UInt<3>(0)
+ T_175952[1] := UInt<3>(1)
+ T_175952[2] := UInt<3>(2)
+ wire T_175953 : UInt<2>[2]
+ T_175953[0] := UInt<2>(0)
+ T_175953[1] := UInt<2>(1)
+ wire T_175954 : UInt<2>[3]
+ T_175954[0] := UInt<2>(1)
+ T_175954[1] := UInt<2>(2)
+ T_175954[2] := UInt<2>(3)
+ wire T_175955 : UInt<2>[2]
+ T_175955[0] := UInt<2>(2)
+ T_175955[1] := UInt<2>(3)
+ wire T_175956 : UInt<2>[1]
+ T_175956[0] := UInt<2>(3)
+ wire T_175957 : {state : UInt<2>, makeRelease$default$2 : UInt<1>, makeRelease$default$3 : UInt<1>, makeVoluntaryRelease$default$4 : UInt<1>, makeVoluntaryRelease$default$5 : UInt<1>, makeVoluntaryWriteback$default$3 : UInt<1>, makeVoluntaryWriteback$default$4 : UInt<1>}
+ T_175957.state := UInt<2>(0)
+ wire T_175958 : UInt<3>[3]
+ T_175958[0] := UInt<3>(0)
+ T_175958[1] := UInt<3>(1)
+ T_175958[2] := UInt<3>(2)
+ wire T_175959 : UInt<2>[2]
+ T_175959[0] := UInt<2>(0)
+ T_175959[1] := UInt<2>(1)
+ wire T_175960 : UInt<2>[3]
+ T_175960[0] := UInt<2>(1)
+ T_175960[1] := UInt<2>(2)
+ T_175960[2] := UInt<2>(3)
+ wire T_175961 : UInt<2>[2]
+ T_175961[0] := UInt<2>(2)
+ T_175961[1] := UInt<2>(3)
+ wire T_175962 : UInt<2>[1]
+ T_175962[0] := UInt<2>(3)
+ wire T_175963 : UInt<3>[3]
+ T_175963[0] := UInt<3>(0)
+ T_175963[1] := UInt<3>(1)
+ T_175963[2] := UInt<3>(2)
+ wire T_175964 : UInt<2>[2]
+ T_175964[0] := UInt<2>(0)
+ T_175964[1] := UInt<2>(1)
+ wire T_175965 : UInt<2>[3]
+ T_175965[0] := UInt<2>(1)
+ T_175965[1] := UInt<2>(2)
+ T_175965[2] := UInt<2>(3)
+ wire T_175966 : UInt<2>[2]
+ T_175966[0] := UInt<2>(2)
+ T_175966[1] := UInt<2>(3)
+ wire T_175967 : UInt<2>[1]
+ T_175967[0] := UInt<2>(3)
+ wire T_175968 : UInt<3>[3]
+ T_175968[0] := UInt<3>(0)
+ T_175968[1] := UInt<3>(1)
+ T_175968[2] := UInt<3>(2)
+ wire T_175969 : UInt<0>[1]
+ T_175969[0] := UInt<0>(0)
+ wire T_175970 : UInt<2>[2]
+ T_175970[0] := UInt<2>(1)
+ T_175970[1] := UInt<2>(2)
+ wire T_175971 : UInt<2>[2]
+ T_175971[0] := UInt<2>(1)
+ T_175971[1] := UInt<2>(2)
+ wire T_175972 : UInt<2>[1]
+ T_175972[0] := UInt<2>(2)
+ wire T_175973 : UInt<3>[3]
+ T_175973[0] := UInt<3>(0)
+ T_175973[1] := UInt<3>(1)
+ T_175973[2] := UInt<3>(2)
+ wire T_175974 : UInt<2>[2]
+ T_175974[0] := UInt<2>(0)
+ T_175974[1] := UInt<2>(1)
+ wire T_175975 : UInt<2>[3]
+ T_175975[0] := UInt<2>(1)
+ T_175975[1] := UInt<2>(2)
+ T_175975[2] := UInt<2>(3)
+ wire T_175976 : UInt<2>[2]
+ T_175976[0] := UInt<2>(2)
+ T_175976[1] := UInt<2>(3)
+ wire T_175977 : UInt<2>[1]
+ T_175977[0] := UInt<2>(3)
+ wire T_175978 : UInt<3>[3]
+ T_175978[0] := UInt<3>(0)
+ T_175978[1] := UInt<3>(1)
+ T_175978[2] := UInt<3>(2)
+ wire T_175979 : UInt<2>[2]
+ T_175979[0] := UInt<2>(0)
+ T_175979[1] := UInt<2>(1)
+ wire T_175980 : UInt<2>[3]
+ T_175980[0] := UInt<2>(1)
+ T_175980[1] := UInt<2>(2)
+ T_175980[2] := UInt<2>(3)
+ wire T_175981 : UInt<2>[2]
+ T_175981[0] := UInt<2>(2)
+ T_175981[1] := UInt<2>(3)
+ wire T_175982 : UInt<2>[1]
+ T_175982[0] := UInt<2>(3)
+ wire T_175983 : UInt<3>[3]
+ T_175983[0] := UInt<3>(0)
+ T_175983[1] := UInt<3>(1)
+ T_175983[2] := UInt<3>(2)
+ wire T_175984 : UInt<0>[1]
+ T_175984[0] := UInt<0>(0)
+ wire T_175985 : UInt<2>[2]
+ T_175985[0] := UInt<2>(1)
+ T_175985[1] := UInt<2>(2)
+ wire T_175986 : UInt<2>[2]
+ T_175986[0] := UInt<2>(1)
+ T_175986[1] := UInt<2>(2)
+ wire T_175987 : UInt<2>[1]
+ T_175987[0] := UInt<2>(2)
+ wire pending_coh_on_miss : {inner : {sharers : UInt<1>, makeGrant$default$3 : UInt<1>, makeGrant$default$4 : UInt<1>}, outer : {state : UInt<2>, makeRelease$default$2 : UInt<1>, makeRelease$default$3 : UInt<1>, makeVoluntaryRelease$default$4 : UInt<1>, makeVoluntaryRelease$default$5 : UInt<1>, makeVoluntaryWriteback$default$3 : UInt<1>, makeVoluntaryWriteback$default$4 : UInt<1>}}
+ pending_coh_on_miss.inner := T_175941
+ pending_coh_on_miss.outer := T_175957
+
+
+ node T_175988 = eq(state, UInt<4>(0))
+ node T_175989 = and(T_175988, inner.acquire.valid)
+ when T_175989 :
+ xact := inner.acquire.bits
+ xact.data := UInt<1>(0)
+ node T_175990 = eq(inner.acquire.bits.a_type, UInt<3>(3))
+ node T_175991 = and(inner.acquire.bits.is_builtin_type, T_175990)
+ node T_175992 = and(inner.acquire.ready, inner.acquire.valid)
+ wire T_175993 : UInt<3>[3]
+ T_175993[0] := UInt<3>(2)
+ T_175993[1] := UInt<3>(3)
+ T_175993[2] := UInt<3>(4)
+ node T_175994 = eq(T_175993[0], inner.acquire.bits.a_type)
+ node T_175995 = eq(T_175993[1], inner.acquire.bits.a_type)
+ node T_175996 = eq(T_175993[2], inner.acquire.bits.a_type)
+ node T_175997 = or(UInt<1>(0), T_175994)
+ node T_175998 = or(T_175997, T_175995)
+ node T_175999 = or(T_175998, T_175996)
+ node T_176000 = and(inner.acquire.bits.is_builtin_type, T_175999)
+ node T_176001 = and(T_175992, T_176000)
+ node T_176002 = subw(UInt<4>(0), UInt<3>(4))
+ node T_176003 = not(T_176002)
+ node T_176004 = dshl(UInt<1>(1), inner.acquire.bits.addr_beat)
+ node T_176005 = not(T_176004)
+ node T_176006 = or(T_176003, T_176005)
+ wire T_176007 : UInt<1>
+ T_176007 := UInt<1>(0)
+ when T_175991 : T_176007 := T_176006
+ pending_puts := T_176007
+ node T_176008 = eq(inner.acquire.bits.a_type, UInt<3>(1))
+ node T_176009 = and(inner.acquire.bits.is_builtin_type, T_176008)
+ node T_176010 = eq(inner.acquire.bits.is_builtin_type, UInt<1>(0))
+ node T_176011 = or(T_176009, T_176010)
+ wire T_176012 : UInt<3>[3]
+ T_176012[0] := UInt<3>(0)
+ T_176012[1] := UInt<3>(1)
+ T_176012[2] := UInt<3>(4)
+ node T_176013 = eq(T_176012[0], inner.acquire.bits.a_type)
+ node T_176014 = eq(T_176012[1], inner.acquire.bits.a_type)
+ node T_176015 = eq(T_176012[2], inner.acquire.bits.a_type)
+ node T_176016 = or(UInt<1>(0), T_176013)
+ node T_176017 = or(T_176016, T_176014)
+ node T_176018 = or(T_176017, T_176015)
+ node T_176019 = and(inner.acquire.bits.is_builtin_type, T_176018)
+ node T_176020 = and(inner.acquire.ready, inner.acquire.valid)
+ node T_176021 = and(T_176020, T_176019)
+ node T_176022 = subw(UInt<4>(0), UInt<3>(4))
+ node T_176023 = dshl(UInt<1>(1), inner.acquire.bits.addr_beat)
+ node T_176024 = and(T_176022, T_176023)
+ node T_176025 = eq(inner.acquire.bits.a_type, UInt<3>(4))
+ node T_176026 = and(inner.acquire.bits.is_builtin_type, T_176025)
+ node T_176027 = bits(inner.acquire.bits.union, 12, 9)
+ node T_176028 = bits(T_176027, 3, 3)
+ node T_176029 = dshl(UInt<1>(1), T_176028)
+ node T_176030 = bit(T_176029, 0)
+ node T_176031 = bit(T_176029, 1)
+ node T_176032 = bit(T_176029, 2)
+ wire T_176033 : UInt<1>[3]
+ T_176033[0] := T_176030
+ T_176033[1] := T_176031
+ T_176033[2] := T_176032
+ node T_176034 = subw(UInt<8>(0), UInt<4>(8))
+ node T_176035 = subw(UInt<8>(0), UInt<4>(8))
+ node T_176036 = subw(UInt<8>(0), UInt<4>(8))
+ wire T_176037 : UInt<8>[3]
+ T_176037[0] := T_176034
+ T_176037[1] := T_176035
+ T_176037[2] := T_176036
+ node T_176038 = cat(T_176037[1], T_176037[0])
+ node T_176039 = cat(T_176037[2], T_176038)
+ node T_176040 = eq(inner.acquire.bits.a_type, UInt<3>(3))
+ node T_176041 = and(inner.acquire.bits.is_builtin_type, T_176040)
+ node T_176042 = eq(inner.acquire.bits.a_type, UInt<3>(2))
+ node T_176043 = and(inner.acquire.bits.is_builtin_type, T_176042)
+ node T_176044 = or(T_176041, T_176043)
+ node T_176045 = bits(inner.acquire.bits.union, 16, 1)
+ wire T_176046 : UInt<16>
+ T_176046 := UInt<16>(0)
+ when T_176044 : T_176046 := T_176045
+ wire T_176047 : UInt<16>
+ T_176047 := T_176046
+ when T_176026 : T_176047 := T_176039
+ wire T_176048 : UInt<3>[3]
+ T_176048[0] := UInt<3>(0)
+ T_176048[1] := UInt<3>(1)
+ T_176048[2] := UInt<3>(2)
+ wire T_176049 : UInt<2>[2]
+ T_176049[0] := UInt<2>(0)
+ T_176049[1] := UInt<2>(1)
+ wire T_176050 : UInt<2>[3]
+ T_176050[0] := UInt<2>(1)
+ T_176050[1] := UInt<2>(2)
+ T_176050[2] := UInt<2>(3)
+ wire T_176051 : UInt<2>[2]
+ T_176051[0] := UInt<2>(2)
+ T_176051[1] := UInt<2>(3)
+ wire T_176052 : UInt<2>[1]
+ T_176052[0] := UInt<2>(3)
+ node T_176053 = asUInt(SInt<16>(-1))
+ node T_176054 = neq(T_176047, T_176053)
+ node T_176055 = and(inner.acquire.ready, inner.acquire.valid)
+ node T_176056 = and(T_176055, T_176054)
+ node T_176057 = and(T_176056, UInt<1>(0))
+ node T_176058 = subw(UInt<4>(0), UInt<3>(4))
+ node T_176059 = dshl(UInt<1>(1), inner.acquire.bits.addr_beat)
+ node T_176060 = and(T_176058, T_176059)
+ node T_176061 = or(T_176024, T_176060)
+ node T_176062 = asSInt(T_176061)
+ wire T_176063 : SInt<5>
+ T_176063 := T_176062
+ when T_176011 : T_176063 := SInt<1>(-1)
+ node T_176064 = asUInt(T_176063)
+ pending_reads := T_176064
+ node T_176065 = and(inner.acquire.ready, inner.acquire.valid)
+ wire T_176066 : UInt<3>[3]
+ T_176066[0] := UInt<3>(2)
+ T_176066[1] := UInt<3>(3)
+ T_176066[2] := UInt<3>(4)
+ node T_176067 = eq(T_176066[0], inner.acquire.bits.a_type)
+ node T_176068 = eq(T_176066[1], inner.acquire.bits.a_type)
+ node T_176069 = eq(T_176066[2], inner.acquire.bits.a_type)
+ node T_176070 = or(UInt<1>(0), T_176067)
+ node T_176071 = or(T_176070, T_176068)
+ node T_176072 = or(T_176071, T_176069)
+ node T_176073 = and(inner.acquire.bits.is_builtin_type, T_176072)
+ node T_176074 = and(T_176065, T_176073)
+ node T_176075 = bit(inner.acquire.bits.union, 0)
+ node T_176076 = and(T_176074, T_176075)
+ node T_176077 = subw(UInt<4>(0), UInt<3>(4))
+ node T_176078 = dshl(UInt<1>(1), inner.acquire.bits.addr_beat)
+ node T_176079 = and(T_176077, T_176078)
+ pending_writes := T_176079
+ pending_resps := UInt<1>(0)
+ pending_ignt_data := UInt<1>(0)
+ pending_meta_write := UInt<1>(0)
+ state := UInt<4>(1)
+
+
+ node T_176080 = eq(state, UInt<4>(1))
+ node T_176081 = and(T_176080, meta.read.ready)
+ when T_176081 : state := UInt<4>(2)
+
+
+ node T_176082 = eq(state, UInt<4>(2))
+ node T_176083 = and(T_176082, meta.resp.valid)
+ when T_176083 :
+ xact_tag_match := meta.resp.bits.tag_match
+ xact_old_meta := meta.resp.bits.meta
+ xact_way_en := meta.resp.bits.way_en
+ node T_176084 = eq(xact.a_type, UInt<3>(3))
+ node T_176085 = and(xact.is_builtin_type, T_176084)
+ node T_176086 = neq(meta.resp.bits.meta.coh.outer.state, UInt<2>(0))
+ node T_176087 = and(meta.resp.bits.tag_match, T_176086)
+ node T_176088 = or(T_176085, T_176087)
+ node T_176089 = eq(meta.resp.bits.tag_match, UInt<1>(0))
+ node T_176090 = bit(xact.union, 0)
+ node T_176091 = and(T_176089, T_176090)
+ node T_176092 = eq(T_174537[0], meta.resp.bits.meta.coh.outer.state)
+ node T_176093 = or(UInt<1>(0), T_176092)
+ node T_176094 = eq(meta.resp.bits.meta.coh.inner.sharers, UInt<1>(0))
+ node T_176095 = eq(T_176094, UInt<1>(0))
+ node T_176096 = or(T_176093, T_176095)
+ node T_176097 = and(T_176091, T_176096)
+ node T_176098 = eq(meta.resp.bits.meta.coh.inner.sharers, UInt<1>(0))
+ node T_176099 = bit(meta.resp.bits.meta.coh.inner.sharers, 0)
+ node T_176100 = eq(T_176099, UInt<1>(1))
+ wire T_176101 : UInt<3>[3]
+ T_176101[0] := UInt<3>(2)
+ T_176101[1] := UInt<3>(3)
+ T_176101[2] := UInt<3>(4)
+ node T_176102 = eq(T_176101[0], xact.a_type)
+ node T_176103 = eq(T_176101[1], xact.a_type)
+ node T_176104 = eq(T_176101[2], xact.a_type)
+ node T_176105 = or(UInt<1>(0), T_176102)
+ node T_176106 = or(T_176105, T_176103)
+ node T_176107 = or(T_176106, T_176104)
+ node T_176108 = and(xact.is_builtin_type, T_176107)
+ node T_176109 = neq(xact.a_type, UInt<1>(0))
+ wire T_176110 : UInt<1>
+ T_176110 := T_176109
+ when xact.is_builtin_type : T_176110 := T_176108
+ wire T_176111 : UInt<1>
+ T_176111 := T_176110
+ when T_176100 : T_176111 := UInt<1>(1)
+ wire T_176112 : UInt<1>
+ T_176112 := T_176111
+ when T_176098 : T_176112 := UInt<1>(0)
+ node T_176113 = and(meta.resp.bits.tag_match, T_176112)
+
+
+ node T_176114 = eq(meta.resp.bits.tag_match, UInt<1>(0))
+ node T_176115 = eq(pending_coh_on_hit.inner.sharers, meta.resp.bits.meta.coh.inner.sharers)
+ node T_176116 = eq(pending_coh_on_hit.outer.state, meta.resp.bits.meta.coh.outer.state)
+ node T_176117 = and(T_176115, T_176116)
+ node T_176118 = eq(T_176117, UInt<1>(0))
+ node T_176119 = and(T_176088, T_176118)
+ node T_176120 = or(T_176114, T_176119)
+ when T_176120 : pending_meta_write := UInt<1>(1)
+ wire T_176121 : UInt<3>[3]
+ T_176121[0] := UInt<3>(0)
+ T_176121[1] := UInt<3>(1)
+ T_176121[2] := UInt<3>(2)
+ wire T_176122 : UInt<2>[2]
+ T_176122[0] := UInt<2>(0)
+ T_176122[1] := UInt<2>(1)
+ wire T_176123 : UInt<2>[3]
+ T_176123[0] := UInt<2>(1)
+ T_176123[1] := UInt<2>(2)
+ T_176123[2] := UInt<2>(3)
+ wire T_176124 : UInt<2>[2]
+ T_176124[0] := UInt<2>(2)
+ T_176124[1] := UInt<2>(3)
+ wire T_176125 : UInt<2>[1]
+ T_176125[0] := UInt<2>(3)
+ wire T_176126 : UInt<3>[3]
+ T_176126[0] := UInt<3>(0)
+ T_176126[1] := UInt<3>(1)
+ T_176126[2] := UInt<3>(2)
+ wire T_176127 : UInt<2>[2]
+ T_176127[0] := UInt<2>(0)
+ T_176127[1] := UInt<2>(1)
+ wire T_176128 : UInt<2>[3]
+ T_176128[0] := UInt<2>(1)
+ T_176128[1] := UInt<2>(2)
+ T_176128[2] := UInt<2>(3)
+ wire T_176129 : UInt<2>[2]
+ T_176129[0] := UInt<2>(2)
+ T_176129[1] := UInt<2>(3)
+ wire T_176130 : UInt<2>[1]
+ T_176130[0] := UInt<2>(3)
+ wire T_176131 : UInt<3>[3]
+ T_176131[0] := UInt<3>(0)
+ T_176131[1] := UInt<3>(1)
+ T_176131[2] := UInt<3>(2)
+ wire T_176132 : UInt<0>[1]
+ T_176132[0] := UInt<0>(0)
+ wire T_176133 : UInt<2>[2]
+ T_176133[0] := UInt<2>(1)
+ T_176133[1] := UInt<2>(2)
+ wire T_176134 : UInt<2>[2]
+ T_176134[0] := UInt<2>(1)
+ T_176134[1] := UInt<2>(2)
+ wire T_176135 : UInt<2>[1]
+ T_176135[0] := UInt<2>(2)
+ wire T_176136 : {inner : {sharers : UInt<1>, makeGrant$default$3 : UInt<1>, makeGrant$default$4 : UInt<1>}, outer : {state : UInt<2>, makeRelease$default$2 : UInt<1>, makeRelease$default$3 : UInt<1>, makeVoluntaryRelease$default$4 : UInt<1>, makeVoluntaryRelease$default$5 : UInt<1>, makeVoluntaryWriteback$default$3 : UInt<1>, makeVoluntaryWriteback$default$4 : UInt<1>}}
+ T_176136 := pending_coh_on_miss
+ when meta.resp.bits.tag_match : T_176136 := meta.resp.bits.meta.coh
+ wire T_176137 : UInt<3>[3]
+ T_176137[0] := UInt<3>(0)
+ T_176137[1] := UInt<3>(1)
+ T_176137[2] := UInt<3>(2)
+ wire T_176138 : UInt<2>[2]
+ T_176138[0] := UInt<2>(0)
+ T_176138[1] := UInt<2>(1)
+ wire T_176139 : UInt<2>[3]
+ T_176139[0] := UInt<2>(1)
+ T_176139[1] := UInt<2>(2)
+ T_176139[2] := UInt<2>(3)
+ wire T_176140 : UInt<2>[2]
+ T_176140[0] := UInt<2>(2)
+ T_176140[1] := UInt<2>(3)
+ wire T_176141 : UInt<2>[1]
+ T_176141[0] := UInt<2>(3)
+ wire T_176142 : UInt<3>[3]
+ T_176142[0] := UInt<3>(0)
+ T_176142[1] := UInt<3>(1)
+ T_176142[2] := UInt<3>(2)
+ wire T_176143 : UInt<2>[2]
+ T_176143[0] := UInt<2>(0)
+ T_176143[1] := UInt<2>(1)
+ wire T_176144 : UInt<2>[3]
+ T_176144[0] := UInt<2>(1)
+ T_176144[1] := UInt<2>(2)
+ T_176144[2] := UInt<2>(3)
+ wire T_176145 : UInt<2>[2]
+ T_176145[0] := UInt<2>(2)
+ T_176145[1] := UInt<2>(3)
+ wire T_176146 : UInt<2>[1]
+ T_176146[0] := UInt<2>(3)
+ wire T_176147 : UInt<3>[3]
+ T_176147[0] := UInt<3>(0)
+ T_176147[1] := UInt<3>(1)
+ T_176147[2] := UInt<3>(2)
+ wire T_176148 : UInt<0>[1]
+ T_176148[0] := UInt<0>(0)
+ wire T_176149 : UInt<2>[2]
+ T_176149[0] := UInt<2>(1)
+ T_176149[1] := UInt<2>(2)
+ wire T_176150 : UInt<2>[2]
+ T_176150[0] := UInt<2>(1)
+ T_176150[1] := UInt<2>(2)
+ wire T_176151 : UInt<2>[1]
+ T_176151[0] := UInt<2>(2)
+ wire T_176152 : {inner : {sharers : UInt<1>, makeGrant$default$3 : UInt<1>, makeGrant$default$4 : UInt<1>}, outer : {state : UInt<2>, makeRelease$default$2 : UInt<1>, makeRelease$default$3 : UInt<1>, makeVoluntaryRelease$default$4 : UInt<1>, makeVoluntaryRelease$default$5 : UInt<1>, makeVoluntaryWriteback$default$3 : UInt<1>, makeVoluntaryWriteback$default$4 : UInt<1>}}
+ T_176152 := T_176136
+ when T_176088 : T_176152 := pending_coh_on_hit
+ pending_coh := T_176152
+ when T_176113 :
+ node T_176153 = dshl(UInt<1>(1), xact.client_id)
+ node T_176154 = or(meta.resp.bits.meta.coh.inner.sharers, T_176153)
+ node T_176155 = dshl(UInt<1>(1), xact.client_id)
+ node T_176156 = not(T_176155)
+ node T_176157 = and(meta.resp.bits.meta.coh.inner.sharers, T_176156)
+ wire T_176158 : UInt<5>
+ T_176158 := T_176157
+ when UInt<1>(0) : T_176158 := T_176154
+ node T_176159 = not(incoherent[0])
+ node T_176160 = and(T_176158, T_176159)
+ pending_iprbs := T_176160
+ node T_176161 = eq(T_176088, UInt<1>(0))
+ wire T_176162 : UInt<4>
+ T_176162 := UInt<4>(7)
+ when T_176161 : T_176162 := UInt<4>(6)
+ wire T_176163 : UInt<4>
+ T_176163 := T_176162
+ when T_176113 : T_176163 := UInt<4>(5)
+ wire T_176164 : UInt<4>
+ T_176164 := T_176163
+ when T_176097 : T_176164 := UInt<4>(3)
+ state := T_176164
+
+
+ node T_176165 = eq(state, UInt<4>(3))
+ node T_176166 = and(T_176165, wb.req.ready)
+ when T_176166 : state := UInt<4>(4)
+
+
+ node T_176167 = eq(state, UInt<4>(4))
+ node T_176168 = and(T_176167, wb.resp.valid)
+ when T_176168 :
+ node T_176169 = eq(xact.a_type, UInt<3>(3))
+ node T_176170 = and(xact.is_builtin_type, T_176169)
+ node T_176171 = and(UInt<1>(1), T_176170)
+ node T_176172 = eq(T_176171, UInt<1>(0))
+ wire T_176173 : UInt<4>
+ T_176173 := UInt<4>(7)
+ when T_176172 : T_176173 := UInt<4>(6)
+ state := T_176173
+
+
+ node T_176174 = eq(state, UInt<4>(5))
+ node T_176175 = eq(pending_iprbs, UInt<1>(0))
+ node T_176176 = eq(T_176175, UInt<1>(0))
+ node T_176177 = or(T_176176, pending_irels)
+ node T_176178 = eq(T_176177, UInt<1>(0))
+ node T_176179 = and(T_176174, T_176178)
+ when T_176179 :
+ node T_176180 = eq(xact.a_type, UInt<3>(3))
+ node T_176181 = and(xact.is_builtin_type, T_176180)
+ node T_176182 = neq(xact_old_meta.coh.outer.state, UInt<2>(0))
+ node T_176183 = or(T_176181, T_176182)
+ node T_176184 = eq(T_176183, UInt<1>(0))
+ wire T_176185 : UInt<4>
+ T_176185 := UInt<4>(7)
+ when T_176184 : T_176185 := UInt<4>(6)
+ state := T_176185
+
+
+ node T_176186 = eq(state, UInt<4>(6))
+ node T_176187 = and(T_176186, oacq_data_done)
+ when T_176187 : state := UInt<4>(7)
+
+
+ node T_176188 = eq(state, UInt<4>(7))
+ node T_176189 = and(T_176188, all_pending_done)
+ when T_176189 : state := UInt<4>(8)
+
+
+ node T_176190 = eq(state, UInt<4>(8))
+ node T_176191 = eq(pending_meta_write, UInt<1>(0))
+ node T_176192 = or(meta.write.ready, T_176191)
+ node T_176193 = and(T_176190, T_176192)
+ when T_176193 :
+ wmask_buffer[0] := UInt<1>(0)
+ wmask_buffer[1] := UInt<1>(0)
+ wmask_buffer[2] := UInt<1>(0)
+ wmask_buffer[3] := UInt<1>(0)
+ state := UInt<4>(0)
+ node T_176194 = bits(xact.addr_block, 11, 0)
+ node T_176195 = bits(inner.acquire.bits.addr_block, 11, 0)
+ node in_same_set = eq(T_176194, T_176195)
+ node T_176196 = eq(xact.addr_block, inner.release.bits.addr_block)
+ node T_176197 = eq(inner.release.bits.voluntary, UInt<1>(0))
+ node T_176198 = and(T_176196, T_176197)
+ node T_176199 = and(T_176198, inner.release.ready)
+ has_release_match := T_176199
+ node T_176200 = or(can_merge_iacq_put, can_merge_iacq_get)
+ has_acquire_match := T_176200
+ node T_176201 = neq(state, UInt<4>(0))
+ node T_176202 = and(in_same_set, T_176201)
+ node T_176203 = eq(has_acquire_match, UInt<1>(0))
+ node T_176204 = and(T_176202, T_176203)
+ has_acquire_conflict := T_176204
+ node T_176205 = neq(state, UInt<4>(0))
+ node T_176206 = and(inner.acquire.ready, inner.acquire.valid)
+ node T_176207 = and(T_176205, T_176206)
+ node T_176208 = neq(inner.acquire.bits.client_id, xact.client_id)
+ node T_176209 = and(T_176207, T_176208)
+ node T_176210 = eq(T_176209, UInt<1>(0))
+ module L2WritebackUnit :
+ output inner : {flip acquire : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_block : UInt<26>, client_xact_id : UInt<1>, addr_beat : UInt<2>, data : UInt<128>, is_builtin_type : UInt<1>, a_type : UInt<3>, union : UInt<17>, client_id : UInt<2>}}, grant : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_beat : UInt<2>, data : UInt<128>, client_xact_id : UInt<1>, manager_xact_id : UInt<2>, is_builtin_type : UInt<1>, g_type : UInt<4>, client_id : UInt<2>}}, flip finish : {flip ready : UInt<1>, valid : UInt<1>, bits : {manager_xact_id : UInt<2>}}, probe : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_block : UInt<26>, p_type : UInt<2>, client_id : UInt<2>}}, flip release : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_block : UInt<26>, client_xact_id : UInt<1>, addr_beat : UInt<2>, data : UInt<128>, r_type : UInt<3>, voluntary : UInt<1>, client_id : UInt<2>}}}
+ input incoherent : UInt<1>[1]
+ output outer : {acquire : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_block : UInt<26>, client_xact_id : UInt<2>, addr_beat : UInt<2>, data : UInt<128>, is_builtin_type : UInt<1>, a_type : UInt<3>, union : UInt<17>}}, flip grant : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_beat : UInt<2>, data : UInt<128>, client_xact_id : UInt<2>, manager_xact_id : UInt<1>, is_builtin_type : UInt<1>, g_type : UInt<4>}}, flip probe : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_block : UInt<26>, p_type : UInt<2>}}, release : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_block : UInt<26>, client_xact_id : UInt<2>, addr_beat : UInt<2>, data : UInt<128>, r_type : UInt<3>, voluntary : UInt<1>}}}
+ output has_acquire_conflict : UInt<1>
+ output has_acquire_match : UInt<1>
+ output has_release_match : UInt<1>
+ input wb : {req : {flip ready : UInt<1>, valid : UInt<1>, bits : {tag : UInt<14>, coh : {inner : {sharers : UInt<1>, makeGrant$default$3 : UInt<1>, makeGrant$default$4 : UInt<1>}, outer : {state : UInt<2>, makeRelease$default$2 : UInt<1>, makeRelease$default$3 : UInt<1>, makeVoluntaryRelease$default$4 : UInt<1>, makeVoluntaryRelease$default$5 : UInt<1>, makeVoluntaryWriteback$default$3 : UInt<1>, makeVoluntaryWriteback$default$4 : UInt<1>}}, id : UInt<2>, idx : UInt<12>, way_en : UInt<8>}}, flip resp : {valid : UInt<1>, bits : {id : UInt<2>}}}
+ output data : {read : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_beat : UInt<2>, id : UInt<2>, addr_idx : UInt<12>, way_en : UInt<8>}}, flip resp : {valid : UInt<1>, bits : {id : UInt<2>, addr_beat : UInt<2>, data : UInt<128>}}, write : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_beat : UInt<2>, id : UInt<2>, addr_idx : UInt<12>, way_en : UInt<8>, data : UInt<128>, wmask : UInt<16>}}}
+
+ wire T_176211 : UInt<3>[3]
+ T_176211[0] := UInt<3>(0)
+ T_176211[1] := UInt<3>(1)
+ T_176211[2] := UInt<3>(2)
+ wire T_176212 : UInt<2>[2]
+ T_176212[0] := UInt<2>(0)
+ T_176212[1] := UInt<2>(1)
+ wire T_176213 : UInt<2>[3]
+ T_176213[0] := UInt<2>(1)
+ T_176213[1] := UInt<2>(2)
+ T_176213[2] := UInt<2>(3)
+ wire T_176214 : UInt<2>[2]
+ T_176214[0] := UInt<2>(2)
+ T_176214[1] := UInt<2>(3)
+ wire T_176215 : UInt<2>[1]
+ T_176215[0] := UInt<2>(3)
+ wire T_176216 : UInt<3>[3]
+ T_176216[0] := UInt<3>(0)
+ T_176216[1] := UInt<3>(1)
+ T_176216[2] := UInt<3>(2)
+ wire T_176217 : UInt<2>[2]
+ T_176217[0] := UInt<2>(0)
+ T_176217[1] := UInt<2>(1)
+ wire T_176218 : UInt<2>[3]
+ T_176218[0] := UInt<2>(1)
+ T_176218[1] := UInt<2>(2)
+ T_176218[2] := UInt<2>(3)
+ wire T_176219 : UInt<2>[2]
+ T_176219[0] := UInt<2>(2)
+ T_176219[1] := UInt<2>(3)
+ wire T_176220 : UInt<2>[1]
+ T_176220[0] := UInt<2>(3)
+ wire T_176221 : UInt<3>[3]
+ T_176221[0] := UInt<3>(0)
+ T_176221[1] := UInt<3>(1)
+ T_176221[2] := UInt<3>(2)
+ wire T_176222 : UInt<2>[2]
+ T_176222[0] := UInt<2>(0)
+ T_176222[1] := UInt<2>(1)
+ wire T_176223 : UInt<2>[3]
+ T_176223[0] := UInt<2>(1)
+ T_176223[1] := UInt<2>(2)
+ T_176223[2] := UInt<2>(3)
+ wire T_176224 : UInt<2>[2]
+ T_176224[0] := UInt<2>(2)
+ T_176224[1] := UInt<2>(3)
+ wire T_176225 : UInt<2>[1]
+ T_176225[0] := UInt<2>(3)
+ wire T_176226 : UInt<3>[3]
+ T_176226[0] := UInt<3>(0)
+ T_176226[1] := UInt<3>(1)
+ T_176226[2] := UInt<3>(2)
+ wire T_176227 : UInt<2>[2]
+ T_176227[0] := UInt<2>(0)
+ T_176227[1] := UInt<2>(1)
+ wire T_176228 : UInt<2>[3]
+ T_176228[0] := UInt<2>(1)
+ T_176228[1] := UInt<2>(2)
+ T_176228[2] := UInt<2>(3)
+ wire T_176229 : UInt<2>[2]
+ T_176229[0] := UInt<2>(2)
+ T_176229[1] := UInt<2>(3)
+ wire T_176230 : UInt<2>[1]
+ T_176230[0] := UInt<2>(3)
+ wire T_176231 : UInt<3>[3]
+ T_176231[0] := UInt<3>(0)
+ T_176231[1] := UInt<3>(1)
+ T_176231[2] := UInt<3>(2)
+ wire T_176232 : UInt<2>[2]
+ T_176232[0] := UInt<2>(0)
+ T_176232[1] := UInt<2>(1)
+ wire T_176233 : UInt<2>[3]
+ T_176233[0] := UInt<2>(1)
+ T_176233[1] := UInt<2>(2)
+ T_176233[2] := UInt<2>(3)
+ wire T_176234 : UInt<2>[2]
+ T_176234[0] := UInt<2>(2)
+ T_176234[1] := UInt<2>(3)
+ wire T_176235 : UInt<2>[1]
+ T_176235[0] := UInt<2>(3)
+ wire T_176236 : UInt<3>[3]
+ T_176236[0] := UInt<3>(0)
+ T_176236[1] := UInt<3>(1)
+ T_176236[2] := UInt<3>(2)
+ wire T_176237 : UInt<2>[2]
+ T_176237[0] := UInt<2>(0)
+ T_176237[1] := UInt<2>(1)
+ wire T_176238 : UInt<2>[3]
+ T_176238[0] := UInt<2>(1)
+ T_176238[1] := UInt<2>(2)
+ T_176238[2] := UInt<2>(3)
+ wire T_176239 : UInt<2>[2]
+ T_176239[0] := UInt<2>(2)
+ T_176239[1] := UInt<2>(3)
+ wire T_176240 : UInt<2>[1]
+ T_176240[0] := UInt<2>(3)
+ wire T_176241 : UInt<3>[3]
+ T_176241[0] := UInt<3>(0)
+ T_176241[1] := UInt<3>(1)
+ T_176241[2] := UInt<3>(2)
+ wire T_176242 : UInt<2>[2]
+ T_176242[0] := UInt<2>(0)
+ T_176242[1] := UInt<2>(1)
+ wire T_176243 : UInt<2>[3]
+ T_176243[0] := UInt<2>(1)
+ T_176243[1] := UInt<2>(2)
+ T_176243[2] := UInt<2>(3)
+ wire T_176244 : UInt<2>[2]
+ T_176244[0] := UInt<2>(2)
+ T_176244[1] := UInt<2>(3)
+ wire T_176245 : UInt<2>[1]
+ T_176245[0] := UInt<2>(3)
+ wire T_176246 : UInt<3>[3]
+ T_176246[0] := UInt<3>(0)
+ T_176246[1] := UInt<3>(1)
+ T_176246[2] := UInt<3>(2)
+ wire T_176247 : UInt<2>[2]
+ T_176247[0] := UInt<2>(0)
+ T_176247[1] := UInt<2>(1)
+ wire T_176248 : UInt<2>[3]
+ T_176248[0] := UInt<2>(1)
+ T_176248[1] := UInt<2>(2)
+ T_176248[2] := UInt<2>(3)
+ wire T_176249 : UInt<2>[2]
+ T_176249[0] := UInt<2>(2)
+ T_176249[1] := UInt<2>(3)
+ wire T_176250 : UInt<2>[1]
+ T_176250[0] := UInt<2>(3)
+ wire T_176251 : UInt<3>[3]
+ T_176251[0] := UInt<3>(0)
+ T_176251[1] := UInt<3>(1)
+ T_176251[2] := UInt<3>(2)
+ wire T_176252 : UInt<2>[2]
+ T_176252[0] := UInt<2>(0)
+ T_176252[1] := UInt<2>(1)
+ wire T_176253 : UInt<2>[3]
+ T_176253[0] := UInt<2>(1)
+ T_176253[1] := UInt<2>(2)
+ T_176253[2] := UInt<2>(3)
+ wire T_176254 : UInt<2>[2]
+ T_176254[0] := UInt<2>(2)
+ T_176254[1] := UInt<2>(3)
+ wire T_176255 : UInt<2>[1]
+ T_176255[0] := UInt<2>(3)
+ wire T_176256 : UInt<3>[3]
+ T_176256[0] := UInt<3>(0)
+ T_176256[1] := UInt<3>(1)
+ T_176256[2] := UInt<3>(2)
+ wire T_176257 : UInt<2>[2]
+ T_176257[0] := UInt<2>(0)
+ T_176257[1] := UInt<2>(1)
+ wire T_176258 : UInt<2>[3]
+ T_176258[0] := UInt<2>(1)
+ T_176258[1] := UInt<2>(2)
+ T_176258[2] := UInt<2>(3)
+ wire T_176259 : UInt<2>[2]
+ T_176259[0] := UInt<2>(2)
+ T_176259[1] := UInt<2>(3)
+ wire T_176260 : UInt<2>[1]
+ T_176260[0] := UInt<2>(3)
+ wire T_176261 : UInt<3>[3]
+ T_176261[0] := UInt<3>(0)
+ T_176261[1] := UInt<3>(1)
+ T_176261[2] := UInt<3>(2)
+ wire T_176262 : UInt<2>[2]
+ T_176262[0] := UInt<2>(0)
+ T_176262[1] := UInt<2>(1)
+ wire T_176263 : UInt<2>[3]
+ T_176263[0] := UInt<2>(1)
+ T_176263[1] := UInt<2>(2)
+ T_176263[2] := UInt<2>(3)
+ wire T_176264 : UInt<2>[2]
+ T_176264[0] := UInt<2>(2)
+ T_176264[1] := UInt<2>(3)
+ wire T_176265 : UInt<2>[1]
+ T_176265[0] := UInt<2>(3)
+ wire incoherent : UInt<1>[1]
+ incoherent[0] := T_176266
+ wire T_176267 : UInt<3>[3]
+ T_176267[0] := UInt<3>(0)
+ T_176267[1] := UInt<3>(1)
+ T_176267[2] := UInt<3>(2)
+ wire T_176268 : UInt<0>[1]
+ T_176268[0] := UInt<0>(0)
+ wire T_176269 : UInt<2>[2]
+ T_176269[0] := UInt<2>(1)
+ T_176269[1] := UInt<2>(2)
+ wire T_176270 : UInt<2>[2]
+ T_176270[0] := UInt<2>(1)
+ T_176270[1] := UInt<2>(2)
+ wire T_176271 : UInt<2>[1]
+ T_176271[0] := UInt<2>(2)
+ wire T_176272 : UInt<3>[3]
+ T_176272[0] := UInt<3>(0)
+ T_176272[1] := UInt<3>(1)
+ T_176272[2] := UInt<3>(2)
+ wire T_176273 : UInt<0>[1]
+ T_176273[0] := UInt<0>(0)
+ wire T_176274 : UInt<2>[2]
+ T_176274[0] := UInt<2>(1)
+ T_176274[1] := UInt<2>(2)
+ wire T_176275 : UInt<2>[2]
+ T_176275[0] := UInt<2>(1)
+ T_176275[1] := UInt<2>(2)
+ wire T_176276 : UInt<2>[1]
+ T_176276[0] := UInt<2>(2)
+ wire T_176277 : UInt<3>[3]
+ T_176277[0] := UInt<3>(0)
+ T_176277[1] := UInt<3>(1)
+ T_176277[2] := UInt<3>(2)
+ wire T_176278 : UInt<0>[1]
+ T_176278[0] := UInt<0>(0)
+ wire T_176279 : UInt<2>[2]
+ T_176279[0] := UInt<2>(1)
+ T_176279[1] := UInt<2>(2)
+ wire T_176280 : UInt<2>[2]
+ T_176280[0] := UInt<2>(1)
+ T_176280[1] := UInt<2>(2)
+ wire T_176281 : UInt<2>[1]
+ T_176281[0] := UInt<2>(2)
+ wire T_176282 : UInt<3>[3]
+ T_176282[0] := UInt<3>(0)
+ T_176282[1] := UInt<3>(1)
+ T_176282[2] := UInt<3>(2)
+ wire T_176283 : UInt<0>[1]
+ T_176283[0] := UInt<0>(0)
+ wire T_176284 : UInt<2>[2]
+ T_176284[0] := UInt<2>(1)
+ T_176284[1] := UInt<2>(2)
+ wire T_176285 : UInt<2>[2]
+ T_176285[0] := UInt<2>(1)
+ T_176285[1] := UInt<2>(2)
+ wire T_176286 : UInt<2>[1]
+ T_176286[0] := UInt<2>(2)
+ wire T_176287 : UInt<3>[3]
+ T_176287[0] := UInt<3>(0)
+ T_176287[1] := UInt<3>(1)
+ T_176287[2] := UInt<3>(2)
+ wire T_176288 : UInt<0>[1]
+ T_176288[0] := UInt<0>(0)
+ wire T_176289 : UInt<2>[2]
+ T_176289[0] := UInt<2>(1)
+ T_176289[1] := UInt<2>(2)
+ wire T_176290 : UInt<2>[2]
+ T_176290[0] := UInt<2>(1)
+ T_176290[1] := UInt<2>(2)
+ wire T_176291 : UInt<2>[1]
+ T_176291[0] := UInt<2>(2)
+ wire T_176292 : UInt<3>[3]
+ T_176292[0] := UInt<3>(0)
+ T_176292[1] := UInt<3>(1)
+ T_176292[2] := UInt<3>(2)
+ wire T_176293 : UInt<0>[1]
+ T_176293[0] := UInt<0>(0)
+ wire T_176294 : UInt<2>[2]
+ T_176294[0] := UInt<2>(1)
+ T_176294[1] := UInt<2>(2)
+ wire T_176295 : UInt<2>[2]
+ T_176295[0] := UInt<2>(1)
+ T_176295[1] := UInt<2>(2)
+ wire T_176296 : UInt<2>[1]
+ T_176296[0] := UInt<2>(2)
+ wire T_176297 : UInt<3>[3]
+ T_176297[0] := UInt<3>(0)
+ T_176297[1] := UInt<3>(1)
+ T_176297[2] := UInt<3>(2)
+ wire T_176298 : UInt<0>[1]
+ T_176298[0] := UInt<0>(0)
+ wire T_176299 : UInt<2>[2]
+ T_176299[0] := UInt<2>(1)
+ T_176299[1] := UInt<2>(2)
+ wire T_176300 : UInt<2>[2]
+ T_176300[0] := UInt<2>(1)
+ T_176300[1] := UInt<2>(2)
+ wire T_176301 : UInt<2>[1]
+ T_176301[0] := UInt<2>(2)
+ wire T_176302 : UInt<3>[3]
+ T_176302[0] := UInt<3>(0)
+ T_176302[1] := UInt<3>(1)
+ T_176302[2] := UInt<3>(2)
+ wire T_176303 : UInt<0>[1]
+ T_176303[0] := UInt<0>(0)
+ wire T_176304 : UInt<2>[2]
+ T_176304[0] := UInt<2>(1)
+ T_176304[1] := UInt<2>(2)
+ wire T_176305 : UInt<2>[2]
+ T_176305[0] := UInt<2>(1)
+ T_176305[1] := UInt<2>(2)
+ wire T_176306 : UInt<2>[1]
+ T_176306[0] := UInt<2>(2)
+ wire T_176307 : UInt<3>[3]
+ T_176307[0] := UInt<3>(0)
+ T_176307[1] := UInt<3>(1)
+ T_176307[2] := UInt<3>(2)
+ wire T_176308 : UInt<0>[1]
+ T_176308[0] := UInt<0>(0)
+ wire T_176309 : UInt<2>[2]
+ T_176309[0] := UInt<2>(1)
+ T_176309[1] := UInt<2>(2)
+ wire T_176310 : UInt<2>[2]
+ T_176310[0] := UInt<2>(1)
+ T_176310[1] := UInt<2>(2)
+ wire T_176311 : UInt<2>[1]
+ T_176311[0] := UInt<2>(2)
+ wire T_176312 : UInt<3>[3]
+ T_176312[0] := UInt<3>(0)
+ T_176312[1] := UInt<3>(1)
+ T_176312[2] := UInt<3>(2)
+ wire T_176313 : UInt<2>[2]
+ T_176313[0] := UInt<2>(0)
+ T_176313[1] := UInt<2>(1)
+ wire T_176314 : UInt<2>[3]
+ T_176314[0] := UInt<2>(1)
+ T_176314[1] := UInt<2>(2)
+ T_176314[2] := UInt<2>(3)
+ wire T_176315 : UInt<2>[2]
+ T_176315[0] := UInt<2>(2)
+ T_176315[1] := UInt<2>(3)
+ wire T_176316 : UInt<2>[1]
+ T_176316[0] := UInt<2>(3)
+ wire T_176317 : UInt<3>[3]
+ T_176317[0] := UInt<3>(0)
+ T_176317[1] := UInt<3>(1)
+ T_176317[2] := UInt<3>(2)
+ wire T_176318 : UInt<2>[2]
+ T_176318[0] := UInt<2>(0)
+ T_176318[1] := UInt<2>(1)
+ wire T_176319 : UInt<2>[3]
+ T_176319[0] := UInt<2>(1)
+ T_176319[1] := UInt<2>(2)
+ T_176319[2] := UInt<2>(3)
+ wire T_176320 : UInt<2>[2]
+ T_176320[0] := UInt<2>(2)
+ T_176320[1] := UInt<2>(3)
+ wire T_176321 : UInt<2>[1]
+ T_176321[0] := UInt<2>(3)
+ wire T_176322 : UInt<3>[3]
+ T_176322[0] := UInt<3>(0)
+ T_176322[1] := UInt<3>(1)
+ T_176322[2] := UInt<3>(2)
+ wire T_176323 : UInt<0>[1]
+ T_176323[0] := UInt<0>(0)
+ wire T_176324 : UInt<2>[2]
+ T_176324[0] := UInt<2>(1)
+ T_176324[1] := UInt<2>(2)
+ wire T_176325 : UInt<2>[2]
+ T_176325[0] := UInt<2>(1)
+ T_176325[1] := UInt<2>(2)
+ wire T_176326 : UInt<2>[1]
+ T_176326[0] := UInt<2>(2)
+ wire T_176327 : UInt<3>[3]
+ T_176327[0] := UInt<3>(0)
+ T_176327[1] := UInt<3>(1)
+ T_176327[2] := UInt<3>(2)
+ wire T_176328 : UInt<2>[2]
+ T_176328[0] := UInt<2>(0)
+ T_176328[1] := UInt<2>(1)
+ wire T_176329 : UInt<2>[3]
+ T_176329[0] := UInt<2>(1)
+ T_176329[1] := UInt<2>(2)
+ T_176329[2] := UInt<2>(3)
+ wire T_176330 : UInt<2>[2]
+ T_176330[0] := UInt<2>(2)
+ T_176330[1] := UInt<2>(3)
+ wire T_176331 : UInt<2>[1]
+ T_176331[0] := UInt<2>(3)
+ wire T_176332 : UInt<3>[3]
+ T_176332[0] := UInt<3>(0)
+ T_176332[1] := UInt<3>(1)
+ T_176332[2] := UInt<3>(2)
+ wire T_176333 : UInt<2>[2]
+ T_176333[0] := UInt<2>(0)
+ T_176333[1] := UInt<2>(1)
+ wire T_176334 : UInt<2>[3]
+ T_176334[0] := UInt<2>(1)
+ T_176334[1] := UInt<2>(2)
+ T_176334[2] := UInt<2>(3)
+ wire T_176335 : UInt<2>[2]
+ T_176335[0] := UInt<2>(2)
+ T_176335[1] := UInt<2>(3)
+ wire T_176336 : UInt<2>[1]
+ T_176336[0] := UInt<2>(3)
+ wire T_176337 : UInt<3>[3]
+ T_176337[0] := UInt<3>(0)
+ T_176337[1] := UInt<3>(1)
+ T_176337[2] := UInt<3>(2)
+ wire T_176338 : UInt<0>[1]
+ T_176338[0] := UInt<0>(0)
+ wire T_176339 : UInt<2>[2]
+ T_176339[0] := UInt<2>(1)
+ T_176339[1] := UInt<2>(2)
+ wire T_176340 : UInt<2>[2]
+ T_176340[0] := UInt<2>(1)
+ T_176340[1] := UInt<2>(2)
+ wire T_176341 : UInt<2>[1]
+ T_176341[0] := UInt<2>(2)
+ data.write.valid := UInt<1>(0)
+ data.resp.valid := UInt<1>(0)
+ data.read.valid := UInt<1>(0)
+ wb.resp.valid := UInt<1>(0)
+ wb.req.valid := UInt<1>(0)
+ outer.release.valid := UInt<1>(0)
+ outer.probe.valid := UInt<1>(0)
+ outer.grant.valid := UInt<1>(0)
+ outer.acquire.valid := UInt<1>(0)
+ inner.release.valid := UInt<1>(0)
+ inner.probe.valid := UInt<1>(0)
+ inner.finish.valid := UInt<1>(0)
+ inner.grant.valid := UInt<1>(0)
+ inner.acquire.valid := UInt<1>(0)
+ reg state : UInt<3>
+ onreset state := UInt<3>(0)
+ wire T_176342 : UInt<3>[3]
+ T_176342[0] := UInt<3>(0)
+ T_176342[1] := UInt<3>(1)
+ T_176342[2] := UInt<3>(2)
+ wire T_176343 : UInt<2>[2]
+ T_176343[0] := UInt<2>(0)
+ T_176343[1] := UInt<2>(1)
+ wire T_176344 : UInt<2>[3]
+ T_176344[0] := UInt<2>(1)
+ T_176344[1] := UInt<2>(2)
+ T_176344[2] := UInt<2>(3)
+ wire T_176345 : UInt<2>[2]
+ T_176345[0] := UInt<2>(2)
+ T_176345[1] := UInt<2>(3)
+ wire T_176346 : UInt<2>[1]
+ T_176346[0] := UInt<2>(3)
+ wire T_176347 : UInt<3>[3]
+ T_176347[0] := UInt<3>(0)
+ T_176347[1] := UInt<3>(1)
+ T_176347[2] := UInt<3>(2)
+ wire T_176348 : UInt<2>[2]
+ T_176348[0] := UInt<2>(0)
+ T_176348[1] := UInt<2>(1)
+ wire T_176349 : UInt<2>[3]
+ T_176349[0] := UInt<2>(1)
+ T_176349[1] := UInt<2>(2)
+ T_176349[2] := UInt<2>(3)
+ wire T_176350 : UInt<2>[2]
+ T_176350[0] := UInt<2>(2)
+ T_176350[1] := UInt<2>(3)
+ wire T_176351 : UInt<2>[1]
+ T_176351[0] := UInt<2>(3)
+ wire T_176352 : UInt<3>[3]
+ T_176352[0] := UInt<3>(0)
+ T_176352[1] := UInt<3>(1)
+ T_176352[2] := UInt<3>(2)
+ wire T_176353 : UInt<0>[1]
+ T_176353[0] := UInt<0>(0)
+ wire T_176354 : UInt<2>[2]
+ T_176354[0] := UInt<2>(1)
+ T_176354[1] := UInt<2>(2)
+ wire T_176355 : UInt<2>[2]
+ T_176355[0] := UInt<2>(1)
+ T_176355[1] := UInt<2>(2)
+ wire T_176356 : UInt<2>[1]
+ T_176356[0] := UInt<2>(2)
+ wire T_176357 : UInt<3>[3]
+ T_176357[0] := UInt<3>(0)
+ T_176357[1] := UInt<3>(1)
+ T_176357[2] := UInt<3>(2)
+ wire T_176358 : UInt<2>[2]
+ T_176358[0] := UInt<2>(0)
+ T_176358[1] := UInt<2>(1)
+ wire T_176359 : UInt<2>[3]
+ T_176359[0] := UInt<2>(1)
+ T_176359[1] := UInt<2>(2)
+ T_176359[2] := UInt<2>(3)
+ wire T_176360 : UInt<2>[2]
+ T_176360[0] := UInt<2>(2)
+ T_176360[1] := UInt<2>(3)
+ wire T_176361 : UInt<2>[1]
+ T_176361[0] := UInt<2>(3)
+ wire T_176362 : UInt<3>[3]
+ T_176362[0] := UInt<3>(0)
+ T_176362[1] := UInt<3>(1)
+ T_176362[2] := UInt<3>(2)
+ wire T_176363 : UInt<2>[2]
+ T_176363[0] := UInt<2>(0)
+ T_176363[1] := UInt<2>(1)
+ wire T_176364 : UInt<2>[3]
+ T_176364[0] := UInt<2>(1)
+ T_176364[1] := UInt<2>(2)
+ T_176364[2] := UInt<2>(3)
+ wire T_176365 : UInt<2>[2]
+ T_176365[0] := UInt<2>(2)
+ T_176365[1] := UInt<2>(3)
+ wire T_176366 : UInt<2>[1]
+ T_176366[0] := UInt<2>(3)
+ wire T_176367 : UInt<3>[3]
+ T_176367[0] := UInt<3>(0)
+ T_176367[1] := UInt<3>(1)
+ T_176367[2] := UInt<3>(2)
+ wire T_176368 : UInt<0>[1]
+ T_176368[0] := UInt<0>(0)
+ wire T_176369 : UInt<2>[2]
+ T_176369[0] := UInt<2>(1)
+ T_176369[1] := UInt<2>(2)
+ wire T_176370 : UInt<2>[2]
+ T_176370[0] := UInt<2>(1)
+ T_176370[1] := UInt<2>(2)
+ wire T_176371 : UInt<2>[1]
+ T_176371[0] := UInt<2>(2)
+ reg xact : {tag : UInt<14>, coh : {inner : {sharers : UInt<1>, makeGrant$default$3 : UInt<1>, makeGrant$default$4 : UInt<1>}, outer : {state : UInt<2>, makeRelease$default$2 : UInt<1>, makeRelease$default$3 : UInt<1>, makeVoluntaryRelease$default$4 : UInt<1>, makeVoluntaryRelease$default$5 : UInt<1>, makeVoluntaryWriteback$default$3 : UInt<1>, makeVoluntaryWriteback$default$4 : UInt<1>}}, id : UInt<2>, idx : UInt<12>, way_en : UInt<8>}
+ wire T_176372 : UInt<128>[4]
+ T_176372[0] := UInt<128>(0)
+ T_176372[1] := UInt<128>(0)
+ T_176372[2] := UInt<128>(0)
+ T_176372[3] := UInt<128>(0)
+ reg data_buffer : UInt<128>[4]
+ onreset data_buffer := T_176372
+ node xact_addr_block = cat(xact.tag, xact.idx)
+ reg T_176373 : UInt<1>
+ onreset T_176373 := UInt<1>(0)
+ node T_176374 = and(inner.probe.ready, inner.probe.valid)
+ node T_176375 = and(T_176374, UInt<1>(0))
+ reg T_176376 : UInt<2>
+ onreset T_176376 := UInt<2>(0)
+ when T_176375 :
+ node T_176377 = eq(T_176376, UInt<2>(3))
+ node T_176378 = and(UInt<1>(0), T_176377)
+ node T_176379 = addw(T_176376, UInt<1>(1))
+ wire T_176380 : UInt<2>
+ T_176380 := T_176379
+ when T_176378 : T_176380 := UInt<1>(0)
+ T_176376 := T_176380
+ node T_176381 = and(T_176375, T_176377)
+ wire T_176382 : UInt<1>
+ T_176382 := UInt<1>(0)
+ when UInt<1>(0) : T_176382 := T_176376
+ wire T_176383 : UInt<1>
+ T_176383 := T_176374
+ when UInt<1>(0) : T_176383 := T_176381
+ node T_176384 = and(inner.release.ready, inner.release.valid)
+ node T_176385 = eq(T_176261[0], inner.release.bits.r_type)
+ node T_176386 = eq(T_176261[1], inner.release.bits.r_type)
+ node T_176387 = eq(T_176261[2], inner.release.bits.r_type)
+ node T_176388 = or(UInt<1>(0), T_176385)
+ node T_176389 = or(T_176388, T_176386)
+ node T_176390 = or(T_176389, T_176387)
+ node T_176391 = and(UInt<1>(1), T_176390)
+ node T_176392 = and(T_176384, T_176391)
+ reg T_176393 : UInt<2>
+ onreset T_176393 := UInt<2>(0)
+ when T_176392 :
+ node T_176394 = eq(T_176393, UInt<2>(3))
+ node T_176395 = and(UInt<1>(0), T_176394)
+ node T_176396 = addw(T_176393, UInt<1>(1))
+ wire T_176397 : UInt<2>
+ T_176397 := T_176396
+ when T_176395 : T_176397 := UInt<1>(0)
+ T_176393 := T_176397
+ node T_176398 = and(T_176392, T_176394)
+ wire T_176399 : UInt<1>
+ T_176399 := UInt<1>(0)
+ when T_176391 : T_176399 := T_176393
+ wire T_176400 : UInt<1>
+ T_176400 := T_176384
+ when T_176391 : T_176400 := T_176398
+ node T_176401 = and(T_176383, UInt<1>(1))
+ node T_176402 = subw(T_176373, UInt<1>(1))
+ wire T_176403 : UInt<1>
+ T_176403 := T_176402
+ when T_176401 : T_176403 := T_176373
+ node T_176404 = addw(T_176373, UInt<1>(1))
+ wire T_176405 : UInt<1>
+ T_176405 := T_176373
+ when T_176401 : T_176405 := T_176404
+ wire T_176406 : UInt<1>
+ T_176406 := T_176405
+ when T_176400 : T_176406 := T_176403
+ T_176373 := T_176406
+ node pending_irels = gt(T_176373, UInt<1>(0))
+ reg T_176407 : UInt<1>
+ onreset T_176407 := UInt<1>(0)
+ node T_176408 = and(outer.release.ready, outer.release.valid)
+ node T_176409 = eq(T_176307[0], outer.release.bits.r_type)
+ node T_176410 = eq(T_176307[1], outer.release.bits.r_type)
+ node T_176411 = eq(T_176307[2], outer.release.bits.r_type)
+ node T_176412 = or(UInt<1>(0), T_176409)
+ node T_176413 = or(T_176412, T_176410)
+ node T_176414 = or(T_176413, T_176411)
+ node T_176415 = and(UInt<1>(1), T_176414)
+ node T_176416 = and(T_176408, T_176415)
+ reg T_176417 : UInt<2>
+ onreset T_176417 := UInt<2>(0)
+ when T_176416 :
+ node T_176418 = eq(T_176417, UInt<2>(3))
+ node T_176419 = and(UInt<1>(0), T_176418)
+ node T_176420 = addw(T_176417, UInt<1>(1))
+ wire T_176421 : UInt<2>
+ T_176421 := T_176420
+ when T_176419 : T_176421 := UInt<1>(0)
+ T_176417 := T_176421
+ node T_176422 = and(T_176416, T_176418)
+ wire orel_data_idx : UInt<1>
+ orel_data_idx := UInt<1>(0)
+ when T_176415 : orel_data_idx := T_176417
+ wire orel_data_done : UInt<1>
+ orel_data_done := T_176408
+ when T_176415 : orel_data_done := T_176422
+ node T_176423 = and(outer.grant.ready, outer.grant.valid)
+ wire T_176424 : UInt<3>[1]
+ T_176424[0] := UInt<3>(5)
+ node T_176425 = eq(T_176424[0], outer.grant.bits.g_type)
+ node T_176426 = or(UInt<1>(0), T_176425)
+ node T_176427 = eq(T_176288[0], outer.grant.bits.g_type)
+ node T_176428 = or(UInt<1>(0), T_176427)
+ wire T_176429 : UInt<1>
+ T_176429 := T_176428
+ when outer.grant.bits.is_builtin_type : T_176429 := T_176426
+ node T_176430 = and(UInt<1>(1), T_176429)
+ node T_176431 = and(T_176423, T_176430)
+ reg T_176432 : UInt<2>
+ onreset T_176432 := UInt<2>(0)
+ when T_176431 :
+ node T_176433 = eq(T_176432, UInt<2>(3))
+ node T_176434 = and(UInt<1>(0), T_176433)
+ node T_176435 = addw(T_176432, UInt<1>(1))
+ wire T_176436 : UInt<2>
+ T_176436 := T_176435
+ when T_176434 : T_176436 := UInt<1>(0)
+ T_176432 := T_176436
+ node T_176437 = and(T_176431, T_176433)
+ wire ognt_data_idx : UInt<1>
+ ognt_data_idx := UInt<1>(0)
+ when T_176430 : ognt_data_idx := T_176432
+ wire ognt_data_done : UInt<1>
+ ognt_data_done := T_176423
+ when T_176430 : ognt_data_done := T_176437
+ node T_176438 = and(orel_data_done, UInt<1>(1))
+ node T_176439 = subw(T_176407, UInt<1>(1))
+ wire T_176440 : UInt<1>
+ T_176440 := T_176439
+ when T_176438 : T_176440 := T_176407
+ node T_176441 = addw(T_176407, UInt<1>(1))
+ wire T_176442 : UInt<1>
+ T_176442 := T_176407
+ when T_176438 : T_176442 := T_176441
+ wire T_176443 : UInt<1>
+ T_176443 := T_176442
+ when ognt_data_done : T_176443 := T_176440
+ T_176407 := T_176443
+ node pending_ognt = gt(T_176407, UInt<1>(0))
+ reg pending_iprbs : UInt<1>
+ onreset pending_iprbs := UInt<1>(0)
+ reg pending_reads : UInt<4>
+ onreset pending_reads := UInt<4>(0)
+ reg pending_resps : UInt<4>
+ onreset pending_resps := UInt<4>(0)
+ reg pending_orel_data : UInt<4>
+ onreset pending_orel_data := UInt<4>(0)
+ node T_176444 = eq(state, UInt<3>(0))
+ wb.req.ready := T_176444
+ node T_176445 = and(inner.probe.ready, inner.probe.valid)
+ node T_176446 = not(T_176445)
+ node T_176447 = dshl(UInt<1>(1), inner.probe.bits.client_id)
+ node T_176448 = not(T_176447)
+ node T_176449 = or(T_176446, T_176448)
+ node T_176450 = and(pending_iprbs, T_176449)
+ pending_iprbs := T_176450
+ node T_176451 = bit(pending_iprbs, 0)
+ wire T_176452 : UInt<1>[1]
+ T_176452[0] := T_176451
+ node T_176453 = eq(state, UInt<3>(1))
+ node T_176454 = eq(pending_iprbs, UInt<1>(0))
+ node T_176455 = eq(T_176454, UInt<1>(0))
+ node T_176456 = and(T_176453, T_176455)
+ inner.probe.valid := T_176456
+ node T_176457 = eq(UInt<5>(17), UInt<5>(16))
+ wire T_176458 : UInt<2>
+ T_176458 := UInt<2>(2)
+ when T_176457 : T_176458 := UInt<2>(1)
+ node T_176459 = eq(UInt<5>(16), UInt<5>(16))
+ wire T_176460 : UInt<2>
+ T_176460 := T_176458
+ when T_176459 : T_176460 := UInt<2>(0)
+ wire T_176461 : UInt<3>[3]
+ T_176461[0] := UInt<3>(0)
+ T_176461[1] := UInt<3>(1)
+ T_176461[2] := UInt<3>(2)
+ wire T_176462 : UInt<2>[2]
+ T_176462[0] := UInt<2>(0)
+ T_176462[1] := UInt<2>(1)
+ wire T_176463 : UInt<2>[3]
+ T_176463[0] := UInt<2>(1)
+ T_176463[1] := UInt<2>(2)
+ T_176463[2] := UInt<2>(3)
+ wire T_176464 : UInt<2>[2]
+ T_176464[0] := UInt<2>(2)
+ T_176464[1] := UInt<2>(3)
+ wire T_176465 : UInt<2>[1]
+ T_176465[0] := UInt<2>(3)
+ wire T_176466 : UInt<3>[3]
+ T_176466[0] := UInt<3>(0)
+ T_176466[1] := UInt<3>(1)
+ T_176466[2] := UInt<3>(2)
+ wire T_176467 : UInt<2>[2]
+ T_176467[0] := UInt<2>(0)
+ T_176467[1] := UInt<2>(1)
+ wire T_176468 : UInt<2>[3]
+ T_176468[0] := UInt<2>(1)
+ T_176468[1] := UInt<2>(2)
+ T_176468[2] := UInt<2>(3)
+ wire T_176469 : UInt<2>[2]
+ T_176469[0] := UInt<2>(2)
+ T_176469[1] := UInt<2>(3)
+ wire T_176470 : UInt<2>[1]
+ T_176470[0] := UInt<2>(3)
+ wire T_176471 : {addr_block : UInt<26>, p_type : UInt<2>, client_id : UInt<2>}
+ T_176471.client_id := UInt<1>(0)
+ T_176471.p_type := T_176460
+ T_176471.addr_block := xact_addr_block
+ inner.probe.bits := T_176471
+ node T_176472 = dshl(UInt<1>(1), inner.release.bits.client_id)
+ node T_176473 = not(T_176472)
+ node T_176474 = and(xact.coh.inner.sharers, T_176473)
+ wire T_176475 : UInt<3>[3]
+ T_176475[0] := UInt<3>(0)
+ T_176475[1] := UInt<3>(1)
+ T_176475[2] := UInt<3>(2)
+ wire T_176476 : UInt<2>[2]
+ T_176476[0] := UInt<2>(0)
+ T_176476[1] := UInt<2>(1)
+ wire T_176477 : UInt<2>[3]
+ T_176477[0] := UInt<2>(1)
+ T_176477[1] := UInt<2>(2)
+ T_176477[2] := UInt<2>(3)
+ wire T_176478 : UInt<2>[2]
+ T_176478[0] := UInt<2>(2)
+ T_176478[1] := UInt<2>(3)
+ wire T_176479 : UInt<2>[1]
+ T_176479[0] := UInt<2>(3)
+ wire T_176480 : UInt<3>[3]
+ T_176480[0] := UInt<3>(0)
+ T_176480[1] := UInt<3>(1)
+ T_176480[2] := UInt<3>(2)
+ wire T_176481 : UInt<2>[2]
+ T_176481[0] := UInt<2>(0)
+ T_176481[1] := UInt<2>(1)
+ wire T_176482 : UInt<2>[3]
+ T_176482[0] := UInt<2>(1)
+ T_176482[1] := UInt<2>(2)
+ T_176482[2] := UInt<2>(3)
+ wire T_176483 : UInt<2>[2]
+ T_176483[0] := UInt<2>(2)
+ T_176483[1] := UInt<2>(3)
+ wire T_176484 : UInt<2>[1]
+ T_176484[0] := UInt<2>(3)
+ wire T_176485 : {sharers : UInt<1>, makeGrant$default$3 : UInt<1>, makeGrant$default$4 : UInt<1>}
+ T_176485.sharers := T_176474
+ node T_176486 = eq(inner.release.bits.r_type, UInt<3>(0))
+ node T_176487 = eq(inner.release.bits.r_type, UInt<3>(3))
+ wire T_176488 : UInt<3>[3]
+ T_176488[0] := UInt<3>(0)
+ T_176488[1] := UInt<3>(1)
+ T_176488[2] := UInt<3>(2)
+ wire T_176489 : UInt<2>[2]
+ T_176489[0] := UInt<2>(0)
+ T_176489[1] := UInt<2>(1)
+ wire T_176490 : UInt<2>[3]
+ T_176490[0] := UInt<2>(1)
+ T_176490[1] := UInt<2>(2)
+ T_176490[2] := UInt<2>(3)
+ wire T_176491 : UInt<2>[2]
+ T_176491[0] := UInt<2>(2)
+ T_176491[1] := UInt<2>(3)
+ wire T_176492 : UInt<2>[1]
+ T_176492[0] := UInt<2>(3)
+ wire T_176493 : {sharers : UInt<1>, makeGrant$default$3 : UInt<1>, makeGrant$default$4 : UInt<1>}
+ T_176493 := xact.coh.inner
+ when T_176487 : T_176493 := T_176485
+ wire T_176494 : UInt<3>[3]
+ T_176494[0] := UInt<3>(0)
+ T_176494[1] := UInt<3>(1)
+ T_176494[2] := UInt<3>(2)
+ wire T_176495 : UInt<2>[2]
+ T_176495[0] := UInt<2>(0)
+ T_176495[1] := UInt<2>(1)
+ wire T_176496 : UInt<2>[3]
+ T_176496[0] := UInt<2>(1)
+ T_176496[1] := UInt<2>(2)
+ T_176496[2] := UInt<2>(3)
+ wire T_176497 : UInt<2>[2]
+ T_176497[0] := UInt<2>(2)
+ T_176497[1] := UInt<2>(3)
+ wire T_176498 : UInt<2>[1]
+ T_176498[0] := UInt<2>(3)
+ wire inner_coh_on_irel : {sharers : UInt<1>, makeGrant$default$3 : UInt<1>, makeGrant$default$4 : UInt<1>}
+ inner_coh_on_irel := T_176493
+ when T_176486 : inner_coh_on_irel := T_176485
+ node T_176499 = eq(UInt<5>(1), UInt<5>(1))
+ node T_176500 = eq(UInt<5>(1), UInt<5>(7))
+ node T_176501 = or(T_176499, T_176500)
+ node T_176502 = eq(UInt<5>(1), UInt<5>(4))
+ node T_176503 = or(UInt<1>(0), T_176502)
+ node T_176504 = or(T_176501, T_176503)
+ wire T_176505 : UInt<2>
+ T_176505 := xact.coh.outer.state
+ when T_176504 : T_176505 := UInt<2>(2)
+ wire T_176506 : UInt<3>[3]
+ T_176506[0] := UInt<3>(0)
+ T_176506[1] := UInt<3>(1)
+ T_176506[2] := UInt<3>(2)
+ wire T_176507 : UInt<0>[1]
+ T_176507[0] := UInt<0>(0)
+ wire T_176508 : UInt<2>[2]
+ T_176508[0] := UInt<2>(1)
+ T_176508[1] := UInt<2>(2)
+ wire T_176509 : UInt<2>[2]
+ T_176509[0] := UInt<2>(1)
+ T_176509[1] := UInt<2>(2)
+ wire T_176510 : UInt<2>[1]
+ T_176510[0] := UInt<2>(2)
+ wire T_176511 : UInt<3>[3]
+ T_176511[0] := UInt<3>(0)
+ T_176511[1] := UInt<3>(1)
+ T_176511[2] := UInt<3>(2)
+ wire T_176512 : UInt<0>[1]
+ T_176512[0] := UInt<0>(0)
+ wire T_176513 : UInt<2>[2]
+ T_176513[0] := UInt<2>(1)
+ T_176513[1] := UInt<2>(2)
+ wire T_176514 : UInt<2>[2]
+ T_176514[0] := UInt<2>(1)
+ T_176514[1] := UInt<2>(2)
+ wire T_176515 : UInt<2>[1]
+ T_176515[0] := UInt<2>(2)
+ wire outer_coh_on_irel : {state : UInt<2>, makeRelease$default$2 : UInt<1>, makeRelease$default$3 : UInt<1>, makeVoluntaryRelease$default$4 : UInt<1>, makeVoluntaryRelease$default$5 : UInt<1>, makeVoluntaryWriteback$default$3 : UInt<1>, makeVoluntaryWriteback$default$4 : UInt<1>}
+ outer_coh_on_irel.state := T_176505
+ node T_176516 = eq(state, UInt<3>(1))
+ node T_176517 = eq(state, UInt<3>(2))
+ node T_176518 = or(T_176516, T_176517)
+ inner.release.ready := T_176518
+
+ node T_176519 = and(inner.release.ready, inner.release.valid)
+ when T_176519 :
+ xact.coh.inner := inner_coh_on_irel
+ accessor T_176520 = data_buffer[inner.release.bits.addr_beat]
+ T_176520 := inner.release.bits.data
+
+
+ node T_176521 = eq(inner.release.bits.addr_block, xact_addr_block)
+ node T_176522 = and(inner.release.valid, T_176521)
+ node T_176523 = eq(T_176261[0], inner.release.bits.r_type)
+ node T_176524 = eq(T_176261[1], inner.release.bits.r_type)
+ node T_176525 = eq(T_176261[2], inner.release.bits.r_type)
+ node T_176526 = or(UInt<1>(0), T_176523)
+ node T_176527 = or(T_176526, T_176524)
+ node T_176528 = or(T_176527, T_176525)
+ node T_176529 = and(T_176522, T_176528)
+ when T_176529 : xact.coh.outer := outer_coh_on_irel
+ node T_176530 = and(data.read.ready, data.read.valid)
+ node T_176531 = subw(UInt<4>(0), UInt<3>(4))
+ node T_176532 = not(T_176531)
+ node T_176533 = dshl(UInt<1>(1), data.read.bits.addr_beat)
+ node T_176534 = not(T_176533)
+ node T_176535 = or(T_176532, T_176534)
+ node T_176536 = and(pending_reads, T_176535)
+ node T_176537 = and(inner.release.ready, inner.release.valid)
+ node T_176538 = eq(T_176261[0], inner.release.bits.r_type)
+ node T_176539 = eq(T_176261[1], inner.release.bits.r_type)
+ node T_176540 = eq(T_176261[2], inner.release.bits.r_type)
+ node T_176541 = or(UInt<1>(0), T_176538)
+ node T_176542 = or(T_176541, T_176539)
+ node T_176543 = or(T_176542, T_176540)
+ node T_176544 = and(T_176537, T_176543)
+ node T_176545 = subw(UInt<4>(0), UInt<3>(4))
+ node T_176546 = not(T_176545)
+ node T_176547 = dshl(UInt<1>(1), inner.release.bits.addr_beat)
+ node T_176548 = not(T_176547)
+ node T_176549 = or(T_176546, T_176548)
+ node T_176550 = and(T_176536, T_176549)
+ pending_reads := T_176550
+ node T_176551 = bit(pending_reads, 0)
+ node T_176552 = bit(pending_reads, 1)
+ node T_176553 = bit(pending_reads, 2)
+ node T_176554 = bit(pending_reads, 3)
+ wire T_176555 : UInt<1>[4]
+ T_176555[0] := T_176551
+ T_176555[1] := T_176552
+ T_176555[2] := T_176553
+ T_176555[3] := T_176554
+ wire T_176556 : UInt<2>
+ T_176556 := UInt<2>(3)
+ when T_176555[2] : T_176556 := UInt<2>(2)
+ wire T_176557 : UInt<2>
+ T_176557 := T_176556
+ when T_176555[1] : T_176557 := UInt<1>(1)
+ wire curr_read_beat : UInt<2>
+ curr_read_beat := T_176557
+ when T_176555[0] : curr_read_beat := UInt<1>(0)
+ node T_176558 = eq(state, UInt<3>(2))
+ node T_176559 = eq(pending_reads, UInt<1>(0))
+ node T_176560 = eq(T_176559, UInt<1>(0))
+ node T_176561 = and(T_176558, T_176560)
+ data.read.valid := T_176561
+ data.read.bits.id := UInt<2>(3)
+ data.read.bits.way_en := xact.way_en
+ data.read.bits.addr_idx := xact.idx
+ data.read.bits.addr_beat := curr_read_beat
+ data.write.valid := UInt<1>(0)
+ node T_176562 = subw(UInt<4>(0), UInt<3>(4))
+ node T_176563 = not(T_176562)
+ node T_176564 = dshl(UInt<1>(1), data.resp.bits.addr_beat)
+ node T_176565 = not(T_176564)
+ node T_176566 = or(T_176563, T_176565)
+ node T_176567 = and(pending_resps, T_176566)
+ node T_176568 = and(data.read.ready, data.read.valid)
+ node T_176569 = subw(UInt<4>(0), UInt<3>(4))
+ node T_176570 = dshl(UInt<1>(1), data.read.bits.addr_beat)
+ node T_176571 = and(T_176569, T_176570)
+ node T_176572 = or(T_176567, T_176571)
+ pending_resps := T_176572
+ when data.resp.valid :
+ accessor T_176573 = data_buffer[data.resp.bits.addr_beat]
+ T_176573 := data.resp.bits.data
+ node T_176574 = and(inner.release.ready, inner.release.valid)
+ node T_176575 = eq(T_176261[0], inner.release.bits.r_type)
+ node T_176576 = eq(T_176261[1], inner.release.bits.r_type)
+ node T_176577 = eq(T_176261[2], inner.release.bits.r_type)
+ node T_176578 = or(UInt<1>(0), T_176575)
+ node T_176579 = or(T_176578, T_176576)
+ node T_176580 = or(T_176579, T_176577)
+ node T_176581 = and(T_176574, T_176580)
+ node T_176582 = subw(UInt<4>(0), UInt<3>(4))
+ node T_176583 = dshl(UInt<1>(1), inner.release.bits.addr_beat)
+ node T_176584 = and(T_176582, T_176583)
+ node T_176585 = or(pending_orel_data, T_176584)
+ node T_176586 = subw(UInt<4>(0), UInt<3>(4))
+ node T_176587 = dshl(UInt<1>(1), data.resp.bits.addr_beat)
+ node T_176588 = and(T_176586, T_176587)
+ node T_176589 = or(T_176585, T_176588)
+ pending_orel_data := T_176589
+ node T_176590 = eq(state, UInt<3>(2))
+ node T_176591 = eq(T_176307[0], outer.release.bits.r_type)
+ node T_176592 = eq(T_176307[1], outer.release.bits.r_type)
+ node T_176593 = eq(T_176307[2], outer.release.bits.r_type)
+ node T_176594 = or(UInt<1>(0), T_176591)
+ node T_176595 = or(T_176594, T_176592)
+ node T_176596 = or(T_176595, T_176593)
+ node T_176597 = eq(T_176596, UInt<1>(0))
+ node T_176598 = dshr(pending_orel_data, orel_data_idx)
+ node T_176599 = bit(T_176598, 0)
+ node T_176600 = or(T_176597, T_176599)
+ node T_176601 = and(T_176590, T_176600)
+ outer.release.valid := T_176601
+ accessor T_176602 = data_buffer[orel_data_idx]
+ node T_176603 = eq(T_176371[0], xact.coh.outer.state)
+ node T_176604 = or(UInt<1>(0), T_176603)
+ wire T_176605 : UInt<3>
+ T_176605 := UInt<3>(3)
+ when T_176604 : T_176605 := UInt<3>(0)
+ wire T_176606 : UInt<3>
+ T_176606 := UInt<3>(4)
+ when T_176604 : T_176606 := UInt<3>(1)
+ wire T_176607 : UInt<3>
+ T_176607 := UInt<3>(5)
+ when T_176604 : T_176607 := UInt<3>(2)
+ node T_176608 = eq(UInt<5>(19), UInt<5>(16))
+ wire T_176609 : UInt<3>
+ T_176609 := UInt<3>(5)
+ when T_176608 : T_176609 := T_176607
+ node T_176610 = eq(UInt<5>(17), UInt<5>(16))
+ wire T_176611 : UInt<3>
+ T_176611 := T_176609
+ when T_176610 : T_176611 := T_176606
+ node T_176612 = eq(UInt<5>(16), UInt<5>(16))
+ wire T_176613 : UInt<3>
+ T_176613 := T_176611
+ when T_176612 : T_176613 := T_176605
+ wire T_176614 : UInt<3>[3]
+ T_176614[0] := UInt<3>(0)
+ T_176614[1] := UInt<3>(1)
+ T_176614[2] := UInt<3>(2)
+ wire T_176615 : UInt<0>[1]
+ T_176615[0] := UInt<0>(0)
+ wire T_176616 : UInt<2>[2]
+ T_176616[0] := UInt<2>(1)
+ T_176616[1] := UInt<2>(2)
+ wire T_176617 : UInt<2>[2]
+ T_176617[0] := UInt<2>(1)
+ T_176617[1] := UInt<2>(2)
+ wire T_176618 : UInt<2>[1]
+ T_176618[0] := UInt<2>(2)
+ wire T_176619 : UInt<3>[3]
+ T_176619[0] := UInt<3>(0)
+ T_176619[1] := UInt<3>(1)
+ T_176619[2] := UInt<3>(2)
+ wire T_176620 : UInt<0>[1]
+ T_176620[0] := UInt<0>(0)
+ wire T_176621 : UInt<2>[2]
+ T_176621[0] := UInt<2>(1)
+ T_176621[1] := UInt<2>(2)
+ wire T_176622 : UInt<2>[2]
+ T_176622[0] := UInt<2>(1)
+ T_176622[1] := UInt<2>(2)
+ wire T_176623 : UInt<2>[1]
+ T_176623[0] := UInt<2>(2)
+ wire T_176624 : {addr_block : UInt<26>, client_xact_id : UInt<2>, addr_beat : UInt<2>, data : UInt<128>, r_type : UInt<3>, voluntary : UInt<1>}
+ T_176624.r_type := T_176613
+ T_176624.client_xact_id := UInt<2>(3)
+ T_176624.addr_block := xact_addr_block
+ T_176624.addr_beat := orel_data_idx
+ T_176624.data := T_176602
+ T_176624.voluntary := UInt<1>(1)
+ outer.release.bits := T_176624
+ node T_176625 = eq(state, UInt<3>(3))
+ outer.grant.ready := T_176625
+ node T_176626 = eq(state, UInt<3>(4))
+ wb.resp.valid := T_176626
+ wb.resp.bits.id := xact.id
+
+
+ node T_176627 = eq(state, UInt<3>(0))
+ node T_176628 = and(T_176627, wb.req.valid)
+ when T_176628 :
+ xact := wb.req.bits
+ node T_176629 = eq(wb.req.bits.coh.inner.sharers, UInt<1>(0))
+ node T_176630 = eq(T_176629, UInt<1>(0))
+ when T_176630 :
+ node T_176631 = not(incoherent[0])
+ node T_176632 = and(wb.req.bits.coh.inner.sharers, T_176631)
+ pending_iprbs := T_176632
+ pending_reads := SInt<4>(-1)
+ pending_resps := UInt<1>(0)
+ pending_orel_data := UInt<1>(0)
+ wire T_176633 : UInt<3>
+ T_176633 := UInt<3>(2)
+ when T_176630 : T_176633 := UInt<3>(1)
+ state := T_176633
+
+
+ node T_176634 = eq(state, UInt<3>(1))
+ node T_176635 = eq(pending_iprbs, UInt<1>(0))
+ node T_176636 = eq(T_176635, UInt<1>(0))
+ node T_176637 = or(T_176636, pending_irels)
+ node T_176638 = eq(T_176637, UInt<1>(0))
+ node T_176639 = and(T_176634, T_176638)
+ when T_176639 :
+ node T_176640 = eq(T_176371[0], xact.coh.outer.state)
+ node T_176641 = or(UInt<1>(0), T_176640)
+ wire T_176642 : UInt<3>
+ T_176642 := UInt<3>(4)
+ when T_176641 : T_176642 := UInt<3>(2)
+ state := T_176642
+
+
+ node T_176643 = eq(state, UInt<3>(2))
+ node T_176644 = and(T_176643, orel_data_done)
+ when T_176644 :
+ node T_176645 = eq(UInt<1>(0), UInt<1>(0))
+ wire T_176646 : UInt<3>
+ T_176646 := UInt<3>(4)
+ when T_176645 : T_176646 := UInt<3>(3)
+ state := T_176646
+
+
+ node T_176647 = eq(state, UInt<3>(3))
+ node T_176648 = and(T_176647, ognt_data_done)
+ when T_176648 : state := UInt<3>(4)
+
+ node T_176649 = eq(state, UInt<3>(4))
+ when T_176649 : state := UInt<3>(0)
+ node T_176650 = eq(inner.release.bits.addr_block, xact_addr_block)
+ node T_176651 = eq(inner.release.bits.voluntary, UInt<1>(0))
+ node T_176652 = and(T_176650, T_176651)
+ node T_176653 = and(T_176652, inner.release.ready)
+ has_release_match := T_176653
+ has_acquire_match := UInt<1>(0)
+ has_acquire_conflict := UInt<1>(0)
+ module RRArbiter_97606 :
+ input in : {flip ready : UInt<1>, valid : UInt<1>, bits : {tag : UInt<14>, coh : {inner : {sharers : UInt<1>, makeGrant$default$3 : UInt<1>, makeGrant$default$4 : UInt<1>}, outer : {state : UInt<2>, makeRelease$default$2 : UInt<1>, makeRelease$default$3 : UInt<1>, makeVoluntaryRelease$default$4 : UInt<1>, makeVoluntaryRelease$default$5 : UInt<1>, makeVoluntaryWriteback$default$3 : UInt<1>, makeVoluntaryWriteback$default$4 : UInt<1>}}, id : UInt<2>, idx : UInt<12>, way_en : UInt<8>}}[3]
+ output out : {flip ready : UInt<1>, valid : UInt<1>, bits : {tag : UInt<14>, coh : {inner : {sharers : UInt<1>, makeGrant$default$3 : UInt<1>, makeGrant$default$4 : UInt<1>}, outer : {state : UInt<2>, makeRelease$default$2 : UInt<1>, makeRelease$default$3 : UInt<1>, makeVoluntaryRelease$default$4 : UInt<1>, makeVoluntaryRelease$default$5 : UInt<1>, makeVoluntaryWriteback$default$3 : UInt<1>, makeVoluntaryWriteback$default$4 : UInt<1>}}, id : UInt<2>, idx : UInt<12>, way_en : UInt<8>}}
+ output chosen : UInt<2>
+
+ wire T_176654 : UInt<3>[3]
+ T_176654[0] := UInt<3>(0)
+ T_176654[1] := UInt<3>(1)
+ T_176654[2] := UInt<3>(2)
+ wire T_176655 : UInt<2>[2]
+ T_176655[0] := UInt<2>(0)
+ T_176655[1] := UInt<2>(1)
+ wire T_176656 : UInt<2>[3]
+ T_176656[0] := UInt<2>(1)
+ T_176656[1] := UInt<2>(2)
+ T_176656[2] := UInt<2>(3)
+ wire T_176657 : UInt<2>[2]
+ T_176657[0] := UInt<2>(2)
+ T_176657[1] := UInt<2>(3)
+ wire T_176658 : UInt<2>[1]
+ T_176658[0] := UInt<2>(3)
+ wire T_176659 : UInt<3>[3]
+ T_176659[0] := UInt<3>(0)
+ T_176659[1] := UInt<3>(1)
+ T_176659[2] := UInt<3>(2)
+ wire T_176660 : UInt<2>[2]
+ T_176660[0] := UInt<2>(0)
+ T_176660[1] := UInt<2>(1)
+ wire T_176661 : UInt<2>[3]
+ T_176661[0] := UInt<2>(1)
+ T_176661[1] := UInt<2>(2)
+ T_176661[2] := UInt<2>(3)
+ wire T_176662 : UInt<2>[2]
+ T_176662[0] := UInt<2>(2)
+ T_176662[1] := UInt<2>(3)
+ wire T_176663 : UInt<2>[1]
+ T_176663[0] := UInt<2>(3)
+ wire T_176664 : UInt<3>[3]
+ T_176664[0] := UInt<3>(0)
+ T_176664[1] := UInt<3>(1)
+ T_176664[2] := UInt<3>(2)
+ wire T_176665 : UInt<0>[1]
+ T_176665[0] := UInt<0>(0)
+ wire T_176666 : UInt<2>[2]
+ T_176666[0] := UInt<2>(1)
+ T_176666[1] := UInt<2>(2)
+ wire T_176667 : UInt<2>[2]
+ T_176667[0] := UInt<2>(1)
+ T_176667[1] := UInt<2>(2)
+ wire T_176668 : UInt<2>[1]
+ T_176668[0] := UInt<2>(2)
+ wire T_176669 : UInt<3>[3]
+ T_176669[0] := UInt<3>(0)
+ T_176669[1] := UInt<3>(1)
+ T_176669[2] := UInt<3>(2)
+ wire T_176670 : UInt<2>[2]
+ T_176670[0] := UInt<2>(0)
+ T_176670[1] := UInt<2>(1)
+ wire T_176671 : UInt<2>[3]
+ T_176671[0] := UInt<2>(1)
+ T_176671[1] := UInt<2>(2)
+ T_176671[2] := UInt<2>(3)
+ wire T_176672 : UInt<2>[2]
+ T_176672[0] := UInt<2>(2)
+ T_176672[1] := UInt<2>(3)
+ wire T_176673 : UInt<2>[1]
+ T_176673[0] := UInt<2>(3)
+ wire T_176674 : UInt<3>[3]
+ T_176674[0] := UInt<3>(0)
+ T_176674[1] := UInt<3>(1)
+ T_176674[2] := UInt<3>(2)
+ wire T_176675 : UInt<2>[2]
+ T_176675[0] := UInt<2>(0)
+ T_176675[1] := UInt<2>(1)
+ wire T_176676 : UInt<2>[3]
+ T_176676[0] := UInt<2>(1)
+ T_176676[1] := UInt<2>(2)
+ T_176676[2] := UInt<2>(3)
+ wire T_176677 : UInt<2>[2]
+ T_176677[0] := UInt<2>(2)
+ T_176677[1] := UInt<2>(3)
+ wire T_176678 : UInt<2>[1]
+ T_176678[0] := UInt<2>(3)
+ wire T_176679 : UInt<3>[3]
+ T_176679[0] := UInt<3>(0)
+ T_176679[1] := UInt<3>(1)
+ T_176679[2] := UInt<3>(2)
+ wire T_176680 : UInt<0>[1]
+ T_176680[0] := UInt<0>(0)
+ wire T_176681 : UInt<2>[2]
+ T_176681[0] := UInt<2>(1)
+ T_176681[1] := UInt<2>(2)
+ wire T_176682 : UInt<2>[2]
+ T_176682[0] := UInt<2>(1)
+ T_176682[1] := UInt<2>(2)
+ wire T_176683 : UInt<2>[1]
+ T_176683[0] := UInt<2>(2)
+ wire T_176684 : UInt<3>[3]
+ T_176684[0] := UInt<3>(0)
+ T_176684[1] := UInt<3>(1)
+ T_176684[2] := UInt<3>(2)
+ wire T_176685 : UInt<2>[2]
+ T_176685[0] := UInt<2>(0)
+ T_176685[1] := UInt<2>(1)
+ wire T_176686 : UInt<2>[3]
+ T_176686[0] := UInt<2>(1)
+ T_176686[1] := UInt<2>(2)
+ T_176686[2] := UInt<2>(3)
+ wire T_176687 : UInt<2>[2]
+ T_176687[0] := UInt<2>(2)
+ T_176687[1] := UInt<2>(3)
+ wire T_176688 : UInt<2>[1]
+ T_176688[0] := UInt<2>(3)
+ wire T_176689 : UInt<3>[3]
+ T_176689[0] := UInt<3>(0)
+ T_176689[1] := UInt<3>(1)
+ T_176689[2] := UInt<3>(2)
+ wire T_176690 : UInt<2>[2]
+ T_176690[0] := UInt<2>(0)
+ T_176690[1] := UInt<2>(1)
+ wire T_176691 : UInt<2>[3]
+ T_176691[0] := UInt<2>(1)
+ T_176691[1] := UInt<2>(2)
+ T_176691[2] := UInt<2>(3)
+ wire T_176692 : UInt<2>[2]
+ T_176692[0] := UInt<2>(2)
+ T_176692[1] := UInt<2>(3)
+ wire T_176693 : UInt<2>[1]
+ T_176693[0] := UInt<2>(3)
+ wire T_176694 : UInt<3>[3]
+ T_176694[0] := UInt<3>(0)
+ T_176694[1] := UInt<3>(1)
+ T_176694[2] := UInt<3>(2)
+ wire T_176695 : UInt<0>[1]
+ T_176695[0] := UInt<0>(0)
+ wire T_176696 : UInt<2>[2]
+ T_176696[0] := UInt<2>(1)
+ T_176696[1] := UInt<2>(2)
+ wire T_176697 : UInt<2>[2]
+ T_176697[0] := UInt<2>(1)
+ T_176697[1] := UInt<2>(2)
+ wire T_176698 : UInt<2>[1]
+ T_176698[0] := UInt<2>(2)
+ wire T_176699 : UInt<3>[3]
+ T_176699[0] := UInt<3>(0)
+ T_176699[1] := UInt<3>(1)
+ T_176699[2] := UInt<3>(2)
+ wire T_176700 : UInt<2>[2]
+ T_176700[0] := UInt<2>(0)
+ T_176700[1] := UInt<2>(1)
+ wire T_176701 : UInt<2>[3]
+ T_176701[0] := UInt<2>(1)
+ T_176701[1] := UInt<2>(2)
+ T_176701[2] := UInt<2>(3)
+ wire T_176702 : UInt<2>[2]
+ T_176702[0] := UInt<2>(2)
+ T_176702[1] := UInt<2>(3)
+ wire T_176703 : UInt<2>[1]
+ T_176703[0] := UInt<2>(3)
+ wire T_176704 : UInt<3>[3]
+ T_176704[0] := UInt<3>(0)
+ T_176704[1] := UInt<3>(1)
+ T_176704[2] := UInt<3>(2)
+ wire T_176705 : UInt<2>[2]
+ T_176705[0] := UInt<2>(0)
+ T_176705[1] := UInt<2>(1)
+ wire T_176706 : UInt<2>[3]
+ T_176706[0] := UInt<2>(1)
+ T_176706[1] := UInt<2>(2)
+ T_176706[2] := UInt<2>(3)
+ wire T_176707 : UInt<2>[2]
+ T_176707[0] := UInt<2>(2)
+ T_176707[1] := UInt<2>(3)
+ wire T_176708 : UInt<2>[1]
+ T_176708[0] := UInt<2>(3)
+ wire T_176709 : UInt<3>[3]
+ T_176709[0] := UInt<3>(0)
+ T_176709[1] := UInt<3>(1)
+ T_176709[2] := UInt<3>(2)
+ wire T_176710 : UInt<0>[1]
+ T_176710[0] := UInt<0>(0)
+ wire T_176711 : UInt<2>[2]
+ T_176711[0] := UInt<2>(1)
+ T_176711[1] := UInt<2>(2)
+ wire T_176712 : UInt<2>[2]
+ T_176712[0] := UInt<2>(1)
+ T_176712[1] := UInt<2>(2)
+ wire T_176713 : UInt<2>[1]
+ T_176713[0] := UInt<2>(2)
+ wire T_176714 : UInt<3>[3]
+ T_176714[0] := UInt<3>(0)
+ T_176714[1] := UInt<3>(1)
+ T_176714[2] := UInt<3>(2)
+ wire T_176715 : UInt<2>[2]
+ T_176715[0] := UInt<2>(0)
+ T_176715[1] := UInt<2>(1)
+ wire T_176716 : UInt<2>[3]
+ T_176716[0] := UInt<2>(1)
+ T_176716[1] := UInt<2>(2)
+ T_176716[2] := UInt<2>(3)
+ wire T_176717 : UInt<2>[2]
+ T_176717[0] := UInt<2>(2)
+ T_176717[1] := UInt<2>(3)
+ wire T_176718 : UInt<2>[1]
+ T_176718[0] := UInt<2>(3)
+ wire T_176719 : UInt<3>[3]
+ T_176719[0] := UInt<3>(0)
+ T_176719[1] := UInt<3>(1)
+ T_176719[2] := UInt<3>(2)
+ wire T_176720 : UInt<2>[2]
+ T_176720[0] := UInt<2>(0)
+ T_176720[1] := UInt<2>(1)
+ wire T_176721 : UInt<2>[3]
+ T_176721[0] := UInt<2>(1)
+ T_176721[1] := UInt<2>(2)
+ T_176721[2] := UInt<2>(3)
+ wire T_176722 : UInt<2>[2]
+ T_176722[0] := UInt<2>(2)
+ T_176722[1] := UInt<2>(3)
+ wire T_176723 : UInt<2>[1]
+ T_176723[0] := UInt<2>(3)
+ wire T_176724 : UInt<3>[3]
+ T_176724[0] := UInt<3>(0)
+ T_176724[1] := UInt<3>(1)
+ T_176724[2] := UInt<3>(2)
+ wire T_176725 : UInt<0>[1]
+ T_176725[0] := UInt<0>(0)
+ wire T_176726 : UInt<2>[2]
+ T_176726[0] := UInt<2>(1)
+ T_176726[1] := UInt<2>(2)
+ wire T_176727 : UInt<2>[2]
+ T_176727[0] := UInt<2>(1)
+ T_176727[1] := UInt<2>(2)
+ wire T_176728 : UInt<2>[1]
+ T_176728[0] := UInt<2>(2)
+ wire T_176729 : UInt<2>
+ reg T_176730 : UInt<2>
+ onreset T_176730 := UInt<2>(0)
+ node T_176731 = gt(UInt<1>(0), T_176730)
+ node T_176732 = and(in[0].valid, T_176731)
+ node T_176733 = gt(UInt<1>(1), T_176730)
+ node T_176734 = and(in[1].valid, T_176733)
+ node T_176735 = gt(UInt<2>(2), T_176730)
+ node T_176736 = and(in[2].valid, T_176735)
+ node T_176737 = or(UInt<1>(0), T_176732)
+ node T_176738 = eq(T_176737, UInt<1>(0))
+ node T_176739 = or(UInt<1>(0), T_176732)
+ node T_176740 = or(T_176739, T_176734)
+ node T_176741 = eq(T_176740, UInt<1>(0))
+ node T_176742 = or(UInt<1>(0), T_176732)
+ node T_176743 = or(T_176742, T_176734)
+ node T_176744 = or(T_176743, T_176736)
+ node T_176745 = eq(T_176744, UInt<1>(0))
+ node T_176746 = or(UInt<1>(0), T_176732)
+ node T_176747 = or(T_176746, T_176734)
+ node T_176748 = or(T_176747, T_176736)
+ node T_176749 = or(T_176748, in[0].valid)
+ node T_176750 = eq(T_176749, UInt<1>(0))
+ node T_176751 = or(UInt<1>(0), T_176732)
+ node T_176752 = or(T_176751, T_176734)
+ node T_176753 = or(T_176752, T_176736)
+ node T_176754 = or(T_176753, in[0].valid)
+ node T_176755 = or(T_176754, in[1].valid)
+ node T_176756 = eq(T_176755, UInt<1>(0))
+ node T_176757 = gt(UInt<1>(0), T_176730)
+ node T_176758 = and(UInt<1>(1), T_176757)
+ node T_176759 = or(T_176758, T_176745)
+ node T_176760 = gt(UInt<1>(1), T_176730)
+ node T_176761 = and(T_176738, T_176760)
+ node T_176762 = or(T_176761, T_176750)
+ node T_176763 = gt(UInt<2>(2), T_176730)
+ node T_176764 = and(T_176741, T_176763)
+ node T_176765 = or(T_176764, T_176756)
+ node T_176766 = eq(UInt<2>(2), UInt<1>(0))
+ wire T_176767 : UInt<1>
+ T_176767 := T_176759
+ when UInt<1>(0) : T_176767 := T_176766
+ node T_176768 = and(T_176767, out.ready)
+ in[0].ready := T_176768
+ node T_176769 = eq(UInt<2>(2), UInt<1>(1))
+ wire T_176770 : UInt<1>
+ T_176770 := T_176762
+ when UInt<1>(0) : T_176770 := T_176769
+ node T_176771 = and(T_176770, out.ready)
+ in[1].ready := T_176771
+ node T_176772 = eq(UInt<2>(2), UInt<2>(2))
+ wire T_176773 : UInt<1>
+ T_176773 := T_176765
+ when UInt<1>(0) : T_176773 := T_176772
+ node T_176774 = and(T_176773, out.ready)
+ in[2].ready := T_176774
+ wire T_176775 : UInt<3>[3]
+ T_176775[0] := UInt<3>(0)
+ T_176775[1] := UInt<3>(1)
+ T_176775[2] := UInt<3>(2)
+ wire T_176776 : UInt<2>[2]
+ T_176776[0] := UInt<2>(0)
+ T_176776[1] := UInt<2>(1)
+ wire T_176777 : UInt<2>[3]
+ T_176777[0] := UInt<2>(1)
+ T_176777[1] := UInt<2>(2)
+ T_176777[2] := UInt<2>(3)
+ wire T_176778 : UInt<2>[2]
+ T_176778[0] := UInt<2>(2)
+ T_176778[1] := UInt<2>(3)
+ wire T_176779 : UInt<2>[1]
+ T_176779[0] := UInt<2>(3)
+ wire T_176780 : UInt<3>[3]
+ T_176780[0] := UInt<3>(0)
+ T_176780[1] := UInt<3>(1)
+ T_176780[2] := UInt<3>(2)
+ wire T_176781 : UInt<2>[2]
+ T_176781[0] := UInt<2>(0)
+ T_176781[1] := UInt<2>(1)
+ wire T_176782 : UInt<2>[3]
+ T_176782[0] := UInt<2>(1)
+ T_176782[1] := UInt<2>(2)
+ T_176782[2] := UInt<2>(3)
+ wire T_176783 : UInt<2>[2]
+ T_176783[0] := UInt<2>(2)
+ T_176783[1] := UInt<2>(3)
+ wire T_176784 : UInt<2>[1]
+ T_176784[0] := UInt<2>(3)
+ wire T_176785 : UInt<3>[3]
+ T_176785[0] := UInt<3>(0)
+ T_176785[1] := UInt<3>(1)
+ T_176785[2] := UInt<3>(2)
+ wire T_176786 : UInt<0>[1]
+ T_176786[0] := UInt<0>(0)
+ wire T_176787 : UInt<2>[2]
+ T_176787[0] := UInt<2>(1)
+ T_176787[1] := UInt<2>(2)
+ wire T_176788 : UInt<2>[2]
+ T_176788[0] := UInt<2>(1)
+ T_176788[1] := UInt<2>(2)
+ wire T_176789 : UInt<2>[1]
+ T_176789[0] := UInt<2>(2)
+ accessor T_176790 = in[T_176729]
+ out.valid := T_176790.valid
+ wire T_176791 : UInt<3>[3]
+ T_176791[0] := UInt<3>(0)
+ T_176791[1] := UInt<3>(1)
+ T_176791[2] := UInt<3>(2)
+ wire T_176792 : UInt<2>[2]
+ T_176792[0] := UInt<2>(0)
+ T_176792[1] := UInt<2>(1)
+ wire T_176793 : UInt<2>[3]
+ T_176793[0] := UInt<2>(1)
+ T_176793[1] := UInt<2>(2)
+ T_176793[2] := UInt<2>(3)
+ wire T_176794 : UInt<2>[2]
+ T_176794[0] := UInt<2>(2)
+ T_176794[1] := UInt<2>(3)
+ wire T_176795 : UInt<2>[1]
+ T_176795[0] := UInt<2>(3)
+ wire T_176796 : UInt<3>[3]
+ T_176796[0] := UInt<3>(0)
+ T_176796[1] := UInt<3>(1)
+ T_176796[2] := UInt<3>(2)
+ wire T_176797 : UInt<2>[2]
+ T_176797[0] := UInt<2>(0)
+ T_176797[1] := UInt<2>(1)
+ wire T_176798 : UInt<2>[3]
+ T_176798[0] := UInt<2>(1)
+ T_176798[1] := UInt<2>(2)
+ T_176798[2] := UInt<2>(3)
+ wire T_176799 : UInt<2>[2]
+ T_176799[0] := UInt<2>(2)
+ T_176799[1] := UInt<2>(3)
+ wire T_176800 : UInt<2>[1]
+ T_176800[0] := UInt<2>(3)
+ wire T_176801 : UInt<3>[3]
+ T_176801[0] := UInt<3>(0)
+ T_176801[1] := UInt<3>(1)
+ T_176801[2] := UInt<3>(2)
+ wire T_176802 : UInt<0>[1]
+ T_176802[0] := UInt<0>(0)
+ wire T_176803 : UInt<2>[2]
+ T_176803[0] := UInt<2>(1)
+ T_176803[1] := UInt<2>(2)
+ wire T_176804 : UInt<2>[2]
+ T_176804[0] := UInt<2>(1)
+ T_176804[1] := UInt<2>(2)
+ wire T_176805 : UInt<2>[1]
+ T_176805[0] := UInt<2>(2)
+ accessor T_176806 = in[T_176729]
+ out.bits := T_176806.bits
+ chosen := T_176729
+ wire T_176807 : UInt<2>
+ T_176807 := UInt<2>(2)
+ when in[1].valid : T_176807 := UInt<1>(1)
+ wire T_176808 : UInt<2>
+ T_176808 := T_176807
+ when in[0].valid : T_176808 := UInt<1>(0)
+ node T_176809 = gt(UInt<2>(2), T_176730)
+ node T_176810 = and(in[2].valid, T_176809)
+ wire T_176811 : UInt<2>
+ T_176811 := T_176808
+ when T_176810 : T_176811 := UInt<2>(2)
+ node T_176812 = gt(UInt<1>(1), T_176730)
+ node T_176813 = and(in[1].valid, T_176812)
+ wire T_176814 : UInt<2>
+ T_176814 := T_176811
+ when T_176813 : T_176814 := UInt<1>(1)
+ wire T_176815 : UInt<2>
+ T_176815 := T_176814
+ when UInt<1>(0) : T_176815 := UInt<2>(2)
+ T_176729 := T_176815
+
+ node T_176816 = and(out.ready, out.valid)
+ when T_176816 : T_176730 := T_176729
+ module LockingRRArbiter_98418 :
+ input in : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_block : UInt<26>, p_type : UInt<2>, client_id : UInt<2>}}[4]
+ output out : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_block : UInt<26>, p_type : UInt<2>, client_id : UInt<2>}}
+ output chosen : UInt<2>
+
+ wire T_176817 : UInt<3>[3]
+ T_176817[0] := UInt<3>(0)
+ T_176817[1] := UInt<3>(1)
+ T_176817[2] := UInt<3>(2)
+ wire T_176818 : UInt<2>[2]
+ T_176818[0] := UInt<2>(0)
+ T_176818[1] := UInt<2>(1)
+ wire T_176819 : UInt<2>[3]
+ T_176819[0] := UInt<2>(1)
+ T_176819[1] := UInt<2>(2)
+ T_176819[2] := UInt<2>(3)
+ wire T_176820 : UInt<2>[2]
+ T_176820[0] := UInt<2>(2)
+ T_176820[1] := UInt<2>(3)
+ wire T_176821 : UInt<2>[1]
+ T_176821[0] := UInt<2>(3)
+ wire T_176822 : UInt<3>[3]
+ T_176822[0] := UInt<3>(0)
+ T_176822[1] := UInt<3>(1)
+ T_176822[2] := UInt<3>(2)
+ wire T_176823 : UInt<2>[2]
+ T_176823[0] := UInt<2>(0)
+ T_176823[1] := UInt<2>(1)
+ wire T_176824 : UInt<2>[3]
+ T_176824[0] := UInt<2>(1)
+ T_176824[1] := UInt<2>(2)
+ T_176824[2] := UInt<2>(3)
+ wire T_176825 : UInt<2>[2]
+ T_176825[0] := UInt<2>(2)
+ T_176825[1] := UInt<2>(3)
+ wire T_176826 : UInt<2>[1]
+ T_176826[0] := UInt<2>(3)
+ wire T_176827 : UInt<3>[3]
+ T_176827[0] := UInt<3>(0)
+ T_176827[1] := UInt<3>(1)
+ T_176827[2] := UInt<3>(2)
+ wire T_176828 : UInt<2>[2]
+ T_176828[0] := UInt<2>(0)
+ T_176828[1] := UInt<2>(1)
+ wire T_176829 : UInt<2>[3]
+ T_176829[0] := UInt<2>(1)
+ T_176829[1] := UInt<2>(2)
+ T_176829[2] := UInt<2>(3)
+ wire T_176830 : UInt<2>[2]
+ T_176830[0] := UInt<2>(2)
+ T_176830[1] := UInt<2>(3)
+ wire T_176831 : UInt<2>[1]
+ T_176831[0] := UInt<2>(3)
+ wire T_176832 : UInt<3>[3]
+ T_176832[0] := UInt<3>(0)
+ T_176832[1] := UInt<3>(1)
+ T_176832[2] := UInt<3>(2)
+ wire T_176833 : UInt<2>[2]
+ T_176833[0] := UInt<2>(0)
+ T_176833[1] := UInt<2>(1)
+ wire T_176834 : UInt<2>[3]
+ T_176834[0] := UInt<2>(1)
+ T_176834[1] := UInt<2>(2)
+ T_176834[2] := UInt<2>(3)
+ wire T_176835 : UInt<2>[2]
+ T_176835[0] := UInt<2>(2)
+ T_176835[1] := UInt<2>(3)
+ wire T_176836 : UInt<2>[1]
+ T_176836[0] := UInt<2>(3)
+ wire T_176837 : UInt<3>[3]
+ T_176837[0] := UInt<3>(0)
+ T_176837[1] := UInt<3>(1)
+ T_176837[2] := UInt<3>(2)
+ wire T_176838 : UInt<2>[2]
+ T_176838[0] := UInt<2>(0)
+ T_176838[1] := UInt<2>(1)
+ wire T_176839 : UInt<2>[3]
+ T_176839[0] := UInt<2>(1)
+ T_176839[1] := UInt<2>(2)
+ T_176839[2] := UInt<2>(3)
+ wire T_176840 : UInt<2>[2]
+ T_176840[0] := UInt<2>(2)
+ T_176840[1] := UInt<2>(3)
+ wire T_176841 : UInt<2>[1]
+ T_176841[0] := UInt<2>(3)
+ wire T_176842 : UInt<3>[3]
+ T_176842[0] := UInt<3>(0)
+ T_176842[1] := UInt<3>(1)
+ T_176842[2] := UInt<3>(2)
+ wire T_176843 : UInt<2>[2]
+ T_176843[0] := UInt<2>(0)
+ T_176843[1] := UInt<2>(1)
+ wire T_176844 : UInt<2>[3]
+ T_176844[0] := UInt<2>(1)
+ T_176844[1] := UInt<2>(2)
+ T_176844[2] := UInt<2>(3)
+ wire T_176845 : UInt<2>[2]
+ T_176845[0] := UInt<2>(2)
+ T_176845[1] := UInt<2>(3)
+ wire T_176846 : UInt<2>[1]
+ T_176846[0] := UInt<2>(3)
+ reg T_176847 : UInt<1>
+ onreset T_176847 := UInt<1>(0)
+ reg T_176848 : UInt<2>
+ onreset T_176848 := UInt<2>(3)
+ wire T_176849 : UInt<2>
+ reg last_grant : UInt<2>
+ onreset last_grant := UInt<2>(0)
+ node T_176850 = gt(UInt<1>(0), last_grant)
+ node T_176851 = and(in[0].valid, T_176850)
+ node T_176852 = gt(UInt<1>(1), last_grant)
+ node T_176853 = and(in[1].valid, T_176852)
+ node T_176854 = gt(UInt<2>(2), last_grant)
+ node T_176855 = and(in[2].valid, T_176854)
+ node T_176856 = gt(UInt<2>(3), last_grant)
+ node T_176857 = and(in[3].valid, T_176856)
+ node T_176858 = or(UInt<1>(0), T_176851)
+ node T_176859 = eq(T_176858, UInt<1>(0))
+ node T_176860 = or(UInt<1>(0), T_176851)
+ node T_176861 = or(T_176860, T_176853)
+ node T_176862 = eq(T_176861, UInt<1>(0))
+ node T_176863 = or(UInt<1>(0), T_176851)
+ node T_176864 = or(T_176863, T_176853)
+ node T_176865 = or(T_176864, T_176855)
+ node T_176866 = eq(T_176865, UInt<1>(0))
+ node T_176867 = or(UInt<1>(0), T_176851)
+ node T_176868 = or(T_176867, T_176853)
+ node T_176869 = or(T_176868, T_176855)
+ node T_176870 = or(T_176869, T_176857)
+ node T_176871 = eq(T_176870, UInt<1>(0))
+ node T_176872 = or(UInt<1>(0), T_176851)
+ node T_176873 = or(T_176872, T_176853)
+ node T_176874 = or(T_176873, T_176855)
+ node T_176875 = or(T_176874, T_176857)
+ node T_176876 = or(T_176875, in[0].valid)
+ node T_176877 = eq(T_176876, UInt<1>(0))
+ node T_176878 = or(UInt<1>(0), T_176851)
+ node T_176879 = or(T_176878, T_176853)
+ node T_176880 = or(T_176879, T_176855)
+ node T_176881 = or(T_176880, T_176857)
+ node T_176882 = or(T_176881, in[0].valid)
+ node T_176883 = or(T_176882, in[1].valid)
+ node T_176884 = eq(T_176883, UInt<1>(0))
+ node T_176885 = or(UInt<1>(0), T_176851)
+ node T_176886 = or(T_176885, T_176853)
+ node T_176887 = or(T_176886, T_176855)
+ node T_176888 = or(T_176887, T_176857)
+ node T_176889 = or(T_176888, in[0].valid)
+ node T_176890 = or(T_176889, in[1].valid)
+ node T_176891 = or(T_176890, in[2].valid)
+ node T_176892 = eq(T_176891, UInt<1>(0))
+ node T_176893 = gt(UInt<1>(0), last_grant)
+ node T_176894 = and(UInt<1>(1), T_176893)
+ node T_176895 = or(T_176894, T_176871)
+ node T_176896 = gt(UInt<1>(1), last_grant)
+ node T_176897 = and(T_176859, T_176896)
+ node T_176898 = or(T_176897, T_176877)
+ node T_176899 = gt(UInt<2>(2), last_grant)
+ node T_176900 = and(T_176862, T_176899)
+ node T_176901 = or(T_176900, T_176884)
+ node T_176902 = gt(UInt<2>(3), last_grant)
+ node T_176903 = and(T_176866, T_176902)
+ node T_176904 = or(T_176903, T_176892)
+ node T_176905 = eq(T_176848, UInt<1>(0))
+ wire T_176906 : UInt<1>
+ T_176906 := T_176895
+ when T_176847 : T_176906 := T_176905
+ node T_176907 = and(T_176906, out.ready)
+ in[0].ready := T_176907
+ node T_176908 = eq(T_176848, UInt<1>(1))
+ wire T_176909 : UInt<1>
+ T_176909 := T_176898
+ when T_176847 : T_176909 := T_176908
+ node T_176910 = and(T_176909, out.ready)
+ in[1].ready := T_176910
+ node T_176911 = eq(T_176848, UInt<2>(2))
+ wire T_176912 : UInt<1>
+ T_176912 := T_176901
+ when T_176847 : T_176912 := T_176911
+ node T_176913 = and(T_176912, out.ready)
+ in[2].ready := T_176913
+ node T_176914 = eq(T_176848, UInt<2>(3))
+ wire T_176915 : UInt<1>
+ T_176915 := T_176904
+ when T_176847 : T_176915 := T_176914
+ node T_176916 = and(T_176915, out.ready)
+ in[3].ready := T_176916
+ wire T_176917 : UInt<3>[3]
+ T_176917[0] := UInt<3>(0)
+ T_176917[1] := UInt<3>(1)
+ T_176917[2] := UInt<3>(2)
+ wire T_176918 : UInt<2>[2]
+ T_176918[0] := UInt<2>(0)
+ T_176918[1] := UInt<2>(1)
+ wire T_176919 : UInt<2>[3]
+ T_176919[0] := UInt<2>(1)
+ T_176919[1] := UInt<2>(2)
+ T_176919[2] := UInt<2>(3)
+ wire T_176920 : UInt<2>[2]
+ T_176920[0] := UInt<2>(2)
+ T_176920[1] := UInt<2>(3)
+ wire T_176921 : UInt<2>[1]
+ T_176921[0] := UInt<2>(3)
+ accessor T_176922 = in[T_176849]
+ out.valid := T_176922.valid
+ wire T_176923 : UInt<3>[3]
+ T_176923[0] := UInt<3>(0)
+ T_176923[1] := UInt<3>(1)
+ T_176923[2] := UInt<3>(2)
+ wire T_176924 : UInt<2>[2]
+ T_176924[0] := UInt<2>(0)
+ T_176924[1] := UInt<2>(1)
+ wire T_176925 : UInt<2>[3]
+ T_176925[0] := UInt<2>(1)
+ T_176925[1] := UInt<2>(2)
+ T_176925[2] := UInt<2>(3)
+ wire T_176926 : UInt<2>[2]
+ T_176926[0] := UInt<2>(2)
+ T_176926[1] := UInt<2>(3)
+ wire T_176927 : UInt<2>[1]
+ T_176927[0] := UInt<2>(3)
+ accessor T_176928 = in[T_176849]
+ out.bits := T_176928.bits
+ chosen := T_176849
+ reg T_176929 : UInt<2>
+ onreset T_176929 := UInt<2>(0)
+ node T_176930 = addw(T_176929, UInt<1>(1))
+
+ node T_176931 = and(out.ready, out.valid)
+ when T_176931 :
+ when UInt<1>(0) :
+ T_176929 := T_176930
+
+ node T_176932 = eq(T_176847, UInt<1>(0))
+ when T_176932 :
+ T_176847 := UInt<1>(1)
+ node T_176933 = and(in[0].ready, in[0].valid)
+ node T_176934 = and(in[1].ready, in[1].valid)
+ node T_176935 = and(in[2].ready, in[2].valid)
+ node T_176936 = and(in[3].ready, in[3].valid)
+ wire T_176937 : UInt<1>[4]
+ T_176937[0] := T_176933
+ T_176937[1] := T_176934
+ T_176937[2] := T_176935
+ T_176937[3] := T_176936
+ wire T_176938 : UInt<2>
+ T_176938 := UInt<2>(3)
+ when T_176937[2] : T_176938 := UInt<2>(2)
+ wire T_176939 : UInt<2>
+ T_176939 := T_176938
+ when T_176937[1] : T_176939 := UInt<1>(1)
+ wire T_176940 : UInt<2>
+ T_176940 := T_176939
+ when T_176937[0] : T_176940 := UInt<1>(0)
+ T_176848 := T_176940
+
+ node T_176941 = eq(T_176930, UInt<1>(0))
+ when T_176941 : T_176847 := UInt<1>(0)
+ wire T_176942 : UInt<2>
+ T_176942 := UInt<2>(3)
+ when in[2].valid : T_176942 := UInt<2>(2)
+ wire T_176943 : UInt<2>
+ T_176943 := T_176942
+ when in[1].valid : T_176943 := UInt<1>(1)
+ wire T_176944 : UInt<2>
+ T_176944 := T_176943
+ when in[0].valid : T_176944 := UInt<1>(0)
+ node T_176945 = gt(UInt<2>(3), last_grant)
+ node T_176946 = and(in[3].valid, T_176945)
+ wire T_176947 : UInt<2>
+ T_176947 := T_176944
+ when T_176946 : T_176947 := UInt<2>(3)
+ node T_176948 = gt(UInt<2>(2), last_grant)
+ node T_176949 = and(in[2].valid, T_176948)
+ wire T_176950 : UInt<2>
+ T_176950 := T_176947
+ when T_176949 : T_176950 := UInt<2>(2)
+ node T_176951 = gt(UInt<1>(1), last_grant)
+ node T_176952 = and(in[1].valid, T_176951)
+ wire choose : UInt<2>
+ choose := T_176950
+ when T_176952 : choose := UInt<1>(1)
+ wire T_176953 : UInt<2>
+ T_176953 := choose
+ when T_176847 : T_176953 := T_176848
+ T_176849 := T_176953
+
+ node T_176954 = and(out.ready, out.valid)
+ when T_176954 : last_grant := T_176849
+ module LockingRRArbiter_99026 :
+ input in : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_beat : UInt<2>, data : UInt<128>, client_xact_id : UInt<1>, manager_xact_id : UInt<2>, is_builtin_type : UInt<1>, g_type : UInt<4>, client_id : UInt<2>}}[3]
+ output out : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_beat : UInt<2>, data : UInt<128>, client_xact_id : UInt<1>, manager_xact_id : UInt<2>, is_builtin_type : UInt<1>, g_type : UInt<4>, client_id : UInt<2>}}
+ output chosen : UInt<2>
+
+ wire T_176955 : UInt<3>[3]
+ T_176955[0] := UInt<3>(0)
+ T_176955[1] := UInt<3>(1)
+ T_176955[2] := UInt<3>(2)
+ wire T_176956 : UInt<2>[2]
+ T_176956[0] := UInt<2>(0)
+ T_176956[1] := UInt<2>(1)
+ wire T_176957 : UInt<2>[3]
+ T_176957[0] := UInt<2>(1)
+ T_176957[1] := UInt<2>(2)
+ T_176957[2] := UInt<2>(3)
+ wire T_176958 : UInt<2>[2]
+ T_176958[0] := UInt<2>(2)
+ T_176958[1] := UInt<2>(3)
+ wire T_176959 : UInt<2>[1]
+ T_176959[0] := UInt<2>(3)
+ wire T_176960 : UInt<3>[3]
+ T_176960[0] := UInt<3>(0)
+ T_176960[1] := UInt<3>(1)
+ T_176960[2] := UInt<3>(2)
+ wire T_176961 : UInt<2>[2]
+ T_176961[0] := UInt<2>(0)
+ T_176961[1] := UInt<2>(1)
+ wire T_176962 : UInt<2>[3]
+ T_176962[0] := UInt<2>(1)
+ T_176962[1] := UInt<2>(2)
+ T_176962[2] := UInt<2>(3)
+ wire T_176963 : UInt<2>[2]
+ T_176963[0] := UInt<2>(2)
+ T_176963[1] := UInt<2>(3)
+ wire T_176964 : UInt<2>[1]
+ T_176964[0] := UInt<2>(3)
+ wire T_176965 : UInt<3>[3]
+ T_176965[0] := UInt<3>(0)
+ T_176965[1] := UInt<3>(1)
+ T_176965[2] := UInt<3>(2)
+ wire T_176966 : UInt<2>[2]
+ T_176966[0] := UInt<2>(0)
+ T_176966[1] := UInt<2>(1)
+ wire T_176967 : UInt<2>[3]
+ T_176967[0] := UInt<2>(1)
+ T_176967[1] := UInt<2>(2)
+ T_176967[2] := UInt<2>(3)
+ wire T_176968 : UInt<2>[2]
+ T_176968[0] := UInt<2>(2)
+ T_176968[1] := UInt<2>(3)
+ wire T_176969 : UInt<2>[1]
+ T_176969[0] := UInt<2>(3)
+ wire T_176970 : UInt<3>[3]
+ T_176970[0] := UInt<3>(0)
+ T_176970[1] := UInt<3>(1)
+ T_176970[2] := UInt<3>(2)
+ wire T_176971 : UInt<2>[2]
+ T_176971[0] := UInt<2>(0)
+ T_176971[1] := UInt<2>(1)
+ wire T_176972 : UInt<2>[3]
+ T_176972[0] := UInt<2>(1)
+ T_176972[1] := UInt<2>(2)
+ T_176972[2] := UInt<2>(3)
+ wire T_176973 : UInt<2>[2]
+ T_176973[0] := UInt<2>(2)
+ T_176973[1] := UInt<2>(3)
+ wire T_176974 : UInt<2>[1]
+ T_176974[0] := UInt<2>(3)
+ wire T_176975 : UInt<3>[3]
+ T_176975[0] := UInt<3>(0)
+ T_176975[1] := UInt<3>(1)
+ T_176975[2] := UInt<3>(2)
+ wire T_176976 : UInt<2>[2]
+ T_176976[0] := UInt<2>(0)
+ T_176976[1] := UInt<2>(1)
+ wire T_176977 : UInt<2>[3]
+ T_176977[0] := UInt<2>(1)
+ T_176977[1] := UInt<2>(2)
+ T_176977[2] := UInt<2>(3)
+ wire T_176978 : UInt<2>[2]
+ T_176978[0] := UInt<2>(2)
+ T_176978[1] := UInt<2>(3)
+ wire T_176979 : UInt<2>[1]
+ T_176979[0] := UInt<2>(3)
+ reg T_176980 : UInt<1>
+ onreset T_176980 := UInt<1>(0)
+ reg T_176981 : UInt<2>
+ onreset T_176981 := UInt<2>(2)
+ wire T_176982 : UInt<2>
+ reg last_grant : UInt<2>
+ onreset last_grant := UInt<2>(0)
+ node T_176983 = gt(UInt<1>(0), last_grant)
+ node T_176984 = and(in[0].valid, T_176983)
+ node T_176985 = gt(UInt<1>(1), last_grant)
+ node T_176986 = and(in[1].valid, T_176985)
+ node T_176987 = gt(UInt<2>(2), last_grant)
+ node T_176988 = and(in[2].valid, T_176987)
+ node T_176989 = or(UInt<1>(0), T_176984)
+ node T_176990 = eq(T_176989, UInt<1>(0))
+ node T_176991 = or(UInt<1>(0), T_176984)
+ node T_176992 = or(T_176991, T_176986)
+ node T_176993 = eq(T_176992, UInt<1>(0))
+ node T_176994 = or(UInt<1>(0), T_176984)
+ node T_176995 = or(T_176994, T_176986)
+ node T_176996 = or(T_176995, T_176988)
+ node T_176997 = eq(T_176996, UInt<1>(0))
+ node T_176998 = or(UInt<1>(0), T_176984)
+ node T_176999 = or(T_176998, T_176986)
+ node T_177000 = or(T_176999, T_176988)
+ node T_177001 = or(T_177000, in[0].valid)
+ node T_177002 = eq(T_177001, UInt<1>(0))
+ node T_177003 = or(UInt<1>(0), T_176984)
+ node T_177004 = or(T_177003, T_176986)
+ node T_177005 = or(T_177004, T_176988)
+ node T_177006 = or(T_177005, in[0].valid)
+ node T_177007 = or(T_177006, in[1].valid)
+ node T_177008 = eq(T_177007, UInt<1>(0))
+ node T_177009 = gt(UInt<1>(0), last_grant)
+ node T_177010 = and(UInt<1>(1), T_177009)
+ node T_177011 = or(T_177010, T_176997)
+ node T_177012 = gt(UInt<1>(1), last_grant)
+ node T_177013 = and(T_176990, T_177012)
+ node T_177014 = or(T_177013, T_177002)
+ node T_177015 = gt(UInt<2>(2), last_grant)
+ node T_177016 = and(T_176993, T_177015)
+ node T_177017 = or(T_177016, T_177008)
+ node T_177018 = eq(T_176981, UInt<1>(0))
+ wire T_177019 : UInt<1>
+ T_177019 := T_177011
+ when T_176980 : T_177019 := T_177018
+ node T_177020 = and(T_177019, out.ready)
+ in[0].ready := T_177020
+ node T_177021 = eq(T_176981, UInt<1>(1))
+ wire T_177022 : UInt<1>
+ T_177022 := T_177014
+ when T_176980 : T_177022 := T_177021
+ node T_177023 = and(T_177022, out.ready)
+ in[1].ready := T_177023
+ node T_177024 = eq(T_176981, UInt<2>(2))
+ wire T_177025 : UInt<1>
+ T_177025 := T_177017
+ when T_176980 : T_177025 := T_177024
+ node T_177026 = and(T_177025, out.ready)
+ in[2].ready := T_177026
+ wire T_177027 : UInt<3>[3]
+ T_177027[0] := UInt<3>(0)
+ T_177027[1] := UInt<3>(1)
+ T_177027[2] := UInt<3>(2)
+ wire T_177028 : UInt<2>[2]
+ T_177028[0] := UInt<2>(0)
+ T_177028[1] := UInt<2>(1)
+ wire T_177029 : UInt<2>[3]
+ T_177029[0] := UInt<2>(1)
+ T_177029[1] := UInt<2>(2)
+ T_177029[2] := UInt<2>(3)
+ wire T_177030 : UInt<2>[2]
+ T_177030[0] := UInt<2>(2)
+ T_177030[1] := UInt<2>(3)
+ wire T_177031 : UInt<2>[1]
+ T_177031[0] := UInt<2>(3)
+ accessor T_177032 = in[T_176982]
+ out.valid := T_177032.valid
+ wire T_177033 : UInt<3>[3]
+ T_177033[0] := UInt<3>(0)
+ T_177033[1] := UInt<3>(1)
+ T_177033[2] := UInt<3>(2)
+ wire T_177034 : UInt<2>[2]
+ T_177034[0] := UInt<2>(0)
+ T_177034[1] := UInt<2>(1)
+ wire T_177035 : UInt<2>[3]
+ T_177035[0] := UInt<2>(1)
+ T_177035[1] := UInt<2>(2)
+ T_177035[2] := UInt<2>(3)
+ wire T_177036 : UInt<2>[2]
+ T_177036[0] := UInt<2>(2)
+ T_177036[1] := UInt<2>(3)
+ wire T_177037 : UInt<2>[1]
+ T_177037[0] := UInt<2>(3)
+ accessor T_177038 = in[T_176982]
+ out.bits := T_177038.bits
+ chosen := T_176982
+ reg T_177039 : UInt<2>
+ onreset T_177039 := UInt<2>(0)
+ node T_177040 = addw(T_177039, UInt<1>(1))
+
+ node T_177041 = and(out.ready, out.valid)
+ when T_177041 :
+
+
+ wire T_177042 : UInt<3>[1]
+ T_177042[0] := UInt<3>(5)
+ node T_177043 = eq(T_177042[0], out.bits.g_type)
+ node T_177044 = or(UInt<1>(0), T_177043)
+ node T_177045 = eq(T_176976[0], out.bits.g_type)
+ node T_177046 = eq(T_176976[1], out.bits.g_type)
+ node T_177047 = or(UInt<1>(0), T_177045)
+ node T_177048 = or(T_177047, T_177046)
+ wire T_177049 : UInt<1>
+ T_177049 := T_177048
+ when out.bits.is_builtin_type : T_177049 := T_177044
+ node T_177050 = and(UInt<1>(1), T_177049)
+ when T_177050 :
+ T_177039 := T_177040
+
+ node T_177051 = eq(T_176980, UInt<1>(0))
+ when T_177051 :
+ T_176980 := UInt<1>(1)
+ node T_177052 = and(in[0].ready, in[0].valid)
+ node T_177053 = and(in[1].ready, in[1].valid)
+ node T_177054 = and(in[2].ready, in[2].valid)
+ wire T_177055 : UInt<1>[3]
+ T_177055[0] := T_177052
+ T_177055[1] := T_177053
+ T_177055[2] := T_177054
+ wire T_177056 : UInt<2>
+ T_177056 := UInt<2>(2)
+ when T_177055[1] : T_177056 := UInt<1>(1)
+ wire T_177057 : UInt<2>
+ T_177057 := T_177056
+ when T_177055[0] : T_177057 := UInt<1>(0)
+ T_176981 := T_177057
+
+ node T_177058 = eq(T_177040, UInt<1>(0))
+ when T_177058 : T_176980 := UInt<1>(0)
+ wire T_177059 : UInt<2>
+ T_177059 := UInt<2>(2)
+ when in[1].valid : T_177059 := UInt<1>(1)
+ wire T_177060 : UInt<2>
+ T_177060 := T_177059
+ when in[0].valid : T_177060 := UInt<1>(0)
+ node T_177061 = gt(UInt<2>(2), last_grant)
+ node T_177062 = and(in[2].valid, T_177061)
+ wire T_177063 : UInt<2>
+ T_177063 := T_177060
+ when T_177062 : T_177063 := UInt<2>(2)
+ node T_177064 = gt(UInt<1>(1), last_grant)
+ node T_177065 = and(in[1].valid, T_177064)
+ wire choose : UInt<2>
+ choose := T_177063
+ when T_177065 : choose := UInt<1>(1)
+ wire T_177066 : UInt<2>
+ T_177066 := choose
+ when T_176980 : T_177066 := T_176981
+ T_176982 := T_177066
+
+ node T_177067 = and(out.ready, out.valid)
+ when T_177067 : last_grant := T_176982
+ module LockingRRArbiter_104277 :
+ input in : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_block : UInt<26>, client_xact_id : UInt<2>, addr_beat : UInt<2>, data : UInt<128>, is_builtin_type : UInt<1>, a_type : UInt<3>, union : UInt<17>}}[4]
+ output out : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_block : UInt<26>, client_xact_id : UInt<2>, addr_beat : UInt<2>, data : UInt<128>, is_builtin_type : UInt<1>, a_type : UInt<3>, union : UInt<17>}}
+ output chosen : UInt<2>
+
+ wire T_177068 : UInt<3>[3]
+ T_177068[0] := UInt<3>(0)
+ T_177068[1] := UInt<3>(1)
+ T_177068[2] := UInt<3>(2)
+ wire T_177069 : UInt<0>[1]
+ T_177069[0] := UInt<0>(0)
+ wire T_177070 : UInt<2>[2]
+ T_177070[0] := UInt<2>(1)
+ T_177070[1] := UInt<2>(2)
+ wire T_177071 : UInt<2>[2]
+ T_177071[0] := UInt<2>(1)
+ T_177071[1] := UInt<2>(2)
+ wire T_177072 : UInt<2>[1]
+ T_177072[0] := UInt<2>(2)
+ wire T_177073 : UInt<3>[3]
+ T_177073[0] := UInt<3>(0)
+ T_177073[1] := UInt<3>(1)
+ T_177073[2] := UInt<3>(2)
+ wire T_177074 : UInt<0>[1]
+ T_177074[0] := UInt<0>(0)
+ wire T_177075 : UInt<2>[2]
+ T_177075[0] := UInt<2>(1)
+ T_177075[1] := UInt<2>(2)
+ wire T_177076 : UInt<2>[2]
+ T_177076[0] := UInt<2>(1)
+ T_177076[1] := UInt<2>(2)
+ wire T_177077 : UInt<2>[1]
+ T_177077[0] := UInt<2>(2)
+ wire T_177078 : UInt<3>[3]
+ T_177078[0] := UInt<3>(0)
+ T_177078[1] := UInt<3>(1)
+ T_177078[2] := UInt<3>(2)
+ wire T_177079 : UInt<0>[1]
+ T_177079[0] := UInt<0>(0)
+ wire T_177080 : UInt<2>[2]
+ T_177080[0] := UInt<2>(1)
+ T_177080[1] := UInt<2>(2)
+ wire T_177081 : UInt<2>[2]
+ T_177081[0] := UInt<2>(1)
+ T_177081[1] := UInt<2>(2)
+ wire T_177082 : UInt<2>[1]
+ T_177082[0] := UInt<2>(2)
+ wire T_177083 : UInt<3>[3]
+ T_177083[0] := UInt<3>(0)
+ T_177083[1] := UInt<3>(1)
+ T_177083[2] := UInt<3>(2)
+ wire T_177084 : UInt<0>[1]
+ T_177084[0] := UInt<0>(0)
+ wire T_177085 : UInt<2>[2]
+ T_177085[0] := UInt<2>(1)
+ T_177085[1] := UInt<2>(2)
+ wire T_177086 : UInt<2>[2]
+ T_177086[0] := UInt<2>(1)
+ T_177086[1] := UInt<2>(2)
+ wire T_177087 : UInt<2>[1]
+ T_177087[0] := UInt<2>(2)
+ wire T_177088 : UInt<3>[3]
+ T_177088[0] := UInt<3>(0)
+ T_177088[1] := UInt<3>(1)
+ T_177088[2] := UInt<3>(2)
+ wire T_177089 : UInt<0>[1]
+ T_177089[0] := UInt<0>(0)
+ wire T_177090 : UInt<2>[2]
+ T_177090[0] := UInt<2>(1)
+ T_177090[1] := UInt<2>(2)
+ wire T_177091 : UInt<2>[2]
+ T_177091[0] := UInt<2>(1)
+ T_177091[1] := UInt<2>(2)
+ wire T_177092 : UInt<2>[1]
+ T_177092[0] := UInt<2>(2)
+ wire T_177093 : UInt<3>[3]
+ T_177093[0] := UInt<3>(0)
+ T_177093[1] := UInt<3>(1)
+ T_177093[2] := UInt<3>(2)
+ wire T_177094 : UInt<0>[1]
+ T_177094[0] := UInt<0>(0)
+ wire T_177095 : UInt<2>[2]
+ T_177095[0] := UInt<2>(1)
+ T_177095[1] := UInt<2>(2)
+ wire T_177096 : UInt<2>[2]
+ T_177096[0] := UInt<2>(1)
+ T_177096[1] := UInt<2>(2)
+ wire T_177097 : UInt<2>[1]
+ T_177097[0] := UInt<2>(2)
+ reg T_177098 : UInt<1>
+ onreset T_177098 := UInt<1>(0)
+ reg T_177099 : UInt<2>
+ onreset T_177099 := UInt<2>(3)
+ wire T_177100 : UInt<2>
+ reg last_grant : UInt<2>
+ onreset last_grant := UInt<2>(0)
+ node T_177101 = gt(UInt<1>(0), last_grant)
+ node T_177102 = and(in[0].valid, T_177101)
+ node T_177103 = gt(UInt<1>(1), last_grant)
+ node T_177104 = and(in[1].valid, T_177103)
+ node T_177105 = gt(UInt<2>(2), last_grant)
+ node T_177106 = and(in[2].valid, T_177105)
+ node T_177107 = gt(UInt<2>(3), last_grant)
+ node T_177108 = and(in[3].valid, T_177107)
+ node T_177109 = or(UInt<1>(0), T_177102)
+ node T_177110 = eq(T_177109, UInt<1>(0))
+ node T_177111 = or(UInt<1>(0), T_177102)
+ node T_177112 = or(T_177111, T_177104)
+ node T_177113 = eq(T_177112, UInt<1>(0))
+ node T_177114 = or(UInt<1>(0), T_177102)
+ node T_177115 = or(T_177114, T_177104)
+ node T_177116 = or(T_177115, T_177106)
+ node T_177117 = eq(T_177116, UInt<1>(0))
+ node T_177118 = or(UInt<1>(0), T_177102)
+ node T_177119 = or(T_177118, T_177104)
+ node T_177120 = or(T_177119, T_177106)
+ node T_177121 = or(T_177120, T_177108)
+ node T_177122 = eq(T_177121, UInt<1>(0))
+ node T_177123 = or(UInt<1>(0), T_177102)
+ node T_177124 = or(T_177123, T_177104)
+ node T_177125 = or(T_177124, T_177106)
+ node T_177126 = or(T_177125, T_177108)
+ node T_177127 = or(T_177126, in[0].valid)
+ node T_177128 = eq(T_177127, UInt<1>(0))
+ node T_177129 = or(UInt<1>(0), T_177102)
+ node T_177130 = or(T_177129, T_177104)
+ node T_177131 = or(T_177130, T_177106)
+ node T_177132 = or(T_177131, T_177108)
+ node T_177133 = or(T_177132, in[0].valid)
+ node T_177134 = or(T_177133, in[1].valid)
+ node T_177135 = eq(T_177134, UInt<1>(0))
+ node T_177136 = or(UInt<1>(0), T_177102)
+ node T_177137 = or(T_177136, T_177104)
+ node T_177138 = or(T_177137, T_177106)
+ node T_177139 = or(T_177138, T_177108)
+ node T_177140 = or(T_177139, in[0].valid)
+ node T_177141 = or(T_177140, in[1].valid)
+ node T_177142 = or(T_177141, in[2].valid)
+ node T_177143 = eq(T_177142, UInt<1>(0))
+ node T_177144 = gt(UInt<1>(0), last_grant)
+ node T_177145 = and(UInt<1>(1), T_177144)
+ node T_177146 = or(T_177145, T_177122)
+ node T_177147 = gt(UInt<1>(1), last_grant)
+ node T_177148 = and(T_177110, T_177147)
+ node T_177149 = or(T_177148, T_177128)
+ node T_177150 = gt(UInt<2>(2), last_grant)
+ node T_177151 = and(T_177113, T_177150)
+ node T_177152 = or(T_177151, T_177135)
+ node T_177153 = gt(UInt<2>(3), last_grant)
+ node T_177154 = and(T_177117, T_177153)
+ node T_177155 = or(T_177154, T_177143)
+ node T_177156 = eq(T_177099, UInt<1>(0))
+ wire T_177157 : UInt<1>
+ T_177157 := T_177146
+ when T_177098 : T_177157 := T_177156
+ node T_177158 = and(T_177157, out.ready)
+ in[0].ready := T_177158
+ node T_177159 = eq(T_177099, UInt<1>(1))
+ wire T_177160 : UInt<1>
+ T_177160 := T_177149
+ when T_177098 : T_177160 := T_177159
+ node T_177161 = and(T_177160, out.ready)
+ in[1].ready := T_177161
+ node T_177162 = eq(T_177099, UInt<2>(2))
+ wire T_177163 : UInt<1>
+ T_177163 := T_177152
+ when T_177098 : T_177163 := T_177162
+ node T_177164 = and(T_177163, out.ready)
+ in[2].ready := T_177164
+ node T_177165 = eq(T_177099, UInt<2>(3))
+ wire T_177166 : UInt<1>
+ T_177166 := T_177155
+ when T_177098 : T_177166 := T_177165
+ node T_177167 = and(T_177166, out.ready)
+ in[3].ready := T_177167
+ wire T_177168 : UInt<3>[3]
+ T_177168[0] := UInt<3>(0)
+ T_177168[1] := UInt<3>(1)
+ T_177168[2] := UInt<3>(2)
+ wire T_177169 : UInt<0>[1]
+ T_177169[0] := UInt<0>(0)
+ wire T_177170 : UInt<2>[2]
+ T_177170[0] := UInt<2>(1)
+ T_177170[1] := UInt<2>(2)
+ wire T_177171 : UInt<2>[2]
+ T_177171[0] := UInt<2>(1)
+ T_177171[1] := UInt<2>(2)
+ wire T_177172 : UInt<2>[1]
+ T_177172[0] := UInt<2>(2)
+ accessor T_177173 = in[T_177100]
+ out.valid := T_177173.valid
+ wire T_177174 : UInt<3>[3]
+ T_177174[0] := UInt<3>(0)
+ T_177174[1] := UInt<3>(1)
+ T_177174[2] := UInt<3>(2)
+ wire T_177175 : UInt<0>[1]
+ T_177175[0] := UInt<0>(0)
+ wire T_177176 : UInt<2>[2]
+ T_177176[0] := UInt<2>(1)
+ T_177176[1] := UInt<2>(2)
+ wire T_177177 : UInt<2>[2]
+ T_177177[0] := UInt<2>(1)
+ T_177177[1] := UInt<2>(2)
+ wire T_177178 : UInt<2>[1]
+ T_177178[0] := UInt<2>(2)
+ accessor T_177179 = in[T_177100]
+ out.bits := T_177179.bits
+ chosen := T_177100
+ reg T_177180 : UInt<2>
+ onreset T_177180 := UInt<2>(0)
+ node T_177181 = addw(T_177180, UInt<1>(1))
+
+ node T_177182 = and(out.ready, out.valid)
+ when T_177182 :
+
+
+ node T_177183 = and(UInt<1>(1), out.bits.is_builtin_type)
+ wire T_177184 : UInt<3>[1]
+ T_177184[0] := UInt<3>(3)
+ node T_177185 = eq(T_177184[0], out.bits.a_type)
+ node T_177186 = or(UInt<1>(0), T_177185)
+ node T_177187 = and(T_177183, T_177186)
+ when T_177187 :
+ T_177180 := T_177181
+
+ node T_177188 = eq(T_177098, UInt<1>(0))
+ when T_177188 :
+ T_177098 := UInt<1>(1)
+ node T_177189 = and(in[0].ready, in[0].valid)
+ node T_177190 = and(in[1].ready, in[1].valid)
+ node T_177191 = and(in[2].ready, in[2].valid)
+ node T_177192 = and(in[3].ready, in[3].valid)
+ wire T_177193 : UInt<1>[4]
+ T_177193[0] := T_177189
+ T_177193[1] := T_177190
+ T_177193[2] := T_177191
+ T_177193[3] := T_177192
+ wire T_177194 : UInt<2>
+ T_177194 := UInt<2>(3)
+ when T_177193[2] : T_177194 := UInt<2>(2)
+ wire T_177195 : UInt<2>
+ T_177195 := T_177194
+ when T_177193[1] : T_177195 := UInt<1>(1)
+ wire T_177196 : UInt<2>
+ T_177196 := T_177195
+ when T_177193[0] : T_177196 := UInt<1>(0)
+ T_177099 := T_177196
+
+ node T_177197 = eq(T_177181, UInt<1>(0))
+ when T_177197 : T_177098 := UInt<1>(0)
+ wire T_177198 : UInt<2>
+ T_177198 := UInt<2>(3)
+ when in[2].valid : T_177198 := UInt<2>(2)
+ wire T_177199 : UInt<2>
+ T_177199 := T_177198
+ when in[1].valid : T_177199 := UInt<1>(1)
+ wire T_177200 : UInt<2>
+ T_177200 := T_177199
+ when in[0].valid : T_177200 := UInt<1>(0)
+ node T_177201 = gt(UInt<2>(3), last_grant)
+ node T_177202 = and(in[3].valid, T_177201)
+ wire T_177203 : UInt<2>
+ T_177203 := T_177200
+ when T_177202 : T_177203 := UInt<2>(3)
+ node T_177204 = gt(UInt<2>(2), last_grant)
+ node T_177205 = and(in[2].valid, T_177204)
+ wire T_177206 : UInt<2>
+ T_177206 := T_177203
+ when T_177205 : T_177206 := UInt<2>(2)
+ node T_177207 = gt(UInt<1>(1), last_grant)
+ node T_177208 = and(in[1].valid, T_177207)
+ wire choose : UInt<2>
+ choose := T_177206
+ when T_177208 : choose := UInt<1>(1)
+ wire T_177209 : UInt<2>
+ T_177209 := choose
+ when T_177098 : T_177209 := T_177099
+ T_177100 := T_177209
+
+ node T_177210 = and(out.ready, out.valid)
+ when T_177210 : last_grant := T_177100
+ module LockingRRArbiter_104925 :
+ input in : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_block : UInt<26>, client_xact_id : UInt<2>, addr_beat : UInt<2>, data : UInt<128>, r_type : UInt<3>, voluntary : UInt<1>}}[4]
+ output out : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_block : UInt<26>, client_xact_id : UInt<2>, addr_beat : UInt<2>, data : UInt<128>, r_type : UInt<3>, voluntary : UInt<1>}}
+ output chosen : UInt<2>
+
+ wire T_177211 : UInt<3>[3]
+ T_177211[0] := UInt<3>(0)
+ T_177211[1] := UInt<3>(1)
+ T_177211[2] := UInt<3>(2)
+ wire T_177212 : UInt<0>[1]
+ T_177212[0] := UInt<0>(0)
+ wire T_177213 : UInt<2>[2]
+ T_177213[0] := UInt<2>(1)
+ T_177213[1] := UInt<2>(2)
+ wire T_177214 : UInt<2>[2]
+ T_177214[0] := UInt<2>(1)
+ T_177214[1] := UInt<2>(2)
+ wire T_177215 : UInt<2>[1]
+ T_177215[0] := UInt<2>(2)
+ wire T_177216 : UInt<3>[3]
+ T_177216[0] := UInt<3>(0)
+ T_177216[1] := UInt<3>(1)
+ T_177216[2] := UInt<3>(2)
+ wire T_177217 : UInt<0>[1]
+ T_177217[0] := UInt<0>(0)
+ wire T_177218 : UInt<2>[2]
+ T_177218[0] := UInt<2>(1)
+ T_177218[1] := UInt<2>(2)
+ wire T_177219 : UInt<2>[2]
+ T_177219[0] := UInt<2>(1)
+ T_177219[1] := UInt<2>(2)
+ wire T_177220 : UInt<2>[1]
+ T_177220[0] := UInt<2>(2)
+ wire T_177221 : UInt<3>[3]
+ T_177221[0] := UInt<3>(0)
+ T_177221[1] := UInt<3>(1)
+ T_177221[2] := UInt<3>(2)
+ wire T_177222 : UInt<0>[1]
+ T_177222[0] := UInt<0>(0)
+ wire T_177223 : UInt<2>[2]
+ T_177223[0] := UInt<2>(1)
+ T_177223[1] := UInt<2>(2)
+ wire T_177224 : UInt<2>[2]
+ T_177224[0] := UInt<2>(1)
+ T_177224[1] := UInt<2>(2)
+ wire T_177225 : UInt<2>[1]
+ T_177225[0] := UInt<2>(2)
+ wire T_177226 : UInt<3>[3]
+ T_177226[0] := UInt<3>(0)
+ T_177226[1] := UInt<3>(1)
+ T_177226[2] := UInt<3>(2)
+ wire T_177227 : UInt<0>[1]
+ T_177227[0] := UInt<0>(0)
+ wire T_177228 : UInt<2>[2]
+ T_177228[0] := UInt<2>(1)
+ T_177228[1] := UInt<2>(2)
+ wire T_177229 : UInt<2>[2]
+ T_177229[0] := UInt<2>(1)
+ T_177229[1] := UInt<2>(2)
+ wire T_177230 : UInt<2>[1]
+ T_177230[0] := UInt<2>(2)
+ wire T_177231 : UInt<3>[3]
+ T_177231[0] := UInt<3>(0)
+ T_177231[1] := UInt<3>(1)
+ T_177231[2] := UInt<3>(2)
+ wire T_177232 : UInt<0>[1]
+ T_177232[0] := UInt<0>(0)
+ wire T_177233 : UInt<2>[2]
+ T_177233[0] := UInt<2>(1)
+ T_177233[1] := UInt<2>(2)
+ wire T_177234 : UInt<2>[2]
+ T_177234[0] := UInt<2>(1)
+ T_177234[1] := UInt<2>(2)
+ wire T_177235 : UInt<2>[1]
+ T_177235[0] := UInt<2>(2)
+ wire T_177236 : UInt<3>[3]
+ T_177236[0] := UInt<3>(0)
+ T_177236[1] := UInt<3>(1)
+ T_177236[2] := UInt<3>(2)
+ wire T_177237 : UInt<0>[1]
+ T_177237[0] := UInt<0>(0)
+ wire T_177238 : UInt<2>[2]
+ T_177238[0] := UInt<2>(1)
+ T_177238[1] := UInt<2>(2)
+ wire T_177239 : UInt<2>[2]
+ T_177239[0] := UInt<2>(1)
+ T_177239[1] := UInt<2>(2)
+ wire T_177240 : UInt<2>[1]
+ T_177240[0] := UInt<2>(2)
+ reg T_177241 : UInt<1>
+ onreset T_177241 := UInt<1>(0)
+ reg T_177242 : UInt<2>
+ onreset T_177242 := UInt<2>(3)
+ wire T_177243 : UInt<2>
+ reg last_grant : UInt<2>
+ onreset last_grant := UInt<2>(0)
+ node T_177244 = gt(UInt<1>(0), last_grant)
+ node T_177245 = and(in[0].valid, T_177244)
+ node T_177246 = gt(UInt<1>(1), last_grant)
+ node T_177247 = and(in[1].valid, T_177246)
+ node T_177248 = gt(UInt<2>(2), last_grant)
+ node T_177249 = and(in[2].valid, T_177248)
+ node T_177250 = gt(UInt<2>(3), last_grant)
+ node T_177251 = and(in[3].valid, T_177250)
+ node T_177252 = or(UInt<1>(0), T_177245)
+ node T_177253 = eq(T_177252, UInt<1>(0))
+ node T_177254 = or(UInt<1>(0), T_177245)
+ node T_177255 = or(T_177254, T_177247)
+ node T_177256 = eq(T_177255, UInt<1>(0))
+ node T_177257 = or(UInt<1>(0), T_177245)
+ node T_177258 = or(T_177257, T_177247)
+ node T_177259 = or(T_177258, T_177249)
+ node T_177260 = eq(T_177259, UInt<1>(0))
+ node T_177261 = or(UInt<1>(0), T_177245)
+ node T_177262 = or(T_177261, T_177247)
+ node T_177263 = or(T_177262, T_177249)
+ node T_177264 = or(T_177263, T_177251)
+ node T_177265 = eq(T_177264, UInt<1>(0))
+ node T_177266 = or(UInt<1>(0), T_177245)
+ node T_177267 = or(T_177266, T_177247)
+ node T_177268 = or(T_177267, T_177249)
+ node T_177269 = or(T_177268, T_177251)
+ node T_177270 = or(T_177269, in[0].valid)
+ node T_177271 = eq(T_177270, UInt<1>(0))
+ node T_177272 = or(UInt<1>(0), T_177245)
+ node T_177273 = or(T_177272, T_177247)
+ node T_177274 = or(T_177273, T_177249)
+ node T_177275 = or(T_177274, T_177251)
+ node T_177276 = or(T_177275, in[0].valid)
+ node T_177277 = or(T_177276, in[1].valid)
+ node T_177278 = eq(T_177277, UInt<1>(0))
+ node T_177279 = or(UInt<1>(0), T_177245)
+ node T_177280 = or(T_177279, T_177247)
+ node T_177281 = or(T_177280, T_177249)
+ node T_177282 = or(T_177281, T_177251)
+ node T_177283 = or(T_177282, in[0].valid)
+ node T_177284 = or(T_177283, in[1].valid)
+ node T_177285 = or(T_177284, in[2].valid)
+ node T_177286 = eq(T_177285, UInt<1>(0))
+ node T_177287 = gt(UInt<1>(0), last_grant)
+ node T_177288 = and(UInt<1>(1), T_177287)
+ node T_177289 = or(T_177288, T_177265)
+ node T_177290 = gt(UInt<1>(1), last_grant)
+ node T_177291 = and(T_177253, T_177290)
+ node T_177292 = or(T_177291, T_177271)
+ node T_177293 = gt(UInt<2>(2), last_grant)
+ node T_177294 = and(T_177256, T_177293)
+ node T_177295 = or(T_177294, T_177278)
+ node T_177296 = gt(UInt<2>(3), last_grant)
+ node T_177297 = and(T_177260, T_177296)
+ node T_177298 = or(T_177297, T_177286)
+ node T_177299 = eq(T_177242, UInt<1>(0))
+ wire T_177300 : UInt<1>
+ T_177300 := T_177289
+ when T_177241 : T_177300 := T_177299
+ node T_177301 = and(T_177300, out.ready)
+ in[0].ready := T_177301
+ node T_177302 = eq(T_177242, UInt<1>(1))
+ wire T_177303 : UInt<1>
+ T_177303 := T_177292
+ when T_177241 : T_177303 := T_177302
+ node T_177304 = and(T_177303, out.ready)
+ in[1].ready := T_177304
+ node T_177305 = eq(T_177242, UInt<2>(2))
+ wire T_177306 : UInt<1>
+ T_177306 := T_177295
+ when T_177241 : T_177306 := T_177305
+ node T_177307 = and(T_177306, out.ready)
+ in[2].ready := T_177307
+ node T_177308 = eq(T_177242, UInt<2>(3))
+ wire T_177309 : UInt<1>
+ T_177309 := T_177298
+ when T_177241 : T_177309 := T_177308
+ node T_177310 = and(T_177309, out.ready)
+ in[3].ready := T_177310
+ wire T_177311 : UInt<3>[3]
+ T_177311[0] := UInt<3>(0)
+ T_177311[1] := UInt<3>(1)
+ T_177311[2] := UInt<3>(2)
+ wire T_177312 : UInt<0>[1]
+ T_177312[0] := UInt<0>(0)
+ wire T_177313 : UInt<2>[2]
+ T_177313[0] := UInt<2>(1)
+ T_177313[1] := UInt<2>(2)
+ wire T_177314 : UInt<2>[2]
+ T_177314[0] := UInt<2>(1)
+ T_177314[1] := UInt<2>(2)
+ wire T_177315 : UInt<2>[1]
+ T_177315[0] := UInt<2>(2)
+ accessor T_177316 = in[T_177243]
+ out.valid := T_177316.valid
+ wire T_177317 : UInt<3>[3]
+ T_177317[0] := UInt<3>(0)
+ T_177317[1] := UInt<3>(1)
+ T_177317[2] := UInt<3>(2)
+ wire T_177318 : UInt<0>[1]
+ T_177318[0] := UInt<0>(0)
+ wire T_177319 : UInt<2>[2]
+ T_177319[0] := UInt<2>(1)
+ T_177319[1] := UInt<2>(2)
+ wire T_177320 : UInt<2>[2]
+ T_177320[0] := UInt<2>(1)
+ T_177320[1] := UInt<2>(2)
+ wire T_177321 : UInt<2>[1]
+ T_177321[0] := UInt<2>(2)
+ accessor T_177322 = in[T_177243]
+ out.bits := T_177322.bits
+ chosen := T_177243
+ reg T_177323 : UInt<2>
+ onreset T_177323 := UInt<2>(0)
+ node T_177324 = addw(T_177323, UInt<1>(1))
+
+ node T_177325 = and(out.ready, out.valid)
+ when T_177325 :
+
+
+ node T_177326 = eq(T_177236[0], out.bits.r_type)
+ node T_177327 = eq(T_177236[1], out.bits.r_type)
+ node T_177328 = eq(T_177236[2], out.bits.r_type)
+ node T_177329 = or(UInt<1>(0), T_177326)
+ node T_177330 = or(T_177329, T_177327)
+ node T_177331 = or(T_177330, T_177328)
+ node T_177332 = and(UInt<1>(1), T_177331)
+ when T_177332 :
+ T_177323 := T_177324
+
+ node T_177333 = eq(T_177241, UInt<1>(0))
+ when T_177333 :
+ T_177241 := UInt<1>(1)
+ node T_177334 = and(in[0].ready, in[0].valid)
+ node T_177335 = and(in[1].ready, in[1].valid)
+ node T_177336 = and(in[2].ready, in[2].valid)
+ node T_177337 = and(in[3].ready, in[3].valid)
+ wire T_177338 : UInt<1>[4]
+ T_177338[0] := T_177334
+ T_177338[1] := T_177335
+ T_177338[2] := T_177336
+ T_177338[3] := T_177337
+ wire T_177339 : UInt<2>
+ T_177339 := UInt<2>(3)
+ when T_177338[2] : T_177339 := UInt<2>(2)
+ wire T_177340 : UInt<2>
+ T_177340 := T_177339
+ when T_177338[1] : T_177340 := UInt<1>(1)
+ wire T_177341 : UInt<2>
+ T_177341 := T_177340
+ when T_177338[0] : T_177341 := UInt<1>(0)
+ T_177242 := T_177341
+
+ node T_177342 = eq(T_177324, UInt<1>(0))
+ when T_177342 : T_177241 := UInt<1>(0)
+ wire T_177343 : UInt<2>
+ T_177343 := UInt<2>(3)
+ when in[2].valid : T_177343 := UInt<2>(2)
+ wire T_177344 : UInt<2>
+ T_177344 := T_177343
+ when in[1].valid : T_177344 := UInt<1>(1)
+ wire T_177345 : UInt<2>
+ T_177345 := T_177344
+ when in[0].valid : T_177345 := UInt<1>(0)
+ node T_177346 = gt(UInt<2>(3), last_grant)
+ node T_177347 = and(in[3].valid, T_177346)
+ wire T_177348 : UInt<2>
+ T_177348 := T_177345
+ when T_177347 : T_177348 := UInt<2>(3)
+ node T_177349 = gt(UInt<2>(2), last_grant)
+ node T_177350 = and(in[2].valid, T_177349)
+ wire T_177351 : UInt<2>
+ T_177351 := T_177348
+ when T_177350 : T_177351 := UInt<2>(2)
+ node T_177352 = gt(UInt<1>(1), last_grant)
+ node T_177353 = and(in[1].valid, T_177352)
+ wire choose : UInt<2>
+ choose := T_177351
+ when T_177353 : choose := UInt<1>(1)
+ wire T_177354 : UInt<2>
+ T_177354 := choose
+ when T_177241 : T_177354 := T_177242
+ T_177243 := T_177354
+
+ node T_177355 = and(out.ready, out.valid)
+ when T_177355 : last_grant := T_177243
+ module ClientTileLinkIOArbiter :
+ input in : {acquire : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_block : UInt<26>, client_xact_id : UInt<2>, addr_beat : UInt<2>, data : UInt<128>, is_builtin_type : UInt<1>, a_type : UInt<3>, union : UInt<17>}}, flip grant : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_beat : UInt<2>, data : UInt<128>, client_xact_id : UInt<2>, manager_xact_id : UInt<1>, is_builtin_type : UInt<1>, g_type : UInt<4>}}, flip probe : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_block : UInt<26>, p_type : UInt<2>}}, release : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_block : UInt<26>, client_xact_id : UInt<2>, addr_beat : UInt<2>, data : UInt<128>, r_type : UInt<3>, voluntary : UInt<1>}}}[4]
+ output out : {acquire : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_block : UInt<26>, client_xact_id : UInt<2>, addr_beat : UInt<2>, data : UInt<128>, is_builtin_type : UInt<1>, a_type : UInt<3>, union : UInt<17>}}, flip grant : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_beat : UInt<2>, data : UInt<128>, client_xact_id : UInt<2>, manager_xact_id : UInt<1>, is_builtin_type : UInt<1>, g_type : UInt<4>}}, flip probe : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_block : UInt<26>, p_type : UInt<2>}}, release : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_block : UInt<26>, client_xact_id : UInt<2>, addr_beat : UInt<2>, data : UInt<128>, r_type : UInt<3>, voluntary : UInt<1>}}}
+
+ wire T_177356 : UInt<3>[3]
+ T_177356[0] := UInt<3>(0)
+ T_177356[1] := UInt<3>(1)
+ T_177356[2] := UInt<3>(2)
+ wire T_177357 : UInt<0>[1]
+ T_177357[0] := UInt<0>(0)
+ wire T_177358 : UInt<2>[2]
+ T_177358[0] := UInt<2>(1)
+ T_177358[1] := UInt<2>(2)
+ wire T_177359 : UInt<2>[2]
+ T_177359[0] := UInt<2>(1)
+ T_177359[1] := UInt<2>(2)
+ wire T_177360 : UInt<2>[1]
+ T_177360[0] := UInt<2>(2)
+ wire T_177361 : UInt<3>[3]
+ T_177361[0] := UInt<3>(0)
+ T_177361[1] := UInt<3>(1)
+ T_177361[2] := UInt<3>(2)
+ wire T_177362 : UInt<0>[1]
+ T_177362[0] := UInt<0>(0)
+ wire T_177363 : UInt<2>[2]
+ T_177363[0] := UInt<2>(1)
+ T_177363[1] := UInt<2>(2)
+ wire T_177364 : UInt<2>[2]
+ T_177364[0] := UInt<2>(1)
+ T_177364[1] := UInt<2>(2)
+ wire T_177365 : UInt<2>[1]
+ T_177365[0] := UInt<2>(2)
+ wire T_177366 : UInt<3>[3]
+ T_177366[0] := UInt<3>(0)
+ T_177366[1] := UInt<3>(1)
+ T_177366[2] := UInt<3>(2)
+ wire T_177367 : UInt<0>[1]
+ T_177367[0] := UInt<0>(0)
+ wire T_177368 : UInt<2>[2]
+ T_177368[0] := UInt<2>(1)
+ T_177368[1] := UInt<2>(2)
+ wire T_177369 : UInt<2>[2]
+ T_177369[0] := UInt<2>(1)
+ T_177369[1] := UInt<2>(2)
+ wire T_177370 : UInt<2>[1]
+ T_177370[0] := UInt<2>(2)
+ wire T_177371 : UInt<3>[3]
+ T_177371[0] := UInt<3>(0)
+ T_177371[1] := UInt<3>(1)
+ T_177371[2] := UInt<3>(2)
+ wire T_177372 : UInt<0>[1]
+ T_177372[0] := UInt<0>(0)
+ wire T_177373 : UInt<2>[2]
+ T_177373[0] := UInt<2>(1)
+ T_177373[1] := UInt<2>(2)
+ wire T_177374 : UInt<2>[2]
+ T_177374[0] := UInt<2>(1)
+ T_177374[1] := UInt<2>(2)
+ wire T_177375 : UInt<2>[1]
+ T_177375[0] := UInt<2>(2)
+ wire T_177376 : UInt<3>[3]
+ T_177376[0] := UInt<3>(0)
+ T_177376[1] := UInt<3>(1)
+ T_177376[2] := UInt<3>(2)
+ wire T_177377 : UInt<0>[1]
+ T_177377[0] := UInt<0>(0)
+ wire T_177378 : UInt<2>[2]
+ T_177378[0] := UInt<2>(1)
+ T_177378[1] := UInt<2>(2)
+ wire T_177379 : UInt<2>[2]
+ T_177379[0] := UInt<2>(1)
+ T_177379[1] := UInt<2>(2)
+ wire T_177380 : UInt<2>[1]
+ T_177380[0] := UInt<2>(2)
+ wire T_177381 : UInt<3>[3]
+ T_177381[0] := UInt<3>(0)
+ T_177381[1] := UInt<3>(1)
+ T_177381[2] := UInt<3>(2)
+ wire T_177382 : UInt<0>[1]
+ T_177382[0] := UInt<0>(0)
+ wire T_177383 : UInt<2>[2]
+ T_177383[0] := UInt<2>(1)
+ T_177383[1] := UInt<2>(2)
+ wire T_177384 : UInt<2>[2]
+ T_177384[0] := UInt<2>(1)
+ T_177384[1] := UInt<2>(2)
+ wire T_177385 : UInt<2>[1]
+ T_177385[0] := UInt<2>(2)
+ wire T_177386 : UInt<3>[3]
+ T_177386[0] := UInt<3>(0)
+ T_177386[1] := UInt<3>(1)
+ T_177386[2] := UInt<3>(2)
+ wire T_177387 : UInt<0>[1]
+ T_177387[0] := UInt<0>(0)
+ wire T_177388 : UInt<2>[2]
+ T_177388[0] := UInt<2>(1)
+ T_177388[1] := UInt<2>(2)
+ wire T_177389 : UInt<2>[2]
+ T_177389[0] := UInt<2>(1)
+ T_177389[1] := UInt<2>(2)
+ wire T_177390 : UInt<2>[1]
+ T_177390[0] := UInt<2>(2)
+ wire T_177391 : UInt<3>[3]
+ T_177391[0] := UInt<3>(0)
+ T_177391[1] := UInt<3>(1)
+ T_177391[2] := UInt<3>(2)
+ wire T_177392 : UInt<0>[1]
+ T_177392[0] := UInt<0>(0)
+ wire T_177393 : UInt<2>[2]
+ T_177393[0] := UInt<2>(1)
+ T_177393[1] := UInt<2>(2)
+ wire T_177394 : UInt<2>[2]
+ T_177394[0] := UInt<2>(1)
+ T_177394[1] := UInt<2>(2)
+ wire T_177395 : UInt<2>[1]
+ T_177395[0] := UInt<2>(2)
+ wire T_177396 : UInt<3>[3]
+ T_177396[0] := UInt<3>(0)
+ T_177396[1] := UInt<3>(1)
+ T_177396[2] := UInt<3>(2)
+ wire T_177397 : UInt<0>[1]
+ T_177397[0] := UInt<0>(0)
+ wire T_177398 : UInt<2>[2]
+ T_177398[0] := UInt<2>(1)
+ T_177398[1] := UInt<2>(2)
+ wire T_177399 : UInt<2>[2]
+ T_177399[0] := UInt<2>(1)
+ T_177399[1] := UInt<2>(2)
+ wire T_177400 : UInt<2>[1]
+ T_177400[0] := UInt<2>(2)
+ wire T_177401 : UInt<3>[3]
+ T_177401[0] := UInt<3>(0)
+ T_177401[1] := UInt<3>(1)
+ T_177401[2] := UInt<3>(2)
+ wire T_177402 : UInt<0>[1]
+ T_177402[0] := UInt<0>(0)
+ wire T_177403 : UInt<2>[2]
+ T_177403[0] := UInt<2>(1)
+ T_177403[1] := UInt<2>(2)
+ wire T_177404 : UInt<2>[2]
+ T_177404[0] := UInt<2>(1)
+ T_177404[1] := UInt<2>(2)
+ wire T_177405 : UInt<2>[1]
+ T_177405[0] := UInt<2>(2)
+ wire T_177406 : UInt<3>[3]
+ T_177406[0] := UInt<3>(0)
+ T_177406[1] := UInt<3>(1)
+ T_177406[2] := UInt<3>(2)
+ wire T_177407 : UInt<0>[1]
+ T_177407[0] := UInt<0>(0)
+ wire T_177408 : UInt<2>[2]
+ T_177408[0] := UInt<2>(1)
+ T_177408[1] := UInt<2>(2)
+ wire T_177409 : UInt<2>[2]
+ T_177409[0] := UInt<2>(1)
+ T_177409[1] := UInt<2>(2)
+ wire T_177410 : UInt<2>[1]
+ T_177410[0] := UInt<2>(2)
+ wire T_177411 : UInt<3>[3]
+ T_177411[0] := UInt<3>(0)
+ T_177411[1] := UInt<3>(1)
+ T_177411[2] := UInt<3>(2)
+ wire T_177412 : UInt<0>[1]
+ T_177412[0] := UInt<0>(0)
+ wire T_177413 : UInt<2>[2]
+ T_177413[0] := UInt<2>(1)
+ T_177413[1] := UInt<2>(2)
+ wire T_177414 : UInt<2>[2]
+ T_177414[0] := UInt<2>(1)
+ T_177414[1] := UInt<2>(2)
+ wire T_177415 : UInt<2>[1]
+ T_177415[0] := UInt<2>(2)
+ wire T_177416 : UInt<3>[3]
+ T_177416[0] := UInt<3>(0)
+ T_177416[1] := UInt<3>(1)
+ T_177416[2] := UInt<3>(2)
+ wire T_177417 : UInt<0>[1]
+ T_177417[0] := UInt<0>(0)
+ wire T_177418 : UInt<2>[2]
+ T_177418[0] := UInt<2>(1)
+ T_177418[1] := UInt<2>(2)
+ wire T_177419 : UInt<2>[2]
+ T_177419[0] := UInt<2>(1)
+ T_177419[1] := UInt<2>(2)
+ wire T_177420 : UInt<2>[1]
+ T_177420[0] := UInt<2>(2)
+ wire T_177421 : UInt<3>[3]
+ T_177421[0] := UInt<3>(0)
+ T_177421[1] := UInt<3>(1)
+ T_177421[2] := UInt<3>(2)
+ wire T_177422 : UInt<0>[1]
+ T_177422[0] := UInt<0>(0)
+ wire T_177423 : UInt<2>[2]
+ T_177423[0] := UInt<2>(1)
+ T_177423[1] := UInt<2>(2)
+ wire T_177424 : UInt<2>[2]
+ T_177424[0] := UInt<2>(1)
+ T_177424[1] := UInt<2>(2)
+ wire T_177425 : UInt<2>[1]
+ T_177425[0] := UInt<2>(2)
+ wire T_177426 : UInt<3>[3]
+ T_177426[0] := UInt<3>(0)
+ T_177426[1] := UInt<3>(1)
+ T_177426[2] := UInt<3>(2)
+ wire T_177427 : UInt<0>[1]
+ T_177427[0] := UInt<0>(0)
+ wire T_177428 : UInt<2>[2]
+ T_177428[0] := UInt<2>(1)
+ T_177428[1] := UInt<2>(2)
+ wire T_177429 : UInt<2>[2]
+ T_177429[0] := UInt<2>(1)
+ T_177429[1] := UInt<2>(2)
+ wire T_177430 : UInt<2>[1]
+ T_177430[0] := UInt<2>(2)
+ wire T_177431 : UInt<3>[3]
+ T_177431[0] := UInt<3>(0)
+ T_177431[1] := UInt<3>(1)
+ T_177431[2] := UInt<3>(2)
+ wire T_177432 : UInt<0>[1]
+ T_177432[0] := UInt<0>(0)
+ wire T_177433 : UInt<2>[2]
+ T_177433[0] := UInt<2>(1)
+ T_177433[1] := UInt<2>(2)
+ wire T_177434 : UInt<2>[2]
+ T_177434[0] := UInt<2>(1)
+ T_177434[1] := UInt<2>(2)
+ wire T_177435 : UInt<2>[1]
+ T_177435[0] := UInt<2>(2)
+ wire T_177436 : UInt<3>[3]
+ T_177436[0] := UInt<3>(0)
+ T_177436[1] := UInt<3>(1)
+ T_177436[2] := UInt<3>(2)
+ wire T_177437 : UInt<0>[1]
+ T_177437[0] := UInt<0>(0)
+ wire T_177438 : UInt<2>[2]
+ T_177438[0] := UInt<2>(1)
+ T_177438[1] := UInt<2>(2)
+ wire T_177439 : UInt<2>[2]
+ T_177439[0] := UInt<2>(1)
+ T_177439[1] := UInt<2>(2)
+ wire T_177440 : UInt<2>[1]
+ T_177440[0] := UInt<2>(2)
+ wire T_177441 : UInt<3>[3]
+ T_177441[0] := UInt<3>(0)
+ T_177441[1] := UInt<3>(1)
+ T_177441[2] := UInt<3>(2)
+ wire T_177442 : UInt<0>[1]
+ T_177442[0] := UInt<0>(0)
+ wire T_177443 : UInt<2>[2]
+ T_177443[0] := UInt<2>(1)
+ T_177443[1] := UInt<2>(2)
+ wire T_177444 : UInt<2>[2]
+ T_177444[0] := UInt<2>(1)
+ T_177444[1] := UInt<2>(2)
+ wire T_177445 : UInt<2>[1]
+ T_177445[0] := UInt<2>(2)
+ wire T_177446 : UInt<3>[3]
+ T_177446[0] := UInt<3>(0)
+ T_177446[1] := UInt<3>(1)
+ T_177446[2] := UInt<3>(2)
+ wire T_177447 : UInt<0>[1]
+ T_177447[0] := UInt<0>(0)
+ wire T_177448 : UInt<2>[2]
+ T_177448[0] := UInt<2>(1)
+ T_177448[1] := UInt<2>(2)
+ wire T_177449 : UInt<2>[2]
+ T_177449[0] := UInt<2>(1)
+ T_177449[1] := UInt<2>(2)
+ wire T_177450 : UInt<2>[1]
+ T_177450[0] := UInt<2>(2)
+ wire T_177451 : UInt<3>[3]
+ T_177451[0] := UInt<3>(0)
+ T_177451[1] := UInt<3>(1)
+ T_177451[2] := UInt<3>(2)
+ wire T_177452 : UInt<0>[1]
+ T_177452[0] := UInt<0>(0)
+ wire T_177453 : UInt<2>[2]
+ T_177453[0] := UInt<2>(1)
+ T_177453[1] := UInt<2>(2)
+ wire T_177454 : UInt<2>[2]
+ T_177454[0] := UInt<2>(1)
+ T_177454[1] := UInt<2>(2)
+ wire T_177455 : UInt<2>[1]
+ T_177455[0] := UInt<2>(2)
+ wire T_177456 : UInt<3>[3]
+ T_177456[0] := UInt<3>(0)
+ T_177456[1] := UInt<3>(1)
+ T_177456[2] := UInt<3>(2)
+ wire T_177457 : UInt<0>[1]
+ T_177457[0] := UInt<0>(0)
+ wire T_177458 : UInt<2>[2]
+ T_177458[0] := UInt<2>(1)
+ T_177458[1] := UInt<2>(2)
+ wire T_177459 : UInt<2>[2]
+ T_177459[0] := UInt<2>(1)
+ T_177459[1] := UInt<2>(2)
+ wire T_177460 : UInt<2>[1]
+ T_177460[0] := UInt<2>(2)
+ wire T_177461 : UInt<3>[3]
+ T_177461[0] := UInt<3>(0)
+ T_177461[1] := UInt<3>(1)
+ T_177461[2] := UInt<3>(2)
+ wire T_177462 : UInt<0>[1]
+ T_177462[0] := UInt<0>(0)
+ wire T_177463 : UInt<2>[2]
+ T_177463[0] := UInt<2>(1)
+ T_177463[1] := UInt<2>(2)
+ wire T_177464 : UInt<2>[2]
+ T_177464[0] := UInt<2>(1)
+ T_177464[1] := UInt<2>(2)
+ wire T_177465 : UInt<2>[1]
+ T_177465[0] := UInt<2>(2)
+ wire T_177466 : UInt<3>[3]
+ T_177466[0] := UInt<3>(0)
+ T_177466[1] := UInt<3>(1)
+ T_177466[2] := UInt<3>(2)
+ wire T_177467 : UInt<0>[1]
+ T_177467[0] := UInt<0>(0)
+ wire T_177468 : UInt<2>[2]
+ T_177468[0] := UInt<2>(1)
+ T_177468[1] := UInt<2>(2)
+ wire T_177469 : UInt<2>[2]
+ T_177469[0] := UInt<2>(1)
+ T_177469[1] := UInt<2>(2)
+ wire T_177470 : UInt<2>[1]
+ T_177470[0] := UInt<2>(2)
+ wire T_177471 : UInt<3>[3]
+ T_177471[0] := UInt<3>(0)
+ T_177471[1] := UInt<3>(1)
+ T_177471[2] := UInt<3>(2)
+ wire T_177472 : UInt<0>[1]
+ T_177472[0] := UInt<0>(0)
+ wire T_177473 : UInt<2>[2]
+ T_177473[0] := UInt<2>(1)
+ T_177473[1] := UInt<2>(2)
+ wire T_177474 : UInt<2>[2]
+ T_177474[0] := UInt<2>(1)
+ T_177474[1] := UInt<2>(2)
+ wire T_177475 : UInt<2>[1]
+ T_177475[0] := UInt<2>(2)
+ wire T_177476 : UInt<3>[3]
+ T_177476[0] := UInt<3>(0)
+ T_177476[1] := UInt<3>(1)
+ T_177476[2] := UInt<3>(2)
+ wire T_177477 : UInt<0>[1]
+ T_177477[0] := UInt<0>(0)
+ wire T_177478 : UInt<2>[2]
+ T_177478[0] := UInt<2>(1)
+ T_177478[1] := UInt<2>(2)
+ wire T_177479 : UInt<2>[2]
+ T_177479[0] := UInt<2>(1)
+ T_177479[1] := UInt<2>(2)
+ wire T_177480 : UInt<2>[1]
+ T_177480[0] := UInt<2>(2)
+ wire T_177481 : UInt<3>[3]
+ T_177481[0] := UInt<3>(0)
+ T_177481[1] := UInt<3>(1)
+ T_177481[2] := UInt<3>(2)
+ wire T_177482 : UInt<0>[1]
+ T_177482[0] := UInt<0>(0)
+ wire T_177483 : UInt<2>[2]
+ T_177483[0] := UInt<2>(1)
+ T_177483[1] := UInt<2>(2)
+ wire T_177484 : UInt<2>[2]
+ T_177484[0] := UInt<2>(1)
+ T_177484[1] := UInt<2>(2)
+ wire T_177485 : UInt<2>[1]
+ T_177485[0] := UInt<2>(2)
+ wire T_177486 : UInt<3>[3]
+ T_177486[0] := UInt<3>(0)
+ T_177486[1] := UInt<3>(1)
+ T_177486[2] := UInt<3>(2)
+ wire T_177487 : UInt<0>[1]
+ T_177487[0] := UInt<0>(0)
+ wire T_177488 : UInt<2>[2]
+ T_177488[0] := UInt<2>(1)
+ T_177488[1] := UInt<2>(2)
+ wire T_177489 : UInt<2>[2]
+ T_177489[0] := UInt<2>(1)
+ T_177489[1] := UInt<2>(2)
+ wire T_177490 : UInt<2>[1]
+ T_177490[0] := UInt<2>(2)
+ wire T_177491 : UInt<3>[3]
+ T_177491[0] := UInt<3>(0)
+ T_177491[1] := UInt<3>(1)
+ T_177491[2] := UInt<3>(2)
+ wire T_177492 : UInt<0>[1]
+ T_177492[0] := UInt<0>(0)
+ wire T_177493 : UInt<2>[2]
+ T_177493[0] := UInt<2>(1)
+ T_177493[1] := UInt<2>(2)
+ wire T_177494 : UInt<2>[2]
+ T_177494[0] := UInt<2>(1)
+ T_177494[1] := UInt<2>(2)
+ wire T_177495 : UInt<2>[1]
+ T_177495[0] := UInt<2>(2)
+ wire T_177496 : UInt<3>[3]
+ T_177496[0] := UInt<3>(0)
+ T_177496[1] := UInt<3>(1)
+ T_177496[2] := UInt<3>(2)
+ wire T_177497 : UInt<0>[1]
+ T_177497[0] := UInt<0>(0)
+ wire T_177498 : UInt<2>[2]
+ T_177498[0] := UInt<2>(1)
+ T_177498[1] := UInt<2>(2)
+ wire T_177499 : UInt<2>[2]
+ T_177499[0] := UInt<2>(1)
+ T_177499[1] := UInt<2>(2)
+ wire T_177500 : UInt<2>[1]
+ T_177500[0] := UInt<2>(2)
+ wire T_177501 : UInt<3>[3]
+ T_177501[0] := UInt<3>(0)
+ T_177501[1] := UInt<3>(1)
+ T_177501[2] := UInt<3>(2)
+ wire T_177502 : UInt<0>[1]
+ T_177502[0] := UInt<0>(0)
+ wire T_177503 : UInt<2>[2]
+ T_177503[0] := UInt<2>(1)
+ T_177503[1] := UInt<2>(2)
+ wire T_177504 : UInt<2>[2]
+ T_177504[0] := UInt<2>(1)
+ T_177504[1] := UInt<2>(2)
+ wire T_177505 : UInt<2>[1]
+ T_177505[0] := UInt<2>(2)
+ wire T_177506 : UInt<3>[3]
+ T_177506[0] := UInt<3>(0)
+ T_177506[1] := UInt<3>(1)
+ T_177506[2] := UInt<3>(2)
+ wire T_177507 : UInt<0>[1]
+ T_177507[0] := UInt<0>(0)
+ wire T_177508 : UInt<2>[2]
+ T_177508[0] := UInt<2>(1)
+ T_177508[1] := UInt<2>(2)
+ wire T_177509 : UInt<2>[2]
+ T_177509[0] := UInt<2>(1)
+ T_177509[1] := UInt<2>(2)
+ wire T_177510 : UInt<2>[1]
+ T_177510[0] := UInt<2>(2)
+ wire T_177511 : UInt<3>[3]
+ T_177511[0] := UInt<3>(0)
+ T_177511[1] := UInt<3>(1)
+ T_177511[2] := UInt<3>(2)
+ wire T_177512 : UInt<0>[1]
+ T_177512[0] := UInt<0>(0)
+ wire T_177513 : UInt<2>[2]
+ T_177513[0] := UInt<2>(1)
+ T_177513[1] := UInt<2>(2)
+ wire T_177514 : UInt<2>[2]
+ T_177514[0] := UInt<2>(1)
+ T_177514[1] := UInt<2>(2)
+ wire T_177515 : UInt<2>[1]
+ T_177515[0] := UInt<2>(2)
+ wire T_177516 : UInt<3>[3]
+ T_177516[0] := UInt<3>(0)
+ T_177516[1] := UInt<3>(1)
+ T_177516[2] := UInt<3>(2)
+ wire T_177517 : UInt<0>[1]
+ T_177517[0] := UInt<0>(0)
+ wire T_177518 : UInt<2>[2]
+ T_177518[0] := UInt<2>(1)
+ T_177518[1] := UInt<2>(2)
+ wire T_177519 : UInt<2>[2]
+ T_177519[0] := UInt<2>(1)
+ T_177519[1] := UInt<2>(2)
+ wire T_177520 : UInt<2>[1]
+ T_177520[0] := UInt<2>(2)
+ wire T_177521 : UInt<3>[3]
+ T_177521[0] := UInt<3>(0)
+ T_177521[1] := UInt<3>(1)
+ T_177521[2] := UInt<3>(2)
+ wire T_177522 : UInt<0>[1]
+ T_177522[0] := UInt<0>(0)
+ wire T_177523 : UInt<2>[2]
+ T_177523[0] := UInt<2>(1)
+ T_177523[1] := UInt<2>(2)
+ wire T_177524 : UInt<2>[2]
+ T_177524[0] := UInt<2>(1)
+ T_177524[1] := UInt<2>(2)
+ wire T_177525 : UInt<2>[1]
+ T_177525[0] := UInt<2>(2)
+ wire T_177526 : UInt<3>[3]
+ T_177526[0] := UInt<3>(0)
+ T_177526[1] := UInt<3>(1)
+ T_177526[2] := UInt<3>(2)
+ wire T_177527 : UInt<0>[1]
+ T_177527[0] := UInt<0>(0)
+ wire T_177528 : UInt<2>[2]
+ T_177528[0] := UInt<2>(1)
+ T_177528[1] := UInt<2>(2)
+ wire T_177529 : UInt<2>[2]
+ T_177529[0] := UInt<2>(1)
+ T_177529[1] := UInt<2>(2)
+ wire T_177530 : UInt<2>[1]
+ T_177530[0] := UInt<2>(2)
+ wire T_177531 : UInt<3>[3]
+ T_177531[0] := UInt<3>(0)
+ T_177531[1] := UInt<3>(1)
+ T_177531[2] := UInt<3>(2)
+ wire T_177532 : UInt<0>[1]
+ T_177532[0] := UInt<0>(0)
+ wire T_177533 : UInt<2>[2]
+ T_177533[0] := UInt<2>(1)
+ T_177533[1] := UInt<2>(2)
+ wire T_177534 : UInt<2>[2]
+ T_177534[0] := UInt<2>(1)
+ T_177534[1] := UInt<2>(2)
+ wire T_177535 : UInt<2>[1]
+ T_177535[0] := UInt<2>(2)
+ wire T_177536 : UInt<3>[3]
+ T_177536[0] := UInt<3>(0)
+ T_177536[1] := UInt<3>(1)
+ T_177536[2] := UInt<3>(2)
+ wire T_177537 : UInt<0>[1]
+ T_177537[0] := UInt<0>(0)
+ wire T_177538 : UInt<2>[2]
+ T_177538[0] := UInt<2>(1)
+ T_177538[1] := UInt<2>(2)
+ wire T_177539 : UInt<2>[2]
+ T_177539[0] := UInt<2>(1)
+ T_177539[1] := UInt<2>(2)
+ wire T_177540 : UInt<2>[1]
+ T_177540[0] := UInt<2>(2)
+ wire T_177541 : UInt<3>[3]
+ T_177541[0] := UInt<3>(0)
+ T_177541[1] := UInt<3>(1)
+ T_177541[2] := UInt<3>(2)
+ wire T_177542 : UInt<0>[1]
+ T_177542[0] := UInt<0>(0)
+ wire T_177543 : UInt<2>[2]
+ T_177543[0] := UInt<2>(1)
+ T_177543[1] := UInt<2>(2)
+ wire T_177544 : UInt<2>[2]
+ T_177544[0] := UInt<2>(1)
+ T_177544[1] := UInt<2>(2)
+ wire T_177545 : UInt<2>[1]
+ T_177545[0] := UInt<2>(2)
+ wire T_177546 : UInt<3>[3]
+ T_177546[0] := UInt<3>(0)
+ T_177546[1] := UInt<3>(1)
+ T_177546[2] := UInt<3>(2)
+ wire T_177547 : UInt<0>[1]
+ T_177547[0] := UInt<0>(0)
+ wire T_177548 : UInt<2>[2]
+ T_177548[0] := UInt<2>(1)
+ T_177548[1] := UInt<2>(2)
+ wire T_177549 : UInt<2>[2]
+ T_177549[0] := UInt<2>(1)
+ T_177549[1] := UInt<2>(2)
+ wire T_177550 : UInt<2>[1]
+ T_177550[0] := UInt<2>(2)
+ wire T_177551 : UInt<3>[3]
+ T_177551[0] := UInt<3>(0)
+ T_177551[1] := UInt<3>(1)
+ T_177551[2] := UInt<3>(2)
+ wire T_177552 : UInt<0>[1]
+ T_177552[0] := UInt<0>(0)
+ wire T_177553 : UInt<2>[2]
+ T_177553[0] := UInt<2>(1)
+ T_177553[1] := UInt<2>(2)
+ wire T_177554 : UInt<2>[2]
+ T_177554[0] := UInt<2>(1)
+ T_177554[1] := UInt<2>(2)
+ wire T_177555 : UInt<2>[1]
+ T_177555[0] := UInt<2>(2)
+ wire T_177556 : UInt<3>[3]
+ T_177556[0] := UInt<3>(0)
+ T_177556[1] := UInt<3>(1)
+ T_177556[2] := UInt<3>(2)
+ wire T_177557 : UInt<0>[1]
+ T_177557[0] := UInt<0>(0)
+ wire T_177558 : UInt<2>[2]
+ T_177558[0] := UInt<2>(1)
+ T_177558[1] := UInt<2>(2)
+ wire T_177559 : UInt<2>[2]
+ T_177559[0] := UInt<2>(1)
+ T_177559[1] := UInt<2>(2)
+ wire T_177560 : UInt<2>[1]
+ T_177560[0] := UInt<2>(2)
+ wire T_177561 : UInt<3>[3]
+ T_177561[0] := UInt<3>(0)
+ T_177561[1] := UInt<3>(1)
+ T_177561[2] := UInt<3>(2)
+ wire T_177562 : UInt<0>[1]
+ T_177562[0] := UInt<0>(0)
+ wire T_177563 : UInt<2>[2]
+ T_177563[0] := UInt<2>(1)
+ T_177563[1] := UInt<2>(2)
+ wire T_177564 : UInt<2>[2]
+ T_177564[0] := UInt<2>(1)
+ T_177564[1] := UInt<2>(2)
+ wire T_177565 : UInt<2>[1]
+ T_177565[0] := UInt<2>(2)
+ wire T_177566 : UInt<3>[3]
+ T_177566[0] := UInt<3>(0)
+ T_177566[1] := UInt<3>(1)
+ T_177566[2] := UInt<3>(2)
+ wire T_177567 : UInt<0>[1]
+ T_177567[0] := UInt<0>(0)
+ wire T_177568 : UInt<2>[2]
+ T_177568[0] := UInt<2>(1)
+ T_177568[1] := UInt<2>(2)
+ wire T_177569 : UInt<2>[2]
+ T_177569[0] := UInt<2>(1)
+ T_177569[1] := UInt<2>(2)
+ wire T_177570 : UInt<2>[1]
+ T_177570[0] := UInt<2>(2)
+ wire T_177571 : UInt<3>[3]
+ T_177571[0] := UInt<3>(0)
+ T_177571[1] := UInt<3>(1)
+ T_177571[2] := UInt<3>(2)
+ wire T_177572 : UInt<0>[1]
+ T_177572[0] := UInt<0>(0)
+ wire T_177573 : UInt<2>[2]
+ T_177573[0] := UInt<2>(1)
+ T_177573[1] := UInt<2>(2)
+ wire T_177574 : UInt<2>[2]
+ T_177574[0] := UInt<2>(1)
+ T_177574[1] := UInt<2>(2)
+ wire T_177575 : UInt<2>[1]
+ T_177575[0] := UInt<2>(2)
+ wire T_177576 : UInt<3>[3]
+ T_177576[0] := UInt<3>(0)
+ T_177576[1] := UInt<3>(1)
+ T_177576[2] := UInt<3>(2)
+ wire T_177577 : UInt<0>[1]
+ T_177577[0] := UInt<0>(0)
+ wire T_177578 : UInt<2>[2]
+ T_177578[0] := UInt<2>(1)
+ T_177578[1] := UInt<2>(2)
+ wire T_177579 : UInt<2>[2]
+ T_177579[0] := UInt<2>(1)
+ T_177579[1] := UInt<2>(2)
+ wire T_177580 : UInt<2>[1]
+ T_177580[0] := UInt<2>(2)
+ wire T_177581 : UInt<3>[3]
+ T_177581[0] := UInt<3>(0)
+ T_177581[1] := UInt<3>(1)
+ T_177581[2] := UInt<3>(2)
+ wire T_177582 : UInt<0>[1]
+ T_177582[0] := UInt<0>(0)
+ wire T_177583 : UInt<2>[2]
+ T_177583[0] := UInt<2>(1)
+ T_177583[1] := UInt<2>(2)
+ wire T_177584 : UInt<2>[2]
+ T_177584[0] := UInt<2>(1)
+ T_177584[1] := UInt<2>(2)
+ wire T_177585 : UInt<2>[1]
+ T_177585[0] := UInt<2>(2)
+ wire T_177586 : UInt<3>[3]
+ T_177586[0] := UInt<3>(0)
+ T_177586[1] := UInt<3>(1)
+ T_177586[2] := UInt<3>(2)
+ wire T_177587 : UInt<0>[1]
+ T_177587[0] := UInt<0>(0)
+ wire T_177588 : UInt<2>[2]
+ T_177588[0] := UInt<2>(1)
+ T_177588[1] := UInt<2>(2)
+ wire T_177589 : UInt<2>[2]
+ T_177589[0] := UInt<2>(1)
+ T_177589[1] := UInt<2>(2)
+ wire T_177590 : UInt<2>[1]
+ T_177590[0] := UInt<2>(2)
+ wire T_177591 : UInt<3>[3]
+ T_177591[0] := UInt<3>(0)
+ T_177591[1] := UInt<3>(1)
+ T_177591[2] := UInt<3>(2)
+ wire T_177592 : UInt<0>[1]
+ T_177592[0] := UInt<0>(0)
+ wire T_177593 : UInt<2>[2]
+ T_177593[0] := UInt<2>(1)
+ T_177593[1] := UInt<2>(2)
+ wire T_177594 : UInt<2>[2]
+ T_177594[0] := UInt<2>(1)
+ T_177594[1] := UInt<2>(2)
+ wire T_177595 : UInt<2>[1]
+ T_177595[0] := UInt<2>(2)
+ wire T_177596 : UInt<3>[3]
+ T_177596[0] := UInt<3>(0)
+ T_177596[1] := UInt<3>(1)
+ T_177596[2] := UInt<3>(2)
+ wire T_177597 : UInt<0>[1]
+ T_177597[0] := UInt<0>(0)
+ wire T_177598 : UInt<2>[2]
+ T_177598[0] := UInt<2>(1)
+ T_177598[1] := UInt<2>(2)
+ wire T_177599 : UInt<2>[2]
+ T_177599[0] := UInt<2>(1)
+ T_177599[1] := UInt<2>(2)
+ wire T_177600 : UInt<2>[1]
+ T_177600[0] := UInt<2>(2)
+ wire T_177601 : UInt<3>[3]
+ T_177601[0] := UInt<3>(0)
+ T_177601[1] := UInt<3>(1)
+ T_177601[2] := UInt<3>(2)
+ wire T_177602 : UInt<0>[1]
+ T_177602[0] := UInt<0>(0)
+ wire T_177603 : UInt<2>[2]
+ T_177603[0] := UInt<2>(1)
+ T_177603[1] := UInt<2>(2)
+ wire T_177604 : UInt<2>[2]
+ T_177604[0] := UInt<2>(1)
+ T_177604[1] := UInt<2>(2)
+ wire T_177605 : UInt<2>[1]
+ T_177605[0] := UInt<2>(2)
+ wire T_177606 : UInt<3>[3]
+ T_177606[0] := UInt<3>(0)
+ T_177606[1] := UInt<3>(1)
+ T_177606[2] := UInt<3>(2)
+ wire T_177607 : UInt<0>[1]
+ T_177607[0] := UInt<0>(0)
+ wire T_177608 : UInt<2>[2]
+ T_177608[0] := UInt<2>(1)
+ T_177608[1] := UInt<2>(2)
+ wire T_177609 : UInt<2>[2]
+ T_177609[0] := UInt<2>(1)
+ T_177609[1] := UInt<2>(2)
+ wire T_177610 : UInt<2>[1]
+ T_177610[0] := UInt<2>(2)
+ wire T_177611 : UInt<3>[3]
+ T_177611[0] := UInt<3>(0)
+ T_177611[1] := UInt<3>(1)
+ T_177611[2] := UInt<3>(2)
+ wire T_177612 : UInt<0>[1]
+ T_177612[0] := UInt<0>(0)
+ wire T_177613 : UInt<2>[2]
+ T_177613[0] := UInt<2>(1)
+ T_177613[1] := UInt<2>(2)
+ wire T_177614 : UInt<2>[2]
+ T_177614[0] := UInt<2>(1)
+ T_177614[1] := UInt<2>(2)
+ wire T_177615 : UInt<2>[1]
+ T_177615[0] := UInt<2>(2)
+ wire T_177616 : UInt<3>[3]
+ T_177616[0] := UInt<3>(0)
+ T_177616[1] := UInt<3>(1)
+ T_177616[2] := UInt<3>(2)
+ wire T_177617 : UInt<0>[1]
+ T_177617[0] := UInt<0>(0)
+ wire T_177618 : UInt<2>[2]
+ T_177618[0] := UInt<2>(1)
+ T_177618[1] := UInt<2>(2)
+ wire T_177619 : UInt<2>[2]
+ T_177619[0] := UInt<2>(1)
+ T_177619[1] := UInt<2>(2)
+ wire T_177620 : UInt<2>[1]
+ T_177620[0] := UInt<2>(2)
+ wire T_177621 : UInt<3>[3]
+ T_177621[0] := UInt<3>(0)
+ T_177621[1] := UInt<3>(1)
+ T_177621[2] := UInt<3>(2)
+ wire T_177622 : UInt<0>[1]
+ T_177622[0] := UInt<0>(0)
+ wire T_177623 : UInt<2>[2]
+ T_177623[0] := UInt<2>(1)
+ T_177623[1] := UInt<2>(2)
+ wire T_177624 : UInt<2>[2]
+ T_177624[0] := UInt<2>(1)
+ T_177624[1] := UInt<2>(2)
+ wire T_177625 : UInt<2>[1]
+ T_177625[0] := UInt<2>(2)
+ wire T_177626 : UInt<3>[3]
+ T_177626[0] := UInt<3>(0)
+ T_177626[1] := UInt<3>(1)
+ T_177626[2] := UInt<3>(2)
+ wire T_177627 : UInt<0>[1]
+ T_177627[0] := UInt<0>(0)
+ wire T_177628 : UInt<2>[2]
+ T_177628[0] := UInt<2>(1)
+ T_177628[1] := UInt<2>(2)
+ wire T_177629 : UInt<2>[2]
+ T_177629[0] := UInt<2>(1)
+ T_177629[1] := UInt<2>(2)
+ wire T_177630 : UInt<2>[1]
+ T_177630[0] := UInt<2>(2)
+ wire T_177631 : UInt<3>[3]
+ T_177631[0] := UInt<3>(0)
+ T_177631[1] := UInt<3>(1)
+ T_177631[2] := UInt<3>(2)
+ wire T_177632 : UInt<0>[1]
+ T_177632[0] := UInt<0>(0)
+ wire T_177633 : UInt<2>[2]
+ T_177633[0] := UInt<2>(1)
+ T_177633[1] := UInt<2>(2)
+ wire T_177634 : UInt<2>[2]
+ T_177634[0] := UInt<2>(1)
+ T_177634[1] := UInt<2>(2)
+ wire T_177635 : UInt<2>[1]
+ T_177635[0] := UInt<2>(2)
+ wire T_177636 : UInt<3>[3]
+ T_177636[0] := UInt<3>(0)
+ T_177636[1] := UInt<3>(1)
+ T_177636[2] := UInt<3>(2)
+ wire T_177637 : UInt<0>[1]
+ T_177637[0] := UInt<0>(0)
+ wire T_177638 : UInt<2>[2]
+ T_177638[0] := UInt<2>(1)
+ T_177638[1] := UInt<2>(2)
+ wire T_177639 : UInt<2>[2]
+ T_177639[0] := UInt<2>(1)
+ T_177639[1] := UInt<2>(2)
+ wire T_177640 : UInt<2>[1]
+ T_177640[0] := UInt<2>(2)
+ wire T_177641 : UInt<3>[3]
+ T_177641[0] := UInt<3>(0)
+ T_177641[1] := UInt<3>(1)
+ T_177641[2] := UInt<3>(2)
+ wire T_177642 : UInt<0>[1]
+ T_177642[0] := UInt<0>(0)
+ wire T_177643 : UInt<2>[2]
+ T_177643[0] := UInt<2>(1)
+ T_177643[1] := UInt<2>(2)
+ wire T_177644 : UInt<2>[2]
+ T_177644[0] := UInt<2>(1)
+ T_177644[1] := UInt<2>(2)
+ wire T_177645 : UInt<2>[1]
+ T_177645[0] := UInt<2>(2)
+ wire T_177646 : UInt<3>[3]
+ T_177646[0] := UInt<3>(0)
+ T_177646[1] := UInt<3>(1)
+ T_177646[2] := UInt<3>(2)
+ wire T_177647 : UInt<0>[1]
+ T_177647[0] := UInt<0>(0)
+ wire T_177648 : UInt<2>[2]
+ T_177648[0] := UInt<2>(1)
+ T_177648[1] := UInt<2>(2)
+ wire T_177649 : UInt<2>[2]
+ T_177649[0] := UInt<2>(1)
+ T_177649[1] := UInt<2>(2)
+ wire T_177650 : UInt<2>[1]
+ T_177650[0] := UInt<2>(2)
+ wire T_177651 : UInt<3>[3]
+ T_177651[0] := UInt<3>(0)
+ T_177651[1] := UInt<3>(1)
+ T_177651[2] := UInt<3>(2)
+ wire T_177652 : UInt<0>[1]
+ T_177652[0] := UInt<0>(0)
+ wire T_177653 : UInt<2>[2]
+ T_177653[0] := UInt<2>(1)
+ T_177653[1] := UInt<2>(2)
+ wire T_177654 : UInt<2>[2]
+ T_177654[0] := UInt<2>(1)
+ T_177654[1] := UInt<2>(2)
+ wire T_177655 : UInt<2>[1]
+ T_177655[0] := UInt<2>(2)
+ wire T_177656 : UInt<3>[3]
+ T_177656[0] := UInt<3>(0)
+ T_177656[1] := UInt<3>(1)
+ T_177656[2] := UInt<3>(2)
+ wire T_177657 : UInt<0>[1]
+ T_177657[0] := UInt<0>(0)
+ wire T_177658 : UInt<2>[2]
+ T_177658[0] := UInt<2>(1)
+ T_177658[1] := UInt<2>(2)
+ wire T_177659 : UInt<2>[2]
+ T_177659[0] := UInt<2>(1)
+ T_177659[1] := UInt<2>(2)
+ wire T_177660 : UInt<2>[1]
+ T_177660[0] := UInt<2>(2)
+ wire T_177661 : UInt<3>[3]
+ T_177661[0] := UInt<3>(0)
+ T_177661[1] := UInt<3>(1)
+ T_177661[2] := UInt<3>(2)
+ wire T_177662 : UInt<0>[1]
+ T_177662[0] := UInt<0>(0)
+ wire T_177663 : UInt<2>[2]
+ T_177663[0] := UInt<2>(1)
+ T_177663[1] := UInt<2>(2)
+ wire T_177664 : UInt<2>[2]
+ T_177664[0] := UInt<2>(1)
+ T_177664[1] := UInt<2>(2)
+ wire T_177665 : UInt<2>[1]
+ T_177665[0] := UInt<2>(2)
+ wire T_177666 : UInt<3>[3]
+ T_177666[0] := UInt<3>(0)
+ T_177666[1] := UInt<3>(1)
+ T_177666[2] := UInt<3>(2)
+ wire T_177667 : UInt<0>[1]
+ T_177667[0] := UInt<0>(0)
+ wire T_177668 : UInt<2>[2]
+ T_177668[0] := UInt<2>(1)
+ T_177668[1] := UInt<2>(2)
+ wire T_177669 : UInt<2>[2]
+ T_177669[0] := UInt<2>(1)
+ T_177669[1] := UInt<2>(2)
+ wire T_177670 : UInt<2>[1]
+ T_177670[0] := UInt<2>(2)
+ wire T_177671 : UInt<3>[3]
+ T_177671[0] := UInt<3>(0)
+ T_177671[1] := UInt<3>(1)
+ T_177671[2] := UInt<3>(2)
+ wire T_177672 : UInt<0>[1]
+ T_177672[0] := UInt<0>(0)
+ wire T_177673 : UInt<2>[2]
+ T_177673[0] := UInt<2>(1)
+ T_177673[1] := UInt<2>(2)
+ wire T_177674 : UInt<2>[2]
+ T_177674[0] := UInt<2>(1)
+ T_177674[1] := UInt<2>(2)
+ wire T_177675 : UInt<2>[1]
+ T_177675[0] := UInt<2>(2)
+ wire T_177676 : UInt<3>[3]
+ T_177676[0] := UInt<3>(0)
+ T_177676[1] := UInt<3>(1)
+ T_177676[2] := UInt<3>(2)
+ wire T_177677 : UInt<0>[1]
+ T_177677[0] := UInt<0>(0)
+ wire T_177678 : UInt<2>[2]
+ T_177678[0] := UInt<2>(1)
+ T_177678[1] := UInt<2>(2)
+ wire T_177679 : UInt<2>[2]
+ T_177679[0] := UInt<2>(1)
+ T_177679[1] := UInt<2>(2)
+ wire T_177680 : UInt<2>[1]
+ T_177680[0] := UInt<2>(2)
+ wire T_177681 : UInt<3>[3]
+ T_177681[0] := UInt<3>(0)
+ T_177681[1] := UInt<3>(1)
+ T_177681[2] := UInt<3>(2)
+ wire T_177682 : UInt<0>[1]
+ T_177682[0] := UInt<0>(0)
+ wire T_177683 : UInt<2>[2]
+ T_177683[0] := UInt<2>(1)
+ T_177683[1] := UInt<2>(2)
+ wire T_177684 : UInt<2>[2]
+ T_177684[0] := UInt<2>(1)
+ T_177684[1] := UInt<2>(2)
+ wire T_177685 : UInt<2>[1]
+ T_177685[0] := UInt<2>(2)
+ wire T_177686 : UInt<3>[3]
+ T_177686[0] := UInt<3>(0)
+ T_177686[1] := UInt<3>(1)
+ T_177686[2] := UInt<3>(2)
+ wire T_177687 : UInt<0>[1]
+ T_177687[0] := UInt<0>(0)
+ wire T_177688 : UInt<2>[2]
+ T_177688[0] := UInt<2>(1)
+ T_177688[1] := UInt<2>(2)
+ wire T_177689 : UInt<2>[2]
+ T_177689[0] := UInt<2>(1)
+ T_177689[1] := UInt<2>(2)
+ wire T_177690 : UInt<2>[1]
+ T_177690[0] := UInt<2>(2)
+ wire T_177691 : UInt<3>[3]
+ T_177691[0] := UInt<3>(0)
+ T_177691[1] := UInt<3>(1)
+ T_177691[2] := UInt<3>(2)
+ wire T_177692 : UInt<0>[1]
+ T_177692[0] := UInt<0>(0)
+ wire T_177693 : UInt<2>[2]
+ T_177693[0] := UInt<2>(1)
+ T_177693[1] := UInt<2>(2)
+ wire T_177694 : UInt<2>[2]
+ T_177694[0] := UInt<2>(1)
+ T_177694[1] := UInt<2>(2)
+ wire T_177695 : UInt<2>[1]
+ T_177695[0] := UInt<2>(2)
+ wire T_177696 : UInt<3>[3]
+ T_177696[0] := UInt<3>(0)
+ T_177696[1] := UInt<3>(1)
+ T_177696[2] := UInt<3>(2)
+ wire T_177697 : UInt<0>[1]
+ T_177697[0] := UInt<0>(0)
+ wire T_177698 : UInt<2>[2]
+ T_177698[0] := UInt<2>(1)
+ T_177698[1] := UInt<2>(2)
+ wire T_177699 : UInt<2>[2]
+ T_177699[0] := UInt<2>(1)
+ T_177699[1] := UInt<2>(2)
+ wire T_177700 : UInt<2>[1]
+ T_177700[0] := UInt<2>(2)
+ wire T_177701 : UInt<3>[3]
+ T_177701[0] := UInt<3>(0)
+ T_177701[1] := UInt<3>(1)
+ T_177701[2] := UInt<3>(2)
+ wire T_177702 : UInt<0>[1]
+ T_177702[0] := UInt<0>(0)
+ wire T_177703 : UInt<2>[2]
+ T_177703[0] := UInt<2>(1)
+ T_177703[1] := UInt<2>(2)
+ wire T_177704 : UInt<2>[2]
+ T_177704[0] := UInt<2>(1)
+ T_177704[1] := UInt<2>(2)
+ wire T_177705 : UInt<2>[1]
+ T_177705[0] := UInt<2>(2)
+ wire T_177706 : UInt<3>[3]
+ T_177706[0] := UInt<3>(0)
+ T_177706[1] := UInt<3>(1)
+ T_177706[2] := UInt<3>(2)
+ wire T_177707 : UInt<0>[1]
+ T_177707[0] := UInt<0>(0)
+ wire T_177708 : UInt<2>[2]
+ T_177708[0] := UInt<2>(1)
+ T_177708[1] := UInt<2>(2)
+ wire T_177709 : UInt<2>[2]
+ T_177709[0] := UInt<2>(1)
+ T_177709[1] := UInt<2>(2)
+ wire T_177710 : UInt<2>[1]
+ T_177710[0] := UInt<2>(2)
+ wire T_177711 : UInt<3>[3]
+ T_177711[0] := UInt<3>(0)
+ T_177711[1] := UInt<3>(1)
+ T_177711[2] := UInt<3>(2)
+ wire T_177712 : UInt<0>[1]
+ T_177712[0] := UInt<0>(0)
+ wire T_177713 : UInt<2>[2]
+ T_177713[0] := UInt<2>(1)
+ T_177713[1] := UInt<2>(2)
+ wire T_177714 : UInt<2>[2]
+ T_177714[0] := UInt<2>(1)
+ T_177714[1] := UInt<2>(2)
+ wire T_177715 : UInt<2>[1]
+ T_177715[0] := UInt<2>(2)
+ wire T_177716 : UInt<3>[3]
+ T_177716[0] := UInt<3>(0)
+ T_177716[1] := UInt<3>(1)
+ T_177716[2] := UInt<3>(2)
+ wire T_177717 : UInt<0>[1]
+ T_177717[0] := UInt<0>(0)
+ wire T_177718 : UInt<2>[2]
+ T_177718[0] := UInt<2>(1)
+ T_177718[1] := UInt<2>(2)
+ wire T_177719 : UInt<2>[2]
+ T_177719[0] := UInt<2>(1)
+ T_177719[1] := UInt<2>(2)
+ wire T_177720 : UInt<2>[1]
+ T_177720[0] := UInt<2>(2)
+ wire in : {acquire : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_block : UInt<26>, client_xact_id : UInt<2>, addr_beat : UInt<2>, data : UInt<128>, is_builtin_type : UInt<1>, a_type : UInt<3>, union : UInt<17>}}, flip grant : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_beat : UInt<2>, data : UInt<128>, client_xact_id : UInt<2>, manager_xact_id : UInt<1>, is_builtin_type : UInt<1>, g_type : UInt<4>}}, flip probe : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_block : UInt<26>, p_type : UInt<2>}}, release : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_block : UInt<26>, client_xact_id : UInt<2>, addr_beat : UInt<2>, data : UInt<128>, r_type : UInt<3>, voluntary : UInt<1>}}}[4]
+ in[0] := T_177721
+ in[1] := T_177722
+ in[2] := T_177723
+ in[3] := T_177724
+ wire T_177725 : UInt<3>[3]
+ T_177725[0] := UInt<3>(0)
+ T_177725[1] := UInt<3>(1)
+ T_177725[2] := UInt<3>(2)
+ wire T_177726 : UInt<0>[1]
+ T_177726[0] := UInt<0>(0)
+ wire T_177727 : UInt<2>[2]
+ T_177727[0] := UInt<2>(1)
+ T_177727[1] := UInt<2>(2)
+ wire T_177728 : UInt<2>[2]
+ T_177728[0] := UInt<2>(1)
+ T_177728[1] := UInt<2>(2)
+ wire T_177729 : UInt<2>[1]
+ T_177729[0] := UInt<2>(2)
+ wire T_177730 : UInt<3>[3]
+ T_177730[0] := UInt<3>(0)
+ T_177730[1] := UInt<3>(1)
+ T_177730[2] := UInt<3>(2)
+ wire T_177731 : UInt<0>[1]
+ T_177731[0] := UInt<0>(0)
+ wire T_177732 : UInt<2>[2]
+ T_177732[0] := UInt<2>(1)
+ T_177732[1] := UInt<2>(2)
+ wire T_177733 : UInt<2>[2]
+ T_177733[0] := UInt<2>(1)
+ T_177733[1] := UInt<2>(2)
+ wire T_177734 : UInt<2>[1]
+ T_177734[0] := UInt<2>(2)
+ wire T_177735 : UInt<3>[3]
+ T_177735[0] := UInt<3>(0)
+ T_177735[1] := UInt<3>(1)
+ T_177735[2] := UInt<3>(2)
+ wire T_177736 : UInt<0>[1]
+ T_177736[0] := UInt<0>(0)
+ wire T_177737 : UInt<2>[2]
+ T_177737[0] := UInt<2>(1)
+ T_177737[1] := UInt<2>(2)
+ wire T_177738 : UInt<2>[2]
+ T_177738[0] := UInt<2>(1)
+ T_177738[1] := UInt<2>(2)
+ wire T_177739 : UInt<2>[1]
+ T_177739[0] := UInt<2>(2)
+ wire T_177740 : UInt<3>[3]
+ T_177740[0] := UInt<3>(0)
+ T_177740[1] := UInt<3>(1)
+ T_177740[2] := UInt<3>(2)
+ wire T_177741 : UInt<0>[1]
+ T_177741[0] := UInt<0>(0)
+ wire T_177742 : UInt<2>[2]
+ T_177742[0] := UInt<2>(1)
+ T_177742[1] := UInt<2>(2)
+ wire T_177743 : UInt<2>[2]
+ T_177743[0] := UInt<2>(1)
+ T_177743[1] := UInt<2>(2)
+ wire T_177744 : UInt<2>[1]
+ T_177744[0] := UInt<2>(2)
+ wire T_177745 : UInt<3>[3]
+ T_177745[0] := UInt<3>(0)
+ T_177745[1] := UInt<3>(1)
+ T_177745[2] := UInt<3>(2)
+ wire T_177746 : UInt<0>[1]
+ T_177746[0] := UInt<0>(0)
+ wire T_177747 : UInt<2>[2]
+ T_177747[0] := UInt<2>(1)
+ T_177747[1] := UInt<2>(2)
+ wire T_177748 : UInt<2>[2]
+ T_177748[0] := UInt<2>(1)
+ T_177748[1] := UInt<2>(2)
+ wire T_177749 : UInt<2>[1]
+ T_177749[0] := UInt<2>(2)
+ wire T_177750 : UInt<3>[3]
+ T_177750[0] := UInt<3>(0)
+ T_177750[1] := UInt<3>(1)
+ T_177750[2] := UInt<3>(2)
+ wire T_177751 : UInt<0>[1]
+ T_177751[0] := UInt<0>(0)
+ wire T_177752 : UInt<2>[2]
+ T_177752[0] := UInt<2>(1)
+ T_177752[1] := UInt<2>(2)
+ wire T_177753 : UInt<2>[2]
+ T_177753[0] := UInt<2>(1)
+ T_177753[1] := UInt<2>(2)
+ wire T_177754 : UInt<2>[1]
+ T_177754[0] := UInt<2>(2)
+ wire T_177755 : UInt<3>[3]
+ T_177755[0] := UInt<3>(0)
+ T_177755[1] := UInt<3>(1)
+ T_177755[2] := UInt<3>(2)
+ wire T_177756 : UInt<0>[1]
+ T_177756[0] := UInt<0>(0)
+ wire T_177757 : UInt<2>[2]
+ T_177757[0] := UInt<2>(1)
+ T_177757[1] := UInt<2>(2)
+ wire T_177758 : UInt<2>[2]
+ T_177758[0] := UInt<2>(1)
+ T_177758[1] := UInt<2>(2)
+ wire T_177759 : UInt<2>[1]
+ T_177759[0] := UInt<2>(2)
+ wire T_177760 : UInt<3>[3]
+ T_177760[0] := UInt<3>(0)
+ T_177760[1] := UInt<3>(1)
+ T_177760[2] := UInt<3>(2)
+ wire T_177761 : UInt<0>[1]
+ T_177761[0] := UInt<0>(0)
+ wire T_177762 : UInt<2>[2]
+ T_177762[0] := UInt<2>(1)
+ T_177762[1] := UInt<2>(2)
+ wire T_177763 : UInt<2>[2]
+ T_177763[0] := UInt<2>(1)
+ T_177763[1] := UInt<2>(2)
+ wire T_177764 : UInt<2>[1]
+ T_177764[0] := UInt<2>(2)
+ wire T_177765 : UInt<3>[3]
+ T_177765[0] := UInt<3>(0)
+ T_177765[1] := UInt<3>(1)
+ T_177765[2] := UInt<3>(2)
+ wire T_177766 : UInt<0>[1]
+ T_177766[0] := UInt<0>(0)
+ wire T_177767 : UInt<2>[2]
+ T_177767[0] := UInt<2>(1)
+ T_177767[1] := UInt<2>(2)
+ wire T_177768 : UInt<2>[2]
+ T_177768[0] := UInt<2>(1)
+ T_177768[1] := UInt<2>(2)
+ wire T_177769 : UInt<2>[1]
+ T_177769[0] := UInt<2>(2)
+ inst T_177770 of LockingRRArbiter_104277
+ T_177770.in[0].valid := in[0].acquire.valid
+ T_177770.in[0].bits := in[0].acquire.bits
+ node T_177771 = cat(in[0].acquire.bits.client_xact_id, UInt<2>(0))
+ T_177770.in[0].bits.client_xact_id := T_177771
+ in[0].acquire.ready := T_177770.in[0].ready
+ T_177770.in[1].valid := in[1].acquire.valid
+ T_177770.in[1].bits := in[1].acquire.bits
+ node T_177772 = cat(in[1].acquire.bits.client_xact_id, UInt<2>(1))
+ T_177770.in[1].bits.client_xact_id := T_177772
+ in[1].acquire.ready := T_177770.in[1].ready
+ T_177770.in[2].valid := in[2].acquire.valid
+ T_177770.in[2].bits := in[2].acquire.bits
+ node T_177773 = cat(in[2].acquire.bits.client_xact_id, UInt<2>(2))
+ T_177770.in[2].bits.client_xact_id := T_177773
+ in[2].acquire.ready := T_177770.in[2].ready
+ T_177770.in[3].valid := in[3].acquire.valid
+ T_177770.in[3].bits := in[3].acquire.bits
+ node T_177774 = cat(in[3].acquire.bits.client_xact_id, UInt<2>(3))
+ T_177770.in[3].bits.client_xact_id := T_177774
+ in[3].acquire.ready := T_177770.in[3].ready
+ T_177770.out <> out.acquire
+ inst T_177775 of LockingRRArbiter_104925
+ T_177775.in[0].valid := in[0].release.valid
+ T_177775.in[0].bits := in[0].release.bits
+ node T_177776 = cat(in[0].release.bits.client_xact_id, UInt<2>(0))
+ T_177775.in[0].bits.client_xact_id := T_177776
+ in[0].release.ready := T_177775.in[0].ready
+ T_177775.in[1].valid := in[1].release.valid
+ T_177775.in[1].bits := in[1].release.bits
+ node T_177777 = cat(in[1].release.bits.client_xact_id, UInt<2>(1))
+ T_177775.in[1].bits.client_xact_id := T_177777
+ in[1].release.ready := T_177775.in[1].ready
+ T_177775.in[2].valid := in[2].release.valid
+ T_177775.in[2].bits := in[2].release.bits
+ node T_177778 = cat(in[2].release.bits.client_xact_id, UInt<2>(2))
+ T_177775.in[2].bits.client_xact_id := T_177778
+ in[2].release.ready := T_177775.in[2].ready
+ T_177775.in[3].valid := in[3].release.valid
+ T_177775.in[3].bits := in[3].release.bits
+ node T_177779 = cat(in[3].release.bits.client_xact_id, UInt<2>(3))
+ T_177775.in[3].bits.client_xact_id := T_177779
+ in[3].release.ready := T_177775.in[3].ready
+ T_177775.out <> out.release
+ in[0].probe.valid := out.probe.valid
+ in[1].probe.valid := out.probe.valid
+ in[2].probe.valid := out.probe.valid
+ in[3].probe.valid := out.probe.valid
+ in[0].probe.bits := out.probe.bits
+ in[1].probe.bits := out.probe.bits
+ in[2].probe.bits := out.probe.bits
+ in[3].probe.bits := out.probe.bits
+ node T_177780 = and(in[0].probe.ready, in[1].probe.ready)
+ node T_177781 = and(T_177780, in[2].probe.ready)
+ node T_177782 = and(T_177781, in[3].probe.ready)
+ out.probe.ready := T_177782
+ out.grant.ready := UInt<1>(0)
+ in[0].grant.valid := UInt<1>(0)
+
+
+ node T_177783 = bits(out.grant.bits.client_xact_id, 1, 0)
+ node T_177784 = eq(T_177783, UInt<1>(0))
+ when T_177784 :
+ in[0].grant.valid := out.grant.valid
+ out.grant.ready := in[0].grant.ready
+ in[0].grant.bits := out.grant.bits
+ node T_177785 = dshr(out.grant.bits.client_xact_id, UInt<2>(2))
+ in[0].grant.bits.client_xact_id := T_177785
+ in[1].grant.valid := UInt<1>(0)
+
+
+ node T_177786 = bits(out.grant.bits.client_xact_id, 1, 0)
+ node T_177787 = eq(T_177786, UInt<1>(1))
+ when T_177787 :
+ in[1].grant.valid := out.grant.valid
+ out.grant.ready := in[1].grant.ready
+ in[1].grant.bits := out.grant.bits
+ node T_177788 = dshr(out.grant.bits.client_xact_id, UInt<2>(2))
+ in[1].grant.bits.client_xact_id := T_177788
+ in[2].grant.valid := UInt<1>(0)
+
+
+ node T_177789 = bits(out.grant.bits.client_xact_id, 1, 0)
+ node T_177790 = eq(T_177789, UInt<2>(2))
+ when T_177790 :
+ in[2].grant.valid := out.grant.valid
+ out.grant.ready := in[2].grant.ready
+ in[2].grant.bits := out.grant.bits
+ node T_177791 = dshr(out.grant.bits.client_xact_id, UInt<2>(2))
+ in[2].grant.bits.client_xact_id := T_177791
+ in[3].grant.valid := UInt<1>(0)
+
+
+ node T_177792 = bits(out.grant.bits.client_xact_id, 1, 0)
+ node T_177793 = eq(T_177792, UInt<2>(3))
+ when T_177793 :
+ in[3].grant.valid := out.grant.valid
+ out.grant.ready := in[3].grant.ready
+ in[3].grant.bits := out.grant.bits
+ node T_177794 = dshr(out.grant.bits.client_xact_id, UInt<2>(2))
+ in[3].grant.bits.client_xact_id := T_177794
+ module RRArbiter_105103 :
+ input in : {flip ready : UInt<1>, valid : UInt<1>, bits : {idx : UInt<12>, id : UInt<2>, tag : UInt<14>}}[3]
+ output out : {flip ready : UInt<1>, valid : UInt<1>, bits : {idx : UInt<12>, id : UInt<2>, tag : UInt<14>}}
+ output chosen : UInt<2>
+
+ wire T_177795 : UInt<2>
+ reg T_177796 : UInt<2>
+ onreset T_177796 := UInt<2>(0)
+ node T_177797 = gt(UInt<1>(0), T_177796)
+ node T_177798 = and(in[0].valid, T_177797)
+ node T_177799 = gt(UInt<1>(1), T_177796)
+ node T_177800 = and(in[1].valid, T_177799)
+ node T_177801 = gt(UInt<2>(2), T_177796)
+ node T_177802 = and(in[2].valid, T_177801)
+ node T_177803 = or(UInt<1>(0), T_177798)
+ node T_177804 = eq(T_177803, UInt<1>(0))
+ node T_177805 = or(UInt<1>(0), T_177798)
+ node T_177806 = or(T_177805, T_177800)
+ node T_177807 = eq(T_177806, UInt<1>(0))
+ node T_177808 = or(UInt<1>(0), T_177798)
+ node T_177809 = or(T_177808, T_177800)
+ node T_177810 = or(T_177809, T_177802)
+ node T_177811 = eq(T_177810, UInt<1>(0))
+ node T_177812 = or(UInt<1>(0), T_177798)
+ node T_177813 = or(T_177812, T_177800)
+ node T_177814 = or(T_177813, T_177802)
+ node T_177815 = or(T_177814, in[0].valid)
+ node T_177816 = eq(T_177815, UInt<1>(0))
+ node T_177817 = or(UInt<1>(0), T_177798)
+ node T_177818 = or(T_177817, T_177800)
+ node T_177819 = or(T_177818, T_177802)
+ node T_177820 = or(T_177819, in[0].valid)
+ node T_177821 = or(T_177820, in[1].valid)
+ node T_177822 = eq(T_177821, UInt<1>(0))
+ node T_177823 = gt(UInt<1>(0), T_177796)
+ node T_177824 = and(UInt<1>(1), T_177823)
+ node T_177825 = or(T_177824, T_177811)
+ node T_177826 = gt(UInt<1>(1), T_177796)
+ node T_177827 = and(T_177804, T_177826)
+ node T_177828 = or(T_177827, T_177816)
+ node T_177829 = gt(UInt<2>(2), T_177796)
+ node T_177830 = and(T_177807, T_177829)
+ node T_177831 = or(T_177830, T_177822)
+ node T_177832 = eq(UInt<2>(2), UInt<1>(0))
+ wire T_177833 : UInt<1>
+ T_177833 := T_177825
+ when UInt<1>(0) : T_177833 := T_177832
+ node T_177834 = and(T_177833, out.ready)
+ in[0].ready := T_177834
+ node T_177835 = eq(UInt<2>(2), UInt<1>(1))
+ wire T_177836 : UInt<1>
+ T_177836 := T_177828
+ when UInt<1>(0) : T_177836 := T_177835
+ node T_177837 = and(T_177836, out.ready)
+ in[1].ready := T_177837
+ node T_177838 = eq(UInt<2>(2), UInt<2>(2))
+ wire T_177839 : UInt<1>
+ T_177839 := T_177831
+ when UInt<1>(0) : T_177839 := T_177838
+ node T_177840 = and(T_177839, out.ready)
+ in[2].ready := T_177840
+ accessor T_177841 = in[T_177795]
+ out.valid := T_177841.valid
+ accessor T_177842 = in[T_177795]
+ out.bits := T_177842.bits
+ chosen := T_177795
+ wire T_177843 : UInt<2>
+ T_177843 := UInt<2>(2)
+ when in[1].valid : T_177843 := UInt<1>(1)
+ wire T_177844 : UInt<2>
+ T_177844 := T_177843
+ when in[0].valid : T_177844 := UInt<1>(0)
+ node T_177845 = gt(UInt<2>(2), T_177796)
+ node T_177846 = and(in[2].valid, T_177845)
+ wire T_177847 : UInt<2>
+ T_177847 := T_177844
+ when T_177846 : T_177847 := UInt<2>(2)
+ node T_177848 = gt(UInt<1>(1), T_177796)
+ node T_177849 = and(in[1].valid, T_177848)
+ wire T_177850 : UInt<2>
+ T_177850 := T_177847
+ when T_177849 : T_177850 := UInt<1>(1)
+ wire T_177851 : UInt<2>
+ T_177851 := T_177850
+ when UInt<1>(0) : T_177851 := UInt<2>(2)
+ T_177795 := T_177851
+
+ node T_177852 = and(out.ready, out.valid)
+ when T_177852 : T_177796 := T_177795
+ module RRArbiter_107737 :
+ input in : {flip ready : UInt<1>, valid : UInt<1>, bits : {idx : UInt<12>, way_en : UInt<8>, data : {tag : UInt<14>, coh : {inner : {sharers : UInt<1>, makeGrant$default$3 : UInt<1>, makeGrant$default$4 : UInt<1>}, outer : {state : UInt<2>, makeRelease$default$2 : UInt<1>, makeRelease$default$3 : UInt<1>, makeVoluntaryRelease$default$4 : UInt<1>, makeVoluntaryRelease$default$5 : UInt<1>, makeVoluntaryWriteback$default$3 : UInt<1>, makeVoluntaryWriteback$default$4 : UInt<1>}}}, id : UInt<2>}}[3]
+ output out : {flip ready : UInt<1>, valid : UInt<1>, bits : {idx : UInt<12>, way_en : UInt<8>, data : {tag : UInt<14>, coh : {inner : {sharers : UInt<1>, makeGrant$default$3 : UInt<1>, makeGrant$default$4 : UInt<1>}, outer : {state : UInt<2>, makeRelease$default$2 : UInt<1>, makeRelease$default$3 : UInt<1>, makeVoluntaryRelease$default$4 : UInt<1>, makeVoluntaryRelease$default$5 : UInt<1>, makeVoluntaryWriteback$default$3 : UInt<1>, makeVoluntaryWriteback$default$4 : UInt<1>}}}, id : UInt<2>}}
+ output chosen : UInt<2>
+
+ wire T_177853 : UInt<3>[3]
+ T_177853[0] := UInt<3>(0)
+ T_177853[1] := UInt<3>(1)
+ T_177853[2] := UInt<3>(2)
+ wire T_177854 : UInt<2>[2]
+ T_177854[0] := UInt<2>(0)
+ T_177854[1] := UInt<2>(1)
+ wire T_177855 : UInt<2>[3]
+ T_177855[0] := UInt<2>(1)
+ T_177855[1] := UInt<2>(2)
+ T_177855[2] := UInt<2>(3)
+ wire T_177856 : UInt<2>[2]
+ T_177856[0] := UInt<2>(2)
+ T_177856[1] := UInt<2>(3)
+ wire T_177857 : UInt<2>[1]
+ T_177857[0] := UInt<2>(3)
+ wire T_177858 : UInt<3>[3]
+ T_177858[0] := UInt<3>(0)
+ T_177858[1] := UInt<3>(1)
+ T_177858[2] := UInt<3>(2)
+ wire T_177859 : UInt<2>[2]
+ T_177859[0] := UInt<2>(0)
+ T_177859[1] := UInt<2>(1)
+ wire T_177860 : UInt<2>[3]
+ T_177860[0] := UInt<2>(1)
+ T_177860[1] := UInt<2>(2)
+ T_177860[2] := UInt<2>(3)
+ wire T_177861 : UInt<2>[2]
+ T_177861[0] := UInt<2>(2)
+ T_177861[1] := UInt<2>(3)
+ wire T_177862 : UInt<2>[1]
+ T_177862[0] := UInt<2>(3)
+ wire T_177863 : UInt<3>[3]
+ T_177863[0] := UInt<3>(0)
+ T_177863[1] := UInt<3>(1)
+ T_177863[2] := UInt<3>(2)
+ wire T_177864 : UInt<0>[1]
+ T_177864[0] := UInt<0>(0)
+ wire T_177865 : UInt<2>[2]
+ T_177865[0] := UInt<2>(1)
+ T_177865[1] := UInt<2>(2)
+ wire T_177866 : UInt<2>[2]
+ T_177866[0] := UInt<2>(1)
+ T_177866[1] := UInt<2>(2)
+ wire T_177867 : UInt<2>[1]
+ T_177867[0] := UInt<2>(2)
+ wire T_177868 : UInt<3>[3]
+ T_177868[0] := UInt<3>(0)
+ T_177868[1] := UInt<3>(1)
+ T_177868[2] := UInt<3>(2)
+ wire T_177869 : UInt<2>[2]
+ T_177869[0] := UInt<2>(0)
+ T_177869[1] := UInt<2>(1)
+ wire T_177870 : UInt<2>[3]
+ T_177870[0] := UInt<2>(1)
+ T_177870[1] := UInt<2>(2)
+ T_177870[2] := UInt<2>(3)
+ wire T_177871 : UInt<2>[2]
+ T_177871[0] := UInt<2>(2)
+ T_177871[1] := UInt<2>(3)
+ wire T_177872 : UInt<2>[1]
+ T_177872[0] := UInt<2>(3)
+ wire T_177873 : UInt<3>[3]
+ T_177873[0] := UInt<3>(0)
+ T_177873[1] := UInt<3>(1)
+ T_177873[2] := UInt<3>(2)
+ wire T_177874 : UInt<2>[2]
+ T_177874[0] := UInt<2>(0)
+ T_177874[1] := UInt<2>(1)
+ wire T_177875 : UInt<2>[3]
+ T_177875[0] := UInt<2>(1)
+ T_177875[1] := UInt<2>(2)
+ T_177875[2] := UInt<2>(3)
+ wire T_177876 : UInt<2>[2]
+ T_177876[0] := UInt<2>(2)
+ T_177876[1] := UInt<2>(3)
+ wire T_177877 : UInt<2>[1]
+ T_177877[0] := UInt<2>(3)
+ wire T_177878 : UInt<3>[3]
+ T_177878[0] := UInt<3>(0)
+ T_177878[1] := UInt<3>(1)
+ T_177878[2] := UInt<3>(2)
+ wire T_177879 : UInt<0>[1]
+ T_177879[0] := UInt<0>(0)
+ wire T_177880 : UInt<2>[2]
+ T_177880[0] := UInt<2>(1)
+ T_177880[1] := UInt<2>(2)
+ wire T_177881 : UInt<2>[2]
+ T_177881[0] := UInt<2>(1)
+ T_177881[1] := UInt<2>(2)
+ wire T_177882 : UInt<2>[1]
+ T_177882[0] := UInt<2>(2)
+ wire T_177883 : UInt<3>[3]
+ T_177883[0] := UInt<3>(0)
+ T_177883[1] := UInt<3>(1)
+ T_177883[2] := UInt<3>(2)
+ wire T_177884 : UInt<2>[2]
+ T_177884[0] := UInt<2>(0)
+ T_177884[1] := UInt<2>(1)
+ wire T_177885 : UInt<2>[3]
+ T_177885[0] := UInt<2>(1)
+ T_177885[1] := UInt<2>(2)
+ T_177885[2] := UInt<2>(3)
+ wire T_177886 : UInt<2>[2]
+ T_177886[0] := UInt<2>(2)
+ T_177886[1] := UInt<2>(3)
+ wire T_177887 : UInt<2>[1]
+ T_177887[0] := UInt<2>(3)
+ wire T_177888 : UInt<3>[3]
+ T_177888[0] := UInt<3>(0)
+ T_177888[1] := UInt<3>(1)
+ T_177888[2] := UInt<3>(2)
+ wire T_177889 : UInt<2>[2]
+ T_177889[0] := UInt<2>(0)
+ T_177889[1] := UInt<2>(1)
+ wire T_177890 : UInt<2>[3]
+ T_177890[0] := UInt<2>(1)
+ T_177890[1] := UInt<2>(2)
+ T_177890[2] := UInt<2>(3)
+ wire T_177891 : UInt<2>[2]
+ T_177891[0] := UInt<2>(2)
+ T_177891[1] := UInt<2>(3)
+ wire T_177892 : UInt<2>[1]
+ T_177892[0] := UInt<2>(3)
+ wire T_177893 : UInt<3>[3]
+ T_177893[0] := UInt<3>(0)
+ T_177893[1] := UInt<3>(1)
+ T_177893[2] := UInt<3>(2)
+ wire T_177894 : UInt<0>[1]
+ T_177894[0] := UInt<0>(0)
+ wire T_177895 : UInt<2>[2]
+ T_177895[0] := UInt<2>(1)
+ T_177895[1] := UInt<2>(2)
+ wire T_177896 : UInt<2>[2]
+ T_177896[0] := UInt<2>(1)
+ T_177896[1] := UInt<2>(2)
+ wire T_177897 : UInt<2>[1]
+ T_177897[0] := UInt<2>(2)
+ wire T_177898 : UInt<3>[3]
+ T_177898[0] := UInt<3>(0)
+ T_177898[1] := UInt<3>(1)
+ T_177898[2] := UInt<3>(2)
+ wire T_177899 : UInt<2>[2]
+ T_177899[0] := UInt<2>(0)
+ T_177899[1] := UInt<2>(1)
+ wire T_177900 : UInt<2>[3]
+ T_177900[0] := UInt<2>(1)
+ T_177900[1] := UInt<2>(2)
+ T_177900[2] := UInt<2>(3)
+ wire T_177901 : UInt<2>[2]
+ T_177901[0] := UInt<2>(2)
+ T_177901[1] := UInt<2>(3)
+ wire T_177902 : UInt<2>[1]
+ T_177902[0] := UInt<2>(3)
+ wire T_177903 : UInt<3>[3]
+ T_177903[0] := UInt<3>(0)
+ T_177903[1] := UInt<3>(1)
+ T_177903[2] := UInt<3>(2)
+ wire T_177904 : UInt<2>[2]
+ T_177904[0] := UInt<2>(0)
+ T_177904[1] := UInt<2>(1)
+ wire T_177905 : UInt<2>[3]
+ T_177905[0] := UInt<2>(1)
+ T_177905[1] := UInt<2>(2)
+ T_177905[2] := UInt<2>(3)
+ wire T_177906 : UInt<2>[2]
+ T_177906[0] := UInt<2>(2)
+ T_177906[1] := UInt<2>(3)
+ wire T_177907 : UInt<2>[1]
+ T_177907[0] := UInt<2>(3)
+ wire T_177908 : UInt<3>[3]
+ T_177908[0] := UInt<3>(0)
+ T_177908[1] := UInt<3>(1)
+ T_177908[2] := UInt<3>(2)
+ wire T_177909 : UInt<0>[1]
+ T_177909[0] := UInt<0>(0)
+ wire T_177910 : UInt<2>[2]
+ T_177910[0] := UInt<2>(1)
+ T_177910[1] := UInt<2>(2)
+ wire T_177911 : UInt<2>[2]
+ T_177911[0] := UInt<2>(1)
+ T_177911[1] := UInt<2>(2)
+ wire T_177912 : UInt<2>[1]
+ T_177912[0] := UInt<2>(2)
+ wire T_177913 : UInt<3>[3]
+ T_177913[0] := UInt<3>(0)
+ T_177913[1] := UInt<3>(1)
+ T_177913[2] := UInt<3>(2)
+ wire T_177914 : UInt<2>[2]
+ T_177914[0] := UInt<2>(0)
+ T_177914[1] := UInt<2>(1)
+ wire T_177915 : UInt<2>[3]
+ T_177915[0] := UInt<2>(1)
+ T_177915[1] := UInt<2>(2)
+ T_177915[2] := UInt<2>(3)
+ wire T_177916 : UInt<2>[2]
+ T_177916[0] := UInt<2>(2)
+ T_177916[1] := UInt<2>(3)
+ wire T_177917 : UInt<2>[1]
+ T_177917[0] := UInt<2>(3)
+ wire T_177918 : UInt<3>[3]
+ T_177918[0] := UInt<3>(0)
+ T_177918[1] := UInt<3>(1)
+ T_177918[2] := UInt<3>(2)
+ wire T_177919 : UInt<2>[2]
+ T_177919[0] := UInt<2>(0)
+ T_177919[1] := UInt<2>(1)
+ wire T_177920 : UInt<2>[3]
+ T_177920[0] := UInt<2>(1)
+ T_177920[1] := UInt<2>(2)
+ T_177920[2] := UInt<2>(3)
+ wire T_177921 : UInt<2>[2]
+ T_177921[0] := UInt<2>(2)
+ T_177921[1] := UInt<2>(3)
+ wire T_177922 : UInt<2>[1]
+ T_177922[0] := UInt<2>(3)
+ wire T_177923 : UInt<3>[3]
+ T_177923[0] := UInt<3>(0)
+ T_177923[1] := UInt<3>(1)
+ T_177923[2] := UInt<3>(2)
+ wire T_177924 : UInt<0>[1]
+ T_177924[0] := UInt<0>(0)
+ wire T_177925 : UInt<2>[2]
+ T_177925[0] := UInt<2>(1)
+ T_177925[1] := UInt<2>(2)
+ wire T_177926 : UInt<2>[2]
+ T_177926[0] := UInt<2>(1)
+ T_177926[1] := UInt<2>(2)
+ wire T_177927 : UInt<2>[1]
+ T_177927[0] := UInt<2>(2)
+ wire T_177928 : UInt<3>[3]
+ T_177928[0] := UInt<3>(0)
+ T_177928[1] := UInt<3>(1)
+ T_177928[2] := UInt<3>(2)
+ wire T_177929 : UInt<2>[2]
+ T_177929[0] := UInt<2>(0)
+ T_177929[1] := UInt<2>(1)
+ wire T_177930 : UInt<2>[3]
+ T_177930[0] := UInt<2>(1)
+ T_177930[1] := UInt<2>(2)
+ T_177930[2] := UInt<2>(3)
+ wire T_177931 : UInt<2>[2]
+ T_177931[0] := UInt<2>(2)
+ T_177931[1] := UInt<2>(3)
+ wire T_177932 : UInt<2>[1]
+ T_177932[0] := UInt<2>(3)
+ wire T_177933 : UInt<3>[3]
+ T_177933[0] := UInt<3>(0)
+ T_177933[1] := UInt<3>(1)
+ T_177933[2] := UInt<3>(2)
+ wire T_177934 : UInt<2>[2]
+ T_177934[0] := UInt<2>(0)
+ T_177934[1] := UInt<2>(1)
+ wire T_177935 : UInt<2>[3]
+ T_177935[0] := UInt<2>(1)
+ T_177935[1] := UInt<2>(2)
+ T_177935[2] := UInt<2>(3)
+ wire T_177936 : UInt<2>[2]
+ T_177936[0] := UInt<2>(2)
+ T_177936[1] := UInt<2>(3)
+ wire T_177937 : UInt<2>[1]
+ T_177937[0] := UInt<2>(3)
+ wire T_177938 : UInt<3>[3]
+ T_177938[0] := UInt<3>(0)
+ T_177938[1] := UInt<3>(1)
+ T_177938[2] := UInt<3>(2)
+ wire T_177939 : UInt<0>[1]
+ T_177939[0] := UInt<0>(0)
+ wire T_177940 : UInt<2>[2]
+ T_177940[0] := UInt<2>(1)
+ T_177940[1] := UInt<2>(2)
+ wire T_177941 : UInt<2>[2]
+ T_177941[0] := UInt<2>(1)
+ T_177941[1] := UInt<2>(2)
+ wire T_177942 : UInt<2>[1]
+ T_177942[0] := UInt<2>(2)
+ wire T_177943 : UInt<3>[3]
+ T_177943[0] := UInt<3>(0)
+ T_177943[1] := UInt<3>(1)
+ T_177943[2] := UInt<3>(2)
+ wire T_177944 : UInt<2>[2]
+ T_177944[0] := UInt<2>(0)
+ T_177944[1] := UInt<2>(1)
+ wire T_177945 : UInt<2>[3]
+ T_177945[0] := UInt<2>(1)
+ T_177945[1] := UInt<2>(2)
+ T_177945[2] := UInt<2>(3)
+ wire T_177946 : UInt<2>[2]
+ T_177946[0] := UInt<2>(2)
+ T_177946[1] := UInt<2>(3)
+ wire T_177947 : UInt<2>[1]
+ T_177947[0] := UInt<2>(3)
+ wire T_177948 : UInt<3>[3]
+ T_177948[0] := UInt<3>(0)
+ T_177948[1] := UInt<3>(1)
+ T_177948[2] := UInt<3>(2)
+ wire T_177949 : UInt<2>[2]
+ T_177949[0] := UInt<2>(0)
+ T_177949[1] := UInt<2>(1)
+ wire T_177950 : UInt<2>[3]
+ T_177950[0] := UInt<2>(1)
+ T_177950[1] := UInt<2>(2)
+ T_177950[2] := UInt<2>(3)
+ wire T_177951 : UInt<2>[2]
+ T_177951[0] := UInt<2>(2)
+ T_177951[1] := UInt<2>(3)
+ wire T_177952 : UInt<2>[1]
+ T_177952[0] := UInt<2>(3)
+ wire T_177953 : UInt<3>[3]
+ T_177953[0] := UInt<3>(0)
+ T_177953[1] := UInt<3>(1)
+ T_177953[2] := UInt<3>(2)
+ wire T_177954 : UInt<0>[1]
+ T_177954[0] := UInt<0>(0)
+ wire T_177955 : UInt<2>[2]
+ T_177955[0] := UInt<2>(1)
+ T_177955[1] := UInt<2>(2)
+ wire T_177956 : UInt<2>[2]
+ T_177956[0] := UInt<2>(1)
+ T_177956[1] := UInt<2>(2)
+ wire T_177957 : UInt<2>[1]
+ T_177957[0] := UInt<2>(2)
+ wire T_177958 : UInt<3>[3]
+ T_177958[0] := UInt<3>(0)
+ T_177958[1] := UInt<3>(1)
+ T_177958[2] := UInt<3>(2)
+ wire T_177959 : UInt<2>[2]
+ T_177959[0] := UInt<2>(0)
+ T_177959[1] := UInt<2>(1)
+ wire T_177960 : UInt<2>[3]
+ T_177960[0] := UInt<2>(1)
+ T_177960[1] := UInt<2>(2)
+ T_177960[2] := UInt<2>(3)
+ wire T_177961 : UInt<2>[2]
+ T_177961[0] := UInt<2>(2)
+ T_177961[1] := UInt<2>(3)
+ wire T_177962 : UInt<2>[1]
+ T_177962[0] := UInt<2>(3)
+ wire T_177963 : UInt<3>[3]
+ T_177963[0] := UInt<3>(0)
+ T_177963[1] := UInt<3>(1)
+ T_177963[2] := UInt<3>(2)
+ wire T_177964 : UInt<2>[2]
+ T_177964[0] := UInt<2>(0)
+ T_177964[1] := UInt<2>(1)
+ wire T_177965 : UInt<2>[3]
+ T_177965[0] := UInt<2>(1)
+ T_177965[1] := UInt<2>(2)
+ T_177965[2] := UInt<2>(3)
+ wire T_177966 : UInt<2>[2]
+ T_177966[0] := UInt<2>(2)
+ T_177966[1] := UInt<2>(3)
+ wire T_177967 : UInt<2>[1]
+ T_177967[0] := UInt<2>(3)
+ wire T_177968 : UInt<3>[3]
+ T_177968[0] := UInt<3>(0)
+ T_177968[1] := UInt<3>(1)
+ T_177968[2] := UInt<3>(2)
+ wire T_177969 : UInt<0>[1]
+ T_177969[0] := UInt<0>(0)
+ wire T_177970 : UInt<2>[2]
+ T_177970[0] := UInt<2>(1)
+ T_177970[1] := UInt<2>(2)
+ wire T_177971 : UInt<2>[2]
+ T_177971[0] := UInt<2>(1)
+ T_177971[1] := UInt<2>(2)
+ wire T_177972 : UInt<2>[1]
+ T_177972[0] := UInt<2>(2)
+ wire T_177973 : UInt<3>[3]
+ T_177973[0] := UInt<3>(0)
+ T_177973[1] := UInt<3>(1)
+ T_177973[2] := UInt<3>(2)
+ wire T_177974 : UInt<2>[2]
+ T_177974[0] := UInt<2>(0)
+ T_177974[1] := UInt<2>(1)
+ wire T_177975 : UInt<2>[3]
+ T_177975[0] := UInt<2>(1)
+ T_177975[1] := UInt<2>(2)
+ T_177975[2] := UInt<2>(3)
+ wire T_177976 : UInt<2>[2]
+ T_177976[0] := UInt<2>(2)
+ T_177976[1] := UInt<2>(3)
+ wire T_177977 : UInt<2>[1]
+ T_177977[0] := UInt<2>(3)
+ wire T_177978 : UInt<3>[3]
+ T_177978[0] := UInt<3>(0)
+ T_177978[1] := UInt<3>(1)
+ T_177978[2] := UInt<3>(2)
+ wire T_177979 : UInt<2>[2]
+ T_177979[0] := UInt<2>(0)
+ T_177979[1] := UInt<2>(1)
+ wire T_177980 : UInt<2>[3]
+ T_177980[0] := UInt<2>(1)
+ T_177980[1] := UInt<2>(2)
+ T_177980[2] := UInt<2>(3)
+ wire T_177981 : UInt<2>[2]
+ T_177981[0] := UInt<2>(2)
+ T_177981[1] := UInt<2>(3)
+ wire T_177982 : UInt<2>[1]
+ T_177982[0] := UInt<2>(3)
+ wire T_177983 : UInt<3>[3]
+ T_177983[0] := UInt<3>(0)
+ T_177983[1] := UInt<3>(1)
+ T_177983[2] := UInt<3>(2)
+ wire T_177984 : UInt<0>[1]
+ T_177984[0] := UInt<0>(0)
+ wire T_177985 : UInt<2>[2]
+ T_177985[0] := UInt<2>(1)
+ T_177985[1] := UInt<2>(2)
+ wire T_177986 : UInt<2>[2]
+ T_177986[0] := UInt<2>(1)
+ T_177986[1] := UInt<2>(2)
+ wire T_177987 : UInt<2>[1]
+ T_177987[0] := UInt<2>(2)
+ wire T_177988 : UInt<3>[3]
+ T_177988[0] := UInt<3>(0)
+ T_177988[1] := UInt<3>(1)
+ T_177988[2] := UInt<3>(2)
+ wire T_177989 : UInt<2>[2]
+ T_177989[0] := UInt<2>(0)
+ T_177989[1] := UInt<2>(1)
+ wire T_177990 : UInt<2>[3]
+ T_177990[0] := UInt<2>(1)
+ T_177990[1] := UInt<2>(2)
+ T_177990[2] := UInt<2>(3)
+ wire T_177991 : UInt<2>[2]
+ T_177991[0] := UInt<2>(2)
+ T_177991[1] := UInt<2>(3)
+ wire T_177992 : UInt<2>[1]
+ T_177992[0] := UInt<2>(3)
+ wire T_177993 : UInt<3>[3]
+ T_177993[0] := UInt<3>(0)
+ T_177993[1] := UInt<3>(1)
+ T_177993[2] := UInt<3>(2)
+ wire T_177994 : UInt<2>[2]
+ T_177994[0] := UInt<2>(0)
+ T_177994[1] := UInt<2>(1)
+ wire T_177995 : UInt<2>[3]
+ T_177995[0] := UInt<2>(1)
+ T_177995[1] := UInt<2>(2)
+ T_177995[2] := UInt<2>(3)
+ wire T_177996 : UInt<2>[2]
+ T_177996[0] := UInt<2>(2)
+ T_177996[1] := UInt<2>(3)
+ wire T_177997 : UInt<2>[1]
+ T_177997[0] := UInt<2>(3)
+ wire T_177998 : UInt<3>[3]
+ T_177998[0] := UInt<3>(0)
+ T_177998[1] := UInt<3>(1)
+ T_177998[2] := UInt<3>(2)
+ wire T_177999 : UInt<0>[1]
+ T_177999[0] := UInt<0>(0)
+ wire T_178000 : UInt<2>[2]
+ T_178000[0] := UInt<2>(1)
+ T_178000[1] := UInt<2>(2)
+ wire T_178001 : UInt<2>[2]
+ T_178001[0] := UInt<2>(1)
+ T_178001[1] := UInt<2>(2)
+ wire T_178002 : UInt<2>[1]
+ T_178002[0] := UInt<2>(2)
+ wire T_178003 : UInt<2>
+ reg T_178004 : UInt<2>
+ onreset T_178004 := UInt<2>(0)
+ node T_178005 = gt(UInt<1>(0), T_178004)
+ node T_178006 = and(in[0].valid, T_178005)
+ node T_178007 = gt(UInt<1>(1), T_178004)
+ node T_178008 = and(in[1].valid, T_178007)
+ node T_178009 = gt(UInt<2>(2), T_178004)
+ node T_178010 = and(in[2].valid, T_178009)
+ node T_178011 = or(UInt<1>(0), T_178006)
+ node T_178012 = eq(T_178011, UInt<1>(0))
+ node T_178013 = or(UInt<1>(0), T_178006)
+ node T_178014 = or(T_178013, T_178008)
+ node T_178015 = eq(T_178014, UInt<1>(0))
+ node T_178016 = or(UInt<1>(0), T_178006)
+ node T_178017 = or(T_178016, T_178008)
+ node T_178018 = or(T_178017, T_178010)
+ node T_178019 = eq(T_178018, UInt<1>(0))
+ node T_178020 = or(UInt<1>(0), T_178006)
+ node T_178021 = or(T_178020, T_178008)
+ node T_178022 = or(T_178021, T_178010)
+ node T_178023 = or(T_178022, in[0].valid)
+ node T_178024 = eq(T_178023, UInt<1>(0))
+ node T_178025 = or(UInt<1>(0), T_178006)
+ node T_178026 = or(T_178025, T_178008)
+ node T_178027 = or(T_178026, T_178010)
+ node T_178028 = or(T_178027, in[0].valid)
+ node T_178029 = or(T_178028, in[1].valid)
+ node T_178030 = eq(T_178029, UInt<1>(0))
+ node T_178031 = gt(UInt<1>(0), T_178004)
+ node T_178032 = and(UInt<1>(1), T_178031)
+ node T_178033 = or(T_178032, T_178019)
+ node T_178034 = gt(UInt<1>(1), T_178004)
+ node T_178035 = and(T_178012, T_178034)
+ node T_178036 = or(T_178035, T_178024)
+ node T_178037 = gt(UInt<2>(2), T_178004)
+ node T_178038 = and(T_178015, T_178037)
+ node T_178039 = or(T_178038, T_178030)
+ node T_178040 = eq(UInt<2>(2), UInt<1>(0))
+ wire T_178041 : UInt<1>
+ T_178041 := T_178033
+ when UInt<1>(0) : T_178041 := T_178040
+ node T_178042 = and(T_178041, out.ready)
+ in[0].ready := T_178042
+ node T_178043 = eq(UInt<2>(2), UInt<1>(1))
+ wire T_178044 : UInt<1>
+ T_178044 := T_178036
+ when UInt<1>(0) : T_178044 := T_178043
+ node T_178045 = and(T_178044, out.ready)
+ in[1].ready := T_178045
+ node T_178046 = eq(UInt<2>(2), UInt<2>(2))
+ wire T_178047 : UInt<1>
+ T_178047 := T_178039
+ when UInt<1>(0) : T_178047 := T_178046
+ node T_178048 = and(T_178047, out.ready)
+ in[2].ready := T_178048
+ wire T_178049 : UInt<3>[3]
+ T_178049[0] := UInt<3>(0)
+ T_178049[1] := UInt<3>(1)
+ T_178049[2] := UInt<3>(2)
+ wire T_178050 : UInt<2>[2]
+ T_178050[0] := UInt<2>(0)
+ T_178050[1] := UInt<2>(1)
+ wire T_178051 : UInt<2>[3]
+ T_178051[0] := UInt<2>(1)
+ T_178051[1] := UInt<2>(2)
+ T_178051[2] := UInt<2>(3)
+ wire T_178052 : UInt<2>[2]
+ T_178052[0] := UInt<2>(2)
+ T_178052[1] := UInt<2>(3)
+ wire T_178053 : UInt<2>[1]
+ T_178053[0] := UInt<2>(3)
+ wire T_178054 : UInt<3>[3]
+ T_178054[0] := UInt<3>(0)
+ T_178054[1] := UInt<3>(1)
+ T_178054[2] := UInt<3>(2)
+ wire T_178055 : UInt<2>[2]
+ T_178055[0] := UInt<2>(0)
+ T_178055[1] := UInt<2>(1)
+ wire T_178056 : UInt<2>[3]
+ T_178056[0] := UInt<2>(1)
+ T_178056[1] := UInt<2>(2)
+ T_178056[2] := UInt<2>(3)
+ wire T_178057 : UInt<2>[2]
+ T_178057[0] := UInt<2>(2)
+ T_178057[1] := UInt<2>(3)
+ wire T_178058 : UInt<2>[1]
+ T_178058[0] := UInt<2>(3)
+ wire T_178059 : UInt<3>[3]
+ T_178059[0] := UInt<3>(0)
+ T_178059[1] := UInt<3>(1)
+ T_178059[2] := UInt<3>(2)
+ wire T_178060 : UInt<0>[1]
+ T_178060[0] := UInt<0>(0)
+ wire T_178061 : UInt<2>[2]
+ T_178061[0] := UInt<2>(1)
+ T_178061[1] := UInt<2>(2)
+ wire T_178062 : UInt<2>[2]
+ T_178062[0] := UInt<2>(1)
+ T_178062[1] := UInt<2>(2)
+ wire T_178063 : UInt<2>[1]
+ T_178063[0] := UInt<2>(2)
+ wire T_178064 : UInt<3>[3]
+ T_178064[0] := UInt<3>(0)
+ T_178064[1] := UInt<3>(1)
+ T_178064[2] := UInt<3>(2)
+ wire T_178065 : UInt<2>[2]
+ T_178065[0] := UInt<2>(0)
+ T_178065[1] := UInt<2>(1)
+ wire T_178066 : UInt<2>[3]
+ T_178066[0] := UInt<2>(1)
+ T_178066[1] := UInt<2>(2)
+ T_178066[2] := UInt<2>(3)
+ wire T_178067 : UInt<2>[2]
+ T_178067[0] := UInt<2>(2)
+ T_178067[1] := UInt<2>(3)
+ wire T_178068 : UInt<2>[1]
+ T_178068[0] := UInt<2>(3)
+ wire T_178069 : UInt<3>[3]
+ T_178069[0] := UInt<3>(0)
+ T_178069[1] := UInt<3>(1)
+ T_178069[2] := UInt<3>(2)
+ wire T_178070 : UInt<2>[2]
+ T_178070[0] := UInt<2>(0)
+ T_178070[1] := UInt<2>(1)
+ wire T_178071 : UInt<2>[3]
+ T_178071[0] := UInt<2>(1)
+ T_178071[1] := UInt<2>(2)
+ T_178071[2] := UInt<2>(3)
+ wire T_178072 : UInt<2>[2]
+ T_178072[0] := UInt<2>(2)
+ T_178072[1] := UInt<2>(3)
+ wire T_178073 : UInt<2>[1]
+ T_178073[0] := UInt<2>(3)
+ wire T_178074 : UInt<3>[3]
+ T_178074[0] := UInt<3>(0)
+ T_178074[1] := UInt<3>(1)
+ T_178074[2] := UInt<3>(2)
+ wire T_178075 : UInt<0>[1]
+ T_178075[0] := UInt<0>(0)
+ wire T_178076 : UInt<2>[2]
+ T_178076[0] := UInt<2>(1)
+ T_178076[1] := UInt<2>(2)
+ wire T_178077 : UInt<2>[2]
+ T_178077[0] := UInt<2>(1)
+ T_178077[1] := UInt<2>(2)
+ wire T_178078 : UInt<2>[1]
+ T_178078[0] := UInt<2>(2)
+ accessor T_178079 = in[T_178003]
+ out.valid := T_178079.valid
+ wire T_178080 : UInt<3>[3]
+ T_178080[0] := UInt<3>(0)
+ T_178080[1] := UInt<3>(1)
+ T_178080[2] := UInt<3>(2)
+ wire T_178081 : UInt<2>[2]
+ T_178081[0] := UInt<2>(0)
+ T_178081[1] := UInt<2>(1)
+ wire T_178082 : UInt<2>[3]
+ T_178082[0] := UInt<2>(1)
+ T_178082[1] := UInt<2>(2)
+ T_178082[2] := UInt<2>(3)
+ wire T_178083 : UInt<2>[2]
+ T_178083[0] := UInt<2>(2)
+ T_178083[1] := UInt<2>(3)
+ wire T_178084 : UInt<2>[1]
+ T_178084[0] := UInt<2>(3)
+ wire T_178085 : UInt<3>[3]
+ T_178085[0] := UInt<3>(0)
+ T_178085[1] := UInt<3>(1)
+ T_178085[2] := UInt<3>(2)
+ wire T_178086 : UInt<2>[2]
+ T_178086[0] := UInt<2>(0)
+ T_178086[1] := UInt<2>(1)
+ wire T_178087 : UInt<2>[3]
+ T_178087[0] := UInt<2>(1)
+ T_178087[1] := UInt<2>(2)
+ T_178087[2] := UInt<2>(3)
+ wire T_178088 : UInt<2>[2]
+ T_178088[0] := UInt<2>(2)
+ T_178088[1] := UInt<2>(3)
+ wire T_178089 : UInt<2>[1]
+ T_178089[0] := UInt<2>(3)
+ wire T_178090 : UInt<3>[3]
+ T_178090[0] := UInt<3>(0)
+ T_178090[1] := UInt<3>(1)
+ T_178090[2] := UInt<3>(2)
+ wire T_178091 : UInt<0>[1]
+ T_178091[0] := UInt<0>(0)
+ wire T_178092 : UInt<2>[2]
+ T_178092[0] := UInt<2>(1)
+ T_178092[1] := UInt<2>(2)
+ wire T_178093 : UInt<2>[2]
+ T_178093[0] := UInt<2>(1)
+ T_178093[1] := UInt<2>(2)
+ wire T_178094 : UInt<2>[1]
+ T_178094[0] := UInt<2>(2)
+ wire T_178095 : UInt<3>[3]
+ T_178095[0] := UInt<3>(0)
+ T_178095[1] := UInt<3>(1)
+ T_178095[2] := UInt<3>(2)
+ wire T_178096 : UInt<2>[2]
+ T_178096[0] := UInt<2>(0)
+ T_178096[1] := UInt<2>(1)
+ wire T_178097 : UInt<2>[3]
+ T_178097[0] := UInt<2>(1)
+ T_178097[1] := UInt<2>(2)
+ T_178097[2] := UInt<2>(3)
+ wire T_178098 : UInt<2>[2]
+ T_178098[0] := UInt<2>(2)
+ T_178098[1] := UInt<2>(3)
+ wire T_178099 : UInt<2>[1]
+ T_178099[0] := UInt<2>(3)
+ wire T_178100 : UInt<3>[3]
+ T_178100[0] := UInt<3>(0)
+ T_178100[1] := UInt<3>(1)
+ T_178100[2] := UInt<3>(2)
+ wire T_178101 : UInt<2>[2]
+ T_178101[0] := UInt<2>(0)
+ T_178101[1] := UInt<2>(1)
+ wire T_178102 : UInt<2>[3]
+ T_178102[0] := UInt<2>(1)
+ T_178102[1] := UInt<2>(2)
+ T_178102[2] := UInt<2>(3)
+ wire T_178103 : UInt<2>[2]
+ T_178103[0] := UInt<2>(2)
+ T_178103[1] := UInt<2>(3)
+ wire T_178104 : UInt<2>[1]
+ T_178104[0] := UInt<2>(3)
+ wire T_178105 : UInt<3>[3]
+ T_178105[0] := UInt<3>(0)
+ T_178105[1] := UInt<3>(1)
+ T_178105[2] := UInt<3>(2)
+ wire T_178106 : UInt<0>[1]
+ T_178106[0] := UInt<0>(0)
+ wire T_178107 : UInt<2>[2]
+ T_178107[0] := UInt<2>(1)
+ T_178107[1] := UInt<2>(2)
+ wire T_178108 : UInt<2>[2]
+ T_178108[0] := UInt<2>(1)
+ T_178108[1] := UInt<2>(2)
+ wire T_178109 : UInt<2>[1]
+ T_178109[0] := UInt<2>(2)
+ accessor T_178110 = in[T_178003]
+ out.bits := T_178110.bits
+ chosen := T_178003
+ wire T_178111 : UInt<2>
+ T_178111 := UInt<2>(2)
+ when in[1].valid : T_178111 := UInt<1>(1)
+ wire T_178112 : UInt<2>
+ T_178112 := T_178111
+ when in[0].valid : T_178112 := UInt<1>(0)
+ node T_178113 = gt(UInt<2>(2), T_178004)
+ node T_178114 = and(in[2].valid, T_178113)
+ wire T_178115 : UInt<2>
+ T_178115 := T_178112
+ when T_178114 : T_178115 := UInt<2>(2)
+ node T_178116 = gt(UInt<1>(1), T_178004)
+ node T_178117 = and(in[1].valid, T_178116)
+ wire T_178118 : UInt<2>
+ T_178118 := T_178115
+ when T_178117 : T_178118 := UInt<1>(1)
+ wire T_178119 : UInt<2>
+ T_178119 := T_178118
+ when UInt<1>(0) : T_178119 := UInt<2>(2)
+ T_178003 := T_178119
+
+ node T_178120 = and(out.ready, out.valid)
+ when T_178120 : T_178004 := T_178003
+ module RRArbiter_107931 :
+ input in : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_beat : UInt<2>, id : UInt<2>, addr_idx : UInt<12>, way_en : UInt<8>}}[4]
+ output out : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_beat : UInt<2>, id : UInt<2>, addr_idx : UInt<12>, way_en : UInt<8>}}
+ output chosen : UInt<2>
+
+ wire T_178121 : UInt<2>
+ reg T_178122 : UInt<2>
+ onreset T_178122 := UInt<2>(0)
+ node T_178123 = gt(UInt<1>(0), T_178122)
+ node T_178124 = and(in[0].valid, T_178123)
+ node T_178125 = gt(UInt<1>(1), T_178122)
+ node T_178126 = and(in[1].valid, T_178125)
+ node T_178127 = gt(UInt<2>(2), T_178122)
+ node T_178128 = and(in[2].valid, T_178127)
+ node T_178129 = gt(UInt<2>(3), T_178122)
+ node T_178130 = and(in[3].valid, T_178129)
+ node T_178131 = or(UInt<1>(0), T_178124)
+ node T_178132 = eq(T_178131, UInt<1>(0))
+ node T_178133 = or(UInt<1>(0), T_178124)
+ node T_178134 = or(T_178133, T_178126)
+ node T_178135 = eq(T_178134, UInt<1>(0))
+ node T_178136 = or(UInt<1>(0), T_178124)
+ node T_178137 = or(T_178136, T_178126)
+ node T_178138 = or(T_178137, T_178128)
+ node T_178139 = eq(T_178138, UInt<1>(0))
+ node T_178140 = or(UInt<1>(0), T_178124)
+ node T_178141 = or(T_178140, T_178126)
+ node T_178142 = or(T_178141, T_178128)
+ node T_178143 = or(T_178142, T_178130)
+ node T_178144 = eq(T_178143, UInt<1>(0))
+ node T_178145 = or(UInt<1>(0), T_178124)
+ node T_178146 = or(T_178145, T_178126)
+ node T_178147 = or(T_178146, T_178128)
+ node T_178148 = or(T_178147, T_178130)
+ node T_178149 = or(T_178148, in[0].valid)
+ node T_178150 = eq(T_178149, UInt<1>(0))
+ node T_178151 = or(UInt<1>(0), T_178124)
+ node T_178152 = or(T_178151, T_178126)
+ node T_178153 = or(T_178152, T_178128)
+ node T_178154 = or(T_178153, T_178130)
+ node T_178155 = or(T_178154, in[0].valid)
+ node T_178156 = or(T_178155, in[1].valid)
+ node T_178157 = eq(T_178156, UInt<1>(0))
+ node T_178158 = or(UInt<1>(0), T_178124)
+ node T_178159 = or(T_178158, T_178126)
+ node T_178160 = or(T_178159, T_178128)
+ node T_178161 = or(T_178160, T_178130)
+ node T_178162 = or(T_178161, in[0].valid)
+ node T_178163 = or(T_178162, in[1].valid)
+ node T_178164 = or(T_178163, in[2].valid)
+ node T_178165 = eq(T_178164, UInt<1>(0))
+ node T_178166 = gt(UInt<1>(0), T_178122)
+ node T_178167 = and(UInt<1>(1), T_178166)
+ node T_178168 = or(T_178167, T_178144)
+ node T_178169 = gt(UInt<1>(1), T_178122)
+ node T_178170 = and(T_178132, T_178169)
+ node T_178171 = or(T_178170, T_178150)
+ node T_178172 = gt(UInt<2>(2), T_178122)
+ node T_178173 = and(T_178135, T_178172)
+ node T_178174 = or(T_178173, T_178157)
+ node T_178175 = gt(UInt<2>(3), T_178122)
+ node T_178176 = and(T_178139, T_178175)
+ node T_178177 = or(T_178176, T_178165)
+ node T_178178 = eq(UInt<2>(3), UInt<1>(0))
+ wire T_178179 : UInt<1>
+ T_178179 := T_178168
+ when UInt<1>(0) : T_178179 := T_178178
+ node T_178180 = and(T_178179, out.ready)
+ in[0].ready := T_178180
+ node T_178181 = eq(UInt<2>(3), UInt<1>(1))
+ wire T_178182 : UInt<1>
+ T_178182 := T_178171
+ when UInt<1>(0) : T_178182 := T_178181
+ node T_178183 = and(T_178182, out.ready)
+ in[1].ready := T_178183
+ node T_178184 = eq(UInt<2>(3), UInt<2>(2))
+ wire T_178185 : UInt<1>
+ T_178185 := T_178174
+ when UInt<1>(0) : T_178185 := T_178184
+ node T_178186 = and(T_178185, out.ready)
+ in[2].ready := T_178186
+ node T_178187 = eq(UInt<2>(3), UInt<2>(3))
+ wire T_178188 : UInt<1>
+ T_178188 := T_178177
+ when UInt<1>(0) : T_178188 := T_178187
+ node T_178189 = and(T_178188, out.ready)
+ in[3].ready := T_178189
+ accessor T_178190 = in[T_178121]
+ out.valid := T_178190.valid
+ accessor T_178191 = in[T_178121]
+ out.bits := T_178191.bits
+ chosen := T_178121
+ wire T_178192 : UInt<2>
+ T_178192 := UInt<2>(3)
+ when in[2].valid : T_178192 := UInt<2>(2)
+ wire T_178193 : UInt<2>
+ T_178193 := T_178192
+ when in[1].valid : T_178193 := UInt<1>(1)
+ wire T_178194 : UInt<2>
+ T_178194 := T_178193
+ when in[0].valid : T_178194 := UInt<1>(0)
+ node T_178195 = gt(UInt<2>(3), T_178122)
+ node T_178196 = and(in[3].valid, T_178195)
+ wire T_178197 : UInt<2>
+ T_178197 := T_178194
+ when T_178196 : T_178197 := UInt<2>(3)
+ node T_178198 = gt(UInt<2>(2), T_178122)
+ node T_178199 = and(in[2].valid, T_178198)
+ wire T_178200 : UInt<2>
+ T_178200 := T_178197
+ when T_178199 : T_178200 := UInt<2>(2)
+ node T_178201 = gt(UInt<1>(1), T_178122)
+ node T_178202 = and(in[1].valid, T_178201)
+ wire T_178203 : UInt<2>
+ T_178203 := T_178200
+ when T_178202 : T_178203 := UInt<1>(1)
+ wire T_178204 : UInt<2>
+ T_178204 := T_178203
+ when UInt<1>(0) : T_178204 := UInt<2>(3)
+ T_178121 := T_178204
+
+ node T_178205 = and(out.ready, out.valid)
+ when T_178205 : T_178122 := T_178121
+ module RRArbiter_108094 :
+ input in : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_beat : UInt<2>, id : UInt<2>, addr_idx : UInt<12>, way_en : UInt<8>, data : UInt<128>, wmask : UInt<16>}}[3]
+ output out : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_beat : UInt<2>, id : UInt<2>, addr_idx : UInt<12>, way_en : UInt<8>, data : UInt<128>, wmask : UInt<16>}}
+ output chosen : UInt<2>
+
+ wire T_178206 : UInt<2>
+ reg T_178207 : UInt<2>
+ onreset T_178207 := UInt<2>(0)
+ node T_178208 = gt(UInt<1>(0), T_178207)
+ node T_178209 = and(in[0].valid, T_178208)
+ node T_178210 = gt(UInt<1>(1), T_178207)
+ node T_178211 = and(in[1].valid, T_178210)
+ node T_178212 = gt(UInt<2>(2), T_178207)
+ node T_178213 = and(in[2].valid, T_178212)
+ node T_178214 = or(UInt<1>(0), T_178209)
+ node T_178215 = eq(T_178214, UInt<1>(0))
+ node T_178216 = or(UInt<1>(0), T_178209)
+ node T_178217 = or(T_178216, T_178211)
+ node T_178218 = eq(T_178217, UInt<1>(0))
+ node T_178219 = or(UInt<1>(0), T_178209)
+ node T_178220 = or(T_178219, T_178211)
+ node T_178221 = or(T_178220, T_178213)
+ node T_178222 = eq(T_178221, UInt<1>(0))
+ node T_178223 = or(UInt<1>(0), T_178209)
+ node T_178224 = or(T_178223, T_178211)
+ node T_178225 = or(T_178224, T_178213)
+ node T_178226 = or(T_178225, in[0].valid)
+ node T_178227 = eq(T_178226, UInt<1>(0))
+ node T_178228 = or(UInt<1>(0), T_178209)
+ node T_178229 = or(T_178228, T_178211)
+ node T_178230 = or(T_178229, T_178213)
+ node T_178231 = or(T_178230, in[0].valid)
+ node T_178232 = or(T_178231, in[1].valid)
+ node T_178233 = eq(T_178232, UInt<1>(0))
+ node T_178234 = gt(UInt<1>(0), T_178207)
+ node T_178235 = and(UInt<1>(1), T_178234)
+ node T_178236 = or(T_178235, T_178222)
+ node T_178237 = gt(UInt<1>(1), T_178207)
+ node T_178238 = and(T_178215, T_178237)
+ node T_178239 = or(T_178238, T_178227)
+ node T_178240 = gt(UInt<2>(2), T_178207)
+ node T_178241 = and(T_178218, T_178240)
+ node T_178242 = or(T_178241, T_178233)
+ node T_178243 = eq(UInt<2>(2), UInt<1>(0))
+ wire T_178244 : UInt<1>
+ T_178244 := T_178236
+ when UInt<1>(0) : T_178244 := T_178243
+ node T_178245 = and(T_178244, out.ready)
+ in[0].ready := T_178245
+ node T_178246 = eq(UInt<2>(2), UInt<1>(1))
+ wire T_178247 : UInt<1>
+ T_178247 := T_178239
+ when UInt<1>(0) : T_178247 := T_178246
+ node T_178248 = and(T_178247, out.ready)
+ in[1].ready := T_178248
+ node T_178249 = eq(UInt<2>(2), UInt<2>(2))
+ wire T_178250 : UInt<1>
+ T_178250 := T_178242
+ when UInt<1>(0) : T_178250 := T_178249
+ node T_178251 = and(T_178250, out.ready)
+ in[2].ready := T_178251
+ accessor T_178252 = in[T_178206]
+ out.valid := T_178252.valid
+ accessor T_178253 = in[T_178206]
+ out.bits := T_178253.bits
+ chosen := T_178206
+ wire T_178254 : UInt<2>
+ T_178254 := UInt<2>(2)
+ when in[1].valid : T_178254 := UInt<1>(1)
+ wire T_178255 : UInt<2>
+ T_178255 := T_178254
+ when in[0].valid : T_178255 := UInt<1>(0)
+ node T_178256 = gt(UInt<2>(2), T_178207)
+ node T_178257 = and(in[2].valid, T_178256)
+ wire T_178258 : UInt<2>
+ T_178258 := T_178255
+ when T_178257 : T_178258 := UInt<2>(2)
+ node T_178259 = gt(UInt<1>(1), T_178207)
+ node T_178260 = and(in[1].valid, T_178259)
+ wire T_178261 : UInt<2>
+ T_178261 := T_178258
+ when T_178260 : T_178261 := UInt<1>(1)
+ wire T_178262 : UInt<2>
+ T_178262 := T_178261
+ when UInt<1>(0) : T_178262 := UInt<2>(2)
+ T_178206 := T_178262
+
+ node T_178263 = and(out.ready, out.valid)
+ when T_178263 : T_178207 := T_178206
+ module TSHRFile :
+ output inner : {flip acquire : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_block : UInt<26>, client_xact_id : UInt<1>, addr_beat : UInt<2>, data : UInt<128>, is_builtin_type : UInt<1>, a_type : UInt<3>, union : UInt<17>, client_id : UInt<2>}}, grant : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_beat : UInt<2>, data : UInt<128>, client_xact_id : UInt<1>, manager_xact_id : UInt<2>, is_builtin_type : UInt<1>, g_type : UInt<4>, client_id : UInt<2>}}, flip finish : {flip ready : UInt<1>, valid : UInt<1>, bits : {manager_xact_id : UInt<2>}}, probe : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_block : UInt<26>, p_type : UInt<2>, client_id : UInt<2>}}, flip release : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_block : UInt<26>, client_xact_id : UInt<1>, addr_beat : UInt<2>, data : UInt<128>, r_type : UInt<3>, voluntary : UInt<1>, client_id : UInt<2>}}}
+ input incoherent : UInt<1>[1]
+ output outer : {acquire : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_block : UInt<26>, client_xact_id : UInt<2>, addr_beat : UInt<2>, data : UInt<128>, is_builtin_type : UInt<1>, a_type : UInt<3>, union : UInt<17>}}, flip grant : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_beat : UInt<2>, data : UInt<128>, client_xact_id : UInt<2>, manager_xact_id : UInt<1>, is_builtin_type : UInt<1>, g_type : UInt<4>}}, flip probe : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_block : UInt<26>, p_type : UInt<2>}}, release : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_block : UInt<26>, client_xact_id : UInt<2>, addr_beat : UInt<2>, data : UInt<128>, r_type : UInt<3>, voluntary : UInt<1>}}}
+ output meta : {read : {flip ready : UInt<1>, valid : UInt<1>, bits : {idx : UInt<12>, id : UInt<2>, tag : UInt<14>}}, flip resp : {valid : UInt<1>, bits : {id : UInt<2>, tag_match : UInt<1>, meta : {tag : UInt<14>, coh : {inner : {sharers : UInt<1>, makeGrant$default$3 : UInt<1>, makeGrant$default$4 : UInt<1>}, outer : {state : UInt<2>, makeRelease$default$2 : UInt<1>, makeRelease$default$3 : UInt<1>, makeVoluntaryRelease$default$4 : UInt<1>, makeVoluntaryRelease$default$5 : UInt<1>, makeVoluntaryWriteback$default$3 : UInt<1>, makeVoluntaryWriteback$default$4 : UInt<1>}}}, way_en : UInt<8>}}, write : {flip ready : UInt<1>, valid : UInt<1>, bits : {idx : UInt<12>, way_en : UInt<8>, data : {tag : UInt<14>, coh : {inner : {sharers : UInt<1>, makeGrant$default$3 : UInt<1>, makeGrant$default$4 : UInt<1>}, outer : {state : UInt<2>, makeRelease$default$2 : UInt<1>, makeRelease$default$3 : UInt<1>, makeVoluntaryRelease$default$4 : UInt<1>, makeVoluntaryRelease$default$5 : UInt<1>, makeVoluntaryWriteback$default$3 : UInt<1>, makeVoluntaryWriteback$default$4 : UInt<1>}}}, id : UInt<2>}}}
+ output data : {read : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_beat : UInt<2>, id : UInt<2>, addr_idx : UInt<12>, way_en : UInt<8>}}, flip resp : {valid : UInt<1>, bits : {id : UInt<2>, addr_beat : UInt<2>, data : UInt<128>}}, write : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_beat : UInt<2>, id : UInt<2>, addr_idx : UInt<12>, way_en : UInt<8>, data : UInt<128>, wmask : UInt<16>}}}
+
+ wire T_178264 : UInt<3>[3]
+ T_178264[0] := UInt<3>(0)
+ T_178264[1] := UInt<3>(1)
+ T_178264[2] := UInt<3>(2)
+ wire T_178265 : UInt<2>[2]
+ T_178265[0] := UInt<2>(0)
+ T_178265[1] := UInt<2>(1)
+ wire T_178266 : UInt<2>[3]
+ T_178266[0] := UInt<2>(1)
+ T_178266[1] := UInt<2>(2)
+ T_178266[2] := UInt<2>(3)
+ wire T_178267 : UInt<2>[2]
+ T_178267[0] := UInt<2>(2)
+ T_178267[1] := UInt<2>(3)
+ wire T_178268 : UInt<2>[1]
+ T_178268[0] := UInt<2>(3)
+ wire T_178269 : UInt<3>[3]
+ T_178269[0] := UInt<3>(0)
+ T_178269[1] := UInt<3>(1)
+ T_178269[2] := UInt<3>(2)
+ wire T_178270 : UInt<2>[2]
+ T_178270[0] := UInt<2>(0)
+ T_178270[1] := UInt<2>(1)
+ wire T_178271 : UInt<2>[3]
+ T_178271[0] := UInt<2>(1)
+ T_178271[1] := UInt<2>(2)
+ T_178271[2] := UInt<2>(3)
+ wire T_178272 : UInt<2>[2]
+ T_178272[0] := UInt<2>(2)
+ T_178272[1] := UInt<2>(3)
+ wire T_178273 : UInt<2>[1]
+ T_178273[0] := UInt<2>(3)
+ wire T_178274 : UInt<3>[3]
+ T_178274[0] := UInt<3>(0)
+ T_178274[1] := UInt<3>(1)
+ T_178274[2] := UInt<3>(2)
+ wire T_178275 : UInt<2>[2]
+ T_178275[0] := UInt<2>(0)
+ T_178275[1] := UInt<2>(1)
+ wire T_178276 : UInt<2>[3]
+ T_178276[0] := UInt<2>(1)
+ T_178276[1] := UInt<2>(2)
+ T_178276[2] := UInt<2>(3)
+ wire T_178277 : UInt<2>[2]
+ T_178277[0] := UInt<2>(2)
+ T_178277[1] := UInt<2>(3)
+ wire T_178278 : UInt<2>[1]
+ T_178278[0] := UInt<2>(3)
+ wire T_178279 : UInt<3>[3]
+ T_178279[0] := UInt<3>(0)
+ T_178279[1] := UInt<3>(1)
+ T_178279[2] := UInt<3>(2)
+ wire T_178280 : UInt<2>[2]
+ T_178280[0] := UInt<2>(0)
+ T_178280[1] := UInt<2>(1)
+ wire T_178281 : UInt<2>[3]
+ T_178281[0] := UInt<2>(1)
+ T_178281[1] := UInt<2>(2)
+ T_178281[2] := UInt<2>(3)
+ wire T_178282 : UInt<2>[2]
+ T_178282[0] := UInt<2>(2)
+ T_178282[1] := UInt<2>(3)
+ wire T_178283 : UInt<2>[1]
+ T_178283[0] := UInt<2>(3)
+ wire T_178284 : UInt<3>[3]
+ T_178284[0] := UInt<3>(0)
+ T_178284[1] := UInt<3>(1)
+ T_178284[2] := UInt<3>(2)
+ wire T_178285 : UInt<2>[2]
+ T_178285[0] := UInt<2>(0)
+ T_178285[1] := UInt<2>(1)
+ wire T_178286 : UInt<2>[3]
+ T_178286[0] := UInt<2>(1)
+ T_178286[1] := UInt<2>(2)
+ T_178286[2] := UInt<2>(3)
+ wire T_178287 : UInt<2>[2]
+ T_178287[0] := UInt<2>(2)
+ T_178287[1] := UInt<2>(3)
+ wire T_178288 : UInt<2>[1]
+ T_178288[0] := UInt<2>(3)
+ wire T_178289 : UInt<3>[3]
+ T_178289[0] := UInt<3>(0)
+ T_178289[1] := UInt<3>(1)
+ T_178289[2] := UInt<3>(2)
+ wire T_178290 : UInt<2>[2]
+ T_178290[0] := UInt<2>(0)
+ T_178290[1] := UInt<2>(1)
+ wire T_178291 : UInt<2>[3]
+ T_178291[0] := UInt<2>(1)
+ T_178291[1] := UInt<2>(2)
+ T_178291[2] := UInt<2>(3)
+ wire T_178292 : UInt<2>[2]
+ T_178292[0] := UInt<2>(2)
+ T_178292[1] := UInt<2>(3)
+ wire T_178293 : UInt<2>[1]
+ T_178293[0] := UInt<2>(3)
+ wire T_178294 : UInt<3>[3]
+ T_178294[0] := UInt<3>(0)
+ T_178294[1] := UInt<3>(1)
+ T_178294[2] := UInt<3>(2)
+ wire T_178295 : UInt<2>[2]
+ T_178295[0] := UInt<2>(0)
+ T_178295[1] := UInt<2>(1)
+ wire T_178296 : UInt<2>[3]
+ T_178296[0] := UInt<2>(1)
+ T_178296[1] := UInt<2>(2)
+ T_178296[2] := UInt<2>(3)
+ wire T_178297 : UInt<2>[2]
+ T_178297[0] := UInt<2>(2)
+ T_178297[1] := UInt<2>(3)
+ wire T_178298 : UInt<2>[1]
+ T_178298[0] := UInt<2>(3)
+ wire T_178299 : UInt<3>[3]
+ T_178299[0] := UInt<3>(0)
+ T_178299[1] := UInt<3>(1)
+ T_178299[2] := UInt<3>(2)
+ wire T_178300 : UInt<2>[2]
+ T_178300[0] := UInt<2>(0)
+ T_178300[1] := UInt<2>(1)
+ wire T_178301 : UInt<2>[3]
+ T_178301[0] := UInt<2>(1)
+ T_178301[1] := UInt<2>(2)
+ T_178301[2] := UInt<2>(3)
+ wire T_178302 : UInt<2>[2]
+ T_178302[0] := UInt<2>(2)
+ T_178302[1] := UInt<2>(3)
+ wire T_178303 : UInt<2>[1]
+ T_178303[0] := UInt<2>(3)
+ wire T_178304 : UInt<3>[3]
+ T_178304[0] := UInt<3>(0)
+ T_178304[1] := UInt<3>(1)
+ T_178304[2] := UInt<3>(2)
+ wire T_178305 : UInt<2>[2]
+ T_178305[0] := UInt<2>(0)
+ T_178305[1] := UInt<2>(1)
+ wire T_178306 : UInt<2>[3]
+ T_178306[0] := UInt<2>(1)
+ T_178306[1] := UInt<2>(2)
+ T_178306[2] := UInt<2>(3)
+ wire T_178307 : UInt<2>[2]
+ T_178307[0] := UInt<2>(2)
+ T_178307[1] := UInt<2>(3)
+ wire T_178308 : UInt<2>[1]
+ T_178308[0] := UInt<2>(3)
+ wire T_178309 : UInt<3>[3]
+ T_178309[0] := UInt<3>(0)
+ T_178309[1] := UInt<3>(1)
+ T_178309[2] := UInt<3>(2)
+ wire T_178310 : UInt<2>[2]
+ T_178310[0] := UInt<2>(0)
+ T_178310[1] := UInt<2>(1)
+ wire T_178311 : UInt<2>[3]
+ T_178311[0] := UInt<2>(1)
+ T_178311[1] := UInt<2>(2)
+ T_178311[2] := UInt<2>(3)
+ wire T_178312 : UInt<2>[2]
+ T_178312[0] := UInt<2>(2)
+ T_178312[1] := UInt<2>(3)
+ wire T_178313 : UInt<2>[1]
+ T_178313[0] := UInt<2>(3)
+ wire T_178314 : UInt<3>[3]
+ T_178314[0] := UInt<3>(0)
+ T_178314[1] := UInt<3>(1)
+ T_178314[2] := UInt<3>(2)
+ wire T_178315 : UInt<2>[2]
+ T_178315[0] := UInt<2>(0)
+ T_178315[1] := UInt<2>(1)
+ wire T_178316 : UInt<2>[3]
+ T_178316[0] := UInt<2>(1)
+ T_178316[1] := UInt<2>(2)
+ T_178316[2] := UInt<2>(3)
+ wire T_178317 : UInt<2>[2]
+ T_178317[0] := UInt<2>(2)
+ T_178317[1] := UInt<2>(3)
+ wire T_178318 : UInt<2>[1]
+ T_178318[0] := UInt<2>(3)
+ wire incoherent : UInt<1>[1]
+ incoherent[0] := T_178319
+ wire T_178320 : UInt<3>[3]
+ T_178320[0] := UInt<3>(0)
+ T_178320[1] := UInt<3>(1)
+ T_178320[2] := UInt<3>(2)
+ wire T_178321 : UInt<0>[1]
+ T_178321[0] := UInt<0>(0)
+ wire T_178322 : UInt<2>[2]
+ T_178322[0] := UInt<2>(1)
+ T_178322[1] := UInt<2>(2)
+ wire T_178323 : UInt<2>[2]
+ T_178323[0] := UInt<2>(1)
+ T_178323[1] := UInt<2>(2)
+ wire T_178324 : UInt<2>[1]
+ T_178324[0] := UInt<2>(2)
+ wire T_178325 : UInt<3>[3]
+ T_178325[0] := UInt<3>(0)
+ T_178325[1] := UInt<3>(1)
+ T_178325[2] := UInt<3>(2)
+ wire T_178326 : UInt<0>[1]
+ T_178326[0] := UInt<0>(0)
+ wire T_178327 : UInt<2>[2]
+ T_178327[0] := UInt<2>(1)
+ T_178327[1] := UInt<2>(2)
+ wire T_178328 : UInt<2>[2]
+ T_178328[0] := UInt<2>(1)
+ T_178328[1] := UInt<2>(2)
+ wire T_178329 : UInt<2>[1]
+ T_178329[0] := UInt<2>(2)
+ wire T_178330 : UInt<3>[3]
+ T_178330[0] := UInt<3>(0)
+ T_178330[1] := UInt<3>(1)
+ T_178330[2] := UInt<3>(2)
+ wire T_178331 : UInt<0>[1]
+ T_178331[0] := UInt<0>(0)
+ wire T_178332 : UInt<2>[2]
+ T_178332[0] := UInt<2>(1)
+ T_178332[1] := UInt<2>(2)
+ wire T_178333 : UInt<2>[2]
+ T_178333[0] := UInt<2>(1)
+ T_178333[1] := UInt<2>(2)
+ wire T_178334 : UInt<2>[1]
+ T_178334[0] := UInt<2>(2)
+ wire T_178335 : UInt<3>[3]
+ T_178335[0] := UInt<3>(0)
+ T_178335[1] := UInt<3>(1)
+ T_178335[2] := UInt<3>(2)
+ wire T_178336 : UInt<0>[1]
+ T_178336[0] := UInt<0>(0)
+ wire T_178337 : UInt<2>[2]
+ T_178337[0] := UInt<2>(1)
+ T_178337[1] := UInt<2>(2)
+ wire T_178338 : UInt<2>[2]
+ T_178338[0] := UInt<2>(1)
+ T_178338[1] := UInt<2>(2)
+ wire T_178339 : UInt<2>[1]
+ T_178339[0] := UInt<2>(2)
+ wire T_178340 : UInt<3>[3]
+ T_178340[0] := UInt<3>(0)
+ T_178340[1] := UInt<3>(1)
+ T_178340[2] := UInt<3>(2)
+ wire T_178341 : UInt<0>[1]
+ T_178341[0] := UInt<0>(0)
+ wire T_178342 : UInt<2>[2]
+ T_178342[0] := UInt<2>(1)
+ T_178342[1] := UInt<2>(2)
+ wire T_178343 : UInt<2>[2]
+ T_178343[0] := UInt<2>(1)
+ T_178343[1] := UInt<2>(2)
+ wire T_178344 : UInt<2>[1]
+ T_178344[0] := UInt<2>(2)
+ wire T_178345 : UInt<3>[3]
+ T_178345[0] := UInt<3>(0)
+ T_178345[1] := UInt<3>(1)
+ T_178345[2] := UInt<3>(2)
+ wire T_178346 : UInt<0>[1]
+ T_178346[0] := UInt<0>(0)
+ wire T_178347 : UInt<2>[2]
+ T_178347[0] := UInt<2>(1)
+ T_178347[1] := UInt<2>(2)
+ wire T_178348 : UInt<2>[2]
+ T_178348[0] := UInt<2>(1)
+ T_178348[1] := UInt<2>(2)
+ wire T_178349 : UInt<2>[1]
+ T_178349[0] := UInt<2>(2)
+ wire T_178350 : UInt<3>[3]
+ T_178350[0] := UInt<3>(0)
+ T_178350[1] := UInt<3>(1)
+ T_178350[2] := UInt<3>(2)
+ wire T_178351 : UInt<0>[1]
+ T_178351[0] := UInt<0>(0)
+ wire T_178352 : UInt<2>[2]
+ T_178352[0] := UInt<2>(1)
+ T_178352[1] := UInt<2>(2)
+ wire T_178353 : UInt<2>[2]
+ T_178353[0] := UInt<2>(1)
+ T_178353[1] := UInt<2>(2)
+ wire T_178354 : UInt<2>[1]
+ T_178354[0] := UInt<2>(2)
+ wire T_178355 : UInt<3>[3]
+ T_178355[0] := UInt<3>(0)
+ T_178355[1] := UInt<3>(1)
+ T_178355[2] := UInt<3>(2)
+ wire T_178356 : UInt<0>[1]
+ T_178356[0] := UInt<0>(0)
+ wire T_178357 : UInt<2>[2]
+ T_178357[0] := UInt<2>(1)
+ T_178357[1] := UInt<2>(2)
+ wire T_178358 : UInt<2>[2]
+ T_178358[0] := UInt<2>(1)
+ T_178358[1] := UInt<2>(2)
+ wire T_178359 : UInt<2>[1]
+ T_178359[0] := UInt<2>(2)
+ wire T_178360 : UInt<3>[3]
+ T_178360[0] := UInt<3>(0)
+ T_178360[1] := UInt<3>(1)
+ T_178360[2] := UInt<3>(2)
+ wire T_178361 : UInt<0>[1]
+ T_178361[0] := UInt<0>(0)
+ wire T_178362 : UInt<2>[2]
+ T_178362[0] := UInt<2>(1)
+ T_178362[1] := UInt<2>(2)
+ wire T_178363 : UInt<2>[2]
+ T_178363[0] := UInt<2>(1)
+ T_178363[1] := UInt<2>(2)
+ wire T_178364 : UInt<2>[1]
+ T_178364[0] := UInt<2>(2)
+ wire T_178365 : UInt<3>[3]
+ T_178365[0] := UInt<3>(0)
+ T_178365[1] := UInt<3>(1)
+ T_178365[2] := UInt<3>(2)
+ wire T_178366 : UInt<2>[2]
+ T_178366[0] := UInt<2>(0)
+ T_178366[1] := UInt<2>(1)
+ wire T_178367 : UInt<2>[3]
+ T_178367[0] := UInt<2>(1)
+ T_178367[1] := UInt<2>(2)
+ T_178367[2] := UInt<2>(3)
+ wire T_178368 : UInt<2>[2]
+ T_178368[0] := UInt<2>(2)
+ T_178368[1] := UInt<2>(3)
+ wire T_178369 : UInt<2>[1]
+ T_178369[0] := UInt<2>(3)
+ wire T_178370 : UInt<3>[3]
+ T_178370[0] := UInt<3>(0)
+ T_178370[1] := UInt<3>(1)
+ T_178370[2] := UInt<3>(2)
+ wire T_178371 : UInt<2>[2]
+ T_178371[0] := UInt<2>(0)
+ T_178371[1] := UInt<2>(1)
+ wire T_178372 : UInt<2>[3]
+ T_178372[0] := UInt<2>(1)
+ T_178372[1] := UInt<2>(2)
+ T_178372[2] := UInt<2>(3)
+ wire T_178373 : UInt<2>[2]
+ T_178373[0] := UInt<2>(2)
+ T_178373[1] := UInt<2>(3)
+ wire T_178374 : UInt<2>[1]
+ T_178374[0] := UInt<2>(3)
+ wire T_178375 : UInt<3>[3]
+ T_178375[0] := UInt<3>(0)
+ T_178375[1] := UInt<3>(1)
+ T_178375[2] := UInt<3>(2)
+ wire T_178376 : UInt<0>[1]
+ T_178376[0] := UInt<0>(0)
+ wire T_178377 : UInt<2>[2]
+ T_178377[0] := UInt<2>(1)
+ T_178377[1] := UInt<2>(2)
+ wire T_178378 : UInt<2>[2]
+ T_178378[0] := UInt<2>(1)
+ T_178378[1] := UInt<2>(2)
+ wire T_178379 : UInt<2>[1]
+ T_178379[0] := UInt<2>(2)
+ wire T_178380 : UInt<3>[3]
+ T_178380[0] := UInt<3>(0)
+ T_178380[1] := UInt<3>(1)
+ T_178380[2] := UInt<3>(2)
+ wire T_178381 : UInt<2>[2]
+ T_178381[0] := UInt<2>(0)
+ T_178381[1] := UInt<2>(1)
+ wire T_178382 : UInt<2>[3]
+ T_178382[0] := UInt<2>(1)
+ T_178382[1] := UInt<2>(2)
+ T_178382[2] := UInt<2>(3)
+ wire T_178383 : UInt<2>[2]
+ T_178383[0] := UInt<2>(2)
+ T_178383[1] := UInt<2>(3)
+ wire T_178384 : UInt<2>[1]
+ T_178384[0] := UInt<2>(3)
+ wire T_178385 : UInt<3>[3]
+ T_178385[0] := UInt<3>(0)
+ T_178385[1] := UInt<3>(1)
+ T_178385[2] := UInt<3>(2)
+ wire T_178386 : UInt<2>[2]
+ T_178386[0] := UInt<2>(0)
+ T_178386[1] := UInt<2>(1)
+ wire T_178387 : UInt<2>[3]
+ T_178387[0] := UInt<2>(1)
+ T_178387[1] := UInt<2>(2)
+ T_178387[2] := UInt<2>(3)
+ wire T_178388 : UInt<2>[2]
+ T_178388[0] := UInt<2>(2)
+ T_178388[1] := UInt<2>(3)
+ wire T_178389 : UInt<2>[1]
+ T_178389[0] := UInt<2>(3)
+ wire T_178390 : UInt<3>[3]
+ T_178390[0] := UInt<3>(0)
+ T_178390[1] := UInt<3>(1)
+ T_178390[2] := UInt<3>(2)
+ wire T_178391 : UInt<0>[1]
+ T_178391[0] := UInt<0>(0)
+ wire T_178392 : UInt<2>[2]
+ T_178392[0] := UInt<2>(1)
+ T_178392[1] := UInt<2>(2)
+ wire T_178393 : UInt<2>[2]
+ T_178393[0] := UInt<2>(1)
+ T_178393[1] := UInt<2>(2)
+ wire T_178394 : UInt<2>[1]
+ T_178394[0] := UInt<2>(2)
+ wire T_178395 : UInt<3>[3]
+ T_178395[0] := UInt<3>(0)
+ T_178395[1] := UInt<3>(1)
+ T_178395[2] := UInt<3>(2)
+ wire T_178396 : UInt<2>[2]
+ T_178396[0] := UInt<2>(0)
+ T_178396[1] := UInt<2>(1)
+ wire T_178397 : UInt<2>[3]
+ T_178397[0] := UInt<2>(1)
+ T_178397[1] := UInt<2>(2)
+ T_178397[2] := UInt<2>(3)
+ wire T_178398 : UInt<2>[2]
+ T_178398[0] := UInt<2>(2)
+ T_178398[1] := UInt<2>(3)
+ wire T_178399 : UInt<2>[1]
+ T_178399[0] := UInt<2>(3)
+ wire T_178400 : UInt<3>[3]
+ T_178400[0] := UInt<3>(0)
+ T_178400[1] := UInt<3>(1)
+ T_178400[2] := UInt<3>(2)
+ wire T_178401 : UInt<2>[2]
+ T_178401[0] := UInt<2>(0)
+ T_178401[1] := UInt<2>(1)
+ wire T_178402 : UInt<2>[3]
+ T_178402[0] := UInt<2>(1)
+ T_178402[1] := UInt<2>(2)
+ T_178402[2] := UInt<2>(3)
+ wire T_178403 : UInt<2>[2]
+ T_178403[0] := UInt<2>(2)
+ T_178403[1] := UInt<2>(3)
+ wire T_178404 : UInt<2>[1]
+ T_178404[0] := UInt<2>(3)
+ wire T_178405 : UInt<3>[3]
+ T_178405[0] := UInt<3>(0)
+ T_178405[1] := UInt<3>(1)
+ T_178405[2] := UInt<3>(2)
+ wire T_178406 : UInt<0>[1]
+ T_178406[0] := UInt<0>(0)
+ wire T_178407 : UInt<2>[2]
+ T_178407[0] := UInt<2>(1)
+ T_178407[1] := UInt<2>(2)
+ wire T_178408 : UInt<2>[2]
+ T_178408[0] := UInt<2>(1)
+ T_178408[1] := UInt<2>(2)
+ wire T_178409 : UInt<2>[1]
+ T_178409[0] := UInt<2>(2)
+ wire T_178410 : UInt<3>[3]
+ T_178410[0] := UInt<3>(0)
+ T_178410[1] := UInt<3>(1)
+ T_178410[2] := UInt<3>(2)
+ wire T_178411 : UInt<2>[2]
+ T_178411[0] := UInt<2>(0)
+ T_178411[1] := UInt<2>(1)
+ wire T_178412 : UInt<2>[3]
+ T_178412[0] := UInt<2>(1)
+ T_178412[1] := UInt<2>(2)
+ T_178412[2] := UInt<2>(3)
+ wire T_178413 : UInt<2>[2]
+ T_178413[0] := UInt<2>(2)
+ T_178413[1] := UInt<2>(3)
+ wire T_178414 : UInt<2>[1]
+ T_178414[0] := UInt<2>(3)
+ wire T_178415 : UInt<3>[3]
+ T_178415[0] := UInt<3>(0)
+ T_178415[1] := UInt<3>(1)
+ T_178415[2] := UInt<3>(2)
+ wire T_178416 : UInt<2>[2]
+ T_178416[0] := UInt<2>(0)
+ T_178416[1] := UInt<2>(1)
+ wire T_178417 : UInt<2>[3]
+ T_178417[0] := UInt<2>(1)
+ T_178417[1] := UInt<2>(2)
+ T_178417[2] := UInt<2>(3)
+ wire T_178418 : UInt<2>[2]
+ T_178418[0] := UInt<2>(2)
+ T_178418[1] := UInt<2>(3)
+ wire T_178419 : UInt<2>[1]
+ T_178419[0] := UInt<2>(3)
+ wire T_178420 : UInt<3>[3]
+ T_178420[0] := UInt<3>(0)
+ T_178420[1] := UInt<3>(1)
+ T_178420[2] := UInt<3>(2)
+ wire T_178421 : UInt<0>[1]
+ T_178421[0] := UInt<0>(0)
+ wire T_178422 : UInt<2>[2]
+ T_178422[0] := UInt<2>(1)
+ T_178422[1] := UInt<2>(2)
+ wire T_178423 : UInt<2>[2]
+ T_178423[0] := UInt<2>(1)
+ T_178423[1] := UInt<2>(2)
+ wire T_178424 : UInt<2>[1]
+ T_178424[0] := UInt<2>(2)
+ wire T_178425 : UInt<3>[3]
+ T_178425[0] := UInt<3>(0)
+ T_178425[1] := UInt<3>(1)
+ T_178425[2] := UInt<3>(2)
+ wire T_178426 : UInt<2>[2]
+ T_178426[0] := UInt<2>(0)
+ T_178426[1] := UInt<2>(1)
+ wire T_178427 : UInt<2>[3]
+ T_178427[0] := UInt<2>(1)
+ T_178427[1] := UInt<2>(2)
+ T_178427[2] := UInt<2>(3)
+ wire T_178428 : UInt<2>[2]
+ T_178428[0] := UInt<2>(2)
+ T_178428[1] := UInt<2>(3)
+ wire T_178429 : UInt<2>[1]
+ T_178429[0] := UInt<2>(3)
+ wire T_178430 : UInt<3>[3]
+ T_178430[0] := UInt<3>(0)
+ T_178430[1] := UInt<3>(1)
+ T_178430[2] := UInt<3>(2)
+ wire T_178431 : UInt<2>[2]
+ T_178431[0] := UInt<2>(0)
+ T_178431[1] := UInt<2>(1)
+ wire T_178432 : UInt<2>[3]
+ T_178432[0] := UInt<2>(1)
+ T_178432[1] := UInt<2>(2)
+ T_178432[2] := UInt<2>(3)
+ wire T_178433 : UInt<2>[2]
+ T_178433[0] := UInt<2>(2)
+ T_178433[1] := UInt<2>(3)
+ wire T_178434 : UInt<2>[1]
+ T_178434[0] := UInt<2>(3)
+ wire T_178435 : UInt<3>[3]
+ T_178435[0] := UInt<3>(0)
+ T_178435[1] := UInt<3>(1)
+ T_178435[2] := UInt<3>(2)
+ wire T_178436 : UInt<0>[1]
+ T_178436[0] := UInt<0>(0)
+ wire T_178437 : UInt<2>[2]
+ T_178437[0] := UInt<2>(1)
+ T_178437[1] := UInt<2>(2)
+ wire T_178438 : UInt<2>[2]
+ T_178438[0] := UInt<2>(1)
+ T_178438[1] := UInt<2>(2)
+ wire T_178439 : UInt<2>[1]
+ T_178439[0] := UInt<2>(2)
+ wire T_178440 : UInt<3>[3]
+ T_178440[0] := UInt<3>(0)
+ T_178440[1] := UInt<3>(1)
+ T_178440[2] := UInt<3>(2)
+ wire T_178441 : UInt<2>[2]
+ T_178441[0] := UInt<2>(0)
+ T_178441[1] := UInt<2>(1)
+ wire T_178442 : UInt<2>[3]
+ T_178442[0] := UInt<2>(1)
+ T_178442[1] := UInt<2>(2)
+ T_178442[2] := UInt<2>(3)
+ wire T_178443 : UInt<2>[2]
+ T_178443[0] := UInt<2>(2)
+ T_178443[1] := UInt<2>(3)
+ wire T_178444 : UInt<2>[1]
+ T_178444[0] := UInt<2>(3)
+ wire T_178445 : UInt<3>[3]
+ T_178445[0] := UInt<3>(0)
+ T_178445[1] := UInt<3>(1)
+ T_178445[2] := UInt<3>(2)
+ wire T_178446 : UInt<2>[2]
+ T_178446[0] := UInt<2>(0)
+ T_178446[1] := UInt<2>(1)
+ wire T_178447 : UInt<2>[3]
+ T_178447[0] := UInt<2>(1)
+ T_178447[1] := UInt<2>(2)
+ T_178447[2] := UInt<2>(3)
+ wire T_178448 : UInt<2>[2]
+ T_178448[0] := UInt<2>(2)
+ T_178448[1] := UInt<2>(3)
+ wire T_178449 : UInt<2>[1]
+ T_178449[0] := UInt<2>(3)
+ wire T_178450 : UInt<3>[3]
+ T_178450[0] := UInt<3>(0)
+ T_178450[1] := UInt<3>(1)
+ T_178450[2] := UInt<3>(2)
+ wire T_178451 : UInt<0>[1]
+ T_178451[0] := UInt<0>(0)
+ wire T_178452 : UInt<2>[2]
+ T_178452[0] := UInt<2>(1)
+ T_178452[1] := UInt<2>(2)
+ wire T_178453 : UInt<2>[2]
+ T_178453[0] := UInt<2>(1)
+ T_178453[1] := UInt<2>(2)
+ wire T_178454 : UInt<2>[1]
+ T_178454[0] := UInt<2>(2)
+ inst T_178455 of L2VoluntaryReleaseTracker
+ inst T_178456 of L2AcquireTracker
+ inst T_178457 of L2AcquireTracker_93254
+ inst wb of L2WritebackUnit
+ inst T_178458 of RRArbiter_97606
+ wb.wb.req <> T_178458.out
+ T_178458.in[0] <> T_178455.wb.req
+ T_178458.in[1] <> T_178456.wb.req
+ T_178458.in[2] <> T_178457.wb.req
+ T_178455.wb.resp.bits := wb.wb.resp.bits
+ T_178456.wb.resp.bits := wb.wb.resp.bits
+ T_178457.wb.resp.bits := wb.wb.resp.bits
+ node T_178459 = eq(wb.wb.resp.bits.id, UInt<1>(0))
+ node T_178460 = and(wb.wb.resp.valid, T_178459)
+ T_178455.wb.resp.valid := T_178460
+ node T_178461 = eq(wb.wb.resp.bits.id, UInt<1>(1))
+ node T_178462 = and(wb.wb.resp.valid, T_178461)
+ T_178456.wb.resp.valid := T_178462
+ node T_178463 = eq(wb.wb.resp.bits.id, UInt<2>(2))
+ node T_178464 = and(wb.wb.resp.valid, T_178463)
+ T_178457.wb.resp.valid := T_178464
+ T_178455.incoherent := incoherent[0]
+ T_178456.incoherent := incoherent[0]
+ T_178457.incoherent := incoherent[0]
+ wb.incoherent := incoherent[0]
+ wire T_178465 : UInt<1>[3]
+ T_178465[0] := T_178455.has_acquire_conflict
+ T_178465[1] := T_178456.has_acquire_conflict
+ T_178465[2] := T_178457.has_acquire_conflict
+ node T_178466 = cat(T_178465[1], T_178465[0])
+ node acquireConflicts = cat(T_178465[2], T_178466)
+ wire T_178467 : UInt<1>[3]
+ T_178467[0] := T_178455.has_acquire_match
+ T_178467[1] := T_178456.has_acquire_match
+ T_178467[2] := T_178457.has_acquire_match
+ node T_178468 = cat(T_178467[1], T_178467[0])
+ node acquireMatches = cat(T_178467[2], T_178468)
+ wire T_178469 : UInt<1>[3]
+ T_178469[0] := T_178455.inner.acquire.ready
+ T_178469[1] := T_178456.inner.acquire.ready
+ T_178469[2] := T_178457.inner.acquire.ready
+ node T_178470 = cat(T_178469[1], T_178469[0])
+ node acquireReadys = cat(T_178469[2], T_178470)
+ node T_178471 = eq(acquireMatches, UInt<1>(0))
+ node T_178472 = eq(T_178471, UInt<1>(0))
+ node T_178473 = bit(acquireMatches, 0)
+ node T_178474 = bit(acquireMatches, 1)
+ node T_178475 = bit(acquireMatches, 2)
+ wire T_178476 : UInt<1>[3]
+ T_178476[0] := T_178473
+ T_178476[1] := T_178474
+ T_178476[2] := T_178475
+ wire T_178477 : UInt<2>
+ T_178477 := UInt<2>(2)
+ when T_178476[1] : T_178477 := UInt<1>(1)
+ wire T_178478 : UInt<2>
+ T_178478 := T_178477
+ when T_178476[0] : T_178478 := UInt<1>(0)
+ node T_178479 = bit(acquireReadys, 0)
+ node T_178480 = bit(acquireReadys, 1)
+ node T_178481 = bit(acquireReadys, 2)
+ wire T_178482 : UInt<1>[3]
+ T_178482[0] := T_178479
+ T_178482[1] := T_178480
+ T_178482[2] := T_178481
+ wire T_178483 : UInt<2>
+ T_178483 := UInt<2>(2)
+ when T_178482[1] : T_178483 := UInt<1>(1)
+ wire T_178484 : UInt<2>
+ T_178484 := T_178483
+ when T_178482[0] : T_178484 := UInt<1>(0)
+ wire acquire_idx : UInt<2>
+ acquire_idx := T_178484
+ when T_178472 : acquire_idx := T_178478
+ node T_178485 = eq(acquireConflicts, UInt<1>(0))
+ node block_acquires = eq(T_178485, UInt<1>(0))
+ node T_178486 = eq(acquireReadys, UInt<1>(0))
+ node T_178487 = eq(T_178486, UInt<1>(0))
+ node T_178488 = eq(block_acquires, UInt<1>(0))
+ node T_178489 = and(T_178487, T_178488)
+ inner.acquire.ready := T_178489
+ T_178455.inner.acquire.bits := inner.acquire.bits
+ node T_178490 = eq(block_acquires, UInt<1>(0))
+ node T_178491 = and(inner.acquire.valid, T_178490)
+ node T_178492 = eq(acquire_idx, UInt<1>(0))
+ node T_178493 = and(T_178491, T_178492)
+ T_178455.inner.acquire.valid := T_178493
+ T_178456.inner.acquire.bits := inner.acquire.bits
+ node T_178494 = eq(block_acquires, UInt<1>(0))
+ node T_178495 = and(inner.acquire.valid, T_178494)
+ node T_178496 = eq(acquire_idx, UInt<1>(1))
+ node T_178497 = and(T_178495, T_178496)
+ T_178456.inner.acquire.valid := T_178497
+ T_178457.inner.acquire.bits := inner.acquire.bits
+ node T_178498 = eq(block_acquires, UInt<1>(0))
+ node T_178499 = and(inner.acquire.valid, T_178498)
+ node T_178500 = eq(acquire_idx, UInt<2>(2))
+ node T_178501 = and(T_178499, T_178500)
+ T_178457.inner.acquire.valid := T_178501
+ wire T_178502 : UInt<1>[4]
+ T_178502[0] := T_178455.inner.release.ready
+ T_178502[1] := T_178456.inner.release.ready
+ T_178502[2] := T_178457.inner.release.ready
+ T_178502[3] := wb.inner.release.ready
+ node T_178503 = cat(T_178502[3], T_178502[2])
+ node T_178504 = cat(T_178502[1], T_178502[0])
+ node releaseReadys = cat(T_178503, T_178504)
+ wire T_178505 : UInt<1>[4]
+ T_178505[0] := T_178455.has_release_match
+ T_178505[1] := T_178456.has_release_match
+ T_178505[2] := T_178457.has_release_match
+ T_178505[3] := wb.has_release_match
+ node T_178506 = cat(T_178505[3], T_178505[2])
+ node T_178507 = cat(T_178505[1], T_178505[0])
+ node releaseMatches = cat(T_178506, T_178507)
+ node T_178508 = bit(releaseMatches, 0)
+ node T_178509 = bit(releaseMatches, 1)
+ node T_178510 = bit(releaseMatches, 2)
+ node T_178511 = bit(releaseMatches, 3)
+ wire T_178512 : UInt<1>[4]
+ T_178512[0] := T_178508
+ T_178512[1] := T_178509
+ T_178512[2] := T_178510
+ T_178512[3] := T_178511
+ wire T_178513 : UInt<2>
+ T_178513 := UInt<2>(3)
+ when T_178512[2] : T_178513 := UInt<2>(2)
+ wire T_178514 : UInt<2>
+ T_178514 := T_178513
+ when T_178512[1] : T_178514 := UInt<1>(1)
+ wire release_idx : UInt<2>
+ release_idx := T_178514
+ when T_178512[0] : release_idx := UInt<1>(0)
+ node T_178515 = dshr(releaseReadys, release_idx)
+ node T_178516 = bit(T_178515, 0)
+ inner.release.ready := T_178516
+ T_178455.inner.release.bits := inner.release.bits
+ node T_178517 = eq(release_idx, UInt<1>(0))
+ node T_178518 = and(inner.release.valid, T_178517)
+ T_178455.inner.release.valid := T_178518
+ T_178456.inner.release.bits := inner.release.bits
+ node T_178519 = eq(release_idx, UInt<1>(1))
+ node T_178520 = and(inner.release.valid, T_178519)
+ T_178456.inner.release.valid := T_178520
+ T_178457.inner.release.bits := inner.release.bits
+ node T_178521 = eq(release_idx, UInt<2>(2))
+ node T_178522 = and(inner.release.valid, T_178521)
+ T_178457.inner.release.valid := T_178522
+ wb.inner.release.bits := inner.release.bits
+ node T_178523 = eq(release_idx, UInt<2>(3))
+ node T_178524 = and(inner.release.valid, T_178523)
+ wb.inner.release.valid := T_178524
+ node T_178525 = eq(releaseMatches, UInt<1>(0))
+ node T_178526 = eq(T_178525, UInt<1>(0))
+ node T_178527 = eq(T_178526, UInt<1>(0))
+ node T_178528 = and(inner.release.valid, T_178527)
+ node T_178529 = eq(T_178528, UInt<1>(0))
+ inst T_178530 of LockingRRArbiter_98418
+ inner.probe <> T_178530.out
+ T_178530.in[0] <> T_178455.inner.probe
+ T_178530.in[1] <> T_178456.inner.probe
+ T_178530.in[2] <> T_178457.inner.probe
+ T_178530.in[3] <> wb.inner.probe
+ inst T_178531 of LockingRRArbiter_99026
+ inner.grant <> T_178531.out
+ T_178531.in[0] <> T_178455.inner.grant
+ T_178531.in[1] <> T_178456.inner.grant
+ T_178531.in[2] <> T_178457.inner.grant
+ T_178455.inner.finish.bits := inner.finish.bits
+ T_178456.inner.finish.bits := inner.finish.bits
+ T_178457.inner.finish.bits := inner.finish.bits
+ node T_178532 = eq(inner.finish.bits.manager_xact_id, UInt<1>(0))
+ node T_178533 = and(inner.finish.valid, T_178532)
+ T_178455.inner.finish.valid := T_178533
+ node T_178534 = eq(inner.finish.bits.manager_xact_id, UInt<1>(1))
+ node T_178535 = and(inner.finish.valid, T_178534)
+ T_178456.inner.finish.valid := T_178535
+ node T_178536 = eq(inner.finish.bits.manager_xact_id, UInt<2>(2))
+ node T_178537 = and(inner.finish.valid, T_178536)
+ T_178457.inner.finish.valid := T_178537
+ wire T_178538 : UInt<1>[3]
+ T_178538[0] := T_178455.inner.finish.ready
+ T_178538[1] := T_178456.inner.finish.ready
+ T_178538[2] := T_178457.inner.finish.ready
+ accessor T_178539 = T_178538[inner.finish.bits.manager_xact_id]
+ inner.finish.ready := T_178539
+ inst outer_arb of ClientTileLinkIOArbiter
+ outer_arb.in[0] <> T_178455.outer
+ outer_arb.in[1] <> T_178456.outer
+ outer_arb.in[2] <> T_178457.outer
+ outer_arb.in[3] <> wb.outer
+ outer <> outer_arb.out
+ inst T_178540 of RRArbiter_105103
+ meta.read <> T_178540.out
+ T_178540.in[0] <> T_178455.meta.read
+ T_178540.in[1] <> T_178456.meta.read
+ T_178540.in[2] <> T_178457.meta.read
+ inst T_178541 of RRArbiter_107737
+ meta.write <> T_178541.out
+ T_178541.in[0] <> T_178455.meta.write
+ T_178541.in[1] <> T_178456.meta.write
+ T_178541.in[2] <> T_178457.meta.write
+ inst T_178542 of RRArbiter_107931
+ data.read <> T_178542.out
+ T_178542.in[0] <> T_178455.data.read
+ T_178542.in[1] <> T_178456.data.read
+ T_178542.in[2] <> T_178457.data.read
+ T_178542.in[3] <> wb.data.read
+ inst T_178543 of RRArbiter_108094
+ data.write <> T_178543.out
+ T_178543.in[0] <> T_178455.data.write
+ T_178543.in[1] <> T_178456.data.write
+ T_178543.in[2] <> T_178457.data.write
+ T_178455.meta.resp.bits := meta.resp.bits
+ T_178456.meta.resp.bits := meta.resp.bits
+ T_178457.meta.resp.bits := meta.resp.bits
+ node T_178544 = eq(meta.resp.bits.id, UInt<1>(0))
+ node T_178545 = and(meta.resp.valid, T_178544)
+ T_178455.meta.resp.valid := T_178545
+ node T_178546 = eq(meta.resp.bits.id, UInt<1>(1))
+ node T_178547 = and(meta.resp.valid, T_178546)
+ T_178456.meta.resp.valid := T_178547
+ node T_178548 = eq(meta.resp.bits.id, UInt<2>(2))
+ node T_178549 = and(meta.resp.valid, T_178548)
+ T_178457.meta.resp.valid := T_178549
+ T_178455.data.resp.bits := data.resp.bits
+ T_178456.data.resp.bits := data.resp.bits
+ T_178457.data.resp.bits := data.resp.bits
+ wb.data.resp.bits := data.resp.bits
+ node T_178550 = eq(data.resp.bits.id, UInt<1>(0))
+ node T_178551 = and(data.resp.valid, T_178550)
+ T_178455.data.resp.valid := T_178551
+ node T_178552 = eq(data.resp.bits.id, UInt<1>(1))
+ node T_178553 = and(data.resp.valid, T_178552)
+ T_178456.data.resp.valid := T_178553
+ node T_178554 = eq(data.resp.bits.id, UInt<2>(2))
+ node T_178555 = and(data.resp.valid, T_178554)
+ T_178457.data.resp.valid := T_178555
+ node T_178556 = eq(data.resp.bits.id, UInt<2>(3))
+ node T_178557 = and(data.resp.valid, T_178556)
+ wb.data.resp.valid := T_178557
+ module L2HellaCacheBank :
+ output inner : {flip acquire : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_block : UInt<26>, client_xact_id : UInt<1>, addr_beat : UInt<2>, data : UInt<128>, is_builtin_type : UInt<1>, a_type : UInt<3>, union : UInt<17>, client_id : UInt<2>}}, grant : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_beat : UInt<2>, data : UInt<128>, client_xact_id : UInt<1>, manager_xact_id : UInt<2>, is_builtin_type : UInt<1>, g_type : UInt<4>, client_id : UInt<2>}}, flip finish : {flip ready : UInt<1>, valid : UInt<1>, bits : {manager_xact_id : UInt<2>}}, probe : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_block : UInt<26>, p_type : UInt<2>, client_id : UInt<2>}}, flip release : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_block : UInt<26>, client_xact_id : UInt<1>, addr_beat : UInt<2>, data : UInt<128>, r_type : UInt<3>, voluntary : UInt<1>, client_id : UInt<2>}}}
+ input incoherent : UInt<1>[1]
+ output outer : {acquire : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_block : UInt<26>, client_xact_id : UInt<2>, addr_beat : UInt<2>, data : UInt<128>, is_builtin_type : UInt<1>, a_type : UInt<3>, union : UInt<17>}}, flip grant : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_beat : UInt<2>, data : UInt<128>, client_xact_id : UInt<2>, manager_xact_id : UInt<1>, is_builtin_type : UInt<1>, g_type : UInt<4>}}, flip probe : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_block : UInt<26>, p_type : UInt<2>}}, release : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_block : UInt<26>, client_xact_id : UInt<2>, addr_beat : UInt<2>, data : UInt<128>, r_type : UInt<3>, voluntary : UInt<1>}}}
+
+ wire T_178558 : UInt<3>[3]
+ T_178558[0] := UInt<3>(0)
+ T_178558[1] := UInt<3>(1)
+ T_178558[2] := UInt<3>(2)
+ wire T_178559 : UInt<2>[2]
+ T_178559[0] := UInt<2>(0)
+ T_178559[1] := UInt<2>(1)
+ wire T_178560 : UInt<2>[3]
+ T_178560[0] := UInt<2>(1)
+ T_178560[1] := UInt<2>(2)
+ T_178560[2] := UInt<2>(3)
+ wire T_178561 : UInt<2>[2]
+ T_178561[0] := UInt<2>(2)
+ T_178561[1] := UInt<2>(3)
+ wire T_178562 : UInt<2>[1]
+ T_178562[0] := UInt<2>(3)
+ wire T_178563 : UInt<3>[3]
+ T_178563[0] := UInt<3>(0)
+ T_178563[1] := UInt<3>(1)
+ T_178563[2] := UInt<3>(2)
+ wire T_178564 : UInt<2>[2]
+ T_178564[0] := UInt<2>(0)
+ T_178564[1] := UInt<2>(1)
+ wire T_178565 : UInt<2>[3]
+ T_178565[0] := UInt<2>(1)
+ T_178565[1] := UInt<2>(2)
+ T_178565[2] := UInt<2>(3)
+ wire T_178566 : UInt<2>[2]
+ T_178566[0] := UInt<2>(2)
+ T_178566[1] := UInt<2>(3)
+ wire T_178567 : UInt<2>[1]
+ T_178567[0] := UInt<2>(3)
+ wire T_178568 : UInt<3>[3]
+ T_178568[0] := UInt<3>(0)
+ T_178568[1] := UInt<3>(1)
+ T_178568[2] := UInt<3>(2)
+ wire T_178569 : UInt<2>[2]
+ T_178569[0] := UInt<2>(0)
+ T_178569[1] := UInt<2>(1)
+ wire T_178570 : UInt<2>[3]
+ T_178570[0] := UInt<2>(1)
+ T_178570[1] := UInt<2>(2)
+ T_178570[2] := UInt<2>(3)
+ wire T_178571 : UInt<2>[2]
+ T_178571[0] := UInt<2>(2)
+ T_178571[1] := UInt<2>(3)
+ wire T_178572 : UInt<2>[1]
+ T_178572[0] := UInt<2>(3)
+ wire T_178573 : UInt<3>[3]
+ T_178573[0] := UInt<3>(0)
+ T_178573[1] := UInt<3>(1)
+ T_178573[2] := UInt<3>(2)
+ wire T_178574 : UInt<2>[2]
+ T_178574[0] := UInt<2>(0)
+ T_178574[1] := UInt<2>(1)
+ wire T_178575 : UInt<2>[3]
+ T_178575[0] := UInt<2>(1)
+ T_178575[1] := UInt<2>(2)
+ T_178575[2] := UInt<2>(3)
+ wire T_178576 : UInt<2>[2]
+ T_178576[0] := UInt<2>(2)
+ T_178576[1] := UInt<2>(3)
+ wire T_178577 : UInt<2>[1]
+ T_178577[0] := UInt<2>(3)
+ wire T_178578 : UInt<3>[3]
+ T_178578[0] := UInt<3>(0)
+ T_178578[1] := UInt<3>(1)
+ T_178578[2] := UInt<3>(2)
+ wire T_178579 : UInt<2>[2]
+ T_178579[0] := UInt<2>(0)
+ T_178579[1] := UInt<2>(1)
+ wire T_178580 : UInt<2>[3]
+ T_178580[0] := UInt<2>(1)
+ T_178580[1] := UInt<2>(2)
+ T_178580[2] := UInt<2>(3)
+ wire T_178581 : UInt<2>[2]
+ T_178581[0] := UInt<2>(2)
+ T_178581[1] := UInt<2>(3)
+ wire T_178582 : UInt<2>[1]
+ T_178582[0] := UInt<2>(3)
+ wire T_178583 : UInt<3>[3]
+ T_178583[0] := UInt<3>(0)
+ T_178583[1] := UInt<3>(1)
+ T_178583[2] := UInt<3>(2)
+ wire T_178584 : UInt<2>[2]
+ T_178584[0] := UInt<2>(0)
+ T_178584[1] := UInt<2>(1)
+ wire T_178585 : UInt<2>[3]
+ T_178585[0] := UInt<2>(1)
+ T_178585[1] := UInt<2>(2)
+ T_178585[2] := UInt<2>(3)
+ wire T_178586 : UInt<2>[2]
+ T_178586[0] := UInt<2>(2)
+ T_178586[1] := UInt<2>(3)
+ wire T_178587 : UInt<2>[1]
+ T_178587[0] := UInt<2>(3)
+ wire T_178588 : UInt<3>[3]
+ T_178588[0] := UInt<3>(0)
+ T_178588[1] := UInt<3>(1)
+ T_178588[2] := UInt<3>(2)
+ wire T_178589 : UInt<2>[2]
+ T_178589[0] := UInt<2>(0)
+ T_178589[1] := UInt<2>(1)
+ wire T_178590 : UInt<2>[3]
+ T_178590[0] := UInt<2>(1)
+ T_178590[1] := UInt<2>(2)
+ T_178590[2] := UInt<2>(3)
+ wire T_178591 : UInt<2>[2]
+ T_178591[0] := UInt<2>(2)
+ T_178591[1] := UInt<2>(3)
+ wire T_178592 : UInt<2>[1]
+ T_178592[0] := UInt<2>(3)
+ wire T_178593 : UInt<3>[3]
+ T_178593[0] := UInt<3>(0)
+ T_178593[1] := UInt<3>(1)
+ T_178593[2] := UInt<3>(2)
+ wire T_178594 : UInt<2>[2]
+ T_178594[0] := UInt<2>(0)
+ T_178594[1] := UInt<2>(1)
+ wire T_178595 : UInt<2>[3]
+ T_178595[0] := UInt<2>(1)
+ T_178595[1] := UInt<2>(2)
+ T_178595[2] := UInt<2>(3)
+ wire T_178596 : UInt<2>[2]
+ T_178596[0] := UInt<2>(2)
+ T_178596[1] := UInt<2>(3)
+ wire T_178597 : UInt<2>[1]
+ T_178597[0] := UInt<2>(3)
+ wire T_178598 : UInt<3>[3]
+ T_178598[0] := UInt<3>(0)
+ T_178598[1] := UInt<3>(1)
+ T_178598[2] := UInt<3>(2)
+ wire T_178599 : UInt<2>[2]
+ T_178599[0] := UInt<2>(0)
+ T_178599[1] := UInt<2>(1)
+ wire T_178600 : UInt<2>[3]
+ T_178600[0] := UInt<2>(1)
+ T_178600[1] := UInt<2>(2)
+ T_178600[2] := UInt<2>(3)
+ wire T_178601 : UInt<2>[2]
+ T_178601[0] := UInt<2>(2)
+ T_178601[1] := UInt<2>(3)
+ wire T_178602 : UInt<2>[1]
+ T_178602[0] := UInt<2>(3)
+ wire T_178603 : UInt<3>[3]
+ T_178603[0] := UInt<3>(0)
+ T_178603[1] := UInt<3>(1)
+ T_178603[2] := UInt<3>(2)
+ wire T_178604 : UInt<2>[2]
+ T_178604[0] := UInt<2>(0)
+ T_178604[1] := UInt<2>(1)
+ wire T_178605 : UInt<2>[3]
+ T_178605[0] := UInt<2>(1)
+ T_178605[1] := UInt<2>(2)
+ T_178605[2] := UInt<2>(3)
+ wire T_178606 : UInt<2>[2]
+ T_178606[0] := UInt<2>(2)
+ T_178606[1] := UInt<2>(3)
+ wire T_178607 : UInt<2>[1]
+ T_178607[0] := UInt<2>(3)
+ wire T_178608 : UInt<3>[3]
+ T_178608[0] := UInt<3>(0)
+ T_178608[1] := UInt<3>(1)
+ T_178608[2] := UInt<3>(2)
+ wire T_178609 : UInt<2>[2]
+ T_178609[0] := UInt<2>(0)
+ T_178609[1] := UInt<2>(1)
+ wire T_178610 : UInt<2>[3]
+ T_178610[0] := UInt<2>(1)
+ T_178610[1] := UInt<2>(2)
+ T_178610[2] := UInt<2>(3)
+ wire T_178611 : UInt<2>[2]
+ T_178611[0] := UInt<2>(2)
+ T_178611[1] := UInt<2>(3)
+ wire T_178612 : UInt<2>[1]
+ T_178612[0] := UInt<2>(3)
+ wire incoherent : UInt<1>[1]
+ incoherent[0] := T_178613
+ wire T_178614 : UInt<3>[3]
+ T_178614[0] := UInt<3>(0)
+ T_178614[1] := UInt<3>(1)
+ T_178614[2] := UInt<3>(2)
+ wire T_178615 : UInt<0>[1]
+ T_178615[0] := UInt<0>(0)
+ wire T_178616 : UInt<2>[2]
+ T_178616[0] := UInt<2>(1)
+ T_178616[1] := UInt<2>(2)
+ wire T_178617 : UInt<2>[2]
+ T_178617[0] := UInt<2>(1)
+ T_178617[1] := UInt<2>(2)
+ wire T_178618 : UInt<2>[1]
+ T_178618[0] := UInt<2>(2)
+ wire T_178619 : UInt<3>[3]
+ T_178619[0] := UInt<3>(0)
+ T_178619[1] := UInt<3>(1)
+ T_178619[2] := UInt<3>(2)
+ wire T_178620 : UInt<0>[1]
+ T_178620[0] := UInt<0>(0)
+ wire T_178621 : UInt<2>[2]
+ T_178621[0] := UInt<2>(1)
+ T_178621[1] := UInt<2>(2)
+ wire T_178622 : UInt<2>[2]
+ T_178622[0] := UInt<2>(1)
+ T_178622[1] := UInt<2>(2)
+ wire T_178623 : UInt<2>[1]
+ T_178623[0] := UInt<2>(2)
+ wire T_178624 : UInt<3>[3]
+ T_178624[0] := UInt<3>(0)
+ T_178624[1] := UInt<3>(1)
+ T_178624[2] := UInt<3>(2)
+ wire T_178625 : UInt<0>[1]
+ T_178625[0] := UInt<0>(0)
+ wire T_178626 : UInt<2>[2]
+ T_178626[0] := UInt<2>(1)
+ T_178626[1] := UInt<2>(2)
+ wire T_178627 : UInt<2>[2]
+ T_178627[0] := UInt<2>(1)
+ T_178627[1] := UInt<2>(2)
+ wire T_178628 : UInt<2>[1]
+ T_178628[0] := UInt<2>(2)
+ wire T_178629 : UInt<3>[3]
+ T_178629[0] := UInt<3>(0)
+ T_178629[1] := UInt<3>(1)
+ T_178629[2] := UInt<3>(2)
+ wire T_178630 : UInt<0>[1]
+ T_178630[0] := UInt<0>(0)
+ wire T_178631 : UInt<2>[2]
+ T_178631[0] := UInt<2>(1)
+ T_178631[1] := UInt<2>(2)
+ wire T_178632 : UInt<2>[2]
+ T_178632[0] := UInt<2>(1)
+ T_178632[1] := UInt<2>(2)
+ wire T_178633 : UInt<2>[1]
+ T_178633[0] := UInt<2>(2)
+ wire T_178634 : UInt<3>[3]
+ T_178634[0] := UInt<3>(0)
+ T_178634[1] := UInt<3>(1)
+ T_178634[2] := UInt<3>(2)
+ wire T_178635 : UInt<0>[1]
+ T_178635[0] := UInt<0>(0)
+ wire T_178636 : UInt<2>[2]
+ T_178636[0] := UInt<2>(1)
+ T_178636[1] := UInt<2>(2)
+ wire T_178637 : UInt<2>[2]
+ T_178637[0] := UInt<2>(1)
+ T_178637[1] := UInt<2>(2)
+ wire T_178638 : UInt<2>[1]
+ T_178638[0] := UInt<2>(2)
+ wire T_178639 : UInt<3>[3]
+ T_178639[0] := UInt<3>(0)
+ T_178639[1] := UInt<3>(1)
+ T_178639[2] := UInt<3>(2)
+ wire T_178640 : UInt<0>[1]
+ T_178640[0] := UInt<0>(0)
+ wire T_178641 : UInt<2>[2]
+ T_178641[0] := UInt<2>(1)
+ T_178641[1] := UInt<2>(2)
+ wire T_178642 : UInt<2>[2]
+ T_178642[0] := UInt<2>(1)
+ T_178642[1] := UInt<2>(2)
+ wire T_178643 : UInt<2>[1]
+ T_178643[0] := UInt<2>(2)
+ wire T_178644 : UInt<3>[3]
+ T_178644[0] := UInt<3>(0)
+ T_178644[1] := UInt<3>(1)
+ T_178644[2] := UInt<3>(2)
+ wire T_178645 : UInt<0>[1]
+ T_178645[0] := UInt<0>(0)
+ wire T_178646 : UInt<2>[2]
+ T_178646[0] := UInt<2>(1)
+ T_178646[1] := UInt<2>(2)
+ wire T_178647 : UInt<2>[2]
+ T_178647[0] := UInt<2>(1)
+ T_178647[1] := UInt<2>(2)
+ wire T_178648 : UInt<2>[1]
+ T_178648[0] := UInt<2>(2)
+ wire T_178649 : UInt<3>[3]
+ T_178649[0] := UInt<3>(0)
+ T_178649[1] := UInt<3>(1)
+ T_178649[2] := UInt<3>(2)
+ wire T_178650 : UInt<0>[1]
+ T_178650[0] := UInt<0>(0)
+ wire T_178651 : UInt<2>[2]
+ T_178651[0] := UInt<2>(1)
+ T_178651[1] := UInt<2>(2)
+ wire T_178652 : UInt<2>[2]
+ T_178652[0] := UInt<2>(1)
+ T_178652[1] := UInt<2>(2)
+ wire T_178653 : UInt<2>[1]
+ T_178653[0] := UInt<2>(2)
+ wire T_178654 : UInt<3>[3]
+ T_178654[0] := UInt<3>(0)
+ T_178654[1] := UInt<3>(1)
+ T_178654[2] := UInt<3>(2)
+ wire T_178655 : UInt<0>[1]
+ T_178655[0] := UInt<0>(0)
+ wire T_178656 : UInt<2>[2]
+ T_178656[0] := UInt<2>(1)
+ T_178656[1] := UInt<2>(2)
+ wire T_178657 : UInt<2>[2]
+ T_178657[0] := UInt<2>(1)
+ T_178657[1] := UInt<2>(2)
+ wire T_178658 : UInt<2>[1]
+ T_178658[0] := UInt<2>(2)
+ inst meta of L2MetadataArray
+ inst data of L2DataArray
+ inst tshrfile of TSHRFile
+ tshrfile.inner <> inner
+ outer <> tshrfile.outer
+ incoherent[0] <> tshrfile.incoherent[0]
+ tshrfile.meta <> meta
+ tshrfile.data <> data
+ module FinishQueue_113456 :
+ input enq : {flip ready : UInt<1>, valid : UInt<1>, bits : {fin : {manager_xact_id : UInt<1>}, dst : UInt<1>}}
+ output deq : {flip ready : UInt<1>, valid : UInt<1>, bits : {fin : {manager_xact_id : UInt<1>}, dst : UInt<1>}}
+ output count : UInt<2>
+
+ wire T_178659 : UInt<3>[3]
+ T_178659[0] := UInt<3>(0)
+ T_178659[1] := UInt<3>(1)
+ T_178659[2] := UInt<3>(2)
+ wire T_178660 : UInt<0>[1]
+ T_178660[0] := UInt<0>(0)
+ wire T_178661 : UInt<2>[2]
+ T_178661[0] := UInt<2>(1)
+ T_178661[1] := UInt<2>(2)
+ wire T_178662 : UInt<2>[2]
+ T_178662[0] := UInt<2>(1)
+ T_178662[1] := UInt<2>(2)
+ wire T_178663 : UInt<2>[1]
+ T_178663[0] := UInt<2>(2)
+ wire T_178664 : UInt<3>[3]
+ T_178664[0] := UInt<3>(0)
+ T_178664[1] := UInt<3>(1)
+ T_178664[2] := UInt<3>(2)
+ wire T_178665 : UInt<0>[1]
+ T_178665[0] := UInt<0>(0)
+ wire T_178666 : UInt<2>[2]
+ T_178666[0] := UInt<2>(1)
+ T_178666[1] := UInt<2>(2)
+ wire T_178667 : UInt<2>[2]
+ T_178667[0] := UInt<2>(1)
+ T_178667[1] := UInt<2>(2)
+ wire T_178668 : UInt<2>[1]
+ T_178668[0] := UInt<2>(2)
+ wire T_178669 : UInt<3>[3]
+ T_178669[0] := UInt<3>(0)
+ T_178669[1] := UInt<3>(1)
+ T_178669[2] := UInt<3>(2)
+ wire T_178670 : UInt<0>[1]
+ T_178670[0] := UInt<0>(0)
+ wire T_178671 : UInt<2>[2]
+ T_178671[0] := UInt<2>(1)
+ T_178671[1] := UInt<2>(2)
+ wire T_178672 : UInt<2>[2]
+ T_178672[0] := UInt<2>(1)
+ T_178672[1] := UInt<2>(2)
+ wire T_178673 : UInt<2>[1]
+ T_178673[0] := UInt<2>(2)
+ wire T_178674 : UInt<3>[3]
+ T_178674[0] := UInt<3>(0)
+ T_178674[1] := UInt<3>(1)
+ T_178674[2] := UInt<3>(2)
+ wire T_178675 : UInt<0>[1]
+ T_178675[0] := UInt<0>(0)
+ wire T_178676 : UInt<2>[2]
+ T_178676[0] := UInt<2>(1)
+ T_178676[1] := UInt<2>(2)
+ wire T_178677 : UInt<2>[2]
+ T_178677[0] := UInt<2>(1)
+ T_178677[1] := UInt<2>(2)
+ wire T_178678 : UInt<2>[1]
+ T_178678[0] := UInt<2>(2)
+ wire T_178679 : UInt<3>[3]
+ T_178679[0] := UInt<3>(0)
+ T_178679[1] := UInt<3>(1)
+ T_178679[2] := UInt<3>(2)
+ wire T_178680 : UInt<0>[1]
+ T_178680[0] := UInt<0>(0)
+ wire T_178681 : UInt<2>[2]
+ T_178681[0] := UInt<2>(1)
+ T_178681[1] := UInt<2>(2)
+ wire T_178682 : UInt<2>[2]
+ T_178682[0] := UInt<2>(1)
+ T_178682[1] := UInt<2>(2)
+ wire T_178683 : UInt<2>[1]
+ T_178683[0] := UInt<2>(2)
+ wire T_178684 : UInt<3>[3]
+ T_178684[0] := UInt<3>(0)
+ T_178684[1] := UInt<3>(1)
+ T_178684[2] := UInt<3>(2)
+ wire T_178685 : UInt<0>[1]
+ T_178685[0] := UInt<0>(0)
+ wire T_178686 : UInt<2>[2]
+ T_178686[0] := UInt<2>(1)
+ T_178686[1] := UInt<2>(2)
+ wire T_178687 : UInt<2>[2]
+ T_178687[0] := UInt<2>(1)
+ T_178687[1] := UInt<2>(2)
+ wire T_178688 : UInt<2>[1]
+ T_178688[0] := UInt<2>(2)
+ wire T_178689 : UInt<3>[3]
+ T_178689[0] := UInt<3>(0)
+ T_178689[1] := UInt<3>(1)
+ T_178689[2] := UInt<3>(2)
+ wire T_178690 : UInt<0>[1]
+ T_178690[0] := UInt<0>(0)
+ wire T_178691 : UInt<2>[2]
+ T_178691[0] := UInt<2>(1)
+ T_178691[1] := UInt<2>(2)
+ wire T_178692 : UInt<2>[2]
+ T_178692[0] := UInt<2>(1)
+ T_178692[1] := UInt<2>(2)
+ wire T_178693 : UInt<2>[1]
+ T_178693[0] := UInt<2>(2)
+ wire T_178694 : UInt<3>[3]
+ T_178694[0] := UInt<3>(0)
+ T_178694[1] := UInt<3>(1)
+ T_178694[2] := UInt<3>(2)
+ wire T_178695 : UInt<0>[1]
+ T_178695[0] := UInt<0>(0)
+ wire T_178696 : UInt<2>[2]
+ T_178696[0] := UInt<2>(1)
+ T_178696[1] := UInt<2>(2)
+ wire T_178697 : UInt<2>[2]
+ T_178697[0] := UInt<2>(1)
+ T_178697[1] := UInt<2>(2)
+ wire T_178698 : UInt<2>[1]
+ T_178698[0] := UInt<2>(2)
+ wire T_178699 : UInt<3>[3]
+ T_178699[0] := UInt<3>(0)
+ T_178699[1] := UInt<3>(1)
+ T_178699[2] := UInt<3>(2)
+ wire T_178700 : UInt<0>[1]
+ T_178700[0] := UInt<0>(0)
+ wire T_178701 : UInt<2>[2]
+ T_178701[0] := UInt<2>(1)
+ T_178701[1] := UInt<2>(2)
+ wire T_178702 : UInt<2>[2]
+ T_178702[0] := UInt<2>(1)
+ T_178702[1] := UInt<2>(2)
+ wire T_178703 : UInt<2>[1]
+ T_178703[0] := UInt<2>(2)
+ wire T_178704 : UInt<3>[3]
+ T_178704[0] := UInt<3>(0)
+ T_178704[1] := UInt<3>(1)
+ T_178704[2] := UInt<3>(2)
+ wire T_178705 : UInt<0>[1]
+ T_178705[0] := UInt<0>(0)
+ wire T_178706 : UInt<2>[2]
+ T_178706[0] := UInt<2>(1)
+ T_178706[1] := UInt<2>(2)
+ wire T_178707 : UInt<2>[2]
+ T_178707[0] := UInt<2>(1)
+ T_178707[1] := UInt<2>(2)
+ wire T_178708 : UInt<2>[1]
+ T_178708[0] := UInt<2>(2)
+ cmem T_178709 : {fin : {manager_xact_id : UInt<1>}, dst : UInt<1>}[2]
+ reg T_178710 : UInt<1>
+ onreset T_178710 := UInt<1>(0)
+ reg T_178711 : UInt<1>
+ onreset T_178711 := UInt<1>(0)
+ reg T_178712 : UInt<1>
+ onreset T_178712 := UInt<1>(0)
+ node T_178713 = eq(T_178710, T_178711)
+ node T_178714 = eq(T_178712, UInt<1>(0))
+ node T_178715 = and(T_178713, T_178714)
+ node T_178716 = and(T_178713, T_178712)
+ node T_178717 = and(UInt<1>(0), T_178715)
+ node T_178718 = and(T_178717, deq.ready)
+ node T_178719 = and(enq.ready, enq.valid)
+ node T_178720 = eq(T_178718, UInt<1>(0))
+ node T_178721 = and(T_178719, T_178720)
+ node T_178722 = and(deq.ready, deq.valid)
+ node T_178723 = eq(T_178718, UInt<1>(0))
+ node T_178724 = and(T_178722, T_178723)
+ when T_178721 :
+ wire T_178725 : UInt<3>[3]
+ T_178725[0] := UInt<3>(0)
+ T_178725[1] := UInt<3>(1)
+ T_178725[2] := UInt<3>(2)
+ wire T_178726 : UInt<0>[1]
+ T_178726[0] := UInt<0>(0)
+ wire T_178727 : UInt<2>[2]
+ T_178727[0] := UInt<2>(1)
+ T_178727[1] := UInt<2>(2)
+ wire T_178728 : UInt<2>[2]
+ T_178728[0] := UInt<2>(1)
+ T_178728[1] := UInt<2>(2)
+ wire T_178729 : UInt<2>[1]
+ T_178729[0] := UInt<2>(2)
+ wire T_178730 : UInt<3>[3]
+ T_178730[0] := UInt<3>(0)
+ T_178730[1] := UInt<3>(1)
+ T_178730[2] := UInt<3>(2)
+ wire T_178731 : UInt<0>[1]
+ T_178731[0] := UInt<0>(0)
+ wire T_178732 : UInt<2>[2]
+ T_178732[0] := UInt<2>(1)
+ T_178732[1] := UInt<2>(2)
+ wire T_178733 : UInt<2>[2]
+ T_178733[0] := UInt<2>(1)
+ T_178733[1] := UInt<2>(2)
+ wire T_178734 : UInt<2>[1]
+ T_178734[0] := UInt<2>(2)
+ accessor T_178735 = T_178709[T_178710]
+ T_178735 := enq.bits
+ node T_178736 = eq(T_178710, UInt<1>(1))
+ node T_178737 = and(UInt<1>(0), T_178736)
+ node T_178738 = addw(T_178710, UInt<1>(1))
+ wire T_178739 : UInt<1>
+ T_178739 := T_178738
+ when T_178737 : T_178739 := UInt<1>(0)
+ T_178710 := T_178739
+ when T_178724 :
+ node T_178740 = eq(T_178711, UInt<1>(1))
+ node T_178741 = and(UInt<1>(0), T_178740)
+ node T_178742 = addw(T_178711, UInt<1>(1))
+ wire T_178743 : UInt<1>
+ T_178743 := T_178742
+ when T_178741 : T_178743 := UInt<1>(0)
+ T_178711 := T_178743
+
+ node T_178744 = neq(T_178721, T_178724)
+ when T_178744 : T_178712 := T_178721
+ node T_178745 = eq(T_178715, UInt<1>(0))
+ node T_178746 = and(UInt<1>(0), enq.valid)
+ node T_178747 = or(T_178745, T_178746)
+ deq.valid := T_178747
+ node T_178748 = eq(T_178716, UInt<1>(0))
+ node T_178749 = and(UInt<1>(0), deq.ready)
+ node T_178750 = or(T_178748, T_178749)
+ enq.ready := T_178750
+ wire T_178751 : UInt<3>[3]
+ T_178751[0] := UInt<3>(0)
+ T_178751[1] := UInt<3>(1)
+ T_178751[2] := UInt<3>(2)
+ wire T_178752 : UInt<0>[1]
+ T_178752[0] := UInt<0>(0)
+ wire T_178753 : UInt<2>[2]
+ T_178753[0] := UInt<2>(1)
+ T_178753[1] := UInt<2>(2)
+ wire T_178754 : UInt<2>[2]
+ T_178754[0] := UInt<2>(1)
+ T_178754[1] := UInt<2>(2)
+ wire T_178755 : UInt<2>[1]
+ T_178755[0] := UInt<2>(2)
+ wire T_178756 : UInt<3>[3]
+ T_178756[0] := UInt<3>(0)
+ T_178756[1] := UInt<3>(1)
+ T_178756[2] := UInt<3>(2)
+ wire T_178757 : UInt<0>[1]
+ T_178757[0] := UInt<0>(0)
+ wire T_178758 : UInt<2>[2]
+ T_178758[0] := UInt<2>(1)
+ T_178758[1] := UInt<2>(2)
+ wire T_178759 : UInt<2>[2]
+ T_178759[0] := UInt<2>(1)
+ T_178759[1] := UInt<2>(2)
+ wire T_178760 : UInt<2>[1]
+ T_178760[0] := UInt<2>(2)
+ accessor T_178761 = T_178709[T_178711]
+ wire T_178762 : UInt<3>[3]
+ T_178762[0] := UInt<3>(0)
+ T_178762[1] := UInt<3>(1)
+ T_178762[2] := UInt<3>(2)
+ wire T_178763 : UInt<0>[1]
+ T_178763[0] := UInt<0>(0)
+ wire T_178764 : UInt<2>[2]
+ T_178764[0] := UInt<2>(1)
+ T_178764[1] := UInt<2>(2)
+ wire T_178765 : UInt<2>[2]
+ T_178765[0] := UInt<2>(1)
+ T_178765[1] := UInt<2>(2)
+ wire T_178766 : UInt<2>[1]
+ T_178766[0] := UInt<2>(2)
+ wire T_178767 : UInt<3>[3]
+ T_178767[0] := UInt<3>(0)
+ T_178767[1] := UInt<3>(1)
+ T_178767[2] := UInt<3>(2)
+ wire T_178768 : UInt<0>[1]
+ T_178768[0] := UInt<0>(0)
+ wire T_178769 : UInt<2>[2]
+ T_178769[0] := UInt<2>(1)
+ T_178769[1] := UInt<2>(2)
+ wire T_178770 : UInt<2>[2]
+ T_178770[0] := UInt<2>(1)
+ T_178770[1] := UInt<2>(2)
+ wire T_178771 : UInt<2>[1]
+ T_178771[0] := UInt<2>(2)
+ wire T_178772 : {fin : {manager_xact_id : UInt<1>}, dst : UInt<1>}
+ T_178772 := T_178761
+ when T_178717 : T_178772 := enq.bits
+ deq.bits := T_178772
+ node T_178773 = subw(T_178710, T_178711)
+ node T_178774 = and(T_178712, T_178713)
+ node T_178775 = cat(T_178774, T_178773)
+ count := T_178775
+ module FinishUnit_113600 :
+ input grant : {flip ready : UInt<1>, valid : UInt<1>, bits : {header : {src : UInt<1>, dst : UInt<1>}, payload : {addr_beat : UInt<2>, data : UInt<128>, client_xact_id : UInt<2>, manager_xact_id : UInt<1>, is_builtin_type : UInt<1>, g_type : UInt<4>}}}
+ output refill : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_beat : UInt<2>, data : UInt<128>, client_xact_id : UInt<2>, manager_xact_id : UInt<1>, is_builtin_type : UInt<1>, g_type : UInt<4>}}
+ output finish : {flip ready : UInt<1>, valid : UInt<1>, bits : {header : {src : UInt<1>, dst : UInt<1>}, payload : {manager_xact_id : UInt<1>}}}
+ output ready : UInt<1>
+
+ wire T_178776 : UInt<3>[3]
+ T_178776[0] := UInt<3>(0)
+ T_178776[1] := UInt<3>(1)
+ T_178776[2] := UInt<3>(2)
+ wire T_178777 : UInt<0>[1]
+ T_178777[0] := UInt<0>(0)
+ wire T_178778 : UInt<2>[2]
+ T_178778[0] := UInt<2>(1)
+ T_178778[1] := UInt<2>(2)
+ wire T_178779 : UInt<2>[2]
+ T_178779[0] := UInt<2>(1)
+ T_178779[1] := UInt<2>(2)
+ wire T_178780 : UInt<2>[1]
+ T_178780[0] := UInt<2>(2)
+ wire T_178781 : UInt<3>[3]
+ T_178781[0] := UInt<3>(0)
+ T_178781[1] := UInt<3>(1)
+ T_178781[2] := UInt<3>(2)
+ wire T_178782 : UInt<0>[1]
+ T_178782[0] := UInt<0>(0)
+ wire T_178783 : UInt<2>[2]
+ T_178783[0] := UInt<2>(1)
+ T_178783[1] := UInt<2>(2)
+ wire T_178784 : UInt<2>[2]
+ T_178784[0] := UInt<2>(1)
+ T_178784[1] := UInt<2>(2)
+ wire T_178785 : UInt<2>[1]
+ T_178785[0] := UInt<2>(2)
+ wire T_178786 : UInt<3>[3]
+ T_178786[0] := UInt<3>(0)
+ T_178786[1] := UInt<3>(1)
+ T_178786[2] := UInt<3>(2)
+ wire T_178787 : UInt<0>[1]
+ T_178787[0] := UInt<0>(0)
+ wire T_178788 : UInt<2>[2]
+ T_178788[0] := UInt<2>(1)
+ T_178788[1] := UInt<2>(2)
+ wire T_178789 : UInt<2>[2]
+ T_178789[0] := UInt<2>(1)
+ T_178789[1] := UInt<2>(2)
+ wire T_178790 : UInt<2>[1]
+ T_178790[0] := UInt<2>(2)
+ wire T_178791 : UInt<3>[3]
+ T_178791[0] := UInt<3>(0)
+ T_178791[1] := UInt<3>(1)
+ T_178791[2] := UInt<3>(2)
+ wire T_178792 : UInt<0>[1]
+ T_178792[0] := UInt<0>(0)
+ wire T_178793 : UInt<2>[2]
+ T_178793[0] := UInt<2>(1)
+ T_178793[1] := UInt<2>(2)
+ wire T_178794 : UInt<2>[2]
+ T_178794[0] := UInt<2>(1)
+ T_178794[1] := UInt<2>(2)
+ wire T_178795 : UInt<2>[1]
+ T_178795[0] := UInt<2>(2)
+ wire T_178796 : UInt<3>[3]
+ T_178796[0] := UInt<3>(0)
+ T_178796[1] := UInt<3>(1)
+ T_178796[2] := UInt<3>(2)
+ wire T_178797 : UInt<0>[1]
+ T_178797[0] := UInt<0>(0)
+ wire T_178798 : UInt<2>[2]
+ T_178798[0] := UInt<2>(1)
+ T_178798[1] := UInt<2>(2)
+ wire T_178799 : UInt<2>[2]
+ T_178799[0] := UInt<2>(1)
+ T_178799[1] := UInt<2>(2)
+ wire T_178800 : UInt<2>[1]
+ T_178800[0] := UInt<2>(2)
+ wire T_178801 : UInt<3>[3]
+ T_178801[0] := UInt<3>(0)
+ T_178801[1] := UInt<3>(1)
+ T_178801[2] := UInt<3>(2)
+ wire T_178802 : UInt<0>[1]
+ T_178802[0] := UInt<0>(0)
+ wire T_178803 : UInt<2>[2]
+ T_178803[0] := UInt<2>(1)
+ T_178803[1] := UInt<2>(2)
+ wire T_178804 : UInt<2>[2]
+ T_178804[0] := UInt<2>(1)
+ T_178804[1] := UInt<2>(2)
+ wire T_178805 : UInt<2>[1]
+ T_178805[0] := UInt<2>(2)
+ wire T_178806 : UInt<3>[3]
+ T_178806[0] := UInt<3>(0)
+ T_178806[1] := UInt<3>(1)
+ T_178806[2] := UInt<3>(2)
+ wire T_178807 : UInt<0>[1]
+ T_178807[0] := UInt<0>(0)
+ wire T_178808 : UInt<2>[2]
+ T_178808[0] := UInt<2>(1)
+ T_178808[1] := UInt<2>(2)
+ wire T_178809 : UInt<2>[2]
+ T_178809[0] := UInt<2>(1)
+ T_178809[1] := UInt<2>(2)
+ wire T_178810 : UInt<2>[1]
+ T_178810[0] := UInt<2>(2)
+ wire T_178811 : UInt<3>[3]
+ T_178811[0] := UInt<3>(0)
+ T_178811[1] := UInt<3>(1)
+ T_178811[2] := UInt<3>(2)
+ wire T_178812 : UInt<0>[1]
+ T_178812[0] := UInt<0>(0)
+ wire T_178813 : UInt<2>[2]
+ T_178813[0] := UInt<2>(1)
+ T_178813[1] := UInt<2>(2)
+ wire T_178814 : UInt<2>[2]
+ T_178814[0] := UInt<2>(1)
+ T_178814[1] := UInt<2>(2)
+ wire T_178815 : UInt<2>[1]
+ T_178815[0] := UInt<2>(2)
+ wire T_178816 : UInt<3>[3]
+ T_178816[0] := UInt<3>(0)
+ T_178816[1] := UInt<3>(1)
+ T_178816[2] := UInt<3>(2)
+ wire T_178817 : UInt<0>[1]
+ T_178817[0] := UInt<0>(0)
+ wire T_178818 : UInt<2>[2]
+ T_178818[0] := UInt<2>(1)
+ T_178818[1] := UInt<2>(2)
+ wire T_178819 : UInt<2>[2]
+ T_178819[0] := UInt<2>(1)
+ T_178819[1] := UInt<2>(2)
+ wire T_178820 : UInt<2>[1]
+ T_178820[0] := UInt<2>(2)
+ node T_178821 = and(grant.ready, grant.valid)
+ wire T_178822 : UInt<3>[1]
+ T_178822[0] := UInt<3>(5)
+ node T_178823 = eq(T_178822[0], grant.bits.payload.g_type)
+ node T_178824 = or(UInt<1>(0), T_178823)
+ node T_178825 = eq(T_178792[0], grant.bits.payload.g_type)
+ node T_178826 = or(UInt<1>(0), T_178825)
+ wire T_178827 : UInt<1>
+ T_178827 := T_178826
+ when grant.bits.payload.is_builtin_type : T_178827 := T_178824
+ node T_178828 = and(UInt<1>(1), T_178827)
+ node T_178829 = and(T_178821, T_178828)
+ reg T_178830 : UInt<2>
+ onreset T_178830 := UInt<2>(0)
+ when T_178829 :
+ node T_178831 = eq(T_178830, UInt<2>(3))
+ node T_178832 = and(UInt<1>(0), T_178831)
+ node T_178833 = addw(T_178830, UInt<1>(1))
+ wire T_178834 : UInt<2>
+ T_178834 := T_178833
+ when T_178832 : T_178834 := UInt<1>(0)
+ T_178830 := T_178834
+ node T_178835 = and(T_178829, T_178831)
+ wire T_178836 : UInt<1>
+ T_178836 := UInt<1>(0)
+ when T_178828 : T_178836 := T_178830
+ wire T_178837 : UInt<1>
+ T_178837 := T_178821
+ when T_178828 : T_178837 := T_178835
+ wire T_178838 : UInt<3>[3]
+ T_178838[0] := UInt<3>(0)
+ T_178838[1] := UInt<3>(1)
+ T_178838[2] := UInt<3>(2)
+ wire T_178839 : UInt<0>[1]
+ T_178839[0] := UInt<0>(0)
+ wire T_178840 : UInt<2>[2]
+ T_178840[0] := UInt<2>(1)
+ T_178840[1] := UInt<2>(2)
+ wire T_178841 : UInt<2>[2]
+ T_178841[0] := UInt<2>(1)
+ T_178841[1] := UInt<2>(2)
+ wire T_178842 : UInt<2>[1]
+ T_178842[0] := UInt<2>(2)
+ wire T_178843 : UInt<3>[3]
+ T_178843[0] := UInt<3>(0)
+ T_178843[1] := UInt<3>(1)
+ T_178843[2] := UInt<3>(2)
+ wire T_178844 : UInt<0>[1]
+ T_178844[0] := UInt<0>(0)
+ wire T_178845 : UInt<2>[2]
+ T_178845[0] := UInt<2>(1)
+ T_178845[1] := UInt<2>(2)
+ wire T_178846 : UInt<2>[2]
+ T_178846[0] := UInt<2>(1)
+ T_178846[1] := UInt<2>(2)
+ wire T_178847 : UInt<2>[1]
+ T_178847[0] := UInt<2>(2)
+ inst T_178848 of FinishQueue_113456
+ node T_178849 = and(grant.ready, grant.valid)
+ node T_178850 = eq(UInt<1>(0), UInt<1>(0))
+ node T_178851 = eq(grant.bits.payload.g_type, UInt<3>(0))
+ node T_178852 = and(grant.bits.payload.is_builtin_type, T_178851)
+ node T_178853 = eq(T_178852, UInt<1>(0))
+ node T_178854 = and(T_178850, T_178853)
+ node T_178855 = and(T_178849, T_178854)
+ wire T_178856 : UInt<3>[1]
+ T_178856[0] := UInt<3>(5)
+ node T_178857 = eq(T_178856[0], grant.bits.payload.g_type)
+ node T_178858 = or(UInt<1>(0), T_178857)
+ node T_178859 = eq(T_178792[0], grant.bits.payload.g_type)
+ node T_178860 = or(UInt<1>(0), T_178859)
+ wire T_178861 : UInt<1>
+ T_178861 := T_178860
+ when grant.bits.payload.is_builtin_type : T_178861 := T_178858
+ node T_178862 = and(UInt<1>(1), T_178861)
+ node T_178863 = eq(T_178862, UInt<1>(0))
+ node T_178864 = or(T_178863, T_178837)
+ node T_178865 = and(T_178855, T_178864)
+ T_178848.enq.valid := T_178865
+ wire T_178866 : UInt<3>[3]
+ T_178866[0] := UInt<3>(0)
+ T_178866[1] := UInt<3>(1)
+ T_178866[2] := UInt<3>(2)
+ wire T_178867 : UInt<0>[1]
+ T_178867[0] := UInt<0>(0)
+ wire T_178868 : UInt<2>[2]
+ T_178868[0] := UInt<2>(1)
+ T_178868[1] := UInt<2>(2)
+ wire T_178869 : UInt<2>[2]
+ T_178869[0] := UInt<2>(1)
+ T_178869[1] := UInt<2>(2)
+ wire T_178870 : UInt<2>[1]
+ T_178870[0] := UInt<2>(2)
+ wire T_178871 : UInt<3>[3]
+ T_178871[0] := UInt<3>(0)
+ T_178871[1] := UInt<3>(1)
+ T_178871[2] := UInt<3>(2)
+ wire T_178872 : UInt<0>[1]
+ T_178872[0] := UInt<0>(0)
+ wire T_178873 : UInt<2>[2]
+ T_178873[0] := UInt<2>(1)
+ T_178873[1] := UInt<2>(2)
+ wire T_178874 : UInt<2>[2]
+ T_178874[0] := UInt<2>(1)
+ T_178874[1] := UInt<2>(2)
+ wire T_178875 : UInt<2>[1]
+ T_178875[0] := UInt<2>(2)
+ wire T_178876 : {manager_xact_id : UInt<1>}
+ T_178876.manager_xact_id := grant.bits.payload.manager_xact_id
+ T_178848.enq.bits.fin := T_178876
+ T_178848.enq.bits.dst := grant.bits.header.src
+ finish.bits.header.src := UInt<1>(0)
+ finish.bits.header.dst := T_178848.deq.bits.dst
+ finish.bits.payload := T_178848.deq.bits.fin
+ finish.valid := T_178848.deq.valid
+ T_178848.deq.ready := finish.ready
+ refill.valid := grant.valid
+ refill.bits := grant.bits.payload
+ node T_178877 = eq(UInt<1>(0), UInt<1>(0))
+ node T_178878 = eq(grant.bits.payload.g_type, UInt<3>(0))
+ node T_178879 = and(grant.bits.payload.is_builtin_type, T_178878)
+ node T_178880 = eq(T_178879, UInt<1>(0))
+ node T_178881 = and(T_178877, T_178880)
+ node T_178882 = eq(T_178881, UInt<1>(0))
+ node T_178883 = or(T_178848.enq.ready, T_178882)
+ node T_178884 = and(T_178883, refill.ready)
+ grant.ready := T_178884
+ ready := T_178848.enq.ready
+ module ClientTileLinkNetworkPort_114092 :
+ input client : {acquire : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_block : UInt<26>, client_xact_id : UInt<2>, addr_beat : UInt<2>, data : UInt<128>, is_builtin_type : UInt<1>, a_type : UInt<3>, union : UInt<17>}}, flip grant : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_beat : UInt<2>, data : UInt<128>, client_xact_id : UInt<2>, manager_xact_id : UInt<1>, is_builtin_type : UInt<1>, g_type : UInt<4>}}, flip probe : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_block : UInt<26>, p_type : UInt<2>}}, release : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_block : UInt<26>, client_xact_id : UInt<2>, addr_beat : UInt<2>, data : UInt<128>, r_type : UInt<3>, voluntary : UInt<1>}}}
+ output network : {acquire : {flip ready : UInt<1>, valid : UInt<1>, bits : {header : {src : UInt<1>, dst : UInt<1>}, payload : {addr_block : UInt<26>, client_xact_id : UInt<2>, addr_beat : UInt<2>, data : UInt<128>, is_builtin_type : UInt<1>, a_type : UInt<3>, union : UInt<17>}}}, flip grant : {flip ready : UInt<1>, valid : UInt<1>, bits : {header : {src : UInt<1>, dst : UInt<1>}, payload : {addr_beat : UInt<2>, data : UInt<128>, client_xact_id : UInt<2>, manager_xact_id : UInt<1>, is_builtin_type : UInt<1>, g_type : UInt<4>}}}, finish : {flip ready : UInt<1>, valid : UInt<1>, bits : {header : {src : UInt<1>, dst : UInt<1>}, payload : {manager_xact_id : UInt<1>}}}, flip probe : {flip ready : UInt<1>, valid : UInt<1>, bits : {header : {src : UInt<1>, dst : UInt<1>}, payload : {addr_block : UInt<26>, p_type : UInt<2>}}}, release : {flip ready : UInt<1>, valid : UInt<1>, bits : {header : {src : UInt<1>, dst : UInt<1>}, payload : {addr_block : UInt<26>, client_xact_id : UInt<2>, addr_beat : UInt<2>, data : UInt<128>, r_type : UInt<3>, voluntary : UInt<1>}}}}
+
+ wire T_178885 : UInt<3>[3]
+ T_178885[0] := UInt<3>(0)
+ T_178885[1] := UInt<3>(1)
+ T_178885[2] := UInt<3>(2)
+ wire T_178886 : UInt<0>[1]
+ T_178886[0] := UInt<0>(0)
+ wire T_178887 : UInt<2>[2]
+ T_178887[0] := UInt<2>(1)
+ T_178887[1] := UInt<2>(2)
+ wire T_178888 : UInt<2>[2]
+ T_178888[0] := UInt<2>(1)
+ T_178888[1] := UInt<2>(2)
+ wire T_178889 : UInt<2>[1]
+ T_178889[0] := UInt<2>(2)
+ wire T_178890 : UInt<3>[3]
+ T_178890[0] := UInt<3>(0)
+ T_178890[1] := UInt<3>(1)
+ T_178890[2] := UInt<3>(2)
+ wire T_178891 : UInt<0>[1]
+ T_178891[0] := UInt<0>(0)
+ wire T_178892 : UInt<2>[2]
+ T_178892[0] := UInt<2>(1)
+ T_178892[1] := UInt<2>(2)
+ wire T_178893 : UInt<2>[2]
+ T_178893[0] := UInt<2>(1)
+ T_178893[1] := UInt<2>(2)
+ wire T_178894 : UInt<2>[1]
+ T_178894[0] := UInt<2>(2)
+ wire T_178895 : UInt<3>[3]
+ T_178895[0] := UInt<3>(0)
+ T_178895[1] := UInt<3>(1)
+ T_178895[2] := UInt<3>(2)
+ wire T_178896 : UInt<0>[1]
+ T_178896[0] := UInt<0>(0)
+ wire T_178897 : UInt<2>[2]
+ T_178897[0] := UInt<2>(1)
+ T_178897[1] := UInt<2>(2)
+ wire T_178898 : UInt<2>[2]
+ T_178898[0] := UInt<2>(1)
+ T_178898[1] := UInt<2>(2)
+ wire T_178899 : UInt<2>[1]
+ T_178899[0] := UInt<2>(2)
+ wire T_178900 : UInt<3>[3]
+ T_178900[0] := UInt<3>(0)
+ T_178900[1] := UInt<3>(1)
+ T_178900[2] := UInt<3>(2)
+ wire T_178901 : UInt<0>[1]
+ T_178901[0] := UInt<0>(0)
+ wire T_178902 : UInt<2>[2]
+ T_178902[0] := UInt<2>(1)
+ T_178902[1] := UInt<2>(2)
+ wire T_178903 : UInt<2>[2]
+ T_178903[0] := UInt<2>(1)
+ T_178903[1] := UInt<2>(2)
+ wire T_178904 : UInt<2>[1]
+ T_178904[0] := UInt<2>(2)
+ wire T_178905 : UInt<3>[3]
+ T_178905[0] := UInt<3>(0)
+ T_178905[1] := UInt<3>(1)
+ T_178905[2] := UInt<3>(2)
+ wire T_178906 : UInt<0>[1]
+ T_178906[0] := UInt<0>(0)
+ wire T_178907 : UInt<2>[2]
+ T_178907[0] := UInt<2>(1)
+ T_178907[1] := UInt<2>(2)
+ wire T_178908 : UInt<2>[2]
+ T_178908[0] := UInt<2>(1)
+ T_178908[1] := UInt<2>(2)
+ wire T_178909 : UInt<2>[1]
+ T_178909[0] := UInt<2>(2)
+ wire T_178910 : UInt<3>[3]
+ T_178910[0] := UInt<3>(0)
+ T_178910[1] := UInt<3>(1)
+ T_178910[2] := UInt<3>(2)
+ wire T_178911 : UInt<0>[1]
+ T_178911[0] := UInt<0>(0)
+ wire T_178912 : UInt<2>[2]
+ T_178912[0] := UInt<2>(1)
+ T_178912[1] := UInt<2>(2)
+ wire T_178913 : UInt<2>[2]
+ T_178913[0] := UInt<2>(1)
+ T_178913[1] := UInt<2>(2)
+ wire T_178914 : UInt<2>[1]
+ T_178914[0] := UInt<2>(2)
+ wire T_178915 : UInt<3>[3]
+ T_178915[0] := UInt<3>(0)
+ T_178915[1] := UInt<3>(1)
+ T_178915[2] := UInt<3>(2)
+ wire T_178916 : UInt<0>[1]
+ T_178916[0] := UInt<0>(0)
+ wire T_178917 : UInt<2>[2]
+ T_178917[0] := UInt<2>(1)
+ T_178917[1] := UInt<2>(2)
+ wire T_178918 : UInt<2>[2]
+ T_178918[0] := UInt<2>(1)
+ T_178918[1] := UInt<2>(2)
+ wire T_178919 : UInt<2>[1]
+ T_178919[0] := UInt<2>(2)
+ wire T_178920 : UInt<3>[3]
+ T_178920[0] := UInt<3>(0)
+ T_178920[1] := UInt<3>(1)
+ T_178920[2] := UInt<3>(2)
+ wire T_178921 : UInt<0>[1]
+ T_178921[0] := UInt<0>(0)
+ wire T_178922 : UInt<2>[2]
+ T_178922[0] := UInt<2>(1)
+ T_178922[1] := UInt<2>(2)
+ wire T_178923 : UInt<2>[2]
+ T_178923[0] := UInt<2>(1)
+ T_178923[1] := UInt<2>(2)
+ wire T_178924 : UInt<2>[1]
+ T_178924[0] := UInt<2>(2)
+ wire T_178925 : UInt<3>[3]
+ T_178925[0] := UInt<3>(0)
+ T_178925[1] := UInt<3>(1)
+ T_178925[2] := UInt<3>(2)
+ wire T_178926 : UInt<0>[1]
+ T_178926[0] := UInt<0>(0)
+ wire T_178927 : UInt<2>[2]
+ T_178927[0] := UInt<2>(1)
+ T_178927[1] := UInt<2>(2)
+ wire T_178928 : UInt<2>[2]
+ T_178928[0] := UInt<2>(1)
+ T_178928[1] := UInt<2>(2)
+ wire T_178929 : UInt<2>[1]
+ T_178929[0] := UInt<2>(2)
+ wire T_178930 : UInt<3>[3]
+ T_178930[0] := UInt<3>(0)
+ T_178930[1] := UInt<3>(1)
+ T_178930[2] := UInt<3>(2)
+ wire T_178931 : UInt<0>[1]
+ T_178931[0] := UInt<0>(0)
+ wire T_178932 : UInt<2>[2]
+ T_178932[0] := UInt<2>(1)
+ T_178932[1] := UInt<2>(2)
+ wire T_178933 : UInt<2>[2]
+ T_178933[0] := UInt<2>(1)
+ T_178933[1] := UInt<2>(2)
+ wire T_178934 : UInt<2>[1]
+ T_178934[0] := UInt<2>(2)
+ wire T_178935 : UInt<3>[3]
+ T_178935[0] := UInt<3>(0)
+ T_178935[1] := UInt<3>(1)
+ T_178935[2] := UInt<3>(2)
+ wire T_178936 : UInt<0>[1]
+ T_178936[0] := UInt<0>(0)
+ wire T_178937 : UInt<2>[2]
+ T_178937[0] := UInt<2>(1)
+ T_178937[1] := UInt<2>(2)
+ wire T_178938 : UInt<2>[2]
+ T_178938[0] := UInt<2>(1)
+ T_178938[1] := UInt<2>(2)
+ wire T_178939 : UInt<2>[1]
+ T_178939[0] := UInt<2>(2)
+ wire T_178940 : UInt<3>[3]
+ T_178940[0] := UInt<3>(0)
+ T_178940[1] := UInt<3>(1)
+ T_178940[2] := UInt<3>(2)
+ wire T_178941 : UInt<0>[1]
+ T_178941[0] := UInt<0>(0)
+ wire T_178942 : UInt<2>[2]
+ T_178942[0] := UInt<2>(1)
+ T_178942[1] := UInt<2>(2)
+ wire T_178943 : UInt<2>[2]
+ T_178943[0] := UInt<2>(1)
+ T_178943[1] := UInt<2>(2)
+ wire T_178944 : UInt<2>[1]
+ T_178944[0] := UInt<2>(2)
+ wire T_178945 : UInt<3>[3]
+ T_178945[0] := UInt<3>(0)
+ T_178945[1] := UInt<3>(1)
+ T_178945[2] := UInt<3>(2)
+ wire T_178946 : UInt<0>[1]
+ T_178946[0] := UInt<0>(0)
+ wire T_178947 : UInt<2>[2]
+ T_178947[0] := UInt<2>(1)
+ T_178947[1] := UInt<2>(2)
+ wire T_178948 : UInt<2>[2]
+ T_178948[0] := UInt<2>(1)
+ T_178948[1] := UInt<2>(2)
+ wire T_178949 : UInt<2>[1]
+ T_178949[0] := UInt<2>(2)
+ wire T_178950 : UInt<3>[3]
+ T_178950[0] := UInt<3>(0)
+ T_178950[1] := UInt<3>(1)
+ T_178950[2] := UInt<3>(2)
+ wire T_178951 : UInt<0>[1]
+ T_178951[0] := UInt<0>(0)
+ wire T_178952 : UInt<2>[2]
+ T_178952[0] := UInt<2>(1)
+ T_178952[1] := UInt<2>(2)
+ wire T_178953 : UInt<2>[2]
+ T_178953[0] := UInt<2>(1)
+ T_178953[1] := UInt<2>(2)
+ wire T_178954 : UInt<2>[1]
+ T_178954[0] := UInt<2>(2)
+ wire T_178955 : UInt<3>[3]
+ T_178955[0] := UInt<3>(0)
+ T_178955[1] := UInt<3>(1)
+ T_178955[2] := UInt<3>(2)
+ wire T_178956 : UInt<0>[1]
+ T_178956[0] := UInt<0>(0)
+ wire T_178957 : UInt<2>[2]
+ T_178957[0] := UInt<2>(1)
+ T_178957[1] := UInt<2>(2)
+ wire T_178958 : UInt<2>[2]
+ T_178958[0] := UInt<2>(1)
+ T_178958[1] := UInt<2>(2)
+ wire T_178959 : UInt<2>[1]
+ T_178959[0] := UInt<2>(2)
+ wire T_178960 : UInt<3>[3]
+ T_178960[0] := UInt<3>(0)
+ T_178960[1] := UInt<3>(1)
+ T_178960[2] := UInt<3>(2)
+ wire T_178961 : UInt<0>[1]
+ T_178961[0] := UInt<0>(0)
+ wire T_178962 : UInt<2>[2]
+ T_178962[0] := UInt<2>(1)
+ T_178962[1] := UInt<2>(2)
+ wire T_178963 : UInt<2>[2]
+ T_178963[0] := UInt<2>(1)
+ T_178963[1] := UInt<2>(2)
+ wire T_178964 : UInt<2>[1]
+ T_178964[0] := UInt<2>(2)
+ wire T_178965 : UInt<3>[3]
+ T_178965[0] := UInt<3>(0)
+ T_178965[1] := UInt<3>(1)
+ T_178965[2] := UInt<3>(2)
+ wire T_178966 : UInt<0>[1]
+ T_178966[0] := UInt<0>(0)
+ wire T_178967 : UInt<2>[2]
+ T_178967[0] := UInt<2>(1)
+ T_178967[1] := UInt<2>(2)
+ wire T_178968 : UInt<2>[2]
+ T_178968[0] := UInt<2>(1)
+ T_178968[1] := UInt<2>(2)
+ wire T_178969 : UInt<2>[1]
+ T_178969[0] := UInt<2>(2)
+ wire T_178970 : UInt<3>[3]
+ T_178970[0] := UInt<3>(0)
+ T_178970[1] := UInt<3>(1)
+ T_178970[2] := UInt<3>(2)
+ wire T_178971 : UInt<0>[1]
+ T_178971[0] := UInt<0>(0)
+ wire T_178972 : UInt<2>[2]
+ T_178972[0] := UInt<2>(1)
+ T_178972[1] := UInt<2>(2)
+ wire T_178973 : UInt<2>[2]
+ T_178973[0] := UInt<2>(1)
+ T_178973[1] := UInt<2>(2)
+ wire T_178974 : UInt<2>[1]
+ T_178974[0] := UInt<2>(2)
+ wire T_178975 : UInt<3>[3]
+ T_178975[0] := UInt<3>(0)
+ T_178975[1] := UInt<3>(1)
+ T_178975[2] := UInt<3>(2)
+ wire T_178976 : UInt<0>[1]
+ T_178976[0] := UInt<0>(0)
+ wire T_178977 : UInt<2>[2]
+ T_178977[0] := UInt<2>(1)
+ T_178977[1] := UInt<2>(2)
+ wire T_178978 : UInt<2>[2]
+ T_178978[0] := UInt<2>(1)
+ T_178978[1] := UInt<2>(2)
+ wire T_178979 : UInt<2>[1]
+ T_178979[0] := UInt<2>(2)
+ wire T_178980 : UInt<3>[3]
+ T_178980[0] := UInt<3>(0)
+ T_178980[1] := UInt<3>(1)
+ T_178980[2] := UInt<3>(2)
+ wire T_178981 : UInt<0>[1]
+ T_178981[0] := UInt<0>(0)
+ wire T_178982 : UInt<2>[2]
+ T_178982[0] := UInt<2>(1)
+ T_178982[1] := UInt<2>(2)
+ wire T_178983 : UInt<2>[2]
+ T_178983[0] := UInt<2>(1)
+ T_178983[1] := UInt<2>(2)
+ wire T_178984 : UInt<2>[1]
+ T_178984[0] := UInt<2>(2)
+ wire T_178985 : UInt<3>[3]
+ T_178985[0] := UInt<3>(0)
+ T_178985[1] := UInt<3>(1)
+ T_178985[2] := UInt<3>(2)
+ wire T_178986 : UInt<0>[1]
+ T_178986[0] := UInt<0>(0)
+ wire T_178987 : UInt<2>[2]
+ T_178987[0] := UInt<2>(1)
+ T_178987[1] := UInt<2>(2)
+ wire T_178988 : UInt<2>[2]
+ T_178988[0] := UInt<2>(1)
+ T_178988[1] := UInt<2>(2)
+ wire T_178989 : UInt<2>[1]
+ T_178989[0] := UInt<2>(2)
+ wire T_178990 : UInt<3>[3]
+ T_178990[0] := UInt<3>(0)
+ T_178990[1] := UInt<3>(1)
+ T_178990[2] := UInt<3>(2)
+ wire T_178991 : UInt<0>[1]
+ T_178991[0] := UInt<0>(0)
+ wire T_178992 : UInt<2>[2]
+ T_178992[0] := UInt<2>(1)
+ T_178992[1] := UInt<2>(2)
+ wire T_178993 : UInt<2>[2]
+ T_178993[0] := UInt<2>(1)
+ T_178993[1] := UInt<2>(2)
+ wire T_178994 : UInt<2>[1]
+ T_178994[0] := UInt<2>(2)
+ wire T_178995 : UInt<3>[3]
+ T_178995[0] := UInt<3>(0)
+ T_178995[1] := UInt<3>(1)
+ T_178995[2] := UInt<3>(2)
+ wire T_178996 : UInt<0>[1]
+ T_178996[0] := UInt<0>(0)
+ wire T_178997 : UInt<2>[2]
+ T_178997[0] := UInt<2>(1)
+ T_178997[1] := UInt<2>(2)
+ wire T_178998 : UInt<2>[2]
+ T_178998[0] := UInt<2>(1)
+ T_178998[1] := UInt<2>(2)
+ wire T_178999 : UInt<2>[1]
+ T_178999[0] := UInt<2>(2)
+ wire T_179000 : UInt<3>[3]
+ T_179000[0] := UInt<3>(0)
+ T_179000[1] := UInt<3>(1)
+ T_179000[2] := UInt<3>(2)
+ wire T_179001 : UInt<0>[1]
+ T_179001[0] := UInt<0>(0)
+ wire T_179002 : UInt<2>[2]
+ T_179002[0] := UInt<2>(1)
+ T_179002[1] := UInt<2>(2)
+ wire T_179003 : UInt<2>[2]
+ T_179003[0] := UInt<2>(1)
+ T_179003[1] := UInt<2>(2)
+ wire T_179004 : UInt<2>[1]
+ T_179004[0] := UInt<2>(2)
+ wire T_179005 : UInt<3>[3]
+ T_179005[0] := UInt<3>(0)
+ T_179005[1] := UInt<3>(1)
+ T_179005[2] := UInt<3>(2)
+ wire T_179006 : UInt<0>[1]
+ T_179006[0] := UInt<0>(0)
+ wire T_179007 : UInt<2>[2]
+ T_179007[0] := UInt<2>(1)
+ T_179007[1] := UInt<2>(2)
+ wire T_179008 : UInt<2>[2]
+ T_179008[0] := UInt<2>(1)
+ T_179008[1] := UInt<2>(2)
+ wire T_179009 : UInt<2>[1]
+ T_179009[0] := UInt<2>(2)
+ wire T_179010 : UInt<3>[3]
+ T_179010[0] := UInt<3>(0)
+ T_179010[1] := UInt<3>(1)
+ T_179010[2] := UInt<3>(2)
+ wire T_179011 : UInt<0>[1]
+ T_179011[0] := UInt<0>(0)
+ wire T_179012 : UInt<2>[2]
+ T_179012[0] := UInt<2>(1)
+ T_179012[1] := UInt<2>(2)
+ wire T_179013 : UInt<2>[2]
+ T_179013[0] := UInt<2>(1)
+ T_179013[1] := UInt<2>(2)
+ wire T_179014 : UInt<2>[1]
+ T_179014[0] := UInt<2>(2)
+ inst finisher of FinishUnit_113600
+ finisher.grant <> network.grant
+ network.finish <> finisher.finish
+ wire T_179015 : UInt<3>[3]
+ T_179015[0] := UInt<3>(0)
+ T_179015[1] := UInt<3>(1)
+ T_179015[2] := UInt<3>(2)
+ wire T_179016 : UInt<0>[1]
+ T_179016[0] := UInt<0>(0)
+ wire T_179017 : UInt<2>[2]
+ T_179017[0] := UInt<2>(1)
+ T_179017[1] := UInt<2>(2)
+ wire T_179018 : UInt<2>[2]
+ T_179018[0] := UInt<2>(1)
+ T_179018[1] := UInt<2>(2)
+ wire T_179019 : UInt<2>[1]
+ T_179019[0] := UInt<2>(2)
+ wire T_179020 : UInt<3>[3]
+ T_179020[0] := UInt<3>(0)
+ T_179020[1] := UInt<3>(1)
+ T_179020[2] := UInt<3>(2)
+ wire T_179021 : UInt<0>[1]
+ T_179021[0] := UInt<0>(0)
+ wire T_179022 : UInt<2>[2]
+ T_179022[0] := UInt<2>(1)
+ T_179022[1] := UInt<2>(2)
+ wire T_179023 : UInt<2>[2]
+ T_179023[0] := UInt<2>(1)
+ T_179023[1] := UInt<2>(2)
+ wire T_179024 : UInt<2>[1]
+ T_179024[0] := UInt<2>(2)
+ wire T_179025 : UInt<3>[3]
+ T_179025[0] := UInt<3>(0)
+ T_179025[1] := UInt<3>(1)
+ T_179025[2] := UInt<3>(2)
+ wire T_179026 : UInt<0>[1]
+ T_179026[0] := UInt<0>(0)
+ wire T_179027 : UInt<2>[2]
+ T_179027[0] := UInt<2>(1)
+ T_179027[1] := UInt<2>(2)
+ wire T_179028 : UInt<2>[2]
+ T_179028[0] := UInt<2>(1)
+ T_179028[1] := UInt<2>(2)
+ wire T_179029 : UInt<2>[1]
+ T_179029[0] := UInt<2>(2)
+ wire acq_with_header : {flip ready : UInt<1>, valid : UInt<1>, bits : {header : {src : UInt<1>, dst : UInt<1>}, payload : {addr_block : UInt<26>, client_xact_id : UInt<2>, addr_beat : UInt<2>, data : UInt<128>, is_builtin_type : UInt<1>, a_type : UInt<3>, union : UInt<17>}}}
+ acq_with_header.bits.payload := client.acquire.bits
+ acq_with_header.bits.header.src := UInt<1>(0)
+ acq_with_header.bits.header.dst := UInt<1>(0)
+ acq_with_header.valid := client.acquire.valid
+ client.acquire.ready := acq_with_header.ready
+ wire T_179030 : UInt<3>[3]
+ T_179030[0] := UInt<3>(0)
+ T_179030[1] := UInt<3>(1)
+ T_179030[2] := UInt<3>(2)
+ wire T_179031 : UInt<0>[1]
+ T_179031[0] := UInt<0>(0)
+ wire T_179032 : UInt<2>[2]
+ T_179032[0] := UInt<2>(1)
+ T_179032[1] := UInt<2>(2)
+ wire T_179033 : UInt<2>[2]
+ T_179033[0] := UInt<2>(1)
+ T_179033[1] := UInt<2>(2)
+ wire T_179034 : UInt<2>[1]
+ T_179034[0] := UInt<2>(2)
+ wire T_179035 : UInt<3>[3]
+ T_179035[0] := UInt<3>(0)
+ T_179035[1] := UInt<3>(1)
+ T_179035[2] := UInt<3>(2)
+ wire T_179036 : UInt<0>[1]
+ T_179036[0] := UInt<0>(0)
+ wire T_179037 : UInt<2>[2]
+ T_179037[0] := UInt<2>(1)
+ T_179037[1] := UInt<2>(2)
+ wire T_179038 : UInt<2>[2]
+ T_179038[0] := UInt<2>(1)
+ T_179038[1] := UInt<2>(2)
+ wire T_179039 : UInt<2>[1]
+ T_179039[0] := UInt<2>(2)
+ wire T_179040 : UInt<3>[3]
+ T_179040[0] := UInt<3>(0)
+ T_179040[1] := UInt<3>(1)
+ T_179040[2] := UInt<3>(2)
+ wire T_179041 : UInt<0>[1]
+ T_179041[0] := UInt<0>(0)
+ wire T_179042 : UInt<2>[2]
+ T_179042[0] := UInt<2>(1)
+ T_179042[1] := UInt<2>(2)
+ wire T_179043 : UInt<2>[2]
+ T_179043[0] := UInt<2>(1)
+ T_179043[1] := UInt<2>(2)
+ wire T_179044 : UInt<2>[1]
+ T_179044[0] := UInt<2>(2)
+ wire rel_with_header : {flip ready : UInt<1>, valid : UInt<1>, bits : {header : {src : UInt<1>, dst : UInt<1>}, payload : {addr_block : UInt<26>, client_xact_id : UInt<2>, addr_beat : UInt<2>, data : UInt<128>, r_type : UInt<3>, voluntary : UInt<1>}}}
+ rel_with_header.bits.payload := client.release.bits
+ rel_with_header.bits.header.src := UInt<1>(0)
+ rel_with_header.bits.header.dst := UInt<1>(0)
+ rel_with_header.valid := client.release.valid
+ client.release.ready := rel_with_header.ready
+ wire T_179045 : UInt<3>[3]
+ T_179045[0] := UInt<3>(0)
+ T_179045[1] := UInt<3>(1)
+ T_179045[2] := UInt<3>(2)
+ wire T_179046 : UInt<0>[1]
+ T_179046[0] := UInt<0>(0)
+ wire T_179047 : UInt<2>[2]
+ T_179047[0] := UInt<2>(1)
+ T_179047[1] := UInt<2>(2)
+ wire T_179048 : UInt<2>[2]
+ T_179048[0] := UInt<2>(1)
+ T_179048[1] := UInt<2>(2)
+ wire T_179049 : UInt<2>[1]
+ T_179049[0] := UInt<2>(2)
+ wire T_179050 : UInt<3>[3]
+ T_179050[0] := UInt<3>(0)
+ T_179050[1] := UInt<3>(1)
+ T_179050[2] := UInt<3>(2)
+ wire T_179051 : UInt<0>[1]
+ T_179051[0] := UInt<0>(0)
+ wire T_179052 : UInt<2>[2]
+ T_179052[0] := UInt<2>(1)
+ T_179052[1] := UInt<2>(2)
+ wire T_179053 : UInt<2>[2]
+ T_179053[0] := UInt<2>(1)
+ T_179053[1] := UInt<2>(2)
+ wire T_179054 : UInt<2>[1]
+ T_179054[0] := UInt<2>(2)
+ wire prb_without_header : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_block : UInt<26>, p_type : UInt<2>}}
+ prb_without_header.valid := network.probe.valid
+ prb_without_header.bits := network.probe.bits.payload
+ network.probe.ready := prb_without_header.ready
+ network.acquire.bits := acq_with_header.bits
+ node T_179055 = and(acq_with_header.valid, finisher.ready)
+ network.acquire.valid := T_179055
+ node T_179056 = and(network.acquire.ready, finisher.ready)
+ acq_with_header.ready := T_179056
+ network.release <> rel_with_header
+ client.probe <> prb_without_header
+ client.grant <> finisher.refill
+ module TileLinkEnqueuer_115938 :
+ input client : {acquire : {flip ready : UInt<1>, valid : UInt<1>, bits : {header : {src : UInt<1>, dst : UInt<1>}, payload : {addr_block : UInt<26>, client_xact_id : UInt<2>, addr_beat : UInt<2>, data : UInt<128>, is_builtin_type : UInt<1>, a_type : UInt<3>, union : UInt<17>}}}, flip grant : {flip ready : UInt<1>, valid : UInt<1>, bits : {header : {src : UInt<1>, dst : UInt<1>}, payload : {addr_beat : UInt<2>, data : UInt<128>, client_xact_id : UInt<2>, manager_xact_id : UInt<1>, is_builtin_type : UInt<1>, g_type : UInt<4>}}}, finish : {flip ready : UInt<1>, valid : UInt<1>, bits : {header : {src : UInt<1>, dst : UInt<1>}, payload : {manager_xact_id : UInt<1>}}}, flip probe : {flip ready : UInt<1>, valid : UInt<1>, bits : {header : {src : UInt<1>, dst : UInt<1>}, payload : {addr_block : UInt<26>, p_type : UInt<2>}}}, release : {flip ready : UInt<1>, valid : UInt<1>, bits : {header : {src : UInt<1>, dst : UInt<1>}, payload : {addr_block : UInt<26>, client_xact_id : UInt<2>, addr_beat : UInt<2>, data : UInt<128>, r_type : UInt<3>, voluntary : UInt<1>}}}}
+ output manager : {acquire : {flip ready : UInt<1>, valid : UInt<1>, bits : {header : {src : UInt<1>, dst : UInt<1>}, payload : {addr_block : UInt<26>, client_xact_id : UInt<2>, addr_beat : UInt<2>, data : UInt<128>, is_builtin_type : UInt<1>, a_type : UInt<3>, union : UInt<17>}}}, flip grant : {flip ready : UInt<1>, valid : UInt<1>, bits : {header : {src : UInt<1>, dst : UInt<1>}, payload : {addr_beat : UInt<2>, data : UInt<128>, client_xact_id : UInt<2>, manager_xact_id : UInt<1>, is_builtin_type : UInt<1>, g_type : UInt<4>}}}, finish : {flip ready : UInt<1>, valid : UInt<1>, bits : {header : {src : UInt<1>, dst : UInt<1>}, payload : {manager_xact_id : UInt<1>}}}, flip probe : {flip ready : UInt<1>, valid : UInt<1>, bits : {header : {src : UInt<1>, dst : UInt<1>}, payload : {addr_block : UInt<26>, p_type : UInt<2>}}}, release : {flip ready : UInt<1>, valid : UInt<1>, bits : {header : {src : UInt<1>, dst : UInt<1>}, payload : {addr_block : UInt<26>, client_xact_id : UInt<2>, addr_beat : UInt<2>, data : UInt<128>, r_type : UInt<3>, voluntary : UInt<1>}}}}
+
+ wire T_179057 : UInt<3>[3]
+ T_179057[0] := UInt<3>(0)
+ T_179057[1] := UInt<3>(1)
+ T_179057[2] := UInt<3>(2)
+ wire T_179058 : UInt<0>[1]
+ T_179058[0] := UInt<0>(0)
+ wire T_179059 : UInt<2>[2]
+ T_179059[0] := UInt<2>(1)
+ T_179059[1] := UInt<2>(2)
+ wire T_179060 : UInt<2>[2]
+ T_179060[0] := UInt<2>(1)
+ T_179060[1] := UInt<2>(2)
+ wire T_179061 : UInt<2>[1]
+ T_179061[0] := UInt<2>(2)
+ wire T_179062 : UInt<3>[3]
+ T_179062[0] := UInt<3>(0)
+ T_179062[1] := UInt<3>(1)
+ T_179062[2] := UInt<3>(2)
+ wire T_179063 : UInt<0>[1]
+ T_179063[0] := UInt<0>(0)
+ wire T_179064 : UInt<2>[2]
+ T_179064[0] := UInt<2>(1)
+ T_179064[1] := UInt<2>(2)
+ wire T_179065 : UInt<2>[2]
+ T_179065[0] := UInt<2>(1)
+ T_179065[1] := UInt<2>(2)
+ wire T_179066 : UInt<2>[1]
+ T_179066[0] := UInt<2>(2)
+ wire T_179067 : UInt<3>[3]
+ T_179067[0] := UInt<3>(0)
+ T_179067[1] := UInt<3>(1)
+ T_179067[2] := UInt<3>(2)
+ wire T_179068 : UInt<0>[1]
+ T_179068[0] := UInt<0>(0)
+ wire T_179069 : UInt<2>[2]
+ T_179069[0] := UInt<2>(1)
+ T_179069[1] := UInt<2>(2)
+ wire T_179070 : UInt<2>[2]
+ T_179070[0] := UInt<2>(1)
+ T_179070[1] := UInt<2>(2)
+ wire T_179071 : UInt<2>[1]
+ T_179071[0] := UInt<2>(2)
+ wire T_179072 : UInt<3>[3]
+ T_179072[0] := UInt<3>(0)
+ T_179072[1] := UInt<3>(1)
+ T_179072[2] := UInt<3>(2)
+ wire T_179073 : UInt<0>[1]
+ T_179073[0] := UInt<0>(0)
+ wire T_179074 : UInt<2>[2]
+ T_179074[0] := UInt<2>(1)
+ T_179074[1] := UInt<2>(2)
+ wire T_179075 : UInt<2>[2]
+ T_179075[0] := UInt<2>(1)
+ T_179075[1] := UInt<2>(2)
+ wire T_179076 : UInt<2>[1]
+ T_179076[0] := UInt<2>(2)
+ wire T_179077 : UInt<3>[3]
+ T_179077[0] := UInt<3>(0)
+ T_179077[1] := UInt<3>(1)
+ T_179077[2] := UInt<3>(2)
+ wire T_179078 : UInt<0>[1]
+ T_179078[0] := UInt<0>(0)
+ wire T_179079 : UInt<2>[2]
+ T_179079[0] := UInt<2>(1)
+ T_179079[1] := UInt<2>(2)
+ wire T_179080 : UInt<2>[2]
+ T_179080[0] := UInt<2>(1)
+ T_179080[1] := UInt<2>(2)
+ wire T_179081 : UInt<2>[1]
+ T_179081[0] := UInt<2>(2)
+ wire T_179082 : UInt<3>[3]
+ T_179082[0] := UInt<3>(0)
+ T_179082[1] := UInt<3>(1)
+ T_179082[2] := UInt<3>(2)
+ wire T_179083 : UInt<0>[1]
+ T_179083[0] := UInt<0>(0)
+ wire T_179084 : UInt<2>[2]
+ T_179084[0] := UInt<2>(1)
+ T_179084[1] := UInt<2>(2)
+ wire T_179085 : UInt<2>[2]
+ T_179085[0] := UInt<2>(1)
+ T_179085[1] := UInt<2>(2)
+ wire T_179086 : UInt<2>[1]
+ T_179086[0] := UInt<2>(2)
+ wire T_179087 : UInt<3>[3]
+ T_179087[0] := UInt<3>(0)
+ T_179087[1] := UInt<3>(1)
+ T_179087[2] := UInt<3>(2)
+ wire T_179088 : UInt<0>[1]
+ T_179088[0] := UInt<0>(0)
+ wire T_179089 : UInt<2>[2]
+ T_179089[0] := UInt<2>(1)
+ T_179089[1] := UInt<2>(2)
+ wire T_179090 : UInt<2>[2]
+ T_179090[0] := UInt<2>(1)
+ T_179090[1] := UInt<2>(2)
+ wire T_179091 : UInt<2>[1]
+ T_179091[0] := UInt<2>(2)
+ wire T_179092 : UInt<3>[3]
+ T_179092[0] := UInt<3>(0)
+ T_179092[1] := UInt<3>(1)
+ T_179092[2] := UInt<3>(2)
+ wire T_179093 : UInt<0>[1]
+ T_179093[0] := UInt<0>(0)
+ wire T_179094 : UInt<2>[2]
+ T_179094[0] := UInt<2>(1)
+ T_179094[1] := UInt<2>(2)
+ wire T_179095 : UInt<2>[2]
+ T_179095[0] := UInt<2>(1)
+ T_179095[1] := UInt<2>(2)
+ wire T_179096 : UInt<2>[1]
+ T_179096[0] := UInt<2>(2)
+ wire T_179097 : UInt<3>[3]
+ T_179097[0] := UInt<3>(0)
+ T_179097[1] := UInt<3>(1)
+ T_179097[2] := UInt<3>(2)
+ wire T_179098 : UInt<0>[1]
+ T_179098[0] := UInt<0>(0)
+ wire T_179099 : UInt<2>[2]
+ T_179099[0] := UInt<2>(1)
+ T_179099[1] := UInt<2>(2)
+ wire T_179100 : UInt<2>[2]
+ T_179100[0] := UInt<2>(1)
+ T_179100[1] := UInt<2>(2)
+ wire T_179101 : UInt<2>[1]
+ T_179101[0] := UInt<2>(2)
+ wire T_179102 : UInt<3>[3]
+ T_179102[0] := UInt<3>(0)
+ T_179102[1] := UInt<3>(1)
+ T_179102[2] := UInt<3>(2)
+ wire T_179103 : UInt<0>[1]
+ T_179103[0] := UInt<0>(0)
+ wire T_179104 : UInt<2>[2]
+ T_179104[0] := UInt<2>(1)
+ T_179104[1] := UInt<2>(2)
+ wire T_179105 : UInt<2>[2]
+ T_179105[0] := UInt<2>(1)
+ T_179105[1] := UInt<2>(2)
+ wire T_179106 : UInt<2>[1]
+ T_179106[0] := UInt<2>(2)
+ wire T_179107 : UInt<3>[3]
+ T_179107[0] := UInt<3>(0)
+ T_179107[1] := UInt<3>(1)
+ T_179107[2] := UInt<3>(2)
+ wire T_179108 : UInt<0>[1]
+ T_179108[0] := UInt<0>(0)
+ wire T_179109 : UInt<2>[2]
+ T_179109[0] := UInt<2>(1)
+ T_179109[1] := UInt<2>(2)
+ wire T_179110 : UInt<2>[2]
+ T_179110[0] := UInt<2>(1)
+ T_179110[1] := UInt<2>(2)
+ wire T_179111 : UInt<2>[1]
+ T_179111[0] := UInt<2>(2)
+ wire T_179112 : UInt<3>[3]
+ T_179112[0] := UInt<3>(0)
+ T_179112[1] := UInt<3>(1)
+ T_179112[2] := UInt<3>(2)
+ wire T_179113 : UInt<0>[1]
+ T_179113[0] := UInt<0>(0)
+ wire T_179114 : UInt<2>[2]
+ T_179114[0] := UInt<2>(1)
+ T_179114[1] := UInt<2>(2)
+ wire T_179115 : UInt<2>[2]
+ T_179115[0] := UInt<2>(1)
+ T_179115[1] := UInt<2>(2)
+ wire T_179116 : UInt<2>[1]
+ T_179116[0] := UInt<2>(2)
+ wire T_179117 : UInt<3>[3]
+ T_179117[0] := UInt<3>(0)
+ T_179117[1] := UInt<3>(1)
+ T_179117[2] := UInt<3>(2)
+ wire T_179118 : UInt<0>[1]
+ T_179118[0] := UInt<0>(0)
+ wire T_179119 : UInt<2>[2]
+ T_179119[0] := UInt<2>(1)
+ T_179119[1] := UInt<2>(2)
+ wire T_179120 : UInt<2>[2]
+ T_179120[0] := UInt<2>(1)
+ T_179120[1] := UInt<2>(2)
+ wire T_179121 : UInt<2>[1]
+ T_179121[0] := UInt<2>(2)
+ wire T_179122 : UInt<3>[3]
+ T_179122[0] := UInt<3>(0)
+ T_179122[1] := UInt<3>(1)
+ T_179122[2] := UInt<3>(2)
+ wire T_179123 : UInt<0>[1]
+ T_179123[0] := UInt<0>(0)
+ wire T_179124 : UInt<2>[2]
+ T_179124[0] := UInt<2>(1)
+ T_179124[1] := UInt<2>(2)
+ wire T_179125 : UInt<2>[2]
+ T_179125[0] := UInt<2>(1)
+ T_179125[1] := UInt<2>(2)
+ wire T_179126 : UInt<2>[1]
+ T_179126[0] := UInt<2>(2)
+ wire T_179127 : UInt<3>[3]
+ T_179127[0] := UInt<3>(0)
+ T_179127[1] := UInt<3>(1)
+ T_179127[2] := UInt<3>(2)
+ wire T_179128 : UInt<0>[1]
+ T_179128[0] := UInt<0>(0)
+ wire T_179129 : UInt<2>[2]
+ T_179129[0] := UInt<2>(1)
+ T_179129[1] := UInt<2>(2)
+ wire T_179130 : UInt<2>[2]
+ T_179130[0] := UInt<2>(1)
+ T_179130[1] := UInt<2>(2)
+ wire T_179131 : UInt<2>[1]
+ T_179131[0] := UInt<2>(2)
+ wire T_179132 : UInt<3>[3]
+ T_179132[0] := UInt<3>(0)
+ T_179132[1] := UInt<3>(1)
+ T_179132[2] := UInt<3>(2)
+ wire T_179133 : UInt<0>[1]
+ T_179133[0] := UInt<0>(0)
+ wire T_179134 : UInt<2>[2]
+ T_179134[0] := UInt<2>(1)
+ T_179134[1] := UInt<2>(2)
+ wire T_179135 : UInt<2>[2]
+ T_179135[0] := UInt<2>(1)
+ T_179135[1] := UInt<2>(2)
+ wire T_179136 : UInt<2>[1]
+ T_179136[0] := UInt<2>(2)
+ wire T_179137 : UInt<3>[3]
+ T_179137[0] := UInt<3>(0)
+ T_179137[1] := UInt<3>(1)
+ T_179137[2] := UInt<3>(2)
+ wire T_179138 : UInt<0>[1]
+ T_179138[0] := UInt<0>(0)
+ wire T_179139 : UInt<2>[2]
+ T_179139[0] := UInt<2>(1)
+ T_179139[1] := UInt<2>(2)
+ wire T_179140 : UInt<2>[2]
+ T_179140[0] := UInt<2>(1)
+ T_179140[1] := UInt<2>(2)
+ wire T_179141 : UInt<2>[1]
+ T_179141[0] := UInt<2>(2)
+ wire T_179142 : UInt<3>[3]
+ T_179142[0] := UInt<3>(0)
+ T_179142[1] := UInt<3>(1)
+ T_179142[2] := UInt<3>(2)
+ wire T_179143 : UInt<0>[1]
+ T_179143[0] := UInt<0>(0)
+ wire T_179144 : UInt<2>[2]
+ T_179144[0] := UInt<2>(1)
+ T_179144[1] := UInt<2>(2)
+ wire T_179145 : UInt<2>[2]
+ T_179145[0] := UInt<2>(1)
+ T_179145[1] := UInt<2>(2)
+ wire T_179146 : UInt<2>[1]
+ T_179146[0] := UInt<2>(2)
+ wire T_179147 : UInt<3>[3]
+ T_179147[0] := UInt<3>(0)
+ T_179147[1] := UInt<3>(1)
+ T_179147[2] := UInt<3>(2)
+ wire T_179148 : UInt<0>[1]
+ T_179148[0] := UInt<0>(0)
+ wire T_179149 : UInt<2>[2]
+ T_179149[0] := UInt<2>(1)
+ T_179149[1] := UInt<2>(2)
+ wire T_179150 : UInt<2>[2]
+ T_179150[0] := UInt<2>(1)
+ T_179150[1] := UInt<2>(2)
+ wire T_179151 : UInt<2>[1]
+ T_179151[0] := UInt<2>(2)
+ wire T_179152 : UInt<3>[3]
+ T_179152[0] := UInt<3>(0)
+ T_179152[1] := UInt<3>(1)
+ T_179152[2] := UInt<3>(2)
+ wire T_179153 : UInt<0>[1]
+ T_179153[0] := UInt<0>(0)
+ wire T_179154 : UInt<2>[2]
+ T_179154[0] := UInt<2>(1)
+ T_179154[1] := UInt<2>(2)
+ wire T_179155 : UInt<2>[2]
+ T_179155[0] := UInt<2>(1)
+ T_179155[1] := UInt<2>(2)
+ wire T_179156 : UInt<2>[1]
+ T_179156[0] := UInt<2>(2)
+ wire T_179157 : UInt<3>[3]
+ T_179157[0] := UInt<3>(0)
+ T_179157[1] := UInt<3>(1)
+ T_179157[2] := UInt<3>(2)
+ wire T_179158 : UInt<0>[1]
+ T_179158[0] := UInt<0>(0)
+ wire T_179159 : UInt<2>[2]
+ T_179159[0] := UInt<2>(1)
+ T_179159[1] := UInt<2>(2)
+ wire T_179160 : UInt<2>[2]
+ T_179160[0] := UInt<2>(1)
+ T_179160[1] := UInt<2>(2)
+ wire T_179161 : UInt<2>[1]
+ T_179161[0] := UInt<2>(2)
+ wire T_179162 : UInt<3>[3]
+ T_179162[0] := UInt<3>(0)
+ T_179162[1] := UInt<3>(1)
+ T_179162[2] := UInt<3>(2)
+ wire T_179163 : UInt<0>[1]
+ T_179163[0] := UInt<0>(0)
+ wire T_179164 : UInt<2>[2]
+ T_179164[0] := UInt<2>(1)
+ T_179164[1] := UInt<2>(2)
+ wire T_179165 : UInt<2>[2]
+ T_179165[0] := UInt<2>(1)
+ T_179165[1] := UInt<2>(2)
+ wire T_179166 : UInt<2>[1]
+ T_179166[0] := UInt<2>(2)
+ wire T_179167 : UInt<3>[3]
+ T_179167[0] := UInt<3>(0)
+ T_179167[1] := UInt<3>(1)
+ T_179167[2] := UInt<3>(2)
+ wire T_179168 : UInt<0>[1]
+ T_179168[0] := UInt<0>(0)
+ wire T_179169 : UInt<2>[2]
+ T_179169[0] := UInt<2>(1)
+ T_179169[1] := UInt<2>(2)
+ wire T_179170 : UInt<2>[2]
+ T_179170[0] := UInt<2>(1)
+ T_179170[1] := UInt<2>(2)
+ wire T_179171 : UInt<2>[1]
+ T_179171[0] := UInt<2>(2)
+ wire T_179172 : UInt<3>[3]
+ T_179172[0] := UInt<3>(0)
+ T_179172[1] := UInt<3>(1)
+ T_179172[2] := UInt<3>(2)
+ wire T_179173 : UInt<0>[1]
+ T_179173[0] := UInt<0>(0)
+ wire T_179174 : UInt<2>[2]
+ T_179174[0] := UInt<2>(1)
+ T_179174[1] := UInt<2>(2)
+ wire T_179175 : UInt<2>[2]
+ T_179175[0] := UInt<2>(1)
+ T_179175[1] := UInt<2>(2)
+ wire T_179176 : UInt<2>[1]
+ T_179176[0] := UInt<2>(2)
+ wire T_179177 : UInt<3>[3]
+ T_179177[0] := UInt<3>(0)
+ T_179177[1] := UInt<3>(1)
+ T_179177[2] := UInt<3>(2)
+ wire T_179178 : UInt<0>[1]
+ T_179178[0] := UInt<0>(0)
+ wire T_179179 : UInt<2>[2]
+ T_179179[0] := UInt<2>(1)
+ T_179179[1] := UInt<2>(2)
+ wire T_179180 : UInt<2>[2]
+ T_179180[0] := UInt<2>(1)
+ T_179180[1] := UInt<2>(2)
+ wire T_179181 : UInt<2>[1]
+ T_179181[0] := UInt<2>(2)
+ wire T_179182 : UInt<3>[3]
+ T_179182[0] := UInt<3>(0)
+ T_179182[1] := UInt<3>(1)
+ T_179182[2] := UInt<3>(2)
+ wire T_179183 : UInt<0>[1]
+ T_179183[0] := UInt<0>(0)
+ wire T_179184 : UInt<2>[2]
+ T_179184[0] := UInt<2>(1)
+ T_179184[1] := UInt<2>(2)
+ wire T_179185 : UInt<2>[2]
+ T_179185[0] := UInt<2>(1)
+ T_179185[1] := UInt<2>(2)
+ wire T_179186 : UInt<2>[1]
+ T_179186[0] := UInt<2>(2)
+ wire T_179187 : UInt<3>[3]
+ T_179187[0] := UInt<3>(0)
+ T_179187[1] := UInt<3>(1)
+ T_179187[2] := UInt<3>(2)
+ wire T_179188 : UInt<0>[1]
+ T_179188[0] := UInt<0>(0)
+ wire T_179189 : UInt<2>[2]
+ T_179189[0] := UInt<2>(1)
+ T_179189[1] := UInt<2>(2)
+ wire T_179190 : UInt<2>[2]
+ T_179190[0] := UInt<2>(1)
+ T_179190[1] := UInt<2>(2)
+ wire T_179191 : UInt<2>[1]
+ T_179191[0] := UInt<2>(2)
+ wire T_179192 : UInt<3>[3]
+ T_179192[0] := UInt<3>(0)
+ T_179192[1] := UInt<3>(1)
+ T_179192[2] := UInt<3>(2)
+ wire T_179193 : UInt<0>[1]
+ T_179193[0] := UInt<0>(0)
+ wire T_179194 : UInt<2>[2]
+ T_179194[0] := UInt<2>(1)
+ T_179194[1] := UInt<2>(2)
+ wire T_179195 : UInt<2>[2]
+ T_179195[0] := UInt<2>(1)
+ T_179195[1] := UInt<2>(2)
+ wire T_179196 : UInt<2>[1]
+ T_179196[0] := UInt<2>(2)
+ wire T_179197 : UInt<3>[3]
+ T_179197[0] := UInt<3>(0)
+ T_179197[1] := UInt<3>(1)
+ T_179197[2] := UInt<3>(2)
+ wire T_179198 : UInt<0>[1]
+ T_179198[0] := UInt<0>(0)
+ wire T_179199 : UInt<2>[2]
+ T_179199[0] := UInt<2>(1)
+ T_179199[1] := UInt<2>(2)
+ wire T_179200 : UInt<2>[2]
+ T_179200[0] := UInt<2>(1)
+ T_179200[1] := UInt<2>(2)
+ wire T_179201 : UInt<2>[1]
+ T_179201[0] := UInt<2>(2)
+ wire T_179202 : UInt<3>[3]
+ T_179202[0] := UInt<3>(0)
+ T_179202[1] := UInt<3>(1)
+ T_179202[2] := UInt<3>(2)
+ wire T_179203 : UInt<0>[1]
+ T_179203[0] := UInt<0>(0)
+ wire T_179204 : UInt<2>[2]
+ T_179204[0] := UInt<2>(1)
+ T_179204[1] := UInt<2>(2)
+ wire T_179205 : UInt<2>[2]
+ T_179205[0] := UInt<2>(1)
+ T_179205[1] := UInt<2>(2)
+ wire T_179206 : UInt<2>[1]
+ T_179206[0] := UInt<2>(2)
+ wire T_179207 : UInt<3>[3]
+ T_179207[0] := UInt<3>(0)
+ T_179207[1] := UInt<3>(1)
+ T_179207[2] := UInt<3>(2)
+ wire T_179208 : UInt<0>[1]
+ T_179208[0] := UInt<0>(0)
+ wire T_179209 : UInt<2>[2]
+ T_179209[0] := UInt<2>(1)
+ T_179209[1] := UInt<2>(2)
+ wire T_179210 : UInt<2>[2]
+ T_179210[0] := UInt<2>(1)
+ T_179210[1] := UInt<2>(2)
+ wire T_179211 : UInt<2>[1]
+ T_179211[0] := UInt<2>(2)
+ wire T_179212 : UInt<3>[3]
+ T_179212[0] := UInt<3>(0)
+ T_179212[1] := UInt<3>(1)
+ T_179212[2] := UInt<3>(2)
+ wire T_179213 : UInt<0>[1]
+ T_179213[0] := UInt<0>(0)
+ wire T_179214 : UInt<2>[2]
+ T_179214[0] := UInt<2>(1)
+ T_179214[1] := UInt<2>(2)
+ wire T_179215 : UInt<2>[2]
+ T_179215[0] := UInt<2>(1)
+ T_179215[1] := UInt<2>(2)
+ wire T_179216 : UInt<2>[1]
+ T_179216[0] := UInt<2>(2)
+ manager.acquire <> client.acquire
+ client.probe <> manager.probe
+ manager.release <> client.release
+ client.grant <> manager.grant
+ manager.finish <> client.finish
+ module ManagerTileLinkNetworkPort_118243 :
+ input manager : {flip acquire : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_block : UInt<26>, client_xact_id : UInt<2>, addr_beat : UInt<2>, data : UInt<128>, is_builtin_type : UInt<1>, a_type : UInt<3>, union : UInt<17>, client_id : UInt<1>}}, grant : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_beat : UInt<2>, data : UInt<128>, client_xact_id : UInt<2>, manager_xact_id : UInt<1>, is_builtin_type : UInt<1>, g_type : UInt<4>, client_id : UInt<1>}}, flip finish : {flip ready : UInt<1>, valid : UInt<1>, bits : {manager_xact_id : UInt<1>}}, probe : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_block : UInt<26>, p_type : UInt<2>, client_id : UInt<1>}}, flip release : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_block : UInt<26>, client_xact_id : UInt<2>, addr_beat : UInt<2>, data : UInt<128>, r_type : UInt<3>, voluntary : UInt<1>, client_id : UInt<1>}}}
+ input network : {acquire : {flip ready : UInt<1>, valid : UInt<1>, bits : {header : {src : UInt<1>, dst : UInt<1>}, payload : {addr_block : UInt<26>, client_xact_id : UInt<2>, addr_beat : UInt<2>, data : UInt<128>, is_builtin_type : UInt<1>, a_type : UInt<3>, union : UInt<17>}}}, flip grant : {flip ready : UInt<1>, valid : UInt<1>, bits : {header : {src : UInt<1>, dst : UInt<1>}, payload : {addr_beat : UInt<2>, data : UInt<128>, client_xact_id : UInt<2>, manager_xact_id : UInt<1>, is_builtin_type : UInt<1>, g_type : UInt<4>}}}, finish : {flip ready : UInt<1>, valid : UInt<1>, bits : {header : {src : UInt<1>, dst : UInt<1>}, payload : {manager_xact_id : UInt<1>}}}, flip probe : {flip ready : UInt<1>, valid : UInt<1>, bits : {header : {src : UInt<1>, dst : UInt<1>}, payload : {addr_block : UInt<26>, p_type : UInt<2>}}}, release : {flip ready : UInt<1>, valid : UInt<1>, bits : {header : {src : UInt<1>, dst : UInt<1>}, payload : {addr_block : UInt<26>, client_xact_id : UInt<2>, addr_beat : UInt<2>, data : UInt<128>, r_type : UInt<3>, voluntary : UInt<1>}}}}
+
+ wire T_179217 : UInt<3>[3]
+ T_179217[0] := UInt<3>(0)
+ T_179217[1] := UInt<3>(1)
+ T_179217[2] := UInt<3>(2)
+ wire T_179218 : UInt<0>[1]
+ T_179218[0] := UInt<0>(0)
+ wire T_179219 : UInt<2>[2]
+ T_179219[0] := UInt<2>(1)
+ T_179219[1] := UInt<2>(2)
+ wire T_179220 : UInt<2>[2]
+ T_179220[0] := UInt<2>(1)
+ T_179220[1] := UInt<2>(2)
+ wire T_179221 : UInt<2>[1]
+ T_179221[0] := UInt<2>(2)
+ wire T_179222 : UInt<3>[3]
+ T_179222[0] := UInt<3>(0)
+ T_179222[1] := UInt<3>(1)
+ T_179222[2] := UInt<3>(2)
+ wire T_179223 : UInt<0>[1]
+ T_179223[0] := UInt<0>(0)
+ wire T_179224 : UInt<2>[2]
+ T_179224[0] := UInt<2>(1)
+ T_179224[1] := UInt<2>(2)
+ wire T_179225 : UInt<2>[2]
+ T_179225[0] := UInt<2>(1)
+ T_179225[1] := UInt<2>(2)
+ wire T_179226 : UInt<2>[1]
+ T_179226[0] := UInt<2>(2)
+ wire T_179227 : UInt<3>[3]
+ T_179227[0] := UInt<3>(0)
+ T_179227[1] := UInt<3>(1)
+ T_179227[2] := UInt<3>(2)
+ wire T_179228 : UInt<0>[1]
+ T_179228[0] := UInt<0>(0)
+ wire T_179229 : UInt<2>[2]
+ T_179229[0] := UInt<2>(1)
+ T_179229[1] := UInt<2>(2)
+ wire T_179230 : UInt<2>[2]
+ T_179230[0] := UInt<2>(1)
+ T_179230[1] := UInt<2>(2)
+ wire T_179231 : UInt<2>[1]
+ T_179231[0] := UInt<2>(2)
+ wire T_179232 : UInt<3>[3]
+ T_179232[0] := UInt<3>(0)
+ T_179232[1] := UInt<3>(1)
+ T_179232[2] := UInt<3>(2)
+ wire T_179233 : UInt<0>[1]
+ T_179233[0] := UInt<0>(0)
+ wire T_179234 : UInt<2>[2]
+ T_179234[0] := UInt<2>(1)
+ T_179234[1] := UInt<2>(2)
+ wire T_179235 : UInt<2>[2]
+ T_179235[0] := UInt<2>(1)
+ T_179235[1] := UInt<2>(2)
+ wire T_179236 : UInt<2>[1]
+ T_179236[0] := UInt<2>(2)
+ wire T_179237 : UInt<3>[3]
+ T_179237[0] := UInt<3>(0)
+ T_179237[1] := UInt<3>(1)
+ T_179237[2] := UInt<3>(2)
+ wire T_179238 : UInt<0>[1]
+ T_179238[0] := UInt<0>(0)
+ wire T_179239 : UInt<2>[2]
+ T_179239[0] := UInt<2>(1)
+ T_179239[1] := UInt<2>(2)
+ wire T_179240 : UInt<2>[2]
+ T_179240[0] := UInt<2>(1)
+ T_179240[1] := UInt<2>(2)
+ wire T_179241 : UInt<2>[1]
+ T_179241[0] := UInt<2>(2)
+ wire T_179242 : UInt<3>[3]
+ T_179242[0] := UInt<3>(0)
+ T_179242[1] := UInt<3>(1)
+ T_179242[2] := UInt<3>(2)
+ wire T_179243 : UInt<0>[1]
+ T_179243[0] := UInt<0>(0)
+ wire T_179244 : UInt<2>[2]
+ T_179244[0] := UInt<2>(1)
+ T_179244[1] := UInt<2>(2)
+ wire T_179245 : UInt<2>[2]
+ T_179245[0] := UInt<2>(1)
+ T_179245[1] := UInt<2>(2)
+ wire T_179246 : UInt<2>[1]
+ T_179246[0] := UInt<2>(2)
+ wire T_179247 : UInt<3>[3]
+ T_179247[0] := UInt<3>(0)
+ T_179247[1] := UInt<3>(1)
+ T_179247[2] := UInt<3>(2)
+ wire T_179248 : UInt<0>[1]
+ T_179248[0] := UInt<0>(0)
+ wire T_179249 : UInt<2>[2]
+ T_179249[0] := UInt<2>(1)
+ T_179249[1] := UInt<2>(2)
+ wire T_179250 : UInt<2>[2]
+ T_179250[0] := UInt<2>(1)
+ T_179250[1] := UInt<2>(2)
+ wire T_179251 : UInt<2>[1]
+ T_179251[0] := UInt<2>(2)
+ wire T_179252 : UInt<3>[3]
+ T_179252[0] := UInt<3>(0)
+ T_179252[1] := UInt<3>(1)
+ T_179252[2] := UInt<3>(2)
+ wire T_179253 : UInt<0>[1]
+ T_179253[0] := UInt<0>(0)
+ wire T_179254 : UInt<2>[2]
+ T_179254[0] := UInt<2>(1)
+ T_179254[1] := UInt<2>(2)
+ wire T_179255 : UInt<2>[2]
+ T_179255[0] := UInt<2>(1)
+ T_179255[1] := UInt<2>(2)
+ wire T_179256 : UInt<2>[1]
+ T_179256[0] := UInt<2>(2)
+ wire T_179257 : UInt<3>[3]
+ T_179257[0] := UInt<3>(0)
+ T_179257[1] := UInt<3>(1)
+ T_179257[2] := UInt<3>(2)
+ wire T_179258 : UInt<0>[1]
+ T_179258[0] := UInt<0>(0)
+ wire T_179259 : UInt<2>[2]
+ T_179259[0] := UInt<2>(1)
+ T_179259[1] := UInt<2>(2)
+ wire T_179260 : UInt<2>[2]
+ T_179260[0] := UInt<2>(1)
+ T_179260[1] := UInt<2>(2)
+ wire T_179261 : UInt<2>[1]
+ T_179261[0] := UInt<2>(2)
+ wire T_179262 : UInt<3>[3]
+ T_179262[0] := UInt<3>(0)
+ T_179262[1] := UInt<3>(1)
+ T_179262[2] := UInt<3>(2)
+ wire T_179263 : UInt<0>[1]
+ T_179263[0] := UInt<0>(0)
+ wire T_179264 : UInt<2>[2]
+ T_179264[0] := UInt<2>(1)
+ T_179264[1] := UInt<2>(2)
+ wire T_179265 : UInt<2>[2]
+ T_179265[0] := UInt<2>(1)
+ T_179265[1] := UInt<2>(2)
+ wire T_179266 : UInt<2>[1]
+ T_179266[0] := UInt<2>(2)
+ wire T_179267 : UInt<3>[3]
+ T_179267[0] := UInt<3>(0)
+ T_179267[1] := UInt<3>(1)
+ T_179267[2] := UInt<3>(2)
+ wire T_179268 : UInt<0>[1]
+ T_179268[0] := UInt<0>(0)
+ wire T_179269 : UInt<2>[2]
+ T_179269[0] := UInt<2>(1)
+ T_179269[1] := UInt<2>(2)
+ wire T_179270 : UInt<2>[2]
+ T_179270[0] := UInt<2>(1)
+ T_179270[1] := UInt<2>(2)
+ wire T_179271 : UInt<2>[1]
+ T_179271[0] := UInt<2>(2)
+ wire T_179272 : UInt<3>[3]
+ T_179272[0] := UInt<3>(0)
+ T_179272[1] := UInt<3>(1)
+ T_179272[2] := UInt<3>(2)
+ wire T_179273 : UInt<0>[1]
+ T_179273[0] := UInt<0>(0)
+ wire T_179274 : UInt<2>[2]
+ T_179274[0] := UInt<2>(1)
+ T_179274[1] := UInt<2>(2)
+ wire T_179275 : UInt<2>[2]
+ T_179275[0] := UInt<2>(1)
+ T_179275[1] := UInt<2>(2)
+ wire T_179276 : UInt<2>[1]
+ T_179276[0] := UInt<2>(2)
+ wire T_179277 : UInt<3>[3]
+ T_179277[0] := UInt<3>(0)
+ T_179277[1] := UInt<3>(1)
+ T_179277[2] := UInt<3>(2)
+ wire T_179278 : UInt<0>[1]
+ T_179278[0] := UInt<0>(0)
+ wire T_179279 : UInt<2>[2]
+ T_179279[0] := UInt<2>(1)
+ T_179279[1] := UInt<2>(2)
+ wire T_179280 : UInt<2>[2]
+ T_179280[0] := UInt<2>(1)
+ T_179280[1] := UInt<2>(2)
+ wire T_179281 : UInt<2>[1]
+ T_179281[0] := UInt<2>(2)
+ wire T_179282 : UInt<3>[3]
+ T_179282[0] := UInt<3>(0)
+ T_179282[1] := UInt<3>(1)
+ T_179282[2] := UInt<3>(2)
+ wire T_179283 : UInt<0>[1]
+ T_179283[0] := UInt<0>(0)
+ wire T_179284 : UInt<2>[2]
+ T_179284[0] := UInt<2>(1)
+ T_179284[1] := UInt<2>(2)
+ wire T_179285 : UInt<2>[2]
+ T_179285[0] := UInt<2>(1)
+ T_179285[1] := UInt<2>(2)
+ wire T_179286 : UInt<2>[1]
+ T_179286[0] := UInt<2>(2)
+ wire T_179287 : UInt<3>[3]
+ T_179287[0] := UInt<3>(0)
+ T_179287[1] := UInt<3>(1)
+ T_179287[2] := UInt<3>(2)
+ wire T_179288 : UInt<0>[1]
+ T_179288[0] := UInt<0>(0)
+ wire T_179289 : UInt<2>[2]
+ T_179289[0] := UInt<2>(1)
+ T_179289[1] := UInt<2>(2)
+ wire T_179290 : UInt<2>[2]
+ T_179290[0] := UInt<2>(1)
+ T_179290[1] := UInt<2>(2)
+ wire T_179291 : UInt<2>[1]
+ T_179291[0] := UInt<2>(2)
+ wire T_179292 : UInt<3>[3]
+ T_179292[0] := UInt<3>(0)
+ T_179292[1] := UInt<3>(1)
+ T_179292[2] := UInt<3>(2)
+ wire T_179293 : UInt<0>[1]
+ T_179293[0] := UInt<0>(0)
+ wire T_179294 : UInt<2>[2]
+ T_179294[0] := UInt<2>(1)
+ T_179294[1] := UInt<2>(2)
+ wire T_179295 : UInt<2>[2]
+ T_179295[0] := UInt<2>(1)
+ T_179295[1] := UInt<2>(2)
+ wire T_179296 : UInt<2>[1]
+ T_179296[0] := UInt<2>(2)
+ wire T_179297 : UInt<3>[3]
+ T_179297[0] := UInt<3>(0)
+ T_179297[1] := UInt<3>(1)
+ T_179297[2] := UInt<3>(2)
+ wire T_179298 : UInt<0>[1]
+ T_179298[0] := UInt<0>(0)
+ wire T_179299 : UInt<2>[2]
+ T_179299[0] := UInt<2>(1)
+ T_179299[1] := UInt<2>(2)
+ wire T_179300 : UInt<2>[2]
+ T_179300[0] := UInt<2>(1)
+ T_179300[1] := UInt<2>(2)
+ wire T_179301 : UInt<2>[1]
+ T_179301[0] := UInt<2>(2)
+ wire T_179302 : UInt<3>[3]
+ T_179302[0] := UInt<3>(0)
+ T_179302[1] := UInt<3>(1)
+ T_179302[2] := UInt<3>(2)
+ wire T_179303 : UInt<0>[1]
+ T_179303[0] := UInt<0>(0)
+ wire T_179304 : UInt<2>[2]
+ T_179304[0] := UInt<2>(1)
+ T_179304[1] := UInt<2>(2)
+ wire T_179305 : UInt<2>[2]
+ T_179305[0] := UInt<2>(1)
+ T_179305[1] := UInt<2>(2)
+ wire T_179306 : UInt<2>[1]
+ T_179306[0] := UInt<2>(2)
+ wire T_179307 : UInt<3>[3]
+ T_179307[0] := UInt<3>(0)
+ T_179307[1] := UInt<3>(1)
+ T_179307[2] := UInt<3>(2)
+ wire T_179308 : UInt<0>[1]
+ T_179308[0] := UInt<0>(0)
+ wire T_179309 : UInt<2>[2]
+ T_179309[0] := UInt<2>(1)
+ T_179309[1] := UInt<2>(2)
+ wire T_179310 : UInt<2>[2]
+ T_179310[0] := UInt<2>(1)
+ T_179310[1] := UInt<2>(2)
+ wire T_179311 : UInt<2>[1]
+ T_179311[0] := UInt<2>(2)
+ wire T_179312 : UInt<3>[3]
+ T_179312[0] := UInt<3>(0)
+ T_179312[1] := UInt<3>(1)
+ T_179312[2] := UInt<3>(2)
+ wire T_179313 : UInt<0>[1]
+ T_179313[0] := UInt<0>(0)
+ wire T_179314 : UInt<2>[2]
+ T_179314[0] := UInt<2>(1)
+ T_179314[1] := UInt<2>(2)
+ wire T_179315 : UInt<2>[2]
+ T_179315[0] := UInt<2>(1)
+ T_179315[1] := UInt<2>(2)
+ wire T_179316 : UInt<2>[1]
+ T_179316[0] := UInt<2>(2)
+ wire T_179317 : UInt<3>[3]
+ T_179317[0] := UInt<3>(0)
+ T_179317[1] := UInt<3>(1)
+ T_179317[2] := UInt<3>(2)
+ wire T_179318 : UInt<0>[1]
+ T_179318[0] := UInt<0>(0)
+ wire T_179319 : UInt<2>[2]
+ T_179319[0] := UInt<2>(1)
+ T_179319[1] := UInt<2>(2)
+ wire T_179320 : UInt<2>[2]
+ T_179320[0] := UInt<2>(1)
+ T_179320[1] := UInt<2>(2)
+ wire T_179321 : UInt<2>[1]
+ T_179321[0] := UInt<2>(2)
+ wire T_179322 : UInt<3>[3]
+ T_179322[0] := UInt<3>(0)
+ T_179322[1] := UInt<3>(1)
+ T_179322[2] := UInt<3>(2)
+ wire T_179323 : UInt<0>[1]
+ T_179323[0] := UInt<0>(0)
+ wire T_179324 : UInt<2>[2]
+ T_179324[0] := UInt<2>(1)
+ T_179324[1] := UInt<2>(2)
+ wire T_179325 : UInt<2>[2]
+ T_179325[0] := UInt<2>(1)
+ T_179325[1] := UInt<2>(2)
+ wire T_179326 : UInt<2>[1]
+ T_179326[0] := UInt<2>(2)
+ wire T_179327 : UInt<3>[3]
+ T_179327[0] := UInt<3>(0)
+ T_179327[1] := UInt<3>(1)
+ T_179327[2] := UInt<3>(2)
+ wire T_179328 : UInt<0>[1]
+ T_179328[0] := UInt<0>(0)
+ wire T_179329 : UInt<2>[2]
+ T_179329[0] := UInt<2>(1)
+ T_179329[1] := UInt<2>(2)
+ wire T_179330 : UInt<2>[2]
+ T_179330[0] := UInt<2>(1)
+ T_179330[1] := UInt<2>(2)
+ wire T_179331 : UInt<2>[1]
+ T_179331[0] := UInt<2>(2)
+ wire T_179332 : UInt<3>[3]
+ T_179332[0] := UInt<3>(0)
+ T_179332[1] := UInt<3>(1)
+ T_179332[2] := UInt<3>(2)
+ wire T_179333 : UInt<0>[1]
+ T_179333[0] := UInt<0>(0)
+ wire T_179334 : UInt<2>[2]
+ T_179334[0] := UInt<2>(1)
+ T_179334[1] := UInt<2>(2)
+ wire T_179335 : UInt<2>[2]
+ T_179335[0] := UInt<2>(1)
+ T_179335[1] := UInt<2>(2)
+ wire T_179336 : UInt<2>[1]
+ T_179336[0] := UInt<2>(2)
+ wire T_179337 : UInt<3>[3]
+ T_179337[0] := UInt<3>(0)
+ T_179337[1] := UInt<3>(1)
+ T_179337[2] := UInt<3>(2)
+ wire T_179338 : UInt<0>[1]
+ T_179338[0] := UInt<0>(0)
+ wire T_179339 : UInt<2>[2]
+ T_179339[0] := UInt<2>(1)
+ T_179339[1] := UInt<2>(2)
+ wire T_179340 : UInt<2>[2]
+ T_179340[0] := UInt<2>(1)
+ T_179340[1] := UInt<2>(2)
+ wire T_179341 : UInt<2>[1]
+ T_179341[0] := UInt<2>(2)
+ wire T_179342 : UInt<3>[3]
+ T_179342[0] := UInt<3>(0)
+ T_179342[1] := UInt<3>(1)
+ T_179342[2] := UInt<3>(2)
+ wire T_179343 : UInt<0>[1]
+ T_179343[0] := UInt<0>(0)
+ wire T_179344 : UInt<2>[2]
+ T_179344[0] := UInt<2>(1)
+ T_179344[1] := UInt<2>(2)
+ wire T_179345 : UInt<2>[2]
+ T_179345[0] := UInt<2>(1)
+ T_179345[1] := UInt<2>(2)
+ wire T_179346 : UInt<2>[1]
+ T_179346[0] := UInt<2>(2)
+ wire T_179347 : UInt<3>[3]
+ T_179347[0] := UInt<3>(0)
+ T_179347[1] := UInt<3>(1)
+ T_179347[2] := UInt<3>(2)
+ wire T_179348 : UInt<0>[1]
+ T_179348[0] := UInt<0>(0)
+ wire T_179349 : UInt<2>[2]
+ T_179349[0] := UInt<2>(1)
+ T_179349[1] := UInt<2>(2)
+ wire T_179350 : UInt<2>[2]
+ T_179350[0] := UInt<2>(1)
+ T_179350[1] := UInt<2>(2)
+ wire T_179351 : UInt<2>[1]
+ T_179351[0] := UInt<2>(2)
+ wire T_179352 : UInt<3>[3]
+ T_179352[0] := UInt<3>(0)
+ T_179352[1] := UInt<3>(1)
+ T_179352[2] := UInt<3>(2)
+ wire T_179353 : UInt<0>[1]
+ T_179353[0] := UInt<0>(0)
+ wire T_179354 : UInt<2>[2]
+ T_179354[0] := UInt<2>(1)
+ T_179354[1] := UInt<2>(2)
+ wire T_179355 : UInt<2>[2]
+ T_179355[0] := UInt<2>(1)
+ T_179355[1] := UInt<2>(2)
+ wire T_179356 : UInt<2>[1]
+ T_179356[0] := UInt<2>(2)
+ wire T_179357 : UInt<3>[3]
+ T_179357[0] := UInt<3>(0)
+ T_179357[1] := UInt<3>(1)
+ T_179357[2] := UInt<3>(2)
+ wire T_179358 : UInt<0>[1]
+ T_179358[0] := UInt<0>(0)
+ wire T_179359 : UInt<2>[2]
+ T_179359[0] := UInt<2>(1)
+ T_179359[1] := UInt<2>(2)
+ wire T_179360 : UInt<2>[2]
+ T_179360[0] := UInt<2>(1)
+ T_179360[1] := UInt<2>(2)
+ wire T_179361 : UInt<2>[1]
+ T_179361[0] := UInt<2>(2)
+ wire T_179362 : UInt<3>[3]
+ T_179362[0] := UInt<3>(0)
+ T_179362[1] := UInt<3>(1)
+ T_179362[2] := UInt<3>(2)
+ wire T_179363 : UInt<0>[1]
+ T_179363[0] := UInt<0>(0)
+ wire T_179364 : UInt<2>[2]
+ T_179364[0] := UInt<2>(1)
+ T_179364[1] := UInt<2>(2)
+ wire T_179365 : UInt<2>[2]
+ T_179365[0] := UInt<2>(1)
+ T_179365[1] := UInt<2>(2)
+ wire T_179366 : UInt<2>[1]
+ T_179366[0] := UInt<2>(2)
+ wire T_179367 : UInt<3>[3]
+ T_179367[0] := UInt<3>(0)
+ T_179367[1] := UInt<3>(1)
+ T_179367[2] := UInt<3>(2)
+ wire T_179368 : UInt<0>[1]
+ T_179368[0] := UInt<0>(0)
+ wire T_179369 : UInt<2>[2]
+ T_179369[0] := UInt<2>(1)
+ T_179369[1] := UInt<2>(2)
+ wire T_179370 : UInt<2>[2]
+ T_179370[0] := UInt<2>(1)
+ T_179370[1] := UInt<2>(2)
+ wire T_179371 : UInt<2>[1]
+ T_179371[0] := UInt<2>(2)
+ wire T_179372 : {flip ready : UInt<1>, valid : UInt<1>, bits : {header : {src : UInt<1>, dst : UInt<1>}, payload : {addr_beat : UInt<2>, data : UInt<128>, client_xact_id : UInt<2>, manager_xact_id : UInt<1>, is_builtin_type : UInt<1>, g_type : UInt<4>, client_id : UInt<1>}}}
+ T_179372.bits.payload := manager.grant.bits
+ T_179372.bits.header.src := UInt<1>(0)
+ T_179372.bits.header.dst := manager.grant.bits.client_id
+ T_179372.valid := manager.grant.valid
+ manager.grant.ready := T_179372.ready
+ network.grant <> T_179372
+ wire T_179373 : UInt<3>[3]
+ T_179373[0] := UInt<3>(0)
+ T_179373[1] := UInt<3>(1)
+ T_179373[2] := UInt<3>(2)
+ wire T_179374 : UInt<0>[1]
+ T_179374[0] := UInt<0>(0)
+ wire T_179375 : UInt<2>[2]
+ T_179375[0] := UInt<2>(1)
+ T_179375[1] := UInt<2>(2)
+ wire T_179376 : UInt<2>[2]
+ T_179376[0] := UInt<2>(1)
+ T_179376[1] := UInt<2>(2)
+ wire T_179377 : UInt<2>[1]
+ T_179377[0] := UInt<2>(2)
+ wire T_179378 : UInt<3>[3]
+ T_179378[0] := UInt<3>(0)
+ T_179378[1] := UInt<3>(1)
+ T_179378[2] := UInt<3>(2)
+ wire T_179379 : UInt<0>[1]
+ T_179379[0] := UInt<0>(0)
+ wire T_179380 : UInt<2>[2]
+ T_179380[0] := UInt<2>(1)
+ T_179380[1] := UInt<2>(2)
+ wire T_179381 : UInt<2>[2]
+ T_179381[0] := UInt<2>(1)
+ T_179381[1] := UInt<2>(2)
+ wire T_179382 : UInt<2>[1]
+ T_179382[0] := UInt<2>(2)
+ wire T_179383 : UInt<3>[3]
+ T_179383[0] := UInt<3>(0)
+ T_179383[1] := UInt<3>(1)
+ T_179383[2] := UInt<3>(2)
+ wire T_179384 : UInt<0>[1]
+ T_179384[0] := UInt<0>(0)
+ wire T_179385 : UInt<2>[2]
+ T_179385[0] := UInt<2>(1)
+ T_179385[1] := UInt<2>(2)
+ wire T_179386 : UInt<2>[2]
+ T_179386[0] := UInt<2>(1)
+ T_179386[1] := UInt<2>(2)
+ wire T_179387 : UInt<2>[1]
+ T_179387[0] := UInt<2>(2)
+ wire T_179388 : {flip ready : UInt<1>, valid : UInt<1>, bits : {header : {src : UInt<1>, dst : UInt<1>}, payload : {addr_block : UInt<26>, p_type : UInt<2>, client_id : UInt<1>}}}
+ T_179388.bits.payload := manager.probe.bits
+ T_179388.bits.header.src := UInt<1>(0)
+ T_179388.bits.header.dst := manager.probe.bits.client_id
+ T_179388.valid := manager.probe.valid
+ manager.probe.ready := T_179388.ready
+ network.probe <> T_179388
+ manager.acquire.bits.client_id := network.acquire.bits.header.src
+ wire T_179389 : UInt<3>[3]
+ T_179389[0] := UInt<3>(0)
+ T_179389[1] := UInt<3>(1)
+ T_179389[2] := UInt<3>(2)
+ wire T_179390 : UInt<0>[1]
+ T_179390[0] := UInt<0>(0)
+ wire T_179391 : UInt<2>[2]
+ T_179391[0] := UInt<2>(1)
+ T_179391[1] := UInt<2>(2)
+ wire T_179392 : UInt<2>[2]
+ T_179392[0] := UInt<2>(1)
+ T_179392[1] := UInt<2>(2)
+ wire T_179393 : UInt<2>[1]
+ T_179393[0] := UInt<2>(2)
+ wire T_179394 : UInt<3>[3]
+ T_179394[0] := UInt<3>(0)
+ T_179394[1] := UInt<3>(1)
+ T_179394[2] := UInt<3>(2)
+ wire T_179395 : UInt<0>[1]
+ T_179395[0] := UInt<0>(0)
+ wire T_179396 : UInt<2>[2]
+ T_179396[0] := UInt<2>(1)
+ T_179396[1] := UInt<2>(2)
+ wire T_179397 : UInt<2>[2]
+ T_179397[0] := UInt<2>(1)
+ T_179397[1] := UInt<2>(2)
+ wire T_179398 : UInt<2>[1]
+ T_179398[0] := UInt<2>(2)
+ wire T_179399 : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_block : UInt<26>, client_xact_id : UInt<2>, addr_beat : UInt<2>, data : UInt<128>, is_builtin_type : UInt<1>, a_type : UInt<3>, union : UInt<17>}}
+ T_179399.valid := network.acquire.valid
+ T_179399.bits := network.acquire.bits.payload
+ network.acquire.ready := T_179399.ready
+ manager.acquire <> T_179399
+ manager.release.bits.client_id := network.release.bits.header.src
+ wire T_179400 : UInt<3>[3]
+ T_179400[0] := UInt<3>(0)
+ T_179400[1] := UInt<3>(1)
+ T_179400[2] := UInt<3>(2)
+ wire T_179401 : UInt<0>[1]
+ T_179401[0] := UInt<0>(0)
+ wire T_179402 : UInt<2>[2]
+ T_179402[0] := UInt<2>(1)
+ T_179402[1] := UInt<2>(2)
+ wire T_179403 : UInt<2>[2]
+ T_179403[0] := UInt<2>(1)
+ T_179403[1] := UInt<2>(2)
+ wire T_179404 : UInt<2>[1]
+ T_179404[0] := UInt<2>(2)
+ wire T_179405 : UInt<3>[3]
+ T_179405[0] := UInt<3>(0)
+ T_179405[1] := UInt<3>(1)
+ T_179405[2] := UInt<3>(2)
+ wire T_179406 : UInt<0>[1]
+ T_179406[0] := UInt<0>(0)
+ wire T_179407 : UInt<2>[2]
+ T_179407[0] := UInt<2>(1)
+ T_179407[1] := UInt<2>(2)
+ wire T_179408 : UInt<2>[2]
+ T_179408[0] := UInt<2>(1)
+ T_179408[1] := UInt<2>(2)
+ wire T_179409 : UInt<2>[1]
+ T_179409[0] := UInt<2>(2)
+ wire T_179410 : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_block : UInt<26>, client_xact_id : UInt<2>, addr_beat : UInt<2>, data : UInt<128>, r_type : UInt<3>, voluntary : UInt<1>}}
+ T_179410.valid := network.release.valid
+ T_179410.bits := network.release.bits.payload
+ network.release.ready := T_179410.ready
+ manager.release <> T_179410
+ wire T_179411 : UInt<3>[3]
+ T_179411[0] := UInt<3>(0)
+ T_179411[1] := UInt<3>(1)
+ T_179411[2] := UInt<3>(2)
+ wire T_179412 : UInt<0>[1]
+ T_179412[0] := UInt<0>(0)
+ wire T_179413 : UInt<2>[2]
+ T_179413[0] := UInt<2>(1)
+ T_179413[1] := UInt<2>(2)
+ wire T_179414 : UInt<2>[2]
+ T_179414[0] := UInt<2>(1)
+ T_179414[1] := UInt<2>(2)
+ wire T_179415 : UInt<2>[1]
+ T_179415[0] := UInt<2>(2)
+ wire T_179416 : UInt<3>[3]
+ T_179416[0] := UInt<3>(0)
+ T_179416[1] := UInt<3>(1)
+ T_179416[2] := UInt<3>(2)
+ wire T_179417 : UInt<0>[1]
+ T_179417[0] := UInt<0>(0)
+ wire T_179418 : UInt<2>[2]
+ T_179418[0] := UInt<2>(1)
+ T_179418[1] := UInt<2>(2)
+ wire T_179419 : UInt<2>[2]
+ T_179419[0] := UInt<2>(1)
+ T_179419[1] := UInt<2>(2)
+ wire T_179420 : UInt<2>[1]
+ T_179420[0] := UInt<2>(2)
+ wire T_179421 : {flip ready : UInt<1>, valid : UInt<1>, bits : {manager_xact_id : UInt<1>}}
+ T_179421.valid := network.finish.valid
+ T_179421.bits := network.finish.bits.payload
+ network.finish.ready := T_179421.ready
+ manager.finish <> T_179421
+ module TileLinkEnqueuer_120089 :
+ input client : {acquire : {flip ready : UInt<1>, valid : UInt<1>, bits : {header : {src : UInt<1>, dst : UInt<1>}, payload : {addr_block : UInt<26>, client_xact_id : UInt<2>, addr_beat : UInt<2>, data : UInt<128>, is_builtin_type : UInt<1>, a_type : UInt<3>, union : UInt<17>}}}, flip grant : {flip ready : UInt<1>, valid : UInt<1>, bits : {header : {src : UInt<1>, dst : UInt<1>}, payload : {addr_beat : UInt<2>, data : UInt<128>, client_xact_id : UInt<2>, manager_xact_id : UInt<1>, is_builtin_type : UInt<1>, g_type : UInt<4>}}}, finish : {flip ready : UInt<1>, valid : UInt<1>, bits : {header : {src : UInt<1>, dst : UInt<1>}, payload : {manager_xact_id : UInt<1>}}}, flip probe : {flip ready : UInt<1>, valid : UInt<1>, bits : {header : {src : UInt<1>, dst : UInt<1>}, payload : {addr_block : UInt<26>, p_type : UInt<2>}}}, release : {flip ready : UInt<1>, valid : UInt<1>, bits : {header : {src : UInt<1>, dst : UInt<1>}, payload : {addr_block : UInt<26>, client_xact_id : UInt<2>, addr_beat : UInt<2>, data : UInt<128>, r_type : UInt<3>, voluntary : UInt<1>}}}}
+ output manager : {acquire : {flip ready : UInt<1>, valid : UInt<1>, bits : {header : {src : UInt<1>, dst : UInt<1>}, payload : {addr_block : UInt<26>, client_xact_id : UInt<2>, addr_beat : UInt<2>, data : UInt<128>, is_builtin_type : UInt<1>, a_type : UInt<3>, union : UInt<17>}}}, flip grant : {flip ready : UInt<1>, valid : UInt<1>, bits : {header : {src : UInt<1>, dst : UInt<1>}, payload : {addr_beat : UInt<2>, data : UInt<128>, client_xact_id : UInt<2>, manager_xact_id : UInt<1>, is_builtin_type : UInt<1>, g_type : UInt<4>}}}, finish : {flip ready : UInt<1>, valid : UInt<1>, bits : {header : {src : UInt<1>, dst : UInt<1>}, payload : {manager_xact_id : UInt<1>}}}, flip probe : {flip ready : UInt<1>, valid : UInt<1>, bits : {header : {src : UInt<1>, dst : UInt<1>}, payload : {addr_block : UInt<26>, p_type : UInt<2>}}}, release : {flip ready : UInt<1>, valid : UInt<1>, bits : {header : {src : UInt<1>, dst : UInt<1>}, payload : {addr_block : UInt<26>, client_xact_id : UInt<2>, addr_beat : UInt<2>, data : UInt<128>, r_type : UInt<3>, voluntary : UInt<1>}}}}
+
+ wire T_179422 : UInt<3>[3]
+ T_179422[0] := UInt<3>(0)
+ T_179422[1] := UInt<3>(1)
+ T_179422[2] := UInt<3>(2)
+ wire T_179423 : UInt<0>[1]
+ T_179423[0] := UInt<0>(0)
+ wire T_179424 : UInt<2>[2]
+ T_179424[0] := UInt<2>(1)
+ T_179424[1] := UInt<2>(2)
+ wire T_179425 : UInt<2>[2]
+ T_179425[0] := UInt<2>(1)
+ T_179425[1] := UInt<2>(2)
+ wire T_179426 : UInt<2>[1]
+ T_179426[0] := UInt<2>(2)
+ wire T_179427 : UInt<3>[3]
+ T_179427[0] := UInt<3>(0)
+ T_179427[1] := UInt<3>(1)
+ T_179427[2] := UInt<3>(2)
+ wire T_179428 : UInt<0>[1]
+ T_179428[0] := UInt<0>(0)
+ wire T_179429 : UInt<2>[2]
+ T_179429[0] := UInt<2>(1)
+ T_179429[1] := UInt<2>(2)
+ wire T_179430 : UInt<2>[2]
+ T_179430[0] := UInt<2>(1)
+ T_179430[1] := UInt<2>(2)
+ wire T_179431 : UInt<2>[1]
+ T_179431[0] := UInt<2>(2)
+ wire T_179432 : UInt<3>[3]
+ T_179432[0] := UInt<3>(0)
+ T_179432[1] := UInt<3>(1)
+ T_179432[2] := UInt<3>(2)
+ wire T_179433 : UInt<0>[1]
+ T_179433[0] := UInt<0>(0)
+ wire T_179434 : UInt<2>[2]
+ T_179434[0] := UInt<2>(1)
+ T_179434[1] := UInt<2>(2)
+ wire T_179435 : UInt<2>[2]
+ T_179435[0] := UInt<2>(1)
+ T_179435[1] := UInt<2>(2)
+ wire T_179436 : UInt<2>[1]
+ T_179436[0] := UInt<2>(2)
+ wire T_179437 : UInt<3>[3]
+ T_179437[0] := UInt<3>(0)
+ T_179437[1] := UInt<3>(1)
+ T_179437[2] := UInt<3>(2)
+ wire T_179438 : UInt<0>[1]
+ T_179438[0] := UInt<0>(0)
+ wire T_179439 : UInt<2>[2]
+ T_179439[0] := UInt<2>(1)
+ T_179439[1] := UInt<2>(2)
+ wire T_179440 : UInt<2>[2]
+ T_179440[0] := UInt<2>(1)
+ T_179440[1] := UInt<2>(2)
+ wire T_179441 : UInt<2>[1]
+ T_179441[0] := UInt<2>(2)
+ wire T_179442 : UInt<3>[3]
+ T_179442[0] := UInt<3>(0)
+ T_179442[1] := UInt<3>(1)
+ T_179442[2] := UInt<3>(2)
+ wire T_179443 : UInt<0>[1]
+ T_179443[0] := UInt<0>(0)
+ wire T_179444 : UInt<2>[2]
+ T_179444[0] := UInt<2>(1)
+ T_179444[1] := UInt<2>(2)
+ wire T_179445 : UInt<2>[2]
+ T_179445[0] := UInt<2>(1)
+ T_179445[1] := UInt<2>(2)
+ wire T_179446 : UInt<2>[1]
+ T_179446[0] := UInt<2>(2)
+ wire T_179447 : UInt<3>[3]
+ T_179447[0] := UInt<3>(0)
+ T_179447[1] := UInt<3>(1)
+ T_179447[2] := UInt<3>(2)
+ wire T_179448 : UInt<0>[1]
+ T_179448[0] := UInt<0>(0)
+ wire T_179449 : UInt<2>[2]
+ T_179449[0] := UInt<2>(1)
+ T_179449[1] := UInt<2>(2)
+ wire T_179450 : UInt<2>[2]
+ T_179450[0] := UInt<2>(1)
+ T_179450[1] := UInt<2>(2)
+ wire T_179451 : UInt<2>[1]
+ T_179451[0] := UInt<2>(2)
+ wire T_179452 : UInt<3>[3]
+ T_179452[0] := UInt<3>(0)
+ T_179452[1] := UInt<3>(1)
+ T_179452[2] := UInt<3>(2)
+ wire T_179453 : UInt<0>[1]
+ T_179453[0] := UInt<0>(0)
+ wire T_179454 : UInt<2>[2]
+ T_179454[0] := UInt<2>(1)
+ T_179454[1] := UInt<2>(2)
+ wire T_179455 : UInt<2>[2]
+ T_179455[0] := UInt<2>(1)
+ T_179455[1] := UInt<2>(2)
+ wire T_179456 : UInt<2>[1]
+ T_179456[0] := UInt<2>(2)
+ wire T_179457 : UInt<3>[3]
+ T_179457[0] := UInt<3>(0)
+ T_179457[1] := UInt<3>(1)
+ T_179457[2] := UInt<3>(2)
+ wire T_179458 : UInt<0>[1]
+ T_179458[0] := UInt<0>(0)
+ wire T_179459 : UInt<2>[2]
+ T_179459[0] := UInt<2>(1)
+ T_179459[1] := UInt<2>(2)
+ wire T_179460 : UInt<2>[2]
+ T_179460[0] := UInt<2>(1)
+ T_179460[1] := UInt<2>(2)
+ wire T_179461 : UInt<2>[1]
+ T_179461[0] := UInt<2>(2)
+ wire T_179462 : UInt<3>[3]
+ T_179462[0] := UInt<3>(0)
+ T_179462[1] := UInt<3>(1)
+ T_179462[2] := UInt<3>(2)
+ wire T_179463 : UInt<0>[1]
+ T_179463[0] := UInt<0>(0)
+ wire T_179464 : UInt<2>[2]
+ T_179464[0] := UInt<2>(1)
+ T_179464[1] := UInt<2>(2)
+ wire T_179465 : UInt<2>[2]
+ T_179465[0] := UInt<2>(1)
+ T_179465[1] := UInt<2>(2)
+ wire T_179466 : UInt<2>[1]
+ T_179466[0] := UInt<2>(2)
+ wire T_179467 : UInt<3>[3]
+ T_179467[0] := UInt<3>(0)
+ T_179467[1] := UInt<3>(1)
+ T_179467[2] := UInt<3>(2)
+ wire T_179468 : UInt<0>[1]
+ T_179468[0] := UInt<0>(0)
+ wire T_179469 : UInt<2>[2]
+ T_179469[0] := UInt<2>(1)
+ T_179469[1] := UInt<2>(2)
+ wire T_179470 : UInt<2>[2]
+ T_179470[0] := UInt<2>(1)
+ T_179470[1] := UInt<2>(2)
+ wire T_179471 : UInt<2>[1]
+ T_179471[0] := UInt<2>(2)
+ wire T_179472 : UInt<3>[3]
+ T_179472[0] := UInt<3>(0)
+ T_179472[1] := UInt<3>(1)
+ T_179472[2] := UInt<3>(2)
+ wire T_179473 : UInt<0>[1]
+ T_179473[0] := UInt<0>(0)
+ wire T_179474 : UInt<2>[2]
+ T_179474[0] := UInt<2>(1)
+ T_179474[1] := UInt<2>(2)
+ wire T_179475 : UInt<2>[2]
+ T_179475[0] := UInt<2>(1)
+ T_179475[1] := UInt<2>(2)
+ wire T_179476 : UInt<2>[1]
+ T_179476[0] := UInt<2>(2)
+ wire T_179477 : UInt<3>[3]
+ T_179477[0] := UInt<3>(0)
+ T_179477[1] := UInt<3>(1)
+ T_179477[2] := UInt<3>(2)
+ wire T_179478 : UInt<0>[1]
+ T_179478[0] := UInt<0>(0)
+ wire T_179479 : UInt<2>[2]
+ T_179479[0] := UInt<2>(1)
+ T_179479[1] := UInt<2>(2)
+ wire T_179480 : UInt<2>[2]
+ T_179480[0] := UInt<2>(1)
+ T_179480[1] := UInt<2>(2)
+ wire T_179481 : UInt<2>[1]
+ T_179481[0] := UInt<2>(2)
+ wire T_179482 : UInt<3>[3]
+ T_179482[0] := UInt<3>(0)
+ T_179482[1] := UInt<3>(1)
+ T_179482[2] := UInt<3>(2)
+ wire T_179483 : UInt<0>[1]
+ T_179483[0] := UInt<0>(0)
+ wire T_179484 : UInt<2>[2]
+ T_179484[0] := UInt<2>(1)
+ T_179484[1] := UInt<2>(2)
+ wire T_179485 : UInt<2>[2]
+ T_179485[0] := UInt<2>(1)
+ T_179485[1] := UInt<2>(2)
+ wire T_179486 : UInt<2>[1]
+ T_179486[0] := UInt<2>(2)
+ wire T_179487 : UInt<3>[3]
+ T_179487[0] := UInt<3>(0)
+ T_179487[1] := UInt<3>(1)
+ T_179487[2] := UInt<3>(2)
+ wire T_179488 : UInt<0>[1]
+ T_179488[0] := UInt<0>(0)
+ wire T_179489 : UInt<2>[2]
+ T_179489[0] := UInt<2>(1)
+ T_179489[1] := UInt<2>(2)
+ wire T_179490 : UInt<2>[2]
+ T_179490[0] := UInt<2>(1)
+ T_179490[1] := UInt<2>(2)
+ wire T_179491 : UInt<2>[1]
+ T_179491[0] := UInt<2>(2)
+ wire T_179492 : UInt<3>[3]
+ T_179492[0] := UInt<3>(0)
+ T_179492[1] := UInt<3>(1)
+ T_179492[2] := UInt<3>(2)
+ wire T_179493 : UInt<0>[1]
+ T_179493[0] := UInt<0>(0)
+ wire T_179494 : UInt<2>[2]
+ T_179494[0] := UInt<2>(1)
+ T_179494[1] := UInt<2>(2)
+ wire T_179495 : UInt<2>[2]
+ T_179495[0] := UInt<2>(1)
+ T_179495[1] := UInt<2>(2)
+ wire T_179496 : UInt<2>[1]
+ T_179496[0] := UInt<2>(2)
+ wire T_179497 : UInt<3>[3]
+ T_179497[0] := UInt<3>(0)
+ T_179497[1] := UInt<3>(1)
+ T_179497[2] := UInt<3>(2)
+ wire T_179498 : UInt<0>[1]
+ T_179498[0] := UInt<0>(0)
+ wire T_179499 : UInt<2>[2]
+ T_179499[0] := UInt<2>(1)
+ T_179499[1] := UInt<2>(2)
+ wire T_179500 : UInt<2>[2]
+ T_179500[0] := UInt<2>(1)
+ T_179500[1] := UInt<2>(2)
+ wire T_179501 : UInt<2>[1]
+ T_179501[0] := UInt<2>(2)
+ wire T_179502 : UInt<3>[3]
+ T_179502[0] := UInt<3>(0)
+ T_179502[1] := UInt<3>(1)
+ T_179502[2] := UInt<3>(2)
+ wire T_179503 : UInt<0>[1]
+ T_179503[0] := UInt<0>(0)
+ wire T_179504 : UInt<2>[2]
+ T_179504[0] := UInt<2>(1)
+ T_179504[1] := UInt<2>(2)
+ wire T_179505 : UInt<2>[2]
+ T_179505[0] := UInt<2>(1)
+ T_179505[1] := UInt<2>(2)
+ wire T_179506 : UInt<2>[1]
+ T_179506[0] := UInt<2>(2)
+ wire T_179507 : UInt<3>[3]
+ T_179507[0] := UInt<3>(0)
+ T_179507[1] := UInt<3>(1)
+ T_179507[2] := UInt<3>(2)
+ wire T_179508 : UInt<0>[1]
+ T_179508[0] := UInt<0>(0)
+ wire T_179509 : UInt<2>[2]
+ T_179509[0] := UInt<2>(1)
+ T_179509[1] := UInt<2>(2)
+ wire T_179510 : UInt<2>[2]
+ T_179510[0] := UInt<2>(1)
+ T_179510[1] := UInt<2>(2)
+ wire T_179511 : UInt<2>[1]
+ T_179511[0] := UInt<2>(2)
+ wire T_179512 : UInt<3>[3]
+ T_179512[0] := UInt<3>(0)
+ T_179512[1] := UInt<3>(1)
+ T_179512[2] := UInt<3>(2)
+ wire T_179513 : UInt<0>[1]
+ T_179513[0] := UInt<0>(0)
+ wire T_179514 : UInt<2>[2]
+ T_179514[0] := UInt<2>(1)
+ T_179514[1] := UInt<2>(2)
+ wire T_179515 : UInt<2>[2]
+ T_179515[0] := UInt<2>(1)
+ T_179515[1] := UInt<2>(2)
+ wire T_179516 : UInt<2>[1]
+ T_179516[0] := UInt<2>(2)
+ wire T_179517 : UInt<3>[3]
+ T_179517[0] := UInt<3>(0)
+ T_179517[1] := UInt<3>(1)
+ T_179517[2] := UInt<3>(2)
+ wire T_179518 : UInt<0>[1]
+ T_179518[0] := UInt<0>(0)
+ wire T_179519 : UInt<2>[2]
+ T_179519[0] := UInt<2>(1)
+ T_179519[1] := UInt<2>(2)
+ wire T_179520 : UInt<2>[2]
+ T_179520[0] := UInt<2>(1)
+ T_179520[1] := UInt<2>(2)
+ wire T_179521 : UInt<2>[1]
+ T_179521[0] := UInt<2>(2)
+ wire T_179522 : UInt<3>[3]
+ T_179522[0] := UInt<3>(0)
+ T_179522[1] := UInt<3>(1)
+ T_179522[2] := UInt<3>(2)
+ wire T_179523 : UInt<0>[1]
+ T_179523[0] := UInt<0>(0)
+ wire T_179524 : UInt<2>[2]
+ T_179524[0] := UInt<2>(1)
+ T_179524[1] := UInt<2>(2)
+ wire T_179525 : UInt<2>[2]
+ T_179525[0] := UInt<2>(1)
+ T_179525[1] := UInt<2>(2)
+ wire T_179526 : UInt<2>[1]
+ T_179526[0] := UInt<2>(2)
+ wire T_179527 : UInt<3>[3]
+ T_179527[0] := UInt<3>(0)
+ T_179527[1] := UInt<3>(1)
+ T_179527[2] := UInt<3>(2)
+ wire T_179528 : UInt<0>[1]
+ T_179528[0] := UInt<0>(0)
+ wire T_179529 : UInt<2>[2]
+ T_179529[0] := UInt<2>(1)
+ T_179529[1] := UInt<2>(2)
+ wire T_179530 : UInt<2>[2]
+ T_179530[0] := UInt<2>(1)
+ T_179530[1] := UInt<2>(2)
+ wire T_179531 : UInt<2>[1]
+ T_179531[0] := UInt<2>(2)
+ wire T_179532 : UInt<3>[3]
+ T_179532[0] := UInt<3>(0)
+ T_179532[1] := UInt<3>(1)
+ T_179532[2] := UInt<3>(2)
+ wire T_179533 : UInt<0>[1]
+ T_179533[0] := UInt<0>(0)
+ wire T_179534 : UInt<2>[2]
+ T_179534[0] := UInt<2>(1)
+ T_179534[1] := UInt<2>(2)
+ wire T_179535 : UInt<2>[2]
+ T_179535[0] := UInt<2>(1)
+ T_179535[1] := UInt<2>(2)
+ wire T_179536 : UInt<2>[1]
+ T_179536[0] := UInt<2>(2)
+ wire T_179537 : UInt<3>[3]
+ T_179537[0] := UInt<3>(0)
+ T_179537[1] := UInt<3>(1)
+ T_179537[2] := UInt<3>(2)
+ wire T_179538 : UInt<0>[1]
+ T_179538[0] := UInt<0>(0)
+ wire T_179539 : UInt<2>[2]
+ T_179539[0] := UInt<2>(1)
+ T_179539[1] := UInt<2>(2)
+ wire T_179540 : UInt<2>[2]
+ T_179540[0] := UInt<2>(1)
+ T_179540[1] := UInt<2>(2)
+ wire T_179541 : UInt<2>[1]
+ T_179541[0] := UInt<2>(2)
+ wire T_179542 : UInt<3>[3]
+ T_179542[0] := UInt<3>(0)
+ T_179542[1] := UInt<3>(1)
+ T_179542[2] := UInt<3>(2)
+ wire T_179543 : UInt<0>[1]
+ T_179543[0] := UInt<0>(0)
+ wire T_179544 : UInt<2>[2]
+ T_179544[0] := UInt<2>(1)
+ T_179544[1] := UInt<2>(2)
+ wire T_179545 : UInt<2>[2]
+ T_179545[0] := UInt<2>(1)
+ T_179545[1] := UInt<2>(2)
+ wire T_179546 : UInt<2>[1]
+ T_179546[0] := UInt<2>(2)
+ wire T_179547 : UInt<3>[3]
+ T_179547[0] := UInt<3>(0)
+ T_179547[1] := UInt<3>(1)
+ T_179547[2] := UInt<3>(2)
+ wire T_179548 : UInt<0>[1]
+ T_179548[0] := UInt<0>(0)
+ wire T_179549 : UInt<2>[2]
+ T_179549[0] := UInt<2>(1)
+ T_179549[1] := UInt<2>(2)
+ wire T_179550 : UInt<2>[2]
+ T_179550[0] := UInt<2>(1)
+ T_179550[1] := UInt<2>(2)
+ wire T_179551 : UInt<2>[1]
+ T_179551[0] := UInt<2>(2)
+ wire T_179552 : UInt<3>[3]
+ T_179552[0] := UInt<3>(0)
+ T_179552[1] := UInt<3>(1)
+ T_179552[2] := UInt<3>(2)
+ wire T_179553 : UInt<0>[1]
+ T_179553[0] := UInt<0>(0)
+ wire T_179554 : UInt<2>[2]
+ T_179554[0] := UInt<2>(1)
+ T_179554[1] := UInt<2>(2)
+ wire T_179555 : UInt<2>[2]
+ T_179555[0] := UInt<2>(1)
+ T_179555[1] := UInt<2>(2)
+ wire T_179556 : UInt<2>[1]
+ T_179556[0] := UInt<2>(2)
+ wire T_179557 : UInt<3>[3]
+ T_179557[0] := UInt<3>(0)
+ T_179557[1] := UInt<3>(1)
+ T_179557[2] := UInt<3>(2)
+ wire T_179558 : UInt<0>[1]
+ T_179558[0] := UInt<0>(0)
+ wire T_179559 : UInt<2>[2]
+ T_179559[0] := UInt<2>(1)
+ T_179559[1] := UInt<2>(2)
+ wire T_179560 : UInt<2>[2]
+ T_179560[0] := UInt<2>(1)
+ T_179560[1] := UInt<2>(2)
+ wire T_179561 : UInt<2>[1]
+ T_179561[0] := UInt<2>(2)
+ wire T_179562 : UInt<3>[3]
+ T_179562[0] := UInt<3>(0)
+ T_179562[1] := UInt<3>(1)
+ T_179562[2] := UInt<3>(2)
+ wire T_179563 : UInt<0>[1]
+ T_179563[0] := UInt<0>(0)
+ wire T_179564 : UInt<2>[2]
+ T_179564[0] := UInt<2>(1)
+ T_179564[1] := UInt<2>(2)
+ wire T_179565 : UInt<2>[2]
+ T_179565[0] := UInt<2>(1)
+ T_179565[1] := UInt<2>(2)
+ wire T_179566 : UInt<2>[1]
+ T_179566[0] := UInt<2>(2)
+ wire T_179567 : UInt<3>[3]
+ T_179567[0] := UInt<3>(0)
+ T_179567[1] := UInt<3>(1)
+ T_179567[2] := UInt<3>(2)
+ wire T_179568 : UInt<0>[1]
+ T_179568[0] := UInt<0>(0)
+ wire T_179569 : UInt<2>[2]
+ T_179569[0] := UInt<2>(1)
+ T_179569[1] := UInt<2>(2)
+ wire T_179570 : UInt<2>[2]
+ T_179570[0] := UInt<2>(1)
+ T_179570[1] := UInt<2>(2)
+ wire T_179571 : UInt<2>[1]
+ T_179571[0] := UInt<2>(2)
+ wire T_179572 : UInt<3>[3]
+ T_179572[0] := UInt<3>(0)
+ T_179572[1] := UInt<3>(1)
+ T_179572[2] := UInt<3>(2)
+ wire T_179573 : UInt<0>[1]
+ T_179573[0] := UInt<0>(0)
+ wire T_179574 : UInt<2>[2]
+ T_179574[0] := UInt<2>(1)
+ T_179574[1] := UInt<2>(2)
+ wire T_179575 : UInt<2>[2]
+ T_179575[0] := UInt<2>(1)
+ T_179575[1] := UInt<2>(2)
+ wire T_179576 : UInt<2>[1]
+ T_179576[0] := UInt<2>(2)
+ wire T_179577 : UInt<3>[3]
+ T_179577[0] := UInt<3>(0)
+ T_179577[1] := UInt<3>(1)
+ T_179577[2] := UInt<3>(2)
+ wire T_179578 : UInt<0>[1]
+ T_179578[0] := UInt<0>(0)
+ wire T_179579 : UInt<2>[2]
+ T_179579[0] := UInt<2>(1)
+ T_179579[1] := UInt<2>(2)
+ wire T_179580 : UInt<2>[2]
+ T_179580[0] := UInt<2>(1)
+ T_179580[1] := UInt<2>(2)
+ wire T_179581 : UInt<2>[1]
+ T_179581[0] := UInt<2>(2)
+ manager.acquire <> client.acquire
+ client.probe <> manager.probe
+ manager.release <> client.release
+ client.grant <> manager.grant
+ manager.finish <> client.finish
+ module RocketChipTileLinkArbiter_120090 :
+ input clients : {acquire : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_block : UInt<26>, client_xact_id : UInt<2>, addr_beat : UInt<2>, data : UInt<128>, is_builtin_type : UInt<1>, a_type : UInt<3>, union : UInt<17>}}, flip grant : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_beat : UInt<2>, data : UInt<128>, client_xact_id : UInt<2>, manager_xact_id : UInt<1>, is_builtin_type : UInt<1>, g_type : UInt<4>}}, flip probe : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_block : UInt<26>, p_type : UInt<2>}}, release : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_block : UInt<26>, client_xact_id : UInt<2>, addr_beat : UInt<2>, data : UInt<128>, r_type : UInt<3>, voluntary : UInt<1>}}}[1]
+ input managers : {flip acquire : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_block : UInt<26>, client_xact_id : UInt<2>, addr_beat : UInt<2>, data : UInt<128>, is_builtin_type : UInt<1>, a_type : UInt<3>, union : UInt<17>, client_id : UInt<1>}}, grant : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_beat : UInt<2>, data : UInt<128>, client_xact_id : UInt<2>, manager_xact_id : UInt<1>, is_builtin_type : UInt<1>, g_type : UInt<4>, client_id : UInt<1>}}, flip finish : {flip ready : UInt<1>, valid : UInt<1>, bits : {manager_xact_id : UInt<1>}}, probe : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_block : UInt<26>, p_type : UInt<2>, client_id : UInt<1>}}, flip release : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_block : UInt<26>, client_xact_id : UInt<2>, addr_beat : UInt<2>, data : UInt<128>, r_type : UInt<3>, voluntary : UInt<1>, client_id : UInt<1>}}}[1]
+
+ wire T_179582 : UInt<3>[3]
+ T_179582[0] := UInt<3>(0)
+ T_179582[1] := UInt<3>(1)
+ T_179582[2] := UInt<3>(2)
+ wire T_179583 : UInt<0>[1]
+ T_179583[0] := UInt<0>(0)
+ wire T_179584 : UInt<2>[2]
+ T_179584[0] := UInt<2>(1)
+ T_179584[1] := UInt<2>(2)
+ wire T_179585 : UInt<2>[2]
+ T_179585[0] := UInt<2>(1)
+ T_179585[1] := UInt<2>(2)
+ wire T_179586 : UInt<2>[1]
+ T_179586[0] := UInt<2>(2)
+ wire T_179587 : UInt<3>[3]
+ T_179587[0] := UInt<3>(0)
+ T_179587[1] := UInt<3>(1)
+ T_179587[2] := UInt<3>(2)
+ wire T_179588 : UInt<0>[1]
+ T_179588[0] := UInt<0>(0)
+ wire T_179589 : UInt<2>[2]
+ T_179589[0] := UInt<2>(1)
+ T_179589[1] := UInt<2>(2)
+ wire T_179590 : UInt<2>[2]
+ T_179590[0] := UInt<2>(1)
+ T_179590[1] := UInt<2>(2)
+ wire T_179591 : UInt<2>[1]
+ T_179591[0] := UInt<2>(2)
+ wire T_179592 : UInt<3>[3]
+ T_179592[0] := UInt<3>(0)
+ T_179592[1] := UInt<3>(1)
+ T_179592[2] := UInt<3>(2)
+ wire T_179593 : UInt<0>[1]
+ T_179593[0] := UInt<0>(0)
+ wire T_179594 : UInt<2>[2]
+ T_179594[0] := UInt<2>(1)
+ T_179594[1] := UInt<2>(2)
+ wire T_179595 : UInt<2>[2]
+ T_179595[0] := UInt<2>(1)
+ T_179595[1] := UInt<2>(2)
+ wire T_179596 : UInt<2>[1]
+ T_179596[0] := UInt<2>(2)
+ wire T_179597 : UInt<3>[3]
+ T_179597[0] := UInt<3>(0)
+ T_179597[1] := UInt<3>(1)
+ T_179597[2] := UInt<3>(2)
+ wire T_179598 : UInt<0>[1]
+ T_179598[0] := UInt<0>(0)
+ wire T_179599 : UInt<2>[2]
+ T_179599[0] := UInt<2>(1)
+ T_179599[1] := UInt<2>(2)
+ wire T_179600 : UInt<2>[2]
+ T_179600[0] := UInt<2>(1)
+ T_179600[1] := UInt<2>(2)
+ wire T_179601 : UInt<2>[1]
+ T_179601[0] := UInt<2>(2)
+ wire T_179602 : UInt<3>[3]
+ T_179602[0] := UInt<3>(0)
+ T_179602[1] := UInt<3>(1)
+ T_179602[2] := UInt<3>(2)
+ wire T_179603 : UInt<0>[1]
+ T_179603[0] := UInt<0>(0)
+ wire T_179604 : UInt<2>[2]
+ T_179604[0] := UInt<2>(1)
+ T_179604[1] := UInt<2>(2)
+ wire T_179605 : UInt<2>[2]
+ T_179605[0] := UInt<2>(1)
+ T_179605[1] := UInt<2>(2)
+ wire T_179606 : UInt<2>[1]
+ T_179606[0] := UInt<2>(2)
+ wire T_179607 : UInt<3>[3]
+ T_179607[0] := UInt<3>(0)
+ T_179607[1] := UInt<3>(1)
+ T_179607[2] := UInt<3>(2)
+ wire T_179608 : UInt<0>[1]
+ T_179608[0] := UInt<0>(0)
+ wire T_179609 : UInt<2>[2]
+ T_179609[0] := UInt<2>(1)
+ T_179609[1] := UInt<2>(2)
+ wire T_179610 : UInt<2>[2]
+ T_179610[0] := UInt<2>(1)
+ T_179610[1] := UInt<2>(2)
+ wire T_179611 : UInt<2>[1]
+ T_179611[0] := UInt<2>(2)
+ wire T_179612 : UInt<3>[3]
+ T_179612[0] := UInt<3>(0)
+ T_179612[1] := UInt<3>(1)
+ T_179612[2] := UInt<3>(2)
+ wire T_179613 : UInt<0>[1]
+ T_179613[0] := UInt<0>(0)
+ wire T_179614 : UInt<2>[2]
+ T_179614[0] := UInt<2>(1)
+ T_179614[1] := UInt<2>(2)
+ wire T_179615 : UInt<2>[2]
+ T_179615[0] := UInt<2>(1)
+ T_179615[1] := UInt<2>(2)
+ wire T_179616 : UInt<2>[1]
+ T_179616[0] := UInt<2>(2)
+ wire T_179617 : UInt<3>[3]
+ T_179617[0] := UInt<3>(0)
+ T_179617[1] := UInt<3>(1)
+ T_179617[2] := UInt<3>(2)
+ wire T_179618 : UInt<0>[1]
+ T_179618[0] := UInt<0>(0)
+ wire T_179619 : UInt<2>[2]
+ T_179619[0] := UInt<2>(1)
+ T_179619[1] := UInt<2>(2)
+ wire T_179620 : UInt<2>[2]
+ T_179620[0] := UInt<2>(1)
+ T_179620[1] := UInt<2>(2)
+ wire T_179621 : UInt<2>[1]
+ T_179621[0] := UInt<2>(2)
+ wire T_179622 : UInt<3>[3]
+ T_179622[0] := UInt<3>(0)
+ T_179622[1] := UInt<3>(1)
+ T_179622[2] := UInt<3>(2)
+ wire T_179623 : UInt<0>[1]
+ T_179623[0] := UInt<0>(0)
+ wire T_179624 : UInt<2>[2]
+ T_179624[0] := UInt<2>(1)
+ T_179624[1] := UInt<2>(2)
+ wire T_179625 : UInt<2>[2]
+ T_179625[0] := UInt<2>(1)
+ T_179625[1] := UInt<2>(2)
+ wire T_179626 : UInt<2>[1]
+ T_179626[0] := UInt<2>(2)
+ wire T_179627 : UInt<3>[3]
+ T_179627[0] := UInt<3>(0)
+ T_179627[1] := UInt<3>(1)
+ T_179627[2] := UInt<3>(2)
+ wire T_179628 : UInt<0>[1]
+ T_179628[0] := UInt<0>(0)
+ wire T_179629 : UInt<2>[2]
+ T_179629[0] := UInt<2>(1)
+ T_179629[1] := UInt<2>(2)
+ wire T_179630 : UInt<2>[2]
+ T_179630[0] := UInt<2>(1)
+ T_179630[1] := UInt<2>(2)
+ wire T_179631 : UInt<2>[1]
+ T_179631[0] := UInt<2>(2)
+ wire T_179632 : UInt<3>[3]
+ T_179632[0] := UInt<3>(0)
+ T_179632[1] := UInt<3>(1)
+ T_179632[2] := UInt<3>(2)
+ wire T_179633 : UInt<0>[1]
+ T_179633[0] := UInt<0>(0)
+ wire T_179634 : UInt<2>[2]
+ T_179634[0] := UInt<2>(1)
+ T_179634[1] := UInt<2>(2)
+ wire T_179635 : UInt<2>[2]
+ T_179635[0] := UInt<2>(1)
+ T_179635[1] := UInt<2>(2)
+ wire T_179636 : UInt<2>[1]
+ T_179636[0] := UInt<2>(2)
+ wire T_179637 : UInt<3>[3]
+ T_179637[0] := UInt<3>(0)
+ T_179637[1] := UInt<3>(1)
+ T_179637[2] := UInt<3>(2)
+ wire T_179638 : UInt<0>[1]
+ T_179638[0] := UInt<0>(0)
+ wire T_179639 : UInt<2>[2]
+ T_179639[0] := UInt<2>(1)
+ T_179639[1] := UInt<2>(2)
+ wire T_179640 : UInt<2>[2]
+ T_179640[0] := UInt<2>(1)
+ T_179640[1] := UInt<2>(2)
+ wire T_179641 : UInt<2>[1]
+ T_179641[0] := UInt<2>(2)
+ wire T_179642 : UInt<3>[3]
+ T_179642[0] := UInt<3>(0)
+ T_179642[1] := UInt<3>(1)
+ T_179642[2] := UInt<3>(2)
+ wire T_179643 : UInt<0>[1]
+ T_179643[0] := UInt<0>(0)
+ wire T_179644 : UInt<2>[2]
+ T_179644[0] := UInt<2>(1)
+ T_179644[1] := UInt<2>(2)
+ wire T_179645 : UInt<2>[2]
+ T_179645[0] := UInt<2>(1)
+ T_179645[1] := UInt<2>(2)
+ wire T_179646 : UInt<2>[1]
+ T_179646[0] := UInt<2>(2)
+ wire T_179647 : UInt<3>[3]
+ T_179647[0] := UInt<3>(0)
+ T_179647[1] := UInt<3>(1)
+ T_179647[2] := UInt<3>(2)
+ wire T_179648 : UInt<0>[1]
+ T_179648[0] := UInt<0>(0)
+ wire T_179649 : UInt<2>[2]
+ T_179649[0] := UInt<2>(1)
+ T_179649[1] := UInt<2>(2)
+ wire T_179650 : UInt<2>[2]
+ T_179650[0] := UInt<2>(1)
+ T_179650[1] := UInt<2>(2)
+ wire T_179651 : UInt<2>[1]
+ T_179651[0] := UInt<2>(2)
+ wire T_179652 : UInt<3>[3]
+ T_179652[0] := UInt<3>(0)
+ T_179652[1] := UInt<3>(1)
+ T_179652[2] := UInt<3>(2)
+ wire T_179653 : UInt<0>[1]
+ T_179653[0] := UInt<0>(0)
+ wire T_179654 : UInt<2>[2]
+ T_179654[0] := UInt<2>(1)
+ T_179654[1] := UInt<2>(2)
+ wire T_179655 : UInt<2>[2]
+ T_179655[0] := UInt<2>(1)
+ T_179655[1] := UInt<2>(2)
+ wire T_179656 : UInt<2>[1]
+ T_179656[0] := UInt<2>(2)
+ wire T_179657 : UInt<3>[3]
+ T_179657[0] := UInt<3>(0)
+ T_179657[1] := UInt<3>(1)
+ T_179657[2] := UInt<3>(2)
+ wire T_179658 : UInt<0>[1]
+ T_179658[0] := UInt<0>(0)
+ wire T_179659 : UInt<2>[2]
+ T_179659[0] := UInt<2>(1)
+ T_179659[1] := UInt<2>(2)
+ wire T_179660 : UInt<2>[2]
+ T_179660[0] := UInt<2>(1)
+ T_179660[1] := UInt<2>(2)
+ wire T_179661 : UInt<2>[1]
+ T_179661[0] := UInt<2>(2)
+ wire T_179662 : UInt<3>[3]
+ T_179662[0] := UInt<3>(0)
+ T_179662[1] := UInt<3>(1)
+ T_179662[2] := UInt<3>(2)
+ wire T_179663 : UInt<0>[1]
+ T_179663[0] := UInt<0>(0)
+ wire T_179664 : UInt<2>[2]
+ T_179664[0] := UInt<2>(1)
+ T_179664[1] := UInt<2>(2)
+ wire T_179665 : UInt<2>[2]
+ T_179665[0] := UInt<2>(1)
+ T_179665[1] := UInt<2>(2)
+ wire T_179666 : UInt<2>[1]
+ T_179666[0] := UInt<2>(2)
+ wire T_179667 : UInt<3>[3]
+ T_179667[0] := UInt<3>(0)
+ T_179667[1] := UInt<3>(1)
+ T_179667[2] := UInt<3>(2)
+ wire T_179668 : UInt<0>[1]
+ T_179668[0] := UInt<0>(0)
+ wire T_179669 : UInt<2>[2]
+ T_179669[0] := UInt<2>(1)
+ T_179669[1] := UInt<2>(2)
+ wire T_179670 : UInt<2>[2]
+ T_179670[0] := UInt<2>(1)
+ T_179670[1] := UInt<2>(2)
+ wire T_179671 : UInt<2>[1]
+ T_179671[0] := UInt<2>(2)
+ wire T_179672 : UInt<3>[3]
+ T_179672[0] := UInt<3>(0)
+ T_179672[1] := UInt<3>(1)
+ T_179672[2] := UInt<3>(2)
+ wire T_179673 : UInt<0>[1]
+ T_179673[0] := UInt<0>(0)
+ wire T_179674 : UInt<2>[2]
+ T_179674[0] := UInt<2>(1)
+ T_179674[1] := UInt<2>(2)
+ wire T_179675 : UInt<2>[2]
+ T_179675[0] := UInt<2>(1)
+ T_179675[1] := UInt<2>(2)
+ wire T_179676 : UInt<2>[1]
+ T_179676[0] := UInt<2>(2)
+ wire clients : {acquire : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_block : UInt<26>, client_xact_id : UInt<2>, addr_beat : UInt<2>, data : UInt<128>, is_builtin_type : UInt<1>, a_type : UInt<3>, union : UInt<17>}}, flip grant : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_beat : UInt<2>, data : UInt<128>, client_xact_id : UInt<2>, manager_xact_id : UInt<1>, is_builtin_type : UInt<1>, g_type : UInt<4>}}, flip probe : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_block : UInt<26>, p_type : UInt<2>}}, release : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_block : UInt<26>, client_xact_id : UInt<2>, addr_beat : UInt<2>, data : UInt<128>, r_type : UInt<3>, voluntary : UInt<1>}}}[1]
+ clients[0] := T_179677
+ wire T_179678 : UInt<3>[3]
+ T_179678[0] := UInt<3>(0)
+ T_179678[1] := UInt<3>(1)
+ T_179678[2] := UInt<3>(2)
+ wire T_179679 : UInt<0>[1]
+ T_179679[0] := UInt<0>(0)
+ wire T_179680 : UInt<2>[2]
+ T_179680[0] := UInt<2>(1)
+ T_179680[1] := UInt<2>(2)
+ wire T_179681 : UInt<2>[2]
+ T_179681[0] := UInt<2>(1)
+ T_179681[1] := UInt<2>(2)
+ wire T_179682 : UInt<2>[1]
+ T_179682[0] := UInt<2>(2)
+ wire T_179683 : UInt<3>[3]
+ T_179683[0] := UInt<3>(0)
+ T_179683[1] := UInt<3>(1)
+ T_179683[2] := UInt<3>(2)
+ wire T_179684 : UInt<0>[1]
+ T_179684[0] := UInt<0>(0)
+ wire T_179685 : UInt<2>[2]
+ T_179685[0] := UInt<2>(1)
+ T_179685[1] := UInt<2>(2)
+ wire T_179686 : UInt<2>[2]
+ T_179686[0] := UInt<2>(1)
+ T_179686[1] := UInt<2>(2)
+ wire T_179687 : UInt<2>[1]
+ T_179687[0] := UInt<2>(2)
+ wire T_179688 : UInt<3>[3]
+ T_179688[0] := UInt<3>(0)
+ T_179688[1] := UInt<3>(1)
+ T_179688[2] := UInt<3>(2)
+ wire T_179689 : UInt<0>[1]
+ T_179689[0] := UInt<0>(0)
+ wire T_179690 : UInt<2>[2]
+ T_179690[0] := UInt<2>(1)
+ T_179690[1] := UInt<2>(2)
+ wire T_179691 : UInt<2>[2]
+ T_179691[0] := UInt<2>(1)
+ T_179691[1] := UInt<2>(2)
+ wire T_179692 : UInt<2>[1]
+ T_179692[0] := UInt<2>(2)
+ wire T_179693 : UInt<3>[3]
+ T_179693[0] := UInt<3>(0)
+ T_179693[1] := UInt<3>(1)
+ T_179693[2] := UInt<3>(2)
+ wire T_179694 : UInt<0>[1]
+ T_179694[0] := UInt<0>(0)
+ wire T_179695 : UInt<2>[2]
+ T_179695[0] := UInt<2>(1)
+ T_179695[1] := UInt<2>(2)
+ wire T_179696 : UInt<2>[2]
+ T_179696[0] := UInt<2>(1)
+ T_179696[1] := UInt<2>(2)
+ wire T_179697 : UInt<2>[1]
+ T_179697[0] := UInt<2>(2)
+ wire T_179698 : UInt<3>[3]
+ T_179698[0] := UInt<3>(0)
+ T_179698[1] := UInt<3>(1)
+ T_179698[2] := UInt<3>(2)
+ wire T_179699 : UInt<0>[1]
+ T_179699[0] := UInt<0>(0)
+ wire T_179700 : UInt<2>[2]
+ T_179700[0] := UInt<2>(1)
+ T_179700[1] := UInt<2>(2)
+ wire T_179701 : UInt<2>[2]
+ T_179701[0] := UInt<2>(1)
+ T_179701[1] := UInt<2>(2)
+ wire T_179702 : UInt<2>[1]
+ T_179702[0] := UInt<2>(2)
+ wire T_179703 : UInt<3>[3]
+ T_179703[0] := UInt<3>(0)
+ T_179703[1] := UInt<3>(1)
+ T_179703[2] := UInt<3>(2)
+ wire T_179704 : UInt<0>[1]
+ T_179704[0] := UInt<0>(0)
+ wire T_179705 : UInt<2>[2]
+ T_179705[0] := UInt<2>(1)
+ T_179705[1] := UInt<2>(2)
+ wire T_179706 : UInt<2>[2]
+ T_179706[0] := UInt<2>(1)
+ T_179706[1] := UInt<2>(2)
+ wire T_179707 : UInt<2>[1]
+ T_179707[0] := UInt<2>(2)
+ wire T_179708 : UInt<3>[3]
+ T_179708[0] := UInt<3>(0)
+ T_179708[1] := UInt<3>(1)
+ T_179708[2] := UInt<3>(2)
+ wire T_179709 : UInt<0>[1]
+ T_179709[0] := UInt<0>(0)
+ wire T_179710 : UInt<2>[2]
+ T_179710[0] := UInt<2>(1)
+ T_179710[1] := UInt<2>(2)
+ wire T_179711 : UInt<2>[2]
+ T_179711[0] := UInt<2>(1)
+ T_179711[1] := UInt<2>(2)
+ wire T_179712 : UInt<2>[1]
+ T_179712[0] := UInt<2>(2)
+ wire T_179713 : UInt<3>[3]
+ T_179713[0] := UInt<3>(0)
+ T_179713[1] := UInt<3>(1)
+ T_179713[2] := UInt<3>(2)
+ wire T_179714 : UInt<0>[1]
+ T_179714[0] := UInt<0>(0)
+ wire T_179715 : UInt<2>[2]
+ T_179715[0] := UInt<2>(1)
+ T_179715[1] := UInt<2>(2)
+ wire T_179716 : UInt<2>[2]
+ T_179716[0] := UInt<2>(1)
+ T_179716[1] := UInt<2>(2)
+ wire T_179717 : UInt<2>[1]
+ T_179717[0] := UInt<2>(2)
+ wire T_179718 : UInt<3>[3]
+ T_179718[0] := UInt<3>(0)
+ T_179718[1] := UInt<3>(1)
+ T_179718[2] := UInt<3>(2)
+ wire T_179719 : UInt<0>[1]
+ T_179719[0] := UInt<0>(0)
+ wire T_179720 : UInt<2>[2]
+ T_179720[0] := UInt<2>(1)
+ T_179720[1] := UInt<2>(2)
+ wire T_179721 : UInt<2>[2]
+ T_179721[0] := UInt<2>(1)
+ T_179721[1] := UInt<2>(2)
+ wire T_179722 : UInt<2>[1]
+ T_179722[0] := UInt<2>(2)
+ wire T_179723 : UInt<3>[3]
+ T_179723[0] := UInt<3>(0)
+ T_179723[1] := UInt<3>(1)
+ T_179723[2] := UInt<3>(2)
+ wire T_179724 : UInt<0>[1]
+ T_179724[0] := UInt<0>(0)
+ wire T_179725 : UInt<2>[2]
+ T_179725[0] := UInt<2>(1)
+ T_179725[1] := UInt<2>(2)
+ wire T_179726 : UInt<2>[2]
+ T_179726[0] := UInt<2>(1)
+ T_179726[1] := UInt<2>(2)
+ wire T_179727 : UInt<2>[1]
+ T_179727[0] := UInt<2>(2)
+ wire T_179728 : UInt<3>[3]
+ T_179728[0] := UInt<3>(0)
+ T_179728[1] := UInt<3>(1)
+ T_179728[2] := UInt<3>(2)
+ wire T_179729 : UInt<0>[1]
+ T_179729[0] := UInt<0>(0)
+ wire T_179730 : UInt<2>[2]
+ T_179730[0] := UInt<2>(1)
+ T_179730[1] := UInt<2>(2)
+ wire T_179731 : UInt<2>[2]
+ T_179731[0] := UInt<2>(1)
+ T_179731[1] := UInt<2>(2)
+ wire T_179732 : UInt<2>[1]
+ T_179732[0] := UInt<2>(2)
+ wire T_179733 : UInt<3>[3]
+ T_179733[0] := UInt<3>(0)
+ T_179733[1] := UInt<3>(1)
+ T_179733[2] := UInt<3>(2)
+ wire T_179734 : UInt<0>[1]
+ T_179734[0] := UInt<0>(0)
+ wire T_179735 : UInt<2>[2]
+ T_179735[0] := UInt<2>(1)
+ T_179735[1] := UInt<2>(2)
+ wire T_179736 : UInt<2>[2]
+ T_179736[0] := UInt<2>(1)
+ T_179736[1] := UInt<2>(2)
+ wire T_179737 : UInt<2>[1]
+ T_179737[0] := UInt<2>(2)
+ wire T_179738 : UInt<3>[3]
+ T_179738[0] := UInt<3>(0)
+ T_179738[1] := UInt<3>(1)
+ T_179738[2] := UInt<3>(2)
+ wire T_179739 : UInt<0>[1]
+ T_179739[0] := UInt<0>(0)
+ wire T_179740 : UInt<2>[2]
+ T_179740[0] := UInt<2>(1)
+ T_179740[1] := UInt<2>(2)
+ wire T_179741 : UInt<2>[2]
+ T_179741[0] := UInt<2>(1)
+ T_179741[1] := UInt<2>(2)
+ wire T_179742 : UInt<2>[1]
+ T_179742[0] := UInt<2>(2)
+ wire T_179743 : UInt<3>[3]
+ T_179743[0] := UInt<3>(0)
+ T_179743[1] := UInt<3>(1)
+ T_179743[2] := UInt<3>(2)
+ wire T_179744 : UInt<0>[1]
+ T_179744[0] := UInt<0>(0)
+ wire T_179745 : UInt<2>[2]
+ T_179745[0] := UInt<2>(1)
+ T_179745[1] := UInt<2>(2)
+ wire T_179746 : UInt<2>[2]
+ T_179746[0] := UInt<2>(1)
+ T_179746[1] := UInt<2>(2)
+ wire T_179747 : UInt<2>[1]
+ T_179747[0] := UInt<2>(2)
+ wire T_179748 : UInt<3>[3]
+ T_179748[0] := UInt<3>(0)
+ T_179748[1] := UInt<3>(1)
+ T_179748[2] := UInt<3>(2)
+ wire T_179749 : UInt<0>[1]
+ T_179749[0] := UInt<0>(0)
+ wire T_179750 : UInt<2>[2]
+ T_179750[0] := UInt<2>(1)
+ T_179750[1] := UInt<2>(2)
+ wire T_179751 : UInt<2>[2]
+ T_179751[0] := UInt<2>(1)
+ T_179751[1] := UInt<2>(2)
+ wire T_179752 : UInt<2>[1]
+ T_179752[0] := UInt<2>(2)
+ wire T_179753 : UInt<3>[3]
+ T_179753[0] := UInt<3>(0)
+ T_179753[1] := UInt<3>(1)
+ T_179753[2] := UInt<3>(2)
+ wire T_179754 : UInt<0>[1]
+ T_179754[0] := UInt<0>(0)
+ wire T_179755 : UInt<2>[2]
+ T_179755[0] := UInt<2>(1)
+ T_179755[1] := UInt<2>(2)
+ wire T_179756 : UInt<2>[2]
+ T_179756[0] := UInt<2>(1)
+ T_179756[1] := UInt<2>(2)
+ wire T_179757 : UInt<2>[1]
+ T_179757[0] := UInt<2>(2)
+ wire T_179758 : UInt<3>[3]
+ T_179758[0] := UInt<3>(0)
+ T_179758[1] := UInt<3>(1)
+ T_179758[2] := UInt<3>(2)
+ wire T_179759 : UInt<0>[1]
+ T_179759[0] := UInt<0>(0)
+ wire T_179760 : UInt<2>[2]
+ T_179760[0] := UInt<2>(1)
+ T_179760[1] := UInt<2>(2)
+ wire T_179761 : UInt<2>[2]
+ T_179761[0] := UInt<2>(1)
+ T_179761[1] := UInt<2>(2)
+ wire T_179762 : UInt<2>[1]
+ T_179762[0] := UInt<2>(2)
+ wire T_179763 : UInt<3>[3]
+ T_179763[0] := UInt<3>(0)
+ T_179763[1] := UInt<3>(1)
+ T_179763[2] := UInt<3>(2)
+ wire T_179764 : UInt<0>[1]
+ T_179764[0] := UInt<0>(0)
+ wire T_179765 : UInt<2>[2]
+ T_179765[0] := UInt<2>(1)
+ T_179765[1] := UInt<2>(2)
+ wire T_179766 : UInt<2>[2]
+ T_179766[0] := UInt<2>(1)
+ T_179766[1] := UInt<2>(2)
+ wire T_179767 : UInt<2>[1]
+ T_179767[0] := UInt<2>(2)
+ wire T_179768 : UInt<3>[3]
+ T_179768[0] := UInt<3>(0)
+ T_179768[1] := UInt<3>(1)
+ T_179768[2] := UInt<3>(2)
+ wire T_179769 : UInt<0>[1]
+ T_179769[0] := UInt<0>(0)
+ wire T_179770 : UInt<2>[2]
+ T_179770[0] := UInt<2>(1)
+ T_179770[1] := UInt<2>(2)
+ wire T_179771 : UInt<2>[2]
+ T_179771[0] := UInt<2>(1)
+ T_179771[1] := UInt<2>(2)
+ wire T_179772 : UInt<2>[1]
+ T_179772[0] := UInt<2>(2)
+ wire T_179773 : UInt<3>[3]
+ T_179773[0] := UInt<3>(0)
+ T_179773[1] := UInt<3>(1)
+ T_179773[2] := UInt<3>(2)
+ wire T_179774 : UInt<0>[1]
+ T_179774[0] := UInt<0>(0)
+ wire T_179775 : UInt<2>[2]
+ T_179775[0] := UInt<2>(1)
+ T_179775[1] := UInt<2>(2)
+ wire T_179776 : UInt<2>[2]
+ T_179776[0] := UInt<2>(1)
+ T_179776[1] := UInt<2>(2)
+ wire T_179777 : UInt<2>[1]
+ T_179777[0] := UInt<2>(2)
+ wire T_179778 : UInt<3>[3]
+ T_179778[0] := UInt<3>(0)
+ T_179778[1] := UInt<3>(1)
+ T_179778[2] := UInt<3>(2)
+ wire T_179779 : UInt<0>[1]
+ T_179779[0] := UInt<0>(0)
+ wire T_179780 : UInt<2>[2]
+ T_179780[0] := UInt<2>(1)
+ T_179780[1] := UInt<2>(2)
+ wire T_179781 : UInt<2>[2]
+ T_179781[0] := UInt<2>(1)
+ T_179781[1] := UInt<2>(2)
+ wire T_179782 : UInt<2>[1]
+ T_179782[0] := UInt<2>(2)
+ wire T_179783 : UInt<3>[3]
+ T_179783[0] := UInt<3>(0)
+ T_179783[1] := UInt<3>(1)
+ T_179783[2] := UInt<3>(2)
+ wire T_179784 : UInt<0>[1]
+ T_179784[0] := UInt<0>(0)
+ wire T_179785 : UInt<2>[2]
+ T_179785[0] := UInt<2>(1)
+ T_179785[1] := UInt<2>(2)
+ wire T_179786 : UInt<2>[2]
+ T_179786[0] := UInt<2>(1)
+ T_179786[1] := UInt<2>(2)
+ wire T_179787 : UInt<2>[1]
+ T_179787[0] := UInt<2>(2)
+ wire managers : {flip acquire : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_block : UInt<26>, client_xact_id : UInt<2>, addr_beat : UInt<2>, data : UInt<128>, is_builtin_type : UInt<1>, a_type : UInt<3>, union : UInt<17>, client_id : UInt<1>}}, grant : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_beat : UInt<2>, data : UInt<128>, client_xact_id : UInt<2>, manager_xact_id : UInt<1>, is_builtin_type : UInt<1>, g_type : UInt<4>, client_id : UInt<1>}}, flip finish : {flip ready : UInt<1>, valid : UInt<1>, bits : {manager_xact_id : UInt<1>}}, probe : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_block : UInt<26>, p_type : UInt<2>, client_id : UInt<1>}}, flip release : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_block : UInt<26>, client_xact_id : UInt<2>, addr_beat : UInt<2>, data : UInt<128>, r_type : UInt<3>, voluntary : UInt<1>, client_id : UInt<1>}}}[1]
+ managers[0] := T_179788
+ inst T_179789 of ClientTileLinkNetworkPort_114092
+ inst T_179790 of TileLinkEnqueuer_115938
+ T_179789.client <> clients[0]
+ T_179790.client <> T_179789.network
+ inst T_179791 of ManagerTileLinkNetworkPort_118243
+ inst T_179792 of TileLinkEnqueuer_120089
+ managers[0] <> T_179791.manager
+ T_179791.network <> T_179792.manager
+ T_179792.client <> T_179790.manager
+ module Arbiter :
+ input in : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_beat : UInt<2>, data : UInt<128>, client_xact_id : UInt<2>, manager_xact_id : UInt<1>, is_builtin_type : UInt<1>, g_type : UInt<4>, client_id : UInt<1>}}[2]
+ output out : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_beat : UInt<2>, data : UInt<128>, client_xact_id : UInt<2>, manager_xact_id : UInt<1>, is_builtin_type : UInt<1>, g_type : UInt<4>, client_id : UInt<1>}}
+ output chosen : UInt<1>
+
+ wire T_179793 : UInt<3>[3]
+ T_179793[0] := UInt<3>(0)
+ T_179793[1] := UInt<3>(1)
+ T_179793[2] := UInt<3>(2)
+ wire T_179794 : UInt<0>[1]
+ T_179794[0] := UInt<0>(0)
+ wire T_179795 : UInt<2>[2]
+ T_179795[0] := UInt<2>(1)
+ T_179795[1] := UInt<2>(2)
+ wire T_179796 : UInt<2>[2]
+ T_179796[0] := UInt<2>(1)
+ T_179796[1] := UInt<2>(2)
+ wire T_179797 : UInt<2>[1]
+ T_179797[0] := UInt<2>(2)
+ wire T_179798 : UInt<3>[3]
+ T_179798[0] := UInt<3>(0)
+ T_179798[1] := UInt<3>(1)
+ T_179798[2] := UInt<3>(2)
+ wire T_179799 : UInt<0>[1]
+ T_179799[0] := UInt<0>(0)
+ wire T_179800 : UInt<2>[2]
+ T_179800[0] := UInt<2>(1)
+ T_179800[1] := UInt<2>(2)
+ wire T_179801 : UInt<2>[2]
+ T_179801[0] := UInt<2>(1)
+ T_179801[1] := UInt<2>(2)
+ wire T_179802 : UInt<2>[1]
+ T_179802[0] := UInt<2>(2)
+ wire T_179803 : UInt<3>[3]
+ T_179803[0] := UInt<3>(0)
+ T_179803[1] := UInt<3>(1)
+ T_179803[2] := UInt<3>(2)
+ wire T_179804 : UInt<0>[1]
+ T_179804[0] := UInt<0>(0)
+ wire T_179805 : UInt<2>[2]
+ T_179805[0] := UInt<2>(1)
+ T_179805[1] := UInt<2>(2)
+ wire T_179806 : UInt<2>[2]
+ T_179806[0] := UInt<2>(1)
+ T_179806[1] := UInt<2>(2)
+ wire T_179807 : UInt<2>[1]
+ T_179807[0] := UInt<2>(2)
+ wire T_179808 : UInt<3>[3]
+ T_179808[0] := UInt<3>(0)
+ T_179808[1] := UInt<3>(1)
+ T_179808[2] := UInt<3>(2)
+ wire T_179809 : UInt<0>[1]
+ T_179809[0] := UInt<0>(0)
+ wire T_179810 : UInt<2>[2]
+ T_179810[0] := UInt<2>(1)
+ T_179810[1] := UInt<2>(2)
+ wire T_179811 : UInt<2>[2]
+ T_179811[0] := UInt<2>(1)
+ T_179811[1] := UInt<2>(2)
+ wire T_179812 : UInt<2>[1]
+ T_179812[0] := UInt<2>(2)
+ wire T_179813 : UInt<1>
+ node T_179814 = or(UInt<1>(0), in[0].valid)
+ node T_179815 = eq(T_179814, UInt<1>(0))
+ node T_179816 = eq(UInt<1>(1), UInt<1>(0))
+ wire T_179817 : UInt<1>
+ T_179817 := UInt<1>(1)
+ when UInt<1>(0) : T_179817 := T_179816
+ node T_179818 = and(T_179817, out.ready)
+ in[0].ready := T_179818
+ node T_179819 = eq(UInt<1>(1), UInt<1>(1))
+ wire T_179820 : UInt<1>
+ T_179820 := T_179815
+ when UInt<1>(0) : T_179820 := T_179819
+ node T_179821 = and(T_179820, out.ready)
+ in[1].ready := T_179821
+ wire T_179822 : UInt<3>[3]
+ T_179822[0] := UInt<3>(0)
+ T_179822[1] := UInt<3>(1)
+ T_179822[2] := UInt<3>(2)
+ wire T_179823 : UInt<0>[1]
+ T_179823[0] := UInt<0>(0)
+ wire T_179824 : UInt<2>[2]
+ T_179824[0] := UInt<2>(1)
+ T_179824[1] := UInt<2>(2)
+ wire T_179825 : UInt<2>[2]
+ T_179825[0] := UInt<2>(1)
+ T_179825[1] := UInt<2>(2)
+ wire T_179826 : UInt<2>[1]
+ T_179826[0] := UInt<2>(2)
+ accessor T_179827 = in[T_179813]
+ out.valid := T_179827.valid
+ wire T_179828 : UInt<3>[3]
+ T_179828[0] := UInt<3>(0)
+ T_179828[1] := UInt<3>(1)
+ T_179828[2] := UInt<3>(2)
+ wire T_179829 : UInt<0>[1]
+ T_179829[0] := UInt<0>(0)
+ wire T_179830 : UInt<2>[2]
+ T_179830[0] := UInt<2>(1)
+ T_179830[1] := UInt<2>(2)
+ wire T_179831 : UInt<2>[2]
+ T_179831[0] := UInt<2>(1)
+ T_179831[1] := UInt<2>(2)
+ wire T_179832 : UInt<2>[1]
+ T_179832[0] := UInt<2>(2)
+ accessor T_179833 = in[T_179813]
+ out.bits := T_179833.bits
+ chosen := T_179813
+ wire T_179834 : UInt<1>
+ T_179834 := UInt<1>(1)
+ when in[0].valid : T_179834 := UInt<1>(0)
+ wire T_179835 : UInt<1>
+ T_179835 := T_179834
+ when UInt<1>(0) : T_179835 := UInt<1>(1)
+ T_179813 := T_179835
+ module MemIOTileLinkIOConverter :
+ output tl : {flip acquire : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_block : UInt<26>, client_xact_id : UInt<2>, addr_beat : UInt<2>, data : UInt<128>, is_builtin_type : UInt<1>, a_type : UInt<3>, union : UInt<17>, client_id : UInt<1>}}, grant : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_beat : UInt<2>, data : UInt<128>, client_xact_id : UInt<2>, manager_xact_id : UInt<1>, is_builtin_type : UInt<1>, g_type : UInt<4>, client_id : UInt<1>}}, flip finish : {flip ready : UInt<1>, valid : UInt<1>, bits : {manager_xact_id : UInt<1>}}, probe : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_block : UInt<26>, p_type : UInt<2>, client_id : UInt<1>}}, flip release : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_block : UInt<26>, client_xact_id : UInt<2>, addr_beat : UInt<2>, data : UInt<128>, r_type : UInt<3>, voluntary : UInt<1>, client_id : UInt<1>}}}
+ output mem__ : {req_cmd : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr : UInt<26>, tag : UInt<5>, rw : UInt<1>}}, req_data : {flip ready : UInt<1>, valid : UInt<1>, bits : {data : UInt<128>}}, flip resp : {flip ready : UInt<1>, valid : UInt<1>, bits : {data : UInt<128>, tag : UInt<5>}}}
+
+ wire T_179836 : UInt<3>[3]
+ T_179836[0] := UInt<3>(0)
+ T_179836[1] := UInt<3>(1)
+ T_179836[2] := UInt<3>(2)
+ wire T_179837 : UInt<0>[1]
+ T_179837[0] := UInt<0>(0)
+ wire T_179838 : UInt<2>[2]
+ T_179838[0] := UInt<2>(1)
+ T_179838[1] := UInt<2>(2)
+ wire T_179839 : UInt<2>[2]
+ T_179839[0] := UInt<2>(1)
+ T_179839[1] := UInt<2>(2)
+ wire T_179840 : UInt<2>[1]
+ T_179840[0] := UInt<2>(2)
+ wire T_179841 : UInt<3>[3]
+ T_179841[0] := UInt<3>(0)
+ T_179841[1] := UInt<3>(1)
+ T_179841[2] := UInt<3>(2)
+ wire T_179842 : UInt<0>[1]
+ T_179842[0] := UInt<0>(0)
+ wire T_179843 : UInt<2>[2]
+ T_179843[0] := UInt<2>(1)
+ T_179843[1] := UInt<2>(2)
+ wire T_179844 : UInt<2>[2]
+ T_179844[0] := UInt<2>(1)
+ T_179844[1] := UInt<2>(2)
+ wire T_179845 : UInt<2>[1]
+ T_179845[0] := UInt<2>(2)
+ wire T_179846 : UInt<3>[3]
+ T_179846[0] := UInt<3>(0)
+ T_179846[1] := UInt<3>(1)
+ T_179846[2] := UInt<3>(2)
+ wire T_179847 : UInt<0>[1]
+ T_179847[0] := UInt<0>(0)
+ wire T_179848 : UInt<2>[2]
+ T_179848[0] := UInt<2>(1)
+ T_179848[1] := UInt<2>(2)
+ wire T_179849 : UInt<2>[2]
+ T_179849[0] := UInt<2>(1)
+ T_179849[1] := UInt<2>(2)
+ wire T_179850 : UInt<2>[1]
+ T_179850[0] := UInt<2>(2)
+ wire T_179851 : UInt<3>[3]
+ T_179851[0] := UInt<3>(0)
+ T_179851[1] := UInt<3>(1)
+ T_179851[2] := UInt<3>(2)
+ wire T_179852 : UInt<0>[1]
+ T_179852[0] := UInt<0>(0)
+ wire T_179853 : UInt<2>[2]
+ T_179853[0] := UInt<2>(1)
+ T_179853[1] := UInt<2>(2)
+ wire T_179854 : UInt<2>[2]
+ T_179854[0] := UInt<2>(1)
+ T_179854[1] := UInt<2>(2)
+ wire T_179855 : UInt<2>[1]
+ T_179855[0] := UInt<2>(2)
+ wire T_179856 : UInt<3>[3]
+ T_179856[0] := UInt<3>(0)
+ T_179856[1] := UInt<3>(1)
+ T_179856[2] := UInt<3>(2)
+ wire T_179857 : UInt<0>[1]
+ T_179857[0] := UInt<0>(0)
+ wire T_179858 : UInt<2>[2]
+ T_179858[0] := UInt<2>(1)
+ T_179858[1] := UInt<2>(2)
+ wire T_179859 : UInt<2>[2]
+ T_179859[0] := UInt<2>(1)
+ T_179859[1] := UInt<2>(2)
+ wire T_179860 : UInt<2>[1]
+ T_179860[0] := UInt<2>(2)
+ wire T_179861 : UInt<3>[3]
+ T_179861[0] := UInt<3>(0)
+ T_179861[1] := UInt<3>(1)
+ T_179861[2] := UInt<3>(2)
+ wire T_179862 : UInt<0>[1]
+ T_179862[0] := UInt<0>(0)
+ wire T_179863 : UInt<2>[2]
+ T_179863[0] := UInt<2>(1)
+ T_179863[1] := UInt<2>(2)
+ wire T_179864 : UInt<2>[2]
+ T_179864[0] := UInt<2>(1)
+ T_179864[1] := UInt<2>(2)
+ wire T_179865 : UInt<2>[1]
+ T_179865[0] := UInt<2>(2)
+ wire T_179866 : UInt<3>[3]
+ T_179866[0] := UInt<3>(0)
+ T_179866[1] := UInt<3>(1)
+ T_179866[2] := UInt<3>(2)
+ wire T_179867 : UInt<0>[1]
+ T_179867[0] := UInt<0>(0)
+ wire T_179868 : UInt<2>[2]
+ T_179868[0] := UInt<2>(1)
+ T_179868[1] := UInt<2>(2)
+ wire T_179869 : UInt<2>[2]
+ T_179869[0] := UInt<2>(1)
+ T_179869[1] := UInt<2>(2)
+ wire T_179870 : UInt<2>[1]
+ T_179870[0] := UInt<2>(2)
+ wire T_179871 : UInt<3>[3]
+ T_179871[0] := UInt<3>(0)
+ T_179871[1] := UInt<3>(1)
+ T_179871[2] := UInt<3>(2)
+ wire T_179872 : UInt<0>[1]
+ T_179872[0] := UInt<0>(0)
+ wire T_179873 : UInt<2>[2]
+ T_179873[0] := UInt<2>(1)
+ T_179873[1] := UInt<2>(2)
+ wire T_179874 : UInt<2>[2]
+ T_179874[0] := UInt<2>(1)
+ T_179874[1] := UInt<2>(2)
+ wire T_179875 : UInt<2>[1]
+ T_179875[0] := UInt<2>(2)
+ wire T_179876 : UInt<3>[3]
+ T_179876[0] := UInt<3>(0)
+ T_179876[1] := UInt<3>(1)
+ T_179876[2] := UInt<3>(2)
+ wire T_179877 : UInt<0>[1]
+ T_179877[0] := UInt<0>(0)
+ wire T_179878 : UInt<2>[2]
+ T_179878[0] := UInt<2>(1)
+ T_179878[1] := UInt<2>(2)
+ wire T_179879 : UInt<2>[2]
+ T_179879[0] := UInt<2>(1)
+ T_179879[1] := UInt<2>(2)
+ wire T_179880 : UInt<2>[1]
+ T_179880[0] := UInt<2>(2)
+ wire T_179881 : UInt<3>[3]
+ T_179881[0] := UInt<3>(0)
+ T_179881[1] := UInt<3>(1)
+ T_179881[2] := UInt<3>(2)
+ wire T_179882 : UInt<0>[1]
+ T_179882[0] := UInt<0>(0)
+ wire T_179883 : UInt<2>[2]
+ T_179883[0] := UInt<2>(1)
+ T_179883[1] := UInt<2>(2)
+ wire T_179884 : UInt<2>[2]
+ T_179884[0] := UInt<2>(1)
+ T_179884[1] := UInt<2>(2)
+ wire T_179885 : UInt<2>[1]
+ T_179885[0] := UInt<2>(2)
+ wire T_179886 : UInt<3>[3]
+ T_179886[0] := UInt<3>(0)
+ T_179886[1] := UInt<3>(1)
+ T_179886[2] := UInt<3>(2)
+ wire T_179887 : UInt<0>[1]
+ T_179887[0] := UInt<0>(0)
+ wire T_179888 : UInt<2>[2]
+ T_179888[0] := UInt<2>(1)
+ T_179888[1] := UInt<2>(2)
+ wire T_179889 : UInt<2>[2]
+ T_179889[0] := UInt<2>(1)
+ T_179889[1] := UInt<2>(2)
+ wire T_179890 : UInt<2>[1]
+ T_179890[0] := UInt<2>(2)
+ wire T_179891 : UInt<3>[3]
+ T_179891[0] := UInt<3>(0)
+ T_179891[1] := UInt<3>(1)
+ T_179891[2] := UInt<3>(2)
+ wire T_179892 : UInt<0>[1]
+ T_179892[0] := UInt<0>(0)
+ wire T_179893 : UInt<2>[2]
+ T_179893[0] := UInt<2>(1)
+ T_179893[1] := UInt<2>(2)
+ wire T_179894 : UInt<2>[2]
+ T_179894[0] := UInt<2>(1)
+ T_179894[1] := UInt<2>(2)
+ wire T_179895 : UInt<2>[1]
+ T_179895[0] := UInt<2>(2)
+ tl.acquire.ready := UInt<1>(0)
+ tl.probe.valid := UInt<1>(0)
+ tl.release.ready := UInt<1>(0)
+ tl.finish.ready := UInt<1>(1)
+ mem__.resp.ready := UInt<1>(0)
+ wire T_179896 : UInt<3>[3]
+ T_179896[0] := UInt<3>(0)
+ T_179896[1] := UInt<3>(1)
+ T_179896[2] := UInt<3>(2)
+ wire T_179897 : UInt<0>[1]
+ T_179897[0] := UInt<0>(0)
+ wire T_179898 : UInt<2>[2]
+ T_179898[0] := UInt<2>(1)
+ T_179898[1] := UInt<2>(2)
+ wire T_179899 : UInt<2>[2]
+ T_179899[0] := UInt<2>(1)
+ T_179899[1] := UInt<2>(2)
+ wire T_179900 : UInt<2>[1]
+ T_179900[0] := UInt<2>(2)
+ inst gnt_arb of Arbiter
+ tl.grant <> gnt_arb.out
+ wire T_179901 : UInt<3>[3]
+ T_179901[0] := UInt<3>(2)
+ T_179901[1] := UInt<3>(3)
+ T_179901[2] := UInt<3>(4)
+ node T_179902 = eq(T_179901[0], tl.acquire.bits.a_type)
+ node T_179903 = eq(T_179901[1], tl.acquire.bits.a_type)
+ node T_179904 = eq(T_179901[2], tl.acquire.bits.a_type)
+ node T_179905 = or(UInt<1>(0), T_179902)
+ node T_179906 = or(T_179905, T_179903)
+ node T_179907 = or(T_179906, T_179904)
+ node acq_has_data = and(tl.acquire.bits.is_builtin_type, T_179907)
+ node T_179908 = eq(T_179891[0], tl.release.bits.r_type)
+ node T_179909 = eq(T_179891[1], tl.release.bits.r_type)
+ node T_179910 = eq(T_179891[2], tl.release.bits.r_type)
+ node T_179911 = or(UInt<1>(0), T_179908)
+ node T_179912 = or(T_179911, T_179909)
+ node rel_has_data = or(T_179912, T_179910)
+ reg active_out : UInt<1>
+ onreset active_out := UInt<1>(0)
+ reg cmd_sent_out : UInt<1>
+ onreset cmd_sent_out := UInt<1>(0)
+ reg tag_out : UInt<5>
+ reg addr_out : UInt<26>
+ reg has_data : UInt<1>
+ onreset has_data := UInt<1>(0)
+ reg data_from_rel : UInt<1>
+ onreset data_from_rel := UInt<1>(0)
+ node T_179913 = and(tl.acquire.ready, tl.acquire.valid)
+ node T_179914 = and(T_179913, acq_has_data)
+ node T_179915 = and(tl.release.ready, tl.release.valid)
+ node T_179916 = and(T_179915, rel_has_data)
+ node T_179917 = or(T_179914, T_179916)
+ reg tl_cnt_out : UInt<2>
+ onreset tl_cnt_out := UInt<2>(0)
+ when T_179917 :
+ node T_179918 = eq(tl_cnt_out, UInt<2>(3))
+ node T_179919 = and(UInt<1>(0), T_179918)
+ node T_179920 = addw(tl_cnt_out, UInt<1>(1))
+ wire T_179921 : UInt<2>
+ T_179921 := T_179920
+ when T_179919 : T_179921 := UInt<1>(0)
+ tl_cnt_out := T_179921
+ node tl_wrap_out = and(T_179917, T_179918)
+ reg tl_done_out : UInt<1>
+ onreset tl_done_out := UInt<1>(0)
+ reg make_grant_ack : UInt<1>
+ onreset make_grant_ack := UInt<1>(0)
+ gnt_arb.in[1].valid := UInt<1>(0)
+ node T_179922 = bits(tag_out, 3, 3)
+ wire T_179923 : UInt<3>
+ T_179923 := UInt<3>(3)
+ when data_from_rel : T_179923 := UInt<3>(0)
+ node T_179924 = dshr(tag_out, UInt<1>(1))
+ wire T_179925 : UInt<3>[3]
+ T_179925[0] := UInt<3>(0)
+ T_179925[1] := UInt<3>(1)
+ T_179925[2] := UInt<3>(2)
+ wire T_179926 : UInt<0>[1]
+ T_179926[0] := UInt<0>(0)
+ wire T_179927 : UInt<2>[2]
+ T_179927[0] := UInt<2>(1)
+ T_179927[1] := UInt<2>(2)
+ wire T_179928 : UInt<2>[2]
+ T_179928[0] := UInt<2>(1)
+ T_179928[1] := UInt<2>(2)
+ wire T_179929 : UInt<2>[1]
+ T_179929[0] := UInt<2>(2)
+ wire T_179930 : UInt<3>[3]
+ T_179930[0] := UInt<3>(0)
+ T_179930[1] := UInt<3>(1)
+ T_179930[2] := UInt<3>(2)
+ wire T_179931 : UInt<0>[1]
+ T_179931[0] := UInt<0>(0)
+ wire T_179932 : UInt<2>[2]
+ T_179932[0] := UInt<2>(1)
+ T_179932[1] := UInt<2>(2)
+ wire T_179933 : UInt<2>[2]
+ T_179933[0] := UInt<2>(1)
+ T_179933[1] := UInt<2>(2)
+ wire T_179934 : UInt<2>[1]
+ T_179934[0] := UInt<2>(2)
+ wire T_179935 : {addr_beat : UInt<2>, data : UInt<128>, client_xact_id : UInt<2>, manager_xact_id : UInt<1>, is_builtin_type : UInt<1>, g_type : UInt<4>, client_id : UInt<1>}
+ T_179935.client_id := T_179922
+ T_179935.is_builtin_type := UInt<1>(1)
+ T_179935.g_type := T_179923
+ T_179935.client_xact_id := T_179924
+ T_179935.manager_xact_id := UInt<1>(0)
+ T_179935.addr_beat := UInt<1>(0)
+ T_179935.data := UInt<1>(0)
+ gnt_arb.in[1].bits := T_179935
+ mem__.req_cmd.valid := UInt<1>(0)
+ mem__.req_data.valid := UInt<1>(0)
+ mem__.req_cmd.bits.rw := has_data
+ mem__.req_cmd.bits.tag := tag_out
+ mem__.req_cmd.bits.addr := addr_out
+ wire T_179936 : UInt<128>
+ T_179936 := tl.acquire.bits.data
+ when data_from_rel : T_179936 := tl.release.bits.data
+ mem__.req_data.bits.data := T_179936
+
+ node T_179937 = eq(active_out, UInt<1>(0))
+ when T_179937 :
+ tl.release.ready := mem__.req_data.ready
+ node T_179938 = eq(tl.release.valid, UInt<1>(0))
+ node T_179939 = and(mem__.req_data.ready, T_179938)
+ tl.acquire.ready := T_179939
+ node T_179940 = and(tl.release.valid, rel_has_data)
+ node T_179941 = and(tl.acquire.valid, acq_has_data)
+ node T_179942 = or(T_179940, T_179941)
+ mem__.req_data.valid := T_179942
+
+
+ node T_179943 = or(tl.release.valid, tl.acquire.valid)
+ node T_179944 = and(mem__.req_data.ready, T_179943)
+ when T_179944 :
+ node T_179945 = eq(mem__.req_cmd.ready, UInt<1>(0))
+ node T_179946 = or(T_179945, mem__.req_data.valid)
+ active_out := T_179946
+ mem__.req_cmd.valid := UInt<1>(1)
+ cmd_sent_out := mem__.req_cmd.ready
+ tl_done_out := tl_wrap_out
+ when tl.release.valid :
+ data_from_rel := UInt<1>(1)
+ node T_179949 = eq(UInt<1>(0), UInt<1>(0))
+ make_grant_ack := T_179949
+ mem__.req_data.bits.data := tl.release.bits.data
+ node T_179950 = cat(tl.release.bits.client_xact_id, tl.release.bits.voluntary)
+ node T_179951 = cat(tl.release.bits.client_id, T_179950)
+ mem__.req_cmd.bits.tag := T_179951
+ mem__.req_cmd.bits.addr := tl.release.bits.addr_block
+ mem__.req_cmd.bits.rw := rel_has_data
+ tag_out := T_179951
+ addr_out := tl.release.bits.addr_block
+ has_data := rel_has_data
+ else :
+ when tl.acquire.valid :
+ data_from_rel := UInt<1>(0)
+ make_grant_ack := acq_has_data
+ mem__.req_data.bits.data := tl.acquire.bits.data
+ mem__.req_cmd.bits.rw := acq_has_data
+ node T_179947 = cat(tl.acquire.bits.client_xact_id, tl.acquire.bits.is_builtin_type)
+ node T_179948 = cat(tl.acquire.bits.client_id, T_179947)
+ mem__.req_cmd.bits.tag := T_179948
+ mem__.req_cmd.bits.addr := tl.acquire.bits.addr_block
+ mem__.req_cmd.bits.rw := acq_has_data
+ tag_out := T_179948
+ addr_out := tl.acquire.bits.addr_block
+ has_data := acq_has_data
+ when active_out :
+ node T_179952 = eq(cmd_sent_out, UInt<1>(0))
+ mem__.req_cmd.valid := T_179952
+ node T_179953 = and(mem__.req_cmd.ready, mem__.req_cmd.valid)
+ node T_179954 = or(cmd_sent_out, T_179953)
+ cmd_sent_out := T_179954
+
+
+ node T_179955 = eq(tl_done_out, UInt<1>(0))
+ node T_179956 = and(has_data, T_179955)
+ when T_179956 : when data_from_rel :
+ tl.release.ready := mem__.req_data.ready
+ mem__.req_data.valid := tl.release.valid
+ else :
+
+ tl.acquire.ready := mem__.req_data.ready
+ mem__.req_data.valid := tl.acquire.valid
+ when tl_wrap_out : tl_done_out := UInt<1>(1)
+
+ node T_179957 = and(tl_done_out, make_grant_ack)
+ when T_179957 :
+ gnt_arb.in[1].valid := UInt<1>(1)
+ when gnt_arb.in[1].ready : make_grant_ack := UInt<1>(0)
+
+
+ node T_179958 = eq(has_data, UInt<1>(0))
+ node T_179959 = or(T_179958, tl_done_out)
+ node T_179960 = and(cmd_sent_out, T_179959)
+ node T_179961 = eq(make_grant_ack, UInt<1>(0))
+ node T_179962 = and(T_179960, T_179961)
+ when T_179962 : active_out := UInt<1>(0)
+ reg active_in : UInt<1>
+ onreset active_in := UInt<1>(0)
+ node T_179963 = and(tl.grant.ready, tl.grant.valid)
+ wire T_179964 : UInt<3>[1]
+ T_179964[0] := UInt<3>(5)
+ node T_179965 = eq(T_179964[0], tl.grant.bits.g_type)
+ node T_179966 = or(UInt<1>(0), T_179965)
+ node T_179967 = eq(T_179862[0], tl.grant.bits.g_type)
+ node T_179968 = or(UInt<1>(0), T_179967)
+ wire T_179969 : UInt<1>
+ T_179969 := T_179968
+ when tl.grant.bits.is_builtin_type : T_179969 := T_179966
+ node T_179970 = and(UInt<1>(1), T_179969)
+ node T_179971 = and(T_179963, T_179970)
+ reg tl_cnt_in : UInt<2>
+ onreset tl_cnt_in := UInt<2>(0)
+ when T_179971 :
+ node T_179972 = eq(tl_cnt_in, UInt<2>(3))
+ node T_179973 = and(UInt<1>(0), T_179972)
+ node T_179974 = addw(tl_cnt_in, UInt<1>(1))
+ wire T_179975 : UInt<2>
+ T_179975 := T_179974
+ when T_179973 : T_179975 := UInt<1>(0)
+ tl_cnt_in := T_179975
+ node tl_wrap_in = and(T_179971, T_179972)
+ reg tag_in : UInt<5>
+ gnt_arb.in[0].valid := mem__.resp.valid
+ mem__.resp.ready := gnt_arb.in[0].ready
+ node T_179976 = bits(mem__.resp.bits.tag, 3, 3)
+ node T_179977 = bit(mem__.resp.bits.tag, 0)
+ node T_179978 = bit(mem__.resp.bits.tag, 0)
+ wire T_179979 : UInt<1>
+ T_179979 := UInt<1>(0)
+ when T_179978 : T_179979 := UInt<3>(5)
+ node T_179980 = dshr(mem__.resp.bits.tag, UInt<1>(1))
+ wire T_179981 : UInt<3>[3]
+ T_179981[0] := UInt<3>(0)
+ T_179981[1] := UInt<3>(1)
+ T_179981[2] := UInt<3>(2)
+ wire T_179982 : UInt<0>[1]
+ T_179982[0] := UInt<0>(0)
+ wire T_179983 : UInt<2>[2]
+ T_179983[0] := UInt<2>(1)
+ T_179983[1] := UInt<2>(2)
+ wire T_179984 : UInt<2>[2]
+ T_179984[0] := UInt<2>(1)
+ T_179984[1] := UInt<2>(2)
+ wire T_179985 : UInt<2>[1]
+ T_179985[0] := UInt<2>(2)
+ wire T_179986 : UInt<3>[3]
+ T_179986[0] := UInt<3>(0)
+ T_179986[1] := UInt<3>(1)
+ T_179986[2] := UInt<3>(2)
+ wire T_179987 : UInt<0>[1]
+ T_179987[0] := UInt<0>(0)
+ wire T_179988 : UInt<2>[2]
+ T_179988[0] := UInt<2>(1)
+ T_179988[1] := UInt<2>(2)
+ wire T_179989 : UInt<2>[2]
+ T_179989[0] := UInt<2>(1)
+ T_179989[1] := UInt<2>(2)
+ wire T_179990 : UInt<2>[1]
+ T_179990[0] := UInt<2>(2)
+ wire T_179991 : {addr_beat : UInt<2>, data : UInt<128>, client_xact_id : UInt<2>, manager_xact_id : UInt<1>, is_builtin_type : UInt<1>, g_type : UInt<4>, client_id : UInt<1>}
+ T_179991.client_id := T_179976
+ T_179991.is_builtin_type := T_179977
+ T_179991.g_type := T_179979
+ T_179991.client_xact_id := T_179980
+ T_179991.manager_xact_id := UInt<1>(0)
+ T_179991.addr_beat := tl_cnt_in
+ T_179991.data := mem__.resp.bits.data
+ gnt_arb.in[0].bits := T_179991
+ module HellaFlowQueue :
+ input enq : {flip ready : UInt<1>, valid : UInt<1>, bits : {data : UInt<128>}}
+ output deq : {flip ready : UInt<1>, valid : UInt<1>, bits : {data : UInt<128>}}
+ output count : UInt<5>
+
+ wire do_flow : UInt<1>
+ node T_179992 = and(enq.ready, enq.valid)
+ node T_179993 = eq(do_flow, UInt<1>(0))
+ node do_enq = and(T_179992, T_179993)
+ node T_179994 = and(deq.ready, deq.valid)
+ node T_179995 = eq(do_flow, UInt<1>(0))
+ node do_deq = and(T_179994, T_179995)
+ reg maybe_full : UInt<1>
+ onreset maybe_full := UInt<1>(0)
+ reg enq_ptr : UInt<4>
+ onreset enq_ptr := UInt<4>(0)
+ when do_enq :
+ node T_179996 = eq(enq_ptr, UInt<4>(15))
+ node T_179997 = and(UInt<1>(0), T_179996)
+ node T_179998 = addw(enq_ptr, UInt<1>(1))
+ wire T_179999 : UInt<4>
+ T_179999 := T_179998
+ when T_179997 : T_179999 := UInt<1>(0)
+ enq_ptr := T_179999
+ node T_180000 = and(do_enq, T_179996)
+ reg deq_ptr : UInt<4>
+ onreset deq_ptr := UInt<4>(0)
+ when do_deq :
+ node T_180001 = eq(deq_ptr, UInt<4>(15))
+ node T_180002 = and(UInt<1>(0), T_180001)
+ node T_180003 = addw(deq_ptr, UInt<1>(1))
+ wire T_180004 : UInt<4>
+ T_180004 := T_180003
+ when T_180002 : T_180004 := UInt<1>(0)
+ deq_ptr := T_180004
+ node deq_done = and(do_deq, T_180001)
+
+ node T_180005 = neq(do_enq, do_deq)
+ when T_180005 : maybe_full := do_enq
+ node ptr_match = eq(enq_ptr, deq_ptr)
+ node T_180006 = eq(maybe_full, UInt<1>(0))
+ node empty = and(ptr_match, T_180006)
+ node full = and(ptr_match, maybe_full)
+ node T_180007 = subw(enq_ptr, deq_ptr)
+ node T_180008 = geq(T_180007, UInt<2>(2))
+ node atLeastTwo = or(full, T_180008)
+ node T_180009 = and(empty, deq.ready)
+ do_flow := T_180009
+ cmem T_180010 : {data : UInt<128>}[16]
+ when do_enq :
+ accessor T_180011 = T_180010[enq_ptr]
+ T_180011 := enq.bits
+ node T_180012 = eq(deq.valid, UInt<1>(0))
+ node T_180013 = eq(empty, UInt<1>(0))
+ node T_180014 = and(T_180012, T_180013)
+ node T_180015 = or(atLeastTwo, T_180014)
+ node ren = and(deq.ready, T_180015)
+ node T_180016 = addw(deq_ptr, UInt<1>(1))
+ wire T_180017 : UInt<4>
+ T_180017 := T_180016
+ when deq_done : T_180017 := UInt<1>(0)
+ wire raddr : UInt<4>
+ raddr := deq_ptr
+ when deq.valid : raddr := T_180017
+ reg ram_out_valid : UInt<1>
+ ram_out_valid := ren
+ wire T_180018 : UInt<1>
+ T_180018 := ram_out_valid
+ when empty : T_180018 := enq.valid
+ deq.valid := T_180018
+ node T_180019 = eq(full, UInt<1>(0))
+ enq.ready := T_180019
+ reg T_180020 : UInt<4>
+ when ren : T_180020 := raddr
+ accessor T_180021 = T_180010[T_180020]
+ wire T_180022 : {data : UInt<128>}
+ T_180022 := T_180021
+ when empty : T_180022 := enq.bits
+ deq.bits := T_180022
+ module Queue_122517 :
+ input enq : {flip ready : UInt<1>, valid : UInt<1>, bits : {data : UInt<128>}}
+ output deq : {flip ready : UInt<1>, valid : UInt<1>, bits : {data : UInt<128>}}
+ output count : UInt<1>
+
+ cmem ram : {data : UInt<128>}[1]
+ reg maybe_full : UInt<1>
+ onreset maybe_full := UInt<1>(0)
+ node ptr_match = eq(UInt<1>(0), UInt<1>(0))
+ node T_180023 = eq(maybe_full, UInt<1>(0))
+ node empty = and(ptr_match, T_180023)
+ node full = and(ptr_match, maybe_full)
+ node maybe_flow = and(UInt<1>(0), empty)
+ node do_flow = and(maybe_flow, deq.ready)
+ node T_180024 = and(enq.ready, enq.valid)
+ node T_180025 = eq(do_flow, UInt<1>(0))
+ node do_enq = and(T_180024, T_180025)
+ node T_180026 = and(deq.ready, deq.valid)
+ node T_180027 = eq(do_flow, UInt<1>(0))
+ node do_deq = and(T_180026, T_180027)
+ when do_enq :
+ accessor T_180028 = ram[UInt<1>(0)]
+ T_180028 := enq.bits
+ when do_deq : skip
+
+ node T_180029 = neq(do_enq, do_deq)
+ when T_180029 : maybe_full := do_enq
+ node T_180030 = eq(empty, UInt<1>(0))
+ node T_180031 = and(UInt<1>(0), enq.valid)
+ node T_180032 = or(T_180030, T_180031)
+ deq.valid := T_180032
+ node T_180033 = eq(full, UInt<1>(0))
+ node T_180034 = and(UInt<1>(1), deq.ready)
+ node T_180035 = or(T_180033, T_180034)
+ enq.ready := T_180035
+ accessor T_180036 = ram[UInt<1>(0)]
+ wire T_180037 : {data : UInt<128>}
+ T_180037 := T_180036
+ when maybe_flow : T_180037 := enq.bits
+ deq.bits := T_180037
+ node ptr_diff = subw(UInt<1>(0), UInt<1>(0))
+ node T_180038 = and(maybe_full, ptr_match)
+ node T_180039 = cat(T_180038, ptr_diff)
+ count := T_180039
+ module HellaQueue :
+ input enq : {flip ready : UInt<1>, valid : UInt<1>, bits : {data : UInt<128>}}
+ output deq : {flip ready : UInt<1>, valid : UInt<1>, bits : {data : UInt<128>}}
+ output count : UInt<5>
+
+ inst fq of HellaFlowQueue
+ enq <> fq.enq
+ inst T_180040 of Queue_122517
+ T_180040.enq.valid := fq.deq.valid
+ T_180040.enq.bits := fq.deq.bits
+ fq.deq.ready := T_180040.enq.ready
+ deq <> T_180040.deq
+ module HellaFlowQueue_122630 :
+ input enq : {flip ready : UInt<1>, valid : UInt<1>, bits : {tag : UInt<5>}}
+ output deq : {flip ready : UInt<1>, valid : UInt<1>, bits : {tag : UInt<5>}}
+ output count : UInt<5>
+
+ wire do_flow : UInt<1>
+ node T_180041 = and(enq.ready, enq.valid)
+ node T_180042 = eq(do_flow, UInt<1>(0))
+ node do_enq = and(T_180041, T_180042)
+ node T_180043 = and(deq.ready, deq.valid)
+ node T_180044 = eq(do_flow, UInt<1>(0))
+ node do_deq = and(T_180043, T_180044)
+ reg maybe_full : UInt<1>
+ onreset maybe_full := UInt<1>(0)
+ reg enq_ptr : UInt<4>
+ onreset enq_ptr := UInt<4>(0)
+ when do_enq :
+ node T_180045 = eq(enq_ptr, UInt<4>(15))
+ node T_180046 = and(UInt<1>(0), T_180045)
+ node T_180047 = addw(enq_ptr, UInt<1>(1))
+ wire T_180048 : UInt<4>
+ T_180048 := T_180047
+ when T_180046 : T_180048 := UInt<1>(0)
+ enq_ptr := T_180048
+ node T_180049 = and(do_enq, T_180045)
+ reg deq_ptr : UInt<4>
+ onreset deq_ptr := UInt<4>(0)
+ when do_deq :
+ node T_180050 = eq(deq_ptr, UInt<4>(15))
+ node T_180051 = and(UInt<1>(0), T_180050)
+ node T_180052 = addw(deq_ptr, UInt<1>(1))
+ wire T_180053 : UInt<4>
+ T_180053 := T_180052
+ when T_180051 : T_180053 := UInt<1>(0)
+ deq_ptr := T_180053
+ node deq_done = and(do_deq, T_180050)
+
+ node T_180054 = neq(do_enq, do_deq)
+ when T_180054 : maybe_full := do_enq
+ node ptr_match = eq(enq_ptr, deq_ptr)
+ node T_180055 = eq(maybe_full, UInt<1>(0))
+ node empty = and(ptr_match, T_180055)
+ node full = and(ptr_match, maybe_full)
+ node T_180056 = subw(enq_ptr, deq_ptr)
+ node T_180057 = geq(T_180056, UInt<2>(2))
+ node atLeastTwo = or(full, T_180057)
+ node T_180058 = and(empty, deq.ready)
+ do_flow := T_180058
+ cmem T_180059 : {tag : UInt<5>}[16]
+ when do_enq :
+ accessor T_180060 = T_180059[enq_ptr]
+ T_180060 := enq.bits
+ node T_180061 = eq(deq.valid, UInt<1>(0))
+ node T_180062 = eq(empty, UInt<1>(0))
+ node T_180063 = and(T_180061, T_180062)
+ node T_180064 = or(atLeastTwo, T_180063)
+ node ren = and(deq.ready, T_180064)
+ node T_180065 = addw(deq_ptr, UInt<1>(1))
+ wire T_180066 : UInt<4>
+ T_180066 := T_180065
+ when deq_done : T_180066 := UInt<1>(0)
+ wire raddr : UInt<4>
+ raddr := deq_ptr
+ when deq.valid : raddr := T_180066
+ reg ram_out_valid : UInt<1>
+ ram_out_valid := ren
+ wire T_180067 : UInt<1>
+ T_180067 := ram_out_valid
+ when empty : T_180067 := enq.valid
+ deq.valid := T_180067
+ node T_180068 = eq(full, UInt<1>(0))
+ enq.ready := T_180068
+ reg T_180069 : UInt<4>
+ when ren : T_180069 := raddr
+ accessor T_180070 = T_180059[T_180069]
+ wire T_180071 : {tag : UInt<5>}
+ T_180071 := T_180070
+ when empty : T_180071 := enq.bits
+ deq.bits := T_180071
+ module Queue_122695 :
+ input enq : {flip ready : UInt<1>, valid : UInt<1>, bits : {tag : UInt<5>}}
+ output deq : {flip ready : UInt<1>, valid : UInt<1>, bits : {tag : UInt<5>}}
+ output count : UInt<1>
+
+ cmem ram : {tag : UInt<5>}[1]
+ reg maybe_full : UInt<1>
+ onreset maybe_full := UInt<1>(0)
+ node ptr_match = eq(UInt<1>(0), UInt<1>(0))
+ node T_180072 = eq(maybe_full, UInt<1>(0))
+ node empty = and(ptr_match, T_180072)
+ node full = and(ptr_match, maybe_full)
+ node maybe_flow = and(UInt<1>(0), empty)
+ node do_flow = and(maybe_flow, deq.ready)
+ node T_180073 = and(enq.ready, enq.valid)
+ node T_180074 = eq(do_flow, UInt<1>(0))
+ node do_enq = and(T_180073, T_180074)
+ node T_180075 = and(deq.ready, deq.valid)
+ node T_180076 = eq(do_flow, UInt<1>(0))
+ node do_deq = and(T_180075, T_180076)
+ when do_enq :
+ accessor T_180077 = ram[UInt<1>(0)]
+ T_180077 := enq.bits
+ when do_deq : skip
+
+ node T_180078 = neq(do_enq, do_deq)
+ when T_180078 : maybe_full := do_enq
+ node T_180079 = eq(empty, UInt<1>(0))
+ node T_180080 = and(UInt<1>(0), enq.valid)
+ node T_180081 = or(T_180079, T_180080)
+ deq.valid := T_180081
+ node T_180082 = eq(full, UInt<1>(0))
+ node T_180083 = and(UInt<1>(1), deq.ready)
+ node T_180084 = or(T_180082, T_180083)
+ enq.ready := T_180084
+ accessor T_180085 = ram[UInt<1>(0)]
+ wire T_180086 : {tag : UInt<5>}
+ T_180086 := T_180085
+ when maybe_flow : T_180086 := enq.bits
+ deq.bits := T_180086
+ node ptr_diff = subw(UInt<1>(0), UInt<1>(0))
+ node T_180087 = and(maybe_full, ptr_match)
+ node T_180088 = cat(T_180087, ptr_diff)
+ count := T_180088
+ module HellaQueue_122696 :
+ input enq : {flip ready : UInt<1>, valid : UInt<1>, bits : {tag : UInt<5>}}
+ output deq : {flip ready : UInt<1>, valid : UInt<1>, bits : {tag : UInt<5>}}
+ output count : UInt<5>
+
+ inst fq of HellaFlowQueue_122630
+ enq <> fq.enq
+ inst T_180089 of Queue_122695
+ T_180089.enq.valid := fq.deq.valid
+ T_180089.enq.bits := fq.deq.bits
+ fq.deq.ready := T_180089.enq.ready
+ deq <> T_180089.deq
+ module MemPipeIOMemIOConverter :
+ input cpu : {req_cmd : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr : UInt<26>, tag : UInt<5>, rw : UInt<1>}}, req_data : {flip ready : UInt<1>, valid : UInt<1>, bits : {data : UInt<128>}}, flip resp : {flip ready : UInt<1>, valid : UInt<1>, bits : {data : UInt<128>, tag : UInt<5>}}}
+ output mem__ : {req_cmd : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr : UInt<26>, tag : UInt<5>, rw : UInt<1>}}, req_data : {flip ready : UInt<1>, valid : UInt<1>, bits : {data : UInt<128>}}, flip resp : {valid : UInt<1>, bits : {data : UInt<128>, tag : UInt<5>}}}
+
+ wire inc : UInt<1>
+ wire dec : UInt<1>
+ reg count : UInt<5>
+ onreset count := UInt<5>(16)
+ node watermark = geq(count, UInt<3>(4))
+
+
+ node T_180090 = eq(dec, UInt<1>(0))
+ node T_180091 = and(inc, T_180090)
+ when T_180091 :
+ node T_180092 = addw(count, UInt<1>(1))
+ count := T_180092
+
+
+ node T_180093 = eq(inc, UInt<1>(0))
+ node T_180094 = and(T_180093, dec)
+ when T_180094 :
+ node T_180095 = subw(count, UInt<3>(4))
+ count := T_180095
+
+ node T_180096 = and(inc, dec)
+ when T_180096 :
+ node T_180097 = subw(count, UInt<2>(3))
+ count := T_180097
+ node cmdq_mask = or(cpu.req_cmd.bits.rw, watermark)
+ node T_180098 = and(cpu.req_cmd.valid, cmdq_mask)
+ mem__.req_cmd.valid := T_180098
+ node T_180099 = and(mem__.req_cmd.ready, cmdq_mask)
+ cpu.req_cmd.ready := T_180099
+ mem__.req_cmd.bits := cpu.req_cmd.bits
+ mem__.req_data <> cpu.req_data
+ inst resp_data_q of HellaQueue
+ resp_data_q.enq.valid := mem__.resp.valid
+ resp_data_q.enq.bits.data := mem__.resp.bits.data
+ inst resp_tag_q of HellaQueue_122696
+ resp_tag_q.enq.valid := mem__.resp.valid
+ resp_tag_q.enq.bits.tag := mem__.resp.bits.tag
+ node T_180100 = and(resp_data_q.deq.valid, resp_tag_q.deq.valid)
+ cpu.resp.valid := T_180100
+ cpu.resp.bits.data := resp_data_q.deq.bits.data
+ cpu.resp.bits.tag := resp_tag_q.deq.bits.tag
+ resp_data_q.deq.ready := cpu.resp.ready
+ resp_tag_q.deq.ready := cpu.resp.ready
+ node T_180101 = and(resp_data_q.deq.ready, resp_data_q.deq.valid)
+ node T_180102 = and(resp_tag_q.deq.ready, resp_tag_q.deq.valid)
+ node T_180103 = and(T_180101, T_180102)
+ inc := T_180103
+ node T_180104 = and(mem__.req_cmd.ready, mem__.req_cmd.valid)
+ node T_180105 = eq(mem__.req_cmd.bits.rw, UInt<1>(0))
+ node T_180106 = and(T_180104, T_180105)
+ dec := T_180106
+ module Queue_122803 :
+ input enq : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr : UInt<26>, tag : UInt<5>, rw : UInt<1>}}
+ output deq : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr : UInt<26>, tag : UInt<5>, rw : UInt<1>}}
+ output count : UInt<2>
+
+ cmem ram : {addr : UInt<26>, tag : UInt<5>, rw : UInt<1>}[2]
+ reg T_180107 : UInt<1>
+ onreset T_180107 := UInt<1>(0)
+ reg T_180108 : UInt<1>
+ onreset T_180108 := UInt<1>(0)
+ reg maybe_full : UInt<1>
+ onreset maybe_full := UInt<1>(0)
+ node ptr_match = eq(T_180107, T_180108)
+ node T_180109 = eq(maybe_full, UInt<1>(0))
+ node empty = and(ptr_match, T_180109)
+ node full = and(ptr_match, maybe_full)
+ node maybe_flow = and(UInt<1>(0), empty)
+ node do_flow = and(maybe_flow, deq.ready)
+ node T_180110 = and(enq.ready, enq.valid)
+ node T_180111 = eq(do_flow, UInt<1>(0))
+ node do_enq = and(T_180110, T_180111)
+ node T_180112 = and(deq.ready, deq.valid)
+ node T_180113 = eq(do_flow, UInt<1>(0))
+ node do_deq = and(T_180112, T_180113)
+ when do_enq :
+ accessor T_180114 = ram[T_180107]
+ T_180114 := enq.bits
+ node T_180115 = eq(T_180107, UInt<1>(1))
+ node T_180116 = and(UInt<1>(0), T_180115)
+ node T_180117 = addw(T_180107, UInt<1>(1))
+ wire T_180118 : UInt<1>
+ T_180118 := T_180117
+ when T_180116 : T_180118 := UInt<1>(0)
+ T_180107 := T_180118
+ when do_deq :
+ node T_180119 = eq(T_180108, UInt<1>(1))
+ node T_180120 = and(UInt<1>(0), T_180119)
+ node T_180121 = addw(T_180108, UInt<1>(1))
+ wire T_180122 : UInt<1>
+ T_180122 := T_180121
+ when T_180120 : T_180122 := UInt<1>(0)
+ T_180108 := T_180122
+
+ node T_180123 = neq(do_enq, do_deq)
+ when T_180123 : maybe_full := do_enq
+ node T_180124 = eq(empty, UInt<1>(0))
+ node T_180125 = and(UInt<1>(0), enq.valid)
+ node T_180126 = or(T_180124, T_180125)
+ deq.valid := T_180126
+ node T_180127 = eq(full, UInt<1>(0))
+ node T_180128 = and(UInt<1>(1), deq.ready)
+ node T_180129 = or(T_180127, T_180128)
+ enq.ready := T_180129
+ accessor T_180130 = ram[T_180108]
+ wire T_180131 : {addr : UInt<26>, tag : UInt<5>, rw : UInt<1>}
+ T_180131 := T_180130
+ when maybe_flow : T_180131 := enq.bits
+ deq.bits := T_180131
+ node ptr_diff = subw(T_180107, T_180108)
+ node T_180132 = and(maybe_full, ptr_match)
+ node T_180133 = cat(T_180132, ptr_diff)
+ count := T_180133
+ module Queue_122884 :
+ input enq : {flip ready : UInt<1>, valid : UInt<1>, bits : {data : UInt<128>}}
+ output deq : {flip ready : UInt<1>, valid : UInt<1>, bits : {data : UInt<128>}}
+ output count : UInt<3>
+
+ cmem ram : {data : UInt<128>}[4]
+ reg T_180134 : UInt<2>
+ onreset T_180134 := UInt<2>(0)
+ reg T_180135 : UInt<2>
+ onreset T_180135 := UInt<2>(0)
+ reg maybe_full : UInt<1>
+ onreset maybe_full := UInt<1>(0)
+ node ptr_match = eq(T_180134, T_180135)
+ node T_180136 = eq(maybe_full, UInt<1>(0))
+ node empty = and(ptr_match, T_180136)
+ node full = and(ptr_match, maybe_full)
+ node maybe_flow = and(UInt<1>(0), empty)
+ node do_flow = and(maybe_flow, deq.ready)
+ node T_180137 = and(enq.ready, enq.valid)
+ node T_180138 = eq(do_flow, UInt<1>(0))
+ node do_enq = and(T_180137, T_180138)
+ node T_180139 = and(deq.ready, deq.valid)
+ node T_180140 = eq(do_flow, UInt<1>(0))
+ node do_deq = and(T_180139, T_180140)
+ when do_enq :
+ accessor T_180141 = ram[T_180134]
+ T_180141 := enq.bits
+ node T_180142 = eq(T_180134, UInt<2>(3))
+ node T_180143 = and(UInt<1>(0), T_180142)
+ node T_180144 = addw(T_180134, UInt<1>(1))
+ wire T_180145 : UInt<2>
+ T_180145 := T_180144
+ when T_180143 : T_180145 := UInt<1>(0)
+ T_180134 := T_180145
+ when do_deq :
+ node T_180146 = eq(T_180135, UInt<2>(3))
+ node T_180147 = and(UInt<1>(0), T_180146)
+ node T_180148 = addw(T_180135, UInt<1>(1))
+ wire T_180149 : UInt<2>
+ T_180149 := T_180148
+ when T_180147 : T_180149 := UInt<1>(0)
+ T_180135 := T_180149
+
+ node T_180150 = neq(do_enq, do_deq)
+ when T_180150 : maybe_full := do_enq
+ node T_180151 = eq(empty, UInt<1>(0))
+ node T_180152 = and(UInt<1>(0), enq.valid)
+ node T_180153 = or(T_180151, T_180152)
+ deq.valid := T_180153
+ node T_180154 = eq(full, UInt<1>(0))
+ node T_180155 = and(UInt<1>(1), deq.ready)
+ node T_180156 = or(T_180154, T_180155)
+ enq.ready := T_180156
+ accessor T_180157 = ram[T_180135]
+ wire T_180158 : {data : UInt<128>}
+ T_180158 := T_180157
+ when maybe_flow : T_180158 := enq.bits
+ deq.bits := T_180158
+ node ptr_diff = subw(T_180134, T_180135)
+ node T_180159 = and(maybe_full, ptr_match)
+ node T_180160 = cat(T_180159, ptr_diff)
+ count := T_180160
+ module MemPipeIOTileLinkIOConverter :
+ output tl : {flip acquire : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_block : UInt<26>, client_xact_id : UInt<2>, addr_beat : UInt<2>, data : UInt<128>, is_builtin_type : UInt<1>, a_type : UInt<3>, union : UInt<17>, client_id : UInt<1>}}, grant : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_beat : UInt<2>, data : UInt<128>, client_xact_id : UInt<2>, manager_xact_id : UInt<1>, is_builtin_type : UInt<1>, g_type : UInt<4>, client_id : UInt<1>}}, flip finish : {flip ready : UInt<1>, valid : UInt<1>, bits : {manager_xact_id : UInt<1>}}, probe : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_block : UInt<26>, p_type : UInt<2>, client_id : UInt<1>}}, flip release : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_block : UInt<26>, client_xact_id : UInt<2>, addr_beat : UInt<2>, data : UInt<128>, r_type : UInt<3>, voluntary : UInt<1>, client_id : UInt<1>}}}
+ output mem__ : {req_cmd : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr : UInt<26>, tag : UInt<5>, rw : UInt<1>}}, req_data : {flip ready : UInt<1>, valid : UInt<1>, bits : {data : UInt<128>}}, flip resp : {valid : UInt<1>, bits : {data : UInt<128>, tag : UInt<5>}}}
+
+ wire T_180161 : UInt<3>[3]
+ T_180161[0] := UInt<3>(0)
+ T_180161[1] := UInt<3>(1)
+ T_180161[2] := UInt<3>(2)
+ wire T_180162 : UInt<0>[1]
+ T_180162[0] := UInt<0>(0)
+ wire T_180163 : UInt<2>[2]
+ T_180163[0] := UInt<2>(1)
+ T_180163[1] := UInt<2>(2)
+ wire T_180164 : UInt<2>[2]
+ T_180164[0] := UInt<2>(1)
+ T_180164[1] := UInt<2>(2)
+ wire T_180165 : UInt<2>[1]
+ T_180165[0] := UInt<2>(2)
+ wire T_180166 : UInt<3>[3]
+ T_180166[0] := UInt<3>(0)
+ T_180166[1] := UInt<3>(1)
+ T_180166[2] := UInt<3>(2)
+ wire T_180167 : UInt<0>[1]
+ T_180167[0] := UInt<0>(0)
+ wire T_180168 : UInt<2>[2]
+ T_180168[0] := UInt<2>(1)
+ T_180168[1] := UInt<2>(2)
+ wire T_180169 : UInt<2>[2]
+ T_180169[0] := UInt<2>(1)
+ T_180169[1] := UInt<2>(2)
+ wire T_180170 : UInt<2>[1]
+ T_180170[0] := UInt<2>(2)
+ wire T_180171 : UInt<3>[3]
+ T_180171[0] := UInt<3>(0)
+ T_180171[1] := UInt<3>(1)
+ T_180171[2] := UInt<3>(2)
+ wire T_180172 : UInt<0>[1]
+ T_180172[0] := UInt<0>(0)
+ wire T_180173 : UInt<2>[2]
+ T_180173[0] := UInt<2>(1)
+ T_180173[1] := UInt<2>(2)
+ wire T_180174 : UInt<2>[2]
+ T_180174[0] := UInt<2>(1)
+ T_180174[1] := UInt<2>(2)
+ wire T_180175 : UInt<2>[1]
+ T_180175[0] := UInt<2>(2)
+ wire T_180176 : UInt<3>[3]
+ T_180176[0] := UInt<3>(0)
+ T_180176[1] := UInt<3>(1)
+ T_180176[2] := UInt<3>(2)
+ wire T_180177 : UInt<0>[1]
+ T_180177[0] := UInt<0>(0)
+ wire T_180178 : UInt<2>[2]
+ T_180178[0] := UInt<2>(1)
+ T_180178[1] := UInt<2>(2)
+ wire T_180179 : UInt<2>[2]
+ T_180179[0] := UInt<2>(1)
+ T_180179[1] := UInt<2>(2)
+ wire T_180180 : UInt<2>[1]
+ T_180180[0] := UInt<2>(2)
+ wire T_180181 : UInt<3>[3]
+ T_180181[0] := UInt<3>(0)
+ T_180181[1] := UInt<3>(1)
+ T_180181[2] := UInt<3>(2)
+ wire T_180182 : UInt<0>[1]
+ T_180182[0] := UInt<0>(0)
+ wire T_180183 : UInt<2>[2]
+ T_180183[0] := UInt<2>(1)
+ T_180183[1] := UInt<2>(2)
+ wire T_180184 : UInt<2>[2]
+ T_180184[0] := UInt<2>(1)
+ T_180184[1] := UInt<2>(2)
+ wire T_180185 : UInt<2>[1]
+ T_180185[0] := UInt<2>(2)
+ wire T_180186 : UInt<3>[3]
+ T_180186[0] := UInt<3>(0)
+ T_180186[1] := UInt<3>(1)
+ T_180186[2] := UInt<3>(2)
+ wire T_180187 : UInt<0>[1]
+ T_180187[0] := UInt<0>(0)
+ wire T_180188 : UInt<2>[2]
+ T_180188[0] := UInt<2>(1)
+ T_180188[1] := UInt<2>(2)
+ wire T_180189 : UInt<2>[2]
+ T_180189[0] := UInt<2>(1)
+ T_180189[1] := UInt<2>(2)
+ wire T_180190 : UInt<2>[1]
+ T_180190[0] := UInt<2>(2)
+ wire T_180191 : UInt<3>[3]
+ T_180191[0] := UInt<3>(0)
+ T_180191[1] := UInt<3>(1)
+ T_180191[2] := UInt<3>(2)
+ wire T_180192 : UInt<0>[1]
+ T_180192[0] := UInt<0>(0)
+ wire T_180193 : UInt<2>[2]
+ T_180193[0] := UInt<2>(1)
+ T_180193[1] := UInt<2>(2)
+ wire T_180194 : UInt<2>[2]
+ T_180194[0] := UInt<2>(1)
+ T_180194[1] := UInt<2>(2)
+ wire T_180195 : UInt<2>[1]
+ T_180195[0] := UInt<2>(2)
+ wire T_180196 : UInt<3>[3]
+ T_180196[0] := UInt<3>(0)
+ T_180196[1] := UInt<3>(1)
+ T_180196[2] := UInt<3>(2)
+ wire T_180197 : UInt<0>[1]
+ T_180197[0] := UInt<0>(0)
+ wire T_180198 : UInt<2>[2]
+ T_180198[0] := UInt<2>(1)
+ T_180198[1] := UInt<2>(2)
+ wire T_180199 : UInt<2>[2]
+ T_180199[0] := UInt<2>(1)
+ T_180199[1] := UInt<2>(2)
+ wire T_180200 : UInt<2>[1]
+ T_180200[0] := UInt<2>(2)
+ wire T_180201 : UInt<3>[3]
+ T_180201[0] := UInt<3>(0)
+ T_180201[1] := UInt<3>(1)
+ T_180201[2] := UInt<3>(2)
+ wire T_180202 : UInt<0>[1]
+ T_180202[0] := UInt<0>(0)
+ wire T_180203 : UInt<2>[2]
+ T_180203[0] := UInt<2>(1)
+ T_180203[1] := UInt<2>(2)
+ wire T_180204 : UInt<2>[2]
+ T_180204[0] := UInt<2>(1)
+ T_180204[1] := UInt<2>(2)
+ wire T_180205 : UInt<2>[1]
+ T_180205[0] := UInt<2>(2)
+ wire T_180206 : UInt<3>[3]
+ T_180206[0] := UInt<3>(0)
+ T_180206[1] := UInt<3>(1)
+ T_180206[2] := UInt<3>(2)
+ wire T_180207 : UInt<0>[1]
+ T_180207[0] := UInt<0>(0)
+ wire T_180208 : UInt<2>[2]
+ T_180208[0] := UInt<2>(1)
+ T_180208[1] := UInt<2>(2)
+ wire T_180209 : UInt<2>[2]
+ T_180209[0] := UInt<2>(1)
+ T_180209[1] := UInt<2>(2)
+ wire T_180210 : UInt<2>[1]
+ T_180210[0] := UInt<2>(2)
+ wire T_180211 : UInt<3>[3]
+ T_180211[0] := UInt<3>(0)
+ T_180211[1] := UInt<3>(1)
+ T_180211[2] := UInt<3>(2)
+ wire T_180212 : UInt<0>[1]
+ T_180212[0] := UInt<0>(0)
+ wire T_180213 : UInt<2>[2]
+ T_180213[0] := UInt<2>(1)
+ T_180213[1] := UInt<2>(2)
+ wire T_180214 : UInt<2>[2]
+ T_180214[0] := UInt<2>(1)
+ T_180214[1] := UInt<2>(2)
+ wire T_180215 : UInt<2>[1]
+ T_180215[0] := UInt<2>(2)
+ inst a of MemIOTileLinkIOConverter
+ inst b of MemPipeIOMemIOConverter
+ a.tl <> tl
+ inst T_180216 of Queue_122803
+ T_180216.enq.valid := a.mem__.req_cmd.valid
+ T_180216.enq.bits := a.mem__.req_cmd.bits
+ a.mem__.req_cmd.ready := T_180216.enq.ready
+ b.cpu.req_cmd <> T_180216.deq
+ inst T_180217 of Queue_122884
+ T_180217.enq.valid := a.mem__.req_data.valid
+ T_180217.enq.bits := a.mem__.req_data.bits
+ a.mem__.req_data.ready := T_180217.enq.ready
+ b.cpu.req_data <> T_180217.deq
+ a.mem__.resp <> b.cpu.resp
+ b.mem__ <> mem__
+ module MemIOArbiter :
+ input inner : {req_cmd : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr : UInt<26>, tag : UInt<5>, rw : UInt<1>}}, req_data : {flip ready : UInt<1>, valid : UInt<1>, bits : {data : UInt<128>}}, flip resp : {flip ready : UInt<1>, valid : UInt<1>, bits : {data : UInt<128>, tag : UInt<5>}}}[1]
+ output outer : {req_cmd : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr : UInt<26>, tag : UInt<5>, rw : UInt<1>}}, req_data : {flip ready : UInt<1>, valid : UInt<1>, bits : {data : UInt<128>}}, flip resp : {flip ready : UInt<1>, valid : UInt<1>, bits : {data : UInt<128>, tag : UInt<5>}}}
+
+ wire inner : {req_cmd : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr : UInt<26>, tag : UInt<5>, rw : UInt<1>}}, req_data : {flip ready : UInt<1>, valid : UInt<1>, bits : {data : UInt<128>}}, flip resp : {flip ready : UInt<1>, valid : UInt<1>, bits : {data : UInt<128>, tag : UInt<5>}}}[1]
+ inner[0] := T_180218
+ inner[0] <> outer
+ module MemSerdes :
+ input wide : {req_cmd : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr : UInt<26>, tag : UInt<5>, rw : UInt<1>}}, req_data : {flip ready : UInt<1>, valid : UInt<1>, bits : {data : UInt<128>}}, flip resp : {flip ready : UInt<1>, valid : UInt<1>, bits : {data : UInt<128>, tag : UInt<5>}}}
+ output narrow : {req : {flip ready : UInt<1>, valid : UInt<1>, bits : UInt<16>}, flip resp : {valid : UInt<1>, bits : UInt<16>}}
+
+ node T_180219 = cat(wide.req_cmd.bits.tag, wide.req_cmd.bits.rw)
+ node T_180220 = cat(wide.req_cmd.bits.addr, T_180219)
+ reg out_buf : UInt
+ reg in_buf : UInt
+ reg state : UInt<3>
+ onreset state := UInt<3>(0)
+ reg send_cnt : UInt<3>
+ onreset send_cnt := UInt<3>(0)
+ reg data_send_cnt : UInt<2>
+ onreset data_send_cnt := UInt<2>(0)
+ node T_180221 = eq(send_cnt, UInt<1>(1))
+ node adone = and(narrow.req.ready, T_180221)
+ node T_180222 = eq(send_cnt, UInt<3>(7))
+ node ddone = and(narrow.req.ready, T_180222)
+
+ node T_180223 = and(narrow.req.valid, narrow.req.ready)
+ when T_180223 :
+ node T_180224 = addw(send_cnt, UInt<1>(1))
+ send_cnt := T_180224
+ node T_180225 = dshr(out_buf, UInt<5>(16))
+ out_buf := T_180225
+
+ node T_180226 = and(wide.req_cmd.valid, wide.req_cmd.ready)
+ when T_180226 :
+ node T_180227 = cat(wide.req_cmd.bits.tag, wide.req_cmd.bits.rw)
+ node T_180228 = cat(wide.req_cmd.bits.addr, T_180227)
+ out_buf := T_180228
+
+ node T_180229 = and(wide.req_data.valid, wide.req_data.ready)
+ when T_180229 : out_buf := wide.req_data.bits.data
+ node T_180230 = eq(state, UInt<3>(0))
+ wide.req_cmd.ready := T_180230
+ node T_180231 = eq(state, UInt<3>(3))
+ wide.req_data.ready := T_180231
+ node T_180232 = eq(state, UInt<3>(1))
+ node T_180233 = eq(state, UInt<3>(2))
+ node T_180234 = or(T_180232, T_180233)
+ node T_180235 = eq(state, UInt<3>(4))
+ node T_180236 = or(T_180234, T_180235)
+ narrow.req.valid := T_180236
+ narrow.req.bits := out_buf
+
+
+ node T_180237 = eq(state, UInt<3>(0))
+ node T_180238 = and(T_180237, wide.req_cmd.valid)
+ when T_180238 :
+ wire T_180239 : UInt<3>
+ T_180239 := UInt<3>(1)
+ when wide.req_cmd.bits.rw : T_180239 := UInt<3>(2)
+ state := T_180239
+
+
+ node T_180240 = eq(state, UInt<3>(1))
+ node T_180241 = and(T_180240, adone)
+ when T_180241 :
+ state := UInt<3>(0)
+ send_cnt := UInt<1>(0)
+
+
+ node T_180242 = eq(state, UInt<3>(2))
+ node T_180243 = and(T_180242, adone)
+ when T_180243 :
+ state := UInt<3>(3)
+ send_cnt := UInt<1>(0)
+
+
+ node T_180244 = eq(state, UInt<3>(3))
+ node T_180245 = and(T_180244, wide.req_data.valid)
+ when T_180245 : state := UInt<3>(4)
+
+
+ node T_180246 = eq(state, UInt<3>(4))
+ node T_180247 = and(T_180246, ddone)
+ when T_180247 :
+ node T_180248 = addw(data_send_cnt, UInt<1>(1))
+ data_send_cnt := T_180248
+ node T_180249 = eq(data_send_cnt, UInt<2>(3))
+ wire T_180250 : UInt<3>
+ T_180250 := UInt<3>(3)
+ when T_180249 : T_180250 := UInt<3>(0)
+ state := T_180250
+ send_cnt := UInt<1>(0)
+ reg recv_cnt : UInt<4>
+ onreset recv_cnt := UInt<4>(0)
+ reg data_recv_cnt : UInt<2>
+ onreset data_recv_cnt := UInt<2>(0)
+ reg resp_val : UInt<1>
+ onreset resp_val := UInt<1>(0)
+ resp_val := UInt<1>(0)
+ when narrow.resp.valid :
+ node T_180251 = addw(recv_cnt, UInt<1>(1))
+ recv_cnt := T_180251
+
+ node T_180252 = eq(recv_cnt, UInt<4>(8))
+ when T_180252 :
+ recv_cnt := UInt<1>(0)
+ node T_180253 = addw(data_recv_cnt, UInt<1>(1))
+ data_recv_cnt := T_180253
+ resp_val := UInt<1>(1)
+ node T_180254 = bits(in_buf, 143, 16)
+ node T_180255 = cat(narrow.resp.bits, T_180254)
+ in_buf := T_180255
+ wide.resp.valid := resp_val
+ wire T_180256 : {data : UInt<128>, tag : UInt<5>}
+ node T_180257 = bits(in_buf, 4, 0)
+ T_180256.tag := T_180257
+ node T_180258 = bits(in_buf, 132, 5)
+ T_180256.data := T_180258
+ wide.resp.bits := T_180256
+ module OuterMemorySystem :
+ input tiles_cached : {acquire : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_block : UInt<26>, client_xact_id : UInt<1>, addr_beat : UInt<2>, data : UInt<128>, is_builtin_type : UInt<1>, a_type : UInt<3>, union : UInt<17>}}, flip grant : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_beat : UInt<2>, data : UInt<128>, client_xact_id : UInt<1>, manager_xact_id : UInt<2>, is_builtin_type : UInt<1>, g_type : UInt<4>}}, flip probe : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_block : UInt<26>, p_type : UInt<2>}}, release : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_block : UInt<26>, client_xact_id : UInt<1>, addr_beat : UInt<2>, data : UInt<128>, r_type : UInt<3>, voluntary : UInt<1>}}}[1]
+ input tiles_uncached : {acquire : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_block : UInt<26>, client_xact_id : UInt<1>, addr_beat : UInt<2>, data : UInt<128>, is_builtin_type : UInt<1>, a_type : UInt<3>, union : UInt<17>}}, flip grant : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_beat : UInt<2>, data : UInt<128>, client_xact_id : UInt<1>, manager_xact_id : UInt<2>, is_builtin_type : UInt<1>, g_type : UInt<4>}}}[1]
+ input htif_uncached : {acquire : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_block : UInt<26>, client_xact_id : UInt<1>, addr_beat : UInt<2>, data : UInt<128>, is_builtin_type : UInt<1>, a_type : UInt<3>, union : UInt<17>}}, flip grant : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_beat : UInt<2>, data : UInt<128>, client_xact_id : UInt<1>, manager_xact_id : UInt<2>, is_builtin_type : UInt<1>, g_type : UInt<4>}}}
+ input incoherent : UInt<1>[1]
+ output mem__ : {req_cmd : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr : UInt<26>, tag : UInt<5>, rw : UInt<1>}}, req_data : {flip ready : UInt<1>, valid : UInt<1>, bits : {data : UInt<128>}}, flip resp : {flip ready : UInt<1>, valid : UInt<1>, bits : {data : UInt<128>, tag : UInt<5>}}}[1]
+ output mem_backup : {req : {flip ready : UInt<1>, valid : UInt<1>, bits : UInt<16>}, flip resp : {valid : UInt<1>, bits : UInt<16>}}
+ input mem_backup_en : UInt<1>
+
+ wire T_180259 : UInt<3>[3]
+ T_180259[0] := UInt<3>(0)
+ T_180259[1] := UInt<3>(1)
+ T_180259[2] := UInt<3>(2)
+ wire T_180260 : UInt<2>[2]
+ T_180260[0] := UInt<2>(0)
+ T_180260[1] := UInt<2>(1)
+ wire T_180261 : UInt<2>[3]
+ T_180261[0] := UInt<2>(1)
+ T_180261[1] := UInt<2>(2)
+ T_180261[2] := UInt<2>(3)
+ wire T_180262 : UInt<2>[2]
+ T_180262[0] := UInt<2>(2)
+ T_180262[1] := UInt<2>(3)
+ wire T_180263 : UInt<2>[1]
+ T_180263[0] := UInt<2>(3)
+ wire T_180264 : UInt<3>[3]
+ T_180264[0] := UInt<3>(0)
+ T_180264[1] := UInt<3>(1)
+ T_180264[2] := UInt<3>(2)
+ wire T_180265 : UInt<2>[2]
+ T_180265[0] := UInt<2>(0)
+ T_180265[1] := UInt<2>(1)
+ wire T_180266 : UInt<2>[3]
+ T_180266[0] := UInt<2>(1)
+ T_180266[1] := UInt<2>(2)
+ T_180266[2] := UInt<2>(3)
+ wire T_180267 : UInt<2>[2]
+ T_180267[0] := UInt<2>(2)
+ T_180267[1] := UInt<2>(3)
+ wire T_180268 : UInt<2>[1]
+ T_180268[0] := UInt<2>(3)
+ wire T_180269 : UInt<3>[3]
+ T_180269[0] := UInt<3>(0)
+ T_180269[1] := UInt<3>(1)
+ T_180269[2] := UInt<3>(2)
+ wire T_180270 : UInt<2>[2]
+ T_180270[0] := UInt<2>(0)
+ T_180270[1] := UInt<2>(1)
+ wire T_180271 : UInt<2>[3]
+ T_180271[0] := UInt<2>(1)
+ T_180271[1] := UInt<2>(2)
+ T_180271[2] := UInt<2>(3)
+ wire T_180272 : UInt<2>[2]
+ T_180272[0] := UInt<2>(2)
+ T_180272[1] := UInt<2>(3)
+ wire T_180273 : UInt<2>[1]
+ T_180273[0] := UInt<2>(3)
+ wire T_180274 : UInt<3>[3]
+ T_180274[0] := UInt<3>(0)
+ T_180274[1] := UInt<3>(1)
+ T_180274[2] := UInt<3>(2)
+ wire T_180275 : UInt<2>[2]
+ T_180275[0] := UInt<2>(0)
+ T_180275[1] := UInt<2>(1)
+ wire T_180276 : UInt<2>[3]
+ T_180276[0] := UInt<2>(1)
+ T_180276[1] := UInt<2>(2)
+ T_180276[2] := UInt<2>(3)
+ wire T_180277 : UInt<2>[2]
+ T_180277[0] := UInt<2>(2)
+ T_180277[1] := UInt<2>(3)
+ wire T_180278 : UInt<2>[1]
+ T_180278[0] := UInt<2>(3)
+ wire T_180279 : UInt<3>[3]
+ T_180279[0] := UInt<3>(0)
+ T_180279[1] := UInt<3>(1)
+ T_180279[2] := UInt<3>(2)
+ wire T_180280 : UInt<2>[2]
+ T_180280[0] := UInt<2>(0)
+ T_180280[1] := UInt<2>(1)
+ wire T_180281 : UInt<2>[3]
+ T_180281[0] := UInt<2>(1)
+ T_180281[1] := UInt<2>(2)
+ T_180281[2] := UInt<2>(3)
+ wire T_180282 : UInt<2>[2]
+ T_180282[0] := UInt<2>(2)
+ T_180282[1] := UInt<2>(3)
+ wire T_180283 : UInt<2>[1]
+ T_180283[0] := UInt<2>(3)
+ wire T_180284 : UInt<3>[3]
+ T_180284[0] := UInt<3>(0)
+ T_180284[1] := UInt<3>(1)
+ T_180284[2] := UInt<3>(2)
+ wire T_180285 : UInt<2>[2]
+ T_180285[0] := UInt<2>(0)
+ T_180285[1] := UInt<2>(1)
+ wire T_180286 : UInt<2>[3]
+ T_180286[0] := UInt<2>(1)
+ T_180286[1] := UInt<2>(2)
+ T_180286[2] := UInt<2>(3)
+ wire T_180287 : UInt<2>[2]
+ T_180287[0] := UInt<2>(2)
+ T_180287[1] := UInt<2>(3)
+ wire T_180288 : UInt<2>[1]
+ T_180288[0] := UInt<2>(3)
+ wire T_180289 : UInt<3>[3]
+ T_180289[0] := UInt<3>(0)
+ T_180289[1] := UInt<3>(1)
+ T_180289[2] := UInt<3>(2)
+ wire T_180290 : UInt<2>[2]
+ T_180290[0] := UInt<2>(0)
+ T_180290[1] := UInt<2>(1)
+ wire T_180291 : UInt<2>[3]
+ T_180291[0] := UInt<2>(1)
+ T_180291[1] := UInt<2>(2)
+ T_180291[2] := UInt<2>(3)
+ wire T_180292 : UInt<2>[2]
+ T_180292[0] := UInt<2>(2)
+ T_180292[1] := UInt<2>(3)
+ wire T_180293 : UInt<2>[1]
+ T_180293[0] := UInt<2>(3)
+ wire T_180294 : UInt<3>[3]
+ T_180294[0] := UInt<3>(0)
+ T_180294[1] := UInt<3>(1)
+ T_180294[2] := UInt<3>(2)
+ wire T_180295 : UInt<2>[2]
+ T_180295[0] := UInt<2>(0)
+ T_180295[1] := UInt<2>(1)
+ wire T_180296 : UInt<2>[3]
+ T_180296[0] := UInt<2>(1)
+ T_180296[1] := UInt<2>(2)
+ T_180296[2] := UInt<2>(3)
+ wire T_180297 : UInt<2>[2]
+ T_180297[0] := UInt<2>(2)
+ T_180297[1] := UInt<2>(3)
+ wire T_180298 : UInt<2>[1]
+ T_180298[0] := UInt<2>(3)
+ wire T_180299 : UInt<3>[3]
+ T_180299[0] := UInt<3>(0)
+ T_180299[1] := UInt<3>(1)
+ T_180299[2] := UInt<3>(2)
+ wire T_180300 : UInt<2>[2]
+ T_180300[0] := UInt<2>(0)
+ T_180300[1] := UInt<2>(1)
+ wire T_180301 : UInt<2>[3]
+ T_180301[0] := UInt<2>(1)
+ T_180301[1] := UInt<2>(2)
+ T_180301[2] := UInt<2>(3)
+ wire T_180302 : UInt<2>[2]
+ T_180302[0] := UInt<2>(2)
+ T_180302[1] := UInt<2>(3)
+ wire T_180303 : UInt<2>[1]
+ T_180303[0] := UInt<2>(3)
+ wire T_180304 : UInt<3>[3]
+ T_180304[0] := UInt<3>(0)
+ T_180304[1] := UInt<3>(1)
+ T_180304[2] := UInt<3>(2)
+ wire T_180305 : UInt<2>[2]
+ T_180305[0] := UInt<2>(0)
+ T_180305[1] := UInt<2>(1)
+ wire T_180306 : UInt<2>[3]
+ T_180306[0] := UInt<2>(1)
+ T_180306[1] := UInt<2>(2)
+ T_180306[2] := UInt<2>(3)
+ wire T_180307 : UInt<2>[2]
+ T_180307[0] := UInt<2>(2)
+ T_180307[1] := UInt<2>(3)
+ wire T_180308 : UInt<2>[1]
+ T_180308[0] := UInt<2>(3)
+ wire T_180309 : UInt<3>[3]
+ T_180309[0] := UInt<3>(0)
+ T_180309[1] := UInt<3>(1)
+ T_180309[2] := UInt<3>(2)
+ wire T_180310 : UInt<2>[2]
+ T_180310[0] := UInt<2>(0)
+ T_180310[1] := UInt<2>(1)
+ wire T_180311 : UInt<2>[3]
+ T_180311[0] := UInt<2>(1)
+ T_180311[1] := UInt<2>(2)
+ T_180311[2] := UInt<2>(3)
+ wire T_180312 : UInt<2>[2]
+ T_180312[0] := UInt<2>(2)
+ T_180312[1] := UInt<2>(3)
+ wire T_180313 : UInt<2>[1]
+ T_180313[0] := UInt<2>(3)
+ wire T_180314 : UInt<3>[3]
+ T_180314[0] := UInt<3>(0)
+ T_180314[1] := UInt<3>(1)
+ T_180314[2] := UInt<3>(2)
+ wire T_180315 : UInt<2>[2]
+ T_180315[0] := UInt<2>(0)
+ T_180315[1] := UInt<2>(1)
+ wire T_180316 : UInt<2>[3]
+ T_180316[0] := UInt<2>(1)
+ T_180316[1] := UInt<2>(2)
+ T_180316[2] := UInt<2>(3)
+ wire T_180317 : UInt<2>[2]
+ T_180317[0] := UInt<2>(2)
+ T_180317[1] := UInt<2>(3)
+ wire T_180318 : UInt<2>[1]
+ T_180318[0] := UInt<2>(3)
+ wire T_180319 : UInt<3>[3]
+ T_180319[0] := UInt<3>(0)
+ T_180319[1] := UInt<3>(1)
+ T_180319[2] := UInt<3>(2)
+ wire T_180320 : UInt<2>[2]
+ T_180320[0] := UInt<2>(0)
+ T_180320[1] := UInt<2>(1)
+ wire T_180321 : UInt<2>[3]
+ T_180321[0] := UInt<2>(1)
+ T_180321[1] := UInt<2>(2)
+ T_180321[2] := UInt<2>(3)
+ wire T_180322 : UInt<2>[2]
+ T_180322[0] := UInt<2>(2)
+ T_180322[1] := UInt<2>(3)
+ wire T_180323 : UInt<2>[1]
+ T_180323[0] := UInt<2>(3)
+ wire T_180324 : UInt<3>[3]
+ T_180324[0] := UInt<3>(0)
+ T_180324[1] := UInt<3>(1)
+ T_180324[2] := UInt<3>(2)
+ wire T_180325 : UInt<2>[2]
+ T_180325[0] := UInt<2>(0)
+ T_180325[1] := UInt<2>(1)
+ wire T_180326 : UInt<2>[3]
+ T_180326[0] := UInt<2>(1)
+ T_180326[1] := UInt<2>(2)
+ T_180326[2] := UInt<2>(3)
+ wire T_180327 : UInt<2>[2]
+ T_180327[0] := UInt<2>(2)
+ T_180327[1] := UInt<2>(3)
+ wire T_180328 : UInt<2>[1]
+ T_180328[0] := UInt<2>(3)
+ wire T_180329 : UInt<3>[3]
+ T_180329[0] := UInt<3>(0)
+ T_180329[1] := UInt<3>(1)
+ T_180329[2] := UInt<3>(2)
+ wire T_180330 : UInt<2>[2]
+ T_180330[0] := UInt<2>(0)
+ T_180330[1] := UInt<2>(1)
+ wire T_180331 : UInt<2>[3]
+ T_180331[0] := UInt<2>(1)
+ T_180331[1] := UInt<2>(2)
+ T_180331[2] := UInt<2>(3)
+ wire T_180332 : UInt<2>[2]
+ T_180332[0] := UInt<2>(2)
+ T_180332[1] := UInt<2>(3)
+ wire T_180333 : UInt<2>[1]
+ T_180333[0] := UInt<2>(3)
+ wire T_180334 : UInt<3>[3]
+ T_180334[0] := UInt<3>(0)
+ T_180334[1] := UInt<3>(1)
+ T_180334[2] := UInt<3>(2)
+ wire T_180335 : UInt<2>[2]
+ T_180335[0] := UInt<2>(0)
+ T_180335[1] := UInt<2>(1)
+ wire T_180336 : UInt<2>[3]
+ T_180336[0] := UInt<2>(1)
+ T_180336[1] := UInt<2>(2)
+ T_180336[2] := UInt<2>(3)
+ wire T_180337 : UInt<2>[2]
+ T_180337[0] := UInt<2>(2)
+ T_180337[1] := UInt<2>(3)
+ wire T_180338 : UInt<2>[1]
+ T_180338[0] := UInt<2>(3)
+ wire T_180339 : UInt<3>[3]
+ T_180339[0] := UInt<3>(0)
+ T_180339[1] := UInt<3>(1)
+ T_180339[2] := UInt<3>(2)
+ wire T_180340 : UInt<2>[2]
+ T_180340[0] := UInt<2>(0)
+ T_180340[1] := UInt<2>(1)
+ wire T_180341 : UInt<2>[3]
+ T_180341[0] := UInt<2>(1)
+ T_180341[1] := UInt<2>(2)
+ T_180341[2] := UInt<2>(3)
+ wire T_180342 : UInt<2>[2]
+ T_180342[0] := UInt<2>(2)
+ T_180342[1] := UInt<2>(3)
+ wire T_180343 : UInt<2>[1]
+ T_180343[0] := UInt<2>(3)
+ wire T_180344 : UInt<3>[3]
+ T_180344[0] := UInt<3>(0)
+ T_180344[1] := UInt<3>(1)
+ T_180344[2] := UInt<3>(2)
+ wire T_180345 : UInt<2>[2]
+ T_180345[0] := UInt<2>(0)
+ T_180345[1] := UInt<2>(1)
+ wire T_180346 : UInt<2>[3]
+ T_180346[0] := UInt<2>(1)
+ T_180346[1] := UInt<2>(2)
+ T_180346[2] := UInt<2>(3)
+ wire T_180347 : UInt<2>[2]
+ T_180347[0] := UInt<2>(2)
+ T_180347[1] := UInt<2>(3)
+ wire T_180348 : UInt<2>[1]
+ T_180348[0] := UInt<2>(3)
+ wire tiles_cached : {acquire : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_block : UInt<26>, client_xact_id : UInt<1>, addr_beat : UInt<2>, data : UInt<128>, is_builtin_type : UInt<1>, a_type : UInt<3>, union : UInt<17>}}, flip grant : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_beat : UInt<2>, data : UInt<128>, client_xact_id : UInt<1>, manager_xact_id : UInt<2>, is_builtin_type : UInt<1>, g_type : UInt<4>}}, flip probe : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_block : UInt<26>, p_type : UInt<2>}}, release : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_block : UInt<26>, client_xact_id : UInt<1>, addr_beat : UInt<2>, data : UInt<128>, r_type : UInt<3>, voluntary : UInt<1>}}}[1]
+ tiles_cached[0] := T_180349
+ wire T_180350 : UInt<3>[3]
+ T_180350[0] := UInt<3>(0)
+ T_180350[1] := UInt<3>(1)
+ T_180350[2] := UInt<3>(2)
+ wire T_180351 : UInt<2>[2]
+ T_180351[0] := UInt<2>(0)
+ T_180351[1] := UInt<2>(1)
+ wire T_180352 : UInt<2>[3]
+ T_180352[0] := UInt<2>(1)
+ T_180352[1] := UInt<2>(2)
+ T_180352[2] := UInt<2>(3)
+ wire T_180353 : UInt<2>[2]
+ T_180353[0] := UInt<2>(2)
+ T_180353[1] := UInt<2>(3)
+ wire T_180354 : UInt<2>[1]
+ T_180354[0] := UInt<2>(3)
+ wire T_180355 : UInt<3>[3]
+ T_180355[0] := UInt<3>(0)
+ T_180355[1] := UInt<3>(1)
+ T_180355[2] := UInt<3>(2)
+ wire T_180356 : UInt<2>[2]
+ T_180356[0] := UInt<2>(0)
+ T_180356[1] := UInt<2>(1)
+ wire T_180357 : UInt<2>[3]
+ T_180357[0] := UInt<2>(1)
+ T_180357[1] := UInt<2>(2)
+ T_180357[2] := UInt<2>(3)
+ wire T_180358 : UInt<2>[2]
+ T_180358[0] := UInt<2>(2)
+ T_180358[1] := UInt<2>(3)
+ wire T_180359 : UInt<2>[1]
+ T_180359[0] := UInt<2>(3)
+ wire T_180360 : UInt<3>[3]
+ T_180360[0] := UInt<3>(0)
+ T_180360[1] := UInt<3>(1)
+ T_180360[2] := UInt<3>(2)
+ wire T_180361 : UInt<2>[2]
+ T_180361[0] := UInt<2>(0)
+ T_180361[1] := UInt<2>(1)
+ wire T_180362 : UInt<2>[3]
+ T_180362[0] := UInt<2>(1)
+ T_180362[1] := UInt<2>(2)
+ T_180362[2] := UInt<2>(3)
+ wire T_180363 : UInt<2>[2]
+ T_180363[0] := UInt<2>(2)
+ T_180363[1] := UInt<2>(3)
+ wire T_180364 : UInt<2>[1]
+ T_180364[0] := UInt<2>(3)
+ wire T_180365 : UInt<3>[3]
+ T_180365[0] := UInt<3>(0)
+ T_180365[1] := UInt<3>(1)
+ T_180365[2] := UInt<3>(2)
+ wire T_180366 : UInt<2>[2]
+ T_180366[0] := UInt<2>(0)
+ T_180366[1] := UInt<2>(1)
+ wire T_180367 : UInt<2>[3]
+ T_180367[0] := UInt<2>(1)
+ T_180367[1] := UInt<2>(2)
+ T_180367[2] := UInt<2>(3)
+ wire T_180368 : UInt<2>[2]
+ T_180368[0] := UInt<2>(2)
+ T_180368[1] := UInt<2>(3)
+ wire T_180369 : UInt<2>[1]
+ T_180369[0] := UInt<2>(3)
+ wire T_180370 : UInt<3>[3]
+ T_180370[0] := UInt<3>(0)
+ T_180370[1] := UInt<3>(1)
+ T_180370[2] := UInt<3>(2)
+ wire T_180371 : UInt<2>[2]
+ T_180371[0] := UInt<2>(0)
+ T_180371[1] := UInt<2>(1)
+ wire T_180372 : UInt<2>[3]
+ T_180372[0] := UInt<2>(1)
+ T_180372[1] := UInt<2>(2)
+ T_180372[2] := UInt<2>(3)
+ wire T_180373 : UInt<2>[2]
+ T_180373[0] := UInt<2>(2)
+ T_180373[1] := UInt<2>(3)
+ wire T_180374 : UInt<2>[1]
+ T_180374[0] := UInt<2>(3)
+ wire T_180375 : UInt<3>[3]
+ T_180375[0] := UInt<3>(0)
+ T_180375[1] := UInt<3>(1)
+ T_180375[2] := UInt<3>(2)
+ wire T_180376 : UInt<2>[2]
+ T_180376[0] := UInt<2>(0)
+ T_180376[1] := UInt<2>(1)
+ wire T_180377 : UInt<2>[3]
+ T_180377[0] := UInt<2>(1)
+ T_180377[1] := UInt<2>(2)
+ T_180377[2] := UInt<2>(3)
+ wire T_180378 : UInt<2>[2]
+ T_180378[0] := UInt<2>(2)
+ T_180378[1] := UInt<2>(3)
+ wire T_180379 : UInt<2>[1]
+ T_180379[0] := UInt<2>(3)
+ wire T_180380 : UInt<3>[3]
+ T_180380[0] := UInt<3>(0)
+ T_180380[1] := UInt<3>(1)
+ T_180380[2] := UInt<3>(2)
+ wire T_180381 : UInt<2>[2]
+ T_180381[0] := UInt<2>(0)
+ T_180381[1] := UInt<2>(1)
+ wire T_180382 : UInt<2>[3]
+ T_180382[0] := UInt<2>(1)
+ T_180382[1] := UInt<2>(2)
+ T_180382[2] := UInt<2>(3)
+ wire T_180383 : UInt<2>[2]
+ T_180383[0] := UInt<2>(2)
+ T_180383[1] := UInt<2>(3)
+ wire T_180384 : UInt<2>[1]
+ T_180384[0] := UInt<2>(3)
+ wire T_180385 : UInt<3>[3]
+ T_180385[0] := UInt<3>(0)
+ T_180385[1] := UInt<3>(1)
+ T_180385[2] := UInt<3>(2)
+ wire T_180386 : UInt<2>[2]
+ T_180386[0] := UInt<2>(0)
+ T_180386[1] := UInt<2>(1)
+ wire T_180387 : UInt<2>[3]
+ T_180387[0] := UInt<2>(1)
+ T_180387[1] := UInt<2>(2)
+ T_180387[2] := UInt<2>(3)
+ wire T_180388 : UInt<2>[2]
+ T_180388[0] := UInt<2>(2)
+ T_180388[1] := UInt<2>(3)
+ wire T_180389 : UInt<2>[1]
+ T_180389[0] := UInt<2>(3)
+ wire T_180390 : UInt<3>[3]
+ T_180390[0] := UInt<3>(0)
+ T_180390[1] := UInt<3>(1)
+ T_180390[2] := UInt<3>(2)
+ wire T_180391 : UInt<2>[2]
+ T_180391[0] := UInt<2>(0)
+ T_180391[1] := UInt<2>(1)
+ wire T_180392 : UInt<2>[3]
+ T_180392[0] := UInt<2>(1)
+ T_180392[1] := UInt<2>(2)
+ T_180392[2] := UInt<2>(3)
+ wire T_180393 : UInt<2>[2]
+ T_180393[0] := UInt<2>(2)
+ T_180393[1] := UInt<2>(3)
+ wire T_180394 : UInt<2>[1]
+ T_180394[0] := UInt<2>(3)
+ wire T_180395 : UInt<3>[3]
+ T_180395[0] := UInt<3>(0)
+ T_180395[1] := UInt<3>(1)
+ T_180395[2] := UInt<3>(2)
+ wire T_180396 : UInt<2>[2]
+ T_180396[0] := UInt<2>(0)
+ T_180396[1] := UInt<2>(1)
+ wire T_180397 : UInt<2>[3]
+ T_180397[0] := UInt<2>(1)
+ T_180397[1] := UInt<2>(2)
+ T_180397[2] := UInt<2>(3)
+ wire T_180398 : UInt<2>[2]
+ T_180398[0] := UInt<2>(2)
+ T_180398[1] := UInt<2>(3)
+ wire T_180399 : UInt<2>[1]
+ T_180399[0] := UInt<2>(3)
+ wire tiles_uncached : {acquire : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_block : UInt<26>, client_xact_id : UInt<1>, addr_beat : UInt<2>, data : UInt<128>, is_builtin_type : UInt<1>, a_type : UInt<3>, union : UInt<17>}}, flip grant : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_beat : UInt<2>, data : UInt<128>, client_xact_id : UInt<1>, manager_xact_id : UInt<2>, is_builtin_type : UInt<1>, g_type : UInt<4>}}}[1]
+ tiles_uncached[0] := T_180400
+ wire T_180401 : UInt<3>[3]
+ T_180401[0] := UInt<3>(0)
+ T_180401[1] := UInt<3>(1)
+ T_180401[2] := UInt<3>(2)
+ wire T_180402 : UInt<2>[2]
+ T_180402[0] := UInt<2>(0)
+ T_180402[1] := UInt<2>(1)
+ wire T_180403 : UInt<2>[3]
+ T_180403[0] := UInt<2>(1)
+ T_180403[1] := UInt<2>(2)
+ T_180403[2] := UInt<2>(3)
+ wire T_180404 : UInt<2>[2]
+ T_180404[0] := UInt<2>(2)
+ T_180404[1] := UInt<2>(3)
+ wire T_180405 : UInt<2>[1]
+ T_180405[0] := UInt<2>(3)
+ wire T_180406 : UInt<3>[3]
+ T_180406[0] := UInt<3>(0)
+ T_180406[1] := UInt<3>(1)
+ T_180406[2] := UInt<3>(2)
+ wire T_180407 : UInt<2>[2]
+ T_180407[0] := UInt<2>(0)
+ T_180407[1] := UInt<2>(1)
+ wire T_180408 : UInt<2>[3]
+ T_180408[0] := UInt<2>(1)
+ T_180408[1] := UInt<2>(2)
+ T_180408[2] := UInt<2>(3)
+ wire T_180409 : UInt<2>[2]
+ T_180409[0] := UInt<2>(2)
+ T_180409[1] := UInt<2>(3)
+ wire T_180410 : UInt<2>[1]
+ T_180410[0] := UInt<2>(3)
+ wire T_180411 : UInt<3>[3]
+ T_180411[0] := UInt<3>(0)
+ T_180411[1] := UInt<3>(1)
+ T_180411[2] := UInt<3>(2)
+ wire T_180412 : UInt<2>[2]
+ T_180412[0] := UInt<2>(0)
+ T_180412[1] := UInt<2>(1)
+ wire T_180413 : UInt<2>[3]
+ T_180413[0] := UInt<2>(1)
+ T_180413[1] := UInt<2>(2)
+ T_180413[2] := UInt<2>(3)
+ wire T_180414 : UInt<2>[2]
+ T_180414[0] := UInt<2>(2)
+ T_180414[1] := UInt<2>(3)
+ wire T_180415 : UInt<2>[1]
+ T_180415[0] := UInt<2>(3)
+ wire T_180416 : UInt<3>[3]
+ T_180416[0] := UInt<3>(0)
+ T_180416[1] := UInt<3>(1)
+ T_180416[2] := UInt<3>(2)
+ wire T_180417 : UInt<2>[2]
+ T_180417[0] := UInt<2>(0)
+ T_180417[1] := UInt<2>(1)
+ wire T_180418 : UInt<2>[3]
+ T_180418[0] := UInt<2>(1)
+ T_180418[1] := UInt<2>(2)
+ T_180418[2] := UInt<2>(3)
+ wire T_180419 : UInt<2>[2]
+ T_180419[0] := UInt<2>(2)
+ T_180419[1] := UInt<2>(3)
+ wire T_180420 : UInt<2>[1]
+ T_180420[0] := UInt<2>(3)
+ wire T_180421 : UInt<3>[3]
+ T_180421[0] := UInt<3>(0)
+ T_180421[1] := UInt<3>(1)
+ T_180421[2] := UInt<3>(2)
+ wire T_180422 : UInt<2>[2]
+ T_180422[0] := UInt<2>(0)
+ T_180422[1] := UInt<2>(1)
+ wire T_180423 : UInt<2>[3]
+ T_180423[0] := UInt<2>(1)
+ T_180423[1] := UInt<2>(2)
+ T_180423[2] := UInt<2>(3)
+ wire T_180424 : UInt<2>[2]
+ T_180424[0] := UInt<2>(2)
+ T_180424[1] := UInt<2>(3)
+ wire T_180425 : UInt<2>[1]
+ T_180425[0] := UInt<2>(3)
+ wire incoherent : UInt<1>[1]
+ incoherent[0] := T_180426
+ wire mem__ : {req_cmd : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr : UInt<26>, tag : UInt<5>, rw : UInt<1>}}, req_data : {flip ready : UInt<1>, valid : UInt<1>, bits : {data : UInt<128>}}, flip resp : {flip ready : UInt<1>, valid : UInt<1>, bits : {data : UInt<128>, tag : UInt<5>}}}[1]
+ mem__[0] := T_180427
+ inst T_180428 of ClientTileLinkIOWrapper
+ T_180428.in <> tiles_uncached[0]
+ inst T_180429 of ClientTileLinkIOWrapper_7600
+ T_180429.in <> htif_uncached
+ inst l1tol2net of RocketChipTileLinkArbiter
+ inst T_180430 of L2HellaCacheBank
+ T_180430.incoherent[0] := incoherent[0]
+ l1tol2net.clients[0] <> tiles_cached[0]
+ l1tol2net.clients[1] <> T_180428.out
+ l1tol2net.clients[2] <> T_180429.out
+ l1tol2net.managers[0] <> T_180430.inner
+ inst T_180431 of RocketChipTileLinkArbiter_120090
+ inst T_180432 of MemPipeIOTileLinkIOConverter
+ T_180431.clients[0] <> T_180430.outer
+ T_180432.tl <> T_180431.managers[0]
+ wire T_180433 : {req_cmd : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr : UInt<26>, tag : UInt<5>, rw : UInt<1>}}, req_data : {flip ready : UInt<1>, valid : UInt<1>, bits : {data : UInt<128>}}, flip resp : {flip ready : UInt<1>, valid : UInt<1>, bits : {data : UInt<128>, tag : UInt<5>}}}
+ T_180432.mem__.resp.valid := T_180433.resp.valid
+ T_180432.mem__.resp.bits := T_180433.resp.bits
+ T_180433.resp.ready := UInt<1>(1)
+ T_180433.req_cmd.valid := T_180432.mem__.req_cmd.valid
+ T_180433.req_cmd.bits := T_180432.mem__.req_cmd.bits
+ T_180432.mem__.req_cmd.ready := T_180433.req_cmd.ready
+ T_180433.req_data.valid := T_180432.mem__.req_data.valid
+ T_180433.req_data.bits := T_180432.mem__.req_data.bits
+ T_180432.mem__.req_data.ready := T_180433.req_data.ready
+ inst T_180434 of MemIOArbiter
+ inst T_180435 of MemSerdes
+ T_180435.wide <> T_180434.outer
+ T_180435.narrow <> mem_backup
+ wire T_180436 : UInt<1>
+ T_180436 := mem__[0].req_cmd.ready
+ when mem_backup_en : T_180436 := T_180434.inner[0].req_cmd.ready
+ T_180433.req_cmd.ready := T_180436
+ node T_180437 = eq(mem_backup_en, UInt<1>(0))
+ node T_180438 = and(T_180433.req_cmd.valid, T_180437)
+ mem__[0].req_cmd.valid := T_180438
+ mem__[0].req_cmd.bits := T_180433.req_cmd.bits
+ node T_180439 = and(T_180433.req_cmd.valid, mem_backup_en)
+ T_180434.inner[0].req_cmd.valid := T_180439
+ T_180434.inner[0].req_cmd.bits := T_180433.req_cmd.bits
+ wire T_180440 : UInt<1>
+ T_180440 := mem__[0].req_data.ready
+ when mem_backup_en : T_180440 := T_180434.inner[0].req_data.ready
+ T_180433.req_data.ready := T_180440
+ node T_180441 = eq(mem_backup_en, UInt<1>(0))
+ node T_180442 = and(T_180433.req_data.valid, T_180441)
+ mem__[0].req_data.valid := T_180442
+ mem__[0].req_data.bits := T_180433.req_data.bits
+ node T_180443 = and(T_180433.req_data.valid, mem_backup_en)
+ T_180434.inner[0].req_data.valid := T_180443
+ T_180434.inner[0].req_data.bits := T_180433.req_data.bits
+ wire T_180444 : UInt<1>
+ T_180444 := mem__[0].resp.valid
+ when mem_backup_en : T_180444 := T_180434.inner[0].resp.valid
+ T_180433.resp.valid := T_180444
+ wire T_180445 : {data : UInt<128>, tag : UInt<5>}
+ T_180445 := mem__[0].resp.bits
+ when mem_backup_en : T_180445 := T_180434.inner[0].resp.bits
+ T_180433.resp.bits := T_180445
+ node T_180446 = eq(mem_backup_en, UInt<1>(0))
+ node T_180447 = and(T_180433.resp.ready, T_180446)
+ mem__[0].resp.ready := T_180447
+ node T_180448 = and(T_180433.resp.ready, mem_backup_en)
+ T_180434.inner[0].resp.ready := T_180448
+ module Queue_123297 :
+ input enq : {flip ready : UInt<1>, valid : UInt<1>, bits : UInt<17>}
+ output deq : {flip ready : UInt<1>, valid : UInt<1>, bits : UInt<17>}
+ output count : UInt<1>
+
+ cmem ram : UInt<17>[1]
+ reg maybe_full : UInt<1>
+ onreset maybe_full := UInt<1>(0)
+ node ptr_match = eq(UInt<1>(0), UInt<1>(0))
+ node T_180449 = eq(maybe_full, UInt<1>(0))
+ node empty = and(ptr_match, T_180449)
+ node full = and(ptr_match, maybe_full)
+ node maybe_flow = and(UInt<1>(0), empty)
+ node do_flow = and(maybe_flow, deq.ready)
+ node T_180450 = and(enq.ready, enq.valid)
+ node T_180451 = eq(do_flow, UInt<1>(0))
+ node do_enq = and(T_180450, T_180451)
+ node T_180452 = and(deq.ready, deq.valid)
+ node T_180453 = eq(do_flow, UInt<1>(0))
+ node do_deq = and(T_180452, T_180453)
+ when do_enq :
+ accessor T_180454 = ram[UInt<1>(0)]
+ T_180454 := enq.bits
+ when do_deq : skip
+
+ node T_180455 = neq(do_enq, do_deq)
+ when T_180455 : maybe_full := do_enq
+ node T_180456 = eq(empty, UInt<1>(0))
+ node T_180457 = and(UInt<1>(0), enq.valid)
+ node T_180458 = or(T_180456, T_180457)
+ deq.valid := T_180458
+ node T_180459 = eq(full, UInt<1>(0))
+ node T_180460 = and(UInt<1>(0), deq.ready)
+ node T_180461 = or(T_180459, T_180460)
+ enq.ready := T_180461
+ accessor T_180462 = ram[UInt<1>(0)]
+ wire T_180463 : UInt<17>
+ T_180463 := T_180462
+ when maybe_flow : T_180463 := enq.bits
+ deq.bits := T_180463
+ node ptr_diff = subw(UInt<1>(0), UInt<1>(0))
+ node T_180464 = and(maybe_full, ptr_match)
+ node T_180465 = cat(T_180464, ptr_diff)
+ count := T_180465
+ module Queue_123356 :
+ input enq : {flip ready : UInt<1>, valid : UInt<1>, bits : UInt<17>}
+ output deq : {flip ready : UInt<1>, valid : UInt<1>, bits : UInt<17>}
+ output count : UInt<1>
+
+ cmem ram : UInt<17>[1]
+ reg maybe_full : UInt<1>
+ onreset maybe_full := UInt<1>(0)
+ node ptr_match = eq(UInt<1>(0), UInt<1>(0))
+ node T_180466 = eq(maybe_full, UInt<1>(0))
+ node empty = and(ptr_match, T_180466)
+ node full = and(ptr_match, maybe_full)
+ node maybe_flow = and(UInt<1>(0), empty)
+ node do_flow = and(maybe_flow, deq.ready)
+ node T_180467 = and(enq.ready, enq.valid)
+ node T_180468 = eq(do_flow, UInt<1>(0))
+ node do_enq = and(T_180467, T_180468)
+ node T_180469 = and(deq.ready, deq.valid)
+ node T_180470 = eq(do_flow, UInt<1>(0))
+ node do_deq = and(T_180469, T_180470)
+ when do_enq :
+ accessor T_180471 = ram[UInt<1>(0)]
+ T_180471 := enq.bits
+ when do_deq : skip
+
+ node T_180472 = neq(do_enq, do_deq)
+ when T_180472 : maybe_full := do_enq
+ node T_180473 = eq(empty, UInt<1>(0))
+ node T_180474 = and(UInt<1>(0), enq.valid)
+ node T_180475 = or(T_180473, T_180474)
+ deq.valid := T_180475
+ node T_180476 = eq(full, UInt<1>(0))
+ node T_180477 = and(UInt<1>(0), deq.ready)
+ node T_180478 = or(T_180476, T_180477)
+ enq.ready := T_180478
+ accessor T_180479 = ram[UInt<1>(0)]
+ wire T_180480 : UInt<17>
+ T_180480 := T_180479
+ when maybe_flow : T_180480 := enq.bits
+ deq.bits := T_180480
+ node ptr_diff = subw(UInt<1>(0), UInt<1>(0))
+ node T_180481 = and(maybe_full, ptr_match)
+ node T_180482 = cat(T_180481, ptr_diff)
+ count := T_180482
+ module SlowIO :
+ input out_fast : {flip ready : UInt<1>, valid : UInt<1>, bits : UInt<17>}
+ output out_slow : {flip ready : UInt<1>, valid : UInt<1>, bits : UInt<17>}
+ output in_fast : {flip ready : UInt<1>, valid : UInt<1>, bits : UInt<17>}
+ input in_slow : {flip ready : UInt<1>, valid : UInt<1>, bits : UInt<17>}
+ output clk_slow : UInt<1>
+ input set_divisor : {valid : UInt<1>, bits : UInt<32>}
+ output divisor : UInt<32>
+
+ reg divisor : UInt<9>
+ onreset divisor := UInt<9>(511)
+ reg d_shadow : UInt<9>
+ onreset d_shadow := UInt<9>(511)
+ reg hold : UInt<7>
+ onreset hold := UInt<7>(127)
+ reg h_shadow : UInt<7>
+ onreset h_shadow := UInt<7>(127)
+ when set_divisor.valid :
+ node T_180483 = bits(set_divisor.bits, 8, 0)
+ d_shadow := T_180483
+ node T_180484 = bits(set_divisor.bits, 24, 16)
+ h_shadow := T_180484
+ node T_180485 = dshl(hold, UInt<5>(16))
+ node T_180486 = or(T_180485, divisor)
+ divisor := T_180486
+ reg count : UInt<9>
+ reg myclock : UInt<1>
+ node T_180487 = addw(count, UInt<1>(1))
+ count := T_180487
+ node T_180488 = dshr(divisor, UInt<1>(1))
+ node rising = eq(count, T_180488)
+ node falling = eq(count, divisor)
+ node T_180489 = dshr(divisor, UInt<1>(1))
+ node T_180490 = addw(T_180489, hold)
+ node held = eq(count, T_180490)
+ when falling :
+ divisor := d_shadow
+ hold := h_shadow
+ count := UInt<1>(0)
+ myclock := UInt<1>(0)
+ when rising : myclock := UInt<1>(1)
+ reg in_slow_rdy : UInt<1>
+ onreset in_slow_rdy := UInt<1>(0)
+ reg out_slow_val : UInt<1>
+ onreset out_slow_val := UInt<1>(0)
+ reg out_slow_bits : UInt<17>
+ inst fromhost_q of Queue_123297
+ node T_180491 = and(in_slow.valid, in_slow_rdy)
+ node T_180492 = or(T_180491, reset)
+ node T_180493 = and(rising, T_180492)
+ fromhost_q.enq.valid := T_180493
+ fromhost_q.enq.bits := in_slow.bits
+ fromhost_q.deq <> in_fast
+ inst tohost_q of Queue_123356
+ tohost_q.enq <> out_fast
+ node T_180494 = and(rising, out_slow.ready)
+ node T_180495 = and(T_180494, out_slow_val)
+ tohost_q.deq.ready := T_180495
+ when held :
+ in_slow_rdy := fromhost_q.enq.ready
+ out_slow_val := tohost_q.deq.valid
+ wire T_180496 : UInt<17>
+ T_180496 := tohost_q.deq.bits
+ when reset : T_180496 := fromhost_q.deq.bits
+ out_slow_bits := T_180496
+ in_slow.ready := in_slow_rdy
+ out_slow.valid := out_slow_val
+ out_slow.bits := out_slow_bits
+ clk_slow := myclock
+ module Uncore :
+ output host : {clk : UInt<1>, clk_edge : UInt<1>, flip in : {flip ready : UInt<1>, valid : UInt<1>, bits : UInt<16>}, out : {flip ready : UInt<1>, valid : UInt<1>, bits : UInt<16>}, debug_stats_pcr : UInt<1>}
+ output mem__ : {req_cmd : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr : UInt<26>, tag : UInt<5>, rw : UInt<1>}}, req_data : {flip ready : UInt<1>, valid : UInt<1>, bits : {data : UInt<128>}}, flip resp : {flip ready : UInt<1>, valid : UInt<1>, bits : {data : UInt<128>, tag : UInt<5>}}}[1]
+ input tiles_cached : {acquire : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_block : UInt<26>, client_xact_id : UInt<1>, addr_beat : UInt<2>, data : UInt<128>, is_builtin_type : UInt<1>, a_type : UInt<3>, union : UInt<17>}}, flip grant : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_beat : UInt<2>, data : UInt<128>, client_xact_id : UInt<1>, manager_xact_id : UInt<2>, is_builtin_type : UInt<1>, g_type : UInt<4>}}, flip probe : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_block : UInt<26>, p_type : UInt<2>}}, release : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_block : UInt<26>, client_xact_id : UInt<1>, addr_beat : UInt<2>, data : UInt<128>, r_type : UInt<3>, voluntary : UInt<1>}}}[1]
+ input tiles_uncached : {acquire : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_block : UInt<26>, client_xact_id : UInt<1>, addr_beat : UInt<2>, data : UInt<128>, is_builtin_type : UInt<1>, a_type : UInt<3>, union : UInt<17>}}, flip grant : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_beat : UInt<2>, data : UInt<128>, client_xact_id : UInt<1>, manager_xact_id : UInt<2>, is_builtin_type : UInt<1>, g_type : UInt<4>}}}[1]
+ input htif : {flip reset : UInt<1>, flip id : UInt<1>, flip pcr_req : {flip ready : UInt<1>, valid : UInt<1>, bits : {rw : UInt<1>, addr : UInt<12>, data : UInt<64>}}, pcr_rep : {flip ready : UInt<1>, valid : UInt<1>, bits : UInt<64>}, ipi_req : {flip ready : UInt<1>, valid : UInt<1>, bits : UInt<1>}, flip ipi_rep : {flip ready : UInt<1>, valid : UInt<1>, bits : UInt<1>}, debug_stats_pcr : UInt<1>}[1]
+ output mem_backup_ctrl : {flip en : UInt<1>, flip in_valid : UInt<1>, flip out_ready : UInt<1>, out_valid : UInt<1>}
+
+ wire mem__ : {req_cmd : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr : UInt<26>, tag : UInt<5>, rw : UInt<1>}}, req_data : {flip ready : UInt<1>, valid : UInt<1>, bits : {data : UInt<128>}}, flip resp : {flip ready : UInt<1>, valid : UInt<1>, bits : {data : UInt<128>, tag : UInt<5>}}}[1]
+ mem__[0] := T_180497
+ wire T_180498 : UInt<3>[3]
+ T_180498[0] := UInt<3>(0)
+ T_180498[1] := UInt<3>(1)
+ T_180498[2] := UInt<3>(2)
+ wire T_180499 : UInt<2>[2]
+ T_180499[0] := UInt<2>(0)
+ T_180499[1] := UInt<2>(1)
+ wire T_180500 : UInt<2>[3]
+ T_180500[0] := UInt<2>(1)
+ T_180500[1] := UInt<2>(2)
+ T_180500[2] := UInt<2>(3)
+ wire T_180501 : UInt<2>[2]
+ T_180501[0] := UInt<2>(2)
+ T_180501[1] := UInt<2>(3)
+ wire T_180502 : UInt<2>[1]
+ T_180502[0] := UInt<2>(3)
+ wire T_180503 : UInt<3>[3]
+ T_180503[0] := UInt<3>(0)
+ T_180503[1] := UInt<3>(1)
+ T_180503[2] := UInt<3>(2)
+ wire T_180504 : UInt<2>[2]
+ T_180504[0] := UInt<2>(0)
+ T_180504[1] := UInt<2>(1)
+ wire T_180505 : UInt<2>[3]
+ T_180505[0] := UInt<2>(1)
+ T_180505[1] := UInt<2>(2)
+ T_180505[2] := UInt<2>(3)
+ wire T_180506 : UInt<2>[2]
+ T_180506[0] := UInt<2>(2)
+ T_180506[1] := UInt<2>(3)
+ wire T_180507 : UInt<2>[1]
+ T_180507[0] := UInt<2>(3)
+ wire T_180508 : UInt<3>[3]
+ T_180508[0] := UInt<3>(0)
+ T_180508[1] := UInt<3>(1)
+ T_180508[2] := UInt<3>(2)
+ wire T_180509 : UInt<2>[2]
+ T_180509[0] := UInt<2>(0)
+ T_180509[1] := UInt<2>(1)
+ wire T_180510 : UInt<2>[3]
+ T_180510[0] := UInt<2>(1)
+ T_180510[1] := UInt<2>(2)
+ T_180510[2] := UInt<2>(3)
+ wire T_180511 : UInt<2>[2]
+ T_180511[0] := UInt<2>(2)
+ T_180511[1] := UInt<2>(3)
+ wire T_180512 : UInt<2>[1]
+ T_180512[0] := UInt<2>(3)
+ wire T_180513 : UInt<3>[3]
+ T_180513[0] := UInt<3>(0)
+ T_180513[1] := UInt<3>(1)
+ T_180513[2] := UInt<3>(2)
+ wire T_180514 : UInt<2>[2]
+ T_180514[0] := UInt<2>(0)
+ T_180514[1] := UInt<2>(1)
+ wire T_180515 : UInt<2>[3]
+ T_180515[0] := UInt<2>(1)
+ T_180515[1] := UInt<2>(2)
+ T_180515[2] := UInt<2>(3)
+ wire T_180516 : UInt<2>[2]
+ T_180516[0] := UInt<2>(2)
+ T_180516[1] := UInt<2>(3)
+ wire T_180517 : UInt<2>[1]
+ T_180517[0] := UInt<2>(3)
+ wire T_180518 : UInt<3>[3]
+ T_180518[0] := UInt<3>(0)
+ T_180518[1] := UInt<3>(1)
+ T_180518[2] := UInt<3>(2)
+ wire T_180519 : UInt<2>[2]
+ T_180519[0] := UInt<2>(0)
+ T_180519[1] := UInt<2>(1)
+ wire T_180520 : UInt<2>[3]
+ T_180520[0] := UInt<2>(1)
+ T_180520[1] := UInt<2>(2)
+ T_180520[2] := UInt<2>(3)
+ wire T_180521 : UInt<2>[2]
+ T_180521[0] := UInt<2>(2)
+ T_180521[1] := UInt<2>(3)
+ wire T_180522 : UInt<2>[1]
+ T_180522[0] := UInt<2>(3)
+ wire T_180523 : UInt<3>[3]
+ T_180523[0] := UInt<3>(0)
+ T_180523[1] := UInt<3>(1)
+ T_180523[2] := UInt<3>(2)
+ wire T_180524 : UInt<2>[2]
+ T_180524[0] := UInt<2>(0)
+ T_180524[1] := UInt<2>(1)
+ wire T_180525 : UInt<2>[3]
+ T_180525[0] := UInt<2>(1)
+ T_180525[1] := UInt<2>(2)
+ T_180525[2] := UInt<2>(3)
+ wire T_180526 : UInt<2>[2]
+ T_180526[0] := UInt<2>(2)
+ T_180526[1] := UInt<2>(3)
+ wire T_180527 : UInt<2>[1]
+ T_180527[0] := UInt<2>(3)
+ wire T_180528 : UInt<3>[3]
+ T_180528[0] := UInt<3>(0)
+ T_180528[1] := UInt<3>(1)
+ T_180528[2] := UInt<3>(2)
+ wire T_180529 : UInt<2>[2]
+ T_180529[0] := UInt<2>(0)
+ T_180529[1] := UInt<2>(1)
+ wire T_180530 : UInt<2>[3]
+ T_180530[0] := UInt<2>(1)
+ T_180530[1] := UInt<2>(2)
+ T_180530[2] := UInt<2>(3)
+ wire T_180531 : UInt<2>[2]
+ T_180531[0] := UInt<2>(2)
+ T_180531[1] := UInt<2>(3)
+ wire T_180532 : UInt<2>[1]
+ T_180532[0] := UInt<2>(3)
+ wire T_180533 : UInt<3>[3]
+ T_180533[0] := UInt<3>(0)
+ T_180533[1] := UInt<3>(1)
+ T_180533[2] := UInt<3>(2)
+ wire T_180534 : UInt<2>[2]
+ T_180534[0] := UInt<2>(0)
+ T_180534[1] := UInt<2>(1)
+ wire T_180535 : UInt<2>[3]
+ T_180535[0] := UInt<2>(1)
+ T_180535[1] := UInt<2>(2)
+ T_180535[2] := UInt<2>(3)
+ wire T_180536 : UInt<2>[2]
+ T_180536[0] := UInt<2>(2)
+ T_180536[1] := UInt<2>(3)
+ wire T_180537 : UInt<2>[1]
+ T_180537[0] := UInt<2>(3)
+ wire T_180538 : UInt<3>[3]
+ T_180538[0] := UInt<3>(0)
+ T_180538[1] := UInt<3>(1)
+ T_180538[2] := UInt<3>(2)
+ wire T_180539 : UInt<2>[2]
+ T_180539[0] := UInt<2>(0)
+ T_180539[1] := UInt<2>(1)
+ wire T_180540 : UInt<2>[3]
+ T_180540[0] := UInt<2>(1)
+ T_180540[1] := UInt<2>(2)
+ T_180540[2] := UInt<2>(3)
+ wire T_180541 : UInt<2>[2]
+ T_180541[0] := UInt<2>(2)
+ T_180541[1] := UInt<2>(3)
+ wire T_180542 : UInt<2>[1]
+ T_180542[0] := UInt<2>(3)
+ wire T_180543 : UInt<3>[3]
+ T_180543[0] := UInt<3>(0)
+ T_180543[1] := UInt<3>(1)
+ T_180543[2] := UInt<3>(2)
+ wire T_180544 : UInt<2>[2]
+ T_180544[0] := UInt<2>(0)
+ T_180544[1] := UInt<2>(1)
+ wire T_180545 : UInt<2>[3]
+ T_180545[0] := UInt<2>(1)
+ T_180545[1] := UInt<2>(2)
+ T_180545[2] := UInt<2>(3)
+ wire T_180546 : UInt<2>[2]
+ T_180546[0] := UInt<2>(2)
+ T_180546[1] := UInt<2>(3)
+ wire T_180547 : UInt<2>[1]
+ T_180547[0] := UInt<2>(3)
+ wire T_180548 : UInt<3>[3]
+ T_180548[0] := UInt<3>(0)
+ T_180548[1] := UInt<3>(1)
+ T_180548[2] := UInt<3>(2)
+ wire T_180549 : UInt<2>[2]
+ T_180549[0] := UInt<2>(0)
+ T_180549[1] := UInt<2>(1)
+ wire T_180550 : UInt<2>[3]
+ T_180550[0] := UInt<2>(1)
+ T_180550[1] := UInt<2>(2)
+ T_180550[2] := UInt<2>(3)
+ wire T_180551 : UInt<2>[2]
+ T_180551[0] := UInt<2>(2)
+ T_180551[1] := UInt<2>(3)
+ wire T_180552 : UInt<2>[1]
+ T_180552[0] := UInt<2>(3)
+ wire T_180553 : UInt<3>[3]
+ T_180553[0] := UInt<3>(0)
+ T_180553[1] := UInt<3>(1)
+ T_180553[2] := UInt<3>(2)
+ wire T_180554 : UInt<2>[2]
+ T_180554[0] := UInt<2>(0)
+ T_180554[1] := UInt<2>(1)
+ wire T_180555 : UInt<2>[3]
+ T_180555[0] := UInt<2>(1)
+ T_180555[1] := UInt<2>(2)
+ T_180555[2] := UInt<2>(3)
+ wire T_180556 : UInt<2>[2]
+ T_180556[0] := UInt<2>(2)
+ T_180556[1] := UInt<2>(3)
+ wire T_180557 : UInt<2>[1]
+ T_180557[0] := UInt<2>(3)
+ wire T_180558 : UInt<3>[3]
+ T_180558[0] := UInt<3>(0)
+ T_180558[1] := UInt<3>(1)
+ T_180558[2] := UInt<3>(2)
+ wire T_180559 : UInt<2>[2]
+ T_180559[0] := UInt<2>(0)
+ T_180559[1] := UInt<2>(1)
+ wire T_180560 : UInt<2>[3]
+ T_180560[0] := UInt<2>(1)
+ T_180560[1] := UInt<2>(2)
+ T_180560[2] := UInt<2>(3)
+ wire T_180561 : UInt<2>[2]
+ T_180561[0] := UInt<2>(2)
+ T_180561[1] := UInt<2>(3)
+ wire T_180562 : UInt<2>[1]
+ T_180562[0] := UInt<2>(3)
+ wire T_180563 : UInt<3>[3]
+ T_180563[0] := UInt<3>(0)
+ T_180563[1] := UInt<3>(1)
+ T_180563[2] := UInt<3>(2)
+ wire T_180564 : UInt<2>[2]
+ T_180564[0] := UInt<2>(0)
+ T_180564[1] := UInt<2>(1)
+ wire T_180565 : UInt<2>[3]
+ T_180565[0] := UInt<2>(1)
+ T_180565[1] := UInt<2>(2)
+ T_180565[2] := UInt<2>(3)
+ wire T_180566 : UInt<2>[2]
+ T_180566[0] := UInt<2>(2)
+ T_180566[1] := UInt<2>(3)
+ wire T_180567 : UInt<2>[1]
+ T_180567[0] := UInt<2>(3)
+ wire T_180568 : UInt<3>[3]
+ T_180568[0] := UInt<3>(0)
+ T_180568[1] := UInt<3>(1)
+ T_180568[2] := UInt<3>(2)
+ wire T_180569 : UInt<2>[2]
+ T_180569[0] := UInt<2>(0)
+ T_180569[1] := UInt<2>(1)
+ wire T_180570 : UInt<2>[3]
+ T_180570[0] := UInt<2>(1)
+ T_180570[1] := UInt<2>(2)
+ T_180570[2] := UInt<2>(3)
+ wire T_180571 : UInt<2>[2]
+ T_180571[0] := UInt<2>(2)
+ T_180571[1] := UInt<2>(3)
+ wire T_180572 : UInt<2>[1]
+ T_180572[0] := UInt<2>(3)
+ wire T_180573 : UInt<3>[3]
+ T_180573[0] := UInt<3>(0)
+ T_180573[1] := UInt<3>(1)
+ T_180573[2] := UInt<3>(2)
+ wire T_180574 : UInt<2>[2]
+ T_180574[0] := UInt<2>(0)
+ T_180574[1] := UInt<2>(1)
+ wire T_180575 : UInt<2>[3]
+ T_180575[0] := UInt<2>(1)
+ T_180575[1] := UInt<2>(2)
+ T_180575[2] := UInt<2>(3)
+ wire T_180576 : UInt<2>[2]
+ T_180576[0] := UInt<2>(2)
+ T_180576[1] := UInt<2>(3)
+ wire T_180577 : UInt<2>[1]
+ T_180577[0] := UInt<2>(3)
+ wire T_180578 : UInt<3>[3]
+ T_180578[0] := UInt<3>(0)
+ T_180578[1] := UInt<3>(1)
+ T_180578[2] := UInt<3>(2)
+ wire T_180579 : UInt<2>[2]
+ T_180579[0] := UInt<2>(0)
+ T_180579[1] := UInt<2>(1)
+ wire T_180580 : UInt<2>[3]
+ T_180580[0] := UInt<2>(1)
+ T_180580[1] := UInt<2>(2)
+ T_180580[2] := UInt<2>(3)
+ wire T_180581 : UInt<2>[2]
+ T_180581[0] := UInt<2>(2)
+ T_180581[1] := UInt<2>(3)
+ wire T_180582 : UInt<2>[1]
+ T_180582[0] := UInt<2>(3)
+ wire T_180583 : UInt<3>[3]
+ T_180583[0] := UInt<3>(0)
+ T_180583[1] := UInt<3>(1)
+ T_180583[2] := UInt<3>(2)
+ wire T_180584 : UInt<2>[2]
+ T_180584[0] := UInt<2>(0)
+ T_180584[1] := UInt<2>(1)
+ wire T_180585 : UInt<2>[3]
+ T_180585[0] := UInt<2>(1)
+ T_180585[1] := UInt<2>(2)
+ T_180585[2] := UInt<2>(3)
+ wire T_180586 : UInt<2>[2]
+ T_180586[0] := UInt<2>(2)
+ T_180586[1] := UInt<2>(3)
+ wire T_180587 : UInt<2>[1]
+ T_180587[0] := UInt<2>(3)
+ wire tiles_cached : {acquire : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_block : UInt<26>, client_xact_id : UInt<1>, addr_beat : UInt<2>, data : UInt<128>, is_builtin_type : UInt<1>, a_type : UInt<3>, union : UInt<17>}}, flip grant : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_beat : UInt<2>, data : UInt<128>, client_xact_id : UInt<1>, manager_xact_id : UInt<2>, is_builtin_type : UInt<1>, g_type : UInt<4>}}, flip probe : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_block : UInt<26>, p_type : UInt<2>}}, release : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_block : UInt<26>, client_xact_id : UInt<1>, addr_beat : UInt<2>, data : UInt<128>, r_type : UInt<3>, voluntary : UInt<1>}}}[1]
+ tiles_cached[0] := T_180588
+ wire T_180589 : UInt<3>[3]
+ T_180589[0] := UInt<3>(0)
+ T_180589[1] := UInt<3>(1)
+ T_180589[2] := UInt<3>(2)
+ wire T_180590 : UInt<2>[2]
+ T_180590[0] := UInt<2>(0)
+ T_180590[1] := UInt<2>(1)
+ wire T_180591 : UInt<2>[3]
+ T_180591[0] := UInt<2>(1)
+ T_180591[1] := UInt<2>(2)
+ T_180591[2] := UInt<2>(3)
+ wire T_180592 : UInt<2>[2]
+ T_180592[0] := UInt<2>(2)
+ T_180592[1] := UInt<2>(3)
+ wire T_180593 : UInt<2>[1]
+ T_180593[0] := UInt<2>(3)
+ wire T_180594 : UInt<3>[3]
+ T_180594[0] := UInt<3>(0)
+ T_180594[1] := UInt<3>(1)
+ T_180594[2] := UInt<3>(2)
+ wire T_180595 : UInt<2>[2]
+ T_180595[0] := UInt<2>(0)
+ T_180595[1] := UInt<2>(1)
+ wire T_180596 : UInt<2>[3]
+ T_180596[0] := UInt<2>(1)
+ T_180596[1] := UInt<2>(2)
+ T_180596[2] := UInt<2>(3)
+ wire T_180597 : UInt<2>[2]
+ T_180597[0] := UInt<2>(2)
+ T_180597[1] := UInt<2>(3)
+ wire T_180598 : UInt<2>[1]
+ T_180598[0] := UInt<2>(3)
+ wire T_180599 : UInt<3>[3]
+ T_180599[0] := UInt<3>(0)
+ T_180599[1] := UInt<3>(1)
+ T_180599[2] := UInt<3>(2)
+ wire T_180600 : UInt<2>[2]
+ T_180600[0] := UInt<2>(0)
+ T_180600[1] := UInt<2>(1)
+ wire T_180601 : UInt<2>[3]
+ T_180601[0] := UInt<2>(1)
+ T_180601[1] := UInt<2>(2)
+ T_180601[2] := UInt<2>(3)
+ wire T_180602 : UInt<2>[2]
+ T_180602[0] := UInt<2>(2)
+ T_180602[1] := UInt<2>(3)
+ wire T_180603 : UInt<2>[1]
+ T_180603[0] := UInt<2>(3)
+ wire T_180604 : UInt<3>[3]
+ T_180604[0] := UInt<3>(0)
+ T_180604[1] := UInt<3>(1)
+ T_180604[2] := UInt<3>(2)
+ wire T_180605 : UInt<2>[2]
+ T_180605[0] := UInt<2>(0)
+ T_180605[1] := UInt<2>(1)
+ wire T_180606 : UInt<2>[3]
+ T_180606[0] := UInt<2>(1)
+ T_180606[1] := UInt<2>(2)
+ T_180606[2] := UInt<2>(3)
+ wire T_180607 : UInt<2>[2]
+ T_180607[0] := UInt<2>(2)
+ T_180607[1] := UInt<2>(3)
+ wire T_180608 : UInt<2>[1]
+ T_180608[0] := UInt<2>(3)
+ wire T_180609 : UInt<3>[3]
+ T_180609[0] := UInt<3>(0)
+ T_180609[1] := UInt<3>(1)
+ T_180609[2] := UInt<3>(2)
+ wire T_180610 : UInt<2>[2]
+ T_180610[0] := UInt<2>(0)
+ T_180610[1] := UInt<2>(1)
+ wire T_180611 : UInt<2>[3]
+ T_180611[0] := UInt<2>(1)
+ T_180611[1] := UInt<2>(2)
+ T_180611[2] := UInt<2>(3)
+ wire T_180612 : UInt<2>[2]
+ T_180612[0] := UInt<2>(2)
+ T_180612[1] := UInt<2>(3)
+ wire T_180613 : UInt<2>[1]
+ T_180613[0] := UInt<2>(3)
+ wire T_180614 : UInt<3>[3]
+ T_180614[0] := UInt<3>(0)
+ T_180614[1] := UInt<3>(1)
+ T_180614[2] := UInt<3>(2)
+ wire T_180615 : UInt<2>[2]
+ T_180615[0] := UInt<2>(0)
+ T_180615[1] := UInt<2>(1)
+ wire T_180616 : UInt<2>[3]
+ T_180616[0] := UInt<2>(1)
+ T_180616[1] := UInt<2>(2)
+ T_180616[2] := UInt<2>(3)
+ wire T_180617 : UInt<2>[2]
+ T_180617[0] := UInt<2>(2)
+ T_180617[1] := UInt<2>(3)
+ wire T_180618 : UInt<2>[1]
+ T_180618[0] := UInt<2>(3)
+ wire T_180619 : UInt<3>[3]
+ T_180619[0] := UInt<3>(0)
+ T_180619[1] := UInt<3>(1)
+ T_180619[2] := UInt<3>(2)
+ wire T_180620 : UInt<2>[2]
+ T_180620[0] := UInt<2>(0)
+ T_180620[1] := UInt<2>(1)
+ wire T_180621 : UInt<2>[3]
+ T_180621[0] := UInt<2>(1)
+ T_180621[1] := UInt<2>(2)
+ T_180621[2] := UInt<2>(3)
+ wire T_180622 : UInt<2>[2]
+ T_180622[0] := UInt<2>(2)
+ T_180622[1] := UInt<2>(3)
+ wire T_180623 : UInt<2>[1]
+ T_180623[0] := UInt<2>(3)
+ wire T_180624 : UInt<3>[3]
+ T_180624[0] := UInt<3>(0)
+ T_180624[1] := UInt<3>(1)
+ T_180624[2] := UInt<3>(2)
+ wire T_180625 : UInt<2>[2]
+ T_180625[0] := UInt<2>(0)
+ T_180625[1] := UInt<2>(1)
+ wire T_180626 : UInt<2>[3]
+ T_180626[0] := UInt<2>(1)
+ T_180626[1] := UInt<2>(2)
+ T_180626[2] := UInt<2>(3)
+ wire T_180627 : UInt<2>[2]
+ T_180627[0] := UInt<2>(2)
+ T_180627[1] := UInt<2>(3)
+ wire T_180628 : UInt<2>[1]
+ T_180628[0] := UInt<2>(3)
+ wire T_180629 : UInt<3>[3]
+ T_180629[0] := UInt<3>(0)
+ T_180629[1] := UInt<3>(1)
+ T_180629[2] := UInt<3>(2)
+ wire T_180630 : UInt<2>[2]
+ T_180630[0] := UInt<2>(0)
+ T_180630[1] := UInt<2>(1)
+ wire T_180631 : UInt<2>[3]
+ T_180631[0] := UInt<2>(1)
+ T_180631[1] := UInt<2>(2)
+ T_180631[2] := UInt<2>(3)
+ wire T_180632 : UInt<2>[2]
+ T_180632[0] := UInt<2>(2)
+ T_180632[1] := UInt<2>(3)
+ wire T_180633 : UInt<2>[1]
+ T_180633[0] := UInt<2>(3)
+ wire T_180634 : UInt<3>[3]
+ T_180634[0] := UInt<3>(0)
+ T_180634[1] := UInt<3>(1)
+ T_180634[2] := UInt<3>(2)
+ wire T_180635 : UInt<2>[2]
+ T_180635[0] := UInt<2>(0)
+ T_180635[1] := UInt<2>(1)
+ wire T_180636 : UInt<2>[3]
+ T_180636[0] := UInt<2>(1)
+ T_180636[1] := UInt<2>(2)
+ T_180636[2] := UInt<2>(3)
+ wire T_180637 : UInt<2>[2]
+ T_180637[0] := UInt<2>(2)
+ T_180637[1] := UInt<2>(3)
+ wire T_180638 : UInt<2>[1]
+ T_180638[0] := UInt<2>(3)
+ wire tiles_uncached : {acquire : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_block : UInt<26>, client_xact_id : UInt<1>, addr_beat : UInt<2>, data : UInt<128>, is_builtin_type : UInt<1>, a_type : UInt<3>, union : UInt<17>}}, flip grant : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_beat : UInt<2>, data : UInt<128>, client_xact_id : UInt<1>, manager_xact_id : UInt<2>, is_builtin_type : UInt<1>, g_type : UInt<4>}}}[1]
+ tiles_uncached[0] := T_180639
+ wire htif : {flip reset : UInt<1>, flip id : UInt<1>, flip pcr_req : {flip ready : UInt<1>, valid : UInt<1>, bits : {rw : UInt<1>, addr : UInt<12>, data : UInt<64>}}, pcr_rep : {flip ready : UInt<1>, valid : UInt<1>, bits : UInt<64>}, ipi_req : {flip ready : UInt<1>, valid : UInt<1>, bits : UInt<1>}, flip ipi_rep : {flip ready : UInt<1>, valid : UInt<1>, bits : UInt<1>}, debug_stats_pcr : UInt<1>}[1]
+ htif[0] := T_180640
+ inst htif of HTIF
+ inst outmemsys of OuterMemorySystem
+ outmemsys.incoherent[0] := htif.cpu[0].reset
+ outmemsys.htif_uncached <> htif.mem__
+ outmemsys.tiles_uncached[0] <> tiles_uncached[0]
+ outmemsys.tiles_cached[0] <> tiles_cached[0]
+ host.debug_stats_pcr := htif.host.debug_stats_pcr
+ htif.cpu[0] <> htif[0]
+ outmemsys.mem__[0] <> mem__[0]
+ outmemsys.mem_backup_en := mem_backup_ctrl.en
+ inst T_180641 of SlowIO
+ node T_180642 = eq(htif.scr.waddr, UInt<6>(63))
+ node T_180643 = and(htif.scr.wen, T_180642)
+ T_180641.set_divisor.valid := T_180643
+ T_180641.set_divisor.bits := htif.scr.wdata
+ htif.scr.rdata[63] := T_180641.divisor
+ node T_180644 = or(htif.host.out.valid, outmemsys.mem_backup.req.valid)
+ T_180641.out_fast.valid := T_180644
+ wire T_180645 : UInt<16>
+ T_180645 := outmemsys.mem_backup.req.bits
+ when htif.host.out.valid : T_180645 := htif.host.out.bits
+ node T_180646 = cat(htif.host.out.valid, T_180645)
+ T_180641.out_fast.bits := T_180646
+ htif.host.out.ready := T_180641.out_fast.ready
+ node T_180647 = eq(htif.host.out.valid, UInt<1>(0))
+ node T_180648 = and(T_180641.out_fast.ready, T_180647)
+ outmemsys.mem_backup.req.ready := T_180648
+ node T_180649 = bit(T_180641.out_slow.bits, 16)
+ node T_180650 = and(T_180641.out_slow.valid, T_180649)
+ host.out.valid := T_180650
+ host.out.bits := T_180641.out_slow.bits
+ node T_180651 = bit(T_180641.out_slow.bits, 16)
+ node T_180652 = eq(T_180651, UInt<1>(0))
+ node T_180653 = and(T_180641.out_slow.valid, T_180652)
+ mem_backup_ctrl.out_valid := T_180653
+ node T_180654 = bit(T_180641.out_slow.bits, 16)
+ wire T_180655 : UInt<1>
+ T_180655 := mem_backup_ctrl.out_ready
+ when T_180654 : T_180655 := host.out.ready
+ T_180641.out_slow.ready := T_180655
+ node T_180656 = and(mem_backup_ctrl.en, mem_backup_ctrl.in_valid)
+ node T_180657 = or(T_180656, host.in.valid)
+ T_180641.in_slow.valid := T_180657
+ node T_180658 = cat(T_180656, host.in.bits)
+ T_180641.in_slow.bits := T_180658
+ host.in.ready := T_180641.in_slow.ready
+ node T_180659 = bit(T_180641.in_fast.bits, 16)
+ node T_180660 = and(T_180641.in_fast.valid, T_180659)
+ outmemsys.mem_backup.resp.valid := T_180660
+ outmemsys.mem_backup.resp.bits := T_180641.in_fast.bits
+ node T_180661 = bit(T_180641.in_fast.bits, 16)
+ node T_180662 = eq(T_180661, UInt<1>(0))
+ node T_180663 = and(T_180641.in_fast.valid, T_180662)
+ htif.host.in.valid := T_180663
+ htif.host.in.bits := T_180641.in_fast.bits
+ node T_180664 = bit(T_180641.in_fast.bits, 16)
+ wire T_180665 : UInt<1>
+ T_180665 := htif.host.in.ready
+ when T_180664 : T_180665 := UInt<1>(1)
+ T_180641.in_fast.ready := T_180665
+ host.clk := T_180641.clk_slow
+ reg T_180666 : UInt<1>
+ T_180666 := host.clk
+ node T_180667 = eq(T_180666, UInt<1>(0))
+ node T_180668 = and(host.clk, T_180667)
+ reg T_180669 : UInt<1>
+ T_180669 := T_180668
+ host.clk_edge := T_180669
+ module BTB :
+ input req : {valid : UInt<1>, bits : {addr : UInt<39>}}
+ output resp : {valid : UInt<1>, bits : {taken : UInt<1>, mask : UInt<1>, bridx : UInt<1>, target : UInt<39>, entry : UInt<6>, bht : {history : UInt<7>, value : UInt<2>}}}
+ input btb_update : {valid : UInt<1>, bits : {prediction : {valid : UInt<1>, bits : {taken : UInt<1>, mask : UInt<1>, bridx : UInt<1>, target : UInt<39>, entry : UInt<6>, bht : {history : UInt<7>, value : UInt<2>}}}, pc : UInt<39>, target : UInt<39>, taken : UInt<1>, isJump : UInt<1>, isReturn : UInt<1>, br_pc : UInt<39>}}
+ input bht_update : {valid : UInt<1>, bits : {prediction : {valid : UInt<1>, bits : {taken : UInt<1>, mask : UInt<1>, bridx : UInt<1>, target : UInt<39>, entry : UInt<6>, bht : {history : UInt<7>, value : UInt<2>}}}, pc : UInt<39>, taken : UInt<1>, mispredict : UInt<1>}}
+ input ras_update : {valid : UInt<1>, bits : {isCall : UInt<1>, isReturn : UInt<1>, returnAddr : UInt<39>, prediction : {valid : UInt<1>, bits : {taken : UInt<1>, mask : UInt<1>, bridx : UInt<1>, target : UInt<39>, entry : UInt<6>, bht : {history : UInt<7>, value : UInt<2>}}}}}
+ input invalidate : UInt<1>
+
+ reg idxValid : UInt<1>[62]
+ cmem idxs : UInt<12>[62]
+ cmem idxPages : UInt<3>[62]
+ cmem tgts : UInt<12>[62]
+ cmem tgtPages : UInt<3>[62]
+ cmem pages : UInt<27>[6]
+ reg pageValid : UInt<6>
+ onreset pageValid := UInt<6>(0)
+ accessor T_180670 = idxPages[UInt<1>(0)]
+ node T_180671 = dshl(UInt<1>(1), T_180670)
+ node T_180672 = bits(T_180671, 5, 0)
+ accessor T_180673 = idxPages[UInt<1>(1)]
+ node T_180674 = dshl(UInt<1>(1), T_180673)
+ node T_180675 = bits(T_180674, 5, 0)
+ accessor T_180676 = idxPages[UInt<2>(2)]
+ node T_180677 = dshl(UInt<1>(1), T_180676)
+ node T_180678 = bits(T_180677, 5, 0)
+ accessor T_180679 = idxPages[UInt<2>(3)]
+ node T_180680 = dshl(UInt<1>(1), T_180679)
+ node T_180681 = bits(T_180680, 5, 0)
+ accessor T_180682 = idxPages[UInt<3>(4)]
+ node T_180683 = dshl(UInt<1>(1), T_180682)
+ node T_180684 = bits(T_180683, 5, 0)
+ accessor T_180685 = idxPages[UInt<3>(5)]
+ node T_180686 = dshl(UInt<1>(1), T_180685)
+ node T_180687 = bits(T_180686, 5, 0)
+ accessor T_180688 = idxPages[UInt<3>(6)]
+ node T_180689 = dshl(UInt<1>(1), T_180688)
+ node T_180690 = bits(T_180689, 5, 0)
+ accessor T_180691 = idxPages[UInt<3>(7)]
+ node T_180692 = dshl(UInt<1>(1), T_180691)
+ node T_180693 = bits(T_180692, 5, 0)
+ accessor T_180694 = idxPages[UInt<4>(8)]
+ node T_180695 = dshl(UInt<1>(1), T_180694)
+ node T_180696 = bits(T_180695, 5, 0)
+ accessor T_180697 = idxPages[UInt<4>(9)]
+ node T_180698 = dshl(UInt<1>(1), T_180697)
+ node T_180699 = bits(T_180698, 5, 0)
+ accessor T_180700 = idxPages[UInt<4>(10)]
+ node T_180701 = dshl(UInt<1>(1), T_180700)
+ node T_180702 = bits(T_180701, 5, 0)
+ accessor T_180703 = idxPages[UInt<4>(11)]
+ node T_180704 = dshl(UInt<1>(1), T_180703)
+ node T_180705 = bits(T_180704, 5, 0)
+ accessor T_180706 = idxPages[UInt<4>(12)]
+ node T_180707 = dshl(UInt<1>(1), T_180706)
+ node T_180708 = bits(T_180707, 5, 0)
+ accessor T_180709 = idxPages[UInt<4>(13)]
+ node T_180710 = dshl(UInt<1>(1), T_180709)
+ node T_180711 = bits(T_180710, 5, 0)
+ accessor T_180712 = idxPages[UInt<4>(14)]
+ node T_180713 = dshl(UInt<1>(1), T_180712)
+ node T_180714 = bits(T_180713, 5, 0)
+ accessor T_180715 = idxPages[UInt<4>(15)]
+ node T_180716 = dshl(UInt<1>(1), T_180715)
+ node T_180717 = bits(T_180716, 5, 0)
+ accessor T_180718 = idxPages[UInt<5>(16)]
+ node T_180719 = dshl(UInt<1>(1), T_180718)
+ node T_180720 = bits(T_180719, 5, 0)
+ accessor T_180721 = idxPages[UInt<5>(17)]
+ node T_180722 = dshl(UInt<1>(1), T_180721)
+ node T_180723 = bits(T_180722, 5, 0)
+ accessor T_180724 = idxPages[UInt<5>(18)]
+ node T_180725 = dshl(UInt<1>(1), T_180724)
+ node T_180726 = bits(T_180725, 5, 0)
+ accessor T_180727 = idxPages[UInt<5>(19)]
+ node T_180728 = dshl(UInt<1>(1), T_180727)
+ node T_180729 = bits(T_180728, 5, 0)
+ accessor T_180730 = idxPages[UInt<5>(20)]
+ node T_180731 = dshl(UInt<1>(1), T_180730)
+ node T_180732 = bits(T_180731, 5, 0)
+ accessor T_180733 = idxPages[UInt<5>(21)]
+ node T_180734 = dshl(UInt<1>(1), T_180733)
+ node T_180735 = bits(T_180734, 5, 0)
+ accessor T_180736 = idxPages[UInt<5>(22)]
+ node T_180737 = dshl(UInt<1>(1), T_180736)
+ node T_180738 = bits(T_180737, 5, 0)
+ accessor T_180739 = idxPages[UInt<5>(23)]
+ node T_180740 = dshl(UInt<1>(1), T_180739)
+ node T_180741 = bits(T_180740, 5, 0)
+ accessor T_180742 = idxPages[UInt<5>(24)]
+ node T_180743 = dshl(UInt<1>(1), T_180742)
+ node T_180744 = bits(T_180743, 5, 0)
+ accessor T_180745 = idxPages[UInt<5>(25)]
+ node T_180746 = dshl(UInt<1>(1), T_180745)
+ node T_180747 = bits(T_180746, 5, 0)
+ accessor T_180748 = idxPages[UInt<5>(26)]
+ node T_180749 = dshl(UInt<1>(1), T_180748)
+ node T_180750 = bits(T_180749, 5, 0)
+ accessor T_180751 = idxPages[UInt<5>(27)]
+ node T_180752 = dshl(UInt<1>(1), T_180751)
+ node T_180753 = bits(T_180752, 5, 0)
+ accessor T_180754 = idxPages[UInt<5>(28)]
+ node T_180755 = dshl(UInt<1>(1), T_180754)
+ node T_180756 = bits(T_180755, 5, 0)
+ accessor T_180757 = idxPages[UInt<5>(29)]
+ node T_180758 = dshl(UInt<1>(1), T_180757)
+ node T_180759 = bits(T_180758, 5, 0)
+ accessor T_180760 = idxPages[UInt<5>(30)]
+ node T_180761 = dshl(UInt<1>(1), T_180760)
+ node T_180762 = bits(T_180761, 5, 0)
+ accessor T_180763 = idxPages[UInt<5>(31)]
+ node T_180764 = dshl(UInt<1>(1), T_180763)
+ node T_180765 = bits(T_180764, 5, 0)
+ accessor T_180766 = idxPages[UInt<6>(32)]
+ node T_180767 = dshl(UInt<1>(1), T_180766)
+ node T_180768 = bits(T_180767, 5, 0)
+ accessor T_180769 = idxPages[UInt<6>(33)]
+ node T_180770 = dshl(UInt<1>(1), T_180769)
+ node T_180771 = bits(T_180770, 5, 0)
+ accessor T_180772 = idxPages[UInt<6>(34)]
+ node T_180773 = dshl(UInt<1>(1), T_180772)
+ node T_180774 = bits(T_180773, 5, 0)
+ accessor T_180775 = idxPages[UInt<6>(35)]
+ node T_180776 = dshl(UInt<1>(1), T_180775)
+ node T_180777 = bits(T_180776, 5, 0)
+ accessor T_180778 = idxPages[UInt<6>(36)]
+ node T_180779 = dshl(UInt<1>(1), T_180778)
+ node T_180780 = bits(T_180779, 5, 0)
+ accessor T_180781 = idxPages[UInt<6>(37)]
+ node T_180782 = dshl(UInt<1>(1), T_180781)
+ node T_180783 = bits(T_180782, 5, 0)
+ accessor T_180784 = idxPages[UInt<6>(38)]
+ node T_180785 = dshl(UInt<1>(1), T_180784)
+ node T_180786 = bits(T_180785, 5, 0)
+ accessor T_180787 = idxPages[UInt<6>(39)]
+ node T_180788 = dshl(UInt<1>(1), T_180787)
+ node T_180789 = bits(T_180788, 5, 0)
+ accessor T_180790 = idxPages[UInt<6>(40)]
+ node T_180791 = dshl(UInt<1>(1), T_180790)
+ node T_180792 = bits(T_180791, 5, 0)
+ accessor T_180793 = idxPages[UInt<6>(41)]
+ node T_180794 = dshl(UInt<1>(1), T_180793)
+ node T_180795 = bits(T_180794, 5, 0)
+ accessor T_180796 = idxPages[UInt<6>(42)]
+ node T_180797 = dshl(UInt<1>(1), T_180796)
+ node T_180798 = bits(T_180797, 5, 0)
+ accessor T_180799 = idxPages[UInt<6>(43)]
+ node T_180800 = dshl(UInt<1>(1), T_180799)
+ node T_180801 = bits(T_180800, 5, 0)
+ accessor T_180802 = idxPages[UInt<6>(44)]
+ node T_180803 = dshl(UInt<1>(1), T_180802)
+ node T_180804 = bits(T_180803, 5, 0)
+ accessor T_180805 = idxPages[UInt<6>(45)]
+ node T_180806 = dshl(UInt<1>(1), T_180805)
+ node T_180807 = bits(T_180806, 5, 0)
+ accessor T_180808 = idxPages[UInt<6>(46)]
+ node T_180809 = dshl(UInt<1>(1), T_180808)
+ node T_180810 = bits(T_180809, 5, 0)
+ accessor T_180811 = idxPages[UInt<6>(47)]
+ node T_180812 = dshl(UInt<1>(1), T_180811)
+ node T_180813 = bits(T_180812, 5, 0)
+ accessor T_180814 = idxPages[UInt<6>(48)]
+ node T_180815 = dshl(UInt<1>(1), T_180814)
+ node T_180816 = bits(T_180815, 5, 0)
+ accessor T_180817 = idxPages[UInt<6>(49)]
+ node T_180818 = dshl(UInt<1>(1), T_180817)
+ node T_180819 = bits(T_180818, 5, 0)
+ accessor T_180820 = idxPages[UInt<6>(50)]
+ node T_180821 = dshl(UInt<1>(1), T_180820)
+ node T_180822 = bits(T_180821, 5, 0)
+ accessor T_180823 = idxPages[UInt<6>(51)]
+ node T_180824 = dshl(UInt<1>(1), T_180823)
+ node T_180825 = bits(T_180824, 5, 0)
+ accessor T_180826 = idxPages[UInt<6>(52)]
+ node T_180827 = dshl(UInt<1>(1), T_180826)
+ node T_180828 = bits(T_180827, 5, 0)
+ accessor T_180829 = idxPages[UInt<6>(53)]
+ node T_180830 = dshl(UInt<1>(1), T_180829)
+ node T_180831 = bits(T_180830, 5, 0)
+ accessor T_180832 = idxPages[UInt<6>(54)]
+ node T_180833 = dshl(UInt<1>(1), T_180832)
+ node T_180834 = bits(T_180833, 5, 0)
+ accessor T_180835 = idxPages[UInt<6>(55)]
+ node T_180836 = dshl(UInt<1>(1), T_180835)
+ node T_180837 = bits(T_180836, 5, 0)
+ accessor T_180838 = idxPages[UInt<6>(56)]
+ node T_180839 = dshl(UInt<1>(1), T_180838)
+ node T_180840 = bits(T_180839, 5, 0)
+ accessor T_180841 = idxPages[UInt<6>(57)]
+ node T_180842 = dshl(UInt<1>(1), T_180841)
+ node T_180843 = bits(T_180842, 5, 0)
+ accessor T_180844 = idxPages[UInt<6>(58)]
+ node T_180845 = dshl(UInt<1>(1), T_180844)
+ node T_180846 = bits(T_180845, 5, 0)
+ accessor T_180847 = idxPages[UInt<6>(59)]
+ node T_180848 = dshl(UInt<1>(1), T_180847)
+ node T_180849 = bits(T_180848, 5, 0)
+ accessor T_180850 = idxPages[UInt<6>(60)]
+ node T_180851 = dshl(UInt<1>(1), T_180850)
+ node T_180852 = bits(T_180851, 5, 0)
+ accessor T_180853 = idxPages[UInt<6>(61)]
+ node T_180854 = dshl(UInt<1>(1), T_180853)
+ node T_180855 = bits(T_180854, 5, 0)
+ accessor T_180856 = tgtPages[UInt<1>(0)]
+ node T_180857 = dshl(UInt<1>(1), T_180856)
+ node T_180858 = bits(T_180857, 5, 0)
+ accessor T_180859 = tgtPages[UInt<1>(1)]
+ node T_180860 = dshl(UInt<1>(1), T_180859)
+ node T_180861 = bits(T_180860, 5, 0)
+ accessor T_180862 = tgtPages[UInt<2>(2)]
+ node T_180863 = dshl(UInt<1>(1), T_180862)
+ node T_180864 = bits(T_180863, 5, 0)
+ accessor T_180865 = tgtPages[UInt<2>(3)]
+ node T_180866 = dshl(UInt<1>(1), T_180865)
+ node T_180867 = bits(T_180866, 5, 0)
+ accessor T_180868 = tgtPages[UInt<3>(4)]
+ node T_180869 = dshl(UInt<1>(1), T_180868)
+ node T_180870 = bits(T_180869, 5, 0)
+ accessor T_180871 = tgtPages[UInt<3>(5)]
+ node T_180872 = dshl(UInt<1>(1), T_180871)
+ node T_180873 = bits(T_180872, 5, 0)
+ accessor T_180874 = tgtPages[UInt<3>(6)]
+ node T_180875 = dshl(UInt<1>(1), T_180874)
+ node T_180876 = bits(T_180875, 5, 0)
+ accessor T_180877 = tgtPages[UInt<3>(7)]
+ node T_180878 = dshl(UInt<1>(1), T_180877)
+ node T_180879 = bits(T_180878, 5, 0)
+ accessor T_180880 = tgtPages[UInt<4>(8)]
+ node T_180881 = dshl(UInt<1>(1), T_180880)
+ node T_180882 = bits(T_180881, 5, 0)
+ accessor T_180883 = tgtPages[UInt<4>(9)]
+ node T_180884 = dshl(UInt<1>(1), T_180883)
+ node T_180885 = bits(T_180884, 5, 0)
+ accessor T_180886 = tgtPages[UInt<4>(10)]
+ node T_180887 = dshl(UInt<1>(1), T_180886)
+ node T_180888 = bits(T_180887, 5, 0)
+ accessor T_180889 = tgtPages[UInt<4>(11)]
+ node T_180890 = dshl(UInt<1>(1), T_180889)
+ node T_180891 = bits(T_180890, 5, 0)
+ accessor T_180892 = tgtPages[UInt<4>(12)]
+ node T_180893 = dshl(UInt<1>(1), T_180892)
+ node T_180894 = bits(T_180893, 5, 0)
+ accessor T_180895 = tgtPages[UInt<4>(13)]
+ node T_180896 = dshl(UInt<1>(1), T_180895)
+ node T_180897 = bits(T_180896, 5, 0)
+ accessor T_180898 = tgtPages[UInt<4>(14)]
+ node T_180899 = dshl(UInt<1>(1), T_180898)
+ node T_180900 = bits(T_180899, 5, 0)
+ accessor T_180901 = tgtPages[UInt<4>(15)]
+ node T_180902 = dshl(UInt<1>(1), T_180901)
+ node T_180903 = bits(T_180902, 5, 0)
+ accessor T_180904 = tgtPages[UInt<5>(16)]
+ node T_180905 = dshl(UInt<1>(1), T_180904)
+ node T_180906 = bits(T_180905, 5, 0)
+ accessor T_180907 = tgtPages[UInt<5>(17)]
+ node T_180908 = dshl(UInt<1>(1), T_180907)
+ node T_180909 = bits(T_180908, 5, 0)
+ accessor T_180910 = tgtPages[UInt<5>(18)]
+ node T_180911 = dshl(UInt<1>(1), T_180910)
+ node T_180912 = bits(T_180911, 5, 0)
+ accessor T_180913 = tgtPages[UInt<5>(19)]
+ node T_180914 = dshl(UInt<1>(1), T_180913)
+ node T_180915 = bits(T_180914, 5, 0)
+ accessor T_180916 = tgtPages[UInt<5>(20)]
+ node T_180917 = dshl(UInt<1>(1), T_180916)
+ node T_180918 = bits(T_180917, 5, 0)
+ accessor T_180919 = tgtPages[UInt<5>(21)]
+ node T_180920 = dshl(UInt<1>(1), T_180919)
+ node T_180921 = bits(T_180920, 5, 0)
+ accessor T_180922 = tgtPages[UInt<5>(22)]
+ node T_180923 = dshl(UInt<1>(1), T_180922)
+ node T_180924 = bits(T_180923, 5, 0)
+ accessor T_180925 = tgtPages[UInt<5>(23)]
+ node T_180926 = dshl(UInt<1>(1), T_180925)
+ node T_180927 = bits(T_180926, 5, 0)
+ accessor T_180928 = tgtPages[UInt<5>(24)]
+ node T_180929 = dshl(UInt<1>(1), T_180928)
+ node T_180930 = bits(T_180929, 5, 0)
+ accessor T_180931 = tgtPages[UInt<5>(25)]
+ node T_180932 = dshl(UInt<1>(1), T_180931)
+ node T_180933 = bits(T_180932, 5, 0)
+ accessor T_180934 = tgtPages[UInt<5>(26)]
+ node T_180935 = dshl(UInt<1>(1), T_180934)
+ node T_180936 = bits(T_180935, 5, 0)
+ accessor T_180937 = tgtPages[UInt<5>(27)]
+ node T_180938 = dshl(UInt<1>(1), T_180937)
+ node T_180939 = bits(T_180938, 5, 0)
+ accessor T_180940 = tgtPages[UInt<5>(28)]
+ node T_180941 = dshl(UInt<1>(1), T_180940)
+ node T_180942 = bits(T_180941, 5, 0)
+ accessor T_180943 = tgtPages[UInt<5>(29)]
+ node T_180944 = dshl(UInt<1>(1), T_180943)
+ node T_180945 = bits(T_180944, 5, 0)
+ accessor T_180946 = tgtPages[UInt<5>(30)]
+ node T_180947 = dshl(UInt<1>(1), T_180946)
+ node T_180948 = bits(T_180947, 5, 0)
+ accessor T_180949 = tgtPages[UInt<5>(31)]
+ node T_180950 = dshl(UInt<1>(1), T_180949)
+ node T_180951 = bits(T_180950, 5, 0)
+ accessor T_180952 = tgtPages[UInt<6>(32)]
+ node T_180953 = dshl(UInt<1>(1), T_180952)
+ node T_180954 = bits(T_180953, 5, 0)
+ accessor T_180955 = tgtPages[UInt<6>(33)]
+ node T_180956 = dshl(UInt<1>(1), T_180955)
+ node T_180957 = bits(T_180956, 5, 0)
+ accessor T_180958 = tgtPages[UInt<6>(34)]
+ node T_180959 = dshl(UInt<1>(1), T_180958)
+ node T_180960 = bits(T_180959, 5, 0)
+ accessor T_180961 = tgtPages[UInt<6>(35)]
+ node T_180962 = dshl(UInt<1>(1), T_180961)
+ node T_180963 = bits(T_180962, 5, 0)
+ accessor T_180964 = tgtPages[UInt<6>(36)]
+ node T_180965 = dshl(UInt<1>(1), T_180964)
+ node T_180966 = bits(T_180965, 5, 0)
+ accessor T_180967 = tgtPages[UInt<6>(37)]
+ node T_180968 = dshl(UInt<1>(1), T_180967)
+ node T_180969 = bits(T_180968, 5, 0)
+ accessor T_180970 = tgtPages[UInt<6>(38)]
+ node T_180971 = dshl(UInt<1>(1), T_180970)
+ node T_180972 = bits(T_180971, 5, 0)
+ accessor T_180973 = tgtPages[UInt<6>(39)]
+ node T_180974 = dshl(UInt<1>(1), T_180973)
+ node T_180975 = bits(T_180974, 5, 0)
+ accessor T_180976 = tgtPages[UInt<6>(40)]
+ node T_180977 = dshl(UInt<1>(1), T_180976)
+ node T_180978 = bits(T_180977, 5, 0)
+ accessor T_180979 = tgtPages[UInt<6>(41)]
+ node T_180980 = dshl(UInt<1>(1), T_180979)
+ node T_180981 = bits(T_180980, 5, 0)
+ accessor T_180982 = tgtPages[UInt<6>(42)]
+ node T_180983 = dshl(UInt<1>(1), T_180982)
+ node T_180984 = bits(T_180983, 5, 0)
+ accessor T_180985 = tgtPages[UInt<6>(43)]
+ node T_180986 = dshl(UInt<1>(1), T_180985)
+ node T_180987 = bits(T_180986, 5, 0)
+ accessor T_180988 = tgtPages[UInt<6>(44)]
+ node T_180989 = dshl(UInt<1>(1), T_180988)
+ node T_180990 = bits(T_180989, 5, 0)
+ accessor T_180991 = tgtPages[UInt<6>(45)]
+ node T_180992 = dshl(UInt<1>(1), T_180991)
+ node T_180993 = bits(T_180992, 5, 0)
+ accessor T_180994 = tgtPages[UInt<6>(46)]
+ node T_180995 = dshl(UInt<1>(1), T_180994)
+ node T_180996 = bits(T_180995, 5, 0)
+ accessor T_180997 = tgtPages[UInt<6>(47)]
+ node T_180998 = dshl(UInt<1>(1), T_180997)
+ node T_180999 = bits(T_180998, 5, 0)
+ accessor T_181000 = tgtPages[UInt<6>(48)]
+ node T_181001 = dshl(UInt<1>(1), T_181000)
+ node T_181002 = bits(T_181001, 5, 0)
+ accessor T_181003 = tgtPages[UInt<6>(49)]
+ node T_181004 = dshl(UInt<1>(1), T_181003)
+ node T_181005 = bits(T_181004, 5, 0)
+ accessor T_181006 = tgtPages[UInt<6>(50)]
+ node T_181007 = dshl(UInt<1>(1), T_181006)
+ node T_181008 = bits(T_181007, 5, 0)
+ accessor T_181009 = tgtPages[UInt<6>(51)]
+ node T_181010 = dshl(UInt<1>(1), T_181009)
+ node T_181011 = bits(T_181010, 5, 0)
+ accessor T_181012 = tgtPages[UInt<6>(52)]
+ node T_181013 = dshl(UInt<1>(1), T_181012)
+ node T_181014 = bits(T_181013, 5, 0)
+ accessor T_181015 = tgtPages[UInt<6>(53)]
+ node T_181016 = dshl(UInt<1>(1), T_181015)
+ node T_181017 = bits(T_181016, 5, 0)
+ accessor T_181018 = tgtPages[UInt<6>(54)]
+ node T_181019 = dshl(UInt<1>(1), T_181018)
+ node T_181020 = bits(T_181019, 5, 0)
+ accessor T_181021 = tgtPages[UInt<6>(55)]
+ node T_181022 = dshl(UInt<1>(1), T_181021)
+ node T_181023 = bits(T_181022, 5, 0)
+ accessor T_181024 = tgtPages[UInt<6>(56)]
+ node T_181025 = dshl(UInt<1>(1), T_181024)
+ node T_181026 = bits(T_181025, 5, 0)
+ accessor T_181027 = tgtPages[UInt<6>(57)]
+ node T_181028 = dshl(UInt<1>(1), T_181027)
+ node T_181029 = bits(T_181028, 5, 0)
+ accessor T_181030 = tgtPages[UInt<6>(58)]
+ node T_181031 = dshl(UInt<1>(1), T_181030)
+ node T_181032 = bits(T_181031, 5, 0)
+ accessor T_181033 = tgtPages[UInt<6>(59)]
+ node T_181034 = dshl(UInt<1>(1), T_181033)
+ node T_181035 = bits(T_181034, 5, 0)
+ accessor T_181036 = tgtPages[UInt<6>(60)]
+ node T_181037 = dshl(UInt<1>(1), T_181036)
+ node T_181038 = bits(T_181037, 5, 0)
+ accessor T_181039 = tgtPages[UInt<6>(61)]
+ node T_181040 = dshl(UInt<1>(1), T_181039)
+ node T_181041 = bits(T_181040, 5, 0)
+ reg useRAS : UInt<1>[62]
+ reg isJump : UInt<1>[62]
+ cmem brIdx : UInt<1>[62]
+ reg T_181042 : UInt<1>
+ onreset T_181042 := UInt<1>(0)
+ T_181042 := btb_update.valid
+ reg T_181043 : {prediction : {valid : UInt<1>, bits : {taken : UInt<1>, mask : UInt<1>, bridx : UInt<1>, target : UInt<39>, entry : UInt<6>, bht : {history : UInt<7>, value : UInt<2>}}}, pc : UInt<39>, target : UInt<39>, taken : UInt<1>, isJump : UInt<1>, isReturn : UInt<1>, br_pc : UInt<39>}
+ when btb_update.valid : T_181043 := btb_update.bits
+ r_btb_update.valid <> T_181042
+ r_btb_update.bits <> T_181043
+ node T_181044 = shr(req.bits.addr, 12)
+ accessor T_181045 = pages[UInt<1>(0)]
+ node T_181046 = eq(T_181045, T_181044)
+ accessor T_181047 = pages[UInt<1>(1)]
+ node T_181048 = eq(T_181047, T_181044)
+ accessor T_181049 = pages[UInt<2>(2)]
+ node T_181050 = eq(T_181049, T_181044)
+ accessor T_181051 = pages[UInt<2>(3)]
+ node T_181052 = eq(T_181051, T_181044)
+ accessor T_181053 = pages[UInt<3>(4)]
+ node T_181054 = eq(T_181053, T_181044)
+ accessor T_181055 = pages[UInt<3>(5)]
+ node T_181056 = eq(T_181055, T_181044)
+ wire T_181057 : UInt<1>[6]
+ T_181057[0] := T_181046
+ T_181057[1] := T_181048
+ T_181057[2] := T_181050
+ T_181057[3] := T_181052
+ T_181057[4] := T_181054
+ T_181057[5] := T_181056
+ node T_181058 = cat(T_181057[4], T_181057[3])
+ node T_181059 = cat(T_181057[5], T_181058)
+ node T_181060 = cat(T_181057[1], T_181057[0])
+ node T_181061 = cat(T_181057[2], T_181060)
+ node T_181062 = cat(T_181059, T_181061)
+ node pageHit = and(T_181062, pageValid)
+ node T_181063 = bits(req.bits.addr, 11, 0)
+ accessor T_181064 = idxs[UInt<1>(0)]
+ node T_181065 = eq(T_181064, T_181063)
+ accessor T_181066 = idxs[UInt<1>(1)]
+ node T_181067 = eq(T_181066, T_181063)
+ accessor T_181068 = idxs[UInt<2>(2)]
+ node T_181069 = eq(T_181068, T_181063)
+ accessor T_181070 = idxs[UInt<2>(3)]
+ node T_181071 = eq(T_181070, T_181063)
+ accessor T_181072 = idxs[UInt<3>(4)]
+ node T_181073 = eq(T_181072, T_181063)
+ accessor T_181074 = idxs[UInt<3>(5)]
+ node T_181075 = eq(T_181074, T_181063)
+ accessor T_181076 = idxs[UInt<3>(6)]
+ node T_181077 = eq(T_181076, T_181063)
+ accessor T_181078 = idxs[UInt<3>(7)]
+ node T_181079 = eq(T_181078, T_181063)
+ accessor T_181080 = idxs[UInt<4>(8)]
+ node T_181081 = eq(T_181080, T_181063)
+ accessor T_181082 = idxs[UInt<4>(9)]
+ node T_181083 = eq(T_181082, T_181063)
+ accessor T_181084 = idxs[UInt<4>(10)]
+ node T_181085 = eq(T_181084, T_181063)
+ accessor T_181086 = idxs[UInt<4>(11)]
+ node T_181087 = eq(T_181086, T_181063)
+ accessor T_181088 = idxs[UInt<4>(12)]
+ node T_181089 = eq(T_181088, T_181063)
+ accessor T_181090 = idxs[UInt<4>(13)]
+ node T_181091 = eq(T_181090, T_181063)
+ accessor T_181092 = idxs[UInt<4>(14)]
+ node T_181093 = eq(T_181092, T_181063)
+ accessor T_181094 = idxs[UInt<4>(15)]
+ node T_181095 = eq(T_181094, T_181063)
+ accessor T_181096 = idxs[UInt<5>(16)]
+ node T_181097 = eq(T_181096, T_181063)
+ accessor T_181098 = idxs[UInt<5>(17)]
+ node T_181099 = eq(T_181098, T_181063)
+ accessor T_181100 = idxs[UInt<5>(18)]
+ node T_181101 = eq(T_181100, T_181063)
+ accessor T_181102 = idxs[UInt<5>(19)]
+ node T_181103 = eq(T_181102, T_181063)
+ accessor T_181104 = idxs[UInt<5>(20)]
+ node T_181105 = eq(T_181104, T_181063)
+ accessor T_181106 = idxs[UInt<5>(21)]
+ node T_181107 = eq(T_181106, T_181063)
+ accessor T_181108 = idxs[UInt<5>(22)]
+ node T_181109 = eq(T_181108, T_181063)
+ accessor T_181110 = idxs[UInt<5>(23)]
+ node T_181111 = eq(T_181110, T_181063)
+ accessor T_181112 = idxs[UInt<5>(24)]
+ node T_181113 = eq(T_181112, T_181063)
+ accessor T_181114 = idxs[UInt<5>(25)]
+ node T_181115 = eq(T_181114, T_181063)
+ accessor T_181116 = idxs[UInt<5>(26)]
+ node T_181117 = eq(T_181116, T_181063)
+ accessor T_181118 = idxs[UInt<5>(27)]
+ node T_181119 = eq(T_181118, T_181063)
+ accessor T_181120 = idxs[UInt<5>(28)]
+ node T_181121 = eq(T_181120, T_181063)
+ accessor T_181122 = idxs[UInt<5>(29)]
+ node T_181123 = eq(T_181122, T_181063)
+ accessor T_181124 = idxs[UInt<5>(30)]
+ node T_181125 = eq(T_181124, T_181063)
+ accessor T_181126 = idxs[UInt<5>(31)]
+ node T_181127 = eq(T_181126, T_181063)
+ accessor T_181128 = idxs[UInt<6>(32)]
+ node T_181129 = eq(T_181128, T_181063)
+ accessor T_181130 = idxs[UInt<6>(33)]
+ node T_181131 = eq(T_181130, T_181063)
+ accessor T_181132 = idxs[UInt<6>(34)]
+ node T_181133 = eq(T_181132, T_181063)
+ accessor T_181134 = idxs[UInt<6>(35)]
+ node T_181135 = eq(T_181134, T_181063)
+ accessor T_181136 = idxs[UInt<6>(36)]
+ node T_181137 = eq(T_181136, T_181063)
+ accessor T_181138 = idxs[UInt<6>(37)]
+ node T_181139 = eq(T_181138, T_181063)
+ accessor T_181140 = idxs[UInt<6>(38)]
+ node T_181141 = eq(T_181140, T_181063)
+ accessor T_181142 = idxs[UInt<6>(39)]
+ node T_181143 = eq(T_181142, T_181063)
+ accessor T_181144 = idxs[UInt<6>(40)]
+ node T_181145 = eq(T_181144, T_181063)
+ accessor T_181146 = idxs[UInt<6>(41)]
+ node T_181147 = eq(T_181146, T_181063)
+ accessor T_181148 = idxs[UInt<6>(42)]
+ node T_181149 = eq(T_181148, T_181063)
+ accessor T_181150 = idxs[UInt<6>(43)]
+ node T_181151 = eq(T_181150, T_181063)
+ accessor T_181152 = idxs[UInt<6>(44)]
+ node T_181153 = eq(T_181152, T_181063)
+ accessor T_181154 = idxs[UInt<6>(45)]
+ node T_181155 = eq(T_181154, T_181063)
+ accessor T_181156 = idxs[UInt<6>(46)]
+ node T_181157 = eq(T_181156, T_181063)
+ accessor T_181158 = idxs[UInt<6>(47)]
+ node T_181159 = eq(T_181158, T_181063)
+ accessor T_181160 = idxs[UInt<6>(48)]
+ node T_181161 = eq(T_181160, T_181063)
+ accessor T_181162 = idxs[UInt<6>(49)]
+ node T_181163 = eq(T_181162, T_181063)
+ accessor T_181164 = idxs[UInt<6>(50)]
+ node T_181165 = eq(T_181164, T_181063)
+ accessor T_181166 = idxs[UInt<6>(51)]
+ node T_181167 = eq(T_181166, T_181063)
+ accessor T_181168 = idxs[UInt<6>(52)]
+ node T_181169 = eq(T_181168, T_181063)
+ accessor T_181170 = idxs[UInt<6>(53)]
+ node T_181171 = eq(T_181170, T_181063)
+ accessor T_181172 = idxs[UInt<6>(54)]
+ node T_181173 = eq(T_181172, T_181063)
+ accessor T_181174 = idxs[UInt<6>(55)]
+ node T_181175 = eq(T_181174, T_181063)
+ accessor T_181176 = idxs[UInt<6>(56)]
+ node T_181177 = eq(T_181176, T_181063)
+ accessor T_181178 = idxs[UInt<6>(57)]
+ node T_181179 = eq(T_181178, T_181063)
+ accessor T_181180 = idxs[UInt<6>(58)]
+ node T_181181 = eq(T_181180, T_181063)
+ accessor T_181182 = idxs[UInt<6>(59)]
+ node T_181183 = eq(T_181182, T_181063)
+ accessor T_181184 = idxs[UInt<6>(60)]
+ node T_181185 = eq(T_181184, T_181063)
+ accessor T_181186 = idxs[UInt<6>(61)]
+ node T_181187 = eq(T_181186, T_181063)
+ wire T_181188 : UInt<1>[62]
+ T_181188[0] := T_181065
+ T_181188[1] := T_181067
+ T_181188[2] := T_181069
+ T_181188[3] := T_181071
+ T_181188[4] := T_181073
+ T_181188[5] := T_181075
+ T_181188[6] := T_181077
+ T_181188[7] := T_181079
+ T_181188[8] := T_181081
+ T_181188[9] := T_181083
+ T_181188[10] := T_181085
+ T_181188[11] := T_181087
+ T_181188[12] := T_181089
+ T_181188[13] := T_181091
+ T_181188[14] := T_181093
+ T_181188[15] := T_181095
+ T_181188[16] := T_181097
+ T_181188[17] := T_181099
+ T_181188[18] := T_181101
+ T_181188[19] := T_181103
+ T_181188[20] := T_181105
+ T_181188[21] := T_181107
+ T_181188[22] := T_181109
+ T_181188[23] := T_181111
+ T_181188[24] := T_181113
+ T_181188[25] := T_181115
+ T_181188[26] := T_181117
+ T_181188[27] := T_181119
+ T_181188[28] := T_181121
+ T_181188[29] := T_181123
+ T_181188[30] := T_181125
+ T_181188[31] := T_181127
+ T_181188[32] := T_181129
+ T_181188[33] := T_181131
+ T_181188[34] := T_181133
+ T_181188[35] := T_181135
+ T_181188[36] := T_181137
+ T_181188[37] := T_181139
+ T_181188[38] := T_181141
+ T_181188[39] := T_181143
+ T_181188[40] := T_181145
+ T_181188[41] := T_181147
+ T_181188[42] := T_181149
+ T_181188[43] := T_181151
+ T_181188[44] := T_181153
+ T_181188[45] := T_181155
+ T_181188[46] := T_181157
+ T_181188[47] := T_181159
+ T_181188[48] := T_181161
+ T_181188[49] := T_181163
+ T_181188[50] := T_181165
+ T_181188[51] := T_181167
+ T_181188[52] := T_181169
+ T_181188[53] := T_181171
+ T_181188[54] := T_181173
+ T_181188[55] := T_181175
+ T_181188[56] := T_181177
+ T_181188[57] := T_181179
+ T_181188[58] := T_181181
+ T_181188[59] := T_181183
+ T_181188[60] := T_181185
+ T_181188[61] := T_181187
+ node T_181189 = cat(T_181188[60], T_181188[59])
+ node T_181190 = cat(T_181188[61], T_181189)
+ node T_181191 = cat(T_181188[58], T_181188[57])
+ node T_181192 = cat(T_181188[56], T_181188[55])
+ node T_181193 = cat(T_181191, T_181192)
+ node T_181194 = cat(T_181190, T_181193)
+ node T_181195 = cat(T_181188[54], T_181188[53])
+ node T_181196 = cat(T_181188[52], T_181188[51])
+ node T_181197 = cat(T_181195, T_181196)
+ node T_181198 = cat(T_181188[50], T_181188[49])
+ node T_181199 = cat(T_181188[48], T_181188[47])
+ node T_181200 = cat(T_181198, T_181199)
+ node T_181201 = cat(T_181197, T_181200)
+ node T_181202 = cat(T_181194, T_181201)
+ node T_181203 = cat(T_181188[46], T_181188[45])
+ node T_181204 = cat(T_181188[44], T_181188[43])
+ node T_181205 = cat(T_181203, T_181204)
+ node T_181206 = cat(T_181188[42], T_181188[41])
+ node T_181207 = cat(T_181188[40], T_181188[39])
+ node T_181208 = cat(T_181206, T_181207)
+ node T_181209 = cat(T_181205, T_181208)
+ node T_181210 = cat(T_181188[38], T_181188[37])
+ node T_181211 = cat(T_181188[36], T_181188[35])
+ node T_181212 = cat(T_181210, T_181211)
+ node T_181213 = cat(T_181188[34], T_181188[33])
+ node T_181214 = cat(T_181188[32], T_181188[31])
+ node T_181215 = cat(T_181213, T_181214)
+ node T_181216 = cat(T_181212, T_181215)
+ node T_181217 = cat(T_181209, T_181216)
+ node T_181218 = cat(T_181202, T_181217)
+ node T_181219 = cat(T_181188[29], T_181188[28])
+ node T_181220 = cat(T_181188[30], T_181219)
+ node T_181221 = cat(T_181188[27], T_181188[26])
+ node T_181222 = cat(T_181188[25], T_181188[24])
+ node T_181223 = cat(T_181221, T_181222)
+ node T_181224 = cat(T_181220, T_181223)
+ node T_181225 = cat(T_181188[23], T_181188[22])
+ node T_181226 = cat(T_181188[21], T_181188[20])
+ node T_181227 = cat(T_181225, T_181226)
+ node T_181228 = cat(T_181188[19], T_181188[18])
+ node T_181229 = cat(T_181188[17], T_181188[16])
+ node T_181230 = cat(T_181228, T_181229)
+ node T_181231 = cat(T_181227, T_181230)
+ node T_181232 = cat(T_181224, T_181231)
+ node T_181233 = cat(T_181188[15], T_181188[14])
+ node T_181234 = cat(T_181188[13], T_181188[12])
+ node T_181235 = cat(T_181233, T_181234)
+ node T_181236 = cat(T_181188[11], T_181188[10])
+ node T_181237 = cat(T_181188[9], T_181188[8])
+ node T_181238 = cat(T_181236, T_181237)
+ node T_181239 = cat(T_181235, T_181238)
+ node T_181240 = cat(T_181188[7], T_181188[6])
+ node T_181241 = cat(T_181188[5], T_181188[4])
+ node T_181242 = cat(T_181240, T_181241)
+ node T_181243 = cat(T_181188[3], T_181188[2])
+ node T_181244 = cat(T_181188[1], T_181188[0])
+ node T_181245 = cat(T_181243, T_181244)
+ node T_181246 = cat(T_181242, T_181245)
+ node T_181247 = cat(T_181239, T_181246)
+ node T_181248 = cat(T_181232, T_181247)
+ node T_181249 = cat(T_181218, T_181248)
+ node T_181250 = and(T_180672, pageHit)
+ node T_181251 = and(T_180675, pageHit)
+ node T_181252 = and(T_180678, pageHit)
+ node T_181253 = and(T_180681, pageHit)
+ node T_181254 = and(T_180684, pageHit)
+ node T_181255 = and(T_180687, pageHit)
+ node T_181256 = and(T_180690, pageHit)
+ node T_181257 = and(T_180693, pageHit)
+ node T_181258 = and(T_180696, pageHit)
+ node T_181259 = and(T_180699, pageHit)
+ node T_181260 = and(T_180702, pageHit)
+ node T_181261 = and(T_180705, pageHit)
+ node T_181262 = and(T_180708, pageHit)
+ node T_181263 = and(T_180711, pageHit)
+ node T_181264 = and(T_180714, pageHit)
+ node T_181265 = and(T_180717, pageHit)
+ node T_181266 = and(T_180720, pageHit)
+ node T_181267 = and(T_180723, pageHit)
+ node T_181268 = and(T_180726, pageHit)
+ node T_181269 = and(T_180729, pageHit)
+ node T_181270 = and(T_180732, pageHit)
+ node T_181271 = and(T_180735, pageHit)
+ node T_181272 = and(T_180738, pageHit)
+ node T_181273 = and(T_180741, pageHit)
+ node T_181274 = and(T_180744, pageHit)
+ node T_181275 = and(T_180747, pageHit)
+ node T_181276 = and(T_180750, pageHit)
+ node T_181277 = and(T_180753, pageHit)
+ node T_181278 = and(T_180756, pageHit)
+ node T_181279 = and(T_180759, pageHit)
+ node T_181280 = and(T_180762, pageHit)
+ node T_181281 = and(T_180765, pageHit)
+ node T_181282 = and(T_180768, pageHit)
+ node T_181283 = and(T_180771, pageHit)
+ node T_181284 = and(T_180774, pageHit)
+ node T_181285 = and(T_180777, pageHit)
+ node T_181286 = and(T_180780, pageHit)
+ node T_181287 = and(T_180783, pageHit)
+ node T_181288 = and(T_180786, pageHit)
+ node T_181289 = and(T_180789, pageHit)
+ node T_181290 = and(T_180792, pageHit)
+ node T_181291 = and(T_180795, pageHit)
+ node T_181292 = and(T_180798, pageHit)
+ node T_181293 = and(T_180801, pageHit)
+ node T_181294 = and(T_180804, pageHit)
+ node T_181295 = and(T_180807, pageHit)
+ node T_181296 = and(T_180810, pageHit)
+ node T_181297 = and(T_180813, pageHit)
+ node T_181298 = and(T_180816, pageHit)
+ node T_181299 = and(T_180819, pageHit)
+ node T_181300 = and(T_180822, pageHit)
+ node T_181301 = and(T_180825, pageHit)
+ node T_181302 = and(T_180828, pageHit)
+ node T_181303 = and(T_180831, pageHit)
+ node T_181304 = and(T_180834, pageHit)
+ node T_181305 = and(T_180837, pageHit)
+ node T_181306 = and(T_180840, pageHit)
+ node T_181307 = and(T_180843, pageHit)
+ node T_181308 = and(T_180846, pageHit)
+ node T_181309 = and(T_180849, pageHit)
+ node T_181310 = and(T_180852, pageHit)
+ node T_181311 = and(T_180855, pageHit)
+ node T_181312 = eq(T_181250, UInt<1>(0))
+ node T_181313 = eq(T_181312, UInt<1>(0))
+ node T_181314 = eq(T_181251, UInt<1>(0))
+ node T_181315 = eq(T_181314, UInt<1>(0))
+ node T_181316 = eq(T_181252, UInt<1>(0))
+ node T_181317 = eq(T_181316, UInt<1>(0))
+ node T_181318 = eq(T_181253, UInt<1>(0))
+ node T_181319 = eq(T_181318, UInt<1>(0))
+ node T_181320 = eq(T_181254, UInt<1>(0))
+ node T_181321 = eq(T_181320, UInt<1>(0))
+ node T_181322 = eq(T_181255, UInt<1>(0))
+ node T_181323 = eq(T_181322, UInt<1>(0))
+ node T_181324 = eq(T_181256, UInt<1>(0))
+ node T_181325 = eq(T_181324, UInt<1>(0))
+ node T_181326 = eq(T_181257, UInt<1>(0))
+ node T_181327 = eq(T_181326, UInt<1>(0))
+ node T_181328 = eq(T_181258, UInt<1>(0))
+ node T_181329 = eq(T_181328, UInt<1>(0))
+ node T_181330 = eq(T_181259, UInt<1>(0))
+ node T_181331 = eq(T_181330, UInt<1>(0))
+ node T_181332 = eq(T_181260, UInt<1>(0))
+ node T_181333 = eq(T_181332, UInt<1>(0))
+ node T_181334 = eq(T_181261, UInt<1>(0))
+ node T_181335 = eq(T_181334, UInt<1>(0))
+ node T_181336 = eq(T_181262, UInt<1>(0))
+ node T_181337 = eq(T_181336, UInt<1>(0))
+ node T_181338 = eq(T_181263, UInt<1>(0))
+ node T_181339 = eq(T_181338, UInt<1>(0))
+ node T_181340 = eq(T_181264, UInt<1>(0))
+ node T_181341 = eq(T_181340, UInt<1>(0))
+ node T_181342 = eq(T_181265, UInt<1>(0))
+ node T_181343 = eq(T_181342, UInt<1>(0))
+ node T_181344 = eq(T_181266, UInt<1>(0))
+ node T_181345 = eq(T_181344, UInt<1>(0))
+ node T_181346 = eq(T_181267, UInt<1>(0))
+ node T_181347 = eq(T_181346, UInt<1>(0))
+ node T_181348 = eq(T_181268, UInt<1>(0))
+ node T_181349 = eq(T_181348, UInt<1>(0))
+ node T_181350 = eq(T_181269, UInt<1>(0))
+ node T_181351 = eq(T_181350, UInt<1>(0))
+ node T_181352 = eq(T_181270, UInt<1>(0))
+ node T_181353 = eq(T_181352, UInt<1>(0))
+ node T_181354 = eq(T_181271, UInt<1>(0))
+ node T_181355 = eq(T_181354, UInt<1>(0))
+ node T_181356 = eq(T_181272, UInt<1>(0))
+ node T_181357 = eq(T_181356, UInt<1>(0))
+ node T_181358 = eq(T_181273, UInt<1>(0))
+ node T_181359 = eq(T_181358, UInt<1>(0))
+ node T_181360 = eq(T_181274, UInt<1>(0))
+ node T_181361 = eq(T_181360, UInt<1>(0))
+ node T_181362 = eq(T_181275, UInt<1>(0))
+ node T_181363 = eq(T_181362, UInt<1>(0))
+ node T_181364 = eq(T_181276, UInt<1>(0))
+ node T_181365 = eq(T_181364, UInt<1>(0))
+ node T_181366 = eq(T_181277, UInt<1>(0))
+ node T_181367 = eq(T_181366, UInt<1>(0))
+ node T_181368 = eq(T_181278, UInt<1>(0))
+ node T_181369 = eq(T_181368, UInt<1>(0))
+ node T_181370 = eq(T_181279, UInt<1>(0))
+ node T_181371 = eq(T_181370, UInt<1>(0))
+ node T_181372 = eq(T_181280, UInt<1>(0))
+ node T_181373 = eq(T_181372, UInt<1>(0))
+ node T_181374 = eq(T_181281, UInt<1>(0))
+ node T_181375 = eq(T_181374, UInt<1>(0))
+ node T_181376 = eq(T_181282, UInt<1>(0))
+ node T_181377 = eq(T_181376, UInt<1>(0))
+ node T_181378 = eq(T_181283, UInt<1>(0))
+ node T_181379 = eq(T_181378, UInt<1>(0))
+ node T_181380 = eq(T_181284, UInt<1>(0))
+ node T_181381 = eq(T_181380, UInt<1>(0))
+ node T_181382 = eq(T_181285, UInt<1>(0))
+ node T_181383 = eq(T_181382, UInt<1>(0))
+ node T_181384 = eq(T_181286, UInt<1>(0))
+ node T_181385 = eq(T_181384, UInt<1>(0))
+ node T_181386 = eq(T_181287, UInt<1>(0))
+ node T_181387 = eq(T_181386, UInt<1>(0))
+ node T_181388 = eq(T_181288, UInt<1>(0))
+ node T_181389 = eq(T_181388, UInt<1>(0))
+ node T_181390 = eq(T_181289, UInt<1>(0))
+ node T_181391 = eq(T_181390, UInt<1>(0))
+ node T_181392 = eq(T_181290, UInt<1>(0))
+ node T_181393 = eq(T_181392, UInt<1>(0))
+ node T_181394 = eq(T_181291, UInt<1>(0))
+ node T_181395 = eq(T_181394, UInt<1>(0))
+ node T_181396 = eq(T_181292, UInt<1>(0))
+ node T_181397 = eq(T_181396, UInt<1>(0))
+ node T_181398 = eq(T_181293, UInt<1>(0))
+ node T_181399 = eq(T_181398, UInt<1>(0))
+ node T_181400 = eq(T_181294, UInt<1>(0))
+ node T_181401 = eq(T_181400, UInt<1>(0))
+ node T_181402 = eq(T_181295, UInt<1>(0))
+ node T_181403 = eq(T_181402, UInt<1>(0))
+ node T_181404 = eq(T_181296, UInt<1>(0))
+ node T_181405 = eq(T_181404, UInt<1>(0))
+ node T_181406 = eq(T_181297, UInt<1>(0))
+ node T_181407 = eq(T_181406, UInt<1>(0))
+ node T_181408 = eq(T_181298, UInt<1>(0))
+ node T_181409 = eq(T_181408, UInt<1>(0))
+ node T_181410 = eq(T_181299, UInt<1>(0))
+ node T_181411 = eq(T_181410, UInt<1>(0))
+ node T_181412 = eq(T_181300, UInt<1>(0))
+ node T_181413 = eq(T_181412, UInt<1>(0))
+ node T_181414 = eq(T_181301, UInt<1>(0))
+ node T_181415 = eq(T_181414, UInt<1>(0))
+ node T_181416 = eq(T_181302, UInt<1>(0))
+ node T_181417 = eq(T_181416, UInt<1>(0))
+ node T_181418 = eq(T_181303, UInt<1>(0))
+ node T_181419 = eq(T_181418, UInt<1>(0))
+ node T_181420 = eq(T_181304, UInt<1>(0))
+ node T_181421 = eq(T_181420, UInt<1>(0))
+ node T_181422 = eq(T_181305, UInt<1>(0))
+ node T_181423 = eq(T_181422, UInt<1>(0))
+ node T_181424 = eq(T_181306, UInt<1>(0))
+ node T_181425 = eq(T_181424, UInt<1>(0))
+ node T_181426 = eq(T_181307, UInt<1>(0))
+ node T_181427 = eq(T_181426, UInt<1>(0))
+ node T_181428 = eq(T_181308, UInt<1>(0))
+ node T_181429 = eq(T_181428, UInt<1>(0))
+ node T_181430 = eq(T_181309, UInt<1>(0))
+ node T_181431 = eq(T_181430, UInt<1>(0))
+ node T_181432 = eq(T_181310, UInt<1>(0))
+ node T_181433 = eq(T_181432, UInt<1>(0))
+ node T_181434 = eq(T_181311, UInt<1>(0))
+ node T_181435 = eq(T_181434, UInt<1>(0))
+ wire T_181436 : UInt<1>[62]
+ T_181436[0] := T_181313
+ T_181436[1] := T_181315
+ T_181436[2] := T_181317
+ T_181436[3] := T_181319
+ T_181436[4] := T_181321
+ T_181436[5] := T_181323
+ T_181436[6] := T_181325
+ T_181436[7] := T_181327
+ T_181436[8] := T_181329
+ T_181436[9] := T_181331
+ T_181436[10] := T_181333
+ T_181436[11] := T_181335
+ T_181436[12] := T_181337
+ T_181436[13] := T_181339
+ T_181436[14] := T_181341
+ T_181436[15] := T_181343
+ T_181436[16] := T_181345
+ T_181436[17] := T_181347
+ T_181436[18] := T_181349
+ T_181436[19] := T_181351
+ T_181436[20] := T_181353
+ T_181436[21] := T_181355
+ T_181436[22] := T_181357
+ T_181436[23] := T_181359
+ T_181436[24] := T_181361
+ T_181436[25] := T_181363
+ T_181436[26] := T_181365
+ T_181436[27] := T_181367
+ T_181436[28] := T_181369
+ T_181436[29] := T_181371
+ T_181436[30] := T_181373
+ T_181436[31] := T_181375
+ T_181436[32] := T_181377
+ T_181436[33] := T_181379
+ T_181436[34] := T_181381
+ T_181436[35] := T_181383
+ T_181436[36] := T_181385
+ T_181436[37] := T_181387
+ T_181436[38] := T_181389
+ T_181436[39] := T_181391
+ T_181436[40] := T_181393
+ T_181436[41] := T_181395
+ T_181436[42] := T_181397
+ T_181436[43] := T_181399
+ T_181436[44] := T_181401
+ T_181436[45] := T_181403
+ T_181436[46] := T_181405
+ T_181436[47] := T_181407
+ T_181436[48] := T_181409
+ T_181436[49] := T_181411
+ T_181436[50] := T_181413
+ T_181436[51] := T_181415
+ T_181436[52] := T_181417
+ T_181436[53] := T_181419
+ T_181436[54] := T_181421
+ T_181436[55] := T_181423
+ T_181436[56] := T_181425
+ T_181436[57] := T_181427
+ T_181436[58] := T_181429
+ T_181436[59] := T_181431
+ T_181436[60] := T_181433
+ T_181436[61] := T_181435
+ node T_181437 = cat(T_181436[60], T_181436[59])
+ node T_181438 = cat(T_181436[61], T_181437)
+ node T_181439 = cat(T_181436[58], T_181436[57])
+ node T_181440 = cat(T_181436[56], T_181436[55])
+ node T_181441 = cat(T_181439, T_181440)
+ node T_181442 = cat(T_181438, T_181441)
+ node T_181443 = cat(T_181436[54], T_181436[53])
+ node T_181444 = cat(T_181436[52], T_181436[51])
+ node T_181445 = cat(T_181443, T_181444)
+ node T_181446 = cat(T_181436[50], T_181436[49])
+ node T_181447 = cat(T_181436[48], T_181436[47])
+ node T_181448 = cat(T_181446, T_181447)
+ node T_181449 = cat(T_181445, T_181448)
+ node T_181450 = cat(T_181442, T_181449)
+ node T_181451 = cat(T_181436[46], T_181436[45])
+ node T_181452 = cat(T_181436[44], T_181436[43])
+ node T_181453 = cat(T_181451, T_181452)
+ node T_181454 = cat(T_181436[42], T_181436[41])
+ node T_181455 = cat(T_181436[40], T_181436[39])
+ node T_181456 = cat(T_181454, T_181455)
+ node T_181457 = cat(T_181453, T_181456)
+ node T_181458 = cat(T_181436[38], T_181436[37])
+ node T_181459 = cat(T_181436[36], T_181436[35])
+ node T_181460 = cat(T_181458, T_181459)
+ node T_181461 = cat(T_181436[34], T_181436[33])
+ node T_181462 = cat(T_181436[32], T_181436[31])
+ node T_181463 = cat(T_181461, T_181462)
+ node T_181464 = cat(T_181460, T_181463)
+ node T_181465 = cat(T_181457, T_181464)
+ node T_181466 = cat(T_181450, T_181465)
+ node T_181467 = cat(T_181436[29], T_181436[28])
+ node T_181468 = cat(T_181436[30], T_181467)
+ node T_181469 = cat(T_181436[27], T_181436[26])
+ node T_181470 = cat(T_181436[25], T_181436[24])
+ node T_181471 = cat(T_181469, T_181470)
+ node T_181472 = cat(T_181468, T_181471)
+ node T_181473 = cat(T_181436[23], T_181436[22])
+ node T_181474 = cat(T_181436[21], T_181436[20])
+ node T_181475 = cat(T_181473, T_181474)
+ node T_181476 = cat(T_181436[19], T_181436[18])
+ node T_181477 = cat(T_181436[17], T_181436[16])
+ node T_181478 = cat(T_181476, T_181477)
+ node T_181479 = cat(T_181475, T_181478)
+ node T_181480 = cat(T_181472, T_181479)
+ node T_181481 = cat(T_181436[15], T_181436[14])
+ node T_181482 = cat(T_181436[13], T_181436[12])
+ node T_181483 = cat(T_181481, T_181482)
+ node T_181484 = cat(T_181436[11], T_181436[10])
+ node T_181485 = cat(T_181436[9], T_181436[8])
+ node T_181486 = cat(T_181484, T_181485)
+ node T_181487 = cat(T_181483, T_181486)
+ node T_181488 = cat(T_181436[7], T_181436[6])
+ node T_181489 = cat(T_181436[5], T_181436[4])
+ node T_181490 = cat(T_181488, T_181489)
+ node T_181491 = cat(T_181436[3], T_181436[2])
+ node T_181492 = cat(T_181436[1], T_181436[0])
+ node T_181493 = cat(T_181491, T_181492)
+ node T_181494 = cat(T_181490, T_181493)
+ node T_181495 = cat(T_181487, T_181494)
+ node T_181496 = cat(T_181480, T_181495)
+ node T_181497 = cat(T_181466, T_181496)
+ node T_181498 = bit(T_181249, 0)
+ node T_181499 = and(idxValid[0], T_181498)
+ node T_181500 = bit(T_181497, 0)
+ node T_181501 = and(T_181499, T_181500)
+ node T_181502 = bit(T_181249, 1)
+ node T_181503 = and(idxValid[1], T_181502)
+ node T_181504 = bit(T_181497, 1)
+ node T_181505 = and(T_181503, T_181504)
+ node T_181506 = bit(T_181249, 2)
+ node T_181507 = and(idxValid[2], T_181506)
+ node T_181508 = bit(T_181497, 2)
+ node T_181509 = and(T_181507, T_181508)
+ node T_181510 = bit(T_181249, 3)
+ node T_181511 = and(idxValid[3], T_181510)
+ node T_181512 = bit(T_181497, 3)
+ node T_181513 = and(T_181511, T_181512)
+ node T_181514 = bit(T_181249, 4)
+ node T_181515 = and(idxValid[4], T_181514)
+ node T_181516 = bit(T_181497, 4)
+ node T_181517 = and(T_181515, T_181516)
+ node T_181518 = bit(T_181249, 5)
+ node T_181519 = and(idxValid[5], T_181518)
+ node T_181520 = bit(T_181497, 5)
+ node T_181521 = and(T_181519, T_181520)
+ node T_181522 = bit(T_181249, 6)
+ node T_181523 = and(idxValid[6], T_181522)
+ node T_181524 = bit(T_181497, 6)
+ node T_181525 = and(T_181523, T_181524)
+ node T_181526 = bit(T_181249, 7)
+ node T_181527 = and(idxValid[7], T_181526)
+ node T_181528 = bit(T_181497, 7)
+ node T_181529 = and(T_181527, T_181528)
+ node T_181530 = bit(T_181249, 8)
+ node T_181531 = and(idxValid[8], T_181530)
+ node T_181532 = bit(T_181497, 8)
+ node T_181533 = and(T_181531, T_181532)
+ node T_181534 = bit(T_181249, 9)
+ node T_181535 = and(idxValid[9], T_181534)
+ node T_181536 = bit(T_181497, 9)
+ node T_181537 = and(T_181535, T_181536)
+ node T_181538 = bit(T_181249, 10)
+ node T_181539 = and(idxValid[10], T_181538)
+ node T_181540 = bit(T_181497, 10)
+ node T_181541 = and(T_181539, T_181540)
+ node T_181542 = bit(T_181249, 11)
+ node T_181543 = and(idxValid[11], T_181542)
+ node T_181544 = bit(T_181497, 11)
+ node T_181545 = and(T_181543, T_181544)
+ node T_181546 = bit(T_181249, 12)
+ node T_181547 = and(idxValid[12], T_181546)
+ node T_181548 = bit(T_181497, 12)
+ node T_181549 = and(T_181547, T_181548)
+ node T_181550 = bit(T_181249, 13)
+ node T_181551 = and(idxValid[13], T_181550)
+ node T_181552 = bit(T_181497, 13)
+ node T_181553 = and(T_181551, T_181552)
+ node T_181554 = bit(T_181249, 14)
+ node T_181555 = and(idxValid[14], T_181554)
+ node T_181556 = bit(T_181497, 14)
+ node T_181557 = and(T_181555, T_181556)
+ node T_181558 = bit(T_181249, 15)
+ node T_181559 = and(idxValid[15], T_181558)
+ node T_181560 = bit(T_181497, 15)
+ node T_181561 = and(T_181559, T_181560)
+ node T_181562 = bit(T_181249, 16)
+ node T_181563 = and(idxValid[16], T_181562)
+ node T_181564 = bit(T_181497, 16)
+ node T_181565 = and(T_181563, T_181564)
+ node T_181566 = bit(T_181249, 17)
+ node T_181567 = and(idxValid[17], T_181566)
+ node T_181568 = bit(T_181497, 17)
+ node T_181569 = and(T_181567, T_181568)
+ node T_181570 = bit(T_181249, 18)
+ node T_181571 = and(idxValid[18], T_181570)
+ node T_181572 = bit(T_181497, 18)
+ node T_181573 = and(T_181571, T_181572)
+ node T_181574 = bit(T_181249, 19)
+ node T_181575 = and(idxValid[19], T_181574)
+ node T_181576 = bit(T_181497, 19)
+ node T_181577 = and(T_181575, T_181576)
+ node T_181578 = bit(T_181249, 20)
+ node T_181579 = and(idxValid[20], T_181578)
+ node T_181580 = bit(T_181497, 20)
+ node T_181581 = and(T_181579, T_181580)
+ node T_181582 = bit(T_181249, 21)
+ node T_181583 = and(idxValid[21], T_181582)
+ node T_181584 = bit(T_181497, 21)
+ node T_181585 = and(T_181583, T_181584)
+ node T_181586 = bit(T_181249, 22)
+ node T_181587 = and(idxValid[22], T_181586)
+ node T_181588 = bit(T_181497, 22)
+ node T_181589 = and(T_181587, T_181588)
+ node T_181590 = bit(T_181249, 23)
+ node T_181591 = and(idxValid[23], T_181590)
+ node T_181592 = bit(T_181497, 23)
+ node T_181593 = and(T_181591, T_181592)
+ node T_181594 = bit(T_181249, 24)
+ node T_181595 = and(idxValid[24], T_181594)
+ node T_181596 = bit(T_181497, 24)
+ node T_181597 = and(T_181595, T_181596)
+ node T_181598 = bit(T_181249, 25)
+ node T_181599 = and(idxValid[25], T_181598)
+ node T_181600 = bit(T_181497, 25)
+ node T_181601 = and(T_181599, T_181600)
+ node T_181602 = bit(T_181249, 26)
+ node T_181603 = and(idxValid[26], T_181602)
+ node T_181604 = bit(T_181497, 26)
+ node T_181605 = and(T_181603, T_181604)
+ node T_181606 = bit(T_181249, 27)
+ node T_181607 = and(idxValid[27], T_181606)
+ node T_181608 = bit(T_181497, 27)
+ node T_181609 = and(T_181607, T_181608)
+ node T_181610 = bit(T_181249, 28)
+ node T_181611 = and(idxValid[28], T_181610)
+ node T_181612 = bit(T_181497, 28)
+ node T_181613 = and(T_181611, T_181612)
+ node T_181614 = bit(T_181249, 29)
+ node T_181615 = and(idxValid[29], T_181614)
+ node T_181616 = bit(T_181497, 29)
+ node T_181617 = and(T_181615, T_181616)
+ node T_181618 = bit(T_181249, 30)
+ node T_181619 = and(idxValid[30], T_181618)
+ node T_181620 = bit(T_181497, 30)
+ node T_181621 = and(T_181619, T_181620)
+ node T_181622 = bit(T_181249, 31)
+ node T_181623 = and(idxValid[31], T_181622)
+ node T_181624 = bit(T_181497, 31)
+ node T_181625 = and(T_181623, T_181624)
+ node T_181626 = bit(T_181249, 32)
+ node T_181627 = and(idxValid[32], T_181626)
+ node T_181628 = bit(T_181497, 32)
+ node T_181629 = and(T_181627, T_181628)
+ node T_181630 = bit(T_181249, 33)
+ node T_181631 = and(idxValid[33], T_181630)
+ node T_181632 = bit(T_181497, 33)
+ node T_181633 = and(T_181631, T_181632)
+ node T_181634 = bit(T_181249, 34)
+ node T_181635 = and(idxValid[34], T_181634)
+ node T_181636 = bit(T_181497, 34)
+ node T_181637 = and(T_181635, T_181636)
+ node T_181638 = bit(T_181249, 35)
+ node T_181639 = and(idxValid[35], T_181638)
+ node T_181640 = bit(T_181497, 35)
+ node T_181641 = and(T_181639, T_181640)
+ node T_181642 = bit(T_181249, 36)
+ node T_181643 = and(idxValid[36], T_181642)
+ node T_181644 = bit(T_181497, 36)
+ node T_181645 = and(T_181643, T_181644)
+ node T_181646 = bit(T_181249, 37)
+ node T_181647 = and(idxValid[37], T_181646)
+ node T_181648 = bit(T_181497, 37)
+ node T_181649 = and(T_181647, T_181648)
+ node T_181650 = bit(T_181249, 38)
+ node T_181651 = and(idxValid[38], T_181650)
+ node T_181652 = bit(T_181497, 38)
+ node T_181653 = and(T_181651, T_181652)
+ node T_181654 = bit(T_181249, 39)
+ node T_181655 = and(idxValid[39], T_181654)
+ node T_181656 = bit(T_181497, 39)
+ node T_181657 = and(T_181655, T_181656)
+ node T_181658 = bit(T_181249, 40)
+ node T_181659 = and(idxValid[40], T_181658)
+ node T_181660 = bit(T_181497, 40)
+ node T_181661 = and(T_181659, T_181660)
+ node T_181662 = bit(T_181249, 41)
+ node T_181663 = and(idxValid[41], T_181662)
+ node T_181664 = bit(T_181497, 41)
+ node T_181665 = and(T_181663, T_181664)
+ node T_181666 = bit(T_181249, 42)
+ node T_181667 = and(idxValid[42], T_181666)
+ node T_181668 = bit(T_181497, 42)
+ node T_181669 = and(T_181667, T_181668)
+ node T_181670 = bit(T_181249, 43)
+ node T_181671 = and(idxValid[43], T_181670)
+ node T_181672 = bit(T_181497, 43)
+ node T_181673 = and(T_181671, T_181672)
+ node T_181674 = bit(T_181249, 44)
+ node T_181675 = and(idxValid[44], T_181674)
+ node T_181676 = bit(T_181497, 44)
+ node T_181677 = and(T_181675, T_181676)
+ node T_181678 = bit(T_181249, 45)
+ node T_181679 = and(idxValid[45], T_181678)
+ node T_181680 = bit(T_181497, 45)
+ node T_181681 = and(T_181679, T_181680)
+ node T_181682 = bit(T_181249, 46)
+ node T_181683 = and(idxValid[46], T_181682)
+ node T_181684 = bit(T_181497, 46)
+ node T_181685 = and(T_181683, T_181684)
+ node T_181686 = bit(T_181249, 47)
+ node T_181687 = and(idxValid[47], T_181686)
+ node T_181688 = bit(T_181497, 47)
+ node T_181689 = and(T_181687, T_181688)
+ node T_181690 = bit(T_181249, 48)
+ node T_181691 = and(idxValid[48], T_181690)
+ node T_181692 = bit(T_181497, 48)
+ node T_181693 = and(T_181691, T_181692)
+ node T_181694 = bit(T_181249, 49)
+ node T_181695 = and(idxValid[49], T_181694)
+ node T_181696 = bit(T_181497, 49)
+ node T_181697 = and(T_181695, T_181696)
+ node T_181698 = bit(T_181249, 50)
+ node T_181699 = and(idxValid[50], T_181698)
+ node T_181700 = bit(T_181497, 50)
+ node T_181701 = and(T_181699, T_181700)
+ node T_181702 = bit(T_181249, 51)
+ node T_181703 = and(idxValid[51], T_181702)
+ node T_181704 = bit(T_181497, 51)
+ node T_181705 = and(T_181703, T_181704)
+ node T_181706 = bit(T_181249, 52)
+ node T_181707 = and(idxValid[52], T_181706)
+ node T_181708 = bit(T_181497, 52)
+ node T_181709 = and(T_181707, T_181708)
+ node T_181710 = bit(T_181249, 53)
+ node T_181711 = and(idxValid[53], T_181710)
+ node T_181712 = bit(T_181497, 53)
+ node T_181713 = and(T_181711, T_181712)
+ node T_181714 = bit(T_181249, 54)
+ node T_181715 = and(idxValid[54], T_181714)
+ node T_181716 = bit(T_181497, 54)
+ node T_181717 = and(T_181715, T_181716)
+ node T_181718 = bit(T_181249, 55)
+ node T_181719 = and(idxValid[55], T_181718)
+ node T_181720 = bit(T_181497, 55)
+ node T_181721 = and(T_181719, T_181720)
+ node T_181722 = bit(T_181249, 56)
+ node T_181723 = and(idxValid[56], T_181722)
+ node T_181724 = bit(T_181497, 56)
+ node T_181725 = and(T_181723, T_181724)
+ node T_181726 = bit(T_181249, 57)
+ node T_181727 = and(idxValid[57], T_181726)
+ node T_181728 = bit(T_181497, 57)
+ node T_181729 = and(T_181727, T_181728)
+ node T_181730 = bit(T_181249, 58)
+ node T_181731 = and(idxValid[58], T_181730)
+ node T_181732 = bit(T_181497, 58)
+ node T_181733 = and(T_181731, T_181732)
+ node T_181734 = bit(T_181249, 59)
+ node T_181735 = and(idxValid[59], T_181734)
+ node T_181736 = bit(T_181497, 59)
+ node T_181737 = and(T_181735, T_181736)
+ node T_181738 = bit(T_181249, 60)
+ node T_181739 = and(idxValid[60], T_181738)
+ node T_181740 = bit(T_181497, 60)
+ node T_181741 = and(T_181739, T_181740)
+ node T_181742 = bit(T_181249, 61)
+ node T_181743 = and(idxValid[61], T_181742)
+ node T_181744 = bit(T_181497, 61)
+ node T_181745 = and(T_181743, T_181744)
+ wire hits : UInt<1>[62]
+ hits[0] := T_181501
+ hits[1] := T_181505
+ hits[2] := T_181509
+ hits[3] := T_181513
+ hits[4] := T_181517
+ hits[5] := T_181521
+ hits[6] := T_181525
+ hits[7] := T_181529
+ hits[8] := T_181533
+ hits[9] := T_181537
+ hits[10] := T_181541
+ hits[11] := T_181545
+ hits[12] := T_181549
+ hits[13] := T_181553
+ hits[14] := T_181557
+ hits[15] := T_181561
+ hits[16] := T_181565
+ hits[17] := T_181569
+ hits[18] := T_181573
+ hits[19] := T_181577
+ hits[20] := T_181581
+ hits[21] := T_181585
+ hits[22] := T_181589
+ hits[23] := T_181593
+ hits[24] := T_181597
+ hits[25] := T_181601
+ hits[26] := T_181605
+ hits[27] := T_181609
+ hits[28] := T_181613
+ hits[29] := T_181617
+ hits[30] := T_181621
+ hits[31] := T_181625
+ hits[32] := T_181629
+ hits[33] := T_181633
+ hits[34] := T_181637
+ hits[35] := T_181641
+ hits[36] := T_181645
+ hits[37] := T_181649
+ hits[38] := T_181653
+ hits[39] := T_181657
+ hits[40] := T_181661
+ hits[41] := T_181665
+ hits[42] := T_181669
+ hits[43] := T_181673
+ hits[44] := T_181677
+ hits[45] := T_181681
+ hits[46] := T_181685
+ hits[47] := T_181689
+ hits[48] := T_181693
+ hits[49] := T_181697
+ hits[50] := T_181701
+ hits[51] := T_181705
+ hits[52] := T_181709
+ hits[53] := T_181713
+ hits[54] := T_181717
+ hits[55] := T_181721
+ hits[56] := T_181725
+ hits[57] := T_181729
+ hits[58] := T_181733
+ hits[59] := T_181737
+ hits[60] := T_181741
+ hits[61] := T_181745
+ node T_181746 = shr(r_btb_update.bits.pc, 12)
+ accessor T_181747 = pages[UInt<1>(0)]
+ node T_181748 = eq(T_181747, T_181746)
+ accessor T_181749 = pages[UInt<1>(1)]
+ node T_181750 = eq(T_181749, T_181746)
+ accessor T_181751 = pages[UInt<2>(2)]
+ node T_181752 = eq(T_181751, T_181746)
+ accessor T_181753 = pages[UInt<2>(3)]
+ node T_181754 = eq(T_181753, T_181746)
+ accessor T_181755 = pages[UInt<3>(4)]
+ node T_181756 = eq(T_181755, T_181746)
+ accessor T_181757 = pages[UInt<3>(5)]
+ node T_181758 = eq(T_181757, T_181746)
+ wire T_181759 : UInt<1>[6]
+ T_181759[0] := T_181748
+ T_181759[1] := T_181750
+ T_181759[2] := T_181752
+ T_181759[3] := T_181754
+ T_181759[4] := T_181756
+ T_181759[5] := T_181758
+ node T_181760 = cat(T_181759[4], T_181759[3])
+ node T_181761 = cat(T_181759[5], T_181760)
+ node T_181762 = cat(T_181759[1], T_181759[0])
+ node T_181763 = cat(T_181759[2], T_181762)
+ node T_181764 = cat(T_181761, T_181763)
+ node updatePageHit = and(T_181764, pageValid)
+ node T_181765 = bits(r_btb_update.bits.pc, 11, 0)
+ accessor T_181766 = idxs[UInt<1>(0)]
+ node T_181767 = eq(T_181766, T_181765)
+ accessor T_181768 = idxs[UInt<1>(1)]
+ node T_181769 = eq(T_181768, T_181765)
+ accessor T_181770 = idxs[UInt<2>(2)]
+ node T_181771 = eq(T_181770, T_181765)
+ accessor T_181772 = idxs[UInt<2>(3)]
+ node T_181773 = eq(T_181772, T_181765)
+ accessor T_181774 = idxs[UInt<3>(4)]
+ node T_181775 = eq(T_181774, T_181765)
+ accessor T_181776 = idxs[UInt<3>(5)]
+ node T_181777 = eq(T_181776, T_181765)
+ accessor T_181778 = idxs[UInt<3>(6)]
+ node T_181779 = eq(T_181778, T_181765)
+ accessor T_181780 = idxs[UInt<3>(7)]
+ node T_181781 = eq(T_181780, T_181765)
+ accessor T_181782 = idxs[UInt<4>(8)]
+ node T_181783 = eq(T_181782, T_181765)
+ accessor T_181784 = idxs[UInt<4>(9)]
+ node T_181785 = eq(T_181784, T_181765)
+ accessor T_181786 = idxs[UInt<4>(10)]
+ node T_181787 = eq(T_181786, T_181765)
+ accessor T_181788 = idxs[UInt<4>(11)]
+ node T_181789 = eq(T_181788, T_181765)
+ accessor T_181790 = idxs[UInt<4>(12)]
+ node T_181791 = eq(T_181790, T_181765)
+ accessor T_181792 = idxs[UInt<4>(13)]
+ node T_181793 = eq(T_181792, T_181765)
+ accessor T_181794 = idxs[UInt<4>(14)]
+ node T_181795 = eq(T_181794, T_181765)
+ accessor T_181796 = idxs[UInt<4>(15)]
+ node T_181797 = eq(T_181796, T_181765)
+ accessor T_181798 = idxs[UInt<5>(16)]
+ node T_181799 = eq(T_181798, T_181765)
+ accessor T_181800 = idxs[UInt<5>(17)]
+ node T_181801 = eq(T_181800, T_181765)
+ accessor T_181802 = idxs[UInt<5>(18)]
+ node T_181803 = eq(T_181802, T_181765)
+ accessor T_181804 = idxs[UInt<5>(19)]
+ node T_181805 = eq(T_181804, T_181765)
+ accessor T_181806 = idxs[UInt<5>(20)]
+ node T_181807 = eq(T_181806, T_181765)
+ accessor T_181808 = idxs[UInt<5>(21)]
+ node T_181809 = eq(T_181808, T_181765)
+ accessor T_181810 = idxs[UInt<5>(22)]
+ node T_181811 = eq(T_181810, T_181765)
+ accessor T_181812 = idxs[UInt<5>(23)]
+ node T_181813 = eq(T_181812, T_181765)
+ accessor T_181814 = idxs[UInt<5>(24)]
+ node T_181815 = eq(T_181814, T_181765)
+ accessor T_181816 = idxs[UInt<5>(25)]
+ node T_181817 = eq(T_181816, T_181765)
+ accessor T_181818 = idxs[UInt<5>(26)]
+ node T_181819 = eq(T_181818, T_181765)
+ accessor T_181820 = idxs[UInt<5>(27)]
+ node T_181821 = eq(T_181820, T_181765)
+ accessor T_181822 = idxs[UInt<5>(28)]
+ node T_181823 = eq(T_181822, T_181765)
+ accessor T_181824 = idxs[UInt<5>(29)]
+ node T_181825 = eq(T_181824, T_181765)
+ accessor T_181826 = idxs[UInt<5>(30)]
+ node T_181827 = eq(T_181826, T_181765)
+ accessor T_181828 = idxs[UInt<5>(31)]
+ node T_181829 = eq(T_181828, T_181765)
+ accessor T_181830 = idxs[UInt<6>(32)]
+ node T_181831 = eq(T_181830, T_181765)
+ accessor T_181832 = idxs[UInt<6>(33)]
+ node T_181833 = eq(T_181832, T_181765)
+ accessor T_181834 = idxs[UInt<6>(34)]
+ node T_181835 = eq(T_181834, T_181765)
+ accessor T_181836 = idxs[UInt<6>(35)]
+ node T_181837 = eq(T_181836, T_181765)
+ accessor T_181838 = idxs[UInt<6>(36)]
+ node T_181839 = eq(T_181838, T_181765)
+ accessor T_181840 = idxs[UInt<6>(37)]
+ node T_181841 = eq(T_181840, T_181765)
+ accessor T_181842 = idxs[UInt<6>(38)]
+ node T_181843 = eq(T_181842, T_181765)
+ accessor T_181844 = idxs[UInt<6>(39)]
+ node T_181845 = eq(T_181844, T_181765)
+ accessor T_181846 = idxs[UInt<6>(40)]
+ node T_181847 = eq(T_181846, T_181765)
+ accessor T_181848 = idxs[UInt<6>(41)]
+ node T_181849 = eq(T_181848, T_181765)
+ accessor T_181850 = idxs[UInt<6>(42)]
+ node T_181851 = eq(T_181850, T_181765)
+ accessor T_181852 = idxs[UInt<6>(43)]
+ node T_181853 = eq(T_181852, T_181765)
+ accessor T_181854 = idxs[UInt<6>(44)]
+ node T_181855 = eq(T_181854, T_181765)
+ accessor T_181856 = idxs[UInt<6>(45)]
+ node T_181857 = eq(T_181856, T_181765)
+ accessor T_181858 = idxs[UInt<6>(46)]
+ node T_181859 = eq(T_181858, T_181765)
+ accessor T_181860 = idxs[UInt<6>(47)]
+ node T_181861 = eq(T_181860, T_181765)
+ accessor T_181862 = idxs[UInt<6>(48)]
+ node T_181863 = eq(T_181862, T_181765)
+ accessor T_181864 = idxs[UInt<6>(49)]
+ node T_181865 = eq(T_181864, T_181765)
+ accessor T_181866 = idxs[UInt<6>(50)]
+ node T_181867 = eq(T_181866, T_181765)
+ accessor T_181868 = idxs[UInt<6>(51)]
+ node T_181869 = eq(T_181868, T_181765)
+ accessor T_181870 = idxs[UInt<6>(52)]
+ node T_181871 = eq(T_181870, T_181765)
+ accessor T_181872 = idxs[UInt<6>(53)]
+ node T_181873 = eq(T_181872, T_181765)
+ accessor T_181874 = idxs[UInt<6>(54)]
+ node T_181875 = eq(T_181874, T_181765)
+ accessor T_181876 = idxs[UInt<6>(55)]
+ node T_181877 = eq(T_181876, T_181765)
+ accessor T_181878 = idxs[UInt<6>(56)]
+ node T_181879 = eq(T_181878, T_181765)
+ accessor T_181880 = idxs[UInt<6>(57)]
+ node T_181881 = eq(T_181880, T_181765)
+ accessor T_181882 = idxs[UInt<6>(58)]
+ node T_181883 = eq(T_181882, T_181765)
+ accessor T_181884 = idxs[UInt<6>(59)]
+ node T_181885 = eq(T_181884, T_181765)
+ accessor T_181886 = idxs[UInt<6>(60)]
+ node T_181887 = eq(T_181886, T_181765)
+ accessor T_181888 = idxs[UInt<6>(61)]
+ node T_181889 = eq(T_181888, T_181765)
+ wire T_181890 : UInt<1>[62]
+ T_181890[0] := T_181767
+ T_181890[1] := T_181769
+ T_181890[2] := T_181771
+ T_181890[3] := T_181773
+ T_181890[4] := T_181775
+ T_181890[5] := T_181777
+ T_181890[6] := T_181779
+ T_181890[7] := T_181781
+ T_181890[8] := T_181783
+ T_181890[9] := T_181785
+ T_181890[10] := T_181787
+ T_181890[11] := T_181789
+ T_181890[12] := T_181791
+ T_181890[13] := T_181793
+ T_181890[14] := T_181795
+ T_181890[15] := T_181797
+ T_181890[16] := T_181799
+ T_181890[17] := T_181801
+ T_181890[18] := T_181803
+ T_181890[19] := T_181805
+ T_181890[20] := T_181807
+ T_181890[21] := T_181809
+ T_181890[22] := T_181811
+ T_181890[23] := T_181813
+ T_181890[24] := T_181815
+ T_181890[25] := T_181817
+ T_181890[26] := T_181819
+ T_181890[27] := T_181821
+ T_181890[28] := T_181823
+ T_181890[29] := T_181825
+ T_181890[30] := T_181827
+ T_181890[31] := T_181829
+ T_181890[32] := T_181831
+ T_181890[33] := T_181833
+ T_181890[34] := T_181835
+ T_181890[35] := T_181837
+ T_181890[36] := T_181839
+ T_181890[37] := T_181841
+ T_181890[38] := T_181843
+ T_181890[39] := T_181845
+ T_181890[40] := T_181847
+ T_181890[41] := T_181849
+ T_181890[42] := T_181851
+ T_181890[43] := T_181853
+ T_181890[44] := T_181855
+ T_181890[45] := T_181857
+ T_181890[46] := T_181859
+ T_181890[47] := T_181861
+ T_181890[48] := T_181863
+ T_181890[49] := T_181865
+ T_181890[50] := T_181867
+ T_181890[51] := T_181869
+ T_181890[52] := T_181871
+ T_181890[53] := T_181873
+ T_181890[54] := T_181875
+ T_181890[55] := T_181877
+ T_181890[56] := T_181879
+ T_181890[57] := T_181881
+ T_181890[58] := T_181883
+ T_181890[59] := T_181885
+ T_181890[60] := T_181887
+ T_181890[61] := T_181889
+ node T_181891 = cat(T_181890[60], T_181890[59])
+ node T_181892 = cat(T_181890[61], T_181891)
+ node T_181893 = cat(T_181890[58], T_181890[57])
+ node T_181894 = cat(T_181890[56], T_181890[55])
+ node T_181895 = cat(T_181893, T_181894)
+ node T_181896 = cat(T_181892, T_181895)
+ node T_181897 = cat(T_181890[54], T_181890[53])
+ node T_181898 = cat(T_181890[52], T_181890[51])
+ node T_181899 = cat(T_181897, T_181898)
+ node T_181900 = cat(T_181890[50], T_181890[49])
+ node T_181901 = cat(T_181890[48], T_181890[47])
+ node T_181902 = cat(T_181900, T_181901)
+ node T_181903 = cat(T_181899, T_181902)
+ node T_181904 = cat(T_181896, T_181903)
+ node T_181905 = cat(T_181890[46], T_181890[45])
+ node T_181906 = cat(T_181890[44], T_181890[43])
+ node T_181907 = cat(T_181905, T_181906)
+ node T_181908 = cat(T_181890[42], T_181890[41])
+ node T_181909 = cat(T_181890[40], T_181890[39])
+ node T_181910 = cat(T_181908, T_181909)
+ node T_181911 = cat(T_181907, T_181910)
+ node T_181912 = cat(T_181890[38], T_181890[37])
+ node T_181913 = cat(T_181890[36], T_181890[35])
+ node T_181914 = cat(T_181912, T_181913)
+ node T_181915 = cat(T_181890[34], T_181890[33])
+ node T_181916 = cat(T_181890[32], T_181890[31])
+ node T_181917 = cat(T_181915, T_181916)
+ node T_181918 = cat(T_181914, T_181917)
+ node T_181919 = cat(T_181911, T_181918)
+ node T_181920 = cat(T_181904, T_181919)
+ node T_181921 = cat(T_181890[29], T_181890[28])
+ node T_181922 = cat(T_181890[30], T_181921)
+ node T_181923 = cat(T_181890[27], T_181890[26])
+ node T_181924 = cat(T_181890[25], T_181890[24])
+ node T_181925 = cat(T_181923, T_181924)
+ node T_181926 = cat(T_181922, T_181925)
+ node T_181927 = cat(T_181890[23], T_181890[22])
+ node T_181928 = cat(T_181890[21], T_181890[20])
+ node T_181929 = cat(T_181927, T_181928)
+ node T_181930 = cat(T_181890[19], T_181890[18])
+ node T_181931 = cat(T_181890[17], T_181890[16])
+ node T_181932 = cat(T_181930, T_181931)
+ node T_181933 = cat(T_181929, T_181932)
+ node T_181934 = cat(T_181926, T_181933)
+ node T_181935 = cat(T_181890[15], T_181890[14])
+ node T_181936 = cat(T_181890[13], T_181890[12])
+ node T_181937 = cat(T_181935, T_181936)
+ node T_181938 = cat(T_181890[11], T_181890[10])
+ node T_181939 = cat(T_181890[9], T_181890[8])
+ node T_181940 = cat(T_181938, T_181939)
+ node T_181941 = cat(T_181937, T_181940)
+ node T_181942 = cat(T_181890[7], T_181890[6])
+ node T_181943 = cat(T_181890[5], T_181890[4])
+ node T_181944 = cat(T_181942, T_181943)
+ node T_181945 = cat(T_181890[3], T_181890[2])
+ node T_181946 = cat(T_181890[1], T_181890[0])
+ node T_181947 = cat(T_181945, T_181946)
+ node T_181948 = cat(T_181944, T_181947)
+ node T_181949 = cat(T_181941, T_181948)
+ node T_181950 = cat(T_181934, T_181949)
+ node T_181951 = cat(T_181920, T_181950)
+ node T_181952 = and(T_180672, updatePageHit)
+ node T_181953 = and(T_180675, updatePageHit)
+ node T_181954 = and(T_180678, updatePageHit)
+ node T_181955 = and(T_180681, updatePageHit)
+ node T_181956 = and(T_180684, updatePageHit)
+ node T_181957 = and(T_180687, updatePageHit)
+ node T_181958 = and(T_180690, updatePageHit)
+ node T_181959 = and(T_180693, updatePageHit)
+ node T_181960 = and(T_180696, updatePageHit)
+ node T_181961 = and(T_180699, updatePageHit)
+ node T_181962 = and(T_180702, updatePageHit)
+ node T_181963 = and(T_180705, updatePageHit)
+ node T_181964 = and(T_180708, updatePageHit)
+ node T_181965 = and(T_180711, updatePageHit)
+ node T_181966 = and(T_180714, updatePageHit)
+ node T_181967 = and(T_180717, updatePageHit)
+ node T_181968 = and(T_180720, updatePageHit)
+ node T_181969 = and(T_180723, updatePageHit)
+ node T_181970 = and(T_180726, updatePageHit)
+ node T_181971 = and(T_180729, updatePageHit)
+ node T_181972 = and(T_180732, updatePageHit)
+ node T_181973 = and(T_180735, updatePageHit)
+ node T_181974 = and(T_180738, updatePageHit)
+ node T_181975 = and(T_180741, updatePageHit)
+ node T_181976 = and(T_180744, updatePageHit)
+ node T_181977 = and(T_180747, updatePageHit)
+ node T_181978 = and(T_180750, updatePageHit)
+ node T_181979 = and(T_180753, updatePageHit)
+ node T_181980 = and(T_180756, updatePageHit)
+ node T_181981 = and(T_180759, updatePageHit)
+ node T_181982 = and(T_180762, updatePageHit)
+ node T_181983 = and(T_180765, updatePageHit)
+ node T_181984 = and(T_180768, updatePageHit)
+ node T_181985 = and(T_180771, updatePageHit)
+ node T_181986 = and(T_180774, updatePageHit)
+ node T_181987 = and(T_180777, updatePageHit)
+ node T_181988 = and(T_180780, updatePageHit)
+ node T_181989 = and(T_180783, updatePageHit)
+ node T_181990 = and(T_180786, updatePageHit)
+ node T_181991 = and(T_180789, updatePageHit)
+ node T_181992 = and(T_180792, updatePageHit)
+ node T_181993 = and(T_180795, updatePageHit)
+ node T_181994 = and(T_180798, updatePageHit)
+ node T_181995 = and(T_180801, updatePageHit)
+ node T_181996 = and(T_180804, updatePageHit)
+ node T_181997 = and(T_180807, updatePageHit)
+ node T_181998 = and(T_180810, updatePageHit)
+ node T_181999 = and(T_180813, updatePageHit)
+ node T_182000 = and(T_180816, updatePageHit)
+ node T_182001 = and(T_180819, updatePageHit)
+ node T_182002 = and(T_180822, updatePageHit)
+ node T_182003 = and(T_180825, updatePageHit)
+ node T_182004 = and(T_180828, updatePageHit)
+ node T_182005 = and(T_180831, updatePageHit)
+ node T_182006 = and(T_180834, updatePageHit)
+ node T_182007 = and(T_180837, updatePageHit)
+ node T_182008 = and(T_180840, updatePageHit)
+ node T_182009 = and(T_180843, updatePageHit)
+ node T_182010 = and(T_180846, updatePageHit)
+ node T_182011 = and(T_180849, updatePageHit)
+ node T_182012 = and(T_180852, updatePageHit)
+ node T_182013 = and(T_180855, updatePageHit)
+ node T_182014 = eq(T_181952, UInt<1>(0))
+ node T_182015 = eq(T_182014, UInt<1>(0))
+ node T_182016 = eq(T_181953, UInt<1>(0))
+ node T_182017 = eq(T_182016, UInt<1>(0))
+ node T_182018 = eq(T_181954, UInt<1>(0))
+ node T_182019 = eq(T_182018, UInt<1>(0))
+ node T_182020 = eq(T_181955, UInt<1>(0))
+ node T_182021 = eq(T_182020, UInt<1>(0))
+ node T_182022 = eq(T_181956, UInt<1>(0))
+ node T_182023 = eq(T_182022, UInt<1>(0))
+ node T_182024 = eq(T_181957, UInt<1>(0))
+ node T_182025 = eq(T_182024, UInt<1>(0))
+ node T_182026 = eq(T_181958, UInt<1>(0))
+ node T_182027 = eq(T_182026, UInt<1>(0))
+ node T_182028 = eq(T_181959, UInt<1>(0))
+ node T_182029 = eq(T_182028, UInt<1>(0))
+ node T_182030 = eq(T_181960, UInt<1>(0))
+ node T_182031 = eq(T_182030, UInt<1>(0))
+ node T_182032 = eq(T_181961, UInt<1>(0))
+ node T_182033 = eq(T_182032, UInt<1>(0))
+ node T_182034 = eq(T_181962, UInt<1>(0))
+ node T_182035 = eq(T_182034, UInt<1>(0))
+ node T_182036 = eq(T_181963, UInt<1>(0))
+ node T_182037 = eq(T_182036, UInt<1>(0))
+ node T_182038 = eq(T_181964, UInt<1>(0))
+ node T_182039 = eq(T_182038, UInt<1>(0))
+ node T_182040 = eq(T_181965, UInt<1>(0))
+ node T_182041 = eq(T_182040, UInt<1>(0))
+ node T_182042 = eq(T_181966, UInt<1>(0))
+ node T_182043 = eq(T_182042, UInt<1>(0))
+ node T_182044 = eq(T_181967, UInt<1>(0))
+ node T_182045 = eq(T_182044, UInt<1>(0))
+ node T_182046 = eq(T_181968, UInt<1>(0))
+ node T_182047 = eq(T_182046, UInt<1>(0))
+ node T_182048 = eq(T_181969, UInt<1>(0))
+ node T_182049 = eq(T_182048, UInt<1>(0))
+ node T_182050 = eq(T_181970, UInt<1>(0))
+ node T_182051 = eq(T_182050, UInt<1>(0))
+ node T_182052 = eq(T_181971, UInt<1>(0))
+ node T_182053 = eq(T_182052, UInt<1>(0))
+ node T_182054 = eq(T_181972, UInt<1>(0))
+ node T_182055 = eq(T_182054, UInt<1>(0))
+ node T_182056 = eq(T_181973, UInt<1>(0))
+ node T_182057 = eq(T_182056, UInt<1>(0))
+ node T_182058 = eq(T_181974, UInt<1>(0))
+ node T_182059 = eq(T_182058, UInt<1>(0))
+ node T_182060 = eq(T_181975, UInt<1>(0))
+ node T_182061 = eq(T_182060, UInt<1>(0))
+ node T_182062 = eq(T_181976, UInt<1>(0))
+ node T_182063 = eq(T_182062, UInt<1>(0))
+ node T_182064 = eq(T_181977, UInt<1>(0))
+ node T_182065 = eq(T_182064, UInt<1>(0))
+ node T_182066 = eq(T_181978, UInt<1>(0))
+ node T_182067 = eq(T_182066, UInt<1>(0))
+ node T_182068 = eq(T_181979, UInt<1>(0))
+ node T_182069 = eq(T_182068, UInt<1>(0))
+ node T_182070 = eq(T_181980, UInt<1>(0))
+ node T_182071 = eq(T_182070, UInt<1>(0))
+ node T_182072 = eq(T_181981, UInt<1>(0))
+ node T_182073 = eq(T_182072, UInt<1>(0))
+ node T_182074 = eq(T_181982, UInt<1>(0))
+ node T_182075 = eq(T_182074, UInt<1>(0))
+ node T_182076 = eq(T_181983, UInt<1>(0))
+ node T_182077 = eq(T_182076, UInt<1>(0))
+ node T_182078 = eq(T_181984, UInt<1>(0))
+ node T_182079 = eq(T_182078, UInt<1>(0))
+ node T_182080 = eq(T_181985, UInt<1>(0))
+ node T_182081 = eq(T_182080, UInt<1>(0))
+ node T_182082 = eq(T_181986, UInt<1>(0))
+ node T_182083 = eq(T_182082, UInt<1>(0))
+ node T_182084 = eq(T_181987, UInt<1>(0))
+ node T_182085 = eq(T_182084, UInt<1>(0))
+ node T_182086 = eq(T_181988, UInt<1>(0))
+ node T_182087 = eq(T_182086, UInt<1>(0))
+ node T_182088 = eq(T_181989, UInt<1>(0))
+ node T_182089 = eq(T_182088, UInt<1>(0))
+ node T_182090 = eq(T_181990, UInt<1>(0))
+ node T_182091 = eq(T_182090, UInt<1>(0))
+ node T_182092 = eq(T_181991, UInt<1>(0))
+ node T_182093 = eq(T_182092, UInt<1>(0))
+ node T_182094 = eq(T_181992, UInt<1>(0))
+ node T_182095 = eq(T_182094, UInt<1>(0))
+ node T_182096 = eq(T_181993, UInt<1>(0))
+ node T_182097 = eq(T_182096, UInt<1>(0))
+ node T_182098 = eq(T_181994, UInt<1>(0))
+ node T_182099 = eq(T_182098, UInt<1>(0))
+ node T_182100 = eq(T_181995, UInt<1>(0))
+ node T_182101 = eq(T_182100, UInt<1>(0))
+ node T_182102 = eq(T_181996, UInt<1>(0))
+ node T_182103 = eq(T_182102, UInt<1>(0))
+ node T_182104 = eq(T_181997, UInt<1>(0))
+ node T_182105 = eq(T_182104, UInt<1>(0))
+ node T_182106 = eq(T_181998, UInt<1>(0))
+ node T_182107 = eq(T_182106, UInt<1>(0))
+ node T_182108 = eq(T_181999, UInt<1>(0))
+ node T_182109 = eq(T_182108, UInt<1>(0))
+ node T_182110 = eq(T_182000, UInt<1>(0))
+ node T_182111 = eq(T_182110, UInt<1>(0))
+ node T_182112 = eq(T_182001, UInt<1>(0))
+ node T_182113 = eq(T_182112, UInt<1>(0))
+ node T_182114 = eq(T_182002, UInt<1>(0))
+ node T_182115 = eq(T_182114, UInt<1>(0))
+ node T_182116 = eq(T_182003, UInt<1>(0))
+ node T_182117 = eq(T_182116, UInt<1>(0))
+ node T_182118 = eq(T_182004, UInt<1>(0))
+ node T_182119 = eq(T_182118, UInt<1>(0))
+ node T_182120 = eq(T_182005, UInt<1>(0))
+ node T_182121 = eq(T_182120, UInt<1>(0))
+ node T_182122 = eq(T_182006, UInt<1>(0))
+ node T_182123 = eq(T_182122, UInt<1>(0))
+ node T_182124 = eq(T_182007, UInt<1>(0))
+ node T_182125 = eq(T_182124, UInt<1>(0))
+ node T_182126 = eq(T_182008, UInt<1>(0))
+ node T_182127 = eq(T_182126, UInt<1>(0))
+ node T_182128 = eq(T_182009, UInt<1>(0))
+ node T_182129 = eq(T_182128, UInt<1>(0))
+ node T_182130 = eq(T_182010, UInt<1>(0))
+ node T_182131 = eq(T_182130, UInt<1>(0))
+ node T_182132 = eq(T_182011, UInt<1>(0))
+ node T_182133 = eq(T_182132, UInt<1>(0))
+ node T_182134 = eq(T_182012, UInt<1>(0))
+ node T_182135 = eq(T_182134, UInt<1>(0))
+ node T_182136 = eq(T_182013, UInt<1>(0))
+ node T_182137 = eq(T_182136, UInt<1>(0))
+ wire T_182138 : UInt<1>[62]
+ T_182138[0] := T_182015
+ T_182138[1] := T_182017
+ T_182138[2] := T_182019
+ T_182138[3] := T_182021
+ T_182138[4] := T_182023
+ T_182138[5] := T_182025
+ T_182138[6] := T_182027
+ T_182138[7] := T_182029
+ T_182138[8] := T_182031
+ T_182138[9] := T_182033
+ T_182138[10] := T_182035
+ T_182138[11] := T_182037
+ T_182138[12] := T_182039
+ T_182138[13] := T_182041
+ T_182138[14] := T_182043
+ T_182138[15] := T_182045
+ T_182138[16] := T_182047
+ T_182138[17] := T_182049
+ T_182138[18] := T_182051
+ T_182138[19] := T_182053
+ T_182138[20] := T_182055
+ T_182138[21] := T_182057
+ T_182138[22] := T_182059
+ T_182138[23] := T_182061
+ T_182138[24] := T_182063
+ T_182138[25] := T_182065
+ T_182138[26] := T_182067
+ T_182138[27] := T_182069
+ T_182138[28] := T_182071
+ T_182138[29] := T_182073
+ T_182138[30] := T_182075
+ T_182138[31] := T_182077
+ T_182138[32] := T_182079
+ T_182138[33] := T_182081
+ T_182138[34] := T_182083
+ T_182138[35] := T_182085
+ T_182138[36] := T_182087
+ T_182138[37] := T_182089
+ T_182138[38] := T_182091
+ T_182138[39] := T_182093
+ T_182138[40] := T_182095
+ T_182138[41] := T_182097
+ T_182138[42] := T_182099
+ T_182138[43] := T_182101
+ T_182138[44] := T_182103
+ T_182138[45] := T_182105
+ T_182138[46] := T_182107
+ T_182138[47] := T_182109
+ T_182138[48] := T_182111
+ T_182138[49] := T_182113
+ T_182138[50] := T_182115
+ T_182138[51] := T_182117
+ T_182138[52] := T_182119
+ T_182138[53] := T_182121
+ T_182138[54] := T_182123
+ T_182138[55] := T_182125
+ T_182138[56] := T_182127
+ T_182138[57] := T_182129
+ T_182138[58] := T_182131
+ T_182138[59] := T_182133
+ T_182138[60] := T_182135
+ T_182138[61] := T_182137
+ node T_182139 = cat(T_182138[60], T_182138[59])
+ node T_182140 = cat(T_182138[61], T_182139)
+ node T_182141 = cat(T_182138[58], T_182138[57])
+ node T_182142 = cat(T_182138[56], T_182138[55])
+ node T_182143 = cat(T_182141, T_182142)
+ node T_182144 = cat(T_182140, T_182143)
+ node T_182145 = cat(T_182138[54], T_182138[53])
+ node T_182146 = cat(T_182138[52], T_182138[51])
+ node T_182147 = cat(T_182145, T_182146)
+ node T_182148 = cat(T_182138[50], T_182138[49])
+ node T_182149 = cat(T_182138[48], T_182138[47])
+ node T_182150 = cat(T_182148, T_182149)
+ node T_182151 = cat(T_182147, T_182150)
+ node T_182152 = cat(T_182144, T_182151)
+ node T_182153 = cat(T_182138[46], T_182138[45])
+ node T_182154 = cat(T_182138[44], T_182138[43])
+ node T_182155 = cat(T_182153, T_182154)
+ node T_182156 = cat(T_182138[42], T_182138[41])
+ node T_182157 = cat(T_182138[40], T_182138[39])
+ node T_182158 = cat(T_182156, T_182157)
+ node T_182159 = cat(T_182155, T_182158)
+ node T_182160 = cat(T_182138[38], T_182138[37])
+ node T_182161 = cat(T_182138[36], T_182138[35])
+ node T_182162 = cat(T_182160, T_182161)
+ node T_182163 = cat(T_182138[34], T_182138[33])
+ node T_182164 = cat(T_182138[32], T_182138[31])
+ node T_182165 = cat(T_182163, T_182164)
+ node T_182166 = cat(T_182162, T_182165)
+ node T_182167 = cat(T_182159, T_182166)
+ node T_182168 = cat(T_182152, T_182167)
+ node T_182169 = cat(T_182138[29], T_182138[28])
+ node T_182170 = cat(T_182138[30], T_182169)
+ node T_182171 = cat(T_182138[27], T_182138[26])
+ node T_182172 = cat(T_182138[25], T_182138[24])
+ node T_182173 = cat(T_182171, T_182172)
+ node T_182174 = cat(T_182170, T_182173)
+ node T_182175 = cat(T_182138[23], T_182138[22])
+ node T_182176 = cat(T_182138[21], T_182138[20])
+ node T_182177 = cat(T_182175, T_182176)
+ node T_182178 = cat(T_182138[19], T_182138[18])
+ node T_182179 = cat(T_182138[17], T_182138[16])
+ node T_182180 = cat(T_182178, T_182179)
+ node T_182181 = cat(T_182177, T_182180)
+ node T_182182 = cat(T_182174, T_182181)
+ node T_182183 = cat(T_182138[15], T_182138[14])
+ node T_182184 = cat(T_182138[13], T_182138[12])
+ node T_182185 = cat(T_182183, T_182184)
+ node T_182186 = cat(T_182138[11], T_182138[10])
+ node T_182187 = cat(T_182138[9], T_182138[8])
+ node T_182188 = cat(T_182186, T_182187)
+ node T_182189 = cat(T_182185, T_182188)
+ node T_182190 = cat(T_182138[7], T_182138[6])
+ node T_182191 = cat(T_182138[5], T_182138[4])
+ node T_182192 = cat(T_182190, T_182191)
+ node T_182193 = cat(T_182138[3], T_182138[2])
+ node T_182194 = cat(T_182138[1], T_182138[0])
+ node T_182195 = cat(T_182193, T_182194)
+ node T_182196 = cat(T_182192, T_182195)
+ node T_182197 = cat(T_182189, T_182196)
+ node T_182198 = cat(T_182182, T_182197)
+ node T_182199 = cat(T_182168, T_182198)
+ node T_182200 = bit(T_181951, 0)
+ node T_182201 = and(idxValid[0], T_182200)
+ node T_182202 = bit(T_182199, 0)
+ node T_182203 = and(T_182201, T_182202)
+ node T_182204 = bit(T_181951, 1)
+ node T_182205 = and(idxValid[1], T_182204)
+ node T_182206 = bit(T_182199, 1)
+ node T_182207 = and(T_182205, T_182206)
+ node T_182208 = bit(T_181951, 2)
+ node T_182209 = and(idxValid[2], T_182208)
+ node T_182210 = bit(T_182199, 2)
+ node T_182211 = and(T_182209, T_182210)
+ node T_182212 = bit(T_181951, 3)
+ node T_182213 = and(idxValid[3], T_182212)
+ node T_182214 = bit(T_182199, 3)
+ node T_182215 = and(T_182213, T_182214)
+ node T_182216 = bit(T_181951, 4)
+ node T_182217 = and(idxValid[4], T_182216)
+ node T_182218 = bit(T_182199, 4)
+ node T_182219 = and(T_182217, T_182218)
+ node T_182220 = bit(T_181951, 5)
+ node T_182221 = and(idxValid[5], T_182220)
+ node T_182222 = bit(T_182199, 5)
+ node T_182223 = and(T_182221, T_182222)
+ node T_182224 = bit(T_181951, 6)
+ node T_182225 = and(idxValid[6], T_182224)
+ node T_182226 = bit(T_182199, 6)
+ node T_182227 = and(T_182225, T_182226)
+ node T_182228 = bit(T_181951, 7)
+ node T_182229 = and(idxValid[7], T_182228)
+ node T_182230 = bit(T_182199, 7)
+ node T_182231 = and(T_182229, T_182230)
+ node T_182232 = bit(T_181951, 8)
+ node T_182233 = and(idxValid[8], T_182232)
+ node T_182234 = bit(T_182199, 8)
+ node T_182235 = and(T_182233, T_182234)
+ node T_182236 = bit(T_181951, 9)
+ node T_182237 = and(idxValid[9], T_182236)
+ node T_182238 = bit(T_182199, 9)
+ node T_182239 = and(T_182237, T_182238)
+ node T_182240 = bit(T_181951, 10)
+ node T_182241 = and(idxValid[10], T_182240)
+ node T_182242 = bit(T_182199, 10)
+ node T_182243 = and(T_182241, T_182242)
+ node T_182244 = bit(T_181951, 11)
+ node T_182245 = and(idxValid[11], T_182244)
+ node T_182246 = bit(T_182199, 11)
+ node T_182247 = and(T_182245, T_182246)
+ node T_182248 = bit(T_181951, 12)
+ node T_182249 = and(idxValid[12], T_182248)
+ node T_182250 = bit(T_182199, 12)
+ node T_182251 = and(T_182249, T_182250)
+ node T_182252 = bit(T_181951, 13)
+ node T_182253 = and(idxValid[13], T_182252)
+ node T_182254 = bit(T_182199, 13)
+ node T_182255 = and(T_182253, T_182254)
+ node T_182256 = bit(T_181951, 14)
+ node T_182257 = and(idxValid[14], T_182256)
+ node T_182258 = bit(T_182199, 14)
+ node T_182259 = and(T_182257, T_182258)
+ node T_182260 = bit(T_181951, 15)
+ node T_182261 = and(idxValid[15], T_182260)
+ node T_182262 = bit(T_182199, 15)
+ node T_182263 = and(T_182261, T_182262)
+ node T_182264 = bit(T_181951, 16)
+ node T_182265 = and(idxValid[16], T_182264)
+ node T_182266 = bit(T_182199, 16)
+ node T_182267 = and(T_182265, T_182266)
+ node T_182268 = bit(T_181951, 17)
+ node T_182269 = and(idxValid[17], T_182268)
+ node T_182270 = bit(T_182199, 17)
+ node T_182271 = and(T_182269, T_182270)
+ node T_182272 = bit(T_181951, 18)
+ node T_182273 = and(idxValid[18], T_182272)
+ node T_182274 = bit(T_182199, 18)
+ node T_182275 = and(T_182273, T_182274)
+ node T_182276 = bit(T_181951, 19)
+ node T_182277 = and(idxValid[19], T_182276)
+ node T_182278 = bit(T_182199, 19)
+ node T_182279 = and(T_182277, T_182278)
+ node T_182280 = bit(T_181951, 20)
+ node T_182281 = and(idxValid[20], T_182280)
+ node T_182282 = bit(T_182199, 20)
+ node T_182283 = and(T_182281, T_182282)
+ node T_182284 = bit(T_181951, 21)
+ node T_182285 = and(idxValid[21], T_182284)
+ node T_182286 = bit(T_182199, 21)
+ node T_182287 = and(T_182285, T_182286)
+ node T_182288 = bit(T_181951, 22)
+ node T_182289 = and(idxValid[22], T_182288)
+ node T_182290 = bit(T_182199, 22)
+ node T_182291 = and(T_182289, T_182290)
+ node T_182292 = bit(T_181951, 23)
+ node T_182293 = and(idxValid[23], T_182292)
+ node T_182294 = bit(T_182199, 23)
+ node T_182295 = and(T_182293, T_182294)
+ node T_182296 = bit(T_181951, 24)
+ node T_182297 = and(idxValid[24], T_182296)
+ node T_182298 = bit(T_182199, 24)
+ node T_182299 = and(T_182297, T_182298)
+ node T_182300 = bit(T_181951, 25)
+ node T_182301 = and(idxValid[25], T_182300)
+ node T_182302 = bit(T_182199, 25)
+ node T_182303 = and(T_182301, T_182302)
+ node T_182304 = bit(T_181951, 26)
+ node T_182305 = and(idxValid[26], T_182304)
+ node T_182306 = bit(T_182199, 26)
+ node T_182307 = and(T_182305, T_182306)
+ node T_182308 = bit(T_181951, 27)
+ node T_182309 = and(idxValid[27], T_182308)
+ node T_182310 = bit(T_182199, 27)
+ node T_182311 = and(T_182309, T_182310)
+ node T_182312 = bit(T_181951, 28)
+ node T_182313 = and(idxValid[28], T_182312)
+ node T_182314 = bit(T_182199, 28)
+ node T_182315 = and(T_182313, T_182314)
+ node T_182316 = bit(T_181951, 29)
+ node T_182317 = and(idxValid[29], T_182316)
+ node T_182318 = bit(T_182199, 29)
+ node T_182319 = and(T_182317, T_182318)
+ node T_182320 = bit(T_181951, 30)
+ node T_182321 = and(idxValid[30], T_182320)
+ node T_182322 = bit(T_182199, 30)
+ node T_182323 = and(T_182321, T_182322)
+ node T_182324 = bit(T_181951, 31)
+ node T_182325 = and(idxValid[31], T_182324)
+ node T_182326 = bit(T_182199, 31)
+ node T_182327 = and(T_182325, T_182326)
+ node T_182328 = bit(T_181951, 32)
+ node T_182329 = and(idxValid[32], T_182328)
+ node T_182330 = bit(T_182199, 32)
+ node T_182331 = and(T_182329, T_182330)
+ node T_182332 = bit(T_181951, 33)
+ node T_182333 = and(idxValid[33], T_182332)
+ node T_182334 = bit(T_182199, 33)
+ node T_182335 = and(T_182333, T_182334)
+ node T_182336 = bit(T_181951, 34)
+ node T_182337 = and(idxValid[34], T_182336)
+ node T_182338 = bit(T_182199, 34)
+ node T_182339 = and(T_182337, T_182338)
+ node T_182340 = bit(T_181951, 35)
+ node T_182341 = and(idxValid[35], T_182340)
+ node T_182342 = bit(T_182199, 35)
+ node T_182343 = and(T_182341, T_182342)
+ node T_182344 = bit(T_181951, 36)
+ node T_182345 = and(idxValid[36], T_182344)
+ node T_182346 = bit(T_182199, 36)
+ node T_182347 = and(T_182345, T_182346)
+ node T_182348 = bit(T_181951, 37)
+ node T_182349 = and(idxValid[37], T_182348)
+ node T_182350 = bit(T_182199, 37)
+ node T_182351 = and(T_182349, T_182350)
+ node T_182352 = bit(T_181951, 38)
+ node T_182353 = and(idxValid[38], T_182352)
+ node T_182354 = bit(T_182199, 38)
+ node T_182355 = and(T_182353, T_182354)
+ node T_182356 = bit(T_181951, 39)
+ node T_182357 = and(idxValid[39], T_182356)
+ node T_182358 = bit(T_182199, 39)
+ node T_182359 = and(T_182357, T_182358)
+ node T_182360 = bit(T_181951, 40)
+ node T_182361 = and(idxValid[40], T_182360)
+ node T_182362 = bit(T_182199, 40)
+ node T_182363 = and(T_182361, T_182362)
+ node T_182364 = bit(T_181951, 41)
+ node T_182365 = and(idxValid[41], T_182364)
+ node T_182366 = bit(T_182199, 41)
+ node T_182367 = and(T_182365, T_182366)
+ node T_182368 = bit(T_181951, 42)
+ node T_182369 = and(idxValid[42], T_182368)
+ node T_182370 = bit(T_182199, 42)
+ node T_182371 = and(T_182369, T_182370)
+ node T_182372 = bit(T_181951, 43)
+ node T_182373 = and(idxValid[43], T_182372)
+ node T_182374 = bit(T_182199, 43)
+ node T_182375 = and(T_182373, T_182374)
+ node T_182376 = bit(T_181951, 44)
+ node T_182377 = and(idxValid[44], T_182376)
+ node T_182378 = bit(T_182199, 44)
+ node T_182379 = and(T_182377, T_182378)
+ node T_182380 = bit(T_181951, 45)
+ node T_182381 = and(idxValid[45], T_182380)
+ node T_182382 = bit(T_182199, 45)
+ node T_182383 = and(T_182381, T_182382)
+ node T_182384 = bit(T_181951, 46)
+ node T_182385 = and(idxValid[46], T_182384)
+ node T_182386 = bit(T_182199, 46)
+ node T_182387 = and(T_182385, T_182386)
+ node T_182388 = bit(T_181951, 47)
+ node T_182389 = and(idxValid[47], T_182388)
+ node T_182390 = bit(T_182199, 47)
+ node T_182391 = and(T_182389, T_182390)
+ node T_182392 = bit(T_181951, 48)
+ node T_182393 = and(idxValid[48], T_182392)
+ node T_182394 = bit(T_182199, 48)
+ node T_182395 = and(T_182393, T_182394)
+ node T_182396 = bit(T_181951, 49)
+ node T_182397 = and(idxValid[49], T_182396)
+ node T_182398 = bit(T_182199, 49)
+ node T_182399 = and(T_182397, T_182398)
+ node T_182400 = bit(T_181951, 50)
+ node T_182401 = and(idxValid[50], T_182400)
+ node T_182402 = bit(T_182199, 50)
+ node T_182403 = and(T_182401, T_182402)
+ node T_182404 = bit(T_181951, 51)
+ node T_182405 = and(idxValid[51], T_182404)
+ node T_182406 = bit(T_182199, 51)
+ node T_182407 = and(T_182405, T_182406)
+ node T_182408 = bit(T_181951, 52)
+ node T_182409 = and(idxValid[52], T_182408)
+ node T_182410 = bit(T_182199, 52)
+ node T_182411 = and(T_182409, T_182410)
+ node T_182412 = bit(T_181951, 53)
+ node T_182413 = and(idxValid[53], T_182412)
+ node T_182414 = bit(T_182199, 53)
+ node T_182415 = and(T_182413, T_182414)
+ node T_182416 = bit(T_181951, 54)
+ node T_182417 = and(idxValid[54], T_182416)
+ node T_182418 = bit(T_182199, 54)
+ node T_182419 = and(T_182417, T_182418)
+ node T_182420 = bit(T_181951, 55)
+ node T_182421 = and(idxValid[55], T_182420)
+ node T_182422 = bit(T_182199, 55)
+ node T_182423 = and(T_182421, T_182422)
+ node T_182424 = bit(T_181951, 56)
+ node T_182425 = and(idxValid[56], T_182424)
+ node T_182426 = bit(T_182199, 56)
+ node T_182427 = and(T_182425, T_182426)
+ node T_182428 = bit(T_181951, 57)
+ node T_182429 = and(idxValid[57], T_182428)
+ node T_182430 = bit(T_182199, 57)
+ node T_182431 = and(T_182429, T_182430)
+ node T_182432 = bit(T_181951, 58)
+ node T_182433 = and(idxValid[58], T_182432)
+ node T_182434 = bit(T_182199, 58)
+ node T_182435 = and(T_182433, T_182434)
+ node T_182436 = bit(T_181951, 59)
+ node T_182437 = and(idxValid[59], T_182436)
+ node T_182438 = bit(T_182199, 59)
+ node T_182439 = and(T_182437, T_182438)
+ node T_182440 = bit(T_181951, 60)
+ node T_182441 = and(idxValid[60], T_182440)
+ node T_182442 = bit(T_182199, 60)
+ node T_182443 = and(T_182441, T_182442)
+ node T_182444 = bit(T_181951, 61)
+ node T_182445 = and(idxValid[61], T_182444)
+ node T_182446 = bit(T_182199, 61)
+ node T_182447 = and(T_182445, T_182446)
+ wire updateHits : UInt<1>[62]
+ updateHits[0] := T_182203
+ updateHits[1] := T_182207
+ updateHits[2] := T_182211
+ updateHits[3] := T_182215
+ updateHits[4] := T_182219
+ updateHits[5] := T_182223
+ updateHits[6] := T_182227
+ updateHits[7] := T_182231
+ updateHits[8] := T_182235
+ updateHits[9] := T_182239
+ updateHits[10] := T_182243
+ updateHits[11] := T_182247
+ updateHits[12] := T_182251
+ updateHits[13] := T_182255
+ updateHits[14] := T_182259
+ updateHits[15] := T_182263
+ updateHits[16] := T_182267
+ updateHits[17] := T_182271
+ updateHits[18] := T_182275
+ updateHits[19] := T_182279
+ updateHits[20] := T_182283
+ updateHits[21] := T_182287
+ updateHits[22] := T_182291
+ updateHits[23] := T_182295
+ updateHits[24] := T_182299
+ updateHits[25] := T_182303
+ updateHits[26] := T_182307
+ updateHits[27] := T_182311
+ updateHits[28] := T_182315
+ updateHits[29] := T_182319
+ updateHits[30] := T_182323
+ updateHits[31] := T_182327
+ updateHits[32] := T_182331
+ updateHits[33] := T_182335
+ updateHits[34] := T_182339
+ updateHits[35] := T_182343
+ updateHits[36] := T_182347
+ updateHits[37] := T_182351
+ updateHits[38] := T_182355
+ updateHits[39] := T_182359
+ updateHits[40] := T_182363
+ updateHits[41] := T_182367
+ updateHits[42] := T_182371
+ updateHits[43] := T_182375
+ updateHits[44] := T_182379
+ updateHits[45] := T_182383
+ updateHits[46] := T_182387
+ updateHits[47] := T_182391
+ updateHits[48] := T_182395
+ updateHits[49] := T_182399
+ updateHits[50] := T_182403
+ updateHits[51] := T_182407
+ updateHits[52] := T_182411
+ updateHits[53] := T_182415
+ updateHits[54] := T_182419
+ updateHits[55] := T_182423
+ updateHits[56] := T_182427
+ updateHits[57] := T_182431
+ updateHits[58] := T_182435
+ updateHits[59] := T_182439
+ updateHits[60] := T_182443
+ updateHits[61] := T_182447
+ reg T_182448 : UInt<16>
+ onreset T_182448 := UInt<16>(1)
+ when r_btb_update.valid :
+ node T_182449 = bit(T_182448, 0)
+ node T_182450 = bit(T_182448, 2)
+ node T_182451 = xor(T_182449, T_182450)
+ node T_182452 = bit(T_182448, 3)
+ node T_182453 = xor(T_182451, T_182452)
+ node T_182454 = bit(T_182448, 5)
+ node T_182455 = xor(T_182453, T_182454)
+ node T_182456 = bits(T_182448, 15, 1)
+ node T_182457 = cat(T_182455, T_182456)
+ T_182448 := T_182457
+ node T_182458 = eq(updatePageHit, UInt<1>(0))
+ node useUpdatePageHit = eq(T_182458, UInt<1>(0))
+ node doIdxPageRepl = eq(useUpdatePageHit, UInt<1>(0))
+ wire idxPageRepl : UInt
+ wire idxPageUpdateOH : UInt
+ idxPageUpdateOH := idxPageRepl
+ when useUpdatePageHit : idxPageUpdateOH := updatePageHit
+ wire idxPageReplEn : UInt<1>
+ idxPageReplEn := UInt<1>(0)
+ when doIdxPageRepl : idxPageReplEn := idxPageRepl
+ node T_182459 = shr(r_btb_update.bits.pc, 12)
+ node T_182460 = shr(req.bits.addr, 12)
+ node samePage = eq(T_182459, T_182460)
+ node T_182461 = not(idxPageReplEn)
+ node T_182462 = and(pageHit, T_182461)
+ node T_182463 = eq(T_182462, UInt<1>(0))
+ node usePageHit = eq(T_182463, UInt<1>(0))
+ node T_182464 = eq(samePage, UInt<1>(0))
+ node T_182465 = eq(usePageHit, UInt<1>(0))
+ node doTgtPageRepl = and(T_182464, T_182465)
+ node T_182466 = bits(idxPageUpdateOH, 4, 0)
+ node T_182467 = shl(T_182466, 1)
+ node T_182468 = bit(idxPageUpdateOH, 5)
+ node T_182469 = or(T_182467, T_182468)
+ wire tgtPageRepl : UInt<6>
+ tgtPageRepl := T_182469
+ when samePage : tgtPageRepl := idxPageUpdateOH
+ wire T_182470 : UInt<6>
+ T_182470 := tgtPageRepl
+ when usePageHit : T_182470 := pageHit
+ node T_182471 = bits(T_182470, 5, 4)
+ node T_182472 = bits(T_182470, 3, 0)
+ node T_182473 = eq(T_182471, UInt<1>(0))
+ node T_182474 = eq(T_182473, UInt<1>(0))
+ node T_182475 = or(T_182471, T_182472)
+ node T_182476 = bits(T_182475, 3, 2)
+ node T_182477 = bits(T_182475, 1, 0)
+ node T_182478 = eq(T_182476, UInt<1>(0))
+ node T_182479 = eq(T_182478, UInt<1>(0))
+ node T_182480 = or(T_182476, T_182477)
+ node T_182481 = bit(T_182480, 1)
+ node T_182482 = cat(T_182479, T_182481)
+ node tgtPageUpdate = cat(T_182474, T_182482)
+ wire tgtPageReplEn : UInt<1>
+ tgtPageReplEn := UInt<1>(0)
+ when doTgtPageRepl : tgtPageReplEn := tgtPageRepl
+ node doPageRepl = or(doIdxPageRepl, doTgtPageRepl)
+ node pageReplEn = or(idxPageReplEn, tgtPageReplEn)
+ node T_182483 = and(r_btb_update.valid, doPageRepl)
+ reg T_182484 : UInt<3>
+ onreset T_182484 := UInt<3>(0)
+ when T_182483 :
+ node T_182485 = eq(T_182484, UInt<3>(5))
+ node T_182486 = and(UInt<1>(1), T_182485)
+ node T_182487 = addw(T_182484, UInt<1>(1))
+ wire T_182488 : UInt<3>
+ T_182488 := T_182487
+ when T_182486 : T_182488 := UInt<1>(0)
+ T_182484 := T_182488
+ node T_182489 = and(T_182483, T_182485)
+ node T_182490 = dshl(UInt<1>(1), T_182484)
+ idxPageRepl := T_182490
+ when r_btb_update.valid :
+ node T_182491 = eq(req.bits.addr, r_btb_update.bits.target)
+ node T_182492 = eq(r_btb_update.bits.prediction.valid, UInt<1>(0))
+ reg T_182493 : UInt<6>
+ onreset T_182493 := UInt<6>(0)
+ when T_182492 :
+ node T_182494 = eq(T_182493, UInt<6>(61))
+ node T_182495 = and(UInt<1>(1), T_182494)
+ node T_182496 = addw(T_182493, UInt<1>(1))
+ wire T_182497 : UInt<6>
+ T_182497 := T_182496
+ when T_182495 : T_182497 := UInt<1>(0)
+ T_182493 := T_182497
+ node T_182498 = and(T_182492, T_182494)
+ wire T_182499 : UInt<6>
+ T_182499 := T_182493
+ when r_btb_update.bits.prediction.valid : T_182499 := r_btb_update.bits.prediction.bits.entry
+
+
+ node T_182500 = or(T_180672, T_180858)
+ node T_182501 = and(pageReplEn, T_182500)
+ node T_182502 = eq(T_182501, UInt<1>(0))
+ node T_182503 = eq(T_182502, UInt<1>(0))
+ when T_182503 : idxValid[0] := UInt<1>(0)
+
+
+ node T_182504 = or(T_180675, T_180861)
+ node T_182505 = and(pageReplEn, T_182504)
+ node T_182506 = eq(T_182505, UInt<1>(0))
+ node T_182507 = eq(T_182506, UInt<1>(0))
+ when T_182507 : idxValid[1] := UInt<1>(0)
+
+
+ node T_182508 = or(T_180678, T_180864)
+ node T_182509 = and(pageReplEn, T_182508)
+ node T_182510 = eq(T_182509, UInt<1>(0))
+ node T_182511 = eq(T_182510, UInt<1>(0))
+ when T_182511 : idxValid[2] := UInt<1>(0)
+
+
+ node T_182512 = or(T_180681, T_180867)
+ node T_182513 = and(pageReplEn, T_182512)
+ node T_182514 = eq(T_182513, UInt<1>(0))
+ node T_182515 = eq(T_182514, UInt<1>(0))
+ when T_182515 : idxValid[3] := UInt<1>(0)
+
+
+ node T_182516 = or(T_180684, T_180870)
+ node T_182517 = and(pageReplEn, T_182516)
+ node T_182518 = eq(T_182517, UInt<1>(0))
+ node T_182519 = eq(T_182518, UInt<1>(0))
+ when T_182519 : idxValid[4] := UInt<1>(0)
+
+
+ node T_182520 = or(T_180687, T_180873)
+ node T_182521 = and(pageReplEn, T_182520)
+ node T_182522 = eq(T_182521, UInt<1>(0))
+ node T_182523 = eq(T_182522, UInt<1>(0))
+ when T_182523 : idxValid[5] := UInt<1>(0)
+
+
+ node T_182524 = or(T_180690, T_180876)
+ node T_182525 = and(pageReplEn, T_182524)
+ node T_182526 = eq(T_182525, UInt<1>(0))
+ node T_182527 = eq(T_182526, UInt<1>(0))
+ when T_182527 : idxValid[6] := UInt<1>(0)
+
+
+ node T_182528 = or(T_180693, T_180879)
+ node T_182529 = and(pageReplEn, T_182528)
+ node T_182530 = eq(T_182529, UInt<1>(0))
+ node T_182531 = eq(T_182530, UInt<1>(0))
+ when T_182531 : idxValid[7] := UInt<1>(0)
+
+
+ node T_182532 = or(T_180696, T_180882)
+ node T_182533 = and(pageReplEn, T_182532)
+ node T_182534 = eq(T_182533, UInt<1>(0))
+ node T_182535 = eq(T_182534, UInt<1>(0))
+ when T_182535 : idxValid[8] := UInt<1>(0)
+
+
+ node T_182536 = or(T_180699, T_180885)
+ node T_182537 = and(pageReplEn, T_182536)
+ node T_182538 = eq(T_182537, UInt<1>(0))
+ node T_182539 = eq(T_182538, UInt<1>(0))
+ when T_182539 : idxValid[9] := UInt<1>(0)
+
+
+ node T_182540 = or(T_180702, T_180888)
+ node T_182541 = and(pageReplEn, T_182540)
+ node T_182542 = eq(T_182541, UInt<1>(0))
+ node T_182543 = eq(T_182542, UInt<1>(0))
+ when T_182543 : idxValid[10] := UInt<1>(0)
+
+
+ node T_182544 = or(T_180705, T_180891)
+ node T_182545 = and(pageReplEn, T_182544)
+ node T_182546 = eq(T_182545, UInt<1>(0))
+ node T_182547 = eq(T_182546, UInt<1>(0))
+ when T_182547 : idxValid[11] := UInt<1>(0)
+
+
+ node T_182548 = or(T_180708, T_180894)
+ node T_182549 = and(pageReplEn, T_182548)
+ node T_182550 = eq(T_182549, UInt<1>(0))
+ node T_182551 = eq(T_182550, UInt<1>(0))
+ when T_182551 : idxValid[12] := UInt<1>(0)
+
+
+ node T_182552 = or(T_180711, T_180897)
+ node T_182553 = and(pageReplEn, T_182552)
+ node T_182554 = eq(T_182553, UInt<1>(0))
+ node T_182555 = eq(T_182554, UInt<1>(0))
+ when T_182555 : idxValid[13] := UInt<1>(0)
+
+
+ node T_182556 = or(T_180714, T_180900)
+ node T_182557 = and(pageReplEn, T_182556)
+ node T_182558 = eq(T_182557, UInt<1>(0))
+ node T_182559 = eq(T_182558, UInt<1>(0))
+ when T_182559 : idxValid[14] := UInt<1>(0)
+
+
+ node T_182560 = or(T_180717, T_180903)
+ node T_182561 = and(pageReplEn, T_182560)
+ node T_182562 = eq(T_182561, UInt<1>(0))
+ node T_182563 = eq(T_182562, UInt<1>(0))
+ when T_182563 : idxValid[15] := UInt<1>(0)
+
+
+ node T_182564 = or(T_180720, T_180906)
+ node T_182565 = and(pageReplEn, T_182564)
+ node T_182566 = eq(T_182565, UInt<1>(0))
+ node T_182567 = eq(T_182566, UInt<1>(0))
+ when T_182567 : idxValid[16] := UInt<1>(0)
+
+
+ node T_182568 = or(T_180723, T_180909)
+ node T_182569 = and(pageReplEn, T_182568)
+ node T_182570 = eq(T_182569, UInt<1>(0))
+ node T_182571 = eq(T_182570, UInt<1>(0))
+ when T_182571 : idxValid[17] := UInt<1>(0)
+
+
+ node T_182572 = or(T_180726, T_180912)
+ node T_182573 = and(pageReplEn, T_182572)
+ node T_182574 = eq(T_182573, UInt<1>(0))
+ node T_182575 = eq(T_182574, UInt<1>(0))
+ when T_182575 : idxValid[18] := UInt<1>(0)
+
+
+ node T_182576 = or(T_180729, T_180915)
+ node T_182577 = and(pageReplEn, T_182576)
+ node T_182578 = eq(T_182577, UInt<1>(0))
+ node T_182579 = eq(T_182578, UInt<1>(0))
+ when T_182579 : idxValid[19] := UInt<1>(0)
+
+
+ node T_182580 = or(T_180732, T_180918)
+ node T_182581 = and(pageReplEn, T_182580)
+ node T_182582 = eq(T_182581, UInt<1>(0))
+ node T_182583 = eq(T_182582, UInt<1>(0))
+ when T_182583 : idxValid[20] := UInt<1>(0)
+
+
+ node T_182584 = or(T_180735, T_180921)
+ node T_182585 = and(pageReplEn, T_182584)
+ node T_182586 = eq(T_182585, UInt<1>(0))
+ node T_182587 = eq(T_182586, UInt<1>(0))
+ when T_182587 : idxValid[21] := UInt<1>(0)
+
+
+ node T_182588 = or(T_180738, T_180924)
+ node T_182589 = and(pageReplEn, T_182588)
+ node T_182590 = eq(T_182589, UInt<1>(0))
+ node T_182591 = eq(T_182590, UInt<1>(0))
+ when T_182591 : idxValid[22] := UInt<1>(0)
+
+
+ node T_182592 = or(T_180741, T_180927)
+ node T_182593 = and(pageReplEn, T_182592)
+ node T_182594 = eq(T_182593, UInt<1>(0))
+ node T_182595 = eq(T_182594, UInt<1>(0))
+ when T_182595 : idxValid[23] := UInt<1>(0)
+
+
+ node T_182596 = or(T_180744, T_180930)
+ node T_182597 = and(pageReplEn, T_182596)
+ node T_182598 = eq(T_182597, UInt<1>(0))
+ node T_182599 = eq(T_182598, UInt<1>(0))
+ when T_182599 : idxValid[24] := UInt<1>(0)
+
+
+ node T_182600 = or(T_180747, T_180933)
+ node T_182601 = and(pageReplEn, T_182600)
+ node T_182602 = eq(T_182601, UInt<1>(0))
+ node T_182603 = eq(T_182602, UInt<1>(0))
+ when T_182603 : idxValid[25] := UInt<1>(0)
+
+
+ node T_182604 = or(T_180750, T_180936)
+ node T_182605 = and(pageReplEn, T_182604)
+ node T_182606 = eq(T_182605, UInt<1>(0))
+ node T_182607 = eq(T_182606, UInt<1>(0))
+ when T_182607 : idxValid[26] := UInt<1>(0)
+
+
+ node T_182608 = or(T_180753, T_180939)
+ node T_182609 = and(pageReplEn, T_182608)
+ node T_182610 = eq(T_182609, UInt<1>(0))
+ node T_182611 = eq(T_182610, UInt<1>(0))
+ when T_182611 : idxValid[27] := UInt<1>(0)
+
+
+ node T_182612 = or(T_180756, T_180942)
+ node T_182613 = and(pageReplEn, T_182612)
+ node T_182614 = eq(T_182613, UInt<1>(0))
+ node T_182615 = eq(T_182614, UInt<1>(0))
+ when T_182615 : idxValid[28] := UInt<1>(0)
+
+
+ node T_182616 = or(T_180759, T_180945)
+ node T_182617 = and(pageReplEn, T_182616)
+ node T_182618 = eq(T_182617, UInt<1>(0))
+ node T_182619 = eq(T_182618, UInt<1>(0))
+ when T_182619 : idxValid[29] := UInt<1>(0)
+
+
+ node T_182620 = or(T_180762, T_180948)
+ node T_182621 = and(pageReplEn, T_182620)
+ node T_182622 = eq(T_182621, UInt<1>(0))
+ node T_182623 = eq(T_182622, UInt<1>(0))
+ when T_182623 : idxValid[30] := UInt<1>(0)
+
+
+ node T_182624 = or(T_180765, T_180951)
+ node T_182625 = and(pageReplEn, T_182624)
+ node T_182626 = eq(T_182625, UInt<1>(0))
+ node T_182627 = eq(T_182626, UInt<1>(0))
+ when T_182627 : idxValid[31] := UInt<1>(0)
+
+
+ node T_182628 = or(T_180768, T_180954)
+ node T_182629 = and(pageReplEn, T_182628)
+ node T_182630 = eq(T_182629, UInt<1>(0))
+ node T_182631 = eq(T_182630, UInt<1>(0))
+ when T_182631 : idxValid[32] := UInt<1>(0)
+
+
+ node T_182632 = or(T_180771, T_180957)
+ node T_182633 = and(pageReplEn, T_182632)
+ node T_182634 = eq(T_182633, UInt<1>(0))
+ node T_182635 = eq(T_182634, UInt<1>(0))
+ when T_182635 : idxValid[33] := UInt<1>(0)
+
+
+ node T_182636 = or(T_180774, T_180960)
+ node T_182637 = and(pageReplEn, T_182636)
+ node T_182638 = eq(T_182637, UInt<1>(0))
+ node T_182639 = eq(T_182638, UInt<1>(0))
+ when T_182639 : idxValid[34] := UInt<1>(0)
+
+
+ node T_182640 = or(T_180777, T_180963)
+ node T_182641 = and(pageReplEn, T_182640)
+ node T_182642 = eq(T_182641, UInt<1>(0))
+ node T_182643 = eq(T_182642, UInt<1>(0))
+ when T_182643 : idxValid[35] := UInt<1>(0)
+
+
+ node T_182644 = or(T_180780, T_180966)
+ node T_182645 = and(pageReplEn, T_182644)
+ node T_182646 = eq(T_182645, UInt<1>(0))
+ node T_182647 = eq(T_182646, UInt<1>(0))
+ when T_182647 : idxValid[36] := UInt<1>(0)
+
+
+ node T_182648 = or(T_180783, T_180969)
+ node T_182649 = and(pageReplEn, T_182648)
+ node T_182650 = eq(T_182649, UInt<1>(0))
+ node T_182651 = eq(T_182650, UInt<1>(0))
+ when T_182651 : idxValid[37] := UInt<1>(0)
+
+
+ node T_182652 = or(T_180786, T_180972)
+ node T_182653 = and(pageReplEn, T_182652)
+ node T_182654 = eq(T_182653, UInt<1>(0))
+ node T_182655 = eq(T_182654, UInt<1>(0))
+ when T_182655 : idxValid[38] := UInt<1>(0)
+
+
+ node T_182656 = or(T_180789, T_180975)
+ node T_182657 = and(pageReplEn, T_182656)
+ node T_182658 = eq(T_182657, UInt<1>(0))
+ node T_182659 = eq(T_182658, UInt<1>(0))
+ when T_182659 : idxValid[39] := UInt<1>(0)
+
+
+ node T_182660 = or(T_180792, T_180978)
+ node T_182661 = and(pageReplEn, T_182660)
+ node T_182662 = eq(T_182661, UInt<1>(0))
+ node T_182663 = eq(T_182662, UInt<1>(0))
+ when T_182663 : idxValid[40] := UInt<1>(0)
+
+
+ node T_182664 = or(T_180795, T_180981)
+ node T_182665 = and(pageReplEn, T_182664)
+ node T_182666 = eq(T_182665, UInt<1>(0))
+ node T_182667 = eq(T_182666, UInt<1>(0))
+ when T_182667 : idxValid[41] := UInt<1>(0)
+
+
+ node T_182668 = or(T_180798, T_180984)
+ node T_182669 = and(pageReplEn, T_182668)
+ node T_182670 = eq(T_182669, UInt<1>(0))
+ node T_182671 = eq(T_182670, UInt<1>(0))
+ when T_182671 : idxValid[42] := UInt<1>(0)
+
+
+ node T_182672 = or(T_180801, T_180987)
+ node T_182673 = and(pageReplEn, T_182672)
+ node T_182674 = eq(T_182673, UInt<1>(0))
+ node T_182675 = eq(T_182674, UInt<1>(0))
+ when T_182675 : idxValid[43] := UInt<1>(0)
+
+
+ node T_182676 = or(T_180804, T_180990)
+ node T_182677 = and(pageReplEn, T_182676)
+ node T_182678 = eq(T_182677, UInt<1>(0))
+ node T_182679 = eq(T_182678, UInt<1>(0))
+ when T_182679 : idxValid[44] := UInt<1>(0)
+
+
+ node T_182680 = or(T_180807, T_180993)
+ node T_182681 = and(pageReplEn, T_182680)
+ node T_182682 = eq(T_182681, UInt<1>(0))
+ node T_182683 = eq(T_182682, UInt<1>(0))
+ when T_182683 : idxValid[45] := UInt<1>(0)
+
+
+ node T_182684 = or(T_180810, T_180996)
+ node T_182685 = and(pageReplEn, T_182684)
+ node T_182686 = eq(T_182685, UInt<1>(0))
+ node T_182687 = eq(T_182686, UInt<1>(0))
+ when T_182687 : idxValid[46] := UInt<1>(0)
+
+
+ node T_182688 = or(T_180813, T_180999)
+ node T_182689 = and(pageReplEn, T_182688)
+ node T_182690 = eq(T_182689, UInt<1>(0))
+ node T_182691 = eq(T_182690, UInt<1>(0))
+ when T_182691 : idxValid[47] := UInt<1>(0)
+
+
+ node T_182692 = or(T_180816, T_181002)
+ node T_182693 = and(pageReplEn, T_182692)
+ node T_182694 = eq(T_182693, UInt<1>(0))
+ node T_182695 = eq(T_182694, UInt<1>(0))
+ when T_182695 : idxValid[48] := UInt<1>(0)
+
+
+ node T_182696 = or(T_180819, T_181005)
+ node T_182697 = and(pageReplEn, T_182696)
+ node T_182698 = eq(T_182697, UInt<1>(0))
+ node T_182699 = eq(T_182698, UInt<1>(0))
+ when T_182699 : idxValid[49] := UInt<1>(0)
+
+
+ node T_182700 = or(T_180822, T_181008)
+ node T_182701 = and(pageReplEn, T_182700)
+ node T_182702 = eq(T_182701, UInt<1>(0))
+ node T_182703 = eq(T_182702, UInt<1>(0))
+ when T_182703 : idxValid[50] := UInt<1>(0)
+
+
+ node T_182704 = or(T_180825, T_181011)
+ node T_182705 = and(pageReplEn, T_182704)
+ node T_182706 = eq(T_182705, UInt<1>(0))
+ node T_182707 = eq(T_182706, UInt<1>(0))
+ when T_182707 : idxValid[51] := UInt<1>(0)
+
+
+ node T_182708 = or(T_180828, T_181014)
+ node T_182709 = and(pageReplEn, T_182708)
+ node T_182710 = eq(T_182709, UInt<1>(0))
+ node T_182711 = eq(T_182710, UInt<1>(0))
+ when T_182711 : idxValid[52] := UInt<1>(0)
+
+
+ node T_182712 = or(T_180831, T_181017)
+ node T_182713 = and(pageReplEn, T_182712)
+ node T_182714 = eq(T_182713, UInt<1>(0))
+ node T_182715 = eq(T_182714, UInt<1>(0))
+ when T_182715 : idxValid[53] := UInt<1>(0)
+
+
+ node T_182716 = or(T_180834, T_181020)
+ node T_182717 = and(pageReplEn, T_182716)
+ node T_182718 = eq(T_182717, UInt<1>(0))
+ node T_182719 = eq(T_182718, UInt<1>(0))
+ when T_182719 : idxValid[54] := UInt<1>(0)
+
+
+ node T_182720 = or(T_180837, T_181023)
+ node T_182721 = and(pageReplEn, T_182720)
+ node T_182722 = eq(T_182721, UInt<1>(0))
+ node T_182723 = eq(T_182722, UInt<1>(0))
+ when T_182723 : idxValid[55] := UInt<1>(0)
+
+
+ node T_182724 = or(T_180840, T_181026)
+ node T_182725 = and(pageReplEn, T_182724)
+ node T_182726 = eq(T_182725, UInt<1>(0))
+ node T_182727 = eq(T_182726, UInt<1>(0))
+ when T_182727 : idxValid[56] := UInt<1>(0)
+
+
+ node T_182728 = or(T_180843, T_181029)
+ node T_182729 = and(pageReplEn, T_182728)
+ node T_182730 = eq(T_182729, UInt<1>(0))
+ node T_182731 = eq(T_182730, UInt<1>(0))
+ when T_182731 : idxValid[57] := UInt<1>(0)
+
+
+ node T_182732 = or(T_180846, T_181032)
+ node T_182733 = and(pageReplEn, T_182732)
+ node T_182734 = eq(T_182733, UInt<1>(0))
+ node T_182735 = eq(T_182734, UInt<1>(0))
+ when T_182735 : idxValid[58] := UInt<1>(0)
+
+
+ node T_182736 = or(T_180849, T_181035)
+ node T_182737 = and(pageReplEn, T_182736)
+ node T_182738 = eq(T_182737, UInt<1>(0))
+ node T_182739 = eq(T_182738, UInt<1>(0))
+ when T_182739 : idxValid[59] := UInt<1>(0)
+
+
+ node T_182740 = or(T_180852, T_181038)
+ node T_182741 = and(pageReplEn, T_182740)
+ node T_182742 = eq(T_182741, UInt<1>(0))
+ node T_182743 = eq(T_182742, UInt<1>(0))
+ when T_182743 : idxValid[60] := UInt<1>(0)
+
+
+ node T_182744 = or(T_180855, T_181041)
+ node T_182745 = and(pageReplEn, T_182744)
+ node T_182746 = eq(T_182745, UInt<1>(0))
+ node T_182747 = eq(T_182746, UInt<1>(0))
+ when T_182747 : idxValid[61] := UInt<1>(0)
+ accessor T_182748 = idxValid[T_182499]
+ T_182748 := UInt<1>(1)
+ accessor T_182749 = idxs[T_182499]
+ T_182749 := r_btb_update.bits.pc
+ accessor T_182750 = tgts[T_182499]
+ T_182750 := req.bits.addr
+ accessor T_182751 = idxPages[T_182499]
+ T_182751 := UInt<1>(0)
+ accessor T_182752 = tgtPages[T_182499]
+ T_182752 := tgtPageUpdate
+ accessor T_182753 = useRAS[T_182499]
+ T_182753 := r_btb_update.bits.isReturn
+ accessor T_182754 = isJump[T_182499]
+ T_182754 := r_btb_update.bits.isJump
+ accessor T_182755 = brIdx[T_182499]
+ T_182755 := UInt<1>(0)
+ node T_182756 = and(idxPageUpdateOH, UInt<6>(21))
+ node T_182757 = eq(T_182756, UInt<1>(0))
+ node T_182758 = eq(T_182757, UInt<1>(0))
+ wire T_182759 : UInt<1>
+ T_182759 := doTgtPageRepl
+ when T_182758 : T_182759 := doIdxPageRepl
+ node T_182760 = shr(r_btb_update.bits.pc, 12)
+ node T_182761 = shr(req.bits.addr, 12)
+ wire T_182762 : UInt<27>
+ T_182762 := T_182761
+ when T_182758 : T_182762 := T_182760
+
+
+ node T_182763 = bit(pageReplEn, 0)
+ node T_182764 = and(T_182759, T_182763)
+ when T_182764 :
+ accessor T_182765 = pages[UInt<1>(0)]
+ T_182765 := T_182762
+
+
+ node T_182766 = bit(pageReplEn, 2)
+ node T_182767 = and(T_182759, T_182766)
+ when T_182767 :
+ accessor T_182768 = pages[UInt<2>(2)]
+ T_182768 := T_182762
+
+
+ node T_182769 = bit(pageReplEn, 4)
+ node T_182770 = and(T_182759, T_182769)
+ when T_182770 :
+ accessor T_182771 = pages[UInt<3>(4)]
+ T_182771 := T_182762
+ wire T_182772 : UInt<1>
+ T_182772 := doIdxPageRepl
+ when T_182758 : T_182772 := doTgtPageRepl
+ node T_182773 = shr(req.bits.addr, 12)
+ node T_182774 = shr(r_btb_update.bits.pc, 12)
+ wire T_182775 : UInt<27>
+ T_182775 := T_182774
+ when T_182758 : T_182775 := T_182773
+
+
+ node T_182776 = bit(pageReplEn, 1)
+ node T_182777 = and(T_182772, T_182776)
+ when T_182777 :
+ accessor T_182778 = pages[UInt<1>(1)]
+ T_182778 := T_182775
+
+
+ node T_182779 = bit(pageReplEn, 3)
+ node T_182780 = and(T_182772, T_182779)
+ when T_182780 :
+ accessor T_182781 = pages[UInt<2>(3)]
+ T_182781 := T_182775
+
+
+ node T_182782 = bit(pageReplEn, 5)
+ node T_182783 = and(T_182772, T_182782)
+ when T_182783 :
+ accessor T_182784 = pages[UInt<3>(5)]
+ T_182784 := T_182775
+ when doPageRepl :
+ node T_182785 = or(pageValid, pageReplEn)
+ pageValid := T_182785
+ when invalidate :
+ idxValid := UInt<1>(0)
+ pageValid := UInt<1>(0)
+ node T_182786 = or(hits[0], hits[1])
+ node T_182787 = or(T_182786, hits[2])
+ node T_182788 = or(T_182787, hits[3])
+ node T_182789 = or(T_182788, hits[4])
+ node T_182790 = or(T_182789, hits[5])
+ node T_182791 = or(T_182790, hits[6])
+ node T_182792 = or(T_182791, hits[7])
+ node T_182793 = or(T_182792, hits[8])
+ node T_182794 = or(T_182793, hits[9])
+ node T_182795 = or(T_182794, hits[10])
+ node T_182796 = or(T_182795, hits[11])
+ node T_182797 = or(T_182796, hits[12])
+ node T_182798 = or(T_182797, hits[13])
+ node T_182799 = or(T_182798, hits[14])
+ node T_182800 = or(T_182799, hits[15])
+ node T_182801 = or(T_182800, hits[16])
+ node T_182802 = or(T_182801, hits[17])
+ node T_182803 = or(T_182802, hits[18])
+ node T_182804 = or(T_182803, hits[19])
+ node T_182805 = or(T_182804, hits[20])
+ node T_182806 = or(T_182805, hits[21])
+ node T_182807 = or(T_182806, hits[22])
+ node T_182808 = or(T_182807, hits[23])
+ node T_182809 = or(T_182808, hits[24])
+ node T_182810 = or(T_182809, hits[25])
+ node T_182811 = or(T_182810, hits[26])
+ node T_182812 = or(T_182811, hits[27])
+ node T_182813 = or(T_182812, hits[28])
+ node T_182814 = or(T_182813, hits[29])
+ node T_182815 = or(T_182814, hits[30])
+ node T_182816 = or(T_182815, hits[31])
+ node T_182817 = or(T_182816, hits[32])
+ node T_182818 = or(T_182817, hits[33])
+ node T_182819 = or(T_182818, hits[34])
+ node T_182820 = or(T_182819, hits[35])
+ node T_182821 = or(T_182820, hits[36])
+ node T_182822 = or(T_182821, hits[37])
+ node T_182823 = or(T_182822, hits[38])
+ node T_182824 = or(T_182823, hits[39])
+ node T_182825 = or(T_182824, hits[40])
+ node T_182826 = or(T_182825, hits[41])
+ node T_182827 = or(T_182826, hits[42])
+ node T_182828 = or(T_182827, hits[43])
+ node T_182829 = or(T_182828, hits[44])
+ node T_182830 = or(T_182829, hits[45])
+ node T_182831 = or(T_182830, hits[46])
+ node T_182832 = or(T_182831, hits[47])
+ node T_182833 = or(T_182832, hits[48])
+ node T_182834 = or(T_182833, hits[49])
+ node T_182835 = or(T_182834, hits[50])
+ node T_182836 = or(T_182835, hits[51])
+ node T_182837 = or(T_182836, hits[52])
+ node T_182838 = or(T_182837, hits[53])
+ node T_182839 = or(T_182838, hits[54])
+ node T_182840 = or(T_182839, hits[55])
+ node T_182841 = or(T_182840, hits[56])
+ node T_182842 = or(T_182841, hits[57])
+ node T_182843 = or(T_182842, hits[58])
+ node T_182844 = or(T_182843, hits[59])
+ node T_182845 = or(T_182844, hits[60])
+ node T_182846 = or(T_182845, hits[61])
+ resp.valid := T_182846
+ resp.bits.taken := resp.valid
+ wire T_182847 : UInt<1>
+ T_182847 := UInt<1>(0)
+ when hits[0] : T_182847 := T_180858
+ wire T_182848 : UInt<1>
+ T_182848 := UInt<1>(0)
+ when hits[1] : T_182848 := T_180861
+ wire T_182849 : UInt<1>
+ T_182849 := UInt<1>(0)
+ when hits[2] : T_182849 := T_180864
+ wire T_182850 : UInt<1>
+ T_182850 := UInt<1>(0)
+ when hits[3] : T_182850 := T_180867
+ wire T_182851 : UInt<1>
+ T_182851 := UInt<1>(0)
+ when hits[4] : T_182851 := T_180870
+ wire T_182852 : UInt<1>
+ T_182852 := UInt<1>(0)
+ when hits[5] : T_182852 := T_180873
+ wire T_182853 : UInt<1>
+ T_182853 := UInt<1>(0)
+ when hits[6] : T_182853 := T_180876
+ wire T_182854 : UInt<1>
+ T_182854 := UInt<1>(0)
+ when hits[7] : T_182854 := T_180879
+ wire T_182855 : UInt<1>
+ T_182855 := UInt<1>(0)
+ when hits[8] : T_182855 := T_180882
+ wire T_182856 : UInt<1>
+ T_182856 := UInt<1>(0)
+ when hits[9] : T_182856 := T_180885
+ wire T_182857 : UInt<1>
+ T_182857 := UInt<1>(0)
+ when hits[10] : T_182857 := T_180888
+ wire T_182858 : UInt<1>
+ T_182858 := UInt<1>(0)
+ when hits[11] : T_182858 := T_180891
+ wire T_182859 : UInt<1>
+ T_182859 := UInt<1>(0)
+ when hits[12] : T_182859 := T_180894
+ wire T_182860 : UInt<1>
+ T_182860 := UInt<1>(0)
+ when hits[13] : T_182860 := T_180897
+ wire T_182861 : UInt<1>
+ T_182861 := UInt<1>(0)
+ when hits[14] : T_182861 := T_180900
+ wire T_182862 : UInt<1>
+ T_182862 := UInt<1>(0)
+ when hits[15] : T_182862 := T_180903
+ wire T_182863 : UInt<1>
+ T_182863 := UInt<1>(0)
+ when hits[16] : T_182863 := T_180906
+ wire T_182864 : UInt<1>
+ T_182864 := UInt<1>(0)
+ when hits[17] : T_182864 := T_180909
+ wire T_182865 : UInt<1>
+ T_182865 := UInt<1>(0)
+ when hits[18] : T_182865 := T_180912
+ wire T_182866 : UInt<1>
+ T_182866 := UInt<1>(0)
+ when hits[19] : T_182866 := T_180915
+ wire T_182867 : UInt<1>
+ T_182867 := UInt<1>(0)
+ when hits[20] : T_182867 := T_180918
+ wire T_182868 : UInt<1>
+ T_182868 := UInt<1>(0)
+ when hits[21] : T_182868 := T_180921
+ wire T_182869 : UInt<1>
+ T_182869 := UInt<1>(0)
+ when hits[22] : T_182869 := T_180924
+ wire T_182870 : UInt<1>
+ T_182870 := UInt<1>(0)
+ when hits[23] : T_182870 := T_180927
+ wire T_182871 : UInt<1>
+ T_182871 := UInt<1>(0)
+ when hits[24] : T_182871 := T_180930
+ wire T_182872 : UInt<1>
+ T_182872 := UInt<1>(0)
+ when hits[25] : T_182872 := T_180933
+ wire T_182873 : UInt<1>
+ T_182873 := UInt<1>(0)
+ when hits[26] : T_182873 := T_180936
+ wire T_182874 : UInt<1>
+ T_182874 := UInt<1>(0)
+ when hits[27] : T_182874 := T_180939
+ wire T_182875 : UInt<1>
+ T_182875 := UInt<1>(0)
+ when hits[28] : T_182875 := T_180942
+ wire T_182876 : UInt<1>
+ T_182876 := UInt<1>(0)
+ when hits[29] : T_182876 := T_180945
+ wire T_182877 : UInt<1>
+ T_182877 := UInt<1>(0)
+ when hits[30] : T_182877 := T_180948
+ wire T_182878 : UInt<1>
+ T_182878 := UInt<1>(0)
+ when hits[31] : T_182878 := T_180951
+ wire T_182879 : UInt<1>
+ T_182879 := UInt<1>(0)
+ when hits[32] : T_182879 := T_180954
+ wire T_182880 : UInt<1>
+ T_182880 := UInt<1>(0)
+ when hits[33] : T_182880 := T_180957
+ wire T_182881 : UInt<1>
+ T_182881 := UInt<1>(0)
+ when hits[34] : T_182881 := T_180960
+ wire T_182882 : UInt<1>
+ T_182882 := UInt<1>(0)
+ when hits[35] : T_182882 := T_180963
+ wire T_182883 : UInt<1>
+ T_182883 := UInt<1>(0)
+ when hits[36] : T_182883 := T_180966
+ wire T_182884 : UInt<1>
+ T_182884 := UInt<1>(0)
+ when hits[37] : T_182884 := T_180969
+ wire T_182885 : UInt<1>
+ T_182885 := UInt<1>(0)
+ when hits[38] : T_182885 := T_180972
+ wire T_182886 : UInt<1>
+ T_182886 := UInt<1>(0)
+ when hits[39] : T_182886 := T_180975
+ wire T_182887 : UInt<1>
+ T_182887 := UInt<1>(0)
+ when hits[40] : T_182887 := T_180978
+ wire T_182888 : UInt<1>
+ T_182888 := UInt<1>(0)
+ when hits[41] : T_182888 := T_180981
+ wire T_182889 : UInt<1>
+ T_182889 := UInt<1>(0)
+ when hits[42] : T_182889 := T_180984
+ wire T_182890 : UInt<1>
+ T_182890 := UInt<1>(0)
+ when hits[43] : T_182890 := T_180987
+ wire T_182891 : UInt<1>
+ T_182891 := UInt<1>(0)
+ when hits[44] : T_182891 := T_180990
+ wire T_182892 : UInt<1>
+ T_182892 := UInt<1>(0)
+ when hits[45] : T_182892 := T_180993
+ wire T_182893 : UInt<1>
+ T_182893 := UInt<1>(0)
+ when hits[46] : T_182893 := T_180996
+ wire T_182894 : UInt<1>
+ T_182894 := UInt<1>(0)
+ when hits[47] : T_182894 := T_180999
+ wire T_182895 : UInt<1>
+ T_182895 := UInt<1>(0)
+ when hits[48] : T_182895 := T_181002
+ wire T_182896 : UInt<1>
+ T_182896 := UInt<1>(0)
+ when hits[49] : T_182896 := T_181005
+ wire T_182897 : UInt<1>
+ T_182897 := UInt<1>(0)
+ when hits[50] : T_182897 := T_181008
+ wire T_182898 : UInt<1>
+ T_182898 := UInt<1>(0)
+ when hits[51] : T_182898 := T_181011
+ wire T_182899 : UInt<1>
+ T_182899 := UInt<1>(0)
+ when hits[52] : T_182899 := T_181014
+ wire T_182900 : UInt<1>
+ T_182900 := UInt<1>(0)
+ when hits[53] : T_182900 := T_181017
+ wire T_182901 : UInt<1>
+ T_182901 := UInt<1>(0)
+ when hits[54] : T_182901 := T_181020
+ wire T_182902 : UInt<1>
+ T_182902 := UInt<1>(0)
+ when hits[55] : T_182902 := T_181023
+ wire T_182903 : UInt<1>
+ T_182903 := UInt<1>(0)
+ when hits[56] : T_182903 := T_181026
+ wire T_182904 : UInt<1>
+ T_182904 := UInt<1>(0)
+ when hits[57] : T_182904 := T_181029
+ wire T_182905 : UInt<1>
+ T_182905 := UInt<1>(0)
+ when hits[58] : T_182905 := T_181032
+ wire T_182906 : UInt<1>
+ T_182906 := UInt<1>(0)
+ when hits[59] : T_182906 := T_181035
+ wire T_182907 : UInt<1>
+ T_182907 := UInt<1>(0)
+ when hits[60] : T_182907 := T_181038
+ wire T_182908 : UInt<1>
+ T_182908 := UInt<1>(0)
+ when hits[61] : T_182908 := T_181041
+ node T_182909 = or(T_182847, T_182848)
+ node T_182910 = or(T_182909, T_182849)
+ node T_182911 = or(T_182910, T_182850)
+ node T_182912 = or(T_182911, T_182851)
+ node T_182913 = or(T_182912, T_182852)
+ node T_182914 = or(T_182913, T_182853)
+ node T_182915 = or(T_182914, T_182854)
+ node T_182916 = or(T_182915, T_182855)
+ node T_182917 = or(T_182916, T_182856)
+ node T_182918 = or(T_182917, T_182857)
+ node T_182919 = or(T_182918, T_182858)
+ node T_182920 = or(T_182919, T_182859)
+ node T_182921 = or(T_182920, T_182860)
+ node T_182922 = or(T_182921, T_182861)
+ node T_182923 = or(T_182922, T_182862)
+ node T_182924 = or(T_182923, T_182863)
+ node T_182925 = or(T_182924, T_182864)
+ node T_182926 = or(T_182925, T_182865)
+ node T_182927 = or(T_182926, T_182866)
+ node T_182928 = or(T_182927, T_182867)
+ node T_182929 = or(T_182928, T_182868)
+ node T_182930 = or(T_182929, T_182869)
+ node T_182931 = or(T_182930, T_182870)
+ node T_182932 = or(T_182931, T_182871)
+ node T_182933 = or(T_182932, T_182872)
+ node T_182934 = or(T_182933, T_182873)
+ node T_182935 = or(T_182934, T_182874)
+ node T_182936 = or(T_182935, T_182875)
+ node T_182937 = or(T_182936, T_182876)
+ node T_182938 = or(T_182937, T_182877)
+ node T_182939 = or(T_182938, T_182878)
+ node T_182940 = or(T_182939, T_182879)
+ node T_182941 = or(T_182940, T_182880)
+ node T_182942 = or(T_182941, T_182881)
+ node T_182943 = or(T_182942, T_182882)
+ node T_182944 = or(T_182943, T_182883)
+ node T_182945 = or(T_182944, T_182884)
+ node T_182946 = or(T_182945, T_182885)
+ node T_182947 = or(T_182946, T_182886)
+ node T_182948 = or(T_182947, T_182887)
+ node T_182949 = or(T_182948, T_182888)
+ node T_182950 = or(T_182949, T_182889)
+ node T_182951 = or(T_182950, T_182890)
+ node T_182952 = or(T_182951, T_182891)
+ node T_182953 = or(T_182952, T_182892)
+ node T_182954 = or(T_182953, T_182893)
+ node T_182955 = or(T_182954, T_182894)
+ node T_182956 = or(T_182955, T_182895)
+ node T_182957 = or(T_182956, T_182896)
+ node T_182958 = or(T_182957, T_182897)
+ node T_182959 = or(T_182958, T_182898)
+ node T_182960 = or(T_182959, T_182899)
+ node T_182961 = or(T_182960, T_182900)
+ node T_182962 = or(T_182961, T_182901)
+ node T_182963 = or(T_182962, T_182902)
+ node T_182964 = or(T_182963, T_182903)
+ node T_182965 = or(T_182964, T_182904)
+ node T_182966 = or(T_182965, T_182905)
+ node T_182967 = or(T_182966, T_182906)
+ node T_182968 = or(T_182967, T_182907)
+ node T_182969 = or(T_182968, T_182908)
+ wire T_182970 : UInt<6>
+ node T_182971 = bits(T_182969, 5, 0)
+ T_182970 := T_182971
+ node T_182972 = bit(T_182970, 0)
+ node T_182973 = bit(T_182970, 1)
+ node T_182974 = bit(T_182970, 2)
+ node T_182975 = bit(T_182970, 3)
+ node T_182976 = bit(T_182970, 4)
+ node T_182977 = bit(T_182970, 5)
+ accessor T_182978 = pages[UInt<1>(0)]
+ accessor T_182979 = pages[UInt<1>(1)]
+ accessor T_182980 = pages[UInt<2>(2)]
+ accessor T_182981 = pages[UInt<2>(3)]
+ accessor T_182982 = pages[UInt<3>(4)]
+ accessor T_182983 = pages[UInt<3>(5)]
+ wire T_182984 : UInt<1>
+ T_182984 := UInt<1>(0)
+ when T_182972 : T_182984 := T_182978
+ wire T_182985 : UInt<1>
+ T_182985 := UInt<1>(0)
+ when T_182973 : T_182985 := T_182979
+ wire T_182986 : UInt<1>
+ T_182986 := UInt<1>(0)
+ when T_182974 : T_182986 := T_182980
+ wire T_182987 : UInt<1>
+ T_182987 := UInt<1>(0)
+ when T_182975 : T_182987 := T_182981
+ wire T_182988 : UInt<1>
+ T_182988 := UInt<1>(0)
+ when T_182976 : T_182988 := T_182982
+ wire T_182989 : UInt<1>
+ T_182989 := UInt<1>(0)
+ when T_182977 : T_182989 := T_182983
+ node T_182990 = or(T_182984, T_182985)
+ node T_182991 = or(T_182990, T_182986)
+ node T_182992 = or(T_182991, T_182987)
+ node T_182993 = or(T_182992, T_182988)
+ node T_182994 = or(T_182993, T_182989)
+ wire T_182995 : UInt<27>
+ node T_182996 = bits(T_182994, 26, 0)
+ T_182995 := T_182996
+ accessor T_182997 = tgts[UInt<1>(0)]
+ accessor T_182998 = tgts[UInt<1>(1)]
+ accessor T_182999 = tgts[UInt<2>(2)]
+ accessor T_183000 = tgts[UInt<2>(3)]
+ accessor T_183001 = tgts[UInt<3>(4)]
+ accessor T_183002 = tgts[UInt<3>(5)]
+ accessor T_183003 = tgts[UInt<3>(6)]
+ accessor T_183004 = tgts[UInt<3>(7)]
+ accessor T_183005 = tgts[UInt<4>(8)]
+ accessor T_183006 = tgts[UInt<4>(9)]
+ accessor T_183007 = tgts[UInt<4>(10)]
+ accessor T_183008 = tgts[UInt<4>(11)]
+ accessor T_183009 = tgts[UInt<4>(12)]
+ accessor T_183010 = tgts[UInt<4>(13)]
+ accessor T_183011 = tgts[UInt<4>(14)]
+ accessor T_183012 = tgts[UInt<4>(15)]
+ accessor T_183013 = tgts[UInt<5>(16)]
+ accessor T_183014 = tgts[UInt<5>(17)]
+ accessor T_183015 = tgts[UInt<5>(18)]
+ accessor T_183016 = tgts[UInt<5>(19)]
+ accessor T_183017 = tgts[UInt<5>(20)]
+ accessor T_183018 = tgts[UInt<5>(21)]
+ accessor T_183019 = tgts[UInt<5>(22)]
+ accessor T_183020 = tgts[UInt<5>(23)]
+ accessor T_183021 = tgts[UInt<5>(24)]
+ accessor T_183022 = tgts[UInt<5>(25)]
+ accessor T_183023 = tgts[UInt<5>(26)]
+ accessor T_183024 = tgts[UInt<5>(27)]
+ accessor T_183025 = tgts[UInt<5>(28)]
+ accessor T_183026 = tgts[UInt<5>(29)]
+ accessor T_183027 = tgts[UInt<5>(30)]
+ accessor T_183028 = tgts[UInt<5>(31)]
+ accessor T_183029 = tgts[UInt<6>(32)]
+ accessor T_183030 = tgts[UInt<6>(33)]
+ accessor T_183031 = tgts[UInt<6>(34)]
+ accessor T_183032 = tgts[UInt<6>(35)]
+ accessor T_183033 = tgts[UInt<6>(36)]
+ accessor T_183034 = tgts[UInt<6>(37)]
+ accessor T_183035 = tgts[UInt<6>(38)]
+ accessor T_183036 = tgts[UInt<6>(39)]
+ accessor T_183037 = tgts[UInt<6>(40)]
+ accessor T_183038 = tgts[UInt<6>(41)]
+ accessor T_183039 = tgts[UInt<6>(42)]
+ accessor T_183040 = tgts[UInt<6>(43)]
+ accessor T_183041 = tgts[UInt<6>(44)]
+ accessor T_183042 = tgts[UInt<6>(45)]
+ accessor T_183043 = tgts[UInt<6>(46)]
+ accessor T_183044 = tgts[UInt<6>(47)]
+ accessor T_183045 = tgts[UInt<6>(48)]
+ accessor T_183046 = tgts[UInt<6>(49)]
+ accessor T_183047 = tgts[UInt<6>(50)]
+ accessor T_183048 = tgts[UInt<6>(51)]
+ accessor T_183049 = tgts[UInt<6>(52)]
+ accessor T_183050 = tgts[UInt<6>(53)]
+ accessor T_183051 = tgts[UInt<6>(54)]
+ accessor T_183052 = tgts[UInt<6>(55)]
+ accessor T_183053 = tgts[UInt<6>(56)]
+ accessor T_183054 = tgts[UInt<6>(57)]
+ accessor T_183055 = tgts[UInt<6>(58)]
+ accessor T_183056 = tgts[UInt<6>(59)]
+ accessor T_183057 = tgts[UInt<6>(60)]
+ accessor T_183058 = tgts[UInt<6>(61)]
+ wire T_183059 : UInt<1>
+ T_183059 := UInt<1>(0)
+ when hits[0] : T_183059 := T_182997
+ wire T_183060 : UInt<1>
+ T_183060 := UInt<1>(0)
+ when hits[1] : T_183060 := T_182998
+ wire T_183061 : UInt<1>
+ T_183061 := UInt<1>(0)
+ when hits[2] : T_183061 := T_182999
+ wire T_183062 : UInt<1>
+ T_183062 := UInt<1>(0)
+ when hits[3] : T_183062 := T_183000
+ wire T_183063 : UInt<1>
+ T_183063 := UInt<1>(0)
+ when hits[4] : T_183063 := T_183001
+ wire T_183064 : UInt<1>
+ T_183064 := UInt<1>(0)
+ when hits[5] : T_183064 := T_183002
+ wire T_183065 : UInt<1>
+ T_183065 := UInt<1>(0)
+ when hits[6] : T_183065 := T_183003
+ wire T_183066 : UInt<1>
+ T_183066 := UInt<1>(0)
+ when hits[7] : T_183066 := T_183004
+ wire T_183067 : UInt<1>
+ T_183067 := UInt<1>(0)
+ when hits[8] : T_183067 := T_183005
+ wire T_183068 : UInt<1>
+ T_183068 := UInt<1>(0)
+ when hits[9] : T_183068 := T_183006
+ wire T_183069 : UInt<1>
+ T_183069 := UInt<1>(0)
+ when hits[10] : T_183069 := T_183007
+ wire T_183070 : UInt<1>
+ T_183070 := UInt<1>(0)
+ when hits[11] : T_183070 := T_183008
+ wire T_183071 : UInt<1>
+ T_183071 := UInt<1>(0)
+ when hits[12] : T_183071 := T_183009
+ wire T_183072 : UInt<1>
+ T_183072 := UInt<1>(0)
+ when hits[13] : T_183072 := T_183010
+ wire T_183073 : UInt<1>
+ T_183073 := UInt<1>(0)
+ when hits[14] : T_183073 := T_183011
+ wire T_183074 : UInt<1>
+ T_183074 := UInt<1>(0)
+ when hits[15] : T_183074 := T_183012
+ wire T_183075 : UInt<1>
+ T_183075 := UInt<1>(0)
+ when hits[16] : T_183075 := T_183013
+ wire T_183076 : UInt<1>
+ T_183076 := UInt<1>(0)
+ when hits[17] : T_183076 := T_183014
+ wire T_183077 : UInt<1>
+ T_183077 := UInt<1>(0)
+ when hits[18] : T_183077 := T_183015
+ wire T_183078 : UInt<1>
+ T_183078 := UInt<1>(0)
+ when hits[19] : T_183078 := T_183016
+ wire T_183079 : UInt<1>
+ T_183079 := UInt<1>(0)
+ when hits[20] : T_183079 := T_183017
+ wire T_183080 : UInt<1>
+ T_183080 := UInt<1>(0)
+ when hits[21] : T_183080 := T_183018
+ wire T_183081 : UInt<1>
+ T_183081 := UInt<1>(0)
+ when hits[22] : T_183081 := T_183019
+ wire T_183082 : UInt<1>
+ T_183082 := UInt<1>(0)
+ when hits[23] : T_183082 := T_183020
+ wire T_183083 : UInt<1>
+ T_183083 := UInt<1>(0)
+ when hits[24] : T_183083 := T_183021
+ wire T_183084 : UInt<1>
+ T_183084 := UInt<1>(0)
+ when hits[25] : T_183084 := T_183022
+ wire T_183085 : UInt<1>
+ T_183085 := UInt<1>(0)
+ when hits[26] : T_183085 := T_183023
+ wire T_183086 : UInt<1>
+ T_183086 := UInt<1>(0)
+ when hits[27] : T_183086 := T_183024
+ wire T_183087 : UInt<1>
+ T_183087 := UInt<1>(0)
+ when hits[28] : T_183087 := T_183025
+ wire T_183088 : UInt<1>
+ T_183088 := UInt<1>(0)
+ when hits[29] : T_183088 := T_183026
+ wire T_183089 : UInt<1>
+ T_183089 := UInt<1>(0)
+ when hits[30] : T_183089 := T_183027
+ wire T_183090 : UInt<1>
+ T_183090 := UInt<1>(0)
+ when hits[31] : T_183090 := T_183028
+ wire T_183091 : UInt<1>
+ T_183091 := UInt<1>(0)
+ when hits[32] : T_183091 := T_183029
+ wire T_183092 : UInt<1>
+ T_183092 := UInt<1>(0)
+ when hits[33] : T_183092 := T_183030
+ wire T_183093 : UInt<1>
+ T_183093 := UInt<1>(0)
+ when hits[34] : T_183093 := T_183031
+ wire T_183094 : UInt<1>
+ T_183094 := UInt<1>(0)
+ when hits[35] : T_183094 := T_183032
+ wire T_183095 : UInt<1>
+ T_183095 := UInt<1>(0)
+ when hits[36] : T_183095 := T_183033
+ wire T_183096 : UInt<1>
+ T_183096 := UInt<1>(0)
+ when hits[37] : T_183096 := T_183034
+ wire T_183097 : UInt<1>
+ T_183097 := UInt<1>(0)
+ when hits[38] : T_183097 := T_183035
+ wire T_183098 : UInt<1>
+ T_183098 := UInt<1>(0)
+ when hits[39] : T_183098 := T_183036
+ wire T_183099 : UInt<1>
+ T_183099 := UInt<1>(0)
+ when hits[40] : T_183099 := T_183037
+ wire T_183100 : UInt<1>
+ T_183100 := UInt<1>(0)
+ when hits[41] : T_183100 := T_183038
+ wire T_183101 : UInt<1>
+ T_183101 := UInt<1>(0)
+ when hits[42] : T_183101 := T_183039
+ wire T_183102 : UInt<1>
+ T_183102 := UInt<1>(0)
+ when hits[43] : T_183102 := T_183040
+ wire T_183103 : UInt<1>
+ T_183103 := UInt<1>(0)
+ when hits[44] : T_183103 := T_183041
+ wire T_183104 : UInt<1>
+ T_183104 := UInt<1>(0)
+ when hits[45] : T_183104 := T_183042
+ wire T_183105 : UInt<1>
+ T_183105 := UInt<1>(0)
+ when hits[46] : T_183105 := T_183043
+ wire T_183106 : UInt<1>
+ T_183106 := UInt<1>(0)
+ when hits[47] : T_183106 := T_183044
+ wire T_183107 : UInt<1>
+ T_183107 := UInt<1>(0)
+ when hits[48] : T_183107 := T_183045
+ wire T_183108 : UInt<1>
+ T_183108 := UInt<1>(0)
+ when hits[49] : T_183108 := T_183046
+ wire T_183109 : UInt<1>
+ T_183109 := UInt<1>(0)
+ when hits[50] : T_183109 := T_183047
+ wire T_183110 : UInt<1>
+ T_183110 := UInt<1>(0)
+ when hits[51] : T_183110 := T_183048
+ wire T_183111 : UInt<1>
+ T_183111 := UInt<1>(0)
+ when hits[52] : T_183111 := T_183049
+ wire T_183112 : UInt<1>
+ T_183112 := UInt<1>(0)
+ when hits[53] : T_183112 := T_183050
+ wire T_183113 : UInt<1>
+ T_183113 := UInt<1>(0)
+ when hits[54] : T_183113 := T_183051
+ wire T_183114 : UInt<1>
+ T_183114 := UInt<1>(0)
+ when hits[55] : T_183114 := T_183052
+ wire T_183115 : UInt<1>
+ T_183115 := UInt<1>(0)
+ when hits[56] : T_183115 := T_183053
+ wire T_183116 : UInt<1>
+ T_183116 := UInt<1>(0)
+ when hits[57] : T_183116 := T_183054
+ wire T_183117 : UInt<1>
+ T_183117 := UInt<1>(0)
+ when hits[58] : T_183117 := T_183055
+ wire T_183118 : UInt<1>
+ T_183118 := UInt<1>(0)
+ when hits[59] : T_183118 := T_183056
+ wire T_183119 : UInt<1>
+ T_183119 := UInt<1>(0)
+ when hits[60] : T_183119 := T_183057
+ wire T_183120 : UInt<1>
+ T_183120 := UInt<1>(0)
+ when hits[61] : T_183120 := T_183058
+ node T_183121 = or(T_183059, T_183060)
+ node T_183122 = or(T_183121, T_183061)
+ node T_183123 = or(T_183122, T_183062)
+ node T_183124 = or(T_183123, T_183063)
+ node T_183125 = or(T_183124, T_183064)
+ node T_183126 = or(T_183125, T_183065)
+ node T_183127 = or(T_183126, T_183066)
+ node T_183128 = or(T_183127, T_183067)
+ node T_183129 = or(T_183128, T_183068)
+ node T_183130 = or(T_183129, T_183069)
+ node T_183131 = or(T_183130, T_183070)
+ node T_183132 = or(T_183131, T_183071)
+ node T_183133 = or(T_183132, T_183072)
+ node T_183134 = or(T_183133, T_183073)
+ node T_183135 = or(T_183134, T_183074)
+ node T_183136 = or(T_183135, T_183075)
+ node T_183137 = or(T_183136, T_183076)
+ node T_183138 = or(T_183137, T_183077)
+ node T_183139 = or(T_183138, T_183078)
+ node T_183140 = or(T_183139, T_183079)
+ node T_183141 = or(T_183140, T_183080)
+ node T_183142 = or(T_183141, T_183081)
+ node T_183143 = or(T_183142, T_183082)
+ node T_183144 = or(T_183143, T_183083)
+ node T_183145 = or(T_183144, T_183084)
+ node T_183146 = or(T_183145, T_183085)
+ node T_183147 = or(T_183146, T_183086)
+ node T_183148 = or(T_183147, T_183087)
+ node T_183149 = or(T_183148, T_183088)
+ node T_183150 = or(T_183149, T_183089)
+ node T_183151 = or(T_183150, T_183090)
+ node T_183152 = or(T_183151, T_183091)
+ node T_183153 = or(T_183152, T_183092)
+ node T_183154 = or(T_183153, T_183093)
+ node T_183155 = or(T_183154, T_183094)
+ node T_183156 = or(T_183155, T_183095)
+ node T_183157 = or(T_183156, T_183096)
+ node T_183158 = or(T_183157, T_183097)
+ node T_183159 = or(T_183158, T_183098)
+ node T_183160 = or(T_183159, T_183099)
+ node T_183161 = or(T_183160, T_183100)
+ node T_183162 = or(T_183161, T_183101)
+ node T_183163 = or(T_183162, T_183102)
+ node T_183164 = or(T_183163, T_183103)
+ node T_183165 = or(T_183164, T_183104)
+ node T_183166 = or(T_183165, T_183105)
+ node T_183167 = or(T_183166, T_183106)
+ node T_183168 = or(T_183167, T_183107)
+ node T_183169 = or(T_183168, T_183108)
+ node T_183170 = or(T_183169, T_183109)
+ node T_183171 = or(T_183170, T_183110)
+ node T_183172 = or(T_183171, T_183111)
+ node T_183173 = or(T_183172, T_183112)
+ node T_183174 = or(T_183173, T_183113)
+ node T_183175 = or(T_183174, T_183114)
+ node T_183176 = or(T_183175, T_183115)
+ node T_183177 = or(T_183176, T_183116)
+ node T_183178 = or(T_183177, T_183117)
+ node T_183179 = or(T_183178, T_183118)
+ node T_183180 = or(T_183179, T_183119)
+ node T_183181 = or(T_183180, T_183120)
+ wire T_183182 : UInt<12>
+ node T_183183 = bits(T_183181, 11, 0)
+ T_183182 := T_183183
+ node T_183184 = cat(T_182995, T_183182)
+ resp.bits.target := T_183184
+ node T_183185 = cat(hits[60], hits[59])
+ node T_183186 = cat(hits[61], T_183185)
+ node T_183187 = cat(hits[58], hits[57])
+ node T_183188 = cat(hits[56], hits[55])
+ node T_183189 = cat(T_183187, T_183188)
+ node T_183190 = cat(T_183186, T_183189)
+ node T_183191 = cat(hits[54], hits[53])
+ node T_183192 = cat(hits[52], hits[51])
+ node T_183193 = cat(T_183191, T_183192)
+ node T_183194 = cat(hits[50], hits[49])
+ node T_183195 = cat(hits[48], hits[47])
+ node T_183196 = cat(T_183194, T_183195)
+ node T_183197 = cat(T_183193, T_183196)
+ node T_183198 = cat(T_183190, T_183197)
+ node T_183199 = cat(hits[46], hits[45])
+ node T_183200 = cat(hits[44], hits[43])
+ node T_183201 = cat(T_183199, T_183200)
+ node T_183202 = cat(hits[42], hits[41])
+ node T_183203 = cat(hits[40], hits[39])
+ node T_183204 = cat(T_183202, T_183203)
+ node T_183205 = cat(T_183201, T_183204)
+ node T_183206 = cat(hits[38], hits[37])
+ node T_183207 = cat(hits[36], hits[35])
+ node T_183208 = cat(T_183206, T_183207)
+ node T_183209 = cat(hits[34], hits[33])
+ node T_183210 = cat(hits[32], hits[31])
+ node T_183211 = cat(T_183209, T_183210)
+ node T_183212 = cat(T_183208, T_183211)
+ node T_183213 = cat(T_183205, T_183212)
+ node T_183214 = cat(T_183198, T_183213)
+ node T_183215 = cat(hits[29], hits[28])
+ node T_183216 = cat(hits[30], T_183215)
+ node T_183217 = cat(hits[27], hits[26])
+ node T_183218 = cat(hits[25], hits[24])
+ node T_183219 = cat(T_183217, T_183218)
+ node T_183220 = cat(T_183216, T_183219)
+ node T_183221 = cat(hits[23], hits[22])
+ node T_183222 = cat(hits[21], hits[20])
+ node T_183223 = cat(T_183221, T_183222)
+ node T_183224 = cat(hits[19], hits[18])
+ node T_183225 = cat(hits[17], hits[16])
+ node T_183226 = cat(T_183224, T_183225)
+ node T_183227 = cat(T_183223, T_183226)
+ node T_183228 = cat(T_183220, T_183227)
+ node T_183229 = cat(hits[15], hits[14])
+ node T_183230 = cat(hits[13], hits[12])
+ node T_183231 = cat(T_183229, T_183230)
+ node T_183232 = cat(hits[11], hits[10])
+ node T_183233 = cat(hits[9], hits[8])
+ node T_183234 = cat(T_183232, T_183233)
+ node T_183235 = cat(T_183231, T_183234)
+ node T_183236 = cat(hits[7], hits[6])
+ node T_183237 = cat(hits[5], hits[4])
+ node T_183238 = cat(T_183236, T_183237)
+ node T_183239 = cat(hits[3], hits[2])
+ node T_183240 = cat(hits[1], hits[0])
+ node T_183241 = cat(T_183239, T_183240)
+ node T_183242 = cat(T_183238, T_183241)
+ node T_183243 = cat(T_183235, T_183242)
+ node T_183244 = cat(T_183228, T_183243)
+ node T_183245 = cat(T_183214, T_183244)
+ node T_183246 = bits(T_183245, 61, 32)
+ node T_183247 = bits(T_183245, 31, 0)
+ node T_183248 = eq(T_183246, UInt<1>(0))
+ node T_183249 = eq(T_183248, UInt<1>(0))
+ node T_183250 = or(T_183246, T_183247)
+ node T_183251 = bits(T_183250, 31, 16)
+ node T_183252 = bits(T_183250, 15, 0)
+ node T_183253 = eq(T_183251, UInt<1>(0))
+ node T_183254 = eq(T_183253, UInt<1>(0))
+ node T_183255 = or(T_183251, T_183252)
+ node T_183256 = bits(T_183255, 15, 8)
+ node T_183257 = bits(T_183255, 7, 0)
+ node T_183258 = eq(T_183256, UInt<1>(0))
+ node T_183259 = eq(T_183258, UInt<1>(0))
+ node T_183260 = or(T_183256, T_183257)
+ node T_183261 = bits(T_183260, 7, 4)
+ node T_183262 = bits(T_183260, 3, 0)
+ node T_183263 = eq(T_183261, UInt<1>(0))
+ node T_183264 = eq(T_183263, UInt<1>(0))
+ node T_183265 = or(T_183261, T_183262)
+ node T_183266 = bits(T_183265, 3, 2)
+ node T_183267 = bits(T_183265, 1, 0)
+ node T_183268 = eq(T_183266, UInt<1>(0))
+ node T_183269 = eq(T_183268, UInt<1>(0))
+ node T_183270 = or(T_183266, T_183267)
+ node T_183271 = bit(T_183270, 1)
+ node T_183272 = cat(T_183269, T_183271)
+ node T_183273 = cat(T_183264, T_183272)
+ node T_183274 = cat(T_183259, T_183273)
+ node T_183275 = cat(T_183254, T_183274)
+ node T_183276 = cat(T_183249, T_183275)
+ resp.bits.entry := T_183276
+ accessor T_183277 = brIdx[resp.bits.entry]
+ resp.bits.bridx := T_183277
+ resp.bits.mask := UInt<1>(1)
+ cmem T_183278 : UInt<2>[128]
+ reg T_183279 : UInt<7>
+ wire T_183280 : UInt<1>
+ T_183280 := UInt<1>(0)
+ when hits[0] : T_183280 := isJump[0]
+ wire T_183281 : UInt<1>
+ T_183281 := UInt<1>(0)
+ when hits[1] : T_183281 := isJump[1]
+ wire T_183282 : UInt<1>
+ T_183282 := UInt<1>(0)
+ when hits[2] : T_183282 := isJump[2]
+ wire T_183283 : UInt<1>
+ T_183283 := UInt<1>(0)
+ when hits[3] : T_183283 := isJump[3]
+ wire T_183284 : UInt<1>
+ T_183284 := UInt<1>(0)
+ when hits[4] : T_183284 := isJump[4]
+ wire T_183285 : UInt<1>
+ T_183285 := UInt<1>(0)
+ when hits[5] : T_183285 := isJump[5]
+ wire T_183286 : UInt<1>
+ T_183286 := UInt<1>(0)
+ when hits[6] : T_183286 := isJump[6]
+ wire T_183287 : UInt<1>
+ T_183287 := UInt<1>(0)
+ when hits[7] : T_183287 := isJump[7]
+ wire T_183288 : UInt<1>
+ T_183288 := UInt<1>(0)
+ when hits[8] : T_183288 := isJump[8]
+ wire T_183289 : UInt<1>
+ T_183289 := UInt<1>(0)
+ when hits[9] : T_183289 := isJump[9]
+ wire T_183290 : UInt<1>
+ T_183290 := UInt<1>(0)
+ when hits[10] : T_183290 := isJump[10]
+ wire T_183291 : UInt<1>
+ T_183291 := UInt<1>(0)
+ when hits[11] : T_183291 := isJump[11]
+ wire T_183292 : UInt<1>
+ T_183292 := UInt<1>(0)
+ when hits[12] : T_183292 := isJump[12]
+ wire T_183293 : UInt<1>
+ T_183293 := UInt<1>(0)
+ when hits[13] : T_183293 := isJump[13]
+ wire T_183294 : UInt<1>
+ T_183294 := UInt<1>(0)
+ when hits[14] : T_183294 := isJump[14]
+ wire T_183295 : UInt<1>
+ T_183295 := UInt<1>(0)
+ when hits[15] : T_183295 := isJump[15]
+ wire T_183296 : UInt<1>
+ T_183296 := UInt<1>(0)
+ when hits[16] : T_183296 := isJump[16]
+ wire T_183297 : UInt<1>
+ T_183297 := UInt<1>(0)
+ when hits[17] : T_183297 := isJump[17]
+ wire T_183298 : UInt<1>
+ T_183298 := UInt<1>(0)
+ when hits[18] : T_183298 := isJump[18]
+ wire T_183299 : UInt<1>
+ T_183299 := UInt<1>(0)
+ when hits[19] : T_183299 := isJump[19]
+ wire T_183300 : UInt<1>
+ T_183300 := UInt<1>(0)
+ when hits[20] : T_183300 := isJump[20]
+ wire T_183301 : UInt<1>
+ T_183301 := UInt<1>(0)
+ when hits[21] : T_183301 := isJump[21]
+ wire T_183302 : UInt<1>
+ T_183302 := UInt<1>(0)
+ when hits[22] : T_183302 := isJump[22]
+ wire T_183303 : UInt<1>
+ T_183303 := UInt<1>(0)
+ when hits[23] : T_183303 := isJump[23]
+ wire T_183304 : UInt<1>
+ T_183304 := UInt<1>(0)
+ when hits[24] : T_183304 := isJump[24]
+ wire T_183305 : UInt<1>
+ T_183305 := UInt<1>(0)
+ when hits[25] : T_183305 := isJump[25]
+ wire T_183306 : UInt<1>
+ T_183306 := UInt<1>(0)
+ when hits[26] : T_183306 := isJump[26]
+ wire T_183307 : UInt<1>
+ T_183307 := UInt<1>(0)
+ when hits[27] : T_183307 := isJump[27]
+ wire T_183308 : UInt<1>
+ T_183308 := UInt<1>(0)
+ when hits[28] : T_183308 := isJump[28]
+ wire T_183309 : UInt<1>
+ T_183309 := UInt<1>(0)
+ when hits[29] : T_183309 := isJump[29]
+ wire T_183310 : UInt<1>
+ T_183310 := UInt<1>(0)
+ when hits[30] : T_183310 := isJump[30]
+ wire T_183311 : UInt<1>
+ T_183311 := UInt<1>(0)
+ when hits[31] : T_183311 := isJump[31]
+ wire T_183312 : UInt<1>
+ T_183312 := UInt<1>(0)
+ when hits[32] : T_183312 := isJump[32]
+ wire T_183313 : UInt<1>
+ T_183313 := UInt<1>(0)
+ when hits[33] : T_183313 := isJump[33]
+ wire T_183314 : UInt<1>
+ T_183314 := UInt<1>(0)
+ when hits[34] : T_183314 := isJump[34]
+ wire T_183315 : UInt<1>
+ T_183315 := UInt<1>(0)
+ when hits[35] : T_183315 := isJump[35]
+ wire T_183316 : UInt<1>
+ T_183316 := UInt<1>(0)
+ when hits[36] : T_183316 := isJump[36]
+ wire T_183317 : UInt<1>
+ T_183317 := UInt<1>(0)
+ when hits[37] : T_183317 := isJump[37]
+ wire T_183318 : UInt<1>
+ T_183318 := UInt<1>(0)
+ when hits[38] : T_183318 := isJump[38]
+ wire T_183319 : UInt<1>
+ T_183319 := UInt<1>(0)
+ when hits[39] : T_183319 := isJump[39]
+ wire T_183320 : UInt<1>
+ T_183320 := UInt<1>(0)
+ when hits[40] : T_183320 := isJump[40]
+ wire T_183321 : UInt<1>
+ T_183321 := UInt<1>(0)
+ when hits[41] : T_183321 := isJump[41]
+ wire T_183322 : UInt<1>
+ T_183322 := UInt<1>(0)
+ when hits[42] : T_183322 := isJump[42]
+ wire T_183323 : UInt<1>
+ T_183323 := UInt<1>(0)
+ when hits[43] : T_183323 := isJump[43]
+ wire T_183324 : UInt<1>
+ T_183324 := UInt<1>(0)
+ when hits[44] : T_183324 := isJump[44]
+ wire T_183325 : UInt<1>
+ T_183325 := UInt<1>(0)
+ when hits[45] : T_183325 := isJump[45]
+ wire T_183326 : UInt<1>
+ T_183326 := UInt<1>(0)
+ when hits[46] : T_183326 := isJump[46]
+ wire T_183327 : UInt<1>
+ T_183327 := UInt<1>(0)
+ when hits[47] : T_183327 := isJump[47]
+ wire T_183328 : UInt<1>
+ T_183328 := UInt<1>(0)
+ when hits[48] : T_183328 := isJump[48]
+ wire T_183329 : UInt<1>
+ T_183329 := UInt<1>(0)
+ when hits[49] : T_183329 := isJump[49]
+ wire T_183330 : UInt<1>
+ T_183330 := UInt<1>(0)
+ when hits[50] : T_183330 := isJump[50]
+ wire T_183331 : UInt<1>
+ T_183331 := UInt<1>(0)
+ when hits[51] : T_183331 := isJump[51]
+ wire T_183332 : UInt<1>
+ T_183332 := UInt<1>(0)
+ when hits[52] : T_183332 := isJump[52]
+ wire T_183333 : UInt<1>
+ T_183333 := UInt<1>(0)
+ when hits[53] : T_183333 := isJump[53]
+ wire T_183334 : UInt<1>
+ T_183334 := UInt<1>(0)
+ when hits[54] : T_183334 := isJump[54]
+ wire T_183335 : UInt<1>
+ T_183335 := UInt<1>(0)
+ when hits[55] : T_183335 := isJump[55]
+ wire T_183336 : UInt<1>
+ T_183336 := UInt<1>(0)
+ when hits[56] : T_183336 := isJump[56]
+ wire T_183337 : UInt<1>
+ T_183337 := UInt<1>(0)
+ when hits[57] : T_183337 := isJump[57]
+ wire T_183338 : UInt<1>
+ T_183338 := UInt<1>(0)
+ when hits[58] : T_183338 := isJump[58]
+ wire T_183339 : UInt<1>
+ T_183339 := UInt<1>(0)
+ when hits[59] : T_183339 := isJump[59]
+ wire T_183340 : UInt<1>
+ T_183340 := UInt<1>(0)
+ when hits[60] : T_183340 := isJump[60]
+ wire T_183341 : UInt<1>
+ T_183341 := UInt<1>(0)
+ when hits[61] : T_183341 := isJump[61]
+ node T_183342 = or(T_183280, T_183281)
+ node T_183343 = or(T_183342, T_183282)
+ node T_183344 = or(T_183343, T_183283)
+ node T_183345 = or(T_183344, T_183284)
+ node T_183346 = or(T_183345, T_183285)
+ node T_183347 = or(T_183346, T_183286)
+ node T_183348 = or(T_183347, T_183287)
+ node T_183349 = or(T_183348, T_183288)
+ node T_183350 = or(T_183349, T_183289)
+ node T_183351 = or(T_183350, T_183290)
+ node T_183352 = or(T_183351, T_183291)
+ node T_183353 = or(T_183352, T_183292)
+ node T_183354 = or(T_183353, T_183293)
+ node T_183355 = or(T_183354, T_183294)
+ node T_183356 = or(T_183355, T_183295)
+ node T_183357 = or(T_183356, T_183296)
+ node T_183358 = or(T_183357, T_183297)
+ node T_183359 = or(T_183358, T_183298)
+ node T_183360 = or(T_183359, T_183299)
+ node T_183361 = or(T_183360, T_183300)
+ node T_183362 = or(T_183361, T_183301)
+ node T_183363 = or(T_183362, T_183302)
+ node T_183364 = or(T_183363, T_183303)
+ node T_183365 = or(T_183364, T_183304)
+ node T_183366 = or(T_183365, T_183305)
+ node T_183367 = or(T_183366, T_183306)
+ node T_183368 = or(T_183367, T_183307)
+ node T_183369 = or(T_183368, T_183308)
+ node T_183370 = or(T_183369, T_183309)
+ node T_183371 = or(T_183370, T_183310)
+ node T_183372 = or(T_183371, T_183311)
+ node T_183373 = or(T_183372, T_183312)
+ node T_183374 = or(T_183373, T_183313)
+ node T_183375 = or(T_183374, T_183314)
+ node T_183376 = or(T_183375, T_183315)
+ node T_183377 = or(T_183376, T_183316)
+ node T_183378 = or(T_183377, T_183317)
+ node T_183379 = or(T_183378, T_183318)
+ node T_183380 = or(T_183379, T_183319)
+ node T_183381 = or(T_183380, T_183320)
+ node T_183382 = or(T_183381, T_183321)
+ node T_183383 = or(T_183382, T_183322)
+ node T_183384 = or(T_183383, T_183323)
+ node T_183385 = or(T_183384, T_183324)
+ node T_183386 = or(T_183385, T_183325)
+ node T_183387 = or(T_183386, T_183326)
+ node T_183388 = or(T_183387, T_183327)
+ node T_183389 = or(T_183388, T_183328)
+ node T_183390 = or(T_183389, T_183329)
+ node T_183391 = or(T_183390, T_183330)
+ node T_183392 = or(T_183391, T_183331)
+ node T_183393 = or(T_183392, T_183332)
+ node T_183394 = or(T_183393, T_183333)
+ node T_183395 = or(T_183394, T_183334)
+ node T_183396 = or(T_183395, T_183335)
+ node T_183397 = or(T_183396, T_183336)
+ node T_183398 = or(T_183397, T_183337)
+ node T_183399 = or(T_183398, T_183338)
+ node T_183400 = or(T_183399, T_183339)
+ node T_183401 = or(T_183400, T_183340)
+ node T_183402 = or(T_183401, T_183341)
+ wire T_183403 : UInt<1>
+ node T_183404 = bits(T_183402, 0, 0)
+ T_183403 := T_183404
+ node T_183405 = eq(T_183403, UInt<1>(0))
+ node T_183406 = and(req.valid, resp.valid)
+ node T_183407 = and(T_183406, T_183405)
+ wire T_183408 : {history : UInt<7>, value : UInt<2>}
+ node T_183409 = bits(req.bits.addr, 8, 2)
+ node T_183410 = xor(T_183409, T_183279)
+ accessor T_183411 = T_183278[T_183410]
+ T_183408.value := T_183411
+ T_183408.history := T_183279
+ node T_183412 = bit(T_183408.value, 0)
+ when T_183407 :
+ node T_183413 = bits(T_183279, 6, 1)
+ node T_183414 = cat(T_183412, T_183413)
+ T_183279 := T_183414
+
+ node T_183415 = and(bht_update.valid, bht_update.bits.prediction.valid)
+ when T_183415 :
+ node T_183416 = bits(bht_update.bits.pc, 8, 2)
+ node T_183417 = xor(T_183416, bht_update.bits.prediction.bits.bht.history)
+ accessor T_183418 = T_183278[T_183417]
+ node T_183419 = bit(bht_update.bits.prediction.bits.bht.value, 1)
+ node T_183420 = bit(bht_update.bits.prediction.bits.bht.value, 0)
+ node T_183421 = and(T_183419, T_183420)
+ node T_183422 = bit(bht_update.bits.prediction.bits.bht.value, 1)
+ node T_183423 = bit(bht_update.bits.prediction.bits.bht.value, 0)
+ node T_183424 = or(T_183422, T_183423)
+ node T_183425 = and(T_183424, bht_update.bits.taken)
+ node T_183426 = or(T_183421, T_183425)
+ node T_183427 = cat(bht_update.bits.taken, T_183426)
+ T_183418 := T_183427
+ when bht_update.bits.mispredict :
+ node T_183428 = bits(bht_update.bits.prediction.bits.bht.history, 6, 1)
+ node T_183429 = cat(bht_update.bits.taken, T_183428)
+ T_183279 := T_183429
+
+
+ node T_183430 = bit(T_183408.value, 0)
+ node T_183431 = eq(T_183430, UInt<1>(0))
+ node T_183432 = and(T_183431, T_183405)
+ when T_183432 : resp.bits.taken := UInt<1>(0)
+ resp.bits.bht := T_183408
+ reg T_183433 : UInt<2>
+ onreset T_183433 := UInt<2>(0)
+ reg T_183434 : UInt<1>
+ onreset T_183434 := UInt<1>(0)
+ wire T_183435 : UInt[2]
+ T_183435[0] := T_183436
+ T_183435[1] := T_183437
+ reg T_183438 : UInt[2]
+ wire T_183439 : UInt<1>
+ T_183439 := UInt<1>(0)
+ when hits[0] : T_183439 := useRAS[0]
+ wire T_183440 : UInt<1>
+ T_183440 := UInt<1>(0)
+ when hits[1] : T_183440 := useRAS[1]
+ wire T_183441 : UInt<1>
+ T_183441 := UInt<1>(0)
+ when hits[2] : T_183441 := useRAS[2]
+ wire T_183442 : UInt<1>
+ T_183442 := UInt<1>(0)
+ when hits[3] : T_183442 := useRAS[3]
+ wire T_183443 : UInt<1>
+ T_183443 := UInt<1>(0)
+ when hits[4] : T_183443 := useRAS[4]
+ wire T_183444 : UInt<1>
+ T_183444 := UInt<1>(0)
+ when hits[5] : T_183444 := useRAS[5]
+ wire T_183445 : UInt<1>
+ T_183445 := UInt<1>(0)
+ when hits[6] : T_183445 := useRAS[6]
+ wire T_183446 : UInt<1>
+ T_183446 := UInt<1>(0)
+ when hits[7] : T_183446 := useRAS[7]
+ wire T_183447 : UInt<1>
+ T_183447 := UInt<1>(0)
+ when hits[8] : T_183447 := useRAS[8]
+ wire T_183448 : UInt<1>
+ T_183448 := UInt<1>(0)
+ when hits[9] : T_183448 := useRAS[9]
+ wire T_183449 : UInt<1>
+ T_183449 := UInt<1>(0)
+ when hits[10] : T_183449 := useRAS[10]
+ wire T_183450 : UInt<1>
+ T_183450 := UInt<1>(0)
+ when hits[11] : T_183450 := useRAS[11]
+ wire T_183451 : UInt<1>
+ T_183451 := UInt<1>(0)
+ when hits[12] : T_183451 := useRAS[12]
+ wire T_183452 : UInt<1>
+ T_183452 := UInt<1>(0)
+ when hits[13] : T_183452 := useRAS[13]
+ wire T_183453 : UInt<1>
+ T_183453 := UInt<1>(0)
+ when hits[14] : T_183453 := useRAS[14]
+ wire T_183454 : UInt<1>
+ T_183454 := UInt<1>(0)
+ when hits[15] : T_183454 := useRAS[15]
+ wire T_183455 : UInt<1>
+ T_183455 := UInt<1>(0)
+ when hits[16] : T_183455 := useRAS[16]
+ wire T_183456 : UInt<1>
+ T_183456 := UInt<1>(0)
+ when hits[17] : T_183456 := useRAS[17]
+ wire T_183457 : UInt<1>
+ T_183457 := UInt<1>(0)
+ when hits[18] : T_183457 := useRAS[18]
+ wire T_183458 : UInt<1>
+ T_183458 := UInt<1>(0)
+ when hits[19] : T_183458 := useRAS[19]
+ wire T_183459 : UInt<1>
+ T_183459 := UInt<1>(0)
+ when hits[20] : T_183459 := useRAS[20]
+ wire T_183460 : UInt<1>
+ T_183460 := UInt<1>(0)
+ when hits[21] : T_183460 := useRAS[21]
+ wire T_183461 : UInt<1>
+ T_183461 := UInt<1>(0)
+ when hits[22] : T_183461 := useRAS[22]
+ wire T_183462 : UInt<1>
+ T_183462 := UInt<1>(0)
+ when hits[23] : T_183462 := useRAS[23]
+ wire T_183463 : UInt<1>
+ T_183463 := UInt<1>(0)
+ when hits[24] : T_183463 := useRAS[24]
+ wire T_183464 : UInt<1>
+ T_183464 := UInt<1>(0)
+ when hits[25] : T_183464 := useRAS[25]
+ wire T_183465 : UInt<1>
+ T_183465 := UInt<1>(0)
+ when hits[26] : T_183465 := useRAS[26]
+ wire T_183466 : UInt<1>
+ T_183466 := UInt<1>(0)
+ when hits[27] : T_183466 := useRAS[27]
+ wire T_183467 : UInt<1>
+ T_183467 := UInt<1>(0)
+ when hits[28] : T_183467 := useRAS[28]
+ wire T_183468 : UInt<1>
+ T_183468 := UInt<1>(0)
+ when hits[29] : T_183468 := useRAS[29]
+ wire T_183469 : UInt<1>
+ T_183469 := UInt<1>(0)
+ when hits[30] : T_183469 := useRAS[30]
+ wire T_183470 : UInt<1>
+ T_183470 := UInt<1>(0)
+ when hits[31] : T_183470 := useRAS[31]
+ wire T_183471 : UInt<1>
+ T_183471 := UInt<1>(0)
+ when hits[32] : T_183471 := useRAS[32]
+ wire T_183472 : UInt<1>
+ T_183472 := UInt<1>(0)
+ when hits[33] : T_183472 := useRAS[33]
+ wire T_183473 : UInt<1>
+ T_183473 := UInt<1>(0)
+ when hits[34] : T_183473 := useRAS[34]
+ wire T_183474 : UInt<1>
+ T_183474 := UInt<1>(0)
+ when hits[35] : T_183474 := useRAS[35]
+ wire T_183475 : UInt<1>
+ T_183475 := UInt<1>(0)
+ when hits[36] : T_183475 := useRAS[36]
+ wire T_183476 : UInt<1>
+ T_183476 := UInt<1>(0)
+ when hits[37] : T_183476 := useRAS[37]
+ wire T_183477 : UInt<1>
+ T_183477 := UInt<1>(0)
+ when hits[38] : T_183477 := useRAS[38]
+ wire T_183478 : UInt<1>
+ T_183478 := UInt<1>(0)
+ when hits[39] : T_183478 := useRAS[39]
+ wire T_183479 : UInt<1>
+ T_183479 := UInt<1>(0)
+ when hits[40] : T_183479 := useRAS[40]
+ wire T_183480 : UInt<1>
+ T_183480 := UInt<1>(0)
+ when hits[41] : T_183480 := useRAS[41]
+ wire T_183481 : UInt<1>
+ T_183481 := UInt<1>(0)
+ when hits[42] : T_183481 := useRAS[42]
+ wire T_183482 : UInt<1>
+ T_183482 := UInt<1>(0)
+ when hits[43] : T_183482 := useRAS[43]
+ wire T_183483 : UInt<1>
+ T_183483 := UInt<1>(0)
+ when hits[44] : T_183483 := useRAS[44]
+ wire T_183484 : UInt<1>
+ T_183484 := UInt<1>(0)
+ when hits[45] : T_183484 := useRAS[45]
+ wire T_183485 : UInt<1>
+ T_183485 := UInt<1>(0)
+ when hits[46] : T_183485 := useRAS[46]
+ wire T_183486 : UInt<1>
+ T_183486 := UInt<1>(0)
+ when hits[47] : T_183486 := useRAS[47]
+ wire T_183487 : UInt<1>
+ T_183487 := UInt<1>(0)
+ when hits[48] : T_183487 := useRAS[48]
+ wire T_183488 : UInt<1>
+ T_183488 := UInt<1>(0)
+ when hits[49] : T_183488 := useRAS[49]
+ wire T_183489 : UInt<1>
+ T_183489 := UInt<1>(0)
+ when hits[50] : T_183489 := useRAS[50]
+ wire T_183490 : UInt<1>
+ T_183490 := UInt<1>(0)
+ when hits[51] : T_183490 := useRAS[51]
+ wire T_183491 : UInt<1>
+ T_183491 := UInt<1>(0)
+ when hits[52] : T_183491 := useRAS[52]
+ wire T_183492 : UInt<1>
+ T_183492 := UInt<1>(0)
+ when hits[53] : T_183492 := useRAS[53]
+ wire T_183493 : UInt<1>
+ T_183493 := UInt<1>(0)
+ when hits[54] : T_183493 := useRAS[54]
+ wire T_183494 : UInt<1>
+ T_183494 := UInt<1>(0)
+ when hits[55] : T_183494 := useRAS[55]
+ wire T_183495 : UInt<1>
+ T_183495 := UInt<1>(0)
+ when hits[56] : T_183495 := useRAS[56]
+ wire T_183496 : UInt<1>
+ T_183496 := UInt<1>(0)
+ when hits[57] : T_183496 := useRAS[57]
+ wire T_183497 : UInt<1>
+ T_183497 := UInt<1>(0)
+ when hits[58] : T_183497 := useRAS[58]
+ wire T_183498 : UInt<1>
+ T_183498 := UInt<1>(0)
+ when hits[59] : T_183498 := useRAS[59]
+ wire T_183499 : UInt<1>
+ T_183499 := UInt<1>(0)
+ when hits[60] : T_183499 := useRAS[60]
+ wire T_183500 : UInt<1>
+ T_183500 := UInt<1>(0)
+ when hits[61] : T_183500 := useRAS[61]
+ node T_183501 = or(T_183439, T_183440)
+ node T_183502 = or(T_183501, T_183441)
+ node T_183503 = or(T_183502, T_183442)
+ node T_183504 = or(T_183503, T_183443)
+ node T_183505 = or(T_183504, T_183444)
+ node T_183506 = or(T_183505, T_183445)
+ node T_183507 = or(T_183506, T_183446)
+ node T_183508 = or(T_183507, T_183447)
+ node T_183509 = or(T_183508, T_183448)
+ node T_183510 = or(T_183509, T_183449)
+ node T_183511 = or(T_183510, T_183450)
+ node T_183512 = or(T_183511, T_183451)
+ node T_183513 = or(T_183512, T_183452)
+ node T_183514 = or(T_183513, T_183453)
+ node T_183515 = or(T_183514, T_183454)
+ node T_183516 = or(T_183515, T_183455)
+ node T_183517 = or(T_183516, T_183456)
+ node T_183518 = or(T_183517, T_183457)
+ node T_183519 = or(T_183518, T_183458)
+ node T_183520 = or(T_183519, T_183459)
+ node T_183521 = or(T_183520, T_183460)
+ node T_183522 = or(T_183521, T_183461)
+ node T_183523 = or(T_183522, T_183462)
+ node T_183524 = or(T_183523, T_183463)
+ node T_183525 = or(T_183524, T_183464)
+ node T_183526 = or(T_183525, T_183465)
+ node T_183527 = or(T_183526, T_183466)
+ node T_183528 = or(T_183527, T_183467)
+ node T_183529 = or(T_183528, T_183468)
+ node T_183530 = or(T_183529, T_183469)
+ node T_183531 = or(T_183530, T_183470)
+ node T_183532 = or(T_183531, T_183471)
+ node T_183533 = or(T_183532, T_183472)
+ node T_183534 = or(T_183533, T_183473)
+ node T_183535 = or(T_183534, T_183474)
+ node T_183536 = or(T_183535, T_183475)
+ node T_183537 = or(T_183536, T_183476)
+ node T_183538 = or(T_183537, T_183477)
+ node T_183539 = or(T_183538, T_183478)
+ node T_183540 = or(T_183539, T_183479)
+ node T_183541 = or(T_183540, T_183480)
+ node T_183542 = or(T_183541, T_183481)
+ node T_183543 = or(T_183542, T_183482)
+ node T_183544 = or(T_183543, T_183483)
+ node T_183545 = or(T_183544, T_183484)
+ node T_183546 = or(T_183545, T_183485)
+ node T_183547 = or(T_183546, T_183486)
+ node T_183548 = or(T_183547, T_183487)
+ node T_183549 = or(T_183548, T_183488)
+ node T_183550 = or(T_183549, T_183489)
+ node T_183551 = or(T_183550, T_183490)
+ node T_183552 = or(T_183551, T_183491)
+ node T_183553 = or(T_183552, T_183492)
+ node T_183554 = or(T_183553, T_183493)
+ node T_183555 = or(T_183554, T_183494)
+ node T_183556 = or(T_183555, T_183495)
+ node T_183557 = or(T_183556, T_183496)
+ node T_183558 = or(T_183557, T_183497)
+ node T_183559 = or(T_183558, T_183498)
+ node T_183560 = or(T_183559, T_183499)
+ node T_183561 = or(T_183560, T_183500)
+ wire T_183562 : UInt<1>
+ node T_183563 = bits(T_183561, 0, 0)
+ T_183562 := T_183563
+
+
+ node T_183564 = eq(T_183433, UInt<1>(0))
+ node T_183565 = eq(T_183564, UInt<1>(0))
+ node T_183566 = and(T_183565, T_183562)
+ when T_183566 :
+ accessor T_183567 = T_183438[T_183434]
+ resp.bits.target := T_183567
+ when ras_update.valid : when ras_update.bits.isCall :
+
+ node T_183576 = lt(T_183433, UInt<2>(2))
+ when T_183576 :
+ node T_183577 = addw(T_183433, UInt<1>(1))
+ T_183433 := T_183577
+ node T_183578 = lt(T_183434, UInt<1>(1))
+ node T_183579 = or(UInt<1>(1), T_183578)
+ node T_183580 = addw(T_183434, UInt<1>(1))
+ wire T_183581 : UInt<1>
+ T_183581 := UInt<1>(0)
+ when T_183579 : T_183581 := T_183580
+ accessor T_183582 = T_183438[T_183581]
+ T_183582 := ras_update.bits.returnAddr
+ T_183434 := T_183581
+ when T_183562 : resp.bits.target := ras_update.bits.returnAddr
+ else :
+
+ node T_183568 = and(ras_update.bits.isReturn, ras_update.bits.prediction.valid)
+ when T_183568 :
+
+ node T_183569 = eq(T_183433, UInt<1>(0))
+ node T_183570 = eq(T_183569, UInt<1>(0))
+ when T_183570 :
+ node T_183571 = subw(T_183433, UInt<1>(1))
+ T_183433 := T_183571
+ node T_183572 = gt(T_183434, UInt<1>(0))
+ node T_183573 = or(UInt<1>(1), T_183572)
+ node T_183574 = subw(T_183434, UInt<1>(1))
+ wire T_183575 : UInt<1>
+ T_183575 := UInt<1>(1)
+ when T_183573 : T_183575 := T_183574
+ T_183434 := T_183575
+ when invalidate : T_183433 := UInt<1>(0)
+ module FlowThroughSerializer :
+ input in : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_beat : UInt<2>, data : UInt<128>, client_xact_id : UInt<1>, manager_xact_id : UInt<2>, is_builtin_type : UInt<1>, g_type : UInt<4>}}
+ output out : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_beat : UInt<2>, data : UInt<128>, client_xact_id : UInt<1>, manager_xact_id : UInt<2>, is_builtin_type : UInt<1>, g_type : UInt<4>}}
+ output cnt : UInt<1>
+ output done : UInt<1>
+
+ wire T_183583 : UInt<3>[3]
+ T_183583[0] := UInt<3>(0)
+ T_183583[1] := UInt<3>(1)
+ T_183583[2] := UInt<3>(2)
+ wire T_183584 : UInt<2>[2]
+ T_183584[0] := UInt<2>(0)
+ T_183584[1] := UInt<2>(1)
+ wire T_183585 : UInt<2>[3]
+ T_183585[0] := UInt<2>(1)
+ T_183585[1] := UInt<2>(2)
+ T_183585[2] := UInt<2>(3)
+ wire T_183586 : UInt<2>[2]
+ T_183586[0] := UInt<2>(2)
+ T_183586[1] := UInt<2>(3)
+ wire T_183587 : UInt<2>[1]
+ T_183587[0] := UInt<2>(3)
+ wire T_183588 : UInt<3>[3]
+ T_183588[0] := UInt<3>(0)
+ T_183588[1] := UInt<3>(1)
+ T_183588[2] := UInt<3>(2)
+ wire T_183589 : UInt<2>[2]
+ T_183589[0] := UInt<2>(0)
+ T_183589[1] := UInt<2>(1)
+ wire T_183590 : UInt<2>[3]
+ T_183590[0] := UInt<2>(1)
+ T_183590[1] := UInt<2>(2)
+ T_183590[2] := UInt<2>(3)
+ wire T_183591 : UInt<2>[2]
+ T_183591[0] := UInt<2>(2)
+ T_183591[1] := UInt<2>(3)
+ wire T_183592 : UInt<2>[1]
+ T_183592[0] := UInt<2>(3)
+ in <> out
+ cnt := T_183593
+ done := UInt<1>(1)
+ module ICache :
+ input req : {valid : UInt<1>, bits : {idx : UInt<12>, ppn : UInt<20>, kill : UInt<1>}}
+ output resp : {flip ready : UInt<1>, valid : UInt<1>, bits : {data : UInt<32>, datablock : UInt<128>}}
+ input invalidate : UInt<1>
+ output mem__ : {acquire : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_block : UInt<26>, client_xact_id : UInt<1>, addr_beat : UInt<2>, data : UInt<128>, is_builtin_type : UInt<1>, a_type : UInt<3>, union : UInt<17>}}, flip grant : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_beat : UInt<2>, data : UInt<128>, client_xact_id : UInt<1>, manager_xact_id : UInt<2>, is_builtin_type : UInt<1>, g_type : UInt<4>}}}
+
+ wire T_183594 : UInt<3>[3]
+ T_183594[0] := UInt<3>(0)
+ T_183594[1] := UInt<3>(1)
+ T_183594[2] := UInt<3>(2)
+ wire T_183595 : UInt<2>[2]
+ T_183595[0] := UInt<2>(0)
+ T_183595[1] := UInt<2>(1)
+ wire T_183596 : UInt<2>[3]
+ T_183596[0] := UInt<2>(1)
+ T_183596[1] := UInt<2>(2)
+ T_183596[2] := UInt<2>(3)
+ wire T_183597 : UInt<2>[2]
+ T_183597[0] := UInt<2>(2)
+ T_183597[1] := UInt<2>(3)
+ wire T_183598 : UInt<2>[1]
+ T_183598[0] := UInt<2>(3)
+ wire T_183599 : UInt<3>[3]
+ T_183599[0] := UInt<3>(0)
+ T_183599[1] := UInt<3>(1)
+ T_183599[2] := UInt<3>(2)
+ wire T_183600 : UInt<2>[2]
+ T_183600[0] := UInt<2>(0)
+ T_183600[1] := UInt<2>(1)
+ wire T_183601 : UInt<2>[3]
+ T_183601[0] := UInt<2>(1)
+ T_183601[1] := UInt<2>(2)
+ T_183601[2] := UInt<2>(3)
+ wire T_183602 : UInt<2>[2]
+ T_183602[0] := UInt<2>(2)
+ T_183602[1] := UInt<2>(3)
+ wire T_183603 : UInt<2>[1]
+ T_183603[0] := UInt<2>(3)
+ wire T_183604 : UInt<3>[3]
+ T_183604[0] := UInt<3>(0)
+ T_183604[1] := UInt<3>(1)
+ T_183604[2] := UInt<3>(2)
+ wire T_183605 : UInt<2>[2]
+ T_183605[0] := UInt<2>(0)
+ T_183605[1] := UInt<2>(1)
+ wire T_183606 : UInt<2>[3]
+ T_183606[0] := UInt<2>(1)
+ T_183606[1] := UInt<2>(2)
+ T_183606[2] := UInt<2>(3)
+ wire T_183607 : UInt<2>[2]
+ T_183607[0] := UInt<2>(2)
+ T_183607[1] := UInt<2>(3)
+ wire T_183608 : UInt<2>[1]
+ T_183608[0] := UInt<2>(3)
+ wire T_183609 : UInt<3>[3]
+ T_183609[0] := UInt<3>(0)
+ T_183609[1] := UInt<3>(1)
+ T_183609[2] := UInt<3>(2)
+ wire T_183610 : UInt<2>[2]
+ T_183610[0] := UInt<2>(0)
+ T_183610[1] := UInt<2>(1)
+ wire T_183611 : UInt<2>[3]
+ T_183611[0] := UInt<2>(1)
+ T_183611[1] := UInt<2>(2)
+ T_183611[2] := UInt<2>(3)
+ wire T_183612 : UInt<2>[2]
+ T_183612[0] := UInt<2>(2)
+ T_183612[1] := UInt<2>(3)
+ wire T_183613 : UInt<2>[1]
+ T_183613[0] := UInt<2>(3)
+ wire T_183614 : UInt<3>[3]
+ T_183614[0] := UInt<3>(0)
+ T_183614[1] := UInt<3>(1)
+ T_183614[2] := UInt<3>(2)
+ wire T_183615 : UInt<2>[2]
+ T_183615[0] := UInt<2>(0)
+ T_183615[1] := UInt<2>(1)
+ wire T_183616 : UInt<2>[3]
+ T_183616[0] := UInt<2>(1)
+ T_183616[1] := UInt<2>(2)
+ T_183616[2] := UInt<2>(3)
+ wire T_183617 : UInt<2>[2]
+ T_183617[0] := UInt<2>(2)
+ T_183617[1] := UInt<2>(3)
+ wire T_183618 : UInt<2>[1]
+ T_183618[0] := UInt<2>(3)
+ reg state : UInt<2>
+ onreset state := UInt<2>(0)
+ reg invalidated : UInt<1>
+ node stall = eq(resp.ready, UInt<1>(0))
+ wire rdy : UInt<1>
+ reg s2_valid : UInt<1>
+ onreset s2_valid := UInt<1>(0)
+ reg s2_addr : UInt<32>
+ wire s2_any_tag_hit : UInt<1>
+ reg s1_valid : UInt<1>
+ onreset s1_valid := UInt<1>(0)
+ reg s1_pgoff : UInt<12>
+ node s1_addr = cat(req.bits.ppn, s1_pgoff)
+ node s1_tag = bits(s1_addr, 31, 12)
+ node T_183619 = and(s1_valid, stall)
+ node s0_valid = or(req.valid, T_183619)
+ node T_183620 = and(s1_valid, stall)
+ wire s0_pgoff : UInt<12>
+ s0_pgoff := req.bits.idx
+ when T_183620 : s0_pgoff := s1_pgoff
+ node T_183621 = and(req.valid, rdy)
+ node T_183622 = and(s1_valid, stall)
+ node T_183623 = eq(req.bits.kill, UInt<1>(0))
+ node T_183624 = and(T_183622, T_183623)
+ node T_183625 = or(T_183621, T_183624)
+ s1_valid := T_183625
+
+ node T_183626 = and(req.valid, rdy)
+ when T_183626 : s1_pgoff := req.bits.idx
+ node T_183627 = and(s1_valid, rdy)
+ node T_183628 = eq(req.bits.kill, UInt<1>(0))
+ node T_183629 = and(T_183627, T_183628)
+ node T_183630 = and(resp.valid, stall)
+ node T_183631 = or(T_183629, T_183630)
+ s2_valid := T_183631
+
+
+ node T_183632 = and(s1_valid, rdy)
+ node T_183633 = eq(stall, UInt<1>(0))
+ node T_183634 = and(T_183632, T_183633)
+ when T_183634 : s2_addr := s1_addr
+ node s2_tag = bits(s2_addr, 31, 12)
+ node s2_idx = bits(s2_addr, 11, 6)
+ node s2_offset = bits(s2_addr, 5, 0)
+ node s2_hit = and(s2_valid, s2_any_tag_hit)
+ node T_183635 = eq(s2_any_tag_hit, UInt<1>(0))
+ node s2_miss = and(s2_valid, T_183635)
+ node T_183636 = eq(state, UInt<2>(0))
+ node T_183637 = eq(s2_miss, UInt<1>(0))
+ node T_183638 = and(T_183636, T_183637)
+ rdy := T_183638
+ inst T_183639 of FlowThroughSerializer
+ T_183639.in.valid := mem__.grant.valid
+ T_183639.in.bits := mem__.grant.bits
+ mem__.grant.ready := T_183639.in.ready
+ node T_183640 = and(T_183639.out.ready, T_183639.out.valid)
+ reg refill_cnt : UInt<2>
+ onreset refill_cnt := UInt<2>(0)
+ when T_183640 :
+ node T_183641 = eq(refill_cnt, UInt<2>(3))
+ node T_183642 = and(UInt<1>(0), T_183641)
+ node T_183643 = addw(refill_cnt, UInt<1>(1))
+ wire T_183644 : UInt<2>
+ T_183644 := T_183643
+ when T_183642 : T_183644 := UInt<1>(0)
+ refill_cnt := T_183644
+ node refill_wrap = and(T_183640, T_183641)
+ node T_183645 = eq(state, UInt<2>(3))
+ node refill_done = and(T_183645, refill_wrap)
+ T_183639.out.ready := UInt<1>(1)
+ reg T_183646 : UInt<16>
+ onreset T_183646 := UInt<16>(1)
+ when s2_miss :
+ node T_183647 = bit(T_183646, 0)
+ node T_183648 = bit(T_183646, 2)
+ node T_183649 = xor(T_183647, T_183648)
+ node T_183650 = bit(T_183646, 3)
+ node T_183651 = xor(T_183649, T_183650)
+ node T_183652 = bit(T_183646, 5)
+ node T_183653 = xor(T_183651, T_183652)
+ node T_183654 = bits(T_183646, 15, 1)
+ node T_183655 = cat(T_183653, T_183654)
+ T_183646 := T_183655
+ node repl_way = bits(T_183646, 1, 0)
+ cmem T_183656 : UInt<80>[64]
+ node T_183657 = bits(s0_pgoff, 11, 6)
+ node T_183658 = eq(refill_done, UInt<1>(0))
+ node T_183659 = and(T_183658, s0_valid)
+ reg T_183660 : UInt<6>
+ when T_183659 : T_183660 := T_183657
+ accessor tag_rdata = T_183656[T_183660]
+ when refill_done :
+ node T_183661 = dshl(UInt<1>(1), repl_way)
+ node T_183662 = bit(T_183661, 0)
+ node T_183663 = bit(T_183661, 1)
+ node T_183664 = bit(T_183661, 2)
+ node T_183665 = bit(T_183661, 3)
+ node T_183666 = bit(T_183661, 4)
+ wire T_183667 : UInt<1>[5]
+ T_183667[0] := T_183662
+ T_183667[1] := T_183663
+ T_183667[2] := T_183664
+ T_183667[3] := T_183665
+ T_183667[4] := T_183666
+ node T_183668 = subw(UInt<20>(0), UInt<5>(20))
+ node T_183669 = subw(UInt<20>(0), UInt<5>(20))
+ node T_183670 = subw(UInt<20>(0), UInt<5>(20))
+ node T_183671 = subw(UInt<20>(0), UInt<5>(20))
+ node T_183672 = subw(UInt<20>(0), UInt<5>(20))
+ wire T_183673 : UInt<20>[5]
+ T_183673[0] := T_183668
+ T_183673[1] := T_183669
+ T_183673[2] := T_183670
+ T_183673[3] := T_183671
+ T_183673[4] := T_183672
+ node T_183674 = cat(T_183673[4], T_183673[3])
+ node T_183675 = cat(T_183673[1], T_183673[0])
+ node T_183676 = cat(T_183673[2], T_183675)
+ node T_183677 = cat(T_183674, T_183676)
+ node T_183678 = cat(s2_tag, s2_tag)
+ node T_183679 = cat(T_183678, T_183678)
+ accessor T_183680 = T_183656[s2_idx]
+ node T_183681 = not(T_183677)
+ node T_183682 = and(T_183680, T_183681)
+ node T_183683 = and(T_183679, T_183677)
+ node T_183684 = or(T_183682, T_183683)
+ wire T_183685 : UInt<80>
+ node T_183686 = bits(T_183684, 79, 0)
+ T_183685 := T_183686
+ accessor T_183687 = T_183656[s2_idx]
+ T_183687 := T_183685
+ reg vb_array : UInt<256>
+ onreset vb_array := UInt<256>(0)
+
+
+ node T_183688 = eq(invalidated, UInt<1>(0))
+ node T_183689 = and(refill_done, T_183688)
+ when T_183689 :
+ node T_183690 = cat(repl_way, s2_idx)
+ node T_183691 = dshl(UInt<1>(1), T_183690)
+ node T_183692 = or(vb_array, T_183691)
+ node T_183693 = not(vb_array)
+ node T_183694 = or(T_183693, T_183691)
+ node T_183695 = not(T_183694)
+ wire T_183696 : UInt<257>
+ T_183696 := T_183695
+ when UInt<1>(1) : T_183696 := T_183692
+ vb_array := T_183696
+ when invalidate :
+ vb_array := UInt<1>(0)
+ invalidated := UInt<1>(1)
+ wire s2_disparity : UInt<1>[4]
+
+ node T_183697 = and(s2_valid, s2_disparity[0])
+ when T_183697 :
+ node T_183698 = cat(UInt<1>(0), s2_idx)
+ node T_183699 = dshl(UInt<1>(1), T_183698)
+ node T_183700 = or(vb_array, T_183699)
+ node T_183701 = not(vb_array)
+ node T_183702 = or(T_183701, T_183699)
+ node T_183703 = not(T_183702)
+ wire T_183704 : UInt<256>
+ T_183704 := T_183703
+ when UInt<1>(0) : T_183704 := T_183700
+ vb_array := T_183704
+
+ node T_183705 = and(s2_valid, s2_disparity[1])
+ when T_183705 :
+ node T_183706 = cat(UInt<1>(1), s2_idx)
+ node T_183707 = dshl(UInt<1>(1), T_183706)
+ node T_183708 = or(vb_array, T_183707)
+ node T_183709 = not(vb_array)
+ node T_183710 = or(T_183709, T_183707)
+ node T_183711 = not(T_183710)
+ wire T_183712 : UInt<256>
+ T_183712 := T_183711
+ when UInt<1>(0) : T_183712 := T_183708
+ vb_array := T_183712
+
+ node T_183713 = and(s2_valid, s2_disparity[2])
+ when T_183713 :
+ node T_183714 = cat(UInt<2>(2), s2_idx)
+ node T_183715 = dshl(UInt<1>(1), T_183714)
+ node T_183716 = or(vb_array, T_183715)
+ node T_183717 = not(vb_array)
+ node T_183718 = or(T_183717, T_183715)
+ node T_183719 = not(T_183718)
+ wire T_183720 : UInt<257>
+ T_183720 := T_183719
+ when UInt<1>(0) : T_183720 := T_183716
+ vb_array := T_183720
+
+ node T_183721 = and(s2_valid, s2_disparity[3])
+ when T_183721 :
+ node T_183722 = cat(UInt<2>(3), s2_idx)
+ node T_183723 = dshl(UInt<1>(1), T_183722)
+ node T_183724 = or(vb_array, T_183723)
+ node T_183725 = not(vb_array)
+ node T_183726 = or(T_183725, T_183723)
+ node T_183727 = not(T_183726)
+ wire T_183728 : UInt<257>
+ T_183728 := T_183727
+ when UInt<1>(0) : T_183728 := T_183724
+ vb_array := T_183728
+ wire s1_tag_match : UInt<1>[4]
+ wire s2_tag_hit : UInt<1>[4]
+ reg s2_dout : UInt[4]
+ node T_183729 = eq(invalidate, UInt<1>(0))
+ node T_183730 = bits(s1_pgoff, 11, 6)
+ node T_183731 = cat(UInt<1>(0), T_183730)
+ node T_183732 = dshr(vb_array, T_183731)
+ node T_183733 = bit(T_183732, 0)
+ node T_183734 = bit(T_183733, 0)
+ node T_183735 = and(T_183729, T_183734)
+ reg T_183736 : UInt<1>
+ reg T_183737 : UInt<1>
+ reg T_183738 : UInt<1>
+ node T_183739 = bits(tag_rdata, 19, 0)
+
+
+ node T_183740 = and(s1_valid, rdy)
+ node T_183741 = eq(stall, UInt<1>(0))
+ node T_183742 = and(T_183740, T_183741)
+ when T_183742 :
+ T_183736 := T_183735
+ node T_183743 = or(UInt<1>(0), UInt<1>(0))
+ T_183737 := T_183743
+ T_183738 := s1_tag_match[0]
+ node T_183744 = bits(T_183739, 19, 0)
+ node T_183745 = eq(T_183744, s1_tag)
+ s1_tag_match[0] := T_183745
+ node T_183746 = and(T_183736, T_183738)
+ s2_tag_hit[0] := T_183746
+ node T_183747 = or(UInt<1>(0), UInt<1>(0))
+ node T_183748 = or(T_183737, T_183747)
+ node T_183749 = and(T_183736, T_183748)
+ s2_disparity[0] := T_183749
+ node T_183750 = eq(invalidate, UInt<1>(0))
+ node T_183751 = bits(s1_pgoff, 11, 6)
+ node T_183752 = cat(UInt<1>(1), T_183751)
+ node T_183753 = dshr(vb_array, T_183752)
+ node T_183754 = bit(T_183753, 0)
+ node T_183755 = bit(T_183754, 0)
+ node T_183756 = and(T_183750, T_183755)
+ reg T_183757 : UInt<1>
+ reg T_183758 : UInt<1>
+ reg T_183759 : UInt<1>
+ node T_183760 = bits(tag_rdata, 39, 20)
+
+
+ node T_183761 = and(s1_valid, rdy)
+ node T_183762 = eq(stall, UInt<1>(0))
+ node T_183763 = and(T_183761, T_183762)
+ when T_183763 :
+ T_183757 := T_183756
+ node T_183764 = or(UInt<1>(0), UInt<1>(0))
+ T_183758 := T_183764
+ T_183759 := s1_tag_match[1]
+ node T_183765 = bits(T_183760, 19, 0)
+ node T_183766 = eq(T_183765, s1_tag)
+ s1_tag_match[1] := T_183766
+ node T_183767 = and(T_183757, T_183759)
+ s2_tag_hit[1] := T_183767
+ node T_183768 = or(UInt<1>(0), UInt<1>(0))
+ node T_183769 = or(T_183758, T_183768)
+ node T_183770 = and(T_183757, T_183769)
+ s2_disparity[1] := T_183770
+ node T_183771 = eq(invalidate, UInt<1>(0))
+ node T_183772 = bits(s1_pgoff, 11, 6)
+ node T_183773 = cat(UInt<2>(2), T_183772)
+ node T_183774 = dshr(vb_array, T_183773)
+ node T_183775 = bit(T_183774, 0)
+ node T_183776 = bit(T_183775, 0)
+ node T_183777 = and(T_183771, T_183776)
+ reg T_183778 : UInt<1>
+ reg T_183779 : UInt<1>
+ reg T_183780 : UInt<1>
+ node T_183781 = bits(tag_rdata, 59, 40)
+
+
+ node T_183782 = and(s1_valid, rdy)
+ node T_183783 = eq(stall, UInt<1>(0))
+ node T_183784 = and(T_183782, T_183783)
+ when T_183784 :
+ T_183778 := T_183777
+ node T_183785 = or(UInt<1>(0), UInt<1>(0))
+ T_183779 := T_183785
+ T_183780 := s1_tag_match[2]
+ node T_183786 = bits(T_183781, 19, 0)
+ node T_183787 = eq(T_183786, s1_tag)
+ s1_tag_match[2] := T_183787
+ node T_183788 = and(T_183778, T_183780)
+ s2_tag_hit[2] := T_183788
+ node T_183789 = or(UInt<1>(0), UInt<1>(0))
+ node T_183790 = or(T_183779, T_183789)
+ node T_183791 = and(T_183778, T_183790)
+ s2_disparity[2] := T_183791
+ node T_183792 = eq(invalidate, UInt<1>(0))
+ node T_183793 = bits(s1_pgoff, 11, 6)
+ node T_183794 = cat(UInt<2>(3), T_183793)
+ node T_183795 = dshr(vb_array, T_183794)
+ node T_183796 = bit(T_183795, 0)
+ node T_183797 = bit(T_183796, 0)
+ node T_183798 = and(T_183792, T_183797)
+ reg T_183799 : UInt<1>
+ reg T_183800 : UInt<1>
+ reg T_183801 : UInt<1>
+ node T_183802 = bits(tag_rdata, 79, 60)
+
+
+ node T_183803 = and(s1_valid, rdy)
+ node T_183804 = eq(stall, UInt<1>(0))
+ node T_183805 = and(T_183803, T_183804)
+ when T_183805 :
+ T_183799 := T_183798
+ node T_183806 = or(UInt<1>(0), UInt<1>(0))
+ T_183800 := T_183806
+ T_183801 := s1_tag_match[3]
+ node T_183807 = bits(T_183802, 19, 0)
+ node T_183808 = eq(T_183807, s1_tag)
+ s1_tag_match[3] := T_183808
+ node T_183809 = and(T_183799, T_183801)
+ s2_tag_hit[3] := T_183809
+ node T_183810 = or(UInt<1>(0), UInt<1>(0))
+ node T_183811 = or(T_183800, T_183810)
+ node T_183812 = and(T_183799, T_183811)
+ s2_disparity[3] := T_183812
+ node T_183813 = or(s2_tag_hit[0], s2_tag_hit[1])
+ node T_183814 = or(T_183813, s2_tag_hit[2])
+ node T_183815 = or(T_183814, s2_tag_hit[3])
+ node T_183816 = or(s2_disparity[0], s2_disparity[1])
+ node T_183817 = or(T_183816, s2_disparity[2])
+ node T_183818 = or(T_183817, s2_disparity[3])
+ node T_183819 = eq(T_183818, UInt<1>(0))
+ node T_183820 = and(T_183815, T_183819)
+ s2_any_tag_hit := T_183820
+ cmem T_183821 : UInt<128>[256]
+ node T_183822 = eq(repl_way, UInt<1>(0))
+ node T_183823 = and(T_183639.out.valid, T_183822)
+ when T_183823 :
+ node T_183824 = cat(s2_idx, refill_cnt)
+ accessor T_183825 = T_183821[T_183824]
+ T_183825 := T_183639.out.bits.data
+ node T_183826 = bits(s0_pgoff, 11, 4)
+ node T_183827 = eq(T_183823, UInt<1>(0))
+ node T_183828 = and(T_183827, s0_valid)
+ reg T_183829 : UInt<8>
+ when T_183828 : T_183829 := T_183826
+ accessor T_183830 = T_183821[T_183829]
+
+
+ node T_183831 = and(s1_valid, rdy)
+ node T_183832 = eq(stall, UInt<1>(0))
+ node T_183833 = and(T_183831, T_183832)
+ node T_183834 = or(UInt<1>(0), s1_tag_match[0])
+ node T_183835 = and(T_183833, T_183834)
+ when T_183835 : s2_dout[0] := T_183830
+ cmem T_183836 : UInt<128>[256]
+ node T_183837 = eq(repl_way, UInt<1>(1))
+ node T_183838 = and(T_183639.out.valid, T_183837)
+ when T_183838 :
+ node T_183839 = cat(s2_idx, refill_cnt)
+ accessor T_183840 = T_183836[T_183839]
+ T_183840 := T_183639.out.bits.data
+ node T_183841 = bits(s0_pgoff, 11, 4)
+ node T_183842 = eq(T_183838, UInt<1>(0))
+ node T_183843 = and(T_183842, s0_valid)
+ reg T_183844 : UInt<8>
+ when T_183843 : T_183844 := T_183841
+ accessor T_183845 = T_183836[T_183844]
+
+
+ node T_183846 = and(s1_valid, rdy)
+ node T_183847 = eq(stall, UInt<1>(0))
+ node T_183848 = and(T_183846, T_183847)
+ node T_183849 = or(UInt<1>(0), s1_tag_match[1])
+ node T_183850 = and(T_183848, T_183849)
+ when T_183850 : s2_dout[1] := T_183845
+ cmem T_183851 : UInt<128>[256]
+ node T_183852 = eq(repl_way, UInt<2>(2))
+ node T_183853 = and(T_183639.out.valid, T_183852)
+ when T_183853 :
+ node T_183854 = cat(s2_idx, refill_cnt)
+ accessor T_183855 = T_183851[T_183854]
+ T_183855 := T_183639.out.bits.data
+ node T_183856 = bits(s0_pgoff, 11, 4)
+ node T_183857 = eq(T_183853, UInt<1>(0))
+ node T_183858 = and(T_183857, s0_valid)
+ reg T_183859 : UInt<8>
+ when T_183858 : T_183859 := T_183856
+ accessor T_183860 = T_183851[T_183859]
+
+
+ node T_183861 = and(s1_valid, rdy)
+ node T_183862 = eq(stall, UInt<1>(0))
+ node T_183863 = and(T_183861, T_183862)
+ node T_183864 = or(UInt<1>(0), s1_tag_match[2])
+ node T_183865 = and(T_183863, T_183864)
+ when T_183865 : s2_dout[2] := T_183860
+ cmem T_183866 : UInt<128>[256]
+ node T_183867 = eq(repl_way, UInt<2>(3))
+ node T_183868 = and(T_183639.out.valid, T_183867)
+ when T_183868 :
+ node T_183869 = cat(s2_idx, refill_cnt)
+ accessor T_183870 = T_183866[T_183869]
+ T_183870 := T_183639.out.bits.data
+ node T_183871 = bits(s0_pgoff, 11, 4)
+ node T_183872 = eq(T_183868, UInt<1>(0))
+ node T_183873 = and(T_183872, s0_valid)
+ reg T_183874 : UInt<8>
+ when T_183873 : T_183874 := T_183871
+ accessor T_183875 = T_183866[T_183874]
+
+
+ node T_183876 = and(s1_valid, rdy)
+ node T_183877 = eq(stall, UInt<1>(0))
+ node T_183878 = and(T_183876, T_183877)
+ node T_183879 = or(UInt<1>(0), s1_tag_match[3])
+ node T_183880 = and(T_183878, T_183879)
+ when T_183880 : s2_dout[3] := T_183875
+ node T_183881 = bits(s2_offset, 3, 2)
+ node T_183882 = shl(T_183881, 5)
+ node T_183883 = dshr(s2_dout[0], T_183882)
+ node T_183884 = bits(T_183883, 31, 0)
+ node T_183885 = bits(s2_offset, 3, 2)
+ node T_183886 = shl(T_183885, 5)
+ node T_183887 = dshr(s2_dout[1], T_183886)
+ node T_183888 = bits(T_183887, 31, 0)
+ node T_183889 = bits(s2_offset, 3, 2)
+ node T_183890 = shl(T_183889, 5)
+ node T_183891 = dshr(s2_dout[2], T_183890)
+ node T_183892 = bits(T_183891, 31, 0)
+ node T_183893 = bits(s2_offset, 3, 2)
+ node T_183894 = shl(T_183893, 5)
+ node T_183895 = dshr(s2_dout[3], T_183894)
+ node T_183896 = bits(T_183895, 31, 0)
+ wire T_183897 : UInt<1>
+ T_183897 := UInt<1>(0)
+ when s2_tag_hit[0] : T_183897 := T_183884
+ wire T_183898 : UInt<1>
+ T_183898 := UInt<1>(0)
+ when s2_tag_hit[1] : T_183898 := T_183888
+ wire T_183899 : UInt<1>
+ T_183899 := UInt<1>(0)
+ when s2_tag_hit[2] : T_183899 := T_183892
+ wire T_183900 : UInt<1>
+ T_183900 := UInt<1>(0)
+ when s2_tag_hit[3] : T_183900 := T_183896
+ node T_183901 = or(T_183897, T_183898)
+ node T_183902 = or(T_183901, T_183899)
+ node T_183903 = or(T_183902, T_183900)
+ wire T_183904 : UInt<32>
+ node T_183905 = bits(T_183903, 31, 0)
+ T_183904 := T_183905
+ resp.bits.data := T_183904
+ wire T_183906 : UInt<1>
+ T_183906 := UInt<1>(0)
+ when s2_tag_hit[0] : T_183906 := s2_dout[0]
+ wire T_183907 : UInt<1>
+ T_183907 := UInt<1>(0)
+ when s2_tag_hit[1] : T_183907 := s2_dout[1]
+ wire T_183908 : UInt<1>
+ T_183908 := UInt<1>(0)
+ when s2_tag_hit[2] : T_183908 := s2_dout[2]
+ wire T_183909 : UInt<1>
+ T_183909 := UInt<1>(0)
+ when s2_tag_hit[3] : T_183909 := s2_dout[3]
+ node T_183910 = or(T_183906, T_183907)
+ node T_183911 = or(T_183910, T_183908)
+ node T_183912 = or(T_183911, T_183909)
+ wire T_183913 : UInt
+ node T_183914 = bits(T_183912, -2, 0)
+ T_183913 := T_183914
+ resp.bits.datablock := T_183913
+ resp.valid := s2_hit
+ node T_183915 = eq(state, UInt<2>(1))
+ mem__.acquire.valid := T_183915
+ node T_183916 = dshr(s2_addr, UInt<3>(6))
+ wire T_183917 : UInt<3>[3]
+ T_183917[0] := UInt<3>(0)
+ T_183917[1] := UInt<3>(1)
+ T_183917[2] := UInt<3>(2)
+ wire T_183918 : UInt<2>[2]
+ T_183918[0] := UInt<2>(0)
+ T_183918[1] := UInt<2>(1)
+ wire T_183919 : UInt<2>[3]
+ T_183919[0] := UInt<2>(1)
+ T_183919[1] := UInt<2>(2)
+ T_183919[2] := UInt<2>(3)
+ wire T_183920 : UInt<2>[2]
+ T_183920[0] := UInt<2>(2)
+ T_183920[1] := UInt<2>(3)
+ wire T_183921 : UInt<2>[1]
+ T_183921[0] := UInt<2>(3)
+ wire T_183922 : UInt<3>[3]
+ T_183922[0] := UInt<3>(0)
+ T_183922[1] := UInt<3>(1)
+ T_183922[2] := UInt<3>(2)
+ wire T_183923 : UInt<2>[2]
+ T_183923[0] := UInt<2>(0)
+ T_183923[1] := UInt<2>(1)
+ wire T_183924 : UInt<2>[3]
+ T_183924[0] := UInt<2>(1)
+ T_183924[1] := UInt<2>(2)
+ T_183924[2] := UInt<2>(3)
+ wire T_183925 : UInt<2>[2]
+ T_183925[0] := UInt<2>(2)
+ T_183925[1] := UInt<2>(3)
+ wire T_183926 : UInt<2>[1]
+ T_183926[0] := UInt<2>(3)
+ wire T_183927 : {addr_block : UInt<26>, client_xact_id : UInt<1>, addr_beat : UInt<2>, data : UInt<128>, is_builtin_type : UInt<1>, a_type : UInt<3>, union : UInt<17>}
+ T_183927.is_builtin_type := UInt<1>(1)
+ T_183927.a_type := UInt<3>(1)
+ T_183927.client_xact_id := UInt<1>(0)
+ T_183927.addr_block := T_183916
+ T_183927.addr_beat := UInt<1>(0)
+ T_183927.data := UInt<1>(0)
+ T_183927.union := UInt<9>(449)
+ mem__.acquire.bits := T_183927
+
+ node T_183928 = eq(UInt<2>(0), state)
+ when T_183928 :
+ when s2_miss : state := UInt<2>(1)
+ invalidated := UInt<1>(0)
+
+ node T_183929 = eq(UInt<2>(1), state)
+ when T_183929 : when mem__.acquire.ready : state := UInt<2>(2)
+
+ node T_183930 = eq(UInt<2>(2), state)
+ when T_183930 : when mem__.grant.valid : state := UInt<2>(3)
+
+ node T_183931 = eq(UInt<2>(3), state)
+ when T_183931 : when refill_done : state := UInt<2>(0)
+ module RocketCAM :
+ input clear : UInt<1>
+ input clear_mask : UInt<8>
+ input tag : UInt<34>
+ output hit : UInt<1>
+ output hits : UInt<8>
+ output valid_bits : UInt<8>
+ input write : UInt<1>
+ input write_tag : UInt<34>
+ input write_addr : UInt<3>
+
+ cmem cam_tags : UInt<34>[8]
+ reg vb_array : UInt<8>
+ onreset vb_array := UInt<8>(0)
+ when write :
+ node T_183932 = dshl(UInt<1>(1), write_addr)
+ node T_183933 = or(vb_array, T_183932)
+ node T_183934 = not(vb_array)
+ node T_183935 = or(T_183934, T_183932)
+ node T_183936 = not(T_183935)
+ wire T_183937 : UInt<9>
+ T_183937 := T_183936
+ when UInt<1>(1) : T_183937 := T_183933
+ vb_array := T_183937
+ accessor T_183938 = cam_tags[write_addr]
+ T_183938 := write_tag
+ when clear :
+ node T_183939 = not(clear_mask)
+ node T_183940 = and(vb_array, T_183939)
+ vb_array := T_183940
+ node T_183941 = bit(vb_array, 0)
+ accessor T_183942 = cam_tags[UInt<1>(0)]
+ node T_183943 = eq(T_183942, tag)
+ node T_183944 = and(T_183941, T_183943)
+ node T_183945 = bit(vb_array, 1)
+ accessor T_183946 = cam_tags[UInt<1>(1)]
+ node T_183947 = eq(T_183946, tag)
+ node T_183948 = and(T_183945, T_183947)
+ node T_183949 = bit(vb_array, 2)
+ accessor T_183950 = cam_tags[UInt<2>(2)]
+ node T_183951 = eq(T_183950, tag)
+ node T_183952 = and(T_183949, T_183951)
+ node T_183953 = bit(vb_array, 3)
+ accessor T_183954 = cam_tags[UInt<2>(3)]
+ node T_183955 = eq(T_183954, tag)
+ node T_183956 = and(T_183953, T_183955)
+ node T_183957 = bit(vb_array, 4)
+ accessor T_183958 = cam_tags[UInt<3>(4)]
+ node T_183959 = eq(T_183958, tag)
+ node T_183960 = and(T_183957, T_183959)
+ node T_183961 = bit(vb_array, 5)
+ accessor T_183962 = cam_tags[UInt<3>(5)]
+ node T_183963 = eq(T_183962, tag)
+ node T_183964 = and(T_183961, T_183963)
+ node T_183965 = bit(vb_array, 6)
+ accessor T_183966 = cam_tags[UInt<3>(6)]
+ node T_183967 = eq(T_183966, tag)
+ node T_183968 = and(T_183965, T_183967)
+ node T_183969 = bit(vb_array, 7)
+ accessor T_183970 = cam_tags[UInt<3>(7)]
+ node T_183971 = eq(T_183970, tag)
+ node T_183972 = and(T_183969, T_183971)
+ valid_bits := vb_array
+ wire T_183973 : UInt<1>[8]
+ T_183973[0] := T_183944
+ T_183973[1] := T_183948
+ T_183973[2] := T_183952
+ T_183973[3] := T_183956
+ T_183973[4] := T_183960
+ T_183973[5] := T_183964
+ T_183973[6] := T_183968
+ T_183973[7] := T_183972
+ node T_183974 = cat(T_183973[7], T_183973[6])
+ node T_183975 = cat(T_183973[5], T_183973[4])
+ node T_183976 = cat(T_183974, T_183975)
+ node T_183977 = cat(T_183973[3], T_183973[2])
+ node T_183978 = cat(T_183973[1], T_183973[0])
+ node T_183979 = cat(T_183977, T_183978)
+ node T_183980 = cat(T_183976, T_183979)
+ hits := T_183980
+ node T_183981 = eq(hits, UInt<1>(0))
+ node T_183982 = eq(T_183981, UInt<1>(0))
+ hit := T_183982
+ module TLB :
+ input req : {flip ready : UInt<1>, valid : UInt<1>, bits : {asid : UInt<7>, vpn : UInt<28>, passthrough : UInt<1>, instruction : UInt<1>, store : UInt<1>}}
+ output resp : {miss : UInt<1>, ppn : UInt<20>, xcpt_ld : UInt<1>, xcpt_st : UInt<1>, xcpt_if : UInt<1>, hit_idx : UInt<8>}
+ output ptw : {req : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr : UInt<27>, prv : UInt<2>, store : UInt<1>, fetch : UInt<1>}}, flip resp : {valid : UInt<1>, bits : {error : UInt<1>, pte : {ppn : UInt<20>, reserved_for_software : UInt<3>, d : UInt<1>, r : UInt<1>, typ : UInt<4>, v : UInt<1>}}}, flip status : {sd : UInt<1>, zero2 : UInt<31>, sd_rv32 : UInt<1>, zero1 : UInt<9>, vm : UInt<5>, mprv : UInt<1>, xs : UInt<2>, fs : UInt<2>, prv3 : UInt<2>, ie3 : UInt<1>, prv2 : UInt<2>, ie2 : UInt<1>, prv1 : UInt<2>, ie1 : UInt<1>, prv : UInt<2>, ie : UInt<1>}, flip invalidate : UInt<1>}
+
+ reg state : UInt<2>
+ onreset state := UInt<2>(0)
+ reg r_refill_tag : UInt
+ reg r_refill_waddr : UInt
+ reg r_req : {asid : UInt<7>, vpn : UInt<28>, passthrough : UInt<1>, instruction : UInt<1>, store : UInt<1>}
+ inst tag_cam of RocketCAM
+ cmem tag_ram : UInt<20>[8]
+ node lookup_tag = cat(req.bits.asid, req.bits.vpn)
+ tag_cam.tag := lookup_tag
+ node T_183983 = eq(state, UInt<2>(2))
+ node T_183984 = and(T_183983, ptw.resp.valid)
+ tag_cam.write := T_183984
+ tag_cam.write_tag := r_refill_tag
+ tag_cam.write_addr := r_refill_waddr
+ node T_183985 = bits(tag_cam.hits, 7, 4)
+ node T_183986 = bits(tag_cam.hits, 3, 0)
+ node T_183987 = eq(T_183985, UInt<1>(0))
+ node T_183988 = eq(T_183987, UInt<1>(0))
+ node T_183989 = or(T_183985, T_183986)
+ node T_183990 = bits(T_183989, 3, 2)
+ node T_183991 = bits(T_183989, 1, 0)
+ node T_183992 = eq(T_183990, UInt<1>(0))
+ node T_183993 = eq(T_183992, UInt<1>(0))
+ node T_183994 = or(T_183990, T_183991)
+ node T_183995 = bit(T_183994, 1)
+ node T_183996 = cat(T_183993, T_183995)
+ node tag_hit_addr = cat(T_183988, T_183996)
+ reg valid_array : UInt<1>[8]
+ reg ur_array : UInt<1>[8]
+ reg uw_array : UInt<1>[8]
+ reg ux_array : UInt<1>[8]
+ reg sr_array : UInt<1>[8]
+ reg sw_array : UInt<1>[8]
+ reg sx_array : UInt<1>[8]
+ reg dirty_array : UInt<1>[8]
+ when ptw.resp.valid :
+ accessor T_183997 = tag_ram[r_refill_waddr]
+ T_183997 := ptw.resp.bits.pte.ppn
+ accessor T_183998 = valid_array[r_refill_waddr]
+ node T_183999 = eq(ptw.resp.bits.error, UInt<1>(0))
+ T_183998 := T_183999
+ accessor T_184000 = ur_array[r_refill_waddr]
+ node T_184001 = geq(ptw.resp.bits.pte.typ, UInt<2>(2))
+ node T_184002 = and(ptw.resp.bits.pte.v, T_184001)
+ node T_184003 = lt(ptw.resp.bits.pte.typ, UInt<4>(8))
+ node T_184004 = and(T_184002, T_184003)
+ node T_184005 = eq(ptw.resp.bits.error, UInt<1>(0))
+ node T_184006 = and(T_184004, T_184005)
+ T_184000 := T_184006
+ accessor T_184007 = uw_array[r_refill_waddr]
+ node T_184008 = geq(ptw.resp.bits.pte.typ, UInt<2>(2))
+ node T_184009 = and(ptw.resp.bits.pte.v, T_184008)
+ node T_184010 = lt(ptw.resp.bits.pte.typ, UInt<4>(8))
+ node T_184011 = and(T_184009, T_184010)
+ node T_184012 = bit(ptw.resp.bits.pte.typ, 0)
+ node T_184013 = and(T_184011, T_184012)
+ node T_184014 = eq(ptw.resp.bits.error, UInt<1>(0))
+ node T_184015 = and(T_184013, T_184014)
+ T_184007 := T_184015
+ accessor T_184016 = ux_array[r_refill_waddr]
+ node T_184017 = geq(ptw.resp.bits.pte.typ, UInt<2>(2))
+ node T_184018 = and(ptw.resp.bits.pte.v, T_184017)
+ node T_184019 = lt(ptw.resp.bits.pte.typ, UInt<4>(8))
+ node T_184020 = and(T_184018, T_184019)
+ node T_184021 = bit(ptw.resp.bits.pte.typ, 1)
+ node T_184022 = and(T_184020, T_184021)
+ node T_184023 = eq(ptw.resp.bits.error, UInt<1>(0))
+ node T_184024 = and(T_184022, T_184023)
+ T_184016 := T_184024
+ accessor T_184025 = sr_array[r_refill_waddr]
+ node T_184026 = geq(ptw.resp.bits.pte.typ, UInt<2>(2))
+ node T_184027 = and(ptw.resp.bits.pte.v, T_184026)
+ node T_184028 = eq(ptw.resp.bits.error, UInt<1>(0))
+ node T_184029 = and(T_184027, T_184028)
+ T_184025 := T_184029
+ accessor T_184030 = sw_array[r_refill_waddr]
+ node T_184031 = geq(ptw.resp.bits.pte.typ, UInt<2>(2))
+ node T_184032 = and(ptw.resp.bits.pte.v, T_184031)
+ node T_184033 = bit(ptw.resp.bits.pte.typ, 0)
+ node T_184034 = and(T_184032, T_184033)
+ node T_184035 = eq(ptw.resp.bits.error, UInt<1>(0))
+ node T_184036 = and(T_184034, T_184035)
+ T_184030 := T_184036
+ accessor T_184037 = sx_array[r_refill_waddr]
+ node T_184038 = geq(ptw.resp.bits.pte.typ, UInt<3>(4))
+ node T_184039 = and(ptw.resp.bits.pte.v, T_184038)
+ node T_184040 = bit(ptw.resp.bits.pte.typ, 1)
+ node T_184041 = and(T_184039, T_184040)
+ node T_184042 = eq(ptw.resp.bits.error, UInt<1>(0))
+ node T_184043 = and(T_184041, T_184042)
+ T_184037 := T_184043
+ accessor T_184044 = dirty_array[r_refill_waddr]
+ T_184044 := ptw.resp.bits.pte.d
+ node T_184045 = eq(tag_cam.valid_bits, UInt<1>(-1))
+ node has_invalid_entry = eq(T_184045, UInt<1>(0))
+ node T_184046 = not(tag_cam.valid_bits)
+ node T_184047 = bit(T_184046, 0)
+ node T_184048 = bit(T_184046, 1)
+ node T_184049 = bit(T_184046, 2)
+ node T_184050 = bit(T_184046, 3)
+ node T_184051 = bit(T_184046, 4)
+ node T_184052 = bit(T_184046, 5)
+ node T_184053 = bit(T_184046, 6)
+ node T_184054 = bit(T_184046, 7)
+ wire T_184055 : UInt<1>[8]
+ T_184055[0] := T_184047
+ T_184055[1] := T_184048
+ T_184055[2] := T_184049
+ T_184055[3] := T_184050
+ T_184055[4] := T_184051
+ T_184055[5] := T_184052
+ T_184055[6] := T_184053
+ T_184055[7] := T_184054
+ wire T_184056 : UInt<3>
+ T_184056 := UInt<3>(7)
+ when T_184055[6] : T_184056 := UInt<3>(6)
+ wire T_184057 : UInt<3>
+ T_184057 := T_184056
+ when T_184055[5] : T_184057 := UInt<3>(5)
+ wire T_184058 : UInt<3>
+ T_184058 := T_184057
+ when T_184055[4] : T_184058 := UInt<3>(4)
+ wire T_184059 : UInt<3>
+ T_184059 := T_184058
+ when T_184055[3] : T_184059 := UInt<2>(3)
+ wire T_184060 : UInt<3>
+ T_184060 := T_184059
+ when T_184055[2] : T_184060 := UInt<2>(2)
+ wire T_184061 : UInt<3>
+ T_184061 := T_184060
+ when T_184055[1] : T_184061 := UInt<1>(1)
+ wire invalid_entry : UInt<3>
+ invalid_entry := T_184061
+ when T_184055[0] : invalid_entry := UInt<1>(0)
+ reg T_184062 : UInt<8>
+ node T_184063 = dshr(T_184062, UInt<1>(1))
+ node T_184064 = bit(T_184063, 0)
+ node T_184065 = cat(UInt<1>(1), T_184064)
+ node T_184066 = dshr(T_184062, T_184065)
+ node T_184067 = bit(T_184066, 0)
+ node T_184068 = cat(T_184065, T_184067)
+ node T_184069 = dshr(T_184062, T_184068)
+ node T_184070 = bit(T_184069, 0)
+ node T_184071 = cat(T_184068, T_184070)
+ node T_184072 = bits(T_184071, 2, 0)
+ wire repl_waddr : UInt<3>
+ repl_waddr := T_184072
+ when has_invalid_entry : repl_waddr := invalid_entry
+ node T_184073 = eq(req.bits.instruction, UInt<1>(0))
+ node T_184074 = and(ptw.status.mprv, T_184073)
+ wire priv : UInt<2>
+ priv := ptw.status.prv
+ when T_184074 : priv := ptw.status.prv1
+ node priv_s = eq(priv, UInt<1>(1))
+ node priv_uses_vm = leq(priv, UInt<1>(1))
+ node T_184075 = eq(r_req.store, UInt<1>(0))
+ node T_184076 = or(r_req.instruction, r_req.store)
+ node T_184077 = eq(T_184076, UInt<1>(0))
+ node T_184078 = cat(r_req.store, T_184077)
+ node req_xwr = cat(T_184075, T_184078)
+ node T_184079 = cat(sr_array[7], sr_array[6])
+ node T_184080 = cat(sr_array[5], sr_array[4])
+ node T_184081 = cat(T_184079, T_184080)
+ node T_184082 = cat(sr_array[3], sr_array[2])
+ node T_184083 = cat(sr_array[1], sr_array[0])
+ node T_184084 = cat(T_184082, T_184083)
+ node T_184085 = cat(T_184081, T_184084)
+ node T_184086 = cat(ur_array[7], ur_array[6])
+ node T_184087 = cat(ur_array[5], ur_array[4])
+ node T_184088 = cat(T_184086, T_184087)
+ node T_184089 = cat(ur_array[3], ur_array[2])
+ node T_184090 = cat(ur_array[1], ur_array[0])
+ node T_184091 = cat(T_184089, T_184090)
+ node T_184092 = cat(T_184088, T_184091)
+ wire r_array : UInt<8>
+ r_array := T_184092
+ when priv_s : r_array := T_184085
+ node T_184093 = cat(sw_array[7], sw_array[6])
+ node T_184094 = cat(sw_array[5], sw_array[4])
+ node T_184095 = cat(T_184093, T_184094)
+ node T_184096 = cat(sw_array[3], sw_array[2])
+ node T_184097 = cat(sw_array[1], sw_array[0])
+ node T_184098 = cat(T_184096, T_184097)
+ node T_184099 = cat(T_184095, T_184098)
+ node T_184100 = cat(uw_array[7], uw_array[6])
+ node T_184101 = cat(uw_array[5], uw_array[4])
+ node T_184102 = cat(T_184100, T_184101)
+ node T_184103 = cat(uw_array[3], uw_array[2])
+ node T_184104 = cat(uw_array[1], uw_array[0])
+ node T_184105 = cat(T_184103, T_184104)
+ node T_184106 = cat(T_184102, T_184105)
+ wire w_array : UInt<8>
+ w_array := T_184106
+ when priv_s : w_array := T_184099
+ node T_184107 = cat(sx_array[7], sx_array[6])
+ node T_184108 = cat(sx_array[5], sx_array[4])
+ node T_184109 = cat(T_184107, T_184108)
+ node T_184110 = cat(sx_array[3], sx_array[2])
+ node T_184111 = cat(sx_array[1], sx_array[0])
+ node T_184112 = cat(T_184110, T_184111)
+ node T_184113 = cat(T_184109, T_184112)
+ node T_184114 = cat(ux_array[7], ux_array[6])
+ node T_184115 = cat(ux_array[5], ux_array[4])
+ node T_184116 = cat(T_184114, T_184115)
+ node T_184117 = cat(ux_array[3], ux_array[2])
+ node T_184118 = cat(ux_array[1], ux_array[0])
+ node T_184119 = cat(T_184117, T_184118)
+ node T_184120 = cat(T_184116, T_184119)
+ wire x_array : UInt<8>
+ x_array := T_184120
+ when priv_s : x_array := T_184113
+ node T_184121 = bit(ptw.status.vm, 3)
+ node vm_enabled = and(T_184121, priv_uses_vm)
+ node T_184122 = bit(req.bits.vpn, 27)
+ node T_184123 = bit(req.bits.vpn, 26)
+ node bad_va = neq(T_184122, T_184123)
+ node T_184124 = cat(dirty_array[7], dirty_array[6])
+ node T_184125 = cat(dirty_array[5], dirty_array[4])
+ node T_184126 = cat(T_184124, T_184125)
+ node T_184127 = cat(dirty_array[3], dirty_array[2])
+ node T_184128 = cat(dirty_array[1], dirty_array[0])
+ node T_184129 = cat(T_184127, T_184128)
+ node T_184130 = cat(T_184126, T_184129)
+ wire T_184131 : UInt<1>
+ T_184131 := UInt<1>(0)
+ when req.bits.store : T_184131 := w_array
+ node T_184132 = not(T_184131)
+ node T_184133 = or(T_184130, T_184132)
+ node tag_hits = and(tag_cam.hits, T_184133)
+ node T_184134 = eq(tag_hits, UInt<1>(0))
+ node tag_hit = eq(T_184134, UInt<1>(0))
+ node tlb_hit = and(vm_enabled, tag_hit)
+ node T_184135 = eq(tag_hit, UInt<1>(0))
+ node T_184136 = and(vm_enabled, T_184135)
+ node T_184137 = eq(bad_va, UInt<1>(0))
+ node tlb_miss = and(T_184136, T_184137)
+
+ node T_184138 = and(req.valid, tlb_hit)
+ when T_184138 :
+ node T_184139 = bits(tag_cam.hits, 7, 4)
+ node T_184140 = bits(tag_cam.hits, 3, 0)
+ node T_184141 = eq(T_184139, UInt<1>(0))
+ node T_184142 = eq(T_184141, UInt<1>(0))
+ node T_184143 = or(T_184139, T_184140)
+ node T_184144 = bits(T_184143, 3, 2)
+ node T_184145 = bits(T_184143, 1, 0)
+ node T_184146 = eq(T_184144, UInt<1>(0))
+ node T_184147 = eq(T_184146, UInt<1>(0))
+ node T_184148 = or(T_184144, T_184145)
+ node T_184149 = bit(T_184148, 1)
+ node T_184150 = cat(T_184147, T_184149)
+ node T_184151 = cat(T_184142, T_184150)
+ node T_184152 = bit(T_184151, 2)
+ node T_184153 = dshl(UInt<8>(1), UInt<1>(1))
+ node T_184154 = bits(T_184153, 7, 0)
+ node T_184155 = not(T_184154)
+ node T_184156 = and(T_184062, T_184155)
+ wire T_184157 : UInt<8>
+ T_184157 := T_184154
+ when T_184152 : T_184157 := UInt<1>(0)
+ node T_184158 = or(T_184156, T_184157)
+ node T_184159 = cat(UInt<1>(1), T_184152)
+ node T_184160 = bit(T_184151, 1)
+ node T_184161 = dshl(UInt<8>(1), T_184159)
+ node T_184162 = bits(T_184161, 7, 0)
+ node T_184163 = not(T_184162)
+ node T_184164 = and(T_184158, T_184163)
+ wire T_184165 : UInt<8>
+ T_184165 := T_184162
+ when T_184160 : T_184165 := UInt<1>(0)
+ node T_184166 = or(T_184164, T_184165)
+ node T_184167 = cat(T_184159, T_184160)
+ node T_184168 = bit(T_184151, 0)
+ node T_184169 = dshl(UInt<8>(1), T_184167)
+ node T_184170 = bits(T_184169, 7, 0)
+ node T_184171 = not(T_184170)
+ node T_184172 = and(T_184166, T_184171)
+ wire T_184173 : UInt<8>
+ T_184173 := T_184170
+ when T_184168 : T_184173 := UInt<1>(0)
+ node T_184174 = or(T_184172, T_184173)
+ node T_184175 = cat(T_184167, T_184168)
+ T_184062 := T_184174
+ node T_184176 = eq(state, UInt<2>(0))
+ req.ready := T_184176
+ node T_184177 = and(r_array, tag_cam.hits)
+ node T_184178 = eq(T_184177, UInt<1>(0))
+ node T_184179 = eq(T_184178, UInt<1>(0))
+ node T_184180 = eq(T_184179, UInt<1>(0))
+ node T_184181 = and(tlb_hit, T_184180)
+ node T_184182 = or(bad_va, T_184181)
+ resp.xcpt_ld := T_184182
+ node T_184183 = and(w_array, tag_cam.hits)
+ node T_184184 = eq(T_184183, UInt<1>(0))
+ node T_184185 = eq(T_184184, UInt<1>(0))
+ node T_184186 = eq(T_184185, UInt<1>(0))
+ node T_184187 = and(tlb_hit, T_184186)
+ node T_184188 = or(bad_va, T_184187)
+ resp.xcpt_st := T_184188
+ node T_184189 = and(x_array, tag_cam.hits)
+ node T_184190 = eq(T_184189, UInt<1>(0))
+ node T_184191 = eq(T_184190, UInt<1>(0))
+ node T_184192 = eq(T_184191, UInt<1>(0))
+ node T_184193 = and(tlb_hit, T_184192)
+ node T_184194 = or(bad_va, T_184193)
+ resp.xcpt_if := T_184194
+ resp.miss := tlb_miss
+ node T_184195 = eq(req.bits.passthrough, UInt<1>(0))
+ node T_184196 = and(vm_enabled, T_184195)
+ node T_184197 = bit(tag_cam.hits, 0)
+ node T_184198 = bit(tag_cam.hits, 1)
+ node T_184199 = bit(tag_cam.hits, 2)
+ node T_184200 = bit(tag_cam.hits, 3)
+ node T_184201 = bit(tag_cam.hits, 4)
+ node T_184202 = bit(tag_cam.hits, 5)
+ node T_184203 = bit(tag_cam.hits, 6)
+ node T_184204 = bit(tag_cam.hits, 7)
+ accessor T_184205 = tag_ram[UInt<1>(0)]
+ accessor T_184206 = tag_ram[UInt<1>(1)]
+ accessor T_184207 = tag_ram[UInt<2>(2)]
+ accessor T_184208 = tag_ram[UInt<2>(3)]
+ accessor T_184209 = tag_ram[UInt<3>(4)]
+ accessor T_184210 = tag_ram[UInt<3>(5)]
+ accessor T_184211 = tag_ram[UInt<3>(6)]
+ accessor T_184212 = tag_ram[UInt<3>(7)]
+ wire T_184213 : UInt<1>
+ T_184213 := UInt<1>(0)
+ when T_184197 : T_184213 := T_184205
+ wire T_184214 : UInt<1>
+ T_184214 := UInt<1>(0)
+ when T_184198 : T_184214 := T_184206
+ wire T_184215 : UInt<1>
+ T_184215 := UInt<1>(0)
+ when T_184199 : T_184215 := T_184207
+ wire T_184216 : UInt<1>
+ T_184216 := UInt<1>(0)
+ when T_184200 : T_184216 := T_184208
+ wire T_184217 : UInt<1>
+ T_184217 := UInt<1>(0)
+ when T_184201 : T_184217 := T_184209
+ wire T_184218 : UInt<1>
+ T_184218 := UInt<1>(0)
+ when T_184202 : T_184218 := T_184210
+ wire T_184219 : UInt<1>
+ T_184219 := UInt<1>(0)
+ when T_184203 : T_184219 := T_184211
+ wire T_184220 : UInt<1>
+ T_184220 := UInt<1>(0)
+ when T_184204 : T_184220 := T_184212
+ node T_184221 = or(T_184213, T_184214)
+ node T_184222 = or(T_184221, T_184215)
+ node T_184223 = or(T_184222, T_184216)
+ node T_184224 = or(T_184223, T_184217)
+ node T_184225 = or(T_184224, T_184218)
+ node T_184226 = or(T_184225, T_184219)
+ node T_184227 = or(T_184226, T_184220)
+ wire T_184228 : UInt<20>
+ node T_184229 = bits(T_184227, 19, 0)
+ T_184228 := T_184229
+ node T_184230 = bits(req.bits.vpn, 19, 0)
+ wire T_184231 : UInt<20>
+ T_184231 := T_184230
+ when T_184196 : T_184231 := T_184228
+ resp.ppn := T_184231
+ resp.hit_idx := tag_cam.hits
+ node T_184232 = and(req.ready, req.valid)
+ node T_184233 = or(ptw.invalidate, T_184232)
+ tag_cam.clear := T_184233
+ node T_184234 = cat(valid_array[7], valid_array[6])
+ node T_184235 = cat(valid_array[5], valid_array[4])
+ node T_184236 = cat(T_184234, T_184235)
+ node T_184237 = cat(valid_array[3], valid_array[2])
+ node T_184238 = cat(valid_array[1], valid_array[0])
+ node T_184239 = cat(T_184237, T_184238)
+ node T_184240 = cat(T_184236, T_184239)
+ node T_184241 = not(T_184240)
+ node T_184242 = not(tag_hits)
+ node T_184243 = and(tag_cam.hits, T_184242)
+ node T_184244 = or(T_184241, T_184243)
+ tag_cam.clear_mask := T_184244
+ when ptw.invalidate : tag_cam.clear_mask := SInt<1>(-1)
+ node T_184245 = eq(state, UInt<2>(1))
+ ptw.req.valid := T_184245
+ ptw.req.bits.addr := r_refill_tag
+ ptw.req.bits.prv := ptw.status.prv
+ ptw.req.bits.store := r_req.store
+ ptw.req.bits.fetch := r_req.instruction
+
+
+ node T_184246 = and(req.ready, req.valid)
+ node T_184247 = and(T_184246, tlb_miss)
+ when T_184247 :
+ state := UInt<2>(1)
+ r_refill_tag := lookup_tag
+ r_refill_waddr := repl_waddr
+ r_req := req.bits
+
+ node T_184248 = eq(state, UInt<2>(1))
+ when T_184248 :
+ when ptw.invalidate : state := UInt<2>(0)
+ when ptw.req.ready :
+ state := UInt<2>(2)
+ when ptw.invalidate : state := UInt<2>(3)
+
+
+ node T_184249 = eq(state, UInt<2>(2))
+ node T_184250 = and(T_184249, ptw.invalidate)
+ when T_184250 : state := UInt<2>(3)
+ when ptw.resp.valid : state := UInt<2>(0)
+ module Frontend :
+ input cpu : {req : {valid : UInt<1>, bits : {pc : UInt<40>}}, flip resp : {flip ready : UInt<1>, valid : UInt<1>, bits : {pc : UInt<40>, data : UInt<32>[1], mask : UInt<1>, xcpt_if : UInt<1>}}, flip btb_resp : {valid : UInt<1>, bits : {taken : UInt<1>, mask : UInt<1>, bridx : UInt<1>, target : UInt<39>, entry : UInt<6>, bht : {history : UInt<7>, value : UInt<2>}}}, btb_update : {valid : UInt<1>, bits : {prediction : {valid : UInt<1>, bits : {taken : UInt<1>, mask : UInt<1>, bridx : UInt<1>, target : UInt<39>, entry : UInt<6>, bht : {history : UInt<7>, value : UInt<2>}}}, pc : UInt<39>, target : UInt<39>, taken : UInt<1>, isJump : UInt<1>, isReturn : UInt<1>, br_pc : UInt<39>}}, bht_update : {valid : UInt<1>, bits : {prediction : {valid : UInt<1>, bits : {taken : UInt<1>, mask : UInt<1>, bridx : UInt<1>, target : UInt<39>, entry : UInt<6>, bht : {history : UInt<7>, value : UInt<2>}}}, pc : UInt<39>, taken : UInt<1>, mispredict : UInt<1>}}, ras_update : {valid : UInt<1>, bits : {isCall : UInt<1>, isReturn : UInt<1>, returnAddr : UInt<39>, prediction : {valid : UInt<1>, bits : {taken : UInt<1>, mask : UInt<1>, bridx : UInt<1>, target : UInt<39>, entry : UInt<6>, bht : {history : UInt<7>, value : UInt<2>}}}}}, invalidate : UInt<1>, flip npc : UInt<40>}
+ output ptw : {req : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr : UInt<27>, prv : UInt<2>, store : UInt<1>, fetch : UInt<1>}}, flip resp : {valid : UInt<1>, bits : {error : UInt<1>, pte : {ppn : UInt<20>, reserved_for_software : UInt<3>, d : UInt<1>, r : UInt<1>, typ : UInt<4>, v : UInt<1>}}}, flip status : {sd : UInt<1>, zero2 : UInt<31>, sd_rv32 : UInt<1>, zero1 : UInt<9>, vm : UInt<5>, mprv : UInt<1>, xs : UInt<2>, fs : UInt<2>, prv3 : UInt<2>, ie3 : UInt<1>, prv2 : UInt<2>, ie2 : UInt<1>, prv1 : UInt<2>, ie1 : UInt<1>, prv : UInt<2>, ie : UInt<1>}, flip invalidate : UInt<1>}
+ output mem__ : {acquire : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_block : UInt<26>, client_xact_id : UInt<1>, addr_beat : UInt<2>, data : UInt<128>, is_builtin_type : UInt<1>, a_type : UInt<3>, union : UInt<17>}}, flip grant : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_beat : UInt<2>, data : UInt<128>, client_xact_id : UInt<1>, manager_xact_id : UInt<2>, is_builtin_type : UInt<1>, g_type : UInt<4>}}}
+
+ wire data : UInt<32>[1]
+ T_184251.data[0] := T_184252
+ wire data : UInt<32>[1]
+ cpu.resp.bits.data[0] := T_184253
+ wire T_184254 : UInt<3>[3]
+ T_184254[0] := UInt<3>(0)
+ T_184254[1] := UInt<3>(1)
+ T_184254[2] := UInt<3>(2)
+ wire T_184255 : UInt<2>[2]
+ T_184255[0] := UInt<2>(0)
+ T_184255[1] := UInt<2>(1)
+ wire T_184256 : UInt<2>[3]
+ T_184256[0] := UInt<2>(1)
+ T_184256[1] := UInt<2>(2)
+ T_184256[2] := UInt<2>(3)
+ wire T_184257 : UInt<2>[2]
+ T_184257[0] := UInt<2>(2)
+ T_184257[1] := UInt<2>(3)
+ wire T_184258 : UInt<2>[1]
+ T_184258[0] := UInt<2>(3)
+ wire T_184259 : UInt<3>[3]
+ T_184259[0] := UInt<3>(0)
+ T_184259[1] := UInt<3>(1)
+ T_184259[2] := UInt<3>(2)
+ wire T_184260 : UInt<2>[2]
+ T_184260[0] := UInt<2>(0)
+ T_184260[1] := UInt<2>(1)
+ wire T_184261 : UInt<2>[3]
+ T_184261[0] := UInt<2>(1)
+ T_184261[1] := UInt<2>(2)
+ T_184261[2] := UInt<2>(3)
+ wire T_184262 : UInt<2>[2]
+ T_184262[0] := UInt<2>(2)
+ T_184262[1] := UInt<2>(3)
+ wire T_184263 : UInt<2>[1]
+ T_184263[0] := UInt<2>(3)
+ wire T_184264 : UInt<3>[3]
+ T_184264[0] := UInt<3>(0)
+ T_184264[1] := UInt<3>(1)
+ T_184264[2] := UInt<3>(2)
+ wire T_184265 : UInt<2>[2]
+ T_184265[0] := UInt<2>(0)
+ T_184265[1] := UInt<2>(1)
+ wire T_184266 : UInt<2>[3]
+ T_184266[0] := UInt<2>(1)
+ T_184266[1] := UInt<2>(2)
+ T_184266[2] := UInt<2>(3)
+ wire T_184267 : UInt<2>[2]
+ T_184267[0] := UInt<2>(2)
+ T_184267[1] := UInt<2>(3)
+ wire T_184268 : UInt<2>[1]
+ T_184268[0] := UInt<2>(3)
+ wire T_184269 : UInt<3>[3]
+ T_184269[0] := UInt<3>(0)
+ T_184269[1] := UInt<3>(1)
+ T_184269[2] := UInt<3>(2)
+ wire T_184270 : UInt<2>[2]
+ T_184270[0] := UInt<2>(0)
+ T_184270[1] := UInt<2>(1)
+ wire T_184271 : UInt<2>[3]
+ T_184271[0] := UInt<2>(1)
+ T_184271[1] := UInt<2>(2)
+ T_184271[2] := UInt<2>(3)
+ wire T_184272 : UInt<2>[2]
+ T_184272[0] := UInt<2>(2)
+ T_184272[1] := UInt<2>(3)
+ wire T_184273 : UInt<2>[1]
+ T_184273[0] := UInt<2>(3)
+ wire T_184274 : UInt<3>[3]
+ T_184274[0] := UInt<3>(0)
+ T_184274[1] := UInt<3>(1)
+ T_184274[2] := UInt<3>(2)
+ wire T_184275 : UInt<2>[2]
+ T_184275[0] := UInt<2>(0)
+ T_184275[1] := UInt<2>(1)
+ wire T_184276 : UInt<2>[3]
+ T_184276[0] := UInt<2>(1)
+ T_184276[1] := UInt<2>(2)
+ T_184276[2] := UInt<2>(3)
+ wire T_184277 : UInt<2>[2]
+ T_184277[0] := UInt<2>(2)
+ T_184277[1] := UInt<2>(3)
+ wire T_184278 : UInt<2>[1]
+ T_184278[0] := UInt<2>(3)
+ inst btb of BTB
+ inst icache of ICache
+ inst tlb of TLB
+ reg s1_pc_ : UInt
+ node T_184279 = not(s1_pc_)
+ node T_184280 = or(T_184279, UInt<2>(3))
+ node s1_pc = not(T_184280)
+ reg s1_same_block : UInt<1>
+ reg s2_valid : UInt<1>
+ onreset s2_valid := UInt<1>(1)
+ reg s2_pc : UInt<10>
+ onreset s2_pc := UInt<10>(512)
+ reg s2_btb_resp_valid : UInt<1>
+ onreset s2_btb_resp_valid := UInt<1>(0)
+ reg s2_btb_resp_bits : {taken : UInt<1>, mask : UInt<1>, bridx : UInt<1>, target : UInt<39>, entry : UInt<6>, bht : {history : UInt<7>, value : UInt<2>}}
+ reg s2_xcpt_if : UInt<1>
+ onreset s2_xcpt_if := UInt<1>(0)
+ node T_184281 = bit(btb.resp.bits.target, 38)
+ node btbTarget = cat(T_184281, btb.resp.bits.target)
+ node ntpc_0 = addw(s1_pc, UInt<3>(4))
+ node T_184282 = bit(s1_pc, 38)
+ node T_184283 = bit(ntpc_0, 38)
+ node T_184284 = and(T_184282, T_184283)
+ node T_184285 = bits(ntpc_0, 38, 2)
+ node T_184286 = cat(T_184285, UInt<2>(0))
+ node ntpc = cat(T_184284, T_184286)
+ node T_184287 = eq(icache.resp.valid, UInt<1>(0))
+ node icmiss = and(s2_valid, T_184287)
+ wire predicted_npc : UInt<40>
+ predicted_npc := ntpc
+ when btb.resp.bits.taken : predicted_npc := btbTarget
+ wire npc : UInt<40>
+ npc := predicted_npc
+ when icmiss : npc := s2_pc
+ node T_184288 = eq(icmiss, UInt<1>(0))
+ node T_184289 = eq(cpu.req.valid, UInt<1>(0))
+ node T_184290 = and(T_184288, T_184289)
+ node T_184291 = eq(btb.resp.bits.taken, UInt<1>(0))
+ node T_184292 = and(T_184290, T_184291)
+ node T_184293 = and(ntpc, UInt<5>(16))
+ node T_184294 = and(s1_pc, UInt<5>(16))
+ node T_184295 = eq(T_184293, T_184294)
+ node s0_same_block = and(T_184292, T_184295)
+ node T_184296 = eq(cpu.resp.ready, UInt<1>(0))
+ node stall = and(cpu.resp.valid, T_184296)
+
+ node T_184297 = eq(stall, UInt<1>(0))
+ when T_184297 :
+ node T_184298 = eq(tlb.resp.miss, UInt<1>(0))
+ node T_184299 = and(s0_same_block, T_184298)
+ s1_same_block := T_184299
+ s1_pc_ := npc
+ node T_184300 = eq(icmiss, UInt<1>(0))
+ s2_valid := T_184300
+
+ node T_184301 = eq(icmiss, UInt<1>(0))
+ when T_184301 :
+ s2_pc := s1_pc
+ s2_btb_resp_valid := btb.resp.valid
+ when btb.resp.valid : s2_btb_resp_bits := btb.resp.bits
+ s2_xcpt_if := tlb.resp.xcpt_if
+ when cpu.req.valid :
+ s1_same_block := UInt<1>(0)
+ s1_pc_ := cpu.req.bits.pc
+ s2_valid := UInt<1>(0)
+ node T_184302 = eq(stall, UInt<1>(0))
+ node T_184303 = eq(icmiss, UInt<1>(0))
+ node T_184304 = and(T_184302, T_184303)
+ btb.req.valid := T_184304
+ btb.req.bits.addr := s1_pc
+ btb.btb_update := cpu.btb_update
+ btb.bht_update := cpu.bht_update
+ btb.ras_update := cpu.ras_update
+ node T_184305 = or(cpu.invalidate, ptw.invalidate)
+ btb.invalidate := T_184305
+ tlb.ptw <> ptw
+ node T_184306 = eq(stall, UInt<1>(0))
+ node T_184307 = eq(icmiss, UInt<1>(0))
+ node T_184308 = and(T_184306, T_184307)
+ tlb.req.valid := T_184308
+ node T_184309 = dshr(s1_pc, UInt<4>(12))
+ tlb.req.bits.vpn := T_184309
+ tlb.req.bits.asid := UInt<1>(0)
+ tlb.req.bits.passthrough := UInt<1>(0)
+ tlb.req.bits.instruction := UInt<1>(1)
+ tlb.req.bits.store := UInt<1>(0)
+ icache.mem__ <> mem__
+ node T_184310 = eq(stall, UInt<1>(0))
+ node T_184311 = eq(s0_same_block, UInt<1>(0))
+ node T_184312 = and(T_184310, T_184311)
+ icache.req.valid := T_184312
+ icache.req.bits.idx := cpu.npc
+ icache.invalidate := cpu.invalidate
+ icache.req.bits.ppn := tlb.resp.ppn
+ node T_184313 = or(cpu.req.valid, tlb.resp.miss)
+ node T_184314 = or(T_184313, icmiss)
+ node T_184315 = or(T_184314, ptw.invalidate)
+ icache.req.bits.kill := T_184315
+ node T_184316 = eq(stall, UInt<1>(0))
+ node T_184317 = eq(s1_same_block, UInt<1>(0))
+ node T_184318 = and(T_184316, T_184317)
+ icache.resp.ready := T_184318
+ node T_184319 = or(s2_xcpt_if, icache.resp.valid)
+ node T_184320 = and(s2_valid, T_184319)
+ cpu.resp.valid := T_184320
+ cpu.resp.bits.pc := s2_pc
+ wire T_184321 : UInt<40>
+ T_184321 := npc
+ when cpu.req.valid : T_184321 := cpu.req.bits.pc
+ cpu.npc := T_184321
+ node T_184322 = bits(s2_pc, 3, 2)
+ node T_184323 = shl(T_184322, 5)
+ node fetch_data = dshr(icache.resp.bits.datablock, T_184323)
+ node T_184324 = bits(fetch_data, 31, 0)
+ cpu.resp.bits.data[0] := T_184324
+ node T_184325 = and(UInt<2>(3), s2_btb_resp_bits.mask)
+ wire T_184326 : UInt<2>
+ T_184326 := UInt<2>(3)
+ when s2_btb_resp_valid : T_184326 := T_184325
+ cpu.resp.bits.mask := T_184326
+ cpu.resp.bits.xcpt_if := s2_xcpt_if
+ cpu.btb_resp.valid := s2_btb_resp_valid
+ cpu.btb_resp.bits := s2_btb_resp_bits
+ module WritebackUnit :
+ input req : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_block : UInt<26>, client_xact_id : UInt<1>, addr_beat : UInt<2>, data : UInt<128>, r_type : UInt<3>, voluntary : UInt<1>, way_en : UInt<4>}}
+ output meta_read : {flip ready : UInt<1>, valid : UInt<1>, bits : {idx : UInt<6>, tag : UInt<20>}}
+ output data_req : {flip ready : UInt<1>, valid : UInt<1>, bits : {way_en : UInt<4>, addr : UInt<12>}}
+ input data_resp : UInt<128>
+ output release : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_block : UInt<26>, client_xact_id : UInt<1>, addr_beat : UInt<2>, data : UInt<128>, r_type : UInt<3>, voluntary : UInt<1>}}
+
+ wire T_184327 : UInt<3>[3]
+ T_184327[0] := UInt<3>(0)
+ T_184327[1] := UInt<3>(1)
+ T_184327[2] := UInt<3>(2)
+ wire T_184328 : UInt<2>[2]
+ T_184328[0] := UInt<2>(0)
+ T_184328[1] := UInt<2>(1)
+ wire T_184329 : UInt<2>[3]
+ T_184329[0] := UInt<2>(1)
+ T_184329[1] := UInt<2>(2)
+ T_184329[2] := UInt<2>(3)
+ wire T_184330 : UInt<2>[2]
+ T_184330[0] := UInt<2>(2)
+ T_184330[1] := UInt<2>(3)
+ wire T_184331 : UInt<2>[1]
+ T_184331[0] := UInt<2>(3)
+ wire T_184332 : UInt<3>[3]
+ T_184332[0] := UInt<3>(0)
+ T_184332[1] := UInt<3>(1)
+ T_184332[2] := UInt<3>(2)
+ wire T_184333 : UInt<2>[2]
+ T_184333[0] := UInt<2>(0)
+ T_184333[1] := UInt<2>(1)
+ wire T_184334 : UInt<2>[3]
+ T_184334[0] := UInt<2>(1)
+ T_184334[1] := UInt<2>(2)
+ T_184334[2] := UInt<2>(3)
+ wire T_184335 : UInt<2>[2]
+ T_184335[0] := UInt<2>(2)
+ T_184335[1] := UInt<2>(3)
+ wire T_184336 : UInt<2>[1]
+ T_184336[0] := UInt<2>(3)
+ wire T_184337 : UInt<3>[3]
+ T_184337[0] := UInt<3>(0)
+ T_184337[1] := UInt<3>(1)
+ T_184337[2] := UInt<3>(2)
+ wire T_184338 : UInt<2>[2]
+ T_184338[0] := UInt<2>(0)
+ T_184338[1] := UInt<2>(1)
+ wire T_184339 : UInt<2>[3]
+ T_184339[0] := UInt<2>(1)
+ T_184339[1] := UInt<2>(2)
+ T_184339[2] := UInt<2>(3)
+ wire T_184340 : UInt<2>[2]
+ T_184340[0] := UInt<2>(2)
+ T_184340[1] := UInt<2>(3)
+ wire T_184341 : UInt<2>[1]
+ T_184341[0] := UInt<2>(3)
+ wire T_184342 : UInt<3>[3]
+ T_184342[0] := UInt<3>(0)
+ T_184342[1] := UInt<3>(1)
+ T_184342[2] := UInt<3>(2)
+ wire T_184343 : UInt<2>[2]
+ T_184343[0] := UInt<2>(0)
+ T_184343[1] := UInt<2>(1)
+ wire T_184344 : UInt<2>[3]
+ T_184344[0] := UInt<2>(1)
+ T_184344[1] := UInt<2>(2)
+ T_184344[2] := UInt<2>(3)
+ wire T_184345 : UInt<2>[2]
+ T_184345[0] := UInt<2>(2)
+ T_184345[1] := UInt<2>(3)
+ wire T_184346 : UInt<2>[1]
+ T_184346[0] := UInt<2>(3)
+ reg active : UInt<1>
+ onreset active := UInt<1>(0)
+ reg r1_data_req_fired : UInt<1>
+ onreset r1_data_req_fired := UInt<1>(0)
+ reg r2_data_req_fired : UInt<1>
+ onreset r2_data_req_fired := UInt<1>(0)
+ reg data_req_cnt : UInt<3>
+ onreset data_req_cnt := UInt<3>(0)
+ node beat_done = eq(UInt<1>(1), UInt<1>(-1))
+ node T_184347 = and(release.ready, release.valid)
+ reg beat_cnt : UInt<2>
+ onreset beat_cnt := UInt<2>(0)
+ when T_184347 :
+ node T_184348 = eq(beat_cnt, UInt<2>(3))
+ node T_184349 = and(UInt<1>(0), T_184348)
+ node T_184350 = addw(beat_cnt, UInt<1>(1))
+ wire T_184351 : UInt<2>
+ T_184351 := T_184350
+ when T_184349 : T_184351 := UInt<1>(0)
+ beat_cnt := T_184351
+ node all_beats_done = and(T_184347, T_184348)
+ wire T_184352 : UInt<3>[3]
+ T_184352[0] := UInt<3>(0)
+ T_184352[1] := UInt<3>(1)
+ T_184352[2] := UInt<3>(2)
+ wire T_184353 : UInt<2>[2]
+ T_184353[0] := UInt<2>(0)
+ T_184353[1] := UInt<2>(1)
+ wire T_184354 : UInt<2>[3]
+ T_184354[0] := UInt<2>(1)
+ T_184354[1] := UInt<2>(2)
+ T_184354[2] := UInt<2>(3)
+ wire T_184355 : UInt<2>[2]
+ T_184355[0] := UInt<2>(2)
+ T_184355[1] := UInt<2>(3)
+ wire T_184356 : UInt<2>[1]
+ T_184356[0] := UInt<2>(3)
+ wire T_184357 : UInt<3>[3]
+ T_184357[0] := UInt<3>(0)
+ T_184357[1] := UInt<3>(1)
+ T_184357[2] := UInt<3>(2)
+ wire T_184358 : UInt<2>[2]
+ T_184358[0] := UInt<2>(0)
+ T_184358[1] := UInt<2>(1)
+ wire T_184359 : UInt<2>[3]
+ T_184359[0] := UInt<2>(1)
+ T_184359[1] := UInt<2>(2)
+ T_184359[2] := UInt<2>(3)
+ wire T_184360 : UInt<2>[2]
+ T_184360[0] := UInt<2>(2)
+ T_184360[1] := UInt<2>(3)
+ wire T_184361 : UInt<2>[1]
+ T_184361[0] := UInt<2>(3)
+ reg req : {addr_block : UInt<26>, client_xact_id : UInt<1>, addr_beat : UInt<2>, data : UInt<128>, r_type : UInt<3>, voluntary : UInt<1>, way_en : UInt<4>}
+ release.valid := UInt<1>(0)
+ when active :
+ r1_data_req_fired := UInt<1>(0)
+ r2_data_req_fired := r1_data_req_fired
+
+
+ node T_184362 = and(data_req.ready, data_req.valid)
+ node T_184363 = and(meta_read.ready, meta_read.valid)
+ node T_184364 = and(T_184362, T_184363)
+ when T_184364 :
+ r1_data_req_fired := UInt<1>(1)
+ node T_184365 = addw(data_req_cnt, UInt<1>(1))
+ data_req_cnt := T_184365
+ when r2_data_req_fired :
+ release.valid := beat_done
+ when beat_done :
+ node T_184366 = eq(release.ready, UInt<1>(0))
+ when T_184366 :
+ r1_data_req_fired := UInt<1>(0)
+ r2_data_req_fired := UInt<1>(0)
+ node T_184367 = and(UInt<1>(1), r1_data_req_fired)
+ wire T_184368 : UInt<1>
+ T_184368 := UInt<1>(1)
+ when T_184367 : T_184368 := UInt<2>(2)
+ node T_184369 = subw(data_req_cnt, T_184368)
+ data_req_cnt := T_184369
+
+ node T_184370 = eq(r1_data_req_fired, UInt<1>(0))
+ when T_184370 :
+ node T_184371 = lt(data_req_cnt, UInt<3>(4))
+ node T_184372 = eq(release.ready, UInt<1>(0))
+ node T_184373 = or(T_184371, T_184372)
+ active := T_184373
+
+ node T_184374 = and(req.ready, req.valid)
+ when T_184374 :
+ active := UInt<1>(1)
+ data_req_cnt := UInt<1>(0)
+ req := req.bits
+ node T_184375 = eq(active, UInt<1>(0))
+ req.ready := T_184375
+ node req_idx = bits(req.addr_block, 5, 0)
+ node T_184376 = lt(data_req_cnt, UInt<3>(4))
+ node fire = and(active, T_184376)
+ meta_read.valid := fire
+ meta_read.bits.idx := req_idx
+ node T_184377 = dshr(req.addr_block, UInt<3>(6))
+ meta_read.bits.tag := T_184377
+ data_req.valid := fire
+ data_req.bits.way_en := req.way_en
+ node T_184378 = bits(data_req_cnt, 1, 0)
+ node T_184379 = cat(req_idx, T_184378)
+ node T_184380 = shl(T_184379, 4)
+ data_req.bits.addr := T_184380
+ release.bits := req
+ release.bits.addr_beat := beat_cnt
+ release.bits.data := data_resp
+ module ProbeUnit :
+ input req : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_block : UInt<26>, p_type : UInt<2>, client_xact_id : UInt<1>}}
+ output rep : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_block : UInt<26>, client_xact_id : UInt<1>, addr_beat : UInt<2>, data : UInt<128>, r_type : UInt<3>, voluntary : UInt<1>}}
+ output meta_read : {flip ready : UInt<1>, valid : UInt<1>, bits : {idx : UInt<6>, tag : UInt<20>}}
+ output meta_write : {flip ready : UInt<1>, valid : UInt<1>, bits : {idx : UInt<6>, way_en : UInt<4>, data : {tag : UInt<20>, coh : {state : UInt<2>, makeRelease$default$2 : UInt<1>, makeRelease$default$3 : UInt<1>, makeVoluntaryRelease$default$4 : UInt<1>, makeVoluntaryRelease$default$5 : UInt<1>, makeVoluntaryWriteback$default$3 : UInt<1>, makeVoluntaryWriteback$default$4 : UInt<1>}}}}
+ output wb_req : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_block : UInt<26>, client_xact_id : UInt<1>, addr_beat : UInt<2>, data : UInt<128>, r_type : UInt<3>, voluntary : UInt<1>, way_en : UInt<4>}}
+ input way_en : UInt<4>
+ input mshr_rdy : UInt<1>
+ input block_state : {state : UInt<2>, makeRelease$default$2 : UInt<1>, makeRelease$default$3 : UInt<1>, makeVoluntaryRelease$default$4 : UInt<1>, makeVoluntaryRelease$default$5 : UInt<1>, makeVoluntaryWriteback$default$3 : UInt<1>, makeVoluntaryWriteback$default$4 : UInt<1>}
+
+ wire T_184381 : UInt<3>[3]
+ T_184381[0] := UInt<3>(0)
+ T_184381[1] := UInt<3>(1)
+ T_184381[2] := UInt<3>(2)
+ wire T_184382 : UInt<2>[2]
+ T_184382[0] := UInt<2>(0)
+ T_184382[1] := UInt<2>(1)
+ wire T_184383 : UInt<2>[3]
+ T_184383[0] := UInt<2>(1)
+ T_184383[1] := UInt<2>(2)
+ T_184383[2] := UInt<2>(3)
+ wire T_184384 : UInt<2>[2]
+ T_184384[0] := UInt<2>(2)
+ T_184384[1] := UInt<2>(3)
+ wire T_184385 : UInt<2>[1]
+ T_184385[0] := UInt<2>(3)
+ wire T_184386 : UInt<3>[3]
+ T_184386[0] := UInt<3>(0)
+ T_184386[1] := UInt<3>(1)
+ T_184386[2] := UInt<3>(2)
+ wire T_184387 : UInt<2>[2]
+ T_184387[0] := UInt<2>(0)
+ T_184387[1] := UInt<2>(1)
+ wire T_184388 : UInt<2>[3]
+ T_184388[0] := UInt<2>(1)
+ T_184388[1] := UInt<2>(2)
+ T_184388[2] := UInt<2>(3)
+ wire T_184389 : UInt<2>[2]
+ T_184389[0] := UInt<2>(2)
+ T_184389[1] := UInt<2>(3)
+ wire T_184390 : UInt<2>[1]
+ T_184390[0] := UInt<2>(3)
+ wire T_184391 : UInt<3>[3]
+ T_184391[0] := UInt<3>(0)
+ T_184391[1] := UInt<3>(1)
+ T_184391[2] := UInt<3>(2)
+ wire T_184392 : UInt<2>[2]
+ T_184392[0] := UInt<2>(0)
+ T_184392[1] := UInt<2>(1)
+ wire T_184393 : UInt<2>[3]
+ T_184393[0] := UInt<2>(1)
+ T_184393[1] := UInt<2>(2)
+ T_184393[2] := UInt<2>(3)
+ wire T_184394 : UInt<2>[2]
+ T_184394[0] := UInt<2>(2)
+ T_184394[1] := UInt<2>(3)
+ wire T_184395 : UInt<2>[1]
+ T_184395[0] := UInt<2>(3)
+ wire T_184396 : UInt<3>[3]
+ T_184396[0] := UInt<3>(0)
+ T_184396[1] := UInt<3>(1)
+ T_184396[2] := UInt<3>(2)
+ wire T_184397 : UInt<2>[2]
+ T_184397[0] := UInt<2>(0)
+ T_184397[1] := UInt<2>(1)
+ wire T_184398 : UInt<2>[3]
+ T_184398[0] := UInt<2>(1)
+ T_184398[1] := UInt<2>(2)
+ T_184398[2] := UInt<2>(3)
+ wire T_184399 : UInt<2>[2]
+ T_184399[0] := UInt<2>(2)
+ T_184399[1] := UInt<2>(3)
+ wire T_184400 : UInt<2>[1]
+ T_184400[0] := UInt<2>(3)
+ wire T_184401 : UInt<3>[3]
+ T_184401[0] := UInt<3>(0)
+ T_184401[1] := UInt<3>(1)
+ T_184401[2] := UInt<3>(2)
+ wire T_184402 : UInt<2>[2]
+ T_184402[0] := UInt<2>(0)
+ T_184402[1] := UInt<2>(1)
+ wire T_184403 : UInt<2>[3]
+ T_184403[0] := UInt<2>(1)
+ T_184403[1] := UInt<2>(2)
+ T_184403[2] := UInt<2>(3)
+ wire T_184404 : UInt<2>[2]
+ T_184404[0] := UInt<2>(2)
+ T_184404[1] := UInt<2>(3)
+ wire T_184405 : UInt<2>[1]
+ T_184405[0] := UInt<2>(3)
+ wire T_184406 : UInt<3>[3]
+ T_184406[0] := UInt<3>(0)
+ T_184406[1] := UInt<3>(1)
+ T_184406[2] := UInt<3>(2)
+ wire T_184407 : UInt<2>[2]
+ T_184407[0] := UInt<2>(0)
+ T_184407[1] := UInt<2>(1)
+ wire T_184408 : UInt<2>[3]
+ T_184408[0] := UInt<2>(1)
+ T_184408[1] := UInt<2>(2)
+ T_184408[2] := UInt<2>(3)
+ wire T_184409 : UInt<2>[2]
+ T_184409[0] := UInt<2>(2)
+ T_184409[1] := UInt<2>(3)
+ wire T_184410 : UInt<2>[1]
+ T_184410[0] := UInt<2>(3)
+ wire T_184411 : UInt<3>[3]
+ T_184411[0] := UInt<3>(0)
+ T_184411[1] := UInt<3>(1)
+ T_184411[2] := UInt<3>(2)
+ wire T_184412 : UInt<2>[2]
+ T_184412[0] := UInt<2>(0)
+ T_184412[1] := UInt<2>(1)
+ wire T_184413 : UInt<2>[3]
+ T_184413[0] := UInt<2>(1)
+ T_184413[1] := UInt<2>(2)
+ T_184413[2] := UInt<2>(3)
+ wire T_184414 : UInt<2>[2]
+ T_184414[0] := UInt<2>(2)
+ T_184414[1] := UInt<2>(3)
+ wire T_184415 : UInt<2>[1]
+ T_184415[0] := UInt<2>(3)
+ wire T_184416 : UInt<3>[3]
+ T_184416[0] := UInt<3>(0)
+ T_184416[1] := UInt<3>(1)
+ T_184416[2] := UInt<3>(2)
+ wire T_184417 : UInt<2>[2]
+ T_184417[0] := UInt<2>(0)
+ T_184417[1] := UInt<2>(1)
+ wire T_184418 : UInt<2>[3]
+ T_184418[0] := UInt<2>(1)
+ T_184418[1] := UInt<2>(2)
+ T_184418[2] := UInt<2>(3)
+ wire T_184419 : UInt<2>[2]
+ T_184419[0] := UInt<2>(2)
+ T_184419[1] := UInt<2>(3)
+ wire T_184420 : UInt<2>[1]
+ T_184420[0] := UInt<2>(3)
+ wire T_184421 : UInt<3>[3]
+ T_184421[0] := UInt<3>(0)
+ T_184421[1] := UInt<3>(1)
+ T_184421[2] := UInt<3>(2)
+ wire T_184422 : UInt<2>[2]
+ T_184422[0] := UInt<2>(0)
+ T_184422[1] := UInt<2>(1)
+ wire T_184423 : UInt<2>[3]
+ T_184423[0] := UInt<2>(1)
+ T_184423[1] := UInt<2>(2)
+ T_184423[2] := UInt<2>(3)
+ wire T_184424 : UInt<2>[2]
+ T_184424[0] := UInt<2>(2)
+ T_184424[1] := UInt<2>(3)
+ wire T_184425 : UInt<2>[1]
+ T_184425[0] := UInt<2>(3)
+ wire T_184426 : UInt<3>[3]
+ T_184426[0] := UInt<3>(0)
+ T_184426[1] := UInt<3>(1)
+ T_184426[2] := UInt<3>(2)
+ wire T_184427 : UInt<2>[2]
+ T_184427[0] := UInt<2>(0)
+ T_184427[1] := UInt<2>(1)
+ wire T_184428 : UInt<2>[3]
+ T_184428[0] := UInt<2>(1)
+ T_184428[1] := UInt<2>(2)
+ T_184428[2] := UInt<2>(3)
+ wire T_184429 : UInt<2>[2]
+ T_184429[0] := UInt<2>(2)
+ T_184429[1] := UInt<2>(3)
+ wire T_184430 : UInt<2>[1]
+ T_184430[0] := UInt<2>(3)
+ reg state : UInt<3>
+ onreset state := UInt<3>(0)
+ wire T_184431 : UInt<3>[3]
+ T_184431[0] := UInt<3>(0)
+ T_184431[1] := UInt<3>(1)
+ T_184431[2] := UInt<3>(2)
+ wire T_184432 : UInt<2>[2]
+ T_184432[0] := UInt<2>(0)
+ T_184432[1] := UInt<2>(1)
+ wire T_184433 : UInt<2>[3]
+ T_184433[0] := UInt<2>(1)
+ T_184433[1] := UInt<2>(2)
+ T_184433[2] := UInt<2>(3)
+ wire T_184434 : UInt<2>[2]
+ T_184434[0] := UInt<2>(2)
+ T_184434[1] := UInt<2>(3)
+ wire T_184435 : UInt<2>[1]
+ T_184435[0] := UInt<2>(3)
+ wire T_184436 : UInt<3>[3]
+ T_184436[0] := UInt<3>(0)
+ T_184436[1] := UInt<3>(1)
+ T_184436[2] := UInt<3>(2)
+ wire T_184437 : UInt<2>[2]
+ T_184437[0] := UInt<2>(0)
+ T_184437[1] := UInt<2>(1)
+ wire T_184438 : UInt<2>[3]
+ T_184438[0] := UInt<2>(1)
+ T_184438[1] := UInt<2>(2)
+ T_184438[2] := UInt<2>(3)
+ wire T_184439 : UInt<2>[2]
+ T_184439[0] := UInt<2>(2)
+ T_184439[1] := UInt<2>(3)
+ wire T_184440 : UInt<2>[1]
+ T_184440[0] := UInt<2>(3)
+ reg old_coh : {state : UInt<2>, makeRelease$default$2 : UInt<1>, makeRelease$default$3 : UInt<1>, makeVoluntaryRelease$default$4 : UInt<1>, makeVoluntaryRelease$default$5 : UInt<1>, makeVoluntaryWriteback$default$3 : UInt<1>, makeVoluntaryWriteback$default$4 : UInt<1>}
+ reg way_en : UInt
+ wire T_184441 : UInt<3>[3]
+ T_184441[0] := UInt<3>(0)
+ T_184441[1] := UInt<3>(1)
+ T_184441[2] := UInt<3>(2)
+ wire T_184442 : UInt<2>[2]
+ T_184442[0] := UInt<2>(0)
+ T_184442[1] := UInt<2>(1)
+ wire T_184443 : UInt<2>[3]
+ T_184443[0] := UInt<2>(1)
+ T_184443[1] := UInt<2>(2)
+ T_184443[2] := UInt<2>(3)
+ wire T_184444 : UInt<2>[2]
+ T_184444[0] := UInt<2>(2)
+ T_184444[1] := UInt<2>(3)
+ wire T_184445 : UInt<2>[1]
+ T_184445[0] := UInt<2>(3)
+ wire T_184446 : UInt<3>[3]
+ T_184446[0] := UInt<3>(0)
+ T_184446[1] := UInt<3>(1)
+ T_184446[2] := UInt<3>(2)
+ wire T_184447 : UInt<2>[2]
+ T_184447[0] := UInt<2>(0)
+ T_184447[1] := UInt<2>(1)
+ wire T_184448 : UInt<2>[3]
+ T_184448[0] := UInt<2>(1)
+ T_184448[1] := UInt<2>(2)
+ T_184448[2] := UInt<2>(3)
+ wire T_184449 : UInt<2>[2]
+ T_184449[0] := UInt<2>(2)
+ T_184449[1] := UInt<2>(3)
+ wire T_184450 : UInt<2>[1]
+ T_184450[0] := UInt<2>(3)
+ reg req : {addr_block : UInt<26>, p_type : UInt<2>, client_xact_id : UInt<1>}
+ node T_184451 = eq(way_en, UInt<1>(0))
+ node tag_matches = eq(T_184451, UInt<1>(0))
+
+
+ node T_184452 = eq(state, UInt<3>(7))
+ node T_184453 = and(T_184452, meta_write.ready)
+ when T_184453 : state := UInt<3>(0)
+
+
+ node T_184454 = eq(state, UInt<3>(6))
+ node T_184455 = and(T_184454, wb_req.ready)
+ when T_184455 : state := UInt<3>(7)
+
+
+ node T_184456 = eq(state, UInt<3>(5))
+ node T_184457 = and(T_184456, wb_req.ready)
+ when T_184457 : state := UInt<3>(6)
+
+
+ node T_184458 = eq(state, UInt<3>(4))
+ node T_184459 = and(T_184458, rep.ready)
+ when T_184459 :
+ state := UInt<3>(0)
+ when tag_matches :
+ node T_184460 = eq(T_184440[0], old_coh.state)
+ node T_184461 = or(UInt<1>(0), T_184460)
+ wire T_184462 : UInt<3>
+ T_184462 := UInt<3>(7)
+ when T_184461 : T_184462 := UInt<3>(5)
+ state := T_184462
+
+ node T_184463 = eq(state, UInt<3>(3))
+ when T_184463 :
+ state := UInt<3>(4)
+ old_coh := block_state
+ way_en := way_en
+
+ node T_184464 = eq(mshr_rdy, UInt<1>(0))
+ when T_184464 : state := UInt<3>(1)
+
+ node T_184465 = eq(state, UInt<3>(2))
+ when T_184465 : state := UInt<3>(3)
+
+
+ node T_184466 = eq(state, UInt<3>(1))
+ node T_184467 = and(T_184466, meta_read.ready)
+ when T_184467 : state := UInt<3>(2)
+
+
+ node T_184468 = eq(state, UInt<3>(0))
+ node T_184469 = and(T_184468, req.valid)
+ when T_184469 :
+ state := UInt<3>(1)
+ req := req.bits
+ node T_184470 = eq(T_184440[0], old_coh.state)
+ node T_184471 = or(UInt<1>(0), T_184470)
+ wire T_184472 : UInt<3>
+ T_184472 := UInt<3>(3)
+ when T_184471 : T_184472 := UInt<3>(0)
+ wire T_184473 : UInt<3>
+ T_184473 := UInt<3>(4)
+ when T_184471 : T_184473 := UInt<3>(1)
+ wire T_184474 : UInt<3>
+ T_184474 := UInt<3>(5)
+ when T_184471 : T_184474 := UInt<3>(2)
+ node T_184475 = eq(UInt<5>(19), UInt<5>(16))
+ wire T_184476 : UInt<3>
+ T_184476 := UInt<3>(5)
+ when T_184475 : T_184476 := T_184474
+ node T_184477 = eq(UInt<5>(17), UInt<5>(16))
+ wire T_184478 : UInt<3>
+ T_184478 := T_184476
+ when T_184477 : T_184478 := T_184473
+ node T_184479 = eq(UInt<5>(16), UInt<5>(16))
+ wire T_184480 : UInt<3>
+ T_184480 := T_184478
+ when T_184479 : T_184480 := T_184472
+ node T_184481 = eq(T_184440[0], old_coh.state)
+ node T_184482 = or(UInt<1>(0), T_184481)
+ wire T_184483 : UInt<3>
+ T_184483 := UInt<3>(3)
+ when T_184482 : T_184483 := UInt<3>(0)
+ wire T_184484 : UInt<3>
+ T_184484 := UInt<3>(4)
+ when T_184482 : T_184484 := UInt<3>(1)
+ wire T_184485 : UInt<3>
+ T_184485 := UInt<3>(5)
+ when T_184482 : T_184485 := UInt<3>(2)
+ node T_184486 = eq(UInt<5>(19), UInt<5>(17))
+ wire T_184487 : UInt<3>
+ T_184487 := UInt<3>(5)
+ when T_184486 : T_184487 := T_184485
+ node T_184488 = eq(UInt<5>(17), UInt<5>(17))
+ wire T_184489 : UInt<3>
+ T_184489 := T_184487
+ when T_184488 : T_184489 := T_184484
+ node T_184490 = eq(UInt<5>(16), UInt<5>(17))
+ wire T_184491 : UInt<3>
+ T_184491 := T_184489
+ when T_184490 : T_184491 := T_184483
+ node T_184492 = eq(T_184440[0], old_coh.state)
+ node T_184493 = or(UInt<1>(0), T_184492)
+ wire T_184494 : UInt<3>
+ T_184494 := UInt<3>(3)
+ when T_184493 : T_184494 := UInt<3>(0)
+ wire T_184495 : UInt<3>
+ T_184495 := UInt<3>(4)
+ when T_184493 : T_184495 := UInt<3>(1)
+ wire T_184496 : UInt<3>
+ T_184496 := UInt<3>(5)
+ when T_184493 : T_184496 := UInt<3>(2)
+ node T_184497 = eq(UInt<5>(19), UInt<5>(19))
+ wire T_184498 : UInt<3>
+ T_184498 := UInt<3>(5)
+ when T_184497 : T_184498 := T_184496
+ node T_184499 = eq(UInt<5>(17), UInt<5>(19))
+ wire T_184500 : UInt<3>
+ T_184500 := T_184498
+ when T_184499 : T_184500 := T_184495
+ node T_184501 = eq(UInt<5>(16), UInt<5>(19))
+ wire T_184502 : UInt<3>
+ T_184502 := T_184500
+ when T_184501 : T_184502 := T_184494
+ node T_184503 = eq(UInt<2>(2), req.p_type)
+ wire T_184504 : UInt<3>
+ T_184504 := UInt<3>(3)
+ when T_184503 : T_184504 := T_184502
+ node T_184505 = eq(UInt<2>(1), req.p_type)
+ wire T_184506 : UInt<3>
+ T_184506 := T_184504
+ when T_184505 : T_184506 := T_184491
+ node T_184507 = eq(UInt<2>(0), req.p_type)
+ wire T_184508 : UInt<3>
+ T_184508 := T_184506
+ when T_184507 : T_184508 := T_184480
+ wire T_184509 : UInt<3>[3]
+ T_184509[0] := UInt<3>(0)
+ T_184509[1] := UInt<3>(1)
+ T_184509[2] := UInt<3>(2)
+ wire T_184510 : UInt<2>[2]
+ T_184510[0] := UInt<2>(0)
+ T_184510[1] := UInt<2>(1)
+ wire T_184511 : UInt<2>[3]
+ T_184511[0] := UInt<2>(1)
+ T_184511[1] := UInt<2>(2)
+ T_184511[2] := UInt<2>(3)
+ wire T_184512 : UInt<2>[2]
+ T_184512[0] := UInt<2>(2)
+ T_184512[1] := UInt<2>(3)
+ wire T_184513 : UInt<2>[1]
+ T_184513[0] := UInt<2>(3)
+ wire T_184514 : UInt<3>[3]
+ T_184514[0] := UInt<3>(0)
+ T_184514[1] := UInt<3>(1)
+ T_184514[2] := UInt<3>(2)
+ wire T_184515 : UInt<2>[2]
+ T_184515[0] := UInt<2>(0)
+ T_184515[1] := UInt<2>(1)
+ wire T_184516 : UInt<2>[3]
+ T_184516[0] := UInt<2>(1)
+ T_184516[1] := UInt<2>(2)
+ T_184516[2] := UInt<2>(3)
+ wire T_184517 : UInt<2>[2]
+ T_184517[0] := UInt<2>(2)
+ T_184517[1] := UInt<2>(3)
+ wire T_184518 : UInt<2>[1]
+ T_184518[0] := UInt<2>(3)
+ wire reply : {addr_block : UInt<26>, client_xact_id : UInt<1>, addr_beat : UInt<2>, data : UInt<128>, r_type : UInt<3>, voluntary : UInt<1>}
+ reply.r_type := T_184508
+ reply.client_xact_id := UInt<1>(0)
+ reply.addr_block := req.addr_block
+ reply.addr_beat := UInt<1>(0)
+ reply.data := UInt<1>(0)
+ reply.voluntary := UInt<1>(0)
+ node T_184519 = eq(state, UInt<3>(0))
+ req.ready := T_184519
+ node T_184520 = eq(state, UInt<3>(4))
+ node T_184521 = eq(T_184440[0], old_coh.state)
+ node T_184522 = or(UInt<1>(0), T_184521)
+ node T_184523 = and(tag_matches, T_184522)
+ node T_184524 = eq(T_184523, UInt<1>(0))
+ node T_184525 = and(T_184520, T_184524)
+ rep.valid := T_184525
+ rep.bits := reply
+ node T_184526 = eq(state, UInt<3>(1))
+ meta_read.valid := T_184526
+ meta_read.bits.idx := req.addr_block
+ node T_184527 = shr(req.addr_block, 6)
+ meta_read.bits.tag := T_184527
+ node T_184528 = eq(state, UInt<3>(7))
+ meta_write.valid := T_184528
+ meta_write.bits.way_en := way_en
+ meta_write.bits.idx := req.addr_block
+ node T_184529 = shr(req.addr_block, 6)
+ meta_write.bits.data.tag := T_184529
+ node T_184530 = eq(UInt<2>(2), req.p_type)
+ wire T_184531 : UInt<2>
+ T_184531 := old_coh.state
+ when T_184530 : T_184531 := old_coh.state
+ node T_184532 = eq(UInt<2>(1), req.p_type)
+ wire T_184533 : UInt<2>
+ T_184533 := T_184531
+ when T_184532 : T_184533 := UInt<2>(1)
+ node T_184534 = eq(UInt<2>(0), req.p_type)
+ wire T_184535 : UInt<2>
+ T_184535 := T_184533
+ when T_184534 : T_184535 := UInt<2>(0)
+ wire T_184536 : UInt<3>[3]
+ T_184536[0] := UInt<3>(0)
+ T_184536[1] := UInt<3>(1)
+ T_184536[2] := UInt<3>(2)
+ wire T_184537 : UInt<2>[2]
+ T_184537[0] := UInt<2>(0)
+ T_184537[1] := UInt<2>(1)
+ wire T_184538 : UInt<2>[3]
+ T_184538[0] := UInt<2>(1)
+ T_184538[1] := UInt<2>(2)
+ T_184538[2] := UInt<2>(3)
+ wire T_184539 : UInt<2>[2]
+ T_184539[0] := UInt<2>(2)
+ T_184539[1] := UInt<2>(3)
+ wire T_184540 : UInt<2>[1]
+ T_184540[0] := UInt<2>(3)
+ wire T_184541 : UInt<3>[3]
+ T_184541[0] := UInt<3>(0)
+ T_184541[1] := UInt<3>(1)
+ T_184541[2] := UInt<3>(2)
+ wire T_184542 : UInt<2>[2]
+ T_184542[0] := UInt<2>(0)
+ T_184542[1] := UInt<2>(1)
+ wire T_184543 : UInt<2>[3]
+ T_184543[0] := UInt<2>(1)
+ T_184543[1] := UInt<2>(2)
+ T_184543[2] := UInt<2>(3)
+ wire T_184544 : UInt<2>[2]
+ T_184544[0] := UInt<2>(2)
+ T_184544[1] := UInt<2>(3)
+ wire T_184545 : UInt<2>[1]
+ T_184545[0] := UInt<2>(3)
+ wire T_184546 : {state : UInt<2>, makeRelease$default$2 : UInt<1>, makeRelease$default$3 : UInt<1>, makeVoluntaryRelease$default$4 : UInt<1>, makeVoluntaryRelease$default$5 : UInt<1>, makeVoluntaryWriteback$default$3 : UInt<1>, makeVoluntaryWriteback$default$4 : UInt<1>}
+ T_184546.state := T_184535
+ meta_write.bits.data.coh := T_184546
+ node T_184547 = eq(state, UInt<3>(5))
+ wb_req.valid := T_184547
+ wb_req.bits := reply
+ wb_req.bits.way_en := way_en
+ module Arbiter_135527 :
+ input in : {flip ready : UInt<1>, valid : UInt<1>, bits : {idx : UInt<6>, tag : UInt<20>}}[2]
+ output out : {flip ready : UInt<1>, valid : UInt<1>, bits : {idx : UInt<6>, tag : UInt<20>}}
+ output chosen : UInt<1>
+
+ wire T_184548 : UInt<1>
+ node T_184549 = or(UInt<1>(0), in[0].valid)
+ node T_184550 = eq(T_184549, UInt<1>(0))
+ node T_184551 = eq(UInt<1>(1), UInt<1>(0))
+ wire T_184552 : UInt<1>
+ T_184552 := UInt<1>(1)
+ when UInt<1>(0) : T_184552 := T_184551
+ node T_184553 = and(T_184552, out.ready)
+ in[0].ready := T_184553
+ node T_184554 = eq(UInt<1>(1), UInt<1>(1))
+ wire T_184555 : UInt<1>
+ T_184555 := T_184550
+ when UInt<1>(0) : T_184555 := T_184554
+ node T_184556 = and(T_184555, out.ready)
+ in[1].ready := T_184556
+ accessor T_184557 = in[T_184548]
+ out.valid := T_184557.valid
+ accessor T_184558 = in[T_184548]
+ out.bits := T_184558.bits
+ chosen := T_184548
+ wire T_184559 : UInt<1>
+ T_184559 := UInt<1>(1)
+ when in[0].valid : T_184559 := UInt<1>(0)
+ wire T_184560 : UInt<1>
+ T_184560 := T_184559
+ when UInt<1>(0) : T_184560 := UInt<1>(1)
+ T_184548 := T_184560
+ module Arbiter_136117 :
+ input in : {flip ready : UInt<1>, valid : UInt<1>, bits : {idx : UInt<6>, way_en : UInt<4>, data : {tag : UInt<20>, coh : {state : UInt<2>, makeRelease$default$2 : UInt<1>, makeRelease$default$3 : UInt<1>, makeVoluntaryRelease$default$4 : UInt<1>, makeVoluntaryRelease$default$5 : UInt<1>, makeVoluntaryWriteback$default$3 : UInt<1>, makeVoluntaryWriteback$default$4 : UInt<1>}}}}[2]
+ output out : {flip ready : UInt<1>, valid : UInt<1>, bits : {idx : UInt<6>, way_en : UInt<4>, data : {tag : UInt<20>, coh : {state : UInt<2>, makeRelease$default$2 : UInt<1>, makeRelease$default$3 : UInt<1>, makeVoluntaryRelease$default$4 : UInt<1>, makeVoluntaryRelease$default$5 : UInt<1>, makeVoluntaryWriteback$default$3 : UInt<1>, makeVoluntaryWriteback$default$4 : UInt<1>}}}}
+ output chosen : UInt<1>
+
+ wire T_184561 : UInt<3>[3]
+ T_184561[0] := UInt<3>(0)
+ T_184561[1] := UInt<3>(1)
+ T_184561[2] := UInt<3>(2)
+ wire T_184562 : UInt<2>[2]
+ T_184562[0] := UInt<2>(0)
+ T_184562[1] := UInt<2>(1)
+ wire T_184563 : UInt<2>[3]
+ T_184563[0] := UInt<2>(1)
+ T_184563[1] := UInt<2>(2)
+ T_184563[2] := UInt<2>(3)
+ wire T_184564 : UInt<2>[2]
+ T_184564[0] := UInt<2>(2)
+ T_184564[1] := UInt<2>(3)
+ wire T_184565 : UInt<2>[1]
+ T_184565[0] := UInt<2>(3)
+ wire T_184566 : UInt<3>[3]
+ T_184566[0] := UInt<3>(0)
+ T_184566[1] := UInt<3>(1)
+ T_184566[2] := UInt<3>(2)
+ wire T_184567 : UInt<2>[2]
+ T_184567[0] := UInt<2>(0)
+ T_184567[1] := UInt<2>(1)
+ wire T_184568 : UInt<2>[3]
+ T_184568[0] := UInt<2>(1)
+ T_184568[1] := UInt<2>(2)
+ T_184568[2] := UInt<2>(3)
+ wire T_184569 : UInt<2>[2]
+ T_184569[0] := UInt<2>(2)
+ T_184569[1] := UInt<2>(3)
+ wire T_184570 : UInt<2>[1]
+ T_184570[0] := UInt<2>(3)
+ wire T_184571 : UInt<3>[3]
+ T_184571[0] := UInt<3>(0)
+ T_184571[1] := UInt<3>(1)
+ T_184571[2] := UInt<3>(2)
+ wire T_184572 : UInt<2>[2]
+ T_184572[0] := UInt<2>(0)
+ T_184572[1] := UInt<2>(1)
+ wire T_184573 : UInt<2>[3]
+ T_184573[0] := UInt<2>(1)
+ T_184573[1] := UInt<2>(2)
+ T_184573[2] := UInt<2>(3)
+ wire T_184574 : UInt<2>[2]
+ T_184574[0] := UInt<2>(2)
+ T_184574[1] := UInt<2>(3)
+ wire T_184575 : UInt<2>[1]
+ T_184575[0] := UInt<2>(3)
+ wire T_184576 : UInt<3>[3]
+ T_184576[0] := UInt<3>(0)
+ T_184576[1] := UInt<3>(1)
+ T_184576[2] := UInt<3>(2)
+ wire T_184577 : UInt<2>[2]
+ T_184577[0] := UInt<2>(0)
+ T_184577[1] := UInt<2>(1)
+ wire T_184578 : UInt<2>[3]
+ T_184578[0] := UInt<2>(1)
+ T_184578[1] := UInt<2>(2)
+ T_184578[2] := UInt<2>(3)
+ wire T_184579 : UInt<2>[2]
+ T_184579[0] := UInt<2>(2)
+ T_184579[1] := UInt<2>(3)
+ wire T_184580 : UInt<2>[1]
+ T_184580[0] := UInt<2>(3)
+ wire T_184581 : UInt<1>
+ node T_184582 = or(UInt<1>(0), in[0].valid)
+ node T_184583 = eq(T_184582, UInt<1>(0))
+ node T_184584 = eq(UInt<1>(1), UInt<1>(0))
+ wire T_184585 : UInt<1>
+ T_184585 := UInt<1>(1)
+ when UInt<1>(0) : T_184585 := T_184584
+ node T_184586 = and(T_184585, out.ready)
+ in[0].ready := T_184586
+ node T_184587 = eq(UInt<1>(1), UInt<1>(1))
+ wire T_184588 : UInt<1>
+ T_184588 := T_184583
+ when UInt<1>(0) : T_184588 := T_184587
+ node T_184589 = and(T_184588, out.ready)
+ in[1].ready := T_184589
+ wire T_184590 : UInt<3>[3]
+ T_184590[0] := UInt<3>(0)
+ T_184590[1] := UInt<3>(1)
+ T_184590[2] := UInt<3>(2)
+ wire T_184591 : UInt<2>[2]
+ T_184591[0] := UInt<2>(0)
+ T_184591[1] := UInt<2>(1)
+ wire T_184592 : UInt<2>[3]
+ T_184592[0] := UInt<2>(1)
+ T_184592[1] := UInt<2>(2)
+ T_184592[2] := UInt<2>(3)
+ wire T_184593 : UInt<2>[2]
+ T_184593[0] := UInt<2>(2)
+ T_184593[1] := UInt<2>(3)
+ wire T_184594 : UInt<2>[1]
+ T_184594[0] := UInt<2>(3)
+ accessor T_184595 = in[T_184581]
+ out.valid := T_184595.valid
+ wire T_184596 : UInt<3>[3]
+ T_184596[0] := UInt<3>(0)
+ T_184596[1] := UInt<3>(1)
+ T_184596[2] := UInt<3>(2)
+ wire T_184597 : UInt<2>[2]
+ T_184597[0] := UInt<2>(0)
+ T_184597[1] := UInt<2>(1)
+ wire T_184598 : UInt<2>[3]
+ T_184598[0] := UInt<2>(1)
+ T_184598[1] := UInt<2>(2)
+ T_184598[2] := UInt<2>(3)
+ wire T_184599 : UInt<2>[2]
+ T_184599[0] := UInt<2>(2)
+ T_184599[1] := UInt<2>(3)
+ wire T_184600 : UInt<2>[1]
+ T_184600[0] := UInt<2>(3)
+ accessor T_184601 = in[T_184581]
+ out.bits := T_184601.bits
+ chosen := T_184581
+ wire T_184602 : UInt<1>
+ T_184602 := UInt<1>(1)
+ when in[0].valid : T_184602 := UInt<1>(0)
+ wire T_184603 : UInt<1>
+ T_184603 := T_184602
+ when UInt<1>(0) : T_184603 := UInt<1>(1)
+ T_184581 := T_184603
+ module LockingArbiter :
+ input in : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_block : UInt<26>, client_xact_id : UInt<1>, addr_beat : UInt<2>, data : UInt<128>, is_builtin_type : UInt<1>, a_type : UInt<3>, union : UInt<17>}}[2]
+ output out : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_block : UInt<26>, client_xact_id : UInt<1>, addr_beat : UInt<2>, data : UInt<128>, is_builtin_type : UInt<1>, a_type : UInt<3>, union : UInt<17>}}
+ output chosen : UInt<1>
+
+ wire T_184604 : UInt<3>[3]
+ T_184604[0] := UInt<3>(0)
+ T_184604[1] := UInt<3>(1)
+ T_184604[2] := UInt<3>(2)
+ wire T_184605 : UInt<2>[2]
+ T_184605[0] := UInt<2>(0)
+ T_184605[1] := UInt<2>(1)
+ wire T_184606 : UInt<2>[3]
+ T_184606[0] := UInt<2>(1)
+ T_184606[1] := UInt<2>(2)
+ T_184606[2] := UInt<2>(3)
+ wire T_184607 : UInt<2>[2]
+ T_184607[0] := UInt<2>(2)
+ T_184607[1] := UInt<2>(3)
+ wire T_184608 : UInt<2>[1]
+ T_184608[0] := UInt<2>(3)
+ wire T_184609 : UInt<3>[3]
+ T_184609[0] := UInt<3>(0)
+ T_184609[1] := UInt<3>(1)
+ T_184609[2] := UInt<3>(2)
+ wire T_184610 : UInt<2>[2]
+ T_184610[0] := UInt<2>(0)
+ T_184610[1] := UInt<2>(1)
+ wire T_184611 : UInt<2>[3]
+ T_184611[0] := UInt<2>(1)
+ T_184611[1] := UInt<2>(2)
+ T_184611[2] := UInt<2>(3)
+ wire T_184612 : UInt<2>[2]
+ T_184612[0] := UInt<2>(2)
+ T_184612[1] := UInt<2>(3)
+ wire T_184613 : UInt<2>[1]
+ T_184613[0] := UInt<2>(3)
+ wire T_184614 : UInt<3>[3]
+ T_184614[0] := UInt<3>(0)
+ T_184614[1] := UInt<3>(1)
+ T_184614[2] := UInt<3>(2)
+ wire T_184615 : UInt<2>[2]
+ T_184615[0] := UInt<2>(0)
+ T_184615[1] := UInt<2>(1)
+ wire T_184616 : UInt<2>[3]
+ T_184616[0] := UInt<2>(1)
+ T_184616[1] := UInt<2>(2)
+ T_184616[2] := UInt<2>(3)
+ wire T_184617 : UInt<2>[2]
+ T_184617[0] := UInt<2>(2)
+ T_184617[1] := UInt<2>(3)
+ wire T_184618 : UInt<2>[1]
+ T_184618[0] := UInt<2>(3)
+ wire T_184619 : UInt<3>[3]
+ T_184619[0] := UInt<3>(0)
+ T_184619[1] := UInt<3>(1)
+ T_184619[2] := UInt<3>(2)
+ wire T_184620 : UInt<2>[2]
+ T_184620[0] := UInt<2>(0)
+ T_184620[1] := UInt<2>(1)
+ wire T_184621 : UInt<2>[3]
+ T_184621[0] := UInt<2>(1)
+ T_184621[1] := UInt<2>(2)
+ T_184621[2] := UInt<2>(3)
+ wire T_184622 : UInt<2>[2]
+ T_184622[0] := UInt<2>(2)
+ T_184622[1] := UInt<2>(3)
+ wire T_184623 : UInt<2>[1]
+ T_184623[0] := UInt<2>(3)
+ reg T_184624 : UInt<1>
+ onreset T_184624 := UInt<1>(0)
+ reg T_184625 : UInt<1>
+ onreset T_184625 := UInt<1>(1)
+ wire T_184626 : UInt<1>
+ node T_184627 = or(UInt<1>(0), in[0].valid)
+ node T_184628 = eq(T_184627, UInt<1>(0))
+ node T_184629 = eq(T_184625, UInt<1>(0))
+ wire T_184630 : UInt<1>
+ T_184630 := UInt<1>(1)
+ when T_184624 : T_184630 := T_184629
+ node T_184631 = and(T_184630, out.ready)
+ in[0].ready := T_184631
+ node T_184632 = eq(T_184625, UInt<1>(1))
+ wire T_184633 : UInt<1>
+ T_184633 := T_184628
+ when T_184624 : T_184633 := T_184632
+ node T_184634 = and(T_184633, out.ready)
+ in[1].ready := T_184634
+ wire T_184635 : UInt<3>[3]
+ T_184635[0] := UInt<3>(0)
+ T_184635[1] := UInt<3>(1)
+ T_184635[2] := UInt<3>(2)
+ wire T_184636 : UInt<2>[2]
+ T_184636[0] := UInt<2>(0)
+ T_184636[1] := UInt<2>(1)
+ wire T_184637 : UInt<2>[3]
+ T_184637[0] := UInt<2>(1)
+ T_184637[1] := UInt<2>(2)
+ T_184637[2] := UInt<2>(3)
+ wire T_184638 : UInt<2>[2]
+ T_184638[0] := UInt<2>(2)
+ T_184638[1] := UInt<2>(3)
+ wire T_184639 : UInt<2>[1]
+ T_184639[0] := UInt<2>(3)
+ accessor T_184640 = in[T_184626]
+ out.valid := T_184640.valid
+ wire T_184641 : UInt<3>[3]
+ T_184641[0] := UInt<3>(0)
+ T_184641[1] := UInt<3>(1)
+ T_184641[2] := UInt<3>(2)
+ wire T_184642 : UInt<2>[2]
+ T_184642[0] := UInt<2>(0)
+ T_184642[1] := UInt<2>(1)
+ wire T_184643 : UInt<2>[3]
+ T_184643[0] := UInt<2>(1)
+ T_184643[1] := UInt<2>(2)
+ T_184643[2] := UInt<2>(3)
+ wire T_184644 : UInt<2>[2]
+ T_184644[0] := UInt<2>(2)
+ T_184644[1] := UInt<2>(3)
+ wire T_184645 : UInt<2>[1]
+ T_184645[0] := UInt<2>(3)
+ accessor T_184646 = in[T_184626]
+ out.bits := T_184646.bits
+ chosen := T_184626
+ reg T_184647 : UInt<2>
+ onreset T_184647 := UInt<2>(0)
+ node T_184648 = addw(T_184647, UInt<1>(1))
+
+ node T_184649 = and(out.ready, out.valid)
+ when T_184649 :
+
+
+ node T_184650 = and(UInt<1>(1), out.bits.is_builtin_type)
+ wire T_184651 : UInt<3>[1]
+ T_184651[0] := UInt<3>(3)
+ node T_184652 = eq(T_184651[0], out.bits.a_type)
+ node T_184653 = or(UInt<1>(0), T_184652)
+ node T_184654 = and(T_184650, T_184653)
+ when T_184654 :
+ T_184647 := T_184648
+
+ node T_184655 = eq(T_184624, UInt<1>(0))
+ when T_184655 :
+ T_184624 := UInt<1>(1)
+ node T_184656 = and(in[0].ready, in[0].valid)
+ node T_184657 = and(in[1].ready, in[1].valid)
+ wire T_184658 : UInt<1>[2]
+ T_184658[0] := T_184656
+ T_184658[1] := T_184657
+ wire T_184659 : UInt<1>
+ T_184659 := UInt<1>(1)
+ when T_184658[0] : T_184659 := UInt<1>(0)
+ T_184625 := T_184659
+
+ node T_184660 = eq(T_184648, UInt<1>(0))
+ when T_184660 : T_184624 := UInt<1>(0)
+ wire choose : UInt<1>
+ choose := UInt<1>(1)
+ when in[0].valid : choose := UInt<1>(0)
+ wire T_184661 : UInt<1>
+ T_184661 := choose
+ when T_184624 : T_184661 := T_184625
+ T_184626 := T_184661
+ module Arbiter_137146 :
+ input in : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_block : UInt<26>, client_xact_id : UInt<1>, addr_beat : UInt<2>, data : UInt<128>, r_type : UInt<3>, voluntary : UInt<1>, way_en : UInt<4>}}[2]
+ output out : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_block : UInt<26>, client_xact_id : UInt<1>, addr_beat : UInt<2>, data : UInt<128>, r_type : UInt<3>, voluntary : UInt<1>, way_en : UInt<4>}}
+ output chosen : UInt<1>
+
+ wire T_184662 : UInt<3>[3]
+ T_184662[0] := UInt<3>(0)
+ T_184662[1] := UInt<3>(1)
+ T_184662[2] := UInt<3>(2)
+ wire T_184663 : UInt<2>[2]
+ T_184663[0] := UInt<2>(0)
+ T_184663[1] := UInt<2>(1)
+ wire T_184664 : UInt<2>[3]
+ T_184664[0] := UInt<2>(1)
+ T_184664[1] := UInt<2>(2)
+ T_184664[2] := UInt<2>(3)
+ wire T_184665 : UInt<2>[2]
+ T_184665[0] := UInt<2>(2)
+ T_184665[1] := UInt<2>(3)
+ wire T_184666 : UInt<2>[1]
+ T_184666[0] := UInt<2>(3)
+ wire T_184667 : UInt<3>[3]
+ T_184667[0] := UInt<3>(0)
+ T_184667[1] := UInt<3>(1)
+ T_184667[2] := UInt<3>(2)
+ wire T_184668 : UInt<2>[2]
+ T_184668[0] := UInt<2>(0)
+ T_184668[1] := UInt<2>(1)
+ wire T_184669 : UInt<2>[3]
+ T_184669[0] := UInt<2>(1)
+ T_184669[1] := UInt<2>(2)
+ T_184669[2] := UInt<2>(3)
+ wire T_184670 : UInt<2>[2]
+ T_184670[0] := UInt<2>(2)
+ T_184670[1] := UInt<2>(3)
+ wire T_184671 : UInt<2>[1]
+ T_184671[0] := UInt<2>(3)
+ wire T_184672 : UInt<3>[3]
+ T_184672[0] := UInt<3>(0)
+ T_184672[1] := UInt<3>(1)
+ T_184672[2] := UInt<3>(2)
+ wire T_184673 : UInt<2>[2]
+ T_184673[0] := UInt<2>(0)
+ T_184673[1] := UInt<2>(1)
+ wire T_184674 : UInt<2>[3]
+ T_184674[0] := UInt<2>(1)
+ T_184674[1] := UInt<2>(2)
+ T_184674[2] := UInt<2>(3)
+ wire T_184675 : UInt<2>[2]
+ T_184675[0] := UInt<2>(2)
+ T_184675[1] := UInt<2>(3)
+ wire T_184676 : UInt<2>[1]
+ T_184676[0] := UInt<2>(3)
+ wire T_184677 : UInt<3>[3]
+ T_184677[0] := UInt<3>(0)
+ T_184677[1] := UInt<3>(1)
+ T_184677[2] := UInt<3>(2)
+ wire T_184678 : UInt<2>[2]
+ T_184678[0] := UInt<2>(0)
+ T_184678[1] := UInt<2>(1)
+ wire T_184679 : UInt<2>[3]
+ T_184679[0] := UInt<2>(1)
+ T_184679[1] := UInt<2>(2)
+ T_184679[2] := UInt<2>(3)
+ wire T_184680 : UInt<2>[2]
+ T_184680[0] := UInt<2>(2)
+ T_184680[1] := UInt<2>(3)
+ wire T_184681 : UInt<2>[1]
+ T_184681[0] := UInt<2>(3)
+ wire T_184682 : UInt<1>
+ node T_184683 = or(UInt<1>(0), in[0].valid)
+ node T_184684 = eq(T_184683, UInt<1>(0))
+ node T_184685 = eq(UInt<1>(1), UInt<1>(0))
+ wire T_184686 : UInt<1>
+ T_184686 := UInt<1>(1)
+ when UInt<1>(0) : T_184686 := T_184685
+ node T_184687 = and(T_184686, out.ready)
+ in[0].ready := T_184687
+ node T_184688 = eq(UInt<1>(1), UInt<1>(1))
+ wire T_184689 : UInt<1>
+ T_184689 := T_184684
+ when UInt<1>(0) : T_184689 := T_184688
+ node T_184690 = and(T_184689, out.ready)
+ in[1].ready := T_184690
+ wire T_184691 : UInt<3>[3]
+ T_184691[0] := UInt<3>(0)
+ T_184691[1] := UInt<3>(1)
+ T_184691[2] := UInt<3>(2)
+ wire T_184692 : UInt<2>[2]
+ T_184692[0] := UInt<2>(0)
+ T_184692[1] := UInt<2>(1)
+ wire T_184693 : UInt<2>[3]
+ T_184693[0] := UInt<2>(1)
+ T_184693[1] := UInt<2>(2)
+ T_184693[2] := UInt<2>(3)
+ wire T_184694 : UInt<2>[2]
+ T_184694[0] := UInt<2>(2)
+ T_184694[1] := UInt<2>(3)
+ wire T_184695 : UInt<2>[1]
+ T_184695[0] := UInt<2>(3)
+ accessor T_184696 = in[T_184682]
+ out.valid := T_184696.valid
+ wire T_184697 : UInt<3>[3]
+ T_184697[0] := UInt<3>(0)
+ T_184697[1] := UInt<3>(1)
+ T_184697[2] := UInt<3>(2)
+ wire T_184698 : UInt<2>[2]
+ T_184698[0] := UInt<2>(0)
+ T_184698[1] := UInt<2>(1)
+ wire T_184699 : UInt<2>[3]
+ T_184699[0] := UInt<2>(1)
+ T_184699[1] := UInt<2>(2)
+ T_184699[2] := UInt<2>(3)
+ wire T_184700 : UInt<2>[2]
+ T_184700[0] := UInt<2>(2)
+ T_184700[1] := UInt<2>(3)
+ wire T_184701 : UInt<2>[1]
+ T_184701[0] := UInt<2>(3)
+ accessor T_184702 = in[T_184682]
+ out.bits := T_184702.bits
+ chosen := T_184682
+ wire T_184703 : UInt<1>
+ T_184703 := UInt<1>(1)
+ when in[0].valid : T_184703 := UInt<1>(0)
+ wire T_184704 : UInt<1>
+ T_184704 := T_184703
+ when UInt<1>(0) : T_184704 := UInt<1>(1)
+ T_184682 := T_184704
+ module Arbiter_137247 :
+ input in : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr : UInt<40>, tag : UInt<8>, cmd : UInt<5>, typ : UInt<3>, kill : UInt<1>, phys : UInt<1>, sdq_id : UInt<5>}}[2]
+ output out : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr : UInt<40>, tag : UInt<8>, cmd : UInt<5>, typ : UInt<3>, kill : UInt<1>, phys : UInt<1>, sdq_id : UInt<5>}}
+ output chosen : UInt<1>
+
+ wire T_184705 : UInt<1>
+ node T_184706 = or(UInt<1>(0), in[0].valid)
+ node T_184707 = eq(T_184706, UInt<1>(0))
+ node T_184708 = eq(UInt<1>(1), UInt<1>(0))
+ wire T_184709 : UInt<1>
+ T_184709 := UInt<1>(1)
+ when UInt<1>(0) : T_184709 := T_184708
+ node T_184710 = and(T_184709, out.ready)
+ in[0].ready := T_184710
+ node T_184711 = eq(UInt<1>(1), UInt<1>(1))
+ wire T_184712 : UInt<1>
+ T_184712 := T_184707
+ when UInt<1>(0) : T_184712 := T_184711
+ node T_184713 = and(T_184712, out.ready)
+ in[1].ready := T_184713
+ accessor T_184714 = in[T_184705]
+ out.valid := T_184714.valid
+ accessor T_184715 = in[T_184705]
+ out.bits := T_184715.bits
+ chosen := T_184705
+ wire T_184716 : UInt<1>
+ T_184716 := UInt<1>(1)
+ when in[0].valid : T_184716 := UInt<1>(0)
+ wire T_184717 : UInt<1>
+ T_184717 := T_184716
+ when UInt<1>(0) : T_184717 := UInt<1>(1)
+ T_184705 := T_184717
+ module Arbiter_137299 :
+ input in : {flip ready : UInt<1>, valid : UInt<1>, bits : UInt<1>}[2]
+ output out : {flip ready : UInt<1>, valid : UInt<1>, bits : UInt<1>}
+ output chosen : UInt<1>
+
+ wire T_184718 : UInt<1>
+ node T_184719 = or(UInt<1>(0), in[0].valid)
+ node T_184720 = eq(T_184719, UInt<1>(0))
+ node T_184721 = eq(UInt<1>(1), UInt<1>(0))
+ wire T_184722 : UInt<1>
+ T_184722 := UInt<1>(1)
+ when UInt<1>(0) : T_184722 := T_184721
+ node T_184723 = and(T_184722, out.ready)
+ in[0].ready := T_184723
+ node T_184724 = eq(UInt<1>(1), UInt<1>(1))
+ wire T_184725 : UInt<1>
+ T_184725 := T_184720
+ when UInt<1>(0) : T_184725 := T_184724
+ node T_184726 = and(T_184725, out.ready)
+ in[1].ready := T_184726
+ accessor T_184727 = in[T_184718]
+ out.valid := T_184727.valid
+ accessor T_184728 = in[T_184718]
+ out.bits := T_184728.bits
+ chosen := T_184718
+ wire T_184729 : UInt<1>
+ T_184729 := UInt<1>(1)
+ when in[0].valid : T_184729 := UInt<1>(0)
+ wire T_184730 : UInt<1>
+ T_184730 := T_184729
+ when UInt<1>(0) : T_184730 := UInt<1>(1)
+ T_184718 := T_184730
+ module Queue_138637 :
+ input enq : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr : UInt<40>, tag : UInt<8>, cmd : UInt<5>, typ : UInt<3>, kill : UInt<1>, phys : UInt<1>, sdq_id : UInt<5>}}
+ output deq : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr : UInt<40>, tag : UInt<8>, cmd : UInt<5>, typ : UInt<3>, kill : UInt<1>, phys : UInt<1>, sdq_id : UInt<5>}}
+ output count : UInt<5>
+
+ cmem ram : {addr : UInt<40>, tag : UInt<8>, cmd : UInt<5>, typ : UInt<3>, kill : UInt<1>, phys : UInt<1>, sdq_id : UInt<5>}[16]
+ reg T_184731 : UInt<4>
+ onreset T_184731 := UInt<4>(0)
+ reg T_184732 : UInt<4>
+ onreset T_184732 := UInt<4>(0)
+ reg maybe_full : UInt<1>
+ onreset maybe_full := UInt<1>(0)
+ node ptr_match = eq(T_184731, T_184732)
+ node T_184733 = eq(maybe_full, UInt<1>(0))
+ node empty = and(ptr_match, T_184733)
+ node full = and(ptr_match, maybe_full)
+ node maybe_flow = and(UInt<1>(0), empty)
+ node do_flow = and(maybe_flow, deq.ready)
+ node T_184734 = and(enq.ready, enq.valid)
+ node T_184735 = eq(do_flow, UInt<1>(0))
+ node do_enq = and(T_184734, T_184735)
+ node T_184736 = and(deq.ready, deq.valid)
+ node T_184737 = eq(do_flow, UInt<1>(0))
+ node do_deq = and(T_184736, T_184737)
+ when do_enq :
+ accessor T_184738 = ram[T_184731]
+ T_184738 := enq.bits
+ node T_184739 = eq(T_184731, UInt<4>(15))
+ node T_184740 = and(UInt<1>(0), T_184739)
+ node T_184741 = addw(T_184731, UInt<1>(1))
+ wire T_184742 : UInt<4>
+ T_184742 := T_184741
+ when T_184740 : T_184742 := UInt<1>(0)
+ T_184731 := T_184742
+ when do_deq :
+ node T_184743 = eq(T_184732, UInt<4>(15))
+ node T_184744 = and(UInt<1>(0), T_184743)
+ node T_184745 = addw(T_184732, UInt<1>(1))
+ wire T_184746 : UInt<4>
+ T_184746 := T_184745
+ when T_184744 : T_184746 := UInt<1>(0)
+ T_184732 := T_184746
+
+ node T_184747 = neq(do_enq, do_deq)
+ when T_184747 : maybe_full := do_enq
+ node T_184748 = eq(empty, UInt<1>(0))
+ node T_184749 = and(UInt<1>(0), enq.valid)
+ node T_184750 = or(T_184748, T_184749)
+ deq.valid := T_184750
+ node T_184751 = eq(full, UInt<1>(0))
+ node T_184752 = and(UInt<1>(0), deq.ready)
+ node T_184753 = or(T_184751, T_184752)
+ enq.ready := T_184753
+ accessor T_184754 = ram[T_184732]
+ wire T_184755 : {addr : UInt<40>, tag : UInt<8>, cmd : UInt<5>, typ : UInt<3>, kill : UInt<1>, phys : UInt<1>, sdq_id : UInt<5>}
+ T_184755 := T_184754
+ when maybe_flow : T_184755 := enq.bits
+ deq.bits := T_184755
+ node ptr_diff = subw(T_184731, T_184732)
+ node T_184756 = and(maybe_full, ptr_match)
+ node T_184757 = cat(T_184756, ptr_diff)
+ count := T_184757
+ module MSHR :
+ input req_pri_val : UInt<1>
+ output req_pri_rdy : UInt<1>
+ input req_sec_val : UInt<1>
+ output req_sec_rdy : UInt<1>
+ input req_bits : {addr : UInt<40>, tag : UInt<8>, cmd : UInt<5>, typ : UInt<3>, kill : UInt<1>, phys : UInt<1>, sdq_id : UInt<5>, tag_match : UInt<1>, old_meta : {tag : UInt<20>, coh : {state : UInt<2>, makeRelease$default$2 : UInt<1>, makeRelease$default$3 : UInt<1>, makeVoluntaryRelease$default$4 : UInt<1>, makeVoluntaryRelease$default$5 : UInt<1>, makeVoluntaryWriteback$default$3 : UInt<1>, makeVoluntaryWriteback$default$4 : UInt<1>}}, way_en : UInt<4>}
+ output idx_match : UInt<1>
+ output tag : UInt<20>
+ output mem_req : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_block : UInt<26>, client_xact_id : UInt<1>, addr_beat : UInt<2>, data : UInt<128>, is_builtin_type : UInt<1>, a_type : UInt<3>, union : UInt<17>}}
+ output refill : {way_en : UInt<4>, addr : UInt<12>}
+ output meta_read : {flip ready : UInt<1>, valid : UInt<1>, bits : {idx : UInt<6>, tag : UInt<20>}}
+ output meta_write : {flip ready : UInt<1>, valid : UInt<1>, bits : {idx : UInt<6>, way_en : UInt<4>, data : {tag : UInt<20>, coh : {state : UInt<2>, makeRelease$default$2 : UInt<1>, makeRelease$default$3 : UInt<1>, makeVoluntaryRelease$default$4 : UInt<1>, makeVoluntaryRelease$default$5 : UInt<1>, makeVoluntaryWriteback$default$3 : UInt<1>, makeVoluntaryWriteback$default$4 : UInt<1>}}}}
+ output replay : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr : UInt<40>, tag : UInt<8>, cmd : UInt<5>, typ : UInt<3>, kill : UInt<1>, phys : UInt<1>, sdq_id : UInt<5>}}
+ input mem_grant : {valid : UInt<1>, bits : {addr_beat : UInt<2>, data : UInt<128>, client_xact_id : UInt<1>, manager_xact_id : UInt<2>, is_builtin_type : UInt<1>, g_type : UInt<4>}}
+ output wb_req : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_block : UInt<26>, client_xact_id : UInt<1>, addr_beat : UInt<2>, data : UInt<128>, r_type : UInt<3>, voluntary : UInt<1>, way_en : UInt<4>}}
+ output probe_rdy : UInt<1>
+
+ wire T_184758 : UInt<3>[3]
+ T_184758[0] := UInt<3>(0)
+ T_184758[1] := UInt<3>(1)
+ T_184758[2] := UInt<3>(2)
+ wire T_184759 : UInt<2>[2]
+ T_184759[0] := UInt<2>(0)
+ T_184759[1] := UInt<2>(1)
+ wire T_184760 : UInt<2>[3]
+ T_184760[0] := UInt<2>(1)
+ T_184760[1] := UInt<2>(2)
+ T_184760[2] := UInt<2>(3)
+ wire T_184761 : UInt<2>[2]
+ T_184761[0] := UInt<2>(2)
+ T_184761[1] := UInt<2>(3)
+ wire T_184762 : UInt<2>[1]
+ T_184762[0] := UInt<2>(3)
+ wire T_184763 : UInt<3>[3]
+ T_184763[0] := UInt<3>(0)
+ T_184763[1] := UInt<3>(1)
+ T_184763[2] := UInt<3>(2)
+ wire T_184764 : UInt<2>[2]
+ T_184764[0] := UInt<2>(0)
+ T_184764[1] := UInt<2>(1)
+ wire T_184765 : UInt<2>[3]
+ T_184765[0] := UInt<2>(1)
+ T_184765[1] := UInt<2>(2)
+ T_184765[2] := UInt<2>(3)
+ wire T_184766 : UInt<2>[2]
+ T_184766[0] := UInt<2>(2)
+ T_184766[1] := UInt<2>(3)
+ wire T_184767 : UInt<2>[1]
+ T_184767[0] := UInt<2>(3)
+ wire T_184768 : UInt<3>[3]
+ T_184768[0] := UInt<3>(0)
+ T_184768[1] := UInt<3>(1)
+ T_184768[2] := UInt<3>(2)
+ wire T_184769 : UInt<2>[2]
+ T_184769[0] := UInt<2>(0)
+ T_184769[1] := UInt<2>(1)
+ wire T_184770 : UInt<2>[3]
+ T_184770[0] := UInt<2>(1)
+ T_184770[1] := UInt<2>(2)
+ T_184770[2] := UInt<2>(3)
+ wire T_184771 : UInt<2>[2]
+ T_184771[0] := UInt<2>(2)
+ T_184771[1] := UInt<2>(3)
+ wire T_184772 : UInt<2>[1]
+ T_184772[0] := UInt<2>(3)
+ wire T_184773 : UInt<3>[3]
+ T_184773[0] := UInt<3>(0)
+ T_184773[1] := UInt<3>(1)
+ T_184773[2] := UInt<3>(2)
+ wire T_184774 : UInt<2>[2]
+ T_184774[0] := UInt<2>(0)
+ T_184774[1] := UInt<2>(1)
+ wire T_184775 : UInt<2>[3]
+ T_184775[0] := UInt<2>(1)
+ T_184775[1] := UInt<2>(2)
+ T_184775[2] := UInt<2>(3)
+ wire T_184776 : UInt<2>[2]
+ T_184776[0] := UInt<2>(2)
+ T_184776[1] := UInt<2>(3)
+ wire T_184777 : UInt<2>[1]
+ T_184777[0] := UInt<2>(3)
+ wire T_184778 : UInt<3>[3]
+ T_184778[0] := UInt<3>(0)
+ T_184778[1] := UInt<3>(1)
+ T_184778[2] := UInt<3>(2)
+ wire T_184779 : UInt<2>[2]
+ T_184779[0] := UInt<2>(0)
+ T_184779[1] := UInt<2>(1)
+ wire T_184780 : UInt<2>[3]
+ T_184780[0] := UInt<2>(1)
+ T_184780[1] := UInt<2>(2)
+ T_184780[2] := UInt<2>(3)
+ wire T_184781 : UInt<2>[2]
+ T_184781[0] := UInt<2>(2)
+ T_184781[1] := UInt<2>(3)
+ wire T_184782 : UInt<2>[1]
+ T_184782[0] := UInt<2>(3)
+ wire T_184783 : UInt<3>[3]
+ T_184783[0] := UInt<3>(0)
+ T_184783[1] := UInt<3>(1)
+ T_184783[2] := UInt<3>(2)
+ wire T_184784 : UInt<2>[2]
+ T_184784[0] := UInt<2>(0)
+ T_184784[1] := UInt<2>(1)
+ wire T_184785 : UInt<2>[3]
+ T_184785[0] := UInt<2>(1)
+ T_184785[1] := UInt<2>(2)
+ T_184785[2] := UInt<2>(3)
+ wire T_184786 : UInt<2>[2]
+ T_184786[0] := UInt<2>(2)
+ T_184786[1] := UInt<2>(3)
+ wire T_184787 : UInt<2>[1]
+ T_184787[0] := UInt<2>(3)
+ wire T_184788 : UInt<3>[3]
+ T_184788[0] := UInt<3>(0)
+ T_184788[1] := UInt<3>(1)
+ T_184788[2] := UInt<3>(2)
+ wire T_184789 : UInt<2>[2]
+ T_184789[0] := UInt<2>(0)
+ T_184789[1] := UInt<2>(1)
+ wire T_184790 : UInt<2>[3]
+ T_184790[0] := UInt<2>(1)
+ T_184790[1] := UInt<2>(2)
+ T_184790[2] := UInt<2>(3)
+ wire T_184791 : UInt<2>[2]
+ T_184791[0] := UInt<2>(2)
+ T_184791[1] := UInt<2>(3)
+ wire T_184792 : UInt<2>[1]
+ T_184792[0] := UInt<2>(3)
+ wire T_184793 : UInt<3>[3]
+ T_184793[0] := UInt<3>(0)
+ T_184793[1] := UInt<3>(1)
+ T_184793[2] := UInt<3>(2)
+ wire T_184794 : UInt<2>[2]
+ T_184794[0] := UInt<2>(0)
+ T_184794[1] := UInt<2>(1)
+ wire T_184795 : UInt<2>[3]
+ T_184795[0] := UInt<2>(1)
+ T_184795[1] := UInt<2>(2)
+ T_184795[2] := UInt<2>(3)
+ wire T_184796 : UInt<2>[2]
+ T_184796[0] := UInt<2>(2)
+ T_184796[1] := UInt<2>(3)
+ wire T_184797 : UInt<2>[1]
+ T_184797[0] := UInt<2>(3)
+ wire T_184798 : UInt<3>[3]
+ T_184798[0] := UInt<3>(0)
+ T_184798[1] := UInt<3>(1)
+ T_184798[2] := UInt<3>(2)
+ wire T_184799 : UInt<2>[2]
+ T_184799[0] := UInt<2>(0)
+ T_184799[1] := UInt<2>(1)
+ wire T_184800 : UInt<2>[3]
+ T_184800[0] := UInt<2>(1)
+ T_184800[1] := UInt<2>(2)
+ T_184800[2] := UInt<2>(3)
+ wire T_184801 : UInt<2>[2]
+ T_184801[0] := UInt<2>(2)
+ T_184801[1] := UInt<2>(3)
+ wire T_184802 : UInt<2>[1]
+ T_184802[0] := UInt<2>(3)
+ wire T_184803 : UInt<3>[3]
+ T_184803[0] := UInt<3>(0)
+ T_184803[1] := UInt<3>(1)
+ T_184803[2] := UInt<3>(2)
+ wire T_184804 : UInt<2>[2]
+ T_184804[0] := UInt<2>(0)
+ T_184804[1] := UInt<2>(1)
+ wire T_184805 : UInt<2>[3]
+ T_184805[0] := UInt<2>(1)
+ T_184805[1] := UInt<2>(2)
+ T_184805[2] := UInt<2>(3)
+ wire T_184806 : UInt<2>[2]
+ T_184806[0] := UInt<2>(2)
+ T_184806[1] := UInt<2>(3)
+ wire T_184807 : UInt<2>[1]
+ T_184807[0] := UInt<2>(3)
+ reg state : UInt<4>
+ onreset state := UInt<4>(0)
+ wire T_184808 : UInt<3>[3]
+ T_184808[0] := UInt<3>(0)
+ T_184808[1] := UInt<3>(1)
+ T_184808[2] := UInt<3>(2)
+ wire T_184809 : UInt<2>[2]
+ T_184809[0] := UInt<2>(0)
+ T_184809[1] := UInt<2>(1)
+ wire T_184810 : UInt<2>[3]
+ T_184810[0] := UInt<2>(1)
+ T_184810[1] := UInt<2>(2)
+ T_184810[2] := UInt<2>(3)
+ wire T_184811 : UInt<2>[2]
+ T_184811[0] := UInt<2>(2)
+ T_184811[1] := UInt<2>(3)
+ wire T_184812 : UInt<2>[1]
+ T_184812[0] := UInt<2>(3)
+ wire T_184813 : UInt<3>[3]
+ T_184813[0] := UInt<3>(0)
+ T_184813[1] := UInt<3>(1)
+ T_184813[2] := UInt<3>(2)
+ wire T_184814 : UInt<2>[2]
+ T_184814[0] := UInt<2>(0)
+ T_184814[1] := UInt<2>(1)
+ wire T_184815 : UInt<2>[3]
+ T_184815[0] := UInt<2>(1)
+ T_184815[1] := UInt<2>(2)
+ T_184815[2] := UInt<2>(3)
+ wire T_184816 : UInt<2>[2]
+ T_184816[0] := UInt<2>(2)
+ T_184816[1] := UInt<2>(3)
+ wire T_184817 : UInt<2>[1]
+ T_184817[0] := UInt<2>(3)
+ wire T_184818 : UInt<3>[3]
+ T_184818[0] := UInt<3>(0)
+ T_184818[1] := UInt<3>(1)
+ T_184818[2] := UInt<3>(2)
+ wire T_184819 : UInt<2>[2]
+ T_184819[0] := UInt<2>(0)
+ T_184819[1] := UInt<2>(1)
+ wire T_184820 : UInt<2>[3]
+ T_184820[0] := UInt<2>(1)
+ T_184820[1] := UInt<2>(2)
+ T_184820[2] := UInt<2>(3)
+ wire T_184821 : UInt<2>[2]
+ T_184821[0] := UInt<2>(2)
+ T_184821[1] := UInt<2>(3)
+ wire T_184822 : UInt<2>[1]
+ T_184822[0] := UInt<2>(3)
+ wire T_184823 : {state : UInt<2>, makeRelease$default$2 : UInt<1>, makeRelease$default$3 : UInt<1>, makeVoluntaryRelease$default$4 : UInt<1>, makeVoluntaryRelease$default$5 : UInt<1>, makeVoluntaryWriteback$default$3 : UInt<1>, makeVoluntaryWriteback$default$4 : UInt<1>}
+ T_184823.state := UInt<2>(0)
+ wire T_184824 : UInt<3>[3]
+ T_184824[0] := UInt<3>(0)
+ T_184824[1] := UInt<3>(1)
+ T_184824[2] := UInt<3>(2)
+ wire T_184825 : UInt<2>[2]
+ T_184825[0] := UInt<2>(0)
+ T_184825[1] := UInt<2>(1)
+ wire T_184826 : UInt<2>[3]
+ T_184826[0] := UInt<2>(1)
+ T_184826[1] := UInt<2>(2)
+ T_184826[2] := UInt<2>(3)
+ wire T_184827 : UInt<2>[2]
+ T_184827[0] := UInt<2>(2)
+ T_184827[1] := UInt<2>(3)
+ wire T_184828 : UInt<2>[1]
+ T_184828[0] := UInt<2>(3)
+ reg new_coh_state : {state : UInt<2>, makeRelease$default$2 : UInt<1>, makeRelease$default$3 : UInt<1>, makeVoluntaryRelease$default$4 : UInt<1>, makeVoluntaryRelease$default$5 : UInt<1>, makeVoluntaryWriteback$default$3 : UInt<1>, makeVoluntaryWriteback$default$4 : UInt<1>}
+ onreset new_coh_state := T_184823
+ wire T_184829 : UInt<3>[3]
+ T_184829[0] := UInt<3>(0)
+ T_184829[1] := UInt<3>(1)
+ T_184829[2] := UInt<3>(2)
+ wire T_184830 : UInt<2>[2]
+ T_184830[0] := UInt<2>(0)
+ T_184830[1] := UInt<2>(1)
+ wire T_184831 : UInt<2>[3]
+ T_184831[0] := UInt<2>(1)
+ T_184831[1] := UInt<2>(2)
+ T_184831[2] := UInt<2>(3)
+ wire T_184832 : UInt<2>[2]
+ T_184832[0] := UInt<2>(2)
+ T_184832[1] := UInt<2>(3)
+ wire T_184833 : UInt<2>[1]
+ T_184833[0] := UInt<2>(3)
+ wire T_184834 : UInt<3>[3]
+ T_184834[0] := UInt<3>(0)
+ T_184834[1] := UInt<3>(1)
+ T_184834[2] := UInt<3>(2)
+ wire T_184835 : UInt<2>[2]
+ T_184835[0] := UInt<2>(0)
+ T_184835[1] := UInt<2>(1)
+ wire T_184836 : UInt<2>[3]
+ T_184836[0] := UInt<2>(1)
+ T_184836[1] := UInt<2>(2)
+ T_184836[2] := UInt<2>(3)
+ wire T_184837 : UInt<2>[2]
+ T_184837[0] := UInt<2>(2)
+ T_184837[1] := UInt<2>(3)
+ wire T_184838 : UInt<2>[1]
+ T_184838[0] := UInt<2>(3)
+ reg req : {addr : UInt<40>, tag : UInt<8>, cmd : UInt<5>, typ : UInt<3>, kill : UInt<1>, phys : UInt<1>, sdq_id : UInt<5>, tag_match : UInt<1>, old_meta : {tag : UInt<20>, coh : {state : UInt<2>, makeRelease$default$2 : UInt<1>, makeRelease$default$3 : UInt<1>, makeVoluntaryRelease$default$4 : UInt<1>, makeVoluntaryRelease$default$5 : UInt<1>, makeVoluntaryWriteback$default$3 : UInt<1>, makeVoluntaryWriteback$default$4 : UInt<1>}}, way_en : UInt<4>}
+ node req_idx = bits(req.addr, 11, 6)
+ node T_184839 = bits(req_bits.addr, 11, 6)
+ node idx_match = eq(req_idx, T_184839)
+ node T_184840 = eq(req_bits.cmd, UInt<5>(1))
+ node T_184841 = eq(req_bits.cmd, UInt<5>(7))
+ node T_184842 = or(T_184840, T_184841)
+ node T_184843 = bit(req_bits.cmd, 3)
+ node T_184844 = eq(req_bits.cmd, UInt<5>(4))
+ node T_184845 = or(T_184843, T_184844)
+ node T_184846 = or(T_184842, T_184845)
+ node T_184847 = eq(req_bits.cmd, UInt<5>(3))
+ node T_184848 = or(T_184846, T_184847)
+ node T_184849 = eq(req_bits.cmd, UInt<5>(6))
+ node T_184850 = or(T_184848, T_184849)
+ node T_184851 = eq(req.cmd, UInt<5>(1))
+ node T_184852 = eq(req.cmd, UInt<5>(7))
+ node T_184853 = or(T_184851, T_184852)
+ node T_184854 = bit(req.cmd, 3)
+ node T_184855 = eq(req.cmd, UInt<5>(4))
+ node T_184856 = or(T_184854, T_184855)
+ node T_184857 = or(T_184853, T_184856)
+ node T_184858 = eq(req.cmd, UInt<5>(3))
+ node T_184859 = or(T_184857, T_184858)
+ node T_184860 = eq(req.cmd, UInt<5>(6))
+ node T_184861 = or(T_184859, T_184860)
+ node T_184862 = eq(T_184861, UInt<1>(0))
+ node cmd_requires_second_acquire = and(T_184850, T_184862)
+ wire states_before_refill : UInt<4>[3]
+ states_before_refill[0] := UInt<4>(1)
+ states_before_refill[1] := UInt<4>(2)
+ states_before_refill[2] := UInt<4>(3)
+ node T_184863 = eq(states_before_refill[0], state)
+ node T_184864 = eq(states_before_refill[1], state)
+ node T_184865 = eq(states_before_refill[2], state)
+ node T_184866 = or(UInt<1>(0), T_184863)
+ node T_184867 = or(T_184866, T_184864)
+ node T_184868 = or(T_184867, T_184865)
+ wire T_184869 : UInt<4>[2]
+ T_184869[0] := UInt<4>(4)
+ T_184869[1] := UInt<4>(5)
+ node T_184870 = eq(T_184869[0], state)
+ node T_184871 = eq(T_184869[1], state)
+ node T_184872 = or(UInt<1>(0), T_184870)
+ node T_184873 = or(T_184872, T_184871)
+ node T_184874 = eq(cmd_requires_second_acquire, UInt<1>(0))
+ node T_184875 = and(T_184873, T_184874)
+ node T_184876 = or(T_184868, T_184875)
+ node sec_rdy = and(idx_match, T_184876)
+ wire T_184877 : UInt<3>[1]
+ T_184877[0] := UInt<3>(5)
+ node T_184878 = eq(T_184877[0], mem_grant.bits.g_type)
+ node T_184879 = or(UInt<1>(0), T_184878)
+ node T_184880 = eq(T_184794[0], mem_grant.bits.g_type)
+ node T_184881 = eq(T_184794[1], mem_grant.bits.g_type)
+ node T_184882 = or(UInt<1>(0), T_184880)
+ node T_184883 = or(T_184882, T_184881)
+ wire T_184884 : UInt<1>
+ T_184884 := T_184883
+ when mem_grant.bits.is_builtin_type : T_184884 := T_184879
+ node gnt_multi_data = and(UInt<1>(1), T_184884)
+ node T_184885 = and(mem_grant.valid, gnt_multi_data)
+ reg refill_cnt : UInt<2>
+ onreset refill_cnt := UInt<2>(0)
+ when T_184885 :
+ node T_184886 = eq(refill_cnt, UInt<2>(3))
+ node T_184887 = and(UInt<1>(0), T_184886)
+ node T_184888 = addw(refill_cnt, UInt<1>(1))
+ wire T_184889 : UInt<2>
+ T_184889 := T_184888
+ when T_184887 : T_184889 := UInt<1>(0)
+ refill_cnt := T_184889
+ node refill_count_done = and(T_184885, T_184886)
+ node T_184890 = eq(gnt_multi_data, UInt<1>(0))
+ node T_184891 = or(T_184890, refill_count_done)
+ node refill_done = and(mem_grant.valid, T_184891)
+ inst rpq of Queue_138637
+ node T_184892 = and(req_pri_val, req_pri_rdy)
+ node T_184893 = and(req_sec_val, sec_rdy)
+ node T_184894 = or(T_184892, T_184893)
+ node T_184895 = eq(req_bits.cmd, UInt<5>(2))
+ node T_184896 = eq(req_bits.cmd, UInt<5>(3))
+ node T_184897 = or(T_184895, T_184896)
+ node T_184898 = eq(T_184897, UInt<1>(0))
+ node T_184899 = and(T_184894, T_184898)
+ rpq.enq.valid := T_184899
+ rpq.enq.bits := req_bits
+ node T_184900 = eq(state, UInt<4>(8))
+ node T_184901 = and(replay.ready, T_184900)
+ node T_184902 = eq(state, UInt<4>(0))
+ node T_184903 = or(T_184901, T_184902)
+ rpq.deq.ready := T_184903
+ node T_184904 = eq(req.cmd, UInt<5>(1))
+ node T_184905 = eq(req.cmd, UInt<5>(7))
+ node T_184906 = or(T_184904, T_184905)
+ node T_184907 = bit(req.cmd, 3)
+ node T_184908 = eq(req.cmd, UInt<5>(4))
+ node T_184909 = or(T_184907, T_184908)
+ node T_184910 = or(T_184906, T_184909)
+ wire T_184911 : UInt<2>
+ T_184911 := UInt<2>(2)
+ when T_184910 : T_184911 := UInt<2>(3)
+ node T_184912 = eq(UInt<2>(2), mem_grant.bits.g_type)
+ wire T_184913 : UInt<2>
+ T_184913 := UInt<2>(0)
+ when T_184912 : T_184913 := UInt<2>(3)
+ node T_184914 = eq(UInt<2>(1), mem_grant.bits.g_type)
+ wire T_184915 : UInt<2>
+ T_184915 := T_184913
+ when T_184914 : T_184915 := T_184911
+ node T_184916 = eq(UInt<2>(0), mem_grant.bits.g_type)
+ wire T_184917 : UInt<2>
+ T_184917 := T_184915
+ when T_184916 : T_184917 := UInt<2>(1)
+ wire T_184918 : UInt<2>
+ T_184918 := T_184917
+ when mem_grant.bits.is_builtin_type : T_184918 := UInt<2>(0)
+ wire T_184919 : UInt<3>[3]
+ T_184919[0] := UInt<3>(0)
+ T_184919[1] := UInt<3>(1)
+ T_184919[2] := UInt<3>(2)
+ wire T_184920 : UInt<2>[2]
+ T_184920[0] := UInt<2>(0)
+ T_184920[1] := UInt<2>(1)
+ wire T_184921 : UInt<2>[3]
+ T_184921[0] := UInt<2>(1)
+ T_184921[1] := UInt<2>(2)
+ T_184921[2] := UInt<2>(3)
+ wire T_184922 : UInt<2>[2]
+ T_184922[0] := UInt<2>(2)
+ T_184922[1] := UInt<2>(3)
+ wire T_184923 : UInt<2>[1]
+ T_184923[0] := UInt<2>(3)
+ wire T_184924 : UInt<3>[3]
+ T_184924[0] := UInt<3>(0)
+ T_184924[1] := UInt<3>(1)
+ T_184924[2] := UInt<3>(2)
+ wire T_184925 : UInt<2>[2]
+ T_184925[0] := UInt<2>(0)
+ T_184925[1] := UInt<2>(1)
+ wire T_184926 : UInt<2>[3]
+ T_184926[0] := UInt<2>(1)
+ T_184926[1] := UInt<2>(2)
+ T_184926[2] := UInt<2>(3)
+ wire T_184927 : UInt<2>[2]
+ T_184927[0] := UInt<2>(2)
+ T_184927[1] := UInt<2>(3)
+ wire T_184928 : UInt<2>[1]
+ T_184928[0] := UInt<2>(3)
+ wire coh_on_grant : {state : UInt<2>, makeRelease$default$2 : UInt<1>, makeRelease$default$3 : UInt<1>, makeVoluntaryRelease$default$4 : UInt<1>, makeVoluntaryRelease$default$5 : UInt<1>, makeVoluntaryWriteback$default$3 : UInt<1>, makeVoluntaryWriteback$default$4 : UInt<1>}
+ coh_on_grant.state := T_184918
+ node T_184929 = eq(req_bits.cmd, UInt<5>(1))
+ node T_184930 = eq(req_bits.cmd, UInt<5>(7))
+ node T_184931 = or(T_184929, T_184930)
+ node T_184932 = bit(req_bits.cmd, 3)
+ node T_184933 = eq(req_bits.cmd, UInt<5>(4))
+ node T_184934 = or(T_184932, T_184933)
+ node T_184935 = or(T_184931, T_184934)
+ wire T_184936 : UInt<2>
+ T_184936 := req_bits.old_meta.coh.state
+ when T_184935 : T_184936 := UInt<2>(3)
+ wire T_184937 : UInt<3>[3]
+ T_184937[0] := UInt<3>(0)
+ T_184937[1] := UInt<3>(1)
+ T_184937[2] := UInt<3>(2)
+ wire T_184938 : UInt<2>[2]
+ T_184938[0] := UInt<2>(0)
+ T_184938[1] := UInt<2>(1)
+ wire T_184939 : UInt<2>[3]
+ T_184939[0] := UInt<2>(1)
+ T_184939[1] := UInt<2>(2)
+ T_184939[2] := UInt<2>(3)
+ wire T_184940 : UInt<2>[2]
+ T_184940[0] := UInt<2>(2)
+ T_184940[1] := UInt<2>(3)
+ wire T_184941 : UInt<2>[1]
+ T_184941[0] := UInt<2>(3)
+ wire T_184942 : UInt<3>[3]
+ T_184942[0] := UInt<3>(0)
+ T_184942[1] := UInt<3>(1)
+ T_184942[2] := UInt<3>(2)
+ wire T_184943 : UInt<2>[2]
+ T_184943[0] := UInt<2>(0)
+ T_184943[1] := UInt<2>(1)
+ wire T_184944 : UInt<2>[3]
+ T_184944[0] := UInt<2>(1)
+ T_184944[1] := UInt<2>(2)
+ T_184944[2] := UInt<2>(3)
+ wire T_184945 : UInt<2>[2]
+ T_184945[0] := UInt<2>(2)
+ T_184945[1] := UInt<2>(3)
+ wire T_184946 : UInt<2>[1]
+ T_184946[0] := UInt<2>(3)
+ wire coh_on_hit : {state : UInt<2>, makeRelease$default$2 : UInt<1>, makeRelease$default$3 : UInt<1>, makeVoluntaryRelease$default$4 : UInt<1>, makeVoluntaryRelease$default$5 : UInt<1>, makeVoluntaryWriteback$default$3 : UInt<1>, makeVoluntaryWriteback$default$4 : UInt<1>}
+ coh_on_hit.state := T_184936
+
+
+ node T_184947 = eq(state, UInt<4>(8))
+ node T_184948 = eq(rpq.deq.valid, UInt<1>(0))
+ node T_184949 = and(T_184947, T_184948)
+ when T_184949 : state := UInt<4>(0)
+
+ node T_184950 = eq(state, UInt<4>(7))
+ when T_184950 : state := UInt<4>(8)
+
+
+ node T_184951 = eq(state, UInt<4>(6))
+ node T_184952 = and(T_184951, meta_write.ready)
+ when T_184952 : state := UInt<4>(7)
+
+ node T_184953 = eq(state, UInt<4>(5))
+ when T_184953 :
+ when mem_grant.valid : new_coh_state := coh_on_grant
+ when refill_done : state := UInt<4>(6)
+
+ node T_184954 = and(mem_req.ready, mem_req.valid)
+ when T_184954 : state := UInt<4>(5)
+
+
+ node T_184955 = eq(state, UInt<4>(3))
+ node T_184956 = and(T_184955, meta_write.ready)
+ when T_184956 : state := UInt<4>(4)
+
+
+ node T_184957 = eq(state, UInt<4>(2))
+ node T_184958 = and(T_184957, mem_grant.valid)
+ when T_184958 : state := UInt<4>(3)
+
+ node T_184959 = and(wb_req.ready, wb_req.valid)
+ when T_184959 :
+ node T_184960 = eq(UInt<1>(0), UInt<1>(0))
+ wire T_184961 : UInt<4>
+ T_184961 := UInt<4>(3)
+ when T_184960 : T_184961 := UInt<4>(2)
+ state := T_184961
+
+ node T_184962 = and(req_sec_val, req_sec_rdy)
+ when T_184962 : when cmd_requires_second_acquire : req.cmd := req_bits.cmd
+
+ node T_184963 = and(req_pri_val, req_pri_rdy)
+ when T_184963 :
+ req := req_bits
+ when req_bits.tag_match :
+
+ node T_184967 = eq(req_bits.cmd, UInt<5>(1))
+ node T_184968 = eq(req_bits.cmd, UInt<5>(7))
+ node T_184969 = or(T_184967, T_184968)
+ node T_184970 = bit(req_bits.cmd, 3)
+ node T_184971 = eq(req_bits.cmd, UInt<5>(4))
+ node T_184972 = or(T_184970, T_184971)
+ node T_184973 = or(T_184969, T_184972)
+ node T_184974 = eq(req_bits.cmd, UInt<5>(3))
+ node T_184975 = or(T_184973, T_184974)
+ node T_184976 = eq(req_bits.cmd, UInt<5>(6))
+ node T_184977 = or(T_184975, T_184976)
+ node T_184978 = eq(T_184761[0], req_bits.old_meta.coh.state)
+ node T_184979 = eq(T_184761[1], req_bits.old_meta.coh.state)
+ node T_184980 = or(UInt<1>(0), T_184978)
+ node T_184981 = or(T_184980, T_184979)
+ node T_184982 = eq(T_184760[0], req_bits.old_meta.coh.state)
+ node T_184983 = eq(T_184760[1], req_bits.old_meta.coh.state)
+ node T_184984 = eq(T_184760[2], req_bits.old_meta.coh.state)
+ node T_184985 = or(UInt<1>(0), T_184982)
+ node T_184986 = or(T_184985, T_184983)
+ node T_184987 = or(T_184986, T_184984)
+ wire T_184988 : UInt<1>
+ T_184988 := T_184987
+ when T_184977 : T_184988 := T_184981
+ when T_184988 :
+ state := UInt<4>(6)
+ new_coh_state := coh_on_hit
+ else :
+ state := UInt<4>(4)
+ else :
+
+ node T_184964 = eq(T_184762[0], req_bits.old_meta.coh.state)
+ node T_184965 = or(UInt<1>(0), T_184964)
+ wire T_184966 : UInt<4>
+ T_184966 := UInt<4>(3)
+ when T_184965 : T_184966 := UInt<4>(1)
+ state := T_184966
+ node T_184989 = neq(state, UInt<4>(0))
+ node T_184990 = and(T_184989, idx_match)
+ idx_match := T_184990
+ refill.way_en := req.way_en
+ node T_184991 = cat(req_idx, refill_cnt)
+ node T_184992 = shl(T_184991, 4)
+ refill.addr := T_184992
+ node T_184993 = shr(req.addr, 12)
+ tag := T_184993
+ node T_184994 = eq(state, UInt<4>(0))
+ req_pri_rdy := T_184994
+ node T_184995 = and(sec_rdy, rpq.enq.ready)
+ req_sec_rdy := T_184995
+ reg meta_hazard : UInt<2>
+ onreset meta_hazard := UInt<2>(0)
+
+ node T_184996 = neq(meta_hazard, UInt<1>(0))
+ when T_184996 :
+ node T_184997 = addw(meta_hazard, UInt<1>(1))
+ meta_hazard := T_184997
+
+ node T_184998 = and(meta_write.ready, meta_write.valid)
+ when T_184998 : meta_hazard := UInt<1>(1)
+ node T_184999 = eq(idx_match, UInt<1>(0))
+ node T_185000 = eq(states_before_refill[0], state)
+ node T_185001 = eq(states_before_refill[1], state)
+ node T_185002 = eq(states_before_refill[2], state)
+ node T_185003 = or(UInt<1>(0), T_185000)
+ node T_185004 = or(T_185003, T_185001)
+ node T_185005 = or(T_185004, T_185002)
+ node T_185006 = eq(T_185005, UInt<1>(0))
+ node T_185007 = eq(meta_hazard, UInt<1>(0))
+ node T_185008 = and(T_185006, T_185007)
+ node T_185009 = or(T_184999, T_185008)
+ probe_rdy := T_185009
+ node T_185010 = eq(state, UInt<4>(6))
+ node T_185011 = eq(state, UInt<4>(3))
+ node T_185012 = or(T_185010, T_185011)
+ meta_write.valid := T_185012
+ meta_write.bits.idx := req_idx
+ node T_185013 = eq(state, UInt<4>(3))
+ node T_185014 = eq(T_184837[0], req.old_meta.coh.state)
+ node T_185015 = eq(T_184837[1], req.old_meta.coh.state)
+ node T_185016 = or(UInt<1>(0), T_185014)
+ node T_185017 = or(T_185016, T_185015)
+ wire T_185018 : UInt<2>
+ T_185018 := req.old_meta.coh.state
+ when T_185017 : T_185018 := UInt<2>(1)
+ node T_185019 = eq(req.old_meta.coh.state, UInt<2>(3))
+ wire T_185020 : UInt<2>
+ T_185020 := req.old_meta.coh.state
+ when T_185019 : T_185020 := UInt<2>(2)
+ node T_185021 = eq(UInt<5>(19), UInt<5>(16))
+ wire T_185022 : UInt<2>
+ T_185022 := req.old_meta.coh.state
+ when T_185021 : T_185022 := T_185020
+ node T_185023 = eq(UInt<5>(17), UInt<5>(16))
+ wire T_185024 : UInt<2>
+ T_185024 := T_185022
+ when T_185023 : T_185024 := T_185018
+ node T_185025 = eq(UInt<5>(16), UInt<5>(16))
+ wire T_185026 : UInt<2>
+ T_185026 := T_185024
+ when T_185025 : T_185026 := UInt<2>(0)
+ wire T_185027 : UInt<3>[3]
+ T_185027[0] := UInt<3>(0)
+ T_185027[1] := UInt<3>(1)
+ T_185027[2] := UInt<3>(2)
+ wire T_185028 : UInt<2>[2]
+ T_185028[0] := UInt<2>(0)
+ T_185028[1] := UInt<2>(1)
+ wire T_185029 : UInt<2>[3]
+ T_185029[0] := UInt<2>(1)
+ T_185029[1] := UInt<2>(2)
+ T_185029[2] := UInt<2>(3)
+ wire T_185030 : UInt<2>[2]
+ T_185030[0] := UInt<2>(2)
+ T_185030[1] := UInt<2>(3)
+ wire T_185031 : UInt<2>[1]
+ T_185031[0] := UInt<2>(3)
+ wire T_185032 : UInt<3>[3]
+ T_185032[0] := UInt<3>(0)
+ T_185032[1] := UInt<3>(1)
+ T_185032[2] := UInt<3>(2)
+ wire T_185033 : UInt<2>[2]
+ T_185033[0] := UInt<2>(0)
+ T_185033[1] := UInt<2>(1)
+ wire T_185034 : UInt<2>[3]
+ T_185034[0] := UInt<2>(1)
+ T_185034[1] := UInt<2>(2)
+ T_185034[2] := UInt<2>(3)
+ wire T_185035 : UInt<2>[2]
+ T_185035[0] := UInt<2>(2)
+ T_185035[1] := UInt<2>(3)
+ wire T_185036 : UInt<2>[1]
+ T_185036[0] := UInt<2>(3)
+ wire T_185037 : {state : UInt<2>, makeRelease$default$2 : UInt<1>, makeRelease$default$3 : UInt<1>, makeVoluntaryRelease$default$4 : UInt<1>, makeVoluntaryRelease$default$5 : UInt<1>, makeVoluntaryWriteback$default$3 : UInt<1>, makeVoluntaryWriteback$default$4 : UInt<1>}
+ T_185037.state := T_185026
+ wire T_185038 : UInt<3>[3]
+ T_185038[0] := UInt<3>(0)
+ T_185038[1] := UInt<3>(1)
+ T_185038[2] := UInt<3>(2)
+ wire T_185039 : UInt<2>[2]
+ T_185039[0] := UInt<2>(0)
+ T_185039[1] := UInt<2>(1)
+ wire T_185040 : UInt<2>[3]
+ T_185040[0] := UInt<2>(1)
+ T_185040[1] := UInt<2>(2)
+ T_185040[2] := UInt<2>(3)
+ wire T_185041 : UInt<2>[2]
+ T_185041[0] := UInt<2>(2)
+ T_185041[1] := UInt<2>(3)
+ wire T_185042 : UInt<2>[1]
+ T_185042[0] := UInt<2>(3)
+ wire T_185043 : {state : UInt<2>, makeRelease$default$2 : UInt<1>, makeRelease$default$3 : UInt<1>, makeVoluntaryRelease$default$4 : UInt<1>, makeVoluntaryRelease$default$5 : UInt<1>, makeVoluntaryWriteback$default$3 : UInt<1>, makeVoluntaryWriteback$default$4 : UInt<1>}
+ T_185043 := new_coh_state
+ when T_185013 : T_185043 := T_185037
+ meta_write.bits.data.coh := T_185043
+ meta_write.bits.data.tag := tag
+ meta_write.bits.way_en := req.way_en
+ node T_185044 = eq(state, UInt<4>(1))
+ wb_req.valid := T_185044
+ node T_185045 = cat(req.old_meta.tag, req_idx)
+ node T_185046 = eq(T_184838[0], req.old_meta.coh.state)
+ node T_185047 = or(UInt<1>(0), T_185046)
+ wire T_185048 : UInt<3>
+ T_185048 := UInt<3>(3)
+ when T_185047 : T_185048 := UInt<3>(0)
+ wire T_185049 : UInt<3>
+ T_185049 := UInt<3>(4)
+ when T_185047 : T_185049 := UInt<3>(1)
+ wire T_185050 : UInt<3>
+ T_185050 := UInt<3>(5)
+ when T_185047 : T_185050 := UInt<3>(2)
+ node T_185051 = eq(UInt<5>(19), UInt<5>(16))
+ wire T_185052 : UInt<3>
+ T_185052 := UInt<3>(5)
+ when T_185051 : T_185052 := T_185050
+ node T_185053 = eq(UInt<5>(17), UInt<5>(16))
+ wire T_185054 : UInt<3>
+ T_185054 := T_185052
+ when T_185053 : T_185054 := T_185049
+ node T_185055 = eq(UInt<5>(16), UInt<5>(16))
+ wire T_185056 : UInt<3>
+ T_185056 := T_185054
+ when T_185055 : T_185056 := T_185048
+ wire T_185057 : UInt<3>[3]
+ T_185057[0] := UInt<3>(0)
+ T_185057[1] := UInt<3>(1)
+ T_185057[2] := UInt<3>(2)
+ wire T_185058 : UInt<2>[2]
+ T_185058[0] := UInt<2>(0)
+ T_185058[1] := UInt<2>(1)
+ wire T_185059 : UInt<2>[3]
+ T_185059[0] := UInt<2>(1)
+ T_185059[1] := UInt<2>(2)
+ T_185059[2] := UInt<2>(3)
+ wire T_185060 : UInt<2>[2]
+ T_185060[0] := UInt<2>(2)
+ T_185060[1] := UInt<2>(3)
+ wire T_185061 : UInt<2>[1]
+ T_185061[0] := UInt<2>(3)
+ wire T_185062 : UInt<3>[3]
+ T_185062[0] := UInt<3>(0)
+ T_185062[1] := UInt<3>(1)
+ T_185062[2] := UInt<3>(2)
+ wire T_185063 : UInt<2>[2]
+ T_185063[0] := UInt<2>(0)
+ T_185063[1] := UInt<2>(1)
+ wire T_185064 : UInt<2>[3]
+ T_185064[0] := UInt<2>(1)
+ T_185064[1] := UInt<2>(2)
+ T_185064[2] := UInt<2>(3)
+ wire T_185065 : UInt<2>[2]
+ T_185065[0] := UInt<2>(2)
+ T_185065[1] := UInt<2>(3)
+ wire T_185066 : UInt<2>[1]
+ T_185066[0] := UInt<2>(3)
+ wire T_185067 : {addr_block : UInt<26>, client_xact_id : UInt<1>, addr_beat : UInt<2>, data : UInt<128>, r_type : UInt<3>, voluntary : UInt<1>}
+ T_185067.r_type := T_185056
+ T_185067.client_xact_id := UInt<1>(0)
+ T_185067.addr_block := T_185045
+ T_185067.addr_beat := UInt<1>(0)
+ T_185067.data := UInt<1>(0)
+ T_185067.voluntary := UInt<1>(1)
+ wb_req.bits := T_185067
+ wb_req.bits.way_en := req.way_en
+ node T_185068 = eq(state, UInt<4>(4))
+ mem_req.valid := T_185068
+ node T_185069 = cat(tag, req_idx)
+ node T_185070 = eq(req.cmd, UInt<5>(1))
+ node T_185071 = eq(req.cmd, UInt<5>(7))
+ node T_185072 = or(T_185070, T_185071)
+ node T_185073 = bit(req.cmd, 3)
+ node T_185074 = eq(req.cmd, UInt<5>(4))
+ node T_185075 = or(T_185073, T_185074)
+ node T_185076 = or(T_185072, T_185075)
+ node T_185077 = eq(req.cmd, UInt<5>(3))
+ node T_185078 = or(T_185076, T_185077)
+ node T_185079 = eq(req.cmd, UInt<5>(6))
+ node T_185080 = or(T_185078, T_185079)
+ wire T_185081 : UInt<1>
+ T_185081 := UInt<1>(0)
+ when T_185080 : T_185081 := UInt<1>(1)
+ node T_185082 = cat(req.cmd, UInt<1>(1))
+ wire T_185083 : UInt<3>[3]
+ T_185083[0] := UInt<3>(0)
+ T_185083[1] := UInt<3>(1)
+ T_185083[2] := UInt<3>(2)
+ wire T_185084 : UInt<2>[2]
+ T_185084[0] := UInt<2>(0)
+ T_185084[1] := UInt<2>(1)
+ wire T_185085 : UInt<2>[3]
+ T_185085[0] := UInt<2>(1)
+ T_185085[1] := UInt<2>(2)
+ T_185085[2] := UInt<2>(3)
+ wire T_185086 : UInt<2>[2]
+ T_185086[0] := UInt<2>(2)
+ T_185086[1] := UInt<2>(3)
+ wire T_185087 : UInt<2>[1]
+ T_185087[0] := UInt<2>(3)
+ wire T_185088 : UInt<3>[3]
+ T_185088[0] := UInt<3>(0)
+ T_185088[1] := UInt<3>(1)
+ T_185088[2] := UInt<3>(2)
+ wire T_185089 : UInt<2>[2]
+ T_185089[0] := UInt<2>(0)
+ T_185089[1] := UInt<2>(1)
+ wire T_185090 : UInt<2>[3]
+ T_185090[0] := UInt<2>(1)
+ T_185090[1] := UInt<2>(2)
+ T_185090[2] := UInt<2>(3)
+ wire T_185091 : UInt<2>[2]
+ T_185091[0] := UInt<2>(2)
+ T_185091[1] := UInt<2>(3)
+ wire T_185092 : UInt<2>[1]
+ T_185092[0] := UInt<2>(3)
+ wire T_185093 : {addr_block : UInt<26>, client_xact_id : UInt<1>, addr_beat : UInt<2>, data : UInt<128>, is_builtin_type : UInt<1>, a_type : UInt<3>, union : UInt<17>}
+ T_185093.is_builtin_type := UInt<1>(0)
+ T_185093.a_type := T_185081
+ T_185093.client_xact_id := UInt<1>(0)
+ T_185093.addr_block := T_185069
+ T_185093.addr_beat := UInt<1>(0)
+ T_185093.data := UInt<1>(0)
+ T_185093.union := T_185082
+ mem_req.bits := T_185093
+ node T_185094 = eq(state, UInt<4>(8))
+ meta_read.valid := T_185094
+ meta_read.bits.idx := req_idx
+ meta_read.bits.tag := tag
+ node T_185095 = eq(state, UInt<4>(8))
+ node T_185096 = and(T_185095, rpq.deq.valid)
+ replay.valid := T_185096
+ replay.bits := rpq.deq.bits
+ replay.bits.phys := UInt<1>(1)
+ node T_185097 = bits(rpq.deq.bits.addr, 5, 0)
+ node T_185098 = cat(req_idx, T_185097)
+ node T_185099 = cat(tag, T_185098)
+ replay.bits.addr := T_185099
+
+ node T_185100 = eq(meta_read.ready, UInt<1>(0))
+ when T_185100 :
+ rpq.deq.ready := UInt<1>(0)
+ replay.bits.cmd := UInt<5>(5)
+ module Queue_140921 :
+ input enq : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr : UInt<40>, tag : UInt<8>, cmd : UInt<5>, typ : UInt<3>, kill : UInt<1>, phys : UInt<1>, sdq_id : UInt<5>}}
+ output deq : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr : UInt<40>, tag : UInt<8>, cmd : UInt<5>, typ : UInt<3>, kill : UInt<1>, phys : UInt<1>, sdq_id : UInt<5>}}
+ output count : UInt<5>
+
+ cmem ram : {addr : UInt<40>, tag : UInt<8>, cmd : UInt<5>, typ : UInt<3>, kill : UInt<1>, phys : UInt<1>, sdq_id : UInt<5>}[16]
+ reg T_185101 : UInt<4>
+ onreset T_185101 := UInt<4>(0)
+ reg T_185102 : UInt<4>
+ onreset T_185102 := UInt<4>(0)
+ reg maybe_full : UInt<1>
+ onreset maybe_full := UInt<1>(0)
+ node ptr_match = eq(T_185101, T_185102)
+ node T_185103 = eq(maybe_full, UInt<1>(0))
+ node empty = and(ptr_match, T_185103)
+ node full = and(ptr_match, maybe_full)
+ node maybe_flow = and(UInt<1>(0), empty)
+ node do_flow = and(maybe_flow, deq.ready)
+ node T_185104 = and(enq.ready, enq.valid)
+ node T_185105 = eq(do_flow, UInt<1>(0))
+ node do_enq = and(T_185104, T_185105)
+ node T_185106 = and(deq.ready, deq.valid)
+ node T_185107 = eq(do_flow, UInt<1>(0))
+ node do_deq = and(T_185106, T_185107)
+ when do_enq :
+ accessor T_185108 = ram[T_185101]
+ T_185108 := enq.bits
+ node T_185109 = eq(T_185101, UInt<4>(15))
+ node T_185110 = and(UInt<1>(0), T_185109)
+ node T_185111 = addw(T_185101, UInt<1>(1))
+ wire T_185112 : UInt<4>
+ T_185112 := T_185111
+ when T_185110 : T_185112 := UInt<1>(0)
+ T_185101 := T_185112
+ when do_deq :
+ node T_185113 = eq(T_185102, UInt<4>(15))
+ node T_185114 = and(UInt<1>(0), T_185113)
+ node T_185115 = addw(T_185102, UInt<1>(1))
+ wire T_185116 : UInt<4>
+ T_185116 := T_185115
+ when T_185114 : T_185116 := UInt<1>(0)
+ T_185102 := T_185116
+
+ node T_185117 = neq(do_enq, do_deq)
+ when T_185117 : maybe_full := do_enq
+ node T_185118 = eq(empty, UInt<1>(0))
+ node T_185119 = and(UInt<1>(0), enq.valid)
+ node T_185120 = or(T_185118, T_185119)
+ deq.valid := T_185120
+ node T_185121 = eq(full, UInt<1>(0))
+ node T_185122 = and(UInt<1>(0), deq.ready)
+ node T_185123 = or(T_185121, T_185122)
+ enq.ready := T_185123
+ accessor T_185124 = ram[T_185102]
+ wire T_185125 : {addr : UInt<40>, tag : UInt<8>, cmd : UInt<5>, typ : UInt<3>, kill : UInt<1>, phys : UInt<1>, sdq_id : UInt<5>}
+ T_185125 := T_185124
+ when maybe_flow : T_185125 := enq.bits
+ deq.bits := T_185125
+ node ptr_diff = subw(T_185101, T_185102)
+ node T_185126 = and(maybe_full, ptr_match)
+ node T_185127 = cat(T_185126, ptr_diff)
+ count := T_185127
+ module MSHR_141857 :
+ input req_pri_val : UInt<1>
+ output req_pri_rdy : UInt<1>
+ input req_sec_val : UInt<1>
+ output req_sec_rdy : UInt<1>
+ input req_bits : {addr : UInt<40>, tag : UInt<8>, cmd : UInt<5>, typ : UInt<3>, kill : UInt<1>, phys : UInt<1>, sdq_id : UInt<5>, tag_match : UInt<1>, old_meta : {tag : UInt<20>, coh : {state : UInt<2>, makeRelease$default$2 : UInt<1>, makeRelease$default$3 : UInt<1>, makeVoluntaryRelease$default$4 : UInt<1>, makeVoluntaryRelease$default$5 : UInt<1>, makeVoluntaryWriteback$default$3 : UInt<1>, makeVoluntaryWriteback$default$4 : UInt<1>}}, way_en : UInt<4>}
+ output idx_match : UInt<1>
+ output tag : UInt<20>
+ output mem_req : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_block : UInt<26>, client_xact_id : UInt<1>, addr_beat : UInt<2>, data : UInt<128>, is_builtin_type : UInt<1>, a_type : UInt<3>, union : UInt<17>}}
+ output refill : {way_en : UInt<4>, addr : UInt<12>}
+ output meta_read : {flip ready : UInt<1>, valid : UInt<1>, bits : {idx : UInt<6>, tag : UInt<20>}}
+ output meta_write : {flip ready : UInt<1>, valid : UInt<1>, bits : {idx : UInt<6>, way_en : UInt<4>, data : {tag : UInt<20>, coh : {state : UInt<2>, makeRelease$default$2 : UInt<1>, makeRelease$default$3 : UInt<1>, makeVoluntaryRelease$default$4 : UInt<1>, makeVoluntaryRelease$default$5 : UInt<1>, makeVoluntaryWriteback$default$3 : UInt<1>, makeVoluntaryWriteback$default$4 : UInt<1>}}}}
+ output replay : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr : UInt<40>, tag : UInt<8>, cmd : UInt<5>, typ : UInt<3>, kill : UInt<1>, phys : UInt<1>, sdq_id : UInt<5>}}
+ input mem_grant : {valid : UInt<1>, bits : {addr_beat : UInt<2>, data : UInt<128>, client_xact_id : UInt<1>, manager_xact_id : UInt<2>, is_builtin_type : UInt<1>, g_type : UInt<4>}}
+ output wb_req : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_block : UInt<26>, client_xact_id : UInt<1>, addr_beat : UInt<2>, data : UInt<128>, r_type : UInt<3>, voluntary : UInt<1>, way_en : UInt<4>}}
+ output probe_rdy : UInt<1>
+
+ wire T_185128 : UInt<3>[3]
+ T_185128[0] := UInt<3>(0)
+ T_185128[1] := UInt<3>(1)
+ T_185128[2] := UInt<3>(2)
+ wire T_185129 : UInt<2>[2]
+ T_185129[0] := UInt<2>(0)
+ T_185129[1] := UInt<2>(1)
+ wire T_185130 : UInt<2>[3]
+ T_185130[0] := UInt<2>(1)
+ T_185130[1] := UInt<2>(2)
+ T_185130[2] := UInt<2>(3)
+ wire T_185131 : UInt<2>[2]
+ T_185131[0] := UInt<2>(2)
+ T_185131[1] := UInt<2>(3)
+ wire T_185132 : UInt<2>[1]
+ T_185132[0] := UInt<2>(3)
+ wire T_185133 : UInt<3>[3]
+ T_185133[0] := UInt<3>(0)
+ T_185133[1] := UInt<3>(1)
+ T_185133[2] := UInt<3>(2)
+ wire T_185134 : UInt<2>[2]
+ T_185134[0] := UInt<2>(0)
+ T_185134[1] := UInt<2>(1)
+ wire T_185135 : UInt<2>[3]
+ T_185135[0] := UInt<2>(1)
+ T_185135[1] := UInt<2>(2)
+ T_185135[2] := UInt<2>(3)
+ wire T_185136 : UInt<2>[2]
+ T_185136[0] := UInt<2>(2)
+ T_185136[1] := UInt<2>(3)
+ wire T_185137 : UInt<2>[1]
+ T_185137[0] := UInt<2>(3)
+ wire T_185138 : UInt<3>[3]
+ T_185138[0] := UInt<3>(0)
+ T_185138[1] := UInt<3>(1)
+ T_185138[2] := UInt<3>(2)
+ wire T_185139 : UInt<2>[2]
+ T_185139[0] := UInt<2>(0)
+ T_185139[1] := UInt<2>(1)
+ wire T_185140 : UInt<2>[3]
+ T_185140[0] := UInt<2>(1)
+ T_185140[1] := UInt<2>(2)
+ T_185140[2] := UInt<2>(3)
+ wire T_185141 : UInt<2>[2]
+ T_185141[0] := UInt<2>(2)
+ T_185141[1] := UInt<2>(3)
+ wire T_185142 : UInt<2>[1]
+ T_185142[0] := UInt<2>(3)
+ wire T_185143 : UInt<3>[3]
+ T_185143[0] := UInt<3>(0)
+ T_185143[1] := UInt<3>(1)
+ T_185143[2] := UInt<3>(2)
+ wire T_185144 : UInt<2>[2]
+ T_185144[0] := UInt<2>(0)
+ T_185144[1] := UInt<2>(1)
+ wire T_185145 : UInt<2>[3]
+ T_185145[0] := UInt<2>(1)
+ T_185145[1] := UInt<2>(2)
+ T_185145[2] := UInt<2>(3)
+ wire T_185146 : UInt<2>[2]
+ T_185146[0] := UInt<2>(2)
+ T_185146[1] := UInt<2>(3)
+ wire T_185147 : UInt<2>[1]
+ T_185147[0] := UInt<2>(3)
+ wire T_185148 : UInt<3>[3]
+ T_185148[0] := UInt<3>(0)
+ T_185148[1] := UInt<3>(1)
+ T_185148[2] := UInt<3>(2)
+ wire T_185149 : UInt<2>[2]
+ T_185149[0] := UInt<2>(0)
+ T_185149[1] := UInt<2>(1)
+ wire T_185150 : UInt<2>[3]
+ T_185150[0] := UInt<2>(1)
+ T_185150[1] := UInt<2>(2)
+ T_185150[2] := UInt<2>(3)
+ wire T_185151 : UInt<2>[2]
+ T_185151[0] := UInt<2>(2)
+ T_185151[1] := UInt<2>(3)
+ wire T_185152 : UInt<2>[1]
+ T_185152[0] := UInt<2>(3)
+ wire T_185153 : UInt<3>[3]
+ T_185153[0] := UInt<3>(0)
+ T_185153[1] := UInt<3>(1)
+ T_185153[2] := UInt<3>(2)
+ wire T_185154 : UInt<2>[2]
+ T_185154[0] := UInt<2>(0)
+ T_185154[1] := UInt<2>(1)
+ wire T_185155 : UInt<2>[3]
+ T_185155[0] := UInt<2>(1)
+ T_185155[1] := UInt<2>(2)
+ T_185155[2] := UInt<2>(3)
+ wire T_185156 : UInt<2>[2]
+ T_185156[0] := UInt<2>(2)
+ T_185156[1] := UInt<2>(3)
+ wire T_185157 : UInt<2>[1]
+ T_185157[0] := UInt<2>(3)
+ wire T_185158 : UInt<3>[3]
+ T_185158[0] := UInt<3>(0)
+ T_185158[1] := UInt<3>(1)
+ T_185158[2] := UInt<3>(2)
+ wire T_185159 : UInt<2>[2]
+ T_185159[0] := UInt<2>(0)
+ T_185159[1] := UInt<2>(1)
+ wire T_185160 : UInt<2>[3]
+ T_185160[0] := UInt<2>(1)
+ T_185160[1] := UInt<2>(2)
+ T_185160[2] := UInt<2>(3)
+ wire T_185161 : UInt<2>[2]
+ T_185161[0] := UInt<2>(2)
+ T_185161[1] := UInt<2>(3)
+ wire T_185162 : UInt<2>[1]
+ T_185162[0] := UInt<2>(3)
+ wire T_185163 : UInt<3>[3]
+ T_185163[0] := UInt<3>(0)
+ T_185163[1] := UInt<3>(1)
+ T_185163[2] := UInt<3>(2)
+ wire T_185164 : UInt<2>[2]
+ T_185164[0] := UInt<2>(0)
+ T_185164[1] := UInt<2>(1)
+ wire T_185165 : UInt<2>[3]
+ T_185165[0] := UInt<2>(1)
+ T_185165[1] := UInt<2>(2)
+ T_185165[2] := UInt<2>(3)
+ wire T_185166 : UInt<2>[2]
+ T_185166[0] := UInt<2>(2)
+ T_185166[1] := UInt<2>(3)
+ wire T_185167 : UInt<2>[1]
+ T_185167[0] := UInt<2>(3)
+ wire T_185168 : UInt<3>[3]
+ T_185168[0] := UInt<3>(0)
+ T_185168[1] := UInt<3>(1)
+ T_185168[2] := UInt<3>(2)
+ wire T_185169 : UInt<2>[2]
+ T_185169[0] := UInt<2>(0)
+ T_185169[1] := UInt<2>(1)
+ wire T_185170 : UInt<2>[3]
+ T_185170[0] := UInt<2>(1)
+ T_185170[1] := UInt<2>(2)
+ T_185170[2] := UInt<2>(3)
+ wire T_185171 : UInt<2>[2]
+ T_185171[0] := UInt<2>(2)
+ T_185171[1] := UInt<2>(3)
+ wire T_185172 : UInt<2>[1]
+ T_185172[0] := UInt<2>(3)
+ wire T_185173 : UInt<3>[3]
+ T_185173[0] := UInt<3>(0)
+ T_185173[1] := UInt<3>(1)
+ T_185173[2] := UInt<3>(2)
+ wire T_185174 : UInt<2>[2]
+ T_185174[0] := UInt<2>(0)
+ T_185174[1] := UInt<2>(1)
+ wire T_185175 : UInt<2>[3]
+ T_185175[0] := UInt<2>(1)
+ T_185175[1] := UInt<2>(2)
+ T_185175[2] := UInt<2>(3)
+ wire T_185176 : UInt<2>[2]
+ T_185176[0] := UInt<2>(2)
+ T_185176[1] := UInt<2>(3)
+ wire T_185177 : UInt<2>[1]
+ T_185177[0] := UInt<2>(3)
+ reg state : UInt<4>
+ onreset state := UInt<4>(0)
+ wire T_185178 : UInt<3>[3]
+ T_185178[0] := UInt<3>(0)
+ T_185178[1] := UInt<3>(1)
+ T_185178[2] := UInt<3>(2)
+ wire T_185179 : UInt<2>[2]
+ T_185179[0] := UInt<2>(0)
+ T_185179[1] := UInt<2>(1)
+ wire T_185180 : UInt<2>[3]
+ T_185180[0] := UInt<2>(1)
+ T_185180[1] := UInt<2>(2)
+ T_185180[2] := UInt<2>(3)
+ wire T_185181 : UInt<2>[2]
+ T_185181[0] := UInt<2>(2)
+ T_185181[1] := UInt<2>(3)
+ wire T_185182 : UInt<2>[1]
+ T_185182[0] := UInt<2>(3)
+ wire T_185183 : UInt<3>[3]
+ T_185183[0] := UInt<3>(0)
+ T_185183[1] := UInt<3>(1)
+ T_185183[2] := UInt<3>(2)
+ wire T_185184 : UInt<2>[2]
+ T_185184[0] := UInt<2>(0)
+ T_185184[1] := UInt<2>(1)
+ wire T_185185 : UInt<2>[3]
+ T_185185[0] := UInt<2>(1)
+ T_185185[1] := UInt<2>(2)
+ T_185185[2] := UInt<2>(3)
+ wire T_185186 : UInt<2>[2]
+ T_185186[0] := UInt<2>(2)
+ T_185186[1] := UInt<2>(3)
+ wire T_185187 : UInt<2>[1]
+ T_185187[0] := UInt<2>(3)
+ wire T_185188 : UInt<3>[3]
+ T_185188[0] := UInt<3>(0)
+ T_185188[1] := UInt<3>(1)
+ T_185188[2] := UInt<3>(2)
+ wire T_185189 : UInt<2>[2]
+ T_185189[0] := UInt<2>(0)
+ T_185189[1] := UInt<2>(1)
+ wire T_185190 : UInt<2>[3]
+ T_185190[0] := UInt<2>(1)
+ T_185190[1] := UInt<2>(2)
+ T_185190[2] := UInt<2>(3)
+ wire T_185191 : UInt<2>[2]
+ T_185191[0] := UInt<2>(2)
+ T_185191[1] := UInt<2>(3)
+ wire T_185192 : UInt<2>[1]
+ T_185192[0] := UInt<2>(3)
+ wire T_185193 : {state : UInt<2>, makeRelease$default$2 : UInt<1>, makeRelease$default$3 : UInt<1>, makeVoluntaryRelease$default$4 : UInt<1>, makeVoluntaryRelease$default$5 : UInt<1>, makeVoluntaryWriteback$default$3 : UInt<1>, makeVoluntaryWriteback$default$4 : UInt<1>}
+ T_185193.state := UInt<2>(0)
+ wire T_185194 : UInt<3>[3]
+ T_185194[0] := UInt<3>(0)
+ T_185194[1] := UInt<3>(1)
+ T_185194[2] := UInt<3>(2)
+ wire T_185195 : UInt<2>[2]
+ T_185195[0] := UInt<2>(0)
+ T_185195[1] := UInt<2>(1)
+ wire T_185196 : UInt<2>[3]
+ T_185196[0] := UInt<2>(1)
+ T_185196[1] := UInt<2>(2)
+ T_185196[2] := UInt<2>(3)
+ wire T_185197 : UInt<2>[2]
+ T_185197[0] := UInt<2>(2)
+ T_185197[1] := UInt<2>(3)
+ wire T_185198 : UInt<2>[1]
+ T_185198[0] := UInt<2>(3)
+ reg new_coh_state : {state : UInt<2>, makeRelease$default$2 : UInt<1>, makeRelease$default$3 : UInt<1>, makeVoluntaryRelease$default$4 : UInt<1>, makeVoluntaryRelease$default$5 : UInt<1>, makeVoluntaryWriteback$default$3 : UInt<1>, makeVoluntaryWriteback$default$4 : UInt<1>}
+ onreset new_coh_state := T_185193
+ wire T_185199 : UInt<3>[3]
+ T_185199[0] := UInt<3>(0)
+ T_185199[1] := UInt<3>(1)
+ T_185199[2] := UInt<3>(2)
+ wire T_185200 : UInt<2>[2]
+ T_185200[0] := UInt<2>(0)
+ T_185200[1] := UInt<2>(1)
+ wire T_185201 : UInt<2>[3]
+ T_185201[0] := UInt<2>(1)
+ T_185201[1] := UInt<2>(2)
+ T_185201[2] := UInt<2>(3)
+ wire T_185202 : UInt<2>[2]
+ T_185202[0] := UInt<2>(2)
+ T_185202[1] := UInt<2>(3)
+ wire T_185203 : UInt<2>[1]
+ T_185203[0] := UInt<2>(3)
+ wire T_185204 : UInt<3>[3]
+ T_185204[0] := UInt<3>(0)
+ T_185204[1] := UInt<3>(1)
+ T_185204[2] := UInt<3>(2)
+ wire T_185205 : UInt<2>[2]
+ T_185205[0] := UInt<2>(0)
+ T_185205[1] := UInt<2>(1)
+ wire T_185206 : UInt<2>[3]
+ T_185206[0] := UInt<2>(1)
+ T_185206[1] := UInt<2>(2)
+ T_185206[2] := UInt<2>(3)
+ wire T_185207 : UInt<2>[2]
+ T_185207[0] := UInt<2>(2)
+ T_185207[1] := UInt<2>(3)
+ wire T_185208 : UInt<2>[1]
+ T_185208[0] := UInt<2>(3)
+ reg req : {addr : UInt<40>, tag : UInt<8>, cmd : UInt<5>, typ : UInt<3>, kill : UInt<1>, phys : UInt<1>, sdq_id : UInt<5>, tag_match : UInt<1>, old_meta : {tag : UInt<20>, coh : {state : UInt<2>, makeRelease$default$2 : UInt<1>, makeRelease$default$3 : UInt<1>, makeVoluntaryRelease$default$4 : UInt<1>, makeVoluntaryRelease$default$5 : UInt<1>, makeVoluntaryWriteback$default$3 : UInt<1>, makeVoluntaryWriteback$default$4 : UInt<1>}}, way_en : UInt<4>}
+ node req_idx = bits(req.addr, 11, 6)
+ node T_185209 = bits(req_bits.addr, 11, 6)
+ node idx_match = eq(req_idx, T_185209)
+ node T_185210 = eq(req_bits.cmd, UInt<5>(1))
+ node T_185211 = eq(req_bits.cmd, UInt<5>(7))
+ node T_185212 = or(T_185210, T_185211)
+ node T_185213 = bit(req_bits.cmd, 3)
+ node T_185214 = eq(req_bits.cmd, UInt<5>(4))
+ node T_185215 = or(T_185213, T_185214)
+ node T_185216 = or(T_185212, T_185215)
+ node T_185217 = eq(req_bits.cmd, UInt<5>(3))
+ node T_185218 = or(T_185216, T_185217)
+ node T_185219 = eq(req_bits.cmd, UInt<5>(6))
+ node T_185220 = or(T_185218, T_185219)
+ node T_185221 = eq(req.cmd, UInt<5>(1))
+ node T_185222 = eq(req.cmd, UInt<5>(7))
+ node T_185223 = or(T_185221, T_185222)
+ node T_185224 = bit(req.cmd, 3)
+ node T_185225 = eq(req.cmd, UInt<5>(4))
+ node T_185226 = or(T_185224, T_185225)
+ node T_185227 = or(T_185223, T_185226)
+ node T_185228 = eq(req.cmd, UInt<5>(3))
+ node T_185229 = or(T_185227, T_185228)
+ node T_185230 = eq(req.cmd, UInt<5>(6))
+ node T_185231 = or(T_185229, T_185230)
+ node T_185232 = eq(T_185231, UInt<1>(0))
+ node cmd_requires_second_acquire = and(T_185220, T_185232)
+ wire states_before_refill : UInt<4>[3]
+ states_before_refill[0] := UInt<4>(1)
+ states_before_refill[1] := UInt<4>(2)
+ states_before_refill[2] := UInt<4>(3)
+ node T_185233 = eq(states_before_refill[0], state)
+ node T_185234 = eq(states_before_refill[1], state)
+ node T_185235 = eq(states_before_refill[2], state)
+ node T_185236 = or(UInt<1>(0), T_185233)
+ node T_185237 = or(T_185236, T_185234)
+ node T_185238 = or(T_185237, T_185235)
+ wire T_185239 : UInt<4>[2]
+ T_185239[0] := UInt<4>(4)
+ T_185239[1] := UInt<4>(5)
+ node T_185240 = eq(T_185239[0], state)
+ node T_185241 = eq(T_185239[1], state)
+ node T_185242 = or(UInt<1>(0), T_185240)
+ node T_185243 = or(T_185242, T_185241)
+ node T_185244 = eq(cmd_requires_second_acquire, UInt<1>(0))
+ node T_185245 = and(T_185243, T_185244)
+ node T_185246 = or(T_185238, T_185245)
+ node sec_rdy = and(idx_match, T_185246)
+ wire T_185247 : UInt<3>[1]
+ T_185247[0] := UInt<3>(5)
+ node T_185248 = eq(T_185247[0], mem_grant.bits.g_type)
+ node T_185249 = or(UInt<1>(0), T_185248)
+ node T_185250 = eq(T_185164[0], mem_grant.bits.g_type)
+ node T_185251 = eq(T_185164[1], mem_grant.bits.g_type)
+ node T_185252 = or(UInt<1>(0), T_185250)
+ node T_185253 = or(T_185252, T_185251)
+ wire T_185254 : UInt<1>
+ T_185254 := T_185253
+ when mem_grant.bits.is_builtin_type : T_185254 := T_185249
+ node gnt_multi_data = and(UInt<1>(1), T_185254)
+ node T_185255 = and(mem_grant.valid, gnt_multi_data)
+ reg refill_cnt : UInt<2>
+ onreset refill_cnt := UInt<2>(0)
+ when T_185255 :
+ node T_185256 = eq(refill_cnt, UInt<2>(3))
+ node T_185257 = and(UInt<1>(0), T_185256)
+ node T_185258 = addw(refill_cnt, UInt<1>(1))
+ wire T_185259 : UInt<2>
+ T_185259 := T_185258
+ when T_185257 : T_185259 := UInt<1>(0)
+ refill_cnt := T_185259
+ node refill_count_done = and(T_185255, T_185256)
+ node T_185260 = eq(gnt_multi_data, UInt<1>(0))
+ node T_185261 = or(T_185260, refill_count_done)
+ node refill_done = and(mem_grant.valid, T_185261)
+ inst rpq of Queue_140921
+ node T_185262 = and(req_pri_val, req_pri_rdy)
+ node T_185263 = and(req_sec_val, sec_rdy)
+ node T_185264 = or(T_185262, T_185263)
+ node T_185265 = eq(req_bits.cmd, UInt<5>(2))
+ node T_185266 = eq(req_bits.cmd, UInt<5>(3))
+ node T_185267 = or(T_185265, T_185266)
+ node T_185268 = eq(T_185267, UInt<1>(0))
+ node T_185269 = and(T_185264, T_185268)
+ rpq.enq.valid := T_185269
+ rpq.enq.bits := req_bits
+ node T_185270 = eq(state, UInt<4>(8))
+ node T_185271 = and(replay.ready, T_185270)
+ node T_185272 = eq(state, UInt<4>(0))
+ node T_185273 = or(T_185271, T_185272)
+ rpq.deq.ready := T_185273
+ node T_185274 = eq(req.cmd, UInt<5>(1))
+ node T_185275 = eq(req.cmd, UInt<5>(7))
+ node T_185276 = or(T_185274, T_185275)
+ node T_185277 = bit(req.cmd, 3)
+ node T_185278 = eq(req.cmd, UInt<5>(4))
+ node T_185279 = or(T_185277, T_185278)
+ node T_185280 = or(T_185276, T_185279)
+ wire T_185281 : UInt<2>
+ T_185281 := UInt<2>(2)
+ when T_185280 : T_185281 := UInt<2>(3)
+ node T_185282 = eq(UInt<2>(2), mem_grant.bits.g_type)
+ wire T_185283 : UInt<2>
+ T_185283 := UInt<2>(0)
+ when T_185282 : T_185283 := UInt<2>(3)
+ node T_185284 = eq(UInt<2>(1), mem_grant.bits.g_type)
+ wire T_185285 : UInt<2>
+ T_185285 := T_185283
+ when T_185284 : T_185285 := T_185281
+ node T_185286 = eq(UInt<2>(0), mem_grant.bits.g_type)
+ wire T_185287 : UInt<2>
+ T_185287 := T_185285
+ when T_185286 : T_185287 := UInt<2>(1)
+ wire T_185288 : UInt<2>
+ T_185288 := T_185287
+ when mem_grant.bits.is_builtin_type : T_185288 := UInt<2>(0)
+ wire T_185289 : UInt<3>[3]
+ T_185289[0] := UInt<3>(0)
+ T_185289[1] := UInt<3>(1)
+ T_185289[2] := UInt<3>(2)
+ wire T_185290 : UInt<2>[2]
+ T_185290[0] := UInt<2>(0)
+ T_185290[1] := UInt<2>(1)
+ wire T_185291 : UInt<2>[3]
+ T_185291[0] := UInt<2>(1)
+ T_185291[1] := UInt<2>(2)
+ T_185291[2] := UInt<2>(3)
+ wire T_185292 : UInt<2>[2]
+ T_185292[0] := UInt<2>(2)
+ T_185292[1] := UInt<2>(3)
+ wire T_185293 : UInt<2>[1]
+ T_185293[0] := UInt<2>(3)
+ wire T_185294 : UInt<3>[3]
+ T_185294[0] := UInt<3>(0)
+ T_185294[1] := UInt<3>(1)
+ T_185294[2] := UInt<3>(2)
+ wire T_185295 : UInt<2>[2]
+ T_185295[0] := UInt<2>(0)
+ T_185295[1] := UInt<2>(1)
+ wire T_185296 : UInt<2>[3]
+ T_185296[0] := UInt<2>(1)
+ T_185296[1] := UInt<2>(2)
+ T_185296[2] := UInt<2>(3)
+ wire T_185297 : UInt<2>[2]
+ T_185297[0] := UInt<2>(2)
+ T_185297[1] := UInt<2>(3)
+ wire T_185298 : UInt<2>[1]
+ T_185298[0] := UInt<2>(3)
+ wire coh_on_grant : {state : UInt<2>, makeRelease$default$2 : UInt<1>, makeRelease$default$3 : UInt<1>, makeVoluntaryRelease$default$4 : UInt<1>, makeVoluntaryRelease$default$5 : UInt<1>, makeVoluntaryWriteback$default$3 : UInt<1>, makeVoluntaryWriteback$default$4 : UInt<1>}
+ coh_on_grant.state := T_185288
+ node T_185299 = eq(req_bits.cmd, UInt<5>(1))
+ node T_185300 = eq(req_bits.cmd, UInt<5>(7))
+ node T_185301 = or(T_185299, T_185300)
+ node T_185302 = bit(req_bits.cmd, 3)
+ node T_185303 = eq(req_bits.cmd, UInt<5>(4))
+ node T_185304 = or(T_185302, T_185303)
+ node T_185305 = or(T_185301, T_185304)
+ wire T_185306 : UInt<2>
+ T_185306 := req_bits.old_meta.coh.state
+ when T_185305 : T_185306 := UInt<2>(3)
+ wire T_185307 : UInt<3>[3]
+ T_185307[0] := UInt<3>(0)
+ T_185307[1] := UInt<3>(1)
+ T_185307[2] := UInt<3>(2)
+ wire T_185308 : UInt<2>[2]
+ T_185308[0] := UInt<2>(0)
+ T_185308[1] := UInt<2>(1)
+ wire T_185309 : UInt<2>[3]
+ T_185309[0] := UInt<2>(1)
+ T_185309[1] := UInt<2>(2)
+ T_185309[2] := UInt<2>(3)
+ wire T_185310 : UInt<2>[2]
+ T_185310[0] := UInt<2>(2)
+ T_185310[1] := UInt<2>(3)
+ wire T_185311 : UInt<2>[1]
+ T_185311[0] := UInt<2>(3)
+ wire T_185312 : UInt<3>[3]
+ T_185312[0] := UInt<3>(0)
+ T_185312[1] := UInt<3>(1)
+ T_185312[2] := UInt<3>(2)
+ wire T_185313 : UInt<2>[2]
+ T_185313[0] := UInt<2>(0)
+ T_185313[1] := UInt<2>(1)
+ wire T_185314 : UInt<2>[3]
+ T_185314[0] := UInt<2>(1)
+ T_185314[1] := UInt<2>(2)
+ T_185314[2] := UInt<2>(3)
+ wire T_185315 : UInt<2>[2]
+ T_185315[0] := UInt<2>(2)
+ T_185315[1] := UInt<2>(3)
+ wire T_185316 : UInt<2>[1]
+ T_185316[0] := UInt<2>(3)
+ wire coh_on_hit : {state : UInt<2>, makeRelease$default$2 : UInt<1>, makeRelease$default$3 : UInt<1>, makeVoluntaryRelease$default$4 : UInt<1>, makeVoluntaryRelease$default$5 : UInt<1>, makeVoluntaryWriteback$default$3 : UInt<1>, makeVoluntaryWriteback$default$4 : UInt<1>}
+ coh_on_hit.state := T_185306
+
+
+ node T_185317 = eq(state, UInt<4>(8))
+ node T_185318 = eq(rpq.deq.valid, UInt<1>(0))
+ node T_185319 = and(T_185317, T_185318)
+ when T_185319 : state := UInt<4>(0)
+
+ node T_185320 = eq(state, UInt<4>(7))
+ when T_185320 : state := UInt<4>(8)
+
+
+ node T_185321 = eq(state, UInt<4>(6))
+ node T_185322 = and(T_185321, meta_write.ready)
+ when T_185322 : state := UInt<4>(7)
+
+ node T_185323 = eq(state, UInt<4>(5))
+ when T_185323 :
+ when mem_grant.valid : new_coh_state := coh_on_grant
+ when refill_done : state := UInt<4>(6)
+
+ node T_185324 = and(mem_req.ready, mem_req.valid)
+ when T_185324 : state := UInt<4>(5)
+
+
+ node T_185325 = eq(state, UInt<4>(3))
+ node T_185326 = and(T_185325, meta_write.ready)
+ when T_185326 : state := UInt<4>(4)
+
+
+ node T_185327 = eq(state, UInt<4>(2))
+ node T_185328 = and(T_185327, mem_grant.valid)
+ when T_185328 : state := UInt<4>(3)
+
+ node T_185329 = and(wb_req.ready, wb_req.valid)
+ when T_185329 :
+ node T_185330 = eq(UInt<1>(0), UInt<1>(0))
+ wire T_185331 : UInt<4>
+ T_185331 := UInt<4>(3)
+ when T_185330 : T_185331 := UInt<4>(2)
+ state := T_185331
+
+ node T_185332 = and(req_sec_val, req_sec_rdy)
+ when T_185332 : when cmd_requires_second_acquire : req.cmd := req_bits.cmd
+
+ node T_185333 = and(req_pri_val, req_pri_rdy)
+ when T_185333 :
+ req := req_bits
+ when req_bits.tag_match :
+
+ node T_185337 = eq(req_bits.cmd, UInt<5>(1))
+ node T_185338 = eq(req_bits.cmd, UInt<5>(7))
+ node T_185339 = or(T_185337, T_185338)
+ node T_185340 = bit(req_bits.cmd, 3)
+ node T_185341 = eq(req_bits.cmd, UInt<5>(4))
+ node T_185342 = or(T_185340, T_185341)
+ node T_185343 = or(T_185339, T_185342)
+ node T_185344 = eq(req_bits.cmd, UInt<5>(3))
+ node T_185345 = or(T_185343, T_185344)
+ node T_185346 = eq(req_bits.cmd, UInt<5>(6))
+ node T_185347 = or(T_185345, T_185346)
+ node T_185348 = eq(T_185131[0], req_bits.old_meta.coh.state)
+ node T_185349 = eq(T_185131[1], req_bits.old_meta.coh.state)
+ node T_185350 = or(UInt<1>(0), T_185348)
+ node T_185351 = or(T_185350, T_185349)
+ node T_185352 = eq(T_185130[0], req_bits.old_meta.coh.state)
+ node T_185353 = eq(T_185130[1], req_bits.old_meta.coh.state)
+ node T_185354 = eq(T_185130[2], req_bits.old_meta.coh.state)
+ node T_185355 = or(UInt<1>(0), T_185352)
+ node T_185356 = or(T_185355, T_185353)
+ node T_185357 = or(T_185356, T_185354)
+ wire T_185358 : UInt<1>
+ T_185358 := T_185357
+ when T_185347 : T_185358 := T_185351
+ when T_185358 :
+ state := UInt<4>(6)
+ new_coh_state := coh_on_hit
+ else :
+ state := UInt<4>(4)
+ else :
+
+ node T_185334 = eq(T_185132[0], req_bits.old_meta.coh.state)
+ node T_185335 = or(UInt<1>(0), T_185334)
+ wire T_185336 : UInt<4>
+ T_185336 := UInt<4>(3)
+ when T_185335 : T_185336 := UInt<4>(1)
+ state := T_185336
+ node T_185359 = neq(state, UInt<4>(0))
+ node T_185360 = and(T_185359, idx_match)
+ idx_match := T_185360
+ refill.way_en := req.way_en
+ node T_185361 = cat(req_idx, refill_cnt)
+ node T_185362 = shl(T_185361, 4)
+ refill.addr := T_185362
+ node T_185363 = shr(req.addr, 12)
+ tag := T_185363
+ node T_185364 = eq(state, UInt<4>(0))
+ req_pri_rdy := T_185364
+ node T_185365 = and(sec_rdy, rpq.enq.ready)
+ req_sec_rdy := T_185365
+ reg meta_hazard : UInt<2>
+ onreset meta_hazard := UInt<2>(0)
+
+ node T_185366 = neq(meta_hazard, UInt<1>(0))
+ when T_185366 :
+ node T_185367 = addw(meta_hazard, UInt<1>(1))
+ meta_hazard := T_185367
+
+ node T_185368 = and(meta_write.ready, meta_write.valid)
+ when T_185368 : meta_hazard := UInt<1>(1)
+ node T_185369 = eq(idx_match, UInt<1>(0))
+ node T_185370 = eq(states_before_refill[0], state)
+ node T_185371 = eq(states_before_refill[1], state)
+ node T_185372 = eq(states_before_refill[2], state)
+ node T_185373 = or(UInt<1>(0), T_185370)
+ node T_185374 = or(T_185373, T_185371)
+ node T_185375 = or(T_185374, T_185372)
+ node T_185376 = eq(T_185375, UInt<1>(0))
+ node T_185377 = eq(meta_hazard, UInt<1>(0))
+ node T_185378 = and(T_185376, T_185377)
+ node T_185379 = or(T_185369, T_185378)
+ probe_rdy := T_185379
+ node T_185380 = eq(state, UInt<4>(6))
+ node T_185381 = eq(state, UInt<4>(3))
+ node T_185382 = or(T_185380, T_185381)
+ meta_write.valid := T_185382
+ meta_write.bits.idx := req_idx
+ node T_185383 = eq(state, UInt<4>(3))
+ node T_185384 = eq(T_185207[0], req.old_meta.coh.state)
+ node T_185385 = eq(T_185207[1], req.old_meta.coh.state)
+ node T_185386 = or(UInt<1>(0), T_185384)
+ node T_185387 = or(T_185386, T_185385)
+ wire T_185388 : UInt<2>
+ T_185388 := req.old_meta.coh.state
+ when T_185387 : T_185388 := UInt<2>(1)
+ node T_185389 = eq(req.old_meta.coh.state, UInt<2>(3))
+ wire T_185390 : UInt<2>
+ T_185390 := req.old_meta.coh.state
+ when T_185389 : T_185390 := UInt<2>(2)
+ node T_185391 = eq(UInt<5>(19), UInt<5>(16))
+ wire T_185392 : UInt<2>
+ T_185392 := req.old_meta.coh.state
+ when T_185391 : T_185392 := T_185390
+ node T_185393 = eq(UInt<5>(17), UInt<5>(16))
+ wire T_185394 : UInt<2>
+ T_185394 := T_185392
+ when T_185393 : T_185394 := T_185388
+ node T_185395 = eq(UInt<5>(16), UInt<5>(16))
+ wire T_185396 : UInt<2>
+ T_185396 := T_185394
+ when T_185395 : T_185396 := UInt<2>(0)
+ wire T_185397 : UInt<3>[3]
+ T_185397[0] := UInt<3>(0)
+ T_185397[1] := UInt<3>(1)
+ T_185397[2] := UInt<3>(2)
+ wire T_185398 : UInt<2>[2]
+ T_185398[0] := UInt<2>(0)
+ T_185398[1] := UInt<2>(1)
+ wire T_185399 : UInt<2>[3]
+ T_185399[0] := UInt<2>(1)
+ T_185399[1] := UInt<2>(2)
+ T_185399[2] := UInt<2>(3)
+ wire T_185400 : UInt<2>[2]
+ T_185400[0] := UInt<2>(2)
+ T_185400[1] := UInt<2>(3)
+ wire T_185401 : UInt<2>[1]
+ T_185401[0] := UInt<2>(3)
+ wire T_185402 : UInt<3>[3]
+ T_185402[0] := UInt<3>(0)
+ T_185402[1] := UInt<3>(1)
+ T_185402[2] := UInt<3>(2)
+ wire T_185403 : UInt<2>[2]
+ T_185403[0] := UInt<2>(0)
+ T_185403[1] := UInt<2>(1)
+ wire T_185404 : UInt<2>[3]
+ T_185404[0] := UInt<2>(1)
+ T_185404[1] := UInt<2>(2)
+ T_185404[2] := UInt<2>(3)
+ wire T_185405 : UInt<2>[2]
+ T_185405[0] := UInt<2>(2)
+ T_185405[1] := UInt<2>(3)
+ wire T_185406 : UInt<2>[1]
+ T_185406[0] := UInt<2>(3)
+ wire T_185407 : {state : UInt<2>, makeRelease$default$2 : UInt<1>, makeRelease$default$3 : UInt<1>, makeVoluntaryRelease$default$4 : UInt<1>, makeVoluntaryRelease$default$5 : UInt<1>, makeVoluntaryWriteback$default$3 : UInt<1>, makeVoluntaryWriteback$default$4 : UInt<1>}
+ T_185407.state := T_185396
+ wire T_185408 : UInt<3>[3]
+ T_185408[0] := UInt<3>(0)
+ T_185408[1] := UInt<3>(1)
+ T_185408[2] := UInt<3>(2)
+ wire T_185409 : UInt<2>[2]
+ T_185409[0] := UInt<2>(0)
+ T_185409[1] := UInt<2>(1)
+ wire T_185410 : UInt<2>[3]
+ T_185410[0] := UInt<2>(1)
+ T_185410[1] := UInt<2>(2)
+ T_185410[2] := UInt<2>(3)
+ wire T_185411 : UInt<2>[2]
+ T_185411[0] := UInt<2>(2)
+ T_185411[1] := UInt<2>(3)
+ wire T_185412 : UInt<2>[1]
+ T_185412[0] := UInt<2>(3)
+ wire T_185413 : {state : UInt<2>, makeRelease$default$2 : UInt<1>, makeRelease$default$3 : UInt<1>, makeVoluntaryRelease$default$4 : UInt<1>, makeVoluntaryRelease$default$5 : UInt<1>, makeVoluntaryWriteback$default$3 : UInt<1>, makeVoluntaryWriteback$default$4 : UInt<1>}
+ T_185413 := new_coh_state
+ when T_185383 : T_185413 := T_185407
+ meta_write.bits.data.coh := T_185413
+ meta_write.bits.data.tag := tag
+ meta_write.bits.way_en := req.way_en
+ node T_185414 = eq(state, UInt<4>(1))
+ wb_req.valid := T_185414
+ node T_185415 = cat(req.old_meta.tag, req_idx)
+ node T_185416 = eq(T_185208[0], req.old_meta.coh.state)
+ node T_185417 = or(UInt<1>(0), T_185416)
+ wire T_185418 : UInt<3>
+ T_185418 := UInt<3>(3)
+ when T_185417 : T_185418 := UInt<3>(0)
+ wire T_185419 : UInt<3>
+ T_185419 := UInt<3>(4)
+ when T_185417 : T_185419 := UInt<3>(1)
+ wire T_185420 : UInt<3>
+ T_185420 := UInt<3>(5)
+ when T_185417 : T_185420 := UInt<3>(2)
+ node T_185421 = eq(UInt<5>(19), UInt<5>(16))
+ wire T_185422 : UInt<3>
+ T_185422 := UInt<3>(5)
+ when T_185421 : T_185422 := T_185420
+ node T_185423 = eq(UInt<5>(17), UInt<5>(16))
+ wire T_185424 : UInt<3>
+ T_185424 := T_185422
+ when T_185423 : T_185424 := T_185419
+ node T_185425 = eq(UInt<5>(16), UInt<5>(16))
+ wire T_185426 : UInt<3>
+ T_185426 := T_185424
+ when T_185425 : T_185426 := T_185418
+ wire T_185427 : UInt<3>[3]
+ T_185427[0] := UInt<3>(0)
+ T_185427[1] := UInt<3>(1)
+ T_185427[2] := UInt<3>(2)
+ wire T_185428 : UInt<2>[2]
+ T_185428[0] := UInt<2>(0)
+ T_185428[1] := UInt<2>(1)
+ wire T_185429 : UInt<2>[3]
+ T_185429[0] := UInt<2>(1)
+ T_185429[1] := UInt<2>(2)
+ T_185429[2] := UInt<2>(3)
+ wire T_185430 : UInt<2>[2]
+ T_185430[0] := UInt<2>(2)
+ T_185430[1] := UInt<2>(3)
+ wire T_185431 : UInt<2>[1]
+ T_185431[0] := UInt<2>(3)
+ wire T_185432 : UInt<3>[3]
+ T_185432[0] := UInt<3>(0)
+ T_185432[1] := UInt<3>(1)
+ T_185432[2] := UInt<3>(2)
+ wire T_185433 : UInt<2>[2]
+ T_185433[0] := UInt<2>(0)
+ T_185433[1] := UInt<2>(1)
+ wire T_185434 : UInt<2>[3]
+ T_185434[0] := UInt<2>(1)
+ T_185434[1] := UInt<2>(2)
+ T_185434[2] := UInt<2>(3)
+ wire T_185435 : UInt<2>[2]
+ T_185435[0] := UInt<2>(2)
+ T_185435[1] := UInt<2>(3)
+ wire T_185436 : UInt<2>[1]
+ T_185436[0] := UInt<2>(3)
+ wire T_185437 : {addr_block : UInt<26>, client_xact_id : UInt<1>, addr_beat : UInt<2>, data : UInt<128>, r_type : UInt<3>, voluntary : UInt<1>}
+ T_185437.r_type := T_185426
+ T_185437.client_xact_id := UInt<1>(1)
+ T_185437.addr_block := T_185415
+ T_185437.addr_beat := UInt<1>(0)
+ T_185437.data := UInt<1>(0)
+ T_185437.voluntary := UInt<1>(1)
+ wb_req.bits := T_185437
+ wb_req.bits.way_en := req.way_en
+ node T_185438 = eq(state, UInt<4>(4))
+ mem_req.valid := T_185438
+ node T_185439 = cat(tag, req_idx)
+ node T_185440 = eq(req.cmd, UInt<5>(1))
+ node T_185441 = eq(req.cmd, UInt<5>(7))
+ node T_185442 = or(T_185440, T_185441)
+ node T_185443 = bit(req.cmd, 3)
+ node T_185444 = eq(req.cmd, UInt<5>(4))
+ node T_185445 = or(T_185443, T_185444)
+ node T_185446 = or(T_185442, T_185445)
+ node T_185447 = eq(req.cmd, UInt<5>(3))
+ node T_185448 = or(T_185446, T_185447)
+ node T_185449 = eq(req.cmd, UInt<5>(6))
+ node T_185450 = or(T_185448, T_185449)
+ wire T_185451 : UInt<1>
+ T_185451 := UInt<1>(0)
+ when T_185450 : T_185451 := UInt<1>(1)
+ node T_185452 = cat(req.cmd, UInt<1>(1))
+ wire T_185453 : UInt<3>[3]
+ T_185453[0] := UInt<3>(0)
+ T_185453[1] := UInt<3>(1)
+ T_185453[2] := UInt<3>(2)
+ wire T_185454 : UInt<2>[2]
+ T_185454[0] := UInt<2>(0)
+ T_185454[1] := UInt<2>(1)
+ wire T_185455 : UInt<2>[3]
+ T_185455[0] := UInt<2>(1)
+ T_185455[1] := UInt<2>(2)
+ T_185455[2] := UInt<2>(3)
+ wire T_185456 : UInt<2>[2]
+ T_185456[0] := UInt<2>(2)
+ T_185456[1] := UInt<2>(3)
+ wire T_185457 : UInt<2>[1]
+ T_185457[0] := UInt<2>(3)
+ wire T_185458 : UInt<3>[3]
+ T_185458[0] := UInt<3>(0)
+ T_185458[1] := UInt<3>(1)
+ T_185458[2] := UInt<3>(2)
+ wire T_185459 : UInt<2>[2]
+ T_185459[0] := UInt<2>(0)
+ T_185459[1] := UInt<2>(1)
+ wire T_185460 : UInt<2>[3]
+ T_185460[0] := UInt<2>(1)
+ T_185460[1] := UInt<2>(2)
+ T_185460[2] := UInt<2>(3)
+ wire T_185461 : UInt<2>[2]
+ T_185461[0] := UInt<2>(2)
+ T_185461[1] := UInt<2>(3)
+ wire T_185462 : UInt<2>[1]
+ T_185462[0] := UInt<2>(3)
+ wire T_185463 : {addr_block : UInt<26>, client_xact_id : UInt<1>, addr_beat : UInt<2>, data : UInt<128>, is_builtin_type : UInt<1>, a_type : UInt<3>, union : UInt<17>}
+ T_185463.is_builtin_type := UInt<1>(0)
+ T_185463.a_type := T_185451
+ T_185463.client_xact_id := UInt<1>(1)
+ T_185463.addr_block := T_185439
+ T_185463.addr_beat := UInt<1>(0)
+ T_185463.data := UInt<1>(0)
+ T_185463.union := T_185452
+ mem_req.bits := T_185463
+ node T_185464 = eq(state, UInt<4>(8))
+ meta_read.valid := T_185464
+ meta_read.bits.idx := req_idx
+ meta_read.bits.tag := tag
+ node T_185465 = eq(state, UInt<4>(8))
+ node T_185466 = and(T_185465, rpq.deq.valid)
+ replay.valid := T_185466
+ replay.bits := rpq.deq.bits
+ replay.bits.phys := UInt<1>(1)
+ node T_185467 = bits(rpq.deq.bits.addr, 5, 0)
+ node T_185468 = cat(req_idx, T_185467)
+ node T_185469 = cat(tag, T_185468)
+ replay.bits.addr := T_185469
+
+ node T_185470 = eq(meta_read.ready, UInt<1>(0))
+ when T_185470 :
+ rpq.deq.ready := UInt<1>(0)
+ replay.bits.cmd := UInt<5>(5)
+ module MSHRFile :
+ input req : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr : UInt<40>, tag : UInt<8>, cmd : UInt<5>, typ : UInt<3>, kill : UInt<1>, phys : UInt<1>, data : UInt<64>, tag_match : UInt<1>, old_meta : {tag : UInt<20>, coh : {state : UInt<2>, makeRelease$default$2 : UInt<1>, makeRelease$default$3 : UInt<1>, makeVoluntaryRelease$default$4 : UInt<1>, makeVoluntaryRelease$default$5 : UInt<1>, makeVoluntaryWriteback$default$3 : UInt<1>, makeVoluntaryWriteback$default$4 : UInt<1>}}, way_en : UInt<4>}}
+ output secondary_miss : UInt<1>
+ output mem_req : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_block : UInt<26>, client_xact_id : UInt<1>, addr_beat : UInt<2>, data : UInt<128>, is_builtin_type : UInt<1>, a_type : UInt<3>, union : UInt<17>}}
+ output refill : {way_en : UInt<4>, addr : UInt<12>}
+ output meta_read : {flip ready : UInt<1>, valid : UInt<1>, bits : {idx : UInt<6>, tag : UInt<20>}}
+ output meta_write : {flip ready : UInt<1>, valid : UInt<1>, bits : {idx : UInt<6>, way_en : UInt<4>, data : {tag : UInt<20>, coh : {state : UInt<2>, makeRelease$default$2 : UInt<1>, makeRelease$default$3 : UInt<1>, makeVoluntaryRelease$default$4 : UInt<1>, makeVoluntaryRelease$default$5 : UInt<1>, makeVoluntaryWriteback$default$3 : UInt<1>, makeVoluntaryWriteback$default$4 : UInt<1>}}}}
+ output replay : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr : UInt<40>, tag : UInt<8>, cmd : UInt<5>, typ : UInt<3>, kill : UInt<1>, phys : UInt<1>, data : UInt<64>}}
+ input mem_grant : {valid : UInt<1>, bits : {addr_beat : UInt<2>, data : UInt<128>, client_xact_id : UInt<1>, manager_xact_id : UInt<2>, is_builtin_type : UInt<1>, g_type : UInt<4>}}
+ output wb_req : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_block : UInt<26>, client_xact_id : UInt<1>, addr_beat : UInt<2>, data : UInt<128>, r_type : UInt<3>, voluntary : UInt<1>, way_en : UInt<4>}}
+ output probe_rdy : UInt<1>
+ output fence_rdy : UInt<1>
+
+ wire T_185471 : UInt<3>[3]
+ T_185471[0] := UInt<3>(0)
+ T_185471[1] := UInt<3>(1)
+ T_185471[2] := UInt<3>(2)
+ wire T_185472 : UInt<2>[2]
+ T_185472[0] := UInt<2>(0)
+ T_185472[1] := UInt<2>(1)
+ wire T_185473 : UInt<2>[3]
+ T_185473[0] := UInt<2>(1)
+ T_185473[1] := UInt<2>(2)
+ T_185473[2] := UInt<2>(3)
+ wire T_185474 : UInt<2>[2]
+ T_185474[0] := UInt<2>(2)
+ T_185474[1] := UInt<2>(3)
+ wire T_185475 : UInt<2>[1]
+ T_185475[0] := UInt<2>(3)
+ wire T_185476 : UInt<3>[3]
+ T_185476[0] := UInt<3>(0)
+ T_185476[1] := UInt<3>(1)
+ T_185476[2] := UInt<3>(2)
+ wire T_185477 : UInt<2>[2]
+ T_185477[0] := UInt<2>(0)
+ T_185477[1] := UInt<2>(1)
+ wire T_185478 : UInt<2>[3]
+ T_185478[0] := UInt<2>(1)
+ T_185478[1] := UInt<2>(2)
+ T_185478[2] := UInt<2>(3)
+ wire T_185479 : UInt<2>[2]
+ T_185479[0] := UInt<2>(2)
+ T_185479[1] := UInt<2>(3)
+ wire T_185480 : UInt<2>[1]
+ T_185480[0] := UInt<2>(3)
+ wire T_185481 : UInt<3>[3]
+ T_185481[0] := UInt<3>(0)
+ T_185481[1] := UInt<3>(1)
+ T_185481[2] := UInt<3>(2)
+ wire T_185482 : UInt<2>[2]
+ T_185482[0] := UInt<2>(0)
+ T_185482[1] := UInt<2>(1)
+ wire T_185483 : UInt<2>[3]
+ T_185483[0] := UInt<2>(1)
+ T_185483[1] := UInt<2>(2)
+ T_185483[2] := UInt<2>(3)
+ wire T_185484 : UInt<2>[2]
+ T_185484[0] := UInt<2>(2)
+ T_185484[1] := UInt<2>(3)
+ wire T_185485 : UInt<2>[1]
+ T_185485[0] := UInt<2>(3)
+ wire T_185486 : UInt<3>[3]
+ T_185486[0] := UInt<3>(0)
+ T_185486[1] := UInt<3>(1)
+ T_185486[2] := UInt<3>(2)
+ wire T_185487 : UInt<2>[2]
+ T_185487[0] := UInt<2>(0)
+ T_185487[1] := UInt<2>(1)
+ wire T_185488 : UInt<2>[3]
+ T_185488[0] := UInt<2>(1)
+ T_185488[1] := UInt<2>(2)
+ T_185488[2] := UInt<2>(3)
+ wire T_185489 : UInt<2>[2]
+ T_185489[0] := UInt<2>(2)
+ T_185489[1] := UInt<2>(3)
+ wire T_185490 : UInt<2>[1]
+ T_185490[0] := UInt<2>(3)
+ wire T_185491 : UInt<3>[3]
+ T_185491[0] := UInt<3>(0)
+ T_185491[1] := UInt<3>(1)
+ T_185491[2] := UInt<3>(2)
+ wire T_185492 : UInt<2>[2]
+ T_185492[0] := UInt<2>(0)
+ T_185492[1] := UInt<2>(1)
+ wire T_185493 : UInt<2>[3]
+ T_185493[0] := UInt<2>(1)
+ T_185493[1] := UInt<2>(2)
+ T_185493[2] := UInt<2>(3)
+ wire T_185494 : UInt<2>[2]
+ T_185494[0] := UInt<2>(2)
+ T_185494[1] := UInt<2>(3)
+ wire T_185495 : UInt<2>[1]
+ T_185495[0] := UInt<2>(3)
+ wire T_185496 : UInt<3>[3]
+ T_185496[0] := UInt<3>(0)
+ T_185496[1] := UInt<3>(1)
+ T_185496[2] := UInt<3>(2)
+ wire T_185497 : UInt<2>[2]
+ T_185497[0] := UInt<2>(0)
+ T_185497[1] := UInt<2>(1)
+ wire T_185498 : UInt<2>[3]
+ T_185498[0] := UInt<2>(1)
+ T_185498[1] := UInt<2>(2)
+ T_185498[2] := UInt<2>(3)
+ wire T_185499 : UInt<2>[2]
+ T_185499[0] := UInt<2>(2)
+ T_185499[1] := UInt<2>(3)
+ wire T_185500 : UInt<2>[1]
+ T_185500[0] := UInt<2>(3)
+ wire T_185501 : UInt<3>[3]
+ T_185501[0] := UInt<3>(0)
+ T_185501[1] := UInt<3>(1)
+ T_185501[2] := UInt<3>(2)
+ wire T_185502 : UInt<2>[2]
+ T_185502[0] := UInt<2>(0)
+ T_185502[1] := UInt<2>(1)
+ wire T_185503 : UInt<2>[3]
+ T_185503[0] := UInt<2>(1)
+ T_185503[1] := UInt<2>(2)
+ T_185503[2] := UInt<2>(3)
+ wire T_185504 : UInt<2>[2]
+ T_185504[0] := UInt<2>(2)
+ T_185504[1] := UInt<2>(3)
+ wire T_185505 : UInt<2>[1]
+ T_185505[0] := UInt<2>(3)
+ wire T_185506 : UInt<3>[3]
+ T_185506[0] := UInt<3>(0)
+ T_185506[1] := UInt<3>(1)
+ T_185506[2] := UInt<3>(2)
+ wire T_185507 : UInt<2>[2]
+ T_185507[0] := UInt<2>(0)
+ T_185507[1] := UInt<2>(1)
+ wire T_185508 : UInt<2>[3]
+ T_185508[0] := UInt<2>(1)
+ T_185508[1] := UInt<2>(2)
+ T_185508[2] := UInt<2>(3)
+ wire T_185509 : UInt<2>[2]
+ T_185509[0] := UInt<2>(2)
+ T_185509[1] := UInt<2>(3)
+ wire T_185510 : UInt<2>[1]
+ T_185510[0] := UInt<2>(3)
+ wire T_185511 : UInt<3>[3]
+ T_185511[0] := UInt<3>(0)
+ T_185511[1] := UInt<3>(1)
+ T_185511[2] := UInt<3>(2)
+ wire T_185512 : UInt<2>[2]
+ T_185512[0] := UInt<2>(0)
+ T_185512[1] := UInt<2>(1)
+ wire T_185513 : UInt<2>[3]
+ T_185513[0] := UInt<2>(1)
+ T_185513[1] := UInt<2>(2)
+ T_185513[2] := UInt<2>(3)
+ wire T_185514 : UInt<2>[2]
+ T_185514[0] := UInt<2>(2)
+ T_185514[1] := UInt<2>(3)
+ wire T_185515 : UInt<2>[1]
+ T_185515[0] := UInt<2>(3)
+ wire T_185516 : UInt<3>[3]
+ T_185516[0] := UInt<3>(0)
+ T_185516[1] := UInt<3>(1)
+ T_185516[2] := UInt<3>(2)
+ wire T_185517 : UInt<2>[2]
+ T_185517[0] := UInt<2>(0)
+ T_185517[1] := UInt<2>(1)
+ wire T_185518 : UInt<2>[3]
+ T_185518[0] := UInt<2>(1)
+ T_185518[1] := UInt<2>(2)
+ T_185518[2] := UInt<2>(3)
+ wire T_185519 : UInt<2>[2]
+ T_185519[0] := UInt<2>(2)
+ T_185519[1] := UInt<2>(3)
+ wire T_185520 : UInt<2>[1]
+ T_185520[0] := UInt<2>(3)
+ wire T_185521 : UInt<3>[3]
+ T_185521[0] := UInt<3>(0)
+ T_185521[1] := UInt<3>(1)
+ T_185521[2] := UInt<3>(2)
+ wire T_185522 : UInt<2>[2]
+ T_185522[0] := UInt<2>(0)
+ T_185522[1] := UInt<2>(1)
+ wire T_185523 : UInt<2>[3]
+ T_185523[0] := UInt<2>(1)
+ T_185523[1] := UInt<2>(2)
+ T_185523[2] := UInt<2>(3)
+ wire T_185524 : UInt<2>[2]
+ T_185524[0] := UInt<2>(2)
+ T_185524[1] := UInt<2>(3)
+ wire T_185525 : UInt<2>[1]
+ T_185525[0] := UInt<2>(3)
+ reg sdq_val : UInt<17>
+ onreset sdq_val := UInt<17>(0)
+ node T_185526 = bits(sdq_val, 16, 0)
+ node T_185527 = not(T_185526)
+ node T_185528 = bit(T_185527, 0)
+ node T_185529 = bit(T_185527, 1)
+ node T_185530 = bit(T_185527, 2)
+ node T_185531 = bit(T_185527, 3)
+ node T_185532 = bit(T_185527, 4)
+ node T_185533 = bit(T_185527, 5)
+ node T_185534 = bit(T_185527, 6)
+ node T_185535 = bit(T_185527, 7)
+ node T_185536 = bit(T_185527, 8)
+ node T_185537 = bit(T_185527, 9)
+ node T_185538 = bit(T_185527, 10)
+ node T_185539 = bit(T_185527, 11)
+ node T_185540 = bit(T_185527, 12)
+ node T_185541 = bit(T_185527, 13)
+ node T_185542 = bit(T_185527, 14)
+ node T_185543 = bit(T_185527, 15)
+ node T_185544 = bit(T_185527, 16)
+ wire T_185545 : UInt<1>[17]
+ T_185545[0] := T_185528
+ T_185545[1] := T_185529
+ T_185545[2] := T_185530
+ T_185545[3] := T_185531
+ T_185545[4] := T_185532
+ T_185545[5] := T_185533
+ T_185545[6] := T_185534
+ T_185545[7] := T_185535
+ T_185545[8] := T_185536
+ T_185545[9] := T_185537
+ T_185545[10] := T_185538
+ T_185545[11] := T_185539
+ T_185545[12] := T_185540
+ T_185545[13] := T_185541
+ T_185545[14] := T_185542
+ T_185545[15] := T_185543
+ T_185545[16] := T_185544
+ wire T_185546 : UInt<5>
+ T_185546 := UInt<5>(16)
+ when T_185545[15] : T_185546 := UInt<4>(15)
+ wire T_185547 : UInt<5>
+ T_185547 := T_185546
+ when T_185545[14] : T_185547 := UInt<4>(14)
+ wire T_185548 : UInt<5>
+ T_185548 := T_185547
+ when T_185545[13] : T_185548 := UInt<4>(13)
+ wire T_185549 : UInt<5>
+ T_185549 := T_185548
+ when T_185545[12] : T_185549 := UInt<4>(12)
+ wire T_185550 : UInt<5>
+ T_185550 := T_185549
+ when T_185545[11] : T_185550 := UInt<4>(11)
+ wire T_185551 : UInt<5>
+ T_185551 := T_185550
+ when T_185545[10] : T_185551 := UInt<4>(10)
+ wire T_185552 : UInt<5>
+ T_185552 := T_185551
+ when T_185545[9] : T_185552 := UInt<4>(9)
+ wire T_185553 : UInt<5>
+ T_185553 := T_185552
+ when T_185545[8] : T_185553 := UInt<4>(8)
+ wire T_185554 : UInt<5>
+ T_185554 := T_185553
+ when T_185545[7] : T_185554 := UInt<3>(7)
+ wire T_185555 : UInt<5>
+ T_185555 := T_185554
+ when T_185545[6] : T_185555 := UInt<3>(6)
+ wire T_185556 : UInt<5>
+ T_185556 := T_185555
+ when T_185545[5] : T_185556 := UInt<3>(5)
+ wire T_185557 : UInt<5>
+ T_185557 := T_185556
+ when T_185545[4] : T_185557 := UInt<3>(4)
+ wire T_185558 : UInt<5>
+ T_185558 := T_185557
+ when T_185545[3] : T_185558 := UInt<2>(3)
+ wire T_185559 : UInt<5>
+ T_185559 := T_185558
+ when T_185545[2] : T_185559 := UInt<2>(2)
+ wire T_185560 : UInt<5>
+ T_185560 := T_185559
+ when T_185545[1] : T_185560 := UInt<1>(1)
+ wire sdq_alloc_id : UInt<5>
+ sdq_alloc_id := T_185560
+ when T_185545[0] : sdq_alloc_id := UInt<1>(0)
+ node T_185561 = eq(sdq_val, UInt<1>(-1))
+ node sdq_rdy = eq(T_185561, UInt<1>(0))
+ node T_185562 = and(req.valid, req.ready)
+ node T_185563 = eq(req.bits.cmd, UInt<5>(1))
+ node T_185564 = eq(req.bits.cmd, UInt<5>(7))
+ node T_185565 = or(T_185563, T_185564)
+ node T_185566 = bit(req.bits.cmd, 3)
+ node T_185567 = eq(req.bits.cmd, UInt<5>(4))
+ node T_185568 = or(T_185566, T_185567)
+ node T_185569 = or(T_185565, T_185568)
+ node sdq_enq = and(T_185562, T_185569)
+ cmem sdq : UInt<64>[17]
+ when sdq_enq :
+ accessor T_185570 = sdq[sdq_alloc_id]
+ T_185570 := req.bits.data
+ wire idxMatch : UInt<1>[2]
+ wire tagList : UInt[2]
+ wire T_185571 : UInt<1>
+ T_185571 := UInt<1>(0)
+ when idxMatch[0] : T_185571 := tagList[0]
+ wire T_185572 : UInt<1>
+ T_185572 := UInt<1>(0)
+ when idxMatch[1] : T_185572 := tagList[1]
+ node T_185573 = or(T_185571, T_185572)
+ wire T_185574 : UInt
+ node T_185575 = bits(T_185573, -2, 0)
+ T_185574 := T_185575
+ node T_185576 = shr(req.bits.addr, 12)
+ node tag_match = eq(T_185574, T_185576)
+ wire wbTagList : UInt[2]
+ wire refillMux : {way_en : UInt<4>, addr : UInt<12>}[2]
+ inst meta_read_arb of Arbiter_135527
+ wire T_185577 : UInt<3>[3]
+ T_185577[0] := UInt<3>(0)
+ T_185577[1] := UInt<3>(1)
+ T_185577[2] := UInt<3>(2)
+ wire T_185578 : UInt<2>[2]
+ T_185578[0] := UInt<2>(0)
+ T_185578[1] := UInt<2>(1)
+ wire T_185579 : UInt<2>[3]
+ T_185579[0] := UInt<2>(1)
+ T_185579[1] := UInt<2>(2)
+ T_185579[2] := UInt<2>(3)
+ wire T_185580 : UInt<2>[2]
+ T_185580[0] := UInt<2>(2)
+ T_185580[1] := UInt<2>(3)
+ wire T_185581 : UInt<2>[1]
+ T_185581[0] := UInt<2>(3)
+ wire T_185582 : UInt<3>[3]
+ T_185582[0] := UInt<3>(0)
+ T_185582[1] := UInt<3>(1)
+ T_185582[2] := UInt<3>(2)
+ wire T_185583 : UInt<2>[2]
+ T_185583[0] := UInt<2>(0)
+ T_185583[1] := UInt<2>(1)
+ wire T_185584 : UInt<2>[3]
+ T_185584[0] := UInt<2>(1)
+ T_185584[1] := UInt<2>(2)
+ T_185584[2] := UInt<2>(3)
+ wire T_185585 : UInt<2>[2]
+ T_185585[0] := UInt<2>(2)
+ T_185585[1] := UInt<2>(3)
+ wire T_185586 : UInt<2>[1]
+ T_185586[0] := UInt<2>(3)
+ inst meta_write_arb of Arbiter_136117
+ wire T_185587 : UInt<3>[3]
+ T_185587[0] := UInt<3>(0)
+ T_185587[1] := UInt<3>(1)
+ T_185587[2] := UInt<3>(2)
+ wire T_185588 : UInt<2>[2]
+ T_185588[0] := UInt<2>(0)
+ T_185588[1] := UInt<2>(1)
+ wire T_185589 : UInt<2>[3]
+ T_185589[0] := UInt<2>(1)
+ T_185589[1] := UInt<2>(2)
+ T_185589[2] := UInt<2>(3)
+ wire T_185590 : UInt<2>[2]
+ T_185590[0] := UInt<2>(2)
+ T_185590[1] := UInt<2>(3)
+ wire T_185591 : UInt<2>[1]
+ T_185591[0] := UInt<2>(3)
+ inst mem_req_arb of LockingArbiter
+ wire T_185592 : UInt<3>[3]
+ T_185592[0] := UInt<3>(0)
+ T_185592[1] := UInt<3>(1)
+ T_185592[2] := UInt<3>(2)
+ wire T_185593 : UInt<2>[2]
+ T_185593[0] := UInt<2>(0)
+ T_185593[1] := UInt<2>(1)
+ wire T_185594 : UInt<2>[3]
+ T_185594[0] := UInt<2>(1)
+ T_185594[1] := UInt<2>(2)
+ T_185594[2] := UInt<2>(3)
+ wire T_185595 : UInt<2>[2]
+ T_185595[0] := UInt<2>(2)
+ T_185595[1] := UInt<2>(3)
+ wire T_185596 : UInt<2>[1]
+ T_185596[0] := UInt<2>(3)
+ inst wb_req_arb of Arbiter_137146
+ inst replay_arb of Arbiter_137247
+ inst alloc_arb of Arbiter_137299
+ fence_rdy := UInt<1>(1)
+ probe_rdy := UInt<1>(1)
+ inst T_185597 of MSHR
+ idxMatch[0] := T_185597.idx_match
+ tagList[0] := T_185597.tag
+ node T_185598 = dshr(T_185597.wb_req.bits.addr_block, UInt<3>(6))
+ wbTagList[0] := T_185598
+ alloc_arb.in[0].valid := T_185597.req_pri_rdy
+ T_185597.req_pri_val := alloc_arb.in[0].ready
+ node T_185599 = and(req.valid, sdq_rdy)
+ node T_185600 = and(T_185599, tag_match)
+ T_185597.req_sec_val := T_185600
+ T_185597.req_bits := req.bits
+ T_185597.req_bits.sdq_id := sdq_alloc_id
+ T_185597.meta_read <> meta_read_arb.in[0]
+ T_185597.meta_write <> meta_write_arb.in[0]
+ T_185597.mem_req <> mem_req_arb.in[0]
+ T_185597.wb_req <> wb_req_arb.in[0]
+ T_185597.replay <> replay_arb.in[0]
+ node T_185601 = eq(mem_grant.bits.client_xact_id, UInt<1>(0))
+ node T_185602 = and(mem_grant.valid, T_185601)
+ T_185597.mem_grant.valid := T_185602
+ T_185597.mem_grant.bits := mem_grant.bits
+ refillMux[0] := T_185597.refill
+ node T_185603 = or(UInt<1>(0), T_185597.req_pri_rdy)
+ node T_185604 = or(UInt<1>(0), T_185597.req_sec_rdy)
+ node T_185605 = or(UInt<1>(0), T_185597.idx_match)
+
+ node T_185606 = eq(T_185597.req_pri_rdy, UInt<1>(0))
+ when T_185606 : fence_rdy := UInt<1>(0)
+
+ node T_185607 = eq(T_185597.probe_rdy, UInt<1>(0))
+ when T_185607 : probe_rdy := UInt<1>(0)
+ inst T_185608 of MSHR_141857
+ idxMatch[1] := T_185608.idx_match
+ tagList[1] := T_185608.tag
+ node T_185609 = dshr(T_185608.wb_req.bits.addr_block, UInt<3>(6))
+ wbTagList[1] := T_185609
+ alloc_arb.in[1].valid := T_185608.req_pri_rdy
+ T_185608.req_pri_val := alloc_arb.in[1].ready
+ node T_185610 = and(req.valid, sdq_rdy)
+ node T_185611 = and(T_185610, tag_match)
+ T_185608.req_sec_val := T_185611
+ T_185608.req_bits := req.bits
+ T_185608.req_bits.sdq_id := sdq_alloc_id
+ T_185608.meta_read <> meta_read_arb.in[1]
+ T_185608.meta_write <> meta_write_arb.in[1]
+ T_185608.mem_req <> mem_req_arb.in[1]
+ T_185608.wb_req <> wb_req_arb.in[1]
+ T_185608.replay <> replay_arb.in[1]
+ node T_185612 = eq(mem_grant.bits.client_xact_id, UInt<1>(1))
+ node T_185613 = and(mem_grant.valid, T_185612)
+ T_185608.mem_grant.valid := T_185613
+ T_185608.mem_grant.bits := mem_grant.bits
+ refillMux[1] := T_185608.refill
+ node pri_rdy = or(T_185603, T_185608.req_pri_rdy)
+ node sec_rdy = or(T_185604, T_185608.req_sec_rdy)
+ node idx_match = or(T_185605, T_185608.idx_match)
+
+ node T_185614 = eq(T_185608.req_pri_rdy, UInt<1>(0))
+ when T_185614 : fence_rdy := UInt<1>(0)
+
+ node T_185615 = eq(T_185608.probe_rdy, UInt<1>(0))
+ when T_185615 : probe_rdy := UInt<1>(0)
+ node T_185616 = and(req.valid, sdq_rdy)
+ node T_185617 = eq(idx_match, UInt<1>(0))
+ node T_185618 = and(T_185616, T_185617)
+ alloc_arb.out.ready := T_185618
+ meta_read_arb.out <> meta_read
+ meta_write_arb.out <> meta_write
+ mem_req_arb.out <> mem_req
+ wb_req_arb.out <> wb_req
+ node T_185619 = and(tag_match, sec_rdy)
+ wire T_185620 : UInt<1>
+ T_185620 := pri_rdy
+ when idx_match : T_185620 := T_185619
+ node T_185621 = and(T_185620, sdq_rdy)
+ req.ready := T_185621
+ secondary_miss := idx_match
+ accessor T_185622 = refillMux[mem_grant.bits.client_xact_id]
+ refill := T_185622
+ node T_185623 = and(replay.ready, replay.valid)
+ node T_185624 = eq(replay.bits.cmd, UInt<5>(1))
+ node T_185625 = eq(replay.bits.cmd, UInt<5>(7))
+ node T_185626 = or(T_185624, T_185625)
+ node T_185627 = bit(replay.bits.cmd, 3)
+ node T_185628 = eq(replay.bits.cmd, UInt<5>(4))
+ node T_185629 = or(T_185627, T_185628)
+ node T_185630 = or(T_185626, T_185629)
+ node free_sdq = and(T_185623, T_185630)
+ reg T_185631 : UInt<5>
+ when free_sdq : T_185631 := replay_arb.out.bits.sdq_id
+ accessor T_185632 = sdq[T_185631]
+ replay.bits.data := T_185632
+ replay <> replay_arb.out
+
+ node T_185633 = or(replay.valid, sdq_enq)
+ when T_185633 :
+ node T_185634 = dshl(UInt<1>(1), replay_arb.out.bits.sdq_id)
+ node T_185635 = subw(UInt<17>(0), UInt<5>(17))
+ node T_185636 = and(T_185634, T_185635)
+ node T_185637 = not(T_185636)
+ node T_185638 = and(sdq_val, T_185637)
+ node T_185639 = bits(sdq_val, 16, 0)
+ node T_185640 = not(T_185639)
+ node T_185641 = bit(T_185640, 0)
+ node T_185642 = bit(T_185640, 1)
+ node T_185643 = bit(T_185640, 2)
+ node T_185644 = bit(T_185640, 3)
+ node T_185645 = bit(T_185640, 4)
+ node T_185646 = bit(T_185640, 5)
+ node T_185647 = bit(T_185640, 6)
+ node T_185648 = bit(T_185640, 7)
+ node T_185649 = bit(T_185640, 8)
+ node T_185650 = bit(T_185640, 9)
+ node T_185651 = bit(T_185640, 10)
+ node T_185652 = bit(T_185640, 11)
+ node T_185653 = bit(T_185640, 12)
+ node T_185654 = bit(T_185640, 13)
+ node T_185655 = bit(T_185640, 14)
+ node T_185656 = bit(T_185640, 15)
+ node T_185657 = bit(T_185640, 16)
+ wire T_185658 : UInt<17>[17]
+ T_185658[0] := UInt<17>(1)
+ T_185658[1] := UInt<17>(2)
+ T_185658[2] := UInt<17>(4)
+ T_185658[3] := UInt<17>(8)
+ T_185658[4] := UInt<17>(16)
+ T_185658[5] := UInt<17>(32)
+ T_185658[6] := UInt<17>(64)
+ T_185658[7] := UInt<17>(128)
+ T_185658[8] := UInt<17>(256)
+ T_185658[9] := UInt<17>(512)
+ T_185658[10] := UInt<17>(1024)
+ T_185658[11] := UInt<17>(2048)
+ T_185658[12] := UInt<17>(4096)
+ T_185658[13] := UInt<17>(8192)
+ T_185658[14] := UInt<17>(16384)
+ T_185658[15] := UInt<17>(32768)
+ T_185658[16] := UInt<17>(65536)
+ wire T_185659 : UInt<17>
+ T_185659 := UInt<17>(0)
+ when T_185657 : T_185659 := T_185658[16]
+ wire T_185660 : UInt<17>
+ T_185660 := T_185659
+ when T_185656 : T_185660 := T_185658[15]
+ wire T_185661 : UInt<17>
+ T_185661 := T_185660
+ when T_185655 : T_185661 := T_185658[14]
+ wire T_185662 : UInt<17>
+ T_185662 := T_185661
+ when T_185654 : T_185662 := T_185658[13]
+ wire T_185663 : UInt<17>
+ T_185663 := T_185662
+ when T_185653 : T_185663 := T_185658[12]
+ wire T_185664 : UInt<17>
+ T_185664 := T_185663
+ when T_185652 : T_185664 := T_185658[11]
+ wire T_185665 : UInt<17>
+ T_185665 := T_185664
+ when T_185651 : T_185665 := T_185658[10]
+ wire T_185666 : UInt<17>
+ T_185666 := T_185665
+ when T_185650 : T_185666 := T_185658[9]
+ wire T_185667 : UInt<17>
+ T_185667 := T_185666
+ when T_185649 : T_185667 := T_185658[8]
+ wire T_185668 : UInt<17>
+ T_185668 := T_185667
+ when T_185648 : T_185668 := T_185658[7]
+ wire T_185669 : UInt<17>
+ T_185669 := T_185668
+ when T_185647 : T_185669 := T_185658[6]
+ wire T_185670 : UInt<17>
+ T_185670 := T_185669
+ when T_185646 : T_185670 := T_185658[5]
+ wire T_185671 : UInt<17>
+ T_185671 := T_185670
+ when T_185645 : T_185671 := T_185658[4]
+ wire T_185672 : UInt<17>
+ T_185672 := T_185671
+ when T_185644 : T_185672 := T_185658[3]
+ wire T_185673 : UInt<17>
+ T_185673 := T_185672
+ when T_185643 : T_185673 := T_185658[2]
+ wire T_185674 : UInt<17>
+ T_185674 := T_185673
+ when T_185642 : T_185674 := T_185658[1]
+ wire T_185675 : UInt<17>
+ T_185675 := T_185674
+ when T_185641 : T_185675 := T_185658[0]
+ node T_185676 = subw(UInt<17>(0), UInt<5>(17))
+ node T_185677 = and(T_185675, T_185676)
+ node T_185678 = or(T_185638, T_185677)
+ sdq_val := T_185678
+ module RocketCAM_142285 :
+ input clear : UInt<1>
+ input clear_mask : UInt<8>
+ input tag : UInt<34>
+ output hit : UInt<1>
+ output hits : UInt<8>
+ output valid_bits : UInt<8>
+ input write : UInt<1>
+ input write_tag : UInt<34>
+ input write_addr : UInt<3>
+
+ cmem cam_tags : UInt<34>[8]
+ reg vb_array : UInt<8>
+ onreset vb_array := UInt<8>(0)
+ when write :
+ node T_185679 = dshl(UInt<1>(1), write_addr)
+ node T_185680 = or(vb_array, T_185679)
+ node T_185681 = not(vb_array)
+ node T_185682 = or(T_185681, T_185679)
+ node T_185683 = not(T_185682)
+ wire T_185684 : UInt<9>
+ T_185684 := T_185683
+ when UInt<1>(1) : T_185684 := T_185680
+ vb_array := T_185684
+ accessor T_185685 = cam_tags[write_addr]
+ T_185685 := write_tag
+ when clear :
+ node T_185686 = not(clear_mask)
+ node T_185687 = and(vb_array, T_185686)
+ vb_array := T_185687
+ node T_185688 = bit(vb_array, 0)
+ accessor T_185689 = cam_tags[UInt<1>(0)]
+ node T_185690 = eq(T_185689, tag)
+ node T_185691 = and(T_185688, T_185690)
+ node T_185692 = bit(vb_array, 1)
+ accessor T_185693 = cam_tags[UInt<1>(1)]
+ node T_185694 = eq(T_185693, tag)
+ node T_185695 = and(T_185692, T_185694)
+ node T_185696 = bit(vb_array, 2)
+ accessor T_185697 = cam_tags[UInt<2>(2)]
+ node T_185698 = eq(T_185697, tag)
+ node T_185699 = and(T_185696, T_185698)
+ node T_185700 = bit(vb_array, 3)
+ accessor T_185701 = cam_tags[UInt<2>(3)]
+ node T_185702 = eq(T_185701, tag)
+ node T_185703 = and(T_185700, T_185702)
+ node T_185704 = bit(vb_array, 4)
+ accessor T_185705 = cam_tags[UInt<3>(4)]
+ node T_185706 = eq(T_185705, tag)
+ node T_185707 = and(T_185704, T_185706)
+ node T_185708 = bit(vb_array, 5)
+ accessor T_185709 = cam_tags[UInt<3>(5)]
+ node T_185710 = eq(T_185709, tag)
+ node T_185711 = and(T_185708, T_185710)
+ node T_185712 = bit(vb_array, 6)
+ accessor T_185713 = cam_tags[UInt<3>(6)]
+ node T_185714 = eq(T_185713, tag)
+ node T_185715 = and(T_185712, T_185714)
+ node T_185716 = bit(vb_array, 7)
+ accessor T_185717 = cam_tags[UInt<3>(7)]
+ node T_185718 = eq(T_185717, tag)
+ node T_185719 = and(T_185716, T_185718)
+ valid_bits := vb_array
+ wire T_185720 : UInt<1>[8]
+ T_185720[0] := T_185691
+ T_185720[1] := T_185695
+ T_185720[2] := T_185699
+ T_185720[3] := T_185703
+ T_185720[4] := T_185707
+ T_185720[5] := T_185711
+ T_185720[6] := T_185715
+ T_185720[7] := T_185719
+ node T_185721 = cat(T_185720[7], T_185720[6])
+ node T_185722 = cat(T_185720[5], T_185720[4])
+ node T_185723 = cat(T_185721, T_185722)
+ node T_185724 = cat(T_185720[3], T_185720[2])
+ node T_185725 = cat(T_185720[1], T_185720[0])
+ node T_185726 = cat(T_185724, T_185725)
+ node T_185727 = cat(T_185723, T_185726)
+ hits := T_185727
+ node T_185728 = eq(hits, UInt<1>(0))
+ node T_185729 = eq(T_185728, UInt<1>(0))
+ hit := T_185729
+ module TLB_142822 :
+ input req : {flip ready : UInt<1>, valid : UInt<1>, bits : {asid : UInt<7>, vpn : UInt<28>, passthrough : UInt<1>, instruction : UInt<1>, store : UInt<1>}}
+ output resp : {miss : UInt<1>, ppn : UInt<20>, xcpt_ld : UInt<1>, xcpt_st : UInt<1>, xcpt_if : UInt<1>, hit_idx : UInt<8>}
+ output ptw : {req : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr : UInt<27>, prv : UInt<2>, store : UInt<1>, fetch : UInt<1>}}, flip resp : {valid : UInt<1>, bits : {error : UInt<1>, pte : {ppn : UInt<20>, reserved_for_software : UInt<3>, d : UInt<1>, r : UInt<1>, typ : UInt<4>, v : UInt<1>}}}, flip status : {sd : UInt<1>, zero2 : UInt<31>, sd_rv32 : UInt<1>, zero1 : UInt<9>, vm : UInt<5>, mprv : UInt<1>, xs : UInt<2>, fs : UInt<2>, prv3 : UInt<2>, ie3 : UInt<1>, prv2 : UInt<2>, ie2 : UInt<1>, prv1 : UInt<2>, ie1 : UInt<1>, prv : UInt<2>, ie : UInt<1>}, flip invalidate : UInt<1>}
+
+ reg state : UInt<2>
+ onreset state := UInt<2>(0)
+ reg r_refill_tag : UInt
+ reg r_refill_waddr : UInt
+ reg r_req : {asid : UInt<7>, vpn : UInt<28>, passthrough : UInt<1>, instruction : UInt<1>, store : UInt<1>}
+ inst tag_cam of RocketCAM_142285
+ cmem tag_ram : UInt<20>[8]
+ node lookup_tag = cat(req.bits.asid, req.bits.vpn)
+ tag_cam.tag := lookup_tag
+ node T_185730 = eq(state, UInt<2>(2))
+ node T_185731 = and(T_185730, ptw.resp.valid)
+ tag_cam.write := T_185731
+ tag_cam.write_tag := r_refill_tag
+ tag_cam.write_addr := r_refill_waddr
+ node T_185732 = bits(tag_cam.hits, 7, 4)
+ node T_185733 = bits(tag_cam.hits, 3, 0)
+ node T_185734 = eq(T_185732, UInt<1>(0))
+ node T_185735 = eq(T_185734, UInt<1>(0))
+ node T_185736 = or(T_185732, T_185733)
+ node T_185737 = bits(T_185736, 3, 2)
+ node T_185738 = bits(T_185736, 1, 0)
+ node T_185739 = eq(T_185737, UInt<1>(0))
+ node T_185740 = eq(T_185739, UInt<1>(0))
+ node T_185741 = or(T_185737, T_185738)
+ node T_185742 = bit(T_185741, 1)
+ node T_185743 = cat(T_185740, T_185742)
+ node tag_hit_addr = cat(T_185735, T_185743)
+ reg valid_array : UInt<1>[8]
+ reg ur_array : UInt<1>[8]
+ reg uw_array : UInt<1>[8]
+ reg ux_array : UInt<1>[8]
+ reg sr_array : UInt<1>[8]
+ reg sw_array : UInt<1>[8]
+ reg sx_array : UInt<1>[8]
+ reg dirty_array : UInt<1>[8]
+ when ptw.resp.valid :
+ accessor T_185744 = tag_ram[r_refill_waddr]
+ T_185744 := ptw.resp.bits.pte.ppn
+ accessor T_185745 = valid_array[r_refill_waddr]
+ node T_185746 = eq(ptw.resp.bits.error, UInt<1>(0))
+ T_185745 := T_185746
+ accessor T_185747 = ur_array[r_refill_waddr]
+ node T_185748 = geq(ptw.resp.bits.pte.typ, UInt<2>(2))
+ node T_185749 = and(ptw.resp.bits.pte.v, T_185748)
+ node T_185750 = lt(ptw.resp.bits.pte.typ, UInt<4>(8))
+ node T_185751 = and(T_185749, T_185750)
+ node T_185752 = eq(ptw.resp.bits.error, UInt<1>(0))
+ node T_185753 = and(T_185751, T_185752)
+ T_185747 := T_185753
+ accessor T_185754 = uw_array[r_refill_waddr]
+ node T_185755 = geq(ptw.resp.bits.pte.typ, UInt<2>(2))
+ node T_185756 = and(ptw.resp.bits.pte.v, T_185755)
+ node T_185757 = lt(ptw.resp.bits.pte.typ, UInt<4>(8))
+ node T_185758 = and(T_185756, T_185757)
+ node T_185759 = bit(ptw.resp.bits.pte.typ, 0)
+ node T_185760 = and(T_185758, T_185759)
+ node T_185761 = eq(ptw.resp.bits.error, UInt<1>(0))
+ node T_185762 = and(T_185760, T_185761)
+ T_185754 := T_185762
+ accessor T_185763 = ux_array[r_refill_waddr]
+ node T_185764 = geq(ptw.resp.bits.pte.typ, UInt<2>(2))
+ node T_185765 = and(ptw.resp.bits.pte.v, T_185764)
+ node T_185766 = lt(ptw.resp.bits.pte.typ, UInt<4>(8))
+ node T_185767 = and(T_185765, T_185766)
+ node T_185768 = bit(ptw.resp.bits.pte.typ, 1)
+ node T_185769 = and(T_185767, T_185768)
+ node T_185770 = eq(ptw.resp.bits.error, UInt<1>(0))
+ node T_185771 = and(T_185769, T_185770)
+ T_185763 := T_185771
+ accessor T_185772 = sr_array[r_refill_waddr]
+ node T_185773 = geq(ptw.resp.bits.pte.typ, UInt<2>(2))
+ node T_185774 = and(ptw.resp.bits.pte.v, T_185773)
+ node T_185775 = eq(ptw.resp.bits.error, UInt<1>(0))
+ node T_185776 = and(T_185774, T_185775)
+ T_185772 := T_185776
+ accessor T_185777 = sw_array[r_refill_waddr]
+ node T_185778 = geq(ptw.resp.bits.pte.typ, UInt<2>(2))
+ node T_185779 = and(ptw.resp.bits.pte.v, T_185778)
+ node T_185780 = bit(ptw.resp.bits.pte.typ, 0)
+ node T_185781 = and(T_185779, T_185780)
+ node T_185782 = eq(ptw.resp.bits.error, UInt<1>(0))
+ node T_185783 = and(T_185781, T_185782)
+ T_185777 := T_185783
+ accessor T_185784 = sx_array[r_refill_waddr]
+ node T_185785 = geq(ptw.resp.bits.pte.typ, UInt<3>(4))
+ node T_185786 = and(ptw.resp.bits.pte.v, T_185785)
+ node T_185787 = bit(ptw.resp.bits.pte.typ, 1)
+ node T_185788 = and(T_185786, T_185787)
+ node T_185789 = eq(ptw.resp.bits.error, UInt<1>(0))
+ node T_185790 = and(T_185788, T_185789)
+ T_185784 := T_185790
+ accessor T_185791 = dirty_array[r_refill_waddr]
+ T_185791 := ptw.resp.bits.pte.d
+ node T_185792 = eq(tag_cam.valid_bits, UInt<1>(-1))
+ node has_invalid_entry = eq(T_185792, UInt<1>(0))
+ node T_185793 = not(tag_cam.valid_bits)
+ node T_185794 = bit(T_185793, 0)
+ node T_185795 = bit(T_185793, 1)
+ node T_185796 = bit(T_185793, 2)
+ node T_185797 = bit(T_185793, 3)
+ node T_185798 = bit(T_185793, 4)
+ node T_185799 = bit(T_185793, 5)
+ node T_185800 = bit(T_185793, 6)
+ node T_185801 = bit(T_185793, 7)
+ wire T_185802 : UInt<1>[8]
+ T_185802[0] := T_185794
+ T_185802[1] := T_185795
+ T_185802[2] := T_185796
+ T_185802[3] := T_185797
+ T_185802[4] := T_185798
+ T_185802[5] := T_185799
+ T_185802[6] := T_185800
+ T_185802[7] := T_185801
+ wire T_185803 : UInt<3>
+ T_185803 := UInt<3>(7)
+ when T_185802[6] : T_185803 := UInt<3>(6)
+ wire T_185804 : UInt<3>
+ T_185804 := T_185803
+ when T_185802[5] : T_185804 := UInt<3>(5)
+ wire T_185805 : UInt<3>
+ T_185805 := T_185804
+ when T_185802[4] : T_185805 := UInt<3>(4)
+ wire T_185806 : UInt<3>
+ T_185806 := T_185805
+ when T_185802[3] : T_185806 := UInt<2>(3)
+ wire T_185807 : UInt<3>
+ T_185807 := T_185806
+ when T_185802[2] : T_185807 := UInt<2>(2)
+ wire T_185808 : UInt<3>
+ T_185808 := T_185807
+ when T_185802[1] : T_185808 := UInt<1>(1)
+ wire invalid_entry : UInt<3>
+ invalid_entry := T_185808
+ when T_185802[0] : invalid_entry := UInt<1>(0)
+ reg T_185809 : UInt<8>
+ node T_185810 = dshr(T_185809, UInt<1>(1))
+ node T_185811 = bit(T_185810, 0)
+ node T_185812 = cat(UInt<1>(1), T_185811)
+ node T_185813 = dshr(T_185809, T_185812)
+ node T_185814 = bit(T_185813, 0)
+ node T_185815 = cat(T_185812, T_185814)
+ node T_185816 = dshr(T_185809, T_185815)
+ node T_185817 = bit(T_185816, 0)
+ node T_185818 = cat(T_185815, T_185817)
+ node T_185819 = bits(T_185818, 2, 0)
+ wire repl_waddr : UInt<3>
+ repl_waddr := T_185819
+ when has_invalid_entry : repl_waddr := invalid_entry
+ node T_185820 = eq(req.bits.instruction, UInt<1>(0))
+ node T_185821 = and(ptw.status.mprv, T_185820)
+ wire priv : UInt<2>
+ priv := ptw.status.prv
+ when T_185821 : priv := ptw.status.prv1
+ node priv_s = eq(priv, UInt<1>(1))
+ node priv_uses_vm = leq(priv, UInt<1>(1))
+ node T_185822 = eq(r_req.store, UInt<1>(0))
+ node T_185823 = or(r_req.instruction, r_req.store)
+ node T_185824 = eq(T_185823, UInt<1>(0))
+ node T_185825 = cat(r_req.store, T_185824)
+ node req_xwr = cat(T_185822, T_185825)
+ node T_185826 = cat(sr_array[7], sr_array[6])
+ node T_185827 = cat(sr_array[5], sr_array[4])
+ node T_185828 = cat(T_185826, T_185827)
+ node T_185829 = cat(sr_array[3], sr_array[2])
+ node T_185830 = cat(sr_array[1], sr_array[0])
+ node T_185831 = cat(T_185829, T_185830)
+ node T_185832 = cat(T_185828, T_185831)
+ node T_185833 = cat(ur_array[7], ur_array[6])
+ node T_185834 = cat(ur_array[5], ur_array[4])
+ node T_185835 = cat(T_185833, T_185834)
+ node T_185836 = cat(ur_array[3], ur_array[2])
+ node T_185837 = cat(ur_array[1], ur_array[0])
+ node T_185838 = cat(T_185836, T_185837)
+ node T_185839 = cat(T_185835, T_185838)
+ wire r_array : UInt<8>
+ r_array := T_185839
+ when priv_s : r_array := T_185832
+ node T_185840 = cat(sw_array[7], sw_array[6])
+ node T_185841 = cat(sw_array[5], sw_array[4])
+ node T_185842 = cat(T_185840, T_185841)
+ node T_185843 = cat(sw_array[3], sw_array[2])
+ node T_185844 = cat(sw_array[1], sw_array[0])
+ node T_185845 = cat(T_185843, T_185844)
+ node T_185846 = cat(T_185842, T_185845)
+ node T_185847 = cat(uw_array[7], uw_array[6])
+ node T_185848 = cat(uw_array[5], uw_array[4])
+ node T_185849 = cat(T_185847, T_185848)
+ node T_185850 = cat(uw_array[3], uw_array[2])
+ node T_185851 = cat(uw_array[1], uw_array[0])
+ node T_185852 = cat(T_185850, T_185851)
+ node T_185853 = cat(T_185849, T_185852)
+ wire w_array : UInt<8>
+ w_array := T_185853
+ when priv_s : w_array := T_185846
+ node T_185854 = cat(sx_array[7], sx_array[6])
+ node T_185855 = cat(sx_array[5], sx_array[4])
+ node T_185856 = cat(T_185854, T_185855)
+ node T_185857 = cat(sx_array[3], sx_array[2])
+ node T_185858 = cat(sx_array[1], sx_array[0])
+ node T_185859 = cat(T_185857, T_185858)
+ node T_185860 = cat(T_185856, T_185859)
+ node T_185861 = cat(ux_array[7], ux_array[6])
+ node T_185862 = cat(ux_array[5], ux_array[4])
+ node T_185863 = cat(T_185861, T_185862)
+ node T_185864 = cat(ux_array[3], ux_array[2])
+ node T_185865 = cat(ux_array[1], ux_array[0])
+ node T_185866 = cat(T_185864, T_185865)
+ node T_185867 = cat(T_185863, T_185866)
+ wire x_array : UInt<8>
+ x_array := T_185867
+ when priv_s : x_array := T_185860
+ node T_185868 = bit(ptw.status.vm, 3)
+ node vm_enabled = and(T_185868, priv_uses_vm)
+ node T_185869 = bit(req.bits.vpn, 27)
+ node T_185870 = bit(req.bits.vpn, 26)
+ node bad_va = neq(T_185869, T_185870)
+ node T_185871 = cat(dirty_array[7], dirty_array[6])
+ node T_185872 = cat(dirty_array[5], dirty_array[4])
+ node T_185873 = cat(T_185871, T_185872)
+ node T_185874 = cat(dirty_array[3], dirty_array[2])
+ node T_185875 = cat(dirty_array[1], dirty_array[0])
+ node T_185876 = cat(T_185874, T_185875)
+ node T_185877 = cat(T_185873, T_185876)
+ wire T_185878 : UInt<1>
+ T_185878 := UInt<1>(0)
+ when req.bits.store : T_185878 := w_array
+ node T_185879 = not(T_185878)
+ node T_185880 = or(T_185877, T_185879)
+ node tag_hits = and(tag_cam.hits, T_185880)
+ node T_185881 = eq(tag_hits, UInt<1>(0))
+ node tag_hit = eq(T_185881, UInt<1>(0))
+ node tlb_hit = and(vm_enabled, tag_hit)
+ node T_185882 = eq(tag_hit, UInt<1>(0))
+ node T_185883 = and(vm_enabled, T_185882)
+ node T_185884 = eq(bad_va, UInt<1>(0))
+ node tlb_miss = and(T_185883, T_185884)
+
+ node T_185885 = and(req.valid, tlb_hit)
+ when T_185885 :
+ node T_185886 = bits(tag_cam.hits, 7, 4)
+ node T_185887 = bits(tag_cam.hits, 3, 0)
+ node T_185888 = eq(T_185886, UInt<1>(0))
+ node T_185889 = eq(T_185888, UInt<1>(0))
+ node T_185890 = or(T_185886, T_185887)
+ node T_185891 = bits(T_185890, 3, 2)
+ node T_185892 = bits(T_185890, 1, 0)
+ node T_185893 = eq(T_185891, UInt<1>(0))
+ node T_185894 = eq(T_185893, UInt<1>(0))
+ node T_185895 = or(T_185891, T_185892)
+ node T_185896 = bit(T_185895, 1)
+ node T_185897 = cat(T_185894, T_185896)
+ node T_185898 = cat(T_185889, T_185897)
+ node T_185899 = bit(T_185898, 2)
+ node T_185900 = dshl(UInt<8>(1), UInt<1>(1))
+ node T_185901 = bits(T_185900, 7, 0)
+ node T_185902 = not(T_185901)
+ node T_185903 = and(T_185809, T_185902)
+ wire T_185904 : UInt<8>
+ T_185904 := T_185901
+ when T_185899 : T_185904 := UInt<1>(0)
+ node T_185905 = or(T_185903, T_185904)
+ node T_185906 = cat(UInt<1>(1), T_185899)
+ node T_185907 = bit(T_185898, 1)
+ node T_185908 = dshl(UInt<8>(1), T_185906)
+ node T_185909 = bits(T_185908, 7, 0)
+ node T_185910 = not(T_185909)
+ node T_185911 = and(T_185905, T_185910)
+ wire T_185912 : UInt<8>
+ T_185912 := T_185909
+ when T_185907 : T_185912 := UInt<1>(0)
+ node T_185913 = or(T_185911, T_185912)
+ node T_185914 = cat(T_185906, T_185907)
+ node T_185915 = bit(T_185898, 0)
+ node T_185916 = dshl(UInt<8>(1), T_185914)
+ node T_185917 = bits(T_185916, 7, 0)
+ node T_185918 = not(T_185917)
+ node T_185919 = and(T_185913, T_185918)
+ wire T_185920 : UInt<8>
+ T_185920 := T_185917
+ when T_185915 : T_185920 := UInt<1>(0)
+ node T_185921 = or(T_185919, T_185920)
+ node T_185922 = cat(T_185914, T_185915)
+ T_185809 := T_185921
+ node T_185923 = eq(state, UInt<2>(0))
+ req.ready := T_185923
+ node T_185924 = and(r_array, tag_cam.hits)
+ node T_185925 = eq(T_185924, UInt<1>(0))
+ node T_185926 = eq(T_185925, UInt<1>(0))
+ node T_185927 = eq(T_185926, UInt<1>(0))
+ node T_185928 = and(tlb_hit, T_185927)
+ node T_185929 = or(bad_va, T_185928)
+ resp.xcpt_ld := T_185929
+ node T_185930 = and(w_array, tag_cam.hits)
+ node T_185931 = eq(T_185930, UInt<1>(0))
+ node T_185932 = eq(T_185931, UInt<1>(0))
+ node T_185933 = eq(T_185932, UInt<1>(0))
+ node T_185934 = and(tlb_hit, T_185933)
+ node T_185935 = or(bad_va, T_185934)
+ resp.xcpt_st := T_185935
+ node T_185936 = and(x_array, tag_cam.hits)
+ node T_185937 = eq(T_185936, UInt<1>(0))
+ node T_185938 = eq(T_185937, UInt<1>(0))
+ node T_185939 = eq(T_185938, UInt<1>(0))
+ node T_185940 = and(tlb_hit, T_185939)
+ node T_185941 = or(bad_va, T_185940)
+ resp.xcpt_if := T_185941
+ resp.miss := tlb_miss
+ node T_185942 = eq(req.bits.passthrough, UInt<1>(0))
+ node T_185943 = and(vm_enabled, T_185942)
+ node T_185944 = bit(tag_cam.hits, 0)
+ node T_185945 = bit(tag_cam.hits, 1)
+ node T_185946 = bit(tag_cam.hits, 2)
+ node T_185947 = bit(tag_cam.hits, 3)
+ node T_185948 = bit(tag_cam.hits, 4)
+ node T_185949 = bit(tag_cam.hits, 5)
+ node T_185950 = bit(tag_cam.hits, 6)
+ node T_185951 = bit(tag_cam.hits, 7)
+ accessor T_185952 = tag_ram[UInt<1>(0)]
+ accessor T_185953 = tag_ram[UInt<1>(1)]
+ accessor T_185954 = tag_ram[UInt<2>(2)]
+ accessor T_185955 = tag_ram[UInt<2>(3)]
+ accessor T_185956 = tag_ram[UInt<3>(4)]
+ accessor T_185957 = tag_ram[UInt<3>(5)]
+ accessor T_185958 = tag_ram[UInt<3>(6)]
+ accessor T_185959 = tag_ram[UInt<3>(7)]
+ wire T_185960 : UInt<1>
+ T_185960 := UInt<1>(0)
+ when T_185944 : T_185960 := T_185952
+ wire T_185961 : UInt<1>
+ T_185961 := UInt<1>(0)
+ when T_185945 : T_185961 := T_185953
+ wire T_185962 : UInt<1>
+ T_185962 := UInt<1>(0)
+ when T_185946 : T_185962 := T_185954
+ wire T_185963 : UInt<1>
+ T_185963 := UInt<1>(0)
+ when T_185947 : T_185963 := T_185955
+ wire T_185964 : UInt<1>
+ T_185964 := UInt<1>(0)
+ when T_185948 : T_185964 := T_185956
+ wire T_185965 : UInt<1>
+ T_185965 := UInt<1>(0)
+ when T_185949 : T_185965 := T_185957
+ wire T_185966 : UInt<1>
+ T_185966 := UInt<1>(0)
+ when T_185950 : T_185966 := T_185958
+ wire T_185967 : UInt<1>
+ T_185967 := UInt<1>(0)
+ when T_185951 : T_185967 := T_185959
+ node T_185968 = or(T_185960, T_185961)
+ node T_185969 = or(T_185968, T_185962)
+ node T_185970 = or(T_185969, T_185963)
+ node T_185971 = or(T_185970, T_185964)
+ node T_185972 = or(T_185971, T_185965)
+ node T_185973 = or(T_185972, T_185966)
+ node T_185974 = or(T_185973, T_185967)
+ wire T_185975 : UInt<20>
+ node T_185976 = bits(T_185974, 19, 0)
+ T_185975 := T_185976
+ node T_185977 = bits(req.bits.vpn, 19, 0)
+ wire T_185978 : UInt<20>
+ T_185978 := T_185977
+ when T_185943 : T_185978 := T_185975
+ resp.ppn := T_185978
+ resp.hit_idx := tag_cam.hits
+ node T_185979 = and(req.ready, req.valid)
+ node T_185980 = or(ptw.invalidate, T_185979)
+ tag_cam.clear := T_185980
+ node T_185981 = cat(valid_array[7], valid_array[6])
+ node T_185982 = cat(valid_array[5], valid_array[4])
+ node T_185983 = cat(T_185981, T_185982)
+ node T_185984 = cat(valid_array[3], valid_array[2])
+ node T_185985 = cat(valid_array[1], valid_array[0])
+ node T_185986 = cat(T_185984, T_185985)
+ node T_185987 = cat(T_185983, T_185986)
+ node T_185988 = not(T_185987)
+ node T_185989 = not(tag_hits)
+ node T_185990 = and(tag_cam.hits, T_185989)
+ node T_185991 = or(T_185988, T_185990)
+ tag_cam.clear_mask := T_185991
+ when ptw.invalidate : tag_cam.clear_mask := SInt<1>(-1)
+ node T_185992 = eq(state, UInt<2>(1))
+ ptw.req.valid := T_185992
+ ptw.req.bits.addr := r_refill_tag
+ ptw.req.bits.prv := ptw.status.prv
+ ptw.req.bits.store := r_req.store
+ ptw.req.bits.fetch := r_req.instruction
+
+
+ node T_185993 = and(req.ready, req.valid)
+ node T_185994 = and(T_185993, tlb_miss)
+ when T_185994 :
+ state := UInt<2>(1)
+ r_refill_tag := lookup_tag
+ r_refill_waddr := repl_waddr
+ r_req := req.bits
+
+ node T_185995 = eq(state, UInt<2>(1))
+ when T_185995 :
+ when ptw.invalidate : state := UInt<2>(0)
+ when ptw.req.ready :
+ state := UInt<2>(2)
+ when ptw.invalidate : state := UInt<2>(3)
+
+
+ node T_185996 = eq(state, UInt<2>(2))
+ node T_185997 = and(T_185996, ptw.invalidate)
+ when T_185997 : state := UInt<2>(3)
+ when ptw.resp.valid : state := UInt<2>(0)
+ module MetadataArray_144779 :
+ input read : {flip ready : UInt<1>, valid : UInt<1>, bits : {idx : UInt<6>}}
+ input write : {flip ready : UInt<1>, valid : UInt<1>, bits : {idx : UInt<6>, way_en : UInt<4>, data : {tag : UInt<20>, coh : {state : UInt<2>, makeRelease$default$2 : UInt<1>, makeRelease$default$3 : UInt<1>, makeVoluntaryRelease$default$4 : UInt<1>, makeVoluntaryRelease$default$5 : UInt<1>, makeVoluntaryWriteback$default$3 : UInt<1>, makeVoluntaryWriteback$default$4 : UInt<1>}}}}
+ output resp : {tag : UInt<20>, coh : {state : UInt<2>, makeRelease$default$2 : UInt<1>, makeRelease$default$3 : UInt<1>, makeVoluntaryRelease$default$4 : UInt<1>, makeVoluntaryRelease$default$5 : UInt<1>, makeVoluntaryWriteback$default$3 : UInt<1>, makeVoluntaryWriteback$default$4 : UInt<1>}}[4]
+
+ wire T_185998 : UInt<3>[3]
+ T_185998[0] := UInt<3>(0)
+ T_185998[1] := UInt<3>(1)
+ T_185998[2] := UInt<3>(2)
+ wire T_185999 : UInt<2>[2]
+ T_185999[0] := UInt<2>(0)
+ T_185999[1] := UInt<2>(1)
+ wire T_186000 : UInt<2>[3]
+ T_186000[0] := UInt<2>(1)
+ T_186000[1] := UInt<2>(2)
+ T_186000[2] := UInt<2>(3)
+ wire T_186001 : UInt<2>[2]
+ T_186001[0] := UInt<2>(2)
+ T_186001[1] := UInt<2>(3)
+ wire T_186002 : UInt<2>[1]
+ T_186002[0] := UInt<2>(3)
+ wire T_186003 : UInt<3>[3]
+ T_186003[0] := UInt<3>(0)
+ T_186003[1] := UInt<3>(1)
+ T_186003[2] := UInt<3>(2)
+ wire T_186004 : UInt<2>[2]
+ T_186004[0] := UInt<2>(0)
+ T_186004[1] := UInt<2>(1)
+ wire T_186005 : UInt<2>[3]
+ T_186005[0] := UInt<2>(1)
+ T_186005[1] := UInt<2>(2)
+ T_186005[2] := UInt<2>(3)
+ wire T_186006 : UInt<2>[2]
+ T_186006[0] := UInt<2>(2)
+ T_186006[1] := UInt<2>(3)
+ wire T_186007 : UInt<2>[1]
+ T_186007[0] := UInt<2>(3)
+ wire T_186008 : UInt<3>[3]
+ T_186008[0] := UInt<3>(0)
+ T_186008[1] := UInt<3>(1)
+ T_186008[2] := UInt<3>(2)
+ wire T_186009 : UInt<2>[2]
+ T_186009[0] := UInt<2>(0)
+ T_186009[1] := UInt<2>(1)
+ wire T_186010 : UInt<2>[3]
+ T_186010[0] := UInt<2>(1)
+ T_186010[1] := UInt<2>(2)
+ T_186010[2] := UInt<2>(3)
+ wire T_186011 : UInt<2>[2]
+ T_186011[0] := UInt<2>(2)
+ T_186011[1] := UInt<2>(3)
+ wire T_186012 : UInt<2>[1]
+ T_186012[0] := UInt<2>(3)
+ wire T_186013 : {state : UInt<2>, makeRelease$default$2 : UInt<1>, makeRelease$default$3 : UInt<1>, makeVoluntaryRelease$default$4 : UInt<1>, makeVoluntaryRelease$default$5 : UInt<1>, makeVoluntaryWriteback$default$3 : UInt<1>, makeVoluntaryWriteback$default$4 : UInt<1>}
+ T_186013.state := UInt<2>(0)
+ wire T_186014 : UInt<3>[3]
+ T_186014[0] := UInt<3>(0)
+ T_186014[1] := UInt<3>(1)
+ T_186014[2] := UInt<3>(2)
+ wire T_186015 : UInt<2>[2]
+ T_186015[0] := UInt<2>(0)
+ T_186015[1] := UInt<2>(1)
+ wire T_186016 : UInt<2>[3]
+ T_186016[0] := UInt<2>(1)
+ T_186016[1] := UInt<2>(2)
+ T_186016[2] := UInt<2>(3)
+ wire T_186017 : UInt<2>[2]
+ T_186017[0] := UInt<2>(2)
+ T_186017[1] := UInt<2>(3)
+ wire T_186018 : UInt<2>[1]
+ T_186018[0] := UInt<2>(3)
+ wire T_186019 : UInt<3>[3]
+ T_186019[0] := UInt<3>(0)
+ T_186019[1] := UInt<3>(1)
+ T_186019[2] := UInt<3>(2)
+ wire T_186020 : UInt<2>[2]
+ T_186020[0] := UInt<2>(0)
+ T_186020[1] := UInt<2>(1)
+ wire T_186021 : UInt<2>[3]
+ T_186021[0] := UInt<2>(1)
+ T_186021[1] := UInt<2>(2)
+ T_186021[2] := UInt<2>(3)
+ wire T_186022 : UInt<2>[2]
+ T_186022[0] := UInt<2>(2)
+ T_186022[1] := UInt<2>(3)
+ wire T_186023 : UInt<2>[1]
+ T_186023[0] := UInt<2>(3)
+ wire rstVal : {tag : UInt<20>, coh : {state : UInt<2>, makeRelease$default$2 : UInt<1>, makeRelease$default$3 : UInt<1>, makeVoluntaryRelease$default$4 : UInt<1>, makeVoluntaryRelease$default$5 : UInt<1>, makeVoluntaryWriteback$default$3 : UInt<1>, makeVoluntaryWriteback$default$4 : UInt<1>}}
+ rstVal.tag := UInt<1>(0)
+ rstVal.coh := T_186013
+ wire T_186024 : UInt<3>[3]
+ T_186024[0] := UInt<3>(0)
+ T_186024[1] := UInt<3>(1)
+ T_186024[2] := UInt<3>(2)
+ wire T_186025 : UInt<2>[2]
+ T_186025[0] := UInt<2>(0)
+ T_186025[1] := UInt<2>(1)
+ wire T_186026 : UInt<2>[3]
+ T_186026[0] := UInt<2>(1)
+ T_186026[1] := UInt<2>(2)
+ T_186026[2] := UInt<2>(3)
+ wire T_186027 : UInt<2>[2]
+ T_186027[0] := UInt<2>(2)
+ T_186027[1] := UInt<2>(3)
+ wire T_186028 : UInt<2>[1]
+ T_186028[0] := UInt<2>(3)
+ wire T_186029 : UInt<3>[3]
+ T_186029[0] := UInt<3>(0)
+ T_186029[1] := UInt<3>(1)
+ T_186029[2] := UInt<3>(2)
+ wire T_186030 : UInt<2>[2]
+ T_186030[0] := UInt<2>(0)
+ T_186030[1] := UInt<2>(1)
+ wire T_186031 : UInt<2>[3]
+ T_186031[0] := UInt<2>(1)
+ T_186031[1] := UInt<2>(2)
+ T_186031[2] := UInt<2>(3)
+ wire T_186032 : UInt<2>[2]
+ T_186032[0] := UInt<2>(2)
+ T_186032[1] := UInt<2>(3)
+ wire T_186033 : UInt<2>[1]
+ T_186033[0] := UInt<2>(3)
+ wire T_186034 : UInt<3>[3]
+ T_186034[0] := UInt<3>(0)
+ T_186034[1] := UInt<3>(1)
+ T_186034[2] := UInt<3>(2)
+ wire T_186035 : UInt<2>[2]
+ T_186035[0] := UInt<2>(0)
+ T_186035[1] := UInt<2>(1)
+ wire T_186036 : UInt<2>[3]
+ T_186036[0] := UInt<2>(1)
+ T_186036[1] := UInt<2>(2)
+ T_186036[2] := UInt<2>(3)
+ wire T_186037 : UInt<2>[2]
+ T_186037[0] := UInt<2>(2)
+ T_186037[1] := UInt<2>(3)
+ wire T_186038 : UInt<2>[1]
+ T_186038[0] := UInt<2>(3)
+ wire T_186039 : UInt<3>[3]
+ T_186039[0] := UInt<3>(0)
+ T_186039[1] := UInt<3>(1)
+ T_186039[2] := UInt<3>(2)
+ wire T_186040 : UInt<2>[2]
+ T_186040[0] := UInt<2>(0)
+ T_186040[1] := UInt<2>(1)
+ wire T_186041 : UInt<2>[3]
+ T_186041[0] := UInt<2>(1)
+ T_186041[1] := UInt<2>(2)
+ T_186041[2] := UInt<2>(3)
+ wire T_186042 : UInt<2>[2]
+ T_186042[0] := UInt<2>(2)
+ T_186042[1] := UInt<2>(3)
+ wire T_186043 : UInt<2>[1]
+ T_186043[0] := UInt<2>(3)
+ wire T_186044 : UInt<3>[3]
+ T_186044[0] := UInt<3>(0)
+ T_186044[1] := UInt<3>(1)
+ T_186044[2] := UInt<3>(2)
+ wire T_186045 : UInt<2>[2]
+ T_186045[0] := UInt<2>(0)
+ T_186045[1] := UInt<2>(1)
+ wire T_186046 : UInt<2>[3]
+ T_186046[0] := UInt<2>(1)
+ T_186046[1] := UInt<2>(2)
+ T_186046[2] := UInt<2>(3)
+ wire T_186047 : UInt<2>[2]
+ T_186047[0] := UInt<2>(2)
+ T_186047[1] := UInt<2>(3)
+ wire T_186048 : UInt<2>[1]
+ T_186048[0] := UInt<2>(3)
+ wire T_186049 : UInt<3>[3]
+ T_186049[0] := UInt<3>(0)
+ T_186049[1] := UInt<3>(1)
+ T_186049[2] := UInt<3>(2)
+ wire T_186050 : UInt<2>[2]
+ T_186050[0] := UInt<2>(0)
+ T_186050[1] := UInt<2>(1)
+ wire T_186051 : UInt<2>[3]
+ T_186051[0] := UInt<2>(1)
+ T_186051[1] := UInt<2>(2)
+ T_186051[2] := UInt<2>(3)
+ wire T_186052 : UInt<2>[2]
+ T_186052[0] := UInt<2>(2)
+ T_186052[1] := UInt<2>(3)
+ wire T_186053 : UInt<2>[1]
+ T_186053[0] := UInt<2>(3)
+ wire T_186054 : UInt<3>[3]
+ T_186054[0] := UInt<3>(0)
+ T_186054[1] := UInt<3>(1)
+ T_186054[2] := UInt<3>(2)
+ wire T_186055 : UInt<2>[2]
+ T_186055[0] := UInt<2>(0)
+ T_186055[1] := UInt<2>(1)
+ wire T_186056 : UInt<2>[3]
+ T_186056[0] := UInt<2>(1)
+ T_186056[1] := UInt<2>(2)
+ T_186056[2] := UInt<2>(3)
+ wire T_186057 : UInt<2>[2]
+ T_186057[0] := UInt<2>(2)
+ T_186057[1] := UInt<2>(3)
+ wire T_186058 : UInt<2>[1]
+ T_186058[0] := UInt<2>(3)
+ wire T_186059 : UInt<3>[3]
+ T_186059[0] := UInt<3>(0)
+ T_186059[1] := UInt<3>(1)
+ T_186059[2] := UInt<3>(2)
+ wire T_186060 : UInt<2>[2]
+ T_186060[0] := UInt<2>(0)
+ T_186060[1] := UInt<2>(1)
+ wire T_186061 : UInt<2>[3]
+ T_186061[0] := UInt<2>(1)
+ T_186061[1] := UInt<2>(2)
+ T_186061[2] := UInt<2>(3)
+ wire T_186062 : UInt<2>[2]
+ T_186062[0] := UInt<2>(2)
+ T_186062[1] := UInt<2>(3)
+ wire T_186063 : UInt<2>[1]
+ T_186063[0] := UInt<2>(3)
+ wire T_186064 : UInt<3>[3]
+ T_186064[0] := UInt<3>(0)
+ T_186064[1] := UInt<3>(1)
+ T_186064[2] := UInt<3>(2)
+ wire T_186065 : UInt<2>[2]
+ T_186065[0] := UInt<2>(0)
+ T_186065[1] := UInt<2>(1)
+ wire T_186066 : UInt<2>[3]
+ T_186066[0] := UInt<2>(1)
+ T_186066[1] := UInt<2>(2)
+ T_186066[2] := UInt<2>(3)
+ wire T_186067 : UInt<2>[2]
+ T_186067[0] := UInt<2>(2)
+ T_186067[1] := UInt<2>(3)
+ wire T_186068 : UInt<2>[1]
+ T_186068[0] := UInt<2>(3)
+ wire T_186069 : UInt<3>[3]
+ T_186069[0] := UInt<3>(0)
+ T_186069[1] := UInt<3>(1)
+ T_186069[2] := UInt<3>(2)
+ wire T_186070 : UInt<2>[2]
+ T_186070[0] := UInt<2>(0)
+ T_186070[1] := UInt<2>(1)
+ wire T_186071 : UInt<2>[3]
+ T_186071[0] := UInt<2>(1)
+ T_186071[1] := UInt<2>(2)
+ T_186071[2] := UInt<2>(3)
+ wire T_186072 : UInt<2>[2]
+ T_186072[0] := UInt<2>(2)
+ T_186072[1] := UInt<2>(3)
+ wire T_186073 : UInt<2>[1]
+ T_186073[0] := UInt<2>(3)
+ wire resp : {tag : UInt<20>, coh : {state : UInt<2>, makeRelease$default$2 : UInt<1>, makeRelease$default$3 : UInt<1>, makeVoluntaryRelease$default$4 : UInt<1>, makeVoluntaryRelease$default$5 : UInt<1>, makeVoluntaryWriteback$default$3 : UInt<1>, makeVoluntaryWriteback$default$4 : UInt<1>}}[4]
+ resp[0] := T_186074
+ resp[1] := T_186075
+ resp[2] := T_186076
+ resp[3] := T_186077
+ reg rst_cnt : UInt<7>
+ onreset rst_cnt := UInt<7>(0)
+ node rst = lt(rst_cnt, UInt<7>(64))
+ wire waddr : UInt<6>
+ waddr := write.bits.idx
+ when rst : waddr := rst_cnt
+ wire T_186078 : UInt<3>[3]
+ T_186078[0] := UInt<3>(0)
+ T_186078[1] := UInt<3>(1)
+ T_186078[2] := UInt<3>(2)
+ wire T_186079 : UInt<2>[2]
+ T_186079[0] := UInt<2>(0)
+ T_186079[1] := UInt<2>(1)
+ wire T_186080 : UInt<2>[3]
+ T_186080[0] := UInt<2>(1)
+ T_186080[1] := UInt<2>(2)
+ T_186080[2] := UInt<2>(3)
+ wire T_186081 : UInt<2>[2]
+ T_186081[0] := UInt<2>(2)
+ T_186081[1] := UInt<2>(3)
+ wire T_186082 : UInt<2>[1]
+ T_186082[0] := UInt<2>(3)
+ wire T_186083 : {tag : UInt<20>, coh : {state : UInt<2>, makeRelease$default$2 : UInt<1>, makeRelease$default$3 : UInt<1>, makeVoluntaryRelease$default$4 : UInt<1>, makeVoluntaryRelease$default$5 : UInt<1>, makeVoluntaryWriteback$default$3 : UInt<1>, makeVoluntaryWriteback$default$4 : UInt<1>}}
+ T_186083 := write.bits.data
+ when rst : T_186083 := rstVal
+ node T_186084 = cat(T_186083.coh.state, UInt<1>(0))
+ node T_186085 = cat(T_186083.tag, T_186084)
+ node T_186086 = cat(T_186085, UInt<4>(0))
+ node T_186087 = cat(UInt<1>(0), T_186083.coh.state)
+ node T_186088 = cat(T_186087, UInt<2>(0))
+ node T_186089 = cat(T_186088, UInt<4>(0))
+ node wdata = cat(T_186086, T_186089)
+ node T_186090 = asSInt(write.bits.way_en)
+ wire T_186091 : SInt<4>
+ T_186091 := T_186090
+ when rst : T_186091 := SInt<1>(-1)
+ node wmask = asUInt(T_186091)
+ when rst :
+ node T_186092 = addw(rst_cnt, UInt<1>(1))
+ rst_cnt := T_186092
+ cmem T_186093 : UInt<144>[64]
+
+ node T_186094 = or(rst, write.valid)
+ when T_186094 :
+ node T_186095 = cat(wdata, wdata)
+ node T_186096 = cat(T_186095, T_186095)
+ node T_186097 = bit(wmask, 0)
+ node T_186098 = bit(wmask, 1)
+ node T_186099 = bit(wmask, 2)
+ node T_186100 = bit(wmask, 3)
+ wire T_186101 : UInt<1>[4]
+ T_186101[0] := T_186097
+ T_186101[1] := T_186098
+ T_186101[2] := T_186099
+ T_186101[3] := T_186100
+ node T_186102 = subw(UInt<36>(0), UInt<6>(36))
+ node T_186103 = subw(UInt<36>(0), UInt<6>(36))
+ node T_186104 = subw(UInt<36>(0), UInt<6>(36))
+ node T_186105 = subw(UInt<36>(0), UInt<6>(36))
+ wire T_186106 : UInt<36>[4]
+ T_186106[0] := T_186102
+ T_186106[1] := T_186103
+ T_186106[2] := T_186104
+ T_186106[3] := T_186105
+ node T_186107 = cat(T_186106[3], T_186106[2])
+ node T_186108 = cat(T_186106[1], T_186106[0])
+ node T_186109 = cat(T_186107, T_186108)
+ accessor T_186110 = T_186093[waddr]
+ node T_186111 = not(T_186109)
+ node T_186112 = and(T_186110, T_186111)
+ node T_186113 = and(T_186096, T_186109)
+ node T_186114 = or(T_186112, T_186113)
+ wire T_186115 : UInt<144>
+ node T_186116 = bits(T_186114, 143, 0)
+ T_186115 := T_186116
+ accessor T_186117 = T_186093[waddr]
+ T_186117 := T_186115
+ reg T_186118 : UInt<6>
+ when read.valid : T_186118 := read.bits.idx
+ accessor tags = T_186093[T_186118]
+ wire T_186119 : UInt<3>[3]
+ T_186119[0] := UInt<3>(0)
+ T_186119[1] := UInt<3>(1)
+ T_186119[2] := UInt<3>(2)
+ wire T_186120 : UInt<2>[2]
+ T_186120[0] := UInt<2>(0)
+ T_186120[1] := UInt<2>(1)
+ wire T_186121 : UInt<2>[3]
+ T_186121[0] := UInt<2>(1)
+ T_186121[1] := UInt<2>(2)
+ T_186121[2] := UInt<2>(3)
+ wire T_186122 : UInt<2>[2]
+ T_186122[0] := UInt<2>(2)
+ T_186122[1] := UInt<2>(3)
+ wire T_186123 : UInt<2>[1]
+ T_186123[0] := UInt<2>(3)
+ wire T_186124 : UInt<3>[3]
+ T_186124[0] := UInt<3>(0)
+ T_186124[1] := UInt<3>(1)
+ T_186124[2] := UInt<3>(2)
+ wire T_186125 : UInt<2>[2]
+ T_186125[0] := UInt<2>(0)
+ T_186125[1] := UInt<2>(1)
+ wire T_186126 : UInt<2>[3]
+ T_186126[0] := UInt<2>(1)
+ T_186126[1] := UInt<2>(2)
+ T_186126[2] := UInt<2>(3)
+ wire T_186127 : UInt<2>[2]
+ T_186127[0] := UInt<2>(2)
+ T_186127[1] := UInt<2>(3)
+ wire T_186128 : UInt<2>[1]
+ T_186128[0] := UInt<2>(3)
+ wire T_186129 : UInt<3>[3]
+ T_186129[0] := UInt<3>(0)
+ T_186129[1] := UInt<3>(1)
+ T_186129[2] := UInt<3>(2)
+ wire T_186130 : UInt<2>[2]
+ T_186130[0] := UInt<2>(0)
+ T_186130[1] := UInt<2>(1)
+ wire T_186131 : UInt<2>[3]
+ T_186131[0] := UInt<2>(1)
+ T_186131[1] := UInt<2>(2)
+ T_186131[2] := UInt<2>(3)
+ wire T_186132 : UInt<2>[2]
+ T_186132[0] := UInt<2>(2)
+ T_186132[1] := UInt<2>(3)
+ wire T_186133 : UInt<2>[1]
+ T_186133[0] := UInt<2>(3)
+ wire T_186134 : UInt<3>[3]
+ T_186134[0] := UInt<3>(0)
+ T_186134[1] := UInt<3>(1)
+ T_186134[2] := UInt<3>(2)
+ wire T_186135 : UInt<2>[2]
+ T_186135[0] := UInt<2>(0)
+ T_186135[1] := UInt<2>(1)
+ wire T_186136 : UInt<2>[3]
+ T_186136[0] := UInt<2>(1)
+ T_186136[1] := UInt<2>(2)
+ T_186136[2] := UInt<2>(3)
+ wire T_186137 : UInt<2>[2]
+ T_186137[0] := UInt<2>(2)
+ T_186137[1] := UInt<2>(3)
+ wire T_186138 : UInt<2>[1]
+ T_186138[0] := UInt<2>(3)
+ wire T_186139 : UInt<3>[3]
+ T_186139[0] := UInt<3>(0)
+ T_186139[1] := UInt<3>(1)
+ T_186139[2] := UInt<3>(2)
+ wire T_186140 : UInt<2>[2]
+ T_186140[0] := UInt<2>(0)
+ T_186140[1] := UInt<2>(1)
+ wire T_186141 : UInt<2>[3]
+ T_186141[0] := UInt<2>(1)
+ T_186141[1] := UInt<2>(2)
+ T_186141[2] := UInt<2>(3)
+ wire T_186142 : UInt<2>[2]
+ T_186142[0] := UInt<2>(2)
+ T_186142[1] := UInt<2>(3)
+ wire T_186143 : UInt<2>[1]
+ T_186143[0] := UInt<2>(3)
+ wire T_186144 : UInt<3>[3]
+ T_186144[0] := UInt<3>(0)
+ T_186144[1] := UInt<3>(1)
+ T_186144[2] := UInt<3>(2)
+ wire T_186145 : UInt<2>[2]
+ T_186145[0] := UInt<2>(0)
+ T_186145[1] := UInt<2>(1)
+ wire T_186146 : UInt<2>[3]
+ T_186146[0] := UInt<2>(1)
+ T_186146[1] := UInt<2>(2)
+ T_186146[2] := UInt<2>(3)
+ wire T_186147 : UInt<2>[2]
+ T_186147[0] := UInt<2>(2)
+ T_186147[1] := UInt<2>(3)
+ wire T_186148 : UInt<2>[1]
+ T_186148[0] := UInt<2>(3)
+ wire T_186149 : UInt<3>[3]
+ T_186149[0] := UInt<3>(0)
+ T_186149[1] := UInt<3>(1)
+ T_186149[2] := UInt<3>(2)
+ wire T_186150 : UInt<2>[2]
+ T_186150[0] := UInt<2>(0)
+ T_186150[1] := UInt<2>(1)
+ wire T_186151 : UInt<2>[3]
+ T_186151[0] := UInt<2>(1)
+ T_186151[1] := UInt<2>(2)
+ T_186151[2] := UInt<2>(3)
+ wire T_186152 : UInt<2>[2]
+ T_186152[0] := UInt<2>(2)
+ T_186152[1] := UInt<2>(3)
+ wire T_186153 : UInt<2>[1]
+ T_186153[0] := UInt<2>(3)
+ wire T_186154 : UInt<3>[3]
+ T_186154[0] := UInt<3>(0)
+ T_186154[1] := UInt<3>(1)
+ T_186154[2] := UInt<3>(2)
+ wire T_186155 : UInt<2>[2]
+ T_186155[0] := UInt<2>(0)
+ T_186155[1] := UInt<2>(1)
+ wire T_186156 : UInt<2>[3]
+ T_186156[0] := UInt<2>(1)
+ T_186156[1] := UInt<2>(2)
+ T_186156[2] := UInt<2>(3)
+ wire T_186157 : UInt<2>[2]
+ T_186157[0] := UInt<2>(2)
+ T_186157[1] := UInt<2>(3)
+ wire T_186158 : UInt<2>[1]
+ T_186158[0] := UInt<2>(3)
+ wire T_186159 : UInt<3>[3]
+ T_186159[0] := UInt<3>(0)
+ T_186159[1] := UInt<3>(1)
+ T_186159[2] := UInt<3>(2)
+ wire T_186160 : UInt<2>[2]
+ T_186160[0] := UInt<2>(0)
+ T_186160[1] := UInt<2>(1)
+ wire T_186161 : UInt<2>[3]
+ T_186161[0] := UInt<2>(1)
+ T_186161[1] := UInt<2>(2)
+ T_186161[2] := UInt<2>(3)
+ wire T_186162 : UInt<2>[2]
+ T_186162[0] := UInt<2>(2)
+ T_186162[1] := UInt<2>(3)
+ wire T_186163 : UInt<2>[1]
+ T_186163[0] := UInt<2>(3)
+ wire T_186164 : UInt<3>[3]
+ T_186164[0] := UInt<3>(0)
+ T_186164[1] := UInt<3>(1)
+ T_186164[2] := UInt<3>(2)
+ wire T_186165 : UInt<2>[2]
+ T_186165[0] := UInt<2>(0)
+ T_186165[1] := UInt<2>(1)
+ wire T_186166 : UInt<2>[3]
+ T_186166[0] := UInt<2>(1)
+ T_186166[1] := UInt<2>(2)
+ T_186166[2] := UInt<2>(3)
+ wire T_186167 : UInt<2>[2]
+ T_186167[0] := UInt<2>(2)
+ T_186167[1] := UInt<2>(3)
+ wire T_186168 : UInt<2>[1]
+ T_186168[0] := UInt<2>(3)
+ wire T_186169 : {tag : UInt<20>, coh : {state : UInt<2>, makeRelease$default$2 : UInt<1>, makeRelease$default$3 : UInt<1>, makeVoluntaryRelease$default$4 : UInt<1>, makeVoluntaryRelease$default$5 : UInt<1>, makeVoluntaryWriteback$default$3 : UInt<1>, makeVoluntaryWriteback$default$4 : UInt<1>}}[4]
+ node T_186170 = bits(tags, 0, 0)
+ T_186169[0].coh.makeVoluntaryWriteback$default$4 := T_186170
+ node T_186171 = bits(tags, 1, 1)
+ T_186169[0].coh.makeVoluntaryWriteback$default$3 := T_186171
+ node T_186172 = bits(tags, 2, 2)
+ T_186169[0].coh.makeVoluntaryRelease$default$5 := T_186172
+ node T_186173 = bits(tags, 3, 3)
+ T_186169[0].coh.makeVoluntaryRelease$default$4 := T_186173
+ node T_186174 = bits(tags, 4, 4)
+ T_186169[0].coh.makeRelease$default$3 := T_186174
+ node T_186175 = bits(tags, 5, 5)
+ T_186169[0].coh.makeRelease$default$2 := T_186175
+ node T_186176 = bits(tags, 7, 6)
+ T_186169[0].coh.state := T_186176
+ node T_186177 = bits(tags, 8, 8)
+ T_186169[0].coh.makeVoluntaryWriteback$default$4 := T_186177
+ node T_186178 = bits(tags, 9, 9)
+ T_186169[0].coh.makeVoluntaryWriteback$default$3 := T_186178
+ node T_186179 = bits(tags, 10, 10)
+ T_186169[0].coh.makeVoluntaryRelease$default$5 := T_186179
+ node T_186180 = bits(tags, 11, 11)
+ T_186169[0].coh.makeVoluntaryRelease$default$4 := T_186180
+ node T_186181 = bits(tags, 12, 12)
+ T_186169[0].coh.makeRelease$default$3 := T_186181
+ node T_186182 = bits(tags, 13, 13)
+ T_186169[0].coh.makeRelease$default$2 := T_186182
+ node T_186183 = bits(tags, 15, 14)
+ T_186169[0].coh.state := T_186183
+ node T_186184 = bits(tags, 35, 16)
+ T_186169[0].tag := T_186184
+ node T_186185 = bits(tags, 36, 36)
+ T_186169[1].coh.makeVoluntaryWriteback$default$4 := T_186185
+ node T_186186 = bits(tags, 37, 37)
+ T_186169[1].coh.makeVoluntaryWriteback$default$3 := T_186186
+ node T_186187 = bits(tags, 38, 38)
+ T_186169[1].coh.makeVoluntaryRelease$default$5 := T_186187
+ node T_186188 = bits(tags, 39, 39)
+ T_186169[1].coh.makeVoluntaryRelease$default$4 := T_186188
+ node T_186189 = bits(tags, 40, 40)
+ T_186169[1].coh.makeRelease$default$3 := T_186189
+ node T_186190 = bits(tags, 41, 41)
+ T_186169[1].coh.makeRelease$default$2 := T_186190
+ node T_186191 = bits(tags, 43, 42)
+ T_186169[1].coh.state := T_186191
+ node T_186192 = bits(tags, 44, 44)
+ T_186169[1].coh.makeVoluntaryWriteback$default$4 := T_186192
+ node T_186193 = bits(tags, 45, 45)
+ T_186169[1].coh.makeVoluntaryWriteback$default$3 := T_186193
+ node T_186194 = bits(tags, 46, 46)
+ T_186169[1].coh.makeVoluntaryRelease$default$5 := T_186194
+ node T_186195 = bits(tags, 47, 47)
+ T_186169[1].coh.makeVoluntaryRelease$default$4 := T_186195
+ node T_186196 = bits(tags, 48, 48)
+ T_186169[1].coh.makeRelease$default$3 := T_186196
+ node T_186197 = bits(tags, 49, 49)
+ T_186169[1].coh.makeRelease$default$2 := T_186197
+ node T_186198 = bits(tags, 51, 50)
+ T_186169[1].coh.state := T_186198
+ node T_186199 = bits(tags, 71, 52)
+ T_186169[1].tag := T_186199
+ node T_186200 = bits(tags, 72, 72)
+ T_186169[2].coh.makeVoluntaryWriteback$default$4 := T_186200
+ node T_186201 = bits(tags, 73, 73)
+ T_186169[2].coh.makeVoluntaryWriteback$default$3 := T_186201
+ node T_186202 = bits(tags, 74, 74)
+ T_186169[2].coh.makeVoluntaryRelease$default$5 := T_186202
+ node T_186203 = bits(tags, 75, 75)
+ T_186169[2].coh.makeVoluntaryRelease$default$4 := T_186203
+ node T_186204 = bits(tags, 76, 76)
+ T_186169[2].coh.makeRelease$default$3 := T_186204
+ node T_186205 = bits(tags, 77, 77)
+ T_186169[2].coh.makeRelease$default$2 := T_186205
+ node T_186206 = bits(tags, 79, 78)
+ T_186169[2].coh.state := T_186206
+ node T_186207 = bits(tags, 80, 80)
+ T_186169[2].coh.makeVoluntaryWriteback$default$4 := T_186207
+ node T_186208 = bits(tags, 81, 81)
+ T_186169[2].coh.makeVoluntaryWriteback$default$3 := T_186208
+ node T_186209 = bits(tags, 82, 82)
+ T_186169[2].coh.makeVoluntaryRelease$default$5 := T_186209
+ node T_186210 = bits(tags, 83, 83)
+ T_186169[2].coh.makeVoluntaryRelease$default$4 := T_186210
+ node T_186211 = bits(tags, 84, 84)
+ T_186169[2].coh.makeRelease$default$3 := T_186211
+ node T_186212 = bits(tags, 85, 85)
+ T_186169[2].coh.makeRelease$default$2 := T_186212
+ node T_186213 = bits(tags, 87, 86)
+ T_186169[2].coh.state := T_186213
+ node T_186214 = bits(tags, 107, 88)
+ T_186169[2].tag := T_186214
+ node T_186215 = bits(tags, 108, 108)
+ T_186169[3].coh.makeVoluntaryWriteback$default$4 := T_186215
+ node T_186216 = bits(tags, 109, 109)
+ T_186169[3].coh.makeVoluntaryWriteback$default$3 := T_186216
+ node T_186217 = bits(tags, 110, 110)
+ T_186169[3].coh.makeVoluntaryRelease$default$5 := T_186217
+ node T_186218 = bits(tags, 111, 111)
+ T_186169[3].coh.makeVoluntaryRelease$default$4 := T_186218
+ node T_186219 = bits(tags, 112, 112)
+ T_186169[3].coh.makeRelease$default$3 := T_186219
+ node T_186220 = bits(tags, 113, 113)
+ T_186169[3].coh.makeRelease$default$2 := T_186220
+ node T_186221 = bits(tags, 115, 114)
+ T_186169[3].coh.state := T_186221
+ node T_186222 = bits(tags, 116, 116)
+ T_186169[3].coh.makeVoluntaryWriteback$default$4 := T_186222
+ node T_186223 = bits(tags, 117, 117)
+ T_186169[3].coh.makeVoluntaryWriteback$default$3 := T_186223
+ node T_186224 = bits(tags, 118, 118)
+ T_186169[3].coh.makeVoluntaryRelease$default$5 := T_186224
+ node T_186225 = bits(tags, 119, 119)
+ T_186169[3].coh.makeVoluntaryRelease$default$4 := T_186225
+ node T_186226 = bits(tags, 120, 120)
+ T_186169[3].coh.makeRelease$default$3 := T_186226
+ node T_186227 = bits(tags, 121, 121)
+ T_186169[3].coh.makeRelease$default$2 := T_186227
+ node T_186228 = bits(tags, 123, 122)
+ T_186169[3].coh.state := T_186228
+ node T_186229 = bits(tags, 143, 124)
+ T_186169[3].tag := T_186229
+ resp[0] := T_186169[0]
+ resp[1] := T_186169[1]
+ resp[2] := T_186169[2]
+ resp[3] := T_186169[3]
+ node T_186230 = eq(rst, UInt<1>(0))
+ node T_186231 = eq(write.valid, UInt<1>(0))
+ node T_186232 = and(T_186230, T_186231)
+ read.ready := T_186232
+ node T_186233 = eq(rst, UInt<1>(0))
+ write.ready := T_186233
+ module Arbiter_144889 :
+ input in : {flip ready : UInt<1>, valid : UInt<1>, bits : {idx : UInt<6>}}[5]
+ output out : {flip ready : UInt<1>, valid : UInt<1>, bits : {idx : UInt<6>}}
+ output chosen : UInt<3>
+
+ wire T_186234 : UInt<3>
+ node T_186235 = or(UInt<1>(0), in[0].valid)
+ node T_186236 = eq(T_186235, UInt<1>(0))
+ node T_186237 = or(UInt<1>(0), in[0].valid)
+ node T_186238 = or(T_186237, in[1].valid)
+ node T_186239 = eq(T_186238, UInt<1>(0))
+ node T_186240 = or(UInt<1>(0), in[0].valid)
+ node T_186241 = or(T_186240, in[1].valid)
+ node T_186242 = or(T_186241, in[2].valid)
+ node T_186243 = eq(T_186242, UInt<1>(0))
+ node T_186244 = or(UInt<1>(0), in[0].valid)
+ node T_186245 = or(T_186244, in[1].valid)
+ node T_186246 = or(T_186245, in[2].valid)
+ node T_186247 = or(T_186246, in[3].valid)
+ node T_186248 = eq(T_186247, UInt<1>(0))
+ node T_186249 = eq(UInt<3>(4), UInt<1>(0))
+ wire T_186250 : UInt<1>
+ T_186250 := UInt<1>(1)
+ when UInt<1>(0) : T_186250 := T_186249
+ node T_186251 = and(T_186250, out.ready)
+ in[0].ready := T_186251
+ node T_186252 = eq(UInt<3>(4), UInt<1>(1))
+ wire T_186253 : UInt<1>
+ T_186253 := T_186236
+ when UInt<1>(0) : T_186253 := T_186252
+ node T_186254 = and(T_186253, out.ready)
+ in[1].ready := T_186254
+ node T_186255 = eq(UInt<3>(4), UInt<2>(2))
+ wire T_186256 : UInt<1>
+ T_186256 := T_186239
+ when UInt<1>(0) : T_186256 := T_186255
+ node T_186257 = and(T_186256, out.ready)
+ in[2].ready := T_186257
+ node T_186258 = eq(UInt<3>(4), UInt<2>(3))
+ wire T_186259 : UInt<1>
+ T_186259 := T_186243
+ when UInt<1>(0) : T_186259 := T_186258
+ node T_186260 = and(T_186259, out.ready)
+ in[3].ready := T_186260
+ node T_186261 = eq(UInt<3>(4), UInt<3>(4))
+ wire T_186262 : UInt<1>
+ T_186262 := T_186248
+ when UInt<1>(0) : T_186262 := T_186261
+ node T_186263 = and(T_186262, out.ready)
+ in[4].ready := T_186263
+ accessor T_186264 = in[T_186234]
+ out.valid := T_186264.valid
+ accessor T_186265 = in[T_186234]
+ out.bits := T_186265.bits
+ chosen := T_186234
+ wire T_186266 : UInt<3>
+ T_186266 := UInt<3>(4)
+ when in[3].valid : T_186266 := UInt<2>(3)
+ wire T_186267 : UInt<3>
+ T_186267 := T_186266
+ when in[2].valid : T_186267 := UInt<2>(2)
+ wire T_186268 : UInt<3>
+ T_186268 := T_186267
+ when in[1].valid : T_186268 := UInt<1>(1)
+ wire T_186269 : UInt<3>
+ T_186269 := T_186268
+ when in[0].valid : T_186269 := UInt<1>(0)
+ wire T_186270 : UInt<3>
+ T_186270 := T_186269
+ when UInt<1>(0) : T_186270 := UInt<3>(4)
+ T_186234 := T_186270
+ module Arbiter_145479 :
+ input in : {flip ready : UInt<1>, valid : UInt<1>, bits : {idx : UInt<6>, way_en : UInt<4>, data : {tag : UInt<20>, coh : {state : UInt<2>, makeRelease$default$2 : UInt<1>, makeRelease$default$3 : UInt<1>, makeVoluntaryRelease$default$4 : UInt<1>, makeVoluntaryRelease$default$5 : UInt<1>, makeVoluntaryWriteback$default$3 : UInt<1>, makeVoluntaryWriteback$default$4 : UInt<1>}}}}[2]
+ output out : {flip ready : UInt<1>, valid : UInt<1>, bits : {idx : UInt<6>, way_en : UInt<4>, data : {tag : UInt<20>, coh : {state : UInt<2>, makeRelease$default$2 : UInt<1>, makeRelease$default$3 : UInt<1>, makeVoluntaryRelease$default$4 : UInt<1>, makeVoluntaryRelease$default$5 : UInt<1>, makeVoluntaryWriteback$default$3 : UInt<1>, makeVoluntaryWriteback$default$4 : UInt<1>}}}}
+ output chosen : UInt<1>
+
+ wire T_186271 : UInt<3>[3]
+ T_186271[0] := UInt<3>(0)
+ T_186271[1] := UInt<3>(1)
+ T_186271[2] := UInt<3>(2)
+ wire T_186272 : UInt<2>[2]
+ T_186272[0] := UInt<2>(0)
+ T_186272[1] := UInt<2>(1)
+ wire T_186273 : UInt<2>[3]
+ T_186273[0] := UInt<2>(1)
+ T_186273[1] := UInt<2>(2)
+ T_186273[2] := UInt<2>(3)
+ wire T_186274 : UInt<2>[2]
+ T_186274[0] := UInt<2>(2)
+ T_186274[1] := UInt<2>(3)
+ wire T_186275 : UInt<2>[1]
+ T_186275[0] := UInt<2>(3)
+ wire T_186276 : UInt<3>[3]
+ T_186276[0] := UInt<3>(0)
+ T_186276[1] := UInt<3>(1)
+ T_186276[2] := UInt<3>(2)
+ wire T_186277 : UInt<2>[2]
+ T_186277[0] := UInt<2>(0)
+ T_186277[1] := UInt<2>(1)
+ wire T_186278 : UInt<2>[3]
+ T_186278[0] := UInt<2>(1)
+ T_186278[1] := UInt<2>(2)
+ T_186278[2] := UInt<2>(3)
+ wire T_186279 : UInt<2>[2]
+ T_186279[0] := UInt<2>(2)
+ T_186279[1] := UInt<2>(3)
+ wire T_186280 : UInt<2>[1]
+ T_186280[0] := UInt<2>(3)
+ wire T_186281 : UInt<3>[3]
+ T_186281[0] := UInt<3>(0)
+ T_186281[1] := UInt<3>(1)
+ T_186281[2] := UInt<3>(2)
+ wire T_186282 : UInt<2>[2]
+ T_186282[0] := UInt<2>(0)
+ T_186282[1] := UInt<2>(1)
+ wire T_186283 : UInt<2>[3]
+ T_186283[0] := UInt<2>(1)
+ T_186283[1] := UInt<2>(2)
+ T_186283[2] := UInt<2>(3)
+ wire T_186284 : UInt<2>[2]
+ T_186284[0] := UInt<2>(2)
+ T_186284[1] := UInt<2>(3)
+ wire T_186285 : UInt<2>[1]
+ T_186285[0] := UInt<2>(3)
+ wire T_186286 : UInt<3>[3]
+ T_186286[0] := UInt<3>(0)
+ T_186286[1] := UInt<3>(1)
+ T_186286[2] := UInt<3>(2)
+ wire T_186287 : UInt<2>[2]
+ T_186287[0] := UInt<2>(0)
+ T_186287[1] := UInt<2>(1)
+ wire T_186288 : UInt<2>[3]
+ T_186288[0] := UInt<2>(1)
+ T_186288[1] := UInt<2>(2)
+ T_186288[2] := UInt<2>(3)
+ wire T_186289 : UInt<2>[2]
+ T_186289[0] := UInt<2>(2)
+ T_186289[1] := UInt<2>(3)
+ wire T_186290 : UInt<2>[1]
+ T_186290[0] := UInt<2>(3)
+ wire T_186291 : UInt<1>
+ node T_186292 = or(UInt<1>(0), in[0].valid)
+ node T_186293 = eq(T_186292, UInt<1>(0))
+ node T_186294 = eq(UInt<1>(1), UInt<1>(0))
+ wire T_186295 : UInt<1>
+ T_186295 := UInt<1>(1)
+ when UInt<1>(0) : T_186295 := T_186294
+ node T_186296 = and(T_186295, out.ready)
+ in[0].ready := T_186296
+ node T_186297 = eq(UInt<1>(1), UInt<1>(1))
+ wire T_186298 : UInt<1>
+ T_186298 := T_186293
+ when UInt<1>(0) : T_186298 := T_186297
+ node T_186299 = and(T_186298, out.ready)
+ in[1].ready := T_186299
+ wire T_186300 : UInt<3>[3]
+ T_186300[0] := UInt<3>(0)
+ T_186300[1] := UInt<3>(1)
+ T_186300[2] := UInt<3>(2)
+ wire T_186301 : UInt<2>[2]
+ T_186301[0] := UInt<2>(0)
+ T_186301[1] := UInt<2>(1)
+ wire T_186302 : UInt<2>[3]
+ T_186302[0] := UInt<2>(1)
+ T_186302[1] := UInt<2>(2)
+ T_186302[2] := UInt<2>(3)
+ wire T_186303 : UInt<2>[2]
+ T_186303[0] := UInt<2>(2)
+ T_186303[1] := UInt<2>(3)
+ wire T_186304 : UInt<2>[1]
+ T_186304[0] := UInt<2>(3)
+ accessor T_186305 = in[T_186291]
+ out.valid := T_186305.valid
+ wire T_186306 : UInt<3>[3]
+ T_186306[0] := UInt<3>(0)
+ T_186306[1] := UInt<3>(1)
+ T_186306[2] := UInt<3>(2)
+ wire T_186307 : UInt<2>[2]
+ T_186307[0] := UInt<2>(0)
+ T_186307[1] := UInt<2>(1)
+ wire T_186308 : UInt<2>[3]
+ T_186308[0] := UInt<2>(1)
+ T_186308[1] := UInt<2>(2)
+ T_186308[2] := UInt<2>(3)
+ wire T_186309 : UInt<2>[2]
+ T_186309[0] := UInt<2>(2)
+ T_186309[1] := UInt<2>(3)
+ wire T_186310 : UInt<2>[1]
+ T_186310[0] := UInt<2>(3)
+ accessor T_186311 = in[T_186291]
+ out.bits := T_186311.bits
+ chosen := T_186291
+ wire T_186312 : UInt<1>
+ T_186312 := UInt<1>(1)
+ when in[0].valid : T_186312 := UInt<1>(0)
+ wire T_186313 : UInt<1>
+ T_186313 := T_186312
+ when UInt<1>(0) : T_186313 := UInt<1>(1)
+ T_186291 := T_186313
+ module DataArray :
+ input read : {flip ready : UInt<1>, valid : UInt<1>, bits : {way_en : UInt<4>, addr : UInt<12>}}
+ input write : {flip ready : UInt<1>, valid : UInt<1>, bits : {way_en : UInt<4>, addr : UInt<12>, wmask : UInt<2>, data : UInt<128>}}
+ output resp : UInt<128>[4]
+
+ wire resp : UInt<128>[4]
+ resp[0] := T_186314
+ resp[1] := T_186315
+ resp[2] := T_186316
+ resp[3] := T_186317
+ node waddr = shr(write.bits.addr, 4)
+ node raddr = shr(read.bits.addr, 4)
+ node T_186318 = bits(write.bits.way_en, 1, 0)
+ node T_186319 = bits(read.bits.way_en, 1, 0)
+ wire T_186320 : UInt<128>[2]
+ reg T_186321 : UInt<12>
+ when read.valid : T_186321 := read.bits.addr
+ cmem T_186322 : UInt<128>[256]
+
+
+ node T_186323 = eq(T_186318, UInt<1>(0))
+ node T_186324 = eq(T_186323, UInt<1>(0))
+ node T_186325 = and(T_186324, write.valid)
+ node T_186326 = bit(write.bits.wmask, 0)
+ node T_186327 = and(T_186325, T_186326)
+ when T_186327 :
+ node T_186328 = bits(write.bits.data, 63, 0)
+ node T_186329 = cat(T_186328, T_186328)
+ node T_186330 = bit(T_186318, 0)
+ node T_186331 = bit(T_186318, 1)
+ wire T_186332 : UInt<1>[2]
+ T_186332[0] := T_186330
+ T_186332[1] := T_186331
+ node T_186333 = subw(UInt<64>(0), UInt<7>(64))
+ node T_186334 = subw(UInt<64>(0), UInt<7>(64))
+ wire T_186335 : UInt<64>[2]
+ T_186335[0] := T_186333
+ T_186335[1] := T_186334
+ node T_186336 = cat(T_186335[1], T_186335[0])
+ accessor T_186337 = T_186322[waddr]
+ node T_186338 = not(T_186336)
+ node T_186339 = and(T_186337, T_186338)
+ node T_186340 = and(T_186329, T_186336)
+ node T_186341 = or(T_186339, T_186340)
+ wire T_186342 : UInt<128>
+ node T_186343 = bits(T_186341, 127, 0)
+ T_186342 := T_186343
+ accessor T_186344 = T_186322[waddr]
+ T_186344 := T_186342
+ node T_186345 = eq(T_186319, UInt<1>(0))
+ node T_186346 = eq(T_186345, UInt<1>(0))
+ node T_186347 = and(T_186346, read.valid)
+ reg T_186348 : UInt<8>
+ when T_186347 : T_186348 := raddr
+ accessor T_186349 = T_186322[T_186348]
+ T_186320[0] := T_186349
+ cmem T_186350 : UInt<128>[256]
+
+
+ node T_186351 = eq(T_186318, UInt<1>(0))
+ node T_186352 = eq(T_186351, UInt<1>(0))
+ node T_186353 = and(T_186352, write.valid)
+ node T_186354 = bit(write.bits.wmask, 1)
+ node T_186355 = and(T_186353, T_186354)
+ when T_186355 :
+ node T_186356 = bits(write.bits.data, 127, 64)
+ node T_186357 = cat(T_186356, T_186356)
+ node T_186358 = bit(T_186318, 0)
+ node T_186359 = bit(T_186318, 1)
+ wire T_186360 : UInt<1>[2]
+ T_186360[0] := T_186358
+ T_186360[1] := T_186359
+ node T_186361 = subw(UInt<64>(0), UInt<7>(64))
+ node T_186362 = subw(UInt<64>(0), UInt<7>(64))
+ wire T_186363 : UInt<64>[2]
+ T_186363[0] := T_186361
+ T_186363[1] := T_186362
+ node T_186364 = cat(T_186363[1], T_186363[0])
+ accessor T_186365 = T_186350[waddr]
+ node T_186366 = not(T_186364)
+ node T_186367 = and(T_186365, T_186366)
+ node T_186368 = and(T_186357, T_186364)
+ node T_186369 = or(T_186367, T_186368)
+ wire T_186370 : UInt<128>
+ node T_186371 = bits(T_186369, 127, 0)
+ T_186370 := T_186371
+ accessor T_186372 = T_186350[waddr]
+ T_186372 := T_186370
+ node T_186373 = eq(T_186319, UInt<1>(0))
+ node T_186374 = eq(T_186373, UInt<1>(0))
+ node T_186375 = and(T_186374, read.valid)
+ reg T_186376 : UInt<8>
+ when T_186375 : T_186376 := raddr
+ accessor T_186377 = T_186350[T_186376]
+ T_186320[1] := T_186377
+ node T_186378 = bits(T_186320[0], 63, 0)
+ node T_186379 = bits(T_186320[1], 63, 0)
+ wire T_186380 : UInt<64>[2]
+ T_186380[0] := T_186378
+ T_186380[1] := T_186379
+ node T_186381 = bits(T_186321, 3, 3)
+ accessor T_186382 = T_186380[T_186381]
+ wire T_186383 : UInt<64>[2]
+ T_186383[0] := T_186382
+ T_186383[1] := T_186380[1]
+ node T_186384 = cat(T_186383[1], T_186383[0])
+ resp[0] := T_186384
+ node T_186385 = bits(T_186320[0], 127, 64)
+ node T_186386 = bits(T_186320[1], 127, 64)
+ wire T_186387 : UInt<64>[2]
+ T_186387[0] := T_186385
+ T_186387[1] := T_186386
+ node T_186388 = bits(T_186321, 3, 3)
+ accessor T_186389 = T_186387[T_186388]
+ wire T_186390 : UInt<64>[2]
+ T_186390[0] := T_186389
+ T_186390[1] := T_186387[1]
+ node T_186391 = cat(T_186390[1], T_186390[0])
+ resp[1] := T_186391
+ node T_186392 = bits(write.bits.way_en, 3, 2)
+ node T_186393 = bits(read.bits.way_en, 3, 2)
+ wire T_186394 : UInt<128>[2]
+ reg T_186395 : UInt<12>
+ when read.valid : T_186395 := read.bits.addr
+ cmem T_186396 : UInt<128>[256]
+
+
+ node T_186397 = eq(T_186392, UInt<1>(0))
+ node T_186398 = eq(T_186397, UInt<1>(0))
+ node T_186399 = and(T_186398, write.valid)
+ node T_186400 = bit(write.bits.wmask, 0)
+ node T_186401 = and(T_186399, T_186400)
+ when T_186401 :
+ node T_186402 = bits(write.bits.data, 63, 0)
+ node T_186403 = cat(T_186402, T_186402)
+ node T_186404 = bit(T_186392, 0)
+ node T_186405 = bit(T_186392, 1)
+ wire T_186406 : UInt<1>[2]
+ T_186406[0] := T_186404
+ T_186406[1] := T_186405
+ node T_186407 = subw(UInt<64>(0), UInt<7>(64))
+ node T_186408 = subw(UInt<64>(0), UInt<7>(64))
+ wire T_186409 : UInt<64>[2]
+ T_186409[0] := T_186407
+ T_186409[1] := T_186408
+ node T_186410 = cat(T_186409[1], T_186409[0])
+ accessor T_186411 = T_186396[waddr]
+ node T_186412 = not(T_186410)
+ node T_186413 = and(T_186411, T_186412)
+ node T_186414 = and(T_186403, T_186410)
+ node T_186415 = or(T_186413, T_186414)
+ wire T_186416 : UInt<128>
+ node T_186417 = bits(T_186415, 127, 0)
+ T_186416 := T_186417
+ accessor T_186418 = T_186396[waddr]
+ T_186418 := T_186416
+ node T_186419 = eq(T_186393, UInt<1>(0))
+ node T_186420 = eq(T_186419, UInt<1>(0))
+ node T_186421 = and(T_186420, read.valid)
+ reg T_186422 : UInt<8>
+ when T_186421 : T_186422 := raddr
+ accessor T_186423 = T_186396[T_186422]
+ T_186394[0] := T_186423
+ cmem T_186424 : UInt<128>[256]
+
+
+ node T_186425 = eq(T_186392, UInt<1>(0))
+ node T_186426 = eq(T_186425, UInt<1>(0))
+ node T_186427 = and(T_186426, write.valid)
+ node T_186428 = bit(write.bits.wmask, 1)
+ node T_186429 = and(T_186427, T_186428)
+ when T_186429 :
+ node T_186430 = bits(write.bits.data, 127, 64)
+ node T_186431 = cat(T_186430, T_186430)
+ node T_186432 = bit(T_186392, 0)
+ node T_186433 = bit(T_186392, 1)
+ wire T_186434 : UInt<1>[2]
+ T_186434[0] := T_186432
+ T_186434[1] := T_186433
+ node T_186435 = subw(UInt<64>(0), UInt<7>(64))
+ node T_186436 = subw(UInt<64>(0), UInt<7>(64))
+ wire T_186437 : UInt<64>[2]
+ T_186437[0] := T_186435
+ T_186437[1] := T_186436
+ node T_186438 = cat(T_186437[1], T_186437[0])
+ accessor T_186439 = T_186424[waddr]
+ node T_186440 = not(T_186438)
+ node T_186441 = and(T_186439, T_186440)
+ node T_186442 = and(T_186431, T_186438)
+ node T_186443 = or(T_186441, T_186442)
+ wire T_186444 : UInt<128>
+ node T_186445 = bits(T_186443, 127, 0)
+ T_186444 := T_186445
+ accessor T_186446 = T_186424[waddr]
+ T_186446 := T_186444
+ node T_186447 = eq(T_186393, UInt<1>(0))
+ node T_186448 = eq(T_186447, UInt<1>(0))
+ node T_186449 = and(T_186448, read.valid)
+ reg T_186450 : UInt<8>
+ when T_186449 : T_186450 := raddr
+ accessor T_186451 = T_186424[T_186450]
+ T_186394[1] := T_186451
+ node T_186452 = bits(T_186394[0], 63, 0)
+ node T_186453 = bits(T_186394[1], 63, 0)
+ wire T_186454 : UInt<64>[2]
+ T_186454[0] := T_186452
+ T_186454[1] := T_186453
+ node T_186455 = bits(T_186395, 3, 3)
+ accessor T_186456 = T_186454[T_186455]
+ wire T_186457 : UInt<64>[2]
+ T_186457[0] := T_186456
+ T_186457[1] := T_186454[1]
+ node T_186458 = cat(T_186457[1], T_186457[0])
+ resp[2] := T_186458
+ node T_186459 = bits(T_186394[0], 127, 64)
+ node T_186460 = bits(T_186394[1], 127, 64)
+ wire T_186461 : UInt<64>[2]
+ T_186461[0] := T_186459
+ T_186461[1] := T_186460
+ node T_186462 = bits(T_186395, 3, 3)
+ accessor T_186463 = T_186461[T_186462]
+ wire T_186464 : UInt<64>[2]
+ T_186464[0] := T_186463
+ T_186464[1] := T_186461[1]
+ node T_186465 = cat(T_186464[1], T_186464[0])
+ resp[3] := T_186465
+ read.ready := UInt<1>(1)
+ write.ready := UInt<1>(1)
+ module Arbiter_145852 :
+ input in : {flip ready : UInt<1>, valid : UInt<1>, bits : {way_en : UInt<4>, addr : UInt<12>}}[4]
+ output out : {flip ready : UInt<1>, valid : UInt<1>, bits : {way_en : UInt<4>, addr : UInt<12>}}
+ output chosen : UInt<2>
+
+ wire T_186466 : UInt<2>
+ node T_186467 = or(UInt<1>(0), in[0].valid)
+ node T_186468 = eq(T_186467, UInt<1>(0))
+ node T_186469 = or(UInt<1>(0), in[0].valid)
+ node T_186470 = or(T_186469, in[1].valid)
+ node T_186471 = eq(T_186470, UInt<1>(0))
+ node T_186472 = or(UInt<1>(0), in[0].valid)
+ node T_186473 = or(T_186472, in[1].valid)
+ node T_186474 = or(T_186473, in[2].valid)
+ node T_186475 = eq(T_186474, UInt<1>(0))
+ node T_186476 = eq(UInt<2>(3), UInt<1>(0))
+ wire T_186477 : UInt<1>
+ T_186477 := UInt<1>(1)
+ when UInt<1>(0) : T_186477 := T_186476
+ node T_186478 = and(T_186477, out.ready)
+ in[0].ready := T_186478
+ node T_186479 = eq(UInt<2>(3), UInt<1>(1))
+ wire T_186480 : UInt<1>
+ T_186480 := T_186468
+ when UInt<1>(0) : T_186480 := T_186479
+ node T_186481 = and(T_186480, out.ready)
+ in[1].ready := T_186481
+ node T_186482 = eq(UInt<2>(3), UInt<2>(2))
+ wire T_186483 : UInt<1>
+ T_186483 := T_186471
+ when UInt<1>(0) : T_186483 := T_186482
+ node T_186484 = and(T_186483, out.ready)
+ in[2].ready := T_186484
+ node T_186485 = eq(UInt<2>(3), UInt<2>(3))
+ wire T_186486 : UInt<1>
+ T_186486 := T_186475
+ when UInt<1>(0) : T_186486 := T_186485
+ node T_186487 = and(T_186486, out.ready)
+ in[3].ready := T_186487
+ accessor T_186488 = in[T_186466]
+ out.valid := T_186488.valid
+ accessor T_186489 = in[T_186466]
+ out.bits := T_186489.bits
+ chosen := T_186466
+ wire T_186490 : UInt<2>
+ T_186490 := UInt<2>(3)
+ when in[2].valid : T_186490 := UInt<2>(2)
+ wire T_186491 : UInt<2>
+ T_186491 := T_186490
+ when in[1].valid : T_186491 := UInt<1>(1)
+ wire T_186492 : UInt<2>
+ T_186492 := T_186491
+ when in[0].valid : T_186492 := UInt<1>(0)
+ wire T_186493 : UInt<2>
+ T_186493 := T_186492
+ when UInt<1>(0) : T_186493 := UInt<2>(3)
+ T_186466 := T_186493
+ module Arbiter_145932 :
+ input in : {flip ready : UInt<1>, valid : UInt<1>, bits : {way_en : UInt<4>, addr : UInt<12>, wmask : UInt<2>, data : UInt<128>}}[2]
+ output out : {flip ready : UInt<1>, valid : UInt<1>, bits : {way_en : UInt<4>, addr : UInt<12>, wmask : UInt<2>, data : UInt<128>}}
+ output chosen : UInt<1>
+
+ wire T_186494 : UInt<1>
+ node T_186495 = or(UInt<1>(0), in[0].valid)
+ node T_186496 = eq(T_186495, UInt<1>(0))
+ node T_186497 = eq(UInt<1>(1), UInt<1>(0))
+ wire T_186498 : UInt<1>
+ T_186498 := UInt<1>(1)
+ when UInt<1>(0) : T_186498 := T_186497
+ node T_186499 = and(T_186498, out.ready)
+ in[0].ready := T_186499
+ node T_186500 = eq(UInt<1>(1), UInt<1>(1))
+ wire T_186501 : UInt<1>
+ T_186501 := T_186496
+ when UInt<1>(0) : T_186501 := T_186500
+ node T_186502 = and(T_186501, out.ready)
+ in[1].ready := T_186502
+ accessor T_186503 = in[T_186494]
+ out.valid := T_186503.valid
+ accessor T_186504 = in[T_186494]
+ out.bits := T_186504.bits
+ chosen := T_186494
+ wire T_186505 : UInt<1>
+ T_186505 := UInt<1>(1)
+ when in[0].valid : T_186505 := UInt<1>(0)
+ wire T_186506 : UInt<1>
+ T_186506 := T_186505
+ when UInt<1>(0) : T_186506 := UInt<1>(1)
+ T_186494 := T_186506
+ module AMOALU_147223 :
+ input addr : UInt<6>
+ input cmd : UInt<5>
+ input typ : UInt<3>
+ input lhs : UInt<64>
+ input rhs : UInt<64>
+ output out : UInt<64>
+
+ node T_186507 = eq(typ, UInt<3>(0))
+ node T_186508 = eq(typ, UInt<3>(4))
+ node T_186509 = or(T_186507, T_186508)
+ node T_186510 = eq(typ, UInt<3>(1))
+ node T_186511 = eq(typ, UInt<3>(5))
+ node T_186512 = or(T_186510, T_186511)
+ node T_186513 = eq(typ, UInt<3>(2))
+ node T_186514 = eq(typ, UInt<3>(6))
+ node T_186515 = or(T_186513, T_186514)
+ node T_186516 = bits(rhs, 31, 0)
+ node T_186517 = cat(T_186516, T_186516)
+ wire rhs : UInt<64>
+ rhs := rhs
+ when T_186515 : rhs := T_186517
+ node T_186518 = eq(cmd, UInt<5>(12))
+ node T_186519 = eq(cmd, UInt<5>(13))
+ node sgned = or(T_186518, T_186519)
+ node T_186520 = eq(cmd, UInt<5>(13))
+ node T_186521 = eq(cmd, UInt<5>(15))
+ node max = or(T_186520, T_186521)
+ node T_186522 = eq(cmd, UInt<5>(12))
+ node T_186523 = eq(cmd, UInt<5>(14))
+ node min = or(T_186522, T_186523)
+ node T_186524 = eq(typ, UInt<3>(2))
+ node T_186525 = eq(typ, UInt<3>(6))
+ node T_186526 = or(T_186524, T_186525)
+ node T_186527 = eq(typ, UInt<3>(0))
+ node T_186528 = or(T_186526, T_186527)
+ node T_186529 = eq(typ, UInt<3>(4))
+ node word = or(T_186528, T_186529)
+ node T_186530 = not(UInt<64>(0))
+ node T_186531 = bit(addr, 2)
+ node T_186532 = dshl(T_186531, UInt<5>(31))
+ node mask = xor(T_186530, T_186532)
+ node T_186533 = and(lhs, mask)
+ node T_186534 = and(rhs, mask)
+ node adder_out = addw(T_186533, T_186534)
+ node T_186535 = bit(addr, 2)
+ node T_186536 = eq(T_186535, UInt<1>(0))
+ node T_186537 = and(word, T_186536)
+ node T_186538 = bit(lhs, 31)
+ node T_186539 = bit(lhs, 63)
+ wire cmp_lhs : UInt<1>
+ cmp_lhs := T_186539
+ when T_186537 : cmp_lhs := T_186538
+ node T_186540 = bit(addr, 2)
+ node T_186541 = eq(T_186540, UInt<1>(0))
+ node T_186542 = and(word, T_186541)
+ node T_186543 = bit(rhs, 31)
+ node T_186544 = bit(rhs, 63)
+ wire cmp_rhs : UInt<1>
+ cmp_rhs := T_186544
+ when T_186542 : cmp_rhs := T_186543
+ node T_186545 = bits(lhs, 31, 0)
+ node T_186546 = bits(rhs, 31, 0)
+ node lt_lo = lt(T_186545, T_186546)
+ node T_186547 = bits(lhs, 63, 32)
+ node T_186548 = bits(rhs, 63, 32)
+ node lt_hi = lt(T_186547, T_186548)
+ node T_186549 = bits(lhs, 63, 32)
+ node T_186550 = bits(rhs, 63, 32)
+ node eq_hi = eq(T_186549, T_186550)
+ node T_186551 = bit(addr, 2)
+ wire T_186552 : UInt<1>
+ T_186552 := lt_lo
+ when T_186551 : T_186552 := lt_hi
+ node T_186553 = and(eq_hi, lt_lo)
+ node T_186554 = or(lt_hi, T_186553)
+ wire lt : UInt<1>
+ lt := T_186554
+ when word : lt := T_186552
+ node T_186555 = eq(cmp_lhs, cmp_rhs)
+ wire T_186556 : UInt<1>
+ T_186556 := cmp_rhs
+ when sgned : T_186556 := cmp_lhs
+ wire less : UInt<1>
+ less := T_186556
+ when T_186555 : less := lt
+ node T_186557 = eq(cmd, UInt<5>(8))
+ node T_186558 = eq(cmd, UInt<5>(11))
+ node T_186559 = and(lhs, rhs)
+ node T_186560 = eq(cmd, UInt<5>(10))
+ node T_186561 = or(lhs, rhs)
+ node T_186562 = eq(cmd, UInt<5>(9))
+ node T_186563 = xor(lhs, rhs)
+ wire T_186564 : UInt<1>
+ T_186564 := max
+ when less : T_186564 := min
+ node T_186565 = bits(rhs, 7, 0)
+ node T_186566 = cat(T_186565, T_186565)
+ node T_186567 = cat(T_186566, T_186566)
+ node T_186568 = cat(T_186567, T_186567)
+ node T_186569 = bits(rhs, 15, 0)
+ node T_186570 = cat(T_186569, T_186569)
+ node T_186571 = cat(T_186570, T_186570)
+ wire T_186572 : UInt<64>
+ T_186572 := rhs
+ when T_186512 : T_186572 := T_186571
+ wire T_186573 : UInt<64>
+ T_186573 := T_186572
+ when T_186509 : T_186573 := T_186568
+ wire T_186574 : UInt<64>
+ T_186574 := T_186573
+ when T_186564 : T_186574 := lhs
+ wire T_186575 : UInt<64>
+ T_186575 := T_186574
+ when T_186562 : T_186575 := T_186563
+ wire T_186576 : UInt<64>
+ T_186576 := T_186575
+ when T_186560 : T_186576 := T_186561
+ wire T_186577 : UInt<64>
+ T_186577 := T_186576
+ when T_186558 : T_186577 := T_186559
+ wire out : UInt<64>
+ out := T_186577
+ when T_186557 : out := adder_out
+ node T_186578 = bits(addr, 2, 0)
+ node T_186579 = dshl(UInt<1>(1), T_186578)
+ node T_186580 = bits(addr, 2, 1)
+ node T_186581 = cat(T_186580, UInt<1>(0))
+ node T_186582 = dshl(UInt<2>(3), T_186581)
+ node T_186583 = bit(addr, 2)
+ node T_186584 = cat(T_186583, UInt<2>(0))
+ node T_186585 = dshl(UInt<4>(15), T_186584)
+ wire T_186586 : UInt<8>
+ T_186586 := UInt<8>(255)
+ when T_186515 : T_186586 := T_186585
+ wire T_186587 : UInt<8>
+ T_186587 := T_186586
+ when T_186512 : T_186587 := T_186582
+ wire T_186588 : UInt<8>
+ T_186588 := T_186587
+ when T_186509 : T_186588 := T_186579
+ node T_186589 = bit(T_186588, 0)
+ node T_186590 = bit(T_186588, 1)
+ node T_186591 = bit(T_186588, 2)
+ node T_186592 = bit(T_186588, 3)
+ node T_186593 = bit(T_186588, 4)
+ node T_186594 = bit(T_186588, 5)
+ node T_186595 = bit(T_186588, 6)
+ node T_186596 = bit(T_186588, 7)
+ wire T_186597 : UInt<1>[8]
+ T_186597[0] := T_186589
+ T_186597[1] := T_186590
+ T_186597[2] := T_186591
+ T_186597[3] := T_186592
+ T_186597[4] := T_186593
+ T_186597[5] := T_186594
+ T_186597[6] := T_186595
+ T_186597[7] := T_186596
+ node T_186598 = subw(UInt<8>(0), UInt<4>(8))
+ node T_186599 = subw(UInt<8>(0), UInt<4>(8))
+ node T_186600 = subw(UInt<8>(0), UInt<4>(8))
+ node T_186601 = subw(UInt<8>(0), UInt<4>(8))
+ node T_186602 = subw(UInt<8>(0), UInt<4>(8))
+ node T_186603 = subw(UInt<8>(0), UInt<4>(8))
+ node T_186604 = subw(UInt<8>(0), UInt<4>(8))
+ node T_186605 = subw(UInt<8>(0), UInt<4>(8))
+ wire T_186606 : UInt<8>[8]
+ T_186606[0] := T_186598
+ T_186606[1] := T_186599
+ T_186606[2] := T_186600
+ T_186606[3] := T_186601
+ T_186606[4] := T_186602
+ T_186606[5] := T_186603
+ T_186606[6] := T_186604
+ T_186606[7] := T_186605
+ node T_186607 = cat(T_186606[7], T_186606[6])
+ node T_186608 = cat(T_186606[5], T_186606[4])
+ node T_186609 = cat(T_186607, T_186608)
+ node T_186610 = cat(T_186606[3], T_186606[2])
+ node T_186611 = cat(T_186606[1], T_186606[0])
+ node T_186612 = cat(T_186610, T_186611)
+ node wmask = cat(T_186609, T_186612)
+ node T_186613 = and(wmask, out)
+ node T_186614 = not(wmask)
+ node T_186615 = and(T_186614, lhs)
+ node T_186616 = or(T_186613, T_186615)
+ out := T_186616
+ module LockingArbiter_148764 :
+ input in : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_block : UInt<26>, client_xact_id : UInt<1>, addr_beat : UInt<2>, data : UInt<128>, r_type : UInt<3>, voluntary : UInt<1>}}[2]
+ output out : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_block : UInt<26>, client_xact_id : UInt<1>, addr_beat : UInt<2>, data : UInt<128>, r_type : UInt<3>, voluntary : UInt<1>}}
+ output chosen : UInt<1>
+
+ wire T_186617 : UInt<3>[3]
+ T_186617[0] := UInt<3>(0)
+ T_186617[1] := UInt<3>(1)
+ T_186617[2] := UInt<3>(2)
+ wire T_186618 : UInt<2>[2]
+ T_186618[0] := UInt<2>(0)
+ T_186618[1] := UInt<2>(1)
+ wire T_186619 : UInt<2>[3]
+ T_186619[0] := UInt<2>(1)
+ T_186619[1] := UInt<2>(2)
+ T_186619[2] := UInt<2>(3)
+ wire T_186620 : UInt<2>[2]
+ T_186620[0] := UInt<2>(2)
+ T_186620[1] := UInt<2>(3)
+ wire T_186621 : UInt<2>[1]
+ T_186621[0] := UInt<2>(3)
+ wire T_186622 : UInt<3>[3]
+ T_186622[0] := UInt<3>(0)
+ T_186622[1] := UInt<3>(1)
+ T_186622[2] := UInt<3>(2)
+ wire T_186623 : UInt<2>[2]
+ T_186623[0] := UInt<2>(0)
+ T_186623[1] := UInt<2>(1)
+ wire T_186624 : UInt<2>[3]
+ T_186624[0] := UInt<2>(1)
+ T_186624[1] := UInt<2>(2)
+ T_186624[2] := UInt<2>(3)
+ wire T_186625 : UInt<2>[2]
+ T_186625[0] := UInt<2>(2)
+ T_186625[1] := UInt<2>(3)
+ wire T_186626 : UInt<2>[1]
+ T_186626[0] := UInt<2>(3)
+ wire T_186627 : UInt<3>[3]
+ T_186627[0] := UInt<3>(0)
+ T_186627[1] := UInt<3>(1)
+ T_186627[2] := UInt<3>(2)
+ wire T_186628 : UInt<2>[2]
+ T_186628[0] := UInt<2>(0)
+ T_186628[1] := UInt<2>(1)
+ wire T_186629 : UInt<2>[3]
+ T_186629[0] := UInt<2>(1)
+ T_186629[1] := UInt<2>(2)
+ T_186629[2] := UInt<2>(3)
+ wire T_186630 : UInt<2>[2]
+ T_186630[0] := UInt<2>(2)
+ T_186630[1] := UInt<2>(3)
+ wire T_186631 : UInt<2>[1]
+ T_186631[0] := UInt<2>(3)
+ wire T_186632 : UInt<3>[3]
+ T_186632[0] := UInt<3>(0)
+ T_186632[1] := UInt<3>(1)
+ T_186632[2] := UInt<3>(2)
+ wire T_186633 : UInt<2>[2]
+ T_186633[0] := UInt<2>(0)
+ T_186633[1] := UInt<2>(1)
+ wire T_186634 : UInt<2>[3]
+ T_186634[0] := UInt<2>(1)
+ T_186634[1] := UInt<2>(2)
+ T_186634[2] := UInt<2>(3)
+ wire T_186635 : UInt<2>[2]
+ T_186635[0] := UInt<2>(2)
+ T_186635[1] := UInt<2>(3)
+ wire T_186636 : UInt<2>[1]
+ T_186636[0] := UInt<2>(3)
+ reg T_186637 : UInt<1>
+ onreset T_186637 := UInt<1>(0)
+ reg T_186638 : UInt<1>
+ onreset T_186638 := UInt<1>(1)
+ wire T_186639 : UInt<1>
+ node T_186640 = or(UInt<1>(0), in[0].valid)
+ node T_186641 = eq(T_186640, UInt<1>(0))
+ node T_186642 = eq(T_186638, UInt<1>(0))
+ wire T_186643 : UInt<1>
+ T_186643 := UInt<1>(1)
+ when T_186637 : T_186643 := T_186642
+ node T_186644 = and(T_186643, out.ready)
+ in[0].ready := T_186644
+ node T_186645 = eq(T_186638, UInt<1>(1))
+ wire T_186646 : UInt<1>
+ T_186646 := T_186641
+ when T_186637 : T_186646 := T_186645
+ node T_186647 = and(T_186646, out.ready)
+ in[1].ready := T_186647
+ wire T_186648 : UInt<3>[3]
+ T_186648[0] := UInt<3>(0)
+ T_186648[1] := UInt<3>(1)
+ T_186648[2] := UInt<3>(2)
+ wire T_186649 : UInt<2>[2]
+ T_186649[0] := UInt<2>(0)
+ T_186649[1] := UInt<2>(1)
+ wire T_186650 : UInt<2>[3]
+ T_186650[0] := UInt<2>(1)
+ T_186650[1] := UInt<2>(2)
+ T_186650[2] := UInt<2>(3)
+ wire T_186651 : UInt<2>[2]
+ T_186651[0] := UInt<2>(2)
+ T_186651[1] := UInt<2>(3)
+ wire T_186652 : UInt<2>[1]
+ T_186652[0] := UInt<2>(3)
+ accessor T_186653 = in[T_186639]
+ out.valid := T_186653.valid
+ wire T_186654 : UInt<3>[3]
+ T_186654[0] := UInt<3>(0)
+ T_186654[1] := UInt<3>(1)
+ T_186654[2] := UInt<3>(2)
+ wire T_186655 : UInt<2>[2]
+ T_186655[0] := UInt<2>(0)
+ T_186655[1] := UInt<2>(1)
+ wire T_186656 : UInt<2>[3]
+ T_186656[0] := UInt<2>(1)
+ T_186656[1] := UInt<2>(2)
+ T_186656[2] := UInt<2>(3)
+ wire T_186657 : UInt<2>[2]
+ T_186657[0] := UInt<2>(2)
+ T_186657[1] := UInt<2>(3)
+ wire T_186658 : UInt<2>[1]
+ T_186658[0] := UInt<2>(3)
+ accessor T_186659 = in[T_186639]
+ out.bits := T_186659.bits
+ chosen := T_186639
+ reg T_186660 : UInt<2>
+ onreset T_186660 := UInt<2>(0)
+ node T_186661 = addw(T_186660, UInt<1>(1))
+
+ node T_186662 = and(out.ready, out.valid)
+ when T_186662 :
+
+
+ node T_186663 = eq(T_186632[0], out.bits.r_type)
+ node T_186664 = eq(T_186632[1], out.bits.r_type)
+ node T_186665 = eq(T_186632[2], out.bits.r_type)
+ node T_186666 = or(UInt<1>(0), T_186663)
+ node T_186667 = or(T_186666, T_186664)
+ node T_186668 = or(T_186667, T_186665)
+ node T_186669 = and(UInt<1>(1), T_186668)
+ when T_186669 :
+ T_186660 := T_186661
+
+ node T_186670 = eq(T_186637, UInt<1>(0))
+ when T_186670 :
+ T_186637 := UInt<1>(1)
+ node T_186671 = and(in[0].ready, in[0].valid)
+ node T_186672 = and(in[1].ready, in[1].valid)
+ wire T_186673 : UInt<1>[2]
+ T_186673[0] := T_186671
+ T_186673[1] := T_186672
+ wire T_186674 : UInt<1>
+ T_186674 := UInt<1>(1)
+ when T_186673[0] : T_186674 := UInt<1>(0)
+ T_186638 := T_186674
+
+ node T_186675 = eq(T_186661, UInt<1>(0))
+ when T_186675 : T_186637 := UInt<1>(0)
+ wire choose : UInt<1>
+ choose := UInt<1>(1)
+ when in[0].valid : choose := UInt<1>(0)
+ wire T_186676 : UInt<1>
+ T_186676 := choose
+ when T_186637 : T_186676 := T_186638
+ T_186639 := T_186676
+ module FlowThroughSerializer_148912 :
+ input in : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_beat : UInt<2>, data : UInt<128>, client_xact_id : UInt<1>, manager_xact_id : UInt<2>, is_builtin_type : UInt<1>, g_type : UInt<4>}}
+ output out : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_beat : UInt<2>, data : UInt<128>, client_xact_id : UInt<1>, manager_xact_id : UInt<2>, is_builtin_type : UInt<1>, g_type : UInt<4>}}
+ output cnt : UInt<1>
+ output done : UInt<1>
+
+ wire T_186677 : UInt<3>[3]
+ T_186677[0] := UInt<3>(0)
+ T_186677[1] := UInt<3>(1)
+ T_186677[2] := UInt<3>(2)
+ wire T_186678 : UInt<2>[2]
+ T_186678[0] := UInt<2>(0)
+ T_186678[1] := UInt<2>(1)
+ wire T_186679 : UInt<2>[3]
+ T_186679[0] := UInt<2>(1)
+ T_186679[1] := UInt<2>(2)
+ T_186679[2] := UInt<2>(3)
+ wire T_186680 : UInt<2>[2]
+ T_186680[0] := UInt<2>(2)
+ T_186680[1] := UInt<2>(3)
+ wire T_186681 : UInt<2>[1]
+ T_186681[0] := UInt<2>(3)
+ wire T_186682 : UInt<3>[3]
+ T_186682[0] := UInt<3>(0)
+ T_186682[1] := UInt<3>(1)
+ T_186682[2] := UInt<3>(2)
+ wire T_186683 : UInt<2>[2]
+ T_186683[0] := UInt<2>(0)
+ T_186683[1] := UInt<2>(1)
+ wire T_186684 : UInt<2>[3]
+ T_186684[0] := UInt<2>(1)
+ T_186684[1] := UInt<2>(2)
+ T_186684[2] := UInt<2>(3)
+ wire T_186685 : UInt<2>[2]
+ T_186685[0] := UInt<2>(2)
+ T_186685[1] := UInt<2>(3)
+ wire T_186686 : UInt<2>[1]
+ T_186686[0] := UInt<2>(3)
+ in <> out
+ cnt := T_186687
+ done := UInt<1>(1)
+ module Arbiter_149454 :
+ input in : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_block : UInt<26>, client_xact_id : UInt<1>, addr_beat : UInt<2>, data : UInt<128>, r_type : UInt<3>, voluntary : UInt<1>, way_en : UInt<4>}}[2]
+ output out : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_block : UInt<26>, client_xact_id : UInt<1>, addr_beat : UInt<2>, data : UInt<128>, r_type : UInt<3>, voluntary : UInt<1>, way_en : UInt<4>}}
+ output chosen : UInt<1>
+
+ wire T_186688 : UInt<3>[3]
+ T_186688[0] := UInt<3>(0)
+ T_186688[1] := UInt<3>(1)
+ T_186688[2] := UInt<3>(2)
+ wire T_186689 : UInt<2>[2]
+ T_186689[0] := UInt<2>(0)
+ T_186689[1] := UInt<2>(1)
+ wire T_186690 : UInt<2>[3]
+ T_186690[0] := UInt<2>(1)
+ T_186690[1] := UInt<2>(2)
+ T_186690[2] := UInt<2>(3)
+ wire T_186691 : UInt<2>[2]
+ T_186691[0] := UInt<2>(2)
+ T_186691[1] := UInt<2>(3)
+ wire T_186692 : UInt<2>[1]
+ T_186692[0] := UInt<2>(3)
+ wire T_186693 : UInt<3>[3]
+ T_186693[0] := UInt<3>(0)
+ T_186693[1] := UInt<3>(1)
+ T_186693[2] := UInt<3>(2)
+ wire T_186694 : UInt<2>[2]
+ T_186694[0] := UInt<2>(0)
+ T_186694[1] := UInt<2>(1)
+ wire T_186695 : UInt<2>[3]
+ T_186695[0] := UInt<2>(1)
+ T_186695[1] := UInt<2>(2)
+ T_186695[2] := UInt<2>(3)
+ wire T_186696 : UInt<2>[2]
+ T_186696[0] := UInt<2>(2)
+ T_186696[1] := UInt<2>(3)
+ wire T_186697 : UInt<2>[1]
+ T_186697[0] := UInt<2>(3)
+ wire T_186698 : UInt<3>[3]
+ T_186698[0] := UInt<3>(0)
+ T_186698[1] := UInt<3>(1)
+ T_186698[2] := UInt<3>(2)
+ wire T_186699 : UInt<2>[2]
+ T_186699[0] := UInt<2>(0)
+ T_186699[1] := UInt<2>(1)
+ wire T_186700 : UInt<2>[3]
+ T_186700[0] := UInt<2>(1)
+ T_186700[1] := UInt<2>(2)
+ T_186700[2] := UInt<2>(3)
+ wire T_186701 : UInt<2>[2]
+ T_186701[0] := UInt<2>(2)
+ T_186701[1] := UInt<2>(3)
+ wire T_186702 : UInt<2>[1]
+ T_186702[0] := UInt<2>(3)
+ wire T_186703 : UInt<3>[3]
+ T_186703[0] := UInt<3>(0)
+ T_186703[1] := UInt<3>(1)
+ T_186703[2] := UInt<3>(2)
+ wire T_186704 : UInt<2>[2]
+ T_186704[0] := UInt<2>(0)
+ T_186704[1] := UInt<2>(1)
+ wire T_186705 : UInt<2>[3]
+ T_186705[0] := UInt<2>(1)
+ T_186705[1] := UInt<2>(2)
+ T_186705[2] := UInt<2>(3)
+ wire T_186706 : UInt<2>[2]
+ T_186706[0] := UInt<2>(2)
+ T_186706[1] := UInt<2>(3)
+ wire T_186707 : UInt<2>[1]
+ T_186707[0] := UInt<2>(3)
+ wire T_186708 : UInt<1>
+ node T_186709 = or(UInt<1>(0), in[0].valid)
+ node T_186710 = eq(T_186709, UInt<1>(0))
+ node T_186711 = eq(UInt<1>(1), UInt<1>(0))
+ wire T_186712 : UInt<1>
+ T_186712 := UInt<1>(1)
+ when UInt<1>(0) : T_186712 := T_186711
+ node T_186713 = and(T_186712, out.ready)
+ in[0].ready := T_186713
+ node T_186714 = eq(UInt<1>(1), UInt<1>(1))
+ wire T_186715 : UInt<1>
+ T_186715 := T_186710
+ when UInt<1>(0) : T_186715 := T_186714
+ node T_186716 = and(T_186715, out.ready)
+ in[1].ready := T_186716
+ wire T_186717 : UInt<3>[3]
+ T_186717[0] := UInt<3>(0)
+ T_186717[1] := UInt<3>(1)
+ T_186717[2] := UInt<3>(2)
+ wire T_186718 : UInt<2>[2]
+ T_186718[0] := UInt<2>(0)
+ T_186718[1] := UInt<2>(1)
+ wire T_186719 : UInt<2>[3]
+ T_186719[0] := UInt<2>(1)
+ T_186719[1] := UInt<2>(2)
+ T_186719[2] := UInt<2>(3)
+ wire T_186720 : UInt<2>[2]
+ T_186720[0] := UInt<2>(2)
+ T_186720[1] := UInt<2>(3)
+ wire T_186721 : UInt<2>[1]
+ T_186721[0] := UInt<2>(3)
+ accessor T_186722 = in[T_186708]
+ out.valid := T_186722.valid
+ wire T_186723 : UInt<3>[3]
+ T_186723[0] := UInt<3>(0)
+ T_186723[1] := UInt<3>(1)
+ T_186723[2] := UInt<3>(2)
+ wire T_186724 : UInt<2>[2]
+ T_186724[0] := UInt<2>(0)
+ T_186724[1] := UInt<2>(1)
+ wire T_186725 : UInt<2>[3]
+ T_186725[0] := UInt<2>(1)
+ T_186725[1] := UInt<2>(2)
+ T_186725[2] := UInt<2>(3)
+ wire T_186726 : UInt<2>[2]
+ T_186726[0] := UInt<2>(2)
+ T_186726[1] := UInt<2>(3)
+ wire T_186727 : UInt<2>[1]
+ T_186727[0] := UInt<2>(3)
+ accessor T_186728 = in[T_186708]
+ out.bits := T_186728.bits
+ chosen := T_186708
+ wire T_186729 : UInt<1>
+ T_186729 := UInt<1>(1)
+ when in[0].valid : T_186729 := UInt<1>(0)
+ wire T_186730 : UInt<1>
+ T_186730 := T_186729
+ when UInt<1>(0) : T_186730 := UInt<1>(1)
+ T_186708 := T_186730
+ module HellaCache :
+ input cpu : {req : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr : UInt<40>, tag : UInt<8>, cmd : UInt<5>, typ : UInt<3>, kill : UInt<1>, phys : UInt<1>, data : UInt<64>}}, flip resp : {valid : UInt<1>, bits : {addr : UInt<40>, tag : UInt<8>, cmd : UInt<5>, typ : UInt<3>, data : UInt<64>, nack : UInt<1>, replay : UInt<1>, has_data : UInt<1>, data_subword : UInt<64>, store_data : UInt<64>}}, flip replay_next : {valid : UInt<1>, bits : UInt<8>}, flip xcpt : {ma : {ld : UInt<1>, st : UInt<1>}, pf : {ld : UInt<1>, st : UInt<1>}}, invalidate_lr : UInt<1>, flip ordered : UInt<1>}
+ output ptw : {req : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr : UInt<27>, prv : UInt<2>, store : UInt<1>, fetch : UInt<1>}}, flip resp : {valid : UInt<1>, bits : {error : UInt<1>, pte : {ppn : UInt<20>, reserved_for_software : UInt<3>, d : UInt<1>, r : UInt<1>, typ : UInt<4>, v : UInt<1>}}}, flip status : {sd : UInt<1>, zero2 : UInt<31>, sd_rv32 : UInt<1>, zero1 : UInt<9>, vm : UInt<5>, mprv : UInt<1>, xs : UInt<2>, fs : UInt<2>, prv3 : UInt<2>, ie3 : UInt<1>, prv2 : UInt<2>, ie2 : UInt<1>, prv1 : UInt<2>, ie1 : UInt<1>, prv : UInt<2>, ie : UInt<1>}, flip invalidate : UInt<1>}
+ output mem__ : {acquire : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_block : UInt<26>, client_xact_id : UInt<1>, addr_beat : UInt<2>, data : UInt<128>, is_builtin_type : UInt<1>, a_type : UInt<3>, union : UInt<17>}}, flip grant : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_beat : UInt<2>, data : UInt<128>, client_xact_id : UInt<1>, manager_xact_id : UInt<2>, is_builtin_type : UInt<1>, g_type : UInt<4>}}, flip probe : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_block : UInt<26>, p_type : UInt<2>}}, release : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_block : UInt<26>, client_xact_id : UInt<1>, addr_beat : UInt<2>, data : UInt<128>, r_type : UInt<3>, voluntary : UInt<1>}}}
+
+ wire T_186731 : UInt<3>[3]
+ T_186731[0] := UInt<3>(0)
+ T_186731[1] := UInt<3>(1)
+ T_186731[2] := UInt<3>(2)
+ wire T_186732 : UInt<2>[2]
+ T_186732[0] := UInt<2>(0)
+ T_186732[1] := UInt<2>(1)
+ wire T_186733 : UInt<2>[3]
+ T_186733[0] := UInt<2>(1)
+ T_186733[1] := UInt<2>(2)
+ T_186733[2] := UInt<2>(3)
+ wire T_186734 : UInt<2>[2]
+ T_186734[0] := UInt<2>(2)
+ T_186734[1] := UInt<2>(3)
+ wire T_186735 : UInt<2>[1]
+ T_186735[0] := UInt<2>(3)
+ wire T_186736 : UInt<3>[3]
+ T_186736[0] := UInt<3>(0)
+ T_186736[1] := UInt<3>(1)
+ T_186736[2] := UInt<3>(2)
+ wire T_186737 : UInt<2>[2]
+ T_186737[0] := UInt<2>(0)
+ T_186737[1] := UInt<2>(1)
+ wire T_186738 : UInt<2>[3]
+ T_186738[0] := UInt<2>(1)
+ T_186738[1] := UInt<2>(2)
+ T_186738[2] := UInt<2>(3)
+ wire T_186739 : UInt<2>[2]
+ T_186739[0] := UInt<2>(2)
+ T_186739[1] := UInt<2>(3)
+ wire T_186740 : UInt<2>[1]
+ T_186740[0] := UInt<2>(3)
+ wire T_186741 : UInt<3>[3]
+ T_186741[0] := UInt<3>(0)
+ T_186741[1] := UInt<3>(1)
+ T_186741[2] := UInt<3>(2)
+ wire T_186742 : UInt<2>[2]
+ T_186742[0] := UInt<2>(0)
+ T_186742[1] := UInt<2>(1)
+ wire T_186743 : UInt<2>[3]
+ T_186743[0] := UInt<2>(1)
+ T_186743[1] := UInt<2>(2)
+ T_186743[2] := UInt<2>(3)
+ wire T_186744 : UInt<2>[2]
+ T_186744[0] := UInt<2>(2)
+ T_186744[1] := UInt<2>(3)
+ wire T_186745 : UInt<2>[1]
+ T_186745[0] := UInt<2>(3)
+ wire T_186746 : UInt<3>[3]
+ T_186746[0] := UInt<3>(0)
+ T_186746[1] := UInt<3>(1)
+ T_186746[2] := UInt<3>(2)
+ wire T_186747 : UInt<2>[2]
+ T_186747[0] := UInt<2>(0)
+ T_186747[1] := UInt<2>(1)
+ wire T_186748 : UInt<2>[3]
+ T_186748[0] := UInt<2>(1)
+ T_186748[1] := UInt<2>(2)
+ T_186748[2] := UInt<2>(3)
+ wire T_186749 : UInt<2>[2]
+ T_186749[0] := UInt<2>(2)
+ T_186749[1] := UInt<2>(3)
+ wire T_186750 : UInt<2>[1]
+ T_186750[0] := UInt<2>(3)
+ wire T_186751 : UInt<3>[3]
+ T_186751[0] := UInt<3>(0)
+ T_186751[1] := UInt<3>(1)
+ T_186751[2] := UInt<3>(2)
+ wire T_186752 : UInt<2>[2]
+ T_186752[0] := UInt<2>(0)
+ T_186752[1] := UInt<2>(1)
+ wire T_186753 : UInt<2>[3]
+ T_186753[0] := UInt<2>(1)
+ T_186753[1] := UInt<2>(2)
+ T_186753[2] := UInt<2>(3)
+ wire T_186754 : UInt<2>[2]
+ T_186754[0] := UInt<2>(2)
+ T_186754[1] := UInt<2>(3)
+ wire T_186755 : UInt<2>[1]
+ T_186755[0] := UInt<2>(3)
+ wire T_186756 : UInt<3>[3]
+ T_186756[0] := UInt<3>(0)
+ T_186756[1] := UInt<3>(1)
+ T_186756[2] := UInt<3>(2)
+ wire T_186757 : UInt<2>[2]
+ T_186757[0] := UInt<2>(0)
+ T_186757[1] := UInt<2>(1)
+ wire T_186758 : UInt<2>[3]
+ T_186758[0] := UInt<2>(1)
+ T_186758[1] := UInt<2>(2)
+ T_186758[2] := UInt<2>(3)
+ wire T_186759 : UInt<2>[2]
+ T_186759[0] := UInt<2>(2)
+ T_186759[1] := UInt<2>(3)
+ wire T_186760 : UInt<2>[1]
+ T_186760[0] := UInt<2>(3)
+ wire T_186761 : UInt<3>[3]
+ T_186761[0] := UInt<3>(0)
+ T_186761[1] := UInt<3>(1)
+ T_186761[2] := UInt<3>(2)
+ wire T_186762 : UInt<2>[2]
+ T_186762[0] := UInt<2>(0)
+ T_186762[1] := UInt<2>(1)
+ wire T_186763 : UInt<2>[3]
+ T_186763[0] := UInt<2>(1)
+ T_186763[1] := UInt<2>(2)
+ T_186763[2] := UInt<2>(3)
+ wire T_186764 : UInt<2>[2]
+ T_186764[0] := UInt<2>(2)
+ T_186764[1] := UInt<2>(3)
+ wire T_186765 : UInt<2>[1]
+ T_186765[0] := UInt<2>(3)
+ wire T_186766 : UInt<3>[3]
+ T_186766[0] := UInt<3>(0)
+ T_186766[1] := UInt<3>(1)
+ T_186766[2] := UInt<3>(2)
+ wire T_186767 : UInt<2>[2]
+ T_186767[0] := UInt<2>(0)
+ T_186767[1] := UInt<2>(1)
+ wire T_186768 : UInt<2>[3]
+ T_186768[0] := UInt<2>(1)
+ T_186768[1] := UInt<2>(2)
+ T_186768[2] := UInt<2>(3)
+ wire T_186769 : UInt<2>[2]
+ T_186769[0] := UInt<2>(2)
+ T_186769[1] := UInt<2>(3)
+ wire T_186770 : UInt<2>[1]
+ T_186770[0] := UInt<2>(3)
+ wire T_186771 : UInt<3>[3]
+ T_186771[0] := UInt<3>(0)
+ T_186771[1] := UInt<3>(1)
+ T_186771[2] := UInt<3>(2)
+ wire T_186772 : UInt<2>[2]
+ T_186772[0] := UInt<2>(0)
+ T_186772[1] := UInt<2>(1)
+ wire T_186773 : UInt<2>[3]
+ T_186773[0] := UInt<2>(1)
+ T_186773[1] := UInt<2>(2)
+ T_186773[2] := UInt<2>(3)
+ wire T_186774 : UInt<2>[2]
+ T_186774[0] := UInt<2>(2)
+ T_186774[1] := UInt<2>(3)
+ wire T_186775 : UInt<2>[1]
+ T_186775[0] := UInt<2>(3)
+ inst wb of WritebackUnit
+ inst prober of ProbeUnit
+ inst mshrs of MSHRFile
+ cpu.req.ready := UInt<1>(1)
+ node T_186776 = and(cpu.req.ready, cpu.req.valid)
+ reg s1_valid : UInt<1>
+ onreset s1_valid := UInt<1>(0)
+ s1_valid := T_186776
+ reg s1_req : {addr : UInt<40>, tag : UInt<8>, cmd : UInt<5>, typ : UInt<3>, kill : UInt<1>, phys : UInt<1>, data : UInt<64>}
+ node T_186777 = eq(cpu.req.bits.kill, UInt<1>(0))
+ node s1_valid_masked = and(s1_valid, T_186777)
+ reg s1_replay : UInt<1>
+ onreset s1_replay := UInt<1>(0)
+ reg s1_clk_en : UInt<1>
+ reg s2_valid : UInt<1>
+ onreset s2_valid := UInt<1>(0)
+ s2_valid := s1_valid_masked
+ reg s2_req : {addr : UInt<40>, tag : UInt<8>, cmd : UInt<5>, typ : UInt<3>, kill : UInt<1>, phys : UInt<1>, data : UInt<64>}
+ reg T_186778 : UInt<1>
+ onreset T_186778 := UInt<1>(0)
+ T_186778 := s1_replay
+ node T_186779 = neq(s2_req.cmd, UInt<5>(5))
+ node s2_replay = and(T_186778, T_186779)
+ wire s2_recycle : UInt<1>
+ wire s2_valid_masked : UInt<1>
+ reg s3_valid : UInt<1>
+ onreset s3_valid := UInt<1>(0)
+ reg s3_req : {addr : UInt<40>, tag : UInt<8>, cmd : UInt<5>, typ : UInt<3>, kill : UInt<1>, phys : UInt<1>, data : UInt<64>}
+ reg s3_way : UInt
+ reg s1_recycled : UInt<1>
+ onreset s1_recycled := UInt<1>(0)
+ when s1_clk_en : s1_recycled := s2_recycle
+ node T_186780 = eq(s1_req.cmd, UInt<5>(0))
+ node T_186781 = eq(s1_req.cmd, UInt<5>(6))
+ node T_186782 = or(T_186780, T_186781)
+ node T_186783 = bit(s1_req.cmd, 3)
+ node T_186784 = eq(s1_req.cmd, UInt<5>(4))
+ node T_186785 = or(T_186783, T_186784)
+ node s1_read = or(T_186782, T_186785)
+ node T_186786 = eq(s1_req.cmd, UInt<5>(1))
+ node T_186787 = eq(s1_req.cmd, UInt<5>(7))
+ node T_186788 = or(T_186786, T_186787)
+ node T_186789 = bit(s1_req.cmd, 3)
+ node T_186790 = eq(s1_req.cmd, UInt<5>(4))
+ node T_186791 = or(T_186789, T_186790)
+ node s1_write = or(T_186788, T_186791)
+ node s1_sc = eq(s1_req.cmd, UInt<5>(7))
+ node T_186792 = or(s1_read, s1_write)
+ node T_186793 = eq(s1_req.cmd, UInt<5>(2))
+ node T_186794 = eq(s1_req.cmd, UInt<5>(3))
+ node T_186795 = or(T_186793, T_186794)
+ node s1_readwrite = or(T_186792, T_186795)
+ inst dtlb of TLB_142822
+ dtlb.ptw <> ptw
+ node T_186796 = and(s1_valid_masked, s1_readwrite)
+ node T_186797 = eq(s1_req.phys, UInt<1>(0))
+ node T_186798 = and(T_186796, T_186797)
+ dtlb.req.valid := T_186798
+ dtlb.req.bits.passthrough := s1_req.phys
+ dtlb.req.bits.asid := UInt<1>(0)
+ node T_186799 = shr(s1_req.addr, 12)
+ dtlb.req.bits.vpn := T_186799
+ dtlb.req.bits.instruction := UInt<1>(0)
+ dtlb.req.bits.store := s1_write
+
+
+ node T_186800 = eq(dtlb.req.ready, UInt<1>(0))
+ node T_186801 = eq(cpu.req.bits.phys, UInt<1>(0))
+ node T_186802 = and(T_186800, T_186801)
+ when T_186802 : cpu.req.ready := UInt<1>(0)
+ when cpu.req.valid : s1_req := cpu.req.bits
+ when wb.meta_read.valid :
+ node T_186803 = cat(wb.meta_read.bits.tag, wb.meta_read.bits.idx)
+ node T_186804 = shl(T_186803, 6)
+ s1_req.addr := T_186804
+ s1_req.phys := UInt<1>(1)
+ when prober.meta_read.valid :
+ node T_186805 = cat(prober.meta_read.bits.tag, prober.meta_read.bits.idx)
+ node T_186806 = shl(T_186805, 6)
+ s1_req.addr := T_186806
+ s1_req.phys := UInt<1>(1)
+ when mshrs.replay.valid : s1_req := mshrs.replay.bits
+ when s2_recycle : s1_req := s2_req
+ node T_186807 = bits(s1_req.addr, 11, 0)
+ node s1_addr = cat(dtlb.resp.ppn, T_186807)
+ when s1_clk_en :
+ s2_req.kill := s1_req.kill
+ s2_req.typ := s1_req.typ
+ s2_req.phys := s1_req.phys
+ s2_req.addr := s1_addr
+ when s1_write :
+ wire T_186808 : UInt<64>
+ T_186808 := cpu.req.bits.data
+ when s1_replay : T_186808 := mshrs.replay.bits.data
+ s2_req.data := T_186808
+ when s1_recycled : s2_req.data := s1_req.data
+ s2_req.tag := s1_req.tag
+ s2_req.cmd := s1_req.cmd
+ node T_186809 = eq(s1_req.typ, UInt<3>(1))
+ node T_186810 = eq(s1_req.typ, UInt<3>(5))
+ node T_186811 = or(T_186809, T_186810)
+ node T_186812 = bit(s1_req.addr, 0)
+ node T_186813 = neq(T_186812, UInt<1>(0))
+ node T_186814 = and(T_186811, T_186813)
+ node T_186815 = eq(s1_req.typ, UInt<3>(2))
+ node T_186816 = eq(s1_req.typ, UInt<3>(6))
+ node T_186817 = or(T_186815, T_186816)
+ node T_186818 = bits(s1_req.addr, 1, 0)
+ node T_186819 = neq(T_186818, UInt<1>(0))
+ node T_186820 = and(T_186817, T_186819)
+ node T_186821 = or(T_186814, T_186820)
+ node T_186822 = eq(s1_req.typ, UInt<3>(3))
+ node T_186823 = bits(s1_req.addr, 2, 0)
+ node T_186824 = neq(T_186823, UInt<1>(0))
+ node T_186825 = and(T_186822, T_186824)
+ node misaligned = or(T_186821, T_186825)
+ node T_186826 = and(s1_read, misaligned)
+ cpu.xcpt.ma.ld := T_186826
+ node T_186827 = and(s1_write, misaligned)
+ cpu.xcpt.ma.st := T_186827
+ node T_186828 = eq(s1_req.phys, UInt<1>(0))
+ node T_186829 = and(T_186828, s1_read)
+ node T_186830 = and(T_186829, dtlb.resp.xcpt_ld)
+ cpu.xcpt.pf.ld := T_186830
+ node T_186831 = eq(s1_req.phys, UInt<1>(0))
+ node T_186832 = and(T_186831, s1_write)
+ node T_186833 = and(T_186832, dtlb.resp.xcpt_st)
+ cpu.xcpt.pf.st := T_186833
+ node T_186834 = or(cpu.xcpt.ma.ld, cpu.xcpt.ma.st)
+ node T_186835 = or(T_186834, cpu.xcpt.pf.ld)
+ node T_186836 = or(T_186835, cpu.xcpt.pf.st)
+ reg T_186837 : UInt<1>
+ T_186837 := T_186836
+ node T_186838 = and(T_186837, cpu.resp.valid)
+ node T_186839 = eq(T_186838, UInt<1>(0))
+ inst meta of MetadataArray_144779
+ inst metaReadArb of Arbiter_144889
+ wire T_186840 : UInt<3>[3]
+ T_186840[0] := UInt<3>(0)
+ T_186840[1] := UInt<3>(1)
+ T_186840[2] := UInt<3>(2)
+ wire T_186841 : UInt<2>[2]
+ T_186841[0] := UInt<2>(0)
+ T_186841[1] := UInt<2>(1)
+ wire T_186842 : UInt<2>[3]
+ T_186842[0] := UInt<2>(1)
+ T_186842[1] := UInt<2>(2)
+ T_186842[2] := UInt<2>(3)
+ wire T_186843 : UInt<2>[2]
+ T_186843[0] := UInt<2>(2)
+ T_186843[1] := UInt<2>(3)
+ wire T_186844 : UInt<2>[1]
+ T_186844[0] := UInt<2>(3)
+ wire T_186845 : UInt<3>[3]
+ T_186845[0] := UInt<3>(0)
+ T_186845[1] := UInt<3>(1)
+ T_186845[2] := UInt<3>(2)
+ wire T_186846 : UInt<2>[2]
+ T_186846[0] := UInt<2>(0)
+ T_186846[1] := UInt<2>(1)
+ wire T_186847 : UInt<2>[3]
+ T_186847[0] := UInt<2>(1)
+ T_186847[1] := UInt<2>(2)
+ T_186847[2] := UInt<2>(3)
+ wire T_186848 : UInt<2>[2]
+ T_186848[0] := UInt<2>(2)
+ T_186848[1] := UInt<2>(3)
+ wire T_186849 : UInt<2>[1]
+ T_186849[0] := UInt<2>(3)
+ inst metaWriteArb of Arbiter_145479
+ metaReadArb.out <> meta.read
+ metaWriteArb.out <> meta.write
+ inst data of DataArray
+ inst readArb of Arbiter_145852
+ inst writeArb of Arbiter_145932
+ data.write.valid := writeArb.out.valid
+ writeArb.out.ready := data.write.ready
+ data.write.bits := writeArb.out.bits
+ node T_186850 = bits(writeArb.out.bits.data, 63, 0)
+ node T_186851 = bits(writeArb.out.bits.data, 127, 64)
+ wire T_186852 : UInt<64>[2]
+ T_186852[0] := T_186850
+ T_186852[1] := T_186851
+ node T_186853 = cat(T_186852[1], T_186852[0])
+ data.write.bits.data := T_186853
+ metaReadArb.in[4].valid := cpu.req.valid
+ node T_186854 = shr(cpu.req.bits.addr, 6)
+ metaReadArb.in[4].bits.idx := T_186854
+
+ node T_186855 = eq(metaReadArb.in[4].ready, UInt<1>(0))
+ when T_186855 : cpu.req.ready := UInt<1>(0)
+ readArb.in[3].valid := cpu.req.valid
+ readArb.in[3].bits.addr := cpu.req.bits.addr
+ readArb.in[3].bits.way_en := SInt<1>(-1)
+
+ node T_186856 = eq(readArb.in[3].ready, UInt<1>(0))
+ when T_186856 : cpu.req.ready := UInt<1>(0)
+ metaReadArb.in[0].valid := s2_recycle
+ node T_186857 = shr(s2_req.addr, 6)
+ metaReadArb.in[0].bits.idx := T_186857
+ readArb.in[0].valid := s2_recycle
+ readArb.in[0].bits.addr := s2_req.addr
+ readArb.in[0].bits.way_en := SInt<1>(-1)
+ node T_186858 = shr(s1_addr, 12)
+ node T_186859 = eq(meta.resp[0].tag, T_186858)
+ node T_186860 = shr(s1_addr, 12)
+ node T_186861 = eq(meta.resp[1].tag, T_186860)
+ node T_186862 = shr(s1_addr, 12)
+ node T_186863 = eq(meta.resp[2].tag, T_186862)
+ node T_186864 = shr(s1_addr, 12)
+ node T_186865 = eq(meta.resp[3].tag, T_186864)
+ wire T_186866 : UInt<1>[4]
+ T_186866[0] := T_186859
+ T_186866[1] := T_186861
+ T_186866[2] := T_186863
+ T_186866[3] := T_186865
+ node T_186867 = cat(T_186866[3], T_186866[2])
+ node T_186868 = cat(T_186866[1], T_186866[0])
+ node s1_tag_eq_way = cat(T_186867, T_186868)
+ node T_186869 = bit(s1_tag_eq_way, 0)
+ node T_186870 = neq(meta.resp[0].coh.state, UInt<2>(0))
+ node T_186871 = and(T_186869, T_186870)
+ node T_186872 = bit(s1_tag_eq_way, 1)
+ node T_186873 = neq(meta.resp[1].coh.state, UInt<2>(0))
+ node T_186874 = and(T_186872, T_186873)
+ node T_186875 = bit(s1_tag_eq_way, 2)
+ node T_186876 = neq(meta.resp[2].coh.state, UInt<2>(0))
+ node T_186877 = and(T_186875, T_186876)
+ node T_186878 = bit(s1_tag_eq_way, 3)
+ node T_186879 = neq(meta.resp[3].coh.state, UInt<2>(0))
+ node T_186880 = and(T_186878, T_186879)
+ wire T_186881 : UInt<1>[4]
+ T_186881[0] := T_186871
+ T_186881[1] := T_186874
+ T_186881[2] := T_186877
+ T_186881[3] := T_186880
+ node T_186882 = cat(T_186881[3], T_186881[2])
+ node T_186883 = cat(T_186881[1], T_186881[0])
+ node s1_tag_match_way = cat(T_186882, T_186883)
+ s1_clk_en := metaReadArb.out.valid
+ node T_186884 = eq(s1_valid, UInt<1>(0))
+ node T_186885 = and(s1_clk_en, T_186884)
+ node T_186886 = eq(s1_replay, UInt<1>(0))
+ node s1_writeback = and(T_186885, T_186886)
+ reg s2_tag_match_way : UInt<4>
+ when s1_clk_en : s2_tag_match_way := s1_tag_match_way
+ node T_186887 = eq(s2_tag_match_way, UInt<1>(0))
+ node s2_tag_match = eq(T_186887, UInt<1>(0))
+ wire T_186888 : UInt<3>[3]
+ T_186888[0] := UInt<3>(0)
+ T_186888[1] := UInt<3>(1)
+ T_186888[2] := UInt<3>(2)
+ wire T_186889 : UInt<2>[2]
+ T_186889[0] := UInt<2>(0)
+ T_186889[1] := UInt<2>(1)
+ wire T_186890 : UInt<2>[3]
+ T_186890[0] := UInt<2>(1)
+ T_186890[1] := UInt<2>(2)
+ T_186890[2] := UInt<2>(3)
+ wire T_186891 : UInt<2>[2]
+ T_186891[0] := UInt<2>(2)
+ T_186891[1] := UInt<2>(3)
+ wire T_186892 : UInt<2>[1]
+ T_186892[0] := UInt<2>(3)
+ reg T_186893 : {state : UInt<2>, makeRelease$default$2 : UInt<1>, makeRelease$default$3 : UInt<1>, makeVoluntaryRelease$default$4 : UInt<1>, makeVoluntaryRelease$default$5 : UInt<1>, makeVoluntaryWriteback$default$3 : UInt<1>, makeVoluntaryWriteback$default$4 : UInt<1>}
+ when s1_clk_en : T_186893 := meta.resp[0].coh
+ wire T_186894 : UInt<3>[3]
+ T_186894[0] := UInt<3>(0)
+ T_186894[1] := UInt<3>(1)
+ T_186894[2] := UInt<3>(2)
+ wire T_186895 : UInt<2>[2]
+ T_186895[0] := UInt<2>(0)
+ T_186895[1] := UInt<2>(1)
+ wire T_186896 : UInt<2>[3]
+ T_186896[0] := UInt<2>(1)
+ T_186896[1] := UInt<2>(2)
+ T_186896[2] := UInt<2>(3)
+ wire T_186897 : UInt<2>[2]
+ T_186897[0] := UInt<2>(2)
+ T_186897[1] := UInt<2>(3)
+ wire T_186898 : UInt<2>[1]
+ T_186898[0] := UInt<2>(3)
+ reg T_186899 : {state : UInt<2>, makeRelease$default$2 : UInt<1>, makeRelease$default$3 : UInt<1>, makeVoluntaryRelease$default$4 : UInt<1>, makeVoluntaryRelease$default$5 : UInt<1>, makeVoluntaryWriteback$default$3 : UInt<1>, makeVoluntaryWriteback$default$4 : UInt<1>}
+ when s1_clk_en : T_186899 := meta.resp[1].coh
+ wire T_186900 : UInt<3>[3]
+ T_186900[0] := UInt<3>(0)
+ T_186900[1] := UInt<3>(1)
+ T_186900[2] := UInt<3>(2)
+ wire T_186901 : UInt<2>[2]
+ T_186901[0] := UInt<2>(0)
+ T_186901[1] := UInt<2>(1)
+ wire T_186902 : UInt<2>[3]
+ T_186902[0] := UInt<2>(1)
+ T_186902[1] := UInt<2>(2)
+ T_186902[2] := UInt<2>(3)
+ wire T_186903 : UInt<2>[2]
+ T_186903[0] := UInt<2>(2)
+ T_186903[1] := UInt<2>(3)
+ wire T_186904 : UInt<2>[1]
+ T_186904[0] := UInt<2>(3)
+ reg T_186905 : {state : UInt<2>, makeRelease$default$2 : UInt<1>, makeRelease$default$3 : UInt<1>, makeVoluntaryRelease$default$4 : UInt<1>, makeVoluntaryRelease$default$5 : UInt<1>, makeVoluntaryWriteback$default$3 : UInt<1>, makeVoluntaryWriteback$default$4 : UInt<1>}
+ when s1_clk_en : T_186905 := meta.resp[2].coh
+ wire T_186906 : UInt<3>[3]
+ T_186906[0] := UInt<3>(0)
+ T_186906[1] := UInt<3>(1)
+ T_186906[2] := UInt<3>(2)
+ wire T_186907 : UInt<2>[2]
+ T_186907[0] := UInt<2>(0)
+ T_186907[1] := UInt<2>(1)
+ wire T_186908 : UInt<2>[3]
+ T_186908[0] := UInt<2>(1)
+ T_186908[1] := UInt<2>(2)
+ T_186908[2] := UInt<2>(3)
+ wire T_186909 : UInt<2>[2]
+ T_186909[0] := UInt<2>(2)
+ T_186909[1] := UInt<2>(3)
+ wire T_186910 : UInt<2>[1]
+ T_186910[0] := UInt<2>(3)
+ reg T_186911 : {state : UInt<2>, makeRelease$default$2 : UInt<1>, makeRelease$default$3 : UInt<1>, makeVoluntaryRelease$default$4 : UInt<1>, makeVoluntaryRelease$default$5 : UInt<1>, makeVoluntaryWriteback$default$3 : UInt<1>, makeVoluntaryWriteback$default$4 : UInt<1>}
+ when s1_clk_en : T_186911 := meta.resp[3].coh
+ wire T_186912 : UInt<3>[3]
+ T_186912[0] := UInt<3>(0)
+ T_186912[1] := UInt<3>(1)
+ T_186912[2] := UInt<3>(2)
+ wire T_186913 : UInt<2>[2]
+ T_186913[0] := UInt<2>(0)
+ T_186913[1] := UInt<2>(1)
+ wire T_186914 : UInt<2>[3]
+ T_186914[0] := UInt<2>(1)
+ T_186914[1] := UInt<2>(2)
+ T_186914[2] := UInt<2>(3)
+ wire T_186915 : UInt<2>[2]
+ T_186915[0] := UInt<2>(2)
+ T_186915[1] := UInt<2>(3)
+ wire T_186916 : UInt<2>[1]
+ T_186916[0] := UInt<2>(3)
+ wire T_186917 : UInt<3>[3]
+ T_186917[0] := UInt<3>(0)
+ T_186917[1] := UInt<3>(1)
+ T_186917[2] := UInt<3>(2)
+ wire T_186918 : UInt<2>[2]
+ T_186918[0] := UInt<2>(0)
+ T_186918[1] := UInt<2>(1)
+ wire T_186919 : UInt<2>[3]
+ T_186919[0] := UInt<2>(1)
+ T_186919[1] := UInt<2>(2)
+ T_186919[2] := UInt<2>(3)
+ wire T_186920 : UInt<2>[2]
+ T_186920[0] := UInt<2>(2)
+ T_186920[1] := UInt<2>(3)
+ wire T_186921 : UInt<2>[1]
+ T_186921[0] := UInt<2>(3)
+ wire T_186922 : UInt<3>[3]
+ T_186922[0] := UInt<3>(0)
+ T_186922[1] := UInt<3>(1)
+ T_186922[2] := UInt<3>(2)
+ wire T_186923 : UInt<2>[2]
+ T_186923[0] := UInt<2>(0)
+ T_186923[1] := UInt<2>(1)
+ wire T_186924 : UInt<2>[3]
+ T_186924[0] := UInt<2>(1)
+ T_186924[1] := UInt<2>(2)
+ T_186924[2] := UInt<2>(3)
+ wire T_186925 : UInt<2>[2]
+ T_186925[0] := UInt<2>(2)
+ T_186925[1] := UInt<2>(3)
+ wire T_186926 : UInt<2>[1]
+ T_186926[0] := UInt<2>(3)
+ wire T_186927 : UInt<3>[3]
+ T_186927[0] := UInt<3>(0)
+ T_186927[1] := UInt<3>(1)
+ T_186927[2] := UInt<3>(2)
+ wire T_186928 : UInt<2>[2]
+ T_186928[0] := UInt<2>(0)
+ T_186928[1] := UInt<2>(1)
+ wire T_186929 : UInt<2>[3]
+ T_186929[0] := UInt<2>(1)
+ T_186929[1] := UInt<2>(2)
+ T_186929[2] := UInt<2>(3)
+ wire T_186930 : UInt<2>[2]
+ T_186930[0] := UInt<2>(2)
+ T_186930[1] := UInt<2>(3)
+ wire T_186931 : UInt<2>[1]
+ T_186931[0] := UInt<2>(3)
+ wire T_186932 : {state : UInt<2>, makeRelease$default$2 : UInt<1>, makeRelease$default$3 : UInt<1>, makeVoluntaryRelease$default$4 : UInt<1>, makeVoluntaryRelease$default$5 : UInt<1>, makeVoluntaryWriteback$default$3 : UInt<1>, makeVoluntaryWriteback$default$4 : UInt<1>}[4]
+ T_186932[0] := T_186893
+ T_186932[1] := T_186899
+ T_186932[2] := T_186905
+ T_186932[3] := T_186911
+ node T_186933 = bit(s2_tag_match_way, 0)
+ node T_186934 = bit(s2_tag_match_way, 1)
+ node T_186935 = bit(s2_tag_match_way, 2)
+ node T_186936 = bit(s2_tag_match_way, 3)
+ node T_186937 = cat(T_186932[0].state, UInt<2>(0))
+ node T_186938 = cat(T_186937, UInt<4>(0))
+ wire T_186939 : UInt<1>
+ T_186939 := UInt<1>(0)
+ when T_186933 : T_186939 := T_186938
+ node T_186940 = cat(T_186932[1].state, UInt<2>(0))
+ node T_186941 = cat(T_186940, UInt<4>(0))
+ wire T_186942 : UInt<1>
+ T_186942 := UInt<1>(0)
+ when T_186934 : T_186942 := T_186941
+ node T_186943 = cat(T_186932[2].state, UInt<2>(0))
+ node T_186944 = cat(T_186943, UInt<4>(0))
+ wire T_186945 : UInt<1>
+ T_186945 := UInt<1>(0)
+ when T_186935 : T_186945 := T_186944
+ node T_186946 = cat(T_186932[3].state, UInt<2>(0))
+ node T_186947 = cat(T_186946, UInt<4>(0))
+ wire T_186948 : UInt<1>
+ T_186948 := UInt<1>(0)
+ when T_186936 : T_186948 := T_186947
+ node T_186949 = or(T_186939, T_186942)
+ node T_186950 = or(T_186949, T_186945)
+ node T_186951 = or(T_186950, T_186948)
+ wire T_186952 : UInt<3>[3]
+ T_186952[0] := UInt<3>(0)
+ T_186952[1] := UInt<3>(1)
+ T_186952[2] := UInt<3>(2)
+ wire T_186953 : UInt<2>[2]
+ T_186953[0] := UInt<2>(0)
+ T_186953[1] := UInt<2>(1)
+ wire T_186954 : UInt<2>[3]
+ T_186954[0] := UInt<2>(1)
+ T_186954[1] := UInt<2>(2)
+ T_186954[2] := UInt<2>(3)
+ wire T_186955 : UInt<2>[2]
+ T_186955[0] := UInt<2>(2)
+ T_186955[1] := UInt<2>(3)
+ wire T_186956 : UInt<2>[1]
+ T_186956[0] := UInt<2>(3)
+ wire T_186957 : UInt<3>[3]
+ T_186957[0] := UInt<3>(0)
+ T_186957[1] := UInt<3>(1)
+ T_186957[2] := UInt<3>(2)
+ wire T_186958 : UInt<2>[2]
+ T_186958[0] := UInt<2>(0)
+ T_186958[1] := UInt<2>(1)
+ wire T_186959 : UInt<2>[3]
+ T_186959[0] := UInt<2>(1)
+ T_186959[1] := UInt<2>(2)
+ T_186959[2] := UInt<2>(3)
+ wire T_186960 : UInt<2>[2]
+ T_186960[0] := UInt<2>(2)
+ T_186960[1] := UInt<2>(3)
+ wire T_186961 : UInt<2>[1]
+ T_186961[0] := UInt<2>(3)
+ wire s2_hit_state : {state : UInt<2>, makeRelease$default$2 : UInt<1>, makeRelease$default$3 : UInt<1>, makeVoluntaryRelease$default$4 : UInt<1>, makeVoluntaryRelease$default$5 : UInt<1>, makeVoluntaryWriteback$default$3 : UInt<1>, makeVoluntaryWriteback$default$4 : UInt<1>}
+ node T_186962 = bits(T_186951, 0, 0)
+ s2_hit_state.makeVoluntaryWriteback$default$4 := T_186962
+ node T_186963 = bits(T_186951, 1, 1)
+ s2_hit_state.makeVoluntaryWriteback$default$3 := T_186963
+ node T_186964 = bits(T_186951, 2, 2)
+ s2_hit_state.makeVoluntaryRelease$default$5 := T_186964
+ node T_186965 = bits(T_186951, 3, 3)
+ s2_hit_state.makeVoluntaryRelease$default$4 := T_186965
+ node T_186966 = bits(T_186951, 4, 4)
+ s2_hit_state.makeRelease$default$3 := T_186966
+ node T_186967 = bits(T_186951, 5, 5)
+ s2_hit_state.makeRelease$default$2 := T_186967
+ node T_186968 = bits(T_186951, 7, 6)
+ s2_hit_state.state := T_186968
+ node T_186969 = eq(s2_req.cmd, UInt<5>(1))
+ node T_186970 = eq(s2_req.cmd, UInt<5>(7))
+ node T_186971 = or(T_186969, T_186970)
+ node T_186972 = bit(s2_req.cmd, 3)
+ node T_186973 = eq(s2_req.cmd, UInt<5>(4))
+ node T_186974 = or(T_186972, T_186973)
+ node T_186975 = or(T_186971, T_186974)
+ node T_186976 = eq(s2_req.cmd, UInt<5>(3))
+ node T_186977 = or(T_186975, T_186976)
+ node T_186978 = eq(s2_req.cmd, UInt<5>(6))
+ node T_186979 = or(T_186977, T_186978)
+ node T_186980 = eq(T_186960[0], s2_hit_state.state)
+ node T_186981 = eq(T_186960[1], s2_hit_state.state)
+ node T_186982 = or(UInt<1>(0), T_186980)
+ node T_186983 = or(T_186982, T_186981)
+ node T_186984 = eq(T_186959[0], s2_hit_state.state)
+ node T_186985 = eq(T_186959[1], s2_hit_state.state)
+ node T_186986 = eq(T_186959[2], s2_hit_state.state)
+ node T_186987 = or(UInt<1>(0), T_186984)
+ node T_186988 = or(T_186987, T_186985)
+ node T_186989 = or(T_186988, T_186986)
+ wire T_186990 : UInt<1>
+ T_186990 := T_186989
+ when T_186979 : T_186990 := T_186983
+ node T_186991 = and(s2_tag_match, T_186990)
+ node T_186992 = eq(s2_req.cmd, UInt<5>(1))
+ node T_186993 = eq(s2_req.cmd, UInt<5>(7))
+ node T_186994 = or(T_186992, T_186993)
+ node T_186995 = bit(s2_req.cmd, 3)
+ node T_186996 = eq(s2_req.cmd, UInt<5>(4))
+ node T_186997 = or(T_186995, T_186996)
+ node T_186998 = or(T_186994, T_186997)
+ wire T_186999 : UInt<2>
+ T_186999 := s2_hit_state.state
+ when T_186998 : T_186999 := UInt<2>(3)
+ wire T_187000 : UInt<3>[3]
+ T_187000[0] := UInt<3>(0)
+ T_187000[1] := UInt<3>(1)
+ T_187000[2] := UInt<3>(2)
+ wire T_187001 : UInt<2>[2]
+ T_187001[0] := UInt<2>(0)
+ T_187001[1] := UInt<2>(1)
+ wire T_187002 : UInt<2>[3]
+ T_187002[0] := UInt<2>(1)
+ T_187002[1] := UInt<2>(2)
+ T_187002[2] := UInt<2>(3)
+ wire T_187003 : UInt<2>[2]
+ T_187003[0] := UInt<2>(2)
+ T_187003[1] := UInt<2>(3)
+ wire T_187004 : UInt<2>[1]
+ T_187004[0] := UInt<2>(3)
+ wire T_187005 : UInt<3>[3]
+ T_187005[0] := UInt<3>(0)
+ T_187005[1] := UInt<3>(1)
+ T_187005[2] := UInt<3>(2)
+ wire T_187006 : UInt<2>[2]
+ T_187006[0] := UInt<2>(0)
+ T_187006[1] := UInt<2>(1)
+ wire T_187007 : UInt<2>[3]
+ T_187007[0] := UInt<2>(1)
+ T_187007[1] := UInt<2>(2)
+ T_187007[2] := UInt<2>(3)
+ wire T_187008 : UInt<2>[2]
+ T_187008[0] := UInt<2>(2)
+ T_187008[1] := UInt<2>(3)
+ wire T_187009 : UInt<2>[1]
+ T_187009[0] := UInt<2>(3)
+ wire T_187010 : {state : UInt<2>, makeRelease$default$2 : UInt<1>, makeRelease$default$3 : UInt<1>, makeVoluntaryRelease$default$4 : UInt<1>, makeVoluntaryRelease$default$5 : UInt<1>, makeVoluntaryWriteback$default$3 : UInt<1>, makeVoluntaryWriteback$default$4 : UInt<1>}
+ T_187010.state := T_186999
+ node T_187011 = eq(s2_hit_state.state, T_187010.state)
+ node s2_hit = and(T_186991, T_187011)
+ reg lrsc_count : UInt<1>
+ onreset lrsc_count := UInt<1>(0)
+ node T_187012 = eq(lrsc_count, UInt<1>(0))
+ node lrsc_valid = eq(T_187012, UInt<1>(0))
+ reg lrsc_addr : UInt
+ node s2_lr = eq(s2_req.cmd, UInt<5>(6))
+ node s2_sc = eq(s2_req.cmd, UInt<5>(7))
+ node T_187013 = shr(s2_req.addr, 6)
+ node T_187014 = eq(lrsc_addr, T_187013)
+ node s2_lrsc_addr_match = and(lrsc_valid, T_187014)
+ node T_187015 = eq(s2_lrsc_addr_match, UInt<1>(0))
+ node s2_sc_fail = and(s2_sc, T_187015)
+ when lrsc_valid :
+ node T_187016 = subw(lrsc_count, UInt<1>(1))
+ lrsc_count := T_187016
+
+
+ node T_187017 = and(s2_valid_masked, s2_hit)
+ node T_187018 = or(T_187017, s2_replay)
+ when T_187018 :
+ when s2_lr :
+
+ node T_187019 = eq(lrsc_valid, UInt<1>(0))
+ when T_187019 : lrsc_count := UInt<5>(31)
+ node T_187020 = shr(s2_req.addr, 6)
+ lrsc_addr := T_187020
+ when s2_sc : lrsc_count := UInt<1>(0)
+ when cpu.invalidate_lr : lrsc_count := UInt<1>(0)
+ wire s2_data : UInt<128>[4]
+ wire T_187021 : UInt<64>[2]
+ T_187021[0] := T_187022
+ T_187021[1] := T_187023
+ reg T_187024 : UInt<64>[2]
+ node T_187025 = bit(s1_tag_eq_way, 0)
+ node T_187026 = and(s1_clk_en, T_187025)
+ node T_187027 = eq(UInt<1>(1), UInt<1>(0))
+ node T_187028 = or(UInt<1>(1), T_187027)
+ node T_187029 = or(T_187028, s1_writeback)
+ node T_187030 = and(T_187026, T_187029)
+ when T_187030 :
+ node T_187031 = shr(data.resp[0], 0)
+ T_187024[0] := T_187031
+ node T_187032 = eq(UInt<1>(1), UInt<1>(0))
+ node T_187033 = or(UInt<1>(0), T_187032)
+ node T_187034 = or(T_187033, s1_writeback)
+ node T_187035 = and(T_187026, T_187034)
+ when T_187035 :
+ node T_187036 = shr(data.resp[0], 64)
+ T_187024[1] := T_187036
+ node T_187037 = cat(T_187024[1], T_187024[0])
+ s2_data[0] := T_187037
+ wire T_187038 : UInt<64>[2]
+ T_187038[0] := T_187039
+ T_187038[1] := T_187040
+ reg T_187041 : UInt<64>[2]
+ node T_187042 = bit(s1_tag_eq_way, 1)
+ node T_187043 = and(s1_clk_en, T_187042)
+ node T_187044 = eq(UInt<1>(1), UInt<1>(0))
+ node T_187045 = or(UInt<1>(1), T_187044)
+ node T_187046 = or(T_187045, s1_writeback)
+ node T_187047 = and(T_187043, T_187046)
+ when T_187047 :
+ node T_187048 = shr(data.resp[1], 0)
+ T_187041[0] := T_187048
+ node T_187049 = eq(UInt<1>(1), UInt<1>(0))
+ node T_187050 = or(UInt<1>(0), T_187049)
+ node T_187051 = or(T_187050, s1_writeback)
+ node T_187052 = and(T_187043, T_187051)
+ when T_187052 :
+ node T_187053 = shr(data.resp[1], 64)
+ T_187041[1] := T_187053
+ node T_187054 = cat(T_187041[1], T_187041[0])
+ s2_data[1] := T_187054
+ wire T_187055 : UInt<64>[2]
+ T_187055[0] := T_187056
+ T_187055[1] := T_187057
+ reg T_187058 : UInt<64>[2]
+ node T_187059 = bit(s1_tag_eq_way, 2)
+ node T_187060 = and(s1_clk_en, T_187059)
+ node T_187061 = eq(UInt<1>(1), UInt<1>(0))
+ node T_187062 = or(UInt<1>(1), T_187061)
+ node T_187063 = or(T_187062, s1_writeback)
+ node T_187064 = and(T_187060, T_187063)
+ when T_187064 :
+ node T_187065 = shr(data.resp[2], 0)
+ T_187058[0] := T_187065
+ node T_187066 = eq(UInt<1>(1), UInt<1>(0))
+ node T_187067 = or(UInt<1>(0), T_187066)
+ node T_187068 = or(T_187067, s1_writeback)
+ node T_187069 = and(T_187060, T_187068)
+ when T_187069 :
+ node T_187070 = shr(data.resp[2], 64)
+ T_187058[1] := T_187070
+ node T_187071 = cat(T_187058[1], T_187058[0])
+ s2_data[2] := T_187071
+ wire T_187072 : UInt<64>[2]
+ T_187072[0] := T_187073
+ T_187072[1] := T_187074
+ reg T_187075 : UInt<64>[2]
+ node T_187076 = bit(s1_tag_eq_way, 3)
+ node T_187077 = and(s1_clk_en, T_187076)
+ node T_187078 = eq(UInt<1>(1), UInt<1>(0))
+ node T_187079 = or(UInt<1>(1), T_187078)
+ node T_187080 = or(T_187079, s1_writeback)
+ node T_187081 = and(T_187077, T_187080)
+ when T_187081 :
+ node T_187082 = shr(data.resp[3], 0)
+ T_187075[0] := T_187082
+ node T_187083 = eq(UInt<1>(1), UInt<1>(0))
+ node T_187084 = or(UInt<1>(0), T_187083)
+ node T_187085 = or(T_187084, s1_writeback)
+ node T_187086 = and(T_187077, T_187085)
+ when T_187086 :
+ node T_187087 = shr(data.resp[3], 64)
+ T_187075[1] := T_187087
+ node T_187088 = cat(T_187075[1], T_187075[0])
+ s2_data[3] := T_187088
+ node T_187089 = bit(s2_tag_match_way, 0)
+ node T_187090 = bit(s2_tag_match_way, 1)
+ node T_187091 = bit(s2_tag_match_way, 2)
+ node T_187092 = bit(s2_tag_match_way, 3)
+ wire T_187093 : UInt<1>
+ T_187093 := UInt<1>(0)
+ when T_187089 : T_187093 := s2_data[0]
+ wire T_187094 : UInt<1>
+ T_187094 := UInt<1>(0)
+ when T_187090 : T_187094 := s2_data[1]
+ wire T_187095 : UInt<1>
+ T_187095 := UInt<1>(0)
+ when T_187091 : T_187095 := s2_data[2]
+ wire T_187096 : UInt<1>
+ T_187096 := UInt<1>(0)
+ when T_187092 : T_187096 := s2_data[3]
+ node T_187097 = or(T_187093, T_187094)
+ node T_187098 = or(T_187097, T_187095)
+ node T_187099 = or(T_187098, T_187096)
+ wire s2_data_muxed : UInt<128>
+ node T_187100 = bits(T_187099, 127, 0)
+ s2_data_muxed := T_187100
+ node T_187101 = bits(s2_data_muxed, 63, 0)
+ node T_187102 = bits(s2_data_muxed, 127, 64)
+ wire T_187103 : UInt<64>[2]
+ T_187103[0] := T_187101
+ T_187103[1] := T_187102
+ node s2_data_corrected = cat(T_187103[1], T_187103[0])
+ wire T_187104 : UInt<64>[2]
+ T_187104[0] := T_187101
+ T_187104[1] := T_187102
+ node s2_data_uncorrected = cat(T_187104[1], T_187104[0])
+ wire T_187105 : UInt<1>[2]
+ T_187105[0] := UInt<1>(0)
+ T_187105[1] := UInt<1>(0)
+ node T_187106 = cat(T_187105[1], T_187105[0])
+ node T_187107 = dshr(T_187106, UInt<1>(0))
+ node s2_data_correctable = bit(T_187107, 0)
+ node T_187108 = and(s2_valid_masked, s2_hit)
+ node T_187109 = or(T_187108, s2_replay)
+ node T_187110 = eq(s2_sc_fail, UInt<1>(0))
+ node T_187111 = and(T_187109, T_187110)
+ node T_187112 = eq(s2_req.cmd, UInt<5>(1))
+ node T_187113 = eq(s2_req.cmd, UInt<5>(7))
+ node T_187114 = or(T_187112, T_187113)
+ node T_187115 = bit(s2_req.cmd, 3)
+ node T_187116 = eq(s2_req.cmd, UInt<5>(4))
+ node T_187117 = or(T_187115, T_187116)
+ node T_187118 = or(T_187114, T_187117)
+ node T_187119 = and(T_187111, T_187118)
+ s3_valid := T_187119
+ inst amoalu of AMOALU_147223
+
+
+ node T_187120 = or(s2_valid, s2_replay)
+ node T_187121 = eq(s2_req.cmd, UInt<5>(1))
+ node T_187122 = eq(s2_req.cmd, UInt<5>(7))
+ node T_187123 = or(T_187121, T_187122)
+ node T_187124 = bit(s2_req.cmd, 3)
+ node T_187125 = eq(s2_req.cmd, UInt<5>(4))
+ node T_187126 = or(T_187124, T_187125)
+ node T_187127 = or(T_187123, T_187126)
+ node T_187128 = or(T_187127, s2_data_correctable)
+ node T_187129 = and(T_187120, T_187128)
+ when T_187129 :
+ s3_req := s2_req
+ wire T_187130 : UInt<64>
+ T_187130 := amoalu.out
+ when s2_data_correctable : T_187130 := s2_data_corrected
+ s3_req.data := T_187130
+ s3_way := s2_tag_match_way
+ writeArb.in[0].bits.addr := s3_req.addr
+ node rowIdx = bits(s3_req.addr, 3, 3)
+ node rowWMask = dshl(UInt<1>(1), rowIdx)
+ writeArb.in[0].bits.wmask := rowWMask
+ node T_187131 = cat(s3_req.data, s3_req.data)
+ writeArb.in[0].bits.data := T_187131
+ writeArb.in[0].valid := s3_valid
+ writeArb.in[0].bits.way_en := s3_way
+ wire T_187132 : UInt<1>
+ T_187132 := UInt<1>(0)
+ reg T_187133 : UInt<16>
+ onreset T_187133 := UInt<16>(1)
+ when T_187132 :
+ node T_187134 = bit(T_187133, 0)
+ node T_187135 = bit(T_187133, 2)
+ node T_187136 = xor(T_187134, T_187135)
+ node T_187137 = bit(T_187133, 3)
+ node T_187138 = xor(T_187136, T_187137)
+ node T_187139 = bit(T_187133, 5)
+ node T_187140 = xor(T_187138, T_187139)
+ node T_187141 = bits(T_187133, 15, 1)
+ node T_187142 = cat(T_187140, T_187141)
+ T_187133 := T_187142
+ node T_187143 = bits(T_187133, 1, 0)
+ node s1_replaced_way_en = dshl(UInt<1>(1), T_187143)
+ node T_187144 = bits(T_187133, 1, 0)
+ reg T_187145 : UInt<2>
+ when s1_clk_en : T_187145 := T_187144
+ node s2_replaced_way_en = dshl(UInt<1>(1), T_187145)
+ node T_187146 = bit(s1_replaced_way_en, 0)
+ node T_187147 = and(s1_clk_en, T_187146)
+ wire T_187148 : UInt<3>[3]
+ T_187148[0] := UInt<3>(0)
+ T_187148[1] := UInt<3>(1)
+ T_187148[2] := UInt<3>(2)
+ wire T_187149 : UInt<2>[2]
+ T_187149[0] := UInt<2>(0)
+ T_187149[1] := UInt<2>(1)
+ wire T_187150 : UInt<2>[3]
+ T_187150[0] := UInt<2>(1)
+ T_187150[1] := UInt<2>(2)
+ T_187150[2] := UInt<2>(3)
+ wire T_187151 : UInt<2>[2]
+ T_187151[0] := UInt<2>(2)
+ T_187151[1] := UInt<2>(3)
+ wire T_187152 : UInt<2>[1]
+ T_187152[0] := UInt<2>(3)
+ reg T_187153 : {tag : UInt<20>, coh : {state : UInt<2>, makeRelease$default$2 : UInt<1>, makeRelease$default$3 : UInt<1>, makeVoluntaryRelease$default$4 : UInt<1>, makeVoluntaryRelease$default$5 : UInt<1>, makeVoluntaryWriteback$default$3 : UInt<1>, makeVoluntaryWriteback$default$4 : UInt<1>}}
+ when T_187147 : T_187153 := meta.resp[0]
+ node T_187154 = bit(s1_replaced_way_en, 1)
+ node T_187155 = and(s1_clk_en, T_187154)
+ wire T_187156 : UInt<3>[3]
+ T_187156[0] := UInt<3>(0)
+ T_187156[1] := UInt<3>(1)
+ T_187156[2] := UInt<3>(2)
+ wire T_187157 : UInt<2>[2]
+ T_187157[0] := UInt<2>(0)
+ T_187157[1] := UInt<2>(1)
+ wire T_187158 : UInt<2>[3]
+ T_187158[0] := UInt<2>(1)
+ T_187158[1] := UInt<2>(2)
+ T_187158[2] := UInt<2>(3)
+ wire T_187159 : UInt<2>[2]
+ T_187159[0] := UInt<2>(2)
+ T_187159[1] := UInt<2>(3)
+ wire T_187160 : UInt<2>[1]
+ T_187160[0] := UInt<2>(3)
+ reg T_187161 : {tag : UInt<20>, coh : {state : UInt<2>, makeRelease$default$2 : UInt<1>, makeRelease$default$3 : UInt<1>, makeVoluntaryRelease$default$4 : UInt<1>, makeVoluntaryRelease$default$5 : UInt<1>, makeVoluntaryWriteback$default$3 : UInt<1>, makeVoluntaryWriteback$default$4 : UInt<1>}}
+ when T_187155 : T_187161 := meta.resp[1]
+ node T_187162 = bit(s1_replaced_way_en, 2)
+ node T_187163 = and(s1_clk_en, T_187162)
+ wire T_187164 : UInt<3>[3]
+ T_187164[0] := UInt<3>(0)
+ T_187164[1] := UInt<3>(1)
+ T_187164[2] := UInt<3>(2)
+ wire T_187165 : UInt<2>[2]
+ T_187165[0] := UInt<2>(0)
+ T_187165[1] := UInt<2>(1)
+ wire T_187166 : UInt<2>[3]
+ T_187166[0] := UInt<2>(1)
+ T_187166[1] := UInt<2>(2)
+ T_187166[2] := UInt<2>(3)
+ wire T_187167 : UInt<2>[2]
+ T_187167[0] := UInt<2>(2)
+ T_187167[1] := UInt<2>(3)
+ wire T_187168 : UInt<2>[1]
+ T_187168[0] := UInt<2>(3)
+ reg T_187169 : {tag : UInt<20>, coh : {state : UInt<2>, makeRelease$default$2 : UInt<1>, makeRelease$default$3 : UInt<1>, makeVoluntaryRelease$default$4 : UInt<1>, makeVoluntaryRelease$default$5 : UInt<1>, makeVoluntaryWriteback$default$3 : UInt<1>, makeVoluntaryWriteback$default$4 : UInt<1>}}
+ when T_187163 : T_187169 := meta.resp[2]
+ node T_187170 = bit(s1_replaced_way_en, 3)
+ node T_187171 = and(s1_clk_en, T_187170)
+ wire T_187172 : UInt<3>[3]
+ T_187172[0] := UInt<3>(0)
+ T_187172[1] := UInt<3>(1)
+ T_187172[2] := UInt<3>(2)
+ wire T_187173 : UInt<2>[2]
+ T_187173[0] := UInt<2>(0)
+ T_187173[1] := UInt<2>(1)
+ wire T_187174 : UInt<2>[3]
+ T_187174[0] := UInt<2>(1)
+ T_187174[1] := UInt<2>(2)
+ T_187174[2] := UInt<2>(3)
+ wire T_187175 : UInt<2>[2]
+ T_187175[0] := UInt<2>(2)
+ T_187175[1] := UInt<2>(3)
+ wire T_187176 : UInt<2>[1]
+ T_187176[0] := UInt<2>(3)
+ reg T_187177 : {tag : UInt<20>, coh : {state : UInt<2>, makeRelease$default$2 : UInt<1>, makeRelease$default$3 : UInt<1>, makeVoluntaryRelease$default$4 : UInt<1>, makeVoluntaryRelease$default$5 : UInt<1>, makeVoluntaryWriteback$default$3 : UInt<1>, makeVoluntaryWriteback$default$4 : UInt<1>}}
+ when T_187171 : T_187177 := meta.resp[3]
+ wire T_187178 : UInt<3>[3]
+ T_187178[0] := UInt<3>(0)
+ T_187178[1] := UInt<3>(1)
+ T_187178[2] := UInt<3>(2)
+ wire T_187179 : UInt<2>[2]
+ T_187179[0] := UInt<2>(0)
+ T_187179[1] := UInt<2>(1)
+ wire T_187180 : UInt<2>[3]
+ T_187180[0] := UInt<2>(1)
+ T_187180[1] := UInt<2>(2)
+ T_187180[2] := UInt<2>(3)
+ wire T_187181 : UInt<2>[2]
+ T_187181[0] := UInt<2>(2)
+ T_187181[1] := UInt<2>(3)
+ wire T_187182 : UInt<2>[1]
+ T_187182[0] := UInt<2>(3)
+ wire T_187183 : UInt<3>[3]
+ T_187183[0] := UInt<3>(0)
+ T_187183[1] := UInt<3>(1)
+ T_187183[2] := UInt<3>(2)
+ wire T_187184 : UInt<2>[2]
+ T_187184[0] := UInt<2>(0)
+ T_187184[1] := UInt<2>(1)
+ wire T_187185 : UInt<2>[3]
+ T_187185[0] := UInt<2>(1)
+ T_187185[1] := UInt<2>(2)
+ T_187185[2] := UInt<2>(3)
+ wire T_187186 : UInt<2>[2]
+ T_187186[0] := UInt<2>(2)
+ T_187186[1] := UInt<2>(3)
+ wire T_187187 : UInt<2>[1]
+ T_187187[0] := UInt<2>(3)
+ wire T_187188 : UInt<3>[3]
+ T_187188[0] := UInt<3>(0)
+ T_187188[1] := UInt<3>(1)
+ T_187188[2] := UInt<3>(2)
+ wire T_187189 : UInt<2>[2]
+ T_187189[0] := UInt<2>(0)
+ T_187189[1] := UInt<2>(1)
+ wire T_187190 : UInt<2>[3]
+ T_187190[0] := UInt<2>(1)
+ T_187190[1] := UInt<2>(2)
+ T_187190[2] := UInt<2>(3)
+ wire T_187191 : UInt<2>[2]
+ T_187191[0] := UInt<2>(2)
+ T_187191[1] := UInt<2>(3)
+ wire T_187192 : UInt<2>[1]
+ T_187192[0] := UInt<2>(3)
+ wire T_187193 : UInt<3>[3]
+ T_187193[0] := UInt<3>(0)
+ T_187193[1] := UInt<3>(1)
+ T_187193[2] := UInt<3>(2)
+ wire T_187194 : UInt<2>[2]
+ T_187194[0] := UInt<2>(0)
+ T_187194[1] := UInt<2>(1)
+ wire T_187195 : UInt<2>[3]
+ T_187195[0] := UInt<2>(1)
+ T_187195[1] := UInt<2>(2)
+ T_187195[2] := UInt<2>(3)
+ wire T_187196 : UInt<2>[2]
+ T_187196[0] := UInt<2>(2)
+ T_187196[1] := UInt<2>(3)
+ wire T_187197 : UInt<2>[1]
+ T_187197[0] := UInt<2>(3)
+ wire T_187198 : {tag : UInt<20>, coh : {state : UInt<2>, makeRelease$default$2 : UInt<1>, makeRelease$default$3 : UInt<1>, makeVoluntaryRelease$default$4 : UInt<1>, makeVoluntaryRelease$default$5 : UInt<1>, makeVoluntaryWriteback$default$3 : UInt<1>, makeVoluntaryWriteback$default$4 : UInt<1>}}[4]
+ T_187198[0] := T_187153
+ T_187198[1] := T_187161
+ T_187198[2] := T_187169
+ T_187198[3] := T_187177
+ node T_187199 = bit(s2_replaced_way_en, 0)
+ node T_187200 = bit(s2_replaced_way_en, 1)
+ node T_187201 = bit(s2_replaced_way_en, 2)
+ node T_187202 = bit(s2_replaced_way_en, 3)
+ node T_187203 = cat(T_187198[0].coh.state, UInt<1>(0))
+ node T_187204 = cat(T_187198[0].tag, T_187203)
+ node T_187205 = cat(T_187204, UInt<4>(0))
+ node T_187206 = cat(UInt<1>(0), T_187198[0].coh.state)
+ node T_187207 = cat(T_187206, UInt<2>(0))
+ node T_187208 = cat(T_187207, UInt<4>(0))
+ node T_187209 = cat(T_187205, T_187208)
+ wire T_187210 : UInt<1>
+ T_187210 := UInt<1>(0)
+ when T_187199 : T_187210 := T_187209
+ node T_187211 = cat(T_187198[1].coh.state, UInt<1>(0))
+ node T_187212 = cat(T_187198[1].tag, T_187211)
+ node T_187213 = cat(T_187212, UInt<4>(0))
+ node T_187214 = cat(UInt<1>(0), T_187198[1].coh.state)
+ node T_187215 = cat(T_187214, UInt<2>(0))
+ node T_187216 = cat(T_187215, UInt<4>(0))
+ node T_187217 = cat(T_187213, T_187216)
+ wire T_187218 : UInt<1>
+ T_187218 := UInt<1>(0)
+ when T_187200 : T_187218 := T_187217
+ node T_187219 = cat(T_187198[2].coh.state, UInt<1>(0))
+ node T_187220 = cat(T_187198[2].tag, T_187219)
+ node T_187221 = cat(T_187220, UInt<4>(0))
+ node T_187222 = cat(UInt<1>(0), T_187198[2].coh.state)
+ node T_187223 = cat(T_187222, UInt<2>(0))
+ node T_187224 = cat(T_187223, UInt<4>(0))
+ node T_187225 = cat(T_187221, T_187224)
+ wire T_187226 : UInt<1>
+ T_187226 := UInt<1>(0)
+ when T_187201 : T_187226 := T_187225
+ node T_187227 = cat(T_187198[3].coh.state, UInt<1>(0))
+ node T_187228 = cat(T_187198[3].tag, T_187227)
+ node T_187229 = cat(T_187228, UInt<4>(0))
+ node T_187230 = cat(UInt<1>(0), T_187198[3].coh.state)
+ node T_187231 = cat(T_187230, UInt<2>(0))
+ node T_187232 = cat(T_187231, UInt<4>(0))
+ node T_187233 = cat(T_187229, T_187232)
+ wire T_187234 : UInt<1>
+ T_187234 := UInt<1>(0)
+ when T_187202 : T_187234 := T_187233
+ node T_187235 = or(T_187210, T_187218)
+ node T_187236 = or(T_187235, T_187226)
+ node T_187237 = or(T_187236, T_187234)
+ wire T_187238 : UInt<3>[3]
+ T_187238[0] := UInt<3>(0)
+ T_187238[1] := UInt<3>(1)
+ T_187238[2] := UInt<3>(2)
+ wire T_187239 : UInt<2>[2]
+ T_187239[0] := UInt<2>(0)
+ T_187239[1] := UInt<2>(1)
+ wire T_187240 : UInt<2>[3]
+ T_187240[0] := UInt<2>(1)
+ T_187240[1] := UInt<2>(2)
+ T_187240[2] := UInt<2>(3)
+ wire T_187241 : UInt<2>[2]
+ T_187241[0] := UInt<2>(2)
+ T_187241[1] := UInt<2>(3)
+ wire T_187242 : UInt<2>[1]
+ T_187242[0] := UInt<2>(3)
+ wire T_187243 : UInt<3>[3]
+ T_187243[0] := UInt<3>(0)
+ T_187243[1] := UInt<3>(1)
+ T_187243[2] := UInt<3>(2)
+ wire T_187244 : UInt<2>[2]
+ T_187244[0] := UInt<2>(0)
+ T_187244[1] := UInt<2>(1)
+ wire T_187245 : UInt<2>[3]
+ T_187245[0] := UInt<2>(1)
+ T_187245[1] := UInt<2>(2)
+ T_187245[2] := UInt<2>(3)
+ wire T_187246 : UInt<2>[2]
+ T_187246[0] := UInt<2>(2)
+ T_187246[1] := UInt<2>(3)
+ wire T_187247 : UInt<2>[1]
+ T_187247[0] := UInt<2>(3)
+ wire s2_repl_meta : {tag : UInt<20>, coh : {state : UInt<2>, makeRelease$default$2 : UInt<1>, makeRelease$default$3 : UInt<1>, makeVoluntaryRelease$default$4 : UInt<1>, makeVoluntaryRelease$default$5 : UInt<1>, makeVoluntaryWriteback$default$3 : UInt<1>, makeVoluntaryWriteback$default$4 : UInt<1>}}
+ node T_187248 = bits(T_187237, 0, 0)
+ s2_repl_meta.coh.makeVoluntaryWriteback$default$4 := T_187248
+ node T_187249 = bits(T_187237, 1, 1)
+ s2_repl_meta.coh.makeVoluntaryWriteback$default$3 := T_187249
+ node T_187250 = bits(T_187237, 2, 2)
+ s2_repl_meta.coh.makeVoluntaryRelease$default$5 := T_187250
+ node T_187251 = bits(T_187237, 3, 3)
+ s2_repl_meta.coh.makeVoluntaryRelease$default$4 := T_187251
+ node T_187252 = bits(T_187237, 4, 4)
+ s2_repl_meta.coh.makeRelease$default$3 := T_187252
+ node T_187253 = bits(T_187237, 5, 5)
+ s2_repl_meta.coh.makeRelease$default$2 := T_187253
+ node T_187254 = bits(T_187237, 7, 6)
+ s2_repl_meta.coh.state := T_187254
+ node T_187255 = bits(T_187237, 8, 8)
+ s2_repl_meta.coh.makeVoluntaryWriteback$default$4 := T_187255
+ node T_187256 = bits(T_187237, 9, 9)
+ s2_repl_meta.coh.makeVoluntaryWriteback$default$3 := T_187256
+ node T_187257 = bits(T_187237, 10, 10)
+ s2_repl_meta.coh.makeVoluntaryRelease$default$5 := T_187257
+ node T_187258 = bits(T_187237, 11, 11)
+ s2_repl_meta.coh.makeVoluntaryRelease$default$4 := T_187258
+ node T_187259 = bits(T_187237, 12, 12)
+ s2_repl_meta.coh.makeRelease$default$3 := T_187259
+ node T_187260 = bits(T_187237, 13, 13)
+ s2_repl_meta.coh.makeRelease$default$2 := T_187260
+ node T_187261 = bits(T_187237, 15, 14)
+ s2_repl_meta.coh.state := T_187261
+ node T_187262 = bits(T_187237, 35, 16)
+ s2_repl_meta.tag := T_187262
+ node T_187263 = eq(s2_hit, UInt<1>(0))
+ node T_187264 = and(s2_valid_masked, T_187263)
+ node T_187265 = eq(s2_req.cmd, UInt<5>(2))
+ node T_187266 = eq(s2_req.cmd, UInt<5>(3))
+ node T_187267 = or(T_187265, T_187266)
+ node T_187268 = eq(s2_req.cmd, UInt<5>(0))
+ node T_187269 = eq(s2_req.cmd, UInt<5>(6))
+ node T_187270 = or(T_187268, T_187269)
+ node T_187271 = bit(s2_req.cmd, 3)
+ node T_187272 = eq(s2_req.cmd, UInt<5>(4))
+ node T_187273 = or(T_187271, T_187272)
+ node T_187274 = or(T_187270, T_187273)
+ node T_187275 = or(T_187267, T_187274)
+ node T_187276 = eq(s2_req.cmd, UInt<5>(1))
+ node T_187277 = eq(s2_req.cmd, UInt<5>(7))
+ node T_187278 = or(T_187276, T_187277)
+ node T_187279 = bit(s2_req.cmd, 3)
+ node T_187280 = eq(s2_req.cmd, UInt<5>(4))
+ node T_187281 = or(T_187279, T_187280)
+ node T_187282 = or(T_187278, T_187281)
+ node T_187283 = or(T_187275, T_187282)
+ node T_187284 = and(T_187264, T_187283)
+ mshrs.req.valid := T_187284
+ mshrs.req.bits := s2_req
+ mshrs.req.bits.tag_match := s2_tag_match
+ wire T_187285 : UInt<3>[3]
+ T_187285[0] := UInt<3>(0)
+ T_187285[1] := UInt<3>(1)
+ T_187285[2] := UInt<3>(2)
+ wire T_187286 : UInt<2>[2]
+ T_187286[0] := UInt<2>(0)
+ T_187286[1] := UInt<2>(1)
+ wire T_187287 : UInt<2>[3]
+ T_187287[0] := UInt<2>(1)
+ T_187287[1] := UInt<2>(2)
+ T_187287[2] := UInt<2>(3)
+ wire T_187288 : UInt<2>[2]
+ T_187288[0] := UInt<2>(2)
+ T_187288[1] := UInt<2>(3)
+ wire T_187289 : UInt<2>[1]
+ T_187289[0] := UInt<2>(3)
+ wire T_187290 : UInt<3>[3]
+ T_187290[0] := UInt<3>(0)
+ T_187290[1] := UInt<3>(1)
+ T_187290[2] := UInt<3>(2)
+ wire T_187291 : UInt<2>[2]
+ T_187291[0] := UInt<2>(0)
+ T_187291[1] := UInt<2>(1)
+ wire T_187292 : UInt<2>[3]
+ T_187292[0] := UInt<2>(1)
+ T_187292[1] := UInt<2>(2)
+ T_187292[2] := UInt<2>(3)
+ wire T_187293 : UInt<2>[2]
+ T_187293[0] := UInt<2>(2)
+ T_187293[1] := UInt<2>(3)
+ wire T_187294 : UInt<2>[1]
+ T_187294[0] := UInt<2>(3)
+ wire T_187295 : {tag : UInt<20>, coh : {state : UInt<2>, makeRelease$default$2 : UInt<1>, makeRelease$default$3 : UInt<1>, makeVoluntaryRelease$default$4 : UInt<1>, makeVoluntaryRelease$default$5 : UInt<1>, makeVoluntaryWriteback$default$3 : UInt<1>, makeVoluntaryWriteback$default$4 : UInt<1>}}
+ T_187295.tag := s2_repl_meta.tag
+ T_187295.coh := s2_hit_state
+ wire T_187296 : UInt<3>[3]
+ T_187296[0] := UInt<3>(0)
+ T_187296[1] := UInt<3>(1)
+ T_187296[2] := UInt<3>(2)
+ wire T_187297 : UInt<2>[2]
+ T_187297[0] := UInt<2>(0)
+ T_187297[1] := UInt<2>(1)
+ wire T_187298 : UInt<2>[3]
+ T_187298[0] := UInt<2>(1)
+ T_187298[1] := UInt<2>(2)
+ T_187298[2] := UInt<2>(3)
+ wire T_187299 : UInt<2>[2]
+ T_187299[0] := UInt<2>(2)
+ T_187299[1] := UInt<2>(3)
+ wire T_187300 : UInt<2>[1]
+ T_187300[0] := UInt<2>(3)
+ wire T_187301 : {tag : UInt<20>, coh : {state : UInt<2>, makeRelease$default$2 : UInt<1>, makeRelease$default$3 : UInt<1>, makeVoluntaryRelease$default$4 : UInt<1>, makeVoluntaryRelease$default$5 : UInt<1>, makeVoluntaryWriteback$default$3 : UInt<1>, makeVoluntaryWriteback$default$4 : UInt<1>}}
+ T_187301 := s2_repl_meta
+ when s2_tag_match : T_187301 := T_187295
+ mshrs.req.bits.old_meta := T_187301
+ wire T_187302 : UInt<5>
+ T_187302 := s2_replaced_way_en
+ when s2_tag_match : T_187302 := s2_tag_match_way
+ mshrs.req.bits.way_en := T_187302
+ mshrs.req.bits.data := s2_req.data
+
+ node T_187303 = and(mshrs.req.ready, mshrs.req.valid)
+ when T_187303 : T_187132 := UInt<1>(1)
+ mem__.acquire <> mshrs.mem_req
+ readArb.in[1].valid := mshrs.replay.valid
+ readArb.in[1].bits := mshrs.replay.bits
+ readArb.in[1].bits.way_en := SInt<1>(-1)
+ mshrs.replay.ready := readArb.in[1].ready
+ node T_187304 = and(mshrs.replay.valid, readArb.in[1].ready)
+ s1_replay := T_187304
+ metaReadArb.in[1] <> mshrs.meta_read
+ metaWriteArb.in[0] <> mshrs.meta_write
+ wire T_187305 : UInt<3>[3]
+ T_187305[0] := UInt<3>(0)
+ T_187305[1] := UInt<3>(1)
+ T_187305[2] := UInt<3>(2)
+ wire T_187306 : UInt<2>[2]
+ T_187306[0] := UInt<2>(0)
+ T_187306[1] := UInt<2>(1)
+ wire T_187307 : UInt<2>[3]
+ T_187307[0] := UInt<2>(1)
+ T_187307[1] := UInt<2>(2)
+ T_187307[2] := UInt<2>(3)
+ wire T_187308 : UInt<2>[2]
+ T_187308[0] := UInt<2>(2)
+ T_187308[1] := UInt<2>(3)
+ wire T_187309 : UInt<2>[1]
+ T_187309[0] := UInt<2>(3)
+ inst releaseArb of LockingArbiter_148764
+ releaseArb.out <> mem__.release
+ node T_187310 = eq(lrsc_valid, UInt<1>(0))
+ node T_187311 = and(mem__.probe.valid, T_187310)
+ prober.req.valid := T_187311
+ node T_187312 = eq(lrsc_valid, UInt<1>(0))
+ node T_187313 = and(prober.req.ready, T_187312)
+ mem__.probe.ready := T_187313
+ prober.req.bits := mem__.probe.bits
+ prober.rep <> releaseArb.in[1]
+ prober.way_en := s2_tag_match_way
+ prober.block_state := s2_hit_state
+ prober.meta_read <> metaReadArb.in[2]
+ prober.meta_write <> metaWriteArb.in[1]
+ prober.mshr_rdy := mshrs.probe_rdy
+ inst T_187314 of FlowThroughSerializer_148912
+ T_187314.in.valid := mem__.grant.valid
+ T_187314.in.bits := mem__.grant.bits
+ mem__.grant.ready := T_187314.in.ready
+ node T_187315 = and(T_187314.out.ready, T_187314.out.valid)
+ mshrs.mem_grant.valid := T_187315
+ mshrs.mem_grant.bits := T_187314.out.bits
+ wire T_187316 : UInt<3>[2]
+ T_187316[0] := UInt<3>(5)
+ T_187316[1] := UInt<3>(4)
+ node T_187317 = eq(T_187316[0], T_187314.out.bits.g_type)
+ node T_187318 = eq(T_187316[1], T_187314.out.bits.g_type)
+ node T_187319 = or(UInt<1>(0), T_187317)
+ node T_187320 = or(T_187319, T_187318)
+ node T_187321 = eq(T_186683[0], T_187314.out.bits.g_type)
+ node T_187322 = eq(T_186683[1], T_187314.out.bits.g_type)
+ node T_187323 = or(UInt<1>(0), T_187321)
+ node T_187324 = or(T_187323, T_187322)
+ wire T_187325 : UInt<1>
+ T_187325 := T_187324
+ when T_187314.out.bits.is_builtin_type : T_187325 := T_187320
+ node T_187326 = eq(T_187325, UInt<1>(0))
+ node T_187327 = or(writeArb.in[1].ready, T_187326)
+ T_187314.out.ready := T_187327
+ wire T_187328 : UInt<3>[2]
+ T_187328[0] := UInt<3>(5)
+ T_187328[1] := UInt<3>(4)
+ node T_187329 = eq(T_187328[0], T_187314.out.bits.g_type)
+ node T_187330 = eq(T_187328[1], T_187314.out.bits.g_type)
+ node T_187331 = or(UInt<1>(0), T_187329)
+ node T_187332 = or(T_187331, T_187330)
+ node T_187333 = eq(T_186683[0], T_187314.out.bits.g_type)
+ node T_187334 = eq(T_186683[1], T_187314.out.bits.g_type)
+ node T_187335 = or(UInt<1>(0), T_187333)
+ node T_187336 = or(T_187335, T_187334)
+ wire T_187337 : UInt<1>
+ T_187337 := T_187336
+ when T_187314.out.bits.is_builtin_type : T_187337 := T_187332
+ node T_187338 = and(T_187314.out.valid, T_187337)
+ writeArb.in[1].valid := T_187338
+ writeArb.in[1].bits.addr := mshrs.refill.addr
+ writeArb.in[1].bits.way_en := mshrs.refill.way_en
+ writeArb.in[1].bits.wmask := SInt<1>(-1)
+ node T_187339 = bits(T_187314.out.bits.data, 127, 0)
+ writeArb.in[1].bits.data := T_187339
+ node T_187340 = eq(T_187314.out.valid, UInt<1>(0))
+ node T_187341 = or(T_187340, T_187314.out.ready)
+ readArb.out.ready := T_187341
+ readArb.out <> data.read
+ wire T_187342 : UInt<3>[3]
+ T_187342[0] := UInt<3>(0)
+ T_187342[1] := UInt<3>(1)
+ T_187342[2] := UInt<3>(2)
+ wire T_187343 : UInt<2>[2]
+ T_187343[0] := UInt<2>(0)
+ T_187343[1] := UInt<2>(1)
+ wire T_187344 : UInt<2>[3]
+ T_187344[0] := UInt<2>(1)
+ T_187344[1] := UInt<2>(2)
+ T_187344[2] := UInt<2>(3)
+ wire T_187345 : UInt<2>[2]
+ T_187345[0] := UInt<2>(2)
+ T_187345[1] := UInt<2>(3)
+ wire T_187346 : UInt<2>[1]
+ T_187346[0] := UInt<2>(3)
+ inst wbArb of Arbiter_149454
+ prober.wb_req <> wbArb.in[0]
+ mshrs.wb_req <> wbArb.in[1]
+ wbArb.out <> wb.req
+ wb.meta_read <> metaReadArb.in[3]
+ wb.data_req <> readArb.in[2]
+ wb.data_resp := s2_data_corrected
+ releaseArb.in[0] <> wb.release
+ reg s4_valid : UInt<1>
+ onreset s4_valid := UInt<1>(0)
+ s4_valid := s3_valid
+ node T_187347 = and(s3_valid, metaReadArb.out.valid)
+ reg s4_req : {addr : UInt<40>, tag : UInt<8>, cmd : UInt<5>, typ : UInt<3>, kill : UInt<1>, phys : UInt<1>, data : UInt<64>}
+ when T_187347 : s4_req := s3_req
+ node T_187348 = or(s2_valid_masked, s2_replay)
+ node T_187349 = eq(s2_sc_fail, UInt<1>(0))
+ node T_187350 = and(T_187348, T_187349)
+ node T_187351 = shr(s1_addr, 3)
+ node T_187352 = shr(s2_req.addr, 3)
+ node T_187353 = eq(T_187351, T_187352)
+ node T_187354 = and(T_187350, T_187353)
+ node T_187355 = eq(s2_req.cmd, UInt<5>(1))
+ node T_187356 = eq(s2_req.cmd, UInt<5>(7))
+ node T_187357 = or(T_187355, T_187356)
+ node T_187358 = bit(s2_req.cmd, 3)
+ node T_187359 = eq(s2_req.cmd, UInt<5>(4))
+ node T_187360 = or(T_187358, T_187359)
+ node T_187361 = or(T_187357, T_187360)
+ node T_187362 = and(T_187354, T_187361)
+ node T_187363 = shr(s1_addr, 3)
+ node T_187364 = shr(s3_req.addr, 3)
+ node T_187365 = eq(T_187363, T_187364)
+ node T_187366 = and(s3_valid, T_187365)
+ node T_187367 = eq(s3_req.cmd, UInt<5>(1))
+ node T_187368 = eq(s3_req.cmd, UInt<5>(7))
+ node T_187369 = or(T_187367, T_187368)
+ node T_187370 = bit(s3_req.cmd, 3)
+ node T_187371 = eq(s3_req.cmd, UInt<5>(4))
+ node T_187372 = or(T_187370, T_187371)
+ node T_187373 = or(T_187369, T_187372)
+ node T_187374 = and(T_187366, T_187373)
+ node T_187375 = shr(s1_addr, 3)
+ node T_187376 = shr(s4_req.addr, 3)
+ node T_187377 = eq(T_187375, T_187376)
+ node T_187378 = and(s4_valid, T_187377)
+ node T_187379 = eq(s4_req.cmd, UInt<5>(1))
+ node T_187380 = eq(s4_req.cmd, UInt<5>(7))
+ node T_187381 = or(T_187379, T_187380)
+ node T_187382 = bit(s4_req.cmd, 3)
+ node T_187383 = eq(s4_req.cmd, UInt<5>(4))
+ node T_187384 = or(T_187382, T_187383)
+ node T_187385 = or(T_187381, T_187384)
+ node T_187386 = and(T_187378, T_187385)
+ reg s2_store_bypass_data : UInt<64>
+ reg s2_store_bypass : UInt<1>
+ when s1_clk_en :
+ s2_store_bypass := UInt<1>(0)
+
+
+ node T_187387 = or(T_187362, T_187374)
+ node T_187388 = or(T_187387, T_187386)
+ when T_187388 :
+ wire T_187389 : UInt<64>
+ T_187389 := s4_req.data
+ when T_187374 : T_187389 := s3_req.data
+ wire T_187390 : UInt<64>
+ T_187390 := T_187389
+ when T_187362 : T_187390 := amoalu.out
+ s2_store_bypass_data := T_187390
+ s2_store_bypass := UInt<1>(1)
+ node s2_data_word_prebypass = dshr(s2_data_uncorrected, UInt<7>(0))
+ wire s2_data_word : UInt<128>
+ s2_data_word := s2_data_word_prebypass
+ when s2_store_bypass : s2_data_word := s2_store_bypass_data
+ node T_187391 = eq(s2_req.typ, UInt<3>(0))
+ node T_187392 = eq(s2_req.typ, UInt<3>(4))
+ node T_187393 = or(T_187391, T_187392)
+ node T_187394 = eq(s2_req.typ, UInt<3>(1))
+ node T_187395 = eq(s2_req.typ, UInt<3>(5))
+ node T_187396 = or(T_187394, T_187395)
+ node T_187397 = eq(s2_req.typ, UInt<3>(2))
+ node T_187398 = eq(s2_req.typ, UInt<3>(6))
+ node T_187399 = or(T_187397, T_187398)
+ node T_187400 = eq(s2_req.typ, UInt<3>(0))
+ node T_187401 = eq(s2_req.typ, UInt<3>(1))
+ node T_187402 = or(T_187400, T_187401)
+ node T_187403 = eq(s2_req.typ, UInt<3>(2))
+ node T_187404 = or(T_187402, T_187403)
+ node T_187405 = eq(s2_req.typ, UInt<3>(3))
+ node T_187406 = or(T_187404, T_187405)
+ node T_187407 = bit(s2_req.addr, 2)
+ node T_187408 = bits(s2_data_word, 63, 32)
+ node T_187409 = bits(s2_data_word, 31, 0)
+ wire T_187410 : UInt<32>
+ T_187410 := T_187409
+ when T_187407 : T_187410 := T_187408
+ node T_187411 = bit(T_187410, 31)
+ node T_187412 = and(T_187406, T_187411)
+ node T_187413 = subw(UInt<32>(0), UInt<6>(32))
+ node T_187414 = bits(s2_data_word, 63, 32)
+ wire T_187415 : UInt<32>
+ T_187415 := T_187414
+ when T_187399 : T_187415 := T_187413
+ node T_187416 = cat(T_187415, T_187410)
+ node T_187417 = bit(s2_req.addr, 1)
+ node T_187418 = bits(T_187416, 31, 16)
+ node T_187419 = bits(T_187416, 15, 0)
+ wire T_187420 : UInt<16>
+ T_187420 := T_187419
+ when T_187417 : T_187420 := T_187418
+ node T_187421 = bit(T_187420, 15)
+ node T_187422 = and(T_187406, T_187421)
+ node T_187423 = subw(UInt<48>(0), UInt<6>(48))
+ node T_187424 = bits(T_187416, 63, 16)
+ wire T_187425 : UInt<48>
+ T_187425 := T_187424
+ when T_187396 : T_187425 := T_187423
+ node T_187426 = cat(T_187425, T_187420)
+ node T_187427 = bit(s2_req.addr, 0)
+ node T_187428 = bits(T_187426, 15, 8)
+ node T_187429 = bits(T_187426, 7, 0)
+ wire T_187430 : UInt<8>
+ T_187430 := T_187429
+ when T_187427 : T_187430 := T_187428
+ wire T_187431 : UInt<8>
+ T_187431 := T_187430
+ when s2_sc : T_187431 := UInt<1>(0)
+ node T_187432 = or(s2_sc, T_187393)
+ node T_187433 = bit(T_187431, 7)
+ node T_187434 = and(T_187406, T_187433)
+ node T_187435 = subw(UInt<56>(0), UInt<6>(56))
+ node T_187436 = bits(T_187426, 63, 8)
+ wire T_187437 : UInt<56>
+ T_187437 := T_187436
+ when T_187432 : T_187437 := T_187435
+ node T_187438 = cat(T_187437, T_187431)
+ amoalu := s2_req
+ amoalu.lhs := s2_data_word
+ amoalu.rhs := s2_req.data
+ node T_187439 = and(dtlb.req.valid, dtlb.resp.miss)
+ node T_187440 = bits(s1_req.addr, 11, 6)
+ node T_187441 = eq(T_187440, prober.meta_write.bits.idx)
+ node T_187442 = eq(prober.req.ready, UInt<1>(0))
+ node T_187443 = and(T_187441, T_187442)
+ node s1_nack = or(T_187439, T_187443)
+ node T_187444 = or(s1_valid, s1_replay)
+ reg s2_nack_hit : UInt<1>
+ when T_187444 : s2_nack_hit := s1_nack
+ when s2_nack_hit : mshrs.req.valid := UInt<1>(0)
+ node s2_nack_victim = and(s2_hit, mshrs.secondary_miss)
+ node T_187445 = eq(s2_hit, UInt<1>(0))
+ node T_187446 = eq(mshrs.req.ready, UInt<1>(0))
+ node s2_nack_miss = and(T_187445, T_187446)
+ node T_187447 = or(s2_nack_hit, s2_nack_victim)
+ node s2_nack = or(T_187447, s2_nack_miss)
+ node T_187448 = eq(s2_nack, UInt<1>(0))
+ node T_187449 = and(s2_valid, T_187448)
+ s2_valid_masked := T_187449
+ node T_187450 = or(s2_valid, s2_replay)
+ node T_187451 = and(T_187450, s2_hit)
+ node s2_recycle_ecc = and(T_187451, s2_data_correctable)
+ reg s2_recycle_next : UInt<1>
+ onreset s2_recycle_next := UInt<1>(0)
+
+ node T_187452 = or(s1_valid, s1_replay)
+ when T_187452 : s2_recycle_next := s2_recycle_ecc
+ node T_187453 = or(s2_recycle_ecc, s2_recycle_next)
+ s2_recycle := T_187453
+ reg block_miss : UInt<1>
+ onreset block_miss := UInt<1>(0)
+ node T_187454 = or(s2_valid, block_miss)
+ node T_187455 = and(T_187454, s2_nack_miss)
+ block_miss := T_187455
+ when block_miss : cpu.req.ready := UInt<1>(0)
+ node T_187456 = and(s2_valid_masked, s2_hit)
+ node T_187457 = or(s2_replay, T_187456)
+ node T_187458 = eq(s2_data_correctable, UInt<1>(0))
+ node T_187459 = and(T_187457, T_187458)
+ cpu.resp.valid := T_187459
+ node T_187460 = and(s2_valid, s2_nack)
+ cpu.resp.bits.nack := T_187460
+ cpu.resp.bits := s2_req
+ node T_187461 = eq(s2_req.cmd, UInt<5>(0))
+ node T_187462 = eq(s2_req.cmd, UInt<5>(6))
+ node T_187463 = or(T_187461, T_187462)
+ node T_187464 = bit(s2_req.cmd, 3)
+ node T_187465 = eq(s2_req.cmd, UInt<5>(4))
+ node T_187466 = or(T_187464, T_187465)
+ node T_187467 = or(T_187463, T_187466)
+ node T_187468 = or(T_187467, s2_sc)
+ cpu.resp.bits.has_data := T_187468
+ cpu.resp.bits.replay := s2_replay
+ cpu.resp.bits.data := T_187416
+ node T_187469 = or(T_187438, s2_sc_fail)
+ cpu.resp.bits.data_subword := T_187469
+ cpu.resp.bits.store_data := s2_req.data
+ node T_187470 = eq(s1_valid, UInt<1>(0))
+ node T_187471 = and(mshrs.fence_rdy, T_187470)
+ node T_187472 = eq(s2_valid, UInt<1>(0))
+ node T_187473 = and(T_187471, T_187472)
+ cpu.ordered := T_187473
+ node T_187474 = or(s1_read, s1_sc)
+ node T_187475 = and(s1_replay, T_187474)
+ cpu.replay_next.valid := T_187475
+ cpu.replay_next.bits := s1_req.tag
+ module RRArbiter_150123 :
+ input in : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr : UInt<27>, prv : UInt<2>, store : UInt<1>, fetch : UInt<1>}}[2]
+ output out : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr : UInt<27>, prv : UInt<2>, store : UInt<1>, fetch : UInt<1>}}
+ output chosen : UInt<1>
+
+ wire T_187476 : UInt<1>
+ reg T_187477 : UInt<1>
+ onreset T_187477 := UInt<1>(0)
+ node T_187478 = gt(UInt<1>(0), T_187477)
+ node T_187479 = and(in[0].valid, T_187478)
+ node T_187480 = gt(UInt<1>(1), T_187477)
+ node T_187481 = and(in[1].valid, T_187480)
+ node T_187482 = or(UInt<1>(0), T_187479)
+ node T_187483 = eq(T_187482, UInt<1>(0))
+ node T_187484 = or(UInt<1>(0), T_187479)
+ node T_187485 = or(T_187484, T_187481)
+ node T_187486 = eq(T_187485, UInt<1>(0))
+ node T_187487 = or(UInt<1>(0), T_187479)
+ node T_187488 = or(T_187487, T_187481)
+ node T_187489 = or(T_187488, in[0].valid)
+ node T_187490 = eq(T_187489, UInt<1>(0))
+ node T_187491 = gt(UInt<1>(0), T_187477)
+ node T_187492 = and(UInt<1>(1), T_187491)
+ node T_187493 = or(T_187492, T_187486)
+ node T_187494 = gt(UInt<1>(1), T_187477)
+ node T_187495 = and(T_187483, T_187494)
+ node T_187496 = or(T_187495, T_187490)
+ node T_187497 = eq(UInt<1>(1), UInt<1>(0))
+ wire T_187498 : UInt<1>
+ T_187498 := T_187493
+ when UInt<1>(0) : T_187498 := T_187497
+ node T_187499 = and(T_187498, out.ready)
+ in[0].ready := T_187499
+ node T_187500 = eq(UInt<1>(1), UInt<1>(1))
+ wire T_187501 : UInt<1>
+ T_187501 := T_187496
+ when UInt<1>(0) : T_187501 := T_187500
+ node T_187502 = and(T_187501, out.ready)
+ in[1].ready := T_187502
+ accessor T_187503 = in[T_187476]
+ out.valid := T_187503.valid
+ accessor T_187504 = in[T_187476]
+ out.bits := T_187504.bits
+ chosen := T_187476
+ wire T_187505 : UInt<1>
+ T_187505 := UInt<1>(1)
+ when in[0].valid : T_187505 := UInt<1>(0)
+ node T_187506 = gt(UInt<1>(1), T_187477)
+ node T_187507 = and(in[1].valid, T_187506)
+ wire T_187508 : UInt<1>
+ T_187508 := T_187505
+ when T_187507 : T_187508 := UInt<1>(1)
+ wire T_187509 : UInt<1>
+ T_187509 := T_187508
+ when UInt<1>(0) : T_187509 := UInt<1>(1)
+ T_187476 := T_187509
+
+ node T_187510 = and(out.ready, out.valid)
+ when T_187510 : T_187477 := T_187476
+ module PTW :
+ input requestor : {req : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr : UInt<27>, prv : UInt<2>, store : UInt<1>, fetch : UInt<1>}}, flip resp : {valid : UInt<1>, bits : {error : UInt<1>, pte : {ppn : UInt<20>, reserved_for_software : UInt<3>, d : UInt<1>, r : UInt<1>, typ : UInt<4>, v : UInt<1>}}}, flip status : {sd : UInt<1>, zero2 : UInt<31>, sd_rv32 : UInt<1>, zero1 : UInt<9>, vm : UInt<5>, mprv : UInt<1>, xs : UInt<2>, fs : UInt<2>, prv3 : UInt<2>, ie3 : UInt<1>, prv2 : UInt<2>, ie2 : UInt<1>, prv1 : UInt<2>, ie1 : UInt<1>, prv : UInt<2>, ie : UInt<1>}, flip invalidate : UInt<1>}[2]
+ output mem__ : {req : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr : UInt<40>, tag : UInt<8>, cmd : UInt<5>, typ : UInt<3>, kill : UInt<1>, phys : UInt<1>, data : UInt<64>}}, flip resp : {valid : UInt<1>, bits : {addr : UInt<40>, tag : UInt<8>, cmd : UInt<5>, typ : UInt<3>, data : UInt<64>, nack : UInt<1>, replay : UInt<1>, has_data : UInt<1>, data_subword : UInt<64>, store_data : UInt<64>}}, flip replay_next : {valid : UInt<1>, bits : UInt<8>}, flip xcpt : {ma : {ld : UInt<1>, st : UInt<1>}, pf : {ld : UInt<1>, st : UInt<1>}}, invalidate_lr : UInt<1>, flip ordered : UInt<1>}
+ output dpath : {flip ptbr : UInt<32>, flip invalidate : UInt<1>, flip status : {sd : UInt<1>, zero2 : UInt<31>, sd_rv32 : UInt<1>, zero1 : UInt<9>, vm : UInt<5>, mprv : UInt<1>, xs : UInt<2>, fs : UInt<2>, prv3 : UInt<2>, ie3 : UInt<1>, prv2 : UInt<2>, ie2 : UInt<1>, prv1 : UInt<2>, ie1 : UInt<1>, prv : UInt<2>, ie : UInt<1>}}
+
+ wire requestor : {req : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr : UInt<27>, prv : UInt<2>, store : UInt<1>, fetch : UInt<1>}}, flip resp : {valid : UInt<1>, bits : {error : UInt<1>, pte : {ppn : UInt<20>, reserved_for_software : UInt<3>, d : UInt<1>, r : UInt<1>, typ : UInt<4>, v : UInt<1>}}}, flip status : {sd : UInt<1>, zero2 : UInt<31>, sd_rv32 : UInt<1>, zero1 : UInt<9>, vm : UInt<5>, mprv : UInt<1>, xs : UInt<2>, fs : UInt<2>, prv3 : UInt<2>, ie3 : UInt<1>, prv2 : UInt<2>, ie2 : UInt<1>, prv1 : UInt<2>, ie1 : UInt<1>, prv : UInt<2>, ie : UInt<1>}, flip invalidate : UInt<1>}[2]
+ requestor[0] := T_187511
+ requestor[1] := T_187512
+ reg state : UInt<3>
+ onreset state := UInt<3>(0)
+ reg count : UInt<2>
+ reg r_req : {addr : UInt<27>, prv : UInt<2>, store : UInt<1>, fetch : UInt<1>}
+ reg r_req_dest : UInt
+ reg r_pte : {ppn : UInt<20>, reserved_for_software : UInt<3>, d : UInt<1>, r : UInt<1>, typ : UInt<4>, v : UInt<1>}
+ node T_187513 = shr(r_req.addr, 18)
+ node T_187514 = bits(T_187513, 8, 0)
+ node T_187515 = shr(r_req.addr, 9)
+ node T_187516 = bits(T_187515, 8, 0)
+ node T_187517 = shr(r_req.addr, 0)
+ node T_187518 = bits(T_187517, 8, 0)
+ wire T_187519 : UInt<9>[3]
+ T_187519[0] := T_187514
+ T_187519[1] := T_187516
+ T_187519[2] := T_187518
+ accessor vpn_idx = T_187519[count]
+ inst arb of RRArbiter_150123
+ arb.in[0] <> requestor[0].req
+ arb.in[1] <> requestor[1].req
+ node T_187520 = eq(state, UInt<3>(0))
+ arb.out.ready := T_187520
+ wire pte : {ppn : UInt<20>, reserved_for_software : UInt<3>, d : UInt<1>, r : UInt<1>, typ : UInt<4>, v : UInt<1>}
+ node T_187521 = bits(mem__.resp.bits.data, 0, 0)
+ pte.v := T_187521
+ node T_187522 = bits(mem__.resp.bits.data, 4, 1)
+ pte.typ := T_187522
+ node T_187523 = bits(mem__.resp.bits.data, 5, 5)
+ pte.r := T_187523
+ node T_187524 = bits(mem__.resp.bits.data, 6, 6)
+ pte.d := T_187524
+ node T_187525 = bits(mem__.resp.bits.data, 9, 7)
+ pte.reserved_for_software := T_187525
+ node T_187526 = bits(mem__.resp.bits.data, 29, 10)
+ pte.ppn := T_187526
+ node T_187527 = cat(r_pte.ppn, vpn_idx)
+ node pte_addr = shl(T_187527, 3)
+
+ node T_187528 = and(arb.out.ready, arb.out.valid)
+ when T_187528 :
+ r_req := arb.out.bits
+ r_req_dest := arb.chosen
+ node T_187529 = bits(dpath.ptbr, 31, 12)
+ r_pte.ppn := T_187529
+ reg T_187530 : UInt<3>
+ reg T_187531 : UInt<1>[3]
+ onreset T_187531 := T_187532
+ node T_187533 = cat(T_187531[1], T_187531[0])
+ node T_187534 = cat(T_187531[2], T_187533)
+ cmem T_187535 : UInt<32>[3]
+ cmem T_187536 : UInt<20>[3]
+ accessor T_187537 = T_187535[UInt<1>(0)]
+ node T_187538 = eq(T_187537, pte_addr)
+ accessor T_187539 = T_187535[UInt<1>(1)]
+ node T_187540 = eq(T_187539, pte_addr)
+ accessor T_187541 = T_187535[UInt<2>(2)]
+ node T_187542 = eq(T_187541, pte_addr)
+ wire T_187543 : UInt<1>[3]
+ T_187543[0] := T_187538
+ T_187543[1] := T_187540
+ T_187543[2] := T_187542
+ node T_187544 = cat(T_187543[1], T_187543[0])
+ node T_187545 = cat(T_187543[2], T_187544)
+ node T_187546 = and(T_187545, T_187534)
+ node T_187547 = eq(T_187546, UInt<1>(0))
+ node pte_cache_hit = eq(T_187547, UInt<1>(0))
+
+
+ node T_187548 = lt(pte.typ, UInt<2>(2))
+ node T_187549 = and(pte.v, T_187548)
+ node T_187550 = and(mem__.resp.valid, T_187549)
+ node T_187551 = eq(pte_cache_hit, UInt<1>(0))
+ node T_187552 = and(T_187550, T_187551)
+ when T_187552 :
+ node T_187553 = eq(T_187534, UInt<1>(-1))
+ node T_187554 = dshr(T_187530, UInt<1>(1))
+ node T_187555 = bit(T_187554, 0)
+ node T_187556 = cat(UInt<1>(1), T_187555)
+ node T_187557 = dshr(T_187530, T_187556)
+ node T_187558 = bit(T_187557, 0)
+ node T_187559 = cat(T_187556, T_187558)
+ node T_187560 = bits(T_187559, 1, 0)
+ node T_187561 = not(T_187534)
+ node T_187562 = bit(T_187561, 0)
+ node T_187563 = bit(T_187561, 1)
+ node T_187564 = bit(T_187561, 2)
+ wire T_187565 : UInt<1>[3]
+ T_187565[0] := T_187562
+ T_187565[1] := T_187563
+ T_187565[2] := T_187564
+ wire T_187566 : UInt<2>
+ T_187566 := UInt<2>(2)
+ when T_187565[1] : T_187566 := UInt<1>(1)
+ wire T_187567 : UInt<2>
+ T_187567 := T_187566
+ when T_187565[0] : T_187567 := UInt<1>(0)
+ wire T_187568 : UInt<2>
+ T_187568 := T_187567
+ when T_187553 : T_187568 := T_187560
+ accessor T_187569 = T_187531[T_187568]
+ T_187569 := UInt<1>(1)
+ accessor T_187570 = T_187535[T_187568]
+ T_187570 := pte_addr
+ accessor T_187571 = T_187536[T_187568]
+ T_187571 := pte.ppn
+
+
+ node T_187572 = eq(state, UInt<3>(1))
+ node T_187573 = and(pte_cache_hit, T_187572)
+ when T_187573 :
+ node T_187574 = bits(T_187546, 2, 2)
+ node T_187575 = bits(T_187546, 1, 0)
+ node T_187576 = eq(T_187574, UInt<1>(0))
+ node T_187577 = eq(T_187576, UInt<1>(0))
+ node T_187578 = or(T_187574, T_187575)
+ node T_187579 = bit(T_187578, 1)
+ node T_187580 = cat(T_187577, T_187579)
+ node T_187581 = bit(T_187580, 1)
+ node T_187582 = dshl(UInt<3>(1), UInt<1>(1))
+ node T_187583 = bits(T_187582, 2, 0)
+ node T_187584 = not(T_187583)
+ node T_187585 = and(T_187530, T_187584)
+ wire T_187586 : UInt<3>
+ T_187586 := T_187583
+ when T_187581 : T_187586 := UInt<1>(0)
+ node T_187587 = or(T_187585, T_187586)
+ node T_187588 = cat(UInt<1>(1), T_187581)
+ node T_187589 = bit(T_187580, 0)
+ node T_187590 = dshl(UInt<3>(1), T_187588)
+ node T_187591 = bits(T_187590, 2, 0)
+ node T_187592 = not(T_187591)
+ node T_187593 = and(T_187587, T_187592)
+ wire T_187594 : UInt<3>
+ T_187594 := T_187591
+ when T_187589 : T_187594 := UInt<1>(0)
+ node T_187595 = or(T_187593, T_187594)
+ node T_187596 = cat(T_187588, T_187589)
+ T_187530 := T_187595
+
+ node T_187597 = or(reset, dpath.invalidate)
+ when T_187597 :
+ T_187531[0] := UInt<1>(0)
+ T_187531[1] := UInt<1>(0)
+ T_187531[2] := UInt<1>(0)
+ node T_187598 = bit(T_187546, 0)
+ node T_187599 = bit(T_187546, 1)
+ node T_187600 = bit(T_187546, 2)
+ accessor T_187601 = T_187536[UInt<1>(0)]
+ accessor T_187602 = T_187536[UInt<1>(1)]
+ accessor T_187603 = T_187536[UInt<2>(2)]
+ wire T_187604 : UInt<1>
+ T_187604 := UInt<1>(0)
+ when T_187598 : T_187604 := T_187601
+ wire T_187605 : UInt<1>
+ T_187605 := UInt<1>(0)
+ when T_187599 : T_187605 := T_187602
+ wire T_187606 : UInt<1>
+ T_187606 := UInt<1>(0)
+ when T_187600 : T_187606 := T_187603
+ node T_187607 = or(T_187604, T_187605)
+ node T_187608 = or(T_187607, T_187606)
+ wire pte_cache_data : UInt<20>
+ node T_187609 = bits(T_187608, 19, 0)
+ pte_cache_data := T_187609
+ node T_187610 = bit(r_req.prv, 0)
+ node T_187611 = geq(pte.typ, UInt<3>(4))
+ node T_187612 = and(pte.v, T_187611)
+ node T_187613 = bit(pte.typ, 1)
+ node T_187614 = and(T_187612, T_187613)
+ node T_187615 = geq(pte.typ, UInt<2>(2))
+ node T_187616 = and(pte.v, T_187615)
+ node T_187617 = bit(pte.typ, 0)
+ node T_187618 = and(T_187616, T_187617)
+ node T_187619 = geq(pte.typ, UInt<2>(2))
+ node T_187620 = and(pte.v, T_187619)
+ wire T_187621 : UInt<1>
+ T_187621 := T_187620
+ when r_req.store : T_187621 := T_187618
+ wire T_187622 : UInt<1>
+ T_187622 := T_187621
+ when r_req.fetch : T_187622 := T_187614
+ node T_187623 = geq(pte.typ, UInt<2>(2))
+ node T_187624 = and(pte.v, T_187623)
+ node T_187625 = lt(pte.typ, UInt<4>(8))
+ node T_187626 = and(T_187624, T_187625)
+ node T_187627 = bit(pte.typ, 1)
+ node T_187628 = and(T_187626, T_187627)
+ node T_187629 = geq(pte.typ, UInt<2>(2))
+ node T_187630 = and(pte.v, T_187629)
+ node T_187631 = lt(pte.typ, UInt<4>(8))
+ node T_187632 = and(T_187630, T_187631)
+ node T_187633 = bit(pte.typ, 0)
+ node T_187634 = and(T_187632, T_187633)
+ node T_187635 = geq(pte.typ, UInt<2>(2))
+ node T_187636 = and(pte.v, T_187635)
+ node T_187637 = lt(pte.typ, UInt<4>(8))
+ node T_187638 = and(T_187636, T_187637)
+ wire T_187639 : UInt<1>
+ T_187639 := T_187638
+ when r_req.store : T_187639 := T_187634
+ wire T_187640 : UInt<1>
+ T_187640 := T_187639
+ when r_req.fetch : T_187640 := T_187628
+ wire perm_ok : UInt<1>
+ perm_ok := T_187640
+ when T_187610 : perm_ok := T_187622
+ node T_187641 = eq(pte.r, UInt<1>(0))
+ node T_187642 = eq(pte.d, UInt<1>(0))
+ node T_187643 = and(r_req.store, T_187642)
+ node T_187644 = or(T_187641, T_187643)
+ node set_dirty_bit = and(perm_ok, T_187644)
+
+
+ node T_187645 = eq(state, UInt<3>(2))
+ node T_187646 = and(mem__.resp.valid, T_187645)
+ node T_187647 = eq(set_dirty_bit, UInt<1>(0))
+ node T_187648 = and(T_187646, T_187647)
+ when T_187648 : r_pte := pte
+ wire T_187649 : {ppn : UInt<20>, reserved_for_software : UInt<3>, d : UInt<1>, r : UInt<1>, typ : UInt<4>, v : UInt<1>}
+ T_187649.v := UInt<1>(0)
+ T_187649.typ := UInt<4>(0)
+ T_187649.r := UInt<1>(0)
+ T_187649.d := UInt<1>(0)
+ T_187649.reserved_for_software := UInt<3>(0)
+ T_187649.ppn := UInt<20>(0)
+ wire pte_wdata : {ppn : UInt<20>, reserved_for_software : UInt<3>, d : UInt<1>, r : UInt<1>, typ : UInt<4>, v : UInt<1>}
+ pte_wdata := T_187649
+ pte_wdata.r := UInt<1>(1)
+ pte_wdata.d := r_req.store
+ node T_187650 = eq(state, UInt<3>(1))
+ node T_187651 = eq(state, UInt<3>(3))
+ node T_187652 = or(T_187650, T_187651)
+ mem__.req.valid := T_187652
+ mem__.req.bits.phys := UInt<1>(1)
+ node T_187653 = eq(state, UInt<3>(3))
+ wire T_187654 : UInt<5>
+ T_187654 := UInt<5>(0)
+ when T_187653 : T_187654 := UInt<5>(10)
+ mem__.req.bits.cmd := T_187654
+ mem__.req.bits.typ := UInt<3>(3)
+ mem__.req.bits.addr := pte_addr
+ mem__.req.bits.kill := UInt<1>(0)
+ node T_187655 = cat(pte_wdata.reserved_for_software, pte_wdata.d)
+ node T_187656 = cat(pte_wdata.ppn, T_187655)
+ node T_187657 = cat(pte_wdata.typ, pte_wdata.v)
+ node T_187658 = cat(pte_wdata.r, T_187657)
+ node T_187659 = cat(T_187656, T_187658)
+ mem__.req.bits.data := T_187659
+ node resp_err = eq(state, UInt<3>(6))
+ node T_187660 = eq(state, UInt<3>(5))
+ node resp_val = or(T_187660, resp_err)
+ node r_resp_ppn = dshr(mem__.req.bits.addr, UInt<4>(12))
+ node T_187661 = shr(r_resp_ppn, 18)
+ node T_187662 = bits(r_req.addr, 17, 0)
+ node T_187663 = cat(T_187661, T_187662)
+ node T_187664 = shr(r_resp_ppn, 9)
+ node T_187665 = bits(r_req.addr, 8, 0)
+ node T_187666 = cat(T_187664, T_187665)
+ wire T_187667 : UInt<40>[3]
+ T_187667[0] := T_187663
+ T_187667[1] := T_187666
+ T_187667[2] := r_resp_ppn
+ accessor resp_ppn = T_187667[count]
+ node T_187668 = eq(r_req_dest, UInt<1>(0))
+ node T_187669 = and(resp_val, T_187668)
+ requestor[0].resp.valid := T_187669
+ requestor[0].resp.bits.error := resp_err
+ requestor[0].resp.bits.pte := r_pte
+ requestor[0].resp.bits.pte.ppn := resp_ppn
+ requestor[0].invalidate := dpath.invalidate
+ requestor[0].status := dpath.status
+ node T_187670 = eq(r_req_dest, UInt<1>(1))
+ node T_187671 = and(resp_val, T_187670)
+ requestor[1].resp.valid := T_187671
+ requestor[1].resp.bits.error := resp_err
+ requestor[1].resp.bits.pte := r_pte
+ requestor[1].resp.bits.pte.ppn := resp_ppn
+ requestor[1].invalidate := dpath.invalidate
+ requestor[1].status := dpath.status
+
+ node T_187672 = eq(UInt<3>(0), state)
+ when T_187672 :
+ when arb.out.valid : state := UInt<3>(1)
+ count := UInt<1>(0)
+
+ node T_187673 = eq(UInt<3>(1), state)
+ when T_187673 :
+
+ node T_187674 = lt(count, UInt<2>(2))
+ node T_187675 = and(pte_cache_hit, T_187674)
+ when T_187675 :
+ mem__.req.valid := UInt<1>(0)
+ state := UInt<3>(1)
+ node T_187676 = addw(count, UInt<1>(1))
+ count := T_187676
+ r_pte.ppn := pte_cache_data
+ else :
+ when mem__.req.ready : state := UInt<3>(2)
+
+ node T_187677 = eq(UInt<3>(2), state)
+ when T_187677 :
+ when mem__.resp.bits.nack : state := UInt<3>(1)
+ when mem__.resp.valid :
+ state := UInt<3>(6)
+
+
+ node T_187678 = lt(pte.typ, UInt<2>(2))
+ node T_187679 = and(pte.v, T_187678)
+ node T_187680 = lt(count, UInt<2>(2))
+ node T_187681 = and(T_187679, T_187680)
+ when T_187681 :
+ state := UInt<3>(1)
+ node T_187682 = addw(count, UInt<1>(1))
+ count := T_187682
+
+
+ node T_187683 = geq(pte.typ, UInt<2>(2))
+ node T_187684 = and(pte.v, T_187683)
+ when T_187684 :
+ wire T_187685 : UInt<3>
+ T_187685 := UInt<3>(5)
+ when set_dirty_bit : T_187685 := UInt<3>(3)
+ state := T_187685
+
+ node T_187686 = eq(UInt<3>(3), state)
+ when T_187686 : when mem__.req.ready : state := UInt<3>(4)
+
+ node T_187687 = eq(UInt<3>(4), state)
+ when T_187687 :
+ when mem__.resp.bits.nack : state := UInt<3>(3)
+ when mem__.resp.valid : state := UInt<3>(1)
+
+ node T_187688 = eq(UInt<3>(5), state)
+ when T_187688 : state := UInt<3>(0)
+
+ node T_187689 = eq(UInt<3>(6), state)
+ when T_187689 : state := UInt<3>(0)
+ module CSRFile :
+ output host : {flip reset : UInt<1>, flip id : UInt<1>, flip pcr_req : {flip ready : UInt<1>, valid : UInt<1>, bits : {rw : UInt<1>, addr : UInt<12>, data : UInt<64>}}, pcr_rep : {flip ready : UInt<1>, valid : UInt<1>, bits : UInt<64>}, ipi_req : {flip ready : UInt<1>, valid : UInt<1>, bits : UInt<1>}, flip ipi_rep : {flip ready : UInt<1>, valid : UInt<1>, bits : UInt<1>}, debug_stats_pcr : UInt<1>}
+ output rw : {flip addr : UInt<12>, flip cmd : UInt<3>, rdata : UInt<64>, flip wdata : UInt<64>}
+ output csr_replay : UInt<1>
+ output csr_stall : UInt<1>
+ output csr_xcpt : UInt<1>
+ output eret : UInt<1>
+ output status : {sd : UInt<1>, zero2 : UInt<31>, sd_rv32 : UInt<1>, zero1 : UInt<9>, vm : UInt<5>, mprv : UInt<1>, xs : UInt<2>, fs : UInt<2>, prv3 : UInt<2>, ie3 : UInt<1>, prv2 : UInt<2>, ie2 : UInt<1>, prv1 : UInt<2>, ie1 : UInt<1>, prv : UInt<2>, ie : UInt<1>}
+ output ptbr : UInt<32>
+ output evec : UInt<40>
+ input exception : UInt<1>
+ input retire : UInt<1>
+ input uarch_counters : UInt<1>[16]
+ output custom_mrw_csrs : UInt[0]
+ input cause : UInt<64>
+ input pc : UInt<40>
+ output fatc : UInt<1>
+ output time : UInt<64>
+ output fcsr_rm : UInt<3>
+ input fcsr_flags : {valid : UInt<1>, bits : UInt<5>}
+ input rocc : {flip cmd : {flip ready : UInt<1>, valid : UInt<1>, bits : {inst__ : {funct : UInt<7>, rs2 : UInt<5>, rs1 : UInt<5>, xd : UInt<1>, xs1 : UInt<1>, xs2 : UInt<1>, rd : UInt<5>, opcode : UInt<7>}, rs1 : UInt<64>, rs2 : UInt<64>}}, resp : {flip ready : UInt<1>, valid : UInt<1>, bits : {rd : UInt<5>, data : UInt<64>}}, mem__ : {req : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr : UInt<40>, tag : UInt<8>, cmd : UInt<5>, typ : UInt<3>, kill : UInt<1>, phys : UInt<1>, data : UInt<64>}}, flip resp : {valid : UInt<1>, bits : {addr : UInt<40>, tag : UInt<8>, cmd : UInt<5>, typ : UInt<3>, data : UInt<64>, nack : UInt<1>, replay : UInt<1>, has_data : UInt<1>, data_subword : UInt<64>, store_data : UInt<64>}}, flip replay_next : {valid : UInt<1>, bits : UInt<8>}, flip xcpt : {ma : {ld : UInt<1>, st : UInt<1>}, pf : {ld : UInt<1>, st : UInt<1>}}, invalidate_lr : UInt<1>, flip ordered : UInt<1>}, busy : UInt<1>, flip s : UInt<1>, interrupt : UInt<1>, imem : {acquire : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_block : UInt<26>, client_xact_id : UInt<1>, addr_beat : UInt<2>, data : UInt<128>, is_builtin_type : UInt<1>, a_type : UInt<3>, union : UInt<17>}}, flip grant : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_beat : UInt<2>, data : UInt<128>, client_xact_id : UInt<1>, manager_xact_id : UInt<2>, is_builtin_type : UInt<1>, g_type : UInt<4>}}}, dmem : {acquire : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_block : UInt<26>, client_xact_id : UInt<1>, addr_beat : UInt<2>, data : UInt<128>, is_builtin_type : UInt<1>, a_type : UInt<3>, union : UInt<17>}}, flip grant : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_beat : UInt<2>, data : UInt<128>, client_xact_id : UInt<1>, manager_xact_id : UInt<2>, is_builtin_type : UInt<1>, g_type : UInt<4>}}}, iptw : {req : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr : UInt<27>, prv : UInt<2>, store : UInt<1>, fetch : UInt<1>}}, flip resp : {valid : UInt<1>, bits : {error : UInt<1>, pte : {ppn : UInt<20>, reserved_for_software : UInt<3>, d : UInt<1>, r : UInt<1>, typ : UInt<4>, v : UInt<1>}}}, flip status : {sd : UInt<1>, zero2 : UInt<31>, sd_rv32 : UInt<1>, zero1 : UInt<9>, vm : UInt<5>, mprv : UInt<1>, xs : UInt<2>, fs : UInt<2>, prv3 : UInt<2>, ie3 : UInt<1>, prv2 : UInt<2>, ie2 : UInt<1>, prv1 : UInt<2>, ie1 : UInt<1>, prv : UInt<2>, ie : UInt<1>}, flip invalidate : UInt<1>}, dptw : {req : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr : UInt<27>, prv : UInt<2>, store : UInt<1>, fetch : UInt<1>}}, flip resp : {valid : UInt<1>, bits : {error : UInt<1>, pte : {ppn : UInt<20>, reserved_for_software : UInt<3>, d : UInt<1>, r : UInt<1>, typ : UInt<4>, v : UInt<1>}}}, flip status : {sd : UInt<1>, zero2 : UInt<31>, sd_rv32 : UInt<1>, zero1 : UInt<9>, vm : UInt<5>, mprv : UInt<1>, xs : UInt<2>, fs : UInt<2>, prv3 : UInt<2>, ie3 : UInt<1>, prv2 : UInt<2>, ie2 : UInt<1>, prv1 : UInt<2>, ie1 : UInt<1>, prv : UInt<2>, ie : UInt<1>}, flip invalidate : UInt<1>}, pptw : {req : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr : UInt<27>, prv : UInt<2>, store : UInt<1>, fetch : UInt<1>}}, flip resp : {valid : UInt<1>, bits : {error : UInt<1>, pte : {ppn : UInt<20>, reserved_for_software : UInt<3>, d : UInt<1>, r : UInt<1>, typ : UInt<4>, v : UInt<1>}}}, flip status : {sd : UInt<1>, zero2 : UInt<31>, sd_rv32 : UInt<1>, zero1 : UInt<9>, vm : UInt<5>, mprv : UInt<1>, xs : UInt<2>, fs : UInt<2>, prv3 : UInt<2>, ie3 : UInt<1>, prv2 : UInt<2>, ie2 : UInt<1>, prv1 : UInt<2>, ie1 : UInt<1>, prv : UInt<2>, ie : UInt<1>}, flip invalidate : UInt<1>}, flip exception : UInt<1>}
+ output interrupt : UInt<1>
+ output interrupt_cause : UInt<64>
+
+ wire uarch_counters : UInt<1>[16]
+ uarch_counters[0] := T_187690
+ uarch_counters[1] := T_187691
+ uarch_counters[2] := T_187692
+ uarch_counters[3] := T_187693
+ uarch_counters[4] := T_187694
+ uarch_counters[5] := T_187695
+ uarch_counters[6] := T_187696
+ uarch_counters[7] := T_187697
+ uarch_counters[8] := T_187698
+ uarch_counters[9] := T_187699
+ uarch_counters[10] := T_187700
+ uarch_counters[11] := T_187701
+ uarch_counters[12] := T_187702
+ uarch_counters[13] := T_187703
+ uarch_counters[14] := T_187704
+ uarch_counters[15] := T_187705
+ wire custom_mrw_csrs : UInt[0]
+ wire T_187706 : UInt<3>[3]
+ T_187706[0] := UInt<3>(0)
+ T_187706[1] := UInt<3>(1)
+ T_187706[2] := UInt<3>(2)
+ wire T_187707 : UInt<2>[2]
+ T_187707[0] := UInt<2>(0)
+ T_187707[1] := UInt<2>(1)
+ wire T_187708 : UInt<2>[3]
+ T_187708[0] := UInt<2>(1)
+ T_187708[1] := UInt<2>(2)
+ T_187708[2] := UInt<2>(3)
+ wire T_187709 : UInt<2>[2]
+ T_187709[0] := UInt<2>(2)
+ T_187709[1] := UInt<2>(3)
+ wire T_187710 : UInt<2>[1]
+ T_187710[0] := UInt<2>(3)
+ wire T_187711 : UInt<3>[3]
+ T_187711[0] := UInt<3>(0)
+ T_187711[1] := UInt<3>(1)
+ T_187711[2] := UInt<3>(2)
+ wire T_187712 : UInt<2>[2]
+ T_187712[0] := UInt<2>(0)
+ T_187712[1] := UInt<2>(1)
+ wire T_187713 : UInt<2>[3]
+ T_187713[0] := UInt<2>(1)
+ T_187713[1] := UInt<2>(2)
+ T_187713[2] := UInt<2>(3)
+ wire T_187714 : UInt<2>[2]
+ T_187714[0] := UInt<2>(2)
+ T_187714[1] := UInt<2>(3)
+ wire T_187715 : UInt<2>[1]
+ T_187715[0] := UInt<2>(3)
+ wire T_187716 : UInt<3>[3]
+ T_187716[0] := UInt<3>(0)
+ T_187716[1] := UInt<3>(1)
+ T_187716[2] := UInt<3>(2)
+ wire T_187717 : UInt<2>[2]
+ T_187717[0] := UInt<2>(0)
+ T_187717[1] := UInt<2>(1)
+ wire T_187718 : UInt<2>[3]
+ T_187718[0] := UInt<2>(1)
+ T_187718[1] := UInt<2>(2)
+ T_187718[2] := UInt<2>(3)
+ wire T_187719 : UInt<2>[2]
+ T_187719[0] := UInt<2>(2)
+ T_187719[1] := UInt<2>(3)
+ wire T_187720 : UInt<2>[1]
+ T_187720[0] := UInt<2>(3)
+ wire T_187721 : UInt<3>[3]
+ T_187721[0] := UInt<3>(0)
+ T_187721[1] := UInt<3>(1)
+ T_187721[2] := UInt<3>(2)
+ wire T_187722 : UInt<2>[2]
+ T_187722[0] := UInt<2>(0)
+ T_187722[1] := UInt<2>(1)
+ wire T_187723 : UInt<2>[3]
+ T_187723[0] := UInt<2>(1)
+ T_187723[1] := UInt<2>(2)
+ T_187723[2] := UInt<2>(3)
+ wire T_187724 : UInt<2>[2]
+ T_187724[0] := UInt<2>(2)
+ T_187724[1] := UInt<2>(3)
+ wire T_187725 : UInt<2>[1]
+ T_187725[0] := UInt<2>(3)
+ wire T_187726 : UInt<3>[3]
+ T_187726[0] := UInt<3>(0)
+ T_187726[1] := UInt<3>(1)
+ T_187726[2] := UInt<3>(2)
+ wire T_187727 : UInt<2>[2]
+ T_187727[0] := UInt<2>(0)
+ T_187727[1] := UInt<2>(1)
+ wire T_187728 : UInt<2>[3]
+ T_187728[0] := UInt<2>(1)
+ T_187728[1] := UInt<2>(2)
+ T_187728[2] := UInt<2>(3)
+ wire T_187729 : UInt<2>[2]
+ T_187729[0] := UInt<2>(2)
+ T_187729[1] := UInt<2>(3)
+ wire T_187730 : UInt<2>[1]
+ T_187730[0] := UInt<2>(3)
+ wire T_187731 : UInt<3>[3]
+ T_187731[0] := UInt<3>(0)
+ T_187731[1] := UInt<3>(1)
+ T_187731[2] := UInt<3>(2)
+ wire T_187732 : UInt<2>[2]
+ T_187732[0] := UInt<2>(0)
+ T_187732[1] := UInt<2>(1)
+ wire T_187733 : UInt<2>[3]
+ T_187733[0] := UInt<2>(1)
+ T_187733[1] := UInt<2>(2)
+ T_187733[2] := UInt<2>(3)
+ wire T_187734 : UInt<2>[2]
+ T_187734[0] := UInt<2>(2)
+ T_187734[1] := UInt<2>(3)
+ wire T_187735 : UInt<2>[1]
+ T_187735[0] := UInt<2>(3)
+ wire T_187736 : UInt<3>[3]
+ T_187736[0] := UInt<3>(0)
+ T_187736[1] := UInt<3>(1)
+ T_187736[2] := UInt<3>(2)
+ wire T_187737 : UInt<2>[2]
+ T_187737[0] := UInt<2>(0)
+ T_187737[1] := UInt<2>(1)
+ wire T_187738 : UInt<2>[3]
+ T_187738[0] := UInt<2>(1)
+ T_187738[1] := UInt<2>(2)
+ T_187738[2] := UInt<2>(3)
+ wire T_187739 : UInt<2>[2]
+ T_187739[0] := UInt<2>(2)
+ T_187739[1] := UInt<2>(3)
+ wire T_187740 : UInt<2>[1]
+ T_187740[0] := UInt<2>(3)
+ wire T_187741 : UInt<3>[3]
+ T_187741[0] := UInt<3>(0)
+ T_187741[1] := UInt<3>(1)
+ T_187741[2] := UInt<3>(2)
+ wire T_187742 : UInt<2>[2]
+ T_187742[0] := UInt<2>(0)
+ T_187742[1] := UInt<2>(1)
+ wire T_187743 : UInt<2>[3]
+ T_187743[0] := UInt<2>(1)
+ T_187743[1] := UInt<2>(2)
+ T_187743[2] := UInt<2>(3)
+ wire T_187744 : UInt<2>[2]
+ T_187744[0] := UInt<2>(2)
+ T_187744[1] := UInt<2>(3)
+ wire T_187745 : UInt<2>[1]
+ T_187745[0] := UInt<2>(3)
+ wire T_187746 : UInt<3>[3]
+ T_187746[0] := UInt<3>(0)
+ T_187746[1] := UInt<3>(1)
+ T_187746[2] := UInt<3>(2)
+ wire T_187747 : UInt<2>[2]
+ T_187747[0] := UInt<2>(0)
+ T_187747[1] := UInt<2>(1)
+ wire T_187748 : UInt<2>[3]
+ T_187748[0] := UInt<2>(1)
+ T_187748[1] := UInt<2>(2)
+ T_187748[2] := UInt<2>(3)
+ wire T_187749 : UInt<2>[2]
+ T_187749[0] := UInt<2>(2)
+ T_187749[1] := UInt<2>(3)
+ wire T_187750 : UInt<2>[1]
+ T_187750[0] := UInt<2>(3)
+ wire T_187751 : UInt<3>[3]
+ T_187751[0] := UInt<3>(0)
+ T_187751[1] := UInt<3>(1)
+ T_187751[2] := UInt<3>(2)
+ wire T_187752 : UInt<2>[2]
+ T_187752[0] := UInt<2>(0)
+ T_187752[1] := UInt<2>(1)
+ wire T_187753 : UInt<2>[3]
+ T_187753[0] := UInt<2>(1)
+ T_187753[1] := UInt<2>(2)
+ T_187753[2] := UInt<2>(3)
+ wire T_187754 : UInt<2>[2]
+ T_187754[0] := UInt<2>(2)
+ T_187754[1] := UInt<2>(3)
+ wire T_187755 : UInt<2>[1]
+ T_187755[0] := UInt<2>(3)
+ reg reg_mstatus : {sd : UInt<1>, zero2 : UInt<31>, sd_rv32 : UInt<1>, zero1 : UInt<9>, vm : UInt<5>, mprv : UInt<1>, xs : UInt<2>, fs : UInt<2>, prv3 : UInt<2>, ie3 : UInt<1>, prv2 : UInt<2>, ie2 : UInt<1>, prv1 : UInt<2>, ie1 : UInt<1>, prv : UInt<2>, ie : UInt<1>}
+ wire T_187756 : {mtip : UInt<1>, htip : UInt<1>, stip : UInt<1>, utip : UInt<1>, msip : UInt<1>, hsip : UInt<1>, ssip : UInt<1>, usip : UInt<1>}
+ T_187756.usip := UInt<1>(0)
+ T_187756.ssip := UInt<1>(0)
+ T_187756.hsip := UInt<1>(0)
+ T_187756.msip := UInt<1>(0)
+ T_187756.utip := UInt<1>(0)
+ T_187756.stip := UInt<1>(0)
+ T_187756.htip := UInt<1>(0)
+ T_187756.mtip := UInt<1>(0)
+ reg reg_mie : {mtip : UInt<1>, htip : UInt<1>, stip : UInt<1>, utip : UInt<1>, msip : UInt<1>, hsip : UInt<1>, ssip : UInt<1>, usip : UInt<1>}
+ onreset reg_mie := T_187756
+ wire T_187757 : {mtip : UInt<1>, htip : UInt<1>, stip : UInt<1>, utip : UInt<1>, msip : UInt<1>, hsip : UInt<1>, ssip : UInt<1>, usip : UInt<1>}
+ T_187757.usip := UInt<1>(0)
+ T_187757.ssip := UInt<1>(0)
+ T_187757.hsip := UInt<1>(0)
+ T_187757.msip := UInt<1>(0)
+ T_187757.utip := UInt<1>(0)
+ T_187757.stip := UInt<1>(0)
+ T_187757.htip := UInt<1>(0)
+ T_187757.mtip := UInt<1>(0)
+ reg reg_mip : {mtip : UInt<1>, htip : UInt<1>, stip : UInt<1>, utip : UInt<1>, msip : UInt<1>, hsip : UInt<1>, ssip : UInt<1>, usip : UInt<1>}
+ onreset reg_mip := T_187757
+ reg reg_mepc : UInt<40>
+ reg reg_mcause : UInt<64>
+ reg reg_mbadaddr : UInt<40>
+ reg reg_mscratch : UInt<64>
+ reg reg_sepc : UInt<40>
+ reg reg_scause : UInt<64>
+ reg reg_sbadaddr : UInt<40>
+ reg reg_sscratch : UInt<64>
+ reg reg_stvec : UInt<39>
+ reg reg_mtimecmp : UInt<64>
+ reg reg_sptbr : UInt<32>
+ reg reg_wfi : UInt<1>
+ onreset reg_wfi := UInt<1>(0)
+ reg reg_tohost : UInt<64>
+ onreset reg_tohost := UInt<64>(0)
+ reg reg_fromhost : UInt<64>
+ onreset reg_fromhost := UInt<64>(0)
+ reg reg_stats : UInt<1>
+ onreset reg_stats := UInt<1>(0)
+ reg reg_time : UInt<64>
+ reg T_187758 : UInt<6>
+ onreset T_187758 := UInt<6>(0)
+ node T_187759 = eq(UInt<1>(1), UInt<1>(0))
+ node T_187760 = eq(T_187759, UInt<1>(0))
+ node T_187761 = addw(T_187758, UInt<7>(1))
+ when T_187760 :
+ node T_187762 = bits(T_187761, 5, 0)
+ T_187758 := T_187762
+ reg T_187763 : UInt<58>
+ onreset T_187763 := UInt<58>(0)
+
+
+ node T_187764 = bit(T_187761, 6)
+ node T_187765 = and(T_187760, T_187764)
+ when T_187765 :
+ node T_187766 = addw(T_187763, UInt<1>(1))
+ T_187763 := T_187766
+ node T_187767 = cat(T_187763, T_187758)
+ reg T_187768 : UInt<6>
+ onreset T_187768 := UInt<6>(0)
+ node T_187769 = eq(retire, UInt<1>(0))
+ node T_187770 = eq(T_187769, UInt<1>(0))
+ node T_187771 = addw(T_187768, UInt<7>(1))
+ when T_187770 :
+ node T_187772 = bits(T_187771, 5, 0)
+ T_187768 := T_187772
+ reg T_187773 : UInt<58>
+ onreset T_187773 := UInt<58>(0)
+
+
+ node T_187774 = bit(T_187771, 6)
+ node T_187775 = and(T_187770, T_187774)
+ when T_187775 :
+ node T_187776 = addw(T_187773, UInt<1>(1))
+ T_187773 := T_187776
+ node T_187777 = cat(T_187773, T_187768)
+ reg T_187778 : UInt<6>
+ onreset T_187778 := UInt<6>(0)
+ node T_187779 = eq(uarch_counters[0], UInt<1>(0))
+ node T_187780 = eq(T_187779, UInt<1>(0))
+ node T_187781 = addw(T_187778, UInt<7>(1))
+ when T_187780 :
+ node T_187782 = bits(T_187781, 5, 0)
+ T_187778 := T_187782
+ reg T_187783 : UInt<58>
+ onreset T_187783 := UInt<58>(0)
+
+
+ node T_187784 = bit(T_187781, 6)
+ node T_187785 = and(T_187780, T_187784)
+ when T_187785 :
+ node T_187786 = addw(T_187783, UInt<1>(1))
+ T_187783 := T_187786
+ node T_187787 = cat(T_187783, T_187778)
+ reg T_187788 : UInt<6>
+ onreset T_187788 := UInt<6>(0)
+ node T_187789 = eq(uarch_counters[1], UInt<1>(0))
+ node T_187790 = eq(T_187789, UInt<1>(0))
+ node T_187791 = addw(T_187788, UInt<7>(1))
+ when T_187790 :
+ node T_187792 = bits(T_187791, 5, 0)
+ T_187788 := T_187792
+ reg T_187793 : UInt<58>
+ onreset T_187793 := UInt<58>(0)
+
+
+ node T_187794 = bit(T_187791, 6)
+ node T_187795 = and(T_187790, T_187794)
+ when T_187795 :
+ node T_187796 = addw(T_187793, UInt<1>(1))
+ T_187793 := T_187796
+ node T_187797 = cat(T_187793, T_187788)
+ reg T_187798 : UInt<6>
+ onreset T_187798 := UInt<6>(0)
+ node T_187799 = eq(uarch_counters[2], UInt<1>(0))
+ node T_187800 = eq(T_187799, UInt<1>(0))
+ node T_187801 = addw(T_187798, UInt<7>(1))
+ when T_187800 :
+ node T_187802 = bits(T_187801, 5, 0)
+ T_187798 := T_187802
+ reg T_187803 : UInt<58>
+ onreset T_187803 := UInt<58>(0)
+
+
+ node T_187804 = bit(T_187801, 6)
+ node T_187805 = and(T_187800, T_187804)
+ when T_187805 :
+ node T_187806 = addw(T_187803, UInt<1>(1))
+ T_187803 := T_187806
+ node T_187807 = cat(T_187803, T_187798)
+ reg T_187808 : UInt<6>
+ onreset T_187808 := UInt<6>(0)
+ node T_187809 = eq(uarch_counters[3], UInt<1>(0))
+ node T_187810 = eq(T_187809, UInt<1>(0))
+ node T_187811 = addw(T_187808, UInt<7>(1))
+ when T_187810 :
+ node T_187812 = bits(T_187811, 5, 0)
+ T_187808 := T_187812
+ reg T_187813 : UInt<58>
+ onreset T_187813 := UInt<58>(0)
+
+
+ node T_187814 = bit(T_187811, 6)
+ node T_187815 = and(T_187810, T_187814)
+ when T_187815 :
+ node T_187816 = addw(T_187813, UInt<1>(1))
+ T_187813 := T_187816
+ node T_187817 = cat(T_187813, T_187808)
+ reg T_187818 : UInt<6>
+ onreset T_187818 := UInt<6>(0)
+ node T_187819 = eq(uarch_counters[4], UInt<1>(0))
+ node T_187820 = eq(T_187819, UInt<1>(0))
+ node T_187821 = addw(T_187818, UInt<7>(1))
+ when T_187820 :
+ node T_187822 = bits(T_187821, 5, 0)
+ T_187818 := T_187822
+ reg T_187823 : UInt<58>
+ onreset T_187823 := UInt<58>(0)
+
+
+ node T_187824 = bit(T_187821, 6)
+ node T_187825 = and(T_187820, T_187824)
+ when T_187825 :
+ node T_187826 = addw(T_187823, UInt<1>(1))
+ T_187823 := T_187826
+ node T_187827 = cat(T_187823, T_187818)
+ reg T_187828 : UInt<6>
+ onreset T_187828 := UInt<6>(0)
+ node T_187829 = eq(uarch_counters[5], UInt<1>(0))
+ node T_187830 = eq(T_187829, UInt<1>(0))
+ node T_187831 = addw(T_187828, UInt<7>(1))
+ when T_187830 :
+ node T_187832 = bits(T_187831, 5, 0)
+ T_187828 := T_187832
+ reg T_187833 : UInt<58>
+ onreset T_187833 := UInt<58>(0)
+
+
+ node T_187834 = bit(T_187831, 6)
+ node T_187835 = and(T_187830, T_187834)
+ when T_187835 :
+ node T_187836 = addw(T_187833, UInt<1>(1))
+ T_187833 := T_187836
+ node T_187837 = cat(T_187833, T_187828)
+ reg T_187838 : UInt<6>
+ onreset T_187838 := UInt<6>(0)
+ node T_187839 = eq(uarch_counters[6], UInt<1>(0))
+ node T_187840 = eq(T_187839, UInt<1>(0))
+ node T_187841 = addw(T_187838, UInt<7>(1))
+ when T_187840 :
+ node T_187842 = bits(T_187841, 5, 0)
+ T_187838 := T_187842
+ reg T_187843 : UInt<58>
+ onreset T_187843 := UInt<58>(0)
+
+
+ node T_187844 = bit(T_187841, 6)
+ node T_187845 = and(T_187840, T_187844)
+ when T_187845 :
+ node T_187846 = addw(T_187843, UInt<1>(1))
+ T_187843 := T_187846
+ node T_187847 = cat(T_187843, T_187838)
+ reg T_187848 : UInt<6>
+ onreset T_187848 := UInt<6>(0)
+ node T_187849 = eq(uarch_counters[7], UInt<1>(0))
+ node T_187850 = eq(T_187849, UInt<1>(0))
+ node T_187851 = addw(T_187848, UInt<7>(1))
+ when T_187850 :
+ node T_187852 = bits(T_187851, 5, 0)
+ T_187848 := T_187852
+ reg T_187853 : UInt<58>
+ onreset T_187853 := UInt<58>(0)
+
+
+ node T_187854 = bit(T_187851, 6)
+ node T_187855 = and(T_187850, T_187854)
+ when T_187855 :
+ node T_187856 = addw(T_187853, UInt<1>(1))
+ T_187853 := T_187856
+ node T_187857 = cat(T_187853, T_187848)
+ reg T_187858 : UInt<6>
+ onreset T_187858 := UInt<6>(0)
+ node T_187859 = eq(uarch_counters[8], UInt<1>(0))
+ node T_187860 = eq(T_187859, UInt<1>(0))
+ node T_187861 = addw(T_187858, UInt<7>(1))
+ when T_187860 :
+ node T_187862 = bits(T_187861, 5, 0)
+ T_187858 := T_187862
+ reg T_187863 : UInt<58>
+ onreset T_187863 := UInt<58>(0)
+
+
+ node T_187864 = bit(T_187861, 6)
+ node T_187865 = and(T_187860, T_187864)
+ when T_187865 :
+ node T_187866 = addw(T_187863, UInt<1>(1))
+ T_187863 := T_187866
+ node T_187867 = cat(T_187863, T_187858)
+ reg T_187868 : UInt<6>
+ onreset T_187868 := UInt<6>(0)
+ node T_187869 = eq(uarch_counters[9], UInt<1>(0))
+ node T_187870 = eq(T_187869, UInt<1>(0))
+ node T_187871 = addw(T_187868, UInt<7>(1))
+ when T_187870 :
+ node T_187872 = bits(T_187871, 5, 0)
+ T_187868 := T_187872
+ reg T_187873 : UInt<58>
+ onreset T_187873 := UInt<58>(0)
+
+
+ node T_187874 = bit(T_187871, 6)
+ node T_187875 = and(T_187870, T_187874)
+ when T_187875 :
+ node T_187876 = addw(T_187873, UInt<1>(1))
+ T_187873 := T_187876
+ node T_187877 = cat(T_187873, T_187868)
+ reg T_187878 : UInt<6>
+ onreset T_187878 := UInt<6>(0)
+ node T_187879 = eq(uarch_counters[10], UInt<1>(0))
+ node T_187880 = eq(T_187879, UInt<1>(0))
+ node T_187881 = addw(T_187878, UInt<7>(1))
+ when T_187880 :
+ node T_187882 = bits(T_187881, 5, 0)
+ T_187878 := T_187882
+ reg T_187883 : UInt<58>
+ onreset T_187883 := UInt<58>(0)
+
+
+ node T_187884 = bit(T_187881, 6)
+ node T_187885 = and(T_187880, T_187884)
+ when T_187885 :
+ node T_187886 = addw(T_187883, UInt<1>(1))
+ T_187883 := T_187886
+ node T_187887 = cat(T_187883, T_187878)
+ reg T_187888 : UInt<6>
+ onreset T_187888 := UInt<6>(0)
+ node T_187889 = eq(uarch_counters[11], UInt<1>(0))
+ node T_187890 = eq(T_187889, UInt<1>(0))
+ node T_187891 = addw(T_187888, UInt<7>(1))
+ when T_187890 :
+ node T_187892 = bits(T_187891, 5, 0)
+ T_187888 := T_187892
+ reg T_187893 : UInt<58>
+ onreset T_187893 := UInt<58>(0)
+
+
+ node T_187894 = bit(T_187891, 6)
+ node T_187895 = and(T_187890, T_187894)
+ when T_187895 :
+ node T_187896 = addw(T_187893, UInt<1>(1))
+ T_187893 := T_187896
+ node T_187897 = cat(T_187893, T_187888)
+ reg T_187898 : UInt<6>
+ onreset T_187898 := UInt<6>(0)
+ node T_187899 = eq(uarch_counters[12], UInt<1>(0))
+ node T_187900 = eq(T_187899, UInt<1>(0))
+ node T_187901 = addw(T_187898, UInt<7>(1))
+ when T_187900 :
+ node T_187902 = bits(T_187901, 5, 0)
+ T_187898 := T_187902
+ reg T_187903 : UInt<58>
+ onreset T_187903 := UInt<58>(0)
+
+
+ node T_187904 = bit(T_187901, 6)
+ node T_187905 = and(T_187900, T_187904)
+ when T_187905 :
+ node T_187906 = addw(T_187903, UInt<1>(1))
+ T_187903 := T_187906
+ node T_187907 = cat(T_187903, T_187898)
+ reg T_187908 : UInt<6>
+ onreset T_187908 := UInt<6>(0)
+ node T_187909 = eq(uarch_counters[13], UInt<1>(0))
+ node T_187910 = eq(T_187909, UInt<1>(0))
+ node T_187911 = addw(T_187908, UInt<7>(1))
+ when T_187910 :
+ node T_187912 = bits(T_187911, 5, 0)
+ T_187908 := T_187912
+ reg T_187913 : UInt<58>
+ onreset T_187913 := UInt<58>(0)
+
+
+ node T_187914 = bit(T_187911, 6)
+ node T_187915 = and(T_187910, T_187914)
+ when T_187915 :
+ node T_187916 = addw(T_187913, UInt<1>(1))
+ T_187913 := T_187916
+ node T_187917 = cat(T_187913, T_187908)
+ reg T_187918 : UInt<6>
+ onreset T_187918 := UInt<6>(0)
+ node T_187919 = eq(uarch_counters[14], UInt<1>(0))
+ node T_187920 = eq(T_187919, UInt<1>(0))
+ node T_187921 = addw(T_187918, UInt<7>(1))
+ when T_187920 :
+ node T_187922 = bits(T_187921, 5, 0)
+ T_187918 := T_187922
+ reg T_187923 : UInt<58>
+ onreset T_187923 := UInt<58>(0)
+
+
+ node T_187924 = bit(T_187921, 6)
+ node T_187925 = and(T_187920, T_187924)
+ when T_187925 :
+ node T_187926 = addw(T_187923, UInt<1>(1))
+ T_187923 := T_187926
+ node T_187927 = cat(T_187923, T_187918)
+ reg T_187928 : UInt<6>
+ onreset T_187928 := UInt<6>(0)
+ node T_187929 = eq(uarch_counters[15], UInt<1>(0))
+ node T_187930 = eq(T_187929, UInt<1>(0))
+ node T_187931 = addw(T_187928, UInt<7>(1))
+ when T_187930 :
+ node T_187932 = bits(T_187931, 5, 0)
+ T_187928 := T_187932
+ reg T_187933 : UInt<58>
+ onreset T_187933 := UInt<58>(0)
+
+
+ node T_187934 = bit(T_187931, 6)
+ node T_187935 = and(T_187930, T_187934)
+ when T_187935 :
+ node T_187936 = addw(T_187933, UInt<1>(1))
+ T_187933 := T_187936
+ node T_187937 = cat(T_187933, T_187928)
+ reg reg_fflags : UInt<5>
+ reg reg_frm : UInt<3>
+ node irq_rocc = and(UInt<1>(0), rocc.interrupt)
+ interrupt_cause := UInt<1>(0)
+ node T_187938 = bit(interrupt_cause, 63)
+ interrupt := T_187938
+ wire some_interrupt_pending : UInt<1>
+ some_interrupt_pending := UInt<1>(0)
+ node T_187939 = and(reg_mie.ssip, reg_mip.ssip)
+
+
+ node T_187940 = lt(reg_mstatus.prv, UInt<1>(1))
+ node T_187941 = eq(reg_mstatus.prv, UInt<1>(1))
+ node T_187942 = and(T_187941, reg_mstatus.ie)
+ node T_187943 = or(T_187940, T_187942)
+ node T_187944 = and(T_187939, T_187943)
+ when T_187944 : interrupt_cause := UInt<64>(9223372036854775808)
+
+
+ node T_187945 = leq(reg_mstatus.prv, UInt<1>(1))
+ node T_187946 = and(T_187939, T_187945)
+ when T_187946 : some_interrupt_pending := UInt<1>(1)
+ node T_187947 = and(reg_mie.msip, reg_mip.msip)
+
+
+ node T_187948 = lt(reg_mstatus.prv, UInt<2>(3))
+ node T_187949 = eq(reg_mstatus.prv, UInt<2>(3))
+ node T_187950 = and(T_187949, reg_mstatus.ie)
+ node T_187951 = or(T_187948, T_187950)
+ node T_187952 = and(T_187947, T_187951)
+ when T_187952 : interrupt_cause := UInt<64>(9223372036854775808)
+
+
+ node T_187953 = leq(reg_mstatus.prv, UInt<2>(3))
+ node T_187954 = and(T_187947, T_187953)
+ when T_187954 : some_interrupt_pending := UInt<1>(1)
+ node T_187955 = and(reg_mie.stip, reg_mip.stip)
+
+
+ node T_187956 = lt(reg_mstatus.prv, UInt<1>(1))
+ node T_187957 = eq(reg_mstatus.prv, UInt<1>(1))
+ node T_187958 = and(T_187957, reg_mstatus.ie)
+ node T_187959 = or(T_187956, T_187958)
+ node T_187960 = and(T_187955, T_187959)
+ when T_187960 : interrupt_cause := UInt<64>(9223372036854775809)
+
+
+ node T_187961 = leq(reg_mstatus.prv, UInt<1>(1))
+ node T_187962 = and(T_187955, T_187961)
+ when T_187962 : some_interrupt_pending := UInt<1>(1)
+ node T_187963 = and(reg_mie.mtip, reg_mip.mtip)
+
+
+ node T_187964 = lt(reg_mstatus.prv, UInt<2>(3))
+ node T_187965 = eq(reg_mstatus.prv, UInt<2>(3))
+ node T_187966 = and(T_187965, reg_mstatus.ie)
+ node T_187967 = or(T_187964, T_187966)
+ node T_187968 = and(T_187963, T_187967)
+ when T_187968 : interrupt_cause := UInt<64>(9223372036854775809)
+
+
+ node T_187969 = leq(reg_mstatus.prv, UInt<2>(3))
+ node T_187970 = and(T_187963, T_187969)
+ when T_187970 : some_interrupt_pending := UInt<1>(1)
+ node T_187971 = neq(reg_fromhost, UInt<1>(0))
+
+
+ node T_187972 = lt(reg_mstatus.prv, UInt<2>(3))
+ node T_187973 = eq(reg_mstatus.prv, UInt<2>(3))
+ node T_187974 = and(T_187973, reg_mstatus.ie)
+ node T_187975 = or(T_187972, T_187974)
+ node T_187976 = and(T_187971, T_187975)
+ when T_187976 : interrupt_cause := UInt<64>(9223372036854775810)
+
+
+ node T_187977 = leq(reg_mstatus.prv, UInt<2>(3))
+ node T_187978 = and(T_187971, T_187977)
+ when T_187978 : some_interrupt_pending := UInt<1>(1)
+
+
+ node T_187979 = lt(reg_mstatus.prv, UInt<2>(3))
+ node T_187980 = eq(reg_mstatus.prv, UInt<2>(3))
+ node T_187981 = and(T_187980, reg_mstatus.ie)
+ node T_187982 = or(T_187979, T_187981)
+ node T_187983 = and(irq_rocc, T_187982)
+ when T_187983 : interrupt_cause := UInt<64>(9223372036854775811)
+
+
+ node T_187984 = leq(reg_mstatus.prv, UInt<2>(3))
+ node T_187985 = and(irq_rocc, T_187984)
+ when T_187985 : some_interrupt_pending := UInt<1>(1)
+ node system_insn = eq(rw.cmd, UInt<3>(4))
+ node T_187986 = neq(rw.cmd, UInt<3>(0))
+ node T_187987 = eq(system_insn, UInt<1>(0))
+ node cpu_ren = and(T_187986, T_187987)
+ reg host_pcr_req_valid : UInt<1>
+ node T_187988 = eq(cpu_ren, UInt<1>(0))
+ node host_pcr_req_fire = and(host_pcr_req_valid, T_187988)
+ reg host_pcr_rep_valid : UInt<1>
+ reg host_pcr_bits : {rw : UInt<1>, addr : UInt<12>, data : UInt<64>}
+ node T_187989 = eq(host_pcr_req_valid, UInt<1>(0))
+ node T_187990 = eq(host_pcr_rep_valid, UInt<1>(0))
+ node T_187991 = and(T_187989, T_187990)
+ host.pcr_req.ready := T_187991
+ host.pcr_rep.valid := host_pcr_rep_valid
+ host.pcr_rep.bits := host_pcr_bits.data
+
+ node T_187992 = and(host.pcr_req.ready, host.pcr_req.valid)
+ when T_187992 :
+ host_pcr_req_valid := UInt<1>(1)
+ host_pcr_bits := host.pcr_req.bits
+ when host_pcr_req_fire :
+ host_pcr_req_valid := UInt<1>(0)
+ host_pcr_rep_valid := UInt<1>(1)
+ host_pcr_bits.data := rw.rdata
+
+ node T_187993 = and(host.pcr_rep.ready, host.pcr_rep.valid)
+ when T_187993 : host_pcr_rep_valid := UInt<1>(0)
+ host.debug_stats_pcr := reg_stats
+ node T_187994 = cat(status.sd, status.zero2)
+ node T_187995 = cat(status.sd_rv32, status.zero1)
+ node T_187996 = cat(T_187994, T_187995)
+ node T_187997 = cat(status.vm, status.mprv)
+ node T_187998 = cat(status.xs, status.fs)
+ node T_187999 = cat(T_187997, T_187998)
+ node T_188000 = cat(T_187996, T_187999)
+ node T_188001 = cat(status.prv3, status.ie3)
+ node T_188002 = cat(status.prv2, status.ie2)
+ node T_188003 = cat(T_188001, T_188002)
+ node T_188004 = cat(status.prv1, status.ie1)
+ node T_188005 = cat(status.prv, status.ie)
+ node T_188006 = cat(T_188004, T_188005)
+ node T_188007 = cat(T_188003, T_188006)
+ node read_mstatus = cat(T_188000, T_188007)
+ node T_188008 = cat(reg_frm, reg_fflags)
+ node T_188009 = cat(reg_mip.mtip, reg_mip.htip)
+ node T_188010 = cat(reg_mip.stip, reg_mip.utip)
+ node T_188011 = cat(T_188009, T_188010)
+ node T_188012 = cat(reg_mip.msip, reg_mip.hsip)
+ node T_188013 = cat(reg_mip.ssip, reg_mip.usip)
+ node T_188014 = cat(T_188012, T_188013)
+ node T_188015 = cat(T_188011, T_188014)
+ node T_188016 = cat(reg_mie.mtip, reg_mie.htip)
+ node T_188017 = cat(reg_mie.stip, reg_mie.utip)
+ node T_188018 = cat(T_188016, T_188017)
+ node T_188019 = cat(reg_mie.msip, reg_mie.hsip)
+ node T_188020 = cat(reg_mie.ssip, reg_mie.usip)
+ node T_188021 = cat(T_188019, T_188020)
+ node T_188022 = cat(T_188018, T_188021)
+ node T_188023 = bit(reg_mepc, 39)
+ node T_188024 = subw(UInt<24>(0), UInt<5>(24))
+ node T_188025 = cat(T_188024, reg_mepc)
+ node T_188026 = bit(reg_mbadaddr, 39)
+ node T_188027 = subw(UInt<24>(0), UInt<5>(24))
+ node T_188028 = cat(T_188027, reg_mbadaddr)
+ wire T_188029 : {sd : UInt<1>, zero4 : UInt<31>, sd_rv32 : UInt<1>, zero3 : UInt<14>, mprv : UInt<1>, xs : UInt<2>, fs : UInt<2>, zero2 : UInt<7>, ps : UInt<1>, pie : UInt<1>, zero1 : UInt<2>, ie : UInt<1>}
+ node T_188030 = bits(read_mstatus, 0, 0)
+ T_188029.ie := T_188030
+ node T_188031 = bits(read_mstatus, 2, 1)
+ T_188029.zero1 := T_188031
+ node T_188032 = bits(read_mstatus, 3, 3)
+ T_188029.pie := T_188032
+ node T_188033 = bits(read_mstatus, 4, 4)
+ T_188029.ps := T_188033
+ node T_188034 = bits(read_mstatus, 11, 5)
+ T_188029.zero2 := T_188034
+ node T_188035 = bits(read_mstatus, 13, 12)
+ T_188029.fs := T_188035
+ node T_188036 = bits(read_mstatus, 15, 14)
+ T_188029.xs := T_188036
+ node T_188037 = bits(read_mstatus, 16, 16)
+ T_188029.mprv := T_188037
+ node T_188038 = bits(read_mstatus, 30, 17)
+ T_188029.zero3 := T_188038
+ node T_188039 = bits(read_mstatus, 31, 31)
+ T_188029.sd_rv32 := T_188039
+ node T_188040 = bits(read_mstatus, 62, 32)
+ T_188029.zero4 := T_188040
+ node T_188041 = bits(read_mstatus, 63, 63)
+ T_188029.sd := T_188041
+ wire T_188042 : {sd : UInt<1>, zero4 : UInt<31>, sd_rv32 : UInt<1>, zero3 : UInt<14>, mprv : UInt<1>, xs : UInt<2>, fs : UInt<2>, zero2 : UInt<7>, ps : UInt<1>, pie : UInt<1>, zero1 : UInt<2>, ie : UInt<1>}
+ T_188042 := T_188029
+ T_188042.zero1 := UInt<1>(0)
+ T_188042.zero2 := UInt<1>(0)
+ T_188042.zero3 := UInt<1>(0)
+ T_188042.zero4 := UInt<1>(0)
+ wire T_188043 : {mtip : UInt<1>, htip : UInt<1>, stip : UInt<1>, utip : UInt<1>, msip : UInt<1>, hsip : UInt<1>, ssip : UInt<1>, usip : UInt<1>}
+ T_188043.usip := UInt<1>(0)
+ T_188043.ssip := UInt<1>(0)
+ T_188043.hsip := UInt<1>(0)
+ T_188043.msip := UInt<1>(0)
+ T_188043.utip := UInt<1>(0)
+ T_188043.stip := UInt<1>(0)
+ T_188043.htip := UInt<1>(0)
+ T_188043.mtip := UInt<1>(0)
+ wire T_188044 : {mtip : UInt<1>, htip : UInt<1>, stip : UInt<1>, utip : UInt<1>, msip : UInt<1>, hsip : UInt<1>, ssip : UInt<1>, usip : UInt<1>}
+ T_188044 := T_188043
+ T_188044.ssip := reg_mip.ssip
+ T_188044.stip := reg_mip.stip
+ wire T_188045 : {mtip : UInt<1>, htip : UInt<1>, stip : UInt<1>, utip : UInt<1>, msip : UInt<1>, hsip : UInt<1>, ssip : UInt<1>, usip : UInt<1>}
+ T_188045.usip := UInt<1>(0)
+ T_188045.ssip := UInt<1>(0)
+ T_188045.hsip := UInt<1>(0)
+ T_188045.msip := UInt<1>(0)
+ T_188045.utip := UInt<1>(0)
+ T_188045.stip := UInt<1>(0)
+ T_188045.htip := UInt<1>(0)
+ T_188045.mtip := UInt<1>(0)
+ wire T_188046 : {mtip : UInt<1>, htip : UInt<1>, stip : UInt<1>, utip : UInt<1>, msip : UInt<1>, hsip : UInt<1>, ssip : UInt<1>, usip : UInt<1>}
+ T_188046 := T_188045
+ T_188046.ssip := reg_mie.ssip
+ T_188046.stip := reg_mie.stip
+ node T_188047 = cat(T_188042.zero4, T_188042.sd_rv32)
+ node T_188048 = cat(T_188042.sd, T_188047)
+ node T_188049 = cat(T_188042.mprv, T_188042.xs)
+ node T_188050 = cat(T_188042.zero3, T_188049)
+ node T_188051 = cat(T_188048, T_188050)
+ node T_188052 = cat(T_188042.zero2, T_188042.ps)
+ node T_188053 = cat(T_188042.fs, T_188052)
+ node T_188054 = cat(T_188042.zero1, T_188042.ie)
+ node T_188055 = cat(T_188042.pie, T_188054)
+ node T_188056 = cat(T_188053, T_188055)
+ node T_188057 = cat(T_188051, T_188056)
+ node T_188058 = cat(T_188044.mtip, T_188044.htip)
+ node T_188059 = cat(T_188044.stip, T_188044.utip)
+ node T_188060 = cat(T_188058, T_188059)
+ node T_188061 = cat(T_188044.msip, T_188044.hsip)
+ node T_188062 = cat(T_188044.ssip, T_188044.usip)
+ node T_188063 = cat(T_188061, T_188062)
+ node T_188064 = cat(T_188060, T_188063)
+ node T_188065 = cat(T_188046.mtip, T_188046.htip)
+ node T_188066 = cat(T_188046.stip, T_188046.utip)
+ node T_188067 = cat(T_188065, T_188066)
+ node T_188068 = cat(T_188046.msip, T_188046.hsip)
+ node T_188069 = cat(T_188046.ssip, T_188046.usip)
+ node T_188070 = cat(T_188068, T_188069)
+ node T_188071 = cat(T_188067, T_188070)
+ node T_188072 = bit(reg_sbadaddr, 39)
+ node T_188073 = subw(UInt<24>(0), UInt<5>(24))
+ node T_188074 = cat(T_188073, reg_sbadaddr)
+ node T_188075 = bit(reg_sepc, 39)
+ node T_188076 = subw(UInt<24>(0), UInt<5>(24))
+ node T_188077 = cat(T_188076, reg_sepc)
+ node T_188078 = bit(reg_stvec, 38)
+ node T_188079 = subw(UInt<25>(0), UInt<5>(25))
+ node T_188080 = cat(T_188079, reg_stvec)
+ wire addr : UInt<12>
+ addr := host_pcr_bits.addr
+ when cpu_ren : addr := rw.addr
+ node T_188081 = eq(addr, UInt<1>(1))
+ node T_188082 = eq(addr, UInt<2>(2))
+ node T_188083 = eq(addr, UInt<2>(3))
+ node T_188084 = eq(addr, UInt<12>(3072))
+ node T_188085 = eq(addr, UInt<12>(2304))
+ node T_188086 = eq(addr, UInt<12>(3074))
+ node T_188087 = eq(addr, UInt<12>(2306))
+ node T_188088 = eq(addr, UInt<12>(3073))
+ node T_188089 = eq(addr, UInt<12>(2305))
+ node T_188090 = eq(addr, UInt<12>(3329))
+ node T_188091 = eq(addr, UInt<12>(2561))
+ node T_188092 = eq(addr, UInt<11>(1793))
+ node T_188093 = eq(addr, UInt<12>(3840))
+ node T_188094 = eq(addr, UInt<12>(3841))
+ node T_188095 = eq(addr, UInt<10>(768))
+ node T_188096 = eq(addr, UInt<10>(770))
+ node T_188097 = eq(addr, UInt<11>(1922))
+ node T_188098 = eq(addr, UInt<10>(769))
+ node T_188099 = eq(addr, UInt<10>(836))
+ node T_188100 = eq(addr, UInt<10>(772))
+ node T_188101 = eq(addr, UInt<10>(832))
+ node T_188102 = eq(addr, UInt<10>(833))
+ node T_188103 = eq(addr, UInt<10>(835))
+ node T_188104 = eq(addr, UInt<10>(834))
+ node T_188105 = eq(addr, UInt<10>(801))
+ node T_188106 = eq(addr, UInt<12>(3856))
+ node T_188107 = eq(addr, UInt<11>(1923))
+ node T_188108 = eq(addr, UInt<8>(192))
+ node T_188109 = eq(addr, UInt<11>(1920))
+ node T_188110 = eq(addr, UInt<11>(1921))
+ node T_188111 = eq(addr, UInt<9>(256))
+ node T_188112 = eq(addr, UInt<9>(324))
+ node T_188113 = eq(addr, UInt<9>(260))
+ node T_188114 = eq(addr, UInt<9>(320))
+ node T_188115 = eq(addr, UInt<12>(3394))
+ node T_188116 = eq(addr, UInt<12>(3395))
+ node T_188117 = eq(addr, UInt<9>(384))
+ node T_188118 = eq(addr, UInt<9>(385))
+ node T_188119 = eq(addr, UInt<9>(321))
+ node T_188120 = eq(addr, UInt<9>(257))
+ node T_188121 = eq(addr, UInt<12>(3264))
+ node T_188122 = eq(addr, UInt<12>(3265))
+ node T_188123 = eq(addr, UInt<12>(3266))
+ node T_188124 = eq(addr, UInt<12>(3267))
+ node T_188125 = eq(addr, UInt<12>(3268))
+ node T_188126 = eq(addr, UInt<12>(3269))
+ node T_188127 = eq(addr, UInt<12>(3270))
+ node T_188128 = eq(addr, UInt<12>(3271))
+ node T_188129 = eq(addr, UInt<12>(3272))
+ node T_188130 = eq(addr, UInt<12>(3273))
+ node T_188131 = eq(addr, UInt<12>(3274))
+ node T_188132 = eq(addr, UInt<12>(3275))
+ node T_188133 = eq(addr, UInt<12>(3276))
+ node T_188134 = eq(addr, UInt<12>(3277))
+ node T_188135 = eq(addr, UInt<12>(3278))
+ node T_188136 = eq(addr, UInt<12>(3279))
+ node T_188137 = or(T_188081, T_188082)
+ node T_188138 = or(T_188137, T_188083)
+ node T_188139 = or(T_188138, T_188084)
+ node T_188140 = or(T_188139, T_188085)
+ node T_188141 = or(T_188140, T_188086)
+ node T_188142 = or(T_188141, T_188087)
+ node T_188143 = or(T_188142, T_188088)
+ node T_188144 = or(T_188143, T_188089)
+ node T_188145 = or(T_188144, T_188090)
+ node T_188146 = or(T_188145, T_188091)
+ node T_188147 = or(T_188146, T_188092)
+ node T_188148 = or(T_188147, T_188093)
+ node T_188149 = or(T_188148, T_188094)
+ node T_188150 = or(T_188149, T_188095)
+ node T_188151 = or(T_188150, T_188096)
+ node T_188152 = or(T_188151, T_188097)
+ node T_188153 = or(T_188152, T_188098)
+ node T_188154 = or(T_188153, T_188099)
+ node T_188155 = or(T_188154, T_188100)
+ node T_188156 = or(T_188155, T_188101)
+ node T_188157 = or(T_188156, T_188102)
+ node T_188158 = or(T_188157, T_188103)
+ node T_188159 = or(T_188158, T_188104)
+ node T_188160 = or(T_188159, T_188105)
+ node T_188161 = or(T_188160, T_188106)
+ node T_188162 = or(T_188161, T_188107)
+ node T_188163 = or(T_188162, T_188108)
+ node T_188164 = or(T_188163, T_188109)
+ node T_188165 = or(T_188164, T_188110)
+ node T_188166 = or(T_188165, T_188111)
+ node T_188167 = or(T_188166, T_188112)
+ node T_188168 = or(T_188167, T_188113)
+ node T_188169 = or(T_188168, T_188114)
+ node T_188170 = or(T_188169, T_188115)
+ node T_188171 = or(T_188170, T_188116)
+ node T_188172 = or(T_188171, T_188117)
+ node T_188173 = or(T_188172, T_188118)
+ node T_188174 = or(T_188173, T_188119)
+ node T_188175 = or(T_188174, T_188120)
+ node T_188176 = or(T_188175, T_188121)
+ node T_188177 = or(T_188176, T_188122)
+ node T_188178 = or(T_188177, T_188123)
+ node T_188179 = or(T_188178, T_188124)
+ node T_188180 = or(T_188179, T_188125)
+ node T_188181 = or(T_188180, T_188126)
+ node T_188182 = or(T_188181, T_188127)
+ node T_188183 = or(T_188182, T_188128)
+ node T_188184 = or(T_188183, T_188129)
+ node T_188185 = or(T_188184, T_188130)
+ node T_188186 = or(T_188185, T_188131)
+ node T_188187 = or(T_188186, T_188132)
+ node T_188188 = or(T_188187, T_188133)
+ node T_188189 = or(T_188188, T_188134)
+ node T_188190 = or(T_188189, T_188135)
+ node addr_valid = or(T_188190, T_188136)
+ node T_188191 = or(T_188081, T_188082)
+ node fp_csr = or(T_188191, T_188083)
+ node csr_addr_priv = bits(rw.addr, 9, 8)
+ node priv_sufficient = geq(reg_mstatus.prv, csr_addr_priv)
+ node T_188192 = bits(rw.addr, 11, 10)
+ node read_only = eq(T_188192, UInt<1>(-1))
+ node T_188193 = neq(rw.cmd, UInt<3>(5))
+ node T_188194 = and(cpu_ren, T_188193)
+ node cpu_wen = and(T_188194, priv_sufficient)
+ node T_188195 = eq(read_only, UInt<1>(0))
+ node T_188196 = and(cpu_wen, T_188195)
+ node T_188197 = and(host_pcr_req_fire, host_pcr_bits.rw)
+ node wen = or(T_188196, T_188197)
+ node T_188198 = eq(rw.cmd, UInt<3>(1))
+ node T_188199 = eq(rw.cmd, UInt<3>(3))
+ node T_188200 = not(rw.wdata)
+ node T_188201 = and(rw.rdata, T_188200)
+ node T_188202 = eq(rw.cmd, UInt<3>(2))
+ node T_188203 = or(rw.rdata, rw.wdata)
+ wire T_188204 : UInt<64>
+ T_188204 := host_pcr_bits.data
+ when T_188202 : T_188204 := T_188203
+ wire T_188205 : UInt<64>
+ T_188205 := T_188204
+ when T_188199 : T_188205 := T_188201
+ wire wdata : UInt<64>
+ wdata := T_188205
+ when T_188198 : wdata := rw.wdata
+ node T_188206 = bit(rw.addr, 8)
+ node T_188207 = eq(T_188206, UInt<1>(0))
+ node T_188208 = bit(rw.addr, 0)
+ node T_188209 = eq(T_188208, UInt<1>(0))
+ node T_188210 = and(T_188207, T_188209)
+ node insn_call = and(T_188210, system_insn)
+ node T_188211 = bit(rw.addr, 8)
+ node T_188212 = eq(T_188211, UInt<1>(0))
+ node T_188213 = bit(rw.addr, 0)
+ node T_188214 = and(T_188212, T_188213)
+ node insn_break = and(T_188214, system_insn)
+ node T_188215 = bit(rw.addr, 8)
+ node T_188216 = bit(rw.addr, 1)
+ node T_188217 = eq(T_188216, UInt<1>(0))
+ node T_188218 = and(T_188215, T_188217)
+ node T_188219 = bit(rw.addr, 0)
+ node T_188220 = eq(T_188219, UInt<1>(0))
+ node T_188221 = and(T_188218, T_188220)
+ node T_188222 = and(T_188221, system_insn)
+ node insn_ret = and(T_188222, priv_sufficient)
+ node T_188223 = bit(rw.addr, 8)
+ node T_188224 = bit(rw.addr, 1)
+ node T_188225 = eq(T_188224, UInt<1>(0))
+ node T_188226 = and(T_188223, T_188225)
+ node T_188227 = bit(rw.addr, 0)
+ node T_188228 = and(T_188226, T_188227)
+ node T_188229 = and(T_188228, system_insn)
+ node insn_sfence_vm = and(T_188229, priv_sufficient)
+ node T_188230 = bit(rw.addr, 2)
+ node maybe_insn_redirect_trap = and(T_188230, system_insn)
+ node insn_redirect_trap = and(maybe_insn_redirect_trap, priv_sufficient)
+ node T_188231 = bit(rw.addr, 8)
+ node T_188232 = bit(rw.addr, 1)
+ node T_188233 = and(T_188231, T_188232)
+ node T_188234 = bit(rw.addr, 0)
+ node T_188235 = eq(T_188234, UInt<1>(0))
+ node T_188236 = and(T_188233, T_188235)
+ node T_188237 = and(T_188236, system_insn)
+ node insn_wfi = and(T_188237, priv_sufficient)
+ node T_188238 = and(cpu_wen, read_only)
+ node T_188239 = eq(priv_sufficient, UInt<1>(0))
+ node T_188240 = eq(addr_valid, UInt<1>(0))
+ node T_188241 = or(T_188239, T_188240)
+ node T_188242 = eq(status.fs, UInt<1>(0))
+ node T_188243 = eq(T_188242, UInt<1>(0))
+ node T_188244 = eq(T_188243, UInt<1>(0))
+ node T_188245 = and(fp_csr, T_188244)
+ node T_188246 = or(T_188241, T_188245)
+ node T_188247 = and(cpu_ren, T_188246)
+ node T_188248 = or(T_188238, T_188247)
+ node T_188249 = eq(priv_sufficient, UInt<1>(0))
+ node T_188250 = and(system_insn, T_188249)
+ node T_188251 = or(T_188248, T_188250)
+ node T_188252 = or(T_188251, insn_call)
+ node csr_xcpt = or(T_188252, insn_break)
+ when insn_wfi : reg_wfi := UInt<1>(1)
+ when some_interrupt_pending : reg_wfi := UInt<1>(0)
+ fatc := insn_sfence_vm
+ node T_188253 = or(exception, csr_xcpt)
+ node T_188254 = shl(reg_mstatus.prv, 6)
+ node T_188255 = addw(T_188254, UInt<9>(256))
+ node T_188256 = bit(reg_stvec, 38)
+ node T_188257 = cat(T_188256, reg_stvec)
+ node T_188258 = bit(reg_mstatus.prv, 1)
+ wire T_188259 : UInt<40>
+ T_188259 := reg_sepc
+ when T_188258 : T_188259 := reg_mepc
+ wire T_188260 : UInt<40>
+ T_188260 := T_188259
+ when maybe_insn_redirect_trap : T_188260 := T_188257
+ wire T_188261 : UInt<40>
+ T_188261 := T_188260
+ when T_188253 : T_188261 := T_188255
+ evec := T_188261
+ ptbr := reg_sptbr
+ csr_xcpt := csr_xcpt
+ node T_188262 = or(insn_ret, insn_redirect_trap)
+ eret := T_188262
+ status := reg_mstatus
+ node T_188263 = eq(reg_mstatus.fs, UInt<1>(0))
+ node T_188264 = eq(T_188263, UInt<1>(0))
+ node T_188265 = asSInt(T_188264)
+ status.fs := T_188265
+ node T_188266 = eq(reg_mstatus.xs, UInt<1>(0))
+ node T_188267 = eq(T_188266, UInt<1>(0))
+ node T_188268 = asSInt(T_188267)
+ status.xs := T_188268
+ node T_188269 = eq(reg_mstatus.xs, UInt<1>(0))
+ node T_188270 = eq(T_188269, UInt<1>(0))
+ node T_188271 = eq(reg_mstatus.fs, UInt<1>(0))
+ node T_188272 = eq(T_188271, UInt<1>(0))
+ node T_188273 = or(T_188270, T_188272)
+ status.sd := T_188273
+
+ node T_188274 = or(exception, csr_xcpt)
+ when T_188274 :
+ reg_mstatus.ie := UInt<1>(0)
+ reg_mstatus.prv := UInt<2>(3)
+ reg_mstatus.mprv := UInt<1>(0)
+ reg_mstatus.prv1 := reg_mstatus.prv
+ reg_mstatus.ie1 := reg_mstatus.ie
+ reg_mstatus.prv2 := reg_mstatus.prv1
+ reg_mstatus.ie2 := reg_mstatus.ie1
+ node T_188275 = not(pc)
+ node T_188276 = or(T_188275, UInt<2>(3))
+ node T_188277 = not(T_188276)
+ reg_mepc := T_188277
+ reg_mcause := cause
+ when csr_xcpt :
+ reg_mcause := UInt<2>(2)
+ when insn_break : reg_mcause := UInt<2>(3)
+ when insn_call :
+ node T_188278 = addw(reg_mstatus.prv, UInt<4>(8))
+ reg_mcause := T_188278
+ reg_mbadaddr := pc
+
+
+ node T_188279 = eq(cause, UInt<3>(5))
+ node T_188280 = eq(cause, UInt<3>(4))
+ node T_188281 = or(T_188279, T_188280)
+ node T_188282 = eq(cause, UInt<3>(7))
+ node T_188283 = or(T_188281, T_188282)
+ node T_188284 = eq(cause, UInt<3>(6))
+ node T_188285 = or(T_188283, T_188284)
+ when T_188285 :
+ node T_188286 = bits(rw.wdata, 63, 39)
+ node T_188287 = bits(rw.wdata, 38, 0)
+ node T_188288 = asSInt(T_188287)
+ node T_188289 = lt(T_188288, SInt<1>(0))
+ node T_188290 = eq(T_188286, UInt<1>(-1))
+ node T_188291 = eq(T_188286, UInt<1>(0))
+ node T_188292 = eq(T_188291, UInt<1>(0))
+ wire T_188293 : UInt<1>
+ T_188293 := T_188292
+ when T_188289 : T_188293 := T_188290
+ node T_188294 = cat(T_188293, T_188287)
+ reg_mbadaddr := T_188294
+ when insn_ret :
+ reg_mstatus.ie := reg_mstatus.ie1
+ reg_mstatus.prv := reg_mstatus.prv1
+ reg_mstatus.prv1 := reg_mstatus.prv2
+ reg_mstatus.ie1 := reg_mstatus.ie2
+ reg_mstatus.prv2 := UInt<1>(0)
+ reg_mstatus.ie2 := UInt<1>(1)
+ when insn_redirect_trap :
+ reg_mstatus.prv := UInt<1>(1)
+ reg_sbadaddr := reg_mbadaddr
+ reg_scause := reg_mcause
+ reg_sepc := reg_mepc
+ node T_188295 = cat(UInt<1>(0), insn_redirect_trap)
+ node T_188296 = addw(insn_ret, T_188295)
+ node T_188297 = cat(UInt<1>(0), csr_replay)
+ node T_188298 = addw(csr_xcpt, T_188297)
+ node T_188299 = cat(UInt<1>(0), T_188298)
+ node T_188300 = addw(exception, T_188299)
+ node T_188301 = cat(UInt<1>(0), T_188300)
+ node T_188302 = addw(T_188296, T_188301)
+ node T_188303 = leq(T_188302, UInt<1>(1))
+
+ node T_188304 = geq(reg_time, reg_mtimecmp)
+ when T_188304 : reg_mip.mtip := UInt<1>(1)
+ time := T_187767
+ node T_188305 = and(cpu_wen, T_188107)
+ host.ipi_req.valid := T_188305
+ host.ipi_req.bits := rw.wdata
+ node T_188306 = eq(host.ipi_req.ready, UInt<1>(0))
+ node T_188307 = and(host.ipi_req.valid, T_188306)
+ csr_replay := T_188307
+ csr_stall := reg_wfi
+
+
+ node T_188308 = eq(host_pcr_bits.rw, UInt<1>(0))
+ node T_188309 = and(host_pcr_req_fire, T_188308)
+ node T_188310 = and(T_188309, T_188109)
+ when T_188310 : reg_tohost := UInt<1>(0)
+ wire T_188311 : UInt<1>
+ T_188311 := UInt<1>(0)
+ when T_188081 : T_188311 := reg_fflags
+ wire T_188312 : UInt<1>
+ T_188312 := UInt<1>(0)
+ when T_188082 : T_188312 := reg_frm
+ wire T_188313 : UInt<1>
+ T_188313 := UInt<1>(0)
+ when T_188083 : T_188313 := T_188008
+ wire T_188314 : UInt<1>
+ T_188314 := UInt<1>(0)
+ when T_188084 : T_188314 := T_187767
+ wire T_188315 : UInt<1>
+ T_188315 := UInt<1>(0)
+ when T_188085 : T_188315 := T_187767
+ wire T_188316 : UInt<1>
+ T_188316 := UInt<1>(0)
+ when T_188086 : T_188316 := T_187777
+ wire T_188317 : UInt<1>
+ T_188317 := UInt<1>(0)
+ when T_188087 : T_188317 := T_187777
+ wire T_188318 : UInt<1>
+ T_188318 := UInt<1>(0)
+ when T_188088 : T_188318 := reg_time
+ wire T_188319 : UInt<1>
+ T_188319 := UInt<1>(0)
+ when T_188089 : T_188319 := reg_time
+ wire T_188320 : UInt<1>
+ T_188320 := UInt<1>(0)
+ when T_188090 : T_188320 := reg_time
+ wire T_188321 : UInt<1>
+ T_188321 := UInt<1>(0)
+ when T_188091 : T_188321 := reg_time
+ wire T_188322 : UInt<1>
+ T_188322 := UInt<1>(0)
+ when T_188092 : T_188322 := reg_time
+ wire T_188323 : UInt<1>
+ T_188323 := UInt<1>(0)
+ when T_188093 : T_188323 := UInt<64>(9223372036855042345)
+ wire T_188324 : UInt<1>
+ T_188324 := UInt<1>(0)
+ when T_188094 : T_188324 := UInt<1>(1)
+ wire T_188325 : UInt<1>
+ T_188325 := UInt<1>(0)
+ when T_188095 : T_188325 := read_mstatus
+ wire T_188326 : UInt<1>
+ T_188326 := UInt<1>(0)
+ when T_188096 : T_188326 := UInt<1>(0)
+ wire T_188327 : UInt<1>
+ T_188327 := UInt<1>(0)
+ when T_188097 : T_188327 := UInt<1>(0)
+ wire T_188328 : UInt<1>
+ T_188328 := UInt<1>(0)
+ when T_188098 : T_188328 := UInt<9>(256)
+ wire T_188329 : UInt<1>
+ T_188329 := UInt<1>(0)
+ when T_188099 : T_188329 := T_188015
+ wire T_188330 : UInt<1>
+ T_188330 := UInt<1>(0)
+ when T_188100 : T_188330 := T_188022
+ wire T_188331 : UInt<1>
+ T_188331 := UInt<1>(0)
+ when T_188101 : T_188331 := reg_mscratch
+ wire T_188332 : UInt<1>
+ T_188332 := UInt<1>(0)
+ when T_188102 : T_188332 := T_188025
+ wire T_188333 : UInt<1>
+ T_188333 := UInt<1>(0)
+ when T_188103 : T_188333 := T_188028
+ wire T_188334 : UInt<1>
+ T_188334 := UInt<1>(0)
+ when T_188104 : T_188334 := reg_mcause
+ wire T_188335 : UInt<1>
+ T_188335 := UInt<1>(0)
+ when T_188105 : T_188335 := reg_mtimecmp
+ wire T_188336 : UInt<1>
+ T_188336 := UInt<1>(0)
+ when T_188106 : T_188336 := host.id
+ wire T_188337 : UInt<1>
+ T_188337 := UInt<1>(0)
+ when T_188107 : T_188337 := host.id
+ wire T_188338 : UInt<1>
+ T_188338 := UInt<1>(0)
+ when T_188108 : T_188338 := reg_stats
+ wire T_188339 : UInt<1>
+ T_188339 := UInt<1>(0)
+ when T_188109 : T_188339 := reg_tohost
+ wire T_188340 : UInt<1>
+ T_188340 := UInt<1>(0)
+ when T_188110 : T_188340 := reg_fromhost
+ wire T_188341 : UInt<1>
+ T_188341 := UInt<1>(0)
+ when T_188111 : T_188341 := T_188057
+ wire T_188342 : UInt<1>
+ T_188342 := UInt<1>(0)
+ when T_188112 : T_188342 := T_188064
+ wire T_188343 : UInt<1>
+ T_188343 := UInt<1>(0)
+ when T_188113 : T_188343 := T_188071
+ wire T_188344 : UInt<1>
+ T_188344 := UInt<1>(0)
+ when T_188114 : T_188344 := reg_sscratch
+ wire T_188345 : UInt<1>
+ T_188345 := UInt<1>(0)
+ when T_188115 : T_188345 := reg_scause
+ wire T_188346 : UInt<1>
+ T_188346 := UInt<1>(0)
+ when T_188116 : T_188346 := T_188074
+ wire T_188347 : UInt<1>
+ T_188347 := UInt<1>(0)
+ when T_188117 : T_188347 := reg_sptbr
+ wire T_188348 : UInt<1>
+ T_188348 := UInt<1>(0)
+ when T_188118 : T_188348 := UInt<1>(0)
+ wire T_188349 : UInt<1>
+ T_188349 := UInt<1>(0)
+ when T_188119 : T_188349 := T_188077
+ wire T_188350 : UInt<1>
+ T_188350 := UInt<1>(0)
+ when T_188120 : T_188350 := T_188080
+ wire T_188351 : UInt<1>
+ T_188351 := UInt<1>(0)
+ when T_188121 : T_188351 := T_187787
+ wire T_188352 : UInt<1>
+ T_188352 := UInt<1>(0)
+ when T_188122 : T_188352 := T_187797
+ wire T_188353 : UInt<1>
+ T_188353 := UInt<1>(0)
+ when T_188123 : T_188353 := T_187807
+ wire T_188354 : UInt<1>
+ T_188354 := UInt<1>(0)
+ when T_188124 : T_188354 := T_187817
+ wire T_188355 : UInt<1>
+ T_188355 := UInt<1>(0)
+ when T_188125 : T_188355 := T_187827
+ wire T_188356 : UInt<1>
+ T_188356 := UInt<1>(0)
+ when T_188126 : T_188356 := T_187837
+ wire T_188357 : UInt<1>
+ T_188357 := UInt<1>(0)
+ when T_188127 : T_188357 := T_187847
+ wire T_188358 : UInt<1>
+ T_188358 := UInt<1>(0)
+ when T_188128 : T_188358 := T_187857
+ wire T_188359 : UInt<1>
+ T_188359 := UInt<1>(0)
+ when T_188129 : T_188359 := T_187867
+ wire T_188360 : UInt<1>
+ T_188360 := UInt<1>(0)
+ when T_188130 : T_188360 := T_187877
+ wire T_188361 : UInt<1>
+ T_188361 := UInt<1>(0)
+ when T_188131 : T_188361 := T_187887
+ wire T_188362 : UInt<1>
+ T_188362 := UInt<1>(0)
+ when T_188132 : T_188362 := T_187897
+ wire T_188363 : UInt<1>
+ T_188363 := UInt<1>(0)
+ when T_188133 : T_188363 := T_187907
+ wire T_188364 : UInt<1>
+ T_188364 := UInt<1>(0)
+ when T_188134 : T_188364 := T_187917
+ wire T_188365 : UInt<1>
+ T_188365 := UInt<1>(0)
+ when T_188135 : T_188365 := T_187927
+ wire T_188366 : UInt<1>
+ T_188366 := UInt<1>(0)
+ when T_188136 : T_188366 := T_187937
+ node T_188367 = or(T_188311, T_188312)
+ node T_188368 = or(T_188367, T_188313)
+ node T_188369 = or(T_188368, T_188314)
+ node T_188370 = or(T_188369, T_188315)
+ node T_188371 = or(T_188370, T_188316)
+ node T_188372 = or(T_188371, T_188317)
+ node T_188373 = or(T_188372, T_188318)
+ node T_188374 = or(T_188373, T_188319)
+ node T_188375 = or(T_188374, T_188320)
+ node T_188376 = or(T_188375, T_188321)
+ node T_188377 = or(T_188376, T_188322)
+ node T_188378 = or(T_188377, T_188323)
+ node T_188379 = or(T_188378, T_188324)
+ node T_188380 = or(T_188379, T_188325)
+ node T_188381 = or(T_188380, T_188326)
+ node T_188382 = or(T_188381, T_188327)
+ node T_188383 = or(T_188382, T_188328)
+ node T_188384 = or(T_188383, T_188329)
+ node T_188385 = or(T_188384, T_188330)
+ node T_188386 = or(T_188385, T_188331)
+ node T_188387 = or(T_188386, T_188332)
+ node T_188388 = or(T_188387, T_188333)
+ node T_188389 = or(T_188388, T_188334)
+ node T_188390 = or(T_188389, T_188335)
+ node T_188391 = or(T_188390, T_188336)
+ node T_188392 = or(T_188391, T_188337)
+ node T_188393 = or(T_188392, T_188338)
+ node T_188394 = or(T_188393, T_188339)
+ node T_188395 = or(T_188394, T_188340)
+ node T_188396 = or(T_188395, T_188341)
+ node T_188397 = or(T_188396, T_188342)
+ node T_188398 = or(T_188397, T_188343)
+ node T_188399 = or(T_188398, T_188344)
+ node T_188400 = or(T_188399, T_188345)
+ node T_188401 = or(T_188400, T_188346)
+ node T_188402 = or(T_188401, T_188347)
+ node T_188403 = or(T_188402, T_188348)
+ node T_188404 = or(T_188403, T_188349)
+ node T_188405 = or(T_188404, T_188350)
+ node T_188406 = or(T_188405, T_188351)
+ node T_188407 = or(T_188406, T_188352)
+ node T_188408 = or(T_188407, T_188353)
+ node T_188409 = or(T_188408, T_188354)
+ node T_188410 = or(T_188409, T_188355)
+ node T_188411 = or(T_188410, T_188356)
+ node T_188412 = or(T_188411, T_188357)
+ node T_188413 = or(T_188412, T_188358)
+ node T_188414 = or(T_188413, T_188359)
+ node T_188415 = or(T_188414, T_188360)
+ node T_188416 = or(T_188415, T_188361)
+ node T_188417 = or(T_188416, T_188362)
+ node T_188418 = or(T_188417, T_188363)
+ node T_188419 = or(T_188418, T_188364)
+ node T_188420 = or(T_188419, T_188365)
+ node T_188421 = or(T_188420, T_188366)
+ wire T_188422 : UInt<5>
+ node T_188423 = bits(T_188421, 4, 0)
+ T_188422 := T_188423
+ rw.rdata := T_188422
+ fcsr_rm := reg_frm
+ when fcsr_flags.valid :
+ node T_188424 = or(reg_fflags, fcsr_flags.bits)
+ reg_fflags := T_188424
+ when wen :
+ when T_188095 :
+ wire T_188425 : {sd : UInt<1>, zero2 : UInt<31>, sd_rv32 : UInt<1>, zero1 : UInt<9>, vm : UInt<5>, mprv : UInt<1>, xs : UInt<2>, fs : UInt<2>, prv3 : UInt<2>, ie3 : UInt<1>, prv2 : UInt<2>, ie2 : UInt<1>, prv1 : UInt<2>, ie1 : UInt<1>, prv : UInt<2>, ie : UInt<1>}
+ node T_188426 = bits(wdata, 0, 0)
+ T_188425.ie := T_188426
+ node T_188427 = bits(wdata, 2, 1)
+ T_188425.prv := T_188427
+ node T_188428 = bits(wdata, 3, 3)
+ T_188425.ie1 := T_188428
+ node T_188429 = bits(wdata, 5, 4)
+ T_188425.prv1 := T_188429
+ node T_188430 = bits(wdata, 6, 6)
+ T_188425.ie2 := T_188430
+ node T_188431 = bits(wdata, 8, 7)
+ T_188425.prv2 := T_188431
+ node T_188432 = bits(wdata, 9, 9)
+ T_188425.ie3 := T_188432
+ node T_188433 = bits(wdata, 11, 10)
+ T_188425.prv3 := T_188433
+ node T_188434 = bits(wdata, 13, 12)
+ T_188425.fs := T_188434
+ node T_188435 = bits(wdata, 15, 14)
+ T_188425.xs := T_188435
+ node T_188436 = bits(wdata, 16, 16)
+ T_188425.mprv := T_188436
+ node T_188437 = bits(wdata, 21, 17)
+ T_188425.vm := T_188437
+ node T_188438 = bits(wdata, 30, 22)
+ T_188425.zero1 := T_188438
+ node T_188439 = bits(wdata, 31, 31)
+ T_188425.sd_rv32 := T_188439
+ node T_188440 = bits(wdata, 62, 32)
+ T_188425.zero2 := T_188440
+ node T_188441 = bits(wdata, 63, 63)
+ T_188425.sd := T_188441
+ reg_mstatus.ie := T_188425.ie
+ reg_mstatus.ie1 := T_188425.ie1
+ wire T_188442 : UInt<2>[3]
+ T_188442[0] := UInt<2>(3)
+ T_188442[1] := UInt<1>(0)
+ T_188442[2] := UInt<1>(1)
+ reg_mstatus.mprv := T_188425.mprv
+
+
+ node T_188443 = eq(T_188442[0], T_188425.prv)
+ node T_188444 = eq(T_188442[1], T_188425.prv)
+ node T_188445 = eq(T_188442[2], T_188425.prv)
+ node T_188446 = or(UInt<1>(0), T_188443)
+ node T_188447 = or(T_188446, T_188444)
+ node T_188448 = or(T_188447, T_188445)
+ when T_188448 : reg_mstatus.prv := T_188425.prv
+
+
+ node T_188449 = eq(T_188442[0], T_188425.prv1)
+ node T_188450 = eq(T_188442[1], T_188425.prv1)
+ node T_188451 = eq(T_188442[2], T_188425.prv1)
+ node T_188452 = or(UInt<1>(0), T_188449)
+ node T_188453 = or(T_188452, T_188450)
+ node T_188454 = or(T_188453, T_188451)
+ when T_188454 : reg_mstatus.prv1 := T_188425.prv1
+
+
+ node T_188455 = eq(T_188442[0], T_188425.prv2)
+ node T_188456 = eq(T_188442[1], T_188425.prv2)
+ node T_188457 = eq(T_188442[2], T_188425.prv2)
+ node T_188458 = or(UInt<1>(0), T_188455)
+ node T_188459 = or(T_188458, T_188456)
+ node T_188460 = or(T_188459, T_188457)
+ when T_188460 : reg_mstatus.prv2 := T_188425.prv2
+ reg_mstatus.ie2 := T_188425.ie2
+
+ node T_188461 = eq(T_188425.vm, UInt<1>(0))
+ when T_188461 : reg_mstatus.vm := UInt<1>(0)
+
+ node T_188462 = eq(T_188425.vm, UInt<4>(9))
+ when T_188462 : reg_mstatus.vm := UInt<4>(9)
+ reg_mstatus.fs := T_188425.fs
+ when T_188099 :
+ wire T_188463 : {mtip : UInt<1>, htip : UInt<1>, stip : UInt<1>, utip : UInt<1>, msip : UInt<1>, hsip : UInt<1>, ssip : UInt<1>, usip : UInt<1>}
+ node T_188464 = bits(wdata, 0, 0)
+ T_188463.usip := T_188464
+ node T_188465 = bits(wdata, 1, 1)
+ T_188463.ssip := T_188465
+ node T_188466 = bits(wdata, 2, 2)
+ T_188463.hsip := T_188466
+ node T_188467 = bits(wdata, 3, 3)
+ T_188463.msip := T_188467
+ node T_188468 = bits(wdata, 4, 4)
+ T_188463.utip := T_188468
+ node T_188469 = bits(wdata, 5, 5)
+ T_188463.stip := T_188469
+ node T_188470 = bits(wdata, 6, 6)
+ T_188463.htip := T_188470
+ node T_188471 = bits(wdata, 7, 7)
+ T_188463.mtip := T_188471
+ reg_mip.ssip := T_188463.ssip
+ reg_mip.stip := T_188463.stip
+ reg_mip.msip := T_188463.msip
+ when T_188100 :
+ wire T_188472 : {mtip : UInt<1>, htip : UInt<1>, stip : UInt<1>, utip : UInt<1>, msip : UInt<1>, hsip : UInt<1>, ssip : UInt<1>, usip : UInt<1>}
+ node T_188473 = bits(wdata, 0, 0)
+ T_188472.usip := T_188473
+ node T_188474 = bits(wdata, 1, 1)
+ T_188472.ssip := T_188474
+ node T_188475 = bits(wdata, 2, 2)
+ T_188472.hsip := T_188475
+ node T_188476 = bits(wdata, 3, 3)
+ T_188472.msip := T_188476
+ node T_188477 = bits(wdata, 4, 4)
+ T_188472.utip := T_188477
+ node T_188478 = bits(wdata, 5, 5)
+ T_188472.stip := T_188478
+ node T_188479 = bits(wdata, 6, 6)
+ T_188472.htip := T_188479
+ node T_188480 = bits(wdata, 7, 7)
+ T_188472.mtip := T_188480
+ reg_mie.ssip := T_188472.ssip
+ reg_mie.stip := T_188472.stip
+ reg_mie.msip := T_188472.msip
+ reg_mie.mtip := T_188472.mtip
+ when T_188081 : reg_fflags := wdata
+ when T_188082 : reg_frm := wdata
+ when T_188083 :
+ reg_fflags := wdata
+ node T_188481 = shr(wdata, 5)
+ reg_frm := T_188481
+ when T_188102 :
+ node T_188482 = bits(wdata, 39, 0)
+ node T_188483 = asSInt(T_188482)
+ node T_188484 = and(T_188483, SInt<3>(-4))
+ reg_mepc := T_188484
+ when T_188101 : reg_mscratch := wdata
+ when T_188104 :
+ node T_188485 = and(wdata, UInt<64>(9223372036854775839))
+ reg_mcause := T_188485
+ when T_188103 :
+ node T_188486 = bits(wdata, 39, 0)
+ reg_mbadaddr := T_188486
+ when T_188087 :
+ node T_188487 = bits(wdata, 5, 0)
+ T_187768 := T_188487
+ node T_188488 = bits(wdata, 63, 6)
+ T_187773 := T_188488
+ when T_188105 :
+ reg_mtimecmp := wdata
+ reg_mip.mtip := UInt<1>(0)
+ when T_188097 : reg_time := wdata
+ when T_188110 :
+
+ node T_188489 = eq(reg_fromhost, UInt<1>(0))
+ node T_188490 = eq(host_pcr_req_fire, UInt<1>(0))
+ node T_188491 = or(T_188489, T_188490)
+ when T_188491 : reg_fromhost := wdata
+ when T_188109 :
+
+ node T_188492 = eq(reg_tohost, UInt<1>(0))
+ node T_188493 = or(T_188492, host_pcr_req_fire)
+ when T_188493 : reg_tohost := wdata
+ when T_188108 :
+ node T_188494 = bit(wdata, 0)
+ reg_stats := T_188494
+ when T_188111 :
+ wire T_188495 : {sd : UInt<1>, zero4 : UInt<31>, sd_rv32 : UInt<1>, zero3 : UInt<14>, mprv : UInt<1>, xs : UInt<2>, fs : UInt<2>, zero2 : UInt<7>, ps : UInt<1>, pie : UInt<1>, zero1 : UInt<2>, ie : UInt<1>}
+ node T_188496 = bits(wdata, 0, 0)
+ T_188495.ie := T_188496
+ node T_188497 = bits(wdata, 2, 1)
+ T_188495.zero1 := T_188497
+ node T_188498 = bits(wdata, 3, 3)
+ T_188495.pie := T_188498
+ node T_188499 = bits(wdata, 4, 4)
+ T_188495.ps := T_188499
+ node T_188500 = bits(wdata, 11, 5)
+ T_188495.zero2 := T_188500
+ node T_188501 = bits(wdata, 13, 12)
+ T_188495.fs := T_188501
+ node T_188502 = bits(wdata, 15, 14)
+ T_188495.xs := T_188502
+ node T_188503 = bits(wdata, 16, 16)
+ T_188495.mprv := T_188503
+ node T_188504 = bits(wdata, 30, 17)
+ T_188495.zero3 := T_188504
+ node T_188505 = bits(wdata, 31, 31)
+ T_188495.sd_rv32 := T_188505
+ node T_188506 = bits(wdata, 62, 32)
+ T_188495.zero4 := T_188506
+ node T_188507 = bits(wdata, 63, 63)
+ T_188495.sd := T_188507
+ reg_mstatus.ie := T_188495.ie
+ reg_mstatus.ie1 := T_188495.pie
+ wire T_188508 : UInt<1>
+ T_188508 := UInt<1>(0)
+ when T_188495.ps : T_188508 := UInt<1>(1)
+ reg_mstatus.prv1 := T_188508
+ reg_mstatus.mprv := T_188495.mprv
+ reg_mstatus.fs := T_188495.fs
+ when T_188112 :
+ wire T_188509 : {mtip : UInt<1>, htip : UInt<1>, stip : UInt<1>, utip : UInt<1>, msip : UInt<1>, hsip : UInt<1>, ssip : UInt<1>, usip : UInt<1>}
+ node T_188510 = bits(wdata, 0, 0)
+ T_188509.usip := T_188510
+ node T_188511 = bits(wdata, 1, 1)
+ T_188509.ssip := T_188511
+ node T_188512 = bits(wdata, 2, 2)
+ T_188509.hsip := T_188512
+ node T_188513 = bits(wdata, 3, 3)
+ T_188509.msip := T_188513
+ node T_188514 = bits(wdata, 4, 4)
+ T_188509.utip := T_188514
+ node T_188515 = bits(wdata, 5, 5)
+ T_188509.stip := T_188515
+ node T_188516 = bits(wdata, 6, 6)
+ T_188509.htip := T_188516
+ node T_188517 = bits(wdata, 7, 7)
+ T_188509.mtip := T_188517
+ reg_mip.ssip := T_188509.ssip
+ when T_188113 :
+ wire T_188518 : {mtip : UInt<1>, htip : UInt<1>, stip : UInt<1>, utip : UInt<1>, msip : UInt<1>, hsip : UInt<1>, ssip : UInt<1>, usip : UInt<1>}
+ node T_188519 = bits(wdata, 0, 0)
+ T_188518.usip := T_188519
+ node T_188520 = bits(wdata, 1, 1)
+ T_188518.ssip := T_188520
+ node T_188521 = bits(wdata, 2, 2)
+ T_188518.hsip := T_188521
+ node T_188522 = bits(wdata, 3, 3)
+ T_188518.msip := T_188522
+ node T_188523 = bits(wdata, 4, 4)
+ T_188518.utip := T_188523
+ node T_188524 = bits(wdata, 5, 5)
+ T_188518.stip := T_188524
+ node T_188525 = bits(wdata, 6, 6)
+ T_188518.htip := T_188525
+ node T_188526 = bits(wdata, 7, 7)
+ T_188518.mtip := T_188526
+ reg_mie.ssip := T_188518.ssip
+ reg_mie.stip := T_188518.stip
+ when T_188114 : reg_sscratch := wdata
+ when T_188117 :
+ node T_188527 = bits(wdata, 31, 12)
+ node T_188528 = cat(T_188527, UInt<12>(0))
+ reg_sptbr := T_188528
+ when T_188119 :
+ node T_188529 = bits(wdata, 39, 0)
+ node T_188530 = asSInt(T_188529)
+ node T_188531 = and(T_188530, SInt<3>(-4))
+ reg_sepc := T_188531
+ when T_188120 :
+ node T_188532 = bits(wdata, 38, 0)
+ node T_188533 = asSInt(T_188532)
+ node T_188534 = and(T_188533, SInt<3>(-4))
+ reg_stvec := T_188534
+ host.ipi_rep.ready := UInt<1>(1)
+ when host.ipi_rep.valid : reg_mip.msip := UInt<1>(1)
+ when reset :
+ reg_mstatus.zero1 := UInt<1>(0)
+ reg_mstatus.zero2 := UInt<1>(0)
+ reg_mstatus.ie := UInt<1>(0)
+ reg_mstatus.prv := UInt<2>(3)
+ reg_mstatus.ie1 := UInt<1>(0)
+ reg_mstatus.prv1 := UInt<2>(3)
+ reg_mstatus.ie2 := UInt<1>(0)
+ reg_mstatus.prv2 := UInt<1>(0)
+ reg_mstatus.ie3 := UInt<1>(0)
+ reg_mstatus.prv3 := UInt<1>(0)
+ reg_mstatus.mprv := UInt<1>(0)
+ reg_mstatus.vm := UInt<1>(0)
+ reg_mstatus.fs := UInt<1>(0)
+ reg_mstatus.xs := UInt<1>(0)
+ reg_mstatus.sd_rv32 := UInt<1>(0)
+ reg_mstatus.sd := UInt<1>(0)
+ module ALU :
+ input dw : UInt<1>
+ input fn : UInt<4>
+ input in2 : UInt<64>
+ input in1 : UInt<64>
+ output out : UInt<64>
+ output adder_out : UInt<64>
+
+ node T_188535 = bit(fn, 3)
+ node T_188536 = subw(UInt<1>(0), in2)
+ wire T_188537 : UInt<64>
+ T_188537 := in2
+ when T_188535 : T_188537 := T_188536
+ node sum = addw(in1, T_188537)
+ node T_188538 = bit(fn, 0)
+ node T_188539 = bit(fn, 2)
+ node T_188540 = eq(T_188539, UInt<1>(0))
+ node T_188541 = eq(sum, UInt<1>(0))
+ node T_188542 = bit(in1, 63)
+ node T_188543 = bit(in2, 63)
+ node T_188544 = eq(T_188542, T_188543)
+ node T_188545 = bit(sum, 63)
+ node T_188546 = bit(fn, 1)
+ node T_188547 = bit(in2, 63)
+ node T_188548 = bit(in1, 63)
+ wire T_188549 : UInt<1>
+ T_188549 := T_188548
+ when T_188546 : T_188549 := T_188547
+ wire T_188550 : UInt<1>
+ T_188550 := T_188549
+ when T_188544 : T_188550 := T_188545
+ wire T_188551 : UInt<1>
+ T_188551 := T_188550
+ when T_188540 : T_188551 := T_188541
+ node cmp = xor(T_188538, T_188551)
+ node T_188552 = bit(in2, 5)
+ node T_188553 = and(dw, UInt<1>(1))
+ node T_188554 = eq(UInt<1>(1), T_188553)
+ node T_188555 = and(T_188552, T_188554)
+ node T_188556 = bits(in2, 4, 0)
+ node shamt = cat(T_188555, T_188556)
+ node T_188557 = bit(fn, 3)
+ node T_188558 = bit(in1, 31)
+ node T_188559 = subw(UInt<32>(0), UInt<6>(32))
+ wire shin_hi_32 : UInt<32>
+ shin_hi_32 := UInt<32>(0)
+ when T_188557 : shin_hi_32 := T_188559
+ node T_188560 = and(dw, UInt<1>(1))
+ node T_188561 = eq(UInt<1>(1), T_188560)
+ node T_188562 = bits(in1, 63, 32)
+ wire shin_hi : UInt<32>
+ shin_hi := shin_hi_32
+ when T_188561 : shin_hi := T_188562
+ node T_188563 = bits(in1, 31, 0)
+ node shin_r = cat(shin_hi, T_188563)
+ node T_188564 = eq(fn, UInt<3>(5))
+ node T_188565 = eq(fn, UInt<4>(11))
+ node T_188566 = or(T_188564, T_188565)
+ node T_188567 = dshl(UInt<32>(4294967295), UInt<6>(32))
+ node T_188568 = xor(UInt<64>(18446744073709551615), T_188567)
+ node T_188569 = dshr(shin_r, UInt<6>(32))
+ node T_188570 = and(T_188569, T_188568)
+ node T_188571 = bits(shin_r, 31, 0)
+ node T_188572 = dshl(T_188571, UInt<6>(32))
+ node T_188573 = not(T_188568)
+ node T_188574 = and(T_188572, T_188573)
+ node T_188575 = or(T_188570, T_188574)
+ node T_188576 = bits(T_188568, 47, 0)
+ node T_188577 = dshl(T_188576, UInt<5>(16))
+ node T_188578 = xor(T_188568, T_188577)
+ node T_188579 = dshr(T_188575, UInt<5>(16))
+ node T_188580 = and(T_188579, T_188578)
+ node T_188581 = bits(T_188575, 47, 0)
+ node T_188582 = dshl(T_188581, UInt<5>(16))
+ node T_188583 = not(T_188578)
+ node T_188584 = and(T_188582, T_188583)
+ node T_188585 = or(T_188580, T_188584)
+ node T_188586 = bits(T_188578, 55, 0)
+ node T_188587 = dshl(T_188586, UInt<4>(8))
+ node T_188588 = xor(T_188578, T_188587)
+ node T_188589 = dshr(T_188585, UInt<4>(8))
+ node T_188590 = and(T_188589, T_188588)
+ node T_188591 = bits(T_188585, 55, 0)
+ node T_188592 = dshl(T_188591, UInt<4>(8))
+ node T_188593 = not(T_188588)
+ node T_188594 = and(T_188592, T_188593)
+ node T_188595 = or(T_188590, T_188594)
+ node T_188596 = bits(T_188588, 59, 0)
+ node T_188597 = dshl(T_188596, UInt<3>(4))
+ node T_188598 = xor(T_188588, T_188597)
+ node T_188599 = dshr(T_188595, UInt<3>(4))
+ node T_188600 = and(T_188599, T_188598)
+ node T_188601 = bits(T_188595, 59, 0)
+ node T_188602 = dshl(T_188601, UInt<3>(4))
+ node T_188603 = not(T_188598)
+ node T_188604 = and(T_188602, T_188603)
+ node T_188605 = or(T_188600, T_188604)
+ node T_188606 = bits(T_188598, 61, 0)
+ node T_188607 = dshl(T_188606, UInt<2>(2))
+ node T_188608 = xor(T_188598, T_188607)
+ node T_188609 = dshr(T_188605, UInt<2>(2))
+ node T_188610 = and(T_188609, T_188608)
+ node T_188611 = bits(T_188605, 61, 0)
+ node T_188612 = dshl(T_188611, UInt<2>(2))
+ node T_188613 = not(T_188608)
+ node T_188614 = and(T_188612, T_188613)
+ node T_188615 = or(T_188610, T_188614)
+ node T_188616 = bits(T_188608, 62, 0)
+ node T_188617 = dshl(T_188616, UInt<1>(1))
+ node T_188618 = xor(T_188608, T_188617)
+ node T_188619 = dshr(T_188615, UInt<1>(1))
+ node T_188620 = and(T_188619, T_188618)
+ node T_188621 = bits(T_188615, 62, 0)
+ node T_188622 = dshl(T_188621, UInt<1>(1))
+ node T_188623 = not(T_188618)
+ node T_188624 = and(T_188622, T_188623)
+ node T_188625 = or(T_188620, T_188624)
+ wire shin : UInt<96>
+ shin := T_188625
+ when T_188566 : shin := shin_r
+ node T_188626 = bit(fn, 3)
+ node T_188627 = bit(shin, 63)
+ node T_188628 = and(T_188626, T_188627)
+ node T_188629 = cat(T_188628, shin)
+ node T_188630 = asSInt(T_188629)
+ node T_188631 = dshr(T_188630, shamt)
+ node shout_r = bits(T_188631, 63, 0)
+ node T_188632 = dshl(UInt<32>(4294967295), UInt<6>(32))
+ node T_188633 = xor(UInt<64>(18446744073709551615), T_188632)
+ node T_188634 = dshr(shout_r, UInt<6>(32))
+ node T_188635 = and(T_188634, T_188633)
+ node T_188636 = bits(shout_r, 31, 0)
+ node T_188637 = dshl(T_188636, UInt<6>(32))
+ node T_188638 = not(T_188633)
+ node T_188639 = and(T_188637, T_188638)
+ node T_188640 = or(T_188635, T_188639)
+ node T_188641 = bits(T_188633, 47, 0)
+ node T_188642 = dshl(T_188641, UInt<5>(16))
+ node T_188643 = xor(T_188633, T_188642)
+ node T_188644 = dshr(T_188640, UInt<5>(16))
+ node T_188645 = and(T_188644, T_188643)
+ node T_188646 = bits(T_188640, 47, 0)
+ node T_188647 = dshl(T_188646, UInt<5>(16))
+ node T_188648 = not(T_188643)
+ node T_188649 = and(T_188647, T_188648)
+ node T_188650 = or(T_188645, T_188649)
+ node T_188651 = bits(T_188643, 55, 0)
+ node T_188652 = dshl(T_188651, UInt<4>(8))
+ node T_188653 = xor(T_188643, T_188652)
+ node T_188654 = dshr(T_188650, UInt<4>(8))
+ node T_188655 = and(T_188654, T_188653)
+ node T_188656 = bits(T_188650, 55, 0)
+ node T_188657 = dshl(T_188656, UInt<4>(8))
+ node T_188658 = not(T_188653)
+ node T_188659 = and(T_188657, T_188658)
+ node T_188660 = or(T_188655, T_188659)
+ node T_188661 = bits(T_188653, 59, 0)
+ node T_188662 = dshl(T_188661, UInt<3>(4))
+ node T_188663 = xor(T_188653, T_188662)
+ node T_188664 = dshr(T_188660, UInt<3>(4))
+ node T_188665 = and(T_188664, T_188663)
+ node T_188666 = bits(T_188660, 59, 0)
+ node T_188667 = dshl(T_188666, UInt<3>(4))
+ node T_188668 = not(T_188663)
+ node T_188669 = and(T_188667, T_188668)
+ node T_188670 = or(T_188665, T_188669)
+ node T_188671 = bits(T_188663, 61, 0)
+ node T_188672 = dshl(T_188671, UInt<2>(2))
+ node T_188673 = xor(T_188663, T_188672)
+ node T_188674 = dshr(T_188670, UInt<2>(2))
+ node T_188675 = and(T_188674, T_188673)
+ node T_188676 = bits(T_188670, 61, 0)
+ node T_188677 = dshl(T_188676, UInt<2>(2))
+ node T_188678 = not(T_188673)
+ node T_188679 = and(T_188677, T_188678)
+ node T_188680 = or(T_188675, T_188679)
+ node T_188681 = bits(T_188673, 62, 0)
+ node T_188682 = dshl(T_188681, UInt<1>(1))
+ node T_188683 = xor(T_188673, T_188682)
+ node T_188684 = dshr(T_188680, UInt<1>(1))
+ node T_188685 = and(T_188684, T_188683)
+ node T_188686 = bits(T_188680, 62, 0)
+ node T_188687 = dshl(T_188686, UInt<1>(1))
+ node T_188688 = not(T_188683)
+ node T_188689 = and(T_188687, T_188688)
+ node shout_l = or(T_188685, T_188689)
+ node T_188690 = eq(fn, UInt<1>(0))
+ node T_188691 = eq(fn, UInt<4>(10))
+ node T_188692 = or(T_188690, T_188691)
+ node T_188693 = eq(fn, UInt<3>(5))
+ node T_188694 = eq(fn, UInt<4>(11))
+ node T_188695 = or(T_188693, T_188694)
+ node T_188696 = eq(fn, UInt<1>(1))
+ node T_188697 = eq(fn, UInt<3>(7))
+ node T_188698 = and(in1, in2)
+ node T_188699 = eq(fn, UInt<3>(6))
+ node T_188700 = or(in1, in2)
+ node T_188701 = eq(fn, UInt<3>(4))
+ node T_188702 = xor(in1, in2)
+ wire T_188703 : UInt<1>
+ T_188703 := cmp
+ when T_188701 : T_188703 := T_188702
+ wire T_188704 : UInt<1>
+ T_188704 := T_188703
+ when T_188699 : T_188704 := T_188700
+ wire T_188705 : UInt<1>
+ T_188705 := T_188704
+ when T_188697 : T_188705 := T_188698
+ wire T_188706 : UInt<1>
+ T_188706 := T_188705
+ when T_188696 : T_188706 := shout_l
+ wire T_188707 : UInt<1>
+ T_188707 := T_188706
+ when T_188695 : T_188707 := shout_r
+ wire out64 : UInt<1>
+ out64 := T_188707
+ when T_188692 : out64 := sum
+ node T_188708 = and(dw, UInt<1>(1))
+ node T_188709 = eq(UInt<1>(1), T_188708)
+ node T_188710 = bits(out64, 63, 32)
+ node T_188711 = bit(out64, 31)
+ node T_188712 = subw(UInt<32>(0), UInt<6>(32))
+ wire out_hi : UInt<32>
+ out_hi := T_188712
+ when T_188709 : out_hi := T_188710
+ node T_188713 = bits(out64, 31, 0)
+ node T_188714 = cat(out_hi, T_188713)
+ out := T_188714
+ adder_out := sum
+ module MulDiv :
+ input req : {flip ready : UInt<1>, valid : UInt<1>, bits : {fn : UInt<4>, dw : UInt<1>, in1 : UInt<64>, in2 : UInt<64>, tag : UInt<5>}}
+ input kill : UInt<1>
+ output resp : {flip ready : UInt<1>, valid : UInt<1>, bits : {data : UInt<64>, tag : UInt<5>}}
+
+ reg state : UInt<3>
+ onreset state := UInt<3>(0)
+ reg req : {fn : UInt<4>, dw : UInt<1>, in1 : UInt<64>, in2 : UInt<64>, tag : UInt<5>}
+ reg count : UInt<7>
+ reg neg_out : UInt<1>
+ reg isMul : UInt<1>
+ reg isHi : UInt<1>
+ reg divisor : UInt<65>
+ reg remainder : UInt<130>
+ node T_188715 = and(req.bits.fn, UInt<4>(4))
+ node T_188716 = eq(T_188715, UInt<4>(0))
+ node T_188717 = and(req.bits.fn, UInt<4>(8))
+ node T_188718 = eq(T_188717, UInt<4>(8))
+ node T_188719 = or(UInt<1>(0), T_188716)
+ node T_188720 = or(T_188719, T_188718)
+ node T_188721 = and(req.bits.fn, UInt<4>(5))
+ node T_188722 = eq(T_188721, UInt<4>(1))
+ node T_188723 = and(req.bits.fn, UInt<4>(2))
+ node T_188724 = eq(T_188723, UInt<4>(2))
+ node T_188725 = or(UInt<1>(0), T_188722)
+ node T_188726 = or(T_188725, T_188724)
+ node T_188727 = or(T_188726, T_188718)
+ node T_188728 = and(req.bits.fn, UInt<4>(9))
+ node T_188729 = eq(T_188728, UInt<4>(0))
+ node T_188730 = and(req.bits.fn, UInt<4>(3))
+ node T_188731 = eq(T_188730, UInt<4>(0))
+ node T_188732 = or(UInt<1>(0), T_188729)
+ node T_188733 = or(T_188732, T_188716)
+ node T_188734 = or(T_188733, T_188731)
+ node T_188735 = or(UInt<1>(0), T_188729)
+ node T_188736 = or(T_188735, T_188716)
+ node cmdMul = bit(T_188720, 0)
+ node cmdHi = bit(T_188727, 0)
+ node lhsSigned = bit(T_188734, 0)
+ node rhsSigned = bit(T_188736, 0)
+ node T_188737 = and(req.bits.dw, UInt<1>(1))
+ node T_188738 = eq(UInt<1>(1), T_188737)
+ node T_188739 = bit(req.bits.in1, 63)
+ node T_188740 = bit(req.bits.in1, 31)
+ wire T_188741 : UInt<1>
+ T_188741 := T_188740
+ when T_188738 : T_188741 := T_188739
+ node lhs_sign = and(lhsSigned, T_188741)
+ node T_188742 = and(req.bits.dw, UInt<1>(1))
+ node T_188743 = eq(UInt<1>(1), T_188742)
+ node T_188744 = bits(req.bits.in1, 63, 32)
+ node T_188745 = subw(UInt<32>(0), UInt<6>(32))
+ wire T_188746 : UInt<32>
+ T_188746 := T_188745
+ when T_188743 : T_188746 := T_188744
+ node T_188747 = bits(req.bits.in1, 31, 0)
+ node lhs_in = cat(T_188746, T_188747)
+ node T_188748 = and(req.bits.dw, UInt<1>(1))
+ node T_188749 = eq(UInt<1>(1), T_188748)
+ node T_188750 = bit(req.bits.in2, 63)
+ node T_188751 = bit(req.bits.in2, 31)
+ wire T_188752 : UInt<1>
+ T_188752 := T_188751
+ when T_188749 : T_188752 := T_188750
+ node rhs_sign = and(rhsSigned, T_188752)
+ node T_188753 = and(req.bits.dw, UInt<1>(1))
+ node T_188754 = eq(UInt<1>(1), T_188753)
+ node T_188755 = bits(req.bits.in2, 63, 32)
+ node T_188756 = subw(UInt<32>(0), UInt<6>(32))
+ wire T_188757 : UInt<32>
+ T_188757 := T_188756
+ when T_188754 : T_188757 := T_188755
+ node T_188758 = bits(req.bits.in2, 31, 0)
+ node rhs_in = cat(T_188757, T_188758)
+ node T_188759 = bits(remainder, 128, 64)
+ node T_188760 = bits(divisor, 64, 0)
+ node subtractor = subw(T_188759, T_188760)
+ node less = bit(subtractor, 64)
+ node T_188761 = bits(remainder, 63, 0)
+ node negated_remainder = subw(UInt<1>(0), T_188761)
+
+ node T_188762 = eq(state, UInt<3>(1))
+ when T_188762 :
+
+
+ node T_188763 = bit(remainder, 63)
+ node T_188764 = or(T_188763, isMul)
+ when T_188764 : remainder := negated_remainder
+
+
+ node T_188765 = bit(divisor, 63)
+ node T_188766 = or(T_188765, isMul)
+ when T_188766 : divisor := subtractor
+ state := UInt<3>(2)
+
+ node T_188767 = eq(state, UInt<3>(4))
+ when T_188767 :
+ remainder := negated_remainder
+ state := UInt<3>(5)
+
+ node T_188768 = eq(state, UInt<3>(3))
+ when T_188768 :
+ node T_188769 = bits(remainder, 128, 65)
+ remainder := T_188769
+ wire T_188770 : UInt<3>
+ T_188770 := UInt<3>(5)
+ when neg_out : T_188770 := UInt<3>(4)
+ state := T_188770
+
+
+ node T_188771 = eq(state, UInt<3>(2))
+ node T_188772 = and(T_188771, isMul)
+ when T_188772 :
+ node T_188773 = bits(remainder, 129, 65)
+ node T_188774 = bits(remainder, 63, 0)
+ node T_188775 = cat(T_188773, T_188774)
+ node T_188776 = bits(T_188775, 63, 0)
+ node T_188777 = bits(T_188775, 128, 64)
+ node T_188778 = asSInt(T_188777)
+ node T_188779 = asSInt(divisor)
+ node T_188780 = bits(T_188776, 7, 0)
+ node T_188781 = mul(T_188779, T_188780)
+ node T_188782 = addw(T_188781, T_188778)
+ node T_188783 = bits(T_188776, 63, 8)
+ node T_188784 = asUInt(T_188782)
+ node T_188785 = cat(T_188784, T_188783)
+ node T_188786 = mul(count, UInt<4>(8))
+ node T_188787 = bits(T_188786, 5, 0)
+ node T_188788 = dshr(SInt<65>(-18446744073709551616), T_188787)
+ node T_188789 = bits(T_188788, 63, 0)
+ node T_188790 = neq(count, UInt<3>(7))
+ node T_188791 = and(UInt<1>(1), T_188790)
+ node T_188792 = neq(count, UInt<1>(0))
+ node T_188793 = and(T_188791, T_188792)
+ node T_188794 = eq(isHi, UInt<1>(0))
+ node T_188795 = and(T_188793, T_188794)
+ node T_188796 = not(T_188789)
+ node T_188797 = and(T_188776, T_188796)
+ node T_188798 = eq(T_188797, UInt<1>(0))
+ node T_188799 = and(T_188795, T_188798)
+ node T_188800 = mul(count, UInt<4>(8))
+ node T_188801 = subw(UInt<7>(64), T_188800)
+ node T_188802 = bits(T_188801, 5, 0)
+ node T_188803 = dshr(T_188775, T_188802)
+ node T_188804 = bits(T_188785, 128, 64)
+ wire T_188805 : UInt<129>
+ T_188805 := T_188785
+ when T_188799 : T_188805 := T_188803
+ node T_188806 = bits(T_188805, 63, 0)
+ node T_188807 = cat(T_188804, T_188806)
+ node T_188808 = shr(T_188807, 64)
+ node T_188809 = bits(T_188807, 63, 0)
+ node T_188810 = cat(UInt<1>(0), T_188809)
+ node T_188811 = cat(T_188808, T_188810)
+ node T_188812 = asSInt(T_188811)
+ remainder := T_188812
+ node T_188813 = addw(count, UInt<1>(1))
+ count := T_188813
+
+
+ node T_188814 = eq(count, UInt<3>(7))
+ node T_188815 = or(T_188799, T_188814)
+ when T_188815 :
+ wire T_188816 : UInt<3>
+ T_188816 := UInt<3>(5)
+ when isHi : T_188816 := UInt<3>(3)
+ state := T_188816
+
+
+ node T_188817 = eq(state, UInt<3>(2))
+ node T_188818 = eq(isMul, UInt<1>(0))
+ node T_188819 = and(T_188817, T_188818)
+ when T_188819 :
+
+ node T_188820 = eq(count, UInt<7>(64))
+ when T_188820 :
+ wire T_188821 : UInt<3>
+ T_188821 := UInt<3>(5)
+ when neg_out : T_188821 := UInt<3>(4)
+ wire T_188822 : UInt<3>
+ T_188822 := T_188821
+ when isHi : T_188822 := UInt<3>(3)
+ state := T_188822
+ node T_188823 = addw(count, UInt<1>(1))
+ count := T_188823
+ node T_188824 = bits(remainder, 127, 64)
+ node T_188825 = bits(subtractor, 63, 0)
+ wire T_188826 : UInt<64>
+ T_188826 := T_188825
+ when less : T_188826 := T_188824
+ node T_188827 = bits(remainder, 63, 0)
+ node T_188828 = eq(less, UInt<1>(0))
+ node T_188829 = cat(T_188827, T_188828)
+ node T_188830 = cat(T_188826, T_188829)
+ remainder := T_188830
+ node T_188831 = bits(divisor, 63, 0)
+ node T_188832 = bit(T_188831, 63)
+ node T_188833 = bit(T_188831, 62)
+ node T_188834 = bit(T_188831, 61)
+ node T_188835 = bit(T_188831, 60)
+ node T_188836 = bit(T_188831, 59)
+ node T_188837 = bit(T_188831, 58)
+ node T_188838 = bit(T_188831, 57)
+ node T_188839 = bit(T_188831, 56)
+ node T_188840 = bit(T_188831, 55)
+ node T_188841 = bit(T_188831, 54)
+ node T_188842 = bit(T_188831, 53)
+ node T_188843 = bit(T_188831, 52)
+ node T_188844 = bit(T_188831, 51)
+ node T_188845 = bit(T_188831, 50)
+ node T_188846 = bit(T_188831, 49)
+ node T_188847 = bit(T_188831, 48)
+ node T_188848 = bit(T_188831, 47)
+ node T_188849 = bit(T_188831, 46)
+ node T_188850 = bit(T_188831, 45)
+ node T_188851 = bit(T_188831, 44)
+ node T_188852 = bit(T_188831, 43)
+ node T_188853 = bit(T_188831, 42)
+ node T_188854 = bit(T_188831, 41)
+ node T_188855 = bit(T_188831, 40)
+ node T_188856 = bit(T_188831, 39)
+ node T_188857 = bit(T_188831, 38)
+ node T_188858 = bit(T_188831, 37)
+ node T_188859 = bit(T_188831, 36)
+ node T_188860 = bit(T_188831, 35)
+ node T_188861 = bit(T_188831, 34)
+ node T_188862 = bit(T_188831, 33)
+ node T_188863 = bit(T_188831, 32)
+ node T_188864 = bit(T_188831, 31)
+ node T_188865 = bit(T_188831, 30)
+ node T_188866 = bit(T_188831, 29)
+ node T_188867 = bit(T_188831, 28)
+ node T_188868 = bit(T_188831, 27)
+ node T_188869 = bit(T_188831, 26)
+ node T_188870 = bit(T_188831, 25)
+ node T_188871 = bit(T_188831, 24)
+ node T_188872 = bit(T_188831, 23)
+ node T_188873 = bit(T_188831, 22)
+ node T_188874 = bit(T_188831, 21)
+ node T_188875 = bit(T_188831, 20)
+ node T_188876 = bit(T_188831, 19)
+ node T_188877 = bit(T_188831, 18)
+ node T_188878 = bit(T_188831, 17)
+ node T_188879 = bit(T_188831, 16)
+ node T_188880 = bit(T_188831, 15)
+ node T_188881 = bit(T_188831, 14)
+ node T_188882 = bit(T_188831, 13)
+ node T_188883 = bit(T_188831, 12)
+ node T_188884 = bit(T_188831, 11)
+ node T_188885 = bit(T_188831, 10)
+ node T_188886 = bit(T_188831, 9)
+ node T_188887 = bit(T_188831, 8)
+ node T_188888 = bit(T_188831, 7)
+ node T_188889 = bit(T_188831, 6)
+ node T_188890 = bit(T_188831, 5)
+ node T_188891 = bit(T_188831, 4)
+ node T_188892 = bit(T_188831, 3)
+ node T_188893 = bit(T_188831, 2)
+ node T_188894 = bit(T_188831, 1)
+ wire T_188895 : UInt<1>
+ T_188895 := T_188894
+ when T_188893 : T_188895 := UInt<2>(2)
+ wire T_188896 : UInt<1>
+ T_188896 := T_188895
+ when T_188892 : T_188896 := UInt<2>(3)
+ wire T_188897 : UInt<1>
+ T_188897 := T_188896
+ when T_188891 : T_188897 := UInt<3>(4)
+ wire T_188898 : UInt<1>
+ T_188898 := T_188897
+ when T_188890 : T_188898 := UInt<3>(5)
+ wire T_188899 : UInt<1>
+ T_188899 := T_188898
+ when T_188889 : T_188899 := UInt<3>(6)
+ wire T_188900 : UInt<1>
+ T_188900 := T_188899
+ when T_188888 : T_188900 := UInt<3>(7)
+ wire T_188901 : UInt<1>
+ T_188901 := T_188900
+ when T_188887 : T_188901 := UInt<4>(8)
+ wire T_188902 : UInt<1>
+ T_188902 := T_188901
+ when T_188886 : T_188902 := UInt<4>(9)
+ wire T_188903 : UInt<1>
+ T_188903 := T_188902
+ when T_188885 : T_188903 := UInt<4>(10)
+ wire T_188904 : UInt<1>
+ T_188904 := T_188903
+ when T_188884 : T_188904 := UInt<4>(11)
+ wire T_188905 : UInt<1>
+ T_188905 := T_188904
+ when T_188883 : T_188905 := UInt<4>(12)
+ wire T_188906 : UInt<1>
+ T_188906 := T_188905
+ when T_188882 : T_188906 := UInt<4>(13)
+ wire T_188907 : UInt<1>
+ T_188907 := T_188906
+ when T_188881 : T_188907 := UInt<4>(14)
+ wire T_188908 : UInt<1>
+ T_188908 := T_188907
+ when T_188880 : T_188908 := UInt<4>(15)
+ wire T_188909 : UInt<1>
+ T_188909 := T_188908
+ when T_188879 : T_188909 := UInt<5>(16)
+ wire T_188910 : UInt<1>
+ T_188910 := T_188909
+ when T_188878 : T_188910 := UInt<5>(17)
+ wire T_188911 : UInt<1>
+ T_188911 := T_188910
+ when T_188877 : T_188911 := UInt<5>(18)
+ wire T_188912 : UInt<1>
+ T_188912 := T_188911
+ when T_188876 : T_188912 := UInt<5>(19)
+ wire T_188913 : UInt<1>
+ T_188913 := T_188912
+ when T_188875 : T_188913 := UInt<5>(20)
+ wire T_188914 : UInt<1>
+ T_188914 := T_188913
+ when T_188874 : T_188914 := UInt<5>(21)
+ wire T_188915 : UInt<1>
+ T_188915 := T_188914
+ when T_188873 : T_188915 := UInt<5>(22)
+ wire T_188916 : UInt<1>
+ T_188916 := T_188915
+ when T_188872 : T_188916 := UInt<5>(23)
+ wire T_188917 : UInt<1>
+ T_188917 := T_188916
+ when T_188871 : T_188917 := UInt<5>(24)
+ wire T_188918 : UInt<1>
+ T_188918 := T_188917
+ when T_188870 : T_188918 := UInt<5>(25)
+ wire T_188919 : UInt<1>
+ T_188919 := T_188918
+ when T_188869 : T_188919 := UInt<5>(26)
+ wire T_188920 : UInt<1>
+ T_188920 := T_188919
+ when T_188868 : T_188920 := UInt<5>(27)
+ wire T_188921 : UInt<1>
+ T_188921 := T_188920
+ when T_188867 : T_188921 := UInt<5>(28)
+ wire T_188922 : UInt<1>
+ T_188922 := T_188921
+ when T_188866 : T_188922 := UInt<5>(29)
+ wire T_188923 : UInt<1>
+ T_188923 := T_188922
+ when T_188865 : T_188923 := UInt<5>(30)
+ wire T_188924 : UInt<1>
+ T_188924 := T_188923
+ when T_188864 : T_188924 := UInt<5>(31)
+ wire T_188925 : UInt<1>
+ T_188925 := T_188924
+ when T_188863 : T_188925 := UInt<6>(32)
+ wire T_188926 : UInt<1>
+ T_188926 := T_188925
+ when T_188862 : T_188926 := UInt<6>(33)
+ wire T_188927 : UInt<1>
+ T_188927 := T_188926
+ when T_188861 : T_188927 := UInt<6>(34)
+ wire T_188928 : UInt<1>
+ T_188928 := T_188927
+ when T_188860 : T_188928 := UInt<6>(35)
+ wire T_188929 : UInt<1>
+ T_188929 := T_188928
+ when T_188859 : T_188929 := UInt<6>(36)
+ wire T_188930 : UInt<1>
+ T_188930 := T_188929
+ when T_188858 : T_188930 := UInt<6>(37)
+ wire T_188931 : UInt<1>
+ T_188931 := T_188930
+ when T_188857 : T_188931 := UInt<6>(38)
+ wire T_188932 : UInt<1>
+ T_188932 := T_188931
+ when T_188856 : T_188932 := UInt<6>(39)
+ wire T_188933 : UInt<1>
+ T_188933 := T_188932
+ when T_188855 : T_188933 := UInt<6>(40)
+ wire T_188934 : UInt<1>
+ T_188934 := T_188933
+ when T_188854 : T_188934 := UInt<6>(41)
+ wire T_188935 : UInt<1>
+ T_188935 := T_188934
+ when T_188853 : T_188935 := UInt<6>(42)
+ wire T_188936 : UInt<1>
+ T_188936 := T_188935
+ when T_188852 : T_188936 := UInt<6>(43)
+ wire T_188937 : UInt<1>
+ T_188937 := T_188936
+ when T_188851 : T_188937 := UInt<6>(44)
+ wire T_188938 : UInt<1>
+ T_188938 := T_188937
+ when T_188850 : T_188938 := UInt<6>(45)
+ wire T_188939 : UInt<1>
+ T_188939 := T_188938
+ when T_188849 : T_188939 := UInt<6>(46)
+ wire T_188940 : UInt<1>
+ T_188940 := T_188939
+ when T_188848 : T_188940 := UInt<6>(47)
+ wire T_188941 : UInt<1>
+ T_188941 := T_188940
+ when T_188847 : T_188941 := UInt<6>(48)
+ wire T_188942 : UInt<1>
+ T_188942 := T_188941
+ when T_188846 : T_188942 := UInt<6>(49)
+ wire T_188943 : UInt<1>
+ T_188943 := T_188942
+ when T_188845 : T_188943 := UInt<6>(50)
+ wire T_188944 : UInt<1>
+ T_188944 := T_188943
+ when T_188844 : T_188944 := UInt<6>(51)
+ wire T_188945 : UInt<1>
+ T_188945 := T_188944
+ when T_188843 : T_188945 := UInt<6>(52)
+ wire T_188946 : UInt<1>
+ T_188946 := T_188945
+ when T_188842 : T_188946 := UInt<6>(53)
+ wire T_188947 : UInt<1>
+ T_188947 := T_188946
+ when T_188841 : T_188947 := UInt<6>(54)
+ wire T_188948 : UInt<1>
+ T_188948 := T_188947
+ when T_188840 : T_188948 := UInt<6>(55)
+ wire T_188949 : UInt<1>
+ T_188949 := T_188948
+ when T_188839 : T_188949 := UInt<6>(56)
+ wire T_188950 : UInt<1>
+ T_188950 := T_188949
+ when T_188838 : T_188950 := UInt<6>(57)
+ wire T_188951 : UInt<1>
+ T_188951 := T_188950
+ when T_188837 : T_188951 := UInt<6>(58)
+ wire T_188952 : UInt<1>
+ T_188952 := T_188951
+ when T_188836 : T_188952 := UInt<6>(59)
+ wire T_188953 : UInt<1>
+ T_188953 := T_188952
+ when T_188835 : T_188953 := UInt<6>(60)
+ wire T_188954 : UInt<1>
+ T_188954 := T_188953
+ when T_188834 : T_188954 := UInt<6>(61)
+ wire T_188955 : UInt<1>
+ T_188955 := T_188954
+ when T_188833 : T_188955 := UInt<6>(62)
+ wire T_188956 : UInt<1>
+ T_188956 := T_188955
+ when T_188832 : T_188956 := UInt<6>(63)
+ node T_188957 = bits(remainder, 63, 0)
+ node T_188958 = bit(T_188957, 63)
+ node T_188959 = bit(T_188957, 62)
+ node T_188960 = bit(T_188957, 61)
+ node T_188961 = bit(T_188957, 60)
+ node T_188962 = bit(T_188957, 59)
+ node T_188963 = bit(T_188957, 58)
+ node T_188964 = bit(T_188957, 57)
+ node T_188965 = bit(T_188957, 56)
+ node T_188966 = bit(T_188957, 55)
+ node T_188967 = bit(T_188957, 54)
+ node T_188968 = bit(T_188957, 53)
+ node T_188969 = bit(T_188957, 52)
+ node T_188970 = bit(T_188957, 51)
+ node T_188971 = bit(T_188957, 50)
+ node T_188972 = bit(T_188957, 49)
+ node T_188973 = bit(T_188957, 48)
+ node T_188974 = bit(T_188957, 47)
+ node T_188975 = bit(T_188957, 46)
+ node T_188976 = bit(T_188957, 45)
+ node T_188977 = bit(T_188957, 44)
+ node T_188978 = bit(T_188957, 43)
+ node T_188979 = bit(T_188957, 42)
+ node T_188980 = bit(T_188957, 41)
+ node T_188981 = bit(T_188957, 40)
+ node T_188982 = bit(T_188957, 39)
+ node T_188983 = bit(T_188957, 38)
+ node T_188984 = bit(T_188957, 37)
+ node T_188985 = bit(T_188957, 36)
+ node T_188986 = bit(T_188957, 35)
+ node T_188987 = bit(T_188957, 34)
+ node T_188988 = bit(T_188957, 33)
+ node T_188989 = bit(T_188957, 32)
+ node T_188990 = bit(T_188957, 31)
+ node T_188991 = bit(T_188957, 30)
+ node T_188992 = bit(T_188957, 29)
+ node T_188993 = bit(T_188957, 28)
+ node T_188994 = bit(T_188957, 27)
+ node T_188995 = bit(T_188957, 26)
+ node T_188996 = bit(T_188957, 25)
+ node T_188997 = bit(T_188957, 24)
+ node T_188998 = bit(T_188957, 23)
+ node T_188999 = bit(T_188957, 22)
+ node T_189000 = bit(T_188957, 21)
+ node T_189001 = bit(T_188957, 20)
+ node T_189002 = bit(T_188957, 19)
+ node T_189003 = bit(T_188957, 18)
+ node T_189004 = bit(T_188957, 17)
+ node T_189005 = bit(T_188957, 16)
+ node T_189006 = bit(T_188957, 15)
+ node T_189007 = bit(T_188957, 14)
+ node T_189008 = bit(T_188957, 13)
+ node T_189009 = bit(T_188957, 12)
+ node T_189010 = bit(T_188957, 11)
+ node T_189011 = bit(T_188957, 10)
+ node T_189012 = bit(T_188957, 9)
+ node T_189013 = bit(T_188957, 8)
+ node T_189014 = bit(T_188957, 7)
+ node T_189015 = bit(T_188957, 6)
+ node T_189016 = bit(T_188957, 5)
+ node T_189017 = bit(T_188957, 4)
+ node T_189018 = bit(T_188957, 3)
+ node T_189019 = bit(T_188957, 2)
+ node T_189020 = bit(T_188957, 1)
+ wire T_189021 : UInt<1>
+ T_189021 := T_189020
+ when T_189019 : T_189021 := UInt<2>(2)
+ wire T_189022 : UInt<1>
+ T_189022 := T_189021
+ when T_189018 : T_189022 := UInt<2>(3)
+ wire T_189023 : UInt<1>
+ T_189023 := T_189022
+ when T_189017 : T_189023 := UInt<3>(4)
+ wire T_189024 : UInt<1>
+ T_189024 := T_189023
+ when T_189016 : T_189024 := UInt<3>(5)
+ wire T_189025 : UInt<1>
+ T_189025 := T_189024
+ when T_189015 : T_189025 := UInt<3>(6)
+ wire T_189026 : UInt<1>
+ T_189026 := T_189025
+ when T_189014 : T_189026 := UInt<3>(7)
+ wire T_189027 : UInt<1>
+ T_189027 := T_189026
+ when T_189013 : T_189027 := UInt<4>(8)
+ wire T_189028 : UInt<1>
+ T_189028 := T_189027
+ when T_189012 : T_189028 := UInt<4>(9)
+ wire T_189029 : UInt<1>
+ T_189029 := T_189028
+ when T_189011 : T_189029 := UInt<4>(10)
+ wire T_189030 : UInt<1>
+ T_189030 := T_189029
+ when T_189010 : T_189030 := UInt<4>(11)
+ wire T_189031 : UInt<1>
+ T_189031 := T_189030
+ when T_189009 : T_189031 := UInt<4>(12)
+ wire T_189032 : UInt<1>
+ T_189032 := T_189031
+ when T_189008 : T_189032 := UInt<4>(13)
+ wire T_189033 : UInt<1>
+ T_189033 := T_189032
+ when T_189007 : T_189033 := UInt<4>(14)
+ wire T_189034 : UInt<1>
+ T_189034 := T_189033
+ when T_189006 : T_189034 := UInt<4>(15)
+ wire T_189035 : UInt<1>
+ T_189035 := T_189034
+ when T_189005 : T_189035 := UInt<5>(16)
+ wire T_189036 : UInt<1>
+ T_189036 := T_189035
+ when T_189004 : T_189036 := UInt<5>(17)
+ wire T_189037 : UInt<1>
+ T_189037 := T_189036
+ when T_189003 : T_189037 := UInt<5>(18)
+ wire T_189038 : UInt<1>
+ T_189038 := T_189037
+ when T_189002 : T_189038 := UInt<5>(19)
+ wire T_189039 : UInt<1>
+ T_189039 := T_189038
+ when T_189001 : T_189039 := UInt<5>(20)
+ wire T_189040 : UInt<1>
+ T_189040 := T_189039
+ when T_189000 : T_189040 := UInt<5>(21)
+ wire T_189041 : UInt<1>
+ T_189041 := T_189040
+ when T_188999 : T_189041 := UInt<5>(22)
+ wire T_189042 : UInt<1>
+ T_189042 := T_189041
+ when T_188998 : T_189042 := UInt<5>(23)
+ wire T_189043 : UInt<1>
+ T_189043 := T_189042
+ when T_188997 : T_189043 := UInt<5>(24)
+ wire T_189044 : UInt<1>
+ T_189044 := T_189043
+ when T_188996 : T_189044 := UInt<5>(25)
+ wire T_189045 : UInt<1>
+ T_189045 := T_189044
+ when T_188995 : T_189045 := UInt<5>(26)
+ wire T_189046 : UInt<1>
+ T_189046 := T_189045
+ when T_188994 : T_189046 := UInt<5>(27)
+ wire T_189047 : UInt<1>
+ T_189047 := T_189046
+ when T_188993 : T_189047 := UInt<5>(28)
+ wire T_189048 : UInt<1>
+ T_189048 := T_189047
+ when T_188992 : T_189048 := UInt<5>(29)
+ wire T_189049 : UInt<1>
+ T_189049 := T_189048
+ when T_188991 : T_189049 := UInt<5>(30)
+ wire T_189050 : UInt<1>
+ T_189050 := T_189049
+ when T_188990 : T_189050 := UInt<5>(31)
+ wire T_189051 : UInt<1>
+ T_189051 := T_189050
+ when T_188989 : T_189051 := UInt<6>(32)
+ wire T_189052 : UInt<1>
+ T_189052 := T_189051
+ when T_188988 : T_189052 := UInt<6>(33)
+ wire T_189053 : UInt<1>
+ T_189053 := T_189052
+ when T_188987 : T_189053 := UInt<6>(34)
+ wire T_189054 : UInt<1>
+ T_189054 := T_189053
+ when T_188986 : T_189054 := UInt<6>(35)
+ wire T_189055 : UInt<1>
+ T_189055 := T_189054
+ when T_188985 : T_189055 := UInt<6>(36)
+ wire T_189056 : UInt<1>
+ T_189056 := T_189055
+ when T_188984 : T_189056 := UInt<6>(37)
+ wire T_189057 : UInt<1>
+ T_189057 := T_189056
+ when T_188983 : T_189057 := UInt<6>(38)
+ wire T_189058 : UInt<1>
+ T_189058 := T_189057
+ when T_188982 : T_189058 := UInt<6>(39)
+ wire T_189059 : UInt<1>
+ T_189059 := T_189058
+ when T_188981 : T_189059 := UInt<6>(40)
+ wire T_189060 : UInt<1>
+ T_189060 := T_189059
+ when T_188980 : T_189060 := UInt<6>(41)
+ wire T_189061 : UInt<1>
+ T_189061 := T_189060
+ when T_188979 : T_189061 := UInt<6>(42)
+ wire T_189062 : UInt<1>
+ T_189062 := T_189061
+ when T_188978 : T_189062 := UInt<6>(43)
+ wire T_189063 : UInt<1>
+ T_189063 := T_189062
+ when T_188977 : T_189063 := UInt<6>(44)
+ wire T_189064 : UInt<1>
+ T_189064 := T_189063
+ when T_188976 : T_189064 := UInt<6>(45)
+ wire T_189065 : UInt<1>
+ T_189065 := T_189064
+ when T_188975 : T_189065 := UInt<6>(46)
+ wire T_189066 : UInt<1>
+ T_189066 := T_189065
+ when T_188974 : T_189066 := UInt<6>(47)
+ wire T_189067 : UInt<1>
+ T_189067 := T_189066
+ when T_188973 : T_189067 := UInt<6>(48)
+ wire T_189068 : UInt<1>
+ T_189068 := T_189067
+ when T_188972 : T_189068 := UInt<6>(49)
+ wire T_189069 : UInt<1>
+ T_189069 := T_189068
+ when T_188971 : T_189069 := UInt<6>(50)
+ wire T_189070 : UInt<1>
+ T_189070 := T_189069
+ when T_188970 : T_189070 := UInt<6>(51)
+ wire T_189071 : UInt<1>
+ T_189071 := T_189070
+ when T_188969 : T_189071 := UInt<6>(52)
+ wire T_189072 : UInt<1>
+ T_189072 := T_189071
+ when T_188968 : T_189072 := UInt<6>(53)
+ wire T_189073 : UInt<1>
+ T_189073 := T_189072
+ when T_188967 : T_189073 := UInt<6>(54)
+ wire T_189074 : UInt<1>
+ T_189074 := T_189073
+ when T_188966 : T_189074 := UInt<6>(55)
+ wire T_189075 : UInt<1>
+ T_189075 := T_189074
+ when T_188965 : T_189075 := UInt<6>(56)
+ wire T_189076 : UInt<1>
+ T_189076 := T_189075
+ when T_188964 : T_189076 := UInt<6>(57)
+ wire T_189077 : UInt<1>
+ T_189077 := T_189076
+ when T_188963 : T_189077 := UInt<6>(58)
+ wire T_189078 : UInt<1>
+ T_189078 := T_189077
+ when T_188962 : T_189078 := UInt<6>(59)
+ wire T_189079 : UInt<1>
+ T_189079 := T_189078
+ when T_188961 : T_189079 := UInt<6>(60)
+ wire T_189080 : UInt<1>
+ T_189080 := T_189079
+ when T_188960 : T_189080 := UInt<6>(61)
+ wire T_189081 : UInt<1>
+ T_189081 := T_189080
+ when T_188959 : T_189081 := UInt<6>(62)
+ wire T_189082 : UInt<1>
+ T_189082 := T_189081
+ when T_188958 : T_189082 := UInt<6>(63)
+ node T_189083 = addw(UInt<6>(63), T_188956)
+ node T_189084 = subw(T_189083, T_189082)
+ node T_189085 = gt(T_188956, T_189082)
+ node T_189086 = eq(count, UInt<1>(0))
+ node T_189087 = and(T_189086, less)
+ node T_189088 = gt(T_189084, UInt<1>(0))
+ node T_189089 = or(T_189088, T_189085)
+ node T_189090 = and(T_189087, T_189089)
+
+ node T_189091 = and(UInt<1>(1), T_189090)
+ when T_189091 :
+ node T_189092 = bits(T_189084, 5, 0)
+ wire T_189093 : UInt<6>
+ T_189093 := T_189092
+ when T_189085 : T_189093 := UInt<6>(63)
+ node T_189094 = bits(remainder, 63, 0)
+ node T_189095 = dshl(T_189094, T_189093)
+ remainder := T_189095
+ count := T_189093
+
+
+ node T_189096 = eq(count, UInt<1>(0))
+ node T_189097 = eq(less, UInt<1>(0))
+ node T_189098 = and(T_189096, T_189097)
+ node T_189099 = eq(isHi, UInt<1>(0))
+ node T_189100 = and(T_189098, T_189099)
+ when T_189100 : neg_out := UInt<1>(0)
+
+
+ node T_189101 = and(resp.ready, resp.valid)
+ node T_189102 = or(T_189101, kill)
+ when T_189102 : state := UInt<3>(0)
+
+ node T_189103 = and(req.ready, req.valid)
+ when T_189103 :
+ node T_189104 = eq(cmdMul, UInt<1>(0))
+ node T_189105 = and(rhs_sign, T_189104)
+ node T_189106 = or(lhs_sign, T_189105)
+ wire T_189107 : UInt<3>
+ T_189107 := UInt<3>(2)
+ when T_189106 : T_189107 := UInt<3>(1)
+ state := T_189107
+ isMul := cmdMul
+ isHi := cmdHi
+ count := UInt<1>(0)
+ node T_189108 = eq(cmdMul, UInt<1>(0))
+ node T_189109 = neq(lhs_sign, rhs_sign)
+ wire T_189110 : UInt<1>
+ T_189110 := T_189109
+ when cmdHi : T_189110 := lhs_sign
+ node T_189111 = and(T_189108, T_189110)
+ neg_out := T_189111
+ node T_189112 = cat(rhs_sign, rhs_in)
+ divisor := T_189112
+ remainder := lhs_in
+ req := req.bits
+ resp.bits := req
+ node T_189113 = and(req.dw, UInt<1>(1))
+ node T_189114 = eq(UInt<1>(0), T_189113)
+ node T_189115 = bit(remainder, 31)
+ node T_189116 = subw(UInt<32>(0), UInt<6>(32))
+ node T_189117 = bits(remainder, 31, 0)
+ node T_189118 = cat(T_189116, T_189117)
+ node T_189119 = bits(remainder, 63, 0)
+ wire T_189120 : UInt<64>
+ T_189120 := T_189119
+ when T_189114 : T_189120 := T_189118
+ resp.bits.data := T_189120
+ node T_189121 = eq(state, UInt<3>(5))
+ resp.valid := T_189121
+ node T_189122 = eq(state, UInt<3>(0))
+ req.ready := T_189122
+ module Rocket :
+ output host : {flip reset : UInt<1>, flip id : UInt<1>, flip pcr_req : {flip ready : UInt<1>, valid : UInt<1>, bits : {rw : UInt<1>, addr : UInt<12>, data : UInt<64>}}, pcr_rep : {flip ready : UInt<1>, valid : UInt<1>, bits : UInt<64>}, ipi_req : {flip ready : UInt<1>, valid : UInt<1>, bits : UInt<1>}, flip ipi_rep : {flip ready : UInt<1>, valid : UInt<1>, bits : UInt<1>}, debug_stats_pcr : UInt<1>}
+ output imem : {req : {valid : UInt<1>, bits : {pc : UInt<40>}}, flip resp : {flip ready : UInt<1>, valid : UInt<1>, bits : {pc : UInt<40>, data : UInt<32>[1], mask : UInt<1>, xcpt_if : UInt<1>}}, flip btb_resp : {valid : UInt<1>, bits : {taken : UInt<1>, mask : UInt<1>, bridx : UInt<1>, target : UInt<39>, entry : UInt<6>, bht : {history : UInt<7>, value : UInt<2>}}}, btb_update : {valid : UInt<1>, bits : {prediction : {valid : UInt<1>, bits : {taken : UInt<1>, mask : UInt<1>, bridx : UInt<1>, target : UInt<39>, entry : UInt<6>, bht : {history : UInt<7>, value : UInt<2>}}}, pc : UInt<39>, target : UInt<39>, taken : UInt<1>, isJump : UInt<1>, isReturn : UInt<1>, br_pc : UInt<39>}}, bht_update : {valid : UInt<1>, bits : {prediction : {valid : UInt<1>, bits : {taken : UInt<1>, mask : UInt<1>, bridx : UInt<1>, target : UInt<39>, entry : UInt<6>, bht : {history : UInt<7>, value : UInt<2>}}}, pc : UInt<39>, taken : UInt<1>, mispredict : UInt<1>}}, ras_update : {valid : UInt<1>, bits : {isCall : UInt<1>, isReturn : UInt<1>, returnAddr : UInt<39>, prediction : {valid : UInt<1>, bits : {taken : UInt<1>, mask : UInt<1>, bridx : UInt<1>, target : UInt<39>, entry : UInt<6>, bht : {history : UInt<7>, value : UInt<2>}}}}}, invalidate : UInt<1>, flip npc : UInt<40>}
+ output dmem : {req : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr : UInt<40>, tag : UInt<8>, cmd : UInt<5>, typ : UInt<3>, kill : UInt<1>, phys : UInt<1>, data : UInt<64>}}, flip resp : {valid : UInt<1>, bits : {addr : UInt<40>, tag : UInt<8>, cmd : UInt<5>, typ : UInt<3>, data : UInt<64>, nack : UInt<1>, replay : UInt<1>, has_data : UInt<1>, data_subword : UInt<64>, store_data : UInt<64>}}, flip replay_next : {valid : UInt<1>, bits : UInt<8>}, flip xcpt : {ma : {ld : UInt<1>, st : UInt<1>}, pf : {ld : UInt<1>, st : UInt<1>}}, invalidate_lr : UInt<1>, flip ordered : UInt<1>}
+ input ptw : {flip ptbr : UInt<32>, flip invalidate : UInt<1>, flip status : {sd : UInt<1>, zero2 : UInt<31>, sd_rv32 : UInt<1>, zero1 : UInt<9>, vm : UInt<5>, mprv : UInt<1>, xs : UInt<2>, fs : UInt<2>, prv3 : UInt<2>, ie3 : UInt<1>, prv2 : UInt<2>, ie2 : UInt<1>, prv1 : UInt<2>, ie1 : UInt<1>, prv : UInt<2>, ie : UInt<1>}}
+ input fpu : {flip inst__ : UInt<32>, flip fromint_data : UInt<64>, flip fcsr_rm : UInt<3>, fcsr_flags : {valid : UInt<1>, bits : UInt<5>}, store_data : UInt<64>, toint_data : UInt<64>, flip dmem_resp_val : UInt<1>, flip dmem_resp_type : UInt<3>, flip dmem_resp_tag : UInt<5>, flip dmem_resp_data : UInt<64>, flip valid : UInt<1>, fcsr_rdy : UInt<1>, nack_mem : UInt<1>, illegal_rm : UInt<1>, flip killx : UInt<1>, flip killm : UInt<1>, dec : {cmd : UInt<5>, ldst : UInt<1>, wen : UInt<1>, ren1 : UInt<1>, ren2 : UInt<1>, ren3 : UInt<1>, swap12 : UInt<1>, swap23 : UInt<1>, single : UInt<1>, fromint : UInt<1>, toint : UInt<1>, fastpipe : UInt<1>, fma : UInt<1>, div : UInt<1>, sqrt : UInt<1>, round : UInt<1>, wflags : UInt<1>}, sboard_set : UInt<1>, sboard_clr : UInt<1>, sboard_clra : UInt<5>}
+ input rocc : {flip cmd : {flip ready : UInt<1>, valid : UInt<1>, bits : {inst__ : {funct : UInt<7>, rs2 : UInt<5>, rs1 : UInt<5>, xd : UInt<1>, xs1 : UInt<1>, xs2 : UInt<1>, rd : UInt<5>, opcode : UInt<7>}, rs1 : UInt<64>, rs2 : UInt<64>}}, resp : {flip ready : UInt<1>, valid : UInt<1>, bits : {rd : UInt<5>, data : UInt<64>}}, mem__ : {req : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr : UInt<40>, tag : UInt<8>, cmd : UInt<5>, typ : UInt<3>, kill : UInt<1>, phys : UInt<1>, data : UInt<64>}}, flip resp : {valid : UInt<1>, bits : {addr : UInt<40>, tag : UInt<8>, cmd : UInt<5>, typ : UInt<3>, data : UInt<64>, nack : UInt<1>, replay : UInt<1>, has_data : UInt<1>, data_subword : UInt<64>, store_data : UInt<64>}}, flip replay_next : {valid : UInt<1>, bits : UInt<8>}, flip xcpt : {ma : {ld : UInt<1>, st : UInt<1>}, pf : {ld : UInt<1>, st : UInt<1>}}, invalidate_lr : UInt<1>, flip ordered : UInt<1>}, busy : UInt<1>, flip s : UInt<1>, interrupt : UInt<1>, imem : {acquire : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_block : UInt<26>, client_xact_id : UInt<1>, addr_beat : UInt<2>, data : UInt<128>, is_builtin_type : UInt<1>, a_type : UInt<3>, union : UInt<17>}}, flip grant : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_beat : UInt<2>, data : UInt<128>, client_xact_id : UInt<1>, manager_xact_id : UInt<2>, is_builtin_type : UInt<1>, g_type : UInt<4>}}}, dmem : {acquire : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_block : UInt<26>, client_xact_id : UInt<1>, addr_beat : UInt<2>, data : UInt<128>, is_builtin_type : UInt<1>, a_type : UInt<3>, union : UInt<17>}}, flip grant : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_beat : UInt<2>, data : UInt<128>, client_xact_id : UInt<1>, manager_xact_id : UInt<2>, is_builtin_type : UInt<1>, g_type : UInt<4>}}}, iptw : {req : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr : UInt<27>, prv : UInt<2>, store : UInt<1>, fetch : UInt<1>}}, flip resp : {valid : UInt<1>, bits : {error : UInt<1>, pte : {ppn : UInt<20>, reserved_for_software : UInt<3>, d : UInt<1>, r : UInt<1>, typ : UInt<4>, v : UInt<1>}}}, flip status : {sd : UInt<1>, zero2 : UInt<31>, sd_rv32 : UInt<1>, zero1 : UInt<9>, vm : UInt<5>, mprv : UInt<1>, xs : UInt<2>, fs : UInt<2>, prv3 : UInt<2>, ie3 : UInt<1>, prv2 : UInt<2>, ie2 : UInt<1>, prv1 : UInt<2>, ie1 : UInt<1>, prv : UInt<2>, ie : UInt<1>}, flip invalidate : UInt<1>}, dptw : {req : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr : UInt<27>, prv : UInt<2>, store : UInt<1>, fetch : UInt<1>}}, flip resp : {valid : UInt<1>, bits : {error : UInt<1>, pte : {ppn : UInt<20>, reserved_for_software : UInt<3>, d : UInt<1>, r : UInt<1>, typ : UInt<4>, v : UInt<1>}}}, flip status : {sd : UInt<1>, zero2 : UInt<31>, sd_rv32 : UInt<1>, zero1 : UInt<9>, vm : UInt<5>, mprv : UInt<1>, xs : UInt<2>, fs : UInt<2>, prv3 : UInt<2>, ie3 : UInt<1>, prv2 : UInt<2>, ie2 : UInt<1>, prv1 : UInt<2>, ie1 : UInt<1>, prv : UInt<2>, ie : UInt<1>}, flip invalidate : UInt<1>}, pptw : {req : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr : UInt<27>, prv : UInt<2>, store : UInt<1>, fetch : UInt<1>}}, flip resp : {valid : UInt<1>, bits : {error : UInt<1>, pte : {ppn : UInt<20>, reserved_for_software : UInt<3>, d : UInt<1>, r : UInt<1>, typ : UInt<4>, v : UInt<1>}}}, flip status : {sd : UInt<1>, zero2 : UInt<31>, sd_rv32 : UInt<1>, zero1 : UInt<9>, vm : UInt<5>, mprv : UInt<1>, xs : UInt<2>, fs : UInt<2>, prv3 : UInt<2>, ie3 : UInt<1>, prv2 : UInt<2>, ie2 : UInt<1>, prv1 : UInt<2>, ie1 : UInt<1>, prv : UInt<2>, ie : UInt<1>}, flip invalidate : UInt<1>}, flip exception : UInt<1>}
+
+ wire data : UInt<32>[1]
+ T_189123.data[0] := T_189124
+ wire data : UInt<32>[1]
+ imem.resp.bits.data[0] := T_189125
+ wire T_189126 : UInt<3>[3]
+ T_189126[0] := UInt<3>(0)
+ T_189126[1] := UInt<3>(1)
+ T_189126[2] := UInt<3>(2)
+ wire T_189127 : UInt<2>[2]
+ T_189127[0] := UInt<2>(0)
+ T_189127[1] := UInt<2>(1)
+ wire T_189128 : UInt<2>[3]
+ T_189128[0] := UInt<2>(1)
+ T_189128[1] := UInt<2>(2)
+ T_189128[2] := UInt<2>(3)
+ wire T_189129 : UInt<2>[2]
+ T_189129[0] := UInt<2>(2)
+ T_189129[1] := UInt<2>(3)
+ wire T_189130 : UInt<2>[1]
+ T_189130[0] := UInt<2>(3)
+ wire T_189131 : UInt<3>[3]
+ T_189131[0] := UInt<3>(0)
+ T_189131[1] := UInt<3>(1)
+ T_189131[2] := UInt<3>(2)
+ wire T_189132 : UInt<2>[2]
+ T_189132[0] := UInt<2>(0)
+ T_189132[1] := UInt<2>(1)
+ wire T_189133 : UInt<2>[3]
+ T_189133[0] := UInt<2>(1)
+ T_189133[1] := UInt<2>(2)
+ T_189133[2] := UInt<2>(3)
+ wire T_189134 : UInt<2>[2]
+ T_189134[0] := UInt<2>(2)
+ T_189134[1] := UInt<2>(3)
+ wire T_189135 : UInt<2>[1]
+ T_189135[0] := UInt<2>(3)
+ wire T_189136 : UInt<3>[3]
+ T_189136[0] := UInt<3>(0)
+ T_189136[1] := UInt<3>(1)
+ T_189136[2] := UInt<3>(2)
+ wire T_189137 : UInt<2>[2]
+ T_189137[0] := UInt<2>(0)
+ T_189137[1] := UInt<2>(1)
+ wire T_189138 : UInt<2>[3]
+ T_189138[0] := UInt<2>(1)
+ T_189138[1] := UInt<2>(2)
+ T_189138[2] := UInt<2>(3)
+ wire T_189139 : UInt<2>[2]
+ T_189139[0] := UInt<2>(2)
+ T_189139[1] := UInt<2>(3)
+ wire T_189140 : UInt<2>[1]
+ T_189140[0] := UInt<2>(3)
+ wire T_189141 : UInt<3>[3]
+ T_189141[0] := UInt<3>(0)
+ T_189141[1] := UInt<3>(1)
+ T_189141[2] := UInt<3>(2)
+ wire T_189142 : UInt<2>[2]
+ T_189142[0] := UInt<2>(0)
+ T_189142[1] := UInt<2>(1)
+ wire T_189143 : UInt<2>[3]
+ T_189143[0] := UInt<2>(1)
+ T_189143[1] := UInt<2>(2)
+ T_189143[2] := UInt<2>(3)
+ wire T_189144 : UInt<2>[2]
+ T_189144[0] := UInt<2>(2)
+ T_189144[1] := UInt<2>(3)
+ wire T_189145 : UInt<2>[1]
+ T_189145[0] := UInt<2>(3)
+ wire T_189146 : UInt<3>[3]
+ T_189146[0] := UInt<3>(0)
+ T_189146[1] := UInt<3>(1)
+ T_189146[2] := UInt<3>(2)
+ wire T_189147 : UInt<2>[2]
+ T_189147[0] := UInt<2>(0)
+ T_189147[1] := UInt<2>(1)
+ wire T_189148 : UInt<2>[3]
+ T_189148[0] := UInt<2>(1)
+ T_189148[1] := UInt<2>(2)
+ T_189148[2] := UInt<2>(3)
+ wire T_189149 : UInt<2>[2]
+ T_189149[0] := UInt<2>(2)
+ T_189149[1] := UInt<2>(3)
+ wire T_189150 : UInt<2>[1]
+ T_189150[0] := UInt<2>(3)
+ wire T_189151 : UInt<3>[3]
+ T_189151[0] := UInt<3>(0)
+ T_189151[1] := UInt<3>(1)
+ T_189151[2] := UInt<3>(2)
+ wire T_189152 : UInt<2>[2]
+ T_189152[0] := UInt<2>(0)
+ T_189152[1] := UInt<2>(1)
+ wire T_189153 : UInt<2>[3]
+ T_189153[0] := UInt<2>(1)
+ T_189153[1] := UInt<2>(2)
+ T_189153[2] := UInt<2>(3)
+ wire T_189154 : UInt<2>[2]
+ T_189154[0] := UInt<2>(2)
+ T_189154[1] := UInt<2>(3)
+ wire T_189155 : UInt<2>[1]
+ T_189155[0] := UInt<2>(3)
+ wire T_189156 : UInt<3>[3]
+ T_189156[0] := UInt<3>(0)
+ T_189156[1] := UInt<3>(1)
+ T_189156[2] := UInt<3>(2)
+ wire T_189157 : UInt<2>[2]
+ T_189157[0] := UInt<2>(0)
+ T_189157[1] := UInt<2>(1)
+ wire T_189158 : UInt<2>[3]
+ T_189158[0] := UInt<2>(1)
+ T_189158[1] := UInt<2>(2)
+ T_189158[2] := UInt<2>(3)
+ wire T_189159 : UInt<2>[2]
+ T_189159[0] := UInt<2>(2)
+ T_189159[1] := UInt<2>(3)
+ wire T_189160 : UInt<2>[1]
+ T_189160[0] := UInt<2>(3)
+ wire T_189161 : UInt<3>[3]
+ T_189161[0] := UInt<3>(0)
+ T_189161[1] := UInt<3>(1)
+ T_189161[2] := UInt<3>(2)
+ wire T_189162 : UInt<2>[2]
+ T_189162[0] := UInt<2>(0)
+ T_189162[1] := UInt<2>(1)
+ wire T_189163 : UInt<2>[3]
+ T_189163[0] := UInt<2>(1)
+ T_189163[1] := UInt<2>(2)
+ T_189163[2] := UInt<2>(3)
+ wire T_189164 : UInt<2>[2]
+ T_189164[0] := UInt<2>(2)
+ T_189164[1] := UInt<2>(3)
+ wire T_189165 : UInt<2>[1]
+ T_189165[0] := UInt<2>(3)
+ wire T_189166 : UInt<3>[3]
+ T_189166[0] := UInt<3>(0)
+ T_189166[1] := UInt<3>(1)
+ T_189166[2] := UInt<3>(2)
+ wire T_189167 : UInt<2>[2]
+ T_189167[0] := UInt<2>(0)
+ T_189167[1] := UInt<2>(1)
+ wire T_189168 : UInt<2>[3]
+ T_189168[0] := UInt<2>(1)
+ T_189168[1] := UInt<2>(2)
+ T_189168[2] := UInt<2>(3)
+ wire T_189169 : UInt<2>[2]
+ T_189169[0] := UInt<2>(2)
+ T_189169[1] := UInt<2>(3)
+ wire T_189170 : UInt<2>[1]
+ T_189170[0] := UInt<2>(3)
+ wire T_189171 : UInt<3>[3]
+ T_189171[0] := UInt<3>(0)
+ T_189171[1] := UInt<3>(1)
+ T_189171[2] := UInt<3>(2)
+ wire T_189172 : UInt<2>[2]
+ T_189172[0] := UInt<2>(0)
+ T_189172[1] := UInt<2>(1)
+ wire T_189173 : UInt<2>[3]
+ T_189173[0] := UInt<2>(1)
+ T_189173[1] := UInt<2>(2)
+ T_189173[2] := UInt<2>(3)
+ wire T_189174 : UInt<2>[2]
+ T_189174[0] := UInt<2>(2)
+ T_189174[1] := UInt<2>(3)
+ wire T_189175 : UInt<2>[1]
+ T_189175[0] := UInt<2>(3)
+ reg ex_ctrl : {legal : UInt<1>, fp : UInt<1>, rocc : UInt<1>, branch : UInt<1>, jal : UInt<1>, jalr : UInt<1>, rxs2 : UInt<1>, rxs1 : UInt<1>, sel_alu2 : UInt<2>, sel_alu1 : UInt<2>, sel_imm : UInt<3>, alu_dw : UInt<1>, alu_fn : UInt<4>, mem__ : UInt<1>, mem_cmd : UInt<5>, mem_type : UInt<3>, rfs1 : UInt<1>, rfs2 : UInt<1>, rfs3 : UInt<1>, wfd : UInt<1>, div : UInt<1>, wxd : UInt<1>, csr : UInt<3>, fence_i : UInt<1>, fence : UInt<1>, amo : UInt<1>}
+ reg mem_ctrl : {legal : UInt<1>, fp : UInt<1>, rocc : UInt<1>, branch : UInt<1>, jal : UInt<1>, jalr : UInt<1>, rxs2 : UInt<1>, rxs1 : UInt<1>, sel_alu2 : UInt<2>, sel_alu1 : UInt<2>, sel_imm : UInt<3>, alu_dw : UInt<1>, alu_fn : UInt<4>, mem__ : UInt<1>, mem_cmd : UInt<5>, mem_type : UInt<3>, rfs1 : UInt<1>, rfs2 : UInt<1>, rfs3 : UInt<1>, wfd : UInt<1>, div : UInt<1>, wxd : UInt<1>, csr : UInt<3>, fence_i : UInt<1>, fence : UInt<1>, amo : UInt<1>}
+ reg wb_ctrl : {legal : UInt<1>, fp : UInt<1>, rocc : UInt<1>, branch : UInt<1>, jal : UInt<1>, jalr : UInt<1>, rxs2 : UInt<1>, rxs1 : UInt<1>, sel_alu2 : UInt<2>, sel_alu1 : UInt<2>, sel_imm : UInt<3>, alu_dw : UInt<1>, alu_fn : UInt<4>, mem__ : UInt<1>, mem_cmd : UInt<5>, mem_type : UInt<3>, rfs1 : UInt<1>, rfs2 : UInt<1>, rfs3 : UInt<1>, wfd : UInt<1>, div : UInt<1>, wxd : UInt<1>, csr : UInt<3>, fence_i : UInt<1>, fence : UInt<1>, amo : UInt<1>}
+ reg ex_reg_xcpt_interrupt : UInt<1>
+ reg ex_reg_valid : UInt<1>
+ reg ex_reg_btb_hit : UInt<1>
+ reg ex_reg_btb_resp : {taken : UInt<1>, mask : UInt<1>, bridx : UInt<1>, target : UInt<39>, entry : UInt<6>, bht : {history : UInt<7>, value : UInt<2>}}
+ reg ex_reg_xcpt : UInt<1>
+ reg ex_reg_flush_pipe : UInt<1>
+ reg ex_reg_load_use : UInt<1>
+ reg ex_reg_cause : UInt
+ reg ex_reg_pc : UInt
+ reg ex_reg_inst : UInt
+ reg mem_reg_xcpt_interrupt : UInt<1>
+ reg mem_reg_valid : UInt<1>
+ reg mem_reg_btb_hit : UInt<1>
+ reg mem_reg_btb_resp : {taken : UInt<1>, mask : UInt<1>, bridx : UInt<1>, target : UInt<39>, entry : UInt<6>, bht : {history : UInt<7>, value : UInt<2>}}
+ reg mem_reg_xcpt : UInt<1>
+ reg mem_reg_replay : UInt<1>
+ reg mem_reg_flush_pipe : UInt<1>
+ reg mem_reg_cause : UInt
+ reg mem_reg_slow_bypass : UInt<1>
+ reg mem_reg_pc : UInt
+ reg mem_reg_inst : UInt
+ reg mem_reg_wdata : UInt
+ reg mem_reg_rs2 : UInt
+ wire take_pc_mem : UInt<1>
+ reg wb_reg_valid : UInt<1>
+ reg wb_reg_xcpt : UInt<1>
+ reg wb_reg_replay : UInt<1>
+ reg wb_reg_cause : UInt
+ reg wb_reg_rocc_pending : UInt<1>
+ onreset wb_reg_rocc_pending := UInt<1>(0)
+ reg wb_reg_pc : UInt
+ reg wb_reg_inst : UInt
+ reg wb_reg_wdata : UInt
+ reg wb_reg_rs2 : UInt
+ wire take_pc_wb : UInt<1>
+ node take_pc_mem_wb = or(take_pc_wb, take_pc_mem)
+ wire id_ctrl : {legal : UInt<1>, fp : UInt<1>, rocc : UInt<1>, branch : UInt<1>, jal : UInt<1>, jalr : UInt<1>, rxs2 : UInt<1>, rxs1 : UInt<1>, sel_alu2 : UInt<2>, sel_alu1 : UInt<2>, sel_imm : UInt<3>, alu_dw : UInt<1>, alu_fn : UInt<4>, mem__ : UInt<1>, mem_cmd : UInt<5>, mem_type : UInt<3>, rfs1 : UInt<1>, rfs2 : UInt<1>, rfs3 : UInt<1>, wfd : UInt<1>, div : UInt<1>, wxd : UInt<1>, csr : UInt<3>, fence_i : UInt<1>, fence : UInt<1>, amo : UInt<1>}
+ node T_189176 = and(imem.resp.bits.data[0], UInt<32>(8319))
+ node T_189177 = eq(T_189176, UInt<32>(3))
+ node T_189178 = and(imem.resp.bits.data[0], UInt<32>(4207))
+ node T_189179 = eq(T_189178, UInt<32>(3))
+ node T_189180 = and(imem.resp.bits.data[0], UInt<32>(24703))
+ node T_189181 = eq(T_189180, UInt<32>(15))
+ node T_189182 = and(imem.resp.bits.data[0], UInt<32>(28791))
+ node T_189183 = eq(T_189182, UInt<32>(19))
+ node T_189184 = and(imem.resp.bits.data[0], UInt<32>(95))
+ node T_189185 = eq(T_189184, UInt<32>(23))
+ node T_189186 = and(imem.resp.bits.data[0], UInt<32>(4227858559))
+ node T_189187 = eq(T_189186, UInt<32>(51))
+ node T_189188 = and(imem.resp.bits.data[0], UInt<32>(3187699831))
+ node T_189189 = eq(T_189188, UInt<32>(51))
+ node T_189190 = and(imem.resp.bits.data[0], UInt<32>(67108979))
+ node T_189191 = eq(T_189190, UInt<32>(67))
+ node T_189192 = and(imem.resp.bits.data[0], UInt<32>(3825205375))
+ node T_189193 = eq(T_189192, UInt<32>(83))
+ node T_189194 = and(imem.resp.bits.data[0], UInt<32>(28795))
+ node T_189195 = eq(T_189194, UInt<32>(99))
+ node T_189196 = and(imem.resp.bits.data[0], UInt<32>(127))
+ node T_189197 = eq(T_189196, UInt<32>(111))
+ node T_189198 = and(imem.resp.bits.data[0], UInt<32>(4293918719))
+ node T_189199 = eq(T_189198, UInt<32>(115))
+ node T_189200 = and(imem.resp.bits.data[0], UInt<32>(4227870815))
+ node T_189201 = eq(T_189200, UInt<32>(4115))
+ node T_189202 = and(imem.resp.bits.data[0], UInt<32>(4261425247))
+ node T_189203 = eq(T_189202, UInt<32>(4123))
+ node T_189204 = and(imem.resp.bits.data[0], UInt<32>(24667))
+ node T_189205 = eq(T_189204, UInt<32>(8195))
+ node T_189206 = and(imem.resp.bits.data[0], UInt<32>(8319))
+ node T_189207 = eq(T_189206, UInt<32>(8211))
+ node T_189208 = and(imem.resp.bits.data[0], UInt<32>(402677887))
+ node T_189209 = eq(T_189208, UInt<32>(8239))
+ node T_189210 = and(imem.resp.bits.data[0], UInt<32>(8319))
+ node T_189211 = eq(T_189210, UInt<32>(8307))
+ node T_189212 = and(imem.resp.bits.data[0], UInt<32>(3154145407))
+ node T_189213 = eq(T_189212, UInt<32>(20499))
+ node T_189214 = and(imem.resp.bits.data[0], UInt<32>(3187699807))
+ node T_189215 = eq(T_189214, UInt<32>(20507))
+ node T_189216 = and(imem.resp.bits.data[0], UInt<32>(3187699831))
+ node T_189217 = eq(T_189216, UInt<32>(20531))
+ node T_189218 = and(imem.resp.bits.data[0], UInt<32>(4261429367))
+ node T_189219 = eq(T_189218, UInt<32>(33570867))
+ node T_189220 = and(imem.resp.bits.data[0], UInt<32>(3892338815))
+ node T_189221 = eq(T_189220, UInt<32>(134225967))
+ node T_189222 = and(imem.resp.bits.data[0], UInt<32>(4292870143))
+ node T_189223 = eq(T_189222, UInt<32>(268435571))
+ node T_189224 = and(imem.resp.bits.data[0], UInt<32>(4193280127))
+ node T_189225 = eq(T_189224, UInt<32>(268443695))
+ node T_189226 = and(imem.resp.bits.data[0], UInt<32>(4293951487))
+ node T_189227 = eq(T_189226, UInt<32>(269484147))
+ node T_189228 = and(imem.resp.bits.data[0], UInt<32>(4093665407))
+ node T_189229 = eq(T_189228, UInt<32>(536870995))
+ node T_189230 = and(imem.resp.bits.data[0], UInt<32>(2080399487))
+ node T_189231 = eq(T_189230, UInt<32>(536870995))
+ node T_189232 = and(imem.resp.bits.data[0], UInt<32>(2080395391))
+ node T_189233 = eq(T_189232, UInt<32>(536870995))
+ node T_189234 = eq(imem.resp.bits.data[0], UInt<32>(810549363))
+ node T_189235 = and(imem.resp.bits.data[0], UInt<32>(2146435199))
+ node T_189236 = eq(T_189235, UInt<32>(1074790483))
+ node T_189237 = and(imem.resp.bits.data[0], UInt<32>(2146435199))
+ node T_189238 = eq(T_189237, UInt<32>(1107296339))
+ node T_189239 = and(imem.resp.bits.data[0], UInt<32>(4260364415))
+ node T_189240 = eq(T_189239, UInt<32>(1476395091))
+ node T_189241 = and(imem.resp.bits.data[0], UInt<32>(3988783231))
+ node T_189242 = eq(T_189241, UInt<32>(3221225555))
+ node T_189243 = and(imem.resp.bits.data[0], UInt<32>(4260388991))
+ node T_189244 = eq(T_189243, UInt<32>(3758096467))
+ node T_189245 = and(imem.resp.bits.data[0], UInt<32>(3991957631))
+ node T_189246 = eq(T_189245, UInt<32>(3758096467))
+ node T_189247 = and(imem.resp.bits.data[0], UInt<32>(24639))
+ node T_189248 = eq(T_189247, UInt<32>(35))
+ node T_189249 = and(imem.resp.bits.data[0], UInt<32>(12399))
+ node T_189250 = eq(T_189249, UInt<32>(4195))
+ node T_189251 = and(imem.resp.bits.data[0], UInt<32>(16511))
+ node T_189252 = eq(T_189251, UInt<32>(16483))
+ node T_189253 = and(imem.resp.bits.data[0], UInt<32>(4227887223))
+ node T_189254 = eq(T_189253, UInt<32>(51))
+ node T_189255 = or(UInt<1>(0), T_189177)
+ node T_189256 = or(T_189255, T_189179)
+ node T_189257 = or(T_189256, T_189181)
+ node T_189258 = or(T_189257, T_189183)
+ node T_189259 = or(T_189258, T_189185)
+ node T_189260 = or(T_189259, T_189187)
+ node T_189261 = or(T_189260, T_189189)
+ node T_189262 = or(T_189261, T_189191)
+ node T_189263 = or(T_189262, T_189193)
+ node T_189264 = or(T_189263, T_189195)
+ node T_189265 = or(T_189264, T_189197)
+ node T_189266 = or(T_189265, T_189199)
+ node T_189267 = or(T_189266, T_189201)
+ node T_189268 = or(T_189267, T_189203)
+ node T_189269 = or(T_189268, T_189205)
+ node T_189270 = or(T_189269, T_189207)
+ node T_189271 = or(T_189270, T_189209)
+ node T_189272 = or(T_189271, T_189211)
+ node T_189273 = or(T_189272, T_189213)
+ node T_189274 = or(T_189273, T_189215)
+ node T_189275 = or(T_189274, T_189217)
+ node T_189276 = or(T_189275, T_189219)
+ node T_189277 = or(T_189276, T_189221)
+ node T_189278 = or(T_189277, T_189223)
+ node T_189279 = or(T_189278, T_189225)
+ node T_189280 = or(T_189279, T_189227)
+ node T_189281 = or(T_189280, T_189229)
+ node T_189282 = or(T_189281, T_189231)
+ node T_189283 = or(T_189282, T_189233)
+ node T_189284 = or(T_189283, T_189234)
+ node T_189285 = or(T_189284, T_189236)
+ node T_189286 = or(T_189285, T_189238)
+ node T_189287 = or(T_189286, T_189240)
+ node T_189288 = or(T_189287, T_189242)
+ node T_189289 = or(T_189288, T_189244)
+ node T_189290 = or(T_189289, T_189246)
+ node T_189291 = or(T_189290, T_189248)
+ node T_189292 = or(T_189291, T_189250)
+ node T_189293 = or(T_189292, T_189252)
+ node T_189294 = or(T_189293, T_189254)
+ node T_189295 = and(imem.resp.bits.data[0], UInt<32>(92))
+ node T_189296 = eq(T_189295, UInt<32>(4))
+ node T_189297 = and(imem.resp.bits.data[0], UInt<32>(96))
+ node T_189298 = eq(T_189297, UInt<32>(64))
+ node T_189299 = or(UInt<1>(0), T_189296)
+ node T_189300 = or(T_189299, T_189298)
+ node T_189301 = and(imem.resp.bits.data[0], UInt<32>(116))
+ node T_189302 = eq(T_189301, UInt<32>(96))
+ node T_189303 = or(UInt<1>(0), T_189302)
+ node T_189304 = and(imem.resp.bits.data[0], UInt<32>(104))
+ node T_189305 = eq(T_189304, UInt<32>(104))
+ node T_189306 = or(UInt<1>(0), T_189305)
+ node T_189307 = and(imem.resp.bits.data[0], UInt<32>(8252))
+ node T_189308 = eq(T_189307, UInt<32>(36))
+ node T_189309 = or(UInt<1>(0), T_189308)
+ node T_189310 = and(imem.resp.bits.data[0], UInt<32>(100))
+ node T_189311 = eq(T_189310, UInt<32>(32))
+ node T_189312 = and(imem.resp.bits.data[0], UInt<32>(52))
+ node T_189313 = eq(T_189312, UInt<32>(32))
+ node T_189314 = and(imem.resp.bits.data[0], UInt<32>(8264))
+ node T_189315 = eq(T_189314, UInt<32>(8200))
+ node T_189316 = or(UInt<1>(0), T_189311)
+ node T_189317 = or(T_189316, T_189313)
+ node T_189318 = or(T_189317, T_189315)
+ node T_189319 = and(imem.resp.bits.data[0], UInt<32>(68))
+ node T_189320 = eq(T_189319, UInt<32>(0))
+ node T_189321 = and(imem.resp.bits.data[0], UInt<32>(16420))
+ node T_189322 = eq(T_189321, UInt<32>(32))
+ node T_189323 = and(imem.resp.bits.data[0], UInt<32>(56))
+ node T_189324 = eq(T_189323, UInt<32>(32))
+ node T_189325 = and(imem.resp.bits.data[0], UInt<32>(8272))
+ node T_189326 = eq(T_189325, UInt<32>(8192))
+ node T_189327 = and(imem.resp.bits.data[0], UInt<32>(2415919156))
+ node T_189328 = eq(T_189327, UInt<32>(2415919120))
+ node T_189329 = or(UInt<1>(0), T_189320)
+ node T_189330 = or(T_189329, T_189322)
+ node T_189331 = or(T_189330, T_189324)
+ node T_189332 = or(T_189331, T_189326)
+ node T_189333 = or(T_189332, T_189328)
+ node T_189334 = and(imem.resp.bits.data[0], UInt<32>(88))
+ node T_189335 = eq(T_189334, UInt<32>(0))
+ node T_189336 = and(imem.resp.bits.data[0], UInt<32>(32))
+ node T_189337 = eq(T_189336, UInt<32>(0))
+ node T_189338 = and(imem.resp.bits.data[0], UInt<32>(12))
+ node T_189339 = eq(T_189338, UInt<32>(4))
+ node T_189340 = and(imem.resp.bits.data[0], UInt<32>(72))
+ node T_189341 = eq(T_189340, UInt<32>(72))
+ node T_189342 = and(imem.resp.bits.data[0], UInt<32>(16464))
+ node T_189343 = eq(T_189342, UInt<32>(16464))
+ node T_189344 = or(UInt<1>(0), T_189335)
+ node T_189345 = or(T_189344, T_189337)
+ node T_189346 = or(T_189345, T_189339)
+ node T_189347 = or(T_189346, T_189341)
+ node T_189348 = or(T_189347, T_189343)
+ node T_189349 = and(imem.resp.bits.data[0], UInt<32>(72))
+ node T_189350 = eq(T_189349, UInt<32>(0))
+ node T_189351 = and(imem.resp.bits.data[0], UInt<32>(24))
+ node T_189352 = eq(T_189351, UInt<32>(0))
+ node T_189353 = and(imem.resp.bits.data[0], UInt<32>(16392))
+ node T_189354 = eq(T_189353, UInt<32>(16384))
+ node T_189355 = or(UInt<1>(0), T_189350)
+ node T_189356 = or(T_189355, T_189320)
+ node T_189357 = or(T_189356, T_189352)
+ node T_189358 = or(T_189357, T_189354)
+ node T_189359 = cat(T_189358, T_189348)
+ node T_189360 = and(imem.resp.bits.data[0], UInt<32>(16388))
+ node T_189361 = eq(T_189360, UInt<32>(0))
+ node T_189362 = and(imem.resp.bits.data[0], UInt<32>(80))
+ node T_189363 = eq(T_189362, UInt<32>(0))
+ node T_189364 = and(imem.resp.bits.data[0], UInt<32>(36))
+ node T_189365 = eq(T_189364, UInt<32>(0))
+ node T_189366 = or(UInt<1>(0), T_189361)
+ node T_189367 = or(T_189366, T_189363)
+ node T_189368 = or(T_189367, T_189320)
+ node T_189369 = or(T_189368, T_189365)
+ node T_189370 = or(T_189369, T_189352)
+ node T_189371 = and(imem.resp.bits.data[0], UInt<32>(52))
+ node T_189372 = eq(T_189371, UInt<32>(20))
+ node T_189373 = or(UInt<1>(0), T_189372)
+ node T_189374 = or(T_189373, T_189341)
+ node T_189375 = cat(T_189374, T_189370)
+ node T_189376 = and(imem.resp.bits.data[0], UInt<32>(24))
+ node T_189377 = eq(T_189376, UInt<32>(8))
+ node T_189378 = and(imem.resp.bits.data[0], UInt<32>(68))
+ node T_189379 = eq(T_189378, UInt<32>(64))
+ node T_189380 = or(UInt<1>(0), T_189377)
+ node T_189381 = or(T_189380, T_189379)
+ node T_189382 = and(imem.resp.bits.data[0], UInt<32>(20))
+ node T_189383 = eq(T_189382, UInt<32>(20))
+ node T_189384 = or(UInt<1>(0), T_189377)
+ node T_189385 = or(T_189384, T_189383)
+ node T_189386 = and(imem.resp.bits.data[0], UInt<32>(48))
+ node T_189387 = eq(T_189386, UInt<32>(0))
+ node T_189388 = and(imem.resp.bits.data[0], UInt<32>(8220))
+ node T_189389 = eq(T_189388, UInt<32>(4))
+ node T_189390 = and(imem.resp.bits.data[0], UInt<32>(20))
+ node T_189391 = eq(T_189390, UInt<32>(16))
+ node T_189392 = or(UInt<1>(0), T_189387)
+ node T_189393 = or(T_189392, T_189389)
+ node T_189394 = or(T_189393, T_189391)
+ node T_189395 = cat(T_189385, T_189381)
+ node T_189396 = cat(T_189394, T_189395)
+ node T_189397 = and(imem.resp.bits.data[0], UInt<32>(16))
+ node T_189398 = eq(T_189397, UInt<32>(0))
+ node T_189399 = and(imem.resp.bits.data[0], UInt<32>(8))
+ node T_189400 = eq(T_189399, UInt<32>(0))
+ node T_189401 = or(UInt<1>(0), T_189398)
+ node T_189402 = or(T_189401, T_189400)
+ node T_189403 = and(imem.resp.bits.data[0], UInt<32>(12372))
+ node T_189404 = eq(T_189403, UInt<32>(4112))
+ node T_189405 = and(imem.resp.bits.data[0], UInt<32>(4184))
+ node T_189406 = eq(T_189405, UInt<32>(4160))
+ node T_189407 = and(imem.resp.bits.data[0], UInt<32>(28740))
+ node T_189408 = eq(T_189407, UInt<32>(28672))
+ node T_189409 = or(UInt<1>(0), T_189404)
+ node T_189410 = or(T_189409, T_189406)
+ node T_189411 = or(T_189410, T_189408)
+ node T_189412 = and(imem.resp.bits.data[0], UInt<32>(8280))
+ node T_189413 = eq(T_189412, UInt<32>(8256))
+ node T_189414 = and(imem.resp.bits.data[0], UInt<32>(12372))
+ node T_189415 = eq(T_189414, UInt<32>(12304))
+ node T_189416 = and(imem.resp.bits.data[0], UInt<32>(24660))
+ node T_189417 = eq(T_189416, UInt<32>(24592))
+ node T_189418 = and(imem.resp.bits.data[0], UInt<32>(1073754164))
+ node T_189419 = eq(T_189418, UInt<32>(1073741872))
+ node T_189420 = and(imem.resp.bits.data[0], UInt<32>(1073746004))
+ node T_189421 = eq(T_189420, UInt<32>(1073745936))
+ node T_189422 = or(UInt<1>(0), T_189413)
+ node T_189423 = or(T_189422, T_189415)
+ node T_189424 = or(T_189423, T_189417)
+ node T_189425 = or(T_189424, T_189419)
+ node T_189426 = or(T_189425, T_189421)
+ node T_189427 = and(imem.resp.bits.data[0], UInt<32>(8276))
+ node T_189428 = eq(T_189427, UInt<32>(8208))
+ node T_189429 = and(imem.resp.bits.data[0], UInt<32>(1073758292))
+ node T_189430 = eq(T_189429, UInt<32>(16400))
+ node T_189431 = and(imem.resp.bits.data[0], UInt<32>(20564))
+ node T_189432 = eq(T_189431, UInt<32>(16400))
+ node T_189433 = and(imem.resp.bits.data[0], UInt<32>(16472))
+ node T_189434 = eq(T_189433, UInt<32>(16448))
+ node T_189435 = or(UInt<1>(0), T_189428)
+ node T_189436 = or(T_189435, T_189430)
+ node T_189437 = or(T_189436, T_189432)
+ node T_189438 = or(T_189437, T_189434)
+ node T_189439 = and(imem.resp.bits.data[0], UInt<32>(84))
+ node T_189440 = eq(T_189439, UInt<32>(64))
+ node T_189441 = and(imem.resp.bits.data[0], UInt<32>(24660))
+ node T_189442 = eq(T_189441, UInt<32>(8208))
+ node T_189443 = and(imem.resp.bits.data[0], UInt<32>(1073754196))
+ node T_189444 = eq(T_189443, UInt<32>(1073745936))
+ node T_189445 = or(UInt<1>(0), T_189440)
+ node T_189446 = or(T_189445, T_189442)
+ node T_189447 = or(T_189446, T_189419)
+ node T_189448 = or(T_189447, T_189444)
+ node T_189449 = cat(T_189426, T_189411)
+ node T_189450 = cat(T_189438, T_189449)
+ node T_189451 = cat(T_189448, T_189450)
+ node T_189452 = and(imem.resp.bits.data[0], UInt<32>(16479))
+ node T_189453 = eq(T_189452, UInt<32>(3))
+ node T_189454 = and(imem.resp.bits.data[0], UInt<32>(4223))
+ node T_189455 = eq(T_189454, UInt<32>(3))
+ node T_189456 = or(UInt<1>(0), T_189453)
+ node T_189457 = or(T_189456, T_189177)
+ node T_189458 = or(T_189457, T_189455)
+ node T_189459 = or(T_189458, T_189205)
+ node T_189460 = or(T_189459, T_189209)
+ node T_189461 = or(T_189460, T_189221)
+ node T_189462 = or(T_189461, T_189225)
+ node T_189463 = and(imem.resp.bits.data[0], UInt<32>(40))
+ node T_189464 = eq(T_189463, UInt<32>(32))
+ node T_189465 = and(imem.resp.bits.data[0], UInt<32>(402653216))
+ node T_189466 = eq(T_189465, UInt<32>(402653216))
+ node T_189467 = and(imem.resp.bits.data[0], UInt<32>(536870944))
+ node T_189468 = eq(T_189467, UInt<32>(536870944))
+ node T_189469 = or(UInt<1>(0), T_189464)
+ node T_189470 = or(T_189469, T_189466)
+ node T_189471 = or(T_189470, T_189468)
+ node T_189472 = and(imem.resp.bits.data[0], UInt<32>(268435464))
+ node T_189473 = eq(T_189472, UInt<32>(268435464))
+ node T_189474 = and(imem.resp.bits.data[0], UInt<32>(1073741832))
+ node T_189475 = eq(T_189474, UInt<32>(1073741832))
+ node T_189476 = or(UInt<1>(0), T_189473)
+ node T_189477 = or(T_189476, T_189475)
+ node T_189478 = and(imem.resp.bits.data[0], UInt<32>(134217736))
+ node T_189479 = eq(T_189478, UInt<32>(134217736))
+ node T_189480 = and(imem.resp.bits.data[0], UInt<32>(2147483656))
+ node T_189481 = eq(T_189480, UInt<32>(2147483656))
+ node T_189482 = or(UInt<1>(0), T_189479)
+ node T_189483 = or(T_189482, T_189473)
+ node T_189484 = or(T_189483, T_189481)
+ node T_189485 = and(imem.resp.bits.data[0], UInt<32>(402653192))
+ node T_189486 = eq(T_189485, UInt<32>(8))
+ node T_189487 = or(UInt<1>(0), T_189486)
+ node T_189488 = cat(T_189477, T_189471)
+ node T_189489 = cat(T_189484, T_189488)
+ node T_189490 = cat(T_189487, T_189489)
+ node T_189491 = cat(UInt<1>(0), T_189490)
+ node T_189492 = and(imem.resp.bits.data[0], UInt<32>(4096))
+ node T_189493 = eq(T_189492, UInt<32>(4096))
+ node T_189494 = or(UInt<1>(0), T_189493)
+ node T_189495 = and(imem.resp.bits.data[0], UInt<32>(8192))
+ node T_189496 = eq(T_189495, UInt<32>(8192))
+ node T_189497 = or(UInt<1>(0), T_189496)
+ node T_189498 = and(imem.resp.bits.data[0], UInt<32>(16384))
+ node T_189499 = eq(T_189498, UInt<32>(16384))
+ node T_189500 = or(UInt<1>(0), T_189499)
+ node T_189501 = cat(T_189497, T_189494)
+ node T_189502 = cat(T_189500, T_189501)
+ node T_189503 = and(imem.resp.bits.data[0], UInt<32>(2147483744))
+ node T_189504 = eq(T_189503, UInt<32>(64))
+ node T_189505 = and(imem.resp.bits.data[0], UInt<32>(268435552))
+ node T_189506 = eq(T_189505, UInt<32>(64))
+ node T_189507 = and(imem.resp.bits.data[0], UInt<32>(112))
+ node T_189508 = eq(T_189507, UInt<32>(64))
+ node T_189509 = or(UInt<1>(0), T_189504)
+ node T_189510 = or(T_189509, T_189506)
+ node T_189511 = or(T_189510, T_189508)
+ node T_189512 = and(imem.resp.bits.data[0], UInt<32>(124))
+ node T_189513 = eq(T_189512, UInt<32>(36))
+ node T_189514 = and(imem.resp.bits.data[0], UInt<32>(1073741920))
+ node T_189515 = eq(T_189514, UInt<32>(64))
+ node T_189516 = and(imem.resp.bits.data[0], UInt<32>(2415919200))
+ node T_189517 = eq(T_189516, UInt<32>(268435520))
+ node T_189518 = or(UInt<1>(0), T_189513)
+ node T_189519 = or(T_189518, T_189515)
+ node T_189520 = or(T_189519, T_189508)
+ node T_189521 = or(T_189520, T_189517)
+ node T_189522 = or(UInt<1>(0), T_189508)
+ node T_189523 = and(imem.resp.bits.data[0], UInt<32>(60))
+ node T_189524 = eq(T_189523, UInt<32>(4))
+ node T_189525 = and(imem.resp.bits.data[0], UInt<32>(268435552))
+ node T_189526 = eq(T_189525, UInt<32>(268435520))
+ node T_189527 = or(UInt<1>(0), T_189524)
+ node T_189528 = or(T_189527, T_189504)
+ node T_189529 = or(T_189528, T_189508)
+ node T_189530 = or(T_189529, T_189526)
+ node T_189531 = and(imem.resp.bits.data[0], UInt<32>(33554548))
+ node T_189532 = eq(T_189531, UInt<32>(33554480))
+ node T_189533 = or(UInt<1>(0), T_189532)
+ node T_189534 = and(imem.resp.bits.data[0], UInt<32>(100))
+ node T_189535 = eq(T_189534, UInt<32>(0))
+ node T_189536 = and(imem.resp.bits.data[0], UInt<32>(80))
+ node T_189537 = eq(T_189536, UInt<32>(16))
+ node T_189538 = and(imem.resp.bits.data[0], UInt<32>(8228))
+ node T_189539 = eq(T_189538, UInt<32>(36))
+ node T_189540 = and(imem.resp.bits.data[0], UInt<32>(40))
+ node T_189541 = eq(T_189540, UInt<32>(40))
+ node T_189542 = and(imem.resp.bits.data[0], UInt<32>(4144))
+ node T_189543 = eq(T_189542, UInt<32>(4144))
+ node T_189544 = and(imem.resp.bits.data[0], UInt<32>(8240))
+ node T_189545 = eq(T_189544, UInt<32>(8240))
+ node T_189546 = and(imem.resp.bits.data[0], UInt<32>(2415919120))
+ node T_189547 = eq(T_189546, UInt<32>(2147483664))
+ node T_189548 = or(UInt<1>(0), T_189535)
+ node T_189549 = or(T_189548, T_189537)
+ node T_189550 = or(T_189549, T_189539)
+ node T_189551 = or(T_189550, T_189541)
+ node T_189552 = or(T_189551, T_189543)
+ node T_189553 = or(T_189552, T_189545)
+ node T_189554 = or(T_189553, T_189547)
+ node T_189555 = and(imem.resp.bits.data[0], UInt<32>(4208))
+ node T_189556 = eq(T_189555, UInt<32>(4208))
+ node T_189557 = or(UInt<1>(0), T_189556)
+ node T_189558 = and(imem.resp.bits.data[0], UInt<32>(8304))
+ node T_189559 = eq(T_189558, UInt<32>(8304))
+ node T_189560 = or(UInt<1>(0), T_189559)
+ node T_189561 = and(imem.resp.bits.data[0], UInt<32>(12400))
+ node T_189562 = eq(T_189561, UInt<32>(112))
+ node T_189563 = or(UInt<1>(0), T_189562)
+ node T_189564 = cat(T_189560, T_189557)
+ node T_189565 = cat(T_189563, T_189564)
+ node T_189566 = and(imem.resp.bits.data[0], UInt<32>(12376))
+ node T_189567 = eq(T_189566, UInt<32>(4104))
+ node T_189568 = or(UInt<1>(0), T_189567)
+ node T_189569 = and(imem.resp.bits.data[0], UInt<32>(12376))
+ node T_189570 = eq(T_189569, UInt<32>(8))
+ node T_189571 = or(UInt<1>(0), T_189570)
+ node T_189572 = and(imem.resp.bits.data[0], UInt<32>(24648))
+ node T_189573 = eq(T_189572, UInt<32>(8200))
+ node T_189574 = or(UInt<1>(0), T_189573)
+ wire T_189575 : UInt<1>[26]
+ T_189575[0] := id_ctrl.legal
+ T_189575[1] := id_ctrl.fp
+ T_189575[2] := id_ctrl.rocc
+ T_189575[3] := id_ctrl.branch
+ T_189575[4] := id_ctrl.jal
+ T_189575[5] := id_ctrl.jalr
+ T_189575[6] := id_ctrl.rxs2
+ T_189575[7] := id_ctrl.rxs1
+ T_189575[8] := id_ctrl.sel_alu2
+ T_189575[9] := id_ctrl.sel_alu1
+ T_189575[10] := id_ctrl.sel_imm
+ T_189575[11] := id_ctrl.alu_dw
+ T_189575[12] := id_ctrl.alu_fn
+ T_189575[13] := id_ctrl.mem__
+ T_189575[14] := id_ctrl.mem_cmd
+ T_189575[15] := id_ctrl.mem_type
+ T_189575[16] := id_ctrl.rfs1
+ T_189575[17] := id_ctrl.rfs2
+ T_189575[18] := id_ctrl.rfs3
+ T_189575[19] := id_ctrl.wfd
+ T_189575[20] := id_ctrl.div
+ T_189575[21] := id_ctrl.wxd
+ T_189575[22] := id_ctrl.csr
+ T_189575[23] := id_ctrl.fence_i
+ T_189575[24] := id_ctrl.fence
+ T_189575[25] := id_ctrl.amo
+ T_189575[0] := T_189294
+ T_189575[1] := T_189300
+ T_189575[2] := UInt<1>(0)
+ T_189575[3] := T_189303
+ T_189575[4] := T_189306
+ T_189575[5] := T_189309
+ T_189575[6] := T_189318
+ T_189575[7] := T_189333
+ T_189575[8] := T_189359
+ T_189575[9] := T_189375
+ T_189575[10] := T_189396
+ T_189575[11] := T_189402
+ T_189575[12] := T_189451
+ T_189575[13] := T_189462
+ T_189575[14] := T_189491
+ T_189575[15] := T_189502
+ T_189575[16] := T_189511
+ T_189575[17] := T_189521
+ T_189575[18] := T_189522
+ T_189575[19] := T_189530
+ T_189575[20] := T_189533
+ T_189575[21] := T_189554
+ T_189575[22] := T_189565
+ T_189575[23] := T_189568
+ T_189575[24] := T_189571
+ T_189575[25] := T_189574
+ node id_raddr3 = bits(imem.resp.bits.data[0], 31, 27)
+ node id_raddr2 = bits(imem.resp.bits.data[0], 24, 20)
+ node id_raddr1 = bits(imem.resp.bits.data[0], 19, 15)
+ node id_waddr = bits(imem.resp.bits.data[0], 11, 7)
+ wire id_load_use : UInt<1>
+ reg id_reg_fence : UInt<1>
+ onreset id_reg_fence := UInt<1>(0)
+ cmem T_189576 : UInt<64>[31]
+ wire T_189577 : UInt
+ node T_189578 = not(id_raddr1)
+ accessor T_189579 = T_189576[T_189578]
+ T_189577 := T_189579
+ wire T_189580 : UInt
+ node T_189581 = not(id_raddr2)
+ accessor T_189582 = T_189576[T_189581]
+ T_189580 := T_189582
+ wire ctrl_killd : UInt<1>
+ inst csr of CSRFile
+ node id_csr_en = neq(id_ctrl.csr, UInt<3>(0))
+ node id_system_insn = eq(id_ctrl.csr, UInt<3>(4))
+ node T_189583 = eq(id_ctrl.csr, UInt<3>(2))
+ node T_189584 = eq(id_ctrl.csr, UInt<3>(3))
+ node T_189585 = or(T_189583, T_189584)
+ node T_189586 = eq(id_raddr1, UInt<1>(0))
+ node id_csr_ren = and(T_189585, T_189586)
+ wire id_csr : UInt<3>
+ id_csr := id_ctrl.csr
+ when id_csr_ren : id_csr := UInt<3>(5)
+ node id_csr_addr = bits(imem.resp.bits.data[0], 31, 20)
+ node T_189587 = eq(id_csr_ren, UInt<1>(0))
+ node T_189588 = and(id_csr_en, T_189587)
+ node T_189589 = and(id_csr_addr, UInt<12>(2244))
+ node T_189590 = eq(T_189589, UInt<12>(64))
+ node T_189591 = or(UInt<1>(0), T_189590)
+ node T_189592 = bit(T_189591, 0)
+ node T_189593 = eq(T_189592, UInt<1>(0))
+ node T_189594 = and(T_189588, T_189593)
+ node id_csr_flush = or(id_system_insn, T_189594)
+ node T_189595 = eq(id_ctrl.legal, UInt<1>(0))
+ node T_189596 = eq(csr.status.fs, UInt<1>(0))
+ node T_189597 = eq(T_189596, UInt<1>(0))
+ node T_189598 = eq(T_189597, UInt<1>(0))
+ node T_189599 = and(id_ctrl.fp, T_189598)
+ node T_189600 = or(T_189595, T_189599)
+ node T_189601 = eq(csr.status.xs, UInt<1>(0))
+ node T_189602 = eq(T_189601, UInt<1>(0))
+ node T_189603 = eq(T_189602, UInt<1>(0))
+ node T_189604 = and(id_ctrl.rocc, T_189603)
+ node id_illegal_insn = or(T_189600, T_189604)
+ node id_amo_aq = bit(imem.resp.bits.data[0], 26)
+ node id_amo_rl = bit(imem.resp.bits.data[0], 25)
+ node T_189605 = and(id_ctrl.amo, id_amo_rl)
+ node id_fence_next = or(id_ctrl.fence, T_189605)
+ node T_189606 = eq(dmem.ordered, UInt<1>(0))
+ node id_mem_busy = or(T_189606, dmem.req.valid)
+ node T_189607 = and(ex_reg_valid, ex_ctrl.rocc)
+ node T_189608 = or(rocc.busy, T_189607)
+ node T_189609 = and(mem_reg_valid, mem_ctrl.rocc)
+ node T_189610 = or(T_189608, T_189609)
+ node T_189611 = and(wb_reg_valid, wb_ctrl.rocc)
+ node T_189612 = or(T_189610, T_189611)
+ node id_rocc_busy = and(UInt<1>(0), T_189612)
+ node T_189613 = and(id_reg_fence, id_mem_busy)
+ node T_189614 = or(id_fence_next, T_189613)
+ id_reg_fence := T_189614
+ node T_189615 = and(id_rocc_busy, id_ctrl.fence)
+ node T_189616 = and(id_ctrl.amo, id_amo_aq)
+ node T_189617 = or(T_189616, id_ctrl.fence_i)
+ node T_189618 = or(id_ctrl.mem__, id_ctrl.rocc)
+ node T_189619 = and(id_reg_fence, T_189618)
+ node T_189620 = or(T_189617, T_189619)
+ node T_189621 = or(T_189620, id_csr_en)
+ node T_189622 = and(id_mem_busy, T_189621)
+ node id_do_fence = or(T_189615, T_189622)
+ node T_189623 = or(csr.interrupt, imem.resp.bits.xcpt_if)
+ node id_xcpt = or(T_189623, id_illegal_insn)
+ wire T_189624 : UInt<2>
+ T_189624 := UInt<2>(2)
+ when imem.resp.bits.xcpt_if : T_189624 := UInt<1>(1)
+ wire id_cause : UInt<2>
+ id_cause := T_189624
+ when csr.interrupt : id_cause := csr.interrupt_cause
+ node ex_waddr = bits(ex_reg_inst, 11, 7)
+ node mem_waddr = bits(mem_reg_inst, 11, 7)
+ node wb_waddr = bits(wb_reg_inst, 11, 7)
+ node T_189625 = and(ex_reg_valid, ex_ctrl.wxd)
+ node T_189626 = and(mem_reg_valid, mem_ctrl.wxd)
+ node T_189627 = eq(mem_ctrl.mem__, UInt<1>(0))
+ node T_189628 = and(T_189626, T_189627)
+ node T_189629 = and(mem_reg_valid, mem_ctrl.wxd)
+ node T_189630 = eq(UInt<1>(0), id_raddr1)
+ node T_189631 = and(UInt<1>(1), T_189630)
+ node T_189632 = eq(ex_waddr, id_raddr1)
+ node T_189633 = and(T_189625, T_189632)
+ node T_189634 = eq(mem_waddr, id_raddr1)
+ node T_189635 = and(T_189628, T_189634)
+ node T_189636 = eq(mem_waddr, id_raddr1)
+ node T_189637 = and(T_189629, T_189636)
+ node T_189638 = eq(UInt<1>(0), id_raddr2)
+ node T_189639 = and(UInt<1>(1), T_189638)
+ node T_189640 = eq(ex_waddr, id_raddr2)
+ node T_189641 = and(T_189625, T_189640)
+ node T_189642 = eq(mem_waddr, id_raddr2)
+ node T_189643 = and(T_189628, T_189642)
+ node T_189644 = eq(mem_waddr, id_raddr2)
+ node T_189645 = and(T_189629, T_189644)
+ wire bypass_mux : UInt<1>[4]
+ bypass_mux[0] := UInt<1>(0)
+ bypass_mux[1] := mem_reg_wdata
+ bypass_mux[2] := wb_reg_wdata
+ bypass_mux[3] := dmem.resp.bits.data
+ wire T_189646 : UInt<1>[2]
+ T_189646[0] := T_189647
+ T_189646[1] := T_189648
+ reg ex_reg_rs_bypass : UInt<1>[2]
+ wire T_189649 : UInt[2]
+ T_189649[0] := T_189650
+ T_189649[1] := T_189651
+ reg ex_reg_rs_lsb : UInt[2]
+ wire T_189652 : UInt[2]
+ T_189652[0] := T_189653
+ T_189652[1] := T_189654
+ reg ex_reg_rs_msb : UInt[2]
+ accessor T_189655 = bypass_mux[ex_reg_rs_lsb[0]]
+ node T_189656 = cat(ex_reg_rs_msb[0], ex_reg_rs_lsb[0])
+ wire T_189657 : UInt
+ T_189657 := T_189656
+ when ex_reg_rs_bypass[0] : T_189657 := T_189655
+ accessor T_189658 = bypass_mux[ex_reg_rs_lsb[1]]
+ node T_189659 = cat(ex_reg_rs_msb[1], ex_reg_rs_lsb[1])
+ wire T_189660 : UInt
+ T_189660 := T_189659
+ when ex_reg_rs_bypass[1] : T_189660 := T_189658
+ node T_189661 = eq(ex_ctrl.sel_imm, UInt<3>(5))
+ node T_189662 = bit(ex_reg_inst, 31)
+ node T_189663 = asSInt(T_189662)
+ wire T_189664 : SInt<1>
+ T_189664 := T_189663
+ when T_189661 : T_189664 := SInt<1>(0)
+ node T_189665 = eq(ex_ctrl.sel_imm, UInt<3>(2))
+ node T_189666 = bits(ex_reg_inst, 30, 20)
+ node T_189667 = asSInt(T_189666)
+ wire T_189668 : SInt<1>
+ T_189668 := T_189664
+ when T_189665 : T_189668 := T_189667
+ node T_189669 = neq(ex_ctrl.sel_imm, UInt<3>(2))
+ node T_189670 = neq(ex_ctrl.sel_imm, UInt<3>(3))
+ node T_189671 = and(T_189669, T_189670)
+ node T_189672 = bits(ex_reg_inst, 19, 12)
+ node T_189673 = asSInt(T_189672)
+ wire T_189674 : SInt<8>
+ T_189674 := T_189673
+ when T_189671 : T_189674 := T_189664
+ node T_189675 = eq(ex_ctrl.sel_imm, UInt<3>(2))
+ node T_189676 = eq(ex_ctrl.sel_imm, UInt<3>(5))
+ node T_189677 = or(T_189675, T_189676)
+ node T_189678 = eq(ex_ctrl.sel_imm, UInt<3>(3))
+ node T_189679 = bit(ex_reg_inst, 20)
+ node T_189680 = asSInt(T_189679)
+ node T_189681 = eq(ex_ctrl.sel_imm, UInt<3>(1))
+ node T_189682 = bit(ex_reg_inst, 7)
+ node T_189683 = asSInt(T_189682)
+ wire T_189684 : SInt<1>
+ T_189684 := T_189664
+ when T_189681 : T_189684 := T_189683
+ wire T_189685 : SInt<1>
+ T_189685 := T_189684
+ when T_189678 : T_189685 := T_189680
+ wire T_189686 : SInt<1>
+ T_189686 := T_189685
+ when T_189677 : T_189686 := SInt<1>(0)
+ node T_189687 = eq(ex_ctrl.sel_imm, UInt<3>(2))
+ node T_189688 = eq(ex_ctrl.sel_imm, UInt<3>(5))
+ node T_189689 = or(T_189687, T_189688)
+ node T_189690 = bits(ex_reg_inst, 30, 25)
+ wire T_189691 : UInt<6>
+ T_189691 := T_189690
+ when T_189689 : T_189691 := UInt<1>(0)
+ node T_189692 = eq(ex_ctrl.sel_imm, UInt<3>(2))
+ node T_189693 = eq(ex_ctrl.sel_imm, UInt<3>(0))
+ node T_189694 = eq(ex_ctrl.sel_imm, UInt<3>(1))
+ node T_189695 = or(T_189693, T_189694)
+ node T_189696 = bits(ex_reg_inst, 11, 8)
+ node T_189697 = eq(ex_ctrl.sel_imm, UInt<3>(5))
+ node T_189698 = bits(ex_reg_inst, 19, 16)
+ node T_189699 = bits(ex_reg_inst, 24, 21)
+ wire T_189700 : UInt<4>
+ T_189700 := T_189699
+ when T_189697 : T_189700 := T_189698
+ wire T_189701 : UInt<4>
+ T_189701 := T_189700
+ when T_189695 : T_189701 := T_189696
+ wire T_189702 : UInt<4>
+ T_189702 := T_189701
+ when T_189692 : T_189702 := UInt<1>(0)
+ node T_189703 = eq(ex_ctrl.sel_imm, UInt<3>(0))
+ node T_189704 = bit(ex_reg_inst, 7)
+ node T_189705 = eq(ex_ctrl.sel_imm, UInt<3>(4))
+ node T_189706 = bit(ex_reg_inst, 20)
+ node T_189707 = eq(ex_ctrl.sel_imm, UInt<3>(5))
+ node T_189708 = bit(ex_reg_inst, 15)
+ wire T_189709 : UInt<1>
+ T_189709 := UInt<1>(0)
+ when T_189707 : T_189709 := T_189708
+ wire T_189710 : UInt<1>
+ T_189710 := T_189709
+ when T_189705 : T_189710 := T_189706
+ wire T_189711 : UInt<1>
+ T_189711 := T_189710
+ when T_189703 : T_189711 := T_189704
+ node T_189712 = asUInt(T_189664)
+ node T_189713 = asUInt(T_189668)
+ node T_189714 = asUInt(T_189674)
+ node T_189715 = cat(T_189713, T_189714)
+ node T_189716 = cat(T_189712, T_189715)
+ node T_189717 = asUInt(T_189686)
+ node T_189718 = cat(T_189717, T_189691)
+ node T_189719 = cat(T_189702, T_189711)
+ node T_189720 = cat(T_189718, T_189719)
+ node T_189721 = cat(T_189716, T_189720)
+ node ex_imm = asSInt(T_189721)
+ node T_189722 = asSInt(T_189657)
+ node T_189723 = asSInt(ex_reg_pc)
+ node T_189724 = eq(UInt<2>(2), ex_ctrl.sel_alu1)
+ wire T_189725 : SInt<1>
+ T_189725 := SInt<1>(0)
+ when T_189724 : T_189725 := T_189723
+ node T_189726 = eq(UInt<2>(1), ex_ctrl.sel_alu1)
+ wire ex_op1 : SInt<1>
+ ex_op1 := T_189725
+ when T_189726 : ex_op1 := T_189722
+ node T_189727 = asSInt(T_189660)
+ node T_189728 = eq(UInt<2>(1), ex_ctrl.sel_alu2)
+ wire T_189729 : SInt<1>
+ T_189729 := SInt<1>(0)
+ when T_189728 : T_189729 := SInt<4>(4)
+ node T_189730 = eq(UInt<2>(3), ex_ctrl.sel_alu2)
+ wire T_189731 : SInt<1>
+ T_189731 := T_189729
+ when T_189730 : T_189731 := ex_imm
+ node T_189732 = eq(UInt<2>(2), ex_ctrl.sel_alu2)
+ wire ex_op2 : SInt<1>
+ ex_op2 := T_189731
+ when T_189732 : ex_op2 := T_189727
+ inst alu of ALU
+ alu.dw := ex_ctrl.alu_dw
+ alu.fn := ex_ctrl.alu_fn
+ node T_189733 = asUInt(ex_op2)
+ alu.in2 := T_189733
+ alu.in1 := ex_op1
+ inst div of MulDiv
+ node T_189734 = and(ex_reg_valid, ex_ctrl.div)
+ div.req.valid := T_189734
+ div.req.bits.dw := ex_ctrl.alu_dw
+ div.req.bits.fn := ex_ctrl.alu_fn
+ div.req.bits.in1 := T_189657
+ div.req.bits.in2 := T_189660
+ div.req.bits.tag := ex_waddr
+ node T_189735 = eq(ctrl_killd, UInt<1>(0))
+ ex_reg_valid := T_189735
+ node T_189736 = eq(ctrl_killd, UInt<1>(0))
+ node T_189737 = and(T_189736, id_xcpt)
+ ex_reg_xcpt := T_189737
+ node T_189738 = eq(take_pc_mem_wb, UInt<1>(0))
+ node T_189739 = and(csr.interrupt, T_189738)
+ node T_189740 = and(T_189739, imem.resp.valid)
+ ex_reg_xcpt_interrupt := T_189740
+ when id_xcpt : ex_reg_cause := id_cause
+
+ node T_189741 = eq(ctrl_killd, UInt<1>(0))
+ when T_189741 :
+ ex_ctrl := id_ctrl
+ ex_ctrl.csr := id_csr
+ ex_reg_btb_hit := imem.btb_resp.valid
+ when imem.btb_resp.valid : ex_reg_btb_resp := imem.btb_resp.bits
+ node T_189742 = or(id_ctrl.fence_i, id_csr_flush)
+ ex_reg_flush_pipe := T_189742
+ ex_reg_load_use := id_load_use
+ node T_189743 = or(T_189631, T_189633)
+ node T_189744 = or(T_189743, T_189635)
+ node T_189745 = or(T_189744, T_189637)
+ wire T_189746 : UInt<2>
+ T_189746 := UInt<2>(3)
+ when T_189635 : T_189746 := UInt<2>(2)
+ wire T_189747 : UInt<2>
+ T_189747 := T_189746
+ when T_189633 : T_189747 := UInt<1>(1)
+ wire T_189748 : UInt<2>
+ T_189748 := T_189747
+ when T_189631 : T_189748 := UInt<1>(0)
+ ex_reg_rs_bypass[0] := T_189745
+ ex_reg_rs_lsb[0] := T_189748
+
+
+ node T_189749 = eq(T_189745, UInt<1>(0))
+ node T_189750 = and(id_ctrl.rxs1, T_189749)
+ when T_189750 :
+ node T_189751 = bits(T_189577, 1, 0)
+ ex_reg_rs_lsb[0] := T_189751
+ node T_189752 = shr(T_189577, 2)
+ ex_reg_rs_msb[0] := T_189752
+ node T_189753 = or(T_189639, T_189641)
+ node T_189754 = or(T_189753, T_189643)
+ node T_189755 = or(T_189754, T_189645)
+ wire T_189756 : UInt<2>
+ T_189756 := UInt<2>(3)
+ when T_189643 : T_189756 := UInt<2>(2)
+ wire T_189757 : UInt<2>
+ T_189757 := T_189756
+ when T_189641 : T_189757 := UInt<1>(1)
+ wire T_189758 : UInt<2>
+ T_189758 := T_189757
+ when T_189639 : T_189758 := UInt<1>(0)
+ ex_reg_rs_bypass[1] := T_189755
+ ex_reg_rs_lsb[1] := T_189758
+
+
+ node T_189759 = eq(T_189755, UInt<1>(0))
+ node T_189760 = and(id_ctrl.rxs2, T_189759)
+ when T_189760 :
+ node T_189761 = bits(T_189580, 1, 0)
+ ex_reg_rs_lsb[1] := T_189761
+ node T_189762 = shr(T_189580, 2)
+ ex_reg_rs_msb[1] := T_189762
+
+
+ node T_189763 = eq(ctrl_killd, UInt<1>(0))
+ node T_189764 = or(T_189763, csr.interrupt)
+ when T_189764 :
+ ex_reg_inst := imem.resp.bits.data[0]
+ ex_reg_pc := imem.resp.bits.pc
+ node T_189765 = eq(dmem.resp.valid, UInt<1>(0))
+ node wb_dcache_miss = and(wb_ctrl.mem__, T_189765)
+ node T_189766 = eq(dmem.req.ready, UInt<1>(0))
+ node T_189767 = and(ex_ctrl.mem__, T_189766)
+ node T_189768 = eq(div.req.ready, UInt<1>(0))
+ node T_189769 = and(ex_ctrl.div, T_189768)
+ node replay_ex_structural = or(T_189767, T_189769)
+ node replay_ex_load_use = and(wb_dcache_miss, ex_reg_load_use)
+ node T_189770 = or(replay_ex_structural, replay_ex_load_use)
+ node replay_ex = and(ex_reg_valid, T_189770)
+ node T_189771 = or(take_pc_mem_wb, replay_ex)
+ node T_189772 = eq(ex_reg_valid, UInt<1>(0))
+ node ctrl_killx = or(T_189771, T_189772)
+ node T_189773 = eq(ex_ctrl.mem_cmd, UInt<5>(7))
+ wire T_189774 : UInt<3>[4]
+ T_189774[0] := UInt<3>(0)
+ T_189774[1] := UInt<3>(4)
+ T_189774[2] := UInt<3>(1)
+ T_189774[3] := UInt<3>(5)
+ node T_189775 = eq(T_189774[0], ex_ctrl.mem_type)
+ node T_189776 = eq(T_189774[1], ex_ctrl.mem_type)
+ node T_189777 = eq(T_189774[2], ex_ctrl.mem_type)
+ node T_189778 = eq(T_189774[3], ex_ctrl.mem_type)
+ node T_189779 = or(UInt<1>(0), T_189775)
+ node T_189780 = or(T_189779, T_189776)
+ node T_189781 = or(T_189780, T_189777)
+ node T_189782 = or(T_189781, T_189778)
+ node ex_slow_bypass = or(T_189773, T_189782)
+ node T_189783 = or(ex_reg_xcpt_interrupt, ex_reg_xcpt)
+ node T_189784 = and(ex_ctrl.fp, fpu.illegal_rm)
+ node ex_xcpt = or(T_189783, T_189784)
+ wire ex_cause : UInt<2>
+ ex_cause := UInt<2>(2)
+ when T_189783 : ex_cause := ex_reg_cause
+ node mem_br_taken = bit(mem_reg_wdata, 0)
+ node T_189785 = asSInt(mem_reg_pc)
+ node T_189786 = and(mem_ctrl.branch, mem_br_taken)
+ node T_189787 = eq(UInt<3>(1), UInt<3>(5))
+ node T_189788 = bit(mem_reg_inst, 31)
+ node T_189789 = asSInt(T_189788)
+ wire T_189790 : SInt<1>
+ T_189790 := T_189789
+ when T_189787 : T_189790 := SInt<1>(0)
+ node T_189791 = eq(UInt<3>(1), UInt<3>(2))
+ node T_189792 = bits(mem_reg_inst, 30, 20)
+ node T_189793 = asSInt(T_189792)
+ wire T_189794 : SInt<1>
+ T_189794 := T_189790
+ when T_189791 : T_189794 := T_189793
+ node T_189795 = neq(UInt<3>(1), UInt<3>(2))
+ node T_189796 = neq(UInt<3>(1), UInt<3>(3))
+ node T_189797 = and(T_189795, T_189796)
+ node T_189798 = bits(mem_reg_inst, 19, 12)
+ node T_189799 = asSInt(T_189798)
+ wire T_189800 : SInt<8>
+ T_189800 := T_189799
+ when T_189797 : T_189800 := T_189790
+ node T_189801 = eq(UInt<3>(1), UInt<3>(2))
+ node T_189802 = eq(UInt<3>(1), UInt<3>(5))
+ node T_189803 = or(T_189801, T_189802)
+ node T_189804 = eq(UInt<3>(1), UInt<3>(3))
+ node T_189805 = bit(mem_reg_inst, 20)
+ node T_189806 = asSInt(T_189805)
+ node T_189807 = eq(UInt<3>(1), UInt<3>(1))
+ node T_189808 = bit(mem_reg_inst, 7)
+ node T_189809 = asSInt(T_189808)
+ wire T_189810 : SInt<1>
+ T_189810 := T_189790
+ when T_189807 : T_189810 := T_189809
+ wire T_189811 : SInt<1>
+ T_189811 := T_189810
+ when T_189804 : T_189811 := T_189806
+ wire T_189812 : SInt<1>
+ T_189812 := T_189811
+ when T_189803 : T_189812 := SInt<1>(0)
+ node T_189813 = eq(UInt<3>(1), UInt<3>(2))
+ node T_189814 = eq(UInt<3>(1), UInt<3>(5))
+ node T_189815 = or(T_189813, T_189814)
+ node T_189816 = bits(mem_reg_inst, 30, 25)
+ wire T_189817 : UInt<6>
+ T_189817 := T_189816
+ when T_189815 : T_189817 := UInt<1>(0)
+ node T_189818 = eq(UInt<3>(1), UInt<3>(2))
+ node T_189819 = eq(UInt<3>(1), UInt<3>(0))
+ node T_189820 = eq(UInt<3>(1), UInt<3>(1))
+ node T_189821 = or(T_189819, T_189820)
+ node T_189822 = bits(mem_reg_inst, 11, 8)
+ node T_189823 = eq(UInt<3>(1), UInt<3>(5))
+ node T_189824 = bits(mem_reg_inst, 19, 16)
+ node T_189825 = bits(mem_reg_inst, 24, 21)
+ wire T_189826 : UInt<4>
+ T_189826 := T_189825
+ when T_189823 : T_189826 := T_189824
+ wire T_189827 : UInt<4>
+ T_189827 := T_189826
+ when T_189821 : T_189827 := T_189822
+ wire T_189828 : UInt<4>
+ T_189828 := T_189827
+ when T_189818 : T_189828 := UInt<1>(0)
+ node T_189829 = eq(UInt<3>(1), UInt<3>(0))
+ node T_189830 = bit(mem_reg_inst, 7)
+ node T_189831 = eq(UInt<3>(1), UInt<3>(4))
+ node T_189832 = bit(mem_reg_inst, 20)
+ node T_189833 = eq(UInt<3>(1), UInt<3>(5))
+ node T_189834 = bit(mem_reg_inst, 15)
+ wire T_189835 : UInt<1>
+ T_189835 := UInt<1>(0)
+ when T_189833 : T_189835 := T_189834
+ wire T_189836 : UInt<1>
+ T_189836 := T_189835
+ when T_189831 : T_189836 := T_189832
+ wire T_189837 : UInt<1>
+ T_189837 := T_189836
+ when T_189829 : T_189837 := T_189830
+ node T_189838 = asUInt(T_189790)
+ node T_189839 = asUInt(T_189794)
+ node T_189840 = asUInt(T_189800)
+ node T_189841 = cat(T_189839, T_189840)
+ node T_189842 = cat(T_189838, T_189841)
+ node T_189843 = asUInt(T_189812)
+ node T_189844 = cat(T_189843, T_189817)
+ node T_189845 = cat(T_189828, T_189837)
+ node T_189846 = cat(T_189844, T_189845)
+ node T_189847 = cat(T_189842, T_189846)
+ node T_189848 = asSInt(T_189847)
+ node T_189849 = eq(UInt<3>(3), UInt<3>(5))
+ node T_189850 = bit(mem_reg_inst, 31)
+ node T_189851 = asSInt(T_189850)
+ wire T_189852 : SInt<1>
+ T_189852 := T_189851
+ when T_189849 : T_189852 := SInt<1>(0)
+ node T_189853 = eq(UInt<3>(3), UInt<3>(2))
+ node T_189854 = bits(mem_reg_inst, 30, 20)
+ node T_189855 = asSInt(T_189854)
+ wire T_189856 : SInt<1>
+ T_189856 := T_189852
+ when T_189853 : T_189856 := T_189855
+ node T_189857 = neq(UInt<3>(3), UInt<3>(2))
+ node T_189858 = neq(UInt<3>(3), UInt<3>(3))
+ node T_189859 = and(T_189857, T_189858)
+ node T_189860 = bits(mem_reg_inst, 19, 12)
+ node T_189861 = asSInt(T_189860)
+ wire T_189862 : SInt<8>
+ T_189862 := T_189861
+ when T_189859 : T_189862 := T_189852
+ node T_189863 = eq(UInt<3>(3), UInt<3>(2))
+ node T_189864 = eq(UInt<3>(3), UInt<3>(5))
+ node T_189865 = or(T_189863, T_189864)
+ node T_189866 = eq(UInt<3>(3), UInt<3>(3))
+ node T_189867 = bit(mem_reg_inst, 20)
+ node T_189868 = asSInt(T_189867)
+ node T_189869 = eq(UInt<3>(3), UInt<3>(1))
+ node T_189870 = bit(mem_reg_inst, 7)
+ node T_189871 = asSInt(T_189870)
+ wire T_189872 : SInt<1>
+ T_189872 := T_189852
+ when T_189869 : T_189872 := T_189871
+ wire T_189873 : SInt<1>
+ T_189873 := T_189872
+ when T_189866 : T_189873 := T_189868
+ wire T_189874 : SInt<1>
+ T_189874 := T_189873
+ when T_189865 : T_189874 := SInt<1>(0)
+ node T_189875 = eq(UInt<3>(3), UInt<3>(2))
+ node T_189876 = eq(UInt<3>(3), UInt<3>(5))
+ node T_189877 = or(T_189875, T_189876)
+ node T_189878 = bits(mem_reg_inst, 30, 25)
+ wire T_189879 : UInt<6>
+ T_189879 := T_189878
+ when T_189877 : T_189879 := UInt<1>(0)
+ node T_189880 = eq(UInt<3>(3), UInt<3>(2))
+ node T_189881 = eq(UInt<3>(3), UInt<3>(0))
+ node T_189882 = eq(UInt<3>(3), UInt<3>(1))
+ node T_189883 = or(T_189881, T_189882)
+ node T_189884 = bits(mem_reg_inst, 11, 8)
+ node T_189885 = eq(UInt<3>(3), UInt<3>(5))
+ node T_189886 = bits(mem_reg_inst, 19, 16)
+ node T_189887 = bits(mem_reg_inst, 24, 21)
+ wire T_189888 : UInt<4>
+ T_189888 := T_189887
+ when T_189885 : T_189888 := T_189886
+ wire T_189889 : UInt<4>
+ T_189889 := T_189888
+ when T_189883 : T_189889 := T_189884
+ wire T_189890 : UInt<4>
+ T_189890 := T_189889
+ when T_189880 : T_189890 := UInt<1>(0)
+ node T_189891 = eq(UInt<3>(3), UInt<3>(0))
+ node T_189892 = bit(mem_reg_inst, 7)
+ node T_189893 = eq(UInt<3>(3), UInt<3>(4))
+ node T_189894 = bit(mem_reg_inst, 20)
+ node T_189895 = eq(UInt<3>(3), UInt<3>(5))
+ node T_189896 = bit(mem_reg_inst, 15)
+ wire T_189897 : UInt<1>
+ T_189897 := UInt<1>(0)
+ when T_189895 : T_189897 := T_189896
+ wire T_189898 : UInt<1>
+ T_189898 := T_189897
+ when T_189893 : T_189898 := T_189894
+ wire T_189899 : UInt<1>
+ T_189899 := T_189898
+ when T_189891 : T_189899 := T_189892
+ node T_189900 = asUInt(T_189852)
+ node T_189901 = asUInt(T_189856)
+ node T_189902 = asUInt(T_189862)
+ node T_189903 = cat(T_189901, T_189902)
+ node T_189904 = cat(T_189900, T_189903)
+ node T_189905 = asUInt(T_189874)
+ node T_189906 = cat(T_189905, T_189879)
+ node T_189907 = cat(T_189890, T_189899)
+ node T_189908 = cat(T_189906, T_189907)
+ node T_189909 = cat(T_189904, T_189908)
+ node T_189910 = asSInt(T_189909)
+ wire T_189911 : SInt<4>
+ T_189911 := SInt<4>(4)
+ when mem_ctrl.jal : T_189911 := T_189910
+ wire T_189912 : SInt<4>
+ T_189912 := T_189911
+ when T_189786 : T_189912 := T_189848
+ node mem_br_target = addw(T_189785, T_189912)
+ node T_189913 = asSInt(mem_reg_wdata)
+ wire T_189914 : SInt
+ T_189914 := T_189913
+ when mem_ctrl.jalr : T_189914 := mem_br_target
+ node mem_int_wdata = asUInt(T_189914)
+ node T_189915 = shr(mem_reg_wdata, 38)
+ node T_189916 = bits(mem_reg_wdata, 39, 38)
+ node T_189917 = eq(T_189915, UInt<1>(0))
+ node T_189918 = eq(T_189915, UInt<1>(1))
+ node T_189919 = or(T_189917, T_189918)
+ node T_189920 = neq(T_189916, UInt<1>(0))
+ node T_189921 = eq(T_189915, SInt<1>(-1))
+ node T_189922 = eq(T_189915, SInt<2>(-2))
+ node T_189923 = or(T_189921, T_189922)
+ node T_189924 = eq(T_189916, SInt<1>(-1))
+ node T_189925 = bit(T_189916, 0)
+ wire T_189926 : UInt<1>
+ T_189926 := T_189925
+ when T_189923 : T_189926 := T_189924
+ wire T_189927 : UInt<1>
+ T_189927 := T_189926
+ when T_189919 : T_189927 := T_189920
+ node T_189928 = bits(mem_reg_wdata, 38, 0)
+ node T_189929 = cat(T_189927, T_189928)
+ node T_189930 = asSInt(T_189929)
+ wire T_189931 : SInt
+ T_189931 := mem_br_target
+ when mem_ctrl.jalr : T_189931 := T_189930
+ node T_189932 = and(T_189931, SInt<2>(-2))
+ node mem_npc = asUInt(T_189932)
+ node T_189933 = neq(mem_npc, ex_reg_pc)
+ node T_189934 = eq(ex_reg_valid, UInt<1>(0))
+ node mem_wrong_npc = or(T_189933, T_189934)
+ node mem_npc_misaligned = bit(mem_npc, 1)
+ node T_189935 = and(mem_wrong_npc, mem_reg_valid)
+ node T_189936 = or(mem_ctrl.branch, mem_ctrl.jalr)
+ node T_189937 = or(T_189936, mem_ctrl.jal)
+ node mem_misprediction = and(T_189935, T_189937)
+ node T_189938 = or(mem_misprediction, mem_reg_flush_pipe)
+ node want_take_pc_mem = and(mem_reg_valid, T_189938)
+ node T_189939 = eq(mem_npc_misaligned, UInt<1>(0))
+ node T_189940 = and(want_take_pc_mem, T_189939)
+ take_pc_mem := T_189940
+ node T_189941 = eq(ctrl_killx, UInt<1>(0))
+ mem_reg_valid := T_189941
+ node T_189942 = eq(take_pc_mem_wb, UInt<1>(0))
+ node T_189943 = and(T_189942, replay_ex)
+ mem_reg_replay := T_189943
+ node T_189944 = eq(ctrl_killx, UInt<1>(0))
+ node T_189945 = and(T_189944, ex_xcpt)
+ mem_reg_xcpt := T_189945
+ node T_189946 = eq(take_pc_mem_wb, UInt<1>(0))
+ node T_189947 = and(T_189946, ex_reg_xcpt_interrupt)
+ mem_reg_xcpt_interrupt := T_189947
+ when ex_xcpt : mem_reg_cause := ex_cause
+
+ node T_189948 = or(ex_reg_valid, ex_reg_xcpt_interrupt)
+ when T_189948 :
+ mem_ctrl := ex_ctrl
+ mem_reg_btb_hit := ex_reg_btb_hit
+ when ex_reg_btb_hit : mem_reg_btb_resp := ex_reg_btb_resp
+ mem_reg_flush_pipe := ex_reg_flush_pipe
+ mem_reg_slow_bypass := ex_slow_bypass
+ mem_reg_inst := ex_reg_inst
+ mem_reg_pc := ex_reg_pc
+ mem_reg_wdata := alu.out
+
+
+ node T_189949 = or(ex_ctrl.mem__, ex_ctrl.rocc)
+ node T_189950 = and(ex_ctrl.rxs2, T_189949)
+ when T_189950 : mem_reg_rs2 := T_189660
+ node T_189951 = or(mem_reg_xcpt_interrupt, mem_reg_xcpt)
+ node T_189952 = and(want_take_pc_mem, mem_npc_misaligned)
+ node T_189953 = and(mem_reg_valid, mem_ctrl.mem__)
+ node T_189954 = and(T_189953, dmem.xcpt.ma.st)
+ node T_189955 = and(mem_reg_valid, mem_ctrl.mem__)
+ node T_189956 = and(T_189955, dmem.xcpt.ma.ld)
+ node T_189957 = and(mem_reg_valid, mem_ctrl.mem__)
+ node T_189958 = and(T_189957, dmem.xcpt.pf.st)
+ node T_189959 = and(mem_reg_valid, mem_ctrl.mem__)
+ node T_189960 = and(T_189959, dmem.xcpt.pf.ld)
+ node T_189961 = or(T_189951, T_189952)
+ node T_189962 = or(T_189961, T_189954)
+ node T_189963 = or(T_189962, T_189956)
+ node T_189964 = or(T_189963, T_189958)
+ node mem_xcpt = or(T_189964, T_189960)
+ wire T_189965 : UInt<3>
+ T_189965 := UInt<3>(5)
+ when T_189958 : T_189965 := UInt<3>(7)
+ wire T_189966 : UInt<3>
+ T_189966 := T_189965
+ when T_189956 : T_189966 := UInt<3>(4)
+ wire T_189967 : UInt<3>
+ T_189967 := T_189966
+ when T_189954 : T_189967 := UInt<3>(6)
+ wire T_189968 : UInt<3>
+ T_189968 := T_189967
+ when T_189952 : T_189968 := UInt<1>(0)
+ wire mem_cause : UInt<3>
+ mem_cause := T_189968
+ when T_189951 : mem_cause := mem_reg_cause
+ node T_189969 = and(mem_reg_valid, mem_ctrl.wxd)
+ node dcache_kill_mem = and(T_189969, dmem.replay_next.valid)
+ node T_189970 = and(mem_reg_valid, mem_ctrl.fp)
+ node fpu_kill_mem = and(T_189970, fpu.nack_mem)
+ node T_189971 = or(dcache_kill_mem, mem_reg_replay)
+ node replay_mem = or(T_189971, fpu_kill_mem)
+ node T_189972 = or(dcache_kill_mem, take_pc_wb)
+ node T_189973 = or(T_189972, mem_reg_xcpt)
+ node T_189974 = eq(mem_reg_valid, UInt<1>(0))
+ node killm_common = or(T_189973, T_189974)
+ node T_189975 = and(div.req.ready, div.req.valid)
+ reg T_189976 : UInt<1>
+ T_189976 := T_189975
+ node T_189977 = and(killm_common, T_189976)
+ div.kill := T_189977
+ node T_189978 = or(killm_common, mem_xcpt)
+ node ctrl_killm = or(T_189978, fpu_kill_mem)
+ node T_189979 = eq(ctrl_killm, UInt<1>(0))
+ wb_reg_valid := T_189979
+ node T_189980 = eq(take_pc_wb, UInt<1>(0))
+ node T_189981 = and(replay_mem, T_189980)
+ wb_reg_replay := T_189981
+ node T_189982 = eq(take_pc_wb, UInt<1>(0))
+ node T_189983 = and(mem_xcpt, T_189982)
+ wb_reg_xcpt := T_189983
+ when mem_xcpt : wb_reg_cause := mem_cause
+
+
+ node T_189984 = or(mem_reg_valid, mem_reg_replay)
+ node T_189985 = or(T_189984, mem_reg_xcpt_interrupt)
+ when T_189985 :
+ wb_ctrl := mem_ctrl
+ node T_189986 = and(mem_ctrl.fp, mem_ctrl.wxd)
+ wire T_189987 : UInt
+ T_189987 := mem_int_wdata
+ when T_189986 : T_189987 := fpu.toint_data
+ wb_reg_wdata := T_189987
+ when mem_ctrl.rocc : wb_reg_rs2 := mem_reg_rs2
+ wb_reg_inst := mem_reg_inst
+ wb_reg_pc := mem_reg_pc
+ node T_189988 = or(wb_ctrl.div, wb_dcache_miss)
+ node wb_set_sboard = or(T_189988, wb_ctrl.rocc)
+ node T_189989 = or(dmem.resp.bits.nack, wb_reg_replay)
+ node replay_wb_common = or(T_189989, csr.csr_replay)
+ node T_189990 = and(wb_reg_valid, wb_ctrl.rocc)
+ node T_189991 = eq(replay_wb_common, UInt<1>(0))
+ node wb_rocc_val = and(T_189990, T_189991)
+ node T_189992 = and(wb_reg_valid, wb_ctrl.rocc)
+ node T_189993 = eq(rocc.cmd.ready, UInt<1>(0))
+ node T_189994 = and(T_189992, T_189993)
+ node replay_wb = or(replay_wb_common, T_189994)
+ node wb_xcpt = or(wb_reg_xcpt, csr.csr_xcpt)
+ node T_189995 = or(replay_wb, wb_xcpt)
+ node T_189996 = or(T_189995, csr.eret)
+ take_pc_wb := T_189996
+ when wb_rocc_val :
+ node T_189997 = eq(rocc.cmd.ready, UInt<1>(0))
+ wb_reg_rocc_pending := T_189997
+ when wb_reg_xcpt : wb_reg_rocc_pending := UInt<1>(0)
+ node T_189998 = bit(dmem.resp.bits.tag, 0)
+ node T_189999 = bit(T_189998, 0)
+ node dmem_resp_xpu = eq(T_189999, UInt<1>(0))
+ node T_190000 = bit(dmem.resp.bits.tag, 0)
+ node dmem_resp_fpu = bit(T_190000, 0)
+ node dmem_resp_waddr = dshr(dmem.resp.bits.tag, UInt<1>(1))
+ node dmem_resp_valid = and(dmem.resp.valid, dmem.resp.bits.has_data)
+ node dmem_resp_replay = and(dmem.resp.bits.replay, dmem.resp.bits.has_data)
+ node T_190001 = and(wb_reg_valid, wb_ctrl.wxd)
+ node T_190002 = eq(T_190001, UInt<1>(0))
+ div.resp.ready := T_190002
+ wire ll_wdata : UInt<64>
+ ll_wdata := div.resp.bits.data
+ wire ll_waddr : UInt<5>
+ ll_waddr := div.resp.bits.tag
+ node T_190003 = and(div.resp.ready, div.resp.valid)
+ wire ll_wen : UInt<1>
+ ll_wen := T_190003
+
+ node T_190004 = and(dmem_resp_replay, dmem_resp_xpu)
+ when T_190004 :
+ div.resp.ready := UInt<1>(0)
+ ll_waddr := dmem_resp_waddr
+ ll_wen := UInt<1>(1)
+ node T_190005 = eq(replay_wb, UInt<1>(0))
+ node T_190006 = and(wb_reg_valid, T_190005)
+ node T_190007 = eq(csr.csr_xcpt, UInt<1>(0))
+ node wb_valid = and(T_190006, T_190007)
+ node wb_wen = and(wb_valid, wb_ctrl.wxd)
+ node rf_wen = or(wb_wen, ll_wen)
+ wire rf_waddr : UInt<5>
+ rf_waddr := wb_waddr
+ when ll_wen : rf_waddr := ll_waddr
+ node T_190008 = and(dmem_resp_valid, dmem_resp_xpu)
+ node T_190009 = neq(wb_ctrl.csr, UInt<3>(0))
+ wire T_190010 : UInt
+ T_190010 := wb_reg_wdata
+ when T_190009 : T_190010 := csr.rw.rdata
+ wire T_190011 : UInt
+ T_190011 := T_190010
+ when ll_wen : T_190011 := ll_wdata
+ wire rf_wdata : UInt
+ rf_wdata := T_190011
+ when T_190008 : rf_wdata := dmem.resp.bits.data_subword
+ when rf_wen :
+ node T_190012 = neq(rf_waddr, UInt<1>(0))
+ when T_190012 :
+ node T_190013 = not(rf_waddr)
+ accessor T_190014 = T_189576[T_190013]
+ T_190014 := rf_wdata
+
+ node T_190015 = eq(rf_waddr, id_raddr1)
+ when T_190015 : T_189577 := rf_wdata
+
+ node T_190016 = eq(rf_waddr, id_raddr2)
+ when T_190016 : T_189580 := rf_wdata
+ csr.exception := wb_reg_xcpt
+ csr.cause := wb_reg_cause
+ csr.retire := wb_valid
+ csr.host <> host
+ fpu.fcsr_rm := csr.fcsr_rm
+ csr.fcsr_flags := fpu.fcsr_flags
+ csr.rocc <> rocc
+ csr.pc := wb_reg_pc
+ csr.uarch_counters[0] := UInt<1>(0)
+ csr.uarch_counters[1] := UInt<1>(0)
+ csr.uarch_counters[2] := UInt<1>(0)
+ csr.uarch_counters[3] := UInt<1>(0)
+ csr.uarch_counters[4] := UInt<1>(0)
+ csr.uarch_counters[5] := UInt<1>(0)
+ csr.uarch_counters[6] := UInt<1>(0)
+ csr.uarch_counters[7] := UInt<1>(0)
+ csr.uarch_counters[8] := UInt<1>(0)
+ csr.uarch_counters[9] := UInt<1>(0)
+ csr.uarch_counters[10] := UInt<1>(0)
+ csr.uarch_counters[11] := UInt<1>(0)
+ csr.uarch_counters[12] := UInt<1>(0)
+ csr.uarch_counters[13] := UInt<1>(0)
+ csr.uarch_counters[14] := UInt<1>(0)
+ csr.uarch_counters[15] := UInt<1>(0)
+ ptw.ptbr := csr.ptbr
+ ptw.invalidate := csr.fatc
+ ptw.status := csr.status
+ node T_190017 = bits(wb_reg_inst, 31, 20)
+ csr.rw.addr := T_190017
+ wire T_190018 : UInt<3>
+ T_190018 := UInt<3>(0)
+ when wb_reg_valid : T_190018 := wb_ctrl.csr
+ csr.rw.cmd := T_190018
+ csr.rw.wdata := wb_reg_wdata
+ node T_190019 = neq(id_raddr1, UInt<1>(0))
+ node T_190020 = and(id_ctrl.rxs1, T_190019)
+ node T_190021 = neq(id_raddr2, UInt<1>(0))
+ node T_190022 = and(id_ctrl.rxs2, T_190021)
+ node T_190023 = neq(id_waddr, UInt<1>(0))
+ node T_190024 = and(id_ctrl.wxd, T_190023)
+ reg T_190025 : UInt<32>
+ onreset T_190025 := UInt<32>(0)
+ node T_190026 = dshl(UInt<1>(1), ll_waddr)
+ wire T_190027 : UInt<1>
+ T_190027 := UInt<1>(0)
+ when ll_wen : T_190027 := T_190026
+ node T_190028 = not(T_190027)
+ node T_190029 = and(T_190025, T_190028)
+ node T_190030 = or(UInt<1>(0), ll_wen)
+ when T_190030 : T_190025 := T_190029
+ node T_190031 = dshr(T_190029, id_raddr1)
+ node T_190032 = bit(T_190031, 0)
+ node T_190033 = and(T_190020, T_190032)
+ node T_190034 = dshr(T_190029, id_raddr2)
+ node T_190035 = bit(T_190034, 0)
+ node T_190036 = and(T_190022, T_190035)
+ node T_190037 = dshr(T_190029, id_waddr)
+ node T_190038 = bit(T_190037, 0)
+ node T_190039 = and(T_190024, T_190038)
+ node T_190040 = or(T_190033, T_190036)
+ node id_sboard_hazard = or(T_190040, T_190039)
+ node T_190041 = and(wb_set_sboard, wb_wen)
+ node T_190042 = dshl(UInt<1>(1), wb_waddr)
+ wire T_190043 : UInt<1>
+ T_190043 := UInt<1>(0)
+ when T_190041 : T_190043 := T_190042
+ node T_190044 = or(T_190029, T_190043)
+ node T_190045 = or(T_190030, T_190041)
+ when T_190045 : T_190025 := T_190044
+ node T_190046 = neq(ex_ctrl.csr, UInt<3>(0))
+ node T_190047 = or(T_190046, ex_ctrl.jalr)
+ node T_190048 = or(T_190047, ex_ctrl.mem__)
+ node T_190049 = or(T_190048, ex_ctrl.div)
+ node T_190050 = or(T_190049, ex_ctrl.fp)
+ node ex_cannot_bypass = or(T_190050, ex_ctrl.rocc)
+ node T_190051 = eq(id_raddr1, ex_waddr)
+ node T_190052 = and(T_190020, T_190051)
+ node T_190053 = eq(id_raddr2, ex_waddr)
+ node T_190054 = and(T_190022, T_190053)
+ node T_190055 = eq(id_waddr, ex_waddr)
+ node T_190056 = and(T_190024, T_190055)
+ node T_190057 = or(T_190052, T_190054)
+ node T_190058 = or(T_190057, T_190056)
+ node data_hazard_ex = and(ex_ctrl.wxd, T_190058)
+ node T_190059 = eq(id_raddr1, ex_waddr)
+ node T_190060 = and(fpu.dec.ren1, T_190059)
+ node T_190061 = eq(id_raddr2, ex_waddr)
+ node T_190062 = and(fpu.dec.ren2, T_190061)
+ node T_190063 = eq(id_raddr3, ex_waddr)
+ node T_190064 = and(fpu.dec.ren3, T_190063)
+ node T_190065 = eq(id_waddr, ex_waddr)
+ node T_190066 = and(fpu.dec.wen, T_190065)
+ node T_190067 = or(T_190060, T_190062)
+ node T_190068 = or(T_190067, T_190064)
+ node T_190069 = or(T_190068, T_190066)
+ node fp_data_hazard_ex = and(ex_ctrl.wfd, T_190069)
+ node T_190070 = and(data_hazard_ex, ex_cannot_bypass)
+ node T_190071 = or(T_190070, fp_data_hazard_ex)
+ node id_ex_hazard = and(ex_reg_valid, T_190071)
+ node mem_mem_cmd_bh = and(UInt<1>(1), mem_reg_slow_bypass)
+ node T_190072 = neq(mem_ctrl.csr, UInt<3>(0))
+ node T_190073 = and(mem_ctrl.mem__, mem_mem_cmd_bh)
+ node T_190074 = or(T_190072, T_190073)
+ node T_190075 = or(T_190074, mem_ctrl.div)
+ node T_190076 = or(T_190075, mem_ctrl.fp)
+ node mem_cannot_bypass = or(T_190076, mem_ctrl.rocc)
+ node T_190077 = eq(id_raddr1, mem_waddr)
+ node T_190078 = and(T_190020, T_190077)
+ node T_190079 = eq(id_raddr2, mem_waddr)
+ node T_190080 = and(T_190022, T_190079)
+ node T_190081 = eq(id_waddr, mem_waddr)
+ node T_190082 = and(T_190024, T_190081)
+ node T_190083 = or(T_190078, T_190080)
+ node T_190084 = or(T_190083, T_190082)
+ node data_hazard_mem = and(mem_ctrl.wxd, T_190084)
+ node T_190085 = eq(id_raddr1, mem_waddr)
+ node T_190086 = and(fpu.dec.ren1, T_190085)
+ node T_190087 = eq(id_raddr2, mem_waddr)
+ node T_190088 = and(fpu.dec.ren2, T_190087)
+ node T_190089 = eq(id_raddr3, mem_waddr)
+ node T_190090 = and(fpu.dec.ren3, T_190089)
+ node T_190091 = eq(id_waddr, mem_waddr)
+ node T_190092 = and(fpu.dec.wen, T_190091)
+ node T_190093 = or(T_190086, T_190088)
+ node T_190094 = or(T_190093, T_190090)
+ node T_190095 = or(T_190094, T_190092)
+ node fp_data_hazard_mem = and(mem_ctrl.wfd, T_190095)
+ node T_190096 = and(data_hazard_mem, mem_cannot_bypass)
+ node T_190097 = or(T_190096, fp_data_hazard_mem)
+ node id_mem_hazard = and(mem_reg_valid, T_190097)
+ node T_190098 = and(mem_reg_valid, data_hazard_mem)
+ node T_190099 = and(T_190098, mem_ctrl.mem__)
+ id_load_use := T_190099
+ node T_190100 = eq(id_raddr1, wb_waddr)
+ node T_190101 = and(T_190020, T_190100)
+ node T_190102 = eq(id_raddr2, wb_waddr)
+ node T_190103 = and(T_190022, T_190102)
+ node T_190104 = eq(id_waddr, wb_waddr)
+ node T_190105 = and(T_190024, T_190104)
+ node T_190106 = or(T_190101, T_190103)
+ node T_190107 = or(T_190106, T_190105)
+ node data_hazard_wb = and(wb_ctrl.wxd, T_190107)
+ node T_190108 = eq(id_raddr1, wb_waddr)
+ node T_190109 = and(fpu.dec.ren1, T_190108)
+ node T_190110 = eq(id_raddr2, wb_waddr)
+ node T_190111 = and(fpu.dec.ren2, T_190110)
+ node T_190112 = eq(id_raddr3, wb_waddr)
+ node T_190113 = and(fpu.dec.ren3, T_190112)
+ node T_190114 = eq(id_waddr, wb_waddr)
+ node T_190115 = and(fpu.dec.wen, T_190114)
+ node T_190116 = or(T_190109, T_190111)
+ node T_190117 = or(T_190116, T_190113)
+ node T_190118 = or(T_190117, T_190115)
+ node fp_data_hazard_wb = and(wb_ctrl.wfd, T_190118)
+ node T_190119 = and(data_hazard_wb, wb_set_sboard)
+ node T_190120 = or(T_190119, fp_data_hazard_wb)
+ node id_wb_hazard = and(wb_reg_valid, T_190120)
+ reg T_190121 : UInt<32>
+ onreset T_190121 := UInt<32>(0)
+ node T_190122 = and(wb_dcache_miss, wb_ctrl.wfd)
+ node T_190123 = or(T_190122, fpu.sboard_set)
+ node T_190124 = and(T_190123, wb_valid)
+ node T_190125 = dshl(UInt<1>(1), wb_waddr)
+ wire T_190126 : UInt<1>
+ T_190126 := UInt<1>(0)
+ when T_190124 : T_190126 := T_190125
+ node T_190127 = or(T_190121, T_190126)
+ node T_190128 = or(UInt<1>(0), T_190124)
+ when T_190128 : T_190121 := T_190127
+ node T_190129 = and(dmem_resp_replay, dmem_resp_fpu)
+ node T_190130 = dshl(UInt<1>(1), dmem_resp_waddr)
+ wire T_190131 : UInt<1>
+ T_190131 := UInt<1>(0)
+ when T_190129 : T_190131 := T_190130
+ node T_190132 = not(T_190131)
+ node T_190133 = and(T_190127, T_190132)
+ node T_190134 = or(T_190128, T_190129)
+ when T_190134 : T_190121 := T_190133
+ node T_190135 = dshl(UInt<1>(1), fpu.sboard_clra)
+ wire T_190136 : UInt<1>
+ T_190136 := UInt<1>(0)
+ when fpu.sboard_clr : T_190136 := T_190135
+ node T_190137 = not(T_190136)
+ node T_190138 = and(T_190133, T_190137)
+ node T_190139 = or(T_190134, fpu.sboard_clr)
+ when T_190139 : T_190121 := T_190138
+ node T_190140 = eq(fpu.fcsr_rdy, UInt<1>(0))
+ node T_190141 = and(id_csr_en, T_190140)
+ node T_190142 = dshr(T_190121, id_raddr1)
+ node T_190143 = bit(T_190142, 0)
+ node T_190144 = and(fpu.dec.ren1, T_190143)
+ node T_190145 = dshr(T_190121, id_raddr2)
+ node T_190146 = bit(T_190145, 0)
+ node T_190147 = and(fpu.dec.ren2, T_190146)
+ node T_190148 = dshr(T_190121, id_raddr3)
+ node T_190149 = bit(T_190148, 0)
+ node T_190150 = and(fpu.dec.ren3, T_190149)
+ node T_190151 = dshr(T_190121, id_waddr)
+ node T_190152 = bit(T_190151, 0)
+ node T_190153 = and(fpu.dec.wen, T_190152)
+ node T_190154 = or(T_190144, T_190147)
+ node T_190155 = or(T_190154, T_190150)
+ node T_190156 = or(T_190155, T_190153)
+ node id_stall_fpu = or(T_190141, T_190156)
+ node T_190157 = or(id_ex_hazard, id_mem_hazard)
+ node T_190158 = or(T_190157, id_wb_hazard)
+ node T_190159 = or(T_190158, id_sboard_hazard)
+ node T_190160 = and(id_ctrl.fp, id_stall_fpu)
+ node T_190161 = or(T_190159, T_190160)
+ node T_190162 = eq(dmem.req.ready, UInt<1>(0))
+ node T_190163 = and(id_ctrl.mem__, T_190162)
+ node T_190164 = or(T_190161, T_190163)
+ node T_190165 = and(UInt<1>(0), wb_reg_rocc_pending)
+ node T_190166 = and(T_190165, id_ctrl.rocc)
+ node T_190167 = eq(rocc.cmd.ready, UInt<1>(0))
+ node T_190168 = and(T_190166, T_190167)
+ node T_190169 = or(T_190164, T_190168)
+ node T_190170 = or(T_190169, id_do_fence)
+ node ctrl_stalld = or(T_190170, csr.csr_stall)
+ node T_190171 = eq(imem.resp.valid, UInt<1>(0))
+ node T_190172 = or(T_190171, take_pc_mem_wb)
+ node T_190173 = or(T_190172, ctrl_stalld)
+ node T_190174 = or(T_190173, csr.interrupt)
+ ctrl_killd := T_190174
+ imem.req.valid := take_pc_mem_wb
+ node T_190175 = or(wb_xcpt, csr.eret)
+ wire T_190176 : UInt
+ T_190176 := mem_npc
+ when replay_wb : T_190176 := wb_reg_pc
+ wire T_190177 : UInt
+ T_190177 := T_190176
+ when T_190175 : T_190177 := csr.evec
+ imem.req.bits.pc := T_190177
+ node T_190178 = and(wb_reg_valid, wb_ctrl.fence_i)
+ imem.invalidate := T_190178
+ node T_190179 = eq(ctrl_stalld, UInt<1>(0))
+ node T_190180 = or(T_190179, csr.interrupt)
+ imem.resp.ready := T_190180
+ node T_190181 = eq(mem_npc_misaligned, UInt<1>(0))
+ node T_190182 = and(mem_reg_valid, T_190181)
+ node T_190183 = and(T_190182, mem_wrong_npc)
+ node T_190184 = and(mem_ctrl.branch, mem_br_taken)
+ node T_190185 = or(T_190184, mem_ctrl.jalr)
+ node T_190186 = or(T_190185, mem_ctrl.jal)
+ node T_190187 = and(T_190183, T_190186)
+ node T_190188 = eq(take_pc_wb, UInt<1>(0))
+ node T_190189 = and(T_190187, T_190188)
+ imem.btb_update.valid := T_190189
+ node T_190190 = or(mem_ctrl.jal, mem_ctrl.jalr)
+ imem.btb_update.bits.isJump := T_190190
+ node T_190191 = bits(mem_reg_inst, 19, 15)
+ node T_190192 = and(T_190191, UInt<5>(25))
+ node T_190193 = eq(UInt<1>(1), T_190192)
+ node T_190194 = and(mem_ctrl.jalr, T_190193)
+ imem.btb_update.bits.isReturn := T_190194
+ imem.btb_update.bits.pc := mem_reg_pc
+ imem.btb_update.bits.target := imem.req.bits.pc
+ imem.btb_update.bits.br_pc := mem_reg_pc
+ imem.btb_update.bits.prediction.valid := mem_reg_btb_hit
+ imem.btb_update.bits.prediction.bits := mem_reg_btb_resp
+ node T_190195 = and(mem_reg_valid, mem_ctrl.branch)
+ node T_190196 = eq(take_pc_wb, UInt<1>(0))
+ node T_190197 = and(T_190195, T_190196)
+ imem.bht_update.valid := T_190197
+ imem.bht_update.bits.pc := mem_reg_pc
+ imem.bht_update.bits.taken := mem_br_taken
+ imem.bht_update.bits.mispredict := mem_wrong_npc
+ imem.bht_update.bits.prediction := imem.btb_update.bits.prediction
+ node T_190198 = and(mem_reg_valid, imem.btb_update.bits.isJump)
+ node T_190199 = eq(mem_npc_misaligned, UInt<1>(0))
+ node T_190200 = and(T_190198, T_190199)
+ node T_190201 = eq(take_pc_wb, UInt<1>(0))
+ node T_190202 = and(T_190200, T_190201)
+ imem.ras_update.valid := T_190202
+ imem.ras_update.bits.returnAddr := mem_int_wdata
+ node T_190203 = bit(mem_waddr, 0)
+ node T_190204 = and(mem_ctrl.wxd, T_190203)
+ imem.ras_update.bits.isCall := T_190204
+ imem.ras_update.bits.isReturn := imem.btb_update.bits.isReturn
+ imem.ras_update.bits.prediction := imem.btb_update.bits.prediction
+ node T_190205 = eq(ctrl_killd, UInt<1>(0))
+ node T_190206 = and(T_190205, id_ctrl.fp)
+ fpu.valid := T_190206
+ fpu.killx := ctrl_killx
+ fpu.killm := killm_common
+ fpu.inst__ := imem.resp.bits.data[0]
+ fpu.fromint_data := T_189657
+ node T_190207 = and(dmem_resp_valid, dmem_resp_fpu)
+ fpu.dmem_resp_val := T_190207
+ fpu.dmem_resp_data := dmem.resp.bits.data
+ fpu.dmem_resp_type := dmem.resp.bits.typ
+ fpu.dmem_resp_tag := dmem_resp_waddr
+ node T_190208 = and(ex_reg_valid, ex_ctrl.mem__)
+ dmem.req.valid := T_190208
+ node T_190209 = or(killm_common, mem_xcpt)
+ dmem.req.bits.kill := T_190209
+ dmem.req.bits.cmd := ex_ctrl.mem_cmd
+ dmem.req.bits.typ := ex_ctrl.mem_type
+ dmem.req.bits.phys := UInt<1>(0)
+ node T_190210 = shr(T_189657, 38)
+ node T_190211 = bits(alu.adder_out, 39, 38)
+ node T_190212 = eq(T_190210, UInt<1>(0))
+ node T_190213 = eq(T_190210, UInt<1>(1))
+ node T_190214 = or(T_190212, T_190213)
+ node T_190215 = neq(T_190211, UInt<1>(0))
+ node T_190216 = eq(T_190210, SInt<1>(-1))
+ node T_190217 = eq(T_190210, SInt<2>(-2))
+ node T_190218 = or(T_190216, T_190217)
+ node T_190219 = eq(T_190211, SInt<1>(-1))
+ node T_190220 = bit(T_190211, 0)
+ wire T_190221 : UInt<1>
+ T_190221 := T_190220
+ when T_190218 : T_190221 := T_190219
+ wire T_190222 : UInt<1>
+ T_190222 := T_190221
+ when T_190214 : T_190222 := T_190215
+ node T_190223 = bits(alu.adder_out, 38, 0)
+ node T_190224 = cat(T_190222, T_190223)
+ dmem.req.bits.addr := T_190224
+ node T_190225 = cat(ex_waddr, ex_ctrl.fp)
+ dmem.req.bits.tag := T_190225
+ wire T_190226 : UInt
+ T_190226 := mem_reg_rs2
+ when mem_ctrl.fp : T_190226 := fpu.store_data
+ dmem.req.bits.data := T_190226
+ dmem.invalidate_lr := wb_xcpt
+ rocc.cmd.valid := wb_rocc_val
+ node T_190227 = eq(csr.status.xs, UInt<1>(0))
+ node T_190228 = eq(T_190227, UInt<1>(0))
+ node T_190229 = and(wb_xcpt, T_190228)
+ rocc.exception := T_190229
+ node T_190230 = eq(csr.status.prv, UInt<1>(0))
+ node T_190231 = eq(T_190230, UInt<1>(0))
+ rocc.s := T_190231
+ wire T_190232 : {funct : UInt<7>, rs2 : UInt<5>, rs1 : UInt<5>, xd : UInt<1>, xs1 : UInt<1>, xs2 : UInt<1>, rd : UInt<5>, opcode : UInt<7>}
+ node T_190233 = bits(wb_reg_inst, 6, 0)
+ T_190232.opcode := T_190233
+ node T_190234 = bits(wb_reg_inst, 11, 7)
+ T_190232.rd := T_190234
+ node T_190235 = bits(wb_reg_inst, 12, 12)
+ T_190232.xs2 := T_190235
+ node T_190236 = bits(wb_reg_inst, 13, 13)
+ T_190232.xs1 := T_190236
+ node T_190237 = bits(wb_reg_inst, 14, 14)
+ T_190232.xd := T_190237
+ node T_190238 = bits(wb_reg_inst, 19, 15)
+ T_190232.rs1 := T_190238
+ node T_190239 = bits(wb_reg_inst, 24, 20)
+ T_190232.rs2 := T_190239
+ node T_190240 = bits(wb_reg_inst, 31, 25)
+ T_190232.funct := T_190240
+ rocc.cmd.bits.inst__ := T_190232
+ rocc.cmd.bits.rs1 := wb_reg_wdata
+ rocc.cmd.bits.rs2 := wb_reg_rs2
+ node T_190241 = bits(csr.time, 32, 0)
+ wire T_190242 : UInt<1>
+ T_190242 := UInt<1>(0)
+ when rf_wen : T_190242 := rf_waddr
+ node T_190243 = bits(wb_reg_inst, 19, 15)
+ reg T_190244 : UInt
+ T_190244 := T_189657
+ reg T_190245 : UInt
+ T_190245 := T_190244
+ node T_190246 = bits(wb_reg_inst, 24, 20)
+ reg T_190247 : UInt
+ T_190247 := T_189660
+ reg T_190248 : UInt
+ T_190248 := T_190247
+ module HellaCacheArbiter :
+ input requestor : {req : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr : UInt<40>, tag : UInt<8>, cmd : UInt<5>, typ : UInt<3>, kill : UInt<1>, phys : UInt<1>, data : UInt<64>}}, flip resp : {valid : UInt<1>, bits : {addr : UInt<40>, tag : UInt<8>, cmd : UInt<5>, typ : UInt<3>, data : UInt<64>, nack : UInt<1>, replay : UInt<1>, has_data : UInt<1>, data_subword : UInt<64>, store_data : UInt<64>}}, flip replay_next : {valid : UInt<1>, bits : UInt<8>}, flip xcpt : {ma : {ld : UInt<1>, st : UInt<1>}, pf : {ld : UInt<1>, st : UInt<1>}}, invalidate_lr : UInt<1>, flip ordered : UInt<1>}[2]
+ output mem__ : {req : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr : UInt<40>, tag : UInt<8>, cmd : UInt<5>, typ : UInt<3>, kill : UInt<1>, phys : UInt<1>, data : UInt<64>}}, flip resp : {valid : UInt<1>, bits : {addr : UInt<40>, tag : UInt<8>, cmd : UInt<5>, typ : UInt<3>, data : UInt<64>, nack : UInt<1>, replay : UInt<1>, has_data : UInt<1>, data_subword : UInt<64>, store_data : UInt<64>}}, flip replay_next : {valid : UInt<1>, bits : UInt<8>}, flip xcpt : {ma : {ld : UInt<1>, st : UInt<1>}, pf : {ld : UInt<1>, st : UInt<1>}}, invalidate_lr : UInt<1>, flip ordered : UInt<1>}
+
+ wire requestor : {req : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr : UInt<40>, tag : UInt<8>, cmd : UInt<5>, typ : UInt<3>, kill : UInt<1>, phys : UInt<1>, data : UInt<64>}}, flip resp : {valid : UInt<1>, bits : {addr : UInt<40>, tag : UInt<8>, cmd : UInt<5>, typ : UInt<3>, data : UInt<64>, nack : UInt<1>, replay : UInt<1>, has_data : UInt<1>, data_subword : UInt<64>, store_data : UInt<64>}}, flip replay_next : {valid : UInt<1>, bits : UInt<8>}, flip xcpt : {ma : {ld : UInt<1>, st : UInt<1>}, pf : {ld : UInt<1>, st : UInt<1>}}, invalidate_lr : UInt<1>, flip ordered : UInt<1>}[2]
+ requestor[0] := T_190249
+ requestor[1] := T_190250
+ reg T_190251 : UInt<1>
+ T_190251 := requestor[0].req.valid
+ reg T_190252 : UInt<1>
+ T_190252 := requestor[1].req.valid
+ node T_190253 = or(requestor[0].req.valid, requestor[1].req.valid)
+ mem__.req.valid := T_190253
+ requestor[0].req.ready := mem__.req.ready
+ node T_190254 = eq(requestor[0].req.valid, UInt<1>(0))
+ node T_190255 = and(requestor[0].req.ready, T_190254)
+ requestor[1].req.ready := T_190255
+ mem__.req.bits := requestor[1].req.bits
+ node T_190256 = cat(requestor[1].req.bits.tag, UInt<1>(1))
+ mem__.req.bits.tag := T_190256
+ when requestor[0].req.valid :
+ mem__.req.bits.cmd := requestor[0].req.bits.cmd
+ mem__.req.bits.typ := requestor[0].req.bits.typ
+ mem__.req.bits.addr := requestor[0].req.bits.addr
+ mem__.req.bits.phys := requestor[0].req.bits.phys
+ node T_190257 = cat(requestor[0].req.bits.tag, UInt<1>(0))
+ mem__.req.bits.tag := T_190257
+ when T_190251 :
+ mem__.req.bits.kill := requestor[0].req.bits.kill
+ mem__.req.bits.data := requestor[0].req.bits.data
+ node T_190258 = bits(mem__.resp.bits.tag, 0, 0)
+ node T_190259 = eq(T_190258, UInt<1>(0))
+ node T_190260 = and(mem__.resp.valid, T_190259)
+ requestor[0].resp.valid := T_190260
+ requestor[0].xcpt := mem__.xcpt
+ requestor[0].ordered := mem__.ordered
+ requestor[0].resp.bits := mem__.resp.bits
+ node T_190261 = dshr(mem__.resp.bits.tag, UInt<1>(1))
+ requestor[0].resp.bits.tag := T_190261
+ node T_190262 = and(mem__.resp.bits.nack, T_190259)
+ requestor[0].resp.bits.nack := T_190262
+ node T_190263 = and(mem__.resp.bits.replay, T_190259)
+ requestor[0].resp.bits.replay := T_190263
+ node T_190264 = bits(mem__.replay_next.bits, 0, 0)
+ node T_190265 = eq(T_190264, UInt<1>(0))
+ node T_190266 = and(mem__.replay_next.valid, T_190265)
+ requestor[0].replay_next.valid := T_190266
+ node T_190267 = dshr(mem__.replay_next.bits, UInt<1>(1))
+ requestor[0].replay_next.bits := T_190267
+ node T_190268 = bits(mem__.resp.bits.tag, 0, 0)
+ node T_190269 = eq(T_190268, UInt<1>(1))
+ node T_190270 = and(mem__.resp.valid, T_190269)
+ requestor[1].resp.valid := T_190270
+ requestor[1].xcpt := mem__.xcpt
+ requestor[1].ordered := mem__.ordered
+ requestor[1].resp.bits := mem__.resp.bits
+ node T_190271 = dshr(mem__.resp.bits.tag, UInt<1>(1))
+ requestor[1].resp.bits.tag := T_190271
+ node T_190272 = and(mem__.resp.bits.nack, T_190269)
+ requestor[1].resp.bits.nack := T_190272
+ node T_190273 = and(mem__.resp.bits.replay, T_190269)
+ requestor[1].resp.bits.replay := T_190273
+ node T_190274 = bits(mem__.replay_next.bits, 0, 0)
+ node T_190275 = eq(T_190274, UInt<1>(1))
+ node T_190276 = and(mem__.replay_next.valid, T_190275)
+ requestor[1].replay_next.valid := T_190276
+ node T_190277 = dshr(mem__.replay_next.bits, UInt<1>(1))
+ requestor[1].replay_next.bits := T_190277
+ module FPUDecoder :
+ input inst__ : UInt<32>
+ output sigs : {cmd : UInt<5>, ldst : UInt<1>, wen : UInt<1>, ren1 : UInt<1>, ren2 : UInt<1>, ren3 : UInt<1>, swap12 : UInt<1>, swap23 : UInt<1>, single : UInt<1>, fromint : UInt<1>, toint : UInt<1>, fastpipe : UInt<1>, fma : UInt<1>, div : UInt<1>, sqrt : UInt<1>, round : UInt<1>, wflags : UInt<1>}
+
+ node T_190278 = and(inst__, UInt<32>(4))
+ node T_190279 = eq(T_190278, UInt<32>(4))
+ node T_190280 = and(inst__, UInt<32>(134217744))
+ node T_190281 = eq(T_190280, UInt<32>(134217744))
+ node T_190282 = or(UInt<1>(0), T_190279)
+ node T_190283 = or(T_190282, T_190281)
+ node T_190284 = and(inst__, UInt<32>(8))
+ node T_190285 = eq(T_190284, UInt<32>(8))
+ node T_190286 = and(inst__, UInt<32>(268435472))
+ node T_190287 = eq(T_190286, UInt<32>(268435472))
+ node T_190288 = or(UInt<1>(0), T_190285)
+ node T_190289 = or(T_190288, T_190287)
+ node T_190290 = and(inst__, UInt<32>(64))
+ node T_190291 = eq(T_190290, UInt<32>(0))
+ node T_190292 = and(inst__, UInt<32>(536870912))
+ node T_190293 = eq(T_190292, UInt<32>(536870912))
+ node T_190294 = or(UInt<1>(0), T_190291)
+ node T_190295 = or(T_190294, T_190293)
+ node T_190296 = and(inst__, UInt<32>(1073741824))
+ node T_190297 = eq(T_190296, UInt<32>(1073741824))
+ node T_190298 = or(UInt<1>(0), T_190291)
+ node T_190299 = or(T_190298, T_190297)
+ node T_190300 = and(inst__, UInt<32>(16))
+ node T_190301 = eq(T_190300, UInt<32>(0))
+ node T_190302 = or(UInt<1>(0), T_190301)
+ node T_190303 = cat(T_190289, T_190283)
+ node T_190304 = cat(T_190295, T_190303)
+ node T_190305 = cat(T_190299, T_190304)
+ node T_190306 = cat(T_190302, T_190305)
+ node T_190307 = or(UInt<1>(0), T_190291)
+ node T_190308 = and(inst__, UInt<32>(2147483680))
+ node T_190309 = eq(T_190308, UInt<32>(0))
+ node T_190310 = and(inst__, UInt<32>(48))
+ node T_190311 = eq(T_190310, UInt<32>(0))
+ node T_190312 = and(inst__, UInt<32>(268435488))
+ node T_190313 = eq(T_190312, UInt<32>(268435456))
+ node T_190314 = or(UInt<1>(0), T_190309)
+ node T_190315 = or(T_190314, T_190311)
+ node T_190316 = or(T_190315, T_190313)
+ node T_190317 = and(inst__, UInt<32>(2147483652))
+ node T_190318 = eq(T_190317, UInt<32>(0))
+ node T_190319 = and(inst__, UInt<32>(268435460))
+ node T_190320 = eq(T_190319, UInt<32>(0))
+ node T_190321 = and(inst__, UInt<32>(80))
+ node T_190322 = eq(T_190321, UInt<32>(64))
+ node T_190323 = or(UInt<1>(0), T_190318)
+ node T_190324 = or(T_190323, T_190320)
+ node T_190325 = or(T_190324, T_190322)
+ node T_190326 = and(inst__, UInt<32>(1073741828))
+ node T_190327 = eq(T_190326, UInt<32>(0))
+ node T_190328 = and(inst__, UInt<32>(32))
+ node T_190329 = eq(T_190328, UInt<32>(32))
+ node T_190330 = or(UInt<1>(0), T_190327)
+ node T_190331 = or(T_190330, T_190329)
+ node T_190332 = or(T_190331, T_190322)
+ node T_190333 = or(UInt<1>(0), T_190322)
+ node T_190334 = and(inst__, UInt<32>(1342177296))
+ node T_190335 = eq(T_190334, UInt<32>(1342177296))
+ node T_190336 = or(UInt<1>(0), T_190291)
+ node T_190337 = or(T_190336, T_190335)
+ node T_190338 = and(inst__, UInt<32>(805306384))
+ node T_190339 = eq(T_190338, UInt<32>(16))
+ node T_190340 = or(UInt<1>(0), T_190339)
+ node T_190341 = and(inst__, UInt<32>(4160))
+ node T_190342 = eq(T_190341, UInt<32>(0))
+ node T_190343 = and(inst__, UInt<32>(33554496))
+ node T_190344 = eq(T_190343, UInt<32>(64))
+ node T_190345 = or(UInt<1>(0), T_190342)
+ node T_190346 = or(T_190345, T_190344)
+ node T_190347 = and(inst__, UInt<32>(2415919120))
+ node T_190348 = eq(T_190347, UInt<32>(2415919120))
+ node T_190349 = or(UInt<1>(0), T_190348)
+ node T_190350 = and(inst__, UInt<32>(2415919120))
+ node T_190351 = eq(T_190350, UInt<32>(2147483664))
+ node T_190352 = or(UInt<1>(0), T_190329)
+ node T_190353 = or(T_190352, T_190351)
+ node T_190354 = and(inst__, UInt<32>(2684354576))
+ node T_190355 = eq(T_190354, UInt<32>(536870928))
+ node T_190356 = and(inst__, UInt<32>(3489660944))
+ node T_190357 = eq(T_190356, UInt<32>(1073741840))
+ node T_190358 = or(UInt<1>(0), T_190355)
+ node T_190359 = or(T_190358, T_190357)
+ node T_190360 = and(inst__, UInt<32>(1879048196))
+ node T_190361 = eq(T_190360, UInt<32>(0))
+ node T_190362 = and(inst__, UInt<32>(1744830468))
+ node T_190363 = eq(T_190362, UInt<32>(0))
+ node T_190364 = or(UInt<1>(0), T_190361)
+ node T_190365 = or(T_190364, T_190363)
+ node T_190366 = or(T_190365, T_190322)
+ node T_190367 = and(inst__, UInt<32>(1476395024))
+ node T_190368 = eq(T_190367, UInt<32>(402653200))
+ node T_190369 = or(UInt<1>(0), T_190368)
+ node T_190370 = and(inst__, UInt<32>(3489660944))
+ node T_190371 = eq(T_190370, UInt<32>(1342177296))
+ node T_190372 = or(UInt<1>(0), T_190371)
+ node T_190373 = and(inst__, UInt<32>(536870916))
+ node T_190374 = eq(T_190373, UInt<32>(0))
+ node T_190375 = and(inst__, UInt<32>(1073750016))
+ node T_190376 = eq(T_190375, UInt<32>(1073741824))
+ node T_190377 = or(UInt<1>(0), T_190374)
+ node T_190378 = or(T_190377, T_190322)
+ node T_190379 = or(T_190378, T_190376)
+ node T_190380 = and(inst__, UInt<32>(134225920))
+ node T_190381 = eq(T_190380, UInt<32>(134217728))
+ node T_190382 = and(inst__, UInt<32>(3221225476))
+ node T_190383 = eq(T_190382, UInt<32>(2147483648))
+ node T_190384 = or(UInt<1>(0), T_190374)
+ node T_190385 = or(T_190384, T_190322)
+ node T_190386 = or(T_190385, T_190381)
+ node T_190387 = or(T_190386, T_190383)
+ wire T_190388 : UInt<5>[17]
+ T_190388[0] := sigs.cmd
+ T_190388[1] := sigs.ldst
+ T_190388[2] := sigs.wen
+ T_190388[3] := sigs.ren1
+ T_190388[4] := sigs.ren2
+ T_190388[5] := sigs.ren3
+ T_190388[6] := sigs.swap12
+ T_190388[7] := sigs.swap23
+ T_190388[8] := sigs.single
+ T_190388[9] := sigs.fromint
+ T_190388[10] := sigs.toint
+ T_190388[11] := sigs.fastpipe
+ T_190388[12] := sigs.fma
+ T_190388[13] := sigs.div
+ T_190388[14] := sigs.sqrt
+ T_190388[15] := sigs.round
+ T_190388[16] := sigs.wflags
+ T_190388[0] := T_190306
+ T_190388[1] := T_190307
+ T_190388[2] := T_190316
+ T_190388[3] := T_190325
+ T_190388[4] := T_190332
+ T_190388[5] := T_190333
+ T_190388[6] := T_190337
+ T_190388[7] := T_190340
+ T_190388[8] := T_190346
+ T_190388[9] := T_190349
+ T_190388[10] := T_190353
+ T_190388[11] := T_190359
+ T_190388[12] := T_190366
+ T_190388[13] := T_190369
+ T_190388[14] := T_190372
+ T_190388[15] := T_190379
+ T_190388[16] := T_190387
+ module mulAddSubRecodedFloatN :
+ input op : UInt<2>
+ input a : UInt<33>
+ input b : UInt<33>
+ input c : UInt<33>
+ input roundingMode : UInt<2>
+ output out : UInt<33>
+ output exceptionFlags : UInt<5>
+
+ node signA = bit(a, 32)
+ node expA = bits(a, 31, 23)
+ node fractA = bits(a, 22, 0)
+ node T_190389 = bits(expA, 8, 6)
+ node isZeroA = eq(T_190389, UInt<1>(0))
+ node T_190390 = bits(expA, 8, 7)
+ node isSpecialA = eq(T_190390, UInt<2>(3))
+ node T_190391 = bit(expA, 6)
+ node T_190392 = eq(T_190391, UInt<1>(0))
+ node isInfA = and(isSpecialA, T_190392)
+ node T_190393 = bit(expA, 6)
+ node isNaNA = and(isSpecialA, T_190393)
+ node T_190394 = bit(fractA, 22)
+ node T_190395 = eq(T_190394, UInt<1>(0))
+ node isSigNaNA = and(isNaNA, T_190395)
+ node T_190396 = eq(isZeroA, UInt<1>(0))
+ node sigA = cat(T_190396, fractA)
+ node signB = bit(b, 32)
+ node expB = bits(b, 31, 23)
+ node fractB = bits(b, 22, 0)
+ node T_190397 = bits(expB, 8, 6)
+ node isZeroB = eq(T_190397, UInt<1>(0))
+ node T_190398 = bits(expB, 8, 7)
+ node isSpecialB = eq(T_190398, UInt<2>(3))
+ node T_190399 = bit(expB, 6)
+ node T_190400 = eq(T_190399, UInt<1>(0))
+ node isInfB = and(isSpecialB, T_190400)
+ node T_190401 = bit(expB, 6)
+ node isNaNB = and(isSpecialB, T_190401)
+ node T_190402 = bit(fractB, 22)
+ node T_190403 = eq(T_190402, UInt<1>(0))
+ node isSigNaNB = and(isNaNB, T_190403)
+ node T_190404 = eq(isZeroB, UInt<1>(0))
+ node sigB = cat(T_190404, fractB)
+ node T_190405 = bit(c, 32)
+ node T_190406 = bit(op, 0)
+ node opSignC = xor(T_190405, T_190406)
+ node expC = bits(c, 31, 23)
+ node fractC = bits(c, 22, 0)
+ node T_190407 = bits(expC, 8, 6)
+ node isZeroC = eq(T_190407, UInt<1>(0))
+ node T_190408 = bits(expC, 8, 7)
+ node isSpecialC = eq(T_190408, UInt<2>(3))
+ node T_190409 = bit(expC, 6)
+ node T_190410 = eq(T_190409, UInt<1>(0))
+ node isInfC = and(isSpecialC, T_190410)
+ node T_190411 = bit(expC, 6)
+ node isNaNC = and(isSpecialC, T_190411)
+ node T_190412 = bit(fractC, 22)
+ node T_190413 = eq(T_190412, UInt<1>(0))
+ node isSigNaNC = and(isNaNC, T_190413)
+ node T_190414 = eq(isZeroC, UInt<1>(0))
+ node sigC = cat(T_190414, fractC)
+ node roundingMode_nearest_even = eq(roundingMode, UInt<2>(0))
+ node roundingMode_minMag = eq(roundingMode, UInt<2>(1))
+ node roundingMode_min = eq(roundingMode, UInt<2>(2))
+ node roundingMode_max = eq(roundingMode, UInt<2>(3))
+ node T_190415 = xor(signA, signB)
+ node T_190416 = bit(op, 1)
+ node signProd = xor(T_190415, T_190416)
+ node isZeroProd = or(isZeroA, isZeroB)
+ node T_190417 = bit(expB, 8)
+ node T_190418 = eq(T_190417, UInt<1>(0))
+ node T_190419 = subw(UInt<3>(0), UInt<2>(3))
+ node T_190420 = bits(expB, 7, 0)
+ node T_190421 = cat(T_190419, T_190420)
+ node T_190422 = addw(T_190421, expA)
+ node sExpAlignedProd = addw(T_190422, UInt<5>(27))
+ node doSubMags = xor(signProd, opSignC)
+ node sNatCAlignDist = subw(sExpAlignedProd, expC)
+ node T_190423 = bit(sNatCAlignDist, 10)
+ node CAlignDist_floor = or(isZeroProd, T_190423)
+ node T_190424 = bits(sNatCAlignDist, 9, 0)
+ node T_190425 = eq(T_190424, UInt<1>(0))
+ node CAlignDist_0 = or(CAlignDist_floor, T_190425)
+ node T_190426 = eq(isZeroC, UInt<1>(0))
+ node T_190427 = bits(sNatCAlignDist, 9, 0)
+ node T_190428 = lt(T_190427, UInt<5>(25))
+ node T_190429 = or(CAlignDist_floor, T_190428)
+ node isCDominant = and(T_190426, T_190429)
+ node T_190430 = bits(sNatCAlignDist, 9, 0)
+ node T_190431 = lt(T_190430, UInt<7>(74))
+ wire T_190432 : UInt<7>
+ T_190432 := UInt<7>(74)
+ when T_190431 : T_190432 := sNatCAlignDist
+ wire T_190433 : UInt<7>
+ T_190433 := T_190432
+ when CAlignDist_floor : T_190433 := UInt<1>(0)
+ node CAlignDist = bits(T_190433, 6, 0)
+ wire sExpSum : UInt<11>
+ sExpSum := sExpAlignedProd
+ when CAlignDist_floor : sExpSum := expC
+ node T_190434 = dshr(SInt<129>(-340282366920938463463374607431768211456), CAlignDist)
+ node T_190435 = bits(T_190434, 77, 54)
+ node T_190436 = bits(T_190435, 15, 0)
+ node T_190437 = dshl(UInt<8>(255), UInt<4>(8))
+ node T_190438 = xor(UInt<16>(65535), T_190437)
+ node T_190439 = dshr(T_190436, UInt<4>(8))
+ node T_190440 = and(T_190439, T_190438)
+ node T_190441 = bits(T_190436, 7, 0)
+ node T_190442 = dshl(T_190441, UInt<4>(8))
+ node T_190443 = not(T_190438)
+ node T_190444 = and(T_190442, T_190443)
+ node T_190445 = or(T_190440, T_190444)
+ node T_190446 = bits(T_190438, 11, 0)
+ node T_190447 = dshl(T_190446, UInt<3>(4))
+ node T_190448 = xor(T_190438, T_190447)
+ node T_190449 = dshr(T_190445, UInt<3>(4))
+ node T_190450 = and(T_190449, T_190448)
+ node T_190451 = bits(T_190445, 11, 0)
+ node T_190452 = dshl(T_190451, UInt<3>(4))
+ node T_190453 = not(T_190448)
+ node T_190454 = and(T_190452, T_190453)
+ node T_190455 = or(T_190450, T_190454)
+ node T_190456 = bits(T_190448, 13, 0)
+ node T_190457 = dshl(T_190456, UInt<2>(2))
+ node T_190458 = xor(T_190448, T_190457)
+ node T_190459 = dshr(T_190455, UInt<2>(2))
+ node T_190460 = and(T_190459, T_190458)
+ node T_190461 = bits(T_190455, 13, 0)
+ node T_190462 = dshl(T_190461, UInt<2>(2))
+ node T_190463 = not(T_190458)
+ node T_190464 = and(T_190462, T_190463)
+ node T_190465 = or(T_190460, T_190464)
+ node T_190466 = bits(T_190458, 14, 0)
+ node T_190467 = dshl(T_190466, UInt<1>(1))
+ node T_190468 = xor(T_190458, T_190467)
+ node T_190469 = dshr(T_190465, UInt<1>(1))
+ node T_190470 = and(T_190469, T_190468)
+ node T_190471 = bits(T_190465, 14, 0)
+ node T_190472 = dshl(T_190471, UInt<1>(1))
+ node T_190473 = not(T_190468)
+ node T_190474 = and(T_190472, T_190473)
+ node T_190475 = or(T_190470, T_190474)
+ node T_190476 = bits(T_190435, 23, 16)
+ node T_190477 = dshl(UInt<4>(15), UInt<3>(4))
+ node T_190478 = xor(UInt<8>(255), T_190477)
+ node T_190479 = dshr(T_190476, UInt<3>(4))
+ node T_190480 = and(T_190479, T_190478)
+ node T_190481 = bits(T_190476, 3, 0)
+ node T_190482 = dshl(T_190481, UInt<3>(4))
+ node T_190483 = not(T_190478)
+ node T_190484 = and(T_190482, T_190483)
+ node T_190485 = or(T_190480, T_190484)
+ node T_190486 = bits(T_190478, 5, 0)
+ node T_190487 = dshl(T_190486, UInt<2>(2))
+ node T_190488 = xor(T_190478, T_190487)
+ node T_190489 = dshr(T_190485, UInt<2>(2))
+ node T_190490 = and(T_190489, T_190488)
+ node T_190491 = bits(T_190485, 5, 0)
+ node T_190492 = dshl(T_190491, UInt<2>(2))
+ node T_190493 = not(T_190488)
+ node T_190494 = and(T_190492, T_190493)
+ node T_190495 = or(T_190490, T_190494)
+ node T_190496 = bits(T_190488, 6, 0)
+ node T_190497 = dshl(T_190496, UInt<1>(1))
+ node T_190498 = xor(T_190488, T_190497)
+ node T_190499 = dshr(T_190495, UInt<1>(1))
+ node T_190500 = and(T_190499, T_190498)
+ node T_190501 = bits(T_190495, 6, 0)
+ node T_190502 = dshl(T_190501, UInt<1>(1))
+ node T_190503 = not(T_190498)
+ node T_190504 = and(T_190502, T_190503)
+ node T_190505 = or(T_190500, T_190504)
+ node CExtraMask = cat(T_190475, T_190505)
+ node T_190506 = not(sigC)
+ wire negSigC : UInt<24>
+ negSigC := sigC
+ when doSubMags : negSigC := T_190506
+ node T_190507 = subw(UInt<50>(0), UInt<6>(50))
+ node T_190508 = cat(negSigC, T_190507)
+ node T_190509 = cat(doSubMags, T_190508)
+ node T_190510 = asSInt(T_190509)
+ node T_190511 = dshr(T_190510, CAlignDist)
+ node T_190512 = and(sigC, CExtraMask)
+ node T_190513 = neq(T_190512, UInt<1>(0))
+ node T_190514 = xor(T_190513, doSubMags)
+ node T_190515 = asUInt(T_190511)
+ node T_190516 = cat(T_190515, T_190514)
+ node alignedNegSigC = bits(T_190516, 74, 0)
+ node T_190517 = mul(sigA, sigB)
+ node T_190518 = dshl(T_190517, UInt<1>(1))
+ node sigSum = addw(T_190518, alignedNegSigC)
+ node T_190519 = bits(sigSum, 50, 1)
+ node T_190520 = xor(UInt<50>(0), T_190519)
+ node T_190521 = or(UInt<50>(0), T_190519)
+ node T_190522 = dshl(T_190521, UInt<1>(1))
+ node T_190523 = xor(T_190520, T_190522)
+ node T_190524 = bit(T_190523, 49)
+ node T_190525 = bit(T_190523, 48)
+ node T_190526 = bit(T_190523, 47)
+ node T_190527 = bit(T_190523, 46)
+ node T_190528 = bit(T_190523, 45)
+ node T_190529 = bit(T_190523, 44)
+ node T_190530 = bit(T_190523, 43)
+ node T_190531 = bit(T_190523, 42)
+ node T_190532 = bit(T_190523, 41)
+ node T_190533 = bit(T_190523, 40)
+ node T_190534 = bit(T_190523, 39)
+ node T_190535 = bit(T_190523, 38)
+ node T_190536 = bit(T_190523, 37)
+ node T_190537 = bit(T_190523, 36)
+ node T_190538 = bit(T_190523, 35)
+ node T_190539 = bit(T_190523, 34)
+ node T_190540 = bit(T_190523, 33)
+ node T_190541 = bit(T_190523, 32)
+ node T_190542 = bit(T_190523, 31)
+ node T_190543 = bit(T_190523, 30)
+ node T_190544 = bit(T_190523, 29)
+ node T_190545 = bit(T_190523, 28)
+ node T_190546 = bit(T_190523, 27)
+ node T_190547 = bit(T_190523, 26)
+ node T_190548 = bit(T_190523, 25)
+ node T_190549 = bit(T_190523, 24)
+ node T_190550 = bit(T_190523, 23)
+ node T_190551 = bit(T_190523, 22)
+ node T_190552 = bit(T_190523, 21)
+ node T_190553 = bit(T_190523, 20)
+ node T_190554 = bit(T_190523, 19)
+ node T_190555 = bit(T_190523, 18)
+ node T_190556 = bit(T_190523, 17)
+ node T_190557 = bit(T_190523, 16)
+ node T_190558 = bit(T_190523, 15)
+ node T_190559 = bit(T_190523, 14)
+ node T_190560 = bit(T_190523, 13)
+ node T_190561 = bit(T_190523, 12)
+ node T_190562 = bit(T_190523, 11)
+ node T_190563 = bit(T_190523, 10)
+ node T_190564 = bit(T_190523, 9)
+ node T_190565 = bit(T_190523, 8)
+ node T_190566 = bit(T_190523, 7)
+ node T_190567 = bit(T_190523, 6)
+ node T_190568 = bit(T_190523, 5)
+ node T_190569 = bit(T_190523, 4)
+ node T_190570 = bit(T_190523, 3)
+ node T_190571 = bit(T_190523, 2)
+ node T_190572 = bit(T_190523, 1)
+ node T_190573 = bit(T_190523, 0)
+ wire T_190574 : UInt<7>
+ T_190574 := UInt<7>(73)
+ when T_190572 : T_190574 := UInt<7>(72)
+ wire T_190575 : UInt<7>
+ T_190575 := T_190574
+ when T_190571 : T_190575 := UInt<7>(71)
+ wire T_190576 : UInt<7>
+ T_190576 := T_190575
+ when T_190570 : T_190576 := UInt<7>(70)
+ wire T_190577 : UInt<7>
+ T_190577 := T_190576
+ when T_190569 : T_190577 := UInt<7>(69)
+ wire T_190578 : UInt<7>
+ T_190578 := T_190577
+ when T_190568 : T_190578 := UInt<7>(68)
+ wire T_190579 : UInt<7>
+ T_190579 := T_190578
+ when T_190567 : T_190579 := UInt<7>(67)
+ wire T_190580 : UInt<7>
+ T_190580 := T_190579
+ when T_190566 : T_190580 := UInt<7>(66)
+ wire T_190581 : UInt<7>
+ T_190581 := T_190580
+ when T_190565 : T_190581 := UInt<7>(65)
+ wire T_190582 : UInt<7>
+ T_190582 := T_190581
+ when T_190564 : T_190582 := UInt<7>(64)
+ wire T_190583 : UInt<7>
+ T_190583 := T_190582
+ when T_190563 : T_190583 := UInt<7>(63)
+ wire T_190584 : UInt<7>
+ T_190584 := T_190583
+ when T_190562 : T_190584 := UInt<7>(62)
+ wire T_190585 : UInt<7>
+ T_190585 := T_190584
+ when T_190561 : T_190585 := UInt<7>(61)
+ wire T_190586 : UInt<7>
+ T_190586 := T_190585
+ when T_190560 : T_190586 := UInt<7>(60)
+ wire T_190587 : UInt<7>
+ T_190587 := T_190586
+ when T_190559 : T_190587 := UInt<7>(59)
+ wire T_190588 : UInt<7>
+ T_190588 := T_190587
+ when T_190558 : T_190588 := UInt<7>(58)
+ wire T_190589 : UInt<7>
+ T_190589 := T_190588
+ when T_190557 : T_190589 := UInt<7>(57)
+ wire T_190590 : UInt<7>
+ T_190590 := T_190589
+ when T_190556 : T_190590 := UInt<7>(56)
+ wire T_190591 : UInt<7>
+ T_190591 := T_190590
+ when T_190555 : T_190591 := UInt<7>(55)
+ wire T_190592 : UInt<7>
+ T_190592 := T_190591
+ when T_190554 : T_190592 := UInt<7>(54)
+ wire T_190593 : UInt<7>
+ T_190593 := T_190592
+ when T_190553 : T_190593 := UInt<7>(53)
+ wire T_190594 : UInt<7>
+ T_190594 := T_190593
+ when T_190552 : T_190594 := UInt<7>(52)
+ wire T_190595 : UInt<7>
+ T_190595 := T_190594
+ when T_190551 : T_190595 := UInt<7>(51)
+ wire T_190596 : UInt<7>
+ T_190596 := T_190595
+ when T_190550 : T_190596 := UInt<7>(50)
+ wire T_190597 : UInt<7>
+ T_190597 := T_190596
+ when T_190549 : T_190597 := UInt<7>(49)
+ wire T_190598 : UInt<7>
+ T_190598 := T_190597
+ when T_190548 : T_190598 := UInt<7>(48)
+ wire T_190599 : UInt<7>
+ T_190599 := T_190598
+ when T_190547 : T_190599 := UInt<7>(47)
+ wire T_190600 : UInt<7>
+ T_190600 := T_190599
+ when T_190546 : T_190600 := UInt<7>(46)
+ wire T_190601 : UInt<7>
+ T_190601 := T_190600
+ when T_190545 : T_190601 := UInt<7>(45)
+ wire T_190602 : UInt<7>
+ T_190602 := T_190601
+ when T_190544 : T_190602 := UInt<7>(44)
+ wire T_190603 : UInt<7>
+ T_190603 := T_190602
+ when T_190543 : T_190603 := UInt<7>(43)
+ wire T_190604 : UInt<7>
+ T_190604 := T_190603
+ when T_190542 : T_190604 := UInt<7>(42)
+ wire T_190605 : UInt<7>
+ T_190605 := T_190604
+ when T_190541 : T_190605 := UInt<7>(41)
+ wire T_190606 : UInt<7>
+ T_190606 := T_190605
+ when T_190540 : T_190606 := UInt<7>(40)
+ wire T_190607 : UInt<7>
+ T_190607 := T_190606
+ when T_190539 : T_190607 := UInt<7>(39)
+ wire T_190608 : UInt<7>
+ T_190608 := T_190607
+ when T_190538 : T_190608 := UInt<7>(38)
+ wire T_190609 : UInt<7>
+ T_190609 := T_190608
+ when T_190537 : T_190609 := UInt<7>(37)
+ wire T_190610 : UInt<7>
+ T_190610 := T_190609
+ when T_190536 : T_190610 := UInt<7>(36)
+ wire T_190611 : UInt<7>
+ T_190611 := T_190610
+ when T_190535 : T_190611 := UInt<7>(35)
+ wire T_190612 : UInt<7>
+ T_190612 := T_190611
+ when T_190534 : T_190612 := UInt<7>(34)
+ wire T_190613 : UInt<7>
+ T_190613 := T_190612
+ when T_190533 : T_190613 := UInt<7>(33)
+ wire T_190614 : UInt<7>
+ T_190614 := T_190613
+ when T_190532 : T_190614 := UInt<7>(32)
+ wire T_190615 : UInt<7>
+ T_190615 := T_190614
+ when T_190531 : T_190615 := UInt<7>(31)
+ wire T_190616 : UInt<7>
+ T_190616 := T_190615
+ when T_190530 : T_190616 := UInt<7>(30)
+ wire T_190617 : UInt<7>
+ T_190617 := T_190616
+ when T_190529 : T_190617 := UInt<7>(29)
+ wire T_190618 : UInt<7>
+ T_190618 := T_190617
+ when T_190528 : T_190618 := UInt<7>(28)
+ wire T_190619 : UInt<7>
+ T_190619 := T_190618
+ when T_190527 : T_190619 := UInt<7>(27)
+ wire T_190620 : UInt<7>
+ T_190620 := T_190619
+ when T_190526 : T_190620 := UInt<7>(26)
+ wire T_190621 : UInt<7>
+ T_190621 := T_190620
+ when T_190525 : T_190621 := UInt<7>(25)
+ wire estNormPos_dist : UInt<7>
+ estNormPos_dist := T_190621
+ when T_190524 : estNormPos_dist := UInt<7>(24)
+ node T_190622 = bits(sigSum, 33, 18)
+ node T_190623 = neq(T_190622, UInt<1>(0))
+ node T_190624 = bits(sigSum, 17, 0)
+ node T_190625 = neq(T_190624, UInt<1>(0))
+ node firstReduceSigSum = cat(T_190623, T_190625)
+ node notSigSum = not(sigSum)
+ node T_190626 = bits(notSigSum, 33, 18)
+ node T_190627 = neq(T_190626, UInt<1>(0))
+ node T_190628 = bits(notSigSum, 17, 0)
+ node T_190629 = neq(T_190628, UInt<1>(0))
+ node firstReduceNotSigSum = cat(T_190627, T_190629)
+ node T_190630 = or(CAlignDist_0, doSubMags)
+ node T_190631 = subw(CAlignDist, UInt<1>(1))
+ node T_190632 = bits(T_190631, 4, 0)
+ wire CDom_estNormDist : UInt<5>
+ CDom_estNormDist := T_190632
+ when T_190630 : CDom_estNormDist := CAlignDist
+ node T_190633 = not(doSubMags)
+ node T_190634 = bit(CDom_estNormDist, 4)
+ node T_190635 = not(T_190634)
+ node T_190636 = and(T_190633, T_190635)
+ node T_190637 = asSInt(T_190636)
+ node T_190638 = bits(sigSum, 74, 34)
+ node T_190639 = neq(firstReduceSigSum, UInt<1>(0))
+ node T_190640 = cat(T_190638, T_190639)
+ node T_190641 = asSInt(T_190640)
+ node T_190642 = and(T_190637, T_190641)
+ node T_190643 = not(doSubMags)
+ node T_190644 = bit(CDom_estNormDist, 4)
+ node T_190645 = and(T_190643, T_190644)
+ node T_190646 = asSInt(T_190645)
+ node T_190647 = bits(sigSum, 58, 18)
+ node T_190648 = bit(firstReduceSigSum, 0)
+ node T_190649 = cat(T_190647, T_190648)
+ node T_190650 = asSInt(T_190649)
+ node T_190651 = and(T_190646, T_190650)
+ node T_190652 = or(T_190642, T_190651)
+ node T_190653 = bit(CDom_estNormDist, 4)
+ node T_190654 = not(T_190653)
+ node T_190655 = and(doSubMags, T_190654)
+ node T_190656 = asSInt(T_190655)
+ node T_190657 = bits(notSigSum, 74, 34)
+ node T_190658 = neq(firstReduceNotSigSum, UInt<1>(0))
+ node T_190659 = cat(T_190657, T_190658)
+ node T_190660 = asSInt(T_190659)
+ node T_190661 = and(T_190656, T_190660)
+ node T_190662 = or(T_190652, T_190661)
+ node T_190663 = bit(CDom_estNormDist, 4)
+ node T_190664 = and(doSubMags, T_190663)
+ node T_190665 = asSInt(T_190664)
+ node T_190666 = bits(notSigSum, 58, 18)
+ node T_190667 = bit(firstReduceNotSigSum, 0)
+ node T_190668 = cat(T_190666, T_190667)
+ node T_190669 = asSInt(T_190668)
+ node T_190670 = and(T_190665, T_190669)
+ node T_190671 = or(T_190662, T_190670)
+ node CDom_firstNormAbsSigSum = asUInt(T_190671)
+ node T_190672 = bits(sigSum, 50, 18)
+ node T_190673 = bit(firstReduceNotSigSum, 0)
+ node T_190674 = not(T_190673)
+ node T_190675 = bit(firstReduceSigSum, 0)
+ wire T_190676 : UInt<1>
+ T_190676 := T_190675
+ when doSubMags : T_190676 := T_190674
+ node T_190677 = cat(T_190672, T_190676)
+ node T_190678 = bits(sigSum, 42, 1)
+ node T_190679 = bit(estNormPos_dist, 5)
+ node T_190680 = bit(estNormPos_dist, 4)
+ node T_190681 = bits(sigSum, 26, 1)
+ node T_190682 = subw(UInt<16>(0), UInt<5>(16))
+ node T_190683 = cat(T_190681, T_190682)
+ wire T_190684 : UInt<42>
+ T_190684 := T_190678
+ when T_190680 : T_190684 := T_190683
+ node T_190685 = bit(estNormPos_dist, 4)
+ node T_190686 = bits(sigSum, 10, 1)
+ node T_190687 = subw(UInt<32>(0), UInt<6>(32))
+ node T_190688 = cat(T_190686, T_190687)
+ wire T_190689 : UInt<42>
+ T_190689 := T_190688
+ when T_190685 : T_190689 := T_190677
+ wire notCDom_pos_firstNormAbsSigSum : UInt<42>
+ notCDom_pos_firstNormAbsSigSum := T_190689
+ when T_190679 : notCDom_pos_firstNormAbsSigSum := T_190684
+ node T_190690 = bits(notSigSum, 49, 18)
+ node T_190691 = bit(firstReduceNotSigSum, 0)
+ node T_190692 = cat(T_190690, T_190691)
+ node T_190693 = bits(notSigSum, 42, 1)
+ node T_190694 = bit(estNormPos_dist, 5)
+ node T_190695 = bit(estNormPos_dist, 4)
+ node T_190696 = bits(notSigSum, 27, 1)
+ node T_190697 = dshl(T_190696, UInt<5>(16))
+ wire T_190698 : UInt<42>
+ T_190698 := T_190693
+ when T_190695 : T_190698 := T_190697
+ node T_190699 = bit(estNormPos_dist, 4)
+ node T_190700 = bits(notSigSum, 11, 1)
+ node T_190701 = dshl(T_190700, UInt<6>(32))
+ wire T_190702 : UInt<75>
+ T_190702 := T_190701
+ when T_190699 : T_190702 := T_190692
+ wire notCDom_neg_cFirstNormAbsSigSum : UInt<75>
+ notCDom_neg_cFirstNormAbsSigSum := T_190702
+ when T_190694 : notCDom_neg_cFirstNormAbsSigSum := T_190698
+ node notCDom_signSigSum = bit(sigSum, 51)
+ node T_190703 = not(isZeroC)
+ node T_190704 = and(doSubMags, T_190703)
+ wire doNegSignSum : UInt<1>
+ doNegSignSum := notCDom_signSigSum
+ when isCDominant : doNegSignSum := T_190704
+ wire T_190705 : UInt<7>
+ T_190705 := estNormPos_dist
+ when notCDom_signSigSum : T_190705 := estNormPos_dist
+ wire estNormDist : UInt<7>
+ estNormDist := T_190705
+ when isCDominant : estNormDist := CDom_estNormDist
+ wire T_190706 : UInt<75>
+ T_190706 := notCDom_neg_cFirstNormAbsSigSum
+ when isCDominant : T_190706 := CDom_firstNormAbsSigSum
+ wire T_190707 : UInt<42>
+ T_190707 := notCDom_pos_firstNormAbsSigSum
+ when isCDominant : T_190707 := CDom_firstNormAbsSigSum
+ wire cFirstNormAbsSigSum : UInt<42>
+ cFirstNormAbsSigSum := T_190707
+ when notCDom_signSigSum : cFirstNormAbsSigSum := T_190706
+ node T_190708 = not(isCDominant)
+ node T_190709 = not(notCDom_signSigSum)
+ node T_190710 = and(T_190708, T_190709)
+ node doIncrSig = and(T_190710, doSubMags)
+ node estNormDist_5 = bits(estNormDist, 3, 0)
+ node normTo2ShiftDist = not(estNormDist_5)
+ node T_190711 = dshr(SInt<17>(-65536), normTo2ShiftDist)
+ node T_190712 = bits(T_190711, 15, 1)
+ node T_190713 = bits(T_190712, 7, 0)
+ node T_190714 = dshl(UInt<4>(15), UInt<3>(4))
+ node T_190715 = xor(UInt<8>(255), T_190714)
+ node T_190716 = dshr(T_190713, UInt<3>(4))
+ node T_190717 = and(T_190716, T_190715)
+ node T_190718 = bits(T_190713, 3, 0)
+ node T_190719 = dshl(T_190718, UInt<3>(4))
+ node T_190720 = not(T_190715)
+ node T_190721 = and(T_190719, T_190720)
+ node T_190722 = or(T_190717, T_190721)
+ node T_190723 = bits(T_190715, 5, 0)
+ node T_190724 = dshl(T_190723, UInt<2>(2))
+ node T_190725 = xor(T_190715, T_190724)
+ node T_190726 = dshr(T_190722, UInt<2>(2))
+ node T_190727 = and(T_190726, T_190725)
+ node T_190728 = bits(T_190722, 5, 0)
+ node T_190729 = dshl(T_190728, UInt<2>(2))
+ node T_190730 = not(T_190725)
+ node T_190731 = and(T_190729, T_190730)
+ node T_190732 = or(T_190727, T_190731)
+ node T_190733 = bits(T_190725, 6, 0)
+ node T_190734 = dshl(T_190733, UInt<1>(1))
+ node T_190735 = xor(T_190725, T_190734)
+ node T_190736 = dshr(T_190732, UInt<1>(1))
+ node T_190737 = and(T_190736, T_190735)
+ node T_190738 = bits(T_190732, 6, 0)
+ node T_190739 = dshl(T_190738, UInt<1>(1))
+ node T_190740 = not(T_190735)
+ node T_190741 = and(T_190739, T_190740)
+ node T_190742 = or(T_190737, T_190741)
+ node T_190743 = bits(T_190712, 14, 8)
+ node T_190744 = bits(T_190743, 3, 0)
+ node T_190745 = bits(T_190744, 1, 0)
+ node T_190746 = bits(T_190745, 0, 0)
+ node T_190747 = bits(T_190745, 1, 1)
+ node T_190748 = cat(T_190746, T_190747)
+ node T_190749 = bits(T_190744, 3, 2)
+ node T_190750 = bits(T_190749, 0, 0)
+ node T_190751 = bits(T_190749, 1, 1)
+ node T_190752 = cat(T_190750, T_190751)
+ node T_190753 = cat(T_190748, T_190752)
+ node T_190754 = bits(T_190743, 6, 4)
+ node T_190755 = bits(T_190754, 1, 0)
+ node T_190756 = bits(T_190755, 0, 0)
+ node T_190757 = bits(T_190755, 1, 1)
+ node T_190758 = cat(T_190756, T_190757)
+ node T_190759 = bits(T_190754, 2, 2)
+ node T_190760 = cat(T_190758, T_190759)
+ node T_190761 = cat(T_190753, T_190760)
+ node T_190762 = cat(T_190742, T_190761)
+ node absSigSumExtraMask = cat(T_190762, UInt<1>(1))
+ node T_190763 = bits(cFirstNormAbsSigSum, 42, 1)
+ node T_190764 = dshr(T_190763, normTo2ShiftDist)
+ node T_190765 = bits(cFirstNormAbsSigSum, 15, 0)
+ node T_190766 = not(T_190765)
+ node T_190767 = and(T_190766, absSigSumExtraMask)
+ node T_190768 = eq(T_190767, UInt<1>(0))
+ node T_190769 = bits(cFirstNormAbsSigSum, 15, 0)
+ node T_190770 = and(T_190769, absSigSumExtraMask)
+ node T_190771 = neq(T_190770, UInt<1>(0))
+ wire T_190772 : UInt<1>
+ T_190772 := T_190771
+ when doIncrSig : T_190772 := T_190768
+ node T_190773 = cat(T_190764, T_190772)
+ node sigX3 = bits(T_190773, 27, 0)
+ node T_190774 = bits(sigX3, 27, 26)
+ node sigX3Shift1 = eq(T_190774, UInt<1>(0))
+ node sExpX3 = subw(sExpSum, estNormDist)
+ node T_190775 = bits(sigX3, 27, 25)
+ node isZeroY = eq(T_190775, UInt<1>(0))
+ node T_190776 = not(isZeroY)
+ node T_190777 = xor(signProd, doNegSignSum)
+ node signY = and(T_190776, T_190777)
+ node sExpX3_13 = bits(sExpX3, 9, 0)
+ node T_190778 = bit(sExpX3, 10)
+ node T_190779 = subw(UInt<27>(0), UInt<5>(27))
+ node T_190780 = not(sExpX3_13)
+ node T_190781 = dshr(SInt<1025>(-179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137216), T_190780)
+ node T_190782 = bits(T_190781, 131, 107)
+ node T_190783 = bits(T_190782, 15, 0)
+ node T_190784 = dshl(UInt<8>(255), UInt<4>(8))
+ node T_190785 = xor(UInt<16>(65535), T_190784)
+ node T_190786 = dshr(T_190783, UInt<4>(8))
+ node T_190787 = and(T_190786, T_190785)
+ node T_190788 = bits(T_190783, 7, 0)
+ node T_190789 = dshl(T_190788, UInt<4>(8))
+ node T_190790 = not(T_190785)
+ node T_190791 = and(T_190789, T_190790)
+ node T_190792 = or(T_190787, T_190791)
+ node T_190793 = bits(T_190785, 11, 0)
+ node T_190794 = dshl(T_190793, UInt<3>(4))
+ node T_190795 = xor(T_190785, T_190794)
+ node T_190796 = dshr(T_190792, UInt<3>(4))
+ node T_190797 = and(T_190796, T_190795)
+ node T_190798 = bits(T_190792, 11, 0)
+ node T_190799 = dshl(T_190798, UInt<3>(4))
+ node T_190800 = not(T_190795)
+ node T_190801 = and(T_190799, T_190800)
+ node T_190802 = or(T_190797, T_190801)
+ node T_190803 = bits(T_190795, 13, 0)
+ node T_190804 = dshl(T_190803, UInt<2>(2))
+ node T_190805 = xor(T_190795, T_190804)
+ node T_190806 = dshr(T_190802, UInt<2>(2))
+ node T_190807 = and(T_190806, T_190805)
+ node T_190808 = bits(T_190802, 13, 0)
+ node T_190809 = dshl(T_190808, UInt<2>(2))
+ node T_190810 = not(T_190805)
+ node T_190811 = and(T_190809, T_190810)
+ node T_190812 = or(T_190807, T_190811)
+ node T_190813 = bits(T_190805, 14, 0)
+ node T_190814 = dshl(T_190813, UInt<1>(1))
+ node T_190815 = xor(T_190805, T_190814)
+ node T_190816 = dshr(T_190812, UInt<1>(1))
+ node T_190817 = and(T_190816, T_190815)
+ node T_190818 = bits(T_190812, 14, 0)
+ node T_190819 = dshl(T_190818, UInt<1>(1))
+ node T_190820 = not(T_190815)
+ node T_190821 = and(T_190819, T_190820)
+ node T_190822 = or(T_190817, T_190821)
+ node T_190823 = bits(T_190782, 24, 16)
+ node T_190824 = bits(T_190823, 7, 0)
+ node T_190825 = dshl(UInt<4>(15), UInt<3>(4))
+ node T_190826 = xor(UInt<8>(255), T_190825)
+ node T_190827 = dshr(T_190824, UInt<3>(4))
+ node T_190828 = and(T_190827, T_190826)
+ node T_190829 = bits(T_190824, 3, 0)
+ node T_190830 = dshl(T_190829, UInt<3>(4))
+ node T_190831 = not(T_190826)
+ node T_190832 = and(T_190830, T_190831)
+ node T_190833 = or(T_190828, T_190832)
+ node T_190834 = bits(T_190826, 5, 0)
+ node T_190835 = dshl(T_190834, UInt<2>(2))
+ node T_190836 = xor(T_190826, T_190835)
+ node T_190837 = dshr(T_190833, UInt<2>(2))
+ node T_190838 = and(T_190837, T_190836)
+ node T_190839 = bits(T_190833, 5, 0)
+ node T_190840 = dshl(T_190839, UInt<2>(2))
+ node T_190841 = not(T_190836)
+ node T_190842 = and(T_190840, T_190841)
+ node T_190843 = or(T_190838, T_190842)
+ node T_190844 = bits(T_190836, 6, 0)
+ node T_190845 = dshl(T_190844, UInt<1>(1))
+ node T_190846 = xor(T_190836, T_190845)
+ node T_190847 = dshr(T_190843, UInt<1>(1))
+ node T_190848 = and(T_190847, T_190846)
+ node T_190849 = bits(T_190843, 6, 0)
+ node T_190850 = dshl(T_190849, UInt<1>(1))
+ node T_190851 = not(T_190846)
+ node T_190852 = and(T_190850, T_190851)
+ node T_190853 = or(T_190848, T_190852)
+ node T_190854 = bits(T_190823, 8, 8)
+ node T_190855 = cat(T_190853, T_190854)
+ node T_190856 = cat(T_190822, T_190855)
+ node T_190857 = bit(sigX3, 26)
+ node T_190858 = or(T_190856, T_190857)
+ node T_190859 = cat(T_190858, UInt<2>(3))
+ node roundMask = or(T_190779, T_190859)
+ node T_190860 = dshr(roundMask, UInt<1>(1))
+ node T_190861 = not(T_190860)
+ node roundPosMask = and(T_190861, roundMask)
+ node T_190862 = and(sigX3, roundPosMask)
+ node roundPosBit = neq(T_190862, UInt<1>(0))
+ node T_190863 = dshr(roundMask, UInt<1>(1))
+ node T_190864 = and(sigX3, T_190863)
+ node anyRoundExtra = neq(T_190864, UInt<1>(0))
+ node T_190865 = not(sigX3)
+ node T_190866 = dshr(roundMask, UInt<1>(1))
+ node T_190867 = and(T_190865, T_190866)
+ node allRoundExtra = eq(T_190867, UInt<1>(0))
+ node anyRound = or(roundPosBit, anyRoundExtra)
+ node allRound = and(roundPosBit, allRoundExtra)
+ wire roundDirectUp : UInt<1>
+ roundDirectUp := roundingMode_max
+ when signY : roundDirectUp := roundingMode_min
+ node T_190868 = not(doIncrSig)
+ node T_190869 = and(T_190868, roundingMode_nearest_even)
+ node T_190870 = and(T_190869, roundPosBit)
+ node T_190871 = and(T_190870, anyRoundExtra)
+ node T_190872 = not(doIncrSig)
+ node T_190873 = and(T_190872, roundDirectUp)
+ node T_190874 = and(T_190873, anyRound)
+ node T_190875 = or(T_190871, T_190874)
+ node T_190876 = and(doIncrSig, allRound)
+ node T_190877 = or(T_190875, T_190876)
+ node T_190878 = and(doIncrSig, roundingMode_nearest_even)
+ node T_190879 = and(T_190878, roundPosBit)
+ node T_190880 = or(T_190877, T_190879)
+ node T_190881 = and(doIncrSig, roundDirectUp)
+ node roundUp = or(T_190880, T_190881)
+ node T_190882 = not(roundPosBit)
+ node T_190883 = and(roundingMode_nearest_even, T_190882)
+ node T_190884 = and(T_190883, allRoundExtra)
+ node T_190885 = and(roundingMode_nearest_even, roundPosBit)
+ node T_190886 = not(anyRoundExtra)
+ node T_190887 = and(T_190885, T_190886)
+ wire roundEven : UInt<1>
+ roundEven := T_190887
+ when doIncrSig : roundEven := T_190884
+ node T_190888 = not(allRound)
+ wire roundInexact : UInt<1>
+ roundInexact := anyRound
+ when doIncrSig : roundInexact := T_190888
+ node T_190889 = or(sigX3, roundMask)
+ node T_190890 = dshr(T_190889, UInt<2>(2))
+ node T_190891 = addw(T_190890, UInt<1>(1))
+ node roundUp_sigY3 = bits(T_190891, 25, 0)
+ node T_190892 = not(roundUp)
+ node T_190893 = not(roundEven)
+ node T_190894 = and(T_190892, T_190893)
+ node T_190895 = not(roundMask)
+ node T_190896 = and(sigX3, T_190895)
+ node T_190897 = dshr(T_190896, UInt<2>(2))
+ wire T_190898 : UInt<1>
+ T_190898 := UInt<1>(0)
+ when T_190894 : T_190898 := T_190897
+ wire T_190899 : UInt<1>
+ T_190899 := UInt<1>(0)
+ when roundUp : T_190899 := roundUp_sigY3
+ node T_190900 = or(T_190898, T_190899)
+ node T_190901 = dshr(roundMask, UInt<1>(1))
+ node T_190902 = not(T_190901)
+ node T_190903 = and(roundUp_sigY3, T_190902)
+ wire T_190904 : UInt<1>
+ T_190904 := UInt<1>(0)
+ when roundEven : T_190904 := T_190903
+ node sigY3 = or(T_190900, T_190904)
+ node T_190905 = bit(sigY3, 25)
+ node T_190906 = addw(sExpX3, UInt<1>(1))
+ wire T_190907 : UInt<1>
+ T_190907 := UInt<1>(0)
+ when T_190905 : T_190907 := T_190906
+ node T_190908 = bit(sigY3, 24)
+ wire T_190909 : UInt<1>
+ T_190909 := UInt<1>(0)
+ when T_190908 : T_190909 := sExpX3
+ node T_190910 = or(T_190907, T_190909)
+ node T_190911 = bits(sigY3, 25, 24)
+ node T_190912 = eq(T_190911, UInt<1>(0))
+ node T_190913 = subw(sExpX3, UInt<1>(1))
+ wire T_190914 : UInt<1>
+ T_190914 := UInt<1>(0)
+ when T_190912 : T_190914 := T_190913
+ node sExpY = or(T_190910, T_190914)
+ node expY = bits(sExpY, 8, 0)
+ node T_190915 = bits(sigY3, 22, 0)
+ node T_190916 = bits(sigY3, 23, 1)
+ wire fractY : UInt<23>
+ fractY := T_190916
+ when sigX3Shift1 : fractY := T_190915
+ node T_190917 = bits(sExpY, 9, 7)
+ node overflowY = eq(T_190917, UInt<2>(3))
+ node T_190918 = bit(sExpY, 9)
+ node T_190919 = bits(sExpY, 8, 0)
+ node T_190920 = lt(T_190919, UInt<7>(107))
+ node totalUnderflowY = or(T_190918, T_190920)
+ node T_190921 = bit(sExpX3, 10)
+ wire T_190922 : UInt<8>
+ T_190922 := UInt<8>(129)
+ when sigX3Shift1 : T_190922 := UInt<8>(130)
+ node T_190923 = leq(sExpX3_13, T_190922)
+ node T_190924 = or(T_190921, T_190923)
+ node underflowY = and(roundInexact, T_190924)
+ node T_190925 = and(roundingMode_min, signY)
+ node T_190926 = or(roundingMode_nearest_even, T_190925)
+ node T_190927 = not(signY)
+ node T_190928 = and(roundingMode_max, T_190927)
+ node overflowY_roundMagUp = or(T_190926, T_190928)
+ node mulSpecial = or(isSpecialA, isSpecialB)
+ node addSpecial = or(mulSpecial, isSpecialC)
+ node notSpecial_addZeros = and(isZeroProd, isZeroC)
+ node T_190929 = not(addSpecial)
+ node T_190930 = not(notSpecial_addZeros)
+ node commonCase = and(T_190929, T_190930)
+ node T_190931 = and(isInfA, isZeroB)
+ node T_190932 = and(isZeroA, isInfB)
+ node T_190933 = or(T_190931, T_190932)
+ node T_190934 = not(isNaNA)
+ node T_190935 = not(isNaNB)
+ node T_190936 = and(T_190934, T_190935)
+ node T_190937 = or(isInfA, isInfB)
+ node T_190938 = and(T_190936, T_190937)
+ node T_190939 = and(T_190938, isInfC)
+ node T_190940 = and(T_190939, doSubMags)
+ node notSigNaN_invalid = or(T_190933, T_190940)
+ node T_190941 = or(isSigNaNA, isSigNaNB)
+ node T_190942 = or(T_190941, isSigNaNC)
+ node invalid = or(T_190942, notSigNaN_invalid)
+ node overflow = and(commonCase, overflowY)
+ node underflow = and(commonCase, underflowY)
+ node T_190943 = and(commonCase, roundInexact)
+ node inexact = or(overflow, T_190943)
+ node T_190944 = or(notSpecial_addZeros, isZeroY)
+ node notSpecial_isZeroOut = or(T_190944, totalUnderflowY)
+ node T_190945 = not(overflowY_roundMagUp)
+ node isSatOut = and(overflow, T_190945)
+ node T_190946 = or(isInfA, isInfB)
+ node T_190947 = or(T_190946, isInfC)
+ node T_190948 = and(overflow, overflowY_roundMagUp)
+ node notNaN_isInfOut = or(T_190947, T_190948)
+ node T_190949 = or(isNaNA, isNaNB)
+ node T_190950 = or(T_190949, isNaNC)
+ node isNaNOut = or(T_190950, notSigNaN_invalid)
+ node T_190951 = eq(doSubMags, UInt<1>(0))
+ node T_190952 = and(T_190951, opSignC)
+ node T_190953 = and(isNaNOut, UInt<1>(1))
+ node T_190954 = or(T_190952, T_190953)
+ node T_190955 = eq(isSpecialC, UInt<1>(0))
+ node T_190956 = and(mulSpecial, T_190955)
+ node T_190957 = and(T_190956, signProd)
+ node T_190958 = or(T_190954, T_190957)
+ node T_190959 = eq(mulSpecial, UInt<1>(0))
+ node T_190960 = and(T_190959, isSpecialC)
+ node T_190961 = and(T_190960, opSignC)
+ node T_190962 = or(T_190958, T_190961)
+ node T_190963 = eq(mulSpecial, UInt<1>(0))
+ node T_190964 = and(T_190963, notSpecial_addZeros)
+ node T_190965 = and(T_190964, doSubMags)
+ node T_190966 = and(T_190965, UInt<1>(0))
+ node T_190967 = or(T_190962, T_190966)
+ node T_190968 = and(commonCase, signY)
+ node signOut = or(T_190967, T_190968)
+ wire T_190969 : UInt<9>
+ T_190969 := UInt<9>(0)
+ when notSpecial_isZeroOut : T_190969 := UInt<9>(448)
+ node T_190970 = not(T_190969)
+ node T_190971 = and(expY, T_190970)
+ wire T_190972 : UInt<9>
+ T_190972 := UInt<9>(0)
+ when isSatOut : T_190972 := UInt<8>(128)
+ node T_190973 = not(T_190972)
+ node T_190974 = and(T_190971, T_190973)
+ wire T_190975 : UInt<9>
+ T_190975 := UInt<9>(0)
+ when notNaN_isInfOut : T_190975 := UInt<7>(64)
+ node T_190976 = not(T_190975)
+ node T_190977 = and(T_190974, T_190976)
+ wire T_190978 : UInt<9>
+ T_190978 := UInt<9>(0)
+ when isSatOut : T_190978 := UInt<9>(383)
+ node T_190979 = or(T_190977, T_190978)
+ wire T_190980 : UInt<9>
+ T_190980 := UInt<9>(0)
+ when notNaN_isInfOut : T_190980 := UInt<9>(384)
+ node T_190981 = or(T_190979, T_190980)
+ wire T_190982 : UInt<9>
+ T_190982 := UInt<9>(0)
+ when isNaNOut : T_190982 := UInt<9>(448)
+ node expOut = or(T_190981, T_190982)
+ node T_190983 = or(isNaNOut, isSatOut)
+ node T_190984 = subw(UInt<23>(0), UInt<5>(23))
+ node fractOut = or(fractY, T_190984)
+ node T_190985 = cat(expOut, fractOut)
+ node T_190986 = cat(signOut, T_190985)
+ out := T_190986
+ node T_190987 = cat(invalid, UInt<1>(0))
+ node T_190988 = cat(underflow, inexact)
+ node T_190989 = cat(overflow, T_190988)
+ node T_190990 = cat(T_190987, T_190989)
+ exceptionFlags := T_190990
+ module FPUFMAPipe :
+ input in : {valid : UInt<1>, bits : {cmd : UInt<5>, ldst : UInt<1>, wen : UInt<1>, ren1 : UInt<1>, ren2 : UInt<1>, ren3 : UInt<1>, swap12 : UInt<1>, swap23 : UInt<1>, single : UInt<1>, fromint : UInt<1>, toint : UInt<1>, fastpipe : UInt<1>, fma : UInt<1>, div : UInt<1>, sqrt : UInt<1>, round : UInt<1>, wflags : UInt<1>, rm : UInt<3>, typ : UInt<2>, in1 : UInt<65>, in2 : UInt<65>, in3 : UInt<65>}}
+ output out : {valid : UInt<1>, bits : {data : UInt<65>, exc : UInt<5>}}
+
+ node one = shl(UInt<1>(1), 31)
+ node T_190991 = bit(in.bits.in1, 32)
+ node T_190992 = bit(in.bits.in2, 32)
+ node T_190993 = xor(T_190991, T_190992)
+ node zero = shl(T_190993, 32)
+ reg valid : UInt<1>
+ valid := in.valid
+ reg in : {cmd : UInt<5>, ldst : UInt<1>, wen : UInt<1>, ren1 : UInt<1>, ren2 : UInt<1>, ren3 : UInt<1>, swap12 : UInt<1>, swap23 : UInt<1>, single : UInt<1>, fromint : UInt<1>, toint : UInt<1>, fastpipe : UInt<1>, fma : UInt<1>, div : UInt<1>, sqrt : UInt<1>, round : UInt<1>, wflags : UInt<1>, rm : UInt<3>, typ : UInt<2>, in1 : UInt<65>, in2 : UInt<65>, in3 : UInt<65>}
+ when in.valid :
+ in := in.bits
+ node T_190994 = bit(in.bits.cmd, 1)
+ node T_190995 = or(in.bits.ren3, in.bits.swap23)
+ node T_190996 = and(T_190994, T_190995)
+ node T_190997 = bit(in.bits.cmd, 0)
+ node T_190998 = cat(T_190996, T_190997)
+ in.cmd := T_190998
+ when in.bits.swap23 : in.in2 := one
+ node T_190999 = or(in.bits.ren3, in.bits.swap23)
+
+ node T_191000 = eq(T_190999, UInt<1>(0))
+ when T_191000 : in.in3 := zero
+ inst fma of mulAddSubRecodedFloatN
+ fma.op := in.cmd
+ fma.roundingMode := in.rm
+ fma.a := in.in1
+ fma.b := in.in2
+ fma.c := in.in3
+ wire res : {data : UInt<65>, exc : UInt<5>}
+ res.data := fma.out
+ res.exc := fma.exceptionFlags
+ reg T_191001 : UInt<1>
+ onreset T_191001 := UInt<1>(0)
+ T_191001 := valid
+ reg T_191002 : {data : UInt<65>, exc : UInt<5>}
+ when valid : T_191002 := res
+ T_191003.valid <> T_191001
+ T_191003.bits <> T_191002
+ out := T_191003
+ module mulAddSubRecodedFloatN_160940 :
+ input op : UInt<2>
+ input a : UInt<65>
+ input b : UInt<65>
+ input c : UInt<65>
+ input roundingMode : UInt<2>
+ output out : UInt<65>
+ output exceptionFlags : UInt<5>
+
+ node signA = bit(a, 64)
+ node expA = bits(a, 63, 52)
+ node fractA = bits(a, 51, 0)
+ node T_191004 = bits(expA, 11, 9)
+ node isZeroA = eq(T_191004, UInt<1>(0))
+ node T_191005 = bits(expA, 11, 10)
+ node isSpecialA = eq(T_191005, UInt<2>(3))
+ node T_191006 = bit(expA, 9)
+ node T_191007 = eq(T_191006, UInt<1>(0))
+ node isInfA = and(isSpecialA, T_191007)
+ node T_191008 = bit(expA, 9)
+ node isNaNA = and(isSpecialA, T_191008)
+ node T_191009 = bit(fractA, 51)
+ node T_191010 = eq(T_191009, UInt<1>(0))
+ node isSigNaNA = and(isNaNA, T_191010)
+ node T_191011 = eq(isZeroA, UInt<1>(0))
+ node sigA = cat(T_191011, fractA)
+ node signB = bit(b, 64)
+ node expB = bits(b, 63, 52)
+ node fractB = bits(b, 51, 0)
+ node T_191012 = bits(expB, 11, 9)
+ node isZeroB = eq(T_191012, UInt<1>(0))
+ node T_191013 = bits(expB, 11, 10)
+ node isSpecialB = eq(T_191013, UInt<2>(3))
+ node T_191014 = bit(expB, 9)
+ node T_191015 = eq(T_191014, UInt<1>(0))
+ node isInfB = and(isSpecialB, T_191015)
+ node T_191016 = bit(expB, 9)
+ node isNaNB = and(isSpecialB, T_191016)
+ node T_191017 = bit(fractB, 51)
+ node T_191018 = eq(T_191017, UInt<1>(0))
+ node isSigNaNB = and(isNaNB, T_191018)
+ node T_191019 = eq(isZeroB, UInt<1>(0))
+ node sigB = cat(T_191019, fractB)
+ node T_191020 = bit(c, 64)
+ node T_191021 = bit(op, 0)
+ node opSignC = xor(T_191020, T_191021)
+ node expC = bits(c, 63, 52)
+ node fractC = bits(c, 51, 0)
+ node T_191022 = bits(expC, 11, 9)
+ node isZeroC = eq(T_191022, UInt<1>(0))
+ node T_191023 = bits(expC, 11, 10)
+ node isSpecialC = eq(T_191023, UInt<2>(3))
+ node T_191024 = bit(expC, 9)
+ node T_191025 = eq(T_191024, UInt<1>(0))
+ node isInfC = and(isSpecialC, T_191025)
+ node T_191026 = bit(expC, 9)
+ node isNaNC = and(isSpecialC, T_191026)
+ node T_191027 = bit(fractC, 51)
+ node T_191028 = eq(T_191027, UInt<1>(0))
+ node isSigNaNC = and(isNaNC, T_191028)
+ node T_191029 = eq(isZeroC, UInt<1>(0))
+ node sigC = cat(T_191029, fractC)
+ node roundingMode_nearest_even = eq(roundingMode, UInt<2>(0))
+ node roundingMode_minMag = eq(roundingMode, UInt<2>(1))
+ node roundingMode_min = eq(roundingMode, UInt<2>(2))
+ node roundingMode_max = eq(roundingMode, UInt<2>(3))
+ node T_191030 = xor(signA, signB)
+ node T_191031 = bit(op, 1)
+ node signProd = xor(T_191030, T_191031)
+ node isZeroProd = or(isZeroA, isZeroB)
+ node T_191032 = bit(expB, 11)
+ node T_191033 = eq(T_191032, UInt<1>(0))
+ node T_191034 = subw(UInt<3>(0), UInt<2>(3))
+ node T_191035 = bits(expB, 10, 0)
+ node T_191036 = cat(T_191034, T_191035)
+ node T_191037 = addw(T_191036, expA)
+ node sExpAlignedProd = addw(T_191037, UInt<6>(56))
+ node doSubMags = xor(signProd, opSignC)
+ node sNatCAlignDist = subw(sExpAlignedProd, expC)
+ node T_191038 = bit(sNatCAlignDist, 13)
+ node CAlignDist_floor = or(isZeroProd, T_191038)
+ node T_191039 = bits(sNatCAlignDist, 12, 0)
+ node T_191040 = eq(T_191039, UInt<1>(0))
+ node CAlignDist_0 = or(CAlignDist_floor, T_191040)
+ node T_191041 = eq(isZeroC, UInt<1>(0))
+ node T_191042 = bits(sNatCAlignDist, 12, 0)
+ node T_191043 = lt(T_191042, UInt<6>(54))
+ node T_191044 = or(CAlignDist_floor, T_191043)
+ node isCDominant = and(T_191041, T_191044)
+ node T_191045 = bits(sNatCAlignDist, 12, 0)
+ node T_191046 = lt(T_191045, UInt<8>(161))
+ wire T_191047 : UInt<8>
+ T_191047 := UInt<8>(161)
+ when T_191046 : T_191047 := sNatCAlignDist
+ wire T_191048 : UInt<8>
+ T_191048 := T_191047
+ when CAlignDist_floor : T_191048 := UInt<1>(0)
+ node CAlignDist = bits(T_191048, 7, 0)
+ wire sExpSum : UInt<14>
+ sExpSum := sExpAlignedProd
+ when CAlignDist_floor : sExpSum := expC
+ node T_191049 = dshr(SInt<257>(-115792089237316195423570985008687907853269984665640564039457584007913129639936), CAlignDist)
+ node T_191050 = bits(T_191049, 147, 95)
+ node T_191051 = bits(T_191050, 31, 0)
+ node T_191052 = dshl(UInt<16>(65535), UInt<5>(16))
+ node T_191053 = xor(UInt<32>(4294967295), T_191052)
+ node T_191054 = dshr(T_191051, UInt<5>(16))
+ node T_191055 = and(T_191054, T_191053)
+ node T_191056 = bits(T_191051, 15, 0)
+ node T_191057 = dshl(T_191056, UInt<5>(16))
+ node T_191058 = not(T_191053)
+ node T_191059 = and(T_191057, T_191058)
+ node T_191060 = or(T_191055, T_191059)
+ node T_191061 = bits(T_191053, 23, 0)
+ node T_191062 = dshl(T_191061, UInt<4>(8))
+ node T_191063 = xor(T_191053, T_191062)
+ node T_191064 = dshr(T_191060, UInt<4>(8))
+ node T_191065 = and(T_191064, T_191063)
+ node T_191066 = bits(T_191060, 23, 0)
+ node T_191067 = dshl(T_191066, UInt<4>(8))
+ node T_191068 = not(T_191063)
+ node T_191069 = and(T_191067, T_191068)
+ node T_191070 = or(T_191065, T_191069)
+ node T_191071 = bits(T_191063, 27, 0)
+ node T_191072 = dshl(T_191071, UInt<3>(4))
+ node T_191073 = xor(T_191063, T_191072)
+ node T_191074 = dshr(T_191070, UInt<3>(4))
+ node T_191075 = and(T_191074, T_191073)
+ node T_191076 = bits(T_191070, 27, 0)
+ node T_191077 = dshl(T_191076, UInt<3>(4))
+ node T_191078 = not(T_191073)
+ node T_191079 = and(T_191077, T_191078)
+ node T_191080 = or(T_191075, T_191079)
+ node T_191081 = bits(T_191073, 29, 0)
+ node T_191082 = dshl(T_191081, UInt<2>(2))
+ node T_191083 = xor(T_191073, T_191082)
+ node T_191084 = dshr(T_191080, UInt<2>(2))
+ node T_191085 = and(T_191084, T_191083)
+ node T_191086 = bits(T_191080, 29, 0)
+ node T_191087 = dshl(T_191086, UInt<2>(2))
+ node T_191088 = not(T_191083)
+ node T_191089 = and(T_191087, T_191088)
+ node T_191090 = or(T_191085, T_191089)
+ node T_191091 = bits(T_191083, 30, 0)
+ node T_191092 = dshl(T_191091, UInt<1>(1))
+ node T_191093 = xor(T_191083, T_191092)
+ node T_191094 = dshr(T_191090, UInt<1>(1))
+ node T_191095 = and(T_191094, T_191093)
+ node T_191096 = bits(T_191090, 30, 0)
+ node T_191097 = dshl(T_191096, UInt<1>(1))
+ node T_191098 = not(T_191093)
+ node T_191099 = and(T_191097, T_191098)
+ node T_191100 = or(T_191095, T_191099)
+ node T_191101 = bits(T_191050, 52, 32)
+ node T_191102 = bits(T_191101, 15, 0)
+ node T_191103 = dshl(UInt<8>(255), UInt<4>(8))
+ node T_191104 = xor(UInt<16>(65535), T_191103)
+ node T_191105 = dshr(T_191102, UInt<4>(8))
+ node T_191106 = and(T_191105, T_191104)
+ node T_191107 = bits(T_191102, 7, 0)
+ node T_191108 = dshl(T_191107, UInt<4>(8))
+ node T_191109 = not(T_191104)
+ node T_191110 = and(T_191108, T_191109)
+ node T_191111 = or(T_191106, T_191110)
+ node T_191112 = bits(T_191104, 11, 0)
+ node T_191113 = dshl(T_191112, UInt<3>(4))
+ node T_191114 = xor(T_191104, T_191113)
+ node T_191115 = dshr(T_191111, UInt<3>(4))
+ node T_191116 = and(T_191115, T_191114)
+ node T_191117 = bits(T_191111, 11, 0)
+ node T_191118 = dshl(T_191117, UInt<3>(4))
+ node T_191119 = not(T_191114)
+ node T_191120 = and(T_191118, T_191119)
+ node T_191121 = or(T_191116, T_191120)
+ node T_191122 = bits(T_191114, 13, 0)
+ node T_191123 = dshl(T_191122, UInt<2>(2))
+ node T_191124 = xor(T_191114, T_191123)
+ node T_191125 = dshr(T_191121, UInt<2>(2))
+ node T_191126 = and(T_191125, T_191124)
+ node T_191127 = bits(T_191121, 13, 0)
+ node T_191128 = dshl(T_191127, UInt<2>(2))
+ node T_191129 = not(T_191124)
+ node T_191130 = and(T_191128, T_191129)
+ node T_191131 = or(T_191126, T_191130)
+ node T_191132 = bits(T_191124, 14, 0)
+ node T_191133 = dshl(T_191132, UInt<1>(1))
+ node T_191134 = xor(T_191124, T_191133)
+ node T_191135 = dshr(T_191131, UInt<1>(1))
+ node T_191136 = and(T_191135, T_191134)
+ node T_191137 = bits(T_191131, 14, 0)
+ node T_191138 = dshl(T_191137, UInt<1>(1))
+ node T_191139 = not(T_191134)
+ node T_191140 = and(T_191138, T_191139)
+ node T_191141 = or(T_191136, T_191140)
+ node T_191142 = bits(T_191101, 20, 16)
+ node T_191143 = bits(T_191142, 3, 0)
+ node T_191144 = bits(T_191143, 1, 0)
+ node T_191145 = bits(T_191144, 0, 0)
+ node T_191146 = bits(T_191144, 1, 1)
+ node T_191147 = cat(T_191145, T_191146)
+ node T_191148 = bits(T_191143, 3, 2)
+ node T_191149 = bits(T_191148, 0, 0)
+ node T_191150 = bits(T_191148, 1, 1)
+ node T_191151 = cat(T_191149, T_191150)
+ node T_191152 = cat(T_191147, T_191151)
+ node T_191153 = bits(T_191142, 4, 4)
+ node T_191154 = cat(T_191152, T_191153)
+ node T_191155 = cat(T_191141, T_191154)
+ node CExtraMask = cat(T_191100, T_191155)
+ node T_191156 = not(sigC)
+ wire negSigC : UInt<53>
+ negSigC := sigC
+ when doSubMags : negSigC := T_191156
+ node T_191157 = subw(UInt<108>(0), UInt<7>(108))
+ node T_191158 = cat(negSigC, T_191157)
+ node T_191159 = cat(doSubMags, T_191158)
+ node T_191160 = asSInt(T_191159)
+ node T_191161 = dshr(T_191160, CAlignDist)
+ node T_191162 = and(sigC, CExtraMask)
+ node T_191163 = neq(T_191162, UInt<1>(0))
+ node T_191164 = xor(T_191163, doSubMags)
+ node T_191165 = asUInt(T_191161)
+ node T_191166 = cat(T_191165, T_191164)
+ node alignedNegSigC = bits(T_191166, 161, 0)
+ node T_191167 = mul(sigA, sigB)
+ node T_191168 = dshl(T_191167, UInt<1>(1))
+ node sigSum = addw(T_191168, alignedNegSigC)
+ node T_191169 = bits(sigSum, 108, 1)
+ node T_191170 = xor(UInt<108>(0), T_191169)
+ node T_191171 = or(UInt<108>(0), T_191169)
+ node T_191172 = dshl(T_191171, UInt<1>(1))
+ node T_191173 = xor(T_191170, T_191172)
+ node T_191174 = bit(T_191173, 107)
+ node T_191175 = bit(T_191173, 106)
+ node T_191176 = bit(T_191173, 105)
+ node T_191177 = bit(T_191173, 104)
+ node T_191178 = bit(T_191173, 103)
+ node T_191179 = bit(T_191173, 102)
+ node T_191180 = bit(T_191173, 101)
+ node T_191181 = bit(T_191173, 100)
+ node T_191182 = bit(T_191173, 99)
+ node T_191183 = bit(T_191173, 98)
+ node T_191184 = bit(T_191173, 97)
+ node T_191185 = bit(T_191173, 96)
+ node T_191186 = bit(T_191173, 95)
+ node T_191187 = bit(T_191173, 94)
+ node T_191188 = bit(T_191173, 93)
+ node T_191189 = bit(T_191173, 92)
+ node T_191190 = bit(T_191173, 91)
+ node T_191191 = bit(T_191173, 90)
+ node T_191192 = bit(T_191173, 89)
+ node T_191193 = bit(T_191173, 88)
+ node T_191194 = bit(T_191173, 87)
+ node T_191195 = bit(T_191173, 86)
+ node T_191196 = bit(T_191173, 85)
+ node T_191197 = bit(T_191173, 84)
+ node T_191198 = bit(T_191173, 83)
+ node T_191199 = bit(T_191173, 82)
+ node T_191200 = bit(T_191173, 81)
+ node T_191201 = bit(T_191173, 80)
+ node T_191202 = bit(T_191173, 79)
+ node T_191203 = bit(T_191173, 78)
+ node T_191204 = bit(T_191173, 77)
+ node T_191205 = bit(T_191173, 76)
+ node T_191206 = bit(T_191173, 75)
+ node T_191207 = bit(T_191173, 74)
+ node T_191208 = bit(T_191173, 73)
+ node T_191209 = bit(T_191173, 72)
+ node T_191210 = bit(T_191173, 71)
+ node T_191211 = bit(T_191173, 70)
+ node T_191212 = bit(T_191173, 69)
+ node T_191213 = bit(T_191173, 68)
+ node T_191214 = bit(T_191173, 67)
+ node T_191215 = bit(T_191173, 66)
+ node T_191216 = bit(T_191173, 65)
+ node T_191217 = bit(T_191173, 64)
+ node T_191218 = bit(T_191173, 63)
+ node T_191219 = bit(T_191173, 62)
+ node T_191220 = bit(T_191173, 61)
+ node T_191221 = bit(T_191173, 60)
+ node T_191222 = bit(T_191173, 59)
+ node T_191223 = bit(T_191173, 58)
+ node T_191224 = bit(T_191173, 57)
+ node T_191225 = bit(T_191173, 56)
+ node T_191226 = bit(T_191173, 55)
+ node T_191227 = bit(T_191173, 54)
+ node T_191228 = bit(T_191173, 53)
+ node T_191229 = bit(T_191173, 52)
+ node T_191230 = bit(T_191173, 51)
+ node T_191231 = bit(T_191173, 50)
+ node T_191232 = bit(T_191173, 49)
+ node T_191233 = bit(T_191173, 48)
+ node T_191234 = bit(T_191173, 47)
+ node T_191235 = bit(T_191173, 46)
+ node T_191236 = bit(T_191173, 45)
+ node T_191237 = bit(T_191173, 44)
+ node T_191238 = bit(T_191173, 43)
+ node T_191239 = bit(T_191173, 42)
+ node T_191240 = bit(T_191173, 41)
+ node T_191241 = bit(T_191173, 40)
+ node T_191242 = bit(T_191173, 39)
+ node T_191243 = bit(T_191173, 38)
+ node T_191244 = bit(T_191173, 37)
+ node T_191245 = bit(T_191173, 36)
+ node T_191246 = bit(T_191173, 35)
+ node T_191247 = bit(T_191173, 34)
+ node T_191248 = bit(T_191173, 33)
+ node T_191249 = bit(T_191173, 32)
+ node T_191250 = bit(T_191173, 31)
+ node T_191251 = bit(T_191173, 30)
+ node T_191252 = bit(T_191173, 29)
+ node T_191253 = bit(T_191173, 28)
+ node T_191254 = bit(T_191173, 27)
+ node T_191255 = bit(T_191173, 26)
+ node T_191256 = bit(T_191173, 25)
+ node T_191257 = bit(T_191173, 24)
+ node T_191258 = bit(T_191173, 23)
+ node T_191259 = bit(T_191173, 22)
+ node T_191260 = bit(T_191173, 21)
+ node T_191261 = bit(T_191173, 20)
+ node T_191262 = bit(T_191173, 19)
+ node T_191263 = bit(T_191173, 18)
+ node T_191264 = bit(T_191173, 17)
+ node T_191265 = bit(T_191173, 16)
+ node T_191266 = bit(T_191173, 15)
+ node T_191267 = bit(T_191173, 14)
+ node T_191268 = bit(T_191173, 13)
+ node T_191269 = bit(T_191173, 12)
+ node T_191270 = bit(T_191173, 11)
+ node T_191271 = bit(T_191173, 10)
+ node T_191272 = bit(T_191173, 9)
+ node T_191273 = bit(T_191173, 8)
+ node T_191274 = bit(T_191173, 7)
+ node T_191275 = bit(T_191173, 6)
+ node T_191276 = bit(T_191173, 5)
+ node T_191277 = bit(T_191173, 4)
+ node T_191278 = bit(T_191173, 3)
+ node T_191279 = bit(T_191173, 2)
+ node T_191280 = bit(T_191173, 1)
+ node T_191281 = bit(T_191173, 0)
+ wire T_191282 : UInt<8>
+ T_191282 := UInt<8>(160)
+ when T_191280 : T_191282 := UInt<8>(159)
+ wire T_191283 : UInt<8>
+ T_191283 := T_191282
+ when T_191279 : T_191283 := UInt<8>(158)
+ wire T_191284 : UInt<8>
+ T_191284 := T_191283
+ when T_191278 : T_191284 := UInt<8>(157)
+ wire T_191285 : UInt<8>
+ T_191285 := T_191284
+ when T_191277 : T_191285 := UInt<8>(156)
+ wire T_191286 : UInt<8>
+ T_191286 := T_191285
+ when T_191276 : T_191286 := UInt<8>(155)
+ wire T_191287 : UInt<8>
+ T_191287 := T_191286
+ when T_191275 : T_191287 := UInt<8>(154)
+ wire T_191288 : UInt<8>
+ T_191288 := T_191287
+ when T_191274 : T_191288 := UInt<8>(153)
+ wire T_191289 : UInt<8>
+ T_191289 := T_191288
+ when T_191273 : T_191289 := UInt<8>(152)
+ wire T_191290 : UInt<8>
+ T_191290 := T_191289
+ when T_191272 : T_191290 := UInt<8>(151)
+ wire T_191291 : UInt<8>
+ T_191291 := T_191290
+ when T_191271 : T_191291 := UInt<8>(150)
+ wire T_191292 : UInt<8>
+ T_191292 := T_191291
+ when T_191270 : T_191292 := UInt<8>(149)
+ wire T_191293 : UInt<8>
+ T_191293 := T_191292
+ when T_191269 : T_191293 := UInt<8>(148)
+ wire T_191294 : UInt<8>
+ T_191294 := T_191293
+ when T_191268 : T_191294 := UInt<8>(147)
+ wire T_191295 : UInt<8>
+ T_191295 := T_191294
+ when T_191267 : T_191295 := UInt<8>(146)
+ wire T_191296 : UInt<8>
+ T_191296 := T_191295
+ when T_191266 : T_191296 := UInt<8>(145)
+ wire T_191297 : UInt<8>
+ T_191297 := T_191296
+ when T_191265 : T_191297 := UInt<8>(144)
+ wire T_191298 : UInt<8>
+ T_191298 := T_191297
+ when T_191264 : T_191298 := UInt<8>(143)
+ wire T_191299 : UInt<8>
+ T_191299 := T_191298
+ when T_191263 : T_191299 := UInt<8>(142)
+ wire T_191300 : UInt<8>
+ T_191300 := T_191299
+ when T_191262 : T_191300 := UInt<8>(141)
+ wire T_191301 : UInt<8>
+ T_191301 := T_191300
+ when T_191261 : T_191301 := UInt<8>(140)
+ wire T_191302 : UInt<8>
+ T_191302 := T_191301
+ when T_191260 : T_191302 := UInt<8>(139)
+ wire T_191303 : UInt<8>
+ T_191303 := T_191302
+ when T_191259 : T_191303 := UInt<8>(138)
+ wire T_191304 : UInt<8>
+ T_191304 := T_191303
+ when T_191258 : T_191304 := UInt<8>(137)
+ wire T_191305 : UInt<8>
+ T_191305 := T_191304
+ when T_191257 : T_191305 := UInt<8>(136)
+ wire T_191306 : UInt<8>
+ T_191306 := T_191305
+ when T_191256 : T_191306 := UInt<8>(135)
+ wire T_191307 : UInt<8>
+ T_191307 := T_191306
+ when T_191255 : T_191307 := UInt<8>(134)
+ wire T_191308 : UInt<8>
+ T_191308 := T_191307
+ when T_191254 : T_191308 := UInt<8>(133)
+ wire T_191309 : UInt<8>
+ T_191309 := T_191308
+ when T_191253 : T_191309 := UInt<8>(132)
+ wire T_191310 : UInt<8>
+ T_191310 := T_191309
+ when T_191252 : T_191310 := UInt<8>(131)
+ wire T_191311 : UInt<8>
+ T_191311 := T_191310
+ when T_191251 : T_191311 := UInt<8>(130)
+ wire T_191312 : UInt<8>
+ T_191312 := T_191311
+ when T_191250 : T_191312 := UInt<8>(129)
+ wire T_191313 : UInt<8>
+ T_191313 := T_191312
+ when T_191249 : T_191313 := UInt<8>(128)
+ wire T_191314 : UInt<8>
+ T_191314 := T_191313
+ when T_191248 : T_191314 := UInt<8>(127)
+ wire T_191315 : UInt<8>
+ T_191315 := T_191314
+ when T_191247 : T_191315 := UInt<8>(126)
+ wire T_191316 : UInt<8>
+ T_191316 := T_191315
+ when T_191246 : T_191316 := UInt<8>(125)
+ wire T_191317 : UInt<8>
+ T_191317 := T_191316
+ when T_191245 : T_191317 := UInt<8>(124)
+ wire T_191318 : UInt<8>
+ T_191318 := T_191317
+ when T_191244 : T_191318 := UInt<8>(123)
+ wire T_191319 : UInt<8>
+ T_191319 := T_191318
+ when T_191243 : T_191319 := UInt<8>(122)
+ wire T_191320 : UInt<8>
+ T_191320 := T_191319
+ when T_191242 : T_191320 := UInt<8>(121)
+ wire T_191321 : UInt<8>
+ T_191321 := T_191320
+ when T_191241 : T_191321 := UInt<8>(120)
+ wire T_191322 : UInt<8>
+ T_191322 := T_191321
+ when T_191240 : T_191322 := UInt<8>(119)
+ wire T_191323 : UInt<8>
+ T_191323 := T_191322
+ when T_191239 : T_191323 := UInt<8>(118)
+ wire T_191324 : UInt<8>
+ T_191324 := T_191323
+ when T_191238 : T_191324 := UInt<8>(117)
+ wire T_191325 : UInt<8>
+ T_191325 := T_191324
+ when T_191237 : T_191325 := UInt<8>(116)
+ wire T_191326 : UInt<8>
+ T_191326 := T_191325
+ when T_191236 : T_191326 := UInt<8>(115)
+ wire T_191327 : UInt<8>
+ T_191327 := T_191326
+ when T_191235 : T_191327 := UInt<8>(114)
+ wire T_191328 : UInt<8>
+ T_191328 := T_191327
+ when T_191234 : T_191328 := UInt<8>(113)
+ wire T_191329 : UInt<8>
+ T_191329 := T_191328
+ when T_191233 : T_191329 := UInt<8>(112)
+ wire T_191330 : UInt<8>
+ T_191330 := T_191329
+ when T_191232 : T_191330 := UInt<8>(111)
+ wire T_191331 : UInt<8>
+ T_191331 := T_191330
+ when T_191231 : T_191331 := UInt<8>(110)
+ wire T_191332 : UInt<8>
+ T_191332 := T_191331
+ when T_191230 : T_191332 := UInt<8>(109)
+ wire T_191333 : UInt<8>
+ T_191333 := T_191332
+ when T_191229 : T_191333 := UInt<8>(108)
+ wire T_191334 : UInt<8>
+ T_191334 := T_191333
+ when T_191228 : T_191334 := UInt<8>(107)
+ wire T_191335 : UInt<8>
+ T_191335 := T_191334
+ when T_191227 : T_191335 := UInt<8>(106)
+ wire T_191336 : UInt<8>
+ T_191336 := T_191335
+ when T_191226 : T_191336 := UInt<8>(105)
+ wire T_191337 : UInt<8>
+ T_191337 := T_191336
+ when T_191225 : T_191337 := UInt<8>(104)
+ wire T_191338 : UInt<8>
+ T_191338 := T_191337
+ when T_191224 : T_191338 := UInt<8>(103)
+ wire T_191339 : UInt<8>
+ T_191339 := T_191338
+ when T_191223 : T_191339 := UInt<8>(102)
+ wire T_191340 : UInt<8>
+ T_191340 := T_191339
+ when T_191222 : T_191340 := UInt<8>(101)
+ wire T_191341 : UInt<8>
+ T_191341 := T_191340
+ when T_191221 : T_191341 := UInt<8>(100)
+ wire T_191342 : UInt<8>
+ T_191342 := T_191341
+ when T_191220 : T_191342 := UInt<8>(99)
+ wire T_191343 : UInt<8>
+ T_191343 := T_191342
+ when T_191219 : T_191343 := UInt<8>(98)
+ wire T_191344 : UInt<8>
+ T_191344 := T_191343
+ when T_191218 : T_191344 := UInt<8>(97)
+ wire T_191345 : UInt<8>
+ T_191345 := T_191344
+ when T_191217 : T_191345 := UInt<8>(96)
+ wire T_191346 : UInt<8>
+ T_191346 := T_191345
+ when T_191216 : T_191346 := UInt<8>(95)
+ wire T_191347 : UInt<8>
+ T_191347 := T_191346
+ when T_191215 : T_191347 := UInt<8>(94)
+ wire T_191348 : UInt<8>
+ T_191348 := T_191347
+ when T_191214 : T_191348 := UInt<8>(93)
+ wire T_191349 : UInt<8>
+ T_191349 := T_191348
+ when T_191213 : T_191349 := UInt<8>(92)
+ wire T_191350 : UInt<8>
+ T_191350 := T_191349
+ when T_191212 : T_191350 := UInt<8>(91)
+ wire T_191351 : UInt<8>
+ T_191351 := T_191350
+ when T_191211 : T_191351 := UInt<8>(90)
+ wire T_191352 : UInt<8>
+ T_191352 := T_191351
+ when T_191210 : T_191352 := UInt<8>(89)
+ wire T_191353 : UInt<8>
+ T_191353 := T_191352
+ when T_191209 : T_191353 := UInt<8>(88)
+ wire T_191354 : UInt<8>
+ T_191354 := T_191353
+ when T_191208 : T_191354 := UInt<8>(87)
+ wire T_191355 : UInt<8>
+ T_191355 := T_191354
+ when T_191207 : T_191355 := UInt<8>(86)
+ wire T_191356 : UInt<8>
+ T_191356 := T_191355
+ when T_191206 : T_191356 := UInt<8>(85)
+ wire T_191357 : UInt<8>
+ T_191357 := T_191356
+ when T_191205 : T_191357 := UInt<8>(84)
+ wire T_191358 : UInt<8>
+ T_191358 := T_191357
+ when T_191204 : T_191358 := UInt<8>(83)
+ wire T_191359 : UInt<8>
+ T_191359 := T_191358
+ when T_191203 : T_191359 := UInt<8>(82)
+ wire T_191360 : UInt<8>
+ T_191360 := T_191359
+ when T_191202 : T_191360 := UInt<8>(81)
+ wire T_191361 : UInt<8>
+ T_191361 := T_191360
+ when T_191201 : T_191361 := UInt<8>(80)
+ wire T_191362 : UInt<8>
+ T_191362 := T_191361
+ when T_191200 : T_191362 := UInt<8>(79)
+ wire T_191363 : UInt<8>
+ T_191363 := T_191362
+ when T_191199 : T_191363 := UInt<8>(78)
+ wire T_191364 : UInt<8>
+ T_191364 := T_191363
+ when T_191198 : T_191364 := UInt<8>(77)
+ wire T_191365 : UInt<8>
+ T_191365 := T_191364
+ when T_191197 : T_191365 := UInt<8>(76)
+ wire T_191366 : UInt<8>
+ T_191366 := T_191365
+ when T_191196 : T_191366 := UInt<8>(75)
+ wire T_191367 : UInt<8>
+ T_191367 := T_191366
+ when T_191195 : T_191367 := UInt<8>(74)
+ wire T_191368 : UInt<8>
+ T_191368 := T_191367
+ when T_191194 : T_191368 := UInt<8>(73)
+ wire T_191369 : UInt<8>
+ T_191369 := T_191368
+ when T_191193 : T_191369 := UInt<8>(72)
+ wire T_191370 : UInt<8>
+ T_191370 := T_191369
+ when T_191192 : T_191370 := UInt<8>(71)
+ wire T_191371 : UInt<8>
+ T_191371 := T_191370
+ when T_191191 : T_191371 := UInt<8>(70)
+ wire T_191372 : UInt<8>
+ T_191372 := T_191371
+ when T_191190 : T_191372 := UInt<8>(69)
+ wire T_191373 : UInt<8>
+ T_191373 := T_191372
+ when T_191189 : T_191373 := UInt<8>(68)
+ wire T_191374 : UInt<8>
+ T_191374 := T_191373
+ when T_191188 : T_191374 := UInt<8>(67)
+ wire T_191375 : UInt<8>
+ T_191375 := T_191374
+ when T_191187 : T_191375 := UInt<8>(66)
+ wire T_191376 : UInt<8>
+ T_191376 := T_191375
+ when T_191186 : T_191376 := UInt<8>(65)
+ wire T_191377 : UInt<8>
+ T_191377 := T_191376
+ when T_191185 : T_191377 := UInt<8>(64)
+ wire T_191378 : UInt<8>
+ T_191378 := T_191377
+ when T_191184 : T_191378 := UInt<8>(63)
+ wire T_191379 : UInt<8>
+ T_191379 := T_191378
+ when T_191183 : T_191379 := UInt<8>(62)
+ wire T_191380 : UInt<8>
+ T_191380 := T_191379
+ when T_191182 : T_191380 := UInt<8>(61)
+ wire T_191381 : UInt<8>
+ T_191381 := T_191380
+ when T_191181 : T_191381 := UInt<8>(60)
+ wire T_191382 : UInt<8>
+ T_191382 := T_191381
+ when T_191180 : T_191382 := UInt<8>(59)
+ wire T_191383 : UInt<8>
+ T_191383 := T_191382
+ when T_191179 : T_191383 := UInt<8>(58)
+ wire T_191384 : UInt<8>
+ T_191384 := T_191383
+ when T_191178 : T_191384 := UInt<8>(57)
+ wire T_191385 : UInt<8>
+ T_191385 := T_191384
+ when T_191177 : T_191385 := UInt<8>(56)
+ wire T_191386 : UInt<8>
+ T_191386 := T_191385
+ when T_191176 : T_191386 := UInt<8>(55)
+ wire T_191387 : UInt<8>
+ T_191387 := T_191386
+ when T_191175 : T_191387 := UInt<8>(54)
+ wire estNormPos_dist : UInt<8>
+ estNormPos_dist := T_191387
+ when T_191174 : estNormPos_dist := UInt<8>(53)
+ node T_191388 = bits(sigSum, 75, 44)
+ node T_191389 = neq(T_191388, UInt<1>(0))
+ node T_191390 = bits(sigSum, 43, 0)
+ node T_191391 = neq(T_191390, UInt<1>(0))
+ node firstReduceSigSum = cat(T_191389, T_191391)
+ node notSigSum = not(sigSum)
+ node T_191392 = bits(notSigSum, 75, 44)
+ node T_191393 = neq(T_191392, UInt<1>(0))
+ node T_191394 = bits(notSigSum, 43, 0)
+ node T_191395 = neq(T_191394, UInt<1>(0))
+ node firstReduceNotSigSum = cat(T_191393, T_191395)
+ node T_191396 = or(CAlignDist_0, doSubMags)
+ node T_191397 = subw(CAlignDist, UInt<1>(1))
+ node T_191398 = bits(T_191397, 5, 0)
+ wire CDom_estNormDist : UInt<6>
+ CDom_estNormDist := T_191398
+ when T_191396 : CDom_estNormDist := CAlignDist
+ node T_191399 = not(doSubMags)
+ node T_191400 = bit(CDom_estNormDist, 5)
+ node T_191401 = not(T_191400)
+ node T_191402 = and(T_191399, T_191401)
+ node T_191403 = asSInt(T_191402)
+ node T_191404 = bits(sigSum, 161, 76)
+ node T_191405 = neq(firstReduceSigSum, UInt<1>(0))
+ node T_191406 = cat(T_191404, T_191405)
+ node T_191407 = asSInt(T_191406)
+ node T_191408 = and(T_191403, T_191407)
+ node T_191409 = not(doSubMags)
+ node T_191410 = bit(CDom_estNormDist, 5)
+ node T_191411 = and(T_191409, T_191410)
+ node T_191412 = asSInt(T_191411)
+ node T_191413 = bits(sigSum, 129, 44)
+ node T_191414 = bit(firstReduceSigSum, 0)
+ node T_191415 = cat(T_191413, T_191414)
+ node T_191416 = asSInt(T_191415)
+ node T_191417 = and(T_191412, T_191416)
+ node T_191418 = or(T_191408, T_191417)
+ node T_191419 = bit(CDom_estNormDist, 5)
+ node T_191420 = not(T_191419)
+ node T_191421 = and(doSubMags, T_191420)
+ node T_191422 = asSInt(T_191421)
+ node T_191423 = bits(notSigSum, 161, 76)
+ node T_191424 = neq(firstReduceNotSigSum, UInt<1>(0))
+ node T_191425 = cat(T_191423, T_191424)
+ node T_191426 = asSInt(T_191425)
+ node T_191427 = and(T_191422, T_191426)
+ node T_191428 = or(T_191418, T_191427)
+ node T_191429 = bit(CDom_estNormDist, 5)
+ node T_191430 = and(doSubMags, T_191429)
+ node T_191431 = asSInt(T_191430)
+ node T_191432 = bits(notSigSum, 129, 44)
+ node T_191433 = bit(firstReduceNotSigSum, 0)
+ node T_191434 = cat(T_191432, T_191433)
+ node T_191435 = asSInt(T_191434)
+ node T_191436 = and(T_191431, T_191435)
+ node T_191437 = or(T_191428, T_191436)
+ node CDom_firstNormAbsSigSum = asUInt(T_191437)
+ node T_191438 = bits(sigSum, 108, 44)
+ node T_191439 = bit(firstReduceNotSigSum, 0)
+ node T_191440 = not(T_191439)
+ node T_191441 = bit(firstReduceSigSum, 0)
+ wire T_191442 : UInt<1>
+ T_191442 := T_191441
+ when doSubMags : T_191442 := T_191440
+ node T_191443 = cat(T_191438, T_191442)
+ node T_191444 = bits(sigSum, 97, 1)
+ node T_191445 = bit(estNormPos_dist, 4)
+ node T_191446 = bits(sigSum, 1, 1)
+ node T_191447 = subw(UInt<86>(0), UInt<7>(86))
+ node T_191448 = cat(T_191446, T_191447)
+ wire T_191449 : UInt<87>
+ T_191449 := T_191448
+ when T_191445 : T_191449 := T_191443
+ node T_191450 = bits(sigSum, 97, 12)
+ node T_191451 = bits(notSigSum, 11, 1)
+ node T_191452 = eq(T_191451, UInt<1>(0))
+ node T_191453 = bits(sigSum, 11, 1)
+ node T_191454 = neq(T_191453, UInt<1>(0))
+ wire T_191455 : UInt<1>
+ T_191455 := T_191454
+ when doSubMags : T_191455 := T_191452
+ node T_191456 = cat(T_191450, T_191455)
+ node T_191457 = bit(estNormPos_dist, 6)
+ node T_191458 = bit(estNormPos_dist, 5)
+ node T_191459 = bits(sigSum, 65, 1)
+ node T_191460 = subw(UInt<22>(0), UInt<5>(22))
+ node T_191461 = cat(T_191459, T_191460)
+ wire T_191462 : UInt<87>
+ T_191462 := T_191456
+ when T_191458 : T_191462 := T_191461
+ node T_191463 = bit(estNormPos_dist, 5)
+ node T_191464 = bits(sigSum, 33, 1)
+ node T_191465 = subw(UInt<54>(0), UInt<6>(54))
+ node T_191466 = cat(T_191464, T_191465)
+ wire T_191467 : UInt<87>
+ T_191467 := T_191466
+ when T_191463 : T_191467 := T_191449
+ wire notCDom_pos_firstNormAbsSigSum : UInt<87>
+ notCDom_pos_firstNormAbsSigSum := T_191467
+ when T_191457 : notCDom_pos_firstNormAbsSigSum := T_191462
+ node T_191468 = bits(notSigSum, 107, 44)
+ node T_191469 = bit(firstReduceNotSigSum, 0)
+ node T_191470 = cat(T_191468, T_191469)
+ node T_191471 = bits(notSigSum, 97, 1)
+ node T_191472 = bit(estNormPos_dist, 4)
+ node T_191473 = bits(notSigSum, 2, 1)
+ node T_191474 = dshl(T_191473, UInt<7>(86))
+ wire T_191475 : UInt<130>
+ T_191475 := T_191474
+ when T_191472 : T_191475 := T_191470
+ node T_191476 = bits(notSigSum, 98, 12)
+ node T_191477 = bits(notSigSum, 11, 1)
+ node T_191478 = neq(T_191477, UInt<1>(0))
+ node T_191479 = cat(T_191476, T_191478)
+ node T_191480 = bit(estNormPos_dist, 6)
+ node T_191481 = bit(estNormPos_dist, 5)
+ node T_191482 = bits(notSigSum, 66, 1)
+ node T_191483 = dshl(T_191482, UInt<5>(22))
+ wire T_191484 : UInt<88>
+ T_191484 := T_191479
+ when T_191481 : T_191484 := T_191483
+ node T_191485 = bit(estNormPos_dist, 5)
+ node T_191486 = bits(notSigSum, 34, 1)
+ node T_191487 = dshl(T_191486, UInt<6>(54))
+ wire T_191488 : UInt<98>
+ T_191488 := T_191487
+ when T_191485 : T_191488 := T_191475
+ wire notCDom_neg_cFirstNormAbsSigSum : UInt<98>
+ notCDom_neg_cFirstNormAbsSigSum := T_191488
+ when T_191480 : notCDom_neg_cFirstNormAbsSigSum := T_191484
+ node notCDom_signSigSum = bit(sigSum, 109)
+ node T_191489 = not(isZeroC)
+ node T_191490 = and(doSubMags, T_191489)
+ wire doNegSignSum : UInt<1>
+ doNegSignSum := notCDom_signSigSum
+ when isCDominant : doNegSignSum := T_191490
+ wire T_191491 : UInt<8>
+ T_191491 := estNormPos_dist
+ when notCDom_signSigSum : T_191491 := estNormPos_dist
+ wire estNormDist : UInt<8>
+ estNormDist := T_191491
+ when isCDominant : estNormDist := CDom_estNormDist
+ wire T_191492 : UInt<98>
+ T_191492 := notCDom_neg_cFirstNormAbsSigSum
+ when isCDominant : T_191492 := CDom_firstNormAbsSigSum
+ wire T_191493 : UInt<87>
+ T_191493 := notCDom_pos_firstNormAbsSigSum
+ when isCDominant : T_191493 := CDom_firstNormAbsSigSum
+ wire cFirstNormAbsSigSum : UInt<87>
+ cFirstNormAbsSigSum := T_191493
+ when notCDom_signSigSum : cFirstNormAbsSigSum := T_191492
+ node T_191494 = not(isCDominant)
+ node T_191495 = not(notCDom_signSigSum)
+ node T_191496 = and(T_191494, T_191495)
+ node doIncrSig = and(T_191496, doSubMags)
+ node estNormDist_5 = bits(estNormDist, 4, 0)
+ node normTo2ShiftDist = not(estNormDist_5)
+ node T_191497 = dshr(SInt<33>(-4294967296), normTo2ShiftDist)
+ node T_191498 = bits(T_191497, 31, 1)
+ node T_191499 = bits(T_191498, 15, 0)
+ node T_191500 = dshl(UInt<8>(255), UInt<4>(8))
+ node T_191501 = xor(UInt<16>(65535), T_191500)
+ node T_191502 = dshr(T_191499, UInt<4>(8))
+ node T_191503 = and(T_191502, T_191501)
+ node T_191504 = bits(T_191499, 7, 0)
+ node T_191505 = dshl(T_191504, UInt<4>(8))
+ node T_191506 = not(T_191501)
+ node T_191507 = and(T_191505, T_191506)
+ node T_191508 = or(T_191503, T_191507)
+ node T_191509 = bits(T_191501, 11, 0)
+ node T_191510 = dshl(T_191509, UInt<3>(4))
+ node T_191511 = xor(T_191501, T_191510)
+ node T_191512 = dshr(T_191508, UInt<3>(4))
+ node T_191513 = and(T_191512, T_191511)
+ node T_191514 = bits(T_191508, 11, 0)
+ node T_191515 = dshl(T_191514, UInt<3>(4))
+ node T_191516 = not(T_191511)
+ node T_191517 = and(T_191515, T_191516)
+ node T_191518 = or(T_191513, T_191517)
+ node T_191519 = bits(T_191511, 13, 0)
+ node T_191520 = dshl(T_191519, UInt<2>(2))
+ node T_191521 = xor(T_191511, T_191520)
+ node T_191522 = dshr(T_191518, UInt<2>(2))
+ node T_191523 = and(T_191522, T_191521)
+ node T_191524 = bits(T_191518, 13, 0)
+ node T_191525 = dshl(T_191524, UInt<2>(2))
+ node T_191526 = not(T_191521)
+ node T_191527 = and(T_191525, T_191526)
+ node T_191528 = or(T_191523, T_191527)
+ node T_191529 = bits(T_191521, 14, 0)
+ node T_191530 = dshl(T_191529, UInt<1>(1))
+ node T_191531 = xor(T_191521, T_191530)
+ node T_191532 = dshr(T_191528, UInt<1>(1))
+ node T_191533 = and(T_191532, T_191531)
+ node T_191534 = bits(T_191528, 14, 0)
+ node T_191535 = dshl(T_191534, UInt<1>(1))
+ node T_191536 = not(T_191531)
+ node T_191537 = and(T_191535, T_191536)
+ node T_191538 = or(T_191533, T_191537)
+ node T_191539 = bits(T_191498, 30, 16)
+ node T_191540 = bits(T_191539, 7, 0)
+ node T_191541 = dshl(UInt<4>(15), UInt<3>(4))
+ node T_191542 = xor(UInt<8>(255), T_191541)
+ node T_191543 = dshr(T_191540, UInt<3>(4))
+ node T_191544 = and(T_191543, T_191542)
+ node T_191545 = bits(T_191540, 3, 0)
+ node T_191546 = dshl(T_191545, UInt<3>(4))
+ node T_191547 = not(T_191542)
+ node T_191548 = and(T_191546, T_191547)
+ node T_191549 = or(T_191544, T_191548)
+ node T_191550 = bits(T_191542, 5, 0)
+ node T_191551 = dshl(T_191550, UInt<2>(2))
+ node T_191552 = xor(T_191542, T_191551)
+ node T_191553 = dshr(T_191549, UInt<2>(2))
+ node T_191554 = and(T_191553, T_191552)
+ node T_191555 = bits(T_191549, 5, 0)
+ node T_191556 = dshl(T_191555, UInt<2>(2))
+ node T_191557 = not(T_191552)
+ node T_191558 = and(T_191556, T_191557)
+ node T_191559 = or(T_191554, T_191558)
+ node T_191560 = bits(T_191552, 6, 0)
+ node T_191561 = dshl(T_191560, UInt<1>(1))
+ node T_191562 = xor(T_191552, T_191561)
+ node T_191563 = dshr(T_191559, UInt<1>(1))
+ node T_191564 = and(T_191563, T_191562)
+ node T_191565 = bits(T_191559, 6, 0)
+ node T_191566 = dshl(T_191565, UInt<1>(1))
+ node T_191567 = not(T_191562)
+ node T_191568 = and(T_191566, T_191567)
+ node T_191569 = or(T_191564, T_191568)
+ node T_191570 = bits(T_191539, 14, 8)
+ node T_191571 = bits(T_191570, 3, 0)
+ node T_191572 = bits(T_191571, 1, 0)
+ node T_191573 = bits(T_191572, 0, 0)
+ node T_191574 = bits(T_191572, 1, 1)
+ node T_191575 = cat(T_191573, T_191574)
+ node T_191576 = bits(T_191571, 3, 2)
+ node T_191577 = bits(T_191576, 0, 0)
+ node T_191578 = bits(T_191576, 1, 1)
+ node T_191579 = cat(T_191577, T_191578)
+ node T_191580 = cat(T_191575, T_191579)
+ node T_191581 = bits(T_191570, 6, 4)
+ node T_191582 = bits(T_191581, 1, 0)
+ node T_191583 = bits(T_191582, 0, 0)
+ node T_191584 = bits(T_191582, 1, 1)
+ node T_191585 = cat(T_191583, T_191584)
+ node T_191586 = bits(T_191581, 2, 2)
+ node T_191587 = cat(T_191585, T_191586)
+ node T_191588 = cat(T_191580, T_191587)
+ node T_191589 = cat(T_191569, T_191588)
+ node T_191590 = cat(T_191538, T_191589)
+ node absSigSumExtraMask = cat(T_191590, UInt<1>(1))
+ node T_191591 = bits(cFirstNormAbsSigSum, 87, 1)
+ node T_191592 = dshr(T_191591, normTo2ShiftDist)
+ node T_191593 = bits(cFirstNormAbsSigSum, 31, 0)
+ node T_191594 = not(T_191593)
+ node T_191595 = and(T_191594, absSigSumExtraMask)
+ node T_191596 = eq(T_191595, UInt<1>(0))
+ node T_191597 = bits(cFirstNormAbsSigSum, 31, 0)
+ node T_191598 = and(T_191597, absSigSumExtraMask)
+ node T_191599 = neq(T_191598, UInt<1>(0))
+ wire T_191600 : UInt<1>
+ T_191600 := T_191599
+ when doIncrSig : T_191600 := T_191596
+ node T_191601 = cat(T_191592, T_191600)
+ node sigX3 = bits(T_191601, 56, 0)
+ node T_191602 = bits(sigX3, 56, 55)
+ node sigX3Shift1 = eq(T_191602, UInt<1>(0))
+ node sExpX3 = subw(sExpSum, estNormDist)
+ node T_191603 = bits(sigX3, 56, 54)
+ node isZeroY = eq(T_191603, UInt<1>(0))
+ node T_191604 = not(isZeroY)
+ node T_191605 = xor(signProd, doNegSignSum)
+ node signY = and(T_191604, T_191605)
+ node sExpX3_13 = bits(sExpX3, 12, 0)
+ node T_191606 = bit(sExpX3, 13)
+ node T_191607 = subw(UInt<56>(0), UInt<6>(56))
+ node T_191608 = not(sExpX3_13)
+ node T_191609 = dshr(SInt<8193>(-1090748135619415929462984244733782862448264161996232692431832786189721331849119295216264234525201987223957291796157025273109870820177184063610979765077554799078906298842192989538609825228048205159696851613591638196771886542609324560121290553901886301017900252535799917200010079600026535836800905297805880952350501630195475653911005312364560014847426035293551245843928918752768696279344088055617515694349945406677825140814900616105920256438504578013326493565836047242407382442812245131517757519164899226365743722432277368075027627883045206501792761700945699168497257879683851737049996900961120515655050115561271491492515342105748966629547032786321505730828430221664970324396138635251626409516168005427623435996308921691446181187406395310665404885739434832877428167407495370993511868756359970390117021823616749458620969857006263612082706715408157066575137281027022310927564910276759160520878304632411049364568754920967322982459184763427383790272448438018526977764941072715611580434690827459339991961414242741410599117426060556483763756314527611362658628383368621157993638020878537675545336789915694234433955666315070087213535470255670312004130725495834508357439653828936077080978550578912967907352780054935621561090795845172954115972927479877527738560008204118558930004777748727761853813510493840581861598652211605960308356405941821189714037868726219481498727603653616298856174822413033485438785324024751419417183012281078209729303537372804574372095228703622776363945290869806258422355148507571039619387449629866808188769662815778153079393179093143648340761738581819563002994422790754955061288818308430079648693232179158765918035565216157115402992120276155607873107937477466841528362987708699450152031231862594203085693838944657061346236704234026821102958954951197087076546186622796294536451620756509351018906023773821539532776208676978589731966330308893304665169436185078350641568336944530051437491311298834367265238595404904273455928723949525227184617404367854754610474377019768025576605881038077270707717942221977090385438585844095492116099852538903974655703943973086090930596963360767529964938414598185705963754561497355827813623833288906309004288017321424808663962671333528009232758350873059614118723781422101460198615747386855096896089189180441339558524822867541113212638793675567650340362970031930023397828465318547238244232028015189689660418822976000815437610652254270163595650875433851147123214227266605403581781469090806576468950587661997186505665475715792896), T_191608)
+ node T_191610 = bits(T_191609, 1027, 974)
+ node T_191611 = bits(T_191610, 31, 0)
+ node T_191612 = dshl(UInt<16>(65535), UInt<5>(16))
+ node T_191613 = xor(UInt<32>(4294967295), T_191612)
+ node T_191614 = dshr(T_191611, UInt<5>(16))
+ node T_191615 = and(T_191614, T_191613)
+ node T_191616 = bits(T_191611, 15, 0)
+ node T_191617 = dshl(T_191616, UInt<5>(16))
+ node T_191618 = not(T_191613)
+ node T_191619 = and(T_191617, T_191618)
+ node T_191620 = or(T_191615, T_191619)
+ node T_191621 = bits(T_191613, 23, 0)
+ node T_191622 = dshl(T_191621, UInt<4>(8))
+ node T_191623 = xor(T_191613, T_191622)
+ node T_191624 = dshr(T_191620, UInt<4>(8))
+ node T_191625 = and(T_191624, T_191623)
+ node T_191626 = bits(T_191620, 23, 0)
+ node T_191627 = dshl(T_191626, UInt<4>(8))
+ node T_191628 = not(T_191623)
+ node T_191629 = and(T_191627, T_191628)
+ node T_191630 = or(T_191625, T_191629)
+ node T_191631 = bits(T_191623, 27, 0)
+ node T_191632 = dshl(T_191631, UInt<3>(4))
+ node T_191633 = xor(T_191623, T_191632)
+ node T_191634 = dshr(T_191630, UInt<3>(4))
+ node T_191635 = and(T_191634, T_191633)
+ node T_191636 = bits(T_191630, 27, 0)
+ node T_191637 = dshl(T_191636, UInt<3>(4))
+ node T_191638 = not(T_191633)
+ node T_191639 = and(T_191637, T_191638)
+ node T_191640 = or(T_191635, T_191639)
+ node T_191641 = bits(T_191633, 29, 0)
+ node T_191642 = dshl(T_191641, UInt<2>(2))
+ node T_191643 = xor(T_191633, T_191642)
+ node T_191644 = dshr(T_191640, UInt<2>(2))
+ node T_191645 = and(T_191644, T_191643)
+ node T_191646 = bits(T_191640, 29, 0)
+ node T_191647 = dshl(T_191646, UInt<2>(2))
+ node T_191648 = not(T_191643)
+ node T_191649 = and(T_191647, T_191648)
+ node T_191650 = or(T_191645, T_191649)
+ node T_191651 = bits(T_191643, 30, 0)
+ node T_191652 = dshl(T_191651, UInt<1>(1))
+ node T_191653 = xor(T_191643, T_191652)
+ node T_191654 = dshr(T_191650, UInt<1>(1))
+ node T_191655 = and(T_191654, T_191653)
+ node T_191656 = bits(T_191650, 30, 0)
+ node T_191657 = dshl(T_191656, UInt<1>(1))
+ node T_191658 = not(T_191653)
+ node T_191659 = and(T_191657, T_191658)
+ node T_191660 = or(T_191655, T_191659)
+ node T_191661 = bits(T_191610, 53, 32)
+ node T_191662 = bits(T_191661, 15, 0)
+ node T_191663 = dshl(UInt<8>(255), UInt<4>(8))
+ node T_191664 = xor(UInt<16>(65535), T_191663)
+ node T_191665 = dshr(T_191662, UInt<4>(8))
+ node T_191666 = and(T_191665, T_191664)
+ node T_191667 = bits(T_191662, 7, 0)
+ node T_191668 = dshl(T_191667, UInt<4>(8))
+ node T_191669 = not(T_191664)
+ node T_191670 = and(T_191668, T_191669)
+ node T_191671 = or(T_191666, T_191670)
+ node T_191672 = bits(T_191664, 11, 0)
+ node T_191673 = dshl(T_191672, UInt<3>(4))
+ node T_191674 = xor(T_191664, T_191673)
+ node T_191675 = dshr(T_191671, UInt<3>(4))
+ node T_191676 = and(T_191675, T_191674)
+ node T_191677 = bits(T_191671, 11, 0)
+ node T_191678 = dshl(T_191677, UInt<3>(4))
+ node T_191679 = not(T_191674)
+ node T_191680 = and(T_191678, T_191679)
+ node T_191681 = or(T_191676, T_191680)
+ node T_191682 = bits(T_191674, 13, 0)
+ node T_191683 = dshl(T_191682, UInt<2>(2))
+ node T_191684 = xor(T_191674, T_191683)
+ node T_191685 = dshr(T_191681, UInt<2>(2))
+ node T_191686 = and(T_191685, T_191684)
+ node T_191687 = bits(T_191681, 13, 0)
+ node T_191688 = dshl(T_191687, UInt<2>(2))
+ node T_191689 = not(T_191684)
+ node T_191690 = and(T_191688, T_191689)
+ node T_191691 = or(T_191686, T_191690)
+ node T_191692 = bits(T_191684, 14, 0)
+ node T_191693 = dshl(T_191692, UInt<1>(1))
+ node T_191694 = xor(T_191684, T_191693)
+ node T_191695 = dshr(T_191691, UInt<1>(1))
+ node T_191696 = and(T_191695, T_191694)
+ node T_191697 = bits(T_191691, 14, 0)
+ node T_191698 = dshl(T_191697, UInt<1>(1))
+ node T_191699 = not(T_191694)
+ node T_191700 = and(T_191698, T_191699)
+ node T_191701 = or(T_191696, T_191700)
+ node T_191702 = bits(T_191661, 21, 16)
+ node T_191703 = bits(T_191702, 3, 0)
+ node T_191704 = bits(T_191703, 1, 0)
+ node T_191705 = bits(T_191704, 0, 0)
+ node T_191706 = bits(T_191704, 1, 1)
+ node T_191707 = cat(T_191705, T_191706)
+ node T_191708 = bits(T_191703, 3, 2)
+ node T_191709 = bits(T_191708, 0, 0)
+ node T_191710 = bits(T_191708, 1, 1)
+ node T_191711 = cat(T_191709, T_191710)
+ node T_191712 = cat(T_191707, T_191711)
+ node T_191713 = bits(T_191702, 5, 4)
+ node T_191714 = bits(T_191713, 0, 0)
+ node T_191715 = bits(T_191713, 1, 1)
+ node T_191716 = cat(T_191714, T_191715)
+ node T_191717 = cat(T_191712, T_191716)
+ node T_191718 = cat(T_191701, T_191717)
+ node T_191719 = cat(T_191660, T_191718)
+ node T_191720 = bit(sigX3, 55)
+ node T_191721 = or(T_191719, T_191720)
+ node T_191722 = cat(T_191721, UInt<2>(3))
+ node roundMask = or(T_191607, T_191722)
+ node T_191723 = dshr(roundMask, UInt<1>(1))
+ node T_191724 = not(T_191723)
+ node roundPosMask = and(T_191724, roundMask)
+ node T_191725 = and(sigX3, roundPosMask)
+ node roundPosBit = neq(T_191725, UInt<1>(0))
+ node T_191726 = dshr(roundMask, UInt<1>(1))
+ node T_191727 = and(sigX3, T_191726)
+ node anyRoundExtra = neq(T_191727, UInt<1>(0))
+ node T_191728 = not(sigX3)
+ node T_191729 = dshr(roundMask, UInt<1>(1))
+ node T_191730 = and(T_191728, T_191729)
+ node allRoundExtra = eq(T_191730, UInt<1>(0))
+ node anyRound = or(roundPosBit, anyRoundExtra)
+ node allRound = and(roundPosBit, allRoundExtra)
+ wire roundDirectUp : UInt<1>
+ roundDirectUp := roundingMode_max
+ when signY : roundDirectUp := roundingMode_min
+ node T_191731 = not(doIncrSig)
+ node T_191732 = and(T_191731, roundingMode_nearest_even)
+ node T_191733 = and(T_191732, roundPosBit)
+ node T_191734 = and(T_191733, anyRoundExtra)
+ node T_191735 = not(doIncrSig)
+ node T_191736 = and(T_191735, roundDirectUp)
+ node T_191737 = and(T_191736, anyRound)
+ node T_191738 = or(T_191734, T_191737)
+ node T_191739 = and(doIncrSig, allRound)
+ node T_191740 = or(T_191738, T_191739)
+ node T_191741 = and(doIncrSig, roundingMode_nearest_even)
+ node T_191742 = and(T_191741, roundPosBit)
+ node T_191743 = or(T_191740, T_191742)
+ node T_191744 = and(doIncrSig, roundDirectUp)
+ node roundUp = or(T_191743, T_191744)
+ node T_191745 = not(roundPosBit)
+ node T_191746 = and(roundingMode_nearest_even, T_191745)
+ node T_191747 = and(T_191746, allRoundExtra)
+ node T_191748 = and(roundingMode_nearest_even, roundPosBit)
+ node T_191749 = not(anyRoundExtra)
+ node T_191750 = and(T_191748, T_191749)
+ wire roundEven : UInt<1>
+ roundEven := T_191750
+ when doIncrSig : roundEven := T_191747
+ node T_191751 = not(allRound)
+ wire roundInexact : UInt<1>
+ roundInexact := anyRound
+ when doIncrSig : roundInexact := T_191751
+ node T_191752 = or(sigX3, roundMask)
+ node T_191753 = dshr(T_191752, UInt<2>(2))
+ node T_191754 = addw(T_191753, UInt<1>(1))
+ node roundUp_sigY3 = bits(T_191754, 54, 0)
+ node T_191755 = not(roundUp)
+ node T_191756 = not(roundEven)
+ node T_191757 = and(T_191755, T_191756)
+ node T_191758 = not(roundMask)
+ node T_191759 = and(sigX3, T_191758)
+ node T_191760 = dshr(T_191759, UInt<2>(2))
+ wire T_191761 : UInt<1>
+ T_191761 := UInt<1>(0)
+ when T_191757 : T_191761 := T_191760
+ wire T_191762 : UInt<1>
+ T_191762 := UInt<1>(0)
+ when roundUp : T_191762 := roundUp_sigY3
+ node T_191763 = or(T_191761, T_191762)
+ node T_191764 = dshr(roundMask, UInt<1>(1))
+ node T_191765 = not(T_191764)
+ node T_191766 = and(roundUp_sigY3, T_191765)
+ wire T_191767 : UInt<1>
+ T_191767 := UInt<1>(0)
+ when roundEven : T_191767 := T_191766
+ node sigY3 = or(T_191763, T_191767)
+ node T_191768 = bit(sigY3, 54)
+ node T_191769 = addw(sExpX3, UInt<1>(1))
+ wire T_191770 : UInt<1>
+ T_191770 := UInt<1>(0)
+ when T_191768 : T_191770 := T_191769
+ node T_191771 = bit(sigY3, 53)
+ wire T_191772 : UInt<1>
+ T_191772 := UInt<1>(0)
+ when T_191771 : T_191772 := sExpX3
+ node T_191773 = or(T_191770, T_191772)
+ node T_191774 = bits(sigY3, 54, 53)
+ node T_191775 = eq(T_191774, UInt<1>(0))
+ node T_191776 = subw(sExpX3, UInt<1>(1))
+ wire T_191777 : UInt<1>
+ T_191777 := UInt<1>(0)
+ when T_191775 : T_191777 := T_191776
+ node sExpY = or(T_191773, T_191777)
+ node expY = bits(sExpY, 11, 0)
+ node T_191778 = bits(sigY3, 51, 0)
+ node T_191779 = bits(sigY3, 52, 1)
+ wire fractY : UInt<52>
+ fractY := T_191779
+ when sigX3Shift1 : fractY := T_191778
+ node T_191780 = bits(sExpY, 12, 10)
+ node overflowY = eq(T_191780, UInt<2>(3))
+ node T_191781 = bit(sExpY, 12)
+ node T_191782 = bits(sExpY, 11, 0)
+ node T_191783 = lt(T_191782, UInt<10>(974))
+ node totalUnderflowY = or(T_191781, T_191783)
+ node T_191784 = bit(sExpX3, 13)
+ wire T_191785 : UInt<11>
+ T_191785 := UInt<11>(1025)
+ when sigX3Shift1 : T_191785 := UInt<11>(1026)
+ node T_191786 = leq(sExpX3_13, T_191785)
+ node T_191787 = or(T_191784, T_191786)
+ node underflowY = and(roundInexact, T_191787)
+ node T_191788 = and(roundingMode_min, signY)
+ node T_191789 = or(roundingMode_nearest_even, T_191788)
+ node T_191790 = not(signY)
+ node T_191791 = and(roundingMode_max, T_191790)
+ node overflowY_roundMagUp = or(T_191789, T_191791)
+ node mulSpecial = or(isSpecialA, isSpecialB)
+ node addSpecial = or(mulSpecial, isSpecialC)
+ node notSpecial_addZeros = and(isZeroProd, isZeroC)
+ node T_191792 = not(addSpecial)
+ node T_191793 = not(notSpecial_addZeros)
+ node commonCase = and(T_191792, T_191793)
+ node T_191794 = and(isInfA, isZeroB)
+ node T_191795 = and(isZeroA, isInfB)
+ node T_191796 = or(T_191794, T_191795)
+ node T_191797 = not(isNaNA)
+ node T_191798 = not(isNaNB)
+ node T_191799 = and(T_191797, T_191798)
+ node T_191800 = or(isInfA, isInfB)
+ node T_191801 = and(T_191799, T_191800)
+ node T_191802 = and(T_191801, isInfC)
+ node T_191803 = and(T_191802, doSubMags)
+ node notSigNaN_invalid = or(T_191796, T_191803)
+ node T_191804 = or(isSigNaNA, isSigNaNB)
+ node T_191805 = or(T_191804, isSigNaNC)
+ node invalid = or(T_191805, notSigNaN_invalid)
+ node overflow = and(commonCase, overflowY)
+ node underflow = and(commonCase, underflowY)
+ node T_191806 = and(commonCase, roundInexact)
+ node inexact = or(overflow, T_191806)
+ node T_191807 = or(notSpecial_addZeros, isZeroY)
+ node notSpecial_isZeroOut = or(T_191807, totalUnderflowY)
+ node T_191808 = not(overflowY_roundMagUp)
+ node isSatOut = and(overflow, T_191808)
+ node T_191809 = or(isInfA, isInfB)
+ node T_191810 = or(T_191809, isInfC)
+ node T_191811 = and(overflow, overflowY_roundMagUp)
+ node notNaN_isInfOut = or(T_191810, T_191811)
+ node T_191812 = or(isNaNA, isNaNB)
+ node T_191813 = or(T_191812, isNaNC)
+ node isNaNOut = or(T_191813, notSigNaN_invalid)
+ node T_191814 = eq(doSubMags, UInt<1>(0))
+ node T_191815 = and(T_191814, opSignC)
+ node T_191816 = and(isNaNOut, UInt<1>(1))
+ node T_191817 = or(T_191815, T_191816)
+ node T_191818 = eq(isSpecialC, UInt<1>(0))
+ node T_191819 = and(mulSpecial, T_191818)
+ node T_191820 = and(T_191819, signProd)
+ node T_191821 = or(T_191817, T_191820)
+ node T_191822 = eq(mulSpecial, UInt<1>(0))
+ node T_191823 = and(T_191822, isSpecialC)
+ node T_191824 = and(T_191823, opSignC)
+ node T_191825 = or(T_191821, T_191824)
+ node T_191826 = eq(mulSpecial, UInt<1>(0))
+ node T_191827 = and(T_191826, notSpecial_addZeros)
+ node T_191828 = and(T_191827, doSubMags)
+ node T_191829 = and(T_191828, UInt<1>(0))
+ node T_191830 = or(T_191825, T_191829)
+ node T_191831 = and(commonCase, signY)
+ node signOut = or(T_191830, T_191831)
+ wire T_191832 : UInt<12>
+ T_191832 := UInt<12>(0)
+ when notSpecial_isZeroOut : T_191832 := UInt<12>(3584)
+ node T_191833 = not(T_191832)
+ node T_191834 = and(expY, T_191833)
+ wire T_191835 : UInt<12>
+ T_191835 := UInt<12>(0)
+ when isSatOut : T_191835 := UInt<11>(1024)
+ node T_191836 = not(T_191835)
+ node T_191837 = and(T_191834, T_191836)
+ wire T_191838 : UInt<12>
+ T_191838 := UInt<12>(0)
+ when notNaN_isInfOut : T_191838 := UInt<10>(512)
+ node T_191839 = not(T_191838)
+ node T_191840 = and(T_191837, T_191839)
+ wire T_191841 : UInt<12>
+ T_191841 := UInt<12>(0)
+ when isSatOut : T_191841 := UInt<12>(3071)
+ node T_191842 = or(T_191840, T_191841)
+ wire T_191843 : UInt<12>
+ T_191843 := UInt<12>(0)
+ when notNaN_isInfOut : T_191843 := UInt<12>(3072)
+ node T_191844 = or(T_191842, T_191843)
+ wire T_191845 : UInt<12>
+ T_191845 := UInt<12>(0)
+ when isNaNOut : T_191845 := UInt<12>(3584)
+ node expOut = or(T_191844, T_191845)
+ node T_191846 = or(isNaNOut, isSatOut)
+ node T_191847 = subw(UInt<52>(0), UInt<6>(52))
+ node fractOut = or(fractY, T_191847)
+ node T_191848 = cat(expOut, fractOut)
+ node T_191849 = cat(signOut, T_191848)
+ out := T_191849
+ node T_191850 = cat(invalid, UInt<1>(0))
+ node T_191851 = cat(underflow, inexact)
+ node T_191852 = cat(overflow, T_191851)
+ node T_191853 = cat(T_191850, T_191852)
+ exceptionFlags := T_191853
+ module FPUFMAPipe_160964 :
+ input in : {valid : UInt<1>, bits : {cmd : UInt<5>, ldst : UInt<1>, wen : UInt<1>, ren1 : UInt<1>, ren2 : UInt<1>, ren3 : UInt<1>, swap12 : UInt<1>, swap23 : UInt<1>, single : UInt<1>, fromint : UInt<1>, toint : UInt<1>, fastpipe : UInt<1>, fma : UInt<1>, div : UInt<1>, sqrt : UInt<1>, round : UInt<1>, wflags : UInt<1>, rm : UInt<3>, typ : UInt<2>, in1 : UInt<65>, in2 : UInt<65>, in3 : UInt<65>}}
+ output out : {valid : UInt<1>, bits : {data : UInt<65>, exc : UInt<5>}}
+
+ node one = shl(UInt<1>(1), 63)
+ node T_191854 = bit(in.bits.in1, 64)
+ node T_191855 = bit(in.bits.in2, 64)
+ node T_191856 = xor(T_191854, T_191855)
+ node zero = shl(T_191856, 64)
+ reg valid : UInt<1>
+ valid := in.valid
+ reg in : {cmd : UInt<5>, ldst : UInt<1>, wen : UInt<1>, ren1 : UInt<1>, ren2 : UInt<1>, ren3 : UInt<1>, swap12 : UInt<1>, swap23 : UInt<1>, single : UInt<1>, fromint : UInt<1>, toint : UInt<1>, fastpipe : UInt<1>, fma : UInt<1>, div : UInt<1>, sqrt : UInt<1>, round : UInt<1>, wflags : UInt<1>, rm : UInt<3>, typ : UInt<2>, in1 : UInt<65>, in2 : UInt<65>, in3 : UInt<65>}
+ when in.valid :
+ in := in.bits
+ node T_191857 = bit(in.bits.cmd, 1)
+ node T_191858 = or(in.bits.ren3, in.bits.swap23)
+ node T_191859 = and(T_191857, T_191858)
+ node T_191860 = bit(in.bits.cmd, 0)
+ node T_191861 = cat(T_191859, T_191860)
+ in.cmd := T_191861
+ when in.bits.swap23 : in.in2 := one
+ node T_191862 = or(in.bits.ren3, in.bits.swap23)
+
+ node T_191863 = eq(T_191862, UInt<1>(0))
+ when T_191863 : in.in3 := zero
+ inst fma of mulAddSubRecodedFloatN_160940
+ fma.op := in.cmd
+ fma.roundingMode := in.rm
+ fma.a := in.in1
+ fma.b := in.in2
+ fma.c := in.in3
+ wire res : {data : UInt<65>, exc : UInt<5>}
+ res.data := fma.out
+ res.exc := fma.exceptionFlags
+ reg T_191864 : UInt<1>
+ onreset T_191864 := UInt<1>(0)
+ T_191864 := valid
+ reg T_191865 : {data : UInt<65>, exc : UInt<5>}
+ when valid : T_191865 := res
+ reg T_191866 : UInt<1>
+ onreset T_191866 := UInt<1>(0)
+ T_191866 := T_191864
+ reg T_191867 : {data : UInt<65>, exc : UInt<5>}
+ when T_191864 : T_191867 := T_191865
+ T_191868.valid <> T_191866
+ T_191868.bits <> T_191867
+ out := T_191868
+ module recodedFloatNCompare :
+ input a : UInt<65>
+ input b : UInt<65>
+ output a_eq_b : UInt<1>
+ output a_lt_b : UInt<1>
+ output a_eq_b_invalid : UInt<1>
+ output a_lt_b_invalid : UInt<1>
+
+ node signA = bit(a, 64)
+ node expA = bits(a, 63, 52)
+ node sigA = bits(a, 51, 0)
+ node codeA = bits(expA, 11, 9)
+ node T_191869 = eq(codeA, UInt<1>(0))
+ node T_191870 = eq(T_191869, UInt<1>(0))
+ node isZeroA = eq(T_191870, UInt<1>(0))
+ node isNaNA = eq(codeA, UInt<1>(-1))
+ node T_191871 = bit(sigA, 51)
+ node T_191872 = eq(T_191871, UInt<1>(0))
+ node isSignalingNaNA = and(isNaNA, T_191872)
+ node signB = bit(b, 64)
+ node expB = bits(b, 63, 52)
+ node sigB = bits(b, 51, 0)
+ node codeB = bits(expB, 11, 9)
+ node T_191873 = eq(codeB, UInt<1>(0))
+ node T_191874 = eq(T_191873, UInt<1>(0))
+ node isZeroB = eq(T_191874, UInt<1>(0))
+ node isNaNB = eq(codeB, UInt<1>(-1))
+ node T_191875 = bit(sigB, 51)
+ node T_191876 = eq(T_191875, UInt<1>(0))
+ node isSignalingNaNB = and(isNaNB, T_191876)
+ node signEqual = eq(signA, signB)
+ node expEqual = eq(expA, expB)
+ node T_191877 = eq(sigA, sigB)
+ node magEqual = and(expEqual, T_191877)
+ node T_191878 = lt(expA, expB)
+ node T_191879 = lt(sigA, sigB)
+ node T_191880 = and(expEqual, T_191879)
+ node magLess = or(T_191878, T_191880)
+ node T_191881 = or(isSignalingNaNA, isSignalingNaNB)
+ a_eq_b_invalid := T_191881
+ node T_191882 = or(isNaNA, isNaNB)
+ a_lt_b_invalid := T_191882
+ node T_191883 = eq(isNaNA, UInt<1>(0))
+ node T_191884 = and(T_191883, magEqual)
+ node T_191885 = or(isZeroA, signEqual)
+ node T_191886 = and(T_191884, T_191885)
+ a_eq_b := T_191886
+ node T_191887 = eq(a_lt_b_invalid, UInt<1>(0))
+ node T_191888 = eq(magLess, UInt<1>(0))
+ node T_191889 = and(signA, T_191888)
+ node T_191890 = eq(magEqual, UInt<1>(0))
+ node T_191891 = and(T_191889, T_191890)
+ node T_191892 = and(isZeroA, isZeroB)
+ node T_191893 = eq(T_191892, UInt<1>(0))
+ wire T_191894 : UInt<1>
+ T_191894 := magLess
+ when signA : T_191894 := T_191893
+ wire T_191895 : UInt<1>
+ T_191895 := T_191894
+ when signB : T_191895 := T_191891
+ node T_191896 = and(T_191887, T_191895)
+ a_lt_b := T_191896
+ module FPToInt :
+ input in : {valid : UInt<1>, bits : {cmd : UInt<5>, ldst : UInt<1>, wen : UInt<1>, ren1 : UInt<1>, ren2 : UInt<1>, ren3 : UInt<1>, swap12 : UInt<1>, swap23 : UInt<1>, single : UInt<1>, fromint : UInt<1>, toint : UInt<1>, fastpipe : UInt<1>, fma : UInt<1>, div : UInt<1>, sqrt : UInt<1>, round : UInt<1>, wflags : UInt<1>, rm : UInt<3>, typ : UInt<2>, in1 : UInt<65>, in2 : UInt<65>, in3 : UInt<65>}}
+ output as_double : {cmd : UInt<5>, ldst : UInt<1>, wen : UInt<1>, ren1 : UInt<1>, ren2 : UInt<1>, ren3 : UInt<1>, swap12 : UInt<1>, swap23 : UInt<1>, single : UInt<1>, fromint : UInt<1>, toint : UInt<1>, fastpipe : UInt<1>, fma : UInt<1>, div : UInt<1>, sqrt : UInt<1>, round : UInt<1>, wflags : UInt<1>, rm : UInt<3>, typ : UInt<2>, in1 : UInt<65>, in2 : UInt<65>, in3 : UInt<65>}
+ output out : {valid : UInt<1>, bits : {lt : UInt<1>, store : UInt<64>, toint : UInt<64>, exc : UInt<5>}}
+
+ reg in : {cmd : UInt<5>, ldst : UInt<1>, wen : UInt<1>, ren1 : UInt<1>, ren2 : UInt<1>, ren3 : UInt<1>, swap12 : UInt<1>, swap23 : UInt<1>, single : UInt<1>, fromint : UInt<1>, toint : UInt<1>, fastpipe : UInt<1>, fma : UInt<1>, div : UInt<1>, sqrt : UInt<1>, round : UInt<1>, wflags : UInt<1>, rm : UInt<3>, typ : UInt<2>, in1 : UInt<65>, in2 : UInt<65>, in3 : UInt<65>}
+ reg valid : UInt<1>
+ valid := in.valid
+ when in.valid :
+ in := in.bits
+
+
+ node T_191897 = eq(in.bits.ldst, UInt<1>(0))
+ node T_191898 = and(in.bits.single, T_191897)
+ node T_191899 = and(in.bits.cmd, UInt<4>(12))
+ node T_191900 = eq(UInt<4>(12), T_191899)
+ node T_191901 = eq(T_191900, UInt<1>(0))
+ node T_191902 = and(T_191898, T_191901)
+ when T_191902 :
+ node T_191903 = bit(in.bits.in1, 32)
+ node T_191904 = bits(in.bits.in1, 22, 0)
+ node T_191905 = bits(in.bits.in1, 31, 23)
+ node T_191906 = bits(in.bits.in1, 31, 29)
+ node T_191907 = bits(in.bits.in1, 30, 23)
+ node T_191908 = eq(T_191906, UInt<1>(-1))
+ node T_191909 = bit(T_191904, 22)
+ node T_191910 = eq(T_191909, UInt<1>(0))
+ node T_191911 = and(T_191908, T_191910)
+ node T_191912 = lt(T_191906, UInt<1>(1))
+ node T_191913 = lt(T_191906, UInt<3>(4))
+ node T_191914 = cat(UInt<3>(7), T_191907)
+ node T_191915 = lt(T_191906, UInt<3>(6))
+ node T_191916 = cat(UInt<4>(8), T_191907)
+ node T_191917 = lt(T_191906, UInt<3>(7))
+ wire T_191918 : UInt<12>
+ T_191918 := UInt<12>(3584)
+ when T_191917 : T_191918 := UInt<12>(3072)
+ wire T_191919 : UInt<12>
+ T_191919 := T_191918
+ when T_191915 : T_191919 := T_191916
+ wire T_191920 : UInt<12>
+ T_191920 := T_191919
+ when T_191913 : T_191920 := T_191914
+ wire T_191921 : UInt<12>
+ T_191921 := T_191920
+ when T_191912 : T_191921 := T_191907
+ node T_191922 = subw(UInt<52>(0), UInt<6>(52))
+ node T_191923 = dshl(T_191904, UInt<5>(29))
+ node T_191924 = or(T_191922, T_191923)
+ node T_191925 = cat(T_191921, T_191924)
+ node T_191926 = cat(T_191903, T_191925)
+ node T_191927 = dshl(T_191911, UInt<3>(4))
+ in.in1 := T_191926
+ node T_191928 = bit(in.bits.in2, 32)
+ node T_191929 = bits(in.bits.in2, 22, 0)
+ node T_191930 = bits(in.bits.in2, 31, 23)
+ node T_191931 = bits(in.bits.in2, 31, 29)
+ node T_191932 = bits(in.bits.in2, 30, 23)
+ node T_191933 = eq(T_191931, UInt<1>(-1))
+ node T_191934 = bit(T_191929, 22)
+ node T_191935 = eq(T_191934, UInt<1>(0))
+ node T_191936 = and(T_191933, T_191935)
+ node T_191937 = lt(T_191931, UInt<1>(1))
+ node T_191938 = lt(T_191931, UInt<3>(4))
+ node T_191939 = cat(UInt<3>(7), T_191932)
+ node T_191940 = lt(T_191931, UInt<3>(6))
+ node T_191941 = cat(UInt<4>(8), T_191932)
+ node T_191942 = lt(T_191931, UInt<3>(7))
+ wire T_191943 : UInt<12>
+ T_191943 := UInt<12>(3584)
+ when T_191942 : T_191943 := UInt<12>(3072)
+ wire T_191944 : UInt<12>
+ T_191944 := T_191943
+ when T_191940 : T_191944 := T_191941
+ wire T_191945 : UInt<12>
+ T_191945 := T_191944
+ when T_191938 : T_191945 := T_191939
+ wire T_191946 : UInt<12>
+ T_191946 := T_191945
+ when T_191937 : T_191946 := T_191932
+ node T_191947 = subw(UInt<52>(0), UInt<6>(52))
+ node T_191948 = dshl(T_191929, UInt<5>(29))
+ node T_191949 = or(T_191947, T_191948)
+ node T_191950 = cat(T_191946, T_191949)
+ node T_191951 = cat(T_191928, T_191950)
+ node T_191952 = dshl(T_191936, UInt<3>(4))
+ in.in2 := T_191951
+ node T_191953 = bit(in.in1, 32)
+ node T_191954 = bits(in.in1, 31, 23)
+ node T_191955 = bits(in.in1, 22, 0)
+ node T_191956 = bits(T_191954, 6, 0)
+ node T_191957 = lt(T_191956, UInt<2>(2))
+ node T_191958 = bits(T_191954, 8, 6)
+ node T_191959 = eq(T_191958, UInt<1>(1))
+ node T_191960 = bits(T_191954, 8, 7)
+ node T_191961 = eq(T_191960, UInt<1>(1))
+ node T_191962 = and(T_191961, T_191957)
+ node T_191963 = or(T_191959, T_191962)
+ node T_191964 = bits(T_191954, 8, 7)
+ node T_191965 = eq(T_191964, UInt<1>(1))
+ node T_191966 = eq(T_191957, UInt<1>(0))
+ node T_191967 = and(T_191965, T_191966)
+ node T_191968 = bits(T_191954, 8, 7)
+ node T_191969 = eq(T_191968, UInt<2>(2))
+ node T_191970 = or(T_191967, T_191969)
+ node T_191971 = bits(T_191954, 8, 7)
+ node T_191972 = eq(T_191971, UInt<2>(3))
+ node T_191973 = bit(T_191954, 6)
+ node T_191974 = and(T_191972, T_191973)
+ node T_191975 = bits(T_191954, 4, 0)
+ node T_191976 = subw(UInt<2>(2), T_191975)
+ node T_191977 = cat(UInt<1>(1), T_191955)
+ node T_191978 = dshr(T_191977, T_191976)
+ node T_191979 = bits(T_191978, 22, 0)
+ node T_191980 = bits(T_191954, 7, 0)
+ node T_191981 = subw(T_191980, UInt<8>(129))
+ node T_191982 = subw(UInt<8>(0), UInt<4>(8))
+ wire T_191983 : UInt<8>
+ T_191983 := T_191982
+ when T_191970 : T_191983 := T_191981
+ node T_191984 = or(T_191970, T_191974)
+ wire T_191985 : UInt<1>
+ T_191985 := UInt<1>(0)
+ when T_191963 : T_191985 := T_191979
+ wire T_191986 : UInt<1>
+ T_191986 := T_191985
+ when T_191984 : T_191986 := T_191955
+ node T_191987 = cat(T_191983, T_191986)
+ node unrec_s = cat(T_191953, T_191987)
+ node T_191988 = bit(in.in1, 64)
+ node T_191989 = bits(in.in1, 63, 52)
+ node T_191990 = bits(in.in1, 51, 0)
+ node T_191991 = bits(T_191989, 9, 0)
+ node T_191992 = lt(T_191991, UInt<2>(2))
+ node T_191993 = bits(T_191989, 11, 9)
+ node T_191994 = eq(T_191993, UInt<1>(1))
+ node T_191995 = bits(T_191989, 11, 10)
+ node T_191996 = eq(T_191995, UInt<1>(1))
+ node T_191997 = and(T_191996, T_191992)
+ node T_191998 = or(T_191994, T_191997)
+ node T_191999 = bits(T_191989, 11, 10)
+ node T_192000 = eq(T_191999, UInt<1>(1))
+ node T_192001 = eq(T_191992, UInt<1>(0))
+ node T_192002 = and(T_192000, T_192001)
+ node T_192003 = bits(T_191989, 11, 10)
+ node T_192004 = eq(T_192003, UInt<2>(2))
+ node T_192005 = or(T_192002, T_192004)
+ node T_192006 = bits(T_191989, 11, 10)
+ node T_192007 = eq(T_192006, UInt<2>(3))
+ node T_192008 = bit(T_191989, 9)
+ node T_192009 = and(T_192007, T_192008)
+ node T_192010 = bits(T_191989, 5, 0)
+ node T_192011 = subw(UInt<2>(2), T_192010)
+ node T_192012 = cat(UInt<1>(1), T_191990)
+ node T_192013 = dshr(T_192012, T_192011)
+ node T_192014 = bits(T_192013, 51, 0)
+ node T_192015 = bits(T_191989, 10, 0)
+ node T_192016 = subw(T_192015, UInt<11>(1025))
+ node T_192017 = subw(UInt<11>(0), UInt<4>(11))
+ wire T_192018 : UInt<11>
+ T_192018 := T_192017
+ when T_192005 : T_192018 := T_192016
+ node T_192019 = or(T_192005, T_192009)
+ wire T_192020 : UInt<1>
+ T_192020 := UInt<1>(0)
+ when T_191998 : T_192020 := T_192014
+ wire T_192021 : UInt<1>
+ T_192021 := T_192020
+ when T_192019 : T_192021 := T_191990
+ node T_192022 = cat(T_192018, T_192021)
+ node unrec_d = cat(T_191988, T_192022)
+ node T_192023 = bit(unrec_s, 31)
+ node T_192024 = subw(UInt<32>(0), UInt<6>(32))
+ node T_192025 = cat(T_192024, unrec_s)
+ wire unrec_out : UInt<13>
+ unrec_out := unrec_d
+ when in.single : unrec_out := T_192025
+ node T_192026 = bit(in.in1, 32)
+ node T_192027 = bits(in.in1, 31, 23)
+ node T_192028 = bits(in.in1, 22, 0)
+ node T_192029 = bits(T_192027, 8, 6)
+ node T_192030 = bits(T_192029, 2, 1)
+ node T_192031 = eq(T_192030, UInt<2>(3))
+ node T_192032 = bits(T_192027, 6, 0)
+ node T_192033 = lt(T_192032, UInt<2>(2))
+ node T_192034 = eq(T_192029, UInt<1>(1))
+ node T_192035 = eq(T_192030, UInt<1>(1))
+ node T_192036 = and(T_192035, T_192033)
+ node T_192037 = or(T_192034, T_192036)
+ node T_192038 = eq(T_192030, UInt<1>(1))
+ node T_192039 = eq(T_192033, UInt<1>(0))
+ node T_192040 = and(T_192038, T_192039)
+ node T_192041 = eq(T_192030, UInt<2>(2))
+ node T_192042 = or(T_192040, T_192041)
+ node T_192043 = eq(T_192029, UInt<1>(0))
+ node T_192044 = bit(T_192027, 6)
+ node T_192045 = eq(T_192044, UInt<1>(0))
+ node T_192046 = and(T_192031, T_192045)
+ node T_192047 = eq(T_192029, UInt<1>(-1))
+ node T_192048 = bit(T_192028, 22)
+ node T_192049 = eq(T_192048, UInt<1>(0))
+ node T_192050 = and(T_192047, T_192049)
+ node T_192051 = bit(T_192028, 22)
+ node T_192052 = and(T_192047, T_192051)
+ node T_192053 = eq(T_192026, UInt<1>(0))
+ node T_192054 = and(T_192046, T_192053)
+ node T_192055 = eq(T_192026, UInt<1>(0))
+ node T_192056 = and(T_192042, T_192055)
+ node T_192057 = eq(T_192026, UInt<1>(0))
+ node T_192058 = and(T_192037, T_192057)
+ node T_192059 = eq(T_192026, UInt<1>(0))
+ node T_192060 = and(T_192043, T_192059)
+ node T_192061 = and(T_192043, T_192026)
+ node T_192062 = and(T_192037, T_192026)
+ node T_192063 = and(T_192042, T_192026)
+ node T_192064 = and(T_192046, T_192026)
+ node T_192065 = cat(T_192052, T_192050)
+ node T_192066 = cat(T_192056, T_192058)
+ node T_192067 = cat(T_192054, T_192066)
+ node T_192068 = cat(T_192065, T_192067)
+ node T_192069 = cat(T_192060, T_192061)
+ node T_192070 = cat(T_192063, T_192064)
+ node T_192071 = cat(T_192062, T_192070)
+ node T_192072 = cat(T_192069, T_192071)
+ node classify_s = cat(T_192068, T_192072)
+ node T_192073 = bit(in.in1, 64)
+ node T_192074 = bits(in.in1, 63, 52)
+ node T_192075 = bits(in.in1, 51, 0)
+ node T_192076 = bits(T_192074, 11, 9)
+ node T_192077 = bits(T_192076, 2, 1)
+ node T_192078 = eq(T_192077, UInt<2>(3))
+ node T_192079 = bits(T_192074, 9, 0)
+ node T_192080 = lt(T_192079, UInt<2>(2))
+ node T_192081 = eq(T_192076, UInt<1>(1))
+ node T_192082 = eq(T_192077, UInt<1>(1))
+ node T_192083 = and(T_192082, T_192080)
+ node T_192084 = or(T_192081, T_192083)
+ node T_192085 = eq(T_192077, UInt<1>(1))
+ node T_192086 = eq(T_192080, UInt<1>(0))
+ node T_192087 = and(T_192085, T_192086)
+ node T_192088 = eq(T_192077, UInt<2>(2))
+ node T_192089 = or(T_192087, T_192088)
+ node T_192090 = eq(T_192076, UInt<1>(0))
+ node T_192091 = bit(T_192074, 9)
+ node T_192092 = eq(T_192091, UInt<1>(0))
+ node T_192093 = and(T_192078, T_192092)
+ node T_192094 = eq(T_192076, UInt<1>(-1))
+ node T_192095 = bit(T_192075, 51)
+ node T_192096 = eq(T_192095, UInt<1>(0))
+ node T_192097 = and(T_192094, T_192096)
+ node T_192098 = bit(T_192075, 51)
+ node T_192099 = and(T_192094, T_192098)
+ node T_192100 = eq(T_192073, UInt<1>(0))
+ node T_192101 = and(T_192093, T_192100)
+ node T_192102 = eq(T_192073, UInt<1>(0))
+ node T_192103 = and(T_192089, T_192102)
+ node T_192104 = eq(T_192073, UInt<1>(0))
+ node T_192105 = and(T_192084, T_192104)
+ node T_192106 = eq(T_192073, UInt<1>(0))
+ node T_192107 = and(T_192090, T_192106)
+ node T_192108 = and(T_192090, T_192073)
+ node T_192109 = and(T_192084, T_192073)
+ node T_192110 = and(T_192089, T_192073)
+ node T_192111 = and(T_192093, T_192073)
+ node T_192112 = cat(T_192099, T_192097)
+ node T_192113 = cat(T_192103, T_192105)
+ node T_192114 = cat(T_192101, T_192113)
+ node T_192115 = cat(T_192112, T_192114)
+ node T_192116 = cat(T_192107, T_192108)
+ node T_192117 = cat(T_192110, T_192111)
+ node T_192118 = cat(T_192109, T_192117)
+ node T_192119 = cat(T_192116, T_192118)
+ node classify_d = cat(T_192115, T_192119)
+ wire classify_out : UInt<10>
+ classify_out := classify_d
+ when in.single : classify_out := classify_s
+ inst dcmp of recodedFloatNCompare
+ dcmp.a := in.in1
+ dcmp.b := in.in2
+ node T_192120 = not(in.rm)
+ node T_192121 = cat(dcmp.a_lt_b, dcmp.a_eq_b)
+ node T_192122 = and(T_192120, T_192121)
+ node T_192123 = eq(T_192122, UInt<1>(0))
+ node dcmp_out = eq(T_192123, UInt<1>(0))
+ node T_192124 = not(in.rm)
+ node T_192125 = cat(dcmp.a_lt_b_invalid, dcmp.a_eq_b_invalid)
+ node T_192126 = and(T_192124, T_192125)
+ node T_192127 = eq(T_192126, UInt<1>(0))
+ node T_192128 = eq(T_192127, UInt<1>(0))
+ node dcmp_exc = dshl(T_192128, UInt<3>(4))
+ node T_192129 = xor(in.typ, UInt<1>(1))
+ node T_192130 = bit(in.in1, 64)
+ node T_192131 = bits(in.in1, 63, 52)
+ node T_192132 = bits(in.in1, 51, 0)
+ node T_192133 = bits(T_192131, 10, 0)
+ node T_192134 = eq(T_192133, UInt<1>(-1))
+ node T_192135 = eq(T_192134, UInt<1>(0))
+ node T_192136 = bit(T_192131, 11)
+ node T_192137 = eq(T_192136, UInt<1>(0))
+ node T_192138 = bits(T_192131, 11, 9)
+ node T_192139 = eq(T_192138, UInt<1>(0))
+ node T_192140 = bits(T_192131, 11, 10)
+ node T_192141 = eq(T_192140, UInt<1>(-1))
+ node T_192142 = bits(T_192131, 5, 0)
+ wire T_192143 : UInt<6>
+ T_192143 := T_192142
+ when T_192137 : T_192143 := UInt<1>(0)
+ node T_192144 = eq(T_192137, UInt<1>(0))
+ node T_192145 = cat(T_192144, T_192132)
+ node T_192146 = dshl(T_192145, T_192143)
+ node T_192147 = bits(T_192146, 115, 52)
+ node T_192148 = bits(T_192146, 52, 51)
+ node T_192149 = bits(T_192146, 50, 0)
+ node T_192150 = eq(T_192149, UInt<1>(0))
+ node T_192151 = eq(T_192150, UInt<1>(0))
+ node T_192152 = cat(T_192148, T_192151)
+ node T_192153 = bits(T_192152, 1, 0)
+ node T_192154 = eq(T_192153, UInt<1>(0))
+ node T_192155 = eq(T_192154, UInt<1>(0))
+ node T_192156 = eq(T_192135, UInt<1>(0))
+ node T_192157 = and(T_192156, T_192155)
+ node T_192158 = bits(T_192152, 2, 1)
+ node T_192159 = eq(T_192158, UInt<1>(-1))
+ node T_192160 = bits(T_192152, 1, 0)
+ node T_192161 = eq(T_192160, UInt<1>(-1))
+ node T_192162 = or(T_192159, T_192161)
+ wire T_192163 : UInt<1>
+ T_192163 := T_192162
+ when T_192137 : T_192163 := T_192157
+ node T_192164 = eq(T_192139, UInt<1>(0))
+ wire T_192165 : UInt<1>
+ T_192165 := T_192155
+ when T_192137 : T_192165 := T_192164
+ node T_192166 = eq(in.rm, UInt<2>(0))
+ node T_192167 = eq(in.rm, UInt<2>(2))
+ node T_192168 = and(T_192130, T_192165)
+ node T_192169 = eq(in.rm, UInt<2>(3))
+ node T_192170 = eq(T_192130, UInt<1>(0))
+ node T_192171 = and(T_192170, T_192165)
+ wire T_192172 : UInt<1>
+ T_192172 := UInt<1>(0)
+ when T_192169 : T_192172 := T_192171
+ wire T_192173 : UInt<1>
+ T_192173 := T_192172
+ when T_192167 : T_192173 := T_192168
+ wire T_192174 : UInt<1>
+ T_192174 := T_192173
+ when T_192166 : T_192174 := T_192163
+ node T_192175 = not(T_192147)
+ wire T_192176 : UInt<64>
+ T_192176 := T_192147
+ when T_192130 : T_192176 := T_192175
+ node T_192177 = xor(T_192174, T_192130)
+ node T_192178 = addw(T_192176, UInt<1>(1))
+ wire T_192179 : UInt<64>
+ T_192179 := T_192176
+ when T_192177 : T_192179 := T_192178
+ node T_192180 = asSInt(T_192179)
+ node T_192181 = eq(T_192147, UInt<1>(-1))
+ node T_192182 = and(T_192174, T_192181)
+ node T_192183 = eq(T_192130, UInt<1>(0))
+ node T_192184 = and(T_192183, T_192182)
+ node T_192185 = eq(T_192130, UInt<1>(0))
+ node T_192186 = or(T_192185, T_192174)
+ node T_192187 = eq(T_192147, UInt<1>(0))
+ node T_192188 = eq(T_192187, UInt<1>(0))
+ node T_192189 = or(T_192186, T_192188)
+ node T_192190 = bits(T_192131, 10, 0)
+ node T_192191 = eq(T_192129, UInt<2>(0))
+ node T_192192 = and(T_192130, T_192174)
+ node T_192193 = eq(T_192190, UInt<5>(31))
+ node T_192194 = geq(T_192190, UInt<6>(32))
+ wire T_192195 : UInt<1>
+ T_192195 := T_192194
+ when T_192193 : T_192195 := T_192182
+ node T_192196 = or(T_192130, T_192195)
+ wire T_192197 : UInt<1>
+ T_192197 := T_192196
+ when T_192137 : T_192197 := T_192192
+ node T_192198 = eq(T_192129, UInt<2>(1))
+ node T_192199 = eq(T_192190, UInt<5>(30))
+ node T_192200 = eq(T_192190, UInt<5>(31))
+ node T_192201 = geq(T_192190, UInt<6>(32))
+ wire T_192202 : UInt<1>
+ T_192202 := T_192201
+ when T_192200 : T_192202 := T_192189
+ wire T_192203 : UInt<1>
+ T_192203 := T_192202
+ when T_192199 : T_192203 := T_192184
+ wire T_192204 : UInt<1>
+ T_192204 := T_192203
+ when T_192137 : T_192204 := UInt<1>(0)
+ node T_192205 = eq(T_192129, UInt<2>(2))
+ node T_192206 = and(T_192130, T_192174)
+ node T_192207 = eq(T_192190, UInt<6>(63))
+ node T_192208 = geq(T_192190, UInt<7>(64))
+ wire T_192209 : UInt<1>
+ T_192209 := T_192208
+ when T_192207 : T_192209 := T_192182
+ node T_192210 = or(T_192130, T_192209)
+ wire T_192211 : UInt<1>
+ T_192211 := T_192210
+ when T_192137 : T_192211 := T_192206
+ node T_192212 = eq(T_192190, UInt<6>(62))
+ node T_192213 = eq(T_192190, UInt<6>(63))
+ node T_192214 = geq(T_192190, UInt<7>(64))
+ wire T_192215 : UInt<1>
+ T_192215 := T_192214
+ when T_192213 : T_192215 := T_192189
+ wire T_192216 : UInt<1>
+ T_192216 := T_192215
+ when T_192212 : T_192216 := T_192184
+ wire T_192217 : UInt<1>
+ T_192217 := T_192216
+ when T_192137 : T_192217 := UInt<1>(0)
+ wire T_192218 : UInt<1>
+ T_192218 := T_192217
+ when T_192205 : T_192218 := T_192211
+ wire T_192219 : UInt<1>
+ T_192219 := T_192218
+ when T_192198 : T_192219 := T_192204
+ wire T_192220 : UInt<1>
+ T_192220 := T_192219
+ when T_192191 : T_192220 := T_192197
+ node T_192221 = or(T_192141, T_192220)
+ node T_192222 = eq(T_192129, UInt<2>(3))
+ node T_192223 = and(T_192222, T_192130)
+ node T_192224 = eq(T_192129, UInt<2>(1))
+ node T_192225 = and(T_192224, T_192130)
+ node T_192226 = eq(T_192129, UInt<2>(3))
+ node T_192227 = eq(T_192130, UInt<1>(0))
+ node T_192228 = and(T_192226, T_192227)
+ node T_192229 = eq(T_192129, UInt<2>(1))
+ node T_192230 = eq(T_192130, UInt<1>(0))
+ node T_192231 = and(T_192229, T_192230)
+ wire T_192232 : SInt<1>
+ T_192232 := SInt<1>(-1)
+ when T_192231 : T_192232 := SInt<32>(2147483647)
+ wire T_192233 : SInt<1>
+ T_192233 := T_192232
+ when T_192228 : T_192233 := SInt<64>(9223372036854775807)
+ wire T_192234 : SInt<1>
+ T_192234 := T_192233
+ when T_192225 : T_192234 := SInt<32>(-2147483648)
+ wire T_192235 : SInt<1>
+ T_192235 := T_192234
+ when T_192223 : T_192235 := SInt<64>(-9223372036854775808)
+ node T_192236 = eq(T_192221, UInt<1>(0))
+ node T_192237 = and(T_192155, T_192236)
+ wire T_192238 : SInt<64>
+ T_192238 := T_192180
+ when T_192221 : T_192238 := T_192235
+ node T_192239 = cat(UInt<3>(0), T_192237)
+ node T_192240 = cat(T_192221, T_192239)
+ node T_192241 = bit(in.rm, 0)
+ wire T_192242 : UInt<13>
+ T_192242 := unrec_out
+ when T_192241 : T_192242 := classify_out
+ out.bits.toint := T_192242
+ out.bits.store := unrec_out
+ out.bits.exc := UInt<1>(0)
+
+
+ node T_192243 = and(in.cmd, UInt<4>(12))
+ node T_192244 = eq(UInt<3>(4), T_192243)
+ when T_192244 :
+ out.bits.toint := dcmp_out
+ out.bits.exc := dcmp_exc
+
+
+ node T_192245 = and(in.cmd, UInt<4>(12))
+ node T_192246 = eq(UInt<4>(8), T_192245)
+ when T_192246 :
+ node T_192247 = bit(in.typ, 1)
+ node T_192248 = bits(T_192238, 31, 0)
+ node T_192249 = asSInt(T_192248)
+ wire T_192250 : SInt<32>
+ T_192250 := T_192249
+ when T_192247 : T_192250 := T_192238
+ out.bits.toint := T_192250
+ out.bits.exc := T_192240
+ out.valid := valid
+ out.bits.lt := dcmp.a_lt_b
+ as_double := in
+ module IntToFP :
+ input in : {valid : UInt<1>, bits : {cmd : UInt<5>, ldst : UInt<1>, wen : UInt<1>, ren1 : UInt<1>, ren2 : UInt<1>, ren3 : UInt<1>, swap12 : UInt<1>, swap23 : UInt<1>, single : UInt<1>, fromint : UInt<1>, toint : UInt<1>, fastpipe : UInt<1>, fma : UInt<1>, div : UInt<1>, sqrt : UInt<1>, round : UInt<1>, wflags : UInt<1>, rm : UInt<3>, typ : UInt<2>, in1 : UInt<65>, in2 : UInt<65>, in3 : UInt<65>}}
+ output out : {valid : UInt<1>, bits : {data : UInt<65>, exc : UInt<5>}}
+
+ reg T_192251 : UInt<1>
+ onreset T_192251 := UInt<1>(0)
+ T_192251 := in.valid
+ reg T_192252 : {cmd : UInt<5>, ldst : UInt<1>, wen : UInt<1>, ren1 : UInt<1>, ren2 : UInt<1>, ren3 : UInt<1>, swap12 : UInt<1>, swap23 : UInt<1>, single : UInt<1>, fromint : UInt<1>, toint : UInt<1>, fastpipe : UInt<1>, fma : UInt<1>, div : UInt<1>, sqrt : UInt<1>, round : UInt<1>, wflags : UInt<1>, rm : UInt<3>, typ : UInt<2>, in1 : UInt<65>, in2 : UInt<65>, in3 : UInt<65>}
+ when in.valid : T_192252 := in.bits
+ in.valid <> T_192251
+ in.bits <> T_192252
+ wire mux : {data : UInt<65>, exc : UInt<5>}
+ mux.exc := UInt<1>(0)
+ node T_192253 = bit(in.bits.in1, 63)
+ node T_192254 = bits(in.bits.in1, 62, 52)
+ node T_192255 = bits(in.bits.in1, 51, 0)
+ node T_192256 = eq(T_192254, UInt<1>(0))
+ node T_192257 = eq(T_192255, UInt<1>(0))
+ node T_192258 = and(T_192256, T_192257)
+ node T_192259 = eq(T_192257, UInt<1>(0))
+ node T_192260 = and(T_192256, T_192259)
+ node T_192261 = shl(T_192255, 12)
+ node T_192262 = bit(T_192261, 63)
+ node T_192263 = bit(T_192261, 62)
+ node T_192264 = bit(T_192261, 61)
+ node T_192265 = bit(T_192261, 60)
+ node T_192266 = bit(T_192261, 59)
+ node T_192267 = bit(T_192261, 58)
+ node T_192268 = bit(T_192261, 57)
+ node T_192269 = bit(T_192261, 56)
+ node T_192270 = bit(T_192261, 55)
+ node T_192271 = bit(T_192261, 54)
+ node T_192272 = bit(T_192261, 53)
+ node T_192273 = bit(T_192261, 52)
+ node T_192274 = bit(T_192261, 51)
+ node T_192275 = bit(T_192261, 50)
+ node T_192276 = bit(T_192261, 49)
+ node T_192277 = bit(T_192261, 48)
+ node T_192278 = bit(T_192261, 47)
+ node T_192279 = bit(T_192261, 46)
+ node T_192280 = bit(T_192261, 45)
+ node T_192281 = bit(T_192261, 44)
+ node T_192282 = bit(T_192261, 43)
+ node T_192283 = bit(T_192261, 42)
+ node T_192284 = bit(T_192261, 41)
+ node T_192285 = bit(T_192261, 40)
+ node T_192286 = bit(T_192261, 39)
+ node T_192287 = bit(T_192261, 38)
+ node T_192288 = bit(T_192261, 37)
+ node T_192289 = bit(T_192261, 36)
+ node T_192290 = bit(T_192261, 35)
+ node T_192291 = bit(T_192261, 34)
+ node T_192292 = bit(T_192261, 33)
+ node T_192293 = bit(T_192261, 32)
+ node T_192294 = bit(T_192261, 31)
+ node T_192295 = bit(T_192261, 30)
+ node T_192296 = bit(T_192261, 29)
+ node T_192297 = bit(T_192261, 28)
+ node T_192298 = bit(T_192261, 27)
+ node T_192299 = bit(T_192261, 26)
+ node T_192300 = bit(T_192261, 25)
+ node T_192301 = bit(T_192261, 24)
+ node T_192302 = bit(T_192261, 23)
+ node T_192303 = bit(T_192261, 22)
+ node T_192304 = bit(T_192261, 21)
+ node T_192305 = bit(T_192261, 20)
+ node T_192306 = bit(T_192261, 19)
+ node T_192307 = bit(T_192261, 18)
+ node T_192308 = bit(T_192261, 17)
+ node T_192309 = bit(T_192261, 16)
+ node T_192310 = bit(T_192261, 15)
+ node T_192311 = bit(T_192261, 14)
+ node T_192312 = bit(T_192261, 13)
+ node T_192313 = bit(T_192261, 12)
+ node T_192314 = bit(T_192261, 11)
+ node T_192315 = bit(T_192261, 10)
+ node T_192316 = bit(T_192261, 9)
+ node T_192317 = bit(T_192261, 8)
+ node T_192318 = bit(T_192261, 7)
+ node T_192319 = bit(T_192261, 6)
+ node T_192320 = bit(T_192261, 5)
+ node T_192321 = bit(T_192261, 4)
+ node T_192322 = bit(T_192261, 3)
+ node T_192323 = bit(T_192261, 2)
+ node T_192324 = bit(T_192261, 1)
+ wire T_192325 : UInt<1>
+ T_192325 := T_192324
+ when T_192323 : T_192325 := UInt<2>(2)
+ wire T_192326 : UInt<1>
+ T_192326 := T_192325
+ when T_192322 : T_192326 := UInt<2>(3)
+ wire T_192327 : UInt<1>
+ T_192327 := T_192326
+ when T_192321 : T_192327 := UInt<3>(4)
+ wire T_192328 : UInt<1>
+ T_192328 := T_192327
+ when T_192320 : T_192328 := UInt<3>(5)
+ wire T_192329 : UInt<1>
+ T_192329 := T_192328
+ when T_192319 : T_192329 := UInt<3>(6)
+ wire T_192330 : UInt<1>
+ T_192330 := T_192329
+ when T_192318 : T_192330 := UInt<3>(7)
+ wire T_192331 : UInt<1>
+ T_192331 := T_192330
+ when T_192317 : T_192331 := UInt<4>(8)
+ wire T_192332 : UInt<1>
+ T_192332 := T_192331
+ when T_192316 : T_192332 := UInt<4>(9)
+ wire T_192333 : UInt<1>
+ T_192333 := T_192332
+ when T_192315 : T_192333 := UInt<4>(10)
+ wire T_192334 : UInt<1>
+ T_192334 := T_192333
+ when T_192314 : T_192334 := UInt<4>(11)
+ wire T_192335 : UInt<1>
+ T_192335 := T_192334
+ when T_192313 : T_192335 := UInt<4>(12)
+ wire T_192336 : UInt<1>
+ T_192336 := T_192335
+ when T_192312 : T_192336 := UInt<4>(13)
+ wire T_192337 : UInt<1>
+ T_192337 := T_192336
+ when T_192311 : T_192337 := UInt<4>(14)
+ wire T_192338 : UInt<1>
+ T_192338 := T_192337
+ when T_192310 : T_192338 := UInt<4>(15)
+ wire T_192339 : UInt<1>
+ T_192339 := T_192338
+ when T_192309 : T_192339 := UInt<5>(16)
+ wire T_192340 : UInt<1>
+ T_192340 := T_192339
+ when T_192308 : T_192340 := UInt<5>(17)
+ wire T_192341 : UInt<1>
+ T_192341 := T_192340
+ when T_192307 : T_192341 := UInt<5>(18)
+ wire T_192342 : UInt<1>
+ T_192342 := T_192341
+ when T_192306 : T_192342 := UInt<5>(19)
+ wire T_192343 : UInt<1>
+ T_192343 := T_192342
+ when T_192305 : T_192343 := UInt<5>(20)
+ wire T_192344 : UInt<1>
+ T_192344 := T_192343
+ when T_192304 : T_192344 := UInt<5>(21)
+ wire T_192345 : UInt<1>
+ T_192345 := T_192344
+ when T_192303 : T_192345 := UInt<5>(22)
+ wire T_192346 : UInt<1>
+ T_192346 := T_192345
+ when T_192302 : T_192346 := UInt<5>(23)
+ wire T_192347 : UInt<1>
+ T_192347 := T_192346
+ when T_192301 : T_192347 := UInt<5>(24)
+ wire T_192348 : UInt<1>
+ T_192348 := T_192347
+ when T_192300 : T_192348 := UInt<5>(25)
+ wire T_192349 : UInt<1>
+ T_192349 := T_192348
+ when T_192299 : T_192349 := UInt<5>(26)
+ wire T_192350 : UInt<1>
+ T_192350 := T_192349
+ when T_192298 : T_192350 := UInt<5>(27)
+ wire T_192351 : UInt<1>
+ T_192351 := T_192350
+ when T_192297 : T_192351 := UInt<5>(28)
+ wire T_192352 : UInt<1>
+ T_192352 := T_192351
+ when T_192296 : T_192352 := UInt<5>(29)
+ wire T_192353 : UInt<1>
+ T_192353 := T_192352
+ when T_192295 : T_192353 := UInt<5>(30)
+ wire T_192354 : UInt<1>
+ T_192354 := T_192353
+ when T_192294 : T_192354 := UInt<5>(31)
+ wire T_192355 : UInt<1>
+ T_192355 := T_192354
+ when T_192293 : T_192355 := UInt<6>(32)
+ wire T_192356 : UInt<1>
+ T_192356 := T_192355
+ when T_192292 : T_192356 := UInt<6>(33)
+ wire T_192357 : UInt<1>
+ T_192357 := T_192356
+ when T_192291 : T_192357 := UInt<6>(34)
+ wire T_192358 : UInt<1>
+ T_192358 := T_192357
+ when T_192290 : T_192358 := UInt<6>(35)
+ wire T_192359 : UInt<1>
+ T_192359 := T_192358
+ when T_192289 : T_192359 := UInt<6>(36)
+ wire T_192360 : UInt<1>
+ T_192360 := T_192359
+ when T_192288 : T_192360 := UInt<6>(37)
+ wire T_192361 : UInt<1>
+ T_192361 := T_192360
+ when T_192287 : T_192361 := UInt<6>(38)
+ wire T_192362 : UInt<1>
+ T_192362 := T_192361
+ when T_192286 : T_192362 := UInt<6>(39)
+ wire T_192363 : UInt<1>
+ T_192363 := T_192362
+ when T_192285 : T_192363 := UInt<6>(40)
+ wire T_192364 : UInt<1>
+ T_192364 := T_192363
+ when T_192284 : T_192364 := UInt<6>(41)
+ wire T_192365 : UInt<1>
+ T_192365 := T_192364
+ when T_192283 : T_192365 := UInt<6>(42)
+ wire T_192366 : UInt<1>
+ T_192366 := T_192365
+ when T_192282 : T_192366 := UInt<6>(43)
+ wire T_192367 : UInt<1>
+ T_192367 := T_192366
+ when T_192281 : T_192367 := UInt<6>(44)
+ wire T_192368 : UInt<1>
+ T_192368 := T_192367
+ when T_192280 : T_192368 := UInt<6>(45)
+ wire T_192369 : UInt<1>
+ T_192369 := T_192368
+ when T_192279 : T_192369 := UInt<6>(46)
+ wire T_192370 : UInt<1>
+ T_192370 := T_192369
+ when T_192278 : T_192370 := UInt<6>(47)
+ wire T_192371 : UInt<1>
+ T_192371 := T_192370
+ when T_192277 : T_192371 := UInt<6>(48)
+ wire T_192372 : UInt<1>
+ T_192372 := T_192371
+ when T_192276 : T_192372 := UInt<6>(49)
+ wire T_192373 : UInt<1>
+ T_192373 := T_192372
+ when T_192275 : T_192373 := UInt<6>(50)
+ wire T_192374 : UInt<1>
+ T_192374 := T_192373
+ when T_192274 : T_192374 := UInt<6>(51)
+ wire T_192375 : UInt<1>
+ T_192375 := T_192374
+ when T_192273 : T_192375 := UInt<6>(52)
+ wire T_192376 : UInt<1>
+ T_192376 := T_192375
+ when T_192272 : T_192376 := UInt<6>(53)
+ wire T_192377 : UInt<1>
+ T_192377 := T_192376
+ when T_192271 : T_192377 := UInt<6>(54)
+ wire T_192378 : UInt<1>
+ T_192378 := T_192377
+ when T_192270 : T_192378 := UInt<6>(55)
+ wire T_192379 : UInt<1>
+ T_192379 := T_192378
+ when T_192269 : T_192379 := UInt<6>(56)
+ wire T_192380 : UInt<1>
+ T_192380 := T_192379
+ when T_192268 : T_192380 := UInt<6>(57)
+ wire T_192381 : UInt<1>
+ T_192381 := T_192380
+ when T_192267 : T_192381 := UInt<6>(58)
+ wire T_192382 : UInt<1>
+ T_192382 := T_192381
+ when T_192266 : T_192382 := UInt<6>(59)
+ wire T_192383 : UInt<1>
+ T_192383 := T_192382
+ when T_192265 : T_192383 := UInt<6>(60)
+ wire T_192384 : UInt<1>
+ T_192384 := T_192383
+ when T_192264 : T_192384 := UInt<6>(61)
+ wire T_192385 : UInt<1>
+ T_192385 := T_192384
+ when T_192263 : T_192385 := UInt<6>(62)
+ wire T_192386 : UInt<1>
+ T_192386 := T_192385
+ when T_192262 : T_192386 := UInt<6>(63)
+ node T_192387 = not(T_192386)
+ node T_192388 = dshl(T_192261, T_192387)
+ node T_192389 = subw(UInt<6>(0), UInt<3>(6))
+ node T_192390 = not(T_192387)
+ node T_192391 = cat(T_192389, T_192390)
+ node T_192392 = bits(T_192388, 62, 11)
+ wire T_192393 : UInt<7>
+ T_192393 := T_192391
+ when T_192257 : T_192393 := UInt<1>(0)
+ wire T_192394 : UInt<11>
+ T_192394 := T_192254
+ when T_192256 : T_192394 := T_192393
+ wire T_192395 : UInt<1>
+ T_192395 := UInt<1>(1)
+ when T_192260 : T_192395 := UInt<2>(2)
+ node T_192396 = or(UInt<11>(1024), T_192395)
+ wire T_192397 : UInt<11>
+ T_192397 := T_192396
+ when T_192258 : T_192397 := UInt<1>(0)
+ node T_192398 = addw(T_192394, T_192397)
+ node T_192399 = bits(T_192398, 11, 10)
+ node T_192400 = eq(T_192399, UInt<1>(-1))
+ node T_192401 = eq(T_192257, UInt<1>(0))
+ node T_192402 = and(T_192400, T_192401)
+ node T_192403 = dshl(T_192402, UInt<4>(9))
+ node T_192404 = or(T_192398, T_192403)
+ wire T_192405 : UInt<52>
+ T_192405 := T_192255
+ when T_192256 : T_192405 := T_192392
+ node T_192406 = cat(T_192404, T_192405)
+ node T_192407 = cat(T_192253, T_192406)
+ mux.data := T_192407
+ when in.bits.single :
+ node T_192408 = bit(in.bits.in1, 31)
+ node T_192409 = bits(in.bits.in1, 30, 23)
+ node T_192410 = bits(in.bits.in1, 22, 0)
+ node T_192411 = eq(T_192409, UInt<1>(0))
+ node T_192412 = eq(T_192410, UInt<1>(0))
+ node T_192413 = and(T_192411, T_192412)
+ node T_192414 = eq(T_192412, UInt<1>(0))
+ node T_192415 = and(T_192411, T_192414)
+ node T_192416 = shl(T_192410, 9)
+ node T_192417 = bit(T_192416, 31)
+ node T_192418 = bit(T_192416, 30)
+ node T_192419 = bit(T_192416, 29)
+ node T_192420 = bit(T_192416, 28)
+ node T_192421 = bit(T_192416, 27)
+ node T_192422 = bit(T_192416, 26)
+ node T_192423 = bit(T_192416, 25)
+ node T_192424 = bit(T_192416, 24)
+ node T_192425 = bit(T_192416, 23)
+ node T_192426 = bit(T_192416, 22)
+ node T_192427 = bit(T_192416, 21)
+ node T_192428 = bit(T_192416, 20)
+ node T_192429 = bit(T_192416, 19)
+ node T_192430 = bit(T_192416, 18)
+ node T_192431 = bit(T_192416, 17)
+ node T_192432 = bit(T_192416, 16)
+ node T_192433 = bit(T_192416, 15)
+ node T_192434 = bit(T_192416, 14)
+ node T_192435 = bit(T_192416, 13)
+ node T_192436 = bit(T_192416, 12)
+ node T_192437 = bit(T_192416, 11)
+ node T_192438 = bit(T_192416, 10)
+ node T_192439 = bit(T_192416, 9)
+ node T_192440 = bit(T_192416, 8)
+ node T_192441 = bit(T_192416, 7)
+ node T_192442 = bit(T_192416, 6)
+ node T_192443 = bit(T_192416, 5)
+ node T_192444 = bit(T_192416, 4)
+ node T_192445 = bit(T_192416, 3)
+ node T_192446 = bit(T_192416, 2)
+ node T_192447 = bit(T_192416, 1)
+ wire T_192448 : UInt<1>
+ T_192448 := T_192447
+ when T_192446 : T_192448 := UInt<2>(2)
+ wire T_192449 : UInt<1>
+ T_192449 := T_192448
+ when T_192445 : T_192449 := UInt<2>(3)
+ wire T_192450 : UInt<1>
+ T_192450 := T_192449
+ when T_192444 : T_192450 := UInt<3>(4)
+ wire T_192451 : UInt<1>
+ T_192451 := T_192450
+ when T_192443 : T_192451 := UInt<3>(5)
+ wire T_192452 : UInt<1>
+ T_192452 := T_192451
+ when T_192442 : T_192452 := UInt<3>(6)
+ wire T_192453 : UInt<1>
+ T_192453 := T_192452
+ when T_192441 : T_192453 := UInt<3>(7)
+ wire T_192454 : UInt<1>
+ T_192454 := T_192453
+ when T_192440 : T_192454 := UInt<4>(8)
+ wire T_192455 : UInt<1>
+ T_192455 := T_192454
+ when T_192439 : T_192455 := UInt<4>(9)
+ wire T_192456 : UInt<1>
+ T_192456 := T_192455
+ when T_192438 : T_192456 := UInt<4>(10)
+ wire T_192457 : UInt<1>
+ T_192457 := T_192456
+ when T_192437 : T_192457 := UInt<4>(11)
+ wire T_192458 : UInt<1>
+ T_192458 := T_192457
+ when T_192436 : T_192458 := UInt<4>(12)
+ wire T_192459 : UInt<1>
+ T_192459 := T_192458
+ when T_192435 : T_192459 := UInt<4>(13)
+ wire T_192460 : UInt<1>
+ T_192460 := T_192459
+ when T_192434 : T_192460 := UInt<4>(14)
+ wire T_192461 : UInt<1>
+ T_192461 := T_192460
+ when T_192433 : T_192461 := UInt<4>(15)
+ wire T_192462 : UInt<1>
+ T_192462 := T_192461
+ when T_192432 : T_192462 := UInt<5>(16)
+ wire T_192463 : UInt<1>
+ T_192463 := T_192462
+ when T_192431 : T_192463 := UInt<5>(17)
+ wire T_192464 : UInt<1>
+ T_192464 := T_192463
+ when T_192430 : T_192464 := UInt<5>(18)
+ wire T_192465 : UInt<1>
+ T_192465 := T_192464
+ when T_192429 : T_192465 := UInt<5>(19)
+ wire T_192466 : UInt<1>
+ T_192466 := T_192465
+ when T_192428 : T_192466 := UInt<5>(20)
+ wire T_192467 : UInt<1>
+ T_192467 := T_192466
+ when T_192427 : T_192467 := UInt<5>(21)
+ wire T_192468 : UInt<1>
+ T_192468 := T_192467
+ when T_192426 : T_192468 := UInt<5>(22)
+ wire T_192469 : UInt<1>
+ T_192469 := T_192468
+ when T_192425 : T_192469 := UInt<5>(23)
+ wire T_192470 : UInt<1>
+ T_192470 := T_192469
+ when T_192424 : T_192470 := UInt<5>(24)
+ wire T_192471 : UInt<1>
+ T_192471 := T_192470
+ when T_192423 : T_192471 := UInt<5>(25)
+ wire T_192472 : UInt<1>
+ T_192472 := T_192471
+ when T_192422 : T_192472 := UInt<5>(26)
+ wire T_192473 : UInt<1>
+ T_192473 := T_192472
+ when T_192421 : T_192473 := UInt<5>(27)
+ wire T_192474 : UInt<1>
+ T_192474 := T_192473
+ when T_192420 : T_192474 := UInt<5>(28)
+ wire T_192475 : UInt<1>
+ T_192475 := T_192474
+ when T_192419 : T_192475 := UInt<5>(29)
+ wire T_192476 : UInt<1>
+ T_192476 := T_192475
+ when T_192418 : T_192476 := UInt<5>(30)
+ wire T_192477 : UInt<1>
+ T_192477 := T_192476
+ when T_192417 : T_192477 := UInt<5>(31)
+ node T_192478 = not(T_192477)
+ node T_192479 = dshl(T_192416, T_192478)
+ node T_192480 = subw(UInt<4>(0), UInt<3>(4))
+ node T_192481 = not(T_192478)
+ node T_192482 = cat(T_192480, T_192481)
+ node T_192483 = bits(T_192479, 30, 8)
+ wire T_192484 : UInt<5>
+ T_192484 := T_192482
+ when T_192412 : T_192484 := UInt<1>(0)
+ wire T_192485 : UInt<8>
+ T_192485 := T_192409
+ when T_192411 : T_192485 := T_192484
+ wire T_192486 : UInt<1>
+ T_192486 := UInt<1>(1)
+ when T_192415 : T_192486 := UInt<2>(2)
+ node T_192487 = or(UInt<8>(128), T_192486)
+ wire T_192488 : UInt<8>
+ T_192488 := T_192487
+ when T_192413 : T_192488 := UInt<1>(0)
+ node T_192489 = addw(T_192485, T_192488)
+ node T_192490 = bits(T_192489, 8, 7)
+ node T_192491 = eq(T_192490, UInt<1>(-1))
+ node T_192492 = eq(T_192412, UInt<1>(0))
+ node T_192493 = and(T_192491, T_192492)
+ node T_192494 = dshl(T_192493, UInt<3>(6))
+ node T_192495 = or(T_192489, T_192494)
+ wire T_192496 : UInt<23>
+ T_192496 := T_192410
+ when T_192411 : T_192496 := T_192483
+ node T_192497 = cat(T_192495, T_192496)
+ node T_192498 = cat(T_192408, T_192497)
+ node T_192499 = asUInt(SInt<32>(-1))
+ node T_192500 = cat(T_192499, T_192498)
+ mux.data := T_192500
+
+
+ node T_192501 = and(in.bits.cmd, UInt<3>(4))
+ node T_192502 = eq(UInt<1>(0), T_192501)
+ when T_192502 : when in.bits.single :
+ node T_192624 = bits(in.bits.in1, 63, 0)
+ node T_192625 = xor(in.bits.typ, UInt<1>(1))
+ node T_192626 = eq(T_192625, UInt<2>(1))
+ node T_192627 = bit(T_192624, 31)
+ node T_192628 = eq(T_192625, UInt<2>(3))
+ node T_192629 = bit(T_192624, 63)
+ wire T_192630 : UInt<1>
+ T_192630 := UInt<1>(0)
+ when T_192628 : T_192630 := T_192629
+ wire T_192631 : UInt<1>
+ T_192631 := T_192630
+ when T_192626 : T_192631 := T_192627
+ node T_192632 = subw(UInt<1>(0), T_192624)
+ wire T_192633 : UInt<64>
+ T_192633 := T_192624
+ when T_192631 : T_192633 := T_192632
+ node T_192634 = eq(T_192625, UInt<2>(3))
+ node T_192635 = eq(T_192625, UInt<2>(2))
+ node T_192636 = or(T_192634, T_192635)
+ node T_192637 = bits(T_192633, 31, 0)
+ wire T_192638 : UInt<32>
+ T_192638 := T_192637
+ when T_192636 : T_192638 := T_192633
+ node T_192639 = bit(T_192638, 31)
+ node T_192640 = bit(T_192638, 30)
+ node T_192641 = bit(T_192638, 29)
+ node T_192642 = bit(T_192638, 28)
+ node T_192643 = bit(T_192638, 27)
+ node T_192644 = bit(T_192638, 26)
+ node T_192645 = bit(T_192638, 25)
+ node T_192646 = bit(T_192638, 24)
+ node T_192647 = bit(T_192638, 23)
+ node T_192648 = bit(T_192638, 22)
+ node T_192649 = bit(T_192638, 21)
+ node T_192650 = bit(T_192638, 20)
+ node T_192651 = bit(T_192638, 19)
+ node T_192652 = bit(T_192638, 18)
+ node T_192653 = bit(T_192638, 17)
+ node T_192654 = bit(T_192638, 16)
+ node T_192655 = bit(T_192638, 15)
+ node T_192656 = bit(T_192638, 14)
+ node T_192657 = bit(T_192638, 13)
+ node T_192658 = bit(T_192638, 12)
+ node T_192659 = bit(T_192638, 11)
+ node T_192660 = bit(T_192638, 10)
+ node T_192661 = bit(T_192638, 9)
+ node T_192662 = bit(T_192638, 8)
+ node T_192663 = bit(T_192638, 7)
+ node T_192664 = bit(T_192638, 6)
+ node T_192665 = bit(T_192638, 5)
+ node T_192666 = bit(T_192638, 4)
+ node T_192667 = bit(T_192638, 3)
+ node T_192668 = bit(T_192638, 2)
+ node T_192669 = bit(T_192638, 1)
+ wire T_192670 : UInt<1>
+ T_192670 := T_192669
+ when T_192668 : T_192670 := UInt<2>(2)
+ wire T_192671 : UInt<1>
+ T_192671 := T_192670
+ when T_192667 : T_192671 := UInt<2>(3)
+ wire T_192672 : UInt<1>
+ T_192672 := T_192671
+ when T_192666 : T_192672 := UInt<3>(4)
+ wire T_192673 : UInt<1>
+ T_192673 := T_192672
+ when T_192665 : T_192673 := UInt<3>(5)
+ wire T_192674 : UInt<1>
+ T_192674 := T_192673
+ when T_192664 : T_192674 := UInt<3>(6)
+ wire T_192675 : UInt<1>
+ T_192675 := T_192674
+ when T_192663 : T_192675 := UInt<3>(7)
+ wire T_192676 : UInt<1>
+ T_192676 := T_192675
+ when T_192662 : T_192676 := UInt<4>(8)
+ wire T_192677 : UInt<1>
+ T_192677 := T_192676
+ when T_192661 : T_192677 := UInt<4>(9)
+ wire T_192678 : UInt<1>
+ T_192678 := T_192677
+ when T_192660 : T_192678 := UInt<4>(10)
+ wire T_192679 : UInt<1>
+ T_192679 := T_192678
+ when T_192659 : T_192679 := UInt<4>(11)
+ wire T_192680 : UInt<1>
+ T_192680 := T_192679
+ when T_192658 : T_192680 := UInt<4>(12)
+ wire T_192681 : UInt<1>
+ T_192681 := T_192680
+ when T_192657 : T_192681 := UInt<4>(13)
+ wire T_192682 : UInt<1>
+ T_192682 := T_192681
+ when T_192656 : T_192682 := UInt<4>(14)
+ wire T_192683 : UInt<1>
+ T_192683 := T_192682
+ when T_192655 : T_192683 := UInt<4>(15)
+ wire T_192684 : UInt<1>
+ T_192684 := T_192683
+ when T_192654 : T_192684 := UInt<5>(16)
+ wire T_192685 : UInt<1>
+ T_192685 := T_192684
+ when T_192653 : T_192685 := UInt<5>(17)
+ wire T_192686 : UInt<1>
+ T_192686 := T_192685
+ when T_192652 : T_192686 := UInt<5>(18)
+ wire T_192687 : UInt<1>
+ T_192687 := T_192686
+ when T_192651 : T_192687 := UInt<5>(19)
+ wire T_192688 : UInt<1>
+ T_192688 := T_192687
+ when T_192650 : T_192688 := UInt<5>(20)
+ wire T_192689 : UInt<1>
+ T_192689 := T_192688
+ when T_192649 : T_192689 := UInt<5>(21)
+ wire T_192690 : UInt<1>
+ T_192690 := T_192689
+ when T_192648 : T_192690 := UInt<5>(22)
+ wire T_192691 : UInt<1>
+ T_192691 := T_192690
+ when T_192647 : T_192691 := UInt<5>(23)
+ wire T_192692 : UInt<1>
+ T_192692 := T_192691
+ when T_192646 : T_192692 := UInt<5>(24)
+ wire T_192693 : UInt<1>
+ T_192693 := T_192692
+ when T_192645 : T_192693 := UInt<5>(25)
+ wire T_192694 : UInt<1>
+ T_192694 := T_192693
+ when T_192644 : T_192694 := UInt<5>(26)
+ wire T_192695 : UInt<1>
+ T_192695 := T_192694
+ when T_192643 : T_192695 := UInt<5>(27)
+ wire T_192696 : UInt<1>
+ T_192696 := T_192695
+ when T_192642 : T_192696 := UInt<5>(28)
+ wire T_192697 : UInt<1>
+ T_192697 := T_192696
+ when T_192641 : T_192697 := UInt<5>(29)
+ wire T_192698 : UInt<1>
+ T_192698 := T_192697
+ when T_192640 : T_192698 := UInt<5>(30)
+ wire T_192699 : UInt<1>
+ T_192699 := T_192698
+ when T_192639 : T_192699 := UInt<5>(31)
+ node T_192700 = not(T_192699)
+ node T_192701 = dshl(T_192638, T_192700)
+ node T_192702 = bits(T_192701, 40, 39)
+ node T_192703 = bits(T_192701, 38, 0)
+ node T_192704 = eq(T_192703, UInt<1>(0))
+ node T_192705 = eq(T_192704, UInt<1>(0))
+ node T_192706 = cat(T_192702, T_192705)
+ node T_192707 = bits(T_192706, 1, 0)
+ node T_192708 = eq(T_192707, UInt<1>(0))
+ node T_192709 = eq(T_192708, UInt<1>(0))
+ node T_192710 = eq(in.bits.rm, UInt<2>(0))
+ node T_192711 = bits(T_192706, 2, 1)
+ node T_192712 = eq(T_192711, UInt<1>(-1))
+ node T_192713 = bits(T_192706, 1, 0)
+ node T_192714 = eq(T_192713, UInt<1>(-1))
+ node T_192715 = or(T_192712, T_192714)
+ node T_192716 = eq(in.bits.rm, UInt<2>(2))
+ node T_192717 = and(T_192631, T_192709)
+ node T_192718 = eq(in.bits.rm, UInt<2>(3))
+ node T_192719 = eq(T_192631, UInt<1>(0))
+ node T_192720 = and(T_192719, T_192709)
+ wire T_192721 : UInt<1>
+ T_192721 := UInt<1>(0)
+ when T_192718 : T_192721 := T_192720
+ wire T_192722 : UInt<1>
+ T_192722 := T_192721
+ when T_192716 : T_192722 := T_192717
+ wire T_192723 : UInt<1>
+ T_192723 := T_192722
+ when T_192710 : T_192723 := T_192715
+ node T_192724 = bits(T_192701, 63, 40)
+ node T_192725 = cat(UInt<1>(0), T_192724)
+ node T_192726 = addw(T_192725, UInt<1>(1))
+ wire T_192727 : UInt<25>
+ T_192727 := T_192725
+ when T_192723 : T_192727 := T_192726
+ node T_192728 = not(T_192700)
+ node T_192729 = cat(UInt<1>(0), T_192728)
+ node T_192730 = cat(UInt<1>(0), T_192729)
+ node T_192731 = bit(T_192727, 24)
+ node T_192732 = addw(T_192730, T_192731)
+ node T_192733 = bit(T_192701, 63)
+ node T_192734 = bits(T_192732, 7, 0)
+ wire T_192735 : UInt<8>
+ T_192735 := T_192734
+ when UInt<1>(0) : T_192735 := UInt<8>(128)
+ node T_192736 = cat(T_192733, T_192735)
+ node T_192737 = or(UInt<1>(0), UInt<1>(0))
+ node T_192738 = or(T_192709, T_192737)
+ node T_192739 = bits(T_192727, 22, 0)
+ node T_192740 = cat(T_192736, T_192739)
+ node T_192741 = cat(T_192631, T_192740)
+ node T_192742 = cat(UInt<2>(0), T_192737)
+ node T_192743 = cat(UInt<1>(0), T_192738)
+ node T_192744 = cat(T_192742, T_192743)
+ node T_192745 = asUInt(SInt<32>(-1))
+ node T_192746 = cat(T_192745, T_192741)
+ mux.data := T_192746
+ mux.exc := T_192744
+ else :
+
+ node T_192503 = bits(in.bits.in1, 63, 0)
+ node T_192504 = xor(in.bits.typ, UInt<1>(1))
+ node T_192505 = eq(T_192504, UInt<2>(1))
+ node T_192506 = bit(T_192503, 31)
+ node T_192507 = eq(T_192504, UInt<2>(3))
+ node T_192508 = bit(T_192503, 63)
+ wire T_192509 : UInt<1>
+ T_192509 := UInt<1>(0)
+ when T_192507 : T_192509 := T_192508
+ wire T_192510 : UInt<1>
+ T_192510 := T_192509
+ when T_192505 : T_192510 := T_192506
+ node T_192511 = subw(UInt<1>(0), T_192503)
+ wire T_192512 : UInt<64>
+ T_192512 := T_192503
+ when T_192510 : T_192512 := T_192511
+ node T_192513 = eq(T_192504, UInt<2>(3))
+ node T_192514 = eq(T_192504, UInt<2>(2))
+ node T_192515 = or(T_192513, T_192514)
+ node T_192516 = bits(T_192512, 31, 0)
+ wire T_192517 : UInt<32>
+ T_192517 := T_192516
+ when T_192515 : T_192517 := T_192512
+ node T_192518 = bit(T_192517, 31)
+ node T_192519 = bit(T_192517, 30)
+ node T_192520 = bit(T_192517, 29)
+ node T_192521 = bit(T_192517, 28)
+ node T_192522 = bit(T_192517, 27)
+ node T_192523 = bit(T_192517, 26)
+ node T_192524 = bit(T_192517, 25)
+ node T_192525 = bit(T_192517, 24)
+ node T_192526 = bit(T_192517, 23)
+ node T_192527 = bit(T_192517, 22)
+ node T_192528 = bit(T_192517, 21)
+ node T_192529 = bit(T_192517, 20)
+ node T_192530 = bit(T_192517, 19)
+ node T_192531 = bit(T_192517, 18)
+ node T_192532 = bit(T_192517, 17)
+ node T_192533 = bit(T_192517, 16)
+ node T_192534 = bit(T_192517, 15)
+ node T_192535 = bit(T_192517, 14)
+ node T_192536 = bit(T_192517, 13)
+ node T_192537 = bit(T_192517, 12)
+ node T_192538 = bit(T_192517, 11)
+ node T_192539 = bit(T_192517, 10)
+ node T_192540 = bit(T_192517, 9)
+ node T_192541 = bit(T_192517, 8)
+ node T_192542 = bit(T_192517, 7)
+ node T_192543 = bit(T_192517, 6)
+ node T_192544 = bit(T_192517, 5)
+ node T_192545 = bit(T_192517, 4)
+ node T_192546 = bit(T_192517, 3)
+ node T_192547 = bit(T_192517, 2)
+ node T_192548 = bit(T_192517, 1)
+ wire T_192549 : UInt<1>
+ T_192549 := T_192548
+ when T_192547 : T_192549 := UInt<2>(2)
+ wire T_192550 : UInt<1>
+ T_192550 := T_192549
+ when T_192546 : T_192550 := UInt<2>(3)
+ wire T_192551 : UInt<1>
+ T_192551 := T_192550
+ when T_192545 : T_192551 := UInt<3>(4)
+ wire T_192552 : UInt<1>
+ T_192552 := T_192551
+ when T_192544 : T_192552 := UInt<3>(5)
+ wire T_192553 : UInt<1>
+ T_192553 := T_192552
+ when T_192543 : T_192553 := UInt<3>(6)
+ wire T_192554 : UInt<1>
+ T_192554 := T_192553
+ when T_192542 : T_192554 := UInt<3>(7)
+ wire T_192555 : UInt<1>
+ T_192555 := T_192554
+ when T_192541 : T_192555 := UInt<4>(8)
+ wire T_192556 : UInt<1>
+ T_192556 := T_192555
+ when T_192540 : T_192556 := UInt<4>(9)
+ wire T_192557 : UInt<1>
+ T_192557 := T_192556
+ when T_192539 : T_192557 := UInt<4>(10)
+ wire T_192558 : UInt<1>
+ T_192558 := T_192557
+ when T_192538 : T_192558 := UInt<4>(11)
+ wire T_192559 : UInt<1>
+ T_192559 := T_192558
+ when T_192537 : T_192559 := UInt<4>(12)
+ wire T_192560 : UInt<1>
+ T_192560 := T_192559
+ when T_192536 : T_192560 := UInt<4>(13)
+ wire T_192561 : UInt<1>
+ T_192561 := T_192560
+ when T_192535 : T_192561 := UInt<4>(14)
+ wire T_192562 : UInt<1>
+ T_192562 := T_192561
+ when T_192534 : T_192562 := UInt<4>(15)
+ wire T_192563 : UInt<1>
+ T_192563 := T_192562
+ when T_192533 : T_192563 := UInt<5>(16)
+ wire T_192564 : UInt<1>
+ T_192564 := T_192563
+ when T_192532 : T_192564 := UInt<5>(17)
+ wire T_192565 : UInt<1>
+ T_192565 := T_192564
+ when T_192531 : T_192565 := UInt<5>(18)
+ wire T_192566 : UInt<1>
+ T_192566 := T_192565
+ when T_192530 : T_192566 := UInt<5>(19)
+ wire T_192567 : UInt<1>
+ T_192567 := T_192566
+ when T_192529 : T_192567 := UInt<5>(20)
+ wire T_192568 : UInt<1>
+ T_192568 := T_192567
+ when T_192528 : T_192568 := UInt<5>(21)
+ wire T_192569 : UInt<1>
+ T_192569 := T_192568
+ when T_192527 : T_192569 := UInt<5>(22)
+ wire T_192570 : UInt<1>
+ T_192570 := T_192569
+ when T_192526 : T_192570 := UInt<5>(23)
+ wire T_192571 : UInt<1>
+ T_192571 := T_192570
+ when T_192525 : T_192571 := UInt<5>(24)
+ wire T_192572 : UInt<1>
+ T_192572 := T_192571
+ when T_192524 : T_192572 := UInt<5>(25)
+ wire T_192573 : UInt<1>
+ T_192573 := T_192572
+ when T_192523 : T_192573 := UInt<5>(26)
+ wire T_192574 : UInt<1>
+ T_192574 := T_192573
+ when T_192522 : T_192574 := UInt<5>(27)
+ wire T_192575 : UInt<1>
+ T_192575 := T_192574
+ when T_192521 : T_192575 := UInt<5>(28)
+ wire T_192576 : UInt<1>
+ T_192576 := T_192575
+ when T_192520 : T_192576 := UInt<5>(29)
+ wire T_192577 : UInt<1>
+ T_192577 := T_192576
+ when T_192519 : T_192577 := UInt<5>(30)
+ wire T_192578 : UInt<1>
+ T_192578 := T_192577
+ when T_192518 : T_192578 := UInt<5>(31)
+ node T_192579 = not(T_192578)
+ node T_192580 = dshl(T_192517, T_192579)
+ node T_192581 = bits(T_192580, 11, 10)
+ node T_192582 = bits(T_192580, 9, 0)
+ node T_192583 = eq(T_192582, UInt<1>(0))
+ node T_192584 = eq(T_192583, UInt<1>(0))
+ node T_192585 = cat(T_192581, T_192584)
+ node T_192586 = bits(T_192585, 1, 0)
+ node T_192587 = eq(T_192586, UInt<1>(0))
+ node T_192588 = eq(T_192587, UInt<1>(0))
+ node T_192589 = eq(in.bits.rm, UInt<2>(0))
+ node T_192590 = bits(T_192585, 2, 1)
+ node T_192591 = eq(T_192590, UInt<1>(-1))
+ node T_192592 = bits(T_192585, 1, 0)
+ node T_192593 = eq(T_192592, UInt<1>(-1))
+ node T_192594 = or(T_192591, T_192593)
+ node T_192595 = eq(in.bits.rm, UInt<2>(2))
+ node T_192596 = and(T_192510, T_192588)
+ node T_192597 = eq(in.bits.rm, UInt<2>(3))
+ node T_192598 = eq(T_192510, UInt<1>(0))
+ node T_192599 = and(T_192598, T_192588)
+ wire T_192600 : UInt<1>
+ T_192600 := UInt<1>(0)
+ when T_192597 : T_192600 := T_192599
+ wire T_192601 : UInt<1>
+ T_192601 := T_192600
+ when T_192595 : T_192601 := T_192596
+ wire T_192602 : UInt<1>
+ T_192602 := T_192601
+ when T_192589 : T_192602 := T_192594
+ node T_192603 = bits(T_192580, 63, 11)
+ node T_192604 = cat(UInt<1>(0), T_192603)
+ node T_192605 = addw(T_192604, UInt<1>(1))
+ wire T_192606 : UInt<54>
+ T_192606 := T_192604
+ when T_192602 : T_192606 := T_192605
+ node T_192607 = not(T_192579)
+ node T_192608 = cat(UInt<4>(0), T_192607)
+ node T_192609 = cat(UInt<1>(0), T_192608)
+ node T_192610 = bit(T_192606, 53)
+ node T_192611 = addw(T_192609, T_192610)
+ node T_192612 = bit(T_192580, 63)
+ node T_192613 = bits(T_192611, 10, 0)
+ wire T_192614 : UInt<11>
+ T_192614 := T_192613
+ when UInt<1>(0) : T_192614 := UInt<11>(1024)
+ node T_192615 = cat(T_192612, T_192614)
+ node T_192616 = or(UInt<1>(0), UInt<1>(0))
+ node T_192617 = or(T_192588, T_192616)
+ node T_192618 = bits(T_192606, 51, 0)
+ node T_192619 = cat(T_192615, T_192618)
+ node T_192620 = cat(T_192510, T_192619)
+ node T_192621 = cat(UInt<2>(0), T_192616)
+ node T_192622 = cat(UInt<1>(0), T_192617)
+ node T_192623 = cat(T_192621, T_192622)
+ mux.data := T_192620
+ mux.exc := T_192623
+ reg T_192747 : UInt<1>
+ onreset T_192747 := UInt<1>(0)
+ T_192747 := in.valid
+ reg T_192748 : {data : UInt<65>, exc : UInt<5>}
+ when in.valid : T_192748 := mux
+ reg T_192749 : UInt<1>
+ onreset T_192749 := UInt<1>(0)
+ T_192749 := T_192747
+ reg T_192750 : {data : UInt<65>, exc : UInt<5>}
+ when T_192747 : T_192750 := T_192748
+ T_192751.valid <> T_192749
+ T_192751.bits <> T_192750
+ out <> T_192751
+ module FPToFP :
+ input in : {valid : UInt<1>, bits : {cmd : UInt<5>, ldst : UInt<1>, wen : UInt<1>, ren1 : UInt<1>, ren2 : UInt<1>, ren3 : UInt<1>, swap12 : UInt<1>, swap23 : UInt<1>, single : UInt<1>, fromint : UInt<1>, toint : UInt<1>, fastpipe : UInt<1>, fma : UInt<1>, div : UInt<1>, sqrt : UInt<1>, round : UInt<1>, wflags : UInt<1>, rm : UInt<3>, typ : UInt<2>, in1 : UInt<65>, in2 : UInt<65>, in3 : UInt<65>}}
+ output out : {valid : UInt<1>, bits : {data : UInt<65>, exc : UInt<5>}}
+ input lt : UInt<1>
+
+ reg T_192752 : UInt<1>
+ onreset T_192752 := UInt<1>(0)
+ T_192752 := in.valid
+ reg T_192753 : {cmd : UInt<5>, ldst : UInt<1>, wen : UInt<1>, ren1 : UInt<1>, ren2 : UInt<1>, ren3 : UInt<1>, swap12 : UInt<1>, swap23 : UInt<1>, single : UInt<1>, fromint : UInt<1>, toint : UInt<1>, fastpipe : UInt<1>, fma : UInt<1>, div : UInt<1>, sqrt : UInt<1>, round : UInt<1>, wflags : UInt<1>, rm : UInt<3>, typ : UInt<2>, in1 : UInt<65>, in2 : UInt<65>, in3 : UInt<65>}
+ when in.valid : T_192753 := in.bits
+ in.valid <> T_192752
+ in.bits <> T_192753
+ node T_192754 = and(in.bits.cmd, UInt<3>(5))
+ node isSgnj = eq(UInt<3>(4), T_192754)
+ node T_192755 = and(in.bits.single, isSgnj)
+ node T_192756 = bit(in.bits.rm, 1)
+ node T_192757 = eq(T_192755, UInt<1>(0))
+ node T_192758 = or(T_192756, T_192757)
+ node T_192759 = bit(in.bits.in1, 32)
+ node T_192760 = bit(in.bits.rm, 0)
+ wire T_192761 : UInt<1>
+ T_192761 := T_192760
+ when T_192758 : T_192761 := T_192759
+ node T_192762 = bit(in.bits.in2, 32)
+ node T_192763 = and(T_192755, T_192762)
+ node sign_s = xor(T_192761, T_192763)
+ node T_192764 = eq(in.bits.single, UInt<1>(0))
+ node T_192765 = and(T_192764, isSgnj)
+ node T_192766 = bit(in.bits.rm, 1)
+ node T_192767 = eq(T_192765, UInt<1>(0))
+ node T_192768 = or(T_192766, T_192767)
+ node T_192769 = bit(in.bits.in1, 64)
+ node T_192770 = bit(in.bits.rm, 0)
+ wire T_192771 : UInt<1>
+ T_192771 := T_192770
+ when T_192768 : T_192771 := T_192769
+ node T_192772 = bit(in.bits.in2, 64)
+ node T_192773 = and(T_192765, T_192772)
+ node sign_d = xor(T_192771, T_192773)
+ node T_192774 = bits(in.bits.in1, 63, 33)
+ node T_192775 = bits(in.bits.in1, 31, 0)
+ node T_192776 = cat(sign_d, T_192774)
+ node T_192777 = cat(sign_s, T_192775)
+ node fsgnj = cat(T_192776, T_192777)
+ node T_192778 = bit(in.bits.in1, 32)
+ node T_192779 = bits(in.bits.in1, 22, 0)
+ node T_192780 = bits(in.bits.in1, 31, 23)
+ node T_192781 = bits(in.bits.in1, 31, 29)
+ node T_192782 = bits(in.bits.in1, 30, 23)
+ node T_192783 = eq(T_192781, UInt<1>(-1))
+ node T_192784 = bit(T_192779, 22)
+ node T_192785 = eq(T_192784, UInt<1>(0))
+ node T_192786 = and(T_192783, T_192785)
+ node T_192787 = lt(T_192781, UInt<1>(1))
+ node T_192788 = lt(T_192781, UInt<3>(4))
+ node T_192789 = cat(UInt<3>(7), T_192782)
+ node T_192790 = lt(T_192781, UInt<3>(6))
+ node T_192791 = cat(UInt<4>(8), T_192782)
+ node T_192792 = lt(T_192781, UInt<3>(7))
+ wire T_192793 : UInt<12>
+ T_192793 := UInt<12>(3584)
+ when T_192792 : T_192793 := UInt<12>(3072)
+ wire T_192794 : UInt<12>
+ T_192794 := T_192793
+ when T_192790 : T_192794 := T_192791
+ wire T_192795 : UInt<12>
+ T_192795 := T_192794
+ when T_192788 : T_192795 := T_192789
+ wire T_192796 : UInt<12>
+ T_192796 := T_192795
+ when T_192787 : T_192796 := T_192782
+ node T_192797 = subw(UInt<52>(0), UInt<6>(52))
+ node T_192798 = dshl(T_192779, UInt<5>(29))
+ node T_192799 = or(T_192797, T_192798)
+ node T_192800 = cat(T_192796, T_192799)
+ node T_192801 = cat(T_192778, T_192800)
+ node T_192802 = dshl(T_192786, UInt<3>(4))
+ node T_192803 = bit(in.bits.in1, 64)
+ node T_192804 = bits(in.bits.in1, 51, 0)
+ node T_192805 = bits(in.bits.in1, 63, 52)
+ node T_192806 = bits(in.bits.in1, 63, 61)
+ node T_192807 = bits(in.bits.in1, 62, 52)
+ node T_192808 = eq(T_192806, UInt<1>(-1))
+ node T_192809 = bit(T_192804, 51)
+ node T_192810 = eq(T_192809, UInt<1>(0))
+ node T_192811 = and(T_192808, T_192810)
+ node T_192812 = eq(T_192806, UInt<1>(0))
+ node T_192813 = eq(T_192812, UInt<1>(0))
+ node T_192814 = eq(T_192813, UInt<1>(0))
+ node T_192815 = bits(T_192806, 2, 1)
+ node T_192816 = eq(T_192815, UInt<1>(-1))
+ node T_192817 = or(T_192814, T_192816)
+ node T_192818 = geq(T_192805, UInt<11>(1898))
+ node T_192819 = leq(T_192805, UInt<11>(1921))
+ node T_192820 = and(T_192818, T_192819)
+ node T_192821 = lt(T_192805, UInt<11>(1898))
+ node T_192822 = eq(T_192817, UInt<1>(0))
+ node T_192823 = and(T_192821, T_192822)
+ node T_192824 = gt(T_192805, UInt<12>(2175))
+ node T_192825 = eq(T_192817, UInt<1>(0))
+ node T_192826 = and(T_192824, T_192825)
+ node T_192827 = addw(UInt<11>(1921), UInt<1>(1))
+ node T_192828 = subw(T_192827, T_192805)
+ wire T_192829 : UInt<1>
+ T_192829 := UInt<1>(0)
+ when T_192820 : T_192829 := T_192828
+ node T_192830 = bits(T_192829, 4, 0)
+ node T_192831 = bits(T_192804, 51, 28)
+ node T_192832 = cat(T_192831, UInt<24>(0))
+ node T_192833 = cat(UInt<1>(1), T_192832)
+ node T_192834 = dshr(T_192833, T_192830)
+ node T_192835 = bits(T_192834, 23, 0)
+ node T_192836 = neq(T_192835, UInt<1>(0))
+ node T_192837 = bits(T_192804, 27, 0)
+ node T_192838 = neq(T_192837, UInt<1>(0))
+ node T_192839 = or(T_192836, T_192838)
+ node T_192840 = bits(T_192834, 25, 24)
+ node T_192841 = cat(T_192840, T_192839)
+ node T_192842 = bits(T_192841, 1, 0)
+ node T_192843 = neq(T_192842, UInt<1>(0))
+ node T_192844 = eq(T_192817, UInt<1>(0))
+ node T_192845 = and(T_192843, T_192844)
+ node T_192846 = eq(in.bits.rm, UInt<2>(0))
+ node T_192847 = bits(T_192841, 1, 0)
+ node T_192848 = eq(T_192847, UInt<1>(-1))
+ node T_192849 = bits(T_192841, 2, 1)
+ node T_192850 = eq(T_192849, UInt<1>(-1))
+ node T_192851 = or(T_192848, T_192850)
+ node T_192852 = eq(in.bits.rm, UInt<2>(2))
+ node T_192853 = and(T_192803, T_192845)
+ node T_192854 = eq(in.bits.rm, UInt<2>(3))
+ node T_192855 = eq(T_192803, UInt<1>(0))
+ node T_192856 = and(T_192855, T_192845)
+ wire T_192857 : UInt<1>
+ T_192857 := UInt<1>(0)
+ when T_192854 : T_192857 := T_192856
+ wire T_192858 : UInt<1>
+ T_192858 := T_192857
+ when T_192852 : T_192858 := T_192853
+ wire T_192859 : UInt<1>
+ T_192859 := T_192858
+ when T_192846 : T_192859 := T_192851
+ node T_192860 = dshl(UInt<25>(33554431), T_192830)
+ node T_192861 = bits(T_192860, 24, 0)
+ node T_192862 = bits(T_192804, 51, 29)
+ node T_192863 = cat(UInt<2>(1), T_192862)
+ node T_192864 = not(T_192861)
+ node T_192865 = or(T_192863, T_192864)
+ node T_192866 = addw(T_192865, UInt<1>(1))
+ wire T_192867 : UInt<25>
+ T_192867 := T_192865
+ when T_192859 : T_192867 := T_192866
+ node T_192868 = bits(T_192805, 8, 0)
+ node T_192869 = addw(T_192868, UInt<9>(256))
+ node T_192870 = bit(T_192867, 24)
+ node T_192871 = addw(T_192869, UInt<1>(1))
+ wire T_192872 : UInt<9>
+ T_192872 := T_192869
+ when T_192870 : T_192872 := T_192871
+ node T_192873 = eq(in.bits.rm, UInt<2>(2))
+ node T_192874 = and(T_192873, T_192803)
+ node T_192875 = eq(in.bits.rm, UInt<2>(3))
+ node T_192876 = eq(T_192803, UInt<1>(0))
+ node T_192877 = and(T_192875, T_192876)
+ node T_192878 = or(T_192874, T_192877)
+ node T_192879 = eq(in.bits.rm, UInt<2>(0))
+ node T_192880 = or(T_192878, T_192879)
+ node T_192881 = eq(T_192880, UInt<1>(0))
+ node T_192882 = subw(UInt<23>(0), UInt<5>(23))
+ wire T_192883 : UInt<9>
+ T_192883 := UInt<9>(383)
+ when T_192880 : T_192883 := UInt<9>(384)
+ wire T_192884 : UInt<1>
+ T_192884 := UInt<1>(0)
+ when T_192878 : T_192884 := UInt<7>(107)
+ node T_192885 = dshl(T_192806, UInt<3>(6))
+ wire T_192886 : UInt<9>
+ T_192886 := T_192872
+ when T_192823 : T_192886 := T_192884
+ wire T_192887 : UInt<9>
+ T_192887 := T_192886
+ when T_192826 : T_192887 := T_192883
+ wire T_192888 : UInt<9>
+ T_192888 := T_192887
+ when T_192817 : T_192888 := T_192885
+ node T_192889 = subw(UInt<23>(0), UInt<5>(23))
+ node T_192890 = bits(T_192867, 22, 0)
+ wire T_192891 : UInt<23>
+ T_192891 := T_192890
+ when T_192823 : T_192891 := UInt<1>(0)
+ wire T_192892 : UInt<23>
+ T_192892 := T_192891
+ when T_192826 : T_192892 := T_192882
+ wire T_192893 : UInt<23>
+ T_192893 := T_192892
+ when T_192817 : T_192893 := T_192889
+ node T_192894 = cat(T_192888, T_192893)
+ node T_192895 = cat(T_192803, T_192894)
+ node T_192896 = and(T_192820, T_192845)
+ node T_192897 = or(T_192823, T_192896)
+ node T_192898 = eq(T_192805, UInt<12>(2175))
+ node T_192899 = bit(T_192867, 24)
+ node T_192900 = and(T_192898, T_192899)
+ node T_192901 = or(T_192826, T_192900)
+ node T_192902 = or(T_192845, T_192826)
+ node T_192903 = or(T_192902, T_192823)
+ node T_192904 = cat(T_192811, UInt<1>(0))
+ node T_192905 = cat(T_192897, T_192903)
+ node T_192906 = cat(T_192901, T_192905)
+ node T_192907 = cat(T_192904, T_192906)
+ node T_192908 = bits(in.bits.in1, 31, 29)
+ node T_192909 = eq(T_192908, UInt<1>(-1))
+ node T_192910 = bits(in.bits.in1, 63, 61)
+ node T_192911 = eq(T_192910, UInt<1>(-1))
+ wire isnan1 : UInt<1>
+ isnan1 := T_192911
+ when in.bits.single : isnan1 := T_192909
+ node T_192912 = bits(in.bits.in2, 31, 29)
+ node T_192913 = eq(T_192912, UInt<1>(-1))
+ node T_192914 = bits(in.bits.in2, 63, 61)
+ node T_192915 = eq(T_192914, UInt<1>(-1))
+ wire isnan2 : UInt<1>
+ isnan2 := T_192915
+ when in.bits.single : isnan2 := T_192913
+ node T_192916 = bit(in.bits.in1, 22)
+ node T_192917 = bit(in.bits.in1, 51)
+ wire T_192918 : UInt<1>
+ T_192918 := T_192917
+ when in.bits.single : T_192918 := T_192916
+ node T_192919 = not(T_192918)
+ node issnan1 = and(isnan1, T_192919)
+ node T_192920 = bit(in.bits.in2, 22)
+ node T_192921 = bit(in.bits.in2, 51)
+ wire T_192922 : UInt<1>
+ T_192922 := T_192921
+ when in.bits.single : T_192922 := T_192920
+ node T_192923 = not(T_192922)
+ node issnan2 = and(isnan2, T_192923)
+ node T_192924 = or(issnan1, issnan2)
+ node minmax_exc = cat(T_192924, UInt<4>(0))
+ node isMax = bit(in.bits.rm, 0)
+ node T_192925 = neq(isMax, lt)
+ node T_192926 = eq(isnan1, UInt<1>(0))
+ node T_192927 = and(T_192925, T_192926)
+ node isLHS = or(isnan2, T_192927)
+ wire mux : {data : UInt<65>, exc : UInt<5>}
+ mux.exc := minmax_exc
+ mux.data := in.bits.in2
+ when isSgnj : mux.exc := UInt<1>(0)
+
+ node T_192928 = or(isSgnj, isLHS)
+ when T_192928 : mux.data := fsgnj
+
+
+ node T_192929 = and(in.bits.cmd, UInt<3>(4))
+ node T_192930 = eq(UInt<1>(0), T_192929)
+ when T_192930 : when in.bits.single :
+ node T_192931 = asUInt(SInt<32>(-1))
+ node T_192932 = cat(T_192931, T_192895)
+ mux.data := T_192932
+ mux.exc := T_192907
+ else :
+
+ mux.data := T_192801
+ mux.exc := T_192802
+ reg T_192933 : UInt<1>
+ onreset T_192933 := UInt<1>(0)
+ T_192933 := in.valid
+ reg T_192934 : {data : UInt<65>, exc : UInt<5>}
+ when in.valid : T_192934 := mux
+ T_192935.valid <> T_192933
+ T_192935.bits <> T_192934
+ out <> T_192935
+ module divSqrtRecodedFloat64_mulAddZ31 :
+ output inReady_div : UInt<1>
+ output inReady_sqrt : UInt<1>
+ input inValid : UInt<1>
+ input sqrtOp : UInt<1>
+ input a : UInt<65>
+ input b : UInt<65>
+ input roundingMode : UInt<2>
+ output outValid_div : UInt<1>
+ output outValid_sqrt : UInt<1>
+ output out : UInt<65>
+ output exceptionFlags : UInt<5>
+ output usingMulAdd : UInt<4>
+ output latchMulAddA_0 : UInt<1>
+ output mulAddA_0 : UInt<54>
+ output latchMulAddB_0 : UInt<1>
+ output mulAddB_0 : UInt<54>
+ output mulAddC_2 : UInt<105>
+ input mulAddResult_3 : UInt<105>
+
+ reg valid_PA : UInt<1>
+ onreset valid_PA := UInt<1>(0)
+ reg sqrtOp_PA : UInt<1>
+ reg sign_PA : UInt<1>
+ reg specialCodeB_PA : UInt<3>
+ reg fractB_51_PA : UInt<1>
+ reg roundingMode_PA : UInt<2>
+ reg specialCodeA_PA : UInt<3>
+ reg fractA_51_PA : UInt<1>
+ reg exp_PA : UInt<14>
+ reg fractB_other_PA : UInt<51>
+ reg fractA_other_PA : UInt<51>
+ reg valid_PB : UInt<1>
+ onreset valid_PB := UInt<1>(0)
+ reg sqrtOp_PB : UInt<1>
+ reg sign_PB : UInt<1>
+ reg specialCodeA_PB : UInt<3>
+ reg fractA_51_PB : UInt<1>
+ reg specialCodeB_PB : UInt<3>
+ reg fractB_51_PB : UInt<1>
+ reg roundingMode_PB : UInt<2>
+ reg exp_PB : UInt<14>
+ reg fractA_0_PB : UInt<1>
+ reg fractB_other_PB : UInt<51>
+ reg valid_PC : UInt<1>
+ onreset valid_PC := UInt<1>(0)
+ reg sqrtOp_PC : UInt<1>
+ reg sign_PC : UInt<1>
+ reg specialCodeA_PC : UInt<3>
+ reg fractA_51_PC : UInt<1>
+ reg specialCodeB_PC : UInt<3>
+ reg fractB_51_PC : UInt<1>
+ reg roundingMode_PC : UInt<2>
+ reg exp_PC : UInt<14>
+ reg fractA_0_PC : UInt<1>
+ reg fractB_other_PC : UInt<51>
+ reg cycleNum_A : UInt<3>
+ onreset cycleNum_A := UInt<3>(0)
+ reg cycleNum_B : UInt<4>
+ onreset cycleNum_B := UInt<4>(0)
+ reg cycleNum_C : UInt<3>
+ onreset cycleNum_C := UInt<3>(0)
+ reg cycleNum_E : UInt<3>
+ onreset cycleNum_E := UInt<3>(0)
+ reg fractR0_A : UInt<9>
+ reg hiSqrR0_A_sqrt : UInt<10>
+ reg partNegSigma0_A : UInt<21>
+ reg nextMulAdd9A_A : UInt<9>
+ reg nextMulAdd9B_A : UInt<9>
+ reg ER1_B_sqrt : UInt<17>
+ reg ESqrR1_B_sqrt : UInt<32>
+ reg sigX1_B : UInt<58>
+ reg sqrSigma1_C : UInt<33>
+ reg sigXN_C : UInt<58>
+ reg u_C_sqrt : UInt<31>
+ reg E_E_div : UInt<1>
+ reg sigT_E : UInt<53>
+ reg extraT_E : UInt<1>
+ reg isNegRemT_E : UInt<1>
+ reg trueEqX_E1 : UInt<1>
+ wire ready_PA : UInt<1>
+ wire ready_PB : UInt<1>
+ wire ready_PC : UInt<1>
+ wire leaving_PA : UInt<1>
+ wire leaving_PB : UInt<1>
+ wire leaving_PC : UInt<1>
+ wire cyc_B10_sqrt : UInt<1>
+ wire cyc_B9_sqrt : UInt<1>
+ wire cyc_B8_sqrt : UInt<1>
+ wire cyc_B7_sqrt : UInt<1>
+ wire cyc_B6 : UInt<1>
+ wire cyc_B5 : UInt<1>
+ wire cyc_B4 : UInt<1>
+ wire cyc_B3 : UInt<1>
+ wire cyc_B2 : UInt<1>
+ wire cyc_B1 : UInt<1>
+ wire cyc_B6_div : UInt<1>
+ wire cyc_B5_div : UInt<1>
+ wire cyc_B4_div : UInt<1>
+ wire cyc_B3_div : UInt<1>
+ wire cyc_B2_div : UInt<1>
+ wire cyc_B1_div : UInt<1>
+ wire cyc_B6_sqrt : UInt<1>
+ wire cyc_B5_sqrt : UInt<1>
+ wire cyc_B4_sqrt : UInt<1>
+ wire cyc_B3_sqrt : UInt<1>
+ wire cyc_B2_sqrt : UInt<1>
+ wire cyc_B1_sqrt : UInt<1>
+ wire cyc_C5 : UInt<1>
+ wire cyc_C4 : UInt<1>
+ wire cyc_C3 : UInt<1>
+ wire cyc_C2 : UInt<1>
+ wire cyc_C1 : UInt<1>
+ wire cyc_E4 : UInt<1>
+ wire cyc_E3 : UInt<1>
+ wire cyc_E2 : UInt<1>
+ wire cyc_E1 : UInt<1>
+ wire zSigma1_B4 : UInt
+ wire sigXNU_B3_CX : UInt
+ wire zComplSigT_C1_sqrt : UInt
+ wire zComplSigT_C1 : UInt
+ node T_192936 = not(cyc_B6_sqrt)
+ node T_192937 = and(ready_PA, T_192936)
+ node T_192938 = not(cyc_B5_sqrt)
+ node T_192939 = and(T_192937, T_192938)
+ node T_192940 = not(cyc_B4_sqrt)
+ node T_192941 = and(T_192939, T_192940)
+ node T_192942 = not(cyc_B3)
+ node T_192943 = and(T_192941, T_192942)
+ node T_192944 = not(cyc_B2)
+ node T_192945 = and(T_192943, T_192944)
+ node T_192946 = not(cyc_B1_sqrt)
+ node T_192947 = and(T_192945, T_192946)
+ node T_192948 = not(cyc_C5)
+ node T_192949 = and(T_192947, T_192948)
+ node T_192950 = not(cyc_C4)
+ node T_192951 = and(T_192949, T_192950)
+ inReady_div := T_192951
+ node T_192952 = not(cyc_B6_sqrt)
+ node T_192953 = and(ready_PA, T_192952)
+ node T_192954 = not(cyc_B5_sqrt)
+ node T_192955 = and(T_192953, T_192954)
+ node T_192956 = not(cyc_B4_sqrt)
+ node T_192957 = and(T_192955, T_192956)
+ node T_192958 = not(cyc_B2_div)
+ node T_192959 = and(T_192957, T_192958)
+ node T_192960 = not(cyc_B1_sqrt)
+ node T_192961 = and(T_192959, T_192960)
+ inReady_sqrt := T_192961
+ node T_192962 = and(inReady_div, inValid)
+ node T_192963 = not(sqrtOp)
+ node cyc_S_div = and(T_192962, T_192963)
+ node T_192964 = and(inReady_sqrt, inValid)
+ node cyc_S_sqrt = and(T_192964, sqrtOp)
+ node cyc_S = or(cyc_S_div, cyc_S_sqrt)
+ node signA_S = bit(a, 64)
+ node expA_S = bits(a, 63, 52)
+ node fractA_S = bits(a, 51, 0)
+ node specialCodeA_S = bits(expA_S, 11, 9)
+ node isZeroA_S = eq(specialCodeA_S, UInt<3>(0))
+ node T_192965 = bits(specialCodeA_S, 2, 1)
+ node isSpecialA_S = eq(T_192965, UInt<2>(3))
+ node signB_S = bit(b, 64)
+ node expB_S = bits(b, 63, 52)
+ node fractB_S = bits(b, 51, 0)
+ node specialCodeB_S = bits(expB_S, 11, 9)
+ node isZeroB_S = eq(specialCodeB_S, UInt<3>(0))
+ node T_192966 = bits(specialCodeB_S, 2, 1)
+ node isSpecialB_S = eq(T_192966, UInt<2>(3))
+ node T_192967 = xor(signA_S, signB_S)
+ wire sign_S : UInt<1>
+ sign_S := T_192967
+ when sqrtOp : sign_S := signB_S
+ node T_192968 = not(isSpecialA_S)
+ node T_192969 = not(isSpecialB_S)
+ node T_192970 = and(T_192968, T_192969)
+ node T_192971 = not(isZeroA_S)
+ node T_192972 = and(T_192970, T_192971)
+ node T_192973 = not(isZeroB_S)
+ node normalCase_S_div = and(T_192972, T_192973)
+ node T_192974 = not(isSpecialB_S)
+ node T_192975 = not(isZeroB_S)
+ node T_192976 = and(T_192974, T_192975)
+ node T_192977 = not(signB_S)
+ node normalCase_S_sqrt = and(T_192976, T_192977)
+ wire normalCase_S : UInt<1>
+ normalCase_S := normalCase_S_div
+ when sqrtOp : normalCase_S := normalCase_S_sqrt
+ node cyc_A4_div = and(cyc_S_div, normalCase_S_div)
+ node cyc_A7_sqrt = and(cyc_S_sqrt, normalCase_S_sqrt)
+ node entering_PA_normalCase = or(cyc_A4_div, cyc_A7_sqrt)
+ node T_192978 = not(ready_PB)
+ node T_192979 = or(valid_PA, T_192978)
+ node T_192980 = and(cyc_S, T_192979)
+ node entering_PA = or(entering_PA_normalCase, T_192980)
+ node T_192981 = not(normalCase_S)
+ node T_192982 = and(cyc_S, T_192981)
+ node T_192983 = not(valid_PA)
+ node T_192984 = and(T_192982, T_192983)
+ node T_192985 = not(valid_PB)
+ node T_192986 = not(ready_PC)
+ node T_192987 = and(T_192985, T_192986)
+ node T_192988 = or(leaving_PB, T_192987)
+ node entering_PB_S = and(T_192984, T_192988)
+ node T_192989 = not(normalCase_S)
+ node T_192990 = and(cyc_S, T_192989)
+ node T_192991 = not(valid_PA)
+ node T_192992 = and(T_192990, T_192991)
+ node T_192993 = not(valid_PB)
+ node T_192994 = and(T_192992, T_192993)
+ node entering_PC_S = and(T_192994, ready_PC)
+
+ node T_192995 = or(entering_PA, leaving_PA)
+ when T_192995 : valid_PA := entering_PA
+ when entering_PA :
+ sqrtOp_PA := sqrtOp
+ sign_PA := sign_S
+ specialCodeB_PA := specialCodeB_S
+ node T_192996 = bit(fractB_S, 51)
+ fractB_51_PA := T_192996
+ roundingMode_PA := roundingMode
+
+
+ node T_192997 = not(sqrtOp)
+ node T_192998 = and(entering_PA, T_192997)
+ when T_192998 :
+ specialCodeA_PA := specialCodeA_S
+ node T_192999 = bit(fractA_S, 51)
+ fractA_51_PA := T_192999
+ when entering_PA_normalCase :
+ node T_193000 = bit(expB_S, 11)
+ node T_193001 = subw(UInt<3>(0), UInt<2>(3))
+ node T_193002 = bits(expB_S, 10, 0)
+ node T_193003 = not(T_193002)
+ node T_193004 = cat(T_193001, T_193003)
+ node T_193005 = addw(expA_S, T_193004)
+ wire T_193006 : UInt<14>
+ T_193006 := T_193005
+ when sqrtOp : T_193006 := expB_S
+ exp_PA := T_193006
+ node T_193007 = bits(fractB_S, 50, 0)
+ fractB_other_PA := T_193007
+ when cyc_A4_div :
+ node T_193008 = bits(fractA_S, 50, 0)
+ fractA_other_PA := T_193008
+ node isZeroA_PA = eq(specialCodeA_PA, UInt<3>(0))
+ node T_193009 = bits(specialCodeA_PA, 2, 1)
+ node isSpecialA_PA = eq(T_193009, UInt<2>(3))
+ node T_193010 = cat(fractA_51_PA, fractA_other_PA)
+ node sigA_PA = cat(UInt<1>(1), T_193010)
+ node isZeroB_PA = eq(specialCodeB_PA, UInt<3>(0))
+ node T_193011 = bits(specialCodeB_PA, 2, 1)
+ node isSpecialB_PA = eq(T_193011, UInt<2>(3))
+ node T_193012 = cat(fractB_51_PA, fractB_other_PA)
+ node sigB_PA = cat(UInt<1>(1), T_193012)
+ node T_193013 = not(isSpecialB_PA)
+ node T_193014 = not(isZeroB_PA)
+ node T_193015 = and(T_193013, T_193014)
+ node T_193016 = not(sign_PA)
+ node T_193017 = and(T_193015, T_193016)
+ node T_193018 = not(isSpecialA_PA)
+ node T_193019 = not(isSpecialB_PA)
+ node T_193020 = and(T_193018, T_193019)
+ node T_193021 = not(isZeroA_PA)
+ node T_193022 = and(T_193020, T_193021)
+ node T_193023 = not(isZeroB_PA)
+ node T_193024 = and(T_193022, T_193023)
+ wire normalCase_PA : UInt<1>
+ normalCase_PA := T_193024
+ when sqrtOp_PA : normalCase_PA := T_193017
+ node valid_normalCase_leaving_PA = or(cyc_B4_div, cyc_B7_sqrt)
+ wire valid_leaving_PA : UInt<1>
+ valid_leaving_PA := ready_PB
+ when normalCase_PA : valid_leaving_PA := valid_normalCase_leaving_PA
+ node T_193025 = and(valid_PA, valid_leaving_PA)
+ leaving_PA := T_193025
+ node T_193026 = not(valid_PA)
+ node T_193027 = or(T_193026, valid_leaving_PA)
+ ready_PA := T_193027
+ node T_193028 = and(valid_PA, normalCase_PA)
+ node entering_PB_normalCase = and(T_193028, valid_normalCase_leaving_PA)
+ node entering_PB = or(entering_PB_S, leaving_PA)
+
+ node T_193029 = or(entering_PB, leaving_PB)
+ when T_193029 : valid_PB := entering_PB
+ when entering_PB :
+ wire T_193030 : UInt<1>
+ T_193030 := sqrtOp
+ when valid_PA : T_193030 := sqrtOp_PA
+ sqrtOp_PB := T_193030
+ wire T_193031 : UInt<1>
+ T_193031 := sign_S
+ when valid_PA : T_193031 := sign_PA
+ sign_PB := T_193031
+ wire T_193032 : UInt<3>
+ T_193032 := specialCodeA_S
+ when valid_PA : T_193032 := specialCodeA_PA
+ specialCodeA_PB := T_193032
+ node T_193033 = bit(fractA_S, 51)
+ wire T_193034 : UInt<1>
+ T_193034 := T_193033
+ when valid_PA : T_193034 := fractA_51_PA
+ fractA_51_PB := T_193034
+ wire T_193035 : UInt<3>
+ T_193035 := specialCodeB_S
+ when valid_PA : T_193035 := specialCodeB_PA
+ specialCodeB_PB := T_193035
+ node T_193036 = bit(fractB_S, 51)
+ wire T_193037 : UInt<1>
+ T_193037 := T_193036
+ when valid_PA : T_193037 := fractB_51_PA
+ fractB_51_PB := T_193037
+ wire T_193038 : UInt<2>
+ T_193038 := roundingMode
+ when valid_PA : T_193038 := roundingMode_PA
+ roundingMode_PB := T_193038
+ when entering_PB_normalCase :
+ exp_PB := exp_PA
+ node T_193039 = bit(fractA_other_PA, 0)
+ fractA_0_PB := T_193039
+ fractB_other_PB := fractB_other_PA
+ node isZeroA_PB = eq(specialCodeA_PB, UInt<3>(0))
+ node T_193040 = bits(specialCodeA_PB, 2, 1)
+ node isSpecialA_PB = eq(T_193040, UInt<2>(3))
+ node isZeroB_PB = eq(specialCodeB_PB, UInt<3>(0))
+ node T_193041 = bits(specialCodeB_PB, 2, 1)
+ node isSpecialB_PB = eq(T_193041, UInt<2>(3))
+ node T_193042 = not(isSpecialB_PB)
+ node T_193043 = not(isZeroB_PB)
+ node T_193044 = and(T_193042, T_193043)
+ node T_193045 = not(sign_PB)
+ node T_193046 = and(T_193044, T_193045)
+ node T_193047 = not(isSpecialA_PB)
+ node T_193048 = not(isSpecialB_PB)
+ node T_193049 = and(T_193047, T_193048)
+ node T_193050 = not(isZeroA_PB)
+ node T_193051 = and(T_193049, T_193050)
+ node T_193052 = not(isZeroB_PB)
+ node T_193053 = and(T_193051, T_193052)
+ wire normalCase_PB : UInt<1>
+ normalCase_PB := T_193053
+ when sqrtOp_PB : normalCase_PB := T_193046
+ wire valid_leaving_PB : UInt<1>
+ valid_leaving_PB := ready_PC
+ when normalCase_PB : valid_leaving_PB := cyc_C3
+ node T_193054 = and(valid_PB, valid_leaving_PB)
+ leaving_PB := T_193054
+ node T_193055 = not(valid_PB)
+ node T_193056 = or(T_193055, valid_leaving_PB)
+ ready_PB := T_193056
+ node T_193057 = and(valid_PB, normalCase_PB)
+ node entering_PC_normalCase = and(T_193057, cyc_C3)
+ node entering_PC = or(entering_PC_S, leaving_PB)
+
+ node T_193058 = or(entering_PC, leaving_PC)
+ when T_193058 : valid_PC := entering_PC
+ when entering_PC :
+ wire T_193059 : UInt<1>
+ T_193059 := sqrtOp
+ when valid_PB : T_193059 := sqrtOp_PB
+ sqrtOp_PC := T_193059
+ wire T_193060 : UInt<1>
+ T_193060 := sign_S
+ when valid_PB : T_193060 := sign_PB
+ sign_PC := T_193060
+ wire T_193061 : UInt<3>
+ T_193061 := specialCodeA_S
+ when valid_PB : T_193061 := specialCodeA_PB
+ specialCodeA_PC := T_193061
+ node T_193062 = bit(fractA_S, 51)
+ wire T_193063 : UInt<1>
+ T_193063 := T_193062
+ when valid_PB : T_193063 := fractA_51_PB
+ fractA_51_PC := T_193063
+ wire T_193064 : UInt<3>
+ T_193064 := specialCodeB_S
+ when valid_PB : T_193064 := specialCodeB_PB
+ specialCodeB_PC := T_193064
+ node T_193065 = bit(fractB_S, 51)
+ wire T_193066 : UInt<1>
+ T_193066 := T_193065
+ when valid_PB : T_193066 := fractB_51_PB
+ fractB_51_PC := T_193066
+ wire T_193067 : UInt<2>
+ T_193067 := roundingMode
+ when valid_PB : T_193067 := roundingMode_PB
+ roundingMode_PC := T_193067
+ when entering_PC_normalCase :
+ exp_PC := exp_PB
+ fractA_0_PC := fractA_0_PB
+ fractB_other_PC := fractB_other_PB
+ node isZeroA_PC = eq(specialCodeA_PC, UInt<3>(0))
+ node T_193068 = bits(specialCodeA_PC, 2, 1)
+ node isSpecialA_PC = eq(T_193068, UInt<2>(3))
+ node T_193069 = bit(specialCodeA_PC, 0)
+ node T_193070 = not(T_193069)
+ node isInfA_PC = and(isSpecialA_PC, T_193070)
+ node T_193071 = bit(specialCodeA_PC, 0)
+ node isNaNA_PC = and(isSpecialA_PC, T_193071)
+ node T_193072 = not(fractA_51_PC)
+ node isSigNaNA_PC = and(isNaNA_PC, T_193072)
+ node isZeroB_PC = eq(specialCodeB_PC, UInt<3>(0))
+ node T_193073 = bits(specialCodeB_PC, 2, 1)
+ node isSpecialB_PC = eq(T_193073, UInt<2>(3))
+ node T_193074 = bit(specialCodeB_PC, 0)
+ node T_193075 = not(T_193074)
+ node isInfB_PC = and(isSpecialB_PC, T_193075)
+ node T_193076 = bit(specialCodeB_PC, 0)
+ node isNaNB_PC = and(isSpecialB_PC, T_193076)
+ node T_193077 = not(fractB_51_PC)
+ node isSigNaNB_PC = and(isNaNB_PC, T_193077)
+ node T_193078 = cat(fractB_51_PC, fractB_other_PC)
+ node sigB_PC = cat(UInt<1>(1), T_193078)
+ node T_193079 = not(isSpecialB_PC)
+ node T_193080 = not(isZeroB_PC)
+ node T_193081 = and(T_193079, T_193080)
+ node T_193082 = not(sign_PC)
+ node T_193083 = and(T_193081, T_193082)
+ node T_193084 = not(isSpecialA_PC)
+ node T_193085 = not(isSpecialB_PC)
+ node T_193086 = and(T_193084, T_193085)
+ node T_193087 = not(isZeroA_PC)
+ node T_193088 = and(T_193086, T_193087)
+ node T_193089 = not(isZeroB_PC)
+ node T_193090 = and(T_193088, T_193089)
+ wire normalCase_PC : UInt<1>
+ normalCase_PC := T_193090
+ when sqrtOp_PC : normalCase_PC := T_193083
+ node expP2_PC = addw(exp_PC, UInt<2>(2))
+ node T_193091 = bit(exp_PC, 0)
+ node T_193092 = bits(expP2_PC, 13, 1)
+ node T_193093 = cat(T_193092, UInt<1>(0))
+ node T_193094 = bits(exp_PC, 13, 1)
+ node T_193095 = cat(T_193094, UInt<1>(1))
+ wire expP1_PC : UInt<14>
+ expP1_PC := T_193095
+ when T_193091 : expP1_PC := T_193093
+ node roundingMode_near_even_PC = eq(roundingMode_PC, UInt<2>(0))
+ node roundingMode_minMag_PC = eq(roundingMode_PC, UInt<2>(1))
+ node roundingMode_min_PC = eq(roundingMode_PC, UInt<2>(2))
+ node roundingMode_max_PC = eq(roundingMode_PC, UInt<2>(3))
+ wire roundMagUp_PC : UInt<1>
+ roundMagUp_PC := roundingMode_max_PC
+ when sign_PC : roundMagUp_PC := roundingMode_min_PC
+ node overflowY_roundMagUp_PC = or(roundingMode_near_even_PC, roundMagUp_PC)
+ node T_193096 = not(roundMagUp_PC)
+ node T_193097 = not(roundingMode_near_even_PC)
+ node roundMagDown_PC = and(T_193096, T_193097)
+ node T_193098 = not(normalCase_PC)
+ node valid_leaving_PC = or(T_193098, cyc_E1)
+ node T_193099 = and(valid_PC, valid_leaving_PC)
+ leaving_PC := T_193099
+ node T_193100 = not(valid_PC)
+ node T_193101 = or(T_193100, valid_leaving_PC)
+ ready_PC := T_193101
+ node T_193102 = not(sqrtOp_PC)
+ node T_193103 = and(leaving_PC, T_193102)
+ outValid_div := T_193103
+ node T_193104 = and(leaving_PC, sqrtOp_PC)
+ outValid_sqrt := T_193104
+
+
+ node T_193105 = neq(cycleNum_A, UInt<1>(0))
+ node T_193106 = or(entering_PA_normalCase, T_193105)
+ when T_193106 :
+ wire T_193107 : UInt<1>
+ T_193107 := UInt<1>(0)
+ when cyc_A4_div : T_193107 := UInt<2>(3)
+ wire T_193108 : UInt<1>
+ T_193108 := UInt<1>(0)
+ when cyc_A7_sqrt : T_193108 := UInt<3>(6)
+ node T_193109 = or(T_193107, T_193108)
+ node T_193110 = not(entering_PA_normalCase)
+ node T_193111 = subw(cycleNum_A, UInt<1>(1))
+ wire T_193112 : UInt<1>
+ T_193112 := UInt<1>(0)
+ when T_193110 : T_193112 := T_193111
+ node T_193113 = or(T_193109, T_193112)
+ cycleNum_A := T_193113
+ node cyc_A6_sqrt = eq(cycleNum_A, UInt<3>(6))
+ node cyc_A5_sqrt = eq(cycleNum_A, UInt<3>(5))
+ node cyc_A4_sqrt = eq(cycleNum_A, UInt<3>(4))
+ node cyc_A4 = or(cyc_A4_sqrt, cyc_A4_div)
+ node cyc_A3 = eq(cycleNum_A, UInt<2>(3))
+ node cyc_A2 = eq(cycleNum_A, UInt<2>(2))
+ node cyc_A1 = eq(cycleNum_A, UInt<1>(1))
+ node T_193114 = not(sqrtOp_PA)
+ node cyc_A3_div = and(cyc_A3, T_193114)
+ node T_193115 = not(sqrtOp_PA)
+ node cyc_A2_div = and(cyc_A2, T_193115)
+ node T_193116 = not(sqrtOp_PA)
+ node cyc_A1_div = and(cyc_A1, T_193116)
+ node cyc_A3_sqrt = and(cyc_A3, sqrtOp_PA)
+ node cyc_A2_sqrt = and(cyc_A2, sqrtOp_PA)
+ node cyc_A1_sqrt = and(cyc_A1, sqrtOp_PA)
+
+
+ node T_193117 = neq(cycleNum_B, UInt<1>(0))
+ node T_193118 = or(cyc_A1, T_193117)
+ when T_193118 :
+ wire T_193119 : UInt<3>
+ T_193119 := UInt<3>(6)
+ when sqrtOp_PA : T_193119 := UInt<4>(10)
+ node T_193120 = subw(cycleNum_B, UInt<1>(1))
+ wire T_193121 : UInt<4>
+ T_193121 := T_193120
+ when cyc_A1 : T_193121 := T_193119
+ cycleNum_B := T_193121
+ node T_193122 = eq(cycleNum_B, UInt<4>(10))
+ cyc_B10_sqrt := T_193122
+ node T_193123 = eq(cycleNum_B, UInt<4>(9))
+ cyc_B9_sqrt := T_193123
+ node T_193124 = eq(cycleNum_B, UInt<4>(8))
+ cyc_B8_sqrt := T_193124
+ node T_193125 = eq(cycleNum_B, UInt<3>(7))
+ cyc_B7_sqrt := T_193125
+ node T_193126 = eq(cycleNum_B, UInt<3>(6))
+ cyc_B6 := T_193126
+ node T_193127 = eq(cycleNum_B, UInt<3>(5))
+ cyc_B5 := T_193127
+ node T_193128 = eq(cycleNum_B, UInt<3>(4))
+ cyc_B4 := T_193128
+ node T_193129 = eq(cycleNum_B, UInt<2>(3))
+ cyc_B3 := T_193129
+ node T_193130 = eq(cycleNum_B, UInt<2>(2))
+ cyc_B2 := T_193130
+ node T_193131 = eq(cycleNum_B, UInt<1>(1))
+ cyc_B1 := T_193131
+ node T_193132 = and(cyc_B6, valid_PA)
+ node T_193133 = not(sqrtOp_PA)
+ node T_193134 = and(T_193132, T_193133)
+ cyc_B6_div := T_193134
+ node T_193135 = and(cyc_B5, valid_PA)
+ node T_193136 = not(sqrtOp_PA)
+ node T_193137 = and(T_193135, T_193136)
+ cyc_B5_div := T_193137
+ node T_193138 = and(cyc_B4, valid_PA)
+ node T_193139 = not(sqrtOp_PA)
+ node T_193140 = and(T_193138, T_193139)
+ cyc_B4_div := T_193140
+ node T_193141 = not(sqrtOp_PB)
+ node T_193142 = and(cyc_B3, T_193141)
+ cyc_B3_div := T_193142
+ node T_193143 = not(sqrtOp_PB)
+ node T_193144 = and(cyc_B2, T_193143)
+ cyc_B2_div := T_193144
+ node T_193145 = not(sqrtOp_PB)
+ node T_193146 = and(cyc_B1, T_193145)
+ cyc_B1_div := T_193146
+ node T_193147 = and(cyc_B6, valid_PB)
+ node T_193148 = and(T_193147, sqrtOp_PB)
+ cyc_B6_sqrt := T_193148
+ node T_193149 = and(cyc_B5, valid_PB)
+ node T_193150 = and(T_193149, sqrtOp_PB)
+ cyc_B5_sqrt := T_193150
+ node T_193151 = and(cyc_B4, valid_PB)
+ node T_193152 = and(T_193151, sqrtOp_PB)
+ cyc_B4_sqrt := T_193152
+ node T_193153 = and(cyc_B3, sqrtOp_PB)
+ cyc_B3_sqrt := T_193153
+ node T_193154 = and(cyc_B2, sqrtOp_PB)
+ cyc_B2_sqrt := T_193154
+ node T_193155 = and(cyc_B1, sqrtOp_PB)
+ cyc_B1_sqrt := T_193155
+
+
+ node T_193156 = neq(cycleNum_C, UInt<1>(0))
+ node T_193157 = or(cyc_B1, T_193156)
+ when T_193157 :
+ wire T_193158 : UInt<3>
+ T_193158 := UInt<3>(5)
+ when sqrtOp_PB : T_193158 := UInt<3>(6)
+ node T_193159 = subw(cycleNum_C, UInt<1>(1))
+ wire T_193160 : UInt<3>
+ T_193160 := T_193159
+ when cyc_B1 : T_193160 := T_193158
+ cycleNum_C := T_193160
+ node cyc_C6_sqrt = eq(cycleNum_C, UInt<3>(6))
+ node T_193161 = eq(cycleNum_C, UInt<3>(5))
+ cyc_C5 := T_193161
+ node T_193162 = eq(cycleNum_C, UInt<3>(4))
+ cyc_C4 := T_193162
+ node T_193163 = eq(cycleNum_C, UInt<2>(3))
+ cyc_C3 := T_193163
+ node T_193164 = eq(cycleNum_C, UInt<2>(2))
+ cyc_C2 := T_193164
+ node T_193165 = eq(cycleNum_C, UInt<1>(1))
+ cyc_C1 := T_193165
+ node T_193166 = not(sqrtOp_PB)
+ node cyc_C5_div = and(cyc_C5, T_193166)
+ node T_193167 = not(sqrtOp_PB)
+ node cyc_C4_div = and(cyc_C4, T_193167)
+ node T_193168 = not(sqrtOp_PB)
+ node cyc_C3_div = and(cyc_C3, T_193168)
+ node T_193169 = not(sqrtOp_PC)
+ node cyc_C2_div = and(cyc_C2, T_193169)
+ node T_193170 = not(sqrtOp_PC)
+ node cyc_C1_div = and(cyc_C1, T_193170)
+ node cyc_C5_sqrt = and(cyc_C5, sqrtOp_PB)
+ node cyc_C4_sqrt = and(cyc_C4, sqrtOp_PB)
+ node cyc_C3_sqrt = and(cyc_C3, sqrtOp_PB)
+ node cyc_C2_sqrt = and(cyc_C2, sqrtOp_PC)
+ node cyc_C1_sqrt = and(cyc_C1, sqrtOp_PC)
+
+
+ node T_193171 = neq(cycleNum_E, UInt<1>(0))
+ node T_193172 = or(cyc_C1, T_193171)
+ when T_193172 :
+ node T_193173 = subw(cycleNum_E, UInt<1>(1))
+ wire T_193174 : UInt<3>
+ T_193174 := T_193173
+ when cyc_C1 : T_193174 := UInt<3>(4)
+ cycleNum_E := T_193174
+ node T_193175 = eq(cycleNum_E, UInt<3>(4))
+ cyc_E4 := T_193175
+ node T_193176 = eq(cycleNum_E, UInt<2>(3))
+ cyc_E3 := T_193176
+ node T_193177 = eq(cycleNum_E, UInt<2>(2))
+ cyc_E2 := T_193177
+ node T_193178 = eq(cycleNum_E, UInt<1>(1))
+ cyc_E1 := T_193178
+ node T_193179 = not(sqrtOp_PC)
+ node cyc_E4_div = and(cyc_E4, T_193179)
+ node T_193180 = not(sqrtOp_PC)
+ node cyc_E3_div = and(cyc_E3, T_193180)
+ node T_193181 = not(sqrtOp_PC)
+ node cyc_E2_div = and(cyc_E2, T_193181)
+ node T_193182 = not(sqrtOp_PC)
+ node cyc_E1_div = and(cyc_E1, T_193182)
+ node cyc_E4_sqrt = and(cyc_E4, sqrtOp_PC)
+ node cyc_E3_sqrt = and(cyc_E3, sqrtOp_PC)
+ node cyc_E2_sqrt = and(cyc_E2, sqrtOp_PC)
+ node cyc_E1_sqrt = and(cyc_E1, sqrtOp_PC)
+ wire zFractB_A4_div : UInt<1>
+ zFractB_A4_div := UInt<1>(0)
+ when cyc_A4_div : zFractB_A4_div := fractB_S
+ node T_193183 = bits(fractB_S, 51, 49)
+ node T_193184 = eq(T_193183, UInt<1>(0))
+ node zLinPiece_0_A4_div = and(cyc_A4_div, T_193184)
+ node T_193185 = bits(fractB_S, 51, 49)
+ node T_193186 = eq(T_193185, UInt<1>(1))
+ node zLinPiece_1_A4_div = and(cyc_A4_div, T_193186)
+ node T_193187 = bits(fractB_S, 51, 49)
+ node T_193188 = eq(T_193187, UInt<2>(2))
+ node zLinPiece_2_A4_div = and(cyc_A4_div, T_193188)
+ node T_193189 = bits(fractB_S, 51, 49)
+ node T_193190 = eq(T_193189, UInt<2>(3))
+ node zLinPiece_3_A4_div = and(cyc_A4_div, T_193190)
+ node T_193191 = bits(fractB_S, 51, 49)
+ node T_193192 = eq(T_193191, UInt<3>(4))
+ node zLinPiece_4_A4_div = and(cyc_A4_div, T_193192)
+ node T_193193 = bits(fractB_S, 51, 49)
+ node T_193194 = eq(T_193193, UInt<3>(5))
+ node zLinPiece_5_A4_div = and(cyc_A4_div, T_193194)
+ node T_193195 = bits(fractB_S, 51, 49)
+ node T_193196 = eq(T_193195, UInt<3>(6))
+ node zLinPiece_6_A4_div = and(cyc_A4_div, T_193196)
+ node T_193197 = bits(fractB_S, 51, 49)
+ node T_193198 = eq(T_193197, UInt<3>(7))
+ node zLinPiece_7_A4_div = and(cyc_A4_div, T_193198)
+ wire T_193199 : UInt<1>
+ T_193199 := UInt<1>(0)
+ when zLinPiece_0_A4_div : T_193199 := UInt<9>(455)
+ wire T_193200 : UInt<1>
+ T_193200 := UInt<1>(0)
+ when zLinPiece_1_A4_div : T_193200 := UInt<9>(364)
+ node T_193201 = or(T_193199, T_193200)
+ wire T_193202 : UInt<1>
+ T_193202 := UInt<1>(0)
+ when zLinPiece_2_A4_div : T_193202 := UInt<9>(298)
+ node T_193203 = or(T_193201, T_193202)
+ wire T_193204 : UInt<1>
+ T_193204 := UInt<1>(0)
+ when zLinPiece_3_A4_div : T_193204 := UInt<9>(248)
+ node T_193205 = or(T_193203, T_193204)
+ wire T_193206 : UInt<1>
+ T_193206 := UInt<1>(0)
+ when zLinPiece_4_A4_div : T_193206 := UInt<9>(210)
+ node T_193207 = or(T_193205, T_193206)
+ wire T_193208 : UInt<1>
+ T_193208 := UInt<1>(0)
+ when zLinPiece_5_A4_div : T_193208 := UInt<9>(180)
+ node T_193209 = or(T_193207, T_193208)
+ wire T_193210 : UInt<1>
+ T_193210 := UInt<1>(0)
+ when zLinPiece_6_A4_div : T_193210 := UInt<9>(156)
+ node T_193211 = or(T_193209, T_193210)
+ wire T_193212 : UInt<1>
+ T_193212 := UInt<1>(0)
+ when zLinPiece_7_A4_div : T_193212 := UInt<9>(137)
+ node zK1_A4_div = or(T_193211, T_193212)
+ node T_193213 = not(UInt<12>(4067))
+ wire T_193214 : UInt<1>
+ T_193214 := UInt<1>(0)
+ when zLinPiece_0_A4_div : T_193214 := T_193213
+ node T_193215 = not(UInt<12>(3165))
+ wire T_193216 : UInt<1>
+ T_193216 := UInt<1>(0)
+ when zLinPiece_1_A4_div : T_193216 := T_193215
+ node T_193217 = or(T_193214, T_193216)
+ node T_193218 = not(UInt<12>(2442))
+ wire T_193219 : UInt<1>
+ T_193219 := UInt<1>(0)
+ when zLinPiece_2_A4_div : T_193219 := T_193218
+ node T_193220 = or(T_193217, T_193219)
+ node T_193221 = not(UInt<12>(1849))
+ wire T_193222 : UInt<1>
+ T_193222 := UInt<1>(0)
+ when zLinPiece_3_A4_div : T_193222 := T_193221
+ node T_193223 = or(T_193220, T_193222)
+ node T_193224 = not(UInt<12>(1355))
+ wire T_193225 : UInt<1>
+ T_193225 := UInt<1>(0)
+ when zLinPiece_4_A4_div : T_193225 := T_193224
+ node T_193226 = or(T_193223, T_193225)
+ node T_193227 = not(UInt<12>(937))
+ wire T_193228 : UInt<1>
+ T_193228 := UInt<1>(0)
+ when zLinPiece_5_A4_div : T_193228 := T_193227
+ node T_193229 = or(T_193226, T_193228)
+ node T_193230 = not(UInt<12>(578))
+ wire T_193231 : UInt<1>
+ T_193231 := UInt<1>(0)
+ when zLinPiece_6_A4_div : T_193231 := T_193230
+ node T_193232 = or(T_193229, T_193231)
+ node T_193233 = not(UInt<12>(267))
+ wire T_193234 : UInt<1>
+ T_193234 := UInt<1>(0)
+ when zLinPiece_7_A4_div : T_193234 := T_193233
+ node zComplFractK0_A4_div = or(T_193232, T_193234)
+ wire zFractB_A7_sqrt : UInt<1>
+ zFractB_A7_sqrt := UInt<1>(0)
+ when cyc_A7_sqrt : zFractB_A7_sqrt := fractB_S
+ node T_193235 = bit(expB_S, 0)
+ node T_193236 = not(T_193235)
+ node T_193237 = and(cyc_A7_sqrt, T_193236)
+ node T_193238 = bit(fractB_S, 51)
+ node T_193239 = not(T_193238)
+ node zQuadPiece_0_A7_sqrt = and(T_193237, T_193239)
+ node T_193240 = bit(expB_S, 0)
+ node T_193241 = not(T_193240)
+ node T_193242 = and(cyc_A7_sqrt, T_193241)
+ node T_193243 = bit(fractB_S, 51)
+ node zQuadPiece_1_A7_sqrt = and(T_193242, T_193243)
+ node T_193244 = bit(expB_S, 0)
+ node T_193245 = and(cyc_A7_sqrt, T_193244)
+ node T_193246 = bit(fractB_S, 51)
+ node T_193247 = not(T_193246)
+ node zQuadPiece_2_A7_sqrt = and(T_193245, T_193247)
+ node T_193248 = bit(expB_S, 0)
+ node T_193249 = and(cyc_A7_sqrt, T_193248)
+ node T_193250 = bit(fractB_S, 51)
+ node zQuadPiece_3_A7_sqrt = and(T_193249, T_193250)
+ wire T_193251 : UInt<1>
+ T_193251 := UInt<1>(0)
+ when zQuadPiece_0_A7_sqrt : T_193251 := UInt<9>(456)
+ wire T_193252 : UInt<1>
+ T_193252 := UInt<1>(0)
+ when zQuadPiece_1_A7_sqrt : T_193252 := UInt<9>(193)
+ node T_193253 = or(T_193251, T_193252)
+ wire T_193254 : UInt<1>
+ T_193254 := UInt<1>(0)
+ when zQuadPiece_2_A7_sqrt : T_193254 := UInt<9>(323)
+ node T_193255 = or(T_193253, T_193254)
+ wire T_193256 : UInt<1>
+ T_193256 := UInt<1>(0)
+ when zQuadPiece_3_A7_sqrt : T_193256 := UInt<9>(137)
+ node zK2_A7_sqrt = or(T_193255, T_193256)
+ node T_193257 = not(UInt<10>(976))
+ wire T_193258 : UInt<1>
+ T_193258 := UInt<1>(0)
+ when zQuadPiece_0_A7_sqrt : T_193258 := T_193257
+ node T_193259 = not(UInt<10>(544))
+ wire T_193260 : UInt<1>
+ T_193260 := UInt<1>(0)
+ when zQuadPiece_1_A7_sqrt : T_193260 := T_193259
+ node T_193261 = or(T_193258, T_193260)
+ node T_193262 = not(UInt<10>(690))
+ wire T_193263 : UInt<1>
+ T_193263 := UInt<1>(0)
+ when zQuadPiece_2_A7_sqrt : T_193263 := T_193262
+ node T_193264 = or(T_193261, T_193263)
+ node T_193265 = not(UInt<10>(385))
+ wire T_193266 : UInt<1>
+ T_193266 := UInt<1>(0)
+ when zQuadPiece_3_A7_sqrt : T_193266 := T_193265
+ node zComplK1_A7_sqrt = or(T_193264, T_193266)
+ node T_193267 = bit(exp_PA, 0)
+ node T_193268 = not(T_193267)
+ node T_193269 = and(cyc_A6_sqrt, T_193268)
+ node T_193270 = bit(sigB_PA, 51)
+ node T_193271 = not(T_193270)
+ node zQuadPiece_0_A6_sqrt = and(T_193269, T_193271)
+ node T_193272 = bit(exp_PA, 0)
+ node T_193273 = not(T_193272)
+ node T_193274 = and(cyc_A6_sqrt, T_193273)
+ node T_193275 = bit(sigB_PA, 51)
+ node zQuadPiece_1_A6_sqrt = and(T_193274, T_193275)
+ node T_193276 = bit(exp_PA, 0)
+ node T_193277 = and(cyc_A6_sqrt, T_193276)
+ node T_193278 = bit(sigB_PA, 51)
+ node T_193279 = not(T_193278)
+ node zQuadPiece_2_A6_sqrt = and(T_193277, T_193279)
+ node T_193280 = bit(exp_PA, 0)
+ node T_193281 = and(cyc_A6_sqrt, T_193280)
+ node T_193282 = bit(sigB_PA, 51)
+ node zQuadPiece_3_A6_sqrt = and(T_193281, T_193282)
+ node T_193283 = not(UInt<13>(8165))
+ wire T_193284 : UInt<1>
+ T_193284 := UInt<1>(0)
+ when zQuadPiece_0_A6_sqrt : T_193284 := T_193283
+ node T_193285 = not(UInt<13>(5173))
+ wire T_193286 : UInt<1>
+ T_193286 := UInt<1>(0)
+ when zQuadPiece_1_A6_sqrt : T_193286 := T_193285
+ node T_193287 = or(T_193284, T_193286)
+ node T_193288 = not(UInt<13>(3372))
+ wire T_193289 : UInt<1>
+ T_193289 := UInt<1>(0)
+ when zQuadPiece_2_A6_sqrt : T_193289 := T_193288
+ node T_193290 = or(T_193287, T_193289)
+ node T_193291 = not(UInt<13>(1256))
+ wire T_193292 : UInt<1>
+ T_193292 := UInt<1>(0)
+ when zQuadPiece_3_A6_sqrt : T_193292 := T_193291
+ node zComplFractK0_A6_sqrt = or(T_193290, T_193292)
+ node T_193293 = bits(zFractB_A4_div, 48, 40)
+ node T_193294 = or(T_193293, zK2_A7_sqrt)
+ node T_193295 = not(cyc_S)
+ wire T_193296 : UInt<1>
+ T_193296 := UInt<1>(0)
+ when T_193295 : T_193296 := nextMulAdd9A_A
+ node mulAdd9A_A = or(T_193294, T_193296)
+ node T_193297 = bits(zFractB_A7_sqrt, 50, 42)
+ node T_193298 = or(zK1_A4_div, T_193297)
+ node T_193299 = not(cyc_S)
+ wire T_193300 : UInt<1>
+ T_193300 := UInt<1>(0)
+ when T_193299 : T_193300 := nextMulAdd9B_A
+ node mulAdd9B_A = or(T_193298, T_193300)
+ node T_193301 = shl(zComplK1_A7_sqrt, 10)
+ node T_193302 = subw(UInt<6>(0), UInt<3>(6))
+ node T_193303 = cat(zComplFractK0_A6_sqrt, T_193302)
+ node T_193304 = cat(cyc_A6_sqrt, T_193303)
+ node T_193305 = or(T_193301, T_193304)
+ node T_193306 = subw(UInt<8>(0), UInt<4>(8))
+ node T_193307 = cat(zComplFractK0_A4_div, T_193306)
+ node T_193308 = cat(cyc_A4_div, T_193307)
+ node T_193309 = or(T_193305, T_193308)
+ node T_193310 = shl(fractR0_A, 10)
+ node T_193311 = addw(UInt<20>(262144), T_193310)
+ wire T_193312 : UInt<1>
+ T_193312 := UInt<1>(0)
+ when cyc_A5_sqrt : T_193312 := T_193311
+ node T_193313 = or(T_193309, T_193312)
+ node T_193314 = bit(hiSqrR0_A_sqrt, 9)
+ node T_193315 = not(T_193314)
+ node T_193316 = and(cyc_A4_sqrt, T_193315)
+ wire T_193317 : UInt<1>
+ T_193317 := UInt<1>(0)
+ when T_193316 : T_193317 := UInt<11>(1024)
+ node T_193318 = or(T_193313, T_193317)
+ node T_193319 = bit(hiSqrR0_A_sqrt, 9)
+ node T_193320 = and(cyc_A4_sqrt, T_193319)
+ node T_193321 = or(T_193320, cyc_A3_div)
+ node T_193322 = bits(sigB_PA, 46, 26)
+ node T_193323 = addw(T_193322, UInt<11>(1024))
+ wire T_193324 : UInt<1>
+ T_193324 := UInt<1>(0)
+ when T_193321 : T_193324 := T_193323
+ node T_193325 = or(T_193318, T_193324)
+ node T_193326 = or(cyc_A3_sqrt, cyc_A2)
+ wire T_193327 : UInt<1>
+ T_193327 := UInt<1>(0)
+ when T_193326 : T_193327 := partNegSigma0_A
+ node T_193328 = or(T_193325, T_193327)
+ node T_193329 = shl(fractR0_A, 16)
+ wire T_193330 : UInt<1>
+ T_193330 := UInt<1>(0)
+ when cyc_A1_sqrt : T_193330 := T_193329
+ node T_193331 = or(T_193328, T_193330)
+ node T_193332 = shl(fractR0_A, 15)
+ wire T_193333 : UInt<1>
+ T_193333 := UInt<1>(0)
+ when cyc_A1_div : T_193333 := T_193332
+ node mulAdd9C_A = or(T_193331, T_193333)
+ node T_193334 = mul(mulAdd9A_A, mulAdd9B_A)
+ node T_193335 = bits(mulAdd9C_A, 17, 0)
+ node T_193336 = cat(UInt<1>(0), T_193335)
+ node loMulAdd9Out_A = addw(T_193334, T_193336)
+ node T_193337 = bit(loMulAdd9Out_A, 18)
+ node T_193338 = bits(mulAdd9C_A, 24, 18)
+ node T_193339 = addw(T_193338, UInt<1>(1))
+ node T_193340 = bits(mulAdd9C_A, 24, 18)
+ wire T_193341 : UInt<7>
+ T_193341 := T_193340
+ when T_193337 : T_193341 := T_193339
+ node T_193342 = bits(loMulAdd9Out_A, 17, 0)
+ node mulAdd9Out_A = cat(T_193341, T_193342)
+ node T_193343 = bit(mulAdd9Out_A, 19)
+ node T_193344 = and(cyc_A6_sqrt, T_193343)
+ node T_193345 = not(mulAdd9Out_A)
+ node T_193346 = shr(T_193345, 10)
+ wire T_193347 : UInt<1>
+ T_193347 := UInt<1>(0)
+ when T_193344 : T_193347 := T_193346
+ node zFractR0_A6_sqrt = bits(T_193347, 8, 0)
+ node T_193348 = bit(exp_PA, 0)
+ node T_193349 = shl(mulAdd9Out_A, 1)
+ wire sqrR0_A5_sqrt : UInt<25>
+ sqrR0_A5_sqrt := mulAdd9Out_A
+ when T_193348 : sqrR0_A5_sqrt := T_193349
+ node T_193350 = bit(mulAdd9Out_A, 20)
+ node T_193351 = and(cyc_A4_div, T_193350)
+ node T_193352 = not(mulAdd9Out_A)
+ node T_193353 = shr(T_193352, 11)
+ wire T_193354 : UInt<1>
+ T_193354 := UInt<1>(0)
+ when T_193351 : T_193354 := T_193353
+ node zFractR0_A4_div = bits(T_193354, 8, 0)
+ node T_193355 = bit(mulAdd9Out_A, 11)
+ node T_193356 = and(cyc_A2, T_193355)
+ node T_193357 = not(mulAdd9Out_A)
+ node T_193358 = shr(T_193357, 2)
+ wire T_193359 : UInt<1>
+ T_193359 := UInt<1>(0)
+ when T_193356 : T_193359 := T_193358
+ node zSigma0_A2 = bits(T_193359, 8, 0)
+ node T_193360 = shr(mulAdd9Out_A, 10)
+ node T_193361 = shr(mulAdd9Out_A, 9)
+ wire T_193362 : UInt<16>
+ T_193362 := T_193361
+ when sqrtOp_PA : T_193362 := T_193360
+ node fractR1_A1 = bits(T_193362, 14, 0)
+ node r1_A1 = cat(UInt<1>(1), fractR1_A1)
+ node T_193363 = bit(exp_PA, 0)
+ node T_193364 = shl(r1_A1, 1)
+ wire ER1_A1_sqrt : UInt<16>
+ ER1_A1_sqrt := r1_A1
+ when T_193363 : ER1_A1_sqrt := T_193364
+
+ node T_193365 = or(cyc_A6_sqrt, cyc_A4_div)
+ when T_193365 :
+ node T_193366 = or(zFractR0_A6_sqrt, zFractR0_A4_div)
+ fractR0_A := T_193366
+ when cyc_A5_sqrt :
+ node T_193367 = shr(sqrR0_A5_sqrt, 10)
+ hiSqrR0_A_sqrt := T_193367
+
+ node T_193368 = or(cyc_A4_sqrt, cyc_A3)
+ when T_193368 :
+ node T_193369 = shr(mulAdd9Out_A, 9)
+ wire T_193370 : UInt<16>
+ T_193370 := T_193369
+ when cyc_A4_sqrt : T_193370 := mulAdd9Out_A
+ node T_193371 = bits(T_193370, 20, 0)
+ partNegSigma0_A := T_193371
+
+
+ node T_193372 = or(cyc_A7_sqrt, cyc_A6_sqrt)
+ node T_193373 = or(T_193372, cyc_A5_sqrt)
+ node T_193374 = or(T_193373, cyc_A4)
+ node T_193375 = or(T_193374, cyc_A3)
+ node T_193376 = or(T_193375, cyc_A2)
+ when T_193376 :
+ node T_193377 = not(mulAdd9Out_A)
+ node T_193378 = shr(T_193377, 11)
+ wire T_193379 : UInt<1>
+ T_193379 := UInt<1>(0)
+ when cyc_A7_sqrt : T_193379 := T_193378
+ node T_193380 = or(T_193379, zFractR0_A6_sqrt)
+ node T_193381 = bits(sigB_PA, 43, 35)
+ wire T_193382 : UInt<1>
+ T_193382 := UInt<1>(0)
+ when cyc_A4_sqrt : T_193382 := T_193381
+ node T_193383 = or(T_193380, T_193382)
+ node T_193384 = bits(zFractB_A4_div, 43, 35)
+ node T_193385 = or(T_193383, T_193384)
+ node T_193386 = or(cyc_A5_sqrt, cyc_A3)
+ node T_193387 = bits(sigB_PA, 52, 44)
+ wire T_193388 : UInt<1>
+ T_193388 := UInt<1>(0)
+ when T_193386 : T_193388 := T_193387
+ node T_193389 = or(T_193385, T_193388)
+ node T_193390 = or(T_193389, zSigma0_A2)
+ nextMulAdd9A_A := T_193390
+
+
+ node T_193391 = or(cyc_A7_sqrt, cyc_A6_sqrt)
+ node T_193392 = or(T_193391, cyc_A5_sqrt)
+ node T_193393 = or(T_193392, cyc_A4)
+ node T_193394 = or(T_193393, cyc_A2)
+ when T_193394 :
+ node T_193395 = bits(zFractB_A7_sqrt, 50, 42)
+ node T_193396 = or(T_193395, zFractR0_A6_sqrt)
+ node T_193397 = bits(sqrR0_A5_sqrt, 9, 1)
+ wire T_193398 : UInt<1>
+ T_193398 := UInt<1>(0)
+ when cyc_A5_sqrt : T_193398 := T_193397
+ node T_193399 = or(T_193396, T_193398)
+ node T_193400 = or(T_193399, zFractR0_A4_div)
+ node T_193401 = bits(hiSqrR0_A_sqrt, 8, 0)
+ wire T_193402 : UInt<1>
+ T_193402 := UInt<1>(0)
+ when cyc_A4_sqrt : T_193402 := T_193401
+ node T_193403 = or(T_193400, T_193402)
+ node T_193404 = bits(fractR0_A, 8, 1)
+ node T_193405 = cat(UInt<1>(1), T_193404)
+ wire T_193406 : UInt<1>
+ T_193406 := UInt<1>(0)
+ when cyc_A2 : T_193406 := T_193405
+ node T_193407 = or(T_193403, T_193406)
+ nextMulAdd9B_A := T_193407
+ when cyc_A1_sqrt : ER1_B_sqrt := ER1_A1_sqrt
+ node T_193408 = or(cyc_A1, cyc_B7_sqrt)
+ node T_193409 = or(T_193408, cyc_B6_div)
+ node T_193410 = or(T_193409, cyc_B4)
+ node T_193411 = or(T_193410, cyc_B3)
+ node T_193412 = or(T_193411, cyc_C6_sqrt)
+ node T_193413 = or(T_193412, cyc_C4)
+ node T_193414 = or(T_193413, cyc_C1)
+ latchMulAddA_0 := T_193414
+ node T_193415 = shl(ER1_A1_sqrt, 36)
+ wire T_193416 : UInt<1>
+ T_193416 := UInt<1>(0)
+ when cyc_A1_sqrt : T_193416 := T_193415
+ node T_193417 = or(cyc_B7_sqrt, cyc_A1_div)
+ wire T_193418 : UInt<1>
+ T_193418 := UInt<1>(0)
+ when T_193417 : T_193418 := sigB_PA
+ node T_193419 = or(T_193416, T_193418)
+ wire T_193420 : UInt<1>
+ T_193420 := UInt<1>(0)
+ when cyc_B6_div : T_193420 := sigA_PA
+ node T_193421 = or(T_193419, T_193420)
+ node T_193422 = bits(zSigma1_B4, 45, 12)
+ node T_193423 = or(T_193421, T_193422)
+ node T_193424 = or(cyc_B3, cyc_C6_sqrt)
+ node T_193425 = bits(sigXNU_B3_CX, 57, 12)
+ wire T_193426 : UInt<1>
+ T_193426 := UInt<1>(0)
+ when T_193424 : T_193426 := T_193425
+ node T_193427 = or(T_193423, T_193426)
+ node T_193428 = bits(sigXN_C, 57, 25)
+ node T_193429 = shl(T_193428, 13)
+ wire T_193430 : UInt<1>
+ T_193430 := UInt<1>(0)
+ when cyc_C4_div : T_193430 := T_193429
+ node T_193431 = or(T_193427, T_193430)
+ node T_193432 = shl(u_C_sqrt, 15)
+ wire T_193433 : UInt<1>
+ T_193433 := UInt<1>(0)
+ when cyc_C4_sqrt : T_193433 := T_193432
+ node T_193434 = or(T_193431, T_193433)
+ wire T_193435 : UInt<1>
+ T_193435 := UInt<1>(0)
+ when cyc_C1_div : T_193435 := sigB_PC
+ node T_193436 = or(T_193434, T_193435)
+ node T_193437 = or(T_193436, zComplSigT_C1_sqrt)
+ mulAddA_0 := T_193437
+ node T_193438 = or(cyc_A1, cyc_B7_sqrt)
+ node T_193439 = or(T_193438, cyc_B6_sqrt)
+ node T_193440 = or(T_193439, cyc_B4)
+ node T_193441 = or(T_193440, cyc_C6_sqrt)
+ node T_193442 = or(T_193441, cyc_C4)
+ node T_193443 = or(T_193442, cyc_C1)
+ latchMulAddB_0 := T_193443
+ node T_193444 = shl(r1_A1, 36)
+ wire T_193445 : UInt<1>
+ T_193445 := UInt<1>(0)
+ when cyc_A1 : T_193445 := T_193444
+ node T_193446 = shl(ESqrR1_B_sqrt, 19)
+ wire T_193447 : UInt<1>
+ T_193447 := UInt<1>(0)
+ when cyc_B7_sqrt : T_193447 := T_193446
+ node T_193448 = or(T_193445, T_193447)
+ node T_193449 = shl(ER1_B_sqrt, 36)
+ wire T_193450 : UInt<1>
+ T_193450 := UInt<1>(0)
+ when cyc_B6_sqrt : T_193450 := T_193449
+ node T_193451 = or(T_193448, T_193450)
+ node T_193452 = or(T_193451, zSigma1_B4)
+ node T_193453 = bits(sqrSigma1_C, 30, 1)
+ wire T_193454 : UInt<1>
+ T_193454 := UInt<1>(0)
+ when cyc_C6_sqrt : T_193454 := T_193453
+ node T_193455 = or(T_193452, T_193454)
+ wire T_193456 : UInt<1>
+ T_193456 := UInt<1>(0)
+ when cyc_C4 : T_193456 := sqrSigma1_C
+ node T_193457 = or(T_193455, T_193456)
+ node T_193458 = or(T_193457, zComplSigT_C1)
+ mulAddB_0 := T_193458
+ node T_193459 = or(cyc_A4, cyc_A3_div)
+ node T_193460 = or(T_193459, cyc_A1_div)
+ node T_193461 = or(T_193460, cyc_B10_sqrt)
+ node T_193462 = or(T_193461, cyc_B9_sqrt)
+ node T_193463 = or(T_193462, cyc_B7_sqrt)
+ node T_193464 = or(T_193463, cyc_B6)
+ node T_193465 = or(T_193464, cyc_B5_sqrt)
+ node T_193466 = or(T_193465, cyc_B3_sqrt)
+ node T_193467 = or(T_193466, cyc_B2_div)
+ node T_193468 = or(T_193467, cyc_B1_sqrt)
+ node T_193469 = or(T_193468, cyc_C4)
+ node T_193470 = or(cyc_A3, cyc_A2_div)
+ node T_193471 = or(T_193470, cyc_B9_sqrt)
+ node T_193472 = or(T_193471, cyc_B8_sqrt)
+ node T_193473 = or(T_193472, cyc_B6)
+ node T_193474 = or(T_193473, cyc_B5)
+ node T_193475 = or(T_193474, cyc_B4_sqrt)
+ node T_193476 = or(T_193475, cyc_B2_sqrt)
+ node T_193477 = or(T_193476, cyc_B1_div)
+ node T_193478 = or(T_193477, cyc_C6_sqrt)
+ node T_193479 = or(T_193478, cyc_C3)
+ node T_193480 = or(cyc_A2, cyc_A1_div)
+ node T_193481 = or(T_193480, cyc_B8_sqrt)
+ node T_193482 = or(T_193481, cyc_B7_sqrt)
+ node T_193483 = or(T_193482, cyc_B5)
+ node T_193484 = or(T_193483, cyc_B4)
+ node T_193485 = or(T_193484, cyc_B3_sqrt)
+ node T_193486 = or(T_193485, cyc_B1_sqrt)
+ node T_193487 = or(T_193486, cyc_C5)
+ node T_193488 = or(T_193487, cyc_C2)
+ node T_193489 = or(latchMulAddA_0, cyc_B6)
+ node T_193490 = or(T_193489, cyc_B2_sqrt)
+ node T_193491 = cat(T_193469, T_193479)
+ node T_193492 = cat(T_193488, T_193490)
+ node T_193493 = cat(T_193491, T_193492)
+ usingMulAdd := T_193493
+ node T_193494 = shl(sigX1_B, 47)
+ wire T_193495 : UInt<1>
+ T_193495 := UInt<1>(0)
+ when cyc_B1 : T_193495 := T_193494
+ node T_193496 = shl(sigX1_B, 46)
+ wire T_193497 : UInt<1>
+ T_193497 := UInt<1>(0)
+ when cyc_C6_sqrt : T_193497 := T_193496
+ node T_193498 = or(T_193495, T_193497)
+ node T_193499 = or(cyc_C4_sqrt, cyc_C2)
+ node T_193500 = shl(sigXN_C, 47)
+ wire T_193501 : UInt<1>
+ T_193501 := UInt<1>(0)
+ when T_193499 : T_193501 := T_193500
+ node T_193502 = or(T_193498, T_193501)
+ node T_193503 = not(E_E_div)
+ node T_193504 = and(cyc_E3_div, T_193503)
+ node T_193505 = shl(fractA_0_PC, 53)
+ wire T_193506 : UInt<1>
+ T_193506 := UInt<1>(0)
+ when T_193504 : T_193506 := T_193505
+ node T_193507 = or(T_193502, T_193506)
+ node T_193508 = bit(exp_PC, 0)
+ node T_193509 = bit(sigB_PC, 0)
+ node T_193510 = cat(T_193509, UInt<1>(0))
+ node T_193511 = bit(sigB_PC, 1)
+ node T_193512 = bit(sigB_PC, 0)
+ node T_193513 = xor(T_193511, T_193512)
+ node T_193514 = bit(sigB_PC, 0)
+ node T_193515 = cat(T_193513, T_193514)
+ wire T_193516 : UInt<2>
+ T_193516 := T_193515
+ when T_193508 : T_193516 := T_193510
+ node T_193517 = not(extraT_E)
+ node T_193518 = cat(T_193517, UInt<1>(0))
+ node T_193519 = xor(T_193516, T_193518)
+ node T_193520 = shl(T_193519, 54)
+ wire T_193521 : UInt<1>
+ T_193521 := UInt<1>(0)
+ when cyc_E3_sqrt : T_193521 := T_193520
+ node T_193522 = or(T_193507, T_193521)
+ mulAddC_2 := T_193522
+ node ESqrR1_B8_sqrt = bits(mulAddResult_3, 103, 72)
+ node T_193523 = bits(mulAddResult_3, 90, 45)
+ node T_193524 = not(T_193523)
+ wire T_193525 : UInt<1>
+ T_193525 := UInt<1>(0)
+ when cyc_B4 : T_193525 := T_193524
+ zSigma1_B4 := T_193525
+ node sqrSigma1_B1 = bits(mulAddResult_3, 79, 47)
+ node T_193526 = bits(mulAddResult_3, 104, 47)
+ sigXNU_B3_CX := T_193526
+ node T_193527 = bit(mulAddResult_3, 104)
+ node E_C1_div = not(T_193527)
+ node T_193528 = not(E_C1_div)
+ node T_193529 = and(cyc_C1_div, T_193528)
+ node T_193530 = or(T_193529, cyc_C1_sqrt)
+ node T_193531 = bits(mulAddResult_3, 104, 51)
+ node T_193532 = not(T_193531)
+ wire T_193533 : UInt<1>
+ T_193533 := UInt<1>(0)
+ when T_193530 : T_193533 := T_193532
+ node T_193534 = and(cyc_C1_div, E_C1_div)
+ node T_193535 = bits(mulAddResult_3, 102, 50)
+ node T_193536 = not(T_193535)
+ node T_193537 = cat(UInt<1>(0), T_193536)
+ wire T_193538 : UInt<1>
+ T_193538 := UInt<1>(0)
+ when T_193534 : T_193538 := T_193537
+ node T_193539 = or(T_193533, T_193538)
+ zComplSigT_C1 := T_193539
+ node T_193540 = bits(mulAddResult_3, 104, 51)
+ node T_193541 = not(T_193540)
+ wire T_193542 : UInt<1>
+ T_193542 := UInt<1>(0)
+ when cyc_C1_sqrt : T_193542 := T_193541
+ zComplSigT_C1_sqrt := T_193542
+ node sigT_C1 = not(zComplSigT_C1)
+ node remT_E2 = bits(mulAddResult_3, 55, 0)
+ when cyc_B8_sqrt : ESqrR1_B_sqrt := ESqrR1_B8_sqrt
+ when cyc_B3 : sigX1_B := sigXNU_B3_CX
+ when cyc_B1 : sqrSigma1_C := sqrSigma1_B1
+
+
+ node T_193543 = or(cyc_C6_sqrt, cyc_C5_div)
+ node T_193544 = or(T_193543, cyc_C3_sqrt)
+ when T_193544 : sigXN_C := sigXNU_B3_CX
+ when cyc_C5_sqrt :
+ node T_193545 = bits(sigXNU_B3_CX, 56, 26)
+ u_C_sqrt := T_193545
+ when cyc_C1 :
+ E_E_div := E_C1_div
+ node T_193546 = bits(sigT_C1, 53, 1)
+ sigT_E := T_193546
+ node T_193547 = bit(sigT_C1, 0)
+ extraT_E := T_193547
+ when cyc_E2 :
+ node T_193548 = bit(remT_E2, 55)
+ node T_193549 = bit(remT_E2, 53)
+ wire T_193550 : UInt<1>
+ T_193550 := T_193549
+ when sqrtOp_PC : T_193550 := T_193548
+ isNegRemT_E := T_193550
+ node T_193551 = bits(remT_E2, 53, 0)
+ node T_193552 = eq(T_193551, UInt<1>(0))
+ node T_193553 = not(sqrtOp_PC)
+ node T_193554 = bits(remT_E2, 55, 54)
+ node T_193555 = eq(T_193554, UInt<1>(0))
+ node T_193556 = or(T_193553, T_193555)
+ node T_193557 = and(T_193552, T_193556)
+ trueEqX_E1 := T_193557
+ node T_193558 = not(sqrtOp_PC)
+ node T_193559 = and(T_193558, E_E_div)
+ wire T_193560 : UInt<1>
+ T_193560 := UInt<1>(0)
+ when T_193559 : T_193560 := exp_PC
+ node T_193561 = not(sqrtOp_PC)
+ node T_193562 = not(E_E_div)
+ node T_193563 = and(T_193561, T_193562)
+ wire T_193564 : UInt<1>
+ T_193564 := UInt<1>(0)
+ when T_193563 : T_193564 := expP1_PC
+ node T_193565 = or(T_193560, T_193564)
+ node T_193566 = shr(exp_PC, 1)
+ node T_193567 = addw(T_193566, UInt<12>(1024))
+ wire T_193568 : UInt<1>
+ T_193568 := UInt<1>(0)
+ when sqrtOp_PC : T_193568 := T_193567
+ node sExpX_E = or(T_193565, T_193568)
+ node posExpX_E = bits(sExpX_E, 12, 0)
+ node T_193569 = bits(posExpX_E, 12, 6)
+ node posExpX_0001111_E = eq(T_193569, UInt<7>(15))
+ node T_193570 = bit(posExpX_E, 5)
+ node T_193571 = not(T_193570)
+ node posExpX_00011110_E = and(posExpX_0001111_E, T_193571)
+ node T_193572 = bit(posExpX_E, 4)
+ node T_193573 = not(T_193572)
+ node posExpX_000111100_E = and(posExpX_00011110_E, T_193573)
+ node T_193574 = bits(sExpX_E, 2, 0)
+ node exp3X_lt_001_E = lt(T_193574, UInt<3>(1))
+ node T_193575 = bits(sExpX_E, 2, 0)
+ node exp3X_lt_010_E = lt(T_193575, UInt<3>(2))
+ node T_193576 = bits(sExpX_E, 2, 0)
+ node exp3X_lt_011_E = lt(T_193576, UInt<3>(3))
+ node T_193577 = bits(sExpX_E, 2, 0)
+ node exp3X_lt_100_E = lt(T_193577, UInt<3>(4))
+ node T_193578 = bits(sExpX_E, 2, 0)
+ node exp3X_lt_101_E = lt(T_193578, UInt<3>(5))
+ node T_193579 = bits(sExpX_E, 2, 0)
+ node exp3X_lt_110_E = lt(T_193579, UInt<3>(6))
+ node T_193580 = bits(sExpX_E, 2, 0)
+ node exp3X_lt_111_E = lt(T_193580, UInt<3>(7))
+ node T_193581 = bits(sExpX_E, 4, 3)
+ node exp5X_00_E = eq(T_193581, UInt<2>(0))
+ node T_193582 = bits(sExpX_E, 4, 3)
+ node exp5X_01_E = eq(T_193582, UInt<2>(1))
+ node T_193583 = bits(sExpX_E, 4, 3)
+ node exp5X_10_E = eq(T_193583, UInt<2>(2))
+ node exp5X_lt_00001_E = and(exp5X_00_E, exp3X_lt_001_E)
+ node exp5X_lt_00010_E = and(exp5X_00_E, exp3X_lt_010_E)
+ node exp5X_lt_00011_E = and(exp5X_00_E, exp3X_lt_011_E)
+ node exp5X_lt_00100_E = and(exp5X_00_E, exp3X_lt_100_E)
+ node exp5X_lt_00101_E = and(exp5X_00_E, exp3X_lt_101_E)
+ node exp5X_lt_00110_E = and(exp5X_00_E, exp3X_lt_110_E)
+ node exp5X_lt_00111_E = and(exp5X_00_E, exp3X_lt_111_E)
+ node T_193584 = and(exp5X_01_E, exp3X_lt_001_E)
+ node exp5X_lt_01001_E = or(exp5X_00_E, T_193584)
+ node T_193585 = and(exp5X_01_E, exp3X_lt_010_E)
+ node exp5X_lt_01010_E = or(exp5X_00_E, T_193585)
+ node T_193586 = and(exp5X_01_E, exp3X_lt_011_E)
+ node exp5X_lt_01011_E = or(exp5X_00_E, T_193586)
+ node T_193587 = and(exp5X_01_E, exp3X_lt_100_E)
+ node exp5X_lt_01100_E = or(exp5X_00_E, T_193587)
+ node T_193588 = and(exp5X_01_E, exp3X_lt_101_E)
+ node exp5X_lt_01101_E = or(exp5X_00_E, T_193588)
+ node T_193589 = and(exp5X_01_E, exp3X_lt_110_E)
+ node exp5X_lt_01110_E = or(exp5X_00_E, T_193589)
+ node T_193590 = and(exp5X_01_E, exp3X_lt_111_E)
+ node exp5X_lt_01111_E = or(exp5X_00_E, T_193590)
+ node T_193591 = bit(sExpX_E, 4)
+ node exp5X_lt_10000_E = not(T_193591)
+ node T_193592 = bit(sExpX_E, 4)
+ node T_193593 = not(T_193592)
+ node T_193594 = and(exp5X_10_E, exp3X_lt_001_E)
+ node exp5X_lt_10001_E = or(T_193593, T_193594)
+ node T_193595 = bit(sExpX_E, 4)
+ node T_193596 = not(T_193595)
+ node T_193597 = and(exp5X_10_E, exp3X_lt_010_E)
+ node exp5X_lt_10010_E = or(T_193596, T_193597)
+ node T_193598 = bit(sExpX_E, 4)
+ node T_193599 = not(T_193598)
+ node T_193600 = and(exp5X_10_E, exp3X_lt_011_E)
+ node exp5X_lt_10011_E = or(T_193599, T_193600)
+ node T_193601 = bit(sExpX_E, 4)
+ node T_193602 = not(T_193601)
+ node T_193603 = and(exp5X_10_E, exp3X_lt_100_E)
+ node exp5X_lt_10100_E = or(T_193602, T_193603)
+ node T_193604 = bit(sExpX_E, 4)
+ node T_193605 = not(T_193604)
+ node T_193606 = and(exp5X_10_E, exp3X_lt_101_E)
+ node exp5X_lt_10101_E = or(T_193605, T_193606)
+ node T_193607 = bit(sExpX_E, 4)
+ node T_193608 = not(T_193607)
+ node T_193609 = and(exp5X_10_E, exp3X_lt_110_E)
+ node exp5X_lt_10110_E = or(T_193608, T_193609)
+ node T_193610 = bit(sExpX_E, 4)
+ node T_193611 = not(T_193610)
+ node T_193612 = and(exp5X_10_E, exp3X_lt_111_E)
+ node exp5X_lt_10111_E = or(T_193611, T_193612)
+ node T_193613 = bits(sExpX_E, 4, 3)
+ node exp5X_lt_11000_E = neq(T_193613, UInt<2>(3))
+ node exp5X_lt_11001_E = or(exp5X_lt_11000_E, exp3X_lt_001_E)
+ node exp5X_lt_11010_E = or(exp5X_lt_11000_E, exp3X_lt_010_E)
+ node exp5X_lt_11011_E = or(exp5X_lt_11000_E, exp3X_lt_011_E)
+ node exp5X_lt_11100_E = or(exp5X_lt_11000_E, exp3X_lt_100_E)
+ node exp5X_lt_11101_E = or(exp5X_lt_11000_E, exp3X_lt_101_E)
+ node exp5X_lt_11110_E = or(exp5X_lt_11000_E, exp3X_lt_110_E)
+ node exp5X_lt_11111_E = or(exp5X_lt_11000_E, exp3X_lt_111_E)
+ node T_193614 = bits(sExpX_E, 3, 0)
+ node T_193615 = lt(T_193614, UInt<4>(14))
+ node T_193616 = and(posExpX_000111100_E, T_193615)
+ node T_193617 = bits(sExpX_E, 3, 0)
+ node T_193618 = lt(T_193617, UInt<4>(15))
+ node T_193619 = and(posExpX_000111100_E, T_193618)
+ node T_193620 = and(posExpX_00011110_E, exp5X_lt_10001_E)
+ node T_193621 = and(posExpX_00011110_E, exp5X_lt_10010_E)
+ node T_193622 = and(posExpX_00011110_E, exp5X_lt_10011_E)
+ node T_193623 = and(posExpX_00011110_E, exp5X_lt_10100_E)
+ node T_193624 = and(posExpX_00011110_E, exp5X_lt_10101_E)
+ node T_193625 = and(posExpX_00011110_E, exp5X_lt_10110_E)
+ node T_193626 = and(posExpX_00011110_E, exp5X_lt_10111_E)
+ node T_193627 = and(posExpX_00011110_E, exp5X_lt_11000_E)
+ node T_193628 = and(posExpX_00011110_E, exp5X_lt_11001_E)
+ node T_193629 = and(posExpX_00011110_E, exp5X_lt_11010_E)
+ node T_193630 = and(posExpX_00011110_E, exp5X_lt_11011_E)
+ node T_193631 = and(posExpX_00011110_E, exp5X_lt_11100_E)
+ node T_193632 = and(posExpX_00011110_E, exp5X_lt_11101_E)
+ node T_193633 = and(posExpX_00011110_E, exp5X_lt_11110_E)
+ node T_193634 = and(posExpX_00011110_E, exp5X_lt_11111_E)
+ node T_193635 = bit(sExpX_E, 5)
+ node T_193636 = not(T_193635)
+ node T_193637 = or(T_193636, exp5X_lt_00001_E)
+ node T_193638 = and(posExpX_0001111_E, T_193637)
+ node T_193639 = bit(sExpX_E, 5)
+ node T_193640 = not(T_193639)
+ node T_193641 = or(T_193640, exp5X_lt_00010_E)
+ node T_193642 = and(posExpX_0001111_E, T_193641)
+ node T_193643 = bit(sExpX_E, 5)
+ node T_193644 = not(T_193643)
+ node T_193645 = or(T_193644, exp5X_lt_00011_E)
+ node T_193646 = and(posExpX_0001111_E, T_193645)
+ node T_193647 = bit(sExpX_E, 5)
+ node T_193648 = not(T_193647)
+ node T_193649 = or(T_193648, exp5X_lt_00100_E)
+ node T_193650 = and(posExpX_0001111_E, T_193649)
+ node T_193651 = bit(sExpX_E, 5)
+ node T_193652 = not(T_193651)
+ node T_193653 = or(T_193652, exp5X_lt_00101_E)
+ node T_193654 = and(posExpX_0001111_E, T_193653)
+ node T_193655 = bit(sExpX_E, 5)
+ node T_193656 = not(T_193655)
+ node T_193657 = or(T_193656, exp5X_lt_00110_E)
+ node T_193658 = and(posExpX_0001111_E, T_193657)
+ node T_193659 = bit(sExpX_E, 5)
+ node T_193660 = not(T_193659)
+ node T_193661 = or(T_193660, exp5X_lt_00111_E)
+ node T_193662 = and(posExpX_0001111_E, T_193661)
+ node T_193663 = bit(sExpX_E, 5)
+ node T_193664 = not(T_193663)
+ node T_193665 = or(T_193664, exp5X_00_E)
+ node T_193666 = and(posExpX_0001111_E, T_193665)
+ node T_193667 = bit(sExpX_E, 5)
+ node T_193668 = not(T_193667)
+ node T_193669 = or(T_193668, exp5X_lt_01001_E)
+ node T_193670 = and(posExpX_0001111_E, T_193669)
+ node T_193671 = bit(sExpX_E, 5)
+ node T_193672 = not(T_193671)
+ node T_193673 = or(T_193672, exp5X_lt_01010_E)
+ node T_193674 = and(posExpX_0001111_E, T_193673)
+ node T_193675 = bit(sExpX_E, 5)
+ node T_193676 = not(T_193675)
+ node T_193677 = or(T_193676, exp5X_lt_01011_E)
+ node T_193678 = and(posExpX_0001111_E, T_193677)
+ node T_193679 = bit(sExpX_E, 5)
+ node T_193680 = not(T_193679)
+ node T_193681 = or(T_193680, exp5X_lt_01100_E)
+ node T_193682 = and(posExpX_0001111_E, T_193681)
+ node T_193683 = bit(sExpX_E, 5)
+ node T_193684 = not(T_193683)
+ node T_193685 = or(T_193684, exp5X_lt_01101_E)
+ node T_193686 = and(posExpX_0001111_E, T_193685)
+ node T_193687 = bit(sExpX_E, 5)
+ node T_193688 = not(T_193687)
+ node T_193689 = or(T_193688, exp5X_lt_01110_E)
+ node T_193690 = and(posExpX_0001111_E, T_193689)
+ node T_193691 = bit(sExpX_E, 5)
+ node T_193692 = not(T_193691)
+ node T_193693 = or(T_193692, exp5X_lt_01111_E)
+ node T_193694 = and(posExpX_0001111_E, T_193693)
+ node T_193695 = bit(sExpX_E, 5)
+ node T_193696 = not(T_193695)
+ node T_193697 = or(T_193696, exp5X_lt_10000_E)
+ node T_193698 = and(posExpX_0001111_E, T_193697)
+ node T_193699 = bit(sExpX_E, 5)
+ node T_193700 = not(T_193699)
+ node T_193701 = or(T_193700, exp5X_lt_10001_E)
+ node T_193702 = and(posExpX_0001111_E, T_193701)
+ node T_193703 = bit(sExpX_E, 5)
+ node T_193704 = not(T_193703)
+ node T_193705 = or(T_193704, exp5X_lt_10010_E)
+ node T_193706 = and(posExpX_0001111_E, T_193705)
+ node T_193707 = bit(sExpX_E, 5)
+ node T_193708 = not(T_193707)
+ node T_193709 = or(T_193708, exp5X_lt_10011_E)
+ node T_193710 = and(posExpX_0001111_E, T_193709)
+ node T_193711 = bit(sExpX_E, 5)
+ node T_193712 = not(T_193711)
+ node T_193713 = or(T_193712, exp5X_lt_10100_E)
+ node T_193714 = and(posExpX_0001111_E, T_193713)
+ node T_193715 = bit(sExpX_E, 5)
+ node T_193716 = not(T_193715)
+ node T_193717 = or(T_193716, exp5X_lt_10101_E)
+ node T_193718 = and(posExpX_0001111_E, T_193717)
+ node T_193719 = bit(sExpX_E, 5)
+ node T_193720 = not(T_193719)
+ node T_193721 = or(T_193720, exp5X_lt_10110_E)
+ node T_193722 = and(posExpX_0001111_E, T_193721)
+ node T_193723 = bit(sExpX_E, 5)
+ node T_193724 = not(T_193723)
+ node T_193725 = or(T_193724, exp5X_lt_10111_E)
+ node T_193726 = and(posExpX_0001111_E, T_193725)
+ node T_193727 = bit(sExpX_E, 5)
+ node T_193728 = not(T_193727)
+ node T_193729 = or(T_193728, exp5X_lt_11000_E)
+ node T_193730 = and(posExpX_0001111_E, T_193729)
+ node T_193731 = bit(sExpX_E, 5)
+ node T_193732 = not(T_193731)
+ node T_193733 = or(T_193732, exp5X_lt_11001_E)
+ node T_193734 = and(posExpX_0001111_E, T_193733)
+ node T_193735 = bit(sExpX_E, 5)
+ node T_193736 = not(T_193735)
+ node T_193737 = or(T_193736, exp5X_lt_11010_E)
+ node T_193738 = and(posExpX_0001111_E, T_193737)
+ node T_193739 = bit(sExpX_E, 5)
+ node T_193740 = not(T_193739)
+ node T_193741 = or(T_193740, exp5X_lt_11011_E)
+ node T_193742 = and(posExpX_0001111_E, T_193741)
+ node T_193743 = bit(sExpX_E, 5)
+ node T_193744 = not(T_193743)
+ node T_193745 = or(T_193744, exp5X_lt_11100_E)
+ node T_193746 = and(posExpX_0001111_E, T_193745)
+ node T_193747 = bit(sExpX_E, 5)
+ node T_193748 = not(T_193747)
+ node T_193749 = or(T_193748, exp5X_lt_11101_E)
+ node T_193750 = and(posExpX_0001111_E, T_193749)
+ node T_193751 = bit(sExpX_E, 5)
+ node T_193752 = not(T_193751)
+ node T_193753 = or(T_193752, exp5X_lt_11110_E)
+ node T_193754 = and(posExpX_0001111_E, T_193753)
+ node T_193755 = bit(sExpX_E, 5)
+ node T_193756 = not(T_193755)
+ node T_193757 = or(T_193756, exp5X_lt_11111_E)
+ node T_193758 = and(posExpX_0001111_E, T_193757)
+ node T_193759 = lt(posExpX_E, UInt<13>(1025))
+ node T_193760 = lt(posExpX_E, UInt<13>(1026))
+ node T_193761 = cat(T_193619, posExpX_000111100_E)
+ node T_193762 = cat(T_193616, T_193761)
+ node T_193763 = cat(T_193621, T_193622)
+ node T_193764 = cat(T_193620, T_193763)
+ node T_193765 = cat(T_193762, T_193764)
+ node T_193766 = cat(T_193624, T_193625)
+ node T_193767 = cat(T_193623, T_193766)
+ node T_193768 = cat(T_193626, T_193627)
+ node T_193769 = cat(T_193628, T_193629)
+ node T_193770 = cat(T_193768, T_193769)
+ node T_193771 = cat(T_193767, T_193770)
+ node T_193772 = cat(T_193765, T_193771)
+ node T_193773 = cat(T_193631, T_193632)
+ node T_193774 = cat(T_193630, T_193773)
+ node T_193775 = cat(T_193634, posExpX_00011110_E)
+ node T_193776 = cat(T_193633, T_193775)
+ node T_193777 = cat(T_193774, T_193776)
+ node T_193778 = cat(T_193642, T_193646)
+ node T_193779 = cat(T_193638, T_193778)
+ node T_193780 = cat(T_193650, T_193654)
+ node T_193781 = cat(T_193658, T_193662)
+ node T_193782 = cat(T_193780, T_193781)
+ node T_193783 = cat(T_193779, T_193782)
+ node T_193784 = cat(T_193777, T_193783)
+ node T_193785 = cat(T_193772, T_193784)
+ node T_193786 = cat(T_193670, T_193674)
+ node T_193787 = cat(T_193666, T_193786)
+ node T_193788 = cat(T_193682, T_193686)
+ node T_193789 = cat(T_193678, T_193788)
+ node T_193790 = cat(T_193787, T_193789)
+ node T_193791 = cat(T_193694, T_193698)
+ node T_193792 = cat(T_193690, T_193791)
+ node T_193793 = cat(T_193702, T_193706)
+ node T_193794 = cat(T_193710, T_193714)
+ node T_193795 = cat(T_193793, T_193794)
+ node T_193796 = cat(T_193792, T_193795)
+ node T_193797 = cat(T_193790, T_193796)
+ node T_193798 = cat(T_193722, T_193726)
+ node T_193799 = cat(T_193718, T_193798)
+ node T_193800 = cat(T_193730, T_193734)
+ node T_193801 = cat(T_193738, T_193742)
+ node T_193802 = cat(T_193800, T_193801)
+ node T_193803 = cat(T_193799, T_193802)
+ node T_193804 = cat(T_193750, T_193754)
+ node T_193805 = cat(T_193746, T_193804)
+ node T_193806 = cat(T_193758, posExpX_0001111_E)
+ node T_193807 = cat(T_193759, T_193760)
+ node T_193808 = cat(T_193806, T_193807)
+ node T_193809 = cat(T_193805, T_193808)
+ node T_193810 = cat(T_193803, T_193809)
+ node T_193811 = cat(T_193797, T_193810)
+ node roundMask_E = cat(T_193785, T_193811)
+ node T_193812 = cat(UInt<1>(0), roundMask_E)
+ node T_193813 = not(T_193812)
+ node T_193814 = cat(roundMask_E, UInt<1>(1))
+ node incrPosMask_E = and(T_193813, T_193814)
+ node T_193815 = shr(incrPosMask_E, 1)
+ node T_193816 = and(sigT_E, T_193815)
+ node hiRoundPosBitT_E = neq(T_193816, UInt<1>(0))
+ node T_193817 = shr(roundMask_E, 1)
+ node T_193818 = and(sigT_E, T_193817)
+ node all0sHiRoundExtraT_E = eq(T_193818, UInt<1>(0))
+ node T_193819 = not(sigT_E)
+ node T_193820 = shr(roundMask_E, 1)
+ node T_193821 = and(T_193819, T_193820)
+ node all1sHiRoundExtraT_E = eq(T_193821, UInt<1>(0))
+ node T_193822 = bit(roundMask_E, 0)
+ node T_193823 = not(T_193822)
+ node T_193824 = or(T_193823, hiRoundPosBitT_E)
+ node all1sHiRoundT_E = and(T_193824, all1sHiRoundExtraT_E)
+ node T_193825 = addw(UInt<54>(0), sigT_E)
+ node sigAdjT_E = addw(T_193825, roundMagUp_PC)
+ node T_193826 = not(roundMask_E)
+ node T_193827 = cat(UInt<1>(1), T_193826)
+ node sigY0_E = and(sigAdjT_E, T_193827)
+ node T_193828 = cat(UInt<1>(0), roundMask_E)
+ node T_193829 = or(sigAdjT_E, T_193828)
+ node sigY1_E = addw(T_193829, UInt<1>(1))
+ node T_193830 = not(isNegRemT_E)
+ node T_193831 = not(trueEqX_E1)
+ node T_193832 = and(T_193830, T_193831)
+ wire trueLtX_E1 : UInt<1>
+ trueLtX_E1 := isNegRemT_E
+ when sqrtOp_PC : trueLtX_E1 := T_193832
+ node T_193833 = bit(roundMask_E, 0)
+ node T_193834 = not(trueLtX_E1)
+ node T_193835 = and(T_193833, T_193834)
+ node T_193836 = and(T_193835, all1sHiRoundExtraT_E)
+ node T_193837 = and(T_193836, extraT_E)
+ node hiRoundPosBit_E1 = xor(hiRoundPosBitT_E, T_193837)
+ node T_193838 = not(trueEqX_E1)
+ node T_193839 = not(extraT_E)
+ node T_193840 = or(T_193838, T_193839)
+ node T_193841 = not(all1sHiRoundExtraT_E)
+ node anyRoundExtra_E1 = or(T_193840, T_193841)
+ node T_193842 = and(roundingMode_near_even_PC, hiRoundPosBit_E1)
+ node T_193843 = not(anyRoundExtra_E1)
+ node T_193844 = and(T_193842, T_193843)
+ wire roundEvenMask_E1 : UInt<1>
+ roundEvenMask_E1 := UInt<1>(0)
+ when T_193844 : roundEvenMask_E1 := incrPosMask_E
+ node T_193845 = and(roundMagDown_PC, extraT_E)
+ node T_193846 = not(trueLtX_E1)
+ node T_193847 = and(T_193845, T_193846)
+ node T_193848 = and(T_193847, all1sHiRoundT_E)
+ node T_193849 = not(trueLtX_E1)
+ node T_193850 = and(extraT_E, T_193849)
+ node T_193851 = not(trueEqX_E1)
+ node T_193852 = and(T_193850, T_193851)
+ node T_193853 = not(all1sHiRoundT_E)
+ node T_193854 = or(T_193852, T_193853)
+ node T_193855 = and(roundMagUp_PC, T_193854)
+ node T_193856 = or(T_193848, T_193855)
+ node T_193857 = not(trueLtX_E1)
+ node T_193858 = or(extraT_E, T_193857)
+ node T_193859 = bit(roundMask_E, 0)
+ node T_193860 = not(T_193859)
+ node T_193861 = and(T_193858, T_193860)
+ node T_193862 = or(hiRoundPosBitT_E, T_193861)
+ node T_193863 = not(trueLtX_E1)
+ node T_193864 = and(extraT_E, T_193863)
+ node T_193865 = and(T_193864, all1sHiRoundExtraT_E)
+ node T_193866 = or(T_193862, T_193865)
+ node T_193867 = and(roundingMode_near_even_PC, T_193866)
+ node T_193868 = or(T_193856, T_193867)
+ wire T_193869 : UInt<54>
+ T_193869 := sigY0_E
+ when T_193868 : T_193869 := sigY1_E
+ node T_193870 = not(roundEvenMask_E1)
+ node sigY_E1 = and(T_193869, T_193870)
+ node fractY_E1 = bits(sigY_E1, 51, 0)
+ node inexactY_E1 = or(hiRoundPosBit_E1, anyRoundExtra_E1)
+ node T_193871 = bit(sigY_E1, 53)
+ node T_193872 = not(T_193871)
+ wire T_193873 : UInt<1>
+ T_193873 := UInt<1>(0)
+ when T_193872 : T_193873 := sExpX_E
+ node T_193874 = bit(sigY_E1, 53)
+ node T_193875 = not(sqrtOp_PC)
+ node T_193876 = and(T_193874, T_193875)
+ node T_193877 = and(T_193876, E_E_div)
+ wire T_193878 : UInt<1>
+ T_193878 := UInt<1>(0)
+ when T_193877 : T_193878 := expP1_PC
+ node T_193879 = or(T_193873, T_193878)
+ node T_193880 = bit(sigY_E1, 53)
+ node T_193881 = not(sqrtOp_PC)
+ node T_193882 = and(T_193880, T_193881)
+ node T_193883 = not(E_E_div)
+ node T_193884 = and(T_193882, T_193883)
+ wire T_193885 : UInt<1>
+ T_193885 := UInt<1>(0)
+ when T_193884 : T_193885 := expP2_PC
+ node T_193886 = or(T_193879, T_193885)
+ node T_193887 = bit(sigY_E1, 53)
+ node T_193888 = and(T_193887, sqrtOp_PC)
+ node T_193889 = shr(expP2_PC, 1)
+ node T_193890 = addw(T_193889, UInt<12>(1024))
+ wire T_193891 : UInt<1>
+ T_193891 := UInt<1>(0)
+ when T_193888 : T_193891 := T_193890
+ node sExpY_E1 = or(T_193886, T_193891)
+ node expY_E1 = bits(sExpY_E1, 11, 0)
+ node T_193892 = bit(sExpY_E1, 13)
+ node T_193893 = not(T_193892)
+ node T_193894 = bits(sExpY_E1, 12, 10)
+ node T_193895 = leq(UInt<3>(3), T_193894)
+ node overflowY_E1 = and(T_193893, T_193895)
+ node T_193896 = bit(sExpY_E1, 13)
+ node T_193897 = bits(sExpY_E1, 12, 0)
+ node T_193898 = lt(T_193897, UInt<13>(974))
+ node totalUnderflowY_E1 = or(T_193896, T_193898)
+ node T_193899 = leq(posExpX_E, UInt<13>(1025))
+ node T_193900 = and(T_193899, inexactY_E1)
+ node underflowY_E1 = or(totalUnderflowY_E1, T_193900)
+ node T_193901 = not(isNaNB_PC)
+ node T_193902 = not(isZeroB_PC)
+ node T_193903 = and(T_193901, T_193902)
+ node T_193904 = and(T_193903, sign_PC)
+ node T_193905 = and(isZeroA_PC, isZeroB_PC)
+ node T_193906 = and(isInfA_PC, isInfB_PC)
+ node T_193907 = or(T_193905, T_193906)
+ wire notSigNaN_invalid_PC : UInt<1>
+ notSigNaN_invalid_PC := T_193907
+ when sqrtOp_PC : notSigNaN_invalid_PC := T_193904
+ node T_193908 = not(sqrtOp_PC)
+ node T_193909 = and(T_193908, isSigNaNA_PC)
+ node T_193910 = or(T_193909, isSigNaNB_PC)
+ node invalid_PC = or(T_193910, notSigNaN_invalid_PC)
+ node T_193911 = not(sqrtOp_PC)
+ node T_193912 = not(isSpecialA_PC)
+ node T_193913 = and(T_193911, T_193912)
+ node T_193914 = not(isZeroA_PC)
+ node T_193915 = and(T_193913, T_193914)
+ node infinity_PC = and(T_193915, isZeroB_PC)
+ node overflow_E1 = and(normalCase_PC, overflowY_E1)
+ node underflow_E1 = and(normalCase_PC, underflowY_E1)
+ node T_193916 = or(overflow_E1, underflow_E1)
+ node T_193917 = and(normalCase_PC, inexactY_E1)
+ node inexact_E1 = or(T_193916, T_193917)
+ node T_193918 = or(isZeroA_PC, isInfB_PC)
+ node T_193919 = not(roundMagUp_PC)
+ node T_193920 = and(totalUnderflowY_E1, T_193919)
+ node T_193921 = or(T_193918, T_193920)
+ wire notSpecial_isZeroOut_E1 : UInt<1>
+ notSpecial_isZeroOut_E1 := T_193921
+ when sqrtOp_PC : notSpecial_isZeroOut_E1 := isZeroB_PC
+ node T_193922 = and(normalCase_PC, totalUnderflowY_E1)
+ node pegMinFiniteMagOut_E1 = and(T_193922, roundMagUp_PC)
+ node T_193923 = not(overflowY_roundMagUp_PC)
+ node pegMaxFiniteMagOut_E1 = and(overflow_E1, T_193923)
+ node T_193924 = or(isInfA_PC, isZeroB_PC)
+ node T_193925 = and(overflow_E1, overflowY_roundMagUp_PC)
+ node T_193926 = or(T_193924, T_193925)
+ wire notNaN_isInfOut_E1 : UInt<1>
+ notNaN_isInfOut_E1 := T_193926
+ when sqrtOp_PC : notNaN_isInfOut_E1 := isInfB_PC
+ node T_193927 = not(sqrtOp_PC)
+ node T_193928 = and(T_193927, isNaNA_PC)
+ node T_193929 = or(T_193928, isNaNB_PC)
+ node isNaNOut_PC = or(T_193929, notSigNaN_invalid_PC)
+ node T_193930 = and(isZeroB_PC, sign_PC)
+ wire T_193931 : UInt<1>
+ T_193931 := sign_PC
+ when sqrtOp_PC : T_193931 := T_193930
+ node signOut_PC = or(isNaNOut_PC, T_193931)
+ node T_193932 = not(UInt<12>(511))
+ wire T_193933 : UInt<1>
+ T_193933 := UInt<1>(0)
+ when notSpecial_isZeroOut_E1 : T_193933 := T_193932
+ node T_193934 = not(T_193933)
+ node T_193935 = and(expY_E1, T_193934)
+ node T_193936 = not(UInt<12>(974))
+ wire T_193937 : UInt<1>
+ T_193937 := UInt<1>(0)
+ when pegMinFiniteMagOut_E1 : T_193937 := T_193936
+ node T_193938 = not(T_193937)
+ node T_193939 = and(T_193935, T_193938)
+ node T_193940 = not(UInt<12>(3071))
+ wire T_193941 : UInt<1>
+ T_193941 := UInt<1>(0)
+ when pegMaxFiniteMagOut_E1 : T_193941 := T_193940
+ node T_193942 = not(T_193941)
+ node T_193943 = and(T_193939, T_193942)
+ node T_193944 = not(UInt<12>(3583))
+ wire T_193945 : UInt<1>
+ T_193945 := UInt<1>(0)
+ when notNaN_isInfOut_E1 : T_193945 := T_193944
+ node T_193946 = not(T_193945)
+ node T_193947 = and(T_193943, T_193946)
+ wire T_193948 : UInt<1>
+ T_193948 := UInt<1>(0)
+ when pegMinFiniteMagOut_E1 : T_193948 := UInt<12>(974)
+ node T_193949 = or(T_193947, T_193948)
+ wire T_193950 : UInt<1>
+ T_193950 := UInt<1>(0)
+ when pegMaxFiniteMagOut_E1 : T_193950 := UInt<12>(3071)
+ node T_193951 = or(T_193949, T_193950)
+ wire T_193952 : UInt<1>
+ T_193952 := UInt<1>(0)
+ when notNaN_isInfOut_E1 : T_193952 := UInt<12>(3072)
+ node T_193953 = or(T_193951, T_193952)
+ wire T_193954 : UInt<1>
+ T_193954 := UInt<1>(0)
+ when isNaNOut_PC : T_193954 := UInt<12>(3584)
+ node expOut_E1 = or(T_193953, T_193954)
+ node T_193955 = and(totalUnderflowY_E1, roundMagUp_PC)
+ wire T_193956 : UInt<52>
+ T_193956 := fractY_E1
+ when T_193955 : T_193956 := UInt<1>(0)
+ node T_193957 = or(isNaNOut_PC, pegMaxFiniteMagOut_E1)
+ wire T_193958 : UInt<1>
+ T_193958 := UInt<1>(0)
+ when T_193957 : T_193958 := UInt<52>(4503599627370495)
+ node fractOut_E1 = or(T_193956, T_193958)
+ node T_193959 = cat(expOut_E1, fractOut_E1)
+ node T_193960 = cat(signOut_PC, T_193959)
+ out := T_193960
+ node T_193961 = cat(invalid_PC, infinity_PC)
+ node T_193962 = cat(underflow_E1, inexact_E1)
+ node T_193963 = cat(overflow_E1, T_193962)
+ node T_193964 = cat(T_193961, T_193963)
+ exceptionFlags := T_193964
+ module mul54 :
+ input val_s0 : UInt<1>
+ input latch_a_s0 : UInt<1>
+ input a_s0 : UInt<54>
+ input latch_b_s0 : UInt<1>
+ input b_s0 : UInt<54>
+ input c_s2 : UInt<105>
+ output result_s3 : UInt<105>
+
+ reg val_s1 : UInt<1>
+ reg val_s2 : UInt<1>
+ reg reg_a_s1 : UInt<54>
+ reg reg_b_s1 : UInt<54>
+ reg reg_a_s2 : UInt<54>
+ reg reg_b_s2 : UInt<54>
+ reg reg_result_s3 : UInt<105>
+ val_s1 := val_s0
+ val_s2 := val_s1
+ when val_s0 :
+ when latch_a_s0 : reg_a_s1 := a_s0
+ when latch_b_s0 : reg_b_s1 := b_s0
+ when val_s1 :
+ reg_a_s2 := reg_a_s1
+ reg_b_s2 := reg_b_s1
+ when val_s2 :
+ node T_193965 = mul(reg_a_s2, reg_b_s2)
+ node T_193966 = addw(T_193965, c_s2)
+ reg_result_s3 := T_193966
+ result_s3 := reg_result_s3
+ module divSqrtRecodedFloat64 :
+ output inReady_div : UInt<1>
+ output inReady_sqrt : UInt<1>
+ input inValid : UInt<1>
+ input sqrtOp : UInt<1>
+ input a : UInt<65>
+ input b : UInt<65>
+ input roundingMode : UInt<2>
+ output outValid_div : UInt<1>
+ output outValid_sqrt : UInt<1>
+ output out : UInt<65>
+ output exceptionFlags : UInt<5>
+
+ inst ds of divSqrtRecodedFloat64_mulAddZ31
+ inReady_div := ds.inReady_div
+ inReady_sqrt := ds.inReady_sqrt
+ ds.inValid := inValid
+ ds.sqrtOp := sqrtOp
+ ds.a := a
+ ds.b := b
+ ds.roundingMode := roundingMode
+ outValid_div := ds.outValid_div
+ outValid_sqrt := ds.outValid_sqrt
+ out := ds.out
+ exceptionFlags := ds.exceptionFlags
+ inst mul of mul54
+ node T_193967 = bit(ds.usingMulAdd, 0)
+ mul.val_s0 := T_193967
+ mul.latch_a_s0 := ds.latchMulAddA_0
+ mul.a_s0 := ds.mulAddA_0
+ mul.latch_b_s0 := ds.latchMulAddB_0
+ mul.b_s0 := ds.mulAddB_0
+ mul.c_s2 := ds.mulAddC_2
+ ds.mulAddResult_3 := mul.result_s3
+ module FPU :
+ input inst__ : UInt<32>
+ input fromint_data : UInt<64>
+ input fcsr_rm : UInt<3>
+ output fcsr_flags : {valid : UInt<1>, bits : UInt<5>}
+ output store_data : UInt<64>
+ output toint_data : UInt<64>
+ input dmem_resp_val : UInt<1>
+ input dmem_resp_type : UInt<3>
+ input dmem_resp_tag : UInt<5>
+ input dmem_resp_data : UInt<64>
+ input valid : UInt<1>
+ output fcsr_rdy : UInt<1>
+ output nack_mem : UInt<1>
+ output illegal_rm : UInt<1>
+ input killx : UInt<1>
+ input killm : UInt<1>
+ output dec : {cmd : UInt<5>, ldst : UInt<1>, wen : UInt<1>, ren1 : UInt<1>, ren2 : UInt<1>, ren3 : UInt<1>, swap12 : UInt<1>, swap23 : UInt<1>, single : UInt<1>, fromint : UInt<1>, toint : UInt<1>, fastpipe : UInt<1>, fma : UInt<1>, div : UInt<1>, sqrt : UInt<1>, round : UInt<1>, wflags : UInt<1>}
+ output sboard_set : UInt<1>
+ output sboard_clr : UInt<1>
+ output sboard_clra : UInt<5>
+
+ reg ex_reg_valid : UInt<1>
+ onreset ex_reg_valid := UInt<1>(0)
+ ex_reg_valid := valid
+ reg ex_reg_inst : UInt<32>
+ when valid : ex_reg_inst := inst__
+ node T_193968 = eq(killx, UInt<1>(0))
+ node T_193969 = and(ex_reg_valid, T_193968)
+ reg mem_reg_valid : UInt<1>
+ onreset mem_reg_valid := UInt<1>(0)
+ mem_reg_valid := T_193969
+ reg mem_reg_inst : UInt<32>
+ when ex_reg_valid : mem_reg_inst := ex_reg_inst
+ node killm = or(killm, nack_mem)
+ node T_193970 = eq(killm, UInt<1>(0))
+ node T_193971 = and(mem_reg_valid, T_193970)
+ reg wb_reg_valid : UInt<1>
+ onreset wb_reg_valid := UInt<1>(0)
+ wb_reg_valid := T_193971
+ inst fp_decoder of FPUDecoder
+ fp_decoder.inst__ := inst__
+ reg ex_ctrl : {cmd : UInt<5>, ldst : UInt<1>, wen : UInt<1>, ren1 : UInt<1>, ren2 : UInt<1>, ren3 : UInt<1>, swap12 : UInt<1>, swap23 : UInt<1>, single : UInt<1>, fromint : UInt<1>, toint : UInt<1>, fastpipe : UInt<1>, fma : UInt<1>, div : UInt<1>, sqrt : UInt<1>, round : UInt<1>, wflags : UInt<1>}
+ when valid : ex_ctrl := fp_decoder.sigs
+ reg mem_ctrl : {cmd : UInt<5>, ldst : UInt<1>, wen : UInt<1>, ren1 : UInt<1>, ren2 : UInt<1>, ren3 : UInt<1>, swap12 : UInt<1>, swap23 : UInt<1>, single : UInt<1>, fromint : UInt<1>, toint : UInt<1>, fastpipe : UInt<1>, fma : UInt<1>, div : UInt<1>, sqrt : UInt<1>, round : UInt<1>, wflags : UInt<1>}
+ when ex_reg_valid : mem_ctrl := ex_ctrl
+ reg wb_ctrl : {cmd : UInt<5>, ldst : UInt<1>, wen : UInt<1>, ren1 : UInt<1>, ren2 : UInt<1>, ren3 : UInt<1>, swap12 : UInt<1>, swap23 : UInt<1>, single : UInt<1>, fromint : UInt<1>, toint : UInt<1>, fastpipe : UInt<1>, fma : UInt<1>, div : UInt<1>, sqrt : UInt<1>, round : UInt<1>, wflags : UInt<1>}
+ when mem_reg_valid : wb_ctrl := mem_ctrl
+ reg load_wb : UInt<1>
+ load_wb := dmem_resp_val
+ node T_193972 = eq(dmem_resp_type, UInt<3>(2))
+ node T_193973 = eq(dmem_resp_type, UInt<3>(6))
+ node T_193974 = or(T_193972, T_193973)
+ reg load_wb_single : UInt<1>
+ when dmem_resp_val : load_wb_single := T_193974
+ reg load_wb_data : UInt<64>
+ when dmem_resp_val : load_wb_data := dmem_resp_data
+ reg load_wb_tag : UInt<5>
+ when dmem_resp_val : load_wb_tag := dmem_resp_tag
+ node T_193975 = bit(load_wb_data, 31)
+ node T_193976 = bits(load_wb_data, 30, 23)
+ node T_193977 = bits(load_wb_data, 22, 0)
+ node T_193978 = eq(T_193976, UInt<1>(0))
+ node T_193979 = eq(T_193977, UInt<1>(0))
+ node T_193980 = and(T_193978, T_193979)
+ node T_193981 = eq(T_193979, UInt<1>(0))
+ node T_193982 = and(T_193978, T_193981)
+ node T_193983 = shl(T_193977, 9)
+ node T_193984 = bit(T_193983, 31)
+ node T_193985 = bit(T_193983, 30)
+ node T_193986 = bit(T_193983, 29)
+ node T_193987 = bit(T_193983, 28)
+ node T_193988 = bit(T_193983, 27)
+ node T_193989 = bit(T_193983, 26)
+ node T_193990 = bit(T_193983, 25)
+ node T_193991 = bit(T_193983, 24)
+ node T_193992 = bit(T_193983, 23)
+ node T_193993 = bit(T_193983, 22)
+ node T_193994 = bit(T_193983, 21)
+ node T_193995 = bit(T_193983, 20)
+ node T_193996 = bit(T_193983, 19)
+ node T_193997 = bit(T_193983, 18)
+ node T_193998 = bit(T_193983, 17)
+ node T_193999 = bit(T_193983, 16)
+ node T_194000 = bit(T_193983, 15)
+ node T_194001 = bit(T_193983, 14)
+ node T_194002 = bit(T_193983, 13)
+ node T_194003 = bit(T_193983, 12)
+ node T_194004 = bit(T_193983, 11)
+ node T_194005 = bit(T_193983, 10)
+ node T_194006 = bit(T_193983, 9)
+ node T_194007 = bit(T_193983, 8)
+ node T_194008 = bit(T_193983, 7)
+ node T_194009 = bit(T_193983, 6)
+ node T_194010 = bit(T_193983, 5)
+ node T_194011 = bit(T_193983, 4)
+ node T_194012 = bit(T_193983, 3)
+ node T_194013 = bit(T_193983, 2)
+ node T_194014 = bit(T_193983, 1)
+ wire T_194015 : UInt<1>
+ T_194015 := T_194014
+ when T_194013 : T_194015 := UInt<2>(2)
+ wire T_194016 : UInt<1>
+ T_194016 := T_194015
+ when T_194012 : T_194016 := UInt<2>(3)
+ wire T_194017 : UInt<1>
+ T_194017 := T_194016
+ when T_194011 : T_194017 := UInt<3>(4)
+ wire T_194018 : UInt<1>
+ T_194018 := T_194017
+ when T_194010 : T_194018 := UInt<3>(5)
+ wire T_194019 : UInt<1>
+ T_194019 := T_194018
+ when T_194009 : T_194019 := UInt<3>(6)
+ wire T_194020 : UInt<1>
+ T_194020 := T_194019
+ when T_194008 : T_194020 := UInt<3>(7)
+ wire T_194021 : UInt<1>
+ T_194021 := T_194020
+ when T_194007 : T_194021 := UInt<4>(8)
+ wire T_194022 : UInt<1>
+ T_194022 := T_194021
+ when T_194006 : T_194022 := UInt<4>(9)
+ wire T_194023 : UInt<1>
+ T_194023 := T_194022
+ when T_194005 : T_194023 := UInt<4>(10)
+ wire T_194024 : UInt<1>
+ T_194024 := T_194023
+ when T_194004 : T_194024 := UInt<4>(11)
+ wire T_194025 : UInt<1>
+ T_194025 := T_194024
+ when T_194003 : T_194025 := UInt<4>(12)
+ wire T_194026 : UInt<1>
+ T_194026 := T_194025
+ when T_194002 : T_194026 := UInt<4>(13)
+ wire T_194027 : UInt<1>
+ T_194027 := T_194026
+ when T_194001 : T_194027 := UInt<4>(14)
+ wire T_194028 : UInt<1>
+ T_194028 := T_194027
+ when T_194000 : T_194028 := UInt<4>(15)
+ wire T_194029 : UInt<1>
+ T_194029 := T_194028
+ when T_193999 : T_194029 := UInt<5>(16)
+ wire T_194030 : UInt<1>
+ T_194030 := T_194029
+ when T_193998 : T_194030 := UInt<5>(17)
+ wire T_194031 : UInt<1>
+ T_194031 := T_194030
+ when T_193997 : T_194031 := UInt<5>(18)
+ wire T_194032 : UInt<1>
+ T_194032 := T_194031
+ when T_193996 : T_194032 := UInt<5>(19)
+ wire T_194033 : UInt<1>
+ T_194033 := T_194032
+ when T_193995 : T_194033 := UInt<5>(20)
+ wire T_194034 : UInt<1>
+ T_194034 := T_194033
+ when T_193994 : T_194034 := UInt<5>(21)
+ wire T_194035 : UInt<1>
+ T_194035 := T_194034
+ when T_193993 : T_194035 := UInt<5>(22)
+ wire T_194036 : UInt<1>
+ T_194036 := T_194035
+ when T_193992 : T_194036 := UInt<5>(23)
+ wire T_194037 : UInt<1>
+ T_194037 := T_194036
+ when T_193991 : T_194037 := UInt<5>(24)
+ wire T_194038 : UInt<1>
+ T_194038 := T_194037
+ when T_193990 : T_194038 := UInt<5>(25)
+ wire T_194039 : UInt<1>
+ T_194039 := T_194038
+ when T_193989 : T_194039 := UInt<5>(26)
+ wire T_194040 : UInt<1>
+ T_194040 := T_194039
+ when T_193988 : T_194040 := UInt<5>(27)
+ wire T_194041 : UInt<1>
+ T_194041 := T_194040
+ when T_193987 : T_194041 := UInt<5>(28)
+ wire T_194042 : UInt<1>
+ T_194042 := T_194041
+ when T_193986 : T_194042 := UInt<5>(29)
+ wire T_194043 : UInt<1>
+ T_194043 := T_194042
+ when T_193985 : T_194043 := UInt<5>(30)
+ wire T_194044 : UInt<1>
+ T_194044 := T_194043
+ when T_193984 : T_194044 := UInt<5>(31)
+ node T_194045 = not(T_194044)
+ node T_194046 = dshl(T_193983, T_194045)
+ node T_194047 = subw(UInt<4>(0), UInt<3>(4))
+ node T_194048 = not(T_194045)
+ node T_194049 = cat(T_194047, T_194048)
+ node T_194050 = bits(T_194046, 30, 8)
+ wire T_194051 : UInt<5>
+ T_194051 := T_194049
+ when T_193979 : T_194051 := UInt<1>(0)
+ wire T_194052 : UInt<8>
+ T_194052 := T_193976
+ when T_193978 : T_194052 := T_194051
+ wire T_194053 : UInt<1>
+ T_194053 := UInt<1>(1)
+ when T_193982 : T_194053 := UInt<2>(2)
+ node T_194054 = or(UInt<8>(128), T_194053)
+ wire T_194055 : UInt<8>
+ T_194055 := T_194054
+ when T_193980 : T_194055 := UInt<1>(0)
+ node T_194056 = addw(T_194052, T_194055)
+ node T_194057 = bits(T_194056, 8, 7)
+ node T_194058 = eq(T_194057, UInt<1>(-1))
+ node T_194059 = eq(T_193979, UInt<1>(0))
+ node T_194060 = and(T_194058, T_194059)
+ node T_194061 = dshl(T_194060, UInt<3>(6))
+ node T_194062 = or(T_194056, T_194061)
+ wire T_194063 : UInt<23>
+ T_194063 := T_193977
+ when T_193978 : T_194063 := T_194050
+ node T_194064 = cat(T_194062, T_194063)
+ node rec_s = cat(T_193975, T_194064)
+ node T_194065 = bit(load_wb_data, 63)
+ node T_194066 = bits(load_wb_data, 62, 52)
+ node T_194067 = bits(load_wb_data, 51, 0)
+ node T_194068 = eq(T_194066, UInt<1>(0))
+ node T_194069 = eq(T_194067, UInt<1>(0))
+ node T_194070 = and(T_194068, T_194069)
+ node T_194071 = eq(T_194069, UInt<1>(0))
+ node T_194072 = and(T_194068, T_194071)
+ node T_194073 = shl(T_194067, 12)
+ node T_194074 = bit(T_194073, 63)
+ node T_194075 = bit(T_194073, 62)
+ node T_194076 = bit(T_194073, 61)
+ node T_194077 = bit(T_194073, 60)
+ node T_194078 = bit(T_194073, 59)
+ node T_194079 = bit(T_194073, 58)
+ node T_194080 = bit(T_194073, 57)
+ node T_194081 = bit(T_194073, 56)
+ node T_194082 = bit(T_194073, 55)
+ node T_194083 = bit(T_194073, 54)
+ node T_194084 = bit(T_194073, 53)
+ node T_194085 = bit(T_194073, 52)
+ node T_194086 = bit(T_194073, 51)
+ node T_194087 = bit(T_194073, 50)
+ node T_194088 = bit(T_194073, 49)
+ node T_194089 = bit(T_194073, 48)
+ node T_194090 = bit(T_194073, 47)
+ node T_194091 = bit(T_194073, 46)
+ node T_194092 = bit(T_194073, 45)
+ node T_194093 = bit(T_194073, 44)
+ node T_194094 = bit(T_194073, 43)
+ node T_194095 = bit(T_194073, 42)
+ node T_194096 = bit(T_194073, 41)
+ node T_194097 = bit(T_194073, 40)
+ node T_194098 = bit(T_194073, 39)
+ node T_194099 = bit(T_194073, 38)
+ node T_194100 = bit(T_194073, 37)
+ node T_194101 = bit(T_194073, 36)
+ node T_194102 = bit(T_194073, 35)
+ node T_194103 = bit(T_194073, 34)
+ node T_194104 = bit(T_194073, 33)
+ node T_194105 = bit(T_194073, 32)
+ node T_194106 = bit(T_194073, 31)
+ node T_194107 = bit(T_194073, 30)
+ node T_194108 = bit(T_194073, 29)
+ node T_194109 = bit(T_194073, 28)
+ node T_194110 = bit(T_194073, 27)
+ node T_194111 = bit(T_194073, 26)
+ node T_194112 = bit(T_194073, 25)
+ node T_194113 = bit(T_194073, 24)
+ node T_194114 = bit(T_194073, 23)
+ node T_194115 = bit(T_194073, 22)
+ node T_194116 = bit(T_194073, 21)
+ node T_194117 = bit(T_194073, 20)
+ node T_194118 = bit(T_194073, 19)
+ node T_194119 = bit(T_194073, 18)
+ node T_194120 = bit(T_194073, 17)
+ node T_194121 = bit(T_194073, 16)
+ node T_194122 = bit(T_194073, 15)
+ node T_194123 = bit(T_194073, 14)
+ node T_194124 = bit(T_194073, 13)
+ node T_194125 = bit(T_194073, 12)
+ node T_194126 = bit(T_194073, 11)
+ node T_194127 = bit(T_194073, 10)
+ node T_194128 = bit(T_194073, 9)
+ node T_194129 = bit(T_194073, 8)
+ node T_194130 = bit(T_194073, 7)
+ node T_194131 = bit(T_194073, 6)
+ node T_194132 = bit(T_194073, 5)
+ node T_194133 = bit(T_194073, 4)
+ node T_194134 = bit(T_194073, 3)
+ node T_194135 = bit(T_194073, 2)
+ node T_194136 = bit(T_194073, 1)
+ wire T_194137 : UInt<1>
+ T_194137 := T_194136
+ when T_194135 : T_194137 := UInt<2>(2)
+ wire T_194138 : UInt<1>
+ T_194138 := T_194137
+ when T_194134 : T_194138 := UInt<2>(3)
+ wire T_194139 : UInt<1>
+ T_194139 := T_194138
+ when T_194133 : T_194139 := UInt<3>(4)
+ wire T_194140 : UInt<1>
+ T_194140 := T_194139
+ when T_194132 : T_194140 := UInt<3>(5)
+ wire T_194141 : UInt<1>
+ T_194141 := T_194140
+ when T_194131 : T_194141 := UInt<3>(6)
+ wire T_194142 : UInt<1>
+ T_194142 := T_194141
+ when T_194130 : T_194142 := UInt<3>(7)
+ wire T_194143 : UInt<1>
+ T_194143 := T_194142
+ when T_194129 : T_194143 := UInt<4>(8)
+ wire T_194144 : UInt<1>
+ T_194144 := T_194143
+ when T_194128 : T_194144 := UInt<4>(9)
+ wire T_194145 : UInt<1>
+ T_194145 := T_194144
+ when T_194127 : T_194145 := UInt<4>(10)
+ wire T_194146 : UInt<1>
+ T_194146 := T_194145
+ when T_194126 : T_194146 := UInt<4>(11)
+ wire T_194147 : UInt<1>
+ T_194147 := T_194146
+ when T_194125 : T_194147 := UInt<4>(12)
+ wire T_194148 : UInt<1>
+ T_194148 := T_194147
+ when T_194124 : T_194148 := UInt<4>(13)
+ wire T_194149 : UInt<1>
+ T_194149 := T_194148
+ when T_194123 : T_194149 := UInt<4>(14)
+ wire T_194150 : UInt<1>
+ T_194150 := T_194149
+ when T_194122 : T_194150 := UInt<4>(15)
+ wire T_194151 : UInt<1>
+ T_194151 := T_194150
+ when T_194121 : T_194151 := UInt<5>(16)
+ wire T_194152 : UInt<1>
+ T_194152 := T_194151
+ when T_194120 : T_194152 := UInt<5>(17)
+ wire T_194153 : UInt<1>
+ T_194153 := T_194152
+ when T_194119 : T_194153 := UInt<5>(18)
+ wire T_194154 : UInt<1>
+ T_194154 := T_194153
+ when T_194118 : T_194154 := UInt<5>(19)
+ wire T_194155 : UInt<1>
+ T_194155 := T_194154
+ when T_194117 : T_194155 := UInt<5>(20)
+ wire T_194156 : UInt<1>
+ T_194156 := T_194155
+ when T_194116 : T_194156 := UInt<5>(21)
+ wire T_194157 : UInt<1>
+ T_194157 := T_194156
+ when T_194115 : T_194157 := UInt<5>(22)
+ wire T_194158 : UInt<1>
+ T_194158 := T_194157
+ when T_194114 : T_194158 := UInt<5>(23)
+ wire T_194159 : UInt<1>
+ T_194159 := T_194158
+ when T_194113 : T_194159 := UInt<5>(24)
+ wire T_194160 : UInt<1>
+ T_194160 := T_194159
+ when T_194112 : T_194160 := UInt<5>(25)
+ wire T_194161 : UInt<1>
+ T_194161 := T_194160
+ when T_194111 : T_194161 := UInt<5>(26)
+ wire T_194162 : UInt<1>
+ T_194162 := T_194161
+ when T_194110 : T_194162 := UInt<5>(27)
+ wire T_194163 : UInt<1>
+ T_194163 := T_194162
+ when T_194109 : T_194163 := UInt<5>(28)
+ wire T_194164 : UInt<1>
+ T_194164 := T_194163
+ when T_194108 : T_194164 := UInt<5>(29)
+ wire T_194165 : UInt<1>
+ T_194165 := T_194164
+ when T_194107 : T_194165 := UInt<5>(30)
+ wire T_194166 : UInt<1>
+ T_194166 := T_194165
+ when T_194106 : T_194166 := UInt<5>(31)
+ wire T_194167 : UInt<1>
+ T_194167 := T_194166
+ when T_194105 : T_194167 := UInt<6>(32)
+ wire T_194168 : UInt<1>
+ T_194168 := T_194167
+ when T_194104 : T_194168 := UInt<6>(33)
+ wire T_194169 : UInt<1>
+ T_194169 := T_194168
+ when T_194103 : T_194169 := UInt<6>(34)
+ wire T_194170 : UInt<1>
+ T_194170 := T_194169
+ when T_194102 : T_194170 := UInt<6>(35)
+ wire T_194171 : UInt<1>
+ T_194171 := T_194170
+ when T_194101 : T_194171 := UInt<6>(36)
+ wire T_194172 : UInt<1>
+ T_194172 := T_194171
+ when T_194100 : T_194172 := UInt<6>(37)
+ wire T_194173 : UInt<1>
+ T_194173 := T_194172
+ when T_194099 : T_194173 := UInt<6>(38)
+ wire T_194174 : UInt<1>
+ T_194174 := T_194173
+ when T_194098 : T_194174 := UInt<6>(39)
+ wire T_194175 : UInt<1>
+ T_194175 := T_194174
+ when T_194097 : T_194175 := UInt<6>(40)
+ wire T_194176 : UInt<1>
+ T_194176 := T_194175
+ when T_194096 : T_194176 := UInt<6>(41)
+ wire T_194177 : UInt<1>
+ T_194177 := T_194176
+ when T_194095 : T_194177 := UInt<6>(42)
+ wire T_194178 : UInt<1>
+ T_194178 := T_194177
+ when T_194094 : T_194178 := UInt<6>(43)
+ wire T_194179 : UInt<1>
+ T_194179 := T_194178
+ when T_194093 : T_194179 := UInt<6>(44)
+ wire T_194180 : UInt<1>
+ T_194180 := T_194179
+ when T_194092 : T_194180 := UInt<6>(45)
+ wire T_194181 : UInt<1>
+ T_194181 := T_194180
+ when T_194091 : T_194181 := UInt<6>(46)
+ wire T_194182 : UInt<1>
+ T_194182 := T_194181
+ when T_194090 : T_194182 := UInt<6>(47)
+ wire T_194183 : UInt<1>
+ T_194183 := T_194182
+ when T_194089 : T_194183 := UInt<6>(48)
+ wire T_194184 : UInt<1>
+ T_194184 := T_194183
+ when T_194088 : T_194184 := UInt<6>(49)
+ wire T_194185 : UInt<1>
+ T_194185 := T_194184
+ when T_194087 : T_194185 := UInt<6>(50)
+ wire T_194186 : UInt<1>
+ T_194186 := T_194185
+ when T_194086 : T_194186 := UInt<6>(51)
+ wire T_194187 : UInt<1>
+ T_194187 := T_194186
+ when T_194085 : T_194187 := UInt<6>(52)
+ wire T_194188 : UInt<1>
+ T_194188 := T_194187
+ when T_194084 : T_194188 := UInt<6>(53)
+ wire T_194189 : UInt<1>
+ T_194189 := T_194188
+ when T_194083 : T_194189 := UInt<6>(54)
+ wire T_194190 : UInt<1>
+ T_194190 := T_194189
+ when T_194082 : T_194190 := UInt<6>(55)
+ wire T_194191 : UInt<1>
+ T_194191 := T_194190
+ when T_194081 : T_194191 := UInt<6>(56)
+ wire T_194192 : UInt<1>
+ T_194192 := T_194191
+ when T_194080 : T_194192 := UInt<6>(57)
+ wire T_194193 : UInt<1>
+ T_194193 := T_194192
+ when T_194079 : T_194193 := UInt<6>(58)
+ wire T_194194 : UInt<1>
+ T_194194 := T_194193
+ when T_194078 : T_194194 := UInt<6>(59)
+ wire T_194195 : UInt<1>
+ T_194195 := T_194194
+ when T_194077 : T_194195 := UInt<6>(60)
+ wire T_194196 : UInt<1>
+ T_194196 := T_194195
+ when T_194076 : T_194196 := UInt<6>(61)
+ wire T_194197 : UInt<1>
+ T_194197 := T_194196
+ when T_194075 : T_194197 := UInt<6>(62)
+ wire T_194198 : UInt<1>
+ T_194198 := T_194197
+ when T_194074 : T_194198 := UInt<6>(63)
+ node T_194199 = not(T_194198)
+ node T_194200 = dshl(T_194073, T_194199)
+ node T_194201 = subw(UInt<6>(0), UInt<3>(6))
+ node T_194202 = not(T_194199)
+ node T_194203 = cat(T_194201, T_194202)
+ node T_194204 = bits(T_194200, 62, 11)
+ wire T_194205 : UInt<7>
+ T_194205 := T_194203
+ when T_194069 : T_194205 := UInt<1>(0)
+ wire T_194206 : UInt<11>
+ T_194206 := T_194066
+ when T_194068 : T_194206 := T_194205
+ wire T_194207 : UInt<1>
+ T_194207 := UInt<1>(1)
+ when T_194072 : T_194207 := UInt<2>(2)
+ node T_194208 = or(UInt<11>(1024), T_194207)
+ wire T_194209 : UInt<11>
+ T_194209 := T_194208
+ when T_194070 : T_194209 := UInt<1>(0)
+ node T_194210 = addw(T_194206, T_194209)
+ node T_194211 = bits(T_194210, 11, 10)
+ node T_194212 = eq(T_194211, UInt<1>(-1))
+ node T_194213 = eq(T_194069, UInt<1>(0))
+ node T_194214 = and(T_194212, T_194213)
+ node T_194215 = dshl(T_194214, UInt<4>(9))
+ node T_194216 = or(T_194210, T_194215)
+ wire T_194217 : UInt<52>
+ T_194217 := T_194067
+ when T_194068 : T_194217 := T_194204
+ node T_194218 = cat(T_194216, T_194217)
+ node rec_d = cat(T_194065, T_194218)
+ node T_194219 = asUInt(SInt<32>(-1))
+ node T_194220 = cat(T_194219, rec_s)
+ wire load_wb_data_recoded : UInt<64>
+ load_wb_data_recoded := rec_d
+ when load_wb_single : load_wb_data_recoded := T_194220
+ cmem regfile : UInt<65>[32]
+ when load_wb :
+ accessor T_194221 = regfile[load_wb_tag]
+ T_194221 := load_wb_data_recoded
+ reg ex_ra1 : UInt
+ reg ex_ra2 : UInt
+ reg ex_ra3 : UInt
+ when valid :
+ when fp_decoder.sigs.ren1 :
+
+ node T_194222 = eq(fp_decoder.sigs.swap12, UInt<1>(0))
+ when T_194222 :
+ node T_194223 = bits(inst__, 19, 15)
+ ex_ra1 := T_194223
+ when fp_decoder.sigs.swap12 :
+ node T_194224 = bits(inst__, 19, 15)
+ ex_ra2 := T_194224
+ when fp_decoder.sigs.ren2 :
+ when fp_decoder.sigs.swap12 :
+ node T_194225 = bits(inst__, 24, 20)
+ ex_ra1 := T_194225
+ when fp_decoder.sigs.swap23 :
+ node T_194226 = bits(inst__, 24, 20)
+ ex_ra3 := T_194226
+
+
+ node T_194227 = eq(fp_decoder.sigs.swap12, UInt<1>(0))
+ node T_194228 = eq(fp_decoder.sigs.swap23, UInt<1>(0))
+ node T_194229 = and(T_194227, T_194228)
+ when T_194229 :
+ node T_194230 = bits(inst__, 24, 20)
+ ex_ra2 := T_194230
+ when fp_decoder.sigs.ren3 :
+ node T_194231 = bits(inst__, 31, 27)
+ ex_ra3 := T_194231
+ accessor ex_rs1 = regfile[ex_ra1]
+ accessor ex_rs2 = regfile[ex_ra2]
+ accessor ex_rs3 = regfile[ex_ra3]
+ node T_194232 = bits(ex_reg_inst, 14, 12)
+ node T_194233 = eq(T_194232, UInt<3>(7))
+ node T_194234 = bits(ex_reg_inst, 14, 12)
+ wire ex_rm : UInt<3>
+ ex_rm := T_194234
+ when T_194233 : ex_rm := fcsr_rm
+ wire req : {cmd : UInt<5>, ldst : UInt<1>, wen : UInt<1>, ren1 : UInt<1>, ren2 : UInt<1>, ren3 : UInt<1>, swap12 : UInt<1>, swap23 : UInt<1>, single : UInt<1>, fromint : UInt<1>, toint : UInt<1>, fastpipe : UInt<1>, fma : UInt<1>, div : UInt<1>, sqrt : UInt<1>, round : UInt<1>, wflags : UInt<1>, rm : UInt<3>, typ : UInt<2>, in1 : UInt<65>, in2 : UInt<65>, in3 : UInt<65>}
+ req := ex_ctrl
+ req.rm := ex_rm
+ req.in1 := ex_rs1
+ req.in2 := ex_rs2
+ req.in3 := ex_rs3
+ node T_194235 = bits(ex_reg_inst, 21, 20)
+ req.typ := T_194235
+ inst sfma of FPUFMAPipe
+ node T_194236 = and(ex_reg_valid, ex_ctrl.fma)
+ node T_194237 = and(T_194236, ex_ctrl.single)
+ sfma.in.valid := T_194237
+ sfma.in.bits := req
+ inst dfma of FPUFMAPipe_160964
+ node T_194238 = and(ex_reg_valid, ex_ctrl.fma)
+ node T_194239 = eq(ex_ctrl.single, UInt<1>(0))
+ node T_194240 = and(T_194238, T_194239)
+ dfma.in.valid := T_194240
+ dfma.in.bits := req
+ inst fpiu of FPToInt
+ node T_194241 = or(ex_ctrl.toint, ex_ctrl.div)
+ node T_194242 = or(T_194241, ex_ctrl.sqrt)
+ node T_194243 = and(ex_ctrl.cmd, UInt<4>(13))
+ node T_194244 = eq(UInt<3>(5), T_194243)
+ node T_194245 = or(T_194242, T_194244)
+ node T_194246 = and(ex_reg_valid, T_194245)
+ fpiu.in.valid := T_194246
+ fpiu.in.bits := req
+ store_data := fpiu.out.bits.store
+ toint_data := fpiu.out.bits.toint
+ inst ifpu of IntToFP
+ node T_194247 = and(ex_reg_valid, ex_ctrl.fromint)
+ ifpu.in.valid := T_194247
+ ifpu.in.bits := req
+ ifpu.in.bits.in1 := fromint_data
+ inst fpmu of FPToFP
+ node T_194248 = and(ex_reg_valid, ex_ctrl.fastpipe)
+ fpmu.in.valid := T_194248
+ fpmu.in.bits := req
+ fpmu.lt := fpiu.out.bits.lt
+ reg divSqrt_wen : UInt<1>
+ divSqrt_wen := UInt<1>(0)
+ wire divSqrt_inReady : UInt<1>
+ divSqrt_inReady := UInt<1>(0)
+ reg divSqrt_waddr : UInt
+ wire divSqrt_wdata : UInt
+ wire divSqrt_flags : UInt
+ reg divSqrt_in_flight : UInt<1>
+ onreset divSqrt_in_flight := UInt<1>(0)
+ node T_194249 = asUInt(SInt<32>(-1))
+ node T_194250 = cat(T_194249, sfma.out.bits.data)
+ wire T_194251 : UInt<1>
+ T_194251 := UInt<1>(0)
+ when mem_ctrl.fastpipe : T_194251 := UInt<1>(1)
+ wire T_194252 : UInt<1>
+ T_194252 := UInt<1>(0)
+ when mem_ctrl.fromint : T_194252 := UInt<2>(2)
+ node T_194253 = and(mem_ctrl.fma, mem_ctrl.single)
+ wire T_194254 : UInt<1>
+ T_194254 := UInt<1>(0)
+ when T_194253 : T_194254 := UInt<1>(1)
+ node T_194255 = eq(mem_ctrl.single, UInt<1>(0))
+ node T_194256 = and(mem_ctrl.fma, T_194255)
+ wire T_194257 : UInt<1>
+ T_194257 := UInt<1>(0)
+ when T_194256 : T_194257 := UInt<2>(2)
+ node T_194258 = or(T_194251, T_194252)
+ node T_194259 = or(T_194258, T_194254)
+ node memLatencyMask = or(T_194259, T_194257)
+ reg wen : UInt<2>
+ onreset wen := UInt<2>(0)
+ wire T_194260 : UInt[2]
+ T_194260[0] := T_194261
+ T_194260[1] := T_194262
+ reg winfo : UInt[2]
+ node T_194263 = or(mem_ctrl.fma, mem_ctrl.fastpipe)
+ node T_194264 = or(T_194263, mem_ctrl.fromint)
+ node mem_wen = and(mem_reg_valid, T_194264)
+ wire T_194265 : UInt<1>
+ T_194265 := UInt<1>(0)
+ when ex_ctrl.fastpipe : T_194265 := UInt<2>(2)
+ wire T_194266 : UInt<1>
+ T_194266 := UInt<1>(0)
+ when ex_ctrl.fromint : T_194266 := UInt<3>(4)
+ node T_194267 = and(ex_ctrl.fma, ex_ctrl.single)
+ wire T_194268 : UInt<1>
+ T_194268 := UInt<1>(0)
+ when T_194267 : T_194268 := UInt<2>(2)
+ node T_194269 = eq(ex_ctrl.single, UInt<1>(0))
+ node T_194270 = and(ex_ctrl.fma, T_194269)
+ wire T_194271 : UInt<1>
+ T_194271 := UInt<1>(0)
+ when T_194270 : T_194271 := UInt<3>(4)
+ node T_194272 = or(T_194265, T_194266)
+ node T_194273 = or(T_194272, T_194268)
+ node T_194274 = or(T_194273, T_194271)
+ node T_194275 = and(memLatencyMask, T_194274)
+ node T_194276 = eq(T_194275, UInt<1>(0))
+ node T_194277 = eq(T_194276, UInt<1>(0))
+ node T_194278 = and(mem_wen, T_194277)
+ wire T_194279 : UInt<1>
+ T_194279 := UInt<1>(0)
+ when ex_ctrl.fastpipe : T_194279 := UInt<3>(4)
+ wire T_194280 : UInt<1>
+ T_194280 := UInt<1>(0)
+ when ex_ctrl.fromint : T_194280 := UInt<4>(8)
+ node T_194281 = and(ex_ctrl.fma, ex_ctrl.single)
+ wire T_194282 : UInt<1>
+ T_194282 := UInt<1>(0)
+ when T_194281 : T_194282 := UInt<3>(4)
+ node T_194283 = eq(ex_ctrl.single, UInt<1>(0))
+ node T_194284 = and(ex_ctrl.fma, T_194283)
+ wire T_194285 : UInt<1>
+ T_194285 := UInt<1>(0)
+ when T_194284 : T_194285 := UInt<4>(8)
+ node T_194286 = or(T_194279, T_194280)
+ node T_194287 = or(T_194286, T_194282)
+ node T_194288 = or(T_194287, T_194285)
+ node T_194289 = and(wen, T_194288)
+ node T_194290 = eq(T_194289, UInt<1>(0))
+ node T_194291 = eq(T_194290, UInt<1>(0))
+ node T_194292 = or(T_194278, T_194291)
+ reg write_port_busy : UInt<1>
+ when ex_reg_valid : write_port_busy := T_194292
+ wire T_194293 : UInt<1>
+ T_194293 := UInt<1>(0)
+ when mem_ctrl.fastpipe : T_194293 := UInt<1>(0)
+ wire T_194294 : UInt<1>
+ T_194294 := UInt<1>(0)
+ when mem_ctrl.fromint : T_194294 := UInt<1>(1)
+ node T_194295 = and(mem_ctrl.fma, mem_ctrl.single)
+ wire T_194296 : UInt<1>
+ T_194296 := UInt<1>(0)
+ when T_194295 : T_194296 := UInt<2>(2)
+ node T_194297 = eq(mem_ctrl.single, UInt<1>(0))
+ node T_194298 = and(mem_ctrl.fma, T_194297)
+ wire T_194299 : UInt<1>
+ T_194299 := UInt<1>(0)
+ when T_194298 : T_194299 := UInt<2>(3)
+ node T_194300 = or(T_194293, T_194294)
+ node T_194301 = or(T_194300, T_194296)
+ node T_194302 = or(T_194301, T_194299)
+ node T_194303 = bits(mem_reg_inst, 11, 7)
+ node mem_winfo = cat(T_194302, T_194303)
+
+ node T_194304 = bit(wen, 1)
+ when T_194304 : winfo[0] := winfo[1]
+ node T_194305 = shr(wen, 1)
+ wen := T_194305
+ when mem_wen :
+
+ node T_194306 = eq(killm, UInt<1>(0))
+ when T_194306 :
+ node T_194307 = shr(wen, 1)
+ node T_194308 = or(T_194307, memLatencyMask)
+ wen := T_194308
+
+
+ node T_194309 = eq(write_port_busy, UInt<1>(0))
+ node T_194310 = bit(memLatencyMask, 0)
+ node T_194311 = and(T_194309, T_194310)
+ when T_194311 : winfo[0] := mem_winfo
+
+
+ node T_194312 = eq(write_port_busy, UInt<1>(0))
+ node T_194313 = bit(memLatencyMask, 1)
+ node T_194314 = and(T_194312, T_194313)
+ when T_194314 : winfo[1] := mem_winfo
+ node T_194315 = bits(winfo[0], 4, 0)
+ wire waddr : UInt<5>
+ waddr := T_194315
+ when divSqrt_wen : waddr := divSqrt_waddr
+ node wsrc = shr(winfo[0], 5)
+ wire T_194316 : UInt<65>[4]
+ T_194316[0] := fpmu.out.bits.data
+ T_194316[1] := ifpu.out.bits.data
+ T_194316[2] := T_194250
+ T_194316[3] := dfma.out.bits.data
+ accessor T_194317 = T_194316[wsrc]
+ wire wdata : UInt<65>
+ wdata := T_194317
+ when divSqrt_wen : wdata := divSqrt_wdata
+ wire T_194318 : UInt<5>[4]
+ T_194318[0] := fpmu.out.bits.exc
+ T_194318[1] := ifpu.out.bits.exc
+ T_194318[2] := sfma.out.bits.exc
+ T_194318[3] := dfma.out.bits.exc
+ accessor wexc = T_194318[wsrc]
+
+
+ node T_194319 = bit(wen, 0)
+ node T_194320 = or(T_194319, divSqrt_wen)
+ when T_194320 :
+ accessor T_194321 = regfile[waddr]
+ T_194321 := wdata
+ node wb_toint_valid = and(wb_reg_valid, wb_ctrl.toint)
+ reg wb_toint_exc : UInt<5>
+ when mem_ctrl.toint : wb_toint_exc := fpiu.out.bits.exc
+ node T_194322 = or(wb_toint_valid, divSqrt_wen)
+ node T_194323 = bit(wen, 0)
+ node T_194324 = or(T_194322, T_194323)
+ fcsr_flags.valid := T_194324
+ wire T_194325 : UInt<1>
+ T_194325 := UInt<1>(0)
+ when wb_toint_valid : T_194325 := wb_toint_exc
+ wire T_194326 : UInt<1>
+ T_194326 := UInt<1>(0)
+ when divSqrt_wen : T_194326 := divSqrt_flags
+ node T_194327 = or(T_194325, T_194326)
+ node T_194328 = bit(wen, 0)
+ wire T_194329 : UInt<1>
+ T_194329 := UInt<1>(0)
+ when T_194328 : T_194329 := wexc
+ node T_194330 = or(T_194327, T_194329)
+ fcsr_flags.bits := T_194330
+ node T_194331 = or(mem_ctrl.div, mem_ctrl.sqrt)
+ node T_194332 = and(mem_reg_valid, T_194331)
+ node T_194333 = eq(divSqrt_inReady, UInt<1>(0))
+ node T_194334 = eq(wen, UInt<1>(0))
+ node T_194335 = eq(T_194334, UInt<1>(0))
+ node T_194336 = or(T_194333, T_194335)
+ node units_busy = and(T_194332, T_194336)
+ node T_194337 = and(ex_reg_valid, ex_ctrl.wflags)
+ node T_194338 = and(mem_reg_valid, mem_ctrl.wflags)
+ node T_194339 = or(T_194337, T_194338)
+ node T_194340 = and(wb_reg_valid, wb_ctrl.toint)
+ node T_194341 = or(T_194339, T_194340)
+ node T_194342 = eq(wen, UInt<1>(0))
+ node T_194343 = eq(T_194342, UInt<1>(0))
+ node T_194344 = or(T_194341, T_194343)
+ node T_194345 = or(T_194344, divSqrt_in_flight)
+ node T_194346 = eq(T_194345, UInt<1>(0))
+ fcsr_rdy := T_194346
+ node T_194347 = or(units_busy, write_port_busy)
+ node T_194348 = or(T_194347, divSqrt_in_flight)
+ nack_mem := T_194348
+ dec <> fp_decoder.sigs
+ node T_194349 = or(UInt<1>(0), mem_ctrl.div)
+ node T_194350 = or(T_194349, mem_ctrl.sqrt)
+ reg T_194351 : UInt<1>
+ T_194351 := T_194350
+ node T_194352 = and(wb_reg_valid, T_194351)
+ sboard_set := T_194352
+ node T_194353 = bit(wen, 0)
+ node T_194354 = and(T_194353, UInt<1>(0))
+ node T_194355 = or(divSqrt_wen, T_194354)
+ sboard_clr := T_194355
+ sboard_clra := waddr
+ node T_194356 = bit(ex_rm, 2)
+ node T_194357 = and(T_194356, ex_ctrl.round)
+ illegal_rm := T_194357
+ divSqrt_wdata := UInt<1>(0)
+ divSqrt_flags := UInt<1>(0)
+ reg T_194358 : UInt<1>
+ reg T_194359 : UInt
+ reg T_194360 : UInt
+ reg T_194361 : UInt
+ inst T_194362 of divSqrtRecodedFloat64
+ wire T_194363 : UInt<1>
+ T_194363 := T_194362.inReady_div
+ when T_194362.sqrtOp : T_194363 := T_194362.inReady_sqrt
+ divSqrt_inReady := T_194363
+ node T_194364 = or(T_194362.outValid_div, T_194362.outValid_sqrt)
+ node T_194365 = eq(wen, UInt<1>(0))
+ node T_194366 = eq(T_194365, UInt<1>(0))
+ node T_194367 = eq(T_194366, UInt<1>(0))
+ node T_194368 = and(mem_reg_valid, T_194367)
+ node T_194369 = eq(divSqrt_in_flight, UInt<1>(0))
+ node T_194370 = and(T_194368, T_194369)
+ node T_194371 = eq(killm, UInt<1>(0))
+ node T_194372 = and(T_194370, T_194371)
+ node T_194373 = or(mem_ctrl.div, mem_ctrl.sqrt)
+ node T_194374 = and(T_194372, T_194373)
+ T_194362.inValid := T_194374
+ T_194362.sqrtOp := mem_ctrl.sqrt
+ T_194362.a := fpiu.as_double.in1
+ T_194362.b := fpiu.as_double.in2
+ T_194362.roundingMode := fpiu.as_double.rm
+
+ node T_194375 = and(T_194362.inValid, divSqrt_inReady)
+ when T_194375 :
+ divSqrt_in_flight := UInt<1>(1)
+ T_194358 := mem_ctrl.single
+ node T_194376 = bits(mem_reg_inst, 11, 7)
+ divSqrt_waddr := T_194376
+ T_194359 := T_194362.roundingMode
+ when T_194364 :
+ divSqrt_wen := UInt<1>(1)
+ T_194361 := T_194362.out
+ divSqrt_in_flight := UInt<1>(0)
+ T_194360 := T_194362.exceptionFlags
+ node T_194377 = bit(T_194361, 64)
+ node T_194378 = bits(T_194361, 51, 0)
+ node T_194379 = bits(T_194361, 63, 52)
+ node T_194380 = bits(T_194361, 63, 61)
+ node T_194381 = bits(T_194361, 62, 52)
+ node T_194382 = eq(T_194380, UInt<1>(-1))
+ node T_194383 = bit(T_194378, 51)
+ node T_194384 = eq(T_194383, UInt<1>(0))
+ node T_194385 = and(T_194382, T_194384)
+ node T_194386 = eq(T_194380, UInt<1>(0))
+ node T_194387 = eq(T_194386, UInt<1>(0))
+ node T_194388 = eq(T_194387, UInt<1>(0))
+ node T_194389 = bits(T_194380, 2, 1)
+ node T_194390 = eq(T_194389, UInt<1>(-1))
+ node T_194391 = or(T_194388, T_194390)
+ node T_194392 = geq(T_194379, UInt<11>(1898))
+ node T_194393 = leq(T_194379, UInt<11>(1921))
+ node T_194394 = and(T_194392, T_194393)
+ node T_194395 = lt(T_194379, UInt<11>(1898))
+ node T_194396 = eq(T_194391, UInt<1>(0))
+ node T_194397 = and(T_194395, T_194396)
+ node T_194398 = gt(T_194379, UInt<12>(2175))
+ node T_194399 = eq(T_194391, UInt<1>(0))
+ node T_194400 = and(T_194398, T_194399)
+ node T_194401 = addw(UInt<11>(1921), UInt<1>(1))
+ node T_194402 = subw(T_194401, T_194379)
+ wire T_194403 : UInt<1>
+ T_194403 := UInt<1>(0)
+ when T_194394 : T_194403 := T_194402
+ node T_194404 = bits(T_194403, 4, 0)
+ node T_194405 = bits(T_194378, 51, 28)
+ node T_194406 = cat(T_194405, UInt<24>(0))
+ node T_194407 = cat(UInt<1>(1), T_194406)
+ node T_194408 = dshr(T_194407, T_194404)
+ node T_194409 = bits(T_194408, 23, 0)
+ node T_194410 = neq(T_194409, UInt<1>(0))
+ node T_194411 = bits(T_194378, 27, 0)
+ node T_194412 = neq(T_194411, UInt<1>(0))
+ node T_194413 = or(T_194410, T_194412)
+ node T_194414 = bits(T_194408, 25, 24)
+ node T_194415 = cat(T_194414, T_194413)
+ node T_194416 = bits(T_194415, 1, 0)
+ node T_194417 = neq(T_194416, UInt<1>(0))
+ node T_194418 = eq(T_194391, UInt<1>(0))
+ node T_194419 = and(T_194417, T_194418)
+ node T_194420 = eq(ex_rm, UInt<2>(0))
+ node T_194421 = bits(T_194415, 1, 0)
+ node T_194422 = eq(T_194421, UInt<1>(-1))
+ node T_194423 = bits(T_194415, 2, 1)
+ node T_194424 = eq(T_194423, UInt<1>(-1))
+ node T_194425 = or(T_194422, T_194424)
+ node T_194426 = eq(ex_rm, UInt<2>(2))
+ node T_194427 = and(T_194377, T_194419)
+ node T_194428 = eq(ex_rm, UInt<2>(3))
+ node T_194429 = eq(T_194377, UInt<1>(0))
+ node T_194430 = and(T_194429, T_194419)
+ wire T_194431 : UInt<1>
+ T_194431 := UInt<1>(0)
+ when T_194428 : T_194431 := T_194430
+ wire T_194432 : UInt<1>
+ T_194432 := T_194431
+ when T_194426 : T_194432 := T_194427
+ wire T_194433 : UInt<1>
+ T_194433 := T_194432
+ when T_194420 : T_194433 := T_194425
+ node T_194434 = dshl(UInt<25>(33554431), T_194404)
+ node T_194435 = bits(T_194434, 24, 0)
+ node T_194436 = bits(T_194378, 51, 29)
+ node T_194437 = cat(UInt<2>(1), T_194436)
+ node T_194438 = not(T_194435)
+ node T_194439 = or(T_194437, T_194438)
+ node T_194440 = addw(T_194439, UInt<1>(1))
+ wire T_194441 : UInt<25>
+ T_194441 := T_194439
+ when T_194433 : T_194441 := T_194440
+ node T_194442 = bits(T_194379, 8, 0)
+ node T_194443 = addw(T_194442, UInt<9>(256))
+ node T_194444 = bit(T_194441, 24)
+ node T_194445 = addw(T_194443, UInt<1>(1))
+ wire T_194446 : UInt<9>
+ T_194446 := T_194443
+ when T_194444 : T_194446 := T_194445
+ node T_194447 = eq(ex_rm, UInt<2>(2))
+ node T_194448 = and(T_194447, T_194377)
+ node T_194449 = eq(ex_rm, UInt<2>(3))
+ node T_194450 = eq(T_194377, UInt<1>(0))
+ node T_194451 = and(T_194449, T_194450)
+ node T_194452 = or(T_194448, T_194451)
+ node T_194453 = eq(ex_rm, UInt<2>(0))
+ node T_194454 = or(T_194452, T_194453)
+ node T_194455 = eq(T_194454, UInt<1>(0))
+ node T_194456 = subw(UInt<23>(0), UInt<5>(23))
+ wire T_194457 : UInt<9>
+ T_194457 := UInt<9>(383)
+ when T_194454 : T_194457 := UInt<9>(384)
+ wire T_194458 : UInt<1>
+ T_194458 := UInt<1>(0)
+ when T_194452 : T_194458 := UInt<7>(107)
+ node T_194459 = dshl(T_194380, UInt<3>(6))
+ wire T_194460 : UInt<9>
+ T_194460 := T_194446
+ when T_194397 : T_194460 := T_194458
+ wire T_194461 : UInt<9>
+ T_194461 := T_194460
+ when T_194400 : T_194461 := T_194457
+ wire T_194462 : UInt<9>
+ T_194462 := T_194461
+ when T_194391 : T_194462 := T_194459
+ node T_194463 = subw(UInt<23>(0), UInt<5>(23))
+ node T_194464 = bits(T_194441, 22, 0)
+ wire T_194465 : UInt<23>
+ T_194465 := T_194464
+ when T_194397 : T_194465 := UInt<1>(0)
+ wire T_194466 : UInt<23>
+ T_194466 := T_194465
+ when T_194400 : T_194466 := T_194456
+ wire T_194467 : UInt<23>
+ T_194467 := T_194466
+ when T_194391 : T_194467 := T_194463
+ node T_194468 = cat(T_194462, T_194467)
+ node T_194469 = cat(T_194377, T_194468)
+ node T_194470 = and(T_194394, T_194419)
+ node T_194471 = or(T_194397, T_194470)
+ node T_194472 = eq(T_194379, UInt<12>(2175))
+ node T_194473 = bit(T_194441, 24)
+ node T_194474 = and(T_194472, T_194473)
+ node T_194475 = or(T_194400, T_194474)
+ node T_194476 = or(T_194419, T_194400)
+ node T_194477 = or(T_194476, T_194397)
+ node T_194478 = cat(T_194385, UInt<1>(0))
+ node T_194479 = cat(T_194471, T_194477)
+ node T_194480 = cat(T_194475, T_194479)
+ node T_194481 = cat(T_194478, T_194480)
+ wire T_194482 : UInt
+ T_194482 := T_194361
+ when T_194358 : T_194482 := T_194469
+ divSqrt_wdata := T_194482
+ wire T_194483 : UInt<1>
+ T_194483 := UInt<1>(0)
+ when T_194358 : T_194483 := T_194481
+ node T_194484 = or(T_194360, T_194483)
+ divSqrt_flags := T_194484
+ module RocketTile :
+ output cached : {acquire : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_block : UInt<26>, client_xact_id : UInt<1>, addr_beat : UInt<2>, data : UInt<128>, is_builtin_type : UInt<1>, a_type : UInt<3>, union : UInt<17>}}, flip grant : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_beat : UInt<2>, data : UInt<128>, client_xact_id : UInt<1>, manager_xact_id : UInt<2>, is_builtin_type : UInt<1>, g_type : UInt<4>}}, flip probe : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_block : UInt<26>, p_type : UInt<2>}}, release : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_block : UInt<26>, client_xact_id : UInt<1>, addr_beat : UInt<2>, data : UInt<128>, r_type : UInt<3>, voluntary : UInt<1>}}}
+ output uncached : {acquire : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_block : UInt<26>, client_xact_id : UInt<1>, addr_beat : UInt<2>, data : UInt<128>, is_builtin_type : UInt<1>, a_type : UInt<3>, union : UInt<17>}}, flip grant : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr_beat : UInt<2>, data : UInt<128>, client_xact_id : UInt<1>, manager_xact_id : UInt<2>, is_builtin_type : UInt<1>, g_type : UInt<4>}}}
+ output host : {flip reset : UInt<1>, flip id : UInt<1>, flip pcr_req : {flip ready : UInt<1>, valid : UInt<1>, bits : {rw : UInt<1>, addr : UInt<12>, data : UInt<64>}}, pcr_rep : {flip ready : UInt<1>, valid : UInt<1>, bits : UInt<64>}, ipi_req : {flip ready : UInt<1>, valid : UInt<1>, bits : UInt<1>}, flip ipi_rep : {flip ready : UInt<1>, valid : UInt<1>, bits : UInt<1>}, debug_stats_pcr : UInt<1>}
+
+ wire T_194485 : UInt<3>[3]
+ T_194485[0] := UInt<3>(0)
+ T_194485[1] := UInt<3>(1)
+ T_194485[2] := UInt<3>(2)
+ wire T_194486 : UInt<2>[2]
+ T_194486[0] := UInt<2>(0)
+ T_194486[1] := UInt<2>(1)
+ wire T_194487 : UInt<2>[3]
+ T_194487[0] := UInt<2>(1)
+ T_194487[1] := UInt<2>(2)
+ T_194487[2] := UInt<2>(3)
+ wire T_194488 : UInt<2>[2]
+ T_194488[0] := UInt<2>(2)
+ T_194488[1] := UInt<2>(3)
+ wire T_194489 : UInt<2>[1]
+ T_194489[0] := UInt<2>(3)
+ wire T_194490 : UInt<3>[3]
+ T_194490[0] := UInt<3>(0)
+ T_194490[1] := UInt<3>(1)
+ T_194490[2] := UInt<3>(2)
+ wire T_194491 : UInt<2>[2]
+ T_194491[0] := UInt<2>(0)
+ T_194491[1] := UInt<2>(1)
+ wire T_194492 : UInt<2>[3]
+ T_194492[0] := UInt<2>(1)
+ T_194492[1] := UInt<2>(2)
+ T_194492[2] := UInt<2>(3)
+ wire T_194493 : UInt<2>[2]
+ T_194493[0] := UInt<2>(2)
+ T_194493[1] := UInt<2>(3)
+ wire T_194494 : UInt<2>[1]
+ T_194494[0] := UInt<2>(3)
+ wire T_194495 : UInt<3>[3]
+ T_194495[0] := UInt<3>(0)
+ T_194495[1] := UInt<3>(1)
+ T_194495[2] := UInt<3>(2)
+ wire T_194496 : UInt<2>[2]
+ T_194496[0] := UInt<2>(0)
+ T_194496[1] := UInt<2>(1)
+ wire T_194497 : UInt<2>[3]
+ T_194497[0] := UInt<2>(1)
+ T_194497[1] := UInt<2>(2)
+ T_194497[2] := UInt<2>(3)
+ wire T_194498 : UInt<2>[2]
+ T_194498[0] := UInt<2>(2)
+ T_194498[1] := UInt<2>(3)
+ wire T_194499 : UInt<2>[1]
+ T_194499[0] := UInt<2>(3)
+ wire T_194500 : UInt<3>[3]
+ T_194500[0] := UInt<3>(0)
+ T_194500[1] := UInt<3>(1)
+ T_194500[2] := UInt<3>(2)
+ wire T_194501 : UInt<2>[2]
+ T_194501[0] := UInt<2>(0)
+ T_194501[1] := UInt<2>(1)
+ wire T_194502 : UInt<2>[3]
+ T_194502[0] := UInt<2>(1)
+ T_194502[1] := UInt<2>(2)
+ T_194502[2] := UInt<2>(3)
+ wire T_194503 : UInt<2>[2]
+ T_194503[0] := UInt<2>(2)
+ T_194503[1] := UInt<2>(3)
+ wire T_194504 : UInt<2>[1]
+ T_194504[0] := UInt<2>(3)
+ wire T_194505 : UInt<3>[3]
+ T_194505[0] := UInt<3>(0)
+ T_194505[1] := UInt<3>(1)
+ T_194505[2] := UInt<3>(2)
+ wire T_194506 : UInt<2>[2]
+ T_194506[0] := UInt<2>(0)
+ T_194506[1] := UInt<2>(1)
+ wire T_194507 : UInt<2>[3]
+ T_194507[0] := UInt<2>(1)
+ T_194507[1] := UInt<2>(2)
+ T_194507[2] := UInt<2>(3)
+ wire T_194508 : UInt<2>[2]
+ T_194508[0] := UInt<2>(2)
+ T_194508[1] := UInt<2>(3)
+ wire T_194509 : UInt<2>[1]
+ T_194509[0] := UInt<2>(3)
+ wire T_194510 : UInt<3>[3]
+ T_194510[0] := UInt<3>(0)
+ T_194510[1] := UInt<3>(1)
+ T_194510[2] := UInt<3>(2)
+ wire T_194511 : UInt<2>[2]
+ T_194511[0] := UInt<2>(0)
+ T_194511[1] := UInt<2>(1)
+ wire T_194512 : UInt<2>[3]
+ T_194512[0] := UInt<2>(1)
+ T_194512[1] := UInt<2>(2)
+ T_194512[2] := UInt<2>(3)
+ wire T_194513 : UInt<2>[2]
+ T_194513[0] := UInt<2>(2)
+ T_194513[1] := UInt<2>(3)
+ wire T_194514 : UInt<2>[1]
+ T_194514[0] := UInt<2>(3)
+ wire T_194515 : UInt<3>[3]
+ T_194515[0] := UInt<3>(0)
+ T_194515[1] := UInt<3>(1)
+ T_194515[2] := UInt<3>(2)
+ wire T_194516 : UInt<2>[2]
+ T_194516[0] := UInt<2>(0)
+ T_194516[1] := UInt<2>(1)
+ wire T_194517 : UInt<2>[3]
+ T_194517[0] := UInt<2>(1)
+ T_194517[1] := UInt<2>(2)
+ T_194517[2] := UInt<2>(3)
+ wire T_194518 : UInt<2>[2]
+ T_194518[0] := UInt<2>(2)
+ T_194518[1] := UInt<2>(3)
+ wire T_194519 : UInt<2>[1]
+ T_194519[0] := UInt<2>(3)
+ wire T_194520 : UInt<3>[3]
+ T_194520[0] := UInt<3>(0)
+ T_194520[1] := UInt<3>(1)
+ T_194520[2] := UInt<3>(2)
+ wire T_194521 : UInt<2>[2]
+ T_194521[0] := UInt<2>(0)
+ T_194521[1] := UInt<2>(1)
+ wire T_194522 : UInt<2>[3]
+ T_194522[0] := UInt<2>(1)
+ T_194522[1] := UInt<2>(2)
+ T_194522[2] := UInt<2>(3)
+ wire T_194523 : UInt<2>[2]
+ T_194523[0] := UInt<2>(2)
+ T_194523[1] := UInt<2>(3)
+ wire T_194524 : UInt<2>[1]
+ T_194524[0] := UInt<2>(3)
+ wire T_194525 : UInt<3>[3]
+ T_194525[0] := UInt<3>(0)
+ T_194525[1] := UInt<3>(1)
+ T_194525[2] := UInt<3>(2)
+ wire T_194526 : UInt<2>[2]
+ T_194526[0] := UInt<2>(0)
+ T_194526[1] := UInt<2>(1)
+ wire T_194527 : UInt<2>[3]
+ T_194527[0] := UInt<2>(1)
+ T_194527[1] := UInt<2>(2)
+ T_194527[2] := UInt<2>(3)
+ wire T_194528 : UInt<2>[2]
+ T_194528[0] := UInt<2>(2)
+ T_194528[1] := UInt<2>(3)
+ wire T_194529 : UInt<2>[1]
+ T_194529[0] := UInt<2>(3)
+ wire T_194530 : UInt<3>[3]
+ T_194530[0] := UInt<3>(0)
+ T_194530[1] := UInt<3>(1)
+ T_194530[2] := UInt<3>(2)
+ wire T_194531 : UInt<2>[2]
+ T_194531[0] := UInt<2>(0)
+ T_194531[1] := UInt<2>(1)
+ wire T_194532 : UInt<2>[3]
+ T_194532[0] := UInt<2>(1)
+ T_194532[1] := UInt<2>(2)
+ T_194532[2] := UInt<2>(3)
+ wire T_194533 : UInt<2>[2]
+ T_194533[0] := UInt<2>(2)
+ T_194533[1] := UInt<2>(3)
+ wire T_194534 : UInt<2>[1]
+ T_194534[0] := UInt<2>(3)
+ wire T_194535 : UInt<3>[3]
+ T_194535[0] := UInt<3>(0)
+ T_194535[1] := UInt<3>(1)
+ T_194535[2] := UInt<3>(2)
+ wire T_194536 : UInt<2>[2]
+ T_194536[0] := UInt<2>(0)
+ T_194536[1] := UInt<2>(1)
+ wire T_194537 : UInt<2>[3]
+ T_194537[0] := UInt<2>(1)
+ T_194537[1] := UInt<2>(2)
+ T_194537[2] := UInt<2>(3)
+ wire T_194538 : UInt<2>[2]
+ T_194538[0] := UInt<2>(2)
+ T_194538[1] := UInt<2>(3)
+ wire T_194539 : UInt<2>[1]
+ T_194539[0] := UInt<2>(3)
+ wire T_194540 : UInt<3>[3]
+ T_194540[0] := UInt<3>(0)
+ T_194540[1] := UInt<3>(1)
+ T_194540[2] := UInt<3>(2)
+ wire T_194541 : UInt<2>[2]
+ T_194541[0] := UInt<2>(0)
+ T_194541[1] := UInt<2>(1)
+ wire T_194542 : UInt<2>[3]
+ T_194542[0] := UInt<2>(1)
+ T_194542[1] := UInt<2>(2)
+ T_194542[2] := UInt<2>(3)
+ wire T_194543 : UInt<2>[2]
+ T_194543[0] := UInt<2>(2)
+ T_194543[1] := UInt<2>(3)
+ wire T_194544 : UInt<2>[1]
+ T_194544[0] := UInt<2>(3)
+ wire T_194545 : UInt<3>[3]
+ T_194545[0] := UInt<3>(0)
+ T_194545[1] := UInt<3>(1)
+ T_194545[2] := UInt<3>(2)
+ wire T_194546 : UInt<2>[2]
+ T_194546[0] := UInt<2>(0)
+ T_194546[1] := UInt<2>(1)
+ wire T_194547 : UInt<2>[3]
+ T_194547[0] := UInt<2>(1)
+ T_194547[1] := UInt<2>(2)
+ T_194547[2] := UInt<2>(3)
+ wire T_194548 : UInt<2>[2]
+ T_194548[0] := UInt<2>(2)
+ T_194548[1] := UInt<2>(3)
+ wire T_194549 : UInt<2>[1]
+ T_194549[0] := UInt<2>(3)
+ wire T_194550 : UInt<3>[3]
+ T_194550[0] := UInt<3>(0)
+ T_194550[1] := UInt<3>(1)
+ T_194550[2] := UInt<3>(2)
+ wire T_194551 : UInt<2>[2]
+ T_194551[0] := UInt<2>(0)
+ T_194551[1] := UInt<2>(1)
+ wire T_194552 : UInt<2>[3]
+ T_194552[0] := UInt<2>(1)
+ T_194552[1] := UInt<2>(2)
+ T_194552[2] := UInt<2>(3)
+ wire T_194553 : UInt<2>[2]
+ T_194553[0] := UInt<2>(2)
+ T_194553[1] := UInt<2>(3)
+ wire T_194554 : UInt<2>[1]
+ T_194554[0] := UInt<2>(3)
+ inst icache of Frontend
+ inst dcache of HellaCache
+ inst ptw of PTW
+ inst core of Rocket
+ dcache.cpu.invalidate_lr := core.dmem.invalidate_lr
+ inst dcArb of HellaCacheArbiter
+ dcArb.requestor[0] <> ptw.mem__
+ dcArb.requestor[1] <> core.dmem
+ dcArb.mem__ <> dcache.cpu
+ ptw.requestor[0] <> icache.ptw
+ ptw.requestor[1] <> dcache.ptw
+ core.host <> host
+ core.imem <> icache.cpu
+ core.ptw <> ptw.dpath
+ inst T_194555 of FPU
+ T_194555 <> core.fpu
+ cached <> dcache.mem__
+ uncached <> icache.mem__
+ module Queue_165173 :
+ input enq : {flip ready : UInt<1>, valid : UInt<1>, bits : {rw : UInt<1>, addr : UInt<12>, data : UInt<64>}}
+ output deq : {flip ready : UInt<1>, valid : UInt<1>, bits : {rw : UInt<1>, addr : UInt<12>, data : UInt<64>}}
+ output count : UInt<2>
+
+ cmem ram : {rw : UInt<1>, addr : UInt<12>, data : UInt<64>}[2]
+ reg T_194556 : UInt<1>
+ onreset T_194556 := UInt<1>(0)
+ reg T_194557 : UInt<1>
+ onreset T_194557 := UInt<1>(0)
+ reg maybe_full : UInt<1>
+ onreset maybe_full := UInt<1>(0)
+ node ptr_match = eq(T_194556, T_194557)
+ node T_194558 = eq(maybe_full, UInt<1>(0))
+ node empty = and(ptr_match, T_194558)
+ node full = and(ptr_match, maybe_full)
+ node maybe_flow = and(UInt<1>(0), empty)
+ node do_flow = and(maybe_flow, deq.ready)
+ node T_194559 = and(enq.ready, enq.valid)
+ node T_194560 = eq(do_flow, UInt<1>(0))
+ node do_enq = and(T_194559, T_194560)
+ node T_194561 = and(deq.ready, deq.valid)
+ node T_194562 = eq(do_flow, UInt<1>(0))
+ node do_deq = and(T_194561, T_194562)
+ when do_enq :
+ accessor T_194563 = ram[T_194556]
+ T_194563 := enq.bits
+ node T_194564 = eq(T_194556, UInt<1>(1))
+ node T_194565 = and(UInt<1>(0), T_194564)
+ node T_194566 = addw(T_194556, UInt<1>(1))
+ wire T_194567 : UInt<1>
+ T_194567 := T_194566
+ when T_194565 : T_194567 := UInt<1>(0)
+ T_194556 := T_194567
+ when do_deq :
+ node T_194568 = eq(T_194557, UInt<1>(1))
+ node T_194569 = and(UInt<1>(0), T_194568)
+ node T_194570 = addw(T_194557, UInt<1>(1))
+ wire T_194571 : UInt<1>
+ T_194571 := T_194570
+ when T_194569 : T_194571 := UInt<1>(0)
+ T_194557 := T_194571
+
+ node T_194572 = neq(do_enq, do_deq)
+ when T_194572 : maybe_full := do_enq
+ node T_194573 = eq(empty, UInt<1>(0))
+ node T_194574 = and(UInt<1>(0), enq.valid)
+ node T_194575 = or(T_194573, T_194574)
+ deq.valid := T_194575
+ node T_194576 = eq(full, UInt<1>(0))
+ node T_194577 = and(UInt<1>(0), deq.ready)
+ node T_194578 = or(T_194576, T_194577)
+ enq.ready := T_194578
+ accessor T_194579 = ram[T_194557]
+ wire T_194580 : {rw : UInt<1>, addr : UInt<12>, data : UInt<64>}
+ T_194580 := T_194579
+ when maybe_flow : T_194580 := enq.bits
+ deq.bits := T_194580
+ node ptr_diff = subw(T_194556, T_194557)
+ node T_194581 = and(maybe_full, ptr_match)
+ node T_194582 = cat(T_194581, ptr_diff)
+ count := T_194582
+ module Queue_165245 :
+ input enq : {flip ready : UInt<1>, valid : UInt<1>, bits : UInt<64>}
+ output deq : {flip ready : UInt<1>, valid : UInt<1>, bits : UInt<64>}
+ output count : UInt<2>
+
+ cmem ram : UInt<64>[2]
+ reg T_194583 : UInt<1>
+ onreset T_194583 := UInt<1>(0)
+ reg T_194584 : UInt<1>
+ onreset T_194584 := UInt<1>(0)
+ reg maybe_full : UInt<1>
+ onreset maybe_full := UInt<1>(0)
+ node ptr_match = eq(T_194583, T_194584)
+ node T_194585 = eq(maybe_full, UInt<1>(0))
+ node empty = and(ptr_match, T_194585)
+ node full = and(ptr_match, maybe_full)
+ node maybe_flow = and(UInt<1>(0), empty)
+ node do_flow = and(maybe_flow, deq.ready)
+ node T_194586 = and(enq.ready, enq.valid)
+ node T_194587 = eq(do_flow, UInt<1>(0))
+ node do_enq = and(T_194586, T_194587)
+ node T_194588 = and(deq.ready, deq.valid)
+ node T_194589 = eq(do_flow, UInt<1>(0))
+ node do_deq = and(T_194588, T_194589)
+ when do_enq :
+ accessor T_194590 = ram[T_194583]
+ T_194590 := enq.bits
+ node T_194591 = eq(T_194583, UInt<1>(1))
+ node T_194592 = and(UInt<1>(0), T_194591)
+ node T_194593 = addw(T_194583, UInt<1>(1))
+ wire T_194594 : UInt<1>
+ T_194594 := T_194593
+ when T_194592 : T_194594 := UInt<1>(0)
+ T_194583 := T_194594
+ when do_deq :
+ node T_194595 = eq(T_194584, UInt<1>(1))
+ node T_194596 = and(UInt<1>(0), T_194595)
+ node T_194597 = addw(T_194584, UInt<1>(1))
+ wire T_194598 : UInt<1>
+ T_194598 := T_194597
+ when T_194596 : T_194598 := UInt<1>(0)
+ T_194584 := T_194598
+
+ node T_194599 = neq(do_enq, do_deq)
+ when T_194599 : maybe_full := do_enq
+ node T_194600 = eq(empty, UInt<1>(0))
+ node T_194601 = and(UInt<1>(0), enq.valid)
+ node T_194602 = or(T_194600, T_194601)
+ deq.valid := T_194602
+ node T_194603 = eq(full, UInt<1>(0))
+ node T_194604 = and(UInt<1>(0), deq.ready)
+ node T_194605 = or(T_194603, T_194604)
+ enq.ready := T_194605
+ accessor T_194606 = ram[T_194584]
+ wire T_194607 : UInt<64>
+ T_194607 := T_194606
+ when maybe_flow : T_194607 := enq.bits
+ deq.bits := T_194607
+ node ptr_diff = subw(T_194583, T_194584)
+ node T_194608 = and(maybe_full, ptr_match)
+ node T_194609 = cat(T_194608, ptr_diff)
+ count := T_194609
+ module Queue_165317 :
+ input enq : {flip ready : UInt<1>, valid : UInt<1>, bits : UInt<1>}
+ output deq : {flip ready : UInt<1>, valid : UInt<1>, bits : UInt<1>}
+ output count : UInt<2>
+
+ cmem ram : UInt<1>[2]
+ reg T_194610 : UInt<1>
+ onreset T_194610 := UInt<1>(0)
+ reg T_194611 : UInt<1>
+ onreset T_194611 := UInt<1>(0)
+ reg maybe_full : UInt<1>
+ onreset maybe_full := UInt<1>(0)
+ node ptr_match = eq(T_194610, T_194611)
+ node T_194612 = eq(maybe_full, UInt<1>(0))
+ node empty = and(ptr_match, T_194612)
+ node full = and(ptr_match, maybe_full)
+ node maybe_flow = and(UInt<1>(0), empty)
+ node do_flow = and(maybe_flow, deq.ready)
+ node T_194613 = and(enq.ready, enq.valid)
+ node T_194614 = eq(do_flow, UInt<1>(0))
+ node do_enq = and(T_194613, T_194614)
+ node T_194615 = and(deq.ready, deq.valid)
+ node T_194616 = eq(do_flow, UInt<1>(0))
+ node do_deq = and(T_194615, T_194616)
+ when do_enq :
+ accessor T_194617 = ram[T_194610]
+ T_194617 := enq.bits
+ node T_194618 = eq(T_194610, UInt<1>(1))
+ node T_194619 = and(UInt<1>(0), T_194618)
+ node T_194620 = addw(T_194610, UInt<1>(1))
+ wire T_194621 : UInt<1>
+ T_194621 := T_194620
+ when T_194619 : T_194621 := UInt<1>(0)
+ T_194610 := T_194621
+ when do_deq :
+ node T_194622 = eq(T_194611, UInt<1>(1))
+ node T_194623 = and(UInt<1>(0), T_194622)
+ node T_194624 = addw(T_194611, UInt<1>(1))
+ wire T_194625 : UInt<1>
+ T_194625 := T_194624
+ when T_194623 : T_194625 := UInt<1>(0)
+ T_194611 := T_194625
+
+ node T_194626 = neq(do_enq, do_deq)
+ when T_194626 : maybe_full := do_enq
+ node T_194627 = eq(empty, UInt<1>(0))
+ node T_194628 = and(UInt<1>(0), enq.valid)
+ node T_194629 = or(T_194627, T_194628)
+ deq.valid := T_194629
+ node T_194630 = eq(full, UInt<1>(0))
+ node T_194631 = and(UInt<1>(0), deq.ready)
+ node T_194632 = or(T_194630, T_194631)
+ enq.ready := T_194632
+ accessor T_194633 = ram[T_194611]
+ wire T_194634 : UInt<1>
+ T_194634 := T_194633
+ when maybe_flow : T_194634 := enq.bits
+ deq.bits := T_194634
+ node ptr_diff = subw(T_194610, T_194611)
+ node T_194635 = and(maybe_full, ptr_match)
+ node T_194636 = cat(T_194635, ptr_diff)
+ count := T_194636
+ module Queue_165389 :
+ input enq : {flip ready : UInt<1>, valid : UInt<1>, bits : UInt<1>}
+ output deq : {flip ready : UInt<1>, valid : UInt<1>, bits : UInt<1>}
+ output count : UInt<2>
+
+ cmem ram : UInt<1>[2]
+ reg T_194637 : UInt<1>
+ onreset T_194637 := UInt<1>(0)
+ reg T_194638 : UInt<1>
+ onreset T_194638 := UInt<1>(0)
+ reg maybe_full : UInt<1>
+ onreset maybe_full := UInt<1>(0)
+ node ptr_match = eq(T_194637, T_194638)
+ node T_194639 = eq(maybe_full, UInt<1>(0))
+ node empty = and(ptr_match, T_194639)
+ node full = and(ptr_match, maybe_full)
+ node maybe_flow = and(UInt<1>(0), empty)
+ node do_flow = and(maybe_flow, deq.ready)
+ node T_194640 = and(enq.ready, enq.valid)
+ node T_194641 = eq(do_flow, UInt<1>(0))
+ node do_enq = and(T_194640, T_194641)
+ node T_194642 = and(deq.ready, deq.valid)
+ node T_194643 = eq(do_flow, UInt<1>(0))
+ node do_deq = and(T_194642, T_194643)
+ when do_enq :
+ accessor T_194644 = ram[T_194637]
+ T_194644 := enq.bits
+ node T_194645 = eq(T_194637, UInt<1>(1))
+ node T_194646 = and(UInt<1>(0), T_194645)
+ node T_194647 = addw(T_194637, UInt<1>(1))
+ wire T_194648 : UInt<1>
+ T_194648 := T_194647
+ when T_194646 : T_194648 := UInt<1>(0)
+ T_194637 := T_194648
+ when do_deq :
+ node T_194649 = eq(T_194638, UInt<1>(1))
+ node T_194650 = and(UInt<1>(0), T_194649)
+ node T_194651 = addw(T_194638, UInt<1>(1))
+ wire T_194652 : UInt<1>
+ T_194652 := T_194651
+ when T_194650 : T_194652 := UInt<1>(0)
+ T_194638 := T_194652
+
+ node T_194653 = neq(do_enq, do_deq)
+ when T_194653 : maybe_full := do_enq
+ node T_194654 = eq(empty, UInt<1>(0))
+ node T_194655 = and(UInt<1>(0), enq.valid)
+ node T_194656 = or(T_194654, T_194655)
+ deq.valid := T_194656
+ node T_194657 = eq(full, UInt<1>(0))
+ node T_194658 = and(UInt<1>(0), deq.ready)
+ node T_194659 = or(T_194657, T_194658)
+ enq.ready := T_194659
+ accessor T_194660 = ram[T_194638]
+ wire T_194661 : UInt<1>
+ T_194661 := T_194660
+ when maybe_flow : T_194661 := enq.bits
+ deq.bits := T_194661
+ node ptr_diff = subw(T_194637, T_194638)
+ node T_194662 = and(maybe_full, ptr_match)
+ node T_194663 = cat(T_194662, ptr_diff)
+ count := T_194663
+ module MultiChannelTop :
+ output host : {clk : UInt<1>, clk_edge : UInt<1>, flip in : {flip ready : UInt<1>, valid : UInt<1>, bits : UInt<16>}, out : {flip ready : UInt<1>, valid : UInt<1>, bits : UInt<16>}, debug_stats_pcr : UInt<1>}
+ output mem_backup_ctrl : {flip en : UInt<1>, flip in_valid : UInt<1>, flip out_ready : UInt<1>, out_valid : UInt<1>}
+ output mem__ : {req_cmd : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr : UInt<26>, tag : UInt<5>, rw : UInt<1>}}, req_data : {flip ready : UInt<1>, valid : UInt<1>, bits : {data : UInt<128>}}, flip resp : {flip ready : UInt<1>, valid : UInt<1>, bits : {data : UInt<128>, tag : UInt<5>}}}[1]
+
+ wire mem__ : {req_cmd : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr : UInt<26>, tag : UInt<5>, rw : UInt<1>}}, req_data : {flip ready : UInt<1>, valid : UInt<1>, bits : {data : UInt<128>}}, flip resp : {flip ready : UInt<1>, valid : UInt<1>, bits : {data : UInt<128>, tag : UInt<5>}}}[1]
+ mem__[0] := T_194664
+ inst uncore of Uncore
+ inst T_194665 of RocketTile
+ T_194665.host.id := UInt<1>(0)
+ reg T_194666 : UInt<1>
+ T_194666 := uncore.htif[0].reset
+ reg T_194667 : UInt<1>
+ T_194667 := T_194666
+ T_194665.host.reset := T_194667
+ inst T_194668 of Queue_165173
+ T_194668.enq.valid := uncore.htif[0].pcr_req.valid
+ T_194668.enq.bits := uncore.htif[0].pcr_req.bits
+ uncore.htif[0].pcr_req.ready := T_194668.enq.ready
+ T_194665.host.pcr_req <> T_194668.deq
+ inst T_194669 of Queue_165245
+ T_194669.enq.valid := T_194665.host.pcr_rep.valid
+ T_194669.enq.bits := T_194665.host.pcr_rep.bits
+ T_194665.host.pcr_rep.ready := T_194669.enq.ready
+ uncore.htif[0].pcr_rep <> T_194669.deq
+ inst T_194670 of Queue_165317
+ T_194670.enq.valid := T_194665.host.ipi_req.valid
+ T_194670.enq.bits := T_194665.host.ipi_req.bits
+ T_194665.host.ipi_req.ready := T_194670.enq.ready
+ uncore.htif[0].ipi_req <> T_194670.deq
+ inst T_194671 of Queue_165389
+ T_194671.enq.valid := uncore.htif[0].ipi_rep.valid
+ T_194671.enq.bits := uncore.htif[0].ipi_rep.bits
+ uncore.htif[0].ipi_rep.ready := T_194671.enq.ready
+ T_194665.host.ipi_rep <> T_194671.deq
+ uncore.htif[0].debug_stats_pcr := T_194665.host.debug_stats_pcr
+ uncore.tiles_cached[0] <> T_194665.cached
+ uncore.tiles_uncached[0] <> T_194665.uncached
+ uncore.host <> host
+ uncore.mem__[0] <> mem__[0]
+ uncore.mem_backup_ctrl <> mem_backup_ctrl
+ module MemIOArbiter_165478 :
+ input inner : {req_cmd : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr : UInt<26>, tag : UInt<5>, rw : UInt<1>}}, req_data : {flip ready : UInt<1>, valid : UInt<1>, bits : {data : UInt<128>}}, flip resp : {flip ready : UInt<1>, valid : UInt<1>, bits : {data : UInt<128>, tag : UInt<5>}}}[1]
+ output outer : {req_cmd : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr : UInt<26>, tag : UInt<5>, rw : UInt<1>}}, req_data : {flip ready : UInt<1>, valid : UInt<1>, bits : {data : UInt<128>}}, flip resp : {flip ready : UInt<1>, valid : UInt<1>, bits : {data : UInt<128>, tag : UInt<5>}}}
+
+ wire inner : {req_cmd : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr : UInt<26>, tag : UInt<5>, rw : UInt<1>}}, req_data : {flip ready : UInt<1>, valid : UInt<1>, bits : {data : UInt<128>}}, flip resp : {flip ready : UInt<1>, valid : UInt<1>, bits : {data : UInt<128>, tag : UInt<5>}}}[1]
+ inner[0] := T_194672
+ inner[0] <> outer
+ module Top :
+ output host : {clk : UInt<1>, clk_edge : UInt<1>, flip in : {flip ready : UInt<1>, valid : UInt<1>, bits : UInt<16>}, out : {flip ready : UInt<1>, valid : UInt<1>, bits : UInt<16>}, debug_stats_pcr : UInt<1>}
+ output mem_backup_ctrl : {flip en : UInt<1>, flip in_valid : UInt<1>, flip out_ready : UInt<1>, out_valid : UInt<1>}
+ output mem__ : {req_cmd : {flip ready : UInt<1>, valid : UInt<1>, bits : {addr : UInt<26>, tag : UInt<5>, rw : UInt<1>}}, req_data : {flip ready : UInt<1>, valid : UInt<1>, bits : {data : UInt<128>}}, flip resp : {flip ready : UInt<1>, valid : UInt<1>, bits : {data : UInt<128>, tag : UInt<5>}}}
+
+ inst temp of MultiChannelTop
+ inst arb of MemIOArbiter_165478
+ arb.inner[0] <> temp.mem__[0]
+ mem__ <> arb.outer
+ mem_backup_ctrl <> temp.mem_backup_ctrl
+ host <> temp.host