dec update

This commit is contained in:
​Laraib Khan 2020-11-24 16:56:00 +05:00
parent 23069873a9
commit e4ec02558c
6 changed files with 365 additions and 365 deletions

View File

@ -66869,14 +66869,14 @@ circuit el2_swerv_wrapper :
i0_rs2_depth_d <= UInt<1>("h00")
wire cam_wen : UInt<4>
cam_wen <= UInt<1>("h00")
wire cam : {valid : UInt<1>, wb : UInt<1>, tag : UInt<3>, rd : UInt<5>}[4] @[el2_dec_decode_ctl.scala 147:17]
wire cam : {valid : UInt<1>, bits : {wb : UInt<1>, tag : UInt<3>, rd : UInt<5>}}[4] @[el2_dec_decode_ctl.scala 147:17]
wire cam_write : UInt<1>
cam_write <= UInt<1>("h00")
wire cam_inv_reset_val : UInt<1>[4] @[el2_dec_decode_ctl.scala 149:29]
wire cam_data_reset_val : UInt<1>[4] @[el2_dec_decode_ctl.scala 150:30]
wire nonblock_load_write : UInt<1>[4] @[el2_dec_decode_ctl.scala 151:31]
wire cam_raw : {valid : UInt<1>, wb : UInt<1>, tag : UInt<3>, rd : UInt<5>}[4] @[el2_dec_decode_ctl.scala 152:20]
wire cam_in : {valid : UInt<1>, wb : UInt<1>, tag : UInt<3>, rd : UInt<5>}[4] @[el2_dec_decode_ctl.scala 153:20]
wire cam_raw : {valid : UInt<1>, bits : {wb : UInt<1>, tag : UInt<3>, rd : UInt<5>}}[4] @[el2_dec_decode_ctl.scala 152:20]
wire cam_in : {valid : UInt<1>, bits : {wb : UInt<1>, tag : UInt<3>, rd : UInt<5>}}[4] @[el2_dec_decode_ctl.scala 153:20]
wire i0_dp : {alu : UInt<1>, rs1 : UInt<1>, rs2 : UInt<1>, imm12 : UInt<1>, rd : UInt<1>, shimm5 : UInt<1>, imm20 : UInt<1>, pc : UInt<1>, load : UInt<1>, store : UInt<1>, lsu : UInt<1>, add : UInt<1>, sub : UInt<1>, land : UInt<1>, lor : UInt<1>, lxor : UInt<1>, sll : UInt<1>, sra : UInt<1>, srl : UInt<1>, slt : UInt<1>, unsign : UInt<1>, condbr : UInt<1>, beq : UInt<1>, bne : UInt<1>, bge : UInt<1>, blt : UInt<1>, jal : UInt<1>, by : UInt<1>, half : UInt<1>, word : UInt<1>, csr_read : UInt<1>, csr_clr : UInt<1>, csr_set : UInt<1>, csr_write : UInt<1>, csr_imm : UInt<1>, presync : UInt<1>, postsync : UInt<1>, ebreak : UInt<1>, ecall : UInt<1>, mret : UInt<1>, mul : UInt<1>, rs1_sign : UInt<1>, rs2_sign : UInt<1>, low : UInt<1>, div : UInt<1>, rem : UInt<1>, fence : UInt<1>, fence_i : UInt<1>, pm_alu : UInt<1>, legal : UInt<1>} @[el2_dec_decode_ctl.scala 155:18]
wire i0_dp_raw : {alu : UInt<1>, rs1 : UInt<1>, rs2 : UInt<1>, imm12 : UInt<1>, rd : UInt<1>, shimm5 : UInt<1>, imm20 : UInt<1>, pc : UInt<1>, load : UInt<1>, store : UInt<1>, lsu : UInt<1>, add : UInt<1>, sub : UInt<1>, land : UInt<1>, lor : UInt<1>, lxor : UInt<1>, sll : UInt<1>, sra : UInt<1>, srl : UInt<1>, slt : UInt<1>, unsign : UInt<1>, condbr : UInt<1>, beq : UInt<1>, bne : UInt<1>, bge : UInt<1>, blt : UInt<1>, jal : UInt<1>, by : UInt<1>, half : UInt<1>, word : UInt<1>, csr_read : UInt<1>, csr_clr : UInt<1>, csr_set : UInt<1>, csr_write : UInt<1>, csr_imm : UInt<1>, presync : UInt<1>, postsync : UInt<1>, ebreak : UInt<1>, ecall : UInt<1>, mret : UInt<1>, mul : UInt<1>, rs1_sign : UInt<1>, rs2_sign : UInt<1>, low : UInt<1>, div : UInt<1>, rem : UInt<1>, fence : UInt<1>, fence_i : UInt<1>, pm_alu : UInt<1>, legal : UInt<1>} @[el2_dec_decode_ctl.scala 156:22]
wire i0_rs1bypass : UInt<3>
@ -67295,26 +67295,26 @@ circuit el2_swerv_wrapper :
nonblock_load_valid_m_delay <= io.lsu_nonblock_load_valid_m @[Reg.scala 28:23]
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 _T_91 = eq(io.lsu_nonblock_load_inv_tag_r, cam[0].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_93 = and(_T_92, cam[0].valid) @[el2_dec_decode_ctl.scala 321:82]
node _T_93 = and(_T_92, cam[0].valid) @[el2_dec_decode_ctl.scala 321:87]
cam_inv_reset_val[0] <= _T_93 @[el2_dec_decode_ctl.scala 321:26]
node _T_94 = eq(io.lsu_nonblock_load_data_tag, cam[0].tag) @[el2_dec_decode_ctl.scala 322:67]
node _T_94 = eq(io.lsu_nonblock_load_data_tag, cam[0].bits.tag) @[el2_dec_decode_ctl.scala 322:67]
node _T_95 = and(cam_data_reset, _T_94) @[el2_dec_decode_ctl.scala 322:45]
node _T_96 = and(_T_95, cam_raw[0].valid) @[el2_dec_decode_ctl.scala 322:83]
node _T_96 = and(_T_95, cam_raw[0].valid) @[el2_dec_decode_ctl.scala 322:88]
cam_data_reset_val[0] <= _T_96 @[el2_dec_decode_ctl.scala 322:27]
wire _T_97 : {valid : UInt<1>, wb : UInt<1>, tag : UInt<3>, rd : UInt<5>} @[el2_dec_decode_ctl.scala 323:28]
_T_97.rd <= UInt<5>("h00") @[el2_dec_decode_ctl.scala 323:28]
_T_97.tag <= UInt<3>("h00") @[el2_dec_decode_ctl.scala 323:28]
_T_97.wb <= UInt<1>("h00") @[el2_dec_decode_ctl.scala 323:28]
wire _T_97 : {valid : UInt<1>, bits : {wb : UInt<1>, tag : UInt<3>, rd : UInt<5>}} @[el2_dec_decode_ctl.scala 323:28]
_T_97.bits.rd <= UInt<5>("h00") @[el2_dec_decode_ctl.scala 323:28]
_T_97.bits.tag <= UInt<3>("h00") @[el2_dec_decode_ctl.scala 323:28]
_T_97.bits.wb <= UInt<1>("h00") @[el2_dec_decode_ctl.scala 323:28]
_T_97.valid <= UInt<1>("h00") @[el2_dec_decode_ctl.scala 323:28]
cam_in[0].rd <= _T_97.rd @[el2_dec_decode_ctl.scala 323:14]
cam_in[0].tag <= _T_97.tag @[el2_dec_decode_ctl.scala 323:14]
cam_in[0].wb <= _T_97.wb @[el2_dec_decode_ctl.scala 323:14]
cam_in[0].bits.rd <= _T_97.bits.rd @[el2_dec_decode_ctl.scala 323:14]
cam_in[0].bits.tag <= _T_97.bits.tag @[el2_dec_decode_ctl.scala 323:14]
cam_in[0].bits.wb <= _T_97.bits.wb @[el2_dec_decode_ctl.scala 323:14]
cam_in[0].valid <= _T_97.valid @[el2_dec_decode_ctl.scala 323:14]
cam[0].rd <= cam_raw[0].rd @[el2_dec_decode_ctl.scala 324:11]
cam[0].tag <= cam_raw[0].tag @[el2_dec_decode_ctl.scala 324:11]
cam[0].wb <= cam_raw[0].wb @[el2_dec_decode_ctl.scala 324:11]
cam[0].bits.rd <= cam_raw[0].bits.rd @[el2_dec_decode_ctl.scala 324:11]
cam[0].bits.tag <= cam_raw[0].bits.tag @[el2_dec_decode_ctl.scala 324:11]
cam[0].bits.wb <= cam_raw[0].bits.wb @[el2_dec_decode_ctl.scala 324:11]
cam[0].valid <= cam_raw[0].valid @[el2_dec_decode_ctl.scala 324:11]
node _T_98 = bits(cam_data_reset_val[0], 0, 0) @[el2_dec_decode_ctl.scala 326:32]
when _T_98 : @[el2_dec_decode_ctl.scala 326:39]
@ -67324,75 +67324,75 @@ circuit el2_swerv_wrapper :
node _T_100 = bits(_T_99, 0, 0) @[el2_dec_decode_ctl.scala 329:21]
when _T_100 : @[el2_dec_decode_ctl.scala 329:28]
cam_in[0].valid <= UInt<1>("h01") @[el2_dec_decode_ctl.scala 330:27]
cam_in[0].wb <= UInt<1>("h00") @[el2_dec_decode_ctl.scala 331:27]
cam_in[0].tag <= cam_write_tag @[el2_dec_decode_ctl.scala 332:27]
cam_in[0].rd <= nonblock_load_rd @[el2_dec_decode_ctl.scala 333:27]
cam_in[0].bits.wb <= UInt<1>("h00") @[el2_dec_decode_ctl.scala 331: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]
skip @[el2_dec_decode_ctl.scala 329:28]
else : @[el2_dec_decode_ctl.scala 334:116]
else : @[el2_dec_decode_ctl.scala 334:126]
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_103 = eq(r_d_in.i0rd, cam[0].rd) @[el2_dec_decode_ctl.scala 334:80]
node _T_103 = eq(r_d_in.i0rd, cam[0].bits.rd) @[el2_dec_decode_ctl.scala 334:80]
node _T_104 = and(_T_102, _T_103) @[el2_dec_decode_ctl.scala 334:64]
node _T_105 = bits(cam[0].wb, 0, 0) @[el2_dec_decode_ctl.scala 334:108]
node _T_106 = and(_T_104, _T_105) @[el2_dec_decode_ctl.scala 334:95]
node _T_105 = bits(cam[0].bits.wb, 0, 0) @[el2_dec_decode_ctl.scala 334:118]
node _T_106 = and(_T_104, _T_105) @[el2_dec_decode_ctl.scala 334:100]
node _T_107 = or(_T_101, _T_106) @[el2_dec_decode_ctl.scala 334:44]
when _T_107 : @[el2_dec_decode_ctl.scala 334:116]
when _T_107 : @[el2_dec_decode_ctl.scala 334:126]
cam_in[0].valid <= UInt<1>("h00") @[el2_dec_decode_ctl.scala 335:23]
skip @[el2_dec_decode_ctl.scala 334:116]
skip @[el2_dec_decode_ctl.scala 334:126]
else : @[el2_dec_decode_ctl.scala 336:16]
cam_in[0].rd <= cam[0].rd @[el2_dec_decode_ctl.scala 337:22]
cam_in[0].tag <= cam[0].tag @[el2_dec_decode_ctl.scala 337:22]
cam_in[0].wb <= cam[0].wb @[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.wb <= cam[0].bits.wb @[el2_dec_decode_ctl.scala 337:22]
cam_in[0].valid <= cam[0].valid @[el2_dec_decode_ctl.scala 337:22]
skip @[el2_dec_decode_ctl.scala 336:16]
node _T_108 = eq(nonblock_load_valid_m_delay, UInt<1>("h01")) @[el2_dec_decode_ctl.scala 339:37]
node _T_109 = eq(io.lsu_nonblock_load_inv_tag_r, cam[0].tag) @[el2_dec_decode_ctl.scala 339:79]
node _T_109 = eq(io.lsu_nonblock_load_inv_tag_r, cam[0].bits.tag) @[el2_dec_decode_ctl.scala 339:79]
node _T_110 = and(_T_108, _T_109) @[el2_dec_decode_ctl.scala 339:44]
node _T_111 = eq(cam[0].valid, UInt<1>("h01")) @[el2_dec_decode_ctl.scala 339:110]
node _T_112 = and(_T_110, _T_111) @[el2_dec_decode_ctl.scala 339:95]
when _T_112 : @[el2_dec_decode_ctl.scala 339:117]
cam_in[0].wb <= UInt<1>("h01") @[el2_dec_decode_ctl.scala 340:20]
skip @[el2_dec_decode_ctl.scala 339:117]
node _T_111 = eq(cam[0].valid, UInt<1>("h01")) @[el2_dec_decode_ctl.scala 339:115]
node _T_112 = and(_T_110, _T_111) @[el2_dec_decode_ctl.scala 339:100]
when _T_112 : @[el2_dec_decode_ctl.scala 339:122]
cam_in[0].bits.wb <= UInt<1>("h01") @[el2_dec_decode_ctl.scala 340:25]
skip @[el2_dec_decode_ctl.scala 339:122]
when io.dec_tlu_force_halt : @[el2_dec_decode_ctl.scala 343:32]
cam_in[0].valid <= UInt<1>("h00") @[el2_dec_decode_ctl.scala 344:23]
skip @[el2_dec_decode_ctl.scala 343:32]
wire _T_113 : {valid : UInt<1>, wb : UInt<1>, tag : UInt<3>, rd : UInt<5>} @[el2_dec_decode_ctl.scala 347:70]
_T_113.rd <= UInt<5>("h00") @[el2_dec_decode_ctl.scala 347:70]
_T_113.tag <= UInt<3>("h00") @[el2_dec_decode_ctl.scala 347:70]
_T_113.wb <= UInt<1>("h00") @[el2_dec_decode_ctl.scala 347:70]
wire _T_113 : {valid : UInt<1>, bits : {wb : UInt<1>, tag : UInt<3>, rd : UInt<5>}} @[el2_dec_decode_ctl.scala 347:70]
_T_113.bits.rd <= UInt<5>("h00") @[el2_dec_decode_ctl.scala 347:70]
_T_113.bits.tag <= UInt<3>("h00") @[el2_dec_decode_ctl.scala 347:70]
_T_113.bits.wb <= UInt<1>("h00") @[el2_dec_decode_ctl.scala 347:70]
_T_113.valid <= UInt<1>("h00") @[el2_dec_decode_ctl.scala 347:70]
reg _T_114 : {valid : UInt<1>, wb : UInt<1>, tag : UInt<3>, rd : UInt<5>}, io.free_clk with : (reset => (reset, _T_113)) @[el2_dec_decode_ctl.scala 347:47]
_T_114.rd <= cam_in[0].rd @[el2_dec_decode_ctl.scala 347:47]
_T_114.tag <= cam_in[0].tag @[el2_dec_decode_ctl.scala 347:47]
_T_114.wb <= cam_in[0].wb @[el2_dec_decode_ctl.scala 347:47]
reg _T_114 : {valid : UInt<1>, bits : {wb : UInt<1>, tag : UInt<3>, rd : UInt<5>}}, io.free_clk with : (reset => (reset, _T_113)) @[el2_dec_decode_ctl.scala 347:47]
_T_114.bits.rd <= cam_in[0].bits.rd @[el2_dec_decode_ctl.scala 347:47]
_T_114.bits.tag <= cam_in[0].bits.tag @[el2_dec_decode_ctl.scala 347:47]
_T_114.bits.wb <= cam_in[0].bits.wb @[el2_dec_decode_ctl.scala 347:47]
_T_114.valid <= cam_in[0].valid @[el2_dec_decode_ctl.scala 347:47]
cam_raw[0].rd <= _T_114.rd @[el2_dec_decode_ctl.scala 347:15]
cam_raw[0].tag <= _T_114.tag @[el2_dec_decode_ctl.scala 347:15]
cam_raw[0].wb <= _T_114.wb @[el2_dec_decode_ctl.scala 347:15]
cam_raw[0].bits.rd <= _T_114.bits.rd @[el2_dec_decode_ctl.scala 347:15]
cam_raw[0].bits.tag <= _T_114.bits.tag @[el2_dec_decode_ctl.scala 347:15]
cam_raw[0].bits.wb <= _T_114.bits.wb @[el2_dec_decode_ctl.scala 347:15]
cam_raw[0].valid <= _T_114.valid @[el2_dec_decode_ctl.scala 347:15]
node _T_115 = eq(io.lsu_nonblock_load_data_tag, cam_raw[0].tag) @[el2_dec_decode_ctl.scala 348:46]
node _T_116 = and(_T_115, cam_raw[0].valid) @[el2_dec_decode_ctl.scala 348:66]
node _T_115 = eq(io.lsu_nonblock_load_data_tag, cam_raw[0].bits.tag) @[el2_dec_decode_ctl.scala 348:46]
node _T_116 = and(_T_115, cam_raw[0].valid) @[el2_dec_decode_ctl.scala 348:71]
nonblock_load_write[0] <= _T_116 @[el2_dec_decode_ctl.scala 348:28]
node _T_117 = eq(io.lsu_nonblock_load_inv_tag_r, cam[1].tag) @[el2_dec_decode_ctl.scala 321:66]
node _T_117 = eq(io.lsu_nonblock_load_inv_tag_r, cam[1].bits.tag) @[el2_dec_decode_ctl.scala 321:66]
node _T_118 = and(io.lsu_nonblock_load_inv_r, _T_117) @[el2_dec_decode_ctl.scala 321:45]
node _T_119 = and(_T_118, cam[1].valid) @[el2_dec_decode_ctl.scala 321:82]
node _T_119 = and(_T_118, cam[1].valid) @[el2_dec_decode_ctl.scala 321:87]
cam_inv_reset_val[1] <= _T_119 @[el2_dec_decode_ctl.scala 321:26]
node _T_120 = eq(io.lsu_nonblock_load_data_tag, cam[1].tag) @[el2_dec_decode_ctl.scala 322:67]
node _T_120 = eq(io.lsu_nonblock_load_data_tag, cam[1].bits.tag) @[el2_dec_decode_ctl.scala 322:67]
node _T_121 = and(cam_data_reset, _T_120) @[el2_dec_decode_ctl.scala 322:45]
node _T_122 = and(_T_121, cam_raw[1].valid) @[el2_dec_decode_ctl.scala 322:83]
node _T_122 = and(_T_121, cam_raw[1].valid) @[el2_dec_decode_ctl.scala 322:88]
cam_data_reset_val[1] <= _T_122 @[el2_dec_decode_ctl.scala 322:27]
wire _T_123 : {valid : UInt<1>, wb : UInt<1>, tag : UInt<3>, rd : UInt<5>} @[el2_dec_decode_ctl.scala 323:28]
_T_123.rd <= UInt<5>("h00") @[el2_dec_decode_ctl.scala 323:28]
_T_123.tag <= UInt<3>("h00") @[el2_dec_decode_ctl.scala 323:28]
_T_123.wb <= UInt<1>("h00") @[el2_dec_decode_ctl.scala 323:28]
wire _T_123 : {valid : UInt<1>, bits : {wb : UInt<1>, tag : UInt<3>, rd : UInt<5>}} @[el2_dec_decode_ctl.scala 323:28]
_T_123.bits.rd <= UInt<5>("h00") @[el2_dec_decode_ctl.scala 323:28]
_T_123.bits.tag <= UInt<3>("h00") @[el2_dec_decode_ctl.scala 323:28]
_T_123.bits.wb <= UInt<1>("h00") @[el2_dec_decode_ctl.scala 323:28]
_T_123.valid <= UInt<1>("h00") @[el2_dec_decode_ctl.scala 323:28]
cam_in[1].rd <= _T_123.rd @[el2_dec_decode_ctl.scala 323:14]
cam_in[1].tag <= _T_123.tag @[el2_dec_decode_ctl.scala 323:14]
cam_in[1].wb <= _T_123.wb @[el2_dec_decode_ctl.scala 323:14]
cam_in[1].bits.rd <= _T_123.bits.rd @[el2_dec_decode_ctl.scala 323:14]
cam_in[1].bits.tag <= _T_123.bits.tag @[el2_dec_decode_ctl.scala 323:14]
cam_in[1].bits.wb <= _T_123.bits.wb @[el2_dec_decode_ctl.scala 323:14]
cam_in[1].valid <= _T_123.valid @[el2_dec_decode_ctl.scala 323:14]
cam[1].rd <= cam_raw[1].rd @[el2_dec_decode_ctl.scala 324:11]
cam[1].tag <= cam_raw[1].tag @[el2_dec_decode_ctl.scala 324:11]
cam[1].wb <= cam_raw[1].wb @[el2_dec_decode_ctl.scala 324:11]
cam[1].bits.rd <= cam_raw[1].bits.rd @[el2_dec_decode_ctl.scala 324:11]
cam[1].bits.tag <= cam_raw[1].bits.tag @[el2_dec_decode_ctl.scala 324:11]
cam[1].bits.wb <= cam_raw[1].bits.wb @[el2_dec_decode_ctl.scala 324:11]
cam[1].valid <= cam_raw[1].valid @[el2_dec_decode_ctl.scala 324:11]
node _T_124 = bits(cam_data_reset_val[1], 0, 0) @[el2_dec_decode_ctl.scala 326:32]
when _T_124 : @[el2_dec_decode_ctl.scala 326:39]
@ -67402,75 +67402,75 @@ circuit el2_swerv_wrapper :
node _T_126 = bits(_T_125, 0, 0) @[el2_dec_decode_ctl.scala 329:21]
when _T_126 : @[el2_dec_decode_ctl.scala 329:28]
cam_in[1].valid <= UInt<1>("h01") @[el2_dec_decode_ctl.scala 330:27]
cam_in[1].wb <= UInt<1>("h00") @[el2_dec_decode_ctl.scala 331:27]
cam_in[1].tag <= cam_write_tag @[el2_dec_decode_ctl.scala 332:27]
cam_in[1].rd <= nonblock_load_rd @[el2_dec_decode_ctl.scala 333:27]
cam_in[1].bits.wb <= UInt<1>("h00") @[el2_dec_decode_ctl.scala 331: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]
skip @[el2_dec_decode_ctl.scala 329:28]
else : @[el2_dec_decode_ctl.scala 334:116]
else : @[el2_dec_decode_ctl.scala 334:126]
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_129 = eq(r_d_in.i0rd, cam[1].rd) @[el2_dec_decode_ctl.scala 334:80]
node _T_129 = eq(r_d_in.i0rd, cam[1].bits.rd) @[el2_dec_decode_ctl.scala 334:80]
node _T_130 = and(_T_128, _T_129) @[el2_dec_decode_ctl.scala 334:64]
node _T_131 = bits(cam[1].wb, 0, 0) @[el2_dec_decode_ctl.scala 334:108]
node _T_132 = and(_T_130, _T_131) @[el2_dec_decode_ctl.scala 334:95]
node _T_131 = bits(cam[1].bits.wb, 0, 0) @[el2_dec_decode_ctl.scala 334:118]
node _T_132 = and(_T_130, _T_131) @[el2_dec_decode_ctl.scala 334:100]
node _T_133 = or(_T_127, _T_132) @[el2_dec_decode_ctl.scala 334:44]
when _T_133 : @[el2_dec_decode_ctl.scala 334:116]
when _T_133 : @[el2_dec_decode_ctl.scala 334:126]
cam_in[1].valid <= UInt<1>("h00") @[el2_dec_decode_ctl.scala 335:23]
skip @[el2_dec_decode_ctl.scala 334:116]
skip @[el2_dec_decode_ctl.scala 334:126]
else : @[el2_dec_decode_ctl.scala 336:16]
cam_in[1].rd <= cam[1].rd @[el2_dec_decode_ctl.scala 337:22]
cam_in[1].tag <= cam[1].tag @[el2_dec_decode_ctl.scala 337:22]
cam_in[1].wb <= cam[1].wb @[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.wb <= cam[1].bits.wb @[el2_dec_decode_ctl.scala 337:22]
cam_in[1].valid <= cam[1].valid @[el2_dec_decode_ctl.scala 337:22]
skip @[el2_dec_decode_ctl.scala 336:16]
node _T_134 = eq(nonblock_load_valid_m_delay, UInt<1>("h01")) @[el2_dec_decode_ctl.scala 339:37]
node _T_135 = eq(io.lsu_nonblock_load_inv_tag_r, cam[1].tag) @[el2_dec_decode_ctl.scala 339:79]
node _T_135 = eq(io.lsu_nonblock_load_inv_tag_r, cam[1].bits.tag) @[el2_dec_decode_ctl.scala 339:79]
node _T_136 = and(_T_134, _T_135) @[el2_dec_decode_ctl.scala 339:44]
node _T_137 = eq(cam[1].valid, UInt<1>("h01")) @[el2_dec_decode_ctl.scala 339:110]
node _T_138 = and(_T_136, _T_137) @[el2_dec_decode_ctl.scala 339:95]
when _T_138 : @[el2_dec_decode_ctl.scala 339:117]
cam_in[1].wb <= UInt<1>("h01") @[el2_dec_decode_ctl.scala 340:20]
skip @[el2_dec_decode_ctl.scala 339:117]
node _T_137 = eq(cam[1].valid, UInt<1>("h01")) @[el2_dec_decode_ctl.scala 339:115]
node _T_138 = and(_T_136, _T_137) @[el2_dec_decode_ctl.scala 339:100]
when _T_138 : @[el2_dec_decode_ctl.scala 339:122]
cam_in[1].bits.wb <= UInt<1>("h01") @[el2_dec_decode_ctl.scala 340:25]
skip @[el2_dec_decode_ctl.scala 339:122]
when io.dec_tlu_force_halt : @[el2_dec_decode_ctl.scala 343:32]
cam_in[1].valid <= UInt<1>("h00") @[el2_dec_decode_ctl.scala 344:23]
skip @[el2_dec_decode_ctl.scala 343:32]
wire _T_139 : {valid : UInt<1>, wb : UInt<1>, tag : UInt<3>, rd : UInt<5>} @[el2_dec_decode_ctl.scala 347:70]
_T_139.rd <= UInt<5>("h00") @[el2_dec_decode_ctl.scala 347:70]
_T_139.tag <= UInt<3>("h00") @[el2_dec_decode_ctl.scala 347:70]
_T_139.wb <= UInt<1>("h00") @[el2_dec_decode_ctl.scala 347:70]
wire _T_139 : {valid : UInt<1>, bits : {wb : UInt<1>, tag : UInt<3>, rd : UInt<5>}} @[el2_dec_decode_ctl.scala 347:70]
_T_139.bits.rd <= UInt<5>("h00") @[el2_dec_decode_ctl.scala 347:70]
_T_139.bits.tag <= UInt<3>("h00") @[el2_dec_decode_ctl.scala 347:70]
_T_139.bits.wb <= UInt<1>("h00") @[el2_dec_decode_ctl.scala 347:70]
_T_139.valid <= UInt<1>("h00") @[el2_dec_decode_ctl.scala 347:70]
reg _T_140 : {valid : UInt<1>, wb : UInt<1>, tag : UInt<3>, rd : UInt<5>}, io.free_clk with : (reset => (reset, _T_139)) @[el2_dec_decode_ctl.scala 347:47]
_T_140.rd <= cam_in[1].rd @[el2_dec_decode_ctl.scala 347:47]
_T_140.tag <= cam_in[1].tag @[el2_dec_decode_ctl.scala 347:47]
_T_140.wb <= cam_in[1].wb @[el2_dec_decode_ctl.scala 347:47]
reg _T_140 : {valid : UInt<1>, bits : {wb : UInt<1>, tag : UInt<3>, rd : UInt<5>}}, io.free_clk with : (reset => (reset, _T_139)) @[el2_dec_decode_ctl.scala 347:47]
_T_140.bits.rd <= cam_in[1].bits.rd @[el2_dec_decode_ctl.scala 347:47]
_T_140.bits.tag <= cam_in[1].bits.tag @[el2_dec_decode_ctl.scala 347:47]
_T_140.bits.wb <= cam_in[1].bits.wb @[el2_dec_decode_ctl.scala 347:47]
_T_140.valid <= cam_in[1].valid @[el2_dec_decode_ctl.scala 347:47]
cam_raw[1].rd <= _T_140.rd @[el2_dec_decode_ctl.scala 347:15]
cam_raw[1].tag <= _T_140.tag @[el2_dec_decode_ctl.scala 347:15]
cam_raw[1].wb <= _T_140.wb @[el2_dec_decode_ctl.scala 347:15]
cam_raw[1].bits.rd <= _T_140.bits.rd @[el2_dec_decode_ctl.scala 347:15]
cam_raw[1].bits.tag <= _T_140.bits.tag @[el2_dec_decode_ctl.scala 347:15]
cam_raw[1].bits.wb <= _T_140.bits.wb @[el2_dec_decode_ctl.scala 347:15]
cam_raw[1].valid <= _T_140.valid @[el2_dec_decode_ctl.scala 347:15]
node _T_141 = eq(io.lsu_nonblock_load_data_tag, cam_raw[1].tag) @[el2_dec_decode_ctl.scala 348:46]
node _T_142 = and(_T_141, cam_raw[1].valid) @[el2_dec_decode_ctl.scala 348:66]
node _T_141 = eq(io.lsu_nonblock_load_data_tag, cam_raw[1].bits.tag) @[el2_dec_decode_ctl.scala 348:46]
node _T_142 = and(_T_141, cam_raw[1].valid) @[el2_dec_decode_ctl.scala 348:71]
nonblock_load_write[1] <= _T_142 @[el2_dec_decode_ctl.scala 348:28]
node _T_143 = eq(io.lsu_nonblock_load_inv_tag_r, cam[2].tag) @[el2_dec_decode_ctl.scala 321:66]
node _T_143 = eq(io.lsu_nonblock_load_inv_tag_r, cam[2].bits.tag) @[el2_dec_decode_ctl.scala 321:66]
node _T_144 = and(io.lsu_nonblock_load_inv_r, _T_143) @[el2_dec_decode_ctl.scala 321:45]
node _T_145 = and(_T_144, cam[2].valid) @[el2_dec_decode_ctl.scala 321:82]
node _T_145 = and(_T_144, cam[2].valid) @[el2_dec_decode_ctl.scala 321:87]
cam_inv_reset_val[2] <= _T_145 @[el2_dec_decode_ctl.scala 321:26]
node _T_146 = eq(io.lsu_nonblock_load_data_tag, cam[2].tag) @[el2_dec_decode_ctl.scala 322:67]
node _T_146 = eq(io.lsu_nonblock_load_data_tag, cam[2].bits.tag) @[el2_dec_decode_ctl.scala 322:67]
node _T_147 = and(cam_data_reset, _T_146) @[el2_dec_decode_ctl.scala 322:45]
node _T_148 = and(_T_147, cam_raw[2].valid) @[el2_dec_decode_ctl.scala 322:83]
node _T_148 = and(_T_147, cam_raw[2].valid) @[el2_dec_decode_ctl.scala 322:88]
cam_data_reset_val[2] <= _T_148 @[el2_dec_decode_ctl.scala 322:27]
wire _T_149 : {valid : UInt<1>, wb : UInt<1>, tag : UInt<3>, rd : UInt<5>} @[el2_dec_decode_ctl.scala 323:28]
_T_149.rd <= UInt<5>("h00") @[el2_dec_decode_ctl.scala 323:28]
_T_149.tag <= UInt<3>("h00") @[el2_dec_decode_ctl.scala 323:28]
_T_149.wb <= UInt<1>("h00") @[el2_dec_decode_ctl.scala 323:28]
wire _T_149 : {valid : UInt<1>, bits : {wb : UInt<1>, tag : UInt<3>, rd : UInt<5>}} @[el2_dec_decode_ctl.scala 323:28]
_T_149.bits.rd <= UInt<5>("h00") @[el2_dec_decode_ctl.scala 323:28]
_T_149.bits.tag <= UInt<3>("h00") @[el2_dec_decode_ctl.scala 323:28]
_T_149.bits.wb <= UInt<1>("h00") @[el2_dec_decode_ctl.scala 323:28]
_T_149.valid <= UInt<1>("h00") @[el2_dec_decode_ctl.scala 323:28]
cam_in[2].rd <= _T_149.rd @[el2_dec_decode_ctl.scala 323:14]
cam_in[2].tag <= _T_149.tag @[el2_dec_decode_ctl.scala 323:14]
cam_in[2].wb <= _T_149.wb @[el2_dec_decode_ctl.scala 323:14]
cam_in[2].bits.rd <= _T_149.bits.rd @[el2_dec_decode_ctl.scala 323:14]
cam_in[2].bits.tag <= _T_149.bits.tag @[el2_dec_decode_ctl.scala 323:14]
cam_in[2].bits.wb <= _T_149.bits.wb @[el2_dec_decode_ctl.scala 323:14]
cam_in[2].valid <= _T_149.valid @[el2_dec_decode_ctl.scala 323:14]
cam[2].rd <= cam_raw[2].rd @[el2_dec_decode_ctl.scala 324:11]
cam[2].tag <= cam_raw[2].tag @[el2_dec_decode_ctl.scala 324:11]
cam[2].wb <= cam_raw[2].wb @[el2_dec_decode_ctl.scala 324:11]
cam[2].bits.rd <= cam_raw[2].bits.rd @[el2_dec_decode_ctl.scala 324:11]
cam[2].bits.tag <= cam_raw[2].bits.tag @[el2_dec_decode_ctl.scala 324:11]
cam[2].bits.wb <= cam_raw[2].bits.wb @[el2_dec_decode_ctl.scala 324:11]
cam[2].valid <= cam_raw[2].valid @[el2_dec_decode_ctl.scala 324:11]
node _T_150 = bits(cam_data_reset_val[2], 0, 0) @[el2_dec_decode_ctl.scala 326:32]
when _T_150 : @[el2_dec_decode_ctl.scala 326:39]
@ -67480,75 +67480,75 @@ circuit el2_swerv_wrapper :
node _T_152 = bits(_T_151, 0, 0) @[el2_dec_decode_ctl.scala 329:21]
when _T_152 : @[el2_dec_decode_ctl.scala 329:28]
cam_in[2].valid <= UInt<1>("h01") @[el2_dec_decode_ctl.scala 330:27]
cam_in[2].wb <= UInt<1>("h00") @[el2_dec_decode_ctl.scala 331:27]
cam_in[2].tag <= cam_write_tag @[el2_dec_decode_ctl.scala 332:27]
cam_in[2].rd <= nonblock_load_rd @[el2_dec_decode_ctl.scala 333:27]
cam_in[2].bits.wb <= UInt<1>("h00") @[el2_dec_decode_ctl.scala 331: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]
skip @[el2_dec_decode_ctl.scala 329:28]
else : @[el2_dec_decode_ctl.scala 334:116]
else : @[el2_dec_decode_ctl.scala 334:126]
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_155 = eq(r_d_in.i0rd, cam[2].rd) @[el2_dec_decode_ctl.scala 334:80]
node _T_155 = eq(r_d_in.i0rd, cam[2].bits.rd) @[el2_dec_decode_ctl.scala 334:80]
node _T_156 = and(_T_154, _T_155) @[el2_dec_decode_ctl.scala 334:64]
node _T_157 = bits(cam[2].wb, 0, 0) @[el2_dec_decode_ctl.scala 334:108]
node _T_158 = and(_T_156, _T_157) @[el2_dec_decode_ctl.scala 334:95]
node _T_157 = bits(cam[2].bits.wb, 0, 0) @[el2_dec_decode_ctl.scala 334:118]
node _T_158 = and(_T_156, _T_157) @[el2_dec_decode_ctl.scala 334:100]
node _T_159 = or(_T_153, _T_158) @[el2_dec_decode_ctl.scala 334:44]
when _T_159 : @[el2_dec_decode_ctl.scala 334:116]
when _T_159 : @[el2_dec_decode_ctl.scala 334:126]
cam_in[2].valid <= UInt<1>("h00") @[el2_dec_decode_ctl.scala 335:23]
skip @[el2_dec_decode_ctl.scala 334:116]
skip @[el2_dec_decode_ctl.scala 334:126]
else : @[el2_dec_decode_ctl.scala 336:16]
cam_in[2].rd <= cam[2].rd @[el2_dec_decode_ctl.scala 337:22]
cam_in[2].tag <= cam[2].tag @[el2_dec_decode_ctl.scala 337:22]
cam_in[2].wb <= cam[2].wb @[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.wb <= cam[2].bits.wb @[el2_dec_decode_ctl.scala 337:22]
cam_in[2].valid <= cam[2].valid @[el2_dec_decode_ctl.scala 337:22]
skip @[el2_dec_decode_ctl.scala 336:16]
node _T_160 = eq(nonblock_load_valid_m_delay, UInt<1>("h01")) @[el2_dec_decode_ctl.scala 339:37]
node _T_161 = eq(io.lsu_nonblock_load_inv_tag_r, cam[2].tag) @[el2_dec_decode_ctl.scala 339:79]
node _T_161 = eq(io.lsu_nonblock_load_inv_tag_r, cam[2].bits.tag) @[el2_dec_decode_ctl.scala 339:79]
node _T_162 = and(_T_160, _T_161) @[el2_dec_decode_ctl.scala 339:44]
node _T_163 = eq(cam[2].valid, UInt<1>("h01")) @[el2_dec_decode_ctl.scala 339:110]
node _T_164 = and(_T_162, _T_163) @[el2_dec_decode_ctl.scala 339:95]
when _T_164 : @[el2_dec_decode_ctl.scala 339:117]
cam_in[2].wb <= UInt<1>("h01") @[el2_dec_decode_ctl.scala 340:20]
skip @[el2_dec_decode_ctl.scala 339:117]
node _T_163 = eq(cam[2].valid, UInt<1>("h01")) @[el2_dec_decode_ctl.scala 339:115]
node _T_164 = and(_T_162, _T_163) @[el2_dec_decode_ctl.scala 339:100]
when _T_164 : @[el2_dec_decode_ctl.scala 339:122]
cam_in[2].bits.wb <= UInt<1>("h01") @[el2_dec_decode_ctl.scala 340:25]
skip @[el2_dec_decode_ctl.scala 339:122]
when io.dec_tlu_force_halt : @[el2_dec_decode_ctl.scala 343:32]
cam_in[2].valid <= UInt<1>("h00") @[el2_dec_decode_ctl.scala 344:23]
skip @[el2_dec_decode_ctl.scala 343:32]
wire _T_165 : {valid : UInt<1>, wb : UInt<1>, tag : UInt<3>, rd : UInt<5>} @[el2_dec_decode_ctl.scala 347:70]
_T_165.rd <= UInt<5>("h00") @[el2_dec_decode_ctl.scala 347:70]
_T_165.tag <= UInt<3>("h00") @[el2_dec_decode_ctl.scala 347:70]
_T_165.wb <= UInt<1>("h00") @[el2_dec_decode_ctl.scala 347:70]
wire _T_165 : {valid : UInt<1>, bits : {wb : UInt<1>, tag : UInt<3>, rd : UInt<5>}} @[el2_dec_decode_ctl.scala 347:70]
_T_165.bits.rd <= UInt<5>("h00") @[el2_dec_decode_ctl.scala 347:70]
_T_165.bits.tag <= UInt<3>("h00") @[el2_dec_decode_ctl.scala 347:70]
_T_165.bits.wb <= UInt<1>("h00") @[el2_dec_decode_ctl.scala 347:70]
_T_165.valid <= UInt<1>("h00") @[el2_dec_decode_ctl.scala 347:70]
reg _T_166 : {valid : UInt<1>, wb : UInt<1>, tag : UInt<3>, rd : UInt<5>}, io.free_clk with : (reset => (reset, _T_165)) @[el2_dec_decode_ctl.scala 347:47]
_T_166.rd <= cam_in[2].rd @[el2_dec_decode_ctl.scala 347:47]
_T_166.tag <= cam_in[2].tag @[el2_dec_decode_ctl.scala 347:47]
_T_166.wb <= cam_in[2].wb @[el2_dec_decode_ctl.scala 347:47]
reg _T_166 : {valid : UInt<1>, bits : {wb : UInt<1>, tag : UInt<3>, rd : UInt<5>}}, io.free_clk with : (reset => (reset, _T_165)) @[el2_dec_decode_ctl.scala 347:47]
_T_166.bits.rd <= cam_in[2].bits.rd @[el2_dec_decode_ctl.scala 347:47]
_T_166.bits.tag <= cam_in[2].bits.tag @[el2_dec_decode_ctl.scala 347:47]
_T_166.bits.wb <= cam_in[2].bits.wb @[el2_dec_decode_ctl.scala 347:47]
_T_166.valid <= cam_in[2].valid @[el2_dec_decode_ctl.scala 347:47]
cam_raw[2].rd <= _T_166.rd @[el2_dec_decode_ctl.scala 347:15]
cam_raw[2].tag <= _T_166.tag @[el2_dec_decode_ctl.scala 347:15]
cam_raw[2].wb <= _T_166.wb @[el2_dec_decode_ctl.scala 347:15]
cam_raw[2].bits.rd <= _T_166.bits.rd @[el2_dec_decode_ctl.scala 347:15]
cam_raw[2].bits.tag <= _T_166.bits.tag @[el2_dec_decode_ctl.scala 347:15]
cam_raw[2].bits.wb <= _T_166.bits.wb @[el2_dec_decode_ctl.scala 347:15]
cam_raw[2].valid <= _T_166.valid @[el2_dec_decode_ctl.scala 347:15]
node _T_167 = eq(io.lsu_nonblock_load_data_tag, cam_raw[2].tag) @[el2_dec_decode_ctl.scala 348:46]
node _T_168 = and(_T_167, cam_raw[2].valid) @[el2_dec_decode_ctl.scala 348:66]
node _T_167 = eq(io.lsu_nonblock_load_data_tag, cam_raw[2].bits.tag) @[el2_dec_decode_ctl.scala 348:46]
node _T_168 = and(_T_167, cam_raw[2].valid) @[el2_dec_decode_ctl.scala 348:71]
nonblock_load_write[2] <= _T_168 @[el2_dec_decode_ctl.scala 348:28]
node _T_169 = eq(io.lsu_nonblock_load_inv_tag_r, cam[3].tag) @[el2_dec_decode_ctl.scala 321:66]
node _T_169 = eq(io.lsu_nonblock_load_inv_tag_r, cam[3].bits.tag) @[el2_dec_decode_ctl.scala 321:66]
node _T_170 = and(io.lsu_nonblock_load_inv_r, _T_169) @[el2_dec_decode_ctl.scala 321:45]
node _T_171 = and(_T_170, cam[3].valid) @[el2_dec_decode_ctl.scala 321:82]
node _T_171 = and(_T_170, cam[3].valid) @[el2_dec_decode_ctl.scala 321:87]
cam_inv_reset_val[3] <= _T_171 @[el2_dec_decode_ctl.scala 321:26]
node _T_172 = eq(io.lsu_nonblock_load_data_tag, cam[3].tag) @[el2_dec_decode_ctl.scala 322:67]
node _T_172 = eq(io.lsu_nonblock_load_data_tag, cam[3].bits.tag) @[el2_dec_decode_ctl.scala 322:67]
node _T_173 = and(cam_data_reset, _T_172) @[el2_dec_decode_ctl.scala 322:45]
node _T_174 = and(_T_173, cam_raw[3].valid) @[el2_dec_decode_ctl.scala 322:83]
node _T_174 = and(_T_173, cam_raw[3].valid) @[el2_dec_decode_ctl.scala 322:88]
cam_data_reset_val[3] <= _T_174 @[el2_dec_decode_ctl.scala 322:27]
wire _T_175 : {valid : UInt<1>, wb : UInt<1>, tag : UInt<3>, rd : UInt<5>} @[el2_dec_decode_ctl.scala 323:28]
_T_175.rd <= UInt<5>("h00") @[el2_dec_decode_ctl.scala 323:28]
_T_175.tag <= UInt<3>("h00") @[el2_dec_decode_ctl.scala 323:28]
_T_175.wb <= UInt<1>("h00") @[el2_dec_decode_ctl.scala 323:28]
wire _T_175 : {valid : UInt<1>, bits : {wb : UInt<1>, tag : UInt<3>, rd : UInt<5>}} @[el2_dec_decode_ctl.scala 323:28]
_T_175.bits.rd <= UInt<5>("h00") @[el2_dec_decode_ctl.scala 323:28]
_T_175.bits.tag <= UInt<3>("h00") @[el2_dec_decode_ctl.scala 323:28]
_T_175.bits.wb <= UInt<1>("h00") @[el2_dec_decode_ctl.scala 323:28]
_T_175.valid <= UInt<1>("h00") @[el2_dec_decode_ctl.scala 323:28]
cam_in[3].rd <= _T_175.rd @[el2_dec_decode_ctl.scala 323:14]
cam_in[3].tag <= _T_175.tag @[el2_dec_decode_ctl.scala 323:14]
cam_in[3].wb <= _T_175.wb @[el2_dec_decode_ctl.scala 323:14]
cam_in[3].bits.rd <= _T_175.bits.rd @[el2_dec_decode_ctl.scala 323:14]
cam_in[3].bits.tag <= _T_175.bits.tag @[el2_dec_decode_ctl.scala 323:14]
cam_in[3].bits.wb <= _T_175.bits.wb @[el2_dec_decode_ctl.scala 323:14]
cam_in[3].valid <= _T_175.valid @[el2_dec_decode_ctl.scala 323:14]
cam[3].rd <= cam_raw[3].rd @[el2_dec_decode_ctl.scala 324:11]
cam[3].tag <= cam_raw[3].tag @[el2_dec_decode_ctl.scala 324:11]
cam[3].wb <= cam_raw[3].wb @[el2_dec_decode_ctl.scala 324:11]
cam[3].bits.rd <= cam_raw[3].bits.rd @[el2_dec_decode_ctl.scala 324:11]
cam[3].bits.tag <= cam_raw[3].bits.tag @[el2_dec_decode_ctl.scala 324:11]
cam[3].bits.wb <= cam_raw[3].bits.wb @[el2_dec_decode_ctl.scala 324:11]
cam[3].valid <= cam_raw[3].valid @[el2_dec_decode_ctl.scala 324:11]
node _T_176 = bits(cam_data_reset_val[3], 0, 0) @[el2_dec_decode_ctl.scala 326:32]
when _T_176 : @[el2_dec_decode_ctl.scala 326:39]
@ -67558,54 +67558,54 @@ circuit el2_swerv_wrapper :
node _T_178 = bits(_T_177, 0, 0) @[el2_dec_decode_ctl.scala 329:21]
when _T_178 : @[el2_dec_decode_ctl.scala 329:28]
cam_in[3].valid <= UInt<1>("h01") @[el2_dec_decode_ctl.scala 330:27]
cam_in[3].wb <= UInt<1>("h00") @[el2_dec_decode_ctl.scala 331:27]
cam_in[3].tag <= cam_write_tag @[el2_dec_decode_ctl.scala 332:27]
cam_in[3].rd <= nonblock_load_rd @[el2_dec_decode_ctl.scala 333:27]
cam_in[3].bits.wb <= UInt<1>("h00") @[el2_dec_decode_ctl.scala 331: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]
skip @[el2_dec_decode_ctl.scala 329:28]
else : @[el2_dec_decode_ctl.scala 334:116]
else : @[el2_dec_decode_ctl.scala 334:126]
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_181 = eq(r_d_in.i0rd, cam[3].rd) @[el2_dec_decode_ctl.scala 334:80]
node _T_181 = eq(r_d_in.i0rd, cam[3].bits.rd) @[el2_dec_decode_ctl.scala 334:80]
node _T_182 = and(_T_180, _T_181) @[el2_dec_decode_ctl.scala 334:64]
node _T_183 = bits(cam[3].wb, 0, 0) @[el2_dec_decode_ctl.scala 334:108]
node _T_184 = and(_T_182, _T_183) @[el2_dec_decode_ctl.scala 334:95]
node _T_183 = bits(cam[3].bits.wb, 0, 0) @[el2_dec_decode_ctl.scala 334:118]
node _T_184 = and(_T_182, _T_183) @[el2_dec_decode_ctl.scala 334:100]
node _T_185 = or(_T_179, _T_184) @[el2_dec_decode_ctl.scala 334:44]
when _T_185 : @[el2_dec_decode_ctl.scala 334:116]
when _T_185 : @[el2_dec_decode_ctl.scala 334:126]
cam_in[3].valid <= UInt<1>("h00") @[el2_dec_decode_ctl.scala 335:23]
skip @[el2_dec_decode_ctl.scala 334:116]
skip @[el2_dec_decode_ctl.scala 334:126]
else : @[el2_dec_decode_ctl.scala 336:16]
cam_in[3].rd <= cam[3].rd @[el2_dec_decode_ctl.scala 337:22]
cam_in[3].tag <= cam[3].tag @[el2_dec_decode_ctl.scala 337:22]
cam_in[3].wb <= cam[3].wb @[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.wb <= cam[3].bits.wb @[el2_dec_decode_ctl.scala 337:22]
cam_in[3].valid <= cam[3].valid @[el2_dec_decode_ctl.scala 337:22]
skip @[el2_dec_decode_ctl.scala 336:16]
node _T_186 = eq(nonblock_load_valid_m_delay, UInt<1>("h01")) @[el2_dec_decode_ctl.scala 339:37]
node _T_187 = eq(io.lsu_nonblock_load_inv_tag_r, cam[3].tag) @[el2_dec_decode_ctl.scala 339:79]
node _T_187 = eq(io.lsu_nonblock_load_inv_tag_r, cam[3].bits.tag) @[el2_dec_decode_ctl.scala 339:79]
node _T_188 = and(_T_186, _T_187) @[el2_dec_decode_ctl.scala 339:44]
node _T_189 = eq(cam[3].valid, UInt<1>("h01")) @[el2_dec_decode_ctl.scala 339:110]
node _T_190 = and(_T_188, _T_189) @[el2_dec_decode_ctl.scala 339:95]
when _T_190 : @[el2_dec_decode_ctl.scala 339:117]
cam_in[3].wb <= UInt<1>("h01") @[el2_dec_decode_ctl.scala 340:20]
skip @[el2_dec_decode_ctl.scala 339:117]
node _T_189 = eq(cam[3].valid, UInt<1>("h01")) @[el2_dec_decode_ctl.scala 339:115]
node _T_190 = and(_T_188, _T_189) @[el2_dec_decode_ctl.scala 339:100]
when _T_190 : @[el2_dec_decode_ctl.scala 339:122]
cam_in[3].bits.wb <= UInt<1>("h01") @[el2_dec_decode_ctl.scala 340:25]
skip @[el2_dec_decode_ctl.scala 339:122]
when io.dec_tlu_force_halt : @[el2_dec_decode_ctl.scala 343:32]
cam_in[3].valid <= UInt<1>("h00") @[el2_dec_decode_ctl.scala 344:23]
skip @[el2_dec_decode_ctl.scala 343:32]
wire _T_191 : {valid : UInt<1>, wb : UInt<1>, tag : UInt<3>, rd : UInt<5>} @[el2_dec_decode_ctl.scala 347:70]
_T_191.rd <= UInt<5>("h00") @[el2_dec_decode_ctl.scala 347:70]
_T_191.tag <= UInt<3>("h00") @[el2_dec_decode_ctl.scala 347:70]
_T_191.wb <= UInt<1>("h00") @[el2_dec_decode_ctl.scala 347:70]
wire _T_191 : {valid : UInt<1>, bits : {wb : UInt<1>, tag : UInt<3>, rd : UInt<5>}} @[el2_dec_decode_ctl.scala 347:70]
_T_191.bits.rd <= UInt<5>("h00") @[el2_dec_decode_ctl.scala 347:70]
_T_191.bits.tag <= UInt<3>("h00") @[el2_dec_decode_ctl.scala 347:70]
_T_191.bits.wb <= UInt<1>("h00") @[el2_dec_decode_ctl.scala 347:70]
_T_191.valid <= UInt<1>("h00") @[el2_dec_decode_ctl.scala 347:70]
reg _T_192 : {valid : UInt<1>, wb : UInt<1>, tag : UInt<3>, rd : UInt<5>}, io.free_clk with : (reset => (reset, _T_191)) @[el2_dec_decode_ctl.scala 347:47]
_T_192.rd <= cam_in[3].rd @[el2_dec_decode_ctl.scala 347:47]
_T_192.tag <= cam_in[3].tag @[el2_dec_decode_ctl.scala 347:47]
_T_192.wb <= cam_in[3].wb @[el2_dec_decode_ctl.scala 347:47]
reg _T_192 : {valid : UInt<1>, bits : {wb : UInt<1>, tag : UInt<3>, rd : UInt<5>}}, io.free_clk with : (reset => (reset, _T_191)) @[el2_dec_decode_ctl.scala 347:47]
_T_192.bits.rd <= cam_in[3].bits.rd @[el2_dec_decode_ctl.scala 347:47]
_T_192.bits.tag <= cam_in[3].bits.tag @[el2_dec_decode_ctl.scala 347:47]
_T_192.bits.wb <= cam_in[3].bits.wb @[el2_dec_decode_ctl.scala 347:47]
_T_192.valid <= cam_in[3].valid @[el2_dec_decode_ctl.scala 347:47]
cam_raw[3].rd <= _T_192.rd @[el2_dec_decode_ctl.scala 347:15]
cam_raw[3].tag <= _T_192.tag @[el2_dec_decode_ctl.scala 347:15]
cam_raw[3].wb <= _T_192.wb @[el2_dec_decode_ctl.scala 347:15]
cam_raw[3].bits.rd <= _T_192.bits.rd @[el2_dec_decode_ctl.scala 347:15]
cam_raw[3].bits.tag <= _T_192.bits.tag @[el2_dec_decode_ctl.scala 347:15]
cam_raw[3].bits.wb <= _T_192.bits.wb @[el2_dec_decode_ctl.scala 347:15]
cam_raw[3].valid <= _T_192.valid @[el2_dec_decode_ctl.scala 347:15]
node _T_193 = eq(io.lsu_nonblock_load_data_tag, cam_raw[3].tag) @[el2_dec_decode_ctl.scala 348:46]
node _T_194 = and(_T_193, cam_raw[3].valid) @[el2_dec_decode_ctl.scala 348:66]
node _T_193 = eq(io.lsu_nonblock_load_data_tag, cam_raw[3].bits.tag) @[el2_dec_decode_ctl.scala 348:46]
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]
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]
@ -67628,40 +67628,40 @@ circuit el2_swerv_wrapper :
i0_nonblock_load_stall <= i0_nonblock_boundary_stall @[el2_dec_decode_ctl.scala 357:26]
node _T_209 = bits(nonblock_load_write[0], 0, 0) @[Bitwise.scala 72:15]
node _T_210 = mux(_T_209, UInt<5>("h01f"), UInt<5>("h00")) @[Bitwise.scala 72:12]
node _T_211 = and(_T_210, cam[0].rd) @[el2_dec_decode_ctl.scala 359:88]
node _T_212 = and(io.dec_i0_rs1_en_d, cam[0].valid) @[el2_dec_decode_ctl.scala 359:121]
node _T_213 = eq(cam[0].rd, i0r.rs1) @[el2_dec_decode_ctl.scala 359:149]
node _T_214 = and(_T_212, _T_213) @[el2_dec_decode_ctl.scala 359:136]
node _T_215 = and(io.dec_i0_rs2_en_d, cam[0].valid) @[el2_dec_decode_ctl.scala 359:182]
node _T_216 = eq(cam[0].rd, i0r.rs2) @[el2_dec_decode_ctl.scala 359:210]
node _T_217 = and(_T_215, _T_216) @[el2_dec_decode_ctl.scala 359:197]
node _T_211 = and(_T_210, cam[0].bits.rd) @[el2_dec_decode_ctl.scala 359:88]
node _T_212 = and(io.dec_i0_rs1_en_d, cam[0].valid) @[el2_dec_decode_ctl.scala 359:126]
node _T_213 = eq(cam[0].bits.rd, i0r.rs1) @[el2_dec_decode_ctl.scala 359:159]
node _T_214 = and(_T_212, _T_213) @[el2_dec_decode_ctl.scala 359:141]
node _T_215 = and(io.dec_i0_rs2_en_d, cam[0].valid) @[el2_dec_decode_ctl.scala 359:192]
node _T_216 = eq(cam[0].bits.rd, i0r.rs2) @[el2_dec_decode_ctl.scala 359:225]
node _T_217 = and(_T_215, _T_216) @[el2_dec_decode_ctl.scala 359:207]
node _T_218 = bits(nonblock_load_write[1], 0, 0) @[Bitwise.scala 72:15]
node _T_219 = mux(_T_218, UInt<5>("h01f"), UInt<5>("h00")) @[Bitwise.scala 72:12]
node _T_220 = and(_T_219, cam[1].rd) @[el2_dec_decode_ctl.scala 359:88]
node _T_221 = and(io.dec_i0_rs1_en_d, cam[1].valid) @[el2_dec_decode_ctl.scala 359:121]
node _T_222 = eq(cam[1].rd, i0r.rs1) @[el2_dec_decode_ctl.scala 359:149]
node _T_223 = and(_T_221, _T_222) @[el2_dec_decode_ctl.scala 359:136]
node _T_224 = and(io.dec_i0_rs2_en_d, cam[1].valid) @[el2_dec_decode_ctl.scala 359:182]
node _T_225 = eq(cam[1].rd, i0r.rs2) @[el2_dec_decode_ctl.scala 359:210]
node _T_226 = and(_T_224, _T_225) @[el2_dec_decode_ctl.scala 359:197]
node _T_220 = and(_T_219, cam[1].bits.rd) @[el2_dec_decode_ctl.scala 359:88]
node _T_221 = and(io.dec_i0_rs1_en_d, cam[1].valid) @[el2_dec_decode_ctl.scala 359:126]
node _T_222 = eq(cam[1].bits.rd, i0r.rs1) @[el2_dec_decode_ctl.scala 359:159]
node _T_223 = and(_T_221, _T_222) @[el2_dec_decode_ctl.scala 359:141]
node _T_224 = and(io.dec_i0_rs2_en_d, cam[1].valid) @[el2_dec_decode_ctl.scala 359:192]
node _T_225 = eq(cam[1].bits.rd, i0r.rs2) @[el2_dec_decode_ctl.scala 359:225]
node _T_226 = and(_T_224, _T_225) @[el2_dec_decode_ctl.scala 359:207]
node _T_227 = bits(nonblock_load_write[2], 0, 0) @[Bitwise.scala 72:15]
node _T_228 = mux(_T_227, UInt<5>("h01f"), UInt<5>("h00")) @[Bitwise.scala 72:12]
node _T_229 = and(_T_228, cam[2].rd) @[el2_dec_decode_ctl.scala 359:88]
node _T_230 = and(io.dec_i0_rs1_en_d, cam[2].valid) @[el2_dec_decode_ctl.scala 359:121]
node _T_231 = eq(cam[2].rd, i0r.rs1) @[el2_dec_decode_ctl.scala 359:149]
node _T_232 = and(_T_230, _T_231) @[el2_dec_decode_ctl.scala 359:136]
node _T_233 = and(io.dec_i0_rs2_en_d, cam[2].valid) @[el2_dec_decode_ctl.scala 359:182]
node _T_234 = eq(cam[2].rd, i0r.rs2) @[el2_dec_decode_ctl.scala 359:210]
node _T_235 = and(_T_233, _T_234) @[el2_dec_decode_ctl.scala 359:197]
node _T_229 = and(_T_228, cam[2].bits.rd) @[el2_dec_decode_ctl.scala 359:88]
node _T_230 = and(io.dec_i0_rs1_en_d, cam[2].valid) @[el2_dec_decode_ctl.scala 359:126]
node _T_231 = eq(cam[2].bits.rd, i0r.rs1) @[el2_dec_decode_ctl.scala 359:159]
node _T_232 = and(_T_230, _T_231) @[el2_dec_decode_ctl.scala 359:141]
node _T_233 = and(io.dec_i0_rs2_en_d, cam[2].valid) @[el2_dec_decode_ctl.scala 359:192]
node _T_234 = eq(cam[2].bits.rd, i0r.rs2) @[el2_dec_decode_ctl.scala 359:225]
node _T_235 = and(_T_233, _T_234) @[el2_dec_decode_ctl.scala 359:207]
node _T_236 = bits(nonblock_load_write[3], 0, 0) @[Bitwise.scala 72:15]
node _T_237 = mux(_T_236, UInt<5>("h01f"), UInt<5>("h00")) @[Bitwise.scala 72:12]
node _T_238 = and(_T_237, cam[3].rd) @[el2_dec_decode_ctl.scala 359:88]
node _T_239 = and(io.dec_i0_rs1_en_d, cam[3].valid) @[el2_dec_decode_ctl.scala 359:121]
node _T_240 = eq(cam[3].rd, i0r.rs1) @[el2_dec_decode_ctl.scala 359:149]
node _T_241 = and(_T_239, _T_240) @[el2_dec_decode_ctl.scala 359:136]
node _T_242 = and(io.dec_i0_rs2_en_d, cam[3].valid) @[el2_dec_decode_ctl.scala 359:182]
node _T_243 = eq(cam[3].rd, i0r.rs2) @[el2_dec_decode_ctl.scala 359:210]
node _T_244 = and(_T_242, _T_243) @[el2_dec_decode_ctl.scala 359:197]
node _T_238 = and(_T_237, cam[3].bits.rd) @[el2_dec_decode_ctl.scala 359:88]
node _T_239 = and(io.dec_i0_rs1_en_d, cam[3].valid) @[el2_dec_decode_ctl.scala 359:126]
node _T_240 = eq(cam[3].bits.rd, i0r.rs1) @[el2_dec_decode_ctl.scala 359:159]
node _T_241 = and(_T_239, _T_240) @[el2_dec_decode_ctl.scala 359:141]
node _T_242 = and(io.dec_i0_rs2_en_d, cam[3].valid) @[el2_dec_decode_ctl.scala 359:192]
node _T_243 = eq(cam[3].bits.rd, i0r.rs2) @[el2_dec_decode_ctl.scala 359:225]
node _T_244 = and(_T_242, _T_243) @[el2_dec_decode_ctl.scala 359:207]
node _T_245 = or(_T_211, _T_220) @[el2_dec_decode_ctl.scala 360:69]
node _T_246 = or(_T_245, _T_229) @[el2_dec_decode_ctl.scala 360:69]
node waddr = or(_T_246, _T_238) @[el2_dec_decode_ctl.scala 360:69]

View File

@ -46518,38 +46518,38 @@ module el2_dec_decode_ctl(
wire _T_48 = ~_T_47; // @[el2_dec_decode_ctl.scala 276:26]
wire i0_ap_pc2 = ~io_dec_i0_pc4_d; // @[el2_dec_decode_ctl.scala 278:20]
wire cam_data_reset = io_lsu_nonblock_load_data_valid | io_lsu_nonblock_load_data_error; // @[el2_dec_decode_ctl.scala 311:63]
reg [2:0] cam_raw_0_tag; // @[el2_dec_decode_ctl.scala 347:47]
reg [2:0] cam_raw_0_bits_tag; // @[el2_dec_decode_ctl.scala 347:47]
wire [2:0] _GEN_123 = {{1'd0}, io_lsu_nonblock_load_data_tag}; // @[el2_dec_decode_ctl.scala 322:67]
wire _T_94 = _GEN_123 == cam_raw_0_tag; // @[el2_dec_decode_ctl.scala 322:67]
wire _T_94 = _GEN_123 == cam_raw_0_bits_tag; // @[el2_dec_decode_ctl.scala 322:67]
wire _T_95 = cam_data_reset & _T_94; // @[el2_dec_decode_ctl.scala 322:45]
reg cam_raw_0_valid; // @[el2_dec_decode_ctl.scala 347:47]
wire cam_data_reset_val_0 = _T_95 & cam_raw_0_valid; // @[el2_dec_decode_ctl.scala 322:83]
wire cam_data_reset_val_0 = _T_95 & cam_raw_0_valid; // @[el2_dec_decode_ctl.scala 322:88]
wire cam_0_valid = cam_data_reset_val_0 ? 1'h0 : cam_raw_0_valid; // @[el2_dec_decode_ctl.scala 326:39]
wire _T_51 = ~cam_0_valid; // @[el2_dec_decode_ctl.scala 303:78]
reg [2:0] cam_raw_1_tag; // @[el2_dec_decode_ctl.scala 347:47]
wire _T_120 = _GEN_123 == cam_raw_1_tag; // @[el2_dec_decode_ctl.scala 322:67]
reg [2:0] cam_raw_1_bits_tag; // @[el2_dec_decode_ctl.scala 347:47]
wire _T_120 = _GEN_123 == cam_raw_1_bits_tag; // @[el2_dec_decode_ctl.scala 322:67]
wire _T_121 = cam_data_reset & _T_120; // @[el2_dec_decode_ctl.scala 322:45]
reg cam_raw_1_valid; // @[el2_dec_decode_ctl.scala 347:47]
wire cam_data_reset_val_1 = _T_121 & cam_raw_1_valid; // @[el2_dec_decode_ctl.scala 322:83]
wire cam_data_reset_val_1 = _T_121 & cam_raw_1_valid; // @[el2_dec_decode_ctl.scala 322:88]
wire cam_1_valid = cam_data_reset_val_1 ? 1'h0 : cam_raw_1_valid; // @[el2_dec_decode_ctl.scala 326:39]
wire _T_54 = ~cam_1_valid; // @[el2_dec_decode_ctl.scala 303:78]
wire _T_57 = cam_0_valid & _T_54; // @[el2_dec_decode_ctl.scala 303:126]
wire [1:0] _T_59 = {io_lsu_nonblock_load_valid_m, 1'h0}; // @[el2_dec_decode_ctl.scala 303:158]
reg [2:0] cam_raw_2_tag; // @[el2_dec_decode_ctl.scala 347:47]
wire _T_146 = _GEN_123 == cam_raw_2_tag; // @[el2_dec_decode_ctl.scala 322:67]
reg [2:0] cam_raw_2_bits_tag; // @[el2_dec_decode_ctl.scala 347:47]
wire _T_146 = _GEN_123 == cam_raw_2_bits_tag; // @[el2_dec_decode_ctl.scala 322:67]
wire _T_147 = cam_data_reset & _T_146; // @[el2_dec_decode_ctl.scala 322:45]
reg cam_raw_2_valid; // @[el2_dec_decode_ctl.scala 347:47]
wire cam_data_reset_val_2 = _T_147 & cam_raw_2_valid; // @[el2_dec_decode_ctl.scala 322:83]
wire cam_data_reset_val_2 = _T_147 & cam_raw_2_valid; // @[el2_dec_decode_ctl.scala 322:88]
wire cam_2_valid = cam_data_reset_val_2 ? 1'h0 : cam_raw_2_valid; // @[el2_dec_decode_ctl.scala 326:39]
wire _T_60 = ~cam_2_valid; // @[el2_dec_decode_ctl.scala 303:78]
wire _T_63 = cam_0_valid & cam_1_valid; // @[el2_dec_decode_ctl.scala 303:126]
wire _T_66 = _T_63 & _T_60; // @[el2_dec_decode_ctl.scala 303:126]
wire [2:0] _T_68 = {io_lsu_nonblock_load_valid_m, 2'h0}; // @[el2_dec_decode_ctl.scala 303:158]
reg [2:0] cam_raw_3_tag; // @[el2_dec_decode_ctl.scala 347:47]
wire _T_172 = _GEN_123 == cam_raw_3_tag; // @[el2_dec_decode_ctl.scala 322:67]
reg [2:0] cam_raw_3_bits_tag; // @[el2_dec_decode_ctl.scala 347:47]
wire _T_172 = _GEN_123 == cam_raw_3_bits_tag; // @[el2_dec_decode_ctl.scala 322:67]
wire _T_173 = cam_data_reset & _T_172; // @[el2_dec_decode_ctl.scala 322:45]
reg cam_raw_3_valid; // @[el2_dec_decode_ctl.scala 347:47]
wire cam_data_reset_val_3 = _T_173 & cam_raw_3_valid; // @[el2_dec_decode_ctl.scala 322:83]
wire cam_data_reset_val_3 = _T_173 & cam_raw_3_valid; // @[el2_dec_decode_ctl.scala 322:88]
wire cam_3_valid = cam_data_reset_val_3 ? 1'h0 : cam_raw_3_valid; // @[el2_dec_decode_ctl.scala 326:39]
wire _T_69 = ~cam_3_valid; // @[el2_dec_decode_ctl.scala 303:78]
wire _T_75 = _T_63 & cam_2_valid; // @[el2_dec_decode_ctl.scala 303:126]
@ -46576,76 +46576,76 @@ module el2_dec_decode_ctl(
reg r_d_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 [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_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 cam_inv_reset_val_0 = _T_92 & cam_0_valid; // @[el2_dec_decode_ctl.scala 321:82]
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]
wire _T_743 = ~io_dec_tlu_flush_lower_wb; // @[el2_dec_decode_ctl.scala 687:41]
wire r_d_in_i0v = r_d_i0v & _T_743; // @[el2_dec_decode_ctl.scala 687:39]
wire _T_754 = ~io_dec_tlu_i0_kill_writeb_r; // @[el2_dec_decode_ctl.scala 695:42]
wire i0_wen_r = r_d_in_i0v & _T_754; // @[el2_dec_decode_ctl.scala 695:40]
reg [4:0] r_d_i0rd; // @[el2_lib.scala 524:16]
reg [4:0] cam_raw_0_rd; // @[el2_dec_decode_ctl.scala 347:47]
wire _T_103 = r_d_i0rd == cam_raw_0_rd; // @[el2_dec_decode_ctl.scala 334:80]
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_104 = i0_wen_r & _T_103; // @[el2_dec_decode_ctl.scala 334:64]
reg cam_raw_0_wb; // @[el2_dec_decode_ctl.scala 347:47]
wire _T_106 = _T_104 & cam_raw_0_wb; // @[el2_dec_decode_ctl.scala 334:95]
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_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:116]
wire _GEN_55 = _T_107 ? 1'h0 : cam_raw_0_wb; // @[el2_dec_decode_ctl.scala 334:116]
wire _GEN_52 = _T_107 ? 1'h0 : cam_0_valid; // @[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:126]
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 _T_110 = nonblock_load_valid_m_delay & _T_91; // @[el2_dec_decode_ctl.scala 339:44]
wire _T_112 = _T_110 & cam_0_valid; // @[el2_dec_decode_ctl.scala 339:95]
wire nonblock_load_write_0 = _T_94 & cam_raw_0_valid; // @[el2_dec_decode_ctl.scala 348:66]
wire _T_117 = _GEN_130 == cam_raw_1_tag; // @[el2_dec_decode_ctl.scala 321:66]
wire _T_112 = _T_110 & cam_0_valid; // @[el2_dec_decode_ctl.scala 339:100]
wire nonblock_load_write_0 = _T_94 & cam_raw_0_valid; // @[el2_dec_decode_ctl.scala 348:71]
wire _T_117 = _GEN_130 == cam_raw_1_bits_tag; // @[el2_dec_decode_ctl.scala 321:66]
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:82]
reg [4:0] cam_raw_1_rd; // @[el2_dec_decode_ctl.scala 347:47]
wire _T_129 = r_d_i0rd == cam_raw_1_rd; // @[el2_dec_decode_ctl.scala 334:80]
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]
wire _T_129 = r_d_i0rd == cam_raw_1_bits_rd; // @[el2_dec_decode_ctl.scala 334:80]
wire _T_130 = i0_wen_r & _T_129; // @[el2_dec_decode_ctl.scala 334:64]
reg cam_raw_1_wb; // @[el2_dec_decode_ctl.scala 347:47]
wire _T_132 = _T_130 & cam_raw_1_wb; // @[el2_dec_decode_ctl.scala 334:95]
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_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:116]
wire _GEN_66 = _T_133 ? 1'h0 : cam_raw_1_wb; // @[el2_dec_decode_ctl.scala 334:116]
wire _GEN_63 = _T_133 ? 1'h0 : cam_1_valid; // @[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:126]
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 _T_136 = nonblock_load_valid_m_delay & _T_117; // @[el2_dec_decode_ctl.scala 339:44]
wire _T_138 = _T_136 & cam_1_valid; // @[el2_dec_decode_ctl.scala 339:95]
wire nonblock_load_write_1 = _T_120 & cam_raw_1_valid; // @[el2_dec_decode_ctl.scala 348:66]
wire _T_143 = _GEN_130 == cam_raw_2_tag; // @[el2_dec_decode_ctl.scala 321:66]
wire _T_138 = _T_136 & cam_1_valid; // @[el2_dec_decode_ctl.scala 339:100]
wire nonblock_load_write_1 = _T_120 & cam_raw_1_valid; // @[el2_dec_decode_ctl.scala 348:71]
wire _T_143 = _GEN_130 == cam_raw_2_bits_tag; // @[el2_dec_decode_ctl.scala 321:66]
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:82]
reg [4:0] cam_raw_2_rd; // @[el2_dec_decode_ctl.scala 347:47]
wire _T_155 = r_d_i0rd == cam_raw_2_rd; // @[el2_dec_decode_ctl.scala 334:80]
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]
wire _T_155 = r_d_i0rd == cam_raw_2_bits_rd; // @[el2_dec_decode_ctl.scala 334:80]
wire _T_156 = i0_wen_r & _T_155; // @[el2_dec_decode_ctl.scala 334:64]
reg cam_raw_2_wb; // @[el2_dec_decode_ctl.scala 347:47]
wire _T_158 = _T_156 & cam_raw_2_wb; // @[el2_dec_decode_ctl.scala 334:95]
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_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:116]
wire _GEN_77 = _T_159 ? 1'h0 : cam_raw_2_wb; // @[el2_dec_decode_ctl.scala 334:116]
wire _GEN_74 = _T_159 ? 1'h0 : cam_2_valid; // @[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:126]
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 _T_162 = nonblock_load_valid_m_delay & _T_143; // @[el2_dec_decode_ctl.scala 339:44]
wire _T_164 = _T_162 & cam_2_valid; // @[el2_dec_decode_ctl.scala 339:95]
wire nonblock_load_write_2 = _T_146 & cam_raw_2_valid; // @[el2_dec_decode_ctl.scala 348:66]
wire _T_169 = _GEN_130 == cam_raw_3_tag; // @[el2_dec_decode_ctl.scala 321:66]
wire _T_164 = _T_162 & cam_2_valid; // @[el2_dec_decode_ctl.scala 339:100]
wire nonblock_load_write_2 = _T_146 & cam_raw_2_valid; // @[el2_dec_decode_ctl.scala 348:71]
wire _T_169 = _GEN_130 == cam_raw_3_bits_tag; // @[el2_dec_decode_ctl.scala 321:66]
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:82]
reg [4:0] cam_raw_3_rd; // @[el2_dec_decode_ctl.scala 347:47]
wire _T_181 = r_d_i0rd == cam_raw_3_rd; // @[el2_dec_decode_ctl.scala 334:80]
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]
wire _T_181 = r_d_i0rd == cam_raw_3_bits_rd; // @[el2_dec_decode_ctl.scala 334:80]
wire _T_182 = i0_wen_r & _T_181; // @[el2_dec_decode_ctl.scala 334:64]
reg cam_raw_3_wb; // @[el2_dec_decode_ctl.scala 347:47]
wire _T_184 = _T_182 & cam_raw_3_wb; // @[el2_dec_decode_ctl.scala 334:95]
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_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:116]
wire _GEN_88 = _T_185 ? 1'h0 : cam_raw_3_wb; // @[el2_dec_decode_ctl.scala 334:116]
wire _GEN_85 = _T_185 ? 1'h0 : cam_3_valid; // @[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:126]
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 _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:95]
wire nonblock_load_write_3 = _T_172 & cam_raw_3_valid; // @[el2_dec_decode_ctl.scala 348:66]
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 _T_195 = r_d_i0rd == io_dec_nonblock_load_waddr; // @[el2_dec_decode_ctl.scala 353:44]
wire nonblock_load_cancel = _T_195 & i0_wen_r; // @[el2_dec_decode_ctl.scala 353:76]
wire _T_196 = nonblock_load_write_0 | nonblock_load_write_1; // @[el2_dec_decode_ctl.scala 354:95]
@ -46662,37 +46662,37 @@ module el2_dec_decode_ctl(
wire _T_208 = _T_207 & io_dec_i0_rs2_en_d; // @[el2_dec_decode_ctl.scala 355:180]
wire i0_nonblock_boundary_stall = _T_205 | _T_208; // @[el2_dec_decode_ctl.scala 355:118]
wire [4:0] _T_210 = nonblock_load_write_0 ? 5'h1f : 5'h0; // @[Bitwise.scala 72:12]
wire [4:0] _T_211 = _T_210 & cam_raw_0_rd; // @[el2_dec_decode_ctl.scala 359:88]
wire _T_212 = io_dec_i0_rs1_en_d & cam_0_valid; // @[el2_dec_decode_ctl.scala 359:121]
wire _T_213 = cam_raw_0_rd == i0r_rs1; // @[el2_dec_decode_ctl.scala 359:149]
wire _T_214 = _T_212 & _T_213; // @[el2_dec_decode_ctl.scala 359:136]
wire _T_215 = io_dec_i0_rs2_en_d & cam_0_valid; // @[el2_dec_decode_ctl.scala 359:182]
wire _T_216 = cam_raw_0_rd == i0r_rs2; // @[el2_dec_decode_ctl.scala 359:210]
wire _T_217 = _T_215 & _T_216; // @[el2_dec_decode_ctl.scala 359:197]
wire [4:0] _T_211 = _T_210 & cam_raw_0_bits_rd; // @[el2_dec_decode_ctl.scala 359:88]
wire _T_212 = io_dec_i0_rs1_en_d & cam_0_valid; // @[el2_dec_decode_ctl.scala 359:126]
wire _T_213 = cam_raw_0_bits_rd == i0r_rs1; // @[el2_dec_decode_ctl.scala 359:159]
wire _T_214 = _T_212 & _T_213; // @[el2_dec_decode_ctl.scala 359:141]
wire _T_215 = io_dec_i0_rs2_en_d & cam_0_valid; // @[el2_dec_decode_ctl.scala 359:192]
wire _T_216 = cam_raw_0_bits_rd == i0r_rs2; // @[el2_dec_decode_ctl.scala 359:225]
wire _T_217 = _T_215 & _T_216; // @[el2_dec_decode_ctl.scala 359:207]
wire [4:0] _T_219 = nonblock_load_write_1 ? 5'h1f : 5'h0; // @[Bitwise.scala 72:12]
wire [4:0] _T_220 = _T_219 & cam_raw_1_rd; // @[el2_dec_decode_ctl.scala 359:88]
wire _T_221 = io_dec_i0_rs1_en_d & cam_1_valid; // @[el2_dec_decode_ctl.scala 359:121]
wire _T_222 = cam_raw_1_rd == i0r_rs1; // @[el2_dec_decode_ctl.scala 359:149]
wire _T_223 = _T_221 & _T_222; // @[el2_dec_decode_ctl.scala 359:136]
wire _T_224 = io_dec_i0_rs2_en_d & cam_1_valid; // @[el2_dec_decode_ctl.scala 359:182]
wire _T_225 = cam_raw_1_rd == i0r_rs2; // @[el2_dec_decode_ctl.scala 359:210]
wire _T_226 = _T_224 & _T_225; // @[el2_dec_decode_ctl.scala 359:197]
wire [4:0] _T_220 = _T_219 & cam_raw_1_bits_rd; // @[el2_dec_decode_ctl.scala 359:88]
wire _T_221 = io_dec_i0_rs1_en_d & cam_1_valid; // @[el2_dec_decode_ctl.scala 359:126]
wire _T_222 = cam_raw_1_bits_rd == i0r_rs1; // @[el2_dec_decode_ctl.scala 359:159]
wire _T_223 = _T_221 & _T_222; // @[el2_dec_decode_ctl.scala 359:141]
wire _T_224 = io_dec_i0_rs2_en_d & cam_1_valid; // @[el2_dec_decode_ctl.scala 359:192]
wire _T_225 = cam_raw_1_bits_rd == i0r_rs2; // @[el2_dec_decode_ctl.scala 359:225]
wire _T_226 = _T_224 & _T_225; // @[el2_dec_decode_ctl.scala 359:207]
wire [4:0] _T_228 = nonblock_load_write_2 ? 5'h1f : 5'h0; // @[Bitwise.scala 72:12]
wire [4:0] _T_229 = _T_228 & cam_raw_2_rd; // @[el2_dec_decode_ctl.scala 359:88]
wire _T_230 = io_dec_i0_rs1_en_d & cam_2_valid; // @[el2_dec_decode_ctl.scala 359:121]
wire _T_231 = cam_raw_2_rd == i0r_rs1; // @[el2_dec_decode_ctl.scala 359:149]
wire _T_232 = _T_230 & _T_231; // @[el2_dec_decode_ctl.scala 359:136]
wire _T_233 = io_dec_i0_rs2_en_d & cam_2_valid; // @[el2_dec_decode_ctl.scala 359:182]
wire _T_234 = cam_raw_2_rd == i0r_rs2; // @[el2_dec_decode_ctl.scala 359:210]
wire _T_235 = _T_233 & _T_234; // @[el2_dec_decode_ctl.scala 359:197]
wire [4:0] _T_229 = _T_228 & cam_raw_2_bits_rd; // @[el2_dec_decode_ctl.scala 359:88]
wire _T_230 = io_dec_i0_rs1_en_d & cam_2_valid; // @[el2_dec_decode_ctl.scala 359:126]
wire _T_231 = cam_raw_2_bits_rd == i0r_rs1; // @[el2_dec_decode_ctl.scala 359:159]
wire _T_232 = _T_230 & _T_231; // @[el2_dec_decode_ctl.scala 359:141]
wire _T_233 = io_dec_i0_rs2_en_d & cam_2_valid; // @[el2_dec_decode_ctl.scala 359:192]
wire _T_234 = cam_raw_2_bits_rd == i0r_rs2; // @[el2_dec_decode_ctl.scala 359:225]
wire _T_235 = _T_233 & _T_234; // @[el2_dec_decode_ctl.scala 359:207]
wire [4:0] _T_237 = nonblock_load_write_3 ? 5'h1f : 5'h0; // @[Bitwise.scala 72:12]
wire [4:0] _T_238 = _T_237 & cam_raw_3_rd; // @[el2_dec_decode_ctl.scala 359:88]
wire _T_239 = io_dec_i0_rs1_en_d & cam_3_valid; // @[el2_dec_decode_ctl.scala 359:121]
wire _T_240 = cam_raw_3_rd == i0r_rs1; // @[el2_dec_decode_ctl.scala 359:149]
wire _T_241 = _T_239 & _T_240; // @[el2_dec_decode_ctl.scala 359:136]
wire _T_242 = io_dec_i0_rs2_en_d & cam_3_valid; // @[el2_dec_decode_ctl.scala 359:182]
wire _T_243 = cam_raw_3_rd == i0r_rs2; // @[el2_dec_decode_ctl.scala 359:210]
wire _T_244 = _T_242 & _T_243; // @[el2_dec_decode_ctl.scala 359:197]
wire [4:0] _T_238 = _T_237 & cam_raw_3_bits_rd; // @[el2_dec_decode_ctl.scala 359:88]
wire _T_239 = io_dec_i0_rs1_en_d & cam_3_valid; // @[el2_dec_decode_ctl.scala 359:126]
wire _T_240 = cam_raw_3_bits_rd == i0r_rs1; // @[el2_dec_decode_ctl.scala 359:159]
wire _T_241 = _T_239 & _T_240; // @[el2_dec_decode_ctl.scala 359:141]
wire _T_242 = io_dec_i0_rs2_en_d & cam_3_valid; // @[el2_dec_decode_ctl.scala 359:192]
wire _T_243 = cam_raw_3_bits_rd == i0r_rs2; // @[el2_dec_decode_ctl.scala 359:225]
wire _T_244 = _T_242 & _T_243; // @[el2_dec_decode_ctl.scala 359:207]
wire [4:0] _T_245 = _T_211 | _T_220; // @[el2_dec_decode_ctl.scala 360:69]
wire [4:0] _T_246 = _T_245 | _T_229; // @[el2_dec_decode_ctl.scala 360:69]
wire _T_247 = _T_214 | _T_223; // @[el2_dec_decode_ctl.scala 360:102]
@ -47441,19 +47441,19 @@ initial begin
_RAND_9 = {1{`RANDOM}};
illegal_lockout = _RAND_9[0:0];
_RAND_10 = {1{`RANDOM}};
cam_raw_0_tag = _RAND_10[2:0];
cam_raw_0_bits_tag = _RAND_10[2:0];
_RAND_11 = {1{`RANDOM}};
cam_raw_0_valid = _RAND_11[0:0];
_RAND_12 = {1{`RANDOM}};
cam_raw_1_tag = _RAND_12[2:0];
cam_raw_1_bits_tag = _RAND_12[2:0];
_RAND_13 = {1{`RANDOM}};
cam_raw_1_valid = _RAND_13[0:0];
_RAND_14 = {1{`RANDOM}};
cam_raw_2_tag = _RAND_14[2:0];
cam_raw_2_bits_tag = _RAND_14[2:0];
_RAND_15 = {1{`RANDOM}};
cam_raw_2_valid = _RAND_15[0:0];
_RAND_16 = {1{`RANDOM}};
cam_raw_3_tag = _RAND_16[2:0];
cam_raw_3_bits_tag = _RAND_16[2:0];
_RAND_17 = {1{`RANDOM}};
cam_raw_3_valid = _RAND_17[0:0];
_RAND_18 = {1{`RANDOM}};
@ -47471,21 +47471,21 @@ initial begin
_RAND_24 = {1{`RANDOM}};
r_d_i0rd = _RAND_24[4:0];
_RAND_25 = {1{`RANDOM}};
cam_raw_0_rd = _RAND_25[4:0];
cam_raw_0_bits_rd = _RAND_25[4:0];
_RAND_26 = {1{`RANDOM}};
cam_raw_0_wb = _RAND_26[0:0];
cam_raw_0_bits_wb = _RAND_26[0:0];
_RAND_27 = {1{`RANDOM}};
cam_raw_1_rd = _RAND_27[4:0];
cam_raw_1_bits_rd = _RAND_27[4:0];
_RAND_28 = {1{`RANDOM}};
cam_raw_1_wb = _RAND_28[0:0];
cam_raw_1_bits_wb = _RAND_28[0:0];
_RAND_29 = {1{`RANDOM}};
cam_raw_2_rd = _RAND_29[4:0];
cam_raw_2_bits_rd = _RAND_29[4:0];
_RAND_30 = {1{`RANDOM}};
cam_raw_2_wb = _RAND_30[0:0];
cam_raw_2_bits_wb = _RAND_30[0:0];
_RAND_31 = {1{`RANDOM}};
cam_raw_3_rd = _RAND_31[4:0];
cam_raw_3_bits_rd = _RAND_31[4:0];
_RAND_32 = {1{`RANDOM}};
cam_raw_3_wb = _RAND_32[0:0];
cam_raw_3_bits_wb = _RAND_32[0:0];
_RAND_33 = {1{`RANDOM}};
lsu_idle = _RAND_33[0:0];
_RAND_34 = {1{`RANDOM}};
@ -47634,25 +47634,25 @@ initial begin
illegal_lockout = 1'h0;
end
if (reset) begin
cam_raw_0_tag = 3'h0;
cam_raw_0_bits_tag = 3'h0;
end
if (reset) begin
cam_raw_0_valid = 1'h0;
end
if (reset) begin
cam_raw_1_tag = 3'h0;
cam_raw_1_bits_tag = 3'h0;
end
if (reset) begin
cam_raw_1_valid = 1'h0;
end
if (reset) begin
cam_raw_2_tag = 3'h0;
cam_raw_2_bits_tag = 3'h0;
end
if (reset) begin
cam_raw_2_valid = 1'h0;
end
if (reset) begin
cam_raw_3_tag = 3'h0;
cam_raw_3_bits_tag = 3'h0;
end
if (reset) begin
cam_raw_3_valid = 1'h0;
@ -47679,28 +47679,28 @@ initial begin
r_d_i0rd = 5'h0;
end
if (reset) begin
cam_raw_0_rd = 5'h0;
cam_raw_0_bits_rd = 5'h0;
end
if (reset) begin
cam_raw_0_wb = 1'h0;
cam_raw_0_bits_wb = 1'h0;
end
if (reset) begin
cam_raw_1_rd = 5'h0;
cam_raw_1_bits_rd = 5'h0;
end
if (reset) begin
cam_raw_1_wb = 1'h0;
cam_raw_1_bits_wb = 1'h0;
end
if (reset) begin
cam_raw_2_rd = 5'h0;
cam_raw_2_bits_rd = 5'h0;
end
if (reset) begin
cam_raw_2_wb = 1'h0;
cam_raw_2_bits_wb = 1'h0;
end
if (reset) begin
cam_raw_3_rd = 5'h0;
cam_raw_3_bits_rd = 5'h0;
end
if (reset) begin
cam_raw_3_wb = 1'h0;
cam_raw_3_bits_wb = 1'h0;
end
if (reset) begin
lsu_idle = 1'h0;
@ -47960,11 +47960,11 @@ end // initial
end
always @(posedge io_free_clk or posedge reset) begin
if (reset) begin
cam_raw_0_tag <= 3'h0;
cam_raw_0_bits_tag <= 3'h0;
end else if (cam_wen[0]) begin
cam_raw_0_tag <= {{1'd0}, io_lsu_nonblock_load_tag_m};
cam_raw_0_bits_tag <= {{1'd0}, io_lsu_nonblock_load_tag_m};
end else if (_T_107) begin
cam_raw_0_tag <= 3'h0;
cam_raw_0_bits_tag <= 3'h0;
end
end
always @(posedge io_free_clk or posedge reset) begin
@ -47978,11 +47978,11 @@ end // initial
end
always @(posedge io_free_clk or posedge reset) begin
if (reset) begin
cam_raw_1_tag <= 3'h0;
cam_raw_1_bits_tag <= 3'h0;
end else if (cam_wen[1]) begin
cam_raw_1_tag <= {{1'd0}, io_lsu_nonblock_load_tag_m};
cam_raw_1_bits_tag <= {{1'd0}, io_lsu_nonblock_load_tag_m};
end else if (_T_133) begin
cam_raw_1_tag <= 3'h0;
cam_raw_1_bits_tag <= 3'h0;
end
end
always @(posedge io_free_clk or posedge reset) begin
@ -47996,11 +47996,11 @@ end // initial
end
always @(posedge io_free_clk or posedge reset) begin
if (reset) begin
cam_raw_2_tag <= 3'h0;
cam_raw_2_bits_tag <= 3'h0;
end else if (cam_wen[2]) begin
cam_raw_2_tag <= {{1'd0}, io_lsu_nonblock_load_tag_m};
cam_raw_2_bits_tag <= {{1'd0}, io_lsu_nonblock_load_tag_m};
end else if (_T_159) begin
cam_raw_2_tag <= 3'h0;
cam_raw_2_bits_tag <= 3'h0;
end
end
always @(posedge io_free_clk or posedge reset) begin
@ -48014,11 +48014,11 @@ end // initial
end
always @(posedge io_free_clk or posedge reset) begin
if (reset) begin
cam_raw_3_tag <= 3'h0;
cam_raw_3_bits_tag <= 3'h0;
end else if (cam_wen[3]) begin
cam_raw_3_tag <= {{1'd0}, io_lsu_nonblock_load_tag_m};
cam_raw_3_bits_tag <= {{1'd0}, io_lsu_nonblock_load_tag_m};
end else if (_T_185) begin
cam_raw_3_tag <= 3'h0;
cam_raw_3_bits_tag <= 3'h0;
end
end
always @(posedge io_free_clk or posedge reset) begin
@ -48081,82 +48081,82 @@ end // initial
end
always @(posedge io_free_clk or posedge reset) begin
if (reset) begin
cam_raw_0_rd <= 5'h0;
cam_raw_0_bits_rd <= 5'h0;
end else if (cam_wen[0]) begin
if (x_d_i0load) begin
cam_raw_0_rd <= x_d_i0rd;
cam_raw_0_bits_rd <= x_d_i0rd;
end else begin
cam_raw_0_rd <= 5'h0;
cam_raw_0_bits_rd <= 5'h0;
end
end else if (_T_107) begin
cam_raw_0_rd <= 5'h0;
cam_raw_0_bits_rd <= 5'h0;
end
end
always @(posedge io_free_clk or posedge reset) begin
if (reset) begin
cam_raw_0_wb <= 1'h0;
cam_raw_0_bits_wb <= 1'h0;
end else begin
cam_raw_0_wb <= _T_112 | _GEN_57;
cam_raw_0_bits_wb <= _T_112 | _GEN_57;
end
end
always @(posedge io_free_clk or posedge reset) begin
if (reset) begin
cam_raw_1_rd <= 5'h0;
cam_raw_1_bits_rd <= 5'h0;
end else if (cam_wen[1]) begin
if (x_d_i0load) begin
cam_raw_1_rd <= x_d_i0rd;
cam_raw_1_bits_rd <= x_d_i0rd;
end else begin
cam_raw_1_rd <= 5'h0;
cam_raw_1_bits_rd <= 5'h0;
end
end else if (_T_133) begin
cam_raw_1_rd <= 5'h0;
cam_raw_1_bits_rd <= 5'h0;
end
end
always @(posedge io_free_clk or posedge reset) begin
if (reset) begin
cam_raw_1_wb <= 1'h0;
cam_raw_1_bits_wb <= 1'h0;
end else begin
cam_raw_1_wb <= _T_138 | _GEN_68;
cam_raw_1_bits_wb <= _T_138 | _GEN_68;
end
end
always @(posedge io_free_clk or posedge reset) begin
if (reset) begin
cam_raw_2_rd <= 5'h0;
cam_raw_2_bits_rd <= 5'h0;
end else if (cam_wen[2]) begin
if (x_d_i0load) begin
cam_raw_2_rd <= x_d_i0rd;
cam_raw_2_bits_rd <= x_d_i0rd;
end else begin
cam_raw_2_rd <= 5'h0;
cam_raw_2_bits_rd <= 5'h0;
end
end else if (_T_159) begin
cam_raw_2_rd <= 5'h0;
cam_raw_2_bits_rd <= 5'h0;
end
end
always @(posedge io_free_clk or posedge reset) begin
if (reset) begin
cam_raw_2_wb <= 1'h0;
cam_raw_2_bits_wb <= 1'h0;
end else begin
cam_raw_2_wb <= _T_164 | _GEN_79;
cam_raw_2_bits_wb <= _T_164 | _GEN_79;
end
end
always @(posedge io_free_clk or posedge reset) begin
if (reset) begin
cam_raw_3_rd <= 5'h0;
cam_raw_3_bits_rd <= 5'h0;
end else if (cam_wen[3]) begin
if (x_d_i0load) begin
cam_raw_3_rd <= x_d_i0rd;
cam_raw_3_bits_rd <= x_d_i0rd;
end else begin
cam_raw_3_rd <= 5'h0;
cam_raw_3_bits_rd <= 5'h0;
end
end else if (_T_185) begin
cam_raw_3_rd <= 5'h0;
cam_raw_3_bits_rd <= 5'h0;
end
end
always @(posedge io_free_clk or posedge reset) begin
if (reset) begin
cam_raw_3_wb <= 1'h0;
cam_raw_3_bits_wb <= 1'h0;
end else begin
cam_raw_3_wb <= _T_190 | _GEN_90;
cam_raw_3_bits_wb <= _T_190 | _GEN_90;
end
end
always @(posedge io_active_clk or posedge reset) begin

View File

@ -144,13 +144,13 @@ class el2_dec_decode_ctl extends Module with el2_lib with RequireAsyncReset{
val i0_rs1_depth_d = WireInit(UInt(2.W),0.U)
val i0_rs2_depth_d = WireInit(UInt(2.W),0.U)
val cam_wen=WireInit(UInt(LSU_NUM_NBLOAD.W), 0.U)
val cam = Wire(Vec(LSU_NUM_NBLOAD,new el2_load_cam_pkt_t))
val cam = Wire(Vec(LSU_NUM_NBLOAD,Valid(new el2_load_cam_pkt_t)))
val cam_write=WireInit(UInt(1.W), 0.U)
val cam_inv_reset_val=Wire(Vec(LSU_NUM_NBLOAD,UInt(1.W)))
val cam_data_reset_val=Wire(Vec(LSU_NUM_NBLOAD,UInt(1.W)))
val nonblock_load_write=Wire(Vec(LSU_NUM_NBLOAD,UInt(1.W)))
val cam_raw =Wire(Vec(LSU_NUM_NBLOAD,new el2_load_cam_pkt_t))
val cam_in =Wire(Vec(LSU_NUM_NBLOAD,new el2_load_cam_pkt_t))
val cam_raw =Wire(Vec(LSU_NUM_NBLOAD,Valid(new el2_load_cam_pkt_t)))
val cam_in =Wire(Vec(LSU_NUM_NBLOAD,Valid(new el2_load_cam_pkt_t)))
//val i0_temp = Wire(new el2_inst_pkt_t)
val i0_dp= Wire(new el2_dec_pkt_t)
val i0_dp_raw= Wire(new el2_dec_pkt_t)
@ -318,8 +318,8 @@ class el2_dec_decode_ctl extends Module with el2_lib with RequireAsyncReset{
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
for(i <- 0 until LSU_NUM_NBLOAD){
cam_inv_reset_val(i) := cam_inv_reset & (cam_inv_reset_tag === cam(i).tag) & cam(i).valid
cam_data_reset_val(i) := cam_data_reset & (cam_data_reset_tag === cam(i).tag) & cam_raw(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_in(i):=0.U.asTypeOf(cam(0))
cam(i):=cam_raw(i)
@ -328,16 +328,16 @@ class el2_dec_decode_ctl extends Module with el2_lib with RequireAsyncReset{
}
when(cam_wen(i).asBool){
cam_in(i).valid := 1.U(1.W)
cam_in(i).wb := 0.U(1.W)
cam_in(i).tag := cam_write_tag
cam_in(i).rd := nonblock_load_rd
}.elsewhen(cam_inv_reset_val(i).asBool || (i0_wen_r.asBool && (r_d_in.i0rd === cam(i).rd) && cam(i).wb.asBool)){
cam_in(i).bits.wb := 0.U(1.W)
cam_in(i).bits.tag := cam_write_tag
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)){
cam_in(i).valid := 0.U
}.otherwise{
cam_in(i) := cam(i)
}
when(nonblock_load_valid_m_delay===1.U && (io.lsu_nonblock_load_inv_tag_r === cam(i).tag) && cam(i).valid===1.U){
cam_in(i).wb := 1.U
when(nonblock_load_valid_m_delay===1.U && (io.lsu_nonblock_load_inv_tag_r === cam(i).bits.tag) && cam(i).valid===1.U){
cam_in(i).bits.wb := 1.U
}
// force debug halt forces cam valids to 0; highest priority
when(io.dec_tlu_force_halt){
@ -345,7 +345,7 @@ class el2_dec_decode_ctl extends Module with el2_lib with RequireAsyncReset{
}
cam_raw(i):=withClock(io.free_clk){RegNext(cam_in(i),0.U.asTypeOf(cam(0)))}
nonblock_load_write(i) := (load_data_tag === cam_raw(i).tag) & cam_raw(i).valid
nonblock_load_write(i) := (load_data_tag === cam_raw(i).bits.tag) & cam_raw(i).valid
}
io.dec_nonblock_load_waddr:=0.U(5.W)
@ -356,7 +356,7 @@ class el2_dec_decode_ctl extends Module with el2_lib with RequireAsyncReset{
i0_nonblock_load_stall := i0_nonblock_boundary_stall
val cal_temp= for(i <-0 until LSU_NUM_NBLOAD) yield ((Fill(5,nonblock_load_write(i)) & cam(i).rd), io.dec_i0_rs1_en_d & cam(i).valid & (cam(i).rd === i0r.rs1), io.dec_i0_rs2_en_d & cam(i).valid & (cam(i).rd === i0r.rs2))
val cal_temp= for(i <-0 until LSU_NUM_NBLOAD) yield ((Fill(5,nonblock_load_write(i)) & cam(i).bits.rd), io.dec_i0_rs1_en_d & cam(i).valid & (cam(i).bits.rd === i0r.rs1), io.dec_i0_rs2_en_d & cam(i).valid & (cam(i).bits.rd === i0r.rs2))
val (waddr, ld_stall_1, ld_stall_2) = (cal_temp.map(_._1).reduce(_|_) , cal_temp.map(_._2).reduce(_|_), cal_temp.map(_._3).reduce(_|_) )
io.dec_nonblock_load_waddr:=waddr
i0_nonblock_load_stall:=ld_stall_1 | ld_stall_2 | i0_nonblock_boundary_stall

View File

@ -36,7 +36,7 @@ object el2_inst_pkt_t extends Enumeration{
}
class el2_load_cam_pkt_t extends Bundle {
val valid = UInt(1.W)
//val valid = UInt(1.W)
val wb = UInt(1.W)
val tag = UInt(3.W)
val rd = UInt(5.W)