dec update

This commit is contained in:
​Laraib Khan 2020-11-24 17:21:01 +05:00
parent e4ec02558c
commit ab0b53b11f
9 changed files with 3563 additions and 3565 deletions

View File

@ -1468,6 +1468,12 @@
"~el2_dec_decode_ctl|el2_dec_decode_ctl>io_dec_i0_brp_bits_hist" "~el2_dec_decode_ctl|el2_dec_decode_ctl>io_dec_i0_brp_bits_hist"
] ]
}, },
{
"class":"logger.LogLevelAnnotation",
"globalLogLevel":{
}
},
{ {
"class":"firrtl.EmitCircuitAnnotation", "class":"firrtl.EmitCircuitAnnotation",
"emitter":"firrtl.VerilogEmitter" "emitter":"firrtl.VerilogEmitter"

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -66855,11 +66855,11 @@ circuit el2_swerv_wrapper :
wire x_t_in : {legal : UInt<1>, icaf : UInt<1>, icaf_f1 : UInt<1>, icaf_type : UInt<2>, fence_i : UInt<1>, i0trigger : UInt<4>, pmu_i0_itype : UInt<4>, pmu_i0_br_unpred : UInt<1>, pmu_divide : UInt<1>, pmu_lsu_misaligned : UInt<1>} @[el2_dec_decode_ctl.scala 133:20] wire x_t_in : {legal : UInt<1>, icaf : UInt<1>, icaf_f1 : UInt<1>, icaf_type : UInt<2>, fence_i : UInt<1>, i0trigger : UInt<4>, pmu_i0_itype : UInt<4>, pmu_i0_br_unpred : UInt<1>, pmu_divide : UInt<1>, pmu_lsu_misaligned : UInt<1>} @[el2_dec_decode_ctl.scala 133:20]
wire r_t : {legal : UInt<1>, icaf : UInt<1>, icaf_f1 : UInt<1>, icaf_type : UInt<2>, fence_i : UInt<1>, i0trigger : UInt<4>, pmu_i0_itype : UInt<4>, pmu_i0_br_unpred : UInt<1>, pmu_divide : UInt<1>, pmu_lsu_misaligned : UInt<1>} @[el2_dec_decode_ctl.scala 134:17] wire r_t : {legal : UInt<1>, icaf : UInt<1>, icaf_f1 : UInt<1>, icaf_type : UInt<2>, fence_i : UInt<1>, i0trigger : UInt<4>, pmu_i0_itype : UInt<4>, pmu_i0_br_unpred : UInt<1>, pmu_divide : UInt<1>, pmu_lsu_misaligned : UInt<1>} @[el2_dec_decode_ctl.scala 134:17]
wire r_t_in : {legal : UInt<1>, icaf : UInt<1>, icaf_f1 : UInt<1>, icaf_type : UInt<2>, fence_i : UInt<1>, i0trigger : UInt<4>, pmu_i0_itype : UInt<4>, pmu_i0_br_unpred : UInt<1>, pmu_divide : UInt<1>, pmu_lsu_misaligned : UInt<1>} @[el2_dec_decode_ctl.scala 135:23] wire r_t_in : {legal : UInt<1>, icaf : UInt<1>, icaf_f1 : UInt<1>, icaf_type : UInt<2>, fence_i : UInt<1>, i0trigger : UInt<4>, pmu_i0_itype : UInt<4>, pmu_i0_br_unpred : UInt<1>, pmu_divide : UInt<1>, pmu_lsu_misaligned : UInt<1>} @[el2_dec_decode_ctl.scala 135:23]
wire d_d : {i0rd : UInt<5>, i0load : UInt<1>, i0store : UInt<1>, i0div : UInt<1>, i0v : UInt<1>, i0valid : UInt<1>, csrwen : UInt<1>, csrwonly : UInt<1>, csrwaddr : UInt<12>} @[el2_dec_decode_ctl.scala 136:17] wire d_d : {valid : UInt<1>, bits : {i0rd : UInt<5>, i0load : UInt<1>, i0store : UInt<1>, i0div : UInt<1>, i0v : UInt<1>, csrwen : UInt<1>, csrwonly : UInt<1>, csrwaddr : UInt<12>}} @[el2_dec_decode_ctl.scala 136:17]
wire x_d : {i0rd : UInt<5>, i0load : UInt<1>, i0store : UInt<1>, i0div : UInt<1>, i0v : UInt<1>, i0valid : UInt<1>, csrwen : UInt<1>, csrwonly : UInt<1>, csrwaddr : UInt<12>} @[el2_dec_decode_ctl.scala 137:17] wire x_d : {valid : UInt<1>, bits : {i0rd : UInt<5>, i0load : UInt<1>, i0store : UInt<1>, i0div : UInt<1>, i0v : UInt<1>, csrwen : UInt<1>, csrwonly : UInt<1>, csrwaddr : UInt<12>}} @[el2_dec_decode_ctl.scala 137:17]
wire r_d : {i0rd : UInt<5>, i0load : UInt<1>, i0store : UInt<1>, i0div : UInt<1>, i0v : UInt<1>, i0valid : UInt<1>, csrwen : UInt<1>, csrwonly : UInt<1>, csrwaddr : UInt<12>} @[el2_dec_decode_ctl.scala 138:17] wire r_d : {valid : UInt<1>, bits : {i0rd : UInt<5>, i0load : UInt<1>, i0store : UInt<1>, i0div : UInt<1>, i0v : UInt<1>, csrwen : UInt<1>, csrwonly : UInt<1>, csrwaddr : UInt<12>}} @[el2_dec_decode_ctl.scala 138:17]
wire r_d_in : {i0rd : UInt<5>, i0load : UInt<1>, i0store : UInt<1>, i0div : UInt<1>, i0v : UInt<1>, i0valid : UInt<1>, csrwen : UInt<1>, csrwonly : UInt<1>, csrwaddr : UInt<12>} @[el2_dec_decode_ctl.scala 139:20] wire r_d_in : {valid : UInt<1>, bits : {i0rd : UInt<5>, i0load : UInt<1>, i0store : UInt<1>, i0div : UInt<1>, i0v : UInt<1>, csrwen : UInt<1>, csrwonly : UInt<1>, csrwaddr : UInt<12>}} @[el2_dec_decode_ctl.scala 139:20]
wire wbd : {i0rd : UInt<5>, i0load : UInt<1>, i0store : UInt<1>, i0div : UInt<1>, i0v : UInt<1>, i0valid : UInt<1>, csrwen : UInt<1>, csrwonly : UInt<1>, csrwaddr : UInt<12>} @[el2_dec_decode_ctl.scala 140:17] wire wbd : {valid : UInt<1>, bits : {i0rd : UInt<5>, i0load : UInt<1>, i0store : UInt<1>, i0div : UInt<1>, i0v : UInt<1>, csrwen : UInt<1>, csrwonly : UInt<1>, csrwaddr : UInt<12>}} @[el2_dec_decode_ctl.scala 140:17]
wire i0_d_c : {mul : UInt<1>, load : UInt<1>, alu : UInt<1>} @[el2_dec_decode_ctl.scala 141:20] wire i0_d_c : {mul : UInt<1>, load : UInt<1>, alu : UInt<1>} @[el2_dec_decode_ctl.scala 141:20]
wire i0_rs1_class_d : {mul : UInt<1>, load : UInt<1>, alu : UInt<1>} @[el2_dec_decode_ctl.scala 142:28] wire i0_rs1_class_d : {mul : UInt<1>, load : UInt<1>, alu : UInt<1>} @[el2_dec_decode_ctl.scala 142:28]
wire i0_rs2_class_d : {mul : UInt<1>, load : UInt<1>, alu : UInt<1>} @[el2_dec_decode_ctl.scala 143:28] wire i0_rs2_class_d : {mul : UInt<1>, load : UInt<1>, alu : UInt<1>} @[el2_dec_decode_ctl.scala 143:28]
@ -67287,14 +67287,14 @@ circuit el2_swerv_wrapper :
cam_write <= io.lsu_nonblock_load_valid_m @[el2_dec_decode_ctl.scala 305:25] cam_write <= io.lsu_nonblock_load_valid_m @[el2_dec_decode_ctl.scala 305:25]
node cam_write_tag = bits(io.lsu_nonblock_load_tag_m, 1, 0) @[el2_dec_decode_ctl.scala 306:54] node cam_write_tag = bits(io.lsu_nonblock_load_tag_m, 1, 0) @[el2_dec_decode_ctl.scala 306:54]
node cam_data_reset = or(io.lsu_nonblock_load_data_valid, io.lsu_nonblock_load_data_error) @[el2_dec_decode_ctl.scala 311:63] node cam_data_reset = or(io.lsu_nonblock_load_data_valid, io.lsu_nonblock_load_data_error) @[el2_dec_decode_ctl.scala 311:63]
node _T_89 = bits(x_d.i0load, 0, 0) @[el2_dec_decode_ctl.scala 314:43] node _T_89 = bits(x_d.bits.i0load, 0, 0) @[el2_dec_decode_ctl.scala 314:48]
node nonblock_load_rd = mux(_T_89, x_d.i0rd, UInt<5>("h00")) @[el2_dec_decode_ctl.scala 314:31] node nonblock_load_rd = mux(_T_89, x_d.bits.i0rd, UInt<5>("h00")) @[el2_dec_decode_ctl.scala 314:31]
node _T_90 = bits(i0_r_ctl_en, 0, 0) @[el2_dec_decode_ctl.scala 318:116] node _T_90 = bits(i0_r_ctl_en, 0, 0) @[el2_dec_decode_ctl.scala 318:116]
reg nonblock_load_valid_m_delay : UInt, io.active_clk with : (reset => (reset, UInt<1>("h00"))) @[Reg.scala 27:20] reg nonblock_load_valid_m_delay : UInt, io.active_clk with : (reset => (reset, UInt<1>("h00"))) @[Reg.scala 27:20]
when _T_90 : @[Reg.scala 28:19] when _T_90 : @[Reg.scala 28:19]
nonblock_load_valid_m_delay <= io.lsu_nonblock_load_valid_m @[Reg.scala 28:23] nonblock_load_valid_m_delay <= io.lsu_nonblock_load_valid_m @[Reg.scala 28:23]
skip @[Reg.scala 28:19] skip @[Reg.scala 28:19]
node i0_load_kill_wen_r = and(nonblock_load_valid_m_delay, r_d.i0load) @[el2_dec_decode_ctl.scala 319:56] node i0_load_kill_wen_r = and(nonblock_load_valid_m_delay, r_d.bits.i0load) @[el2_dec_decode_ctl.scala 319:56]
node _T_91 = eq(io.lsu_nonblock_load_inv_tag_r, cam[0].bits.tag) @[el2_dec_decode_ctl.scala 321:66] node _T_91 = eq(io.lsu_nonblock_load_inv_tag_r, cam[0].bits.tag) @[el2_dec_decode_ctl.scala 321:66]
node _T_92 = and(io.lsu_nonblock_load_inv_r, _T_91) @[el2_dec_decode_ctl.scala 321:45] node _T_92 = and(io.lsu_nonblock_load_inv_r, _T_91) @[el2_dec_decode_ctl.scala 321:45]
node _T_93 = and(_T_92, cam[0].valid) @[el2_dec_decode_ctl.scala 321:87] node _T_93 = and(_T_92, cam[0].valid) @[el2_dec_decode_ctl.scala 321:87]
@ -67328,17 +67328,17 @@ circuit el2_swerv_wrapper :
cam_in[0].bits.tag <= cam_write_tag @[el2_dec_decode_ctl.scala 332:32] cam_in[0].bits.tag <= cam_write_tag @[el2_dec_decode_ctl.scala 332:32]
cam_in[0].bits.rd <= nonblock_load_rd @[el2_dec_decode_ctl.scala 333:32] cam_in[0].bits.rd <= nonblock_load_rd @[el2_dec_decode_ctl.scala 333:32]
skip @[el2_dec_decode_ctl.scala 329:28] skip @[el2_dec_decode_ctl.scala 329:28]
else : @[el2_dec_decode_ctl.scala 334:126] else : @[el2_dec_decode_ctl.scala 334:131]
node _T_101 = bits(cam_inv_reset_val[0], 0, 0) @[el2_dec_decode_ctl.scala 334:37] node _T_101 = bits(cam_inv_reset_val[0], 0, 0) @[el2_dec_decode_ctl.scala 334:37]
node _T_102 = bits(i0_wen_r, 0, 0) @[el2_dec_decode_ctl.scala 334:57] node _T_102 = bits(i0_wen_r, 0, 0) @[el2_dec_decode_ctl.scala 334:57]
node _T_103 = eq(r_d_in.i0rd, cam[0].bits.rd) @[el2_dec_decode_ctl.scala 334:80] node _T_103 = eq(r_d_in.bits.i0rd, cam[0].bits.rd) @[el2_dec_decode_ctl.scala 334:85]
node _T_104 = and(_T_102, _T_103) @[el2_dec_decode_ctl.scala 334:64] node _T_104 = and(_T_102, _T_103) @[el2_dec_decode_ctl.scala 334:64]
node _T_105 = bits(cam[0].bits.wb, 0, 0) @[el2_dec_decode_ctl.scala 334:118] node _T_105 = bits(cam[0].bits.wb, 0, 0) @[el2_dec_decode_ctl.scala 334:123]
node _T_106 = and(_T_104, _T_105) @[el2_dec_decode_ctl.scala 334:100] node _T_106 = and(_T_104, _T_105) @[el2_dec_decode_ctl.scala 334:105]
node _T_107 = or(_T_101, _T_106) @[el2_dec_decode_ctl.scala 334:44] node _T_107 = or(_T_101, _T_106) @[el2_dec_decode_ctl.scala 334:44]
when _T_107 : @[el2_dec_decode_ctl.scala 334:126] when _T_107 : @[el2_dec_decode_ctl.scala 334:131]
cam_in[0].valid <= UInt<1>("h00") @[el2_dec_decode_ctl.scala 335:23] cam_in[0].valid <= UInt<1>("h00") @[el2_dec_decode_ctl.scala 335:23]
skip @[el2_dec_decode_ctl.scala 334:126] skip @[el2_dec_decode_ctl.scala 334:131]
else : @[el2_dec_decode_ctl.scala 336:16] else : @[el2_dec_decode_ctl.scala 336:16]
cam_in[0].bits.rd <= cam[0].bits.rd @[el2_dec_decode_ctl.scala 337:22] cam_in[0].bits.rd <= cam[0].bits.rd @[el2_dec_decode_ctl.scala 337:22]
cam_in[0].bits.tag <= cam[0].bits.tag @[el2_dec_decode_ctl.scala 337:22] cam_in[0].bits.tag <= cam[0].bits.tag @[el2_dec_decode_ctl.scala 337:22]
@ -67406,17 +67406,17 @@ circuit el2_swerv_wrapper :
cam_in[1].bits.tag <= cam_write_tag @[el2_dec_decode_ctl.scala 332:32] cam_in[1].bits.tag <= cam_write_tag @[el2_dec_decode_ctl.scala 332:32]
cam_in[1].bits.rd <= nonblock_load_rd @[el2_dec_decode_ctl.scala 333:32] cam_in[1].bits.rd <= nonblock_load_rd @[el2_dec_decode_ctl.scala 333:32]
skip @[el2_dec_decode_ctl.scala 329:28] skip @[el2_dec_decode_ctl.scala 329:28]
else : @[el2_dec_decode_ctl.scala 334:126] else : @[el2_dec_decode_ctl.scala 334:131]
node _T_127 = bits(cam_inv_reset_val[1], 0, 0) @[el2_dec_decode_ctl.scala 334:37] node _T_127 = bits(cam_inv_reset_val[1], 0, 0) @[el2_dec_decode_ctl.scala 334:37]
node _T_128 = bits(i0_wen_r, 0, 0) @[el2_dec_decode_ctl.scala 334:57] node _T_128 = bits(i0_wen_r, 0, 0) @[el2_dec_decode_ctl.scala 334:57]
node _T_129 = eq(r_d_in.i0rd, cam[1].bits.rd) @[el2_dec_decode_ctl.scala 334:80] node _T_129 = eq(r_d_in.bits.i0rd, cam[1].bits.rd) @[el2_dec_decode_ctl.scala 334:85]
node _T_130 = and(_T_128, _T_129) @[el2_dec_decode_ctl.scala 334:64] node _T_130 = and(_T_128, _T_129) @[el2_dec_decode_ctl.scala 334:64]
node _T_131 = bits(cam[1].bits.wb, 0, 0) @[el2_dec_decode_ctl.scala 334:118] node _T_131 = bits(cam[1].bits.wb, 0, 0) @[el2_dec_decode_ctl.scala 334:123]
node _T_132 = and(_T_130, _T_131) @[el2_dec_decode_ctl.scala 334:100] node _T_132 = and(_T_130, _T_131) @[el2_dec_decode_ctl.scala 334:105]
node _T_133 = or(_T_127, _T_132) @[el2_dec_decode_ctl.scala 334:44] node _T_133 = or(_T_127, _T_132) @[el2_dec_decode_ctl.scala 334:44]
when _T_133 : @[el2_dec_decode_ctl.scala 334:126] when _T_133 : @[el2_dec_decode_ctl.scala 334:131]
cam_in[1].valid <= UInt<1>("h00") @[el2_dec_decode_ctl.scala 335:23] cam_in[1].valid <= UInt<1>("h00") @[el2_dec_decode_ctl.scala 335:23]
skip @[el2_dec_decode_ctl.scala 334:126] skip @[el2_dec_decode_ctl.scala 334:131]
else : @[el2_dec_decode_ctl.scala 336:16] else : @[el2_dec_decode_ctl.scala 336:16]
cam_in[1].bits.rd <= cam[1].bits.rd @[el2_dec_decode_ctl.scala 337:22] cam_in[1].bits.rd <= cam[1].bits.rd @[el2_dec_decode_ctl.scala 337:22]
cam_in[1].bits.tag <= cam[1].bits.tag @[el2_dec_decode_ctl.scala 337:22] cam_in[1].bits.tag <= cam[1].bits.tag @[el2_dec_decode_ctl.scala 337:22]
@ -67484,17 +67484,17 @@ circuit el2_swerv_wrapper :
cam_in[2].bits.tag <= cam_write_tag @[el2_dec_decode_ctl.scala 332:32] cam_in[2].bits.tag <= cam_write_tag @[el2_dec_decode_ctl.scala 332:32]
cam_in[2].bits.rd <= nonblock_load_rd @[el2_dec_decode_ctl.scala 333:32] cam_in[2].bits.rd <= nonblock_load_rd @[el2_dec_decode_ctl.scala 333:32]
skip @[el2_dec_decode_ctl.scala 329:28] skip @[el2_dec_decode_ctl.scala 329:28]
else : @[el2_dec_decode_ctl.scala 334:126] else : @[el2_dec_decode_ctl.scala 334:131]
node _T_153 = bits(cam_inv_reset_val[2], 0, 0) @[el2_dec_decode_ctl.scala 334:37] node _T_153 = bits(cam_inv_reset_val[2], 0, 0) @[el2_dec_decode_ctl.scala 334:37]
node _T_154 = bits(i0_wen_r, 0, 0) @[el2_dec_decode_ctl.scala 334:57] node _T_154 = bits(i0_wen_r, 0, 0) @[el2_dec_decode_ctl.scala 334:57]
node _T_155 = eq(r_d_in.i0rd, cam[2].bits.rd) @[el2_dec_decode_ctl.scala 334:80] node _T_155 = eq(r_d_in.bits.i0rd, cam[2].bits.rd) @[el2_dec_decode_ctl.scala 334:85]
node _T_156 = and(_T_154, _T_155) @[el2_dec_decode_ctl.scala 334:64] node _T_156 = and(_T_154, _T_155) @[el2_dec_decode_ctl.scala 334:64]
node _T_157 = bits(cam[2].bits.wb, 0, 0) @[el2_dec_decode_ctl.scala 334:118] node _T_157 = bits(cam[2].bits.wb, 0, 0) @[el2_dec_decode_ctl.scala 334:123]
node _T_158 = and(_T_156, _T_157) @[el2_dec_decode_ctl.scala 334:100] node _T_158 = and(_T_156, _T_157) @[el2_dec_decode_ctl.scala 334:105]
node _T_159 = or(_T_153, _T_158) @[el2_dec_decode_ctl.scala 334:44] node _T_159 = or(_T_153, _T_158) @[el2_dec_decode_ctl.scala 334:44]
when _T_159 : @[el2_dec_decode_ctl.scala 334:126] when _T_159 : @[el2_dec_decode_ctl.scala 334:131]
cam_in[2].valid <= UInt<1>("h00") @[el2_dec_decode_ctl.scala 335:23] cam_in[2].valid <= UInt<1>("h00") @[el2_dec_decode_ctl.scala 335:23]
skip @[el2_dec_decode_ctl.scala 334:126] skip @[el2_dec_decode_ctl.scala 334:131]
else : @[el2_dec_decode_ctl.scala 336:16] else : @[el2_dec_decode_ctl.scala 336:16]
cam_in[2].bits.rd <= cam[2].bits.rd @[el2_dec_decode_ctl.scala 337:22] cam_in[2].bits.rd <= cam[2].bits.rd @[el2_dec_decode_ctl.scala 337:22]
cam_in[2].bits.tag <= cam[2].bits.tag @[el2_dec_decode_ctl.scala 337:22] cam_in[2].bits.tag <= cam[2].bits.tag @[el2_dec_decode_ctl.scala 337:22]
@ -67562,17 +67562,17 @@ circuit el2_swerv_wrapper :
cam_in[3].bits.tag <= cam_write_tag @[el2_dec_decode_ctl.scala 332:32] cam_in[3].bits.tag <= cam_write_tag @[el2_dec_decode_ctl.scala 332:32]
cam_in[3].bits.rd <= nonblock_load_rd @[el2_dec_decode_ctl.scala 333:32] cam_in[3].bits.rd <= nonblock_load_rd @[el2_dec_decode_ctl.scala 333:32]
skip @[el2_dec_decode_ctl.scala 329:28] skip @[el2_dec_decode_ctl.scala 329:28]
else : @[el2_dec_decode_ctl.scala 334:126] else : @[el2_dec_decode_ctl.scala 334:131]
node _T_179 = bits(cam_inv_reset_val[3], 0, 0) @[el2_dec_decode_ctl.scala 334:37] node _T_179 = bits(cam_inv_reset_val[3], 0, 0) @[el2_dec_decode_ctl.scala 334:37]
node _T_180 = bits(i0_wen_r, 0, 0) @[el2_dec_decode_ctl.scala 334:57] node _T_180 = bits(i0_wen_r, 0, 0) @[el2_dec_decode_ctl.scala 334:57]
node _T_181 = eq(r_d_in.i0rd, cam[3].bits.rd) @[el2_dec_decode_ctl.scala 334:80] node _T_181 = eq(r_d_in.bits.i0rd, cam[3].bits.rd) @[el2_dec_decode_ctl.scala 334:85]
node _T_182 = and(_T_180, _T_181) @[el2_dec_decode_ctl.scala 334:64] node _T_182 = and(_T_180, _T_181) @[el2_dec_decode_ctl.scala 334:64]
node _T_183 = bits(cam[3].bits.wb, 0, 0) @[el2_dec_decode_ctl.scala 334:118] node _T_183 = bits(cam[3].bits.wb, 0, 0) @[el2_dec_decode_ctl.scala 334:123]
node _T_184 = and(_T_182, _T_183) @[el2_dec_decode_ctl.scala 334:100] node _T_184 = and(_T_182, _T_183) @[el2_dec_decode_ctl.scala 334:105]
node _T_185 = or(_T_179, _T_184) @[el2_dec_decode_ctl.scala 334:44] node _T_185 = or(_T_179, _T_184) @[el2_dec_decode_ctl.scala 334:44]
when _T_185 : @[el2_dec_decode_ctl.scala 334:126] when _T_185 : @[el2_dec_decode_ctl.scala 334:131]
cam_in[3].valid <= UInt<1>("h00") @[el2_dec_decode_ctl.scala 335:23] cam_in[3].valid <= UInt<1>("h00") @[el2_dec_decode_ctl.scala 335:23]
skip @[el2_dec_decode_ctl.scala 334:126] skip @[el2_dec_decode_ctl.scala 334:131]
else : @[el2_dec_decode_ctl.scala 336:16] else : @[el2_dec_decode_ctl.scala 336:16]
cam_in[3].bits.rd <= cam[3].bits.rd @[el2_dec_decode_ctl.scala 337:22] cam_in[3].bits.rd <= cam[3].bits.rd @[el2_dec_decode_ctl.scala 337:22]
cam_in[3].bits.tag <= cam[3].bits.tag @[el2_dec_decode_ctl.scala 337:22] cam_in[3].bits.tag <= cam[3].bits.tag @[el2_dec_decode_ctl.scala 337:22]
@ -67608,8 +67608,8 @@ circuit el2_swerv_wrapper :
node _T_194 = and(_T_193, cam_raw[3].valid) @[el2_dec_decode_ctl.scala 348:71] node _T_194 = and(_T_193, cam_raw[3].valid) @[el2_dec_decode_ctl.scala 348:71]
nonblock_load_write[3] <= _T_194 @[el2_dec_decode_ctl.scala 348:28] nonblock_load_write[3] <= _T_194 @[el2_dec_decode_ctl.scala 348:28]
io.dec_nonblock_load_waddr <= UInt<5>("h00") @[el2_dec_decode_ctl.scala 351:29] io.dec_nonblock_load_waddr <= UInt<5>("h00") @[el2_dec_decode_ctl.scala 351:29]
node _T_195 = eq(r_d_in.i0rd, io.dec_nonblock_load_waddr) @[el2_dec_decode_ctl.scala 353:44] node _T_195 = eq(r_d_in.bits.i0rd, io.dec_nonblock_load_waddr) @[el2_dec_decode_ctl.scala 353:49]
node nonblock_load_cancel = and(_T_195, i0_wen_r) @[el2_dec_decode_ctl.scala 353:76] node nonblock_load_cancel = and(_T_195, i0_wen_r) @[el2_dec_decode_ctl.scala 353:81]
node _T_196 = or(nonblock_load_write[0], nonblock_load_write[1]) @[el2_dec_decode_ctl.scala 354:95] node _T_196 = or(nonblock_load_write[0], nonblock_load_write[1]) @[el2_dec_decode_ctl.scala 354:95]
node _T_197 = or(_T_196, nonblock_load_write[2]) @[el2_dec_decode_ctl.scala 354:95] node _T_197 = or(_T_196, nonblock_load_write[2]) @[el2_dec_decode_ctl.scala 354:95]
node _T_198 = or(_T_197, nonblock_load_write[3]) @[el2_dec_decode_ctl.scala 354:95] node _T_198 = or(_T_197, nonblock_load_write[3]) @[el2_dec_decode_ctl.scala 354:95]
@ -67914,18 +67914,18 @@ circuit el2_swerv_wrapper :
io.dec_csr_wen_unq_d <= _T_350 @[el2_dec_decode_ctl.scala 463:24] io.dec_csr_wen_unq_d <= _T_350 @[el2_dec_decode_ctl.scala 463:24]
node _T_351 = bits(io.dec_i0_instr_d, 31, 20) @[el2_dec_decode_ctl.scala 466:30] node _T_351 = bits(io.dec_i0_instr_d, 31, 20) @[el2_dec_decode_ctl.scala 466:30]
io.dec_csr_rdaddr_d <= _T_351 @[el2_dec_decode_ctl.scala 466:24] io.dec_csr_rdaddr_d <= _T_351 @[el2_dec_decode_ctl.scala 466:24]
io.dec_csr_wraddr_r <= r_d.csrwaddr @[el2_dec_decode_ctl.scala 467:23] io.dec_csr_wraddr_r <= r_d.bits.csrwaddr @[el2_dec_decode_ctl.scala 467:23]
node _T_352 = and(r_d.csrwen, r_d.i0valid) @[el2_dec_decode_ctl.scala 471:34] node _T_352 = and(r_d.bits.csrwen, r_d.valid) @[el2_dec_decode_ctl.scala 471:39]
node _T_353 = eq(io.dec_tlu_i0_kill_writeb_r, UInt<1>("h00")) @[el2_dec_decode_ctl.scala 471:50] node _T_353 = eq(io.dec_tlu_i0_kill_writeb_r, UInt<1>("h00")) @[el2_dec_decode_ctl.scala 471:53]
node _T_354 = and(_T_352, _T_353) @[el2_dec_decode_ctl.scala 471:48] node _T_354 = and(_T_352, _T_353) @[el2_dec_decode_ctl.scala 471:51]
io.dec_csr_wen_r <= _T_354 @[el2_dec_decode_ctl.scala 471:20] io.dec_csr_wen_r <= _T_354 @[el2_dec_decode_ctl.scala 471:20]
node _T_355 = eq(r_d.csrwaddr, UInt<10>("h0300")) @[el2_dec_decode_ctl.scala 474:45] node _T_355 = eq(r_d.bits.csrwaddr, UInt<10>("h0300")) @[el2_dec_decode_ctl.scala 474:50]
node _T_356 = eq(r_d.csrwaddr, UInt<10>("h0304")) @[el2_dec_decode_ctl.scala 474:75] node _T_356 = eq(r_d.bits.csrwaddr, UInt<10>("h0304")) @[el2_dec_decode_ctl.scala 474:85]
node _T_357 = or(_T_355, _T_356) @[el2_dec_decode_ctl.scala 474:59] node _T_357 = or(_T_355, _T_356) @[el2_dec_decode_ctl.scala 474:64]
node _T_358 = and(_T_357, r_d.csrwen) @[el2_dec_decode_ctl.scala 474:90] node _T_358 = and(_T_357, r_d.bits.csrwen) @[el2_dec_decode_ctl.scala 474:100]
node _T_359 = and(_T_358, r_d.i0valid) @[el2_dec_decode_ctl.scala 474:103] node _T_359 = and(_T_358, r_d.valid) @[el2_dec_decode_ctl.scala 474:118]
node _T_360 = eq(io.dec_tlu_i0_kill_writeb_wb, UInt<1>("h00")) @[el2_dec_decode_ctl.scala 474:119] node _T_360 = eq(io.dec_tlu_i0_kill_writeb_wb, UInt<1>("h00")) @[el2_dec_decode_ctl.scala 474:132]
node _T_361 = and(_T_359, _T_360) @[el2_dec_decode_ctl.scala 474:117] node _T_361 = and(_T_359, _T_360) @[el2_dec_decode_ctl.scala 474:130]
io.dec_csr_stall_int_ff <= _T_361 @[el2_dec_decode_ctl.scala 474:27] io.dec_csr_stall_int_ff <= _T_361 @[el2_dec_decode_ctl.scala 474:27]
reg csr_read_x : UInt<1>, io.active_clk with : (reset => (reset, UInt<1>("h00"))) @[el2_dec_decode_ctl.scala 476:52] reg csr_read_x : UInt<1>, io.active_clk with : (reset => (reset, UInt<1>("h00"))) @[el2_dec_decode_ctl.scala 476:52]
csr_read_x <= csr_read @[el2_dec_decode_ctl.scala 476:52] csr_read_x <= csr_read @[el2_dec_decode_ctl.scala 476:52]
@ -68072,11 +68072,11 @@ circuit el2_swerv_wrapper :
reg _T_429 : UInt, rvclkhdr_3.io.l1clk with : (reset => (reset, UInt<1>("h00"))) @[el2_lib.scala 514:16] reg _T_429 : UInt, rvclkhdr_3.io.l1clk with : (reset => (reset, UInt<1>("h00"))) @[el2_lib.scala 514:16]
_T_429 <= write_csr_data_in @[el2_lib.scala 514:16] _T_429 <= write_csr_data_in @[el2_lib.scala 514:16]
write_csr_data <= _T_429 @[el2_dec_decode_ctl.scala 508:18] write_csr_data <= _T_429 @[el2_dec_decode_ctl.scala 508:18]
node _T_430 = bits(r_d.csrwonly, 0, 0) @[el2_dec_decode_ctl.scala 514:44] node _T_430 = bits(r_d.bits.csrwonly, 0, 0) @[el2_dec_decode_ctl.scala 514:49]
node _T_431 = mux(_T_430, i0_result_corr_r, write_csr_data) @[el2_dec_decode_ctl.scala 514:30] node _T_431 = mux(_T_430, i0_result_corr_r, write_csr_data) @[el2_dec_decode_ctl.scala 514:30]
io.dec_csr_wrdata_r <= _T_431 @[el2_dec_decode_ctl.scala 514:24] io.dec_csr_wrdata_r <= _T_431 @[el2_dec_decode_ctl.scala 514:24]
node _T_432 = or(x_d.csrwonly, r_d.csrwonly) @[el2_dec_decode_ctl.scala 516:38] node _T_432 = or(x_d.bits.csrwonly, r_d.bits.csrwonly) @[el2_dec_decode_ctl.scala 516:43]
node prior_csr_write = or(_T_432, wbd.csrwonly) @[el2_dec_decode_ctl.scala 516:53] node prior_csr_write = or(_T_432, wbd.bits.csrwonly) @[el2_dec_decode_ctl.scala 516:63]
node _T_433 = bits(io.dbg_cmd_wrdata, 0, 0) @[el2_dec_decode_ctl.scala 518:67] node _T_433 = bits(io.dbg_cmd_wrdata, 0, 0) @[el2_dec_decode_ctl.scala 518:67]
node debug_fence_i = and(io.dec_debug_fence_d, _T_433) @[el2_dec_decode_ctl.scala 518:48] node debug_fence_i = and(io.dec_debug_fence_d, _T_433) @[el2_dec_decode_ctl.scala 518:48]
node _T_434 = bits(io.dbg_cmd_wrdata, 1, 1) @[el2_dec_decode_ctl.scala 519:67] node _T_434 = bits(io.dbg_cmd_wrdata, 1, 1) @[el2_dec_decode_ctl.scala 519:67]
@ -68196,8 +68196,8 @@ circuit el2_swerv_wrapper :
io.dec_pmu_postsync_stall <= _T_500 @[el2_dec_decode_ctl.scala 559:29] io.dec_pmu_postsync_stall <= _T_500 @[el2_dec_decode_ctl.scala 559:29]
node _T_501 = bits(presync_stall, 0, 0) @[el2_dec_decode_ctl.scala 560:46] node _T_501 = bits(presync_stall, 0, 0) @[el2_dec_decode_ctl.scala 560:46]
io.dec_pmu_presync_stall <= _T_501 @[el2_dec_decode_ctl.scala 560:29] io.dec_pmu_presync_stall <= _T_501 @[el2_dec_decode_ctl.scala 560:29]
node prior_inflight = or(x_d.i0valid, r_d.i0valid) @[el2_dec_decode_ctl.scala 564:41] node prior_inflight = or(x_d.valid, r_d.valid) @[el2_dec_decode_ctl.scala 564:41]
node prior_inflight_eff = mux(i0_dp.div, x_d.i0valid, prior_inflight) @[el2_dec_decode_ctl.scala 565:31] node prior_inflight_eff = mux(i0_dp.div, x_d.valid, prior_inflight) @[el2_dec_decode_ctl.scala 565:31]
node _T_502 = and(i0_presync, prior_inflight_eff) @[el2_dec_decode_ctl.scala 567:37] node _T_502 = and(i0_presync, prior_inflight_eff) @[el2_dec_decode_ctl.scala 567:37]
presync_stall <= _T_502 @[el2_dec_decode_ctl.scala 567:22] presync_stall <= _T_502 @[el2_dec_decode_ctl.scala 567:22]
reg _T_503 : UInt, rvclkhdr.io.l1clk with : (reset => (reset, UInt<1>("h00"))) @[el2_dec_decode_ctl.scala 568:53] reg _T_503 : UInt, rvclkhdr.io.l1clk with : (reset => (reset, UInt<1>("h00"))) @[el2_dec_decode_ctl.scala 568:53]
@ -68206,7 +68206,7 @@ circuit el2_swerv_wrapper :
node _T_504 = eq(i0_legal, UInt<1>("h00")) @[el2_dec_decode_ctl.scala 570:56] node _T_504 = eq(i0_legal, UInt<1>("h00")) @[el2_dec_decode_ctl.scala 570:56]
node _T_505 = or(i0_postsync, _T_504) @[el2_dec_decode_ctl.scala 570:54] node _T_505 = or(i0_postsync, _T_504) @[el2_dec_decode_ctl.scala 570:54]
node _T_506 = and(io.dec_i0_decode_d, _T_505) @[el2_dec_decode_ctl.scala 570:39] node _T_506 = and(io.dec_i0_decode_d, _T_505) @[el2_dec_decode_ctl.scala 570:39]
node _T_507 = and(postsync_stall, x_d.i0valid) @[el2_dec_decode_ctl.scala 570:88] node _T_507 = and(postsync_stall, x_d.valid) @[el2_dec_decode_ctl.scala 570:88]
node _T_508 = or(_T_506, _T_507) @[el2_dec_decode_ctl.scala 570:69] node _T_508 = or(_T_506, _T_507) @[el2_dec_decode_ctl.scala 570:69]
ps_stall_in <= _T_508 @[el2_dec_decode_ctl.scala 570:15] ps_stall_in <= _T_508 @[el2_dec_decode_ctl.scala 570:15]
node _T_509 = and(i0_exulegal_decode_d, i0_dp.alu) @[el2_dec_decode_ctl.scala 572:50] node _T_509 = and(i0_exulegal_decode_d, i0_dp.alu) @[el2_dec_decode_ctl.scala 572:50]
@ -68217,8 +68217,8 @@ circuit el2_swerv_wrapper :
mul_decode_d <= _T_511 @[el2_dec_decode_ctl.scala 575:16] mul_decode_d <= _T_511 @[el2_dec_decode_ctl.scala 575:16]
node _T_512 = and(i0_exulegal_decode_d, i0_dp.div) @[el2_dec_decode_ctl.scala 576:40] node _T_512 = and(i0_exulegal_decode_d, i0_dp.div) @[el2_dec_decode_ctl.scala 576:40]
div_decode_d <= _T_512 @[el2_dec_decode_ctl.scala 576:16] div_decode_d <= _T_512 @[el2_dec_decode_ctl.scala 576:16]
node _T_513 = eq(io.dec_tlu_flush_lower_wb, UInt<1>("h00")) @[el2_dec_decode_ctl.scala 578:47] node _T_513 = eq(io.dec_tlu_flush_lower_wb, UInt<1>("h00")) @[el2_dec_decode_ctl.scala 578:45]
node _T_514 = and(r_d.i0valid, _T_513) @[el2_dec_decode_ctl.scala 578:45] node _T_514 = and(r_d.valid, _T_513) @[el2_dec_decode_ctl.scala 578:43]
io.dec_tlu_i0_valid_r <= _T_514 @[el2_dec_decode_ctl.scala 578:29] io.dec_tlu_i0_valid_r <= _T_514 @[el2_dec_decode_ctl.scala 578:29]
d_t.legal <= i0_legal_decode_d @[el2_dec_decode_ctl.scala 581:26] d_t.legal <= i0_legal_decode_d @[el2_dec_decode_ctl.scala 581:26]
node _T_515 = and(i0_icaf_d, i0_legal_decode_d) @[el2_dec_decode_ctl.scala 582:40] node _T_515 = and(i0_icaf_d, i0_legal_decode_d) @[el2_dec_decode_ctl.scala 582:40]
@ -68355,7 +68355,7 @@ circuit el2_swerv_wrapper :
r_t_in.icaf_f1 <= r_t.icaf_f1 @[el2_dec_decode_ctl.scala 605:10] r_t_in.icaf_f1 <= r_t.icaf_f1 @[el2_dec_decode_ctl.scala 605:10]
r_t_in.icaf <= r_t.icaf @[el2_dec_decode_ctl.scala 605:10] r_t_in.icaf <= r_t.icaf @[el2_dec_decode_ctl.scala 605:10]
r_t_in.legal <= r_t.legal @[el2_dec_decode_ctl.scala 605:10] r_t_in.legal <= r_t.legal @[el2_dec_decode_ctl.scala 605:10]
node _T_536 = or(r_d.i0load, r_d.i0store) @[el2_dec_decode_ctl.scala 607:56] node _T_536 = or(r_d.bits.i0load, r_d.bits.i0store) @[el2_dec_decode_ctl.scala 607:61]
wire _T_537 : UInt<1>[4] @[el2_lib.scala 162:48] wire _T_537 : UInt<1>[4] @[el2_lib.scala 162:48]
_T_537[0] <= _T_536 @[el2_lib.scala 162:48] _T_537[0] <= _T_536 @[el2_lib.scala 162:48]
_T_537[1] <= _T_536 @[el2_lib.scala 162:48] _T_537[1] <= _T_536 @[el2_lib.scala 162:48]
@ -68364,8 +68364,8 @@ circuit el2_swerv_wrapper :
node _T_538 = cat(_T_537[0], _T_537[1]) @[Cat.scala 29:58] node _T_538 = cat(_T_537[0], _T_537[1]) @[Cat.scala 29:58]
node _T_539 = cat(_T_538, _T_537[2]) @[Cat.scala 29:58] node _T_539 = cat(_T_538, _T_537[2]) @[Cat.scala 29:58]
node _T_540 = cat(_T_539, _T_537[3]) @[Cat.scala 29:58] node _T_540 = cat(_T_539, _T_537[3]) @[Cat.scala 29:58]
node _T_541 = and(_T_540, lsu_trigger_match_r) @[el2_dec_decode_ctl.scala 607:72] node _T_541 = and(_T_540, lsu_trigger_match_r) @[el2_dec_decode_ctl.scala 607:82]
node _T_542 = or(_T_541, r_t.i0trigger) @[el2_dec_decode_ctl.scala 607:95] node _T_542 = or(_T_541, r_t.i0trigger) @[el2_dec_decode_ctl.scala 607:105]
r_t_in.i0trigger <= _T_542 @[el2_dec_decode_ctl.scala 607:33] r_t_in.i0trigger <= _T_542 @[el2_dec_decode_ctl.scala 607:33]
r_t_in.pmu_lsu_misaligned <= lsu_pmu_misaligned_r @[el2_dec_decode_ctl.scala 608:33] r_t_in.pmu_lsu_misaligned <= lsu_pmu_misaligned_r @[el2_dec_decode_ctl.scala 608:33]
node _T_543 = bits(io.dec_tlu_flush_lower_wb, 0, 0) @[el2_dec_decode_ctl.scala 610:35] node _T_543 = bits(io.dec_tlu_flush_lower_wb, 0, 0) @[el2_dec_decode_ctl.scala 610:35]
@ -68402,7 +68402,7 @@ circuit el2_swerv_wrapper :
io.dec_tlu_packet_r.icaf_f1 <= r_t_in.icaf_f1 @[el2_dec_decode_ctl.scala 612:39] io.dec_tlu_packet_r.icaf_f1 <= r_t_in.icaf_f1 @[el2_dec_decode_ctl.scala 612:39]
io.dec_tlu_packet_r.icaf <= r_t_in.icaf @[el2_dec_decode_ctl.scala 612:39] io.dec_tlu_packet_r.icaf <= r_t_in.icaf @[el2_dec_decode_ctl.scala 612:39]
io.dec_tlu_packet_r.legal <= r_t_in.legal @[el2_dec_decode_ctl.scala 612:39] io.dec_tlu_packet_r.legal <= r_t_in.legal @[el2_dec_decode_ctl.scala 612:39]
node _T_545 = and(r_d.i0div, r_d.i0valid) @[el2_dec_decode_ctl.scala 613:53] node _T_545 = and(r_d.bits.i0div, r_d.valid) @[el2_dec_decode_ctl.scala 613:58]
io.dec_tlu_packet_r.pmu_divide <= _T_545 @[el2_dec_decode_ctl.scala 613:39] io.dec_tlu_packet_r.pmu_divide <= _T_545 @[el2_dec_decode_ctl.scala 613:39]
reg _T_546 : UInt<1>, rvclkhdr.io.l1clk with : (reset => (reset, UInt<1>("h00"))) @[el2_dec_decode_ctl.scala 616:52] reg _T_546 : UInt<1>, rvclkhdr.io.l1clk with : (reset => (reset, UInt<1>("h00"))) @[el2_dec_decode_ctl.scala 616:52]
_T_546 <= io.exu_flush_final @[el2_dec_decode_ctl.scala 616:52] _T_546 <= io.exu_flush_final @[el2_dec_decode_ctl.scala 616:52]
@ -68722,22 +68722,22 @@ circuit el2_swerv_wrapper :
io.dec_data_en <= _T_720 @[el2_dec_decode_ctl.scala 662:27] io.dec_data_en <= _T_720 @[el2_dec_decode_ctl.scala 662:27]
node _T_721 = cat(i0_x_ctl_en, i0_r_ctl_en) @[Cat.scala 29:58] node _T_721 = cat(i0_x_ctl_en, i0_r_ctl_en) @[Cat.scala 29:58]
io.dec_ctl_en <= _T_721 @[el2_dec_decode_ctl.scala 663:27] io.dec_ctl_en <= _T_721 @[el2_dec_decode_ctl.scala 663:27]
d_d.i0rd <= i0r.rd @[el2_dec_decode_ctl.scala 665:29] d_d.bits.i0rd <= i0r.rd @[el2_dec_decode_ctl.scala 665:34]
node _T_722 = and(i0_rd_en_d, i0_legal_decode_d) @[el2_dec_decode_ctl.scala 666:45] node _T_722 = and(i0_rd_en_d, i0_legal_decode_d) @[el2_dec_decode_ctl.scala 666:50]
d_d.i0v <= _T_722 @[el2_dec_decode_ctl.scala 666:29] d_d.bits.i0v <= _T_722 @[el2_dec_decode_ctl.scala 666:34]
d_d.i0valid <= io.dec_i0_decode_d @[el2_dec_decode_ctl.scala 667:29] d_d.valid <= io.dec_i0_decode_d @[el2_dec_decode_ctl.scala 667:27]
node _T_723 = and(i0_dp.load, i0_legal_decode_d) @[el2_dec_decode_ctl.scala 669:45] node _T_723 = and(i0_dp.load, i0_legal_decode_d) @[el2_dec_decode_ctl.scala 669:50]
d_d.i0load <= _T_723 @[el2_dec_decode_ctl.scala 669:29] d_d.bits.i0load <= _T_723 @[el2_dec_decode_ctl.scala 669:34]
node _T_724 = and(i0_dp.store, i0_legal_decode_d) @[el2_dec_decode_ctl.scala 670:45] node _T_724 = and(i0_dp.store, i0_legal_decode_d) @[el2_dec_decode_ctl.scala 670:50]
d_d.i0store <= _T_724 @[el2_dec_decode_ctl.scala 670:29] d_d.bits.i0store <= _T_724 @[el2_dec_decode_ctl.scala 670:34]
node _T_725 = and(i0_dp.div, i0_legal_decode_d) @[el2_dec_decode_ctl.scala 671:45] node _T_725 = and(i0_dp.div, i0_legal_decode_d) @[el2_dec_decode_ctl.scala 671:50]
d_d.i0div <= _T_725 @[el2_dec_decode_ctl.scala 671:29] d_d.bits.i0div <= _T_725 @[el2_dec_decode_ctl.scala 671:34]
node _T_726 = and(io.dec_csr_wen_unq_d, i0_legal_decode_d) @[el2_dec_decode_ctl.scala 673:56] node _T_726 = and(io.dec_csr_wen_unq_d, i0_legal_decode_d) @[el2_dec_decode_ctl.scala 673:61]
d_d.csrwen <= _T_726 @[el2_dec_decode_ctl.scala 673:29] d_d.bits.csrwen <= _T_726 @[el2_dec_decode_ctl.scala 673:34]
node _T_727 = and(i0_csr_write_only_d, io.dec_i0_decode_d) @[el2_dec_decode_ctl.scala 674:53] node _T_727 = and(i0_csr_write_only_d, io.dec_i0_decode_d) @[el2_dec_decode_ctl.scala 674:58]
d_d.csrwonly <= _T_727 @[el2_dec_decode_ctl.scala 674:29] d_d.bits.csrwonly <= _T_727 @[el2_dec_decode_ctl.scala 674:34]
node _T_728 = bits(io.dec_i0_instr_d, 31, 20) @[el2_dec_decode_ctl.scala 675:35] node _T_728 = bits(io.dec_i0_instr_d, 31, 20) @[el2_dec_decode_ctl.scala 675:40]
d_d.csrwaddr <= _T_728 @[el2_dec_decode_ctl.scala 675:29] d_d.bits.csrwaddr <= _T_728 @[el2_dec_decode_ctl.scala 675:34]
node _T_729 = bits(i0_x_ctl_en, 0, 0) @[el2_dec_decode_ctl.scala 677:34] node _T_729 = bits(i0_x_ctl_en, 0, 0) @[el2_dec_decode_ctl.scala 677:34]
inst rvclkhdr_7 of rvclkhdr_668 @[el2_lib.scala 518:23] inst rvclkhdr_7 of rvclkhdr_668 @[el2_lib.scala 518:23]
rvclkhdr_7.clock <= clock rvclkhdr_7.clock <= clock
@ -68745,55 +68745,55 @@ circuit el2_swerv_wrapper :
rvclkhdr_7.io.clk <= clock @[el2_lib.scala 520:18] rvclkhdr_7.io.clk <= clock @[el2_lib.scala 520:18]
rvclkhdr_7.io.en <= _T_729 @[el2_lib.scala 521:17] rvclkhdr_7.io.en <= _T_729 @[el2_lib.scala 521:17]
rvclkhdr_7.io.scan_mode <= io.scan_mode @[el2_lib.scala 522:24] rvclkhdr_7.io.scan_mode <= io.scan_mode @[el2_lib.scala 522:24]
wire _T_730 : {i0rd : UInt<5>, i0load : UInt<1>, i0store : UInt<1>, i0div : UInt<1>, i0v : UInt<1>, i0valid : UInt<1>, csrwen : UInt<1>, csrwonly : UInt<1>, csrwaddr : UInt<12>} @[el2_lib.scala 524:33] wire _T_730 : {valid : UInt<1>, bits : {i0rd : UInt<5>, i0load : UInt<1>, i0store : UInt<1>, i0div : UInt<1>, i0v : UInt<1>, csrwen : UInt<1>, csrwonly : UInt<1>, csrwaddr : UInt<12>}} @[el2_lib.scala 524:33]
_T_730.csrwaddr <= UInt<12>("h00") @[el2_lib.scala 524:33] _T_730.bits.csrwaddr <= UInt<12>("h00") @[el2_lib.scala 524:33]
_T_730.csrwonly <= UInt<1>("h00") @[el2_lib.scala 524:33] _T_730.bits.csrwonly <= UInt<1>("h00") @[el2_lib.scala 524:33]
_T_730.csrwen <= UInt<1>("h00") @[el2_lib.scala 524:33] _T_730.bits.csrwen <= UInt<1>("h00") @[el2_lib.scala 524:33]
_T_730.i0valid <= UInt<1>("h00") @[el2_lib.scala 524:33] _T_730.bits.i0v <= UInt<1>("h00") @[el2_lib.scala 524:33]
_T_730.i0v <= UInt<1>("h00") @[el2_lib.scala 524:33] _T_730.bits.i0div <= UInt<1>("h00") @[el2_lib.scala 524:33]
_T_730.i0div <= UInt<1>("h00") @[el2_lib.scala 524:33] _T_730.bits.i0store <= UInt<1>("h00") @[el2_lib.scala 524:33]
_T_730.i0store <= UInt<1>("h00") @[el2_lib.scala 524:33] _T_730.bits.i0load <= UInt<1>("h00") @[el2_lib.scala 524:33]
_T_730.i0load <= UInt<1>("h00") @[el2_lib.scala 524:33] _T_730.bits.i0rd <= UInt<5>("h00") @[el2_lib.scala 524:33]
_T_730.i0rd <= UInt<5>("h00") @[el2_lib.scala 524:33] _T_730.valid <= UInt<1>("h00") @[el2_lib.scala 524:33]
reg _T_731 : {i0rd : UInt<5>, i0load : UInt<1>, i0store : UInt<1>, i0div : UInt<1>, i0v : UInt<1>, i0valid : UInt<1>, csrwen : UInt<1>, csrwonly : UInt<1>, csrwaddr : UInt<12>}, rvclkhdr_7.io.l1clk with : (reset => (reset, _T_730)) @[el2_lib.scala 524:16] reg _T_731 : {valid : UInt<1>, bits : {i0rd : UInt<5>, i0load : UInt<1>, i0store : UInt<1>, i0div : UInt<1>, i0v : UInt<1>, csrwen : UInt<1>, csrwonly : UInt<1>, csrwaddr : UInt<12>}}, rvclkhdr_7.io.l1clk with : (reset => (reset, _T_730)) @[el2_lib.scala 524:16]
_T_731.csrwaddr <= d_d.csrwaddr @[el2_lib.scala 524:16] _T_731.bits.csrwaddr <= d_d.bits.csrwaddr @[el2_lib.scala 524:16]
_T_731.csrwonly <= d_d.csrwonly @[el2_lib.scala 524:16] _T_731.bits.csrwonly <= d_d.bits.csrwonly @[el2_lib.scala 524:16]
_T_731.csrwen <= d_d.csrwen @[el2_lib.scala 524:16] _T_731.bits.csrwen <= d_d.bits.csrwen @[el2_lib.scala 524:16]
_T_731.i0valid <= d_d.i0valid @[el2_lib.scala 524:16] _T_731.bits.i0v <= d_d.bits.i0v @[el2_lib.scala 524:16]
_T_731.i0v <= d_d.i0v @[el2_lib.scala 524:16] _T_731.bits.i0div <= d_d.bits.i0div @[el2_lib.scala 524:16]
_T_731.i0div <= d_d.i0div @[el2_lib.scala 524:16] _T_731.bits.i0store <= d_d.bits.i0store @[el2_lib.scala 524:16]
_T_731.i0store <= d_d.i0store @[el2_lib.scala 524:16] _T_731.bits.i0load <= d_d.bits.i0load @[el2_lib.scala 524:16]
_T_731.i0load <= d_d.i0load @[el2_lib.scala 524:16] _T_731.bits.i0rd <= d_d.bits.i0rd @[el2_lib.scala 524:16]
_T_731.i0rd <= d_d.i0rd @[el2_lib.scala 524:16] _T_731.valid <= d_d.valid @[el2_lib.scala 524:16]
x_d.csrwaddr <= _T_731.csrwaddr @[el2_dec_decode_ctl.scala 677:7] x_d.bits.csrwaddr <= _T_731.bits.csrwaddr @[el2_dec_decode_ctl.scala 677:7]
x_d.csrwonly <= _T_731.csrwonly @[el2_dec_decode_ctl.scala 677:7] x_d.bits.csrwonly <= _T_731.bits.csrwonly @[el2_dec_decode_ctl.scala 677:7]
x_d.csrwen <= _T_731.csrwen @[el2_dec_decode_ctl.scala 677:7] x_d.bits.csrwen <= _T_731.bits.csrwen @[el2_dec_decode_ctl.scala 677:7]
x_d.i0valid <= _T_731.i0valid @[el2_dec_decode_ctl.scala 677:7] x_d.bits.i0v <= _T_731.bits.i0v @[el2_dec_decode_ctl.scala 677:7]
x_d.i0v <= _T_731.i0v @[el2_dec_decode_ctl.scala 677:7] x_d.bits.i0div <= _T_731.bits.i0div @[el2_dec_decode_ctl.scala 677:7]
x_d.i0div <= _T_731.i0div @[el2_dec_decode_ctl.scala 677:7] x_d.bits.i0store <= _T_731.bits.i0store @[el2_dec_decode_ctl.scala 677:7]
x_d.i0store <= _T_731.i0store @[el2_dec_decode_ctl.scala 677:7] x_d.bits.i0load <= _T_731.bits.i0load @[el2_dec_decode_ctl.scala 677:7]
x_d.i0load <= _T_731.i0load @[el2_dec_decode_ctl.scala 677:7] x_d.bits.i0rd <= _T_731.bits.i0rd @[el2_dec_decode_ctl.scala 677:7]
x_d.i0rd <= _T_731.i0rd @[el2_dec_decode_ctl.scala 677:7] x_d.valid <= _T_731.valid @[el2_dec_decode_ctl.scala 677:7]
wire x_d_in : {i0rd : UInt<5>, i0load : UInt<1>, i0store : UInt<1>, i0div : UInt<1>, i0v : UInt<1>, i0valid : UInt<1>, csrwen : UInt<1>, csrwonly : UInt<1>, csrwaddr : UInt<12>} @[el2_dec_decode_ctl.scala 678:20] wire x_d_in : {valid : UInt<1>, bits : {i0rd : UInt<5>, i0load : UInt<1>, i0store : UInt<1>, i0div : UInt<1>, i0v : UInt<1>, csrwen : UInt<1>, csrwonly : UInt<1>, csrwaddr : UInt<12>}} @[el2_dec_decode_ctl.scala 678:20]
x_d_in.csrwaddr <= x_d.csrwaddr @[el2_dec_decode_ctl.scala 679:10] x_d_in.bits.csrwaddr <= x_d.bits.csrwaddr @[el2_dec_decode_ctl.scala 679:10]
x_d_in.csrwonly <= x_d.csrwonly @[el2_dec_decode_ctl.scala 679:10] x_d_in.bits.csrwonly <= x_d.bits.csrwonly @[el2_dec_decode_ctl.scala 679:10]
x_d_in.csrwen <= x_d.csrwen @[el2_dec_decode_ctl.scala 679:10] x_d_in.bits.csrwen <= x_d.bits.csrwen @[el2_dec_decode_ctl.scala 679:10]
x_d_in.i0valid <= x_d.i0valid @[el2_dec_decode_ctl.scala 679:10] x_d_in.bits.i0v <= x_d.bits.i0v @[el2_dec_decode_ctl.scala 679:10]
x_d_in.i0v <= x_d.i0v @[el2_dec_decode_ctl.scala 679:10] x_d_in.bits.i0div <= x_d.bits.i0div @[el2_dec_decode_ctl.scala 679:10]
x_d_in.i0div <= x_d.i0div @[el2_dec_decode_ctl.scala 679:10] x_d_in.bits.i0store <= x_d.bits.i0store @[el2_dec_decode_ctl.scala 679:10]
x_d_in.i0store <= x_d.i0store @[el2_dec_decode_ctl.scala 679:10] x_d_in.bits.i0load <= x_d.bits.i0load @[el2_dec_decode_ctl.scala 679:10]
x_d_in.i0load <= x_d.i0load @[el2_dec_decode_ctl.scala 679:10] x_d_in.bits.i0rd <= x_d.bits.i0rd @[el2_dec_decode_ctl.scala 679:10]
x_d_in.i0rd <= x_d.i0rd @[el2_dec_decode_ctl.scala 679:10] x_d_in.valid <= x_d.valid @[el2_dec_decode_ctl.scala 679:10]
node _T_732 = eq(io.dec_tlu_flush_lower_wb, UInt<1>("h00")) @[el2_dec_decode_ctl.scala 680:39] node _T_732 = eq(io.dec_tlu_flush_lower_wb, UInt<1>("h00")) @[el2_dec_decode_ctl.scala 680:49]
node _T_733 = and(x_d.i0v, _T_732) @[el2_dec_decode_ctl.scala 680:37] node _T_733 = and(x_d.bits.i0v, _T_732) @[el2_dec_decode_ctl.scala 680:47]
node _T_734 = eq(io.dec_tlu_flush_lower_r, UInt<1>("h00")) @[el2_dec_decode_ctl.scala 680:68] node _T_734 = eq(io.dec_tlu_flush_lower_r, UInt<1>("h00")) @[el2_dec_decode_ctl.scala 680:78]
node _T_735 = and(_T_733, _T_734) @[el2_dec_decode_ctl.scala 680:66] node _T_735 = and(_T_733, _T_734) @[el2_dec_decode_ctl.scala 680:76]
x_d_in.i0v <= _T_735 @[el2_dec_decode_ctl.scala 680:22] x_d_in.bits.i0v <= _T_735 @[el2_dec_decode_ctl.scala 680:27]
node _T_736 = eq(io.dec_tlu_flush_lower_wb, UInt<1>("h00")) @[el2_dec_decode_ctl.scala 681:39] node _T_736 = eq(io.dec_tlu_flush_lower_wb, UInt<1>("h00")) @[el2_dec_decode_ctl.scala 681:35]
node _T_737 = and(x_d.i0valid, _T_736) @[el2_dec_decode_ctl.scala 681:37] node _T_737 = and(x_d.valid, _T_736) @[el2_dec_decode_ctl.scala 681:33]
node _T_738 = eq(io.dec_tlu_flush_lower_r, UInt<1>("h00")) @[el2_dec_decode_ctl.scala 681:68] node _T_738 = eq(io.dec_tlu_flush_lower_r, UInt<1>("h00")) @[el2_dec_decode_ctl.scala 681:64]
node _T_739 = and(_T_737, _T_738) @[el2_dec_decode_ctl.scala 681:66] node _T_739 = and(_T_737, _T_738) @[el2_dec_decode_ctl.scala 681:62]
x_d_in.i0valid <= _T_739 @[el2_dec_decode_ctl.scala 681:22] x_d_in.valid <= _T_739 @[el2_dec_decode_ctl.scala 681:20]
node _T_740 = bits(i0_r_ctl_en, 0, 0) @[el2_dec_decode_ctl.scala 683:36] node _T_740 = bits(i0_r_ctl_en, 0, 0) @[el2_dec_decode_ctl.scala 683:36]
inst rvclkhdr_8 of rvclkhdr_669 @[el2_lib.scala 518:23] inst rvclkhdr_8 of rvclkhdr_669 @[el2_lib.scala 518:23]
rvclkhdr_8.clock <= clock rvclkhdr_8.clock <= clock
@ -68801,57 +68801,57 @@ circuit el2_swerv_wrapper :
rvclkhdr_8.io.clk <= clock @[el2_lib.scala 520:18] rvclkhdr_8.io.clk <= clock @[el2_lib.scala 520:18]
rvclkhdr_8.io.en <= _T_740 @[el2_lib.scala 521:17] rvclkhdr_8.io.en <= _T_740 @[el2_lib.scala 521:17]
rvclkhdr_8.io.scan_mode <= io.scan_mode @[el2_lib.scala 522:24] rvclkhdr_8.io.scan_mode <= io.scan_mode @[el2_lib.scala 522:24]
wire _T_741 : {i0rd : UInt<5>, i0load : UInt<1>, i0store : UInt<1>, i0div : UInt<1>, i0v : UInt<1>, i0valid : UInt<1>, csrwen : UInt<1>, csrwonly : UInt<1>, csrwaddr : UInt<12>} @[el2_lib.scala 524:33] wire _T_741 : {valid : UInt<1>, bits : {i0rd : UInt<5>, i0load : UInt<1>, i0store : UInt<1>, i0div : UInt<1>, i0v : UInt<1>, csrwen : UInt<1>, csrwonly : UInt<1>, csrwaddr : UInt<12>}} @[el2_lib.scala 524:33]
_T_741.csrwaddr <= UInt<12>("h00") @[el2_lib.scala 524:33] _T_741.bits.csrwaddr <= UInt<12>("h00") @[el2_lib.scala 524:33]
_T_741.csrwonly <= UInt<1>("h00") @[el2_lib.scala 524:33] _T_741.bits.csrwonly <= UInt<1>("h00") @[el2_lib.scala 524:33]
_T_741.csrwen <= UInt<1>("h00") @[el2_lib.scala 524:33] _T_741.bits.csrwen <= UInt<1>("h00") @[el2_lib.scala 524:33]
_T_741.i0valid <= UInt<1>("h00") @[el2_lib.scala 524:33] _T_741.bits.i0v <= UInt<1>("h00") @[el2_lib.scala 524:33]
_T_741.i0v <= UInt<1>("h00") @[el2_lib.scala 524:33] _T_741.bits.i0div <= UInt<1>("h00") @[el2_lib.scala 524:33]
_T_741.i0div <= UInt<1>("h00") @[el2_lib.scala 524:33] _T_741.bits.i0store <= UInt<1>("h00") @[el2_lib.scala 524:33]
_T_741.i0store <= UInt<1>("h00") @[el2_lib.scala 524:33] _T_741.bits.i0load <= UInt<1>("h00") @[el2_lib.scala 524:33]
_T_741.i0load <= UInt<1>("h00") @[el2_lib.scala 524:33] _T_741.bits.i0rd <= UInt<5>("h00") @[el2_lib.scala 524:33]
_T_741.i0rd <= UInt<5>("h00") @[el2_lib.scala 524:33] _T_741.valid <= UInt<1>("h00") @[el2_lib.scala 524:33]
reg _T_742 : {i0rd : UInt<5>, i0load : UInt<1>, i0store : UInt<1>, i0div : UInt<1>, i0v : UInt<1>, i0valid : UInt<1>, csrwen : UInt<1>, csrwonly : UInt<1>, csrwaddr : UInt<12>}, rvclkhdr_8.io.l1clk with : (reset => (reset, _T_741)) @[el2_lib.scala 524:16] reg _T_742 : {valid : UInt<1>, bits : {i0rd : UInt<5>, i0load : UInt<1>, i0store : UInt<1>, i0div : UInt<1>, i0v : UInt<1>, csrwen : UInt<1>, csrwonly : UInt<1>, csrwaddr : UInt<12>}}, rvclkhdr_8.io.l1clk with : (reset => (reset, _T_741)) @[el2_lib.scala 524:16]
_T_742.csrwaddr <= x_d_in.csrwaddr @[el2_lib.scala 524:16] _T_742.bits.csrwaddr <= x_d_in.bits.csrwaddr @[el2_lib.scala 524:16]
_T_742.csrwonly <= x_d_in.csrwonly @[el2_lib.scala 524:16] _T_742.bits.csrwonly <= x_d_in.bits.csrwonly @[el2_lib.scala 524:16]
_T_742.csrwen <= x_d_in.csrwen @[el2_lib.scala 524:16] _T_742.bits.csrwen <= x_d_in.bits.csrwen @[el2_lib.scala 524:16]
_T_742.i0valid <= x_d_in.i0valid @[el2_lib.scala 524:16] _T_742.bits.i0v <= x_d_in.bits.i0v @[el2_lib.scala 524:16]
_T_742.i0v <= x_d_in.i0v @[el2_lib.scala 524:16] _T_742.bits.i0div <= x_d_in.bits.i0div @[el2_lib.scala 524:16]
_T_742.i0div <= x_d_in.i0div @[el2_lib.scala 524:16] _T_742.bits.i0store <= x_d_in.bits.i0store @[el2_lib.scala 524:16]
_T_742.i0store <= x_d_in.i0store @[el2_lib.scala 524:16] _T_742.bits.i0load <= x_d_in.bits.i0load @[el2_lib.scala 524:16]
_T_742.i0load <= x_d_in.i0load @[el2_lib.scala 524:16] _T_742.bits.i0rd <= x_d_in.bits.i0rd @[el2_lib.scala 524:16]
_T_742.i0rd <= x_d_in.i0rd @[el2_lib.scala 524:16] _T_742.valid <= x_d_in.valid @[el2_lib.scala 524:16]
r_d.csrwaddr <= _T_742.csrwaddr @[el2_dec_decode_ctl.scala 683:7] r_d.bits.csrwaddr <= _T_742.bits.csrwaddr @[el2_dec_decode_ctl.scala 683:7]
r_d.csrwonly <= _T_742.csrwonly @[el2_dec_decode_ctl.scala 683:7] r_d.bits.csrwonly <= _T_742.bits.csrwonly @[el2_dec_decode_ctl.scala 683:7]
r_d.csrwen <= _T_742.csrwen @[el2_dec_decode_ctl.scala 683:7] r_d.bits.csrwen <= _T_742.bits.csrwen @[el2_dec_decode_ctl.scala 683:7]
r_d.i0valid <= _T_742.i0valid @[el2_dec_decode_ctl.scala 683:7] r_d.bits.i0v <= _T_742.bits.i0v @[el2_dec_decode_ctl.scala 683:7]
r_d.i0v <= _T_742.i0v @[el2_dec_decode_ctl.scala 683:7] r_d.bits.i0div <= _T_742.bits.i0div @[el2_dec_decode_ctl.scala 683:7]
r_d.i0div <= _T_742.i0div @[el2_dec_decode_ctl.scala 683:7] r_d.bits.i0store <= _T_742.bits.i0store @[el2_dec_decode_ctl.scala 683:7]
r_d.i0store <= _T_742.i0store @[el2_dec_decode_ctl.scala 683:7] r_d.bits.i0load <= _T_742.bits.i0load @[el2_dec_decode_ctl.scala 683:7]
r_d.i0load <= _T_742.i0load @[el2_dec_decode_ctl.scala 683:7] r_d.bits.i0rd <= _T_742.bits.i0rd @[el2_dec_decode_ctl.scala 683:7]
r_d.i0rd <= _T_742.i0rd @[el2_dec_decode_ctl.scala 683:7] r_d.valid <= _T_742.valid @[el2_dec_decode_ctl.scala 683:7]
r_d_in.csrwaddr <= r_d.csrwaddr @[el2_dec_decode_ctl.scala 684:10] r_d_in.bits.csrwaddr <= r_d.bits.csrwaddr @[el2_dec_decode_ctl.scala 684:10]
r_d_in.csrwonly <= r_d.csrwonly @[el2_dec_decode_ctl.scala 684:10] r_d_in.bits.csrwonly <= r_d.bits.csrwonly @[el2_dec_decode_ctl.scala 684:10]
r_d_in.csrwen <= r_d.csrwen @[el2_dec_decode_ctl.scala 684:10] r_d_in.bits.csrwen <= r_d.bits.csrwen @[el2_dec_decode_ctl.scala 684:10]
r_d_in.i0valid <= r_d.i0valid @[el2_dec_decode_ctl.scala 684:10] r_d_in.bits.i0v <= r_d.bits.i0v @[el2_dec_decode_ctl.scala 684:10]
r_d_in.i0v <= r_d.i0v @[el2_dec_decode_ctl.scala 684:10] r_d_in.bits.i0div <= r_d.bits.i0div @[el2_dec_decode_ctl.scala 684:10]
r_d_in.i0div <= r_d.i0div @[el2_dec_decode_ctl.scala 684:10] r_d_in.bits.i0store <= r_d.bits.i0store @[el2_dec_decode_ctl.scala 684:10]
r_d_in.i0store <= r_d.i0store @[el2_dec_decode_ctl.scala 684:10] r_d_in.bits.i0load <= r_d.bits.i0load @[el2_dec_decode_ctl.scala 684:10]
r_d_in.i0load <= r_d.i0load @[el2_dec_decode_ctl.scala 684:10] r_d_in.bits.i0rd <= r_d.bits.i0rd @[el2_dec_decode_ctl.scala 684:10]
r_d_in.i0rd <= r_d.i0rd @[el2_dec_decode_ctl.scala 684:10] r_d_in.valid <= r_d.valid @[el2_dec_decode_ctl.scala 684:10]
r_d_in.i0rd <= r_d.i0rd @[el2_dec_decode_ctl.scala 685:17] r_d_in.bits.i0rd <= r_d.bits.i0rd @[el2_dec_decode_ctl.scala 685:22]
node _T_743 = eq(io.dec_tlu_flush_lower_wb, UInt<1>("h00")) @[el2_dec_decode_ctl.scala 687:41] node _T_743 = eq(io.dec_tlu_flush_lower_wb, UInt<1>("h00")) @[el2_dec_decode_ctl.scala 687:51]
node _T_744 = and(r_d.i0v, _T_743) @[el2_dec_decode_ctl.scala 687:39] node _T_744 = and(r_d.bits.i0v, _T_743) @[el2_dec_decode_ctl.scala 687:49]
r_d_in.i0v <= _T_744 @[el2_dec_decode_ctl.scala 687:22] r_d_in.bits.i0v <= _T_744 @[el2_dec_decode_ctl.scala 687:27]
node _T_745 = eq(io.dec_tlu_flush_lower_wb, UInt<1>("h00")) @[el2_dec_decode_ctl.scala 688:41] node _T_745 = eq(io.dec_tlu_flush_lower_wb, UInt<1>("h00")) @[el2_dec_decode_ctl.scala 688:37]
node _T_746 = and(r_d.i0valid, _T_745) @[el2_dec_decode_ctl.scala 688:39] node _T_746 = and(r_d.valid, _T_745) @[el2_dec_decode_ctl.scala 688:35]
r_d_in.i0valid <= _T_746 @[el2_dec_decode_ctl.scala 688:22] r_d_in.valid <= _T_746 @[el2_dec_decode_ctl.scala 688:20]
node _T_747 = eq(io.dec_tlu_flush_lower_wb, UInt<1>("h00")) @[el2_dec_decode_ctl.scala 689:41] node _T_747 = eq(io.dec_tlu_flush_lower_wb, UInt<1>("h00")) @[el2_dec_decode_ctl.scala 689:51]
node _T_748 = and(r_d.i0load, _T_747) @[el2_dec_decode_ctl.scala 689:39] node _T_748 = and(r_d.bits.i0load, _T_747) @[el2_dec_decode_ctl.scala 689:49]
r_d_in.i0load <= _T_748 @[el2_dec_decode_ctl.scala 689:22] r_d_in.bits.i0load <= _T_748 @[el2_dec_decode_ctl.scala 689:27]
node _T_749 = eq(io.dec_tlu_flush_lower_wb, UInt<1>("h00")) @[el2_dec_decode_ctl.scala 690:41] node _T_749 = eq(io.dec_tlu_flush_lower_wb, UInt<1>("h00")) @[el2_dec_decode_ctl.scala 690:51]
node _T_750 = and(r_d.i0store, _T_749) @[el2_dec_decode_ctl.scala 690:39] node _T_750 = and(r_d.bits.i0store, _T_749) @[el2_dec_decode_ctl.scala 690:49]
r_d_in.i0store <= _T_750 @[el2_dec_decode_ctl.scala 690:22] r_d_in.bits.i0store <= _T_750 @[el2_dec_decode_ctl.scala 690:27]
node _T_751 = bits(i0_wb_ctl_en, 0, 0) @[el2_dec_decode_ctl.scala 692:37] node _T_751 = bits(i0_wb_ctl_en, 0, 0) @[el2_dec_decode_ctl.scala 692:37]
inst rvclkhdr_9 of rvclkhdr_670 @[el2_lib.scala 518:23] inst rvclkhdr_9 of rvclkhdr_670 @[el2_lib.scala 518:23]
rvclkhdr_9.clock <= clock rvclkhdr_9.clock <= clock
@ -68859,43 +68859,43 @@ circuit el2_swerv_wrapper :
rvclkhdr_9.io.clk <= clock @[el2_lib.scala 520:18] rvclkhdr_9.io.clk <= clock @[el2_lib.scala 520:18]
rvclkhdr_9.io.en <= _T_751 @[el2_lib.scala 521:17] rvclkhdr_9.io.en <= _T_751 @[el2_lib.scala 521:17]
rvclkhdr_9.io.scan_mode <= io.scan_mode @[el2_lib.scala 522:24] rvclkhdr_9.io.scan_mode <= io.scan_mode @[el2_lib.scala 522:24]
wire _T_752 : {i0rd : UInt<5>, i0load : UInt<1>, i0store : UInt<1>, i0div : UInt<1>, i0v : UInt<1>, i0valid : UInt<1>, csrwen : UInt<1>, csrwonly : UInt<1>, csrwaddr : UInt<12>} @[el2_lib.scala 524:33] wire _T_752 : {valid : UInt<1>, bits : {i0rd : UInt<5>, i0load : UInt<1>, i0store : UInt<1>, i0div : UInt<1>, i0v : UInt<1>, csrwen : UInt<1>, csrwonly : UInt<1>, csrwaddr : UInt<12>}} @[el2_lib.scala 524:33]
_T_752.csrwaddr <= UInt<12>("h00") @[el2_lib.scala 524:33] _T_752.bits.csrwaddr <= UInt<12>("h00") @[el2_lib.scala 524:33]
_T_752.csrwonly <= UInt<1>("h00") @[el2_lib.scala 524:33] _T_752.bits.csrwonly <= UInt<1>("h00") @[el2_lib.scala 524:33]
_T_752.csrwen <= UInt<1>("h00") @[el2_lib.scala 524:33] _T_752.bits.csrwen <= UInt<1>("h00") @[el2_lib.scala 524:33]
_T_752.i0valid <= UInt<1>("h00") @[el2_lib.scala 524:33] _T_752.bits.i0v <= UInt<1>("h00") @[el2_lib.scala 524:33]
_T_752.i0v <= UInt<1>("h00") @[el2_lib.scala 524:33] _T_752.bits.i0div <= UInt<1>("h00") @[el2_lib.scala 524:33]
_T_752.i0div <= UInt<1>("h00") @[el2_lib.scala 524:33] _T_752.bits.i0store <= UInt<1>("h00") @[el2_lib.scala 524:33]
_T_752.i0store <= UInt<1>("h00") @[el2_lib.scala 524:33] _T_752.bits.i0load <= UInt<1>("h00") @[el2_lib.scala 524:33]
_T_752.i0load <= UInt<1>("h00") @[el2_lib.scala 524:33] _T_752.bits.i0rd <= UInt<5>("h00") @[el2_lib.scala 524:33]
_T_752.i0rd <= UInt<5>("h00") @[el2_lib.scala 524:33] _T_752.valid <= UInt<1>("h00") @[el2_lib.scala 524:33]
reg _T_753 : {i0rd : UInt<5>, i0load : UInt<1>, i0store : UInt<1>, i0div : UInt<1>, i0v : UInt<1>, i0valid : UInt<1>, csrwen : UInt<1>, csrwonly : UInt<1>, csrwaddr : UInt<12>}, rvclkhdr_9.io.l1clk with : (reset => (reset, _T_752)) @[el2_lib.scala 524:16] reg _T_753 : {valid : UInt<1>, bits : {i0rd : UInt<5>, i0load : UInt<1>, i0store : UInt<1>, i0div : UInt<1>, i0v : UInt<1>, csrwen : UInt<1>, csrwonly : UInt<1>, csrwaddr : UInt<12>}}, rvclkhdr_9.io.l1clk with : (reset => (reset, _T_752)) @[el2_lib.scala 524:16]
_T_753.csrwaddr <= r_d_in.csrwaddr @[el2_lib.scala 524:16] _T_753.bits.csrwaddr <= r_d_in.bits.csrwaddr @[el2_lib.scala 524:16]
_T_753.csrwonly <= r_d_in.csrwonly @[el2_lib.scala 524:16] _T_753.bits.csrwonly <= r_d_in.bits.csrwonly @[el2_lib.scala 524:16]
_T_753.csrwen <= r_d_in.csrwen @[el2_lib.scala 524:16] _T_753.bits.csrwen <= r_d_in.bits.csrwen @[el2_lib.scala 524:16]
_T_753.i0valid <= r_d_in.i0valid @[el2_lib.scala 524:16] _T_753.bits.i0v <= r_d_in.bits.i0v @[el2_lib.scala 524:16]
_T_753.i0v <= r_d_in.i0v @[el2_lib.scala 524:16] _T_753.bits.i0div <= r_d_in.bits.i0div @[el2_lib.scala 524:16]
_T_753.i0div <= r_d_in.i0div @[el2_lib.scala 524:16] _T_753.bits.i0store <= r_d_in.bits.i0store @[el2_lib.scala 524:16]
_T_753.i0store <= r_d_in.i0store @[el2_lib.scala 524:16] _T_753.bits.i0load <= r_d_in.bits.i0load @[el2_lib.scala 524:16]
_T_753.i0load <= r_d_in.i0load @[el2_lib.scala 524:16] _T_753.bits.i0rd <= r_d_in.bits.i0rd @[el2_lib.scala 524:16]
_T_753.i0rd <= r_d_in.i0rd @[el2_lib.scala 524:16] _T_753.valid <= r_d_in.valid @[el2_lib.scala 524:16]
wbd.csrwaddr <= _T_753.csrwaddr @[el2_dec_decode_ctl.scala 692:7] wbd.bits.csrwaddr <= _T_753.bits.csrwaddr @[el2_dec_decode_ctl.scala 692:7]
wbd.csrwonly <= _T_753.csrwonly @[el2_dec_decode_ctl.scala 692:7] wbd.bits.csrwonly <= _T_753.bits.csrwonly @[el2_dec_decode_ctl.scala 692:7]
wbd.csrwen <= _T_753.csrwen @[el2_dec_decode_ctl.scala 692:7] wbd.bits.csrwen <= _T_753.bits.csrwen @[el2_dec_decode_ctl.scala 692:7]
wbd.i0valid <= _T_753.i0valid @[el2_dec_decode_ctl.scala 692:7] wbd.bits.i0v <= _T_753.bits.i0v @[el2_dec_decode_ctl.scala 692:7]
wbd.i0v <= _T_753.i0v @[el2_dec_decode_ctl.scala 692:7] wbd.bits.i0div <= _T_753.bits.i0div @[el2_dec_decode_ctl.scala 692:7]
wbd.i0div <= _T_753.i0div @[el2_dec_decode_ctl.scala 692:7] wbd.bits.i0store <= _T_753.bits.i0store @[el2_dec_decode_ctl.scala 692:7]
wbd.i0store <= _T_753.i0store @[el2_dec_decode_ctl.scala 692:7] wbd.bits.i0load <= _T_753.bits.i0load @[el2_dec_decode_ctl.scala 692:7]
wbd.i0load <= _T_753.i0load @[el2_dec_decode_ctl.scala 692:7] wbd.bits.i0rd <= _T_753.bits.i0rd @[el2_dec_decode_ctl.scala 692:7]
wbd.i0rd <= _T_753.i0rd @[el2_dec_decode_ctl.scala 692:7] wbd.valid <= _T_753.valid @[el2_dec_decode_ctl.scala 692:7]
io.dec_i0_waddr_r <= r_d_in.i0rd @[el2_dec_decode_ctl.scala 694:27] io.dec_i0_waddr_r <= r_d_in.bits.i0rd @[el2_dec_decode_ctl.scala 694:27]
node _T_754 = eq(io.dec_tlu_i0_kill_writeb_r, UInt<1>("h00")) @[el2_dec_decode_ctl.scala 695:42] node _T_754 = eq(io.dec_tlu_i0_kill_writeb_r, UInt<1>("h00")) @[el2_dec_decode_ctl.scala 695:47]
node _T_755 = and(r_d_in.i0v, _T_754) @[el2_dec_decode_ctl.scala 695:40] node _T_755 = and(r_d_in.bits.i0v, _T_754) @[el2_dec_decode_ctl.scala 695:45]
i0_wen_r <= _T_755 @[el2_dec_decode_ctl.scala 695:25] i0_wen_r <= _T_755 @[el2_dec_decode_ctl.scala 695:25]
node _T_756 = eq(r_d_in.i0div, UInt<1>("h00")) @[el2_dec_decode_ctl.scala 696:49] node _T_756 = eq(r_d_in.bits.i0div, UInt<1>("h00")) @[el2_dec_decode_ctl.scala 696:49]
node _T_757 = and(i0_wen_r, _T_756) @[el2_dec_decode_ctl.scala 696:47] node _T_757 = and(i0_wen_r, _T_756) @[el2_dec_decode_ctl.scala 696:47]
node _T_758 = eq(i0_load_kill_wen_r, UInt<1>("h00")) @[el2_dec_decode_ctl.scala 696:65] node _T_758 = eq(i0_load_kill_wen_r, UInt<1>("h00")) @[el2_dec_decode_ctl.scala 696:70]
node _T_759 = and(_T_757, _T_758) @[el2_dec_decode_ctl.scala 696:63] node _T_759 = and(_T_757, _T_758) @[el2_dec_decode_ctl.scala 696:68]
io.dec_i0_wen_r <= _T_759 @[el2_dec_decode_ctl.scala 696:32] io.dec_i0_wen_r <= _T_759 @[el2_dec_decode_ctl.scala 696:32]
io.dec_i0_wdata_r <= i0_result_corr_r @[el2_dec_decode_ctl.scala 697:26] io.dec_i0_wdata_r <= i0_result_corr_r @[el2_dec_decode_ctl.scala 697:26]
node _T_760 = bits(i0_r_data_en, 0, 0) @[el2_dec_decode_ctl.scala 699:57] node _T_760 = bits(i0_r_data_en, 0, 0) @[el2_dec_decode_ctl.scala 699:57]
@ -68907,13 +68907,13 @@ circuit el2_swerv_wrapper :
rvclkhdr_10.io.scan_mode <= io.scan_mode @[el2_lib.scala 512:24] rvclkhdr_10.io.scan_mode <= io.scan_mode @[el2_lib.scala 512:24]
reg i0_result_r_raw : UInt, rvclkhdr_10.io.l1clk with : (reset => (reset, UInt<1>("h00"))) @[el2_lib.scala 514:16] reg i0_result_r_raw : UInt, rvclkhdr_10.io.l1clk with : (reset => (reset, UInt<1>("h00"))) @[el2_lib.scala 514:16]
i0_result_r_raw <= i0_result_x @[el2_lib.scala 514:16] i0_result_r_raw <= i0_result_x @[el2_lib.scala 514:16]
node _T_761 = and(x_d.i0v, x_d.i0load) @[el2_dec_decode_ctl.scala 705:42] node _T_761 = and(x_d.bits.i0v, x_d.bits.i0load) @[el2_dec_decode_ctl.scala 705:47]
node _T_762 = bits(_T_761, 0, 0) @[el2_dec_decode_ctl.scala 705:56] node _T_762 = bits(_T_761, 0, 0) @[el2_dec_decode_ctl.scala 705:66]
node _T_763 = mux(_T_762, io.lsu_result_m, io.exu_i0_result_x) @[el2_dec_decode_ctl.scala 705:32] node _T_763 = mux(_T_762, io.lsu_result_m, io.exu_i0_result_x) @[el2_dec_decode_ctl.scala 705:32]
i0_result_x <= _T_763 @[el2_dec_decode_ctl.scala 705:26] i0_result_x <= _T_763 @[el2_dec_decode_ctl.scala 705:26]
i0_result_r <= i0_result_r_raw @[el2_dec_decode_ctl.scala 706:26] i0_result_r <= i0_result_r_raw @[el2_dec_decode_ctl.scala 706:26]
node _T_764 = and(r_d.i0v, r_d.i0load) @[el2_dec_decode_ctl.scala 710:37] node _T_764 = and(r_d.bits.i0v, r_d.bits.i0load) @[el2_dec_decode_ctl.scala 710:42]
node _T_765 = bits(_T_764, 0, 0) @[el2_dec_decode_ctl.scala 710:51] node _T_765 = bits(_T_764, 0, 0) @[el2_dec_decode_ctl.scala 710:61]
node _T_766 = mux(_T_765, io.lsu_result_corr_r, i0_result_r_raw) @[el2_dec_decode_ctl.scala 710:27] node _T_766 = mux(_T_765, io.lsu_result_corr_r, i0_result_r_raw) @[el2_dec_decode_ctl.scala 710:27]
i0_result_corr_r <= _T_766 @[el2_dec_decode_ctl.scala 710:21] i0_result_corr_r <= _T_766 @[el2_dec_decode_ctl.scala 710:21]
node _T_767 = eq(i0_dp.jal, UInt<1>("h00")) @[el2_dec_decode_ctl.scala 711:54] node _T_767 = eq(i0_dp.jal, UInt<1>("h00")) @[el2_dec_decode_ctl.scala 711:54]
@ -68982,25 +68982,25 @@ circuit el2_swerv_wrapper :
reg _T_798 : UInt, rvclkhdr_11.io.l1clk with : (reset => (reset, UInt<1>("h00"))) @[el2_lib.scala 514:16] reg _T_798 : UInt, rvclkhdr_11.io.l1clk with : (reset => (reset, UInt<1>("h00"))) @[el2_lib.scala 514:16]
_T_798 <= last_br_immed_d @[el2_lib.scala 514:16] _T_798 <= last_br_immed_d @[el2_lib.scala 514:16]
last_br_immed_x <= _T_798 @[el2_dec_decode_ctl.scala 715:19] last_br_immed_x <= _T_798 @[el2_dec_decode_ctl.scala 715:19]
node _T_799 = and(x_d.i0div, x_d.i0valid) @[el2_dec_decode_ctl.scala 719:40] node _T_799 = and(x_d.bits.i0div, x_d.valid) @[el2_dec_decode_ctl.scala 719:45]
node _T_800 = and(r_d.i0div, r_d.i0valid) @[el2_dec_decode_ctl.scala 719:68] node _T_800 = and(r_d.bits.i0div, r_d.valid) @[el2_dec_decode_ctl.scala 719:76]
node div_e1_to_r = or(_T_799, _T_800) @[el2_dec_decode_ctl.scala 719:55] node div_e1_to_r = or(_T_799, _T_800) @[el2_dec_decode_ctl.scala 719:58]
node _T_801 = and(x_d.i0div, x_d.i0valid) @[el2_dec_decode_ctl.scala 721:43] node _T_801 = and(x_d.bits.i0div, x_d.valid) @[el2_dec_decode_ctl.scala 721:48]
node _T_802 = eq(x_d.i0rd, UInt<5>("h00")) @[el2_dec_decode_ctl.scala 721:69] node _T_802 = eq(x_d.bits.i0rd, UInt<5>("h00")) @[el2_dec_decode_ctl.scala 721:77]
node _T_803 = and(_T_801, _T_802) @[el2_dec_decode_ctl.scala 721:57] node _T_803 = and(_T_801, _T_802) @[el2_dec_decode_ctl.scala 721:60]
node _T_804 = and(x_d.i0div, x_d.i0valid) @[el2_dec_decode_ctl.scala 722:16] node _T_804 = and(x_d.bits.i0div, x_d.valid) @[el2_dec_decode_ctl.scala 722:21]
node _T_805 = and(_T_804, io.dec_tlu_flush_lower_r) @[el2_dec_decode_ctl.scala 722:30] node _T_805 = and(_T_804, io.dec_tlu_flush_lower_r) @[el2_dec_decode_ctl.scala 722:33]
node _T_806 = or(_T_803, _T_805) @[el2_dec_decode_ctl.scala 721:86] node _T_806 = or(_T_803, _T_805) @[el2_dec_decode_ctl.scala 721:94]
node _T_807 = and(r_d.i0div, r_d.i0valid) @[el2_dec_decode_ctl.scala 723:16] node _T_807 = and(r_d.bits.i0div, r_d.valid) @[el2_dec_decode_ctl.scala 723:21]
node _T_808 = and(_T_807, io.dec_tlu_flush_lower_r) @[el2_dec_decode_ctl.scala 723:30] node _T_808 = and(_T_807, io.dec_tlu_flush_lower_r) @[el2_dec_decode_ctl.scala 723:33]
node _T_809 = and(_T_808, io.dec_tlu_i0_kill_writeb_r) @[el2_dec_decode_ctl.scala 723:57] node _T_809 = and(_T_808, io.dec_tlu_i0_kill_writeb_r) @[el2_dec_decode_ctl.scala 723:60]
node div_flush = or(_T_806, _T_809) @[el2_dec_decode_ctl.scala 722:59] node div_flush = or(_T_806, _T_809) @[el2_dec_decode_ctl.scala 722:62]
node _T_810 = and(io.dec_div_active, div_flush) @[el2_dec_decode_ctl.scala 727:51] node _T_810 = and(io.dec_div_active, div_flush) @[el2_dec_decode_ctl.scala 727:51]
node _T_811 = eq(div_e1_to_r, UInt<1>("h00")) @[el2_dec_decode_ctl.scala 728:26] node _T_811 = eq(div_e1_to_r, UInt<1>("h00")) @[el2_dec_decode_ctl.scala 728:26]
node _T_812 = and(io.dec_div_active, _T_811) @[el2_dec_decode_ctl.scala 728:24] node _T_812 = and(io.dec_div_active, _T_811) @[el2_dec_decode_ctl.scala 728:24]
node _T_813 = eq(r_d.i0rd, io.div_waddr_wb) @[el2_dec_decode_ctl.scala 728:51] node _T_813 = eq(r_d.bits.i0rd, io.div_waddr_wb) @[el2_dec_decode_ctl.scala 728:56]
node _T_814 = and(_T_812, _T_813) @[el2_dec_decode_ctl.scala 728:39] node _T_814 = and(_T_812, _T_813) @[el2_dec_decode_ctl.scala 728:39]
node _T_815 = and(_T_814, i0_wen_r) @[el2_dec_decode_ctl.scala 728:72] node _T_815 = and(_T_814, i0_wen_r) @[el2_dec_decode_ctl.scala 728:77]
node nonblock_div_cancel = or(_T_810, _T_815) @[el2_dec_decode_ctl.scala 727:65] node nonblock_div_cancel = or(_T_810, _T_815) @[el2_dec_decode_ctl.scala 727:65]
node _T_816 = bits(nonblock_div_cancel, 0, 0) @[el2_dec_decode_ctl.scala 730:53] node _T_816 = bits(nonblock_div_cancel, 0, 0) @[el2_dec_decode_ctl.scala 730:53]
io.dec_div_cancel <= _T_816 @[el2_dec_decode_ctl.scala 730:29] io.dec_div_cancel <= _T_816 @[el2_dec_decode_ctl.scala 730:29]
@ -69140,18 +69140,18 @@ circuit el2_swerv_wrapper :
node temp_pred_correct_npc_x = cat(_T_874, UInt<1>("h00")) @[Cat.scala 29:58] node temp_pred_correct_npc_x = cat(_T_874, UInt<1>("h00")) @[Cat.scala 29:58]
node _T_875 = bits(temp_pred_correct_npc_x, 31, 1) @[el2_dec_decode_ctl.scala 764:51] node _T_875 = bits(temp_pred_correct_npc_x, 31, 1) @[el2_dec_decode_ctl.scala 764:51]
io.pred_correct_npc_x <= _T_875 @[el2_dec_decode_ctl.scala 764:25] io.pred_correct_npc_x <= _T_875 @[el2_dec_decode_ctl.scala 764:25]
node _T_876 = and(io.dec_i0_rs1_en_d, x_d.i0v) @[el2_dec_decode_ctl.scala 768:48] node _T_876 = and(io.dec_i0_rs1_en_d, x_d.bits.i0v) @[el2_dec_decode_ctl.scala 768:48]
node _T_877 = eq(x_d.i0rd, i0r.rs1) @[el2_dec_decode_ctl.scala 768:70] node _T_877 = eq(x_d.bits.i0rd, i0r.rs1) @[el2_dec_decode_ctl.scala 768:80]
node i0_rs1_depend_i0_x = and(_T_876, _T_877) @[el2_dec_decode_ctl.scala 768:58] node i0_rs1_depend_i0_x = and(_T_876, _T_877) @[el2_dec_decode_ctl.scala 768:63]
node _T_878 = and(io.dec_i0_rs1_en_d, r_d.i0v) @[el2_dec_decode_ctl.scala 769:48] node _T_878 = and(io.dec_i0_rs1_en_d, r_d.bits.i0v) @[el2_dec_decode_ctl.scala 769:48]
node _T_879 = eq(r_d.i0rd, i0r.rs1) @[el2_dec_decode_ctl.scala 769:70] node _T_879 = eq(r_d.bits.i0rd, i0r.rs1) @[el2_dec_decode_ctl.scala 769:80]
node i0_rs1_depend_i0_r = and(_T_878, _T_879) @[el2_dec_decode_ctl.scala 769:58] node i0_rs1_depend_i0_r = and(_T_878, _T_879) @[el2_dec_decode_ctl.scala 769:63]
node _T_880 = and(io.dec_i0_rs2_en_d, x_d.i0v) @[el2_dec_decode_ctl.scala 771:48] node _T_880 = and(io.dec_i0_rs2_en_d, x_d.bits.i0v) @[el2_dec_decode_ctl.scala 771:48]
node _T_881 = eq(x_d.i0rd, i0r.rs2) @[el2_dec_decode_ctl.scala 771:70] node _T_881 = eq(x_d.bits.i0rd, i0r.rs2) @[el2_dec_decode_ctl.scala 771:80]
node i0_rs2_depend_i0_x = and(_T_880, _T_881) @[el2_dec_decode_ctl.scala 771:58] node i0_rs2_depend_i0_x = and(_T_880, _T_881) @[el2_dec_decode_ctl.scala 771:63]
node _T_882 = and(io.dec_i0_rs2_en_d, r_d.i0v) @[el2_dec_decode_ctl.scala 772:48] node _T_882 = and(io.dec_i0_rs2_en_d, r_d.bits.i0v) @[el2_dec_decode_ctl.scala 772:48]
node _T_883 = eq(r_d.i0rd, i0r.rs2) @[el2_dec_decode_ctl.scala 772:70] node _T_883 = eq(r_d.bits.i0rd, i0r.rs2) @[el2_dec_decode_ctl.scala 772:80]
node i0_rs2_depend_i0_r = and(_T_882, _T_883) @[el2_dec_decode_ctl.scala 772:58] node i0_rs2_depend_i0_r = and(_T_882, _T_883) @[el2_dec_decode_ctl.scala 772:63]
node _T_884 = bits(i0_rs1_depend_i0_x, 0, 0) @[el2_dec_decode_ctl.scala 774:44] node _T_884 = bits(i0_rs1_depend_i0_x, 0, 0) @[el2_dec_decode_ctl.scala 774:44]
node _T_885 = bits(i0_rs1_depend_i0_r, 0, 0) @[el2_dec_decode_ctl.scala 774:81] node _T_885 = bits(i0_rs1_depend_i0_r, 0, 0) @[el2_dec_decode_ctl.scala 774:81]
wire _T_886 : {mul : UInt<1>, load : UInt<1>, alu : UInt<1>} @[el2_dec_decode_ctl.scala 774:109] wire _T_886 : {mul : UInt<1>, load : UInt<1>, alu : UInt<1>} @[el2_dec_decode_ctl.scala 774:109]

View File

@ -46421,8 +46421,8 @@ module el2_dec_decode_ctl(
wire _T_505 = i0_postsync | _T_504; // @[el2_dec_decode_ctl.scala 570:54] wire _T_505 = i0_postsync | _T_504; // @[el2_dec_decode_ctl.scala 570:54]
wire _T_506 = io_dec_i0_decode_d & _T_505; // @[el2_dec_decode_ctl.scala 570:39] wire _T_506 = io_dec_i0_decode_d & _T_505; // @[el2_dec_decode_ctl.scala 570:39]
reg postsync_stall; // @[el2_dec_decode_ctl.scala 568:53] reg postsync_stall; // @[el2_dec_decode_ctl.scala 568:53]
reg x_d_i0valid; // @[el2_lib.scala 524:16] reg x_d_valid; // @[el2_lib.scala 524:16]
wire _T_507 = postsync_stall & x_d_i0valid; // @[el2_dec_decode_ctl.scala 570:88] wire _T_507 = postsync_stall & x_d_valid; // @[el2_dec_decode_ctl.scala 570:88]
wire ps_stall_in = _T_506 | _T_507; // @[el2_dec_decode_ctl.scala 570:69] wire ps_stall_in = _T_506 | _T_507; // @[el2_dec_decode_ctl.scala 570:69]
wire _T_12 = ps_stall_in ^ postsync_stall; // @[el2_dec_decode_ctl.scala 217:32] wire _T_12 = ps_stall_in ^ postsync_stall; // @[el2_dec_decode_ctl.scala 217:32]
wire _T_13 = _T_11 | _T_12; // @[el2_dec_decode_ctl.scala 216:56] wire _T_13 = _T_11 | _T_12; // @[el2_dec_decode_ctl.scala 216:56]
@ -46565,34 +46565,34 @@ module el2_dec_decode_ctl(
wire [2:0] _T_86 = _GEN_128 | _T_83; // @[Mux.scala 27:72] wire [2:0] _T_86 = _GEN_128 | _T_83; // @[Mux.scala 27:72]
wire [3:0] _GEN_129 = {{1'd0}, _T_86}; // @[Mux.scala 27:72] wire [3:0] _GEN_129 = {{1'd0}, _T_86}; // @[Mux.scala 27:72]
wire [3:0] cam_wen = _GEN_129 | _T_84; // @[Mux.scala 27:72] wire [3:0] cam_wen = _GEN_129 | _T_84; // @[Mux.scala 27:72]
reg x_d_i0load; // @[el2_lib.scala 524:16] reg x_d_bits_i0load; // @[el2_lib.scala 524:16]
reg [4:0] x_d_i0rd; // @[el2_lib.scala 524:16] reg [4:0] x_d_bits_i0rd; // @[el2_lib.scala 524:16]
wire [4:0] nonblock_load_rd = x_d_i0load ? x_d_i0rd : 5'h0; // @[el2_dec_decode_ctl.scala 314:31] wire [4:0] nonblock_load_rd = x_d_bits_i0load ? x_d_bits_i0rd : 5'h0; // @[el2_dec_decode_ctl.scala 314:31]
reg [2:0] _T_701; // @[el2_dec_decode_ctl.scala 652:72] reg [2:0] _T_701; // @[el2_dec_decode_ctl.scala 652:72]
wire [3:0] i0_pipe_en = {io_dec_i0_decode_d,_T_701}; // @[Cat.scala 29:58] wire [3:0] i0_pipe_en = {io_dec_i0_decode_d,_T_701}; // @[Cat.scala 29:58]
wire _T_707 = |i0_pipe_en[2:1]; // @[el2_dec_decode_ctl.scala 655:49] wire _T_707 = |i0_pipe_en[2:1]; // @[el2_dec_decode_ctl.scala 655:49]
wire i0_r_ctl_en = _T_707 | io_clk_override; // @[el2_dec_decode_ctl.scala 655:53] wire i0_r_ctl_en = _T_707 | io_clk_override; // @[el2_dec_decode_ctl.scala 655:53]
reg nonblock_load_valid_m_delay; // @[Reg.scala 27:20] reg nonblock_load_valid_m_delay; // @[Reg.scala 27:20]
reg r_d_i0load; // @[el2_lib.scala 524:16] reg r_d_bits_i0load; // @[el2_lib.scala 524:16]
wire i0_load_kill_wen_r = nonblock_load_valid_m_delay & r_d_i0load; // @[el2_dec_decode_ctl.scala 319:56] wire i0_load_kill_wen_r = nonblock_load_valid_m_delay & r_d_bits_i0load; // @[el2_dec_decode_ctl.scala 319:56]
wire [2:0] _GEN_130 = {{1'd0}, io_lsu_nonblock_load_inv_tag_r}; // @[el2_dec_decode_ctl.scala 321:66] wire [2:0] _GEN_130 = {{1'd0}, io_lsu_nonblock_load_inv_tag_r}; // @[el2_dec_decode_ctl.scala 321:66]
wire _T_91 = _GEN_130 == cam_raw_0_bits_tag; // @[el2_dec_decode_ctl.scala 321:66] wire _T_91 = _GEN_130 == cam_raw_0_bits_tag; // @[el2_dec_decode_ctl.scala 321:66]
wire _T_92 = io_lsu_nonblock_load_inv_r & _T_91; // @[el2_dec_decode_ctl.scala 321:45] wire _T_92 = io_lsu_nonblock_load_inv_r & _T_91; // @[el2_dec_decode_ctl.scala 321:45]
wire cam_inv_reset_val_0 = _T_92 & cam_0_valid; // @[el2_dec_decode_ctl.scala 321:87] wire cam_inv_reset_val_0 = _T_92 & cam_0_valid; // @[el2_dec_decode_ctl.scala 321:87]
reg r_d_i0v; // @[el2_lib.scala 524:16] reg r_d_bits_i0v; // @[el2_lib.scala 524:16]
wire _T_743 = ~io_dec_tlu_flush_lower_wb; // @[el2_dec_decode_ctl.scala 687:41] wire _T_743 = ~io_dec_tlu_flush_lower_wb; // @[el2_dec_decode_ctl.scala 687:51]
wire r_d_in_i0v = r_d_i0v & _T_743; // @[el2_dec_decode_ctl.scala 687:39] wire r_d_in_bits_i0v = r_d_bits_i0v & _T_743; // @[el2_dec_decode_ctl.scala 687:49]
wire _T_754 = ~io_dec_tlu_i0_kill_writeb_r; // @[el2_dec_decode_ctl.scala 695:42] wire _T_754 = ~io_dec_tlu_i0_kill_writeb_r; // @[el2_dec_decode_ctl.scala 695:47]
wire i0_wen_r = r_d_in_i0v & _T_754; // @[el2_dec_decode_ctl.scala 695:40] wire i0_wen_r = r_d_in_bits_i0v & _T_754; // @[el2_dec_decode_ctl.scala 695:45]
reg [4:0] r_d_i0rd; // @[el2_lib.scala 524:16] reg [4:0] r_d_bits_i0rd; // @[el2_lib.scala 524:16]
reg [4:0] cam_raw_0_bits_rd; // @[el2_dec_decode_ctl.scala 347:47] reg [4:0] cam_raw_0_bits_rd; // @[el2_dec_decode_ctl.scala 347:47]
wire _T_103 = r_d_i0rd == cam_raw_0_bits_rd; // @[el2_dec_decode_ctl.scala 334:80] wire _T_103 = r_d_bits_i0rd == cam_raw_0_bits_rd; // @[el2_dec_decode_ctl.scala 334:85]
wire _T_104 = i0_wen_r & _T_103; // @[el2_dec_decode_ctl.scala 334:64] wire _T_104 = i0_wen_r & _T_103; // @[el2_dec_decode_ctl.scala 334:64]
reg cam_raw_0_bits_wb; // @[el2_dec_decode_ctl.scala 347:47] reg cam_raw_0_bits_wb; // @[el2_dec_decode_ctl.scala 347:47]
wire _T_106 = _T_104 & cam_raw_0_bits_wb; // @[el2_dec_decode_ctl.scala 334:100] wire _T_106 = _T_104 & cam_raw_0_bits_wb; // @[el2_dec_decode_ctl.scala 334:105]
wire _T_107 = cam_inv_reset_val_0 | _T_106; // @[el2_dec_decode_ctl.scala 334:44] wire _T_107 = cam_inv_reset_val_0 | _T_106; // @[el2_dec_decode_ctl.scala 334:44]
wire _GEN_52 = _T_107 ? 1'h0 : cam_0_valid; // @[el2_dec_decode_ctl.scala 334:126] wire _GEN_52 = _T_107 ? 1'h0 : cam_0_valid; // @[el2_dec_decode_ctl.scala 334:131]
wire _GEN_55 = _T_107 ? 1'h0 : cam_raw_0_bits_wb; // @[el2_dec_decode_ctl.scala 334:126] wire _GEN_55 = _T_107 ? 1'h0 : cam_raw_0_bits_wb; // @[el2_dec_decode_ctl.scala 334:131]
wire _GEN_56 = cam_wen[0] | _GEN_52; // @[el2_dec_decode_ctl.scala 329:28] wire _GEN_56 = cam_wen[0] | _GEN_52; // @[el2_dec_decode_ctl.scala 329:28]
wire _GEN_57 = cam_wen[0] ? 1'h0 : _GEN_55; // @[el2_dec_decode_ctl.scala 329:28] wire _GEN_57 = cam_wen[0] ? 1'h0 : _GEN_55; // @[el2_dec_decode_ctl.scala 329:28]
wire _T_110 = nonblock_load_valid_m_delay & _T_91; // @[el2_dec_decode_ctl.scala 339:44] wire _T_110 = nonblock_load_valid_m_delay & _T_91; // @[el2_dec_decode_ctl.scala 339:44]
@ -46602,13 +46602,13 @@ module el2_dec_decode_ctl(
wire _T_118 = io_lsu_nonblock_load_inv_r & _T_117; // @[el2_dec_decode_ctl.scala 321:45] wire _T_118 = io_lsu_nonblock_load_inv_r & _T_117; // @[el2_dec_decode_ctl.scala 321:45]
wire cam_inv_reset_val_1 = _T_118 & cam_1_valid; // @[el2_dec_decode_ctl.scala 321:87] wire cam_inv_reset_val_1 = _T_118 & cam_1_valid; // @[el2_dec_decode_ctl.scala 321:87]
reg [4:0] cam_raw_1_bits_rd; // @[el2_dec_decode_ctl.scala 347:47] reg [4:0] cam_raw_1_bits_rd; // @[el2_dec_decode_ctl.scala 347:47]
wire _T_129 = r_d_i0rd == cam_raw_1_bits_rd; // @[el2_dec_decode_ctl.scala 334:80] wire _T_129 = r_d_bits_i0rd == cam_raw_1_bits_rd; // @[el2_dec_decode_ctl.scala 334:85]
wire _T_130 = i0_wen_r & _T_129; // @[el2_dec_decode_ctl.scala 334:64] wire _T_130 = i0_wen_r & _T_129; // @[el2_dec_decode_ctl.scala 334:64]
reg cam_raw_1_bits_wb; // @[el2_dec_decode_ctl.scala 347:47] reg cam_raw_1_bits_wb; // @[el2_dec_decode_ctl.scala 347:47]
wire _T_132 = _T_130 & cam_raw_1_bits_wb; // @[el2_dec_decode_ctl.scala 334:100] wire _T_132 = _T_130 & cam_raw_1_bits_wb; // @[el2_dec_decode_ctl.scala 334:105]
wire _T_133 = cam_inv_reset_val_1 | _T_132; // @[el2_dec_decode_ctl.scala 334:44] wire _T_133 = cam_inv_reset_val_1 | _T_132; // @[el2_dec_decode_ctl.scala 334:44]
wire _GEN_63 = _T_133 ? 1'h0 : cam_1_valid; // @[el2_dec_decode_ctl.scala 334:126] wire _GEN_63 = _T_133 ? 1'h0 : cam_1_valid; // @[el2_dec_decode_ctl.scala 334:131]
wire _GEN_66 = _T_133 ? 1'h0 : cam_raw_1_bits_wb; // @[el2_dec_decode_ctl.scala 334:126] wire _GEN_66 = _T_133 ? 1'h0 : cam_raw_1_bits_wb; // @[el2_dec_decode_ctl.scala 334:131]
wire _GEN_67 = cam_wen[1] | _GEN_63; // @[el2_dec_decode_ctl.scala 329:28] wire _GEN_67 = cam_wen[1] | _GEN_63; // @[el2_dec_decode_ctl.scala 329:28]
wire _GEN_68 = cam_wen[1] ? 1'h0 : _GEN_66; // @[el2_dec_decode_ctl.scala 329:28] wire _GEN_68 = cam_wen[1] ? 1'h0 : _GEN_66; // @[el2_dec_decode_ctl.scala 329:28]
wire _T_136 = nonblock_load_valid_m_delay & _T_117; // @[el2_dec_decode_ctl.scala 339:44] wire _T_136 = nonblock_load_valid_m_delay & _T_117; // @[el2_dec_decode_ctl.scala 339:44]
@ -46618,13 +46618,13 @@ module el2_dec_decode_ctl(
wire _T_144 = io_lsu_nonblock_load_inv_r & _T_143; // @[el2_dec_decode_ctl.scala 321:45] wire _T_144 = io_lsu_nonblock_load_inv_r & _T_143; // @[el2_dec_decode_ctl.scala 321:45]
wire cam_inv_reset_val_2 = _T_144 & cam_2_valid; // @[el2_dec_decode_ctl.scala 321:87] wire cam_inv_reset_val_2 = _T_144 & cam_2_valid; // @[el2_dec_decode_ctl.scala 321:87]
reg [4:0] cam_raw_2_bits_rd; // @[el2_dec_decode_ctl.scala 347:47] reg [4:0] cam_raw_2_bits_rd; // @[el2_dec_decode_ctl.scala 347:47]
wire _T_155 = r_d_i0rd == cam_raw_2_bits_rd; // @[el2_dec_decode_ctl.scala 334:80] wire _T_155 = r_d_bits_i0rd == cam_raw_2_bits_rd; // @[el2_dec_decode_ctl.scala 334:85]
wire _T_156 = i0_wen_r & _T_155; // @[el2_dec_decode_ctl.scala 334:64] wire _T_156 = i0_wen_r & _T_155; // @[el2_dec_decode_ctl.scala 334:64]
reg cam_raw_2_bits_wb; // @[el2_dec_decode_ctl.scala 347:47] reg cam_raw_2_bits_wb; // @[el2_dec_decode_ctl.scala 347:47]
wire _T_158 = _T_156 & cam_raw_2_bits_wb; // @[el2_dec_decode_ctl.scala 334:100] wire _T_158 = _T_156 & cam_raw_2_bits_wb; // @[el2_dec_decode_ctl.scala 334:105]
wire _T_159 = cam_inv_reset_val_2 | _T_158; // @[el2_dec_decode_ctl.scala 334:44] wire _T_159 = cam_inv_reset_val_2 | _T_158; // @[el2_dec_decode_ctl.scala 334:44]
wire _GEN_74 = _T_159 ? 1'h0 : cam_2_valid; // @[el2_dec_decode_ctl.scala 334:126] wire _GEN_74 = _T_159 ? 1'h0 : cam_2_valid; // @[el2_dec_decode_ctl.scala 334:131]
wire _GEN_77 = _T_159 ? 1'h0 : cam_raw_2_bits_wb; // @[el2_dec_decode_ctl.scala 334:126] wire _GEN_77 = _T_159 ? 1'h0 : cam_raw_2_bits_wb; // @[el2_dec_decode_ctl.scala 334:131]
wire _GEN_78 = cam_wen[2] | _GEN_74; // @[el2_dec_decode_ctl.scala 329:28] wire _GEN_78 = cam_wen[2] | _GEN_74; // @[el2_dec_decode_ctl.scala 329:28]
wire _GEN_79 = cam_wen[2] ? 1'h0 : _GEN_77; // @[el2_dec_decode_ctl.scala 329:28] wire _GEN_79 = cam_wen[2] ? 1'h0 : _GEN_77; // @[el2_dec_decode_ctl.scala 329:28]
wire _T_162 = nonblock_load_valid_m_delay & _T_143; // @[el2_dec_decode_ctl.scala 339:44] wire _T_162 = nonblock_load_valid_m_delay & _T_143; // @[el2_dec_decode_ctl.scala 339:44]
@ -46634,20 +46634,20 @@ module el2_dec_decode_ctl(
wire _T_170 = io_lsu_nonblock_load_inv_r & _T_169; // @[el2_dec_decode_ctl.scala 321:45] wire _T_170 = io_lsu_nonblock_load_inv_r & _T_169; // @[el2_dec_decode_ctl.scala 321:45]
wire cam_inv_reset_val_3 = _T_170 & cam_3_valid; // @[el2_dec_decode_ctl.scala 321:87] wire cam_inv_reset_val_3 = _T_170 & cam_3_valid; // @[el2_dec_decode_ctl.scala 321:87]
reg [4:0] cam_raw_3_bits_rd; // @[el2_dec_decode_ctl.scala 347:47] reg [4:0] cam_raw_3_bits_rd; // @[el2_dec_decode_ctl.scala 347:47]
wire _T_181 = r_d_i0rd == cam_raw_3_bits_rd; // @[el2_dec_decode_ctl.scala 334:80] wire _T_181 = r_d_bits_i0rd == cam_raw_3_bits_rd; // @[el2_dec_decode_ctl.scala 334:85]
wire _T_182 = i0_wen_r & _T_181; // @[el2_dec_decode_ctl.scala 334:64] wire _T_182 = i0_wen_r & _T_181; // @[el2_dec_decode_ctl.scala 334:64]
reg cam_raw_3_bits_wb; // @[el2_dec_decode_ctl.scala 347:47] reg cam_raw_3_bits_wb; // @[el2_dec_decode_ctl.scala 347:47]
wire _T_184 = _T_182 & cam_raw_3_bits_wb; // @[el2_dec_decode_ctl.scala 334:100] wire _T_184 = _T_182 & cam_raw_3_bits_wb; // @[el2_dec_decode_ctl.scala 334:105]
wire _T_185 = cam_inv_reset_val_3 | _T_184; // @[el2_dec_decode_ctl.scala 334:44] wire _T_185 = cam_inv_reset_val_3 | _T_184; // @[el2_dec_decode_ctl.scala 334:44]
wire _GEN_85 = _T_185 ? 1'h0 : cam_3_valid; // @[el2_dec_decode_ctl.scala 334:126] wire _GEN_85 = _T_185 ? 1'h0 : cam_3_valid; // @[el2_dec_decode_ctl.scala 334:131]
wire _GEN_88 = _T_185 ? 1'h0 : cam_raw_3_bits_wb; // @[el2_dec_decode_ctl.scala 334:126] wire _GEN_88 = _T_185 ? 1'h0 : cam_raw_3_bits_wb; // @[el2_dec_decode_ctl.scala 334:131]
wire _GEN_89 = cam_wen[3] | _GEN_85; // @[el2_dec_decode_ctl.scala 329:28] wire _GEN_89 = cam_wen[3] | _GEN_85; // @[el2_dec_decode_ctl.scala 329:28]
wire _GEN_90 = cam_wen[3] ? 1'h0 : _GEN_88; // @[el2_dec_decode_ctl.scala 329:28] wire _GEN_90 = cam_wen[3] ? 1'h0 : _GEN_88; // @[el2_dec_decode_ctl.scala 329:28]
wire _T_188 = nonblock_load_valid_m_delay & _T_169; // @[el2_dec_decode_ctl.scala 339:44] wire _T_188 = nonblock_load_valid_m_delay & _T_169; // @[el2_dec_decode_ctl.scala 339:44]
wire _T_190 = _T_188 & cam_3_valid; // @[el2_dec_decode_ctl.scala 339:100] wire _T_190 = _T_188 & cam_3_valid; // @[el2_dec_decode_ctl.scala 339:100]
wire nonblock_load_write_3 = _T_172 & cam_raw_3_valid; // @[el2_dec_decode_ctl.scala 348:71] wire nonblock_load_write_3 = _T_172 & cam_raw_3_valid; // @[el2_dec_decode_ctl.scala 348:71]
wire _T_195 = r_d_i0rd == io_dec_nonblock_load_waddr; // @[el2_dec_decode_ctl.scala 353:44] wire _T_195 = r_d_bits_i0rd == io_dec_nonblock_load_waddr; // @[el2_dec_decode_ctl.scala 353:49]
wire nonblock_load_cancel = _T_195 & i0_wen_r; // @[el2_dec_decode_ctl.scala 353:76] wire nonblock_load_cancel = _T_195 & i0_wen_r; // @[el2_dec_decode_ctl.scala 353:81]
wire _T_196 = nonblock_load_write_0 | nonblock_load_write_1; // @[el2_dec_decode_ctl.scala 354:95] wire _T_196 = nonblock_load_write_0 | nonblock_load_write_1; // @[el2_dec_decode_ctl.scala 354:95]
wire _T_197 = _T_196 | nonblock_load_write_2; // @[el2_dec_decode_ctl.scala 354:95] wire _T_197 = _T_196 | nonblock_load_write_2; // @[el2_dec_decode_ctl.scala 354:95]
wire _T_198 = _T_197 | nonblock_load_write_3; // @[el2_dec_decode_ctl.scala 354:95] wire _T_198 = _T_197 | nonblock_load_write_3; // @[el2_dec_decode_ctl.scala 354:95]
@ -46734,13 +46734,13 @@ module el2_dec_decode_ctl(
reg _T_339; // @[el2_dec_decode_ctl.scala 432:58] reg _T_339; // @[el2_dec_decode_ctl.scala 432:58]
wire lsu_decode_d = i0_legal_decode_d & i0_dp_lsu; // @[el2_dec_decode_ctl.scala 574:40] wire lsu_decode_d = i0_legal_decode_d & i0_dp_lsu; // @[el2_dec_decode_ctl.scala 574:40]
wire _T_902 = i0_dp_load | i0_dp_store; // @[el2_dec_decode_ctl.scala 788:43] wire _T_902 = i0_dp_load | i0_dp_store; // @[el2_dec_decode_ctl.scala 788:43]
reg x_d_i0v; // @[el2_lib.scala 524:16] reg x_d_bits_i0v; // @[el2_lib.scala 524:16]
wire _T_876 = io_dec_i0_rs1_en_d & x_d_i0v; // @[el2_dec_decode_ctl.scala 768:48] wire _T_876 = io_dec_i0_rs1_en_d & x_d_bits_i0v; // @[el2_dec_decode_ctl.scala 768:48]
wire _T_877 = x_d_i0rd == i0r_rs1; // @[el2_dec_decode_ctl.scala 768:70] wire _T_877 = x_d_bits_i0rd == i0r_rs1; // @[el2_dec_decode_ctl.scala 768:80]
wire i0_rs1_depend_i0_x = _T_876 & _T_877; // @[el2_dec_decode_ctl.scala 768:58] wire i0_rs1_depend_i0_x = _T_876 & _T_877; // @[el2_dec_decode_ctl.scala 768:63]
wire _T_878 = io_dec_i0_rs1_en_d & r_d_i0v; // @[el2_dec_decode_ctl.scala 769:48] wire _T_878 = io_dec_i0_rs1_en_d & r_d_bits_i0v; // @[el2_dec_decode_ctl.scala 769:48]
wire _T_879 = r_d_i0rd == i0r_rs1; // @[el2_dec_decode_ctl.scala 769:70] wire _T_879 = r_d_bits_i0rd == i0r_rs1; // @[el2_dec_decode_ctl.scala 769:80]
wire i0_rs1_depend_i0_r = _T_878 & _T_879; // @[el2_dec_decode_ctl.scala 769:58] wire i0_rs1_depend_i0_r = _T_878 & _T_879; // @[el2_dec_decode_ctl.scala 769:63]
wire [1:0] _T_891 = i0_rs1_depend_i0_r ? 2'h2 : 2'h0; // @[el2_dec_decode_ctl.scala 775:63] wire [1:0] _T_891 = i0_rs1_depend_i0_r ? 2'h2 : 2'h0; // @[el2_dec_decode_ctl.scala 775:63]
wire [1:0] i0_rs1_depth_d = i0_rs1_depend_i0_x ? 2'h1 : _T_891; // @[el2_dec_decode_ctl.scala 775:24] wire [1:0] i0_rs1_depth_d = i0_rs1_depend_i0_x ? 2'h1 : _T_891; // @[el2_dec_decode_ctl.scala 775:24]
wire _T_904 = _T_902 & i0_rs1_depth_d[0]; // @[el2_dec_decode_ctl.scala 788:58] wire _T_904 = _T_902 & i0_rs1_depth_d[0]; // @[el2_dec_decode_ctl.scala 788:58]
@ -46749,12 +46749,12 @@ module el2_dec_decode_ctl(
wire _T_887_load = i0_rs1_depend_i0_r & i0_r_c_load; // @[el2_dec_decode_ctl.scala 774:61] wire _T_887_load = i0_rs1_depend_i0_r & i0_r_c_load; // @[el2_dec_decode_ctl.scala 774:61]
wire i0_rs1_class_d_load = i0_rs1_depend_i0_x ? i0_x_c_load : _T_887_load; // @[el2_dec_decode_ctl.scala 774:24] wire i0_rs1_class_d_load = i0_rs1_depend_i0_x ? i0_x_c_load : _T_887_load; // @[el2_dec_decode_ctl.scala 774:24]
wire load_ldst_bypass_d = _T_904 & i0_rs1_class_d_load; // @[el2_dec_decode_ctl.scala 788:78] wire load_ldst_bypass_d = _T_904 & i0_rs1_class_d_load; // @[el2_dec_decode_ctl.scala 788:78]
wire _T_880 = io_dec_i0_rs2_en_d & x_d_i0v; // @[el2_dec_decode_ctl.scala 771:48] wire _T_880 = io_dec_i0_rs2_en_d & x_d_bits_i0v; // @[el2_dec_decode_ctl.scala 771:48]
wire _T_881 = x_d_i0rd == i0r_rs2; // @[el2_dec_decode_ctl.scala 771:70] wire _T_881 = x_d_bits_i0rd == i0r_rs2; // @[el2_dec_decode_ctl.scala 771:80]
wire i0_rs2_depend_i0_x = _T_880 & _T_881; // @[el2_dec_decode_ctl.scala 771:58] wire i0_rs2_depend_i0_x = _T_880 & _T_881; // @[el2_dec_decode_ctl.scala 771:63]
wire _T_882 = io_dec_i0_rs2_en_d & r_d_i0v; // @[el2_dec_decode_ctl.scala 772:48] wire _T_882 = io_dec_i0_rs2_en_d & r_d_bits_i0v; // @[el2_dec_decode_ctl.scala 772:48]
wire _T_883 = r_d_i0rd == i0r_rs2; // @[el2_dec_decode_ctl.scala 772:70] wire _T_883 = r_d_bits_i0rd == i0r_rs2; // @[el2_dec_decode_ctl.scala 772:80]
wire i0_rs2_depend_i0_r = _T_882 & _T_883; // @[el2_dec_decode_ctl.scala 772:58] wire i0_rs2_depend_i0_r = _T_882 & _T_883; // @[el2_dec_decode_ctl.scala 772:63]
wire [1:0] _T_900 = i0_rs2_depend_i0_r ? 2'h2 : 2'h0; // @[el2_dec_decode_ctl.scala 777:63] wire [1:0] _T_900 = i0_rs2_depend_i0_r ? 2'h2 : 2'h0; // @[el2_dec_decode_ctl.scala 777:63]
wire [1:0] i0_rs2_depth_d = i0_rs2_depend_i0_x ? 2'h1 : _T_900; // @[el2_dec_decode_ctl.scala 777:24] wire [1:0] i0_rs2_depth_d = i0_rs2_depend_i0_x ? 2'h1 : _T_900; // @[el2_dec_decode_ctl.scala 777:24]
wire _T_907 = i0_dp_store & i0_rs2_depth_d[0]; // @[el2_dec_decode_ctl.scala 789:43] wire _T_907 = i0_dp_store & i0_rs2_depth_d[0]; // @[el2_dec_decode_ctl.scala 789:43]
@ -46762,16 +46762,16 @@ module el2_dec_decode_ctl(
wire i0_rs2_class_d_load = i0_rs2_depend_i0_x ? i0_x_c_load : _T_896_load; // @[el2_dec_decode_ctl.scala 776:24] wire i0_rs2_class_d_load = i0_rs2_depend_i0_x ? i0_x_c_load : _T_896_load; // @[el2_dec_decode_ctl.scala 776:24]
wire store_data_bypass_d = _T_907 & i0_rs2_class_d_load; // @[el2_dec_decode_ctl.scala 789:63] wire store_data_bypass_d = _T_907 & i0_rs2_class_d_load; // @[el2_dec_decode_ctl.scala 789:63]
wire _T_349 = i0_dp_csr_clr | i0_dp_csr_set; // @[el2_dec_decode_ctl.scala 463:42] wire _T_349 = i0_dp_csr_clr | i0_dp_csr_set; // @[el2_dec_decode_ctl.scala 463:42]
reg r_d_csrwen; // @[el2_lib.scala 524:16] reg r_d_bits_csrwen; // @[el2_lib.scala 524:16]
reg r_d_i0valid; // @[el2_lib.scala 524:16] reg r_d_valid; // @[el2_lib.scala 524:16]
wire _T_352 = r_d_csrwen & r_d_i0valid; // @[el2_dec_decode_ctl.scala 471:34] wire _T_352 = r_d_bits_csrwen & r_d_valid; // @[el2_dec_decode_ctl.scala 471:39]
reg [11:0] r_d_csrwaddr; // @[el2_lib.scala 524:16] reg [11:0] r_d_bits_csrwaddr; // @[el2_lib.scala 524:16]
wire _T_355 = r_d_csrwaddr == 12'h300; // @[el2_dec_decode_ctl.scala 474:45] wire _T_355 = r_d_bits_csrwaddr == 12'h300; // @[el2_dec_decode_ctl.scala 474:50]
wire _T_356 = r_d_csrwaddr == 12'h304; // @[el2_dec_decode_ctl.scala 474:75] wire _T_356 = r_d_bits_csrwaddr == 12'h304; // @[el2_dec_decode_ctl.scala 474:85]
wire _T_357 = _T_355 | _T_356; // @[el2_dec_decode_ctl.scala 474:59] wire _T_357 = _T_355 | _T_356; // @[el2_dec_decode_ctl.scala 474:64]
wire _T_358 = _T_357 & r_d_csrwen; // @[el2_dec_decode_ctl.scala 474:90] wire _T_358 = _T_357 & r_d_bits_csrwen; // @[el2_dec_decode_ctl.scala 474:100]
wire _T_359 = _T_358 & r_d_i0valid; // @[el2_dec_decode_ctl.scala 474:103] wire _T_359 = _T_358 & r_d_valid; // @[el2_dec_decode_ctl.scala 474:118]
wire _T_360 = ~io_dec_tlu_i0_kill_writeb_wb; // @[el2_dec_decode_ctl.scala 474:119] wire _T_360 = ~io_dec_tlu_i0_kill_writeb_wb; // @[el2_dec_decode_ctl.scala 474:132]
reg csr_read_x; // @[el2_dec_decode_ctl.scala 476:52] reg csr_read_x; // @[el2_dec_decode_ctl.scala 476:52]
reg csr_clr_x; // @[el2_dec_decode_ctl.scala 477:51] reg csr_clr_x; // @[el2_dec_decode_ctl.scala 477:51]
reg csr_set_x; // @[el2_dec_decode_ctl.scala 478:51] reg csr_set_x; // @[el2_dec_decode_ctl.scala 478:51]
@ -46801,14 +46801,14 @@ module el2_dec_decode_ctl(
wire _T_426 = _T_425 | csr_write_x; // @[el2_dec_decode_ctl.scala 507:46] wire _T_426 = _T_425 | csr_write_x; // @[el2_dec_decode_ctl.scala 507:46]
wire _T_427 = _T_426 & csr_read_x; // @[el2_dec_decode_ctl.scala 507:61] wire _T_427 = _T_426 & csr_read_x; // @[el2_dec_decode_ctl.scala 507:61]
wire _T_428 = _T_427 | io_dec_tlu_wr_pause_r; // @[el2_dec_decode_ctl.scala 507:75] wire _T_428 = _T_427 | io_dec_tlu_wr_pause_r; // @[el2_dec_decode_ctl.scala 507:75]
reg r_d_csrwonly; // @[el2_lib.scala 524:16] reg r_d_bits_csrwonly; // @[el2_lib.scala 524:16]
wire _T_764 = r_d_i0v & r_d_i0load; // @[el2_dec_decode_ctl.scala 710:37] wire _T_764 = r_d_bits_i0v & r_d_bits_i0load; // @[el2_dec_decode_ctl.scala 710:42]
reg [31:0] i0_result_r_raw; // @[el2_lib.scala 514:16] reg [31:0] i0_result_r_raw; // @[el2_lib.scala 514:16]
wire [31:0] i0_result_corr_r = _T_764 ? io_lsu_result_corr_r : i0_result_r_raw; // @[el2_dec_decode_ctl.scala 710:27] wire [31:0] i0_result_corr_r = _T_764 ? io_lsu_result_corr_r : i0_result_r_raw; // @[el2_dec_decode_ctl.scala 710:27]
reg x_d_csrwonly; // @[el2_lib.scala 524:16] reg x_d_bits_csrwonly; // @[el2_lib.scala 524:16]
wire _T_432 = x_d_csrwonly | r_d_csrwonly; // @[el2_dec_decode_ctl.scala 516:38] wire _T_432 = x_d_bits_csrwonly | r_d_bits_csrwonly; // @[el2_dec_decode_ctl.scala 516:43]
reg wbd_csrwonly; // @[el2_lib.scala 524:16] reg wbd_bits_csrwonly; // @[el2_lib.scala 524:16]
wire prior_csr_write = _T_432 | wbd_csrwonly; // @[el2_dec_decode_ctl.scala 516:53] wire prior_csr_write = _T_432 | wbd_bits_csrwonly; // @[el2_dec_decode_ctl.scala 516:63]
wire debug_fence_raw = io_dec_debug_fence_d & io_dbg_cmd_wrdata[1]; // @[el2_dec_decode_ctl.scala 519:48] wire debug_fence_raw = io_dec_debug_fence_d & io_dbg_cmd_wrdata[1]; // @[el2_dec_decode_ctl.scala 519:48]
wire debug_fence = debug_fence_raw | debug_fence_i; // @[el2_dec_decode_ctl.scala 520:40] wire debug_fence = debug_fence_raw | debug_fence_i; // @[el2_dec_decode_ctl.scala 520:40]
wire _T_436 = i0_dp_presync | io_dec_tlu_presync_d; // @[el2_dec_decode_ctl.scala 523:34] wire _T_436 = i0_dp_presync | io_dec_tlu_presync_d; // @[el2_dec_decode_ctl.scala 523:34]
@ -46825,8 +46825,8 @@ module el2_dec_decode_ctl(
wire _T_473 = _T_472 | leak1_i0_stall; // @[el2_dec_decode_ctl.scala 541:95] wire _T_473 = _T_472 | leak1_i0_stall; // @[el2_dec_decode_ctl.scala 541:95]
wire _T_474 = _T_473 | io_dec_tlu_debug_stall; // @[el2_dec_decode_ctl.scala 542:20] wire _T_474 = _T_473 | io_dec_tlu_debug_stall; // @[el2_dec_decode_ctl.scala 542:20]
wire _T_475 = _T_474 | postsync_stall; // @[el2_dec_decode_ctl.scala 542:45] wire _T_475 = _T_474 | postsync_stall; // @[el2_dec_decode_ctl.scala 542:45]
wire prior_inflight = x_d_i0valid | r_d_i0valid; // @[el2_dec_decode_ctl.scala 564:41] wire prior_inflight = x_d_valid | r_d_valid; // @[el2_dec_decode_ctl.scala 564:41]
wire prior_inflight_eff = i0_dp_div ? x_d_i0valid : prior_inflight; // @[el2_dec_decode_ctl.scala 565:31] wire prior_inflight_eff = i0_dp_div ? x_d_valid : prior_inflight; // @[el2_dec_decode_ctl.scala 565:31]
wire presync_stall = i0_presync & prior_inflight_eff; // @[el2_dec_decode_ctl.scala 567:37] wire presync_stall = i0_presync & prior_inflight_eff; // @[el2_dec_decode_ctl.scala 567:37]
wire _T_476 = _T_475 | presync_stall; // @[el2_dec_decode_ctl.scala 542:62] wire _T_476 = _T_475 | presync_stall; // @[el2_dec_decode_ctl.scala 542:62]
wire _T_477 = i0_dp_fence | debug_fence; // @[el2_dec_decode_ctl.scala 543:19] wire _T_477 = i0_dp_fence | debug_fence; // @[el2_dec_decode_ctl.scala 543:19]
@ -46882,13 +46882,13 @@ module el2_dec_decode_ctl(
reg r_t_pmu_i0_br_unpred; // @[el2_lib.scala 524:16] reg r_t_pmu_i0_br_unpred; // @[el2_lib.scala 524:16]
reg [3:0] lsu_trigger_match_r; // @[el2_dec_decode_ctl.scala 602:36] reg [3:0] lsu_trigger_match_r; // @[el2_dec_decode_ctl.scala 602:36]
reg lsu_pmu_misaligned_r; // @[el2_dec_decode_ctl.scala 603:37] reg lsu_pmu_misaligned_r; // @[el2_dec_decode_ctl.scala 603:37]
reg r_d_i0store; // @[el2_lib.scala 524:16] reg r_d_bits_i0store; // @[el2_lib.scala 524:16]
wire _T_536 = r_d_i0load | r_d_i0store; // @[el2_dec_decode_ctl.scala 607:56] wire _T_536 = r_d_bits_i0load | r_d_bits_i0store; // @[el2_dec_decode_ctl.scala 607:61]
wire [3:0] _T_540 = {_T_536,_T_536,_T_536,_T_536}; // @[Cat.scala 29:58] wire [3:0] _T_540 = {_T_536,_T_536,_T_536,_T_536}; // @[Cat.scala 29:58]
wire [3:0] _T_541 = _T_540 & lsu_trigger_match_r; // @[el2_dec_decode_ctl.scala 607:72] wire [3:0] _T_541 = _T_540 & lsu_trigger_match_r; // @[el2_dec_decode_ctl.scala 607:82]
wire [3:0] _T_542 = _T_541 | r_t_i0trigger; // @[el2_dec_decode_ctl.scala 607:95] wire [3:0] _T_542 = _T_541 | r_t_i0trigger; // @[el2_dec_decode_ctl.scala 607:105]
reg r_d_i0div; // @[el2_lib.scala 524:16] reg r_d_bits_i0div; // @[el2_lib.scala 524:16]
wire _T_545 = r_d_i0div & r_d_i0valid; // @[el2_dec_decode_ctl.scala 613:53] wire _T_545 = r_d_bits_i0div & r_d_valid; // @[el2_dec_decode_ctl.scala 613:58]
wire _T_556 = i0r_rs1 != 5'h0; // @[el2_dec_decode_ctl.scala 624:49] wire _T_556 = i0r_rs1 != 5'h0; // @[el2_dec_decode_ctl.scala 624:49]
wire _T_558 = i0r_rs2 != 5'h0; // @[el2_dec_decode_ctl.scala 625:49] wire _T_558 = i0r_rs2 != 5'h0; // @[el2_dec_decode_ctl.scala 625:49]
wire _T_560 = i0r_rd != 5'h0; // @[el2_dec_decode_ctl.scala 626:48] wire _T_560 = i0r_rd != 5'h0; // @[el2_dec_decode_ctl.scala 626:48]
@ -46924,34 +46924,34 @@ module el2_dec_decode_ctl(
reg i0_r_c_alu; // @[Reg.scala 15:16] reg i0_r_c_alu; // @[Reg.scala 15:16]
wire _T_710 = |i0_pipe_en[1:0]; // @[el2_dec_decode_ctl.scala 656:49] wire _T_710 = |i0_pipe_en[1:0]; // @[el2_dec_decode_ctl.scala 656:49]
wire i0_r_data_en = i0_pipe_en[2] | io_clk_override; // @[el2_dec_decode_ctl.scala 658:50] wire i0_r_data_en = i0_pipe_en[2] | io_clk_override; // @[el2_dec_decode_ctl.scala 658:50]
reg x_d_i0store; // @[el2_lib.scala 524:16] reg x_d_bits_i0store; // @[el2_lib.scala 524:16]
reg x_d_i0div; // @[el2_lib.scala 524:16] reg x_d_bits_i0div; // @[el2_lib.scala 524:16]
reg x_d_csrwen; // @[el2_lib.scala 524:16] reg x_d_bits_csrwen; // @[el2_lib.scala 524:16]
reg [11:0] x_d_csrwaddr; // @[el2_lib.scala 524:16] reg [11:0] x_d_bits_csrwaddr; // @[el2_lib.scala 524:16]
wire _T_733 = x_d_i0v & _T_743; // @[el2_dec_decode_ctl.scala 680:37] wire _T_733 = x_d_bits_i0v & _T_743; // @[el2_dec_decode_ctl.scala 680:47]
wire _T_737 = x_d_i0valid & _T_743; // @[el2_dec_decode_ctl.scala 681:37] wire _T_737 = x_d_valid & _T_743; // @[el2_dec_decode_ctl.scala 681:33]
wire _T_756 = ~r_d_i0div; // @[el2_dec_decode_ctl.scala 696:49] wire _T_756 = ~r_d_bits_i0div; // @[el2_dec_decode_ctl.scala 696:49]
wire _T_757 = i0_wen_r & _T_756; // @[el2_dec_decode_ctl.scala 696:47] wire _T_757 = i0_wen_r & _T_756; // @[el2_dec_decode_ctl.scala 696:47]
wire _T_758 = ~i0_load_kill_wen_r; // @[el2_dec_decode_ctl.scala 696:65] wire _T_758 = ~i0_load_kill_wen_r; // @[el2_dec_decode_ctl.scala 696:70]
wire _T_761 = x_d_i0v & x_d_i0load; // @[el2_dec_decode_ctl.scala 705:42] wire _T_761 = x_d_bits_i0v & x_d_bits_i0load; // @[el2_dec_decode_ctl.scala 705:47]
wire _T_768 = io_i0_ap_predict_nt & _T_561; // @[el2_dec_decode_ctl.scala 711:52] wire _T_768 = io_i0_ap_predict_nt & _T_561; // @[el2_dec_decode_ctl.scala 711:52]
wire [11:0] _T_781 = {10'h0,io_dec_i0_pc4_d,i0_ap_pc2}; // @[Cat.scala 29:58] wire [11:0] _T_781 = {10'h0,io_dec_i0_pc4_d,i0_ap_pc2}; // @[Cat.scala 29:58]
reg [11:0] last_br_immed_x; // @[el2_lib.scala 514:16] reg [11:0] last_br_immed_x; // @[el2_lib.scala 514:16]
wire _T_799 = x_d_i0div & x_d_i0valid; // @[el2_dec_decode_ctl.scala 719:40] wire _T_799 = x_d_bits_i0div & x_d_valid; // @[el2_dec_decode_ctl.scala 719:45]
wire div_e1_to_r = _T_799 | _T_545; // @[el2_dec_decode_ctl.scala 719:55] wire div_e1_to_r = _T_799 | _T_545; // @[el2_dec_decode_ctl.scala 719:58]
wire _T_802 = x_d_i0rd == 5'h0; // @[el2_dec_decode_ctl.scala 721:69] wire _T_802 = x_d_bits_i0rd == 5'h0; // @[el2_dec_decode_ctl.scala 721:77]
wire _T_803 = _T_799 & _T_802; // @[el2_dec_decode_ctl.scala 721:57] wire _T_803 = _T_799 & _T_802; // @[el2_dec_decode_ctl.scala 721:60]
wire _T_805 = _T_799 & io_dec_tlu_flush_lower_r; // @[el2_dec_decode_ctl.scala 722:30] wire _T_805 = _T_799 & io_dec_tlu_flush_lower_r; // @[el2_dec_decode_ctl.scala 722:33]
wire _T_806 = _T_803 | _T_805; // @[el2_dec_decode_ctl.scala 721:86] wire _T_806 = _T_803 | _T_805; // @[el2_dec_decode_ctl.scala 721:94]
wire _T_808 = _T_545 & io_dec_tlu_flush_lower_r; // @[el2_dec_decode_ctl.scala 723:30] wire _T_808 = _T_545 & io_dec_tlu_flush_lower_r; // @[el2_dec_decode_ctl.scala 723:33]
wire _T_809 = _T_808 & io_dec_tlu_i0_kill_writeb_r; // @[el2_dec_decode_ctl.scala 723:57] wire _T_809 = _T_808 & io_dec_tlu_i0_kill_writeb_r; // @[el2_dec_decode_ctl.scala 723:60]
wire div_flush = _T_806 | _T_809; // @[el2_dec_decode_ctl.scala 722:59] wire div_flush = _T_806 | _T_809; // @[el2_dec_decode_ctl.scala 722:62]
wire _T_810 = io_dec_div_active & div_flush; // @[el2_dec_decode_ctl.scala 727:51] wire _T_810 = io_dec_div_active & div_flush; // @[el2_dec_decode_ctl.scala 727:51]
wire _T_811 = ~div_e1_to_r; // @[el2_dec_decode_ctl.scala 728:26] wire _T_811 = ~div_e1_to_r; // @[el2_dec_decode_ctl.scala 728:26]
wire _T_812 = io_dec_div_active & _T_811; // @[el2_dec_decode_ctl.scala 728:24] wire _T_812 = io_dec_div_active & _T_811; // @[el2_dec_decode_ctl.scala 728:24]
wire _T_813 = r_d_i0rd == io_div_waddr_wb; // @[el2_dec_decode_ctl.scala 728:51] wire _T_813 = r_d_bits_i0rd == io_div_waddr_wb; // @[el2_dec_decode_ctl.scala 728:56]
wire _T_814 = _T_812 & _T_813; // @[el2_dec_decode_ctl.scala 728:39] wire _T_814 = _T_812 & _T_813; // @[el2_dec_decode_ctl.scala 728:39]
wire _T_815 = _T_814 & i0_wen_r; // @[el2_dec_decode_ctl.scala 728:72] wire _T_815 = _T_814 & i0_wen_r; // @[el2_dec_decode_ctl.scala 728:77]
wire nonblock_div_cancel = _T_810 | _T_815; // @[el2_dec_decode_ctl.scala 727:65] wire nonblock_div_cancel = _T_810 | _T_815; // @[el2_dec_decode_ctl.scala 727:65]
wire i0_div_decode_d = i0_legal_decode_d & i0_dp_div; // @[el2_dec_decode_ctl.scala 731:55] wire i0_div_decode_d = i0_legal_decode_d & i0_dp_div; // @[el2_dec_decode_ctl.scala 731:55]
wire _T_817 = ~io_exu_div_wren; // @[el2_dec_decode_ctl.scala 733:62] wire _T_817 = ~io_exu_div_wren; // @[el2_dec_decode_ctl.scala 733:62]
@ -47250,7 +47250,7 @@ module el2_dec_decode_ctl(
assign io_dec_i0_alu_decode_d = i0_exulegal_decode_d & i0_dp_alu; // @[el2_dec_decode_ctl.scala 572:26] assign io_dec_i0_alu_decode_d = i0_exulegal_decode_d & i0_dp_alu; // @[el2_dec_decode_ctl.scala 572:26]
assign io_dec_i0_rs1_bypass_data_d = _T_967 | _T_966; // @[el2_dec_decode_ctl.scala 807:31] assign io_dec_i0_rs1_bypass_data_d = _T_967 | _T_966; // @[el2_dec_decode_ctl.scala 807:31]
assign io_dec_i0_rs2_bypass_data_d = _T_984 | _T_983; // @[el2_dec_decode_ctl.scala 812:31] assign io_dec_i0_rs2_bypass_data_d = _T_984 | _T_983; // @[el2_dec_decode_ctl.scala 812:31]
assign io_dec_i0_waddr_r = r_d_i0rd; // @[el2_dec_decode_ctl.scala 694:27] assign io_dec_i0_waddr_r = r_d_bits_i0rd; // @[el2_dec_decode_ctl.scala 694:27]
assign io_dec_i0_wen_r = _T_757 & _T_758; // @[el2_dec_decode_ctl.scala 696:32] assign io_dec_i0_wen_r = _T_757 & _T_758; // @[el2_dec_decode_ctl.scala 696:32]
assign io_dec_i0_wdata_r = _T_764 ? io_lsu_result_corr_r : i0_result_r_raw; // @[el2_dec_decode_ctl.scala 697:26] assign io_dec_i0_wdata_r = _T_764 ? io_lsu_result_corr_r : i0_result_r_raw; // @[el2_dec_decode_ctl.scala 697:26]
assign io_dec_i0_select_pc_d = _T_41 ? 1'h0 : i0_dp_raw_pc; // @[el2_dec_decode_ctl.scala 271:25] assign io_dec_i0_select_pc_d = _T_41 ? 1'h0 : i0_dp_raw_pc; // @[el2_dec_decode_ctl.scala 271:25]
@ -47282,10 +47282,10 @@ module el2_dec_decode_ctl(
assign io_dec_csr_any_unq_d = i0_dp_csr_read | i0_csr_write; // @[el2_dec_decode_ctl.scala 529:24] assign io_dec_csr_any_unq_d = i0_dp_csr_read | i0_csr_write; // @[el2_dec_decode_ctl.scala 529:24]
assign io_dec_csr_rdaddr_d = io_dec_i0_instr_d[31:20]; // @[el2_dec_decode_ctl.scala 466:24] assign io_dec_csr_rdaddr_d = io_dec_i0_instr_d[31:20]; // @[el2_dec_decode_ctl.scala 466:24]
assign io_dec_csr_wen_r = _T_352 & _T_754; // @[el2_dec_decode_ctl.scala 471:20] assign io_dec_csr_wen_r = _T_352 & _T_754; // @[el2_dec_decode_ctl.scala 471:20]
assign io_dec_csr_wraddr_r = r_d_csrwaddr; // @[el2_dec_decode_ctl.scala 467:23] assign io_dec_csr_wraddr_r = r_d_bits_csrwaddr; // @[el2_dec_decode_ctl.scala 467:23]
assign io_dec_csr_wrdata_r = r_d_csrwonly ? i0_result_corr_r : write_csr_data; // @[el2_dec_decode_ctl.scala 514:24] assign io_dec_csr_wrdata_r = r_d_bits_csrwonly ? i0_result_corr_r : write_csr_data; // @[el2_dec_decode_ctl.scala 514:24]
assign io_dec_csr_stall_int_ff = _T_359 & _T_360; // @[el2_dec_decode_ctl.scala 474:27] assign io_dec_csr_stall_int_ff = _T_359 & _T_360; // @[el2_dec_decode_ctl.scala 474:27]
assign io_dec_tlu_i0_valid_r = r_d_i0valid & _T_743; // @[el2_dec_decode_ctl.scala 578:29] assign io_dec_tlu_i0_valid_r = r_d_valid & _T_743; // @[el2_dec_decode_ctl.scala 578:29]
assign io_dec_tlu_packet_r_legal = io_dec_tlu_flush_lower_wb ? 1'h0 : r_t_legal; // @[el2_dec_decode_ctl.scala 612:39] assign io_dec_tlu_packet_r_legal = io_dec_tlu_flush_lower_wb ? 1'h0 : r_t_legal; // @[el2_dec_decode_ctl.scala 612:39]
assign io_dec_tlu_packet_r_icaf = io_dec_tlu_flush_lower_wb ? 1'h0 : r_t_icaf; // @[el2_dec_decode_ctl.scala 612:39] assign io_dec_tlu_packet_r_icaf = io_dec_tlu_flush_lower_wb ? 1'h0 : r_t_icaf; // @[el2_dec_decode_ctl.scala 612:39]
assign io_dec_tlu_packet_r_icaf_f1 = io_dec_tlu_flush_lower_wb ? 1'h0 : r_t_icaf_f1; // @[el2_dec_decode_ctl.scala 612:39] assign io_dec_tlu_packet_r_icaf_f1 = io_dec_tlu_flush_lower_wb ? 1'h0 : r_t_icaf_f1; // @[el2_dec_decode_ctl.scala 612:39]
@ -47294,7 +47294,7 @@ module el2_dec_decode_ctl(
assign io_dec_tlu_packet_r_i0trigger = io_dec_tlu_flush_lower_wb ? 4'h0 : _T_542; // @[el2_dec_decode_ctl.scala 612:39] assign io_dec_tlu_packet_r_i0trigger = io_dec_tlu_flush_lower_wb ? 4'h0 : _T_542; // @[el2_dec_decode_ctl.scala 612:39]
assign io_dec_tlu_packet_r_pmu_i0_itype = io_dec_tlu_flush_lower_wb ? 4'h0 : r_t_pmu_i0_itype; // @[el2_dec_decode_ctl.scala 612:39] assign io_dec_tlu_packet_r_pmu_i0_itype = io_dec_tlu_flush_lower_wb ? 4'h0 : r_t_pmu_i0_itype; // @[el2_dec_decode_ctl.scala 612:39]
assign io_dec_tlu_packet_r_pmu_i0_br_unpred = io_dec_tlu_flush_lower_wb ? 1'h0 : r_t_pmu_i0_br_unpred; // @[el2_dec_decode_ctl.scala 612:39] assign io_dec_tlu_packet_r_pmu_i0_br_unpred = io_dec_tlu_flush_lower_wb ? 1'h0 : r_t_pmu_i0_br_unpred; // @[el2_dec_decode_ctl.scala 612:39]
assign io_dec_tlu_packet_r_pmu_divide = r_d_i0div & r_d_i0valid; // @[el2_dec_decode_ctl.scala 612:39 el2_dec_decode_ctl.scala 613:39] assign io_dec_tlu_packet_r_pmu_divide = r_d_bits_i0div & r_d_valid; // @[el2_dec_decode_ctl.scala 612:39 el2_dec_decode_ctl.scala 613:39]
assign io_dec_tlu_packet_r_pmu_lsu_misaligned = io_dec_tlu_flush_lower_wb ? 1'h0 : lsu_pmu_misaligned_r; // @[el2_dec_decode_ctl.scala 612:39] assign io_dec_tlu_packet_r_pmu_lsu_misaligned = io_dec_tlu_flush_lower_wb ? 1'h0 : lsu_pmu_misaligned_r; // @[el2_dec_decode_ctl.scala 612:39]
assign io_dec_tlu_i0_pc_r = dec_i0_pc_r; // @[el2_dec_decode_ctl.scala 759:27] assign io_dec_tlu_i0_pc_r = dec_i0_pc_r; // @[el2_dec_decode_ctl.scala 759:27]
assign io_dec_illegal_inst = _T_465; // @[el2_dec_decode_ctl.scala 536:23] assign io_dec_illegal_inst = _T_465; // @[el2_dec_decode_ctl.scala 536:23]
@ -47435,7 +47435,7 @@ initial begin
_RAND_6 = {1{`RANDOM}}; _RAND_6 = {1{`RANDOM}};
postsync_stall = _RAND_6[0:0]; postsync_stall = _RAND_6[0:0];
_RAND_7 = {1{`RANDOM}}; _RAND_7 = {1{`RANDOM}};
x_d_i0valid = _RAND_7[0:0]; x_d_valid = _RAND_7[0:0];
_RAND_8 = {1{`RANDOM}}; _RAND_8 = {1{`RANDOM}};
flush_final_r = _RAND_8[0:0]; flush_final_r = _RAND_8[0:0];
_RAND_9 = {1{`RANDOM}}; _RAND_9 = {1{`RANDOM}};
@ -47457,19 +47457,19 @@ initial begin
_RAND_17 = {1{`RANDOM}}; _RAND_17 = {1{`RANDOM}};
cam_raw_3_valid = _RAND_17[0:0]; cam_raw_3_valid = _RAND_17[0:0];
_RAND_18 = {1{`RANDOM}}; _RAND_18 = {1{`RANDOM}};
x_d_i0load = _RAND_18[0:0]; x_d_bits_i0load = _RAND_18[0:0];
_RAND_19 = {1{`RANDOM}}; _RAND_19 = {1{`RANDOM}};
x_d_i0rd = _RAND_19[4:0]; x_d_bits_i0rd = _RAND_19[4:0];
_RAND_20 = {1{`RANDOM}}; _RAND_20 = {1{`RANDOM}};
_T_701 = _RAND_20[2:0]; _T_701 = _RAND_20[2:0];
_RAND_21 = {1{`RANDOM}}; _RAND_21 = {1{`RANDOM}};
nonblock_load_valid_m_delay = _RAND_21[0:0]; nonblock_load_valid_m_delay = _RAND_21[0:0];
_RAND_22 = {1{`RANDOM}}; _RAND_22 = {1{`RANDOM}};
r_d_i0load = _RAND_22[0:0]; r_d_bits_i0load = _RAND_22[0:0];
_RAND_23 = {1{`RANDOM}}; _RAND_23 = {1{`RANDOM}};
r_d_i0v = _RAND_23[0:0]; r_d_bits_i0v = _RAND_23[0:0];
_RAND_24 = {1{`RANDOM}}; _RAND_24 = {1{`RANDOM}};
r_d_i0rd = _RAND_24[4:0]; r_d_bits_i0rd = _RAND_24[4:0];
_RAND_25 = {1{`RANDOM}}; _RAND_25 = {1{`RANDOM}};
cam_raw_0_bits_rd = _RAND_25[4:0]; cam_raw_0_bits_rd = _RAND_25[4:0];
_RAND_26 = {1{`RANDOM}}; _RAND_26 = {1{`RANDOM}};
@ -47491,17 +47491,17 @@ initial begin
_RAND_34 = {1{`RANDOM}}; _RAND_34 = {1{`RANDOM}};
_T_339 = _RAND_34[0:0]; _T_339 = _RAND_34[0:0];
_RAND_35 = {1{`RANDOM}}; _RAND_35 = {1{`RANDOM}};
x_d_i0v = _RAND_35[0:0]; x_d_bits_i0v = _RAND_35[0:0];
_RAND_36 = {1{`RANDOM}}; _RAND_36 = {1{`RANDOM}};
i0_x_c_load = _RAND_36[0:0]; i0_x_c_load = _RAND_36[0:0];
_RAND_37 = {1{`RANDOM}}; _RAND_37 = {1{`RANDOM}};
i0_r_c_load = _RAND_37[0:0]; i0_r_c_load = _RAND_37[0:0];
_RAND_38 = {1{`RANDOM}}; _RAND_38 = {1{`RANDOM}};
r_d_csrwen = _RAND_38[0:0]; r_d_bits_csrwen = _RAND_38[0:0];
_RAND_39 = {1{`RANDOM}}; _RAND_39 = {1{`RANDOM}};
r_d_i0valid = _RAND_39[0:0]; r_d_valid = _RAND_39[0:0];
_RAND_40 = {1{`RANDOM}}; _RAND_40 = {1{`RANDOM}};
r_d_csrwaddr = _RAND_40[11:0]; r_d_bits_csrwaddr = _RAND_40[11:0];
_RAND_41 = {1{`RANDOM}}; _RAND_41 = {1{`RANDOM}};
csr_read_x = _RAND_41[0:0]; csr_read_x = _RAND_41[0:0];
_RAND_42 = {1{`RANDOM}}; _RAND_42 = {1{`RANDOM}};
@ -47517,13 +47517,13 @@ initial begin
_RAND_47 = {1{`RANDOM}}; _RAND_47 = {1{`RANDOM}};
csr_rddata_x = _RAND_47[31:0]; csr_rddata_x = _RAND_47[31:0];
_RAND_48 = {1{`RANDOM}}; _RAND_48 = {1{`RANDOM}};
r_d_csrwonly = _RAND_48[0:0]; r_d_bits_csrwonly = _RAND_48[0:0];
_RAND_49 = {1{`RANDOM}}; _RAND_49 = {1{`RANDOM}};
i0_result_r_raw = _RAND_49[31:0]; i0_result_r_raw = _RAND_49[31:0];
_RAND_50 = {1{`RANDOM}}; _RAND_50 = {1{`RANDOM}};
x_d_csrwonly = _RAND_50[0:0]; x_d_bits_csrwonly = _RAND_50[0:0];
_RAND_51 = {1{`RANDOM}}; _RAND_51 = {1{`RANDOM}};
wbd_csrwonly = _RAND_51[0:0]; wbd_bits_csrwonly = _RAND_51[0:0];
_RAND_52 = {1{`RANDOM}}; _RAND_52 = {1{`RANDOM}};
_T_465 = _RAND_52[31:0]; _T_465 = _RAND_52[31:0];
_RAND_53 = {1{`RANDOM}}; _RAND_53 = {1{`RANDOM}};
@ -47563,9 +47563,9 @@ initial begin
_RAND_70 = {1{`RANDOM}}; _RAND_70 = {1{`RANDOM}};
lsu_pmu_misaligned_r = _RAND_70[0:0]; lsu_pmu_misaligned_r = _RAND_70[0:0];
_RAND_71 = {1{`RANDOM}}; _RAND_71 = {1{`RANDOM}};
r_d_i0store = _RAND_71[0:0]; r_d_bits_i0store = _RAND_71[0:0];
_RAND_72 = {1{`RANDOM}}; _RAND_72 = {1{`RANDOM}};
r_d_i0div = _RAND_72[0:0]; r_d_bits_i0div = _RAND_72[0:0];
_RAND_73 = {1{`RANDOM}}; _RAND_73 = {1{`RANDOM}};
i0_x_c_mul = _RAND_73[0:0]; i0_x_c_mul = _RAND_73[0:0];
_RAND_74 = {1{`RANDOM}}; _RAND_74 = {1{`RANDOM}};
@ -47575,13 +47575,13 @@ initial begin
_RAND_76 = {1{`RANDOM}}; _RAND_76 = {1{`RANDOM}};
i0_r_c_alu = _RAND_76[0:0]; i0_r_c_alu = _RAND_76[0:0];
_RAND_77 = {1{`RANDOM}}; _RAND_77 = {1{`RANDOM}};
x_d_i0store = _RAND_77[0:0]; x_d_bits_i0store = _RAND_77[0:0];
_RAND_78 = {1{`RANDOM}}; _RAND_78 = {1{`RANDOM}};
x_d_i0div = _RAND_78[0:0]; x_d_bits_i0div = _RAND_78[0:0];
_RAND_79 = {1{`RANDOM}}; _RAND_79 = {1{`RANDOM}};
x_d_csrwen = _RAND_79[0:0]; x_d_bits_csrwen = _RAND_79[0:0];
_RAND_80 = {1{`RANDOM}}; _RAND_80 = {1{`RANDOM}};
x_d_csrwaddr = _RAND_80[11:0]; x_d_bits_csrwaddr = _RAND_80[11:0];
_RAND_81 = {1{`RANDOM}}; _RAND_81 = {1{`RANDOM}};
last_br_immed_x = _RAND_81[11:0]; last_br_immed_x = _RAND_81[11:0];
_RAND_82 = {1{`RANDOM}}; _RAND_82 = {1{`RANDOM}};
@ -47625,7 +47625,7 @@ initial begin
postsync_stall = 1'h0; postsync_stall = 1'h0;
end end
if (reset) begin if (reset) begin
x_d_i0valid = 1'h0; x_d_valid = 1'h0;
end end
if (reset) begin if (reset) begin
flush_final_r = 1'h0; flush_final_r = 1'h0;
@ -47658,10 +47658,10 @@ initial begin
cam_raw_3_valid = 1'h0; cam_raw_3_valid = 1'h0;
end end
if (reset) begin if (reset) begin
x_d_i0load = 1'h0; x_d_bits_i0load = 1'h0;
end end
if (reset) begin if (reset) begin
x_d_i0rd = 5'h0; x_d_bits_i0rd = 5'h0;
end end
if (reset) begin if (reset) begin
_T_701 = 3'h0; _T_701 = 3'h0;
@ -47670,13 +47670,13 @@ initial begin
nonblock_load_valid_m_delay = 1'h0; nonblock_load_valid_m_delay = 1'h0;
end end
if (reset) begin if (reset) begin
r_d_i0load = 1'h0; r_d_bits_i0load = 1'h0;
end end
if (reset) begin if (reset) begin
r_d_i0v = 1'h0; r_d_bits_i0v = 1'h0;
end end
if (reset) begin if (reset) begin
r_d_i0rd = 5'h0; r_d_bits_i0rd = 5'h0;
end end
if (reset) begin if (reset) begin
cam_raw_0_bits_rd = 5'h0; cam_raw_0_bits_rd = 5'h0;
@ -47709,16 +47709,16 @@ initial begin
_T_339 = 1'h0; _T_339 = 1'h0;
end end
if (reset) begin if (reset) begin
x_d_i0v = 1'h0; x_d_bits_i0v = 1'h0;
end end
if (reset) begin if (reset) begin
r_d_csrwen = 1'h0; r_d_bits_csrwen = 1'h0;
end end
if (reset) begin if (reset) begin
r_d_i0valid = 1'h0; r_d_valid = 1'h0;
end end
if (reset) begin if (reset) begin
r_d_csrwaddr = 12'h0; r_d_bits_csrwaddr = 12'h0;
end end
if (reset) begin if (reset) begin
csr_read_x = 1'h0; csr_read_x = 1'h0;
@ -47742,16 +47742,16 @@ initial begin
csr_rddata_x = 32'h0; csr_rddata_x = 32'h0;
end end
if (reset) begin if (reset) begin
r_d_csrwonly = 1'h0; r_d_bits_csrwonly = 1'h0;
end end
if (reset) begin if (reset) begin
i0_result_r_raw = 32'h0; i0_result_r_raw = 32'h0;
end end
if (reset) begin if (reset) begin
x_d_csrwonly = 1'h0; x_d_bits_csrwonly = 1'h0;
end end
if (reset) begin if (reset) begin
wbd_csrwonly = 1'h0; wbd_bits_csrwonly = 1'h0;
end end
if (reset) begin if (reset) begin
_T_465 = 32'h0; _T_465 = 32'h0;
@ -47811,22 +47811,22 @@ initial begin
lsu_pmu_misaligned_r = 1'h0; lsu_pmu_misaligned_r = 1'h0;
end end
if (reset) begin if (reset) begin
r_d_i0store = 1'h0; r_d_bits_i0store = 1'h0;
end end
if (reset) begin if (reset) begin
r_d_i0div = 1'h0; r_d_bits_i0div = 1'h0;
end end
if (reset) begin if (reset) begin
x_d_i0store = 1'h0; x_d_bits_i0store = 1'h0;
end end
if (reset) begin if (reset) begin
x_d_i0div = 1'h0; x_d_bits_i0div = 1'h0;
end end
if (reset) begin if (reset) begin
x_d_csrwen = 1'h0; x_d_bits_csrwen = 1'h0;
end end
if (reset) begin if (reset) begin
x_d_csrwaddr = 12'h0; x_d_bits_csrwaddr = 12'h0;
end end
if (reset) begin if (reset) begin
last_br_immed_x = 12'h0; last_br_immed_x = 12'h0;
@ -47939,9 +47939,9 @@ end // initial
end end
always @(posedge rvclkhdr_7_io_l1clk or posedge reset) begin always @(posedge rvclkhdr_7_io_l1clk or posedge reset) begin
if (reset) begin if (reset) begin
x_d_i0valid <= 1'h0; x_d_valid <= 1'h0;
end else begin end else begin
x_d_i0valid <= io_dec_i0_decode_d; x_d_valid <= io_dec_i0_decode_d;
end end
end end
always @(posedge rvclkhdr_io_l1clk or posedge reset) begin always @(posedge rvclkhdr_io_l1clk or posedge reset) begin
@ -48032,16 +48032,16 @@ end // initial
end end
always @(posedge rvclkhdr_7_io_l1clk or posedge reset) begin always @(posedge rvclkhdr_7_io_l1clk or posedge reset) begin
if (reset) begin if (reset) begin
x_d_i0load <= 1'h0; x_d_bits_i0load <= 1'h0;
end else begin end else begin
x_d_i0load <= i0_dp_load & i0_legal_decode_d; x_d_bits_i0load <= i0_dp_load & i0_legal_decode_d;
end end
end end
always @(posedge rvclkhdr_7_io_l1clk or posedge reset) begin always @(posedge rvclkhdr_7_io_l1clk or posedge reset) begin
if (reset) begin if (reset) begin
x_d_i0rd <= 5'h0; x_d_bits_i0rd <= 5'h0;
end else begin end else begin
x_d_i0rd <= io_dec_i0_instr_d[11:7]; x_d_bits_i0rd <= io_dec_i0_instr_d[11:7];
end end
end end
always @(posedge io_active_clk or posedge reset) begin always @(posedge io_active_clk or posedge reset) begin
@ -48060,31 +48060,31 @@ end // initial
end end
always @(posedge rvclkhdr_8_io_l1clk or posedge reset) begin always @(posedge rvclkhdr_8_io_l1clk or posedge reset) begin
if (reset) begin if (reset) begin
r_d_i0load <= 1'h0; r_d_bits_i0load <= 1'h0;
end else begin end else begin
r_d_i0load <= x_d_i0load; r_d_bits_i0load <= x_d_bits_i0load;
end end
end end
always @(posedge rvclkhdr_8_io_l1clk or posedge reset) begin always @(posedge rvclkhdr_8_io_l1clk or posedge reset) begin
if (reset) begin if (reset) begin
r_d_i0v <= 1'h0; r_d_bits_i0v <= 1'h0;
end else begin end else begin
r_d_i0v <= _T_733 & _T_280; r_d_bits_i0v <= _T_733 & _T_280;
end end
end end
always @(posedge rvclkhdr_8_io_l1clk or posedge reset) begin always @(posedge rvclkhdr_8_io_l1clk or posedge reset) begin
if (reset) begin if (reset) begin
r_d_i0rd <= 5'h0; r_d_bits_i0rd <= 5'h0;
end else begin end else begin
r_d_i0rd <= x_d_i0rd; r_d_bits_i0rd <= x_d_bits_i0rd;
end end
end end
always @(posedge io_free_clk or posedge reset) begin always @(posedge io_free_clk or posedge reset) begin
if (reset) begin if (reset) begin
cam_raw_0_bits_rd <= 5'h0; cam_raw_0_bits_rd <= 5'h0;
end else if (cam_wen[0]) begin end else if (cam_wen[0]) begin
if (x_d_i0load) begin if (x_d_bits_i0load) begin
cam_raw_0_bits_rd <= x_d_i0rd; cam_raw_0_bits_rd <= x_d_bits_i0rd;
end else begin end else begin
cam_raw_0_bits_rd <= 5'h0; cam_raw_0_bits_rd <= 5'h0;
end end
@ -48103,8 +48103,8 @@ end // initial
if (reset) begin if (reset) begin
cam_raw_1_bits_rd <= 5'h0; cam_raw_1_bits_rd <= 5'h0;
end else if (cam_wen[1]) begin end else if (cam_wen[1]) begin
if (x_d_i0load) begin if (x_d_bits_i0load) begin
cam_raw_1_bits_rd <= x_d_i0rd; cam_raw_1_bits_rd <= x_d_bits_i0rd;
end else begin end else begin
cam_raw_1_bits_rd <= 5'h0; cam_raw_1_bits_rd <= 5'h0;
end end
@ -48123,8 +48123,8 @@ end // initial
if (reset) begin if (reset) begin
cam_raw_2_bits_rd <= 5'h0; cam_raw_2_bits_rd <= 5'h0;
end else if (cam_wen[2]) begin end else if (cam_wen[2]) begin
if (x_d_i0load) begin if (x_d_bits_i0load) begin
cam_raw_2_bits_rd <= x_d_i0rd; cam_raw_2_bits_rd <= x_d_bits_i0rd;
end else begin end else begin
cam_raw_2_bits_rd <= 5'h0; cam_raw_2_bits_rd <= 5'h0;
end end
@ -48143,8 +48143,8 @@ end // initial
if (reset) begin if (reset) begin
cam_raw_3_bits_rd <= 5'h0; cam_raw_3_bits_rd <= 5'h0;
end else if (cam_wen[3]) begin end else if (cam_wen[3]) begin
if (x_d_i0load) begin if (x_d_bits_i0load) begin
cam_raw_3_bits_rd <= x_d_i0rd; cam_raw_3_bits_rd <= x_d_bits_i0rd;
end else begin end else begin
cam_raw_3_bits_rd <= 5'h0; cam_raw_3_bits_rd <= 5'h0;
end end
@ -48175,30 +48175,30 @@ end // initial
end end
always @(posedge rvclkhdr_7_io_l1clk or posedge reset) begin always @(posedge rvclkhdr_7_io_l1clk or posedge reset) begin
if (reset) begin if (reset) begin
x_d_i0v <= 1'h0; x_d_bits_i0v <= 1'h0;
end else begin end else begin
x_d_i0v <= i0_rd_en_d & i0_legal_decode_d; x_d_bits_i0v <= i0_rd_en_d & i0_legal_decode_d;
end end
end end
always @(posedge rvclkhdr_8_io_l1clk or posedge reset) begin always @(posedge rvclkhdr_8_io_l1clk or posedge reset) begin
if (reset) begin if (reset) begin
r_d_csrwen <= 1'h0; r_d_bits_csrwen <= 1'h0;
end else begin end else begin
r_d_csrwen <= x_d_csrwen; r_d_bits_csrwen <= x_d_bits_csrwen;
end end
end end
always @(posedge rvclkhdr_8_io_l1clk or posedge reset) begin always @(posedge rvclkhdr_8_io_l1clk or posedge reset) begin
if (reset) begin if (reset) begin
r_d_i0valid <= 1'h0; r_d_valid <= 1'h0;
end else begin end else begin
r_d_i0valid <= _T_737 & _T_280; r_d_valid <= _T_737 & _T_280;
end end
end end
always @(posedge rvclkhdr_8_io_l1clk or posedge reset) begin always @(posedge rvclkhdr_8_io_l1clk or posedge reset) begin
if (reset) begin if (reset) begin
r_d_csrwaddr <= 12'h0; r_d_bits_csrwaddr <= 12'h0;
end else begin end else begin
r_d_csrwaddr <= x_d_csrwaddr; r_d_bits_csrwaddr <= x_d_bits_csrwaddr;
end end
end end
always @(posedge io_active_clk or posedge reset) begin always @(posedge io_active_clk or posedge reset) begin
@ -48254,9 +48254,9 @@ end // initial
end end
always @(posedge rvclkhdr_8_io_l1clk or posedge reset) begin always @(posedge rvclkhdr_8_io_l1clk or posedge reset) begin
if (reset) begin if (reset) begin
r_d_csrwonly <= 1'h0; r_d_bits_csrwonly <= 1'h0;
end else begin end else begin
r_d_csrwonly <= x_d_csrwonly; r_d_bits_csrwonly <= x_d_bits_csrwonly;
end end
end end
always @(posedge rvclkhdr_10_io_l1clk or posedge reset) begin always @(posedge rvclkhdr_10_io_l1clk or posedge reset) begin
@ -48270,16 +48270,16 @@ end // initial
end end
always @(posedge rvclkhdr_7_io_l1clk or posedge reset) begin always @(posedge rvclkhdr_7_io_l1clk or posedge reset) begin
if (reset) begin if (reset) begin
x_d_csrwonly <= 1'h0; x_d_bits_csrwonly <= 1'h0;
end else begin end else begin
x_d_csrwonly <= i0_csr_write_only_d & io_dec_i0_decode_d; x_d_bits_csrwonly <= i0_csr_write_only_d & io_dec_i0_decode_d;
end end
end end
always @(posedge rvclkhdr_9_io_l1clk or posedge reset) begin always @(posedge rvclkhdr_9_io_l1clk or posedge reset) begin
if (reset) begin if (reset) begin
wbd_csrwonly <= 1'h0; wbd_bits_csrwonly <= 1'h0;
end else begin end else begin
wbd_csrwonly <= r_d_csrwonly; wbd_bits_csrwonly <= r_d_bits_csrwonly;
end end
end end
always @(posedge rvclkhdr_4_io_l1clk or posedge reset) begin always @(posedge rvclkhdr_4_io_l1clk or posedge reset) begin
@ -48419,44 +48419,44 @@ end // initial
end end
always @(posedge rvclkhdr_8_io_l1clk or posedge reset) begin always @(posedge rvclkhdr_8_io_l1clk or posedge reset) begin
if (reset) begin if (reset) begin
r_d_i0store <= 1'h0; r_d_bits_i0store <= 1'h0;
end else begin end else begin
r_d_i0store <= x_d_i0store; r_d_bits_i0store <= x_d_bits_i0store;
end end
end end
always @(posedge rvclkhdr_8_io_l1clk or posedge reset) begin always @(posedge rvclkhdr_8_io_l1clk or posedge reset) begin
if (reset) begin if (reset) begin
r_d_i0div <= 1'h0; r_d_bits_i0div <= 1'h0;
end else begin end else begin
r_d_i0div <= x_d_i0div; r_d_bits_i0div <= x_d_bits_i0div;
end end
end end
always @(posedge rvclkhdr_7_io_l1clk or posedge reset) begin always @(posedge rvclkhdr_7_io_l1clk or posedge reset) begin
if (reset) begin if (reset) begin
x_d_i0store <= 1'h0; x_d_bits_i0store <= 1'h0;
end else begin end else begin
x_d_i0store <= i0_dp_store & i0_legal_decode_d; x_d_bits_i0store <= i0_dp_store & i0_legal_decode_d;
end end
end end
always @(posedge rvclkhdr_7_io_l1clk or posedge reset) begin always @(posedge rvclkhdr_7_io_l1clk or posedge reset) begin
if (reset) begin if (reset) begin
x_d_i0div <= 1'h0; x_d_bits_i0div <= 1'h0;
end else begin end else begin
x_d_i0div <= i0_dp_div & i0_legal_decode_d; x_d_bits_i0div <= i0_dp_div & i0_legal_decode_d;
end end
end end
always @(posedge rvclkhdr_7_io_l1clk or posedge reset) begin always @(posedge rvclkhdr_7_io_l1clk or posedge reset) begin
if (reset) begin if (reset) begin
x_d_csrwen <= 1'h0; x_d_bits_csrwen <= 1'h0;
end else begin end else begin
x_d_csrwen <= io_dec_csr_wen_unq_d & i0_legal_decode_d; x_d_bits_csrwen <= io_dec_csr_wen_unq_d & i0_legal_decode_d;
end end
end end
always @(posedge rvclkhdr_7_io_l1clk or posedge reset) begin always @(posedge rvclkhdr_7_io_l1clk or posedge reset) begin
if (reset) begin if (reset) begin
x_d_csrwaddr <= 12'h0; x_d_bits_csrwaddr <= 12'h0;
end else begin end else begin
x_d_csrwaddr <= io_dec_i0_instr_d[31:20]; x_d_bits_csrwaddr <= io_dec_i0_instr_d[31:20];
end end
end end
always @(posedge rvclkhdr_11_io_l1clk or posedge reset) begin always @(posedge rvclkhdr_11_io_l1clk or posedge reset) begin

View File

@ -133,11 +133,11 @@ class el2_dec_decode_ctl extends Module with el2_lib with RequireAsyncReset{
val x_t_in = Wire(new el2_trap_pkt_t) val x_t_in = Wire(new el2_trap_pkt_t)
val r_t = Wire(new el2_trap_pkt_t) val r_t = Wire(new el2_trap_pkt_t)
val r_t_in = Wire(new el2_trap_pkt_t) val r_t_in = Wire(new el2_trap_pkt_t)
val d_d = Wire(new el2_dest_pkt_t) val d_d = Wire(Valid(new el2_dest_pkt_t))
val x_d = Wire(new el2_dest_pkt_t) val x_d = Wire(Valid(new el2_dest_pkt_t))
val r_d = Wire(new el2_dest_pkt_t) val r_d = Wire(Valid(new el2_dest_pkt_t))
val r_d_in = Wire(new el2_dest_pkt_t) val r_d_in = Wire(Valid(new el2_dest_pkt_t))
val wbd = Wire(new el2_dest_pkt_t) val wbd = Wire(Valid(new el2_dest_pkt_t))
val i0_d_c = Wire(new el2_class_pkt_t) val i0_d_c = Wire(new el2_class_pkt_t)
val i0_rs1_class_d = Wire(new el2_class_pkt_t) val i0_rs1_class_d = Wire(new el2_class_pkt_t)
val i0_rs2_class_d = Wire(new el2_class_pkt_t) val i0_rs2_class_d = Wire(new el2_class_pkt_t)
@ -311,12 +311,12 @@ class el2_dec_decode_ctl extends Module with el2_lib with RequireAsyncReset{
val cam_data_reset = io.lsu_nonblock_load_data_valid | io.lsu_nonblock_load_data_error val cam_data_reset = io.lsu_nonblock_load_data_valid | io.lsu_nonblock_load_data_error
val cam_data_reset_tag = io.lsu_nonblock_load_data_tag val cam_data_reset_tag = io.lsu_nonblock_load_data_tag
val nonblock_load_rd = Mux(x_d.i0load.asBool, x_d.i0rd, 0.U(5.W)) // rd data val nonblock_load_rd = Mux(x_d.bits.i0load.asBool, x_d.bits.i0rd, 0.U(5.W)) // rd data
val load_data_tag = io.lsu_nonblock_load_data_tag val load_data_tag = io.lsu_nonblock_load_data_tag
// case of multiple loads to same dest ie. x1 ... you have to invalidate the older one // case of multiple loads to same dest ie. x1 ... you have to invalidate the older one
// don't writeback a nonblock load // don't writeback a nonblock load
val nonblock_load_valid_m_delay=withClock(io.active_clk){RegEnable(io.lsu_nonblock_load_valid_m,0.U, i0_r_ctl_en.asBool)} val nonblock_load_valid_m_delay=withClock(io.active_clk){RegEnable(io.lsu_nonblock_load_valid_m,0.U, i0_r_ctl_en.asBool)}
val i0_load_kill_wen_r = nonblock_load_valid_m_delay & r_d.i0load val i0_load_kill_wen_r = nonblock_load_valid_m_delay & r_d.bits.i0load
for(i <- 0 until LSU_NUM_NBLOAD){ for(i <- 0 until LSU_NUM_NBLOAD){
cam_inv_reset_val(i) := cam_inv_reset & (cam_inv_reset_tag === cam(i).bits.tag) & cam(i).valid cam_inv_reset_val(i) := cam_inv_reset & (cam_inv_reset_tag === cam(i).bits.tag) & cam(i).valid
cam_data_reset_val(i) := cam_data_reset & (cam_data_reset_tag === cam(i).bits.tag) & cam_raw(i).valid cam_data_reset_val(i) := cam_data_reset & (cam_data_reset_tag === cam(i).bits.tag) & cam_raw(i).valid
@ -331,7 +331,7 @@ class el2_dec_decode_ctl extends Module with el2_lib with RequireAsyncReset{
cam_in(i).bits.wb := 0.U(1.W) cam_in(i).bits.wb := 0.U(1.W)
cam_in(i).bits.tag := cam_write_tag cam_in(i).bits.tag := cam_write_tag
cam_in(i).bits.rd := nonblock_load_rd cam_in(i).bits.rd := nonblock_load_rd
}.elsewhen(cam_inv_reset_val(i).asBool || (i0_wen_r.asBool && (r_d_in.i0rd === cam(i).bits.rd) && cam(i).bits.wb.asBool)){ }.elsewhen(cam_inv_reset_val(i).asBool || (i0_wen_r.asBool && (r_d_in.bits.i0rd === cam(i).bits.rd) && cam(i).bits.wb.asBool)){
cam_in(i).valid := 0.U cam_in(i).valid := 0.U
}.otherwise{ }.otherwise{
cam_in(i) := cam(i) cam_in(i) := cam(i)
@ -350,7 +350,7 @@ class el2_dec_decode_ctl extends Module with el2_lib with RequireAsyncReset{
io.dec_nonblock_load_waddr:=0.U(5.W) io.dec_nonblock_load_waddr:=0.U(5.W)
// cancel if any younger inst (including another nonblock) committing this cycle // cancel if any younger inst (including another nonblock) committing this cycle
val nonblock_load_cancel = ((r_d_in.i0rd === io.dec_nonblock_load_waddr) & i0_wen_r) val nonblock_load_cancel = ((r_d_in.bits.i0rd === io.dec_nonblock_load_waddr) & i0_wen_r)
io.dec_nonblock_load_wen := (io.lsu_nonblock_load_data_valid && nonblock_load_write.reduce(_|_).asBool && !nonblock_load_cancel) io.dec_nonblock_load_wen := (io.lsu_nonblock_load_data_valid && nonblock_load_write.reduce(_|_).asBool && !nonblock_load_cancel)
val i0_nonblock_boundary_stall = ((nonblock_load_rd===i0r.rs1) & io.lsu_nonblock_load_valid_m & io.dec_i0_rs1_en_d)|((nonblock_load_rd===i0r.rs2) & io.lsu_nonblock_load_valid_m & io.dec_i0_rs2_en_d) val i0_nonblock_boundary_stall = ((nonblock_load_rd===i0r.rs1) & io.lsu_nonblock_load_valid_m & io.dec_i0_rs1_en_d)|((nonblock_load_rd===i0r.rs2) & io.lsu_nonblock_load_valid_m & io.dec_i0_rs2_en_d)
@ -464,14 +464,14 @@ class el2_dec_decode_ctl extends Module with el2_lib with RequireAsyncReset{
//dec_csr_wen_unq_d assigned as csr_write above //dec_csr_wen_unq_d assigned as csr_write above
io.dec_csr_rdaddr_d := i0(31,20) io.dec_csr_rdaddr_d := i0(31,20)
io.dec_csr_wraddr_r := r_d.csrwaddr //r_d is a el2_dest_pkt io.dec_csr_wraddr_r := r_d.bits.csrwaddr //r_d is a el2_dest_pkt
// make sure csr doesn't write same cycle as dec_tlu_flush_lower_wb // make sure csr doesn't write same cycle as dec_tlu_flush_lower_wb
// also use valid so it's flushable // also use valid so it's flushable
io.dec_csr_wen_r := r_d.csrwen & r_d.i0valid & !io.dec_tlu_i0_kill_writeb_r; io.dec_csr_wen_r := r_d.bits.csrwen & r_d.valid & !io.dec_tlu_i0_kill_writeb_r;
// If we are writing MIE or MSTATUS, hold off the external interrupt for a cycle on the write. // If we are writing MIE or MSTATUS, hold off the external interrupt for a cycle on the write.
io.dec_csr_stall_int_ff := ((r_d.csrwaddr === "h300".U) | (r_d.csrwaddr === "h304".U)) & r_d.csrwen & r_d.i0valid & !io.dec_tlu_i0_kill_writeb_wb; io.dec_csr_stall_int_ff := ((r_d.bits.csrwaddr === "h300".U) | (r_d.bits.csrwaddr === "h304".U)) & r_d.bits.csrwen & r_d.valid & !io.dec_tlu_i0_kill_writeb_wb;
val csr_read_x = withClock(io.active_clk){RegNext(csr_ren_qual_d,init=0.B)} val csr_read_x = withClock(io.active_clk){RegNext(csr_ren_qual_d,init=0.B)}
val csr_clr_x = withClock(io.active_clk){RegNext(csr_clr_d, init=0.B)} val csr_clr_x = withClock(io.active_clk){RegNext(csr_clr_d, init=0.B)}
@ -511,9 +511,9 @@ class el2_dec_decode_ctl extends Module with el2_lib with RequireAsyncReset{
val pause_stall = pause_state val pause_stall = pause_state
// for csr write only data is produced by the alu // for csr write only data is produced by the alu
io.dec_csr_wrdata_r := Mux(r_d.csrwonly.asBool,i0_result_corr_r,write_csr_data) io.dec_csr_wrdata_r := Mux(r_d.bits.csrwonly.asBool,i0_result_corr_r,write_csr_data)
val prior_csr_write = x_d.csrwonly | r_d.csrwonly | wbd.csrwonly; val prior_csr_write = x_d.bits.csrwonly | r_d.bits.csrwonly | wbd.bits.csrwonly;
val debug_fence_i = io.dec_debug_fence_d & io.dbg_cmd_wrdata(0) val debug_fence_i = io.dec_debug_fence_d & io.dbg_cmd_wrdata(0)
val debug_fence_raw = io.dec_debug_fence_d & io.dbg_cmd_wrdata(1) val debug_fence_raw = io.dec_debug_fence_d & io.dbg_cmd_wrdata(1)
@ -559,8 +559,8 @@ class el2_dec_decode_ctl extends Module with el2_lib with RequireAsyncReset{
io.dec_pmu_postsync_stall := postsync_stall.asBool io.dec_pmu_postsync_stall := postsync_stall.asBool
io.dec_pmu_presync_stall := presync_stall.asBool io.dec_pmu_presync_stall := presync_stall.asBool
val prior_inflight_x = x_d.i0valid val prior_inflight_x = x_d.valid
val prior_inflight_wb = r_d.i0valid val prior_inflight_wb = r_d.valid
val prior_inflight = prior_inflight_x | prior_inflight_wb val prior_inflight = prior_inflight_x | prior_inflight_wb
val prior_inflight_eff = Mux(i0_dp.div,prior_inflight_x,prior_inflight) val prior_inflight_eff = Mux(i0_dp.div,prior_inflight_x,prior_inflight)
@ -575,7 +575,7 @@ class el2_dec_decode_ctl extends Module with el2_lib with RequireAsyncReset{
mul_decode_d := i0_exulegal_decode_d & i0_dp.mul mul_decode_d := i0_exulegal_decode_d & i0_dp.mul
div_decode_d := i0_exulegal_decode_d & i0_dp.div div_decode_d := i0_exulegal_decode_d & i0_dp.div
io.dec_tlu_i0_valid_r := r_d.i0valid & !io.dec_tlu_flush_lower_wb io.dec_tlu_i0_valid_r := r_d.valid & !io.dec_tlu_flush_lower_wb
//traps for TLU (tlu stuff) //traps for TLU (tlu stuff)
d_t.legal := i0_legal_decode_d d_t.legal := i0_legal_decode_d
@ -604,13 +604,13 @@ class el2_dec_decode_ctl extends Module with el2_lib with RequireAsyncReset{
r_t_in := r_t r_t_in := r_t
r_t_in.i0trigger := (repl(4,(r_d.i0load | r_d.i0store)) & lsu_trigger_match_r) | r_t.i0trigger r_t_in.i0trigger := (repl(4,(r_d.bits.i0load | r_d.bits.i0store)) & lsu_trigger_match_r) | r_t.i0trigger
r_t_in.pmu_lsu_misaligned := lsu_pmu_misaligned_r // only valid if a load/store is valid in DC3 stage r_t_in.pmu_lsu_misaligned := lsu_pmu_misaligned_r // only valid if a load/store is valid in DC3 stage
when (io.dec_tlu_flush_lower_wb.asBool) {r_t_in := 0.U.asTypeOf(r_t_in) } when (io.dec_tlu_flush_lower_wb.asBool) {r_t_in := 0.U.asTypeOf(r_t_in) }
io.dec_tlu_packet_r := r_t_in io.dec_tlu_packet_r := r_t_in
io.dec_tlu_packet_r.pmu_divide := r_d.i0div & r_d.i0valid io.dec_tlu_packet_r.pmu_divide := r_d.bits.i0div & r_d.valid
// end tlu stuff // end tlu stuff
flush_final_r := withClock(data_gate_clk){RegNext(io.exu_flush_final, 0.U)} flush_final_r := withClock(data_gate_clk){RegNext(io.exu_flush_final, 0.U)}
@ -662,52 +662,52 @@ class el2_dec_decode_ctl extends Module with el2_lib with RequireAsyncReset{
io.dec_data_en := Cat(i0_x_data_en, i0_r_data_en) io.dec_data_en := Cat(i0_x_data_en, i0_r_data_en)
io.dec_ctl_en := Cat(i0_x_ctl_en, i0_r_ctl_en) io.dec_ctl_en := Cat(i0_x_ctl_en, i0_r_ctl_en)
d_d.i0rd := i0r.rd d_d.bits.i0rd := i0r.rd
d_d.i0v := i0_rd_en_d & i0_legal_decode_d d_d.bits.i0v := i0_rd_en_d & i0_legal_decode_d
d_d.i0valid := io.dec_i0_decode_d // has flush_final_r d_d.valid := io.dec_i0_decode_d // has flush_final_r
d_d.i0load := i0_dp.load & i0_legal_decode_d d_d.bits.i0load := i0_dp.load & i0_legal_decode_d
d_d.i0store := i0_dp.store & i0_legal_decode_d d_d.bits.i0store := i0_dp.store & i0_legal_decode_d
d_d.i0div := i0_dp.div & i0_legal_decode_d d_d.bits.i0div := i0_dp.div & i0_legal_decode_d
d_d.csrwen := io.dec_csr_wen_unq_d & i0_legal_decode_d d_d.bits.csrwen := io.dec_csr_wen_unq_d & i0_legal_decode_d
d_d.csrwonly := i0_csr_write_only_d & io.dec_i0_decode_d d_d.bits.csrwonly := i0_csr_write_only_d & io.dec_i0_decode_d
d_d.csrwaddr := i0(31,20) d_d.bits.csrwaddr := i0(31,20)
x_d := rvdffe(d_d, i0_x_ctl_en.asBool,clock,io.scan_mode) x_d := rvdffe(d_d, i0_x_ctl_en.asBool,clock,io.scan_mode)
val x_d_in = Wire(new el2_dest_pkt_t) val x_d_in = Wire(Valid(new el2_dest_pkt_t))
x_d_in := x_d x_d_in := x_d
x_d_in.i0v := x_d.i0v & !io.dec_tlu_flush_lower_wb & !io.dec_tlu_flush_lower_r x_d_in.bits.i0v := x_d.bits.i0v & !io.dec_tlu_flush_lower_wb & !io.dec_tlu_flush_lower_r
x_d_in.i0valid := x_d.i0valid & !io.dec_tlu_flush_lower_wb & !io.dec_tlu_flush_lower_r x_d_in.valid := x_d.valid & !io.dec_tlu_flush_lower_wb & !io.dec_tlu_flush_lower_r
r_d := rvdffe(x_d_in,i0_r_ctl_en.asBool,clock,io.scan_mode) r_d := rvdffe(x_d_in,i0_r_ctl_en.asBool,clock,io.scan_mode)
r_d_in := r_d r_d_in := r_d
r_d_in.i0rd := r_d.i0rd r_d_in.bits.i0rd := r_d.bits.i0rd
r_d_in.i0v := (r_d.i0v & !io.dec_tlu_flush_lower_wb) r_d_in.bits.i0v := (r_d.bits.i0v & !io.dec_tlu_flush_lower_wb)
r_d_in.i0valid := (r_d.i0valid & !io.dec_tlu_flush_lower_wb) r_d_in.valid := (r_d.valid & !io.dec_tlu_flush_lower_wb)
r_d_in.i0load := r_d.i0load & !io.dec_tlu_flush_lower_wb r_d_in.bits.i0load := r_d.bits.i0load & !io.dec_tlu_flush_lower_wb
r_d_in.i0store := r_d.i0store & !io.dec_tlu_flush_lower_wb r_d_in.bits.i0store := r_d.bits.i0store & !io.dec_tlu_flush_lower_wb
wbd := rvdffe(r_d_in,i0_wb_ctl_en.asBool,clock,io.scan_mode) wbd := rvdffe(r_d_in,i0_wb_ctl_en.asBool,clock,io.scan_mode)
io.dec_i0_waddr_r := r_d_in.i0rd io.dec_i0_waddr_r := r_d_in.bits.i0rd
i0_wen_r := r_d_in.i0v & !io.dec_tlu_i0_kill_writeb_r i0_wen_r := r_d_in.bits.i0v & !io.dec_tlu_i0_kill_writeb_r
io.dec_i0_wen_r := i0_wen_r & !r_d_in.i0div & !i0_load_kill_wen_r // don't write a nonblock load 1st time down the pipe io.dec_i0_wen_r := i0_wen_r & !r_d_in.bits.i0div & !i0_load_kill_wen_r // don't write a nonblock load 1st time down the pipe
io.dec_i0_wdata_r := i0_result_corr_r io.dec_i0_wdata_r := i0_result_corr_r
val i0_result_r_raw = rvdffe(i0_result_x,i0_r_data_en.asBool,clock,io.scan_mode) val i0_result_r_raw = rvdffe(i0_result_x,i0_r_data_en.asBool,clock,io.scan_mode)
if ( LOAD_TO_USE_PLUS1 == 1 ) { if ( LOAD_TO_USE_PLUS1 == 1 ) {
i0_result_x := io.exu_i0_result_x i0_result_x := io.exu_i0_result_x
i0_result_r := Mux((r_d.i0v & r_d.i0load).asBool,io.lsu_result_m, i0_result_r_raw) i0_result_r := Mux((r_d.bits.i0v & r_d.bits.i0load).asBool,io.lsu_result_m, i0_result_r_raw)
} }
else { else {
i0_result_x := Mux((x_d.i0v & x_d.i0load).asBool,io.lsu_result_m,io.exu_i0_result_x) i0_result_x := Mux((x_d.bits.i0v & x_d.bits.i0load).asBool,io.lsu_result_m,io.exu_i0_result_x)
i0_result_r := i0_result_r_raw i0_result_r := i0_result_r_raw
} }
// correct lsu load data - don't use for bypass, do pass down the pipe // correct lsu load data - don't use for bypass, do pass down the pipe
i0_result_corr_r := Mux((r_d.i0v & r_d.i0load).asBool,io.lsu_result_corr_r,i0_result_r_raw) i0_result_corr_r := Mux((r_d.bits.i0v & r_d.bits.i0load).asBool,io.lsu_result_corr_r,i0_result_r_raw)
io.dec_i0_br_immed_d := Mux((io.i0_ap.predict_nt & !i0_dp.jal).asBool,i0_br_offset,Cat(repl(10,0.U),i0_ap_pc4,i0_ap_pc2)) io.dec_i0_br_immed_d := Mux((io.i0_ap.predict_nt & !i0_dp.jal).asBool,i0_br_offset,Cat(repl(10,0.U),i0_ap_pc4,i0_ap_pc2))
val last_br_immed_d = WireInit(UInt(12.W),0.U) val last_br_immed_d = WireInit(UInt(12.W),0.U)
last_br_immed_d := Mux((io.i0_ap.predict_nt).asBool,Cat(repl(10,0.U),i0_ap_pc4,i0_ap_pc2),i0_br_offset) last_br_immed_d := Mux((io.i0_ap.predict_nt).asBool,Cat(repl(10,0.U),i0_ap_pc4,i0_ap_pc2),i0_br_offset)
@ -716,16 +716,16 @@ class el2_dec_decode_ctl extends Module with el2_lib with RequireAsyncReset{
// divide stuff // divide stuff
val div_e1_to_r = (x_d.i0div & x_d.i0valid) | (r_d.i0div & r_d.i0valid) val div_e1_to_r = (x_d.bits.i0div & x_d.valid) | (r_d.bits.i0div & r_d.valid)
val div_flush = (x_d.i0div & x_d.i0valid & (x_d.i0rd === 0.U(5.W))) | val div_flush = (x_d.bits.i0div & x_d.valid & (x_d.bits.i0rd === 0.U(5.W))) |
(x_d.i0div & x_d.i0valid & io.dec_tlu_flush_lower_r ) | (x_d.bits.i0div & x_d.valid & io.dec_tlu_flush_lower_r ) |
(r_d.i0div & r_d.i0valid & io.dec_tlu_flush_lower_r & io.dec_tlu_i0_kill_writeb_r) (r_d.bits.i0div & r_d.valid & io.dec_tlu_flush_lower_r & io.dec_tlu_i0_kill_writeb_r)
// cancel if any younger inst committing this cycle to same dest as nonblock divide // cancel if any younger inst committing this cycle to same dest as nonblock divide
val nonblock_div_cancel = (io.dec_div_active & div_flush) | val nonblock_div_cancel = (io.dec_div_active & div_flush) |
(io.dec_div_active & !div_e1_to_r & (r_d.i0rd === io.div_waddr_wb) & i0_wen_r) (io.dec_div_active & !div_e1_to_r & (r_d.bits.i0rd === io.div_waddr_wb) & i0_wen_r)
io.dec_div_cancel := nonblock_div_cancel.asBool io.dec_div_cancel := nonblock_div_cancel.asBool
val i0_div_decode_d = i0_legal_decode_d & i0_dp.div val i0_div_decode_d = i0_legal_decode_d & i0_dp.div
@ -765,11 +765,11 @@ class el2_dec_decode_ctl extends Module with el2_lib with RequireAsyncReset{
// scheduling logic for primary alu's // scheduling logic for primary alu's
val i0_rs1_depend_i0_x = io.dec_i0_rs1_en_d & x_d.i0v & (x_d.i0rd === i0r.rs1) val i0_rs1_depend_i0_x = io.dec_i0_rs1_en_d & x_d.bits.i0v & (x_d.bits.i0rd === i0r.rs1)
val i0_rs1_depend_i0_r = io.dec_i0_rs1_en_d & r_d.i0v & (r_d.i0rd === i0r.rs1) val i0_rs1_depend_i0_r = io.dec_i0_rs1_en_d & r_d.bits.i0v & (r_d.bits.i0rd === i0r.rs1)
val i0_rs2_depend_i0_x = io.dec_i0_rs2_en_d & x_d.i0v & (x_d.i0rd === i0r.rs2) val i0_rs2_depend_i0_x = io.dec_i0_rs2_en_d & x_d.bits.i0v & (x_d.bits.i0rd === i0r.rs2)
val i0_rs2_depend_i0_r = io.dec_i0_rs2_en_d & r_d.i0v & (r_d.i0rd === i0r.rs2) val i0_rs2_depend_i0_r = io.dec_i0_rs2_en_d & r_d.bits.i0v & (r_d.bits.i0rd === i0r.rs2)
// order the producers as follows: , i0_x, i0_r, i0_wb // order the producers as follows: , i0_x, i0_r, i0_wb
i0_rs1_class_d := Mux(i0_rs1_depend_i0_x.asBool,i0_x_c,Mux(i0_rs1_depend_i0_r.asBool, i0_r_c, 0.U.asTypeOf(i0_rs1_class_d))) i0_rs1_class_d := Mux(i0_rs1_depend_i0_x.asBool,i0_x_c,Mux(i0_rs1_depend_i0_r.asBool, i0_r_c, 0.U.asTypeOf(i0_rs1_class_d)))
i0_rs1_depth_d := Mux(i0_rs1_depend_i0_x.asBool,1.U(2.W),Mux(i0_rs1_depend_i0_r.asBool, 2.U(2.W), 0.U)) i0_rs1_depth_d := Mux(i0_rs1_depend_i0_x.asBool,1.U(2.W),Mux(i0_rs1_depend_i0_r.asBool, 2.U(2.W), 0.U))

View File

@ -107,7 +107,7 @@ class el2_dest_pkt_t extends Bundle {
val i0store = UInt(1.W) val i0store = UInt(1.W)
val i0div = UInt(1.W) val i0div = UInt(1.W)
val i0v = UInt(1.W) val i0v = UInt(1.W)
val i0valid = UInt(1.W) // val i0valid = UInt(1.W)
val csrwen = UInt(1.W) val csrwen = UInt(1.W)
val csrwonly = UInt(1.W) val csrwonly = UInt(1.W)
val csrwaddr = UInt(12.W) val csrwaddr = UInt(12.W)