dec update
This commit is contained in:
parent
964d3960a2
commit
5ed044d54b
|
@ -2573,11 +2573,11 @@ circuit el2_dec_decode_ctl :
|
|||
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_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 : {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 : {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 : {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 : {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 : {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 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 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 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_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 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 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_rs2_class_d : {mul : UInt<1>, load : UInt<1>, alu : UInt<1>} @[el2_dec_decode_ctl.scala 143:28]
|
||||
|
@ -3005,14 +3005,14 @@ circuit el2_dec_decode_ctl :
|
|||
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_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.bits.i0load, 0, 0) @[el2_dec_decode_ctl.scala 314:48]
|
||||
node nonblock_load_rd = mux(_T_89, x_d.bits.i0rd, UInt<5>("h00")) @[el2_dec_decode_ctl.scala 314:31]
|
||||
node _T_89 = bits(x_d.i0load, 0, 0) @[el2_dec_decode_ctl.scala 314:43]
|
||||
node nonblock_load_rd = mux(_T_89, x_d.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]
|
||||
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]
|
||||
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.bits.i0load) @[el2_dec_decode_ctl.scala 319:56]
|
||||
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].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:87]
|
||||
|
@ -3046,17 +3046,17 @@ circuit el2_dec_decode_ctl :
|
|||
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:131]
|
||||
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.bits.i0rd, cam[0].bits.rd) @[el2_dec_decode_ctl.scala 334:85]
|
||||
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].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:105]
|
||||
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:131]
|
||||
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:131]
|
||||
skip @[el2_dec_decode_ctl.scala 334:126]
|
||||
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.tag <= cam[0].bits.tag @[el2_dec_decode_ctl.scala 337:22]
|
||||
|
@ -3124,17 +3124,17 @@ circuit el2_dec_decode_ctl :
|
|||
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:131]
|
||||
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.bits.i0rd, cam[1].bits.rd) @[el2_dec_decode_ctl.scala 334:85]
|
||||
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].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:105]
|
||||
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:131]
|
||||
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:131]
|
||||
skip @[el2_dec_decode_ctl.scala 334:126]
|
||||
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.tag <= cam[1].bits.tag @[el2_dec_decode_ctl.scala 337:22]
|
||||
|
@ -3202,17 +3202,17 @@ circuit el2_dec_decode_ctl :
|
|||
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:131]
|
||||
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.bits.i0rd, cam[2].bits.rd) @[el2_dec_decode_ctl.scala 334:85]
|
||||
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].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:105]
|
||||
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:131]
|
||||
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:131]
|
||||
skip @[el2_dec_decode_ctl.scala 334:126]
|
||||
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.tag <= cam[2].bits.tag @[el2_dec_decode_ctl.scala 337:22]
|
||||
|
@ -3280,17 +3280,17 @@ circuit el2_dec_decode_ctl :
|
|||
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:131]
|
||||
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.bits.i0rd, cam[3].bits.rd) @[el2_dec_decode_ctl.scala 334:85]
|
||||
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].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:105]
|
||||
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:131]
|
||||
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:131]
|
||||
skip @[el2_dec_decode_ctl.scala 334:126]
|
||||
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.tag <= cam[3].bits.tag @[el2_dec_decode_ctl.scala 337:22]
|
||||
|
@ -3326,8 +3326,8 @@ circuit el2_dec_decode_ctl :
|
|||
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.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:81]
|
||||
node _T_195 = eq(r_d_in.i0rd, io.dec_nonblock_load_waddr) @[el2_dec_decode_ctl.scala 353:44]
|
||||
node nonblock_load_cancel = and(_T_195, i0_wen_r) @[el2_dec_decode_ctl.scala 353:76]
|
||||
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_198 = or(_T_197, nonblock_load_write[3]) @[el2_dec_decode_ctl.scala 354:95]
|
||||
|
@ -3632,18 +3632,18 @@ circuit el2_dec_decode_ctl :
|
|||
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]
|
||||
io.dec_csr_rdaddr_d <= _T_351 @[el2_dec_decode_ctl.scala 466:24]
|
||||
io.dec_csr_wraddr_r <= r_d.bits.csrwaddr @[el2_dec_decode_ctl.scala 467:23]
|
||||
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:53]
|
||||
node _T_354 = and(_T_352, _T_353) @[el2_dec_decode_ctl.scala 471:51]
|
||||
io.dec_csr_wraddr_r <= r_d.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_353 = eq(io.dec_tlu_i0_kill_writeb_r, UInt<1>("h00")) @[el2_dec_decode_ctl.scala 471:50]
|
||||
node _T_354 = and(_T_352, _T_353) @[el2_dec_decode_ctl.scala 471:48]
|
||||
io.dec_csr_wen_r <= _T_354 @[el2_dec_decode_ctl.scala 471:20]
|
||||
node _T_355 = eq(r_d.bits.csrwaddr, UInt<10>("h0300")) @[el2_dec_decode_ctl.scala 474:50]
|
||||
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:64]
|
||||
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.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:132]
|
||||
node _T_361 = and(_T_359, _T_360) @[el2_dec_decode_ctl.scala 474:130]
|
||||
node _T_355 = eq(r_d.csrwaddr, UInt<10>("h0300")) @[el2_dec_decode_ctl.scala 474:45]
|
||||
node _T_356 = eq(r_d.csrwaddr, UInt<10>("h0304")) @[el2_dec_decode_ctl.scala 474:75]
|
||||
node _T_357 = or(_T_355, _T_356) @[el2_dec_decode_ctl.scala 474:59]
|
||||
node _T_358 = and(_T_357, r_d.csrwen) @[el2_dec_decode_ctl.scala 474:90]
|
||||
node _T_359 = and(_T_358, r_d.i0valid) @[el2_dec_decode_ctl.scala 474:103]
|
||||
node _T_360 = eq(io.dec_tlu_i0_kill_writeb_wb, UInt<1>("h00")) @[el2_dec_decode_ctl.scala 474:119]
|
||||
node _T_361 = and(_T_359, _T_360) @[el2_dec_decode_ctl.scala 474:117]
|
||||
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]
|
||||
csr_read_x <= csr_read @[el2_dec_decode_ctl.scala 476:52]
|
||||
|
@ -3790,11 +3790,11 @@ circuit el2_dec_decode_ctl :
|
|||
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]
|
||||
write_csr_data <= _T_429 @[el2_dec_decode_ctl.scala 508:18]
|
||||
node _T_430 = bits(r_d.bits.csrwonly, 0, 0) @[el2_dec_decode_ctl.scala 514:49]
|
||||
node _T_430 = bits(r_d.csrwonly, 0, 0) @[el2_dec_decode_ctl.scala 514:44]
|
||||
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]
|
||||
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.bits.csrwonly) @[el2_dec_decode_ctl.scala 516:63]
|
||||
node _T_432 = or(x_d.csrwonly, r_d.csrwonly) @[el2_dec_decode_ctl.scala 516:38]
|
||||
node prior_csr_write = or(_T_432, wbd.csrwonly) @[el2_dec_decode_ctl.scala 516:53]
|
||||
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 _T_434 = bits(io.dbg_cmd_wrdata, 1, 1) @[el2_dec_decode_ctl.scala 519:67]
|
||||
|
@ -3914,8 +3914,8 @@ circuit el2_dec_decode_ctl :
|
|||
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]
|
||||
io.dec_pmu_presync_stall <= _T_501 @[el2_dec_decode_ctl.scala 560:29]
|
||||
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.valid, prior_inflight) @[el2_dec_decode_ctl.scala 565:31]
|
||||
node prior_inflight = or(x_d.i0valid, r_d.i0valid) @[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 _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]
|
||||
reg _T_503 : UInt, rvclkhdr.io.l1clk with : (reset => (reset, UInt<1>("h00"))) @[el2_dec_decode_ctl.scala 568:53]
|
||||
|
@ -3924,7 +3924,7 @@ circuit el2_dec_decode_ctl :
|
|||
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_506 = and(io.dec_i0_decode_d, _T_505) @[el2_dec_decode_ctl.scala 570:39]
|
||||
node _T_507 = and(postsync_stall, x_d.valid) @[el2_dec_decode_ctl.scala 570:88]
|
||||
node _T_507 = and(postsync_stall, x_d.i0valid) @[el2_dec_decode_ctl.scala 570:88]
|
||||
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]
|
||||
node _T_509 = and(i0_exulegal_decode_d, i0_dp.alu) @[el2_dec_decode_ctl.scala 572:50]
|
||||
|
@ -3935,8 +3935,8 @@ circuit el2_dec_decode_ctl :
|
|||
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]
|
||||
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:45]
|
||||
node _T_514 = and(r_d.valid, _T_513) @[el2_dec_decode_ctl.scala 578:43]
|
||||
node _T_513 = eq(io.dec_tlu_flush_lower_wb, UInt<1>("h00")) @[el2_dec_decode_ctl.scala 578:47]
|
||||
node _T_514 = and(r_d.i0valid, _T_513) @[el2_dec_decode_ctl.scala 578:45]
|
||||
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]
|
||||
node _T_515 = and(i0_icaf_d, i0_legal_decode_d) @[el2_dec_decode_ctl.scala 582:40]
|
||||
|
@ -4073,7 +4073,7 @@ circuit el2_dec_decode_ctl :
|
|||
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.legal <= r_t.legal @[el2_dec_decode_ctl.scala 605:10]
|
||||
node _T_536 = or(r_d.bits.i0load, r_d.bits.i0store) @[el2_dec_decode_ctl.scala 607:61]
|
||||
node _T_536 = or(r_d.i0load, r_d.i0store) @[el2_dec_decode_ctl.scala 607:56]
|
||||
wire _T_537 : UInt<1>[4] @[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]
|
||||
|
@ -4082,8 +4082,8 @@ circuit el2_dec_decode_ctl :
|
|||
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_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:82]
|
||||
node _T_542 = or(_T_541, r_t.i0trigger) @[el2_dec_decode_ctl.scala 607:105]
|
||||
node _T_541 = and(_T_540, lsu_trigger_match_r) @[el2_dec_decode_ctl.scala 607:72]
|
||||
node _T_542 = or(_T_541, r_t.i0trigger) @[el2_dec_decode_ctl.scala 607:95]
|
||||
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]
|
||||
node _T_543 = bits(io.dec_tlu_flush_lower_wb, 0, 0) @[el2_dec_decode_ctl.scala 610:35]
|
||||
|
@ -4120,7 +4120,7 @@ circuit el2_dec_decode_ctl :
|
|||
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.legal <= r_t_in.legal @[el2_dec_decode_ctl.scala 612:39]
|
||||
node _T_545 = and(r_d.bits.i0div, r_d.valid) @[el2_dec_decode_ctl.scala 613:58]
|
||||
node _T_545 = and(r_d.i0div, r_d.i0valid) @[el2_dec_decode_ctl.scala 613:53]
|
||||
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]
|
||||
_T_546 <= io.exu_flush_final @[el2_dec_decode_ctl.scala 616:52]
|
||||
|
@ -4440,22 +4440,22 @@ circuit el2_dec_decode_ctl :
|
|||
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]
|
||||
io.dec_ctl_en <= _T_721 @[el2_dec_decode_ctl.scala 663:27]
|
||||
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:50]
|
||||
d_d.bits.i0v <= _T_722 @[el2_dec_decode_ctl.scala 666:34]
|
||||
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:50]
|
||||
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:50]
|
||||
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:50]
|
||||
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:61]
|
||||
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:58]
|
||||
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:40]
|
||||
d_d.bits.csrwaddr <= _T_728 @[el2_dec_decode_ctl.scala 675:34]
|
||||
d_d.i0rd <= i0r.rd @[el2_dec_decode_ctl.scala 665:29]
|
||||
node _T_722 = and(i0_rd_en_d, i0_legal_decode_d) @[el2_dec_decode_ctl.scala 666:45]
|
||||
d_d.i0v <= _T_722 @[el2_dec_decode_ctl.scala 666:29]
|
||||
d_d.i0valid <= io.dec_i0_decode_d @[el2_dec_decode_ctl.scala 667:29]
|
||||
node _T_723 = and(i0_dp.load, i0_legal_decode_d) @[el2_dec_decode_ctl.scala 669:45]
|
||||
d_d.i0load <= _T_723 @[el2_dec_decode_ctl.scala 669:29]
|
||||
node _T_724 = and(i0_dp.store, i0_legal_decode_d) @[el2_dec_decode_ctl.scala 670:45]
|
||||
d_d.i0store <= _T_724 @[el2_dec_decode_ctl.scala 670:29]
|
||||
node _T_725 = and(i0_dp.div, i0_legal_decode_d) @[el2_dec_decode_ctl.scala 671:45]
|
||||
d_d.i0div <= _T_725 @[el2_dec_decode_ctl.scala 671:29]
|
||||
node _T_726 = and(io.dec_csr_wen_unq_d, i0_legal_decode_d) @[el2_dec_decode_ctl.scala 673:56]
|
||||
d_d.csrwen <= _T_726 @[el2_dec_decode_ctl.scala 673:29]
|
||||
node _T_727 = and(i0_csr_write_only_d, io.dec_i0_decode_d) @[el2_dec_decode_ctl.scala 674:53]
|
||||
d_d.csrwonly <= _T_727 @[el2_dec_decode_ctl.scala 674:29]
|
||||
node _T_728 = bits(io.dec_i0_instr_d, 31, 20) @[el2_dec_decode_ctl.scala 675:35]
|
||||
d_d.csrwaddr <= _T_728 @[el2_dec_decode_ctl.scala 675:29]
|
||||
node _T_729 = bits(i0_x_ctl_en, 0, 0) @[el2_dec_decode_ctl.scala 677:34]
|
||||
inst rvclkhdr_7 of rvclkhdr_7 @[el2_lib.scala 518:23]
|
||||
rvclkhdr_7.clock <= clock
|
||||
|
@ -4463,55 +4463,55 @@ circuit el2_dec_decode_ctl :
|
|||
rvclkhdr_7.io.clk <= clock @[el2_lib.scala 520:18]
|
||||
rvclkhdr_7.io.en <= _T_729 @[el2_lib.scala 521:17]
|
||||
rvclkhdr_7.io.scan_mode <= io.scan_mode @[el2_lib.scala 522:24]
|
||||
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.bits.csrwaddr <= UInt<12>("h00") @[el2_lib.scala 524:33]
|
||||
_T_730.bits.csrwonly <= UInt<1>("h00") @[el2_lib.scala 524:33]
|
||||
_T_730.bits.csrwen <= UInt<1>("h00") @[el2_lib.scala 524:33]
|
||||
_T_730.bits.i0v <= UInt<1>("h00") @[el2_lib.scala 524:33]
|
||||
_T_730.bits.i0div <= UInt<1>("h00") @[el2_lib.scala 524:33]
|
||||
_T_730.bits.i0store <= UInt<1>("h00") @[el2_lib.scala 524:33]
|
||||
_T_730.bits.i0load <= UInt<1>("h00") @[el2_lib.scala 524:33]
|
||||
_T_730.bits.i0rd <= UInt<5>("h00") @[el2_lib.scala 524:33]
|
||||
_T_730.valid <= UInt<1>("h00") @[el2_lib.scala 524:33]
|
||||
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.bits.csrwaddr <= d_d.bits.csrwaddr @[el2_lib.scala 524:16]
|
||||
_T_731.bits.csrwonly <= d_d.bits.csrwonly @[el2_lib.scala 524:16]
|
||||
_T_731.bits.csrwen <= d_d.bits.csrwen @[el2_lib.scala 524:16]
|
||||
_T_731.bits.i0v <= d_d.bits.i0v @[el2_lib.scala 524:16]
|
||||
_T_731.bits.i0div <= d_d.bits.i0div @[el2_lib.scala 524:16]
|
||||
_T_731.bits.i0store <= d_d.bits.i0store @[el2_lib.scala 524:16]
|
||||
_T_731.bits.i0load <= d_d.bits.i0load @[el2_lib.scala 524:16]
|
||||
_T_731.bits.i0rd <= d_d.bits.i0rd @[el2_lib.scala 524:16]
|
||||
_T_731.valid <= d_d.valid @[el2_lib.scala 524:16]
|
||||
x_d.bits.csrwaddr <= _T_731.bits.csrwaddr @[el2_dec_decode_ctl.scala 677:7]
|
||||
x_d.bits.csrwonly <= _T_731.bits.csrwonly @[el2_dec_decode_ctl.scala 677:7]
|
||||
x_d.bits.csrwen <= _T_731.bits.csrwen @[el2_dec_decode_ctl.scala 677:7]
|
||||
x_d.bits.i0v <= _T_731.bits.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.bits.i0store <= _T_731.bits.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.bits.i0rd <= _T_731.bits.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 : {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.bits.csrwaddr <= x_d.bits.csrwaddr @[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.bits.csrwen <= x_d.bits.csrwen @[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.bits.i0div <= x_d.bits.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.bits.i0load <= x_d.bits.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.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:49]
|
||||
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:78]
|
||||
node _T_735 = and(_T_733, _T_734) @[el2_dec_decode_ctl.scala 680:76]
|
||||
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:35]
|
||||
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:64]
|
||||
node _T_739 = and(_T_737, _T_738) @[el2_dec_decode_ctl.scala 681:62]
|
||||
x_d_in.valid <= _T_739 @[el2_dec_decode_ctl.scala 681:20]
|
||||
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]
|
||||
_T_730.csrwaddr <= UInt<12>("h00") @[el2_lib.scala 524:33]
|
||||
_T_730.csrwonly <= UInt<1>("h00") @[el2_lib.scala 524:33]
|
||||
_T_730.csrwen <= UInt<1>("h00") @[el2_lib.scala 524:33]
|
||||
_T_730.i0valid <= UInt<1>("h00") @[el2_lib.scala 524:33]
|
||||
_T_730.i0v <= UInt<1>("h00") @[el2_lib.scala 524:33]
|
||||
_T_730.i0div <= UInt<1>("h00") @[el2_lib.scala 524:33]
|
||||
_T_730.i0store <= UInt<1>("h00") @[el2_lib.scala 524:33]
|
||||
_T_730.i0load <= UInt<1>("h00") @[el2_lib.scala 524:33]
|
||||
_T_730.i0rd <= UInt<5>("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]
|
||||
_T_731.csrwaddr <= d_d.csrwaddr @[el2_lib.scala 524:16]
|
||||
_T_731.csrwonly <= d_d.csrwonly @[el2_lib.scala 524:16]
|
||||
_T_731.csrwen <= d_d.csrwen @[el2_lib.scala 524:16]
|
||||
_T_731.i0valid <= d_d.i0valid @[el2_lib.scala 524:16]
|
||||
_T_731.i0v <= d_d.i0v @[el2_lib.scala 524:16]
|
||||
_T_731.i0div <= d_d.i0div @[el2_lib.scala 524:16]
|
||||
_T_731.i0store <= d_d.i0store @[el2_lib.scala 524:16]
|
||||
_T_731.i0load <= d_d.i0load @[el2_lib.scala 524:16]
|
||||
_T_731.i0rd <= d_d.i0rd @[el2_lib.scala 524:16]
|
||||
x_d.csrwaddr <= _T_731.csrwaddr @[el2_dec_decode_ctl.scala 677:7]
|
||||
x_d.csrwonly <= _T_731.csrwonly @[el2_dec_decode_ctl.scala 677:7]
|
||||
x_d.csrwen <= _T_731.csrwen @[el2_dec_decode_ctl.scala 677:7]
|
||||
x_d.i0valid <= _T_731.i0valid @[el2_dec_decode_ctl.scala 677:7]
|
||||
x_d.i0v <= _T_731.i0v @[el2_dec_decode_ctl.scala 677:7]
|
||||
x_d.i0div <= _T_731.i0div @[el2_dec_decode_ctl.scala 677:7]
|
||||
x_d.i0store <= _T_731.i0store @[el2_dec_decode_ctl.scala 677:7]
|
||||
x_d.i0load <= _T_731.i0load @[el2_dec_decode_ctl.scala 677:7]
|
||||
x_d.i0rd <= _T_731.i0rd @[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]
|
||||
x_d_in.csrwaddr <= x_d.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.csrwen <= x_d.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.i0v <= x_d.i0v @[el2_dec_decode_ctl.scala 679:10]
|
||||
x_d_in.i0div <= x_d.i0div @[el2_dec_decode_ctl.scala 679:10]
|
||||
x_d_in.i0store <= x_d.i0store @[el2_dec_decode_ctl.scala 679:10]
|
||||
x_d_in.i0load <= x_d.i0load @[el2_dec_decode_ctl.scala 679:10]
|
||||
x_d_in.i0rd <= x_d.i0rd @[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_733 = and(x_d.i0v, _T_732) @[el2_dec_decode_ctl.scala 680:37]
|
||||
node _T_734 = eq(io.dec_tlu_flush_lower_r, UInt<1>("h00")) @[el2_dec_decode_ctl.scala 680:68]
|
||||
node _T_735 = and(_T_733, _T_734) @[el2_dec_decode_ctl.scala 680:66]
|
||||
x_d_in.i0v <= _T_735 @[el2_dec_decode_ctl.scala 680:22]
|
||||
node _T_736 = eq(io.dec_tlu_flush_lower_wb, UInt<1>("h00")) @[el2_dec_decode_ctl.scala 681:39]
|
||||
node _T_737 = and(x_d.i0valid, _T_736) @[el2_dec_decode_ctl.scala 681:37]
|
||||
node _T_738 = eq(io.dec_tlu_flush_lower_r, UInt<1>("h00")) @[el2_dec_decode_ctl.scala 681:68]
|
||||
node _T_739 = and(_T_737, _T_738) @[el2_dec_decode_ctl.scala 681:66]
|
||||
x_d_in.i0valid <= _T_739 @[el2_dec_decode_ctl.scala 681:22]
|
||||
node _T_740 = bits(i0_r_ctl_en, 0, 0) @[el2_dec_decode_ctl.scala 683:36]
|
||||
inst rvclkhdr_8 of rvclkhdr_8 @[el2_lib.scala 518:23]
|
||||
rvclkhdr_8.clock <= clock
|
||||
|
@ -4519,57 +4519,57 @@ circuit el2_dec_decode_ctl :
|
|||
rvclkhdr_8.io.clk <= clock @[el2_lib.scala 520:18]
|
||||
rvclkhdr_8.io.en <= _T_740 @[el2_lib.scala 521:17]
|
||||
rvclkhdr_8.io.scan_mode <= io.scan_mode @[el2_lib.scala 522:24]
|
||||
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.bits.csrwaddr <= UInt<12>("h00") @[el2_lib.scala 524:33]
|
||||
_T_741.bits.csrwonly <= UInt<1>("h00") @[el2_lib.scala 524:33]
|
||||
_T_741.bits.csrwen <= UInt<1>("h00") @[el2_lib.scala 524:33]
|
||||
_T_741.bits.i0v <= UInt<1>("h00") @[el2_lib.scala 524:33]
|
||||
_T_741.bits.i0div <= UInt<1>("h00") @[el2_lib.scala 524:33]
|
||||
_T_741.bits.i0store <= UInt<1>("h00") @[el2_lib.scala 524:33]
|
||||
_T_741.bits.i0load <= UInt<1>("h00") @[el2_lib.scala 524:33]
|
||||
_T_741.bits.i0rd <= UInt<5>("h00") @[el2_lib.scala 524:33]
|
||||
_T_741.valid <= UInt<1>("h00") @[el2_lib.scala 524:33]
|
||||
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.bits.csrwaddr <= x_d_in.bits.csrwaddr @[el2_lib.scala 524:16]
|
||||
_T_742.bits.csrwonly <= x_d_in.bits.csrwonly @[el2_lib.scala 524:16]
|
||||
_T_742.bits.csrwen <= x_d_in.bits.csrwen @[el2_lib.scala 524:16]
|
||||
_T_742.bits.i0v <= x_d_in.bits.i0v @[el2_lib.scala 524:16]
|
||||
_T_742.bits.i0div <= x_d_in.bits.i0div @[el2_lib.scala 524:16]
|
||||
_T_742.bits.i0store <= x_d_in.bits.i0store @[el2_lib.scala 524:16]
|
||||
_T_742.bits.i0load <= x_d_in.bits.i0load @[el2_lib.scala 524:16]
|
||||
_T_742.bits.i0rd <= x_d_in.bits.i0rd @[el2_lib.scala 524:16]
|
||||
_T_742.valid <= x_d_in.valid @[el2_lib.scala 524:16]
|
||||
r_d.bits.csrwaddr <= _T_742.bits.csrwaddr @[el2_dec_decode_ctl.scala 683:7]
|
||||
r_d.bits.csrwonly <= _T_742.bits.csrwonly @[el2_dec_decode_ctl.scala 683:7]
|
||||
r_d.bits.csrwen <= _T_742.bits.csrwen @[el2_dec_decode_ctl.scala 683:7]
|
||||
r_d.bits.i0v <= _T_742.bits.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.bits.i0store <= _T_742.bits.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.bits.i0rd <= _T_742.bits.i0rd @[el2_dec_decode_ctl.scala 683:7]
|
||||
r_d.valid <= _T_742.valid @[el2_dec_decode_ctl.scala 683:7]
|
||||
r_d_in.bits.csrwaddr <= r_d.bits.csrwaddr @[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.bits.csrwen <= r_d.bits.csrwen @[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.bits.i0div <= r_d.bits.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.bits.i0load <= r_d.bits.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.valid <= r_d.valid @[el2_dec_decode_ctl.scala 684:10]
|
||||
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:51]
|
||||
node _T_744 = and(r_d.bits.i0v, _T_743) @[el2_dec_decode_ctl.scala 687:49]
|
||||
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:37]
|
||||
node _T_746 = and(r_d.valid, _T_745) @[el2_dec_decode_ctl.scala 688:35]
|
||||
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:51]
|
||||
node _T_748 = and(r_d.bits.i0load, _T_747) @[el2_dec_decode_ctl.scala 689:49]
|
||||
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:51]
|
||||
node _T_750 = and(r_d.bits.i0store, _T_749) @[el2_dec_decode_ctl.scala 690:49]
|
||||
r_d_in.bits.i0store <= _T_750 @[el2_dec_decode_ctl.scala 690:27]
|
||||
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]
|
||||
_T_741.csrwaddr <= UInt<12>("h00") @[el2_lib.scala 524:33]
|
||||
_T_741.csrwonly <= UInt<1>("h00") @[el2_lib.scala 524:33]
|
||||
_T_741.csrwen <= UInt<1>("h00") @[el2_lib.scala 524:33]
|
||||
_T_741.i0valid <= UInt<1>("h00") @[el2_lib.scala 524:33]
|
||||
_T_741.i0v <= UInt<1>("h00") @[el2_lib.scala 524:33]
|
||||
_T_741.i0div <= UInt<1>("h00") @[el2_lib.scala 524:33]
|
||||
_T_741.i0store <= UInt<1>("h00") @[el2_lib.scala 524:33]
|
||||
_T_741.i0load <= UInt<1>("h00") @[el2_lib.scala 524:33]
|
||||
_T_741.i0rd <= UInt<5>("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]
|
||||
_T_742.csrwaddr <= x_d_in.csrwaddr @[el2_lib.scala 524:16]
|
||||
_T_742.csrwonly <= x_d_in.csrwonly @[el2_lib.scala 524:16]
|
||||
_T_742.csrwen <= x_d_in.csrwen @[el2_lib.scala 524:16]
|
||||
_T_742.i0valid <= x_d_in.i0valid @[el2_lib.scala 524:16]
|
||||
_T_742.i0v <= x_d_in.i0v @[el2_lib.scala 524:16]
|
||||
_T_742.i0div <= x_d_in.i0div @[el2_lib.scala 524:16]
|
||||
_T_742.i0store <= x_d_in.i0store @[el2_lib.scala 524:16]
|
||||
_T_742.i0load <= x_d_in.i0load @[el2_lib.scala 524:16]
|
||||
_T_742.i0rd <= x_d_in.i0rd @[el2_lib.scala 524:16]
|
||||
r_d.csrwaddr <= _T_742.csrwaddr @[el2_dec_decode_ctl.scala 683:7]
|
||||
r_d.csrwonly <= _T_742.csrwonly @[el2_dec_decode_ctl.scala 683:7]
|
||||
r_d.csrwen <= _T_742.csrwen @[el2_dec_decode_ctl.scala 683:7]
|
||||
r_d.i0valid <= _T_742.i0valid @[el2_dec_decode_ctl.scala 683:7]
|
||||
r_d.i0v <= _T_742.i0v @[el2_dec_decode_ctl.scala 683:7]
|
||||
r_d.i0div <= _T_742.i0div @[el2_dec_decode_ctl.scala 683:7]
|
||||
r_d.i0store <= _T_742.i0store @[el2_dec_decode_ctl.scala 683:7]
|
||||
r_d.i0load <= _T_742.i0load @[el2_dec_decode_ctl.scala 683:7]
|
||||
r_d.i0rd <= _T_742.i0rd @[el2_dec_decode_ctl.scala 683:7]
|
||||
r_d_in.csrwaddr <= r_d.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.csrwen <= r_d.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.i0v <= r_d.i0v @[el2_dec_decode_ctl.scala 684:10]
|
||||
r_d_in.i0div <= r_d.i0div @[el2_dec_decode_ctl.scala 684:10]
|
||||
r_d_in.i0store <= r_d.i0store @[el2_dec_decode_ctl.scala 684:10]
|
||||
r_d_in.i0load <= r_d.i0load @[el2_dec_decode_ctl.scala 684:10]
|
||||
r_d_in.i0rd <= r_d.i0rd @[el2_dec_decode_ctl.scala 684:10]
|
||||
r_d_in.i0rd <= r_d.i0rd @[el2_dec_decode_ctl.scala 685:17]
|
||||
node _T_743 = eq(io.dec_tlu_flush_lower_wb, UInt<1>("h00")) @[el2_dec_decode_ctl.scala 687:41]
|
||||
node _T_744 = and(r_d.i0v, _T_743) @[el2_dec_decode_ctl.scala 687:39]
|
||||
r_d_in.i0v <= _T_744 @[el2_dec_decode_ctl.scala 687:22]
|
||||
node _T_745 = eq(io.dec_tlu_flush_lower_wb, UInt<1>("h00")) @[el2_dec_decode_ctl.scala 688:41]
|
||||
node _T_746 = and(r_d.i0valid, _T_745) @[el2_dec_decode_ctl.scala 688:39]
|
||||
r_d_in.i0valid <= _T_746 @[el2_dec_decode_ctl.scala 688:22]
|
||||
node _T_747 = eq(io.dec_tlu_flush_lower_wb, UInt<1>("h00")) @[el2_dec_decode_ctl.scala 689:41]
|
||||
node _T_748 = and(r_d.i0load, _T_747) @[el2_dec_decode_ctl.scala 689:39]
|
||||
r_d_in.i0load <= _T_748 @[el2_dec_decode_ctl.scala 689:22]
|
||||
node _T_749 = eq(io.dec_tlu_flush_lower_wb, UInt<1>("h00")) @[el2_dec_decode_ctl.scala 690:41]
|
||||
node _T_750 = and(r_d.i0store, _T_749) @[el2_dec_decode_ctl.scala 690:39]
|
||||
r_d_in.i0store <= _T_750 @[el2_dec_decode_ctl.scala 690:22]
|
||||
node _T_751 = bits(i0_wb_ctl_en, 0, 0) @[el2_dec_decode_ctl.scala 692:37]
|
||||
inst rvclkhdr_9 of rvclkhdr_9 @[el2_lib.scala 518:23]
|
||||
rvclkhdr_9.clock <= clock
|
||||
|
@ -4577,43 +4577,43 @@ circuit el2_dec_decode_ctl :
|
|||
rvclkhdr_9.io.clk <= clock @[el2_lib.scala 520:18]
|
||||
rvclkhdr_9.io.en <= _T_751 @[el2_lib.scala 521:17]
|
||||
rvclkhdr_9.io.scan_mode <= io.scan_mode @[el2_lib.scala 522:24]
|
||||
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.bits.csrwaddr <= UInt<12>("h00") @[el2_lib.scala 524:33]
|
||||
_T_752.bits.csrwonly <= UInt<1>("h00") @[el2_lib.scala 524:33]
|
||||
_T_752.bits.csrwen <= UInt<1>("h00") @[el2_lib.scala 524:33]
|
||||
_T_752.bits.i0v <= UInt<1>("h00") @[el2_lib.scala 524:33]
|
||||
_T_752.bits.i0div <= UInt<1>("h00") @[el2_lib.scala 524:33]
|
||||
_T_752.bits.i0store <= UInt<1>("h00") @[el2_lib.scala 524:33]
|
||||
_T_752.bits.i0load <= UInt<1>("h00") @[el2_lib.scala 524:33]
|
||||
_T_752.bits.i0rd <= UInt<5>("h00") @[el2_lib.scala 524:33]
|
||||
_T_752.valid <= UInt<1>("h00") @[el2_lib.scala 524:33]
|
||||
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.bits.csrwaddr <= r_d_in.bits.csrwaddr @[el2_lib.scala 524:16]
|
||||
_T_753.bits.csrwonly <= r_d_in.bits.csrwonly @[el2_lib.scala 524:16]
|
||||
_T_753.bits.csrwen <= r_d_in.bits.csrwen @[el2_lib.scala 524:16]
|
||||
_T_753.bits.i0v <= r_d_in.bits.i0v @[el2_lib.scala 524:16]
|
||||
_T_753.bits.i0div <= r_d_in.bits.i0div @[el2_lib.scala 524:16]
|
||||
_T_753.bits.i0store <= r_d_in.bits.i0store @[el2_lib.scala 524:16]
|
||||
_T_753.bits.i0load <= r_d_in.bits.i0load @[el2_lib.scala 524:16]
|
||||
_T_753.bits.i0rd <= r_d_in.bits.i0rd @[el2_lib.scala 524:16]
|
||||
_T_753.valid <= r_d_in.valid @[el2_lib.scala 524:16]
|
||||
wbd.bits.csrwaddr <= _T_753.bits.csrwaddr @[el2_dec_decode_ctl.scala 692:7]
|
||||
wbd.bits.csrwonly <= _T_753.bits.csrwonly @[el2_dec_decode_ctl.scala 692:7]
|
||||
wbd.bits.csrwen <= _T_753.bits.csrwen @[el2_dec_decode_ctl.scala 692:7]
|
||||
wbd.bits.i0v <= _T_753.bits.i0v @[el2_dec_decode_ctl.scala 692:7]
|
||||
wbd.bits.i0div <= _T_753.bits.i0div @[el2_dec_decode_ctl.scala 692:7]
|
||||
wbd.bits.i0store <= _T_753.bits.i0store @[el2_dec_decode_ctl.scala 692:7]
|
||||
wbd.bits.i0load <= _T_753.bits.i0load @[el2_dec_decode_ctl.scala 692:7]
|
||||
wbd.bits.i0rd <= _T_753.bits.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.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:47]
|
||||
node _T_755 = and(r_d_in.bits.i0v, _T_754) @[el2_dec_decode_ctl.scala 695:45]
|
||||
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]
|
||||
_T_752.csrwaddr <= UInt<12>("h00") @[el2_lib.scala 524:33]
|
||||
_T_752.csrwonly <= UInt<1>("h00") @[el2_lib.scala 524:33]
|
||||
_T_752.csrwen <= UInt<1>("h00") @[el2_lib.scala 524:33]
|
||||
_T_752.i0valid <= UInt<1>("h00") @[el2_lib.scala 524:33]
|
||||
_T_752.i0v <= UInt<1>("h00") @[el2_lib.scala 524:33]
|
||||
_T_752.i0div <= UInt<1>("h00") @[el2_lib.scala 524:33]
|
||||
_T_752.i0store <= UInt<1>("h00") @[el2_lib.scala 524:33]
|
||||
_T_752.i0load <= UInt<1>("h00") @[el2_lib.scala 524:33]
|
||||
_T_752.i0rd <= UInt<5>("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]
|
||||
_T_753.csrwaddr <= r_d_in.csrwaddr @[el2_lib.scala 524:16]
|
||||
_T_753.csrwonly <= r_d_in.csrwonly @[el2_lib.scala 524:16]
|
||||
_T_753.csrwen <= r_d_in.csrwen @[el2_lib.scala 524:16]
|
||||
_T_753.i0valid <= r_d_in.i0valid @[el2_lib.scala 524:16]
|
||||
_T_753.i0v <= r_d_in.i0v @[el2_lib.scala 524:16]
|
||||
_T_753.i0div <= r_d_in.i0div @[el2_lib.scala 524:16]
|
||||
_T_753.i0store <= r_d_in.i0store @[el2_lib.scala 524:16]
|
||||
_T_753.i0load <= r_d_in.i0load @[el2_lib.scala 524:16]
|
||||
_T_753.i0rd <= r_d_in.i0rd @[el2_lib.scala 524:16]
|
||||
wbd.csrwaddr <= _T_753.csrwaddr @[el2_dec_decode_ctl.scala 692:7]
|
||||
wbd.csrwonly <= _T_753.csrwonly @[el2_dec_decode_ctl.scala 692:7]
|
||||
wbd.csrwen <= _T_753.csrwen @[el2_dec_decode_ctl.scala 692:7]
|
||||
wbd.i0valid <= _T_753.i0valid @[el2_dec_decode_ctl.scala 692:7]
|
||||
wbd.i0v <= _T_753.i0v @[el2_dec_decode_ctl.scala 692:7]
|
||||
wbd.i0div <= _T_753.i0div @[el2_dec_decode_ctl.scala 692:7]
|
||||
wbd.i0store <= _T_753.i0store @[el2_dec_decode_ctl.scala 692:7]
|
||||
wbd.i0load <= _T_753.i0load @[el2_dec_decode_ctl.scala 692:7]
|
||||
wbd.i0rd <= _T_753.i0rd @[el2_dec_decode_ctl.scala 692:7]
|
||||
io.dec_i0_waddr_r <= r_d_in.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_755 = and(r_d_in.i0v, _T_754) @[el2_dec_decode_ctl.scala 695:40]
|
||||
i0_wen_r <= _T_755 @[el2_dec_decode_ctl.scala 695:25]
|
||||
node _T_756 = eq(r_d_in.bits.i0div, UInt<1>("h00")) @[el2_dec_decode_ctl.scala 696:49]
|
||||
node _T_756 = eq(r_d_in.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_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:68]
|
||||
node _T_758 = eq(i0_load_kill_wen_r, UInt<1>("h00")) @[el2_dec_decode_ctl.scala 696:65]
|
||||
node _T_759 = and(_T_757, _T_758) @[el2_dec_decode_ctl.scala 696:63]
|
||||
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]
|
||||
node _T_760 = bits(i0_r_data_en, 0, 0) @[el2_dec_decode_ctl.scala 699:57]
|
||||
|
@ -4625,13 +4625,13 @@ circuit el2_dec_decode_ctl :
|
|||
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]
|
||||
i0_result_r_raw <= i0_result_x @[el2_lib.scala 514:16]
|
||||
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:66]
|
||||
node _T_761 = and(x_d.i0v, x_d.i0load) @[el2_dec_decode_ctl.scala 705:42]
|
||||
node _T_762 = bits(_T_761, 0, 0) @[el2_dec_decode_ctl.scala 705:56]
|
||||
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_r <= i0_result_r_raw @[el2_dec_decode_ctl.scala 706:26]
|
||||
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:61]
|
||||
node _T_764 = and(r_d.i0v, r_d.i0load) @[el2_dec_decode_ctl.scala 710:37]
|
||||
node _T_765 = bits(_T_764, 0, 0) @[el2_dec_decode_ctl.scala 710:51]
|
||||
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]
|
||||
node _T_767 = eq(i0_dp.jal, UInt<1>("h00")) @[el2_dec_decode_ctl.scala 711:54]
|
||||
|
@ -4700,25 +4700,25 @@ circuit el2_dec_decode_ctl :
|
|||
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]
|
||||
last_br_immed_x <= _T_798 @[el2_dec_decode_ctl.scala 715:19]
|
||||
node _T_799 = and(x_d.bits.i0div, x_d.valid) @[el2_dec_decode_ctl.scala 719:45]
|
||||
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:58]
|
||||
node _T_801 = and(x_d.bits.i0div, x_d.valid) @[el2_dec_decode_ctl.scala 721:48]
|
||||
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:60]
|
||||
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:33]
|
||||
node _T_806 = or(_T_803, _T_805) @[el2_dec_decode_ctl.scala 721:94]
|
||||
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:33]
|
||||
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:62]
|
||||
node _T_799 = and(x_d.i0div, x_d.i0valid) @[el2_dec_decode_ctl.scala 719:40]
|
||||
node _T_800 = and(r_d.i0div, r_d.i0valid) @[el2_dec_decode_ctl.scala 719:68]
|
||||
node div_e1_to_r = or(_T_799, _T_800) @[el2_dec_decode_ctl.scala 719:55]
|
||||
node _T_801 = and(x_d.i0div, x_d.i0valid) @[el2_dec_decode_ctl.scala 721:43]
|
||||
node _T_802 = eq(x_d.i0rd, UInt<5>("h00")) @[el2_dec_decode_ctl.scala 721:69]
|
||||
node _T_803 = and(_T_801, _T_802) @[el2_dec_decode_ctl.scala 721:57]
|
||||
node _T_804 = and(x_d.i0div, x_d.i0valid) @[el2_dec_decode_ctl.scala 722:16]
|
||||
node _T_805 = and(_T_804, io.dec_tlu_flush_lower_r) @[el2_dec_decode_ctl.scala 722:30]
|
||||
node _T_806 = or(_T_803, _T_805) @[el2_dec_decode_ctl.scala 721:86]
|
||||
node _T_807 = and(r_d.i0div, r_d.i0valid) @[el2_dec_decode_ctl.scala 723:16]
|
||||
node _T_808 = and(_T_807, io.dec_tlu_flush_lower_r) @[el2_dec_decode_ctl.scala 723:30]
|
||||
node _T_809 = and(_T_808, io.dec_tlu_i0_kill_writeb_r) @[el2_dec_decode_ctl.scala 723:57]
|
||||
node div_flush = or(_T_806, _T_809) @[el2_dec_decode_ctl.scala 722:59]
|
||||
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_812 = and(io.dec_div_active, _T_811) @[el2_dec_decode_ctl.scala 728:24]
|
||||
node _T_813 = eq(r_d.bits.i0rd, io.div_waddr_wb) @[el2_dec_decode_ctl.scala 728:56]
|
||||
node _T_813 = eq(r_d.i0rd, io.div_waddr_wb) @[el2_dec_decode_ctl.scala 728:51]
|
||||
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:77]
|
||||
node _T_815 = and(_T_814, i0_wen_r) @[el2_dec_decode_ctl.scala 728:72]
|
||||
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]
|
||||
io.dec_div_cancel <= _T_816 @[el2_dec_decode_ctl.scala 730:29]
|
||||
|
@ -4858,18 +4858,18 @@ circuit el2_dec_decode_ctl :
|
|||
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]
|
||||
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.bits.i0v) @[el2_dec_decode_ctl.scala 768:48]
|
||||
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:63]
|
||||
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.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:63]
|
||||
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.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:63]
|
||||
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.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:63]
|
||||
node _T_876 = and(io.dec_i0_rs1_en_d, x_d.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 i0_rs1_depend_i0_x = and(_T_876, _T_877) @[el2_dec_decode_ctl.scala 768:58]
|
||||
node _T_878 = and(io.dec_i0_rs1_en_d, r_d.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 i0_rs1_depend_i0_r = and(_T_878, _T_879) @[el2_dec_decode_ctl.scala 769:58]
|
||||
node _T_880 = and(io.dec_i0_rs2_en_d, x_d.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 i0_rs2_depend_i0_x = and(_T_880, _T_881) @[el2_dec_decode_ctl.scala 771:58]
|
||||
node _T_882 = and(io.dec_i0_rs2_en_d, r_d.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 i0_rs2_depend_i0_r = and(_T_882, _T_883) @[el2_dec_decode_ctl.scala 772:58]
|
||||
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]
|
||||
wire _T_886 : {mul : UInt<1>, load : UInt<1>, alu : UInt<1>} @[el2_dec_decode_ctl.scala 774:109]
|
||||
|
|
|
@ -1248,8 +1248,8 @@ module el2_dec_decode_ctl(
|
|||
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]
|
||||
reg postsync_stall; // @[el2_dec_decode_ctl.scala 568:53]
|
||||
reg x_d_valid; // @[el2_lib.scala 524:16]
|
||||
wire _T_507 = postsync_stall & x_d_valid; // @[el2_dec_decode_ctl.scala 570:88]
|
||||
reg x_d_i0valid; // @[el2_lib.scala 524:16]
|
||||
wire _T_507 = postsync_stall & x_d_i0valid; // @[el2_dec_decode_ctl.scala 570:88]
|
||||
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_13 = _T_11 | _T_12; // @[el2_dec_decode_ctl.scala 216:56]
|
||||
|
@ -1392,34 +1392,34 @@ module el2_dec_decode_ctl(
|
|||
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] cam_wen = _GEN_129 | _T_84; // @[Mux.scala 27:72]
|
||||
reg x_d_bits_i0load; // @[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_bits_i0load ? x_d_bits_i0rd : 5'h0; // @[el2_dec_decode_ctl.scala 314:31]
|
||||
reg x_d_i0load; // @[el2_lib.scala 524:16]
|
||||
reg [4:0] x_d_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]
|
||||
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 _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]
|
||||
reg nonblock_load_valid_m_delay; // @[Reg.scala 27:20]
|
||||
reg r_d_bits_i0load; // @[el2_lib.scala 524:16]
|
||||
wire i0_load_kill_wen_r = nonblock_load_valid_m_delay & r_d_bits_i0load; // @[el2_dec_decode_ctl.scala 319:56]
|
||||
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_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:87]
|
||||
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:51]
|
||||
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:47]
|
||||
wire i0_wen_r = r_d_in_bits_i0v & _T_754; // @[el2_dec_decode_ctl.scala 695:45]
|
||||
reg [4:0] r_d_bits_i0rd; // @[el2_lib.scala 524:16]
|
||||
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_bits_rd; // @[el2_dec_decode_ctl.scala 347:47]
|
||||
wire _T_103 = r_d_bits_i0rd == cam_raw_0_bits_rd; // @[el2_dec_decode_ctl.scala 334:85]
|
||||
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_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:105]
|
||||
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:131]
|
||||
wire _GEN_55 = _T_107 ? 1'h0 : cam_raw_0_bits_wb; // @[el2_dec_decode_ctl.scala 334:131]
|
||||
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]
|
||||
|
@ -1429,13 +1429,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 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_bits_i0rd == cam_raw_1_bits_rd; // @[el2_dec_decode_ctl.scala 334:85]
|
||||
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_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:105]
|
||||
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:131]
|
||||
wire _GEN_66 = _T_133 ? 1'h0 : cam_raw_1_bits_wb; // @[el2_dec_decode_ctl.scala 334:131]
|
||||
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]
|
||||
|
@ -1445,13 +1445,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 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_bits_i0rd == cam_raw_2_bits_rd; // @[el2_dec_decode_ctl.scala 334:85]
|
||||
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_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:105]
|
||||
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:131]
|
||||
wire _GEN_77 = _T_159 ? 1'h0 : cam_raw_2_bits_wb; // @[el2_dec_decode_ctl.scala 334:131]
|
||||
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]
|
||||
|
@ -1461,20 +1461,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 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_bits_i0rd == cam_raw_3_bits_rd; // @[el2_dec_decode_ctl.scala 334:85]
|
||||
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_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:105]
|
||||
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:131]
|
||||
wire _GEN_88 = _T_185 ? 1'h0 : cam_raw_3_bits_wb; // @[el2_dec_decode_ctl.scala 334:131]
|
||||
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:100]
|
||||
wire nonblock_load_write_3 = _T_172 & cam_raw_3_valid; // @[el2_dec_decode_ctl.scala 348:71]
|
||||
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:81]
|
||||
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]
|
||||
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]
|
||||
|
@ -1561,13 +1561,13 @@ module el2_dec_decode_ctl(
|
|||
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 _T_902 = i0_dp_load | i0_dp_store; // @[el2_dec_decode_ctl.scala 788:43]
|
||||
reg x_d_bits_i0v; // @[el2_lib.scala 524:16]
|
||||
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_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:63]
|
||||
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_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:63]
|
||||
reg x_d_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_877 = x_d_i0rd == i0r_rs1; // @[el2_dec_decode_ctl.scala 768:70]
|
||||
wire i0_rs1_depend_i0_x = _T_876 & _T_877; // @[el2_dec_decode_ctl.scala 768:58]
|
||||
wire _T_878 = io_dec_i0_rs1_en_d & r_d_i0v; // @[el2_dec_decode_ctl.scala 769:48]
|
||||
wire _T_879 = r_d_i0rd == i0r_rs1; // @[el2_dec_decode_ctl.scala 769:70]
|
||||
wire i0_rs1_depend_i0_r = _T_878 & _T_879; // @[el2_dec_decode_ctl.scala 769:58]
|
||||
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 _T_904 = _T_902 & i0_rs1_depth_d[0]; // @[el2_dec_decode_ctl.scala 788:58]
|
||||
|
@ -1576,12 +1576,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 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 _T_880 = io_dec_i0_rs2_en_d & x_d_bits_i0v; // @[el2_dec_decode_ctl.scala 771:48]
|
||||
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:63]
|
||||
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_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:63]
|
||||
wire _T_880 = io_dec_i0_rs2_en_d & x_d_i0v; // @[el2_dec_decode_ctl.scala 771:48]
|
||||
wire _T_881 = x_d_i0rd == i0r_rs2; // @[el2_dec_decode_ctl.scala 771:70]
|
||||
wire i0_rs2_depend_i0_x = _T_880 & _T_881; // @[el2_dec_decode_ctl.scala 771:58]
|
||||
wire _T_882 = io_dec_i0_rs2_en_d & r_d_i0v; // @[el2_dec_decode_ctl.scala 772:48]
|
||||
wire _T_883 = r_d_i0rd == i0r_rs2; // @[el2_dec_decode_ctl.scala 772:70]
|
||||
wire i0_rs2_depend_i0_r = _T_882 & _T_883; // @[el2_dec_decode_ctl.scala 772:58]
|
||||
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 _T_907 = i0_dp_store & i0_rs2_depth_d[0]; // @[el2_dec_decode_ctl.scala 789:43]
|
||||
|
@ -1589,16 +1589,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 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]
|
||||
reg r_d_bits_csrwen; // @[el2_lib.scala 524:16]
|
||||
reg r_d_valid; // @[el2_lib.scala 524:16]
|
||||
wire _T_352 = r_d_bits_csrwen & r_d_valid; // @[el2_dec_decode_ctl.scala 471:39]
|
||||
reg [11:0] r_d_bits_csrwaddr; // @[el2_lib.scala 524:16]
|
||||
wire _T_355 = r_d_bits_csrwaddr == 12'h300; // @[el2_dec_decode_ctl.scala 474:50]
|
||||
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:64]
|
||||
wire _T_358 = _T_357 & r_d_bits_csrwen; // @[el2_dec_decode_ctl.scala 474:100]
|
||||
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:132]
|
||||
reg r_d_csrwen; // @[el2_lib.scala 524:16]
|
||||
reg r_d_i0valid; // @[el2_lib.scala 524:16]
|
||||
wire _T_352 = r_d_csrwen & r_d_i0valid; // @[el2_dec_decode_ctl.scala 471:34]
|
||||
reg [11:0] r_d_csrwaddr; // @[el2_lib.scala 524:16]
|
||||
wire _T_355 = r_d_csrwaddr == 12'h300; // @[el2_dec_decode_ctl.scala 474:45]
|
||||
wire _T_356 = r_d_csrwaddr == 12'h304; // @[el2_dec_decode_ctl.scala 474:75]
|
||||
wire _T_357 = _T_355 | _T_356; // @[el2_dec_decode_ctl.scala 474:59]
|
||||
wire _T_358 = _T_357 & r_d_csrwen; // @[el2_dec_decode_ctl.scala 474:90]
|
||||
wire _T_359 = _T_358 & r_d_i0valid; // @[el2_dec_decode_ctl.scala 474:103]
|
||||
wire _T_360 = ~io_dec_tlu_i0_kill_writeb_wb; // @[el2_dec_decode_ctl.scala 474:119]
|
||||
reg csr_read_x; // @[el2_dec_decode_ctl.scala 476:52]
|
||||
reg csr_clr_x; // @[el2_dec_decode_ctl.scala 477:51]
|
||||
reg csr_set_x; // @[el2_dec_decode_ctl.scala 478:51]
|
||||
|
@ -1628,14 +1628,14 @@ module el2_dec_decode_ctl(
|
|||
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_428 = _T_427 | io_dec_tlu_wr_pause_r; // @[el2_dec_decode_ctl.scala 507:75]
|
||||
reg r_d_bits_csrwonly; // @[el2_lib.scala 524:16]
|
||||
wire _T_764 = r_d_bits_i0v & r_d_bits_i0load; // @[el2_dec_decode_ctl.scala 710:42]
|
||||
reg r_d_csrwonly; // @[el2_lib.scala 524:16]
|
||||
wire _T_764 = r_d_i0v & r_d_i0load; // @[el2_dec_decode_ctl.scala 710:37]
|
||||
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]
|
||||
reg x_d_bits_csrwonly; // @[el2_lib.scala 524:16]
|
||||
wire _T_432 = x_d_bits_csrwonly | r_d_bits_csrwonly; // @[el2_dec_decode_ctl.scala 516:43]
|
||||
reg wbd_bits_csrwonly; // @[el2_lib.scala 524:16]
|
||||
wire prior_csr_write = _T_432 | wbd_bits_csrwonly; // @[el2_dec_decode_ctl.scala 516:63]
|
||||
reg x_d_csrwonly; // @[el2_lib.scala 524:16]
|
||||
wire _T_432 = x_d_csrwonly | r_d_csrwonly; // @[el2_dec_decode_ctl.scala 516:38]
|
||||
reg wbd_csrwonly; // @[el2_lib.scala 524:16]
|
||||
wire prior_csr_write = _T_432 | wbd_csrwonly; // @[el2_dec_decode_ctl.scala 516:53]
|
||||
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 _T_436 = i0_dp_presync | io_dec_tlu_presync_d; // @[el2_dec_decode_ctl.scala 523:34]
|
||||
|
@ -1652,8 +1652,8 @@ module el2_dec_decode_ctl(
|
|||
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_475 = _T_474 | postsync_stall; // @[el2_dec_decode_ctl.scala 542:45]
|
||||
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_valid : prior_inflight; // @[el2_dec_decode_ctl.scala 565:31]
|
||||
wire prior_inflight = x_d_i0valid | r_d_i0valid; // @[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 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_477 = i0_dp_fence | debug_fence; // @[el2_dec_decode_ctl.scala 543:19]
|
||||
|
@ -1709,13 +1709,13 @@ module el2_dec_decode_ctl(
|
|||
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 lsu_pmu_misaligned_r; // @[el2_dec_decode_ctl.scala 603:37]
|
||||
reg r_d_bits_i0store; // @[el2_lib.scala 524:16]
|
||||
wire _T_536 = r_d_bits_i0load | r_d_bits_i0store; // @[el2_dec_decode_ctl.scala 607:61]
|
||||
reg r_d_i0store; // @[el2_lib.scala 524:16]
|
||||
wire _T_536 = r_d_i0load | r_d_i0store; // @[el2_dec_decode_ctl.scala 607:56]
|
||||
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:82]
|
||||
wire [3:0] _T_542 = _T_541 | r_t_i0trigger; // @[el2_dec_decode_ctl.scala 607:105]
|
||||
reg r_d_bits_i0div; // @[el2_lib.scala 524:16]
|
||||
wire _T_545 = r_d_bits_i0div & r_d_valid; // @[el2_dec_decode_ctl.scala 613:58]
|
||||
wire [3:0] _T_541 = _T_540 & lsu_trigger_match_r; // @[el2_dec_decode_ctl.scala 607:72]
|
||||
wire [3:0] _T_542 = _T_541 | r_t_i0trigger; // @[el2_dec_decode_ctl.scala 607:95]
|
||||
reg r_d_i0div; // @[el2_lib.scala 524:16]
|
||||
wire _T_545 = r_d_i0div & r_d_i0valid; // @[el2_dec_decode_ctl.scala 613:53]
|
||||
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_560 = i0r_rd != 5'h0; // @[el2_dec_decode_ctl.scala 626:48]
|
||||
|
@ -1751,34 +1751,34 @@ module el2_dec_decode_ctl(
|
|||
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 i0_r_data_en = i0_pipe_en[2] | io_clk_override; // @[el2_dec_decode_ctl.scala 658:50]
|
||||
reg x_d_bits_i0store; // @[el2_lib.scala 524:16]
|
||||
reg x_d_bits_i0div; // @[el2_lib.scala 524:16]
|
||||
reg x_d_bits_csrwen; // @[el2_lib.scala 524:16]
|
||||
reg [11:0] x_d_bits_csrwaddr; // @[el2_lib.scala 524:16]
|
||||
wire _T_733 = x_d_bits_i0v & _T_743; // @[el2_dec_decode_ctl.scala 680:47]
|
||||
wire _T_737 = x_d_valid & _T_743; // @[el2_dec_decode_ctl.scala 681:33]
|
||||
wire _T_756 = ~r_d_bits_i0div; // @[el2_dec_decode_ctl.scala 696:49]
|
||||
reg x_d_i0store; // @[el2_lib.scala 524:16]
|
||||
reg x_d_i0div; // @[el2_lib.scala 524:16]
|
||||
reg x_d_csrwen; // @[el2_lib.scala 524:16]
|
||||
reg [11:0] x_d_csrwaddr; // @[el2_lib.scala 524:16]
|
||||
wire _T_733 = x_d_i0v & _T_743; // @[el2_dec_decode_ctl.scala 680:37]
|
||||
wire _T_737 = x_d_i0valid & _T_743; // @[el2_dec_decode_ctl.scala 681:37]
|
||||
wire _T_756 = ~r_d_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_758 = ~i0_load_kill_wen_r; // @[el2_dec_decode_ctl.scala 696:70]
|
||||
wire _T_761 = x_d_bits_i0v & x_d_bits_i0load; // @[el2_dec_decode_ctl.scala 705:47]
|
||||
wire _T_758 = ~i0_load_kill_wen_r; // @[el2_dec_decode_ctl.scala 696:65]
|
||||
wire _T_761 = x_d_i0v & x_d_i0load; // @[el2_dec_decode_ctl.scala 705:42]
|
||||
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]
|
||||
reg [11:0] last_br_immed_x; // @[el2_lib.scala 514:16]
|
||||
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:58]
|
||||
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:60]
|
||||
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:94]
|
||||
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:60]
|
||||
wire div_flush = _T_806 | _T_809; // @[el2_dec_decode_ctl.scala 722:62]
|
||||
wire _T_799 = x_d_i0div & x_d_i0valid; // @[el2_dec_decode_ctl.scala 719:40]
|
||||
wire div_e1_to_r = _T_799 | _T_545; // @[el2_dec_decode_ctl.scala 719:55]
|
||||
wire _T_802 = x_d_i0rd == 5'h0; // @[el2_dec_decode_ctl.scala 721:69]
|
||||
wire _T_803 = _T_799 & _T_802; // @[el2_dec_decode_ctl.scala 721:57]
|
||||
wire _T_805 = _T_799 & io_dec_tlu_flush_lower_r; // @[el2_dec_decode_ctl.scala 722:30]
|
||||
wire _T_806 = _T_803 | _T_805; // @[el2_dec_decode_ctl.scala 721:86]
|
||||
wire _T_808 = _T_545 & io_dec_tlu_flush_lower_r; // @[el2_dec_decode_ctl.scala 723:30]
|
||||
wire _T_809 = _T_808 & io_dec_tlu_i0_kill_writeb_r; // @[el2_dec_decode_ctl.scala 723:57]
|
||||
wire div_flush = _T_806 | _T_809; // @[el2_dec_decode_ctl.scala 722:59]
|
||||
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_812 = io_dec_div_active & _T_811; // @[el2_dec_decode_ctl.scala 728:24]
|
||||
wire _T_813 = r_d_bits_i0rd == io_div_waddr_wb; // @[el2_dec_decode_ctl.scala 728:56]
|
||||
wire _T_813 = r_d_i0rd == io_div_waddr_wb; // @[el2_dec_decode_ctl.scala 728:51]
|
||||
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:77]
|
||||
wire _T_815 = _T_814 & i0_wen_r; // @[el2_dec_decode_ctl.scala 728:72]
|
||||
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 _T_817 = ~io_exu_div_wren; // @[el2_dec_decode_ctl.scala 733:62]
|
||||
|
@ -2077,7 +2077,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_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_waddr_r = r_d_bits_i0rd; // @[el2_dec_decode_ctl.scala 694:27]
|
||||
assign io_dec_i0_waddr_r = r_d_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_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]
|
||||
|
@ -2127,10 +2127,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_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_wraddr_r = r_d_bits_csrwaddr; // @[el2_dec_decode_ctl.scala 467:23]
|
||||
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_wraddr_r = r_d_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_stall_int_ff = _T_359 & _T_360; // @[el2_dec_decode_ctl.scala 474:27]
|
||||
assign io_dec_tlu_i0_valid_r = r_d_valid & _T_743; // @[el2_dec_decode_ctl.scala 578:29]
|
||||
assign io_dec_tlu_i0_valid_r = r_d_i0valid & _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_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]
|
||||
|
@ -2139,7 +2139,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_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_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_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_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_illegal_inst = _T_465; // @[el2_dec_decode_ctl.scala 536:23]
|
||||
|
@ -2283,7 +2283,7 @@ initial begin
|
|||
_RAND_6 = {1{`RANDOM}};
|
||||
postsync_stall = _RAND_6[0:0];
|
||||
_RAND_7 = {1{`RANDOM}};
|
||||
x_d_valid = _RAND_7[0:0];
|
||||
x_d_i0valid = _RAND_7[0:0];
|
||||
_RAND_8 = {1{`RANDOM}};
|
||||
flush_final_r = _RAND_8[0:0];
|
||||
_RAND_9 = {1{`RANDOM}};
|
||||
|
@ -2305,19 +2305,19 @@ initial begin
|
|||
_RAND_17 = {1{`RANDOM}};
|
||||
cam_raw_3_valid = _RAND_17[0:0];
|
||||
_RAND_18 = {1{`RANDOM}};
|
||||
x_d_bits_i0load = _RAND_18[0:0];
|
||||
x_d_i0load = _RAND_18[0:0];
|
||||
_RAND_19 = {1{`RANDOM}};
|
||||
x_d_bits_i0rd = _RAND_19[4:0];
|
||||
x_d_i0rd = _RAND_19[4:0];
|
||||
_RAND_20 = {1{`RANDOM}};
|
||||
_T_701 = _RAND_20[2:0];
|
||||
_RAND_21 = {1{`RANDOM}};
|
||||
nonblock_load_valid_m_delay = _RAND_21[0:0];
|
||||
_RAND_22 = {1{`RANDOM}};
|
||||
r_d_bits_i0load = _RAND_22[0:0];
|
||||
r_d_i0load = _RAND_22[0:0];
|
||||
_RAND_23 = {1{`RANDOM}};
|
||||
r_d_bits_i0v = _RAND_23[0:0];
|
||||
r_d_i0v = _RAND_23[0:0];
|
||||
_RAND_24 = {1{`RANDOM}};
|
||||
r_d_bits_i0rd = _RAND_24[4:0];
|
||||
r_d_i0rd = _RAND_24[4:0];
|
||||
_RAND_25 = {1{`RANDOM}};
|
||||
cam_raw_0_bits_rd = _RAND_25[4:0];
|
||||
_RAND_26 = {1{`RANDOM}};
|
||||
|
@ -2339,17 +2339,17 @@ initial begin
|
|||
_RAND_34 = {1{`RANDOM}};
|
||||
_T_339 = _RAND_34[0:0];
|
||||
_RAND_35 = {1{`RANDOM}};
|
||||
x_d_bits_i0v = _RAND_35[0:0];
|
||||
x_d_i0v = _RAND_35[0:0];
|
||||
_RAND_36 = {1{`RANDOM}};
|
||||
i0_x_c_load = _RAND_36[0:0];
|
||||
_RAND_37 = {1{`RANDOM}};
|
||||
i0_r_c_load = _RAND_37[0:0];
|
||||
_RAND_38 = {1{`RANDOM}};
|
||||
r_d_bits_csrwen = _RAND_38[0:0];
|
||||
r_d_csrwen = _RAND_38[0:0];
|
||||
_RAND_39 = {1{`RANDOM}};
|
||||
r_d_valid = _RAND_39[0:0];
|
||||
r_d_i0valid = _RAND_39[0:0];
|
||||
_RAND_40 = {1{`RANDOM}};
|
||||
r_d_bits_csrwaddr = _RAND_40[11:0];
|
||||
r_d_csrwaddr = _RAND_40[11:0];
|
||||
_RAND_41 = {1{`RANDOM}};
|
||||
csr_read_x = _RAND_41[0:0];
|
||||
_RAND_42 = {1{`RANDOM}};
|
||||
|
@ -2365,13 +2365,13 @@ initial begin
|
|||
_RAND_47 = {1{`RANDOM}};
|
||||
csr_rddata_x = _RAND_47[31:0];
|
||||
_RAND_48 = {1{`RANDOM}};
|
||||
r_d_bits_csrwonly = _RAND_48[0:0];
|
||||
r_d_csrwonly = _RAND_48[0:0];
|
||||
_RAND_49 = {1{`RANDOM}};
|
||||
i0_result_r_raw = _RAND_49[31:0];
|
||||
_RAND_50 = {1{`RANDOM}};
|
||||
x_d_bits_csrwonly = _RAND_50[0:0];
|
||||
x_d_csrwonly = _RAND_50[0:0];
|
||||
_RAND_51 = {1{`RANDOM}};
|
||||
wbd_bits_csrwonly = _RAND_51[0:0];
|
||||
wbd_csrwonly = _RAND_51[0:0];
|
||||
_RAND_52 = {1{`RANDOM}};
|
||||
_T_465 = _RAND_52[31:0];
|
||||
_RAND_53 = {1{`RANDOM}};
|
||||
|
@ -2411,9 +2411,9 @@ initial begin
|
|||
_RAND_70 = {1{`RANDOM}};
|
||||
lsu_pmu_misaligned_r = _RAND_70[0:0];
|
||||
_RAND_71 = {1{`RANDOM}};
|
||||
r_d_bits_i0store = _RAND_71[0:0];
|
||||
r_d_i0store = _RAND_71[0:0];
|
||||
_RAND_72 = {1{`RANDOM}};
|
||||
r_d_bits_i0div = _RAND_72[0:0];
|
||||
r_d_i0div = _RAND_72[0:0];
|
||||
_RAND_73 = {1{`RANDOM}};
|
||||
i0_x_c_mul = _RAND_73[0:0];
|
||||
_RAND_74 = {1{`RANDOM}};
|
||||
|
@ -2423,13 +2423,13 @@ initial begin
|
|||
_RAND_76 = {1{`RANDOM}};
|
||||
i0_r_c_alu = _RAND_76[0:0];
|
||||
_RAND_77 = {1{`RANDOM}};
|
||||
x_d_bits_i0store = _RAND_77[0:0];
|
||||
x_d_i0store = _RAND_77[0:0];
|
||||
_RAND_78 = {1{`RANDOM}};
|
||||
x_d_bits_i0div = _RAND_78[0:0];
|
||||
x_d_i0div = _RAND_78[0:0];
|
||||
_RAND_79 = {1{`RANDOM}};
|
||||
x_d_bits_csrwen = _RAND_79[0:0];
|
||||
x_d_csrwen = _RAND_79[0:0];
|
||||
_RAND_80 = {1{`RANDOM}};
|
||||
x_d_bits_csrwaddr = _RAND_80[11:0];
|
||||
x_d_csrwaddr = _RAND_80[11:0];
|
||||
_RAND_81 = {1{`RANDOM}};
|
||||
last_br_immed_x = _RAND_81[11:0];
|
||||
_RAND_82 = {1{`RANDOM}};
|
||||
|
@ -2473,7 +2473,7 @@ initial begin
|
|||
postsync_stall = 1'h0;
|
||||
end
|
||||
if (reset) begin
|
||||
x_d_valid = 1'h0;
|
||||
x_d_i0valid = 1'h0;
|
||||
end
|
||||
if (reset) begin
|
||||
flush_final_r = 1'h0;
|
||||
|
@ -2506,10 +2506,10 @@ initial begin
|
|||
cam_raw_3_valid = 1'h0;
|
||||
end
|
||||
if (reset) begin
|
||||
x_d_bits_i0load = 1'h0;
|
||||
x_d_i0load = 1'h0;
|
||||
end
|
||||
if (reset) begin
|
||||
x_d_bits_i0rd = 5'h0;
|
||||
x_d_i0rd = 5'h0;
|
||||
end
|
||||
if (reset) begin
|
||||
_T_701 = 3'h0;
|
||||
|
@ -2518,13 +2518,13 @@ initial begin
|
|||
nonblock_load_valid_m_delay = 1'h0;
|
||||
end
|
||||
if (reset) begin
|
||||
r_d_bits_i0load = 1'h0;
|
||||
r_d_i0load = 1'h0;
|
||||
end
|
||||
if (reset) begin
|
||||
r_d_bits_i0v = 1'h0;
|
||||
r_d_i0v = 1'h0;
|
||||
end
|
||||
if (reset) begin
|
||||
r_d_bits_i0rd = 5'h0;
|
||||
r_d_i0rd = 5'h0;
|
||||
end
|
||||
if (reset) begin
|
||||
cam_raw_0_bits_rd = 5'h0;
|
||||
|
@ -2557,16 +2557,16 @@ initial begin
|
|||
_T_339 = 1'h0;
|
||||
end
|
||||
if (reset) begin
|
||||
x_d_bits_i0v = 1'h0;
|
||||
x_d_i0v = 1'h0;
|
||||
end
|
||||
if (reset) begin
|
||||
r_d_bits_csrwen = 1'h0;
|
||||
r_d_csrwen = 1'h0;
|
||||
end
|
||||
if (reset) begin
|
||||
r_d_valid = 1'h0;
|
||||
r_d_i0valid = 1'h0;
|
||||
end
|
||||
if (reset) begin
|
||||
r_d_bits_csrwaddr = 12'h0;
|
||||
r_d_csrwaddr = 12'h0;
|
||||
end
|
||||
if (reset) begin
|
||||
csr_read_x = 1'h0;
|
||||
|
@ -2590,16 +2590,16 @@ initial begin
|
|||
csr_rddata_x = 32'h0;
|
||||
end
|
||||
if (reset) begin
|
||||
r_d_bits_csrwonly = 1'h0;
|
||||
r_d_csrwonly = 1'h0;
|
||||
end
|
||||
if (reset) begin
|
||||
i0_result_r_raw = 32'h0;
|
||||
end
|
||||
if (reset) begin
|
||||
x_d_bits_csrwonly = 1'h0;
|
||||
x_d_csrwonly = 1'h0;
|
||||
end
|
||||
if (reset) begin
|
||||
wbd_bits_csrwonly = 1'h0;
|
||||
wbd_csrwonly = 1'h0;
|
||||
end
|
||||
if (reset) begin
|
||||
_T_465 = 32'h0;
|
||||
|
@ -2659,22 +2659,22 @@ initial begin
|
|||
lsu_pmu_misaligned_r = 1'h0;
|
||||
end
|
||||
if (reset) begin
|
||||
r_d_bits_i0store = 1'h0;
|
||||
r_d_i0store = 1'h0;
|
||||
end
|
||||
if (reset) begin
|
||||
r_d_bits_i0div = 1'h0;
|
||||
r_d_i0div = 1'h0;
|
||||
end
|
||||
if (reset) begin
|
||||
x_d_bits_i0store = 1'h0;
|
||||
x_d_i0store = 1'h0;
|
||||
end
|
||||
if (reset) begin
|
||||
x_d_bits_i0div = 1'h0;
|
||||
x_d_i0div = 1'h0;
|
||||
end
|
||||
if (reset) begin
|
||||
x_d_bits_csrwen = 1'h0;
|
||||
x_d_csrwen = 1'h0;
|
||||
end
|
||||
if (reset) begin
|
||||
x_d_bits_csrwaddr = 12'h0;
|
||||
x_d_csrwaddr = 12'h0;
|
||||
end
|
||||
if (reset) begin
|
||||
last_br_immed_x = 12'h0;
|
||||
|
@ -2787,9 +2787,9 @@ end // initial
|
|||
end
|
||||
always @(posedge rvclkhdr_7_io_l1clk or posedge reset) begin
|
||||
if (reset) begin
|
||||
x_d_valid <= 1'h0;
|
||||
x_d_i0valid <= 1'h0;
|
||||
end else begin
|
||||
x_d_valid <= io_dec_i0_decode_d;
|
||||
x_d_i0valid <= io_dec_i0_decode_d;
|
||||
end
|
||||
end
|
||||
always @(posedge rvclkhdr_io_l1clk or posedge reset) begin
|
||||
|
@ -2880,16 +2880,16 @@ end // initial
|
|||
end
|
||||
always @(posedge rvclkhdr_7_io_l1clk or posedge reset) begin
|
||||
if (reset) begin
|
||||
x_d_bits_i0load <= 1'h0;
|
||||
x_d_i0load <= 1'h0;
|
||||
end else begin
|
||||
x_d_bits_i0load <= i0_dp_load & i0_legal_decode_d;
|
||||
x_d_i0load <= i0_dp_load & i0_legal_decode_d;
|
||||
end
|
||||
end
|
||||
always @(posedge rvclkhdr_7_io_l1clk or posedge reset) begin
|
||||
if (reset) begin
|
||||
x_d_bits_i0rd <= 5'h0;
|
||||
x_d_i0rd <= 5'h0;
|
||||
end else begin
|
||||
x_d_bits_i0rd <= io_dec_i0_instr_d[11:7];
|
||||
x_d_i0rd <= io_dec_i0_instr_d[11:7];
|
||||
end
|
||||
end
|
||||
always @(posedge io_active_clk or posedge reset) begin
|
||||
|
@ -2908,31 +2908,31 @@ end // initial
|
|||
end
|
||||
always @(posedge rvclkhdr_8_io_l1clk or posedge reset) begin
|
||||
if (reset) begin
|
||||
r_d_bits_i0load <= 1'h0;
|
||||
r_d_i0load <= 1'h0;
|
||||
end else begin
|
||||
r_d_bits_i0load <= x_d_bits_i0load;
|
||||
r_d_i0load <= x_d_i0load;
|
||||
end
|
||||
end
|
||||
always @(posedge rvclkhdr_8_io_l1clk or posedge reset) begin
|
||||
if (reset) begin
|
||||
r_d_bits_i0v <= 1'h0;
|
||||
r_d_i0v <= 1'h0;
|
||||
end else begin
|
||||
r_d_bits_i0v <= _T_733 & _T_280;
|
||||
r_d_i0v <= _T_733 & _T_280;
|
||||
end
|
||||
end
|
||||
always @(posedge rvclkhdr_8_io_l1clk or posedge reset) begin
|
||||
if (reset) begin
|
||||
r_d_bits_i0rd <= 5'h0;
|
||||
r_d_i0rd <= 5'h0;
|
||||
end else begin
|
||||
r_d_bits_i0rd <= x_d_bits_i0rd;
|
||||
r_d_i0rd <= x_d_i0rd;
|
||||
end
|
||||
end
|
||||
always @(posedge io_free_clk or posedge reset) begin
|
||||
if (reset) begin
|
||||
cam_raw_0_bits_rd <= 5'h0;
|
||||
end else if (cam_wen[0]) begin
|
||||
if (x_d_bits_i0load) begin
|
||||
cam_raw_0_bits_rd <= x_d_bits_i0rd;
|
||||
if (x_d_i0load) begin
|
||||
cam_raw_0_bits_rd <= x_d_i0rd;
|
||||
end else begin
|
||||
cam_raw_0_bits_rd <= 5'h0;
|
||||
end
|
||||
|
@ -2951,8 +2951,8 @@ end // initial
|
|||
if (reset) begin
|
||||
cam_raw_1_bits_rd <= 5'h0;
|
||||
end else if (cam_wen[1]) begin
|
||||
if (x_d_bits_i0load) begin
|
||||
cam_raw_1_bits_rd <= x_d_bits_i0rd;
|
||||
if (x_d_i0load) begin
|
||||
cam_raw_1_bits_rd <= x_d_i0rd;
|
||||
end else begin
|
||||
cam_raw_1_bits_rd <= 5'h0;
|
||||
end
|
||||
|
@ -2971,8 +2971,8 @@ end // initial
|
|||
if (reset) begin
|
||||
cam_raw_2_bits_rd <= 5'h0;
|
||||
end else if (cam_wen[2]) begin
|
||||
if (x_d_bits_i0load) begin
|
||||
cam_raw_2_bits_rd <= x_d_bits_i0rd;
|
||||
if (x_d_i0load) begin
|
||||
cam_raw_2_bits_rd <= x_d_i0rd;
|
||||
end else begin
|
||||
cam_raw_2_bits_rd <= 5'h0;
|
||||
end
|
||||
|
@ -2991,8 +2991,8 @@ end // initial
|
|||
if (reset) begin
|
||||
cam_raw_3_bits_rd <= 5'h0;
|
||||
end else if (cam_wen[3]) begin
|
||||
if (x_d_bits_i0load) begin
|
||||
cam_raw_3_bits_rd <= x_d_bits_i0rd;
|
||||
if (x_d_i0load) begin
|
||||
cam_raw_3_bits_rd <= x_d_i0rd;
|
||||
end else begin
|
||||
cam_raw_3_bits_rd <= 5'h0;
|
||||
end
|
||||
|
@ -3023,30 +3023,30 @@ end // initial
|
|||
end
|
||||
always @(posedge rvclkhdr_7_io_l1clk or posedge reset) begin
|
||||
if (reset) begin
|
||||
x_d_bits_i0v <= 1'h0;
|
||||
x_d_i0v <= 1'h0;
|
||||
end else begin
|
||||
x_d_bits_i0v <= i0_rd_en_d & i0_legal_decode_d;
|
||||
x_d_i0v <= i0_rd_en_d & i0_legal_decode_d;
|
||||
end
|
||||
end
|
||||
always @(posedge rvclkhdr_8_io_l1clk or posedge reset) begin
|
||||
if (reset) begin
|
||||
r_d_bits_csrwen <= 1'h0;
|
||||
r_d_csrwen <= 1'h0;
|
||||
end else begin
|
||||
r_d_bits_csrwen <= x_d_bits_csrwen;
|
||||
r_d_csrwen <= x_d_csrwen;
|
||||
end
|
||||
end
|
||||
always @(posedge rvclkhdr_8_io_l1clk or posedge reset) begin
|
||||
if (reset) begin
|
||||
r_d_valid <= 1'h0;
|
||||
r_d_i0valid <= 1'h0;
|
||||
end else begin
|
||||
r_d_valid <= _T_737 & _T_280;
|
||||
r_d_i0valid <= _T_737 & _T_280;
|
||||
end
|
||||
end
|
||||
always @(posedge rvclkhdr_8_io_l1clk or posedge reset) begin
|
||||
if (reset) begin
|
||||
r_d_bits_csrwaddr <= 12'h0;
|
||||
r_d_csrwaddr <= 12'h0;
|
||||
end else begin
|
||||
r_d_bits_csrwaddr <= x_d_bits_csrwaddr;
|
||||
r_d_csrwaddr <= x_d_csrwaddr;
|
||||
end
|
||||
end
|
||||
always @(posedge io_active_clk or posedge reset) begin
|
||||
|
@ -3102,9 +3102,9 @@ end // initial
|
|||
end
|
||||
always @(posedge rvclkhdr_8_io_l1clk or posedge reset) begin
|
||||
if (reset) begin
|
||||
r_d_bits_csrwonly <= 1'h0;
|
||||
r_d_csrwonly <= 1'h0;
|
||||
end else begin
|
||||
r_d_bits_csrwonly <= x_d_bits_csrwonly;
|
||||
r_d_csrwonly <= x_d_csrwonly;
|
||||
end
|
||||
end
|
||||
always @(posedge rvclkhdr_10_io_l1clk or posedge reset) begin
|
||||
|
@ -3118,16 +3118,16 @@ end // initial
|
|||
end
|
||||
always @(posedge rvclkhdr_7_io_l1clk or posedge reset) begin
|
||||
if (reset) begin
|
||||
x_d_bits_csrwonly <= 1'h0;
|
||||
x_d_csrwonly <= 1'h0;
|
||||
end else begin
|
||||
x_d_bits_csrwonly <= i0_csr_write_only_d & io_dec_i0_decode_d;
|
||||
x_d_csrwonly <= i0_csr_write_only_d & io_dec_i0_decode_d;
|
||||
end
|
||||
end
|
||||
always @(posedge rvclkhdr_9_io_l1clk or posedge reset) begin
|
||||
if (reset) begin
|
||||
wbd_bits_csrwonly <= 1'h0;
|
||||
wbd_csrwonly <= 1'h0;
|
||||
end else begin
|
||||
wbd_bits_csrwonly <= r_d_bits_csrwonly;
|
||||
wbd_csrwonly <= r_d_csrwonly;
|
||||
end
|
||||
end
|
||||
always @(posedge rvclkhdr_4_io_l1clk or posedge reset) begin
|
||||
|
@ -3267,44 +3267,44 @@ end // initial
|
|||
end
|
||||
always @(posedge rvclkhdr_8_io_l1clk or posedge reset) begin
|
||||
if (reset) begin
|
||||
r_d_bits_i0store <= 1'h0;
|
||||
r_d_i0store <= 1'h0;
|
||||
end else begin
|
||||
r_d_bits_i0store <= x_d_bits_i0store;
|
||||
r_d_i0store <= x_d_i0store;
|
||||
end
|
||||
end
|
||||
always @(posedge rvclkhdr_8_io_l1clk or posedge reset) begin
|
||||
if (reset) begin
|
||||
r_d_bits_i0div <= 1'h0;
|
||||
r_d_i0div <= 1'h0;
|
||||
end else begin
|
||||
r_d_bits_i0div <= x_d_bits_i0div;
|
||||
r_d_i0div <= x_d_i0div;
|
||||
end
|
||||
end
|
||||
always @(posedge rvclkhdr_7_io_l1clk or posedge reset) begin
|
||||
if (reset) begin
|
||||
x_d_bits_i0store <= 1'h0;
|
||||
x_d_i0store <= 1'h0;
|
||||
end else begin
|
||||
x_d_bits_i0store <= i0_dp_store & i0_legal_decode_d;
|
||||
x_d_i0store <= i0_dp_store & i0_legal_decode_d;
|
||||
end
|
||||
end
|
||||
always @(posedge rvclkhdr_7_io_l1clk or posedge reset) begin
|
||||
if (reset) begin
|
||||
x_d_bits_i0div <= 1'h0;
|
||||
x_d_i0div <= 1'h0;
|
||||
end else begin
|
||||
x_d_bits_i0div <= i0_dp_div & i0_legal_decode_d;
|
||||
x_d_i0div <= i0_dp_div & i0_legal_decode_d;
|
||||
end
|
||||
end
|
||||
always @(posedge rvclkhdr_7_io_l1clk or posedge reset) begin
|
||||
if (reset) begin
|
||||
x_d_bits_csrwen <= 1'h0;
|
||||
x_d_csrwen <= 1'h0;
|
||||
end else begin
|
||||
x_d_bits_csrwen <= io_dec_csr_wen_unq_d & i0_legal_decode_d;
|
||||
x_d_csrwen <= io_dec_csr_wen_unq_d & i0_legal_decode_d;
|
||||
end
|
||||
end
|
||||
always @(posedge rvclkhdr_7_io_l1clk or posedge reset) begin
|
||||
if (reset) begin
|
||||
x_d_bits_csrwaddr <= 12'h0;
|
||||
x_d_csrwaddr <= 12'h0;
|
||||
end else begin
|
||||
x_d_bits_csrwaddr <= io_dec_i0_instr_d[31:20];
|
||||
x_d_csrwaddr <= io_dec_i0_instr_d[31:20];
|
||||
end
|
||||
end
|
||||
always @(posedge rvclkhdr_11_io_l1clk or posedge reset) begin
|
||||
|
|
|
@ -82580,228 +82580,228 @@ module el2_swerv_wrapper(
|
|||
input io_mbist_mode,
|
||||
input io_scan_mode
|
||||
);
|
||||
wire mem_clk; // @[SweRV_Wrapper.scala 345:19]
|
||||
wire mem_rst_l; // @[SweRV_Wrapper.scala 345:19]
|
||||
wire mem_dccm_clk_override; // @[SweRV_Wrapper.scala 345:19]
|
||||
wire mem_icm_clk_override; // @[SweRV_Wrapper.scala 345:19]
|
||||
wire mem_dec_tlu_core_ecc_disable; // @[SweRV_Wrapper.scala 345:19]
|
||||
wire mem_dccm_wren; // @[SweRV_Wrapper.scala 345:19]
|
||||
wire mem_dccm_rden; // @[SweRV_Wrapper.scala 345:19]
|
||||
wire [15:0] mem_dccm_wr_addr_lo; // @[SweRV_Wrapper.scala 345:19]
|
||||
wire [15:0] mem_dccm_wr_addr_hi; // @[SweRV_Wrapper.scala 345:19]
|
||||
wire [15:0] mem_dccm_rd_addr_lo; // @[SweRV_Wrapper.scala 345:19]
|
||||
wire [15:0] mem_dccm_rd_addr_hi; // @[SweRV_Wrapper.scala 345:19]
|
||||
wire [38:0] mem_dccm_wr_data_lo; // @[SweRV_Wrapper.scala 345:19]
|
||||
wire [38:0] mem_dccm_wr_data_hi; // @[SweRV_Wrapper.scala 345:19]
|
||||
wire [38:0] mem_dccm_rd_data_lo; // @[SweRV_Wrapper.scala 345:19]
|
||||
wire [14:0] mem_iccm_rw_addr; // @[SweRV_Wrapper.scala 345:19]
|
||||
wire mem_iccm_buf_correct_ecc; // @[SweRV_Wrapper.scala 345:19]
|
||||
wire mem_iccm_correction_state; // @[SweRV_Wrapper.scala 345:19]
|
||||
wire mem_iccm_wren; // @[SweRV_Wrapper.scala 345:19]
|
||||
wire mem_iccm_rden; // @[SweRV_Wrapper.scala 345:19]
|
||||
wire [2:0] mem_iccm_wr_size; // @[SweRV_Wrapper.scala 345:19]
|
||||
wire [77:0] mem_iccm_wr_data; // @[SweRV_Wrapper.scala 345:19]
|
||||
wire [30:0] mem_ic_rw_addr; // @[SweRV_Wrapper.scala 345:19]
|
||||
wire [1:0] mem_ic_tag_valid; // @[SweRV_Wrapper.scala 345:19]
|
||||
wire [1:0] mem_ic_wr_en; // @[SweRV_Wrapper.scala 345:19]
|
||||
wire mem_ic_rd_en; // @[SweRV_Wrapper.scala 345:19]
|
||||
wire [63:0] mem_ic_premux_data; // @[SweRV_Wrapper.scala 345:19]
|
||||
wire mem_ic_sel_premux_data; // @[SweRV_Wrapper.scala 345:19]
|
||||
wire [70:0] mem_ic_wr_data_0; // @[SweRV_Wrapper.scala 345:19]
|
||||
wire [70:0] mem_ic_wr_data_1; // @[SweRV_Wrapper.scala 345:19]
|
||||
wire [70:0] mem_ic_debug_wr_data; // @[SweRV_Wrapper.scala 345:19]
|
||||
wire [9:0] mem_ic_debug_addr; // @[SweRV_Wrapper.scala 345:19]
|
||||
wire mem_ic_debug_rd_en; // @[SweRV_Wrapper.scala 345:19]
|
||||
wire mem_ic_debug_wr_en; // @[SweRV_Wrapper.scala 345:19]
|
||||
wire mem_ic_debug_tag_array; // @[SweRV_Wrapper.scala 345:19]
|
||||
wire [1:0] mem_ic_debug_way; // @[SweRV_Wrapper.scala 345:19]
|
||||
wire mem_scan_mode; // @[SweRV_Wrapper.scala 345:19]
|
||||
wire [77:0] mem_iccm_rd_data_ecc; // @[SweRV_Wrapper.scala 345:19]
|
||||
wire [38:0] mem_dccm_rd_data_hi; // @[SweRV_Wrapper.scala 345:19]
|
||||
wire [63:0] mem_ic_rd_data; // @[SweRV_Wrapper.scala 345:19]
|
||||
wire [25:0] mem_ictag_debug_rd_data; // @[SweRV_Wrapper.scala 345:19]
|
||||
wire [1:0] mem_ic_eccerr; // @[SweRV_Wrapper.scala 345:19]
|
||||
wire [1:0] mem_ic_parerr; // @[SweRV_Wrapper.scala 345:19]
|
||||
wire [1:0] mem_ic_rd_hit; // @[SweRV_Wrapper.scala 345:19]
|
||||
wire mem_ic_tag_perr; // @[SweRV_Wrapper.scala 345:19]
|
||||
wire [70:0] mem_ic_debug_rd_data; // @[SweRV_Wrapper.scala 345:19]
|
||||
wire [63:0] mem_iccm_rd_data; // @[SweRV_Wrapper.scala 345:19]
|
||||
wire dmi_wrapper_trst_n; // @[SweRV_Wrapper.scala 346:27]
|
||||
wire dmi_wrapper_tck; // @[SweRV_Wrapper.scala 346:27]
|
||||
wire dmi_wrapper_tms; // @[SweRV_Wrapper.scala 346:27]
|
||||
wire dmi_wrapper_tdi; // @[SweRV_Wrapper.scala 346:27]
|
||||
wire dmi_wrapper_tdo; // @[SweRV_Wrapper.scala 346:27]
|
||||
wire dmi_wrapper_tdoEnable; // @[SweRV_Wrapper.scala 346:27]
|
||||
wire dmi_wrapper_core_rst_n; // @[SweRV_Wrapper.scala 346:27]
|
||||
wire dmi_wrapper_core_clk; // @[SweRV_Wrapper.scala 346:27]
|
||||
wire [30:0] dmi_wrapper_jtag_id; // @[SweRV_Wrapper.scala 346:27]
|
||||
wire [31:0] dmi_wrapper_rd_data; // @[SweRV_Wrapper.scala 346:27]
|
||||
wire [31:0] dmi_wrapper_reg_wr_data; // @[SweRV_Wrapper.scala 346:27]
|
||||
wire [6:0] dmi_wrapper_reg_wr_addr; // @[SweRV_Wrapper.scala 346:27]
|
||||
wire dmi_wrapper_reg_en; // @[SweRV_Wrapper.scala 346:27]
|
||||
wire dmi_wrapper_reg_wr_en; // @[SweRV_Wrapper.scala 346:27]
|
||||
wire dmi_wrapper_dmi_hard_reset; // @[SweRV_Wrapper.scala 346:27]
|
||||
wire swerv_clock; // @[SweRV_Wrapper.scala 347:21]
|
||||
wire swerv_reset; // @[SweRV_Wrapper.scala 347:21]
|
||||
wire swerv_io_dbg_rst_l; // @[SweRV_Wrapper.scala 347:21]
|
||||
wire [30:0] swerv_io_rst_vec; // @[SweRV_Wrapper.scala 347:21]
|
||||
wire swerv_io_nmi_int; // @[SweRV_Wrapper.scala 347:21]
|
||||
wire [30:0] swerv_io_nmi_vec; // @[SweRV_Wrapper.scala 347:21]
|
||||
wire swerv_io_core_rst_l; // @[SweRV_Wrapper.scala 347:21]
|
||||
wire [31:0] swerv_io_trace_rv_i_insn_ip; // @[SweRV_Wrapper.scala 347:21]
|
||||
wire [31:0] swerv_io_trace_rv_i_address_ip; // @[SweRV_Wrapper.scala 347:21]
|
||||
wire [1:0] swerv_io_trace_rv_i_valid_ip; // @[SweRV_Wrapper.scala 347:21]
|
||||
wire [1:0] swerv_io_trace_rv_i_exception_ip; // @[SweRV_Wrapper.scala 347:21]
|
||||
wire [4:0] swerv_io_trace_rv_i_ecause_ip; // @[SweRV_Wrapper.scala 347:21]
|
||||
wire [1:0] swerv_io_trace_rv_i_interrupt_ip; // @[SweRV_Wrapper.scala 347:21]
|
||||
wire [31:0] swerv_io_trace_rv_i_tval_ip; // @[SweRV_Wrapper.scala 347:21]
|
||||
wire swerv_io_dccm_clk_override; // @[SweRV_Wrapper.scala 347:21]
|
||||
wire swerv_io_icm_clk_override; // @[SweRV_Wrapper.scala 347:21]
|
||||
wire swerv_io_dec_tlu_core_ecc_disable; // @[SweRV_Wrapper.scala 347:21]
|
||||
wire swerv_io_i_cpu_halt_req; // @[SweRV_Wrapper.scala 347:21]
|
||||
wire swerv_io_i_cpu_run_req; // @[SweRV_Wrapper.scala 347:21]
|
||||
wire swerv_io_o_cpu_halt_ack; // @[SweRV_Wrapper.scala 347:21]
|
||||
wire swerv_io_o_cpu_halt_status; // @[SweRV_Wrapper.scala 347:21]
|
||||
wire swerv_io_o_cpu_run_ack; // @[SweRV_Wrapper.scala 347:21]
|
||||
wire swerv_io_o_debug_mode_status; // @[SweRV_Wrapper.scala 347:21]
|
||||
wire [27:0] swerv_io_core_id; // @[SweRV_Wrapper.scala 347:21]
|
||||
wire swerv_io_mpc_debug_halt_req; // @[SweRV_Wrapper.scala 347:21]
|
||||
wire swerv_io_mpc_debug_run_req; // @[SweRV_Wrapper.scala 347:21]
|
||||
wire swerv_io_mpc_reset_run_req; // @[SweRV_Wrapper.scala 347:21]
|
||||
wire swerv_io_mpc_debug_halt_ack; // @[SweRV_Wrapper.scala 347:21]
|
||||
wire swerv_io_mpc_debug_run_ack; // @[SweRV_Wrapper.scala 347:21]
|
||||
wire swerv_io_debug_brkpt_status; // @[SweRV_Wrapper.scala 347:21]
|
||||
wire swerv_io_dec_tlu_perfcnt0; // @[SweRV_Wrapper.scala 347:21]
|
||||
wire swerv_io_dec_tlu_perfcnt1; // @[SweRV_Wrapper.scala 347:21]
|
||||
wire swerv_io_dec_tlu_perfcnt2; // @[SweRV_Wrapper.scala 347:21]
|
||||
wire swerv_io_dec_tlu_perfcnt3; // @[SweRV_Wrapper.scala 347:21]
|
||||
wire swerv_io_dccm_wren; // @[SweRV_Wrapper.scala 347:21]
|
||||
wire swerv_io_dccm_rden; // @[SweRV_Wrapper.scala 347:21]
|
||||
wire [15:0] swerv_io_dccm_wr_addr_lo; // @[SweRV_Wrapper.scala 347:21]
|
||||
wire [15:0] swerv_io_dccm_wr_addr_hi; // @[SweRV_Wrapper.scala 347:21]
|
||||
wire [15:0] swerv_io_dccm_rd_addr_lo; // @[SweRV_Wrapper.scala 347:21]
|
||||
wire [15:0] swerv_io_dccm_rd_addr_hi; // @[SweRV_Wrapper.scala 347:21]
|
||||
wire [38:0] swerv_io_dccm_wr_data_lo; // @[SweRV_Wrapper.scala 347:21]
|
||||
wire [38:0] swerv_io_dccm_wr_data_hi; // @[SweRV_Wrapper.scala 347:21]
|
||||
wire [38:0] swerv_io_dccm_rd_data_lo; // @[SweRV_Wrapper.scala 347:21]
|
||||
wire [38:0] swerv_io_dccm_rd_data_hi; // @[SweRV_Wrapper.scala 347:21]
|
||||
wire [14:0] swerv_io_iccm_rw_addr; // @[SweRV_Wrapper.scala 347:21]
|
||||
wire swerv_io_iccm_wren; // @[SweRV_Wrapper.scala 347:21]
|
||||
wire swerv_io_iccm_rden; // @[SweRV_Wrapper.scala 347:21]
|
||||
wire [2:0] swerv_io_iccm_wr_size; // @[SweRV_Wrapper.scala 347:21]
|
||||
wire [77:0] swerv_io_iccm_wr_data; // @[SweRV_Wrapper.scala 347:21]
|
||||
wire swerv_io_iccm_buf_correct_ecc; // @[SweRV_Wrapper.scala 347:21]
|
||||
wire swerv_io_iccm_correction_state; // @[SweRV_Wrapper.scala 347:21]
|
||||
wire [63:0] swerv_io_iccm_rd_data; // @[SweRV_Wrapper.scala 347:21]
|
||||
wire [77:0] swerv_io_iccm_rd_data_ecc; // @[SweRV_Wrapper.scala 347:21]
|
||||
wire [30:0] swerv_io_ic_rw_addr; // @[SweRV_Wrapper.scala 347:21]
|
||||
wire [1:0] swerv_io_ic_tag_valid; // @[SweRV_Wrapper.scala 347:21]
|
||||
wire [1:0] swerv_io_ic_wr_en; // @[SweRV_Wrapper.scala 347:21]
|
||||
wire swerv_io_ic_rd_en; // @[SweRV_Wrapper.scala 347:21]
|
||||
wire [70:0] swerv_io_ic_wr_data_0; // @[SweRV_Wrapper.scala 347:21]
|
||||
wire [70:0] swerv_io_ic_wr_data_1; // @[SweRV_Wrapper.scala 347:21]
|
||||
wire [63:0] swerv_io_ic_rd_data; // @[SweRV_Wrapper.scala 347:21]
|
||||
wire [70:0] swerv_io_ic_debug_rd_data; // @[SweRV_Wrapper.scala 347:21]
|
||||
wire [25:0] swerv_io_ictag_debug_rd_data; // @[SweRV_Wrapper.scala 347:21]
|
||||
wire [70:0] swerv_io_ic_debug_wr_data; // @[SweRV_Wrapper.scala 347:21]
|
||||
wire [1:0] swerv_io_ic_eccerr; // @[SweRV_Wrapper.scala 347:21]
|
||||
wire [63:0] swerv_io_ic_premux_data; // @[SweRV_Wrapper.scala 347:21]
|
||||
wire swerv_io_ic_sel_premux_data; // @[SweRV_Wrapper.scala 347:21]
|
||||
wire [9:0] swerv_io_ic_debug_addr; // @[SweRV_Wrapper.scala 347:21]
|
||||
wire swerv_io_ic_debug_rd_en; // @[SweRV_Wrapper.scala 347:21]
|
||||
wire swerv_io_ic_debug_wr_en; // @[SweRV_Wrapper.scala 347:21]
|
||||
wire swerv_io_ic_debug_tag_array; // @[SweRV_Wrapper.scala 347:21]
|
||||
wire [1:0] swerv_io_ic_debug_way; // @[SweRV_Wrapper.scala 347:21]
|
||||
wire [1:0] swerv_io_ic_rd_hit; // @[SweRV_Wrapper.scala 347:21]
|
||||
wire swerv_io_ic_tag_perr; // @[SweRV_Wrapper.scala 347:21]
|
||||
wire swerv_io_lsu_axi_awvalid; // @[SweRV_Wrapper.scala 347:21]
|
||||
wire swerv_io_lsu_axi_awready; // @[SweRV_Wrapper.scala 347:21]
|
||||
wire [2:0] swerv_io_lsu_axi_awid; // @[SweRV_Wrapper.scala 347:21]
|
||||
wire [31:0] swerv_io_lsu_axi_awaddr; // @[SweRV_Wrapper.scala 347:21]
|
||||
wire [3:0] swerv_io_lsu_axi_awregion; // @[SweRV_Wrapper.scala 347:21]
|
||||
wire [2:0] swerv_io_lsu_axi_awsize; // @[SweRV_Wrapper.scala 347:21]
|
||||
wire [3:0] swerv_io_lsu_axi_awcache; // @[SweRV_Wrapper.scala 347:21]
|
||||
wire swerv_io_lsu_axi_wvalid; // @[SweRV_Wrapper.scala 347:21]
|
||||
wire swerv_io_lsu_axi_wready; // @[SweRV_Wrapper.scala 347:21]
|
||||
wire [63:0] swerv_io_lsu_axi_wdata; // @[SweRV_Wrapper.scala 347:21]
|
||||
wire [7:0] swerv_io_lsu_axi_wstrb; // @[SweRV_Wrapper.scala 347:21]
|
||||
wire swerv_io_lsu_axi_bvalid; // @[SweRV_Wrapper.scala 347:21]
|
||||
wire [1:0] swerv_io_lsu_axi_bresp; // @[SweRV_Wrapper.scala 347:21]
|
||||
wire [2:0] swerv_io_lsu_axi_bid; // @[SweRV_Wrapper.scala 347:21]
|
||||
wire swerv_io_lsu_axi_arvalid; // @[SweRV_Wrapper.scala 347:21]
|
||||
wire swerv_io_lsu_axi_arready; // @[SweRV_Wrapper.scala 347:21]
|
||||
wire [2:0] swerv_io_lsu_axi_arid; // @[SweRV_Wrapper.scala 347:21]
|
||||
wire [31:0] swerv_io_lsu_axi_araddr; // @[SweRV_Wrapper.scala 347:21]
|
||||
wire [3:0] swerv_io_lsu_axi_arregion; // @[SweRV_Wrapper.scala 347:21]
|
||||
wire [2:0] swerv_io_lsu_axi_arsize; // @[SweRV_Wrapper.scala 347:21]
|
||||
wire [3:0] swerv_io_lsu_axi_arcache; // @[SweRV_Wrapper.scala 347:21]
|
||||
wire swerv_io_lsu_axi_rvalid; // @[SweRV_Wrapper.scala 347:21]
|
||||
wire [2:0] swerv_io_lsu_axi_rid; // @[SweRV_Wrapper.scala 347:21]
|
||||
wire [63:0] swerv_io_lsu_axi_rdata; // @[SweRV_Wrapper.scala 347:21]
|
||||
wire swerv_io_ifu_axi_arvalid; // @[SweRV_Wrapper.scala 347:21]
|
||||
wire swerv_io_ifu_axi_arready; // @[SweRV_Wrapper.scala 347:21]
|
||||
wire [2:0] swerv_io_ifu_axi_arid; // @[SweRV_Wrapper.scala 347:21]
|
||||
wire [31:0] swerv_io_ifu_axi_araddr; // @[SweRV_Wrapper.scala 347:21]
|
||||
wire [3:0] swerv_io_ifu_axi_arregion; // @[SweRV_Wrapper.scala 347:21]
|
||||
wire swerv_io_ifu_axi_rvalid; // @[SweRV_Wrapper.scala 347:21]
|
||||
wire [2:0] swerv_io_ifu_axi_rid; // @[SweRV_Wrapper.scala 347:21]
|
||||
wire [63:0] swerv_io_ifu_axi_rdata; // @[SweRV_Wrapper.scala 347:21]
|
||||
wire [1:0] swerv_io_ifu_axi_rresp; // @[SweRV_Wrapper.scala 347:21]
|
||||
wire swerv_io_sb_axi_awvalid; // @[SweRV_Wrapper.scala 347:21]
|
||||
wire swerv_io_sb_axi_awready; // @[SweRV_Wrapper.scala 347:21]
|
||||
wire [31:0] swerv_io_sb_axi_awaddr; // @[SweRV_Wrapper.scala 347:21]
|
||||
wire [3:0] swerv_io_sb_axi_awregion; // @[SweRV_Wrapper.scala 347:21]
|
||||
wire [2:0] swerv_io_sb_axi_awsize; // @[SweRV_Wrapper.scala 347:21]
|
||||
wire swerv_io_sb_axi_wvalid; // @[SweRV_Wrapper.scala 347:21]
|
||||
wire swerv_io_sb_axi_wready; // @[SweRV_Wrapper.scala 347:21]
|
||||
wire [63:0] swerv_io_sb_axi_wdata; // @[SweRV_Wrapper.scala 347:21]
|
||||
wire [7:0] swerv_io_sb_axi_wstrb; // @[SweRV_Wrapper.scala 347:21]
|
||||
wire swerv_io_sb_axi_bvalid; // @[SweRV_Wrapper.scala 347:21]
|
||||
wire [1:0] swerv_io_sb_axi_bresp; // @[SweRV_Wrapper.scala 347:21]
|
||||
wire swerv_io_sb_axi_arvalid; // @[SweRV_Wrapper.scala 347:21]
|
||||
wire swerv_io_sb_axi_arready; // @[SweRV_Wrapper.scala 347:21]
|
||||
wire [31:0] swerv_io_sb_axi_araddr; // @[SweRV_Wrapper.scala 347:21]
|
||||
wire [3:0] swerv_io_sb_axi_arregion; // @[SweRV_Wrapper.scala 347:21]
|
||||
wire [2:0] swerv_io_sb_axi_arsize; // @[SweRV_Wrapper.scala 347:21]
|
||||
wire swerv_io_sb_axi_rvalid; // @[SweRV_Wrapper.scala 347:21]
|
||||
wire [63:0] swerv_io_sb_axi_rdata; // @[SweRV_Wrapper.scala 347:21]
|
||||
wire [1:0] swerv_io_sb_axi_rresp; // @[SweRV_Wrapper.scala 347:21]
|
||||
wire swerv_io_dma_axi_awvalid; // @[SweRV_Wrapper.scala 347:21]
|
||||
wire swerv_io_dma_axi_awready; // @[SweRV_Wrapper.scala 347:21]
|
||||
wire swerv_io_dma_axi_awid; // @[SweRV_Wrapper.scala 347:21]
|
||||
wire [31:0] swerv_io_dma_axi_awaddr; // @[SweRV_Wrapper.scala 347:21]
|
||||
wire [2:0] swerv_io_dma_axi_awsize; // @[SweRV_Wrapper.scala 347:21]
|
||||
wire swerv_io_dma_axi_wvalid; // @[SweRV_Wrapper.scala 347:21]
|
||||
wire swerv_io_dma_axi_wready; // @[SweRV_Wrapper.scala 347:21]
|
||||
wire [63:0] swerv_io_dma_axi_wdata; // @[SweRV_Wrapper.scala 347:21]
|
||||
wire [7:0] swerv_io_dma_axi_wstrb; // @[SweRV_Wrapper.scala 347:21]
|
||||
wire swerv_io_dma_axi_bvalid; // @[SweRV_Wrapper.scala 347:21]
|
||||
wire swerv_io_dma_axi_bready; // @[SweRV_Wrapper.scala 347:21]
|
||||
wire [1:0] swerv_io_dma_axi_bresp; // @[SweRV_Wrapper.scala 347:21]
|
||||
wire swerv_io_dma_axi_bid; // @[SweRV_Wrapper.scala 347:21]
|
||||
wire swerv_io_dma_axi_arvalid; // @[SweRV_Wrapper.scala 347:21]
|
||||
wire swerv_io_dma_axi_arready; // @[SweRV_Wrapper.scala 347:21]
|
||||
wire swerv_io_dma_axi_arid; // @[SweRV_Wrapper.scala 347:21]
|
||||
wire [31:0] swerv_io_dma_axi_araddr; // @[SweRV_Wrapper.scala 347:21]
|
||||
wire [2:0] swerv_io_dma_axi_arsize; // @[SweRV_Wrapper.scala 347:21]
|
||||
wire swerv_io_dma_axi_rvalid; // @[SweRV_Wrapper.scala 347:21]
|
||||
wire swerv_io_dma_axi_rready; // @[SweRV_Wrapper.scala 347:21]
|
||||
wire swerv_io_dma_axi_rid; // @[SweRV_Wrapper.scala 347:21]
|
||||
wire [63:0] swerv_io_dma_axi_rdata; // @[SweRV_Wrapper.scala 347:21]
|
||||
wire [1:0] swerv_io_dma_axi_rresp; // @[SweRV_Wrapper.scala 347:21]
|
||||
wire swerv_io_lsu_bus_clk_en; // @[SweRV_Wrapper.scala 347:21]
|
||||
wire swerv_io_ifu_bus_clk_en; // @[SweRV_Wrapper.scala 347:21]
|
||||
wire swerv_io_dbg_bus_clk_en; // @[SweRV_Wrapper.scala 347:21]
|
||||
wire swerv_io_dma_bus_clk_en; // @[SweRV_Wrapper.scala 347:21]
|
||||
wire swerv_io_dmi_reg_en; // @[SweRV_Wrapper.scala 347:21]
|
||||
wire [6:0] swerv_io_dmi_reg_addr; // @[SweRV_Wrapper.scala 347:21]
|
||||
wire swerv_io_dmi_reg_wr_en; // @[SweRV_Wrapper.scala 347:21]
|
||||
wire [31:0] swerv_io_dmi_reg_wdata; // @[SweRV_Wrapper.scala 347:21]
|
||||
wire [30:0] swerv_io_extintsrc_req; // @[SweRV_Wrapper.scala 347:21]
|
||||
wire swerv_io_timer_int; // @[SweRV_Wrapper.scala 347:21]
|
||||
wire swerv_io_soft_int; // @[SweRV_Wrapper.scala 347:21]
|
||||
wire swerv_io_scan_mode; // @[SweRV_Wrapper.scala 347:21]
|
||||
el2_mem #(.ICACHE_BEAT_BITS(3), .ICCM_BITS(16), .ICACHE_BANKS_WAY(2), .ICACHE_NUM_WAYS(2), .DCCM_BYTE_WIDTH(4), .ICCM_BANK_INDEX_LO(4), .ICACHE_BANK_BITS(1), .DCCM_BITS(16), .ICACHE_BEAT_ADDR_HI(5), .ICCM_INDEX_BITS(12), .ICCM_BANK_HI(3), .ICACHE_INDEX_HI(12), .DCCM_NUM_BANKS(4), .ICACHE_BANK_LO(3), .DCCM_ENABLE(1), .ICACHE_TAG_LO(13), .ICACHE_DATA_INDEX_LO(4), .ICCM_NUM_BANKS(4), .ICACHE_ECC(1), .ICACHE_ENABLE(1), .DCCM_BANK_BITS(2), .ICCM_ENABLE(1), .ICCM_BANK_BITS(2), .ICACHE_TAG_DEPTH(128), .ICACHE_WAYPACK(0), .DCCM_SIZE(64), .ICACHE_BANK_HI(3), .DCCM_FDATA_WIDTH(39), .ICACHE_TAG_INDEX_LO(6), .ICACHE_DATA_DEPTH(512)) mem ( // @[SweRV_Wrapper.scala 345:19]
|
||||
wire mem_clk; // @[el2_swerv_wrapper.scala 345:19]
|
||||
wire mem_rst_l; // @[el2_swerv_wrapper.scala 345:19]
|
||||
wire mem_dccm_clk_override; // @[el2_swerv_wrapper.scala 345:19]
|
||||
wire mem_icm_clk_override; // @[el2_swerv_wrapper.scala 345:19]
|
||||
wire mem_dec_tlu_core_ecc_disable; // @[el2_swerv_wrapper.scala 345:19]
|
||||
wire mem_dccm_wren; // @[el2_swerv_wrapper.scala 345:19]
|
||||
wire mem_dccm_rden; // @[el2_swerv_wrapper.scala 345:19]
|
||||
wire [15:0] mem_dccm_wr_addr_lo; // @[el2_swerv_wrapper.scala 345:19]
|
||||
wire [15:0] mem_dccm_wr_addr_hi; // @[el2_swerv_wrapper.scala 345:19]
|
||||
wire [15:0] mem_dccm_rd_addr_lo; // @[el2_swerv_wrapper.scala 345:19]
|
||||
wire [15:0] mem_dccm_rd_addr_hi; // @[el2_swerv_wrapper.scala 345:19]
|
||||
wire [38:0] mem_dccm_wr_data_lo; // @[el2_swerv_wrapper.scala 345:19]
|
||||
wire [38:0] mem_dccm_wr_data_hi; // @[el2_swerv_wrapper.scala 345:19]
|
||||
wire [38:0] mem_dccm_rd_data_lo; // @[el2_swerv_wrapper.scala 345:19]
|
||||
wire [14:0] mem_iccm_rw_addr; // @[el2_swerv_wrapper.scala 345:19]
|
||||
wire mem_iccm_buf_correct_ecc; // @[el2_swerv_wrapper.scala 345:19]
|
||||
wire mem_iccm_correction_state; // @[el2_swerv_wrapper.scala 345:19]
|
||||
wire mem_iccm_wren; // @[el2_swerv_wrapper.scala 345:19]
|
||||
wire mem_iccm_rden; // @[el2_swerv_wrapper.scala 345:19]
|
||||
wire [2:0] mem_iccm_wr_size; // @[el2_swerv_wrapper.scala 345:19]
|
||||
wire [77:0] mem_iccm_wr_data; // @[el2_swerv_wrapper.scala 345:19]
|
||||
wire [30:0] mem_ic_rw_addr; // @[el2_swerv_wrapper.scala 345:19]
|
||||
wire [1:0] mem_ic_tag_valid; // @[el2_swerv_wrapper.scala 345:19]
|
||||
wire [1:0] mem_ic_wr_en; // @[el2_swerv_wrapper.scala 345:19]
|
||||
wire mem_ic_rd_en; // @[el2_swerv_wrapper.scala 345:19]
|
||||
wire [63:0] mem_ic_premux_data; // @[el2_swerv_wrapper.scala 345:19]
|
||||
wire mem_ic_sel_premux_data; // @[el2_swerv_wrapper.scala 345:19]
|
||||
wire [70:0] mem_ic_wr_data_0; // @[el2_swerv_wrapper.scala 345:19]
|
||||
wire [70:0] mem_ic_wr_data_1; // @[el2_swerv_wrapper.scala 345:19]
|
||||
wire [70:0] mem_ic_debug_wr_data; // @[el2_swerv_wrapper.scala 345:19]
|
||||
wire [9:0] mem_ic_debug_addr; // @[el2_swerv_wrapper.scala 345:19]
|
||||
wire mem_ic_debug_rd_en; // @[el2_swerv_wrapper.scala 345:19]
|
||||
wire mem_ic_debug_wr_en; // @[el2_swerv_wrapper.scala 345:19]
|
||||
wire mem_ic_debug_tag_array; // @[el2_swerv_wrapper.scala 345:19]
|
||||
wire [1:0] mem_ic_debug_way; // @[el2_swerv_wrapper.scala 345:19]
|
||||
wire mem_scan_mode; // @[el2_swerv_wrapper.scala 345:19]
|
||||
wire [77:0] mem_iccm_rd_data_ecc; // @[el2_swerv_wrapper.scala 345:19]
|
||||
wire [38:0] mem_dccm_rd_data_hi; // @[el2_swerv_wrapper.scala 345:19]
|
||||
wire [63:0] mem_ic_rd_data; // @[el2_swerv_wrapper.scala 345:19]
|
||||
wire [25:0] mem_ictag_debug_rd_data; // @[el2_swerv_wrapper.scala 345:19]
|
||||
wire [1:0] mem_ic_eccerr; // @[el2_swerv_wrapper.scala 345:19]
|
||||
wire [1:0] mem_ic_parerr; // @[el2_swerv_wrapper.scala 345:19]
|
||||
wire [1:0] mem_ic_rd_hit; // @[el2_swerv_wrapper.scala 345:19]
|
||||
wire mem_ic_tag_perr; // @[el2_swerv_wrapper.scala 345:19]
|
||||
wire [70:0] mem_ic_debug_rd_data; // @[el2_swerv_wrapper.scala 345:19]
|
||||
wire [63:0] mem_iccm_rd_data; // @[el2_swerv_wrapper.scala 345:19]
|
||||
wire dmi_wrapper_trst_n; // @[el2_swerv_wrapper.scala 346:27]
|
||||
wire dmi_wrapper_tck; // @[el2_swerv_wrapper.scala 346:27]
|
||||
wire dmi_wrapper_tms; // @[el2_swerv_wrapper.scala 346:27]
|
||||
wire dmi_wrapper_tdi; // @[el2_swerv_wrapper.scala 346:27]
|
||||
wire dmi_wrapper_tdo; // @[el2_swerv_wrapper.scala 346:27]
|
||||
wire dmi_wrapper_tdoEnable; // @[el2_swerv_wrapper.scala 346:27]
|
||||
wire dmi_wrapper_core_rst_n; // @[el2_swerv_wrapper.scala 346:27]
|
||||
wire dmi_wrapper_core_clk; // @[el2_swerv_wrapper.scala 346:27]
|
||||
wire [30:0] dmi_wrapper_jtag_id; // @[el2_swerv_wrapper.scala 346:27]
|
||||
wire [31:0] dmi_wrapper_rd_data; // @[el2_swerv_wrapper.scala 346:27]
|
||||
wire [31:0] dmi_wrapper_reg_wr_data; // @[el2_swerv_wrapper.scala 346:27]
|
||||
wire [6:0] dmi_wrapper_reg_wr_addr; // @[el2_swerv_wrapper.scala 346:27]
|
||||
wire dmi_wrapper_reg_en; // @[el2_swerv_wrapper.scala 346:27]
|
||||
wire dmi_wrapper_reg_wr_en; // @[el2_swerv_wrapper.scala 346:27]
|
||||
wire dmi_wrapper_dmi_hard_reset; // @[el2_swerv_wrapper.scala 346:27]
|
||||
wire swerv_clock; // @[el2_swerv_wrapper.scala 347:21]
|
||||
wire swerv_reset; // @[el2_swerv_wrapper.scala 347:21]
|
||||
wire swerv_io_dbg_rst_l; // @[el2_swerv_wrapper.scala 347:21]
|
||||
wire [30:0] swerv_io_rst_vec; // @[el2_swerv_wrapper.scala 347:21]
|
||||
wire swerv_io_nmi_int; // @[el2_swerv_wrapper.scala 347:21]
|
||||
wire [30:0] swerv_io_nmi_vec; // @[el2_swerv_wrapper.scala 347:21]
|
||||
wire swerv_io_core_rst_l; // @[el2_swerv_wrapper.scala 347:21]
|
||||
wire [31:0] swerv_io_trace_rv_i_insn_ip; // @[el2_swerv_wrapper.scala 347:21]
|
||||
wire [31:0] swerv_io_trace_rv_i_address_ip; // @[el2_swerv_wrapper.scala 347:21]
|
||||
wire [1:0] swerv_io_trace_rv_i_valid_ip; // @[el2_swerv_wrapper.scala 347:21]
|
||||
wire [1:0] swerv_io_trace_rv_i_exception_ip; // @[el2_swerv_wrapper.scala 347:21]
|
||||
wire [4:0] swerv_io_trace_rv_i_ecause_ip; // @[el2_swerv_wrapper.scala 347:21]
|
||||
wire [1:0] swerv_io_trace_rv_i_interrupt_ip; // @[el2_swerv_wrapper.scala 347:21]
|
||||
wire [31:0] swerv_io_trace_rv_i_tval_ip; // @[el2_swerv_wrapper.scala 347:21]
|
||||
wire swerv_io_dccm_clk_override; // @[el2_swerv_wrapper.scala 347:21]
|
||||
wire swerv_io_icm_clk_override; // @[el2_swerv_wrapper.scala 347:21]
|
||||
wire swerv_io_dec_tlu_core_ecc_disable; // @[el2_swerv_wrapper.scala 347:21]
|
||||
wire swerv_io_i_cpu_halt_req; // @[el2_swerv_wrapper.scala 347:21]
|
||||
wire swerv_io_i_cpu_run_req; // @[el2_swerv_wrapper.scala 347:21]
|
||||
wire swerv_io_o_cpu_halt_ack; // @[el2_swerv_wrapper.scala 347:21]
|
||||
wire swerv_io_o_cpu_halt_status; // @[el2_swerv_wrapper.scala 347:21]
|
||||
wire swerv_io_o_cpu_run_ack; // @[el2_swerv_wrapper.scala 347:21]
|
||||
wire swerv_io_o_debug_mode_status; // @[el2_swerv_wrapper.scala 347:21]
|
||||
wire [27:0] swerv_io_core_id; // @[el2_swerv_wrapper.scala 347:21]
|
||||
wire swerv_io_mpc_debug_halt_req; // @[el2_swerv_wrapper.scala 347:21]
|
||||
wire swerv_io_mpc_debug_run_req; // @[el2_swerv_wrapper.scala 347:21]
|
||||
wire swerv_io_mpc_reset_run_req; // @[el2_swerv_wrapper.scala 347:21]
|
||||
wire swerv_io_mpc_debug_halt_ack; // @[el2_swerv_wrapper.scala 347:21]
|
||||
wire swerv_io_mpc_debug_run_ack; // @[el2_swerv_wrapper.scala 347:21]
|
||||
wire swerv_io_debug_brkpt_status; // @[el2_swerv_wrapper.scala 347:21]
|
||||
wire swerv_io_dec_tlu_perfcnt0; // @[el2_swerv_wrapper.scala 347:21]
|
||||
wire swerv_io_dec_tlu_perfcnt1; // @[el2_swerv_wrapper.scala 347:21]
|
||||
wire swerv_io_dec_tlu_perfcnt2; // @[el2_swerv_wrapper.scala 347:21]
|
||||
wire swerv_io_dec_tlu_perfcnt3; // @[el2_swerv_wrapper.scala 347:21]
|
||||
wire swerv_io_dccm_wren; // @[el2_swerv_wrapper.scala 347:21]
|
||||
wire swerv_io_dccm_rden; // @[el2_swerv_wrapper.scala 347:21]
|
||||
wire [15:0] swerv_io_dccm_wr_addr_lo; // @[el2_swerv_wrapper.scala 347:21]
|
||||
wire [15:0] swerv_io_dccm_wr_addr_hi; // @[el2_swerv_wrapper.scala 347:21]
|
||||
wire [15:0] swerv_io_dccm_rd_addr_lo; // @[el2_swerv_wrapper.scala 347:21]
|
||||
wire [15:0] swerv_io_dccm_rd_addr_hi; // @[el2_swerv_wrapper.scala 347:21]
|
||||
wire [38:0] swerv_io_dccm_wr_data_lo; // @[el2_swerv_wrapper.scala 347:21]
|
||||
wire [38:0] swerv_io_dccm_wr_data_hi; // @[el2_swerv_wrapper.scala 347:21]
|
||||
wire [38:0] swerv_io_dccm_rd_data_lo; // @[el2_swerv_wrapper.scala 347:21]
|
||||
wire [38:0] swerv_io_dccm_rd_data_hi; // @[el2_swerv_wrapper.scala 347:21]
|
||||
wire [14:0] swerv_io_iccm_rw_addr; // @[el2_swerv_wrapper.scala 347:21]
|
||||
wire swerv_io_iccm_wren; // @[el2_swerv_wrapper.scala 347:21]
|
||||
wire swerv_io_iccm_rden; // @[el2_swerv_wrapper.scala 347:21]
|
||||
wire [2:0] swerv_io_iccm_wr_size; // @[el2_swerv_wrapper.scala 347:21]
|
||||
wire [77:0] swerv_io_iccm_wr_data; // @[el2_swerv_wrapper.scala 347:21]
|
||||
wire swerv_io_iccm_buf_correct_ecc; // @[el2_swerv_wrapper.scala 347:21]
|
||||
wire swerv_io_iccm_correction_state; // @[el2_swerv_wrapper.scala 347:21]
|
||||
wire [63:0] swerv_io_iccm_rd_data; // @[el2_swerv_wrapper.scala 347:21]
|
||||
wire [77:0] swerv_io_iccm_rd_data_ecc; // @[el2_swerv_wrapper.scala 347:21]
|
||||
wire [30:0] swerv_io_ic_rw_addr; // @[el2_swerv_wrapper.scala 347:21]
|
||||
wire [1:0] swerv_io_ic_tag_valid; // @[el2_swerv_wrapper.scala 347:21]
|
||||
wire [1:0] swerv_io_ic_wr_en; // @[el2_swerv_wrapper.scala 347:21]
|
||||
wire swerv_io_ic_rd_en; // @[el2_swerv_wrapper.scala 347:21]
|
||||
wire [70:0] swerv_io_ic_wr_data_0; // @[el2_swerv_wrapper.scala 347:21]
|
||||
wire [70:0] swerv_io_ic_wr_data_1; // @[el2_swerv_wrapper.scala 347:21]
|
||||
wire [63:0] swerv_io_ic_rd_data; // @[el2_swerv_wrapper.scala 347:21]
|
||||
wire [70:0] swerv_io_ic_debug_rd_data; // @[el2_swerv_wrapper.scala 347:21]
|
||||
wire [25:0] swerv_io_ictag_debug_rd_data; // @[el2_swerv_wrapper.scala 347:21]
|
||||
wire [70:0] swerv_io_ic_debug_wr_data; // @[el2_swerv_wrapper.scala 347:21]
|
||||
wire [1:0] swerv_io_ic_eccerr; // @[el2_swerv_wrapper.scala 347:21]
|
||||
wire [63:0] swerv_io_ic_premux_data; // @[el2_swerv_wrapper.scala 347:21]
|
||||
wire swerv_io_ic_sel_premux_data; // @[el2_swerv_wrapper.scala 347:21]
|
||||
wire [9:0] swerv_io_ic_debug_addr; // @[el2_swerv_wrapper.scala 347:21]
|
||||
wire swerv_io_ic_debug_rd_en; // @[el2_swerv_wrapper.scala 347:21]
|
||||
wire swerv_io_ic_debug_wr_en; // @[el2_swerv_wrapper.scala 347:21]
|
||||
wire swerv_io_ic_debug_tag_array; // @[el2_swerv_wrapper.scala 347:21]
|
||||
wire [1:0] swerv_io_ic_debug_way; // @[el2_swerv_wrapper.scala 347:21]
|
||||
wire [1:0] swerv_io_ic_rd_hit; // @[el2_swerv_wrapper.scala 347:21]
|
||||
wire swerv_io_ic_tag_perr; // @[el2_swerv_wrapper.scala 347:21]
|
||||
wire swerv_io_lsu_axi_awvalid; // @[el2_swerv_wrapper.scala 347:21]
|
||||
wire swerv_io_lsu_axi_awready; // @[el2_swerv_wrapper.scala 347:21]
|
||||
wire [2:0] swerv_io_lsu_axi_awid; // @[el2_swerv_wrapper.scala 347:21]
|
||||
wire [31:0] swerv_io_lsu_axi_awaddr; // @[el2_swerv_wrapper.scala 347:21]
|
||||
wire [3:0] swerv_io_lsu_axi_awregion; // @[el2_swerv_wrapper.scala 347:21]
|
||||
wire [2:0] swerv_io_lsu_axi_awsize; // @[el2_swerv_wrapper.scala 347:21]
|
||||
wire [3:0] swerv_io_lsu_axi_awcache; // @[el2_swerv_wrapper.scala 347:21]
|
||||
wire swerv_io_lsu_axi_wvalid; // @[el2_swerv_wrapper.scala 347:21]
|
||||
wire swerv_io_lsu_axi_wready; // @[el2_swerv_wrapper.scala 347:21]
|
||||
wire [63:0] swerv_io_lsu_axi_wdata; // @[el2_swerv_wrapper.scala 347:21]
|
||||
wire [7:0] swerv_io_lsu_axi_wstrb; // @[el2_swerv_wrapper.scala 347:21]
|
||||
wire swerv_io_lsu_axi_bvalid; // @[el2_swerv_wrapper.scala 347:21]
|
||||
wire [1:0] swerv_io_lsu_axi_bresp; // @[el2_swerv_wrapper.scala 347:21]
|
||||
wire [2:0] swerv_io_lsu_axi_bid; // @[el2_swerv_wrapper.scala 347:21]
|
||||
wire swerv_io_lsu_axi_arvalid; // @[el2_swerv_wrapper.scala 347:21]
|
||||
wire swerv_io_lsu_axi_arready; // @[el2_swerv_wrapper.scala 347:21]
|
||||
wire [2:0] swerv_io_lsu_axi_arid; // @[el2_swerv_wrapper.scala 347:21]
|
||||
wire [31:0] swerv_io_lsu_axi_araddr; // @[el2_swerv_wrapper.scala 347:21]
|
||||
wire [3:0] swerv_io_lsu_axi_arregion; // @[el2_swerv_wrapper.scala 347:21]
|
||||
wire [2:0] swerv_io_lsu_axi_arsize; // @[el2_swerv_wrapper.scala 347:21]
|
||||
wire [3:0] swerv_io_lsu_axi_arcache; // @[el2_swerv_wrapper.scala 347:21]
|
||||
wire swerv_io_lsu_axi_rvalid; // @[el2_swerv_wrapper.scala 347:21]
|
||||
wire [2:0] swerv_io_lsu_axi_rid; // @[el2_swerv_wrapper.scala 347:21]
|
||||
wire [63:0] swerv_io_lsu_axi_rdata; // @[el2_swerv_wrapper.scala 347:21]
|
||||
wire swerv_io_ifu_axi_arvalid; // @[el2_swerv_wrapper.scala 347:21]
|
||||
wire swerv_io_ifu_axi_arready; // @[el2_swerv_wrapper.scala 347:21]
|
||||
wire [2:0] swerv_io_ifu_axi_arid; // @[el2_swerv_wrapper.scala 347:21]
|
||||
wire [31:0] swerv_io_ifu_axi_araddr; // @[el2_swerv_wrapper.scala 347:21]
|
||||
wire [3:0] swerv_io_ifu_axi_arregion; // @[el2_swerv_wrapper.scala 347:21]
|
||||
wire swerv_io_ifu_axi_rvalid; // @[el2_swerv_wrapper.scala 347:21]
|
||||
wire [2:0] swerv_io_ifu_axi_rid; // @[el2_swerv_wrapper.scala 347:21]
|
||||
wire [63:0] swerv_io_ifu_axi_rdata; // @[el2_swerv_wrapper.scala 347:21]
|
||||
wire [1:0] swerv_io_ifu_axi_rresp; // @[el2_swerv_wrapper.scala 347:21]
|
||||
wire swerv_io_sb_axi_awvalid; // @[el2_swerv_wrapper.scala 347:21]
|
||||
wire swerv_io_sb_axi_awready; // @[el2_swerv_wrapper.scala 347:21]
|
||||
wire [31:0] swerv_io_sb_axi_awaddr; // @[el2_swerv_wrapper.scala 347:21]
|
||||
wire [3:0] swerv_io_sb_axi_awregion; // @[el2_swerv_wrapper.scala 347:21]
|
||||
wire [2:0] swerv_io_sb_axi_awsize; // @[el2_swerv_wrapper.scala 347:21]
|
||||
wire swerv_io_sb_axi_wvalid; // @[el2_swerv_wrapper.scala 347:21]
|
||||
wire swerv_io_sb_axi_wready; // @[el2_swerv_wrapper.scala 347:21]
|
||||
wire [63:0] swerv_io_sb_axi_wdata; // @[el2_swerv_wrapper.scala 347:21]
|
||||
wire [7:0] swerv_io_sb_axi_wstrb; // @[el2_swerv_wrapper.scala 347:21]
|
||||
wire swerv_io_sb_axi_bvalid; // @[el2_swerv_wrapper.scala 347:21]
|
||||
wire [1:0] swerv_io_sb_axi_bresp; // @[el2_swerv_wrapper.scala 347:21]
|
||||
wire swerv_io_sb_axi_arvalid; // @[el2_swerv_wrapper.scala 347:21]
|
||||
wire swerv_io_sb_axi_arready; // @[el2_swerv_wrapper.scala 347:21]
|
||||
wire [31:0] swerv_io_sb_axi_araddr; // @[el2_swerv_wrapper.scala 347:21]
|
||||
wire [3:0] swerv_io_sb_axi_arregion; // @[el2_swerv_wrapper.scala 347:21]
|
||||
wire [2:0] swerv_io_sb_axi_arsize; // @[el2_swerv_wrapper.scala 347:21]
|
||||
wire swerv_io_sb_axi_rvalid; // @[el2_swerv_wrapper.scala 347:21]
|
||||
wire [63:0] swerv_io_sb_axi_rdata; // @[el2_swerv_wrapper.scala 347:21]
|
||||
wire [1:0] swerv_io_sb_axi_rresp; // @[el2_swerv_wrapper.scala 347:21]
|
||||
wire swerv_io_dma_axi_awvalid; // @[el2_swerv_wrapper.scala 347:21]
|
||||
wire swerv_io_dma_axi_awready; // @[el2_swerv_wrapper.scala 347:21]
|
||||
wire swerv_io_dma_axi_awid; // @[el2_swerv_wrapper.scala 347:21]
|
||||
wire [31:0] swerv_io_dma_axi_awaddr; // @[el2_swerv_wrapper.scala 347:21]
|
||||
wire [2:0] swerv_io_dma_axi_awsize; // @[el2_swerv_wrapper.scala 347:21]
|
||||
wire swerv_io_dma_axi_wvalid; // @[el2_swerv_wrapper.scala 347:21]
|
||||
wire swerv_io_dma_axi_wready; // @[el2_swerv_wrapper.scala 347:21]
|
||||
wire [63:0] swerv_io_dma_axi_wdata; // @[el2_swerv_wrapper.scala 347:21]
|
||||
wire [7:0] swerv_io_dma_axi_wstrb; // @[el2_swerv_wrapper.scala 347:21]
|
||||
wire swerv_io_dma_axi_bvalid; // @[el2_swerv_wrapper.scala 347:21]
|
||||
wire swerv_io_dma_axi_bready; // @[el2_swerv_wrapper.scala 347:21]
|
||||
wire [1:0] swerv_io_dma_axi_bresp; // @[el2_swerv_wrapper.scala 347:21]
|
||||
wire swerv_io_dma_axi_bid; // @[el2_swerv_wrapper.scala 347:21]
|
||||
wire swerv_io_dma_axi_arvalid; // @[el2_swerv_wrapper.scala 347:21]
|
||||
wire swerv_io_dma_axi_arready; // @[el2_swerv_wrapper.scala 347:21]
|
||||
wire swerv_io_dma_axi_arid; // @[el2_swerv_wrapper.scala 347:21]
|
||||
wire [31:0] swerv_io_dma_axi_araddr; // @[el2_swerv_wrapper.scala 347:21]
|
||||
wire [2:0] swerv_io_dma_axi_arsize; // @[el2_swerv_wrapper.scala 347:21]
|
||||
wire swerv_io_dma_axi_rvalid; // @[el2_swerv_wrapper.scala 347:21]
|
||||
wire swerv_io_dma_axi_rready; // @[el2_swerv_wrapper.scala 347:21]
|
||||
wire swerv_io_dma_axi_rid; // @[el2_swerv_wrapper.scala 347:21]
|
||||
wire [63:0] swerv_io_dma_axi_rdata; // @[el2_swerv_wrapper.scala 347:21]
|
||||
wire [1:0] swerv_io_dma_axi_rresp; // @[el2_swerv_wrapper.scala 347:21]
|
||||
wire swerv_io_lsu_bus_clk_en; // @[el2_swerv_wrapper.scala 347:21]
|
||||
wire swerv_io_ifu_bus_clk_en; // @[el2_swerv_wrapper.scala 347:21]
|
||||
wire swerv_io_dbg_bus_clk_en; // @[el2_swerv_wrapper.scala 347:21]
|
||||
wire swerv_io_dma_bus_clk_en; // @[el2_swerv_wrapper.scala 347:21]
|
||||
wire swerv_io_dmi_reg_en; // @[el2_swerv_wrapper.scala 347:21]
|
||||
wire [6:0] swerv_io_dmi_reg_addr; // @[el2_swerv_wrapper.scala 347:21]
|
||||
wire swerv_io_dmi_reg_wr_en; // @[el2_swerv_wrapper.scala 347:21]
|
||||
wire [31:0] swerv_io_dmi_reg_wdata; // @[el2_swerv_wrapper.scala 347:21]
|
||||
wire [30:0] swerv_io_extintsrc_req; // @[el2_swerv_wrapper.scala 347:21]
|
||||
wire swerv_io_timer_int; // @[el2_swerv_wrapper.scala 347:21]
|
||||
wire swerv_io_soft_int; // @[el2_swerv_wrapper.scala 347:21]
|
||||
wire swerv_io_scan_mode; // @[el2_swerv_wrapper.scala 347:21]
|
||||
el2_mem #(.ICACHE_BEAT_BITS(3), .ICCM_BITS(16), .ICACHE_BANKS_WAY(2), .ICACHE_NUM_WAYS(2), .DCCM_BYTE_WIDTH(4), .ICCM_BANK_INDEX_LO(4), .ICACHE_BANK_BITS(1), .DCCM_BITS(16), .ICACHE_BEAT_ADDR_HI(5), .ICCM_INDEX_BITS(12), .ICCM_BANK_HI(3), .ICACHE_INDEX_HI(12), .DCCM_NUM_BANKS(4), .ICACHE_BANK_LO(3), .DCCM_ENABLE(1), .ICACHE_TAG_LO(13), .ICACHE_DATA_INDEX_LO(4), .ICCM_NUM_BANKS(4), .ICACHE_ECC(1), .ICACHE_ENABLE(1), .DCCM_BANK_BITS(2), .ICCM_ENABLE(1), .ICCM_BANK_BITS(2), .ICACHE_TAG_DEPTH(128), .ICACHE_WAYPACK(0), .DCCM_SIZE(64), .ICACHE_BANK_HI(3), .DCCM_FDATA_WIDTH(39), .ICACHE_TAG_INDEX_LO(6), .ICACHE_DATA_DEPTH(512)) mem ( // @[el2_swerv_wrapper.scala 345:19]
|
||||
.clk(mem_clk),
|
||||
.rst_l(mem_rst_l),
|
||||
.dccm_clk_override(mem_dccm_clk_override),
|
||||
|
@ -82849,7 +82849,7 @@ module el2_swerv_wrapper(
|
|||
.ic_debug_rd_data(mem_ic_debug_rd_data),
|
||||
.iccm_rd_data(mem_iccm_rd_data)
|
||||
);
|
||||
dmi_wrapper dmi_wrapper ( // @[SweRV_Wrapper.scala 346:27]
|
||||
dmi_wrapper dmi_wrapper ( // @[el2_swerv_wrapper.scala 346:27]
|
||||
.trst_n(dmi_wrapper_trst_n),
|
||||
.tck(dmi_wrapper_tck),
|
||||
.tms(dmi_wrapper_tms),
|
||||
|
@ -82866,7 +82866,7 @@ module el2_swerv_wrapper(
|
|||
.reg_wr_en(dmi_wrapper_reg_wr_en),
|
||||
.dmi_hard_reset(dmi_wrapper_dmi_hard_reset)
|
||||
);
|
||||
el2_swerv swerv ( // @[SweRV_Wrapper.scala 347:21]
|
||||
el2_swerv swerv ( // @[el2_swerv_wrapper.scala 347:21]
|
||||
.clock(swerv_clock),
|
||||
.reset(swerv_reset),
|
||||
.io_dbg_rst_l(swerv_io_dbg_rst_l),
|
||||
|
@ -83028,233 +83028,233 @@ module el2_swerv_wrapper(
|
|||
.io_soft_int(swerv_io_soft_int),
|
||||
.io_scan_mode(swerv_io_scan_mode)
|
||||
);
|
||||
assign io_trace_rv_i_insn_ip = swerv_io_trace_rv_i_insn_ip; // @[SweRV_Wrapper.scala 558:25]
|
||||
assign io_trace_rv_i_address_ip = swerv_io_trace_rv_i_address_ip; // @[SweRV_Wrapper.scala 559:28]
|
||||
assign io_trace_rv_i_valid_ip = swerv_io_trace_rv_i_valid_ip; // @[SweRV_Wrapper.scala 560:26]
|
||||
assign io_trace_rv_i_exception_ip = swerv_io_trace_rv_i_exception_ip; // @[SweRV_Wrapper.scala 561:30]
|
||||
assign io_trace_rv_i_ecause_ip = swerv_io_trace_rv_i_ecause_ip; // @[SweRV_Wrapper.scala 562:27]
|
||||
assign io_trace_rv_i_interrupt_ip = swerv_io_trace_rv_i_interrupt_ip; // @[SweRV_Wrapper.scala 563:30]
|
||||
assign io_trace_rv_i_tval_ip = swerv_io_trace_rv_i_tval_ip; // @[SweRV_Wrapper.scala 564:25]
|
||||
assign io_lsu_axi_awvalid = swerv_io_lsu_axi_awvalid; // @[SweRV_Wrapper.scala 584:22]
|
||||
assign io_lsu_axi_awid = swerv_io_lsu_axi_awid; // @[SweRV_Wrapper.scala 585:19]
|
||||
assign io_lsu_axi_awaddr = swerv_io_lsu_axi_awaddr; // @[SweRV_Wrapper.scala 586:21]
|
||||
assign io_lsu_axi_awregion = swerv_io_lsu_axi_awregion; // @[SweRV_Wrapper.scala 587:23]
|
||||
assign io_lsu_axi_awlen = 8'h0; // @[SweRV_Wrapper.scala 588:20]
|
||||
assign io_lsu_axi_awsize = swerv_io_lsu_axi_awsize; // @[SweRV_Wrapper.scala 589:21]
|
||||
assign io_lsu_axi_awburst = 2'h1; // @[SweRV_Wrapper.scala 590:22]
|
||||
assign io_lsu_axi_awlock = 1'h0; // @[SweRV_Wrapper.scala 591:21]
|
||||
assign io_lsu_axi_awcache = swerv_io_lsu_axi_awcache; // @[SweRV_Wrapper.scala 592:22]
|
||||
assign io_lsu_axi_awprot = 3'h0; // @[SweRV_Wrapper.scala 593:21]
|
||||
assign io_lsu_axi_awqos = 4'h0; // @[SweRV_Wrapper.scala 594:20]
|
||||
assign io_lsu_axi_wvalid = swerv_io_lsu_axi_wvalid; // @[SweRV_Wrapper.scala 596:21]
|
||||
assign io_lsu_axi_wdata = swerv_io_lsu_axi_wdata; // @[SweRV_Wrapper.scala 597:20]
|
||||
assign io_lsu_axi_wstrb = swerv_io_lsu_axi_wstrb; // @[SweRV_Wrapper.scala 598:20]
|
||||
assign io_lsu_axi_wlast = 1'h1; // @[SweRV_Wrapper.scala 599:20]
|
||||
assign io_lsu_axi_bready = 1'h1; // @[SweRV_Wrapper.scala 600:21]
|
||||
assign io_lsu_axi_arvalid = swerv_io_lsu_axi_arvalid; // @[SweRV_Wrapper.scala 603:22]
|
||||
assign io_lsu_axi_arid = swerv_io_lsu_axi_arid; // @[SweRV_Wrapper.scala 604:19]
|
||||
assign io_lsu_axi_araddr = swerv_io_lsu_axi_araddr; // @[SweRV_Wrapper.scala 605:21]
|
||||
assign io_lsu_axi_arregion = swerv_io_lsu_axi_arregion; // @[SweRV_Wrapper.scala 606:23]
|
||||
assign io_lsu_axi_arlen = 8'h0; // @[SweRV_Wrapper.scala 607:20]
|
||||
assign io_lsu_axi_arsize = swerv_io_lsu_axi_arsize; // @[SweRV_Wrapper.scala 608:21]
|
||||
assign io_lsu_axi_arburst = 2'h1; // @[SweRV_Wrapper.scala 609:22]
|
||||
assign io_lsu_axi_arlock = 1'h0; // @[SweRV_Wrapper.scala 610:21]
|
||||
assign io_lsu_axi_arcache = swerv_io_lsu_axi_arcache; // @[SweRV_Wrapper.scala 611:22]
|
||||
assign io_lsu_axi_arprot = 3'h0; // @[SweRV_Wrapper.scala 612:21]
|
||||
assign io_lsu_axi_arqos = 4'h0; // @[SweRV_Wrapper.scala 613:20]
|
||||
assign io_lsu_axi_rready = 1'h1; // @[SweRV_Wrapper.scala 614:21]
|
||||
assign io_ifu_axi_awvalid = 1'h0; // @[SweRV_Wrapper.scala 616:22]
|
||||
assign io_ifu_axi_awid = 3'h0; // @[SweRV_Wrapper.scala 617:19]
|
||||
assign io_ifu_axi_awaddr = 32'h0; // @[SweRV_Wrapper.scala 618:21]
|
||||
assign io_ifu_axi_awregion = 4'h0; // @[SweRV_Wrapper.scala 619:23]
|
||||
assign io_ifu_axi_awlen = 8'h0; // @[SweRV_Wrapper.scala 620:20]
|
||||
assign io_ifu_axi_awsize = 3'h0; // @[SweRV_Wrapper.scala 621:21]
|
||||
assign io_ifu_axi_awburst = 2'h0; // @[SweRV_Wrapper.scala 622:22]
|
||||
assign io_ifu_axi_awlock = 1'h0; // @[SweRV_Wrapper.scala 623:21]
|
||||
assign io_ifu_axi_awcache = 4'h0; // @[SweRV_Wrapper.scala 624:22]
|
||||
assign io_ifu_axi_awprot = 3'h0; // @[SweRV_Wrapper.scala 625:21]
|
||||
assign io_ifu_axi_awqos = 4'h0; // @[SweRV_Wrapper.scala 626:20]
|
||||
assign io_ifu_axi_wvalid = 1'h0; // @[SweRV_Wrapper.scala 627:21]
|
||||
assign io_ifu_axi_wdata = 64'h0; // @[SweRV_Wrapper.scala 628:20]
|
||||
assign io_ifu_axi_wstrb = 8'h0; // @[SweRV_Wrapper.scala 629:20]
|
||||
assign io_ifu_axi_wlast = 1'h0; // @[SweRV_Wrapper.scala 630:20]
|
||||
assign io_ifu_axi_bready = 1'h0; // @[SweRV_Wrapper.scala 632:21]
|
||||
assign io_ifu_axi_arvalid = swerv_io_ifu_axi_arvalid; // @[SweRV_Wrapper.scala 635:22]
|
||||
assign io_ifu_axi_arid = swerv_io_ifu_axi_arid; // @[SweRV_Wrapper.scala 636:19]
|
||||
assign io_ifu_axi_araddr = swerv_io_ifu_axi_araddr; // @[SweRV_Wrapper.scala 637:21]
|
||||
assign io_ifu_axi_arregion = swerv_io_ifu_axi_arregion; // @[SweRV_Wrapper.scala 638:23]
|
||||
assign io_ifu_axi_arlen = 8'h0; // @[SweRV_Wrapper.scala 639:20]
|
||||
assign io_ifu_axi_arsize = 3'h3; // @[SweRV_Wrapper.scala 640:21]
|
||||
assign io_ifu_axi_arburst = 2'h1; // @[SweRV_Wrapper.scala 641:22]
|
||||
assign io_ifu_axi_arlock = 1'h0; // @[SweRV_Wrapper.scala 642:21]
|
||||
assign io_ifu_axi_arcache = 4'hf; // @[SweRV_Wrapper.scala 643:22]
|
||||
assign io_ifu_axi_arprot = 3'h0; // @[SweRV_Wrapper.scala 644:21]
|
||||
assign io_ifu_axi_arqos = 4'h0; // @[SweRV_Wrapper.scala 645:20]
|
||||
assign io_ifu_axi_rready = 1'h1; // @[SweRV_Wrapper.scala 646:21]
|
||||
assign io_sb_axi_awvalid = swerv_io_sb_axi_awvalid; // @[SweRV_Wrapper.scala 649:21]
|
||||
assign io_sb_axi_awid = 1'h0; // @[SweRV_Wrapper.scala 650:18]
|
||||
assign io_sb_axi_awaddr = swerv_io_sb_axi_awaddr; // @[SweRV_Wrapper.scala 651:20]
|
||||
assign io_sb_axi_awregion = swerv_io_sb_axi_awregion; // @[SweRV_Wrapper.scala 652:22]
|
||||
assign io_sb_axi_awlen = 8'h0; // @[SweRV_Wrapper.scala 653:19]
|
||||
assign io_sb_axi_awsize = swerv_io_sb_axi_awsize; // @[SweRV_Wrapper.scala 654:20]
|
||||
assign io_sb_axi_awburst = 2'h1; // @[SweRV_Wrapper.scala 655:21]
|
||||
assign io_sb_axi_awlock = 1'h0; // @[SweRV_Wrapper.scala 656:20]
|
||||
assign io_sb_axi_awcache = 4'hf; // @[SweRV_Wrapper.scala 657:21]
|
||||
assign io_sb_axi_awprot = 3'h0; // @[SweRV_Wrapper.scala 658:20]
|
||||
assign io_sb_axi_awqos = 4'h0; // @[SweRV_Wrapper.scala 659:19]
|
||||
assign io_sb_axi_wvalid = swerv_io_sb_axi_wvalid; // @[SweRV_Wrapper.scala 661:19]
|
||||
assign io_sb_axi_wdata = swerv_io_sb_axi_wdata; // @[SweRV_Wrapper.scala 662:19]
|
||||
assign io_sb_axi_wstrb = swerv_io_sb_axi_wstrb; // @[SweRV_Wrapper.scala 663:19]
|
||||
assign io_sb_axi_wlast = 1'h1; // @[SweRV_Wrapper.scala 664:19]
|
||||
assign io_sb_axi_bready = 1'h1; // @[SweRV_Wrapper.scala 665:20]
|
||||
assign io_sb_axi_arvalid = swerv_io_sb_axi_arvalid; // @[SweRV_Wrapper.scala 668:21]
|
||||
assign io_sb_axi_arid = 1'h0; // @[SweRV_Wrapper.scala 669:18]
|
||||
assign io_sb_axi_araddr = swerv_io_sb_axi_araddr; // @[SweRV_Wrapper.scala 670:20]
|
||||
assign io_sb_axi_arregion = swerv_io_sb_axi_arregion; // @[SweRV_Wrapper.scala 671:22]
|
||||
assign io_sb_axi_arlen = 8'h0; // @[SweRV_Wrapper.scala 672:19]
|
||||
assign io_sb_axi_arsize = swerv_io_sb_axi_arsize; // @[SweRV_Wrapper.scala 673:20]
|
||||
assign io_sb_axi_arburst = 2'h1; // @[SweRV_Wrapper.scala 674:21]
|
||||
assign io_sb_axi_arlock = 1'h0; // @[SweRV_Wrapper.scala 675:20]
|
||||
assign io_sb_axi_arcache = 4'h0; // @[SweRV_Wrapper.scala 676:21]
|
||||
assign io_sb_axi_arprot = 3'h0; // @[SweRV_Wrapper.scala 677:20]
|
||||
assign io_sb_axi_arqos = 4'h0; // @[SweRV_Wrapper.scala 678:19]
|
||||
assign io_sb_axi_rready = 1'h1; // @[SweRV_Wrapper.scala 679:20]
|
||||
assign io_dma_axi_awready = swerv_io_dma_axi_awready; // @[SweRV_Wrapper.scala 682:22]
|
||||
assign io_dma_axi_wready = swerv_io_dma_axi_wready; // @[SweRV_Wrapper.scala 683:21]
|
||||
assign io_dma_axi_bvalid = swerv_io_dma_axi_bvalid; // @[SweRV_Wrapper.scala 685:21]
|
||||
assign io_dma_axi_bresp = swerv_io_dma_axi_bresp; // @[SweRV_Wrapper.scala 686:20]
|
||||
assign io_dma_axi_bid = swerv_io_dma_axi_bid; // @[SweRV_Wrapper.scala 687:18]
|
||||
assign io_dma_axi_arready = swerv_io_dma_axi_arready; // @[SweRV_Wrapper.scala 690:22]
|
||||
assign io_dma_axi_rvalid = swerv_io_dma_axi_rvalid; // @[SweRV_Wrapper.scala 691:21]
|
||||
assign io_dma_axi_rid = swerv_io_dma_axi_rid; // @[SweRV_Wrapper.scala 692:18]
|
||||
assign io_dma_axi_rdata = swerv_io_dma_axi_rdata; // @[SweRV_Wrapper.scala 693:20]
|
||||
assign io_dma_axi_rresp = swerv_io_dma_axi_rresp; // @[SweRV_Wrapper.scala 694:20]
|
||||
assign io_dma_axi_rlast = 1'h1; // @[SweRV_Wrapper.scala 695:20]
|
||||
assign io_dma_hrdata = 64'h0; // @[SweRV_Wrapper.scala 698:17]
|
||||
assign io_dma_hreadyout = 1'h0; // @[SweRV_Wrapper.scala 699:20]
|
||||
assign io_dma_hresp = 1'h0; // @[SweRV_Wrapper.scala 700:16]
|
||||
assign io_dec_tlu_perfcnt0 = swerv_io_dec_tlu_perfcnt0; // @[SweRV_Wrapper.scala 576:23]
|
||||
assign io_dec_tlu_perfcnt1 = swerv_io_dec_tlu_perfcnt1; // @[SweRV_Wrapper.scala 577:23]
|
||||
assign io_dec_tlu_perfcnt2 = swerv_io_dec_tlu_perfcnt2; // @[SweRV_Wrapper.scala 578:23]
|
||||
assign io_dec_tlu_perfcnt3 = swerv_io_dec_tlu_perfcnt3; // @[SweRV_Wrapper.scala 579:23]
|
||||
assign io_jtag_tdo = dmi_wrapper_tdo; // @[SweRV_Wrapper.scala 363:15]
|
||||
assign io_mpc_debug_halt_ack = swerv_io_mpc_debug_halt_ack; // @[SweRV_Wrapper.scala 572:25]
|
||||
assign io_mpc_debug_run_ack = swerv_io_mpc_debug_run_ack; // @[SweRV_Wrapper.scala 573:24]
|
||||
assign io_debug_brkpt_status = swerv_io_debug_brkpt_status; // @[SweRV_Wrapper.scala 574:25]
|
||||
assign io_o_cpu_halt_ack = swerv_io_o_cpu_halt_ack; // @[SweRV_Wrapper.scala 567:21]
|
||||
assign io_o_cpu_halt_status = swerv_io_o_cpu_halt_status; // @[SweRV_Wrapper.scala 568:24]
|
||||
assign io_o_debug_mode_status = swerv_io_o_debug_mode_status; // @[SweRV_Wrapper.scala 570:26]
|
||||
assign io_o_cpu_run_ack = swerv_io_o_cpu_run_ack; // @[SweRV_Wrapper.scala 569:20]
|
||||
assign mem_clk = clock; // @[SweRV_Wrapper.scala 403:14]
|
||||
assign mem_rst_l = reset; // @[SweRV_Wrapper.scala 402:16]
|
||||
assign mem_dccm_clk_override = swerv_io_dccm_clk_override; // @[SweRV_Wrapper.scala 366:28]
|
||||
assign mem_icm_clk_override = swerv_io_icm_clk_override; // @[SweRV_Wrapper.scala 367:27]
|
||||
assign mem_dec_tlu_core_ecc_disable = swerv_io_dec_tlu_core_ecc_disable; // @[SweRV_Wrapper.scala 368:35]
|
||||
assign mem_dccm_wren = swerv_io_dccm_wren; // @[SweRV_Wrapper.scala 369:20]
|
||||
assign mem_dccm_rden = swerv_io_dccm_rden; // @[SweRV_Wrapper.scala 370:20]
|
||||
assign mem_dccm_wr_addr_lo = swerv_io_dccm_wr_addr_lo; // @[SweRV_Wrapper.scala 371:26]
|
||||
assign mem_dccm_wr_addr_hi = swerv_io_dccm_wr_addr_hi; // @[SweRV_Wrapper.scala 372:26]
|
||||
assign mem_dccm_rd_addr_lo = swerv_io_dccm_rd_addr_lo; // @[SweRV_Wrapper.scala 373:26]
|
||||
assign mem_dccm_rd_addr_hi = swerv_io_dccm_rd_addr_hi; // @[SweRV_Wrapper.scala 378:26]
|
||||
assign mem_dccm_wr_data_lo = swerv_io_dccm_wr_data_lo; // @[SweRV_Wrapper.scala 375:26]
|
||||
assign mem_dccm_wr_data_hi = swerv_io_dccm_wr_data_hi; // @[SweRV_Wrapper.scala 376:26]
|
||||
assign mem_iccm_rw_addr = swerv_io_iccm_rw_addr; // @[SweRV_Wrapper.scala 379:23]
|
||||
assign mem_iccm_buf_correct_ecc = swerv_io_iccm_buf_correct_ecc; // @[SweRV_Wrapper.scala 380:31]
|
||||
assign mem_iccm_correction_state = swerv_io_iccm_correction_state; // @[SweRV_Wrapper.scala 381:32]
|
||||
assign mem_iccm_wren = swerv_io_iccm_wren; // @[SweRV_Wrapper.scala 382:20]
|
||||
assign mem_iccm_rden = swerv_io_iccm_rden; // @[SweRV_Wrapper.scala 383:20]
|
||||
assign mem_iccm_wr_size = swerv_io_iccm_wr_size; // @[SweRV_Wrapper.scala 384:23]
|
||||
assign mem_iccm_wr_data = swerv_io_iccm_wr_data; // @[SweRV_Wrapper.scala 385:23]
|
||||
assign mem_ic_rw_addr = swerv_io_ic_rw_addr; // @[SweRV_Wrapper.scala 388:21]
|
||||
assign mem_ic_tag_valid = swerv_io_ic_tag_valid; // @[SweRV_Wrapper.scala 389:23]
|
||||
assign mem_ic_wr_en = swerv_io_ic_wr_en; // @[SweRV_Wrapper.scala 390:19]
|
||||
assign mem_ic_rd_en = swerv_io_ic_rd_en; // @[SweRV_Wrapper.scala 391:19]
|
||||
assign mem_ic_premux_data = swerv_io_ic_premux_data; // @[SweRV_Wrapper.scala 392:25]
|
||||
assign mem_ic_sel_premux_data = swerv_io_ic_sel_premux_data; // @[SweRV_Wrapper.scala 393:29]
|
||||
assign mem_ic_wr_data_0 = swerv_io_ic_wr_data_0; // @[SweRV_Wrapper.scala 394:21]
|
||||
assign mem_ic_wr_data_1 = swerv_io_ic_wr_data_1; // @[SweRV_Wrapper.scala 394:21]
|
||||
assign mem_ic_debug_wr_data = swerv_io_ic_debug_wr_data; // @[SweRV_Wrapper.scala 395:27]
|
||||
assign mem_ic_debug_addr = swerv_io_ic_debug_addr; // @[SweRV_Wrapper.scala 397:24]
|
||||
assign mem_ic_debug_rd_en = swerv_io_ic_debug_rd_en; // @[SweRV_Wrapper.scala 398:25]
|
||||
assign mem_ic_debug_wr_en = swerv_io_ic_debug_wr_en; // @[SweRV_Wrapper.scala 399:25]
|
||||
assign mem_ic_debug_tag_array = swerv_io_ic_debug_tag_array; // @[SweRV_Wrapper.scala 400:29]
|
||||
assign mem_ic_debug_way = swerv_io_ic_debug_way; // @[SweRV_Wrapper.scala 401:23]
|
||||
assign mem_scan_mode = io_scan_mode; // @[SweRV_Wrapper.scala 404:20]
|
||||
assign dmi_wrapper_trst_n = io_jtag_trst_n; // @[SweRV_Wrapper.scala 348:25]
|
||||
assign dmi_wrapper_tck = io_jtag_tck; // @[SweRV_Wrapper.scala 349:22]
|
||||
assign dmi_wrapper_tms = io_jtag_tms; // @[SweRV_Wrapper.scala 350:22]
|
||||
assign dmi_wrapper_tdi = io_jtag_tdi; // @[SweRV_Wrapper.scala 351:22]
|
||||
assign dmi_wrapper_core_rst_n = io_dbg_rst_l; // @[SweRV_Wrapper.scala 357:29]
|
||||
assign dmi_wrapper_core_clk = clock; // @[SweRV_Wrapper.scala 352:27]
|
||||
assign dmi_wrapper_jtag_id = io_jtag_id; // @[SweRV_Wrapper.scala 353:26]
|
||||
assign dmi_wrapper_rd_data = 32'h0; // @[SweRV_Wrapper.scala 354:26]
|
||||
assign io_trace_rv_i_insn_ip = swerv_io_trace_rv_i_insn_ip; // @[el2_swerv_wrapper.scala 558:25]
|
||||
assign io_trace_rv_i_address_ip = swerv_io_trace_rv_i_address_ip; // @[el2_swerv_wrapper.scala 559:28]
|
||||
assign io_trace_rv_i_valid_ip = swerv_io_trace_rv_i_valid_ip; // @[el2_swerv_wrapper.scala 560:26]
|
||||
assign io_trace_rv_i_exception_ip = swerv_io_trace_rv_i_exception_ip; // @[el2_swerv_wrapper.scala 561:30]
|
||||
assign io_trace_rv_i_ecause_ip = swerv_io_trace_rv_i_ecause_ip; // @[el2_swerv_wrapper.scala 562:27]
|
||||
assign io_trace_rv_i_interrupt_ip = swerv_io_trace_rv_i_interrupt_ip; // @[el2_swerv_wrapper.scala 563:30]
|
||||
assign io_trace_rv_i_tval_ip = swerv_io_trace_rv_i_tval_ip; // @[el2_swerv_wrapper.scala 564:25]
|
||||
assign io_lsu_axi_awvalid = swerv_io_lsu_axi_awvalid; // @[el2_swerv_wrapper.scala 584:22]
|
||||
assign io_lsu_axi_awid = swerv_io_lsu_axi_awid; // @[el2_swerv_wrapper.scala 585:19]
|
||||
assign io_lsu_axi_awaddr = swerv_io_lsu_axi_awaddr; // @[el2_swerv_wrapper.scala 586:21]
|
||||
assign io_lsu_axi_awregion = swerv_io_lsu_axi_awregion; // @[el2_swerv_wrapper.scala 587:23]
|
||||
assign io_lsu_axi_awlen = 8'h0; // @[el2_swerv_wrapper.scala 588:20]
|
||||
assign io_lsu_axi_awsize = swerv_io_lsu_axi_awsize; // @[el2_swerv_wrapper.scala 589:21]
|
||||
assign io_lsu_axi_awburst = 2'h1; // @[el2_swerv_wrapper.scala 590:22]
|
||||
assign io_lsu_axi_awlock = 1'h0; // @[el2_swerv_wrapper.scala 591:21]
|
||||
assign io_lsu_axi_awcache = swerv_io_lsu_axi_awcache; // @[el2_swerv_wrapper.scala 592:22]
|
||||
assign io_lsu_axi_awprot = 3'h0; // @[el2_swerv_wrapper.scala 593:21]
|
||||
assign io_lsu_axi_awqos = 4'h0; // @[el2_swerv_wrapper.scala 594:20]
|
||||
assign io_lsu_axi_wvalid = swerv_io_lsu_axi_wvalid; // @[el2_swerv_wrapper.scala 596:21]
|
||||
assign io_lsu_axi_wdata = swerv_io_lsu_axi_wdata; // @[el2_swerv_wrapper.scala 597:20]
|
||||
assign io_lsu_axi_wstrb = swerv_io_lsu_axi_wstrb; // @[el2_swerv_wrapper.scala 598:20]
|
||||
assign io_lsu_axi_wlast = 1'h1; // @[el2_swerv_wrapper.scala 599:20]
|
||||
assign io_lsu_axi_bready = 1'h1; // @[el2_swerv_wrapper.scala 600:21]
|
||||
assign io_lsu_axi_arvalid = swerv_io_lsu_axi_arvalid; // @[el2_swerv_wrapper.scala 603:22]
|
||||
assign io_lsu_axi_arid = swerv_io_lsu_axi_arid; // @[el2_swerv_wrapper.scala 604:19]
|
||||
assign io_lsu_axi_araddr = swerv_io_lsu_axi_araddr; // @[el2_swerv_wrapper.scala 605:21]
|
||||
assign io_lsu_axi_arregion = swerv_io_lsu_axi_arregion; // @[el2_swerv_wrapper.scala 606:23]
|
||||
assign io_lsu_axi_arlen = 8'h0; // @[el2_swerv_wrapper.scala 607:20]
|
||||
assign io_lsu_axi_arsize = swerv_io_lsu_axi_arsize; // @[el2_swerv_wrapper.scala 608:21]
|
||||
assign io_lsu_axi_arburst = 2'h1; // @[el2_swerv_wrapper.scala 609:22]
|
||||
assign io_lsu_axi_arlock = 1'h0; // @[el2_swerv_wrapper.scala 610:21]
|
||||
assign io_lsu_axi_arcache = swerv_io_lsu_axi_arcache; // @[el2_swerv_wrapper.scala 611:22]
|
||||
assign io_lsu_axi_arprot = 3'h0; // @[el2_swerv_wrapper.scala 612:21]
|
||||
assign io_lsu_axi_arqos = 4'h0; // @[el2_swerv_wrapper.scala 613:20]
|
||||
assign io_lsu_axi_rready = 1'h1; // @[el2_swerv_wrapper.scala 614:21]
|
||||
assign io_ifu_axi_awvalid = 1'h0; // @[el2_swerv_wrapper.scala 616:22]
|
||||
assign io_ifu_axi_awid = 3'h0; // @[el2_swerv_wrapper.scala 617:19]
|
||||
assign io_ifu_axi_awaddr = 32'h0; // @[el2_swerv_wrapper.scala 618:21]
|
||||
assign io_ifu_axi_awregion = 4'h0; // @[el2_swerv_wrapper.scala 619:23]
|
||||
assign io_ifu_axi_awlen = 8'h0; // @[el2_swerv_wrapper.scala 620:20]
|
||||
assign io_ifu_axi_awsize = 3'h0; // @[el2_swerv_wrapper.scala 621:21]
|
||||
assign io_ifu_axi_awburst = 2'h0; // @[el2_swerv_wrapper.scala 622:22]
|
||||
assign io_ifu_axi_awlock = 1'h0; // @[el2_swerv_wrapper.scala 623:21]
|
||||
assign io_ifu_axi_awcache = 4'h0; // @[el2_swerv_wrapper.scala 624:22]
|
||||
assign io_ifu_axi_awprot = 3'h0; // @[el2_swerv_wrapper.scala 625:21]
|
||||
assign io_ifu_axi_awqos = 4'h0; // @[el2_swerv_wrapper.scala 626:20]
|
||||
assign io_ifu_axi_wvalid = 1'h0; // @[el2_swerv_wrapper.scala 627:21]
|
||||
assign io_ifu_axi_wdata = 64'h0; // @[el2_swerv_wrapper.scala 628:20]
|
||||
assign io_ifu_axi_wstrb = 8'h0; // @[el2_swerv_wrapper.scala 629:20]
|
||||
assign io_ifu_axi_wlast = 1'h0; // @[el2_swerv_wrapper.scala 630:20]
|
||||
assign io_ifu_axi_bready = 1'h0; // @[el2_swerv_wrapper.scala 632:21]
|
||||
assign io_ifu_axi_arvalid = swerv_io_ifu_axi_arvalid; // @[el2_swerv_wrapper.scala 635:22]
|
||||
assign io_ifu_axi_arid = swerv_io_ifu_axi_arid; // @[el2_swerv_wrapper.scala 636:19]
|
||||
assign io_ifu_axi_araddr = swerv_io_ifu_axi_araddr; // @[el2_swerv_wrapper.scala 637:21]
|
||||
assign io_ifu_axi_arregion = swerv_io_ifu_axi_arregion; // @[el2_swerv_wrapper.scala 638:23]
|
||||
assign io_ifu_axi_arlen = 8'h0; // @[el2_swerv_wrapper.scala 639:20]
|
||||
assign io_ifu_axi_arsize = 3'h3; // @[el2_swerv_wrapper.scala 640:21]
|
||||
assign io_ifu_axi_arburst = 2'h1; // @[el2_swerv_wrapper.scala 641:22]
|
||||
assign io_ifu_axi_arlock = 1'h0; // @[el2_swerv_wrapper.scala 642:21]
|
||||
assign io_ifu_axi_arcache = 4'hf; // @[el2_swerv_wrapper.scala 643:22]
|
||||
assign io_ifu_axi_arprot = 3'h0; // @[el2_swerv_wrapper.scala 644:21]
|
||||
assign io_ifu_axi_arqos = 4'h0; // @[el2_swerv_wrapper.scala 645:20]
|
||||
assign io_ifu_axi_rready = 1'h1; // @[el2_swerv_wrapper.scala 646:21]
|
||||
assign io_sb_axi_awvalid = swerv_io_sb_axi_awvalid; // @[el2_swerv_wrapper.scala 649:21]
|
||||
assign io_sb_axi_awid = 1'h0; // @[el2_swerv_wrapper.scala 650:18]
|
||||
assign io_sb_axi_awaddr = swerv_io_sb_axi_awaddr; // @[el2_swerv_wrapper.scala 651:20]
|
||||
assign io_sb_axi_awregion = swerv_io_sb_axi_awregion; // @[el2_swerv_wrapper.scala 652:22]
|
||||
assign io_sb_axi_awlen = 8'h0; // @[el2_swerv_wrapper.scala 653:19]
|
||||
assign io_sb_axi_awsize = swerv_io_sb_axi_awsize; // @[el2_swerv_wrapper.scala 654:20]
|
||||
assign io_sb_axi_awburst = 2'h1; // @[el2_swerv_wrapper.scala 655:21]
|
||||
assign io_sb_axi_awlock = 1'h0; // @[el2_swerv_wrapper.scala 656:20]
|
||||
assign io_sb_axi_awcache = 4'hf; // @[el2_swerv_wrapper.scala 657:21]
|
||||
assign io_sb_axi_awprot = 3'h0; // @[el2_swerv_wrapper.scala 658:20]
|
||||
assign io_sb_axi_awqos = 4'h0; // @[el2_swerv_wrapper.scala 659:19]
|
||||
assign io_sb_axi_wvalid = swerv_io_sb_axi_wvalid; // @[el2_swerv_wrapper.scala 661:19]
|
||||
assign io_sb_axi_wdata = swerv_io_sb_axi_wdata; // @[el2_swerv_wrapper.scala 662:19]
|
||||
assign io_sb_axi_wstrb = swerv_io_sb_axi_wstrb; // @[el2_swerv_wrapper.scala 663:19]
|
||||
assign io_sb_axi_wlast = 1'h1; // @[el2_swerv_wrapper.scala 664:19]
|
||||
assign io_sb_axi_bready = 1'h1; // @[el2_swerv_wrapper.scala 665:20]
|
||||
assign io_sb_axi_arvalid = swerv_io_sb_axi_arvalid; // @[el2_swerv_wrapper.scala 668:21]
|
||||
assign io_sb_axi_arid = 1'h0; // @[el2_swerv_wrapper.scala 669:18]
|
||||
assign io_sb_axi_araddr = swerv_io_sb_axi_araddr; // @[el2_swerv_wrapper.scala 670:20]
|
||||
assign io_sb_axi_arregion = swerv_io_sb_axi_arregion; // @[el2_swerv_wrapper.scala 671:22]
|
||||
assign io_sb_axi_arlen = 8'h0; // @[el2_swerv_wrapper.scala 672:19]
|
||||
assign io_sb_axi_arsize = swerv_io_sb_axi_arsize; // @[el2_swerv_wrapper.scala 673:20]
|
||||
assign io_sb_axi_arburst = 2'h1; // @[el2_swerv_wrapper.scala 674:21]
|
||||
assign io_sb_axi_arlock = 1'h0; // @[el2_swerv_wrapper.scala 675:20]
|
||||
assign io_sb_axi_arcache = 4'h0; // @[el2_swerv_wrapper.scala 676:21]
|
||||
assign io_sb_axi_arprot = 3'h0; // @[el2_swerv_wrapper.scala 677:20]
|
||||
assign io_sb_axi_arqos = 4'h0; // @[el2_swerv_wrapper.scala 678:19]
|
||||
assign io_sb_axi_rready = 1'h1; // @[el2_swerv_wrapper.scala 679:20]
|
||||
assign io_dma_axi_awready = swerv_io_dma_axi_awready; // @[el2_swerv_wrapper.scala 682:22]
|
||||
assign io_dma_axi_wready = swerv_io_dma_axi_wready; // @[el2_swerv_wrapper.scala 683:21]
|
||||
assign io_dma_axi_bvalid = swerv_io_dma_axi_bvalid; // @[el2_swerv_wrapper.scala 685:21]
|
||||
assign io_dma_axi_bresp = swerv_io_dma_axi_bresp; // @[el2_swerv_wrapper.scala 686:20]
|
||||
assign io_dma_axi_bid = swerv_io_dma_axi_bid; // @[el2_swerv_wrapper.scala 687:18]
|
||||
assign io_dma_axi_arready = swerv_io_dma_axi_arready; // @[el2_swerv_wrapper.scala 690:22]
|
||||
assign io_dma_axi_rvalid = swerv_io_dma_axi_rvalid; // @[el2_swerv_wrapper.scala 691:21]
|
||||
assign io_dma_axi_rid = swerv_io_dma_axi_rid; // @[el2_swerv_wrapper.scala 692:18]
|
||||
assign io_dma_axi_rdata = swerv_io_dma_axi_rdata; // @[el2_swerv_wrapper.scala 693:20]
|
||||
assign io_dma_axi_rresp = swerv_io_dma_axi_rresp; // @[el2_swerv_wrapper.scala 694:20]
|
||||
assign io_dma_axi_rlast = 1'h1; // @[el2_swerv_wrapper.scala 695:20]
|
||||
assign io_dma_hrdata = 64'h0; // @[el2_swerv_wrapper.scala 698:17]
|
||||
assign io_dma_hreadyout = 1'h0; // @[el2_swerv_wrapper.scala 699:20]
|
||||
assign io_dma_hresp = 1'h0; // @[el2_swerv_wrapper.scala 700:16]
|
||||
assign io_dec_tlu_perfcnt0 = swerv_io_dec_tlu_perfcnt0; // @[el2_swerv_wrapper.scala 576:23]
|
||||
assign io_dec_tlu_perfcnt1 = swerv_io_dec_tlu_perfcnt1; // @[el2_swerv_wrapper.scala 577:23]
|
||||
assign io_dec_tlu_perfcnt2 = swerv_io_dec_tlu_perfcnt2; // @[el2_swerv_wrapper.scala 578:23]
|
||||
assign io_dec_tlu_perfcnt3 = swerv_io_dec_tlu_perfcnt3; // @[el2_swerv_wrapper.scala 579:23]
|
||||
assign io_jtag_tdo = dmi_wrapper_tdo; // @[el2_swerv_wrapper.scala 363:15]
|
||||
assign io_mpc_debug_halt_ack = swerv_io_mpc_debug_halt_ack; // @[el2_swerv_wrapper.scala 572:25]
|
||||
assign io_mpc_debug_run_ack = swerv_io_mpc_debug_run_ack; // @[el2_swerv_wrapper.scala 573:24]
|
||||
assign io_debug_brkpt_status = swerv_io_debug_brkpt_status; // @[el2_swerv_wrapper.scala 574:25]
|
||||
assign io_o_cpu_halt_ack = swerv_io_o_cpu_halt_ack; // @[el2_swerv_wrapper.scala 567:21]
|
||||
assign io_o_cpu_halt_status = swerv_io_o_cpu_halt_status; // @[el2_swerv_wrapper.scala 568:24]
|
||||
assign io_o_debug_mode_status = swerv_io_o_debug_mode_status; // @[el2_swerv_wrapper.scala 570:26]
|
||||
assign io_o_cpu_run_ack = swerv_io_o_cpu_run_ack; // @[el2_swerv_wrapper.scala 569:20]
|
||||
assign mem_clk = clock; // @[el2_swerv_wrapper.scala 403:14]
|
||||
assign mem_rst_l = reset; // @[el2_swerv_wrapper.scala 402:16]
|
||||
assign mem_dccm_clk_override = swerv_io_dccm_clk_override; // @[el2_swerv_wrapper.scala 366:28]
|
||||
assign mem_icm_clk_override = swerv_io_icm_clk_override; // @[el2_swerv_wrapper.scala 367:27]
|
||||
assign mem_dec_tlu_core_ecc_disable = swerv_io_dec_tlu_core_ecc_disable; // @[el2_swerv_wrapper.scala 368:35]
|
||||
assign mem_dccm_wren = swerv_io_dccm_wren; // @[el2_swerv_wrapper.scala 369:20]
|
||||
assign mem_dccm_rden = swerv_io_dccm_rden; // @[el2_swerv_wrapper.scala 370:20]
|
||||
assign mem_dccm_wr_addr_lo = swerv_io_dccm_wr_addr_lo; // @[el2_swerv_wrapper.scala 371:26]
|
||||
assign mem_dccm_wr_addr_hi = swerv_io_dccm_wr_addr_hi; // @[el2_swerv_wrapper.scala 372:26]
|
||||
assign mem_dccm_rd_addr_lo = swerv_io_dccm_rd_addr_lo; // @[el2_swerv_wrapper.scala 373:26]
|
||||
assign mem_dccm_rd_addr_hi = swerv_io_dccm_rd_addr_hi; // @[el2_swerv_wrapper.scala 378:26]
|
||||
assign mem_dccm_wr_data_lo = swerv_io_dccm_wr_data_lo; // @[el2_swerv_wrapper.scala 375:26]
|
||||
assign mem_dccm_wr_data_hi = swerv_io_dccm_wr_data_hi; // @[el2_swerv_wrapper.scala 376:26]
|
||||
assign mem_iccm_rw_addr = swerv_io_iccm_rw_addr; // @[el2_swerv_wrapper.scala 379:23]
|
||||
assign mem_iccm_buf_correct_ecc = swerv_io_iccm_buf_correct_ecc; // @[el2_swerv_wrapper.scala 380:31]
|
||||
assign mem_iccm_correction_state = swerv_io_iccm_correction_state; // @[el2_swerv_wrapper.scala 381:32]
|
||||
assign mem_iccm_wren = swerv_io_iccm_wren; // @[el2_swerv_wrapper.scala 382:20]
|
||||
assign mem_iccm_rden = swerv_io_iccm_rden; // @[el2_swerv_wrapper.scala 383:20]
|
||||
assign mem_iccm_wr_size = swerv_io_iccm_wr_size; // @[el2_swerv_wrapper.scala 384:23]
|
||||
assign mem_iccm_wr_data = swerv_io_iccm_wr_data; // @[el2_swerv_wrapper.scala 385:23]
|
||||
assign mem_ic_rw_addr = swerv_io_ic_rw_addr; // @[el2_swerv_wrapper.scala 388:21]
|
||||
assign mem_ic_tag_valid = swerv_io_ic_tag_valid; // @[el2_swerv_wrapper.scala 389:23]
|
||||
assign mem_ic_wr_en = swerv_io_ic_wr_en; // @[el2_swerv_wrapper.scala 390:19]
|
||||
assign mem_ic_rd_en = swerv_io_ic_rd_en; // @[el2_swerv_wrapper.scala 391:19]
|
||||
assign mem_ic_premux_data = swerv_io_ic_premux_data; // @[el2_swerv_wrapper.scala 392:25]
|
||||
assign mem_ic_sel_premux_data = swerv_io_ic_sel_premux_data; // @[el2_swerv_wrapper.scala 393:29]
|
||||
assign mem_ic_wr_data_0 = swerv_io_ic_wr_data_0; // @[el2_swerv_wrapper.scala 394:21]
|
||||
assign mem_ic_wr_data_1 = swerv_io_ic_wr_data_1; // @[el2_swerv_wrapper.scala 394:21]
|
||||
assign mem_ic_debug_wr_data = swerv_io_ic_debug_wr_data; // @[el2_swerv_wrapper.scala 395:27]
|
||||
assign mem_ic_debug_addr = swerv_io_ic_debug_addr; // @[el2_swerv_wrapper.scala 397:24]
|
||||
assign mem_ic_debug_rd_en = swerv_io_ic_debug_rd_en; // @[el2_swerv_wrapper.scala 398:25]
|
||||
assign mem_ic_debug_wr_en = swerv_io_ic_debug_wr_en; // @[el2_swerv_wrapper.scala 399:25]
|
||||
assign mem_ic_debug_tag_array = swerv_io_ic_debug_tag_array; // @[el2_swerv_wrapper.scala 400:29]
|
||||
assign mem_ic_debug_way = swerv_io_ic_debug_way; // @[el2_swerv_wrapper.scala 401:23]
|
||||
assign mem_scan_mode = io_scan_mode; // @[el2_swerv_wrapper.scala 404:20]
|
||||
assign dmi_wrapper_trst_n = io_jtag_trst_n; // @[el2_swerv_wrapper.scala 348:25]
|
||||
assign dmi_wrapper_tck = io_jtag_tck; // @[el2_swerv_wrapper.scala 349:22]
|
||||
assign dmi_wrapper_tms = io_jtag_tms; // @[el2_swerv_wrapper.scala 350:22]
|
||||
assign dmi_wrapper_tdi = io_jtag_tdi; // @[el2_swerv_wrapper.scala 351:22]
|
||||
assign dmi_wrapper_core_rst_n = io_dbg_rst_l; // @[el2_swerv_wrapper.scala 357:29]
|
||||
assign dmi_wrapper_core_clk = clock; // @[el2_swerv_wrapper.scala 352:27]
|
||||
assign dmi_wrapper_jtag_id = io_jtag_id; // @[el2_swerv_wrapper.scala 353:26]
|
||||
assign dmi_wrapper_rd_data = 32'h0; // @[el2_swerv_wrapper.scala 354:26]
|
||||
assign swerv_clock = clock;
|
||||
assign swerv_reset = reset;
|
||||
assign swerv_io_dbg_rst_l = io_dbg_rst_l; // @[SweRV_Wrapper.scala 406:22 SweRV_Wrapper.scala 428:22]
|
||||
assign swerv_io_rst_vec = io_rst_vec; // @[SweRV_Wrapper.scala 429:20]
|
||||
assign swerv_io_nmi_int = io_nmi_int; // @[SweRV_Wrapper.scala 430:20]
|
||||
assign swerv_io_nmi_vec = io_nmi_vec; // @[SweRV_Wrapper.scala 431:20]
|
||||
assign swerv_io_i_cpu_halt_req = io_i_cpu_halt_req; // @[SweRV_Wrapper.scala 434:27]
|
||||
assign swerv_io_i_cpu_run_req = io_i_cpu_run_req; // @[SweRV_Wrapper.scala 435:26]
|
||||
assign swerv_io_core_id = io_core_id; // @[SweRV_Wrapper.scala 436:20]
|
||||
assign swerv_io_mpc_debug_halt_req = io_mpc_debug_halt_req; // @[SweRV_Wrapper.scala 439:31]
|
||||
assign swerv_io_mpc_debug_run_req = io_mpc_debug_run_req; // @[SweRV_Wrapper.scala 440:30]
|
||||
assign swerv_io_mpc_reset_run_req = io_mpc_reset_run_req; // @[SweRV_Wrapper.scala 441:30]
|
||||
assign swerv_io_dccm_rd_data_lo = mem_dccm_rd_data_lo; // @[SweRV_Wrapper.scala 377:28]
|
||||
assign swerv_io_dccm_rd_data_hi = mem_dccm_rd_data_hi; // @[SweRV_Wrapper.scala 408:28]
|
||||
assign swerv_io_iccm_rd_data = mem_iccm_rd_data; // @[SweRV_Wrapper.scala 416:25]
|
||||
assign swerv_io_iccm_rd_data_ecc = mem_iccm_rd_data_ecc; // @[SweRV_Wrapper.scala 407:29]
|
||||
assign swerv_io_ic_rd_data = mem_ic_rd_data; // @[SweRV_Wrapper.scala 409:23]
|
||||
assign swerv_io_ic_debug_rd_data = mem_ic_debug_rd_data; // @[SweRV_Wrapper.scala 415:29]
|
||||
assign swerv_io_ictag_debug_rd_data = mem_ictag_debug_rd_data; // @[SweRV_Wrapper.scala 410:32]
|
||||
assign swerv_io_ic_eccerr = mem_ic_eccerr; // @[SweRV_Wrapper.scala 411:22]
|
||||
assign swerv_io_ic_rd_hit = mem_ic_rd_hit; // @[SweRV_Wrapper.scala 413:22]
|
||||
assign swerv_io_ic_tag_perr = mem_ic_tag_perr; // @[SweRV_Wrapper.scala 414:24]
|
||||
assign swerv_io_lsu_axi_awready = io_lsu_axi_awready; // @[SweRV_Wrapper.scala 445:28]
|
||||
assign swerv_io_lsu_axi_wready = io_lsu_axi_wready; // @[SweRV_Wrapper.scala 446:27]
|
||||
assign swerv_io_lsu_axi_bvalid = io_lsu_axi_bvalid; // @[SweRV_Wrapper.scala 448:27]
|
||||
assign swerv_io_lsu_axi_bresp = io_lsu_axi_bresp; // @[SweRV_Wrapper.scala 449:26]
|
||||
assign swerv_io_lsu_axi_bid = io_lsu_axi_bid; // @[SweRV_Wrapper.scala 450:24]
|
||||
assign swerv_io_lsu_axi_arready = io_lsu_axi_arready; // @[SweRV_Wrapper.scala 453:28]
|
||||
assign swerv_io_lsu_axi_rvalid = io_lsu_axi_rvalid; // @[SweRV_Wrapper.scala 454:27]
|
||||
assign swerv_io_lsu_axi_rid = io_lsu_axi_rid; // @[SweRV_Wrapper.scala 455:24]
|
||||
assign swerv_io_lsu_axi_rdata = io_lsu_axi_rdata; // @[SweRV_Wrapper.scala 456:26]
|
||||
assign swerv_io_ifu_axi_arready = io_ifu_axi_arready; // @[SweRV_Wrapper.scala 469:28]
|
||||
assign swerv_io_ifu_axi_rvalid = io_ifu_axi_rvalid; // @[SweRV_Wrapper.scala 470:27]
|
||||
assign swerv_io_ifu_axi_rid = io_ifu_axi_rid; // @[SweRV_Wrapper.scala 471:24]
|
||||
assign swerv_io_ifu_axi_rdata = io_ifu_axi_rdata; // @[SweRV_Wrapper.scala 472:26]
|
||||
assign swerv_io_ifu_axi_rresp = io_ifu_axi_rresp; // @[SweRV_Wrapper.scala 473:26]
|
||||
assign swerv_io_sb_axi_awready = io_sb_axi_awready; // @[SweRV_Wrapper.scala 478:27]
|
||||
assign swerv_io_sb_axi_wready = io_sb_axi_wready; // @[SweRV_Wrapper.scala 479:26]
|
||||
assign swerv_io_sb_axi_bvalid = io_sb_axi_bvalid; // @[SweRV_Wrapper.scala 481:26]
|
||||
assign swerv_io_sb_axi_bresp = io_sb_axi_bresp; // @[SweRV_Wrapper.scala 482:25]
|
||||
assign swerv_io_sb_axi_arready = io_sb_axi_arready; // @[SweRV_Wrapper.scala 486:27]
|
||||
assign swerv_io_sb_axi_rvalid = io_sb_axi_rvalid; // @[SweRV_Wrapper.scala 487:26]
|
||||
assign swerv_io_sb_axi_rdata = io_sb_axi_rdata; // @[SweRV_Wrapper.scala 489:25]
|
||||
assign swerv_io_sb_axi_rresp = io_sb_axi_rresp; // @[SweRV_Wrapper.scala 490:25]
|
||||
assign swerv_io_dma_axi_awvalid = io_dma_axi_awvalid; // @[SweRV_Wrapper.scala 495:28]
|
||||
assign swerv_io_dma_axi_awid = io_dma_axi_awid; // @[SweRV_Wrapper.scala 496:25]
|
||||
assign swerv_io_dma_axi_awaddr = io_dma_axi_awaddr; // @[SweRV_Wrapper.scala 497:27]
|
||||
assign swerv_io_dma_axi_awsize = io_dma_axi_awsize; // @[SweRV_Wrapper.scala 498:27]
|
||||
assign swerv_io_dma_axi_wvalid = io_dma_axi_wvalid; // @[SweRV_Wrapper.scala 503:27]
|
||||
assign swerv_io_dma_axi_wdata = io_dma_axi_wdata; // @[SweRV_Wrapper.scala 504:26]
|
||||
assign swerv_io_dma_axi_wstrb = io_dma_axi_wstrb; // @[SweRV_Wrapper.scala 505:26]
|
||||
assign swerv_io_dma_axi_bready = io_dma_axi_bready; // @[SweRV_Wrapper.scala 507:27]
|
||||
assign swerv_io_dma_axi_arvalid = io_dma_axi_arvalid; // @[SweRV_Wrapper.scala 510:28]
|
||||
assign swerv_io_dma_axi_arid = io_dma_axi_arid; // @[SweRV_Wrapper.scala 511:25]
|
||||
assign swerv_io_dma_axi_araddr = io_dma_axi_araddr; // @[SweRV_Wrapper.scala 512:27]
|
||||
assign swerv_io_dma_axi_arsize = io_dma_axi_arsize; // @[SweRV_Wrapper.scala 513:27]
|
||||
assign swerv_io_dma_axi_rready = io_dma_axi_rready; // @[SweRV_Wrapper.scala 517:27]
|
||||
assign swerv_io_lsu_bus_clk_en = io_lsu_bus_clk_en; // @[SweRV_Wrapper.scala 547:27]
|
||||
assign swerv_io_ifu_bus_clk_en = io_ifu_bus_clk_en; // @[SweRV_Wrapper.scala 548:27]
|
||||
assign swerv_io_dbg_bus_clk_en = io_dbg_bus_clk_en; // @[SweRV_Wrapper.scala 549:27]
|
||||
assign swerv_io_dma_bus_clk_en = io_dma_bus_clk_en; // @[SweRV_Wrapper.scala 550:27]
|
||||
assign swerv_io_dmi_reg_en = dmi_wrapper_reg_en; // @[SweRV_Wrapper.scala 360:23]
|
||||
assign swerv_io_dmi_reg_addr = dmi_wrapper_reg_wr_addr; // @[SweRV_Wrapper.scala 359:25]
|
||||
assign swerv_io_dmi_reg_wr_en = dmi_wrapper_reg_wr_en; // @[SweRV_Wrapper.scala 361:26]
|
||||
assign swerv_io_dmi_reg_wdata = dmi_wrapper_reg_wr_data; // @[SweRV_Wrapper.scala 358:26]
|
||||
assign swerv_io_extintsrc_req = io_extintsrc_req; // @[SweRV_Wrapper.scala 554:26]
|
||||
assign swerv_io_timer_int = io_timer_int; // @[SweRV_Wrapper.scala 552:22]
|
||||
assign swerv_io_soft_int = io_soft_int; // @[SweRV_Wrapper.scala 553:21]
|
||||
assign swerv_io_scan_mode = io_scan_mode; // @[SweRV_Wrapper.scala 426:22]
|
||||
assign swerv_io_dbg_rst_l = io_dbg_rst_l; // @[el2_swerv_wrapper.scala 406:22 el2_swerv_wrapper.scala 428:22]
|
||||
assign swerv_io_rst_vec = io_rst_vec; // @[el2_swerv_wrapper.scala 429:20]
|
||||
assign swerv_io_nmi_int = io_nmi_int; // @[el2_swerv_wrapper.scala 430:20]
|
||||
assign swerv_io_nmi_vec = io_nmi_vec; // @[el2_swerv_wrapper.scala 431:20]
|
||||
assign swerv_io_i_cpu_halt_req = io_i_cpu_halt_req; // @[el2_swerv_wrapper.scala 434:27]
|
||||
assign swerv_io_i_cpu_run_req = io_i_cpu_run_req; // @[el2_swerv_wrapper.scala 435:26]
|
||||
assign swerv_io_core_id = io_core_id; // @[el2_swerv_wrapper.scala 436:20]
|
||||
assign swerv_io_mpc_debug_halt_req = io_mpc_debug_halt_req; // @[el2_swerv_wrapper.scala 439:31]
|
||||
assign swerv_io_mpc_debug_run_req = io_mpc_debug_run_req; // @[el2_swerv_wrapper.scala 440:30]
|
||||
assign swerv_io_mpc_reset_run_req = io_mpc_reset_run_req; // @[el2_swerv_wrapper.scala 441:30]
|
||||
assign swerv_io_dccm_rd_data_lo = mem_dccm_rd_data_lo; // @[el2_swerv_wrapper.scala 377:28]
|
||||
assign swerv_io_dccm_rd_data_hi = mem_dccm_rd_data_hi; // @[el2_swerv_wrapper.scala 408:28]
|
||||
assign swerv_io_iccm_rd_data = mem_iccm_rd_data; // @[el2_swerv_wrapper.scala 416:25]
|
||||
assign swerv_io_iccm_rd_data_ecc = mem_iccm_rd_data_ecc; // @[el2_swerv_wrapper.scala 407:29]
|
||||
assign swerv_io_ic_rd_data = mem_ic_rd_data; // @[el2_swerv_wrapper.scala 409:23]
|
||||
assign swerv_io_ic_debug_rd_data = mem_ic_debug_rd_data; // @[el2_swerv_wrapper.scala 415:29]
|
||||
assign swerv_io_ictag_debug_rd_data = mem_ictag_debug_rd_data; // @[el2_swerv_wrapper.scala 410:32]
|
||||
assign swerv_io_ic_eccerr = mem_ic_eccerr; // @[el2_swerv_wrapper.scala 411:22]
|
||||
assign swerv_io_ic_rd_hit = mem_ic_rd_hit; // @[el2_swerv_wrapper.scala 413:22]
|
||||
assign swerv_io_ic_tag_perr = mem_ic_tag_perr; // @[el2_swerv_wrapper.scala 414:24]
|
||||
assign swerv_io_lsu_axi_awready = io_lsu_axi_awready; // @[el2_swerv_wrapper.scala 445:28]
|
||||
assign swerv_io_lsu_axi_wready = io_lsu_axi_wready; // @[el2_swerv_wrapper.scala 446:27]
|
||||
assign swerv_io_lsu_axi_bvalid = io_lsu_axi_bvalid; // @[el2_swerv_wrapper.scala 448:27]
|
||||
assign swerv_io_lsu_axi_bresp = io_lsu_axi_bresp; // @[el2_swerv_wrapper.scala 449:26]
|
||||
assign swerv_io_lsu_axi_bid = io_lsu_axi_bid; // @[el2_swerv_wrapper.scala 450:24]
|
||||
assign swerv_io_lsu_axi_arready = io_lsu_axi_arready; // @[el2_swerv_wrapper.scala 453:28]
|
||||
assign swerv_io_lsu_axi_rvalid = io_lsu_axi_rvalid; // @[el2_swerv_wrapper.scala 454:27]
|
||||
assign swerv_io_lsu_axi_rid = io_lsu_axi_rid; // @[el2_swerv_wrapper.scala 455:24]
|
||||
assign swerv_io_lsu_axi_rdata = io_lsu_axi_rdata; // @[el2_swerv_wrapper.scala 456:26]
|
||||
assign swerv_io_ifu_axi_arready = io_ifu_axi_arready; // @[el2_swerv_wrapper.scala 469:28]
|
||||
assign swerv_io_ifu_axi_rvalid = io_ifu_axi_rvalid; // @[el2_swerv_wrapper.scala 470:27]
|
||||
assign swerv_io_ifu_axi_rid = io_ifu_axi_rid; // @[el2_swerv_wrapper.scala 471:24]
|
||||
assign swerv_io_ifu_axi_rdata = io_ifu_axi_rdata; // @[el2_swerv_wrapper.scala 472:26]
|
||||
assign swerv_io_ifu_axi_rresp = io_ifu_axi_rresp; // @[el2_swerv_wrapper.scala 473:26]
|
||||
assign swerv_io_sb_axi_awready = io_sb_axi_awready; // @[el2_swerv_wrapper.scala 478:27]
|
||||
assign swerv_io_sb_axi_wready = io_sb_axi_wready; // @[el2_swerv_wrapper.scala 479:26]
|
||||
assign swerv_io_sb_axi_bvalid = io_sb_axi_bvalid; // @[el2_swerv_wrapper.scala 481:26]
|
||||
assign swerv_io_sb_axi_bresp = io_sb_axi_bresp; // @[el2_swerv_wrapper.scala 482:25]
|
||||
assign swerv_io_sb_axi_arready = io_sb_axi_arready; // @[el2_swerv_wrapper.scala 486:27]
|
||||
assign swerv_io_sb_axi_rvalid = io_sb_axi_rvalid; // @[el2_swerv_wrapper.scala 487:26]
|
||||
assign swerv_io_sb_axi_rdata = io_sb_axi_rdata; // @[el2_swerv_wrapper.scala 489:25]
|
||||
assign swerv_io_sb_axi_rresp = io_sb_axi_rresp; // @[el2_swerv_wrapper.scala 490:25]
|
||||
assign swerv_io_dma_axi_awvalid = io_dma_axi_awvalid; // @[el2_swerv_wrapper.scala 495:28]
|
||||
assign swerv_io_dma_axi_awid = io_dma_axi_awid; // @[el2_swerv_wrapper.scala 496:25]
|
||||
assign swerv_io_dma_axi_awaddr = io_dma_axi_awaddr; // @[el2_swerv_wrapper.scala 497:27]
|
||||
assign swerv_io_dma_axi_awsize = io_dma_axi_awsize; // @[el2_swerv_wrapper.scala 498:27]
|
||||
assign swerv_io_dma_axi_wvalid = io_dma_axi_wvalid; // @[el2_swerv_wrapper.scala 503:27]
|
||||
assign swerv_io_dma_axi_wdata = io_dma_axi_wdata; // @[el2_swerv_wrapper.scala 504:26]
|
||||
assign swerv_io_dma_axi_wstrb = io_dma_axi_wstrb; // @[el2_swerv_wrapper.scala 505:26]
|
||||
assign swerv_io_dma_axi_bready = io_dma_axi_bready; // @[el2_swerv_wrapper.scala 507:27]
|
||||
assign swerv_io_dma_axi_arvalid = io_dma_axi_arvalid; // @[el2_swerv_wrapper.scala 510:28]
|
||||
assign swerv_io_dma_axi_arid = io_dma_axi_arid; // @[el2_swerv_wrapper.scala 511:25]
|
||||
assign swerv_io_dma_axi_araddr = io_dma_axi_araddr; // @[el2_swerv_wrapper.scala 512:27]
|
||||
assign swerv_io_dma_axi_arsize = io_dma_axi_arsize; // @[el2_swerv_wrapper.scala 513:27]
|
||||
assign swerv_io_dma_axi_rready = io_dma_axi_rready; // @[el2_swerv_wrapper.scala 517:27]
|
||||
assign swerv_io_lsu_bus_clk_en = io_lsu_bus_clk_en; // @[el2_swerv_wrapper.scala 547:27]
|
||||
assign swerv_io_ifu_bus_clk_en = io_ifu_bus_clk_en; // @[el2_swerv_wrapper.scala 548:27]
|
||||
assign swerv_io_dbg_bus_clk_en = io_dbg_bus_clk_en; // @[el2_swerv_wrapper.scala 549:27]
|
||||
assign swerv_io_dma_bus_clk_en = io_dma_bus_clk_en; // @[el2_swerv_wrapper.scala 550:27]
|
||||
assign swerv_io_dmi_reg_en = dmi_wrapper_reg_en; // @[el2_swerv_wrapper.scala 360:23]
|
||||
assign swerv_io_dmi_reg_addr = dmi_wrapper_reg_wr_addr; // @[el2_swerv_wrapper.scala 359:25]
|
||||
assign swerv_io_dmi_reg_wr_en = dmi_wrapper_reg_wr_en; // @[el2_swerv_wrapper.scala 361:26]
|
||||
assign swerv_io_dmi_reg_wdata = dmi_wrapper_reg_wr_data; // @[el2_swerv_wrapper.scala 358:26]
|
||||
assign swerv_io_extintsrc_req = io_extintsrc_req; // @[el2_swerv_wrapper.scala 554:26]
|
||||
assign swerv_io_timer_int = io_timer_int; // @[el2_swerv_wrapper.scala 552:22]
|
||||
assign swerv_io_soft_int = io_soft_int; // @[el2_swerv_wrapper.scala 553:21]
|
||||
assign swerv_io_scan_mode = io_scan_mode; // @[el2_swerv_wrapper.scala 426:22]
|
||||
endmodule
|
||||
|
|
|
@ -1,3 +1 @@
|
|||
/home/laraibkhan/Desktop/SweRV-Chislified/gated_latch.v
|
||||
/home/laraibkhan/Desktop/SweRV-Chislified/dmi_wrapper.sv
|
||||
/home/laraibkhan/Desktop/SweRV-Chislified/el2_mem.sv
|
||||
/home/laraibkhan/Desktop/SweRV-Chislified/gated_latch.v
|
|
@ -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 r_t = Wire(new el2_trap_pkt_t)
|
||||
val r_t_in = Wire(new el2_trap_pkt_t)
|
||||
val d_d = Wire(Valid(new el2_dest_pkt_t))
|
||||
val x_d = Wire(Valid(new el2_dest_pkt_t))
|
||||
val r_d = Wire(Valid(new el2_dest_pkt_t))
|
||||
val r_d_in = Wire(Valid(new el2_dest_pkt_t))
|
||||
val wbd = Wire(Valid(new el2_dest_pkt_t))
|
||||
val d_d = Wire(new el2_dest_pkt_t)
|
||||
val x_d = Wire(new el2_dest_pkt_t)
|
||||
val r_d = Wire(new el2_dest_pkt_t)
|
||||
val r_d_in = Wire(new el2_dest_pkt_t)
|
||||
val wbd = Wire(new el2_dest_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_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_tag = io.lsu_nonblock_load_data_tag
|
||||
|
||||
val nonblock_load_rd = Mux(x_d.bits.i0load.asBool, x_d.bits.i0rd, 0.U(5.W)) // rd data
|
||||
val nonblock_load_rd = Mux(x_d.i0load.asBool, x_d.i0rd, 0.U(5.W)) // rd data
|
||||
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
|
||||
// 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 i0_load_kill_wen_r = nonblock_load_valid_m_delay & r_d.bits.i0load
|
||||
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).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
|
||||
|
@ -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.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.bits.i0rd === cam(i).bits.rd) && cam(i).bits.wb.asBool)){
|
||||
}.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)
|
||||
|
@ -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)
|
||||
// cancel if any younger inst (including another nonblock) committing this cycle
|
||||
val nonblock_load_cancel = ((r_d_in.bits.i0rd === io.dec_nonblock_load_waddr) & i0_wen_r)
|
||||
val nonblock_load_cancel = ((r_d_in.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)
|
||||
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
|
||||
|
||||
io.dec_csr_rdaddr_d := i0(31,20)
|
||||
io.dec_csr_wraddr_r := r_d.bits.csrwaddr //r_d is a el2_dest_pkt
|
||||
io.dec_csr_wraddr_r := r_d.csrwaddr //r_d is a el2_dest_pkt
|
||||
|
||||
// make sure csr doesn't write same cycle as dec_tlu_flush_lower_wb
|
||||
// also use valid so it's flushable
|
||||
io.dec_csr_wen_r := r_d.bits.csrwen & r_d.valid & !io.dec_tlu_i0_kill_writeb_r;
|
||||
io.dec_csr_wen_r := r_d.csrwen & r_d.i0valid & !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.
|
||||
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;
|
||||
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;
|
||||
|
||||
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)}
|
||||
|
@ -511,9 +511,9 @@ class el2_dec_decode_ctl extends Module with el2_lib with RequireAsyncReset{
|
|||
val pause_stall = pause_state
|
||||
|
||||
// for csr write only data is produced by the alu
|
||||
io.dec_csr_wrdata_r := Mux(r_d.bits.csrwonly.asBool,i0_result_corr_r,write_csr_data)
|
||||
io.dec_csr_wrdata_r := Mux(r_d.csrwonly.asBool,i0_result_corr_r,write_csr_data)
|
||||
|
||||
val prior_csr_write = x_d.bits.csrwonly | r_d.bits.csrwonly | wbd.bits.csrwonly;
|
||||
val prior_csr_write = x_d.csrwonly | r_d.csrwonly | wbd.csrwonly;
|
||||
|
||||
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)
|
||||
|
@ -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_presync_stall := presync_stall.asBool
|
||||
|
||||
val prior_inflight_x = x_d.valid
|
||||
val prior_inflight_wb = r_d.valid
|
||||
val prior_inflight_x = x_d.i0valid
|
||||
val prior_inflight_wb = r_d.i0valid
|
||||
val prior_inflight = prior_inflight_x | prior_inflight_wb
|
||||
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
|
||||
div_decode_d := i0_exulegal_decode_d & i0_dp.div
|
||||
|
||||
io.dec_tlu_i0_valid_r := r_d.valid & !io.dec_tlu_flush_lower_wb
|
||||
io.dec_tlu_i0_valid_r := r_d.i0valid & !io.dec_tlu_flush_lower_wb
|
||||
|
||||
//traps for TLU (tlu stuff)
|
||||
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.i0trigger := (repl(4,(r_d.bits.i0load | r_d.bits.i0store)) & lsu_trigger_match_r) | r_t.i0trigger
|
||||
r_t_in.i0trigger := (repl(4,(r_d.i0load | r_d.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
|
||||
|
||||
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.pmu_divide := r_d.bits.i0div & r_d.valid
|
||||
io.dec_tlu_packet_r.pmu_divide := r_d.i0div & r_d.i0valid
|
||||
// end tlu stuff
|
||||
|
||||
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_ctl_en := Cat(i0_x_ctl_en, i0_r_ctl_en)
|
||||
|
||||
d_d.bits.i0rd := i0r.rd
|
||||
d_d.bits.i0v := i0_rd_en_d & i0_legal_decode_d
|
||||
d_d.valid := io.dec_i0_decode_d // has flush_final_r
|
||||
d_d.i0rd := i0r.rd
|
||||
d_d.i0v := i0_rd_en_d & i0_legal_decode_d
|
||||
d_d.i0valid := io.dec_i0_decode_d // has flush_final_r
|
||||
|
||||
d_d.bits.i0load := i0_dp.load & i0_legal_decode_d
|
||||
d_d.bits.i0store := i0_dp.store & i0_legal_decode_d
|
||||
d_d.bits.i0div := i0_dp.div & i0_legal_decode_d
|
||||
d_d.i0load := i0_dp.load & i0_legal_decode_d
|
||||
d_d.i0store := i0_dp.store & i0_legal_decode_d
|
||||
d_d.i0div := i0_dp.div & i0_legal_decode_d
|
||||
|
||||
d_d.bits.csrwen := io.dec_csr_wen_unq_d & i0_legal_decode_d
|
||||
d_d.bits.csrwonly := i0_csr_write_only_d & io.dec_i0_decode_d
|
||||
d_d.bits.csrwaddr := i0(31,20)
|
||||
d_d.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.csrwaddr := i0(31,20)
|
||||
|
||||
x_d := rvdffe(d_d, i0_x_ctl_en.asBool,clock,io.scan_mode)
|
||||
val x_d_in = Wire(Valid(new el2_dest_pkt_t))
|
||||
val x_d_in = Wire(new el2_dest_pkt_t)
|
||||
x_d_in := x_d
|
||||
x_d_in.bits.i0v := x_d.bits.i0v & !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
|
||||
x_d_in.i0v := x_d.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
|
||||
|
||||
r_d := rvdffe(x_d_in,i0_r_ctl_en.asBool,clock,io.scan_mode)
|
||||
r_d_in := r_d
|
||||
r_d_in.bits.i0rd := r_d.bits.i0rd
|
||||
r_d_in.i0rd := r_d.i0rd
|
||||
|
||||
r_d_in.bits.i0v := (r_d.bits.i0v & !io.dec_tlu_flush_lower_wb)
|
||||
r_d_in.valid := (r_d.valid & !io.dec_tlu_flush_lower_wb)
|
||||
r_d_in.bits.i0load := r_d.bits.i0load & !io.dec_tlu_flush_lower_wb
|
||||
r_d_in.bits.i0store := r_d.bits.i0store & !io.dec_tlu_flush_lower_wb
|
||||
r_d_in.i0v := (r_d.i0v & !io.dec_tlu_flush_lower_wb)
|
||||
r_d_in.i0valid := (r_d.i0valid & !io.dec_tlu_flush_lower_wb)
|
||||
r_d_in.i0load := r_d.i0load & !io.dec_tlu_flush_lower_wb
|
||||
r_d_in.i0store := r_d.i0store & !io.dec_tlu_flush_lower_wb
|
||||
|
||||
wbd := rvdffe(r_d_in,i0_wb_ctl_en.asBool,clock,io.scan_mode)
|
||||
|
||||
io.dec_i0_waddr_r := r_d_in.bits.i0rd
|
||||
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.bits.i0div & !i0_load_kill_wen_r // don't write a nonblock load 1st time down the pipe
|
||||
io.dec_i0_waddr_r := r_d_in.i0rd
|
||||
i0_wen_r := r_d_in.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_wdata_r := i0_result_corr_r
|
||||
|
||||
val i0_result_r_raw = rvdffe(i0_result_x,i0_r_data_en.asBool,clock,io.scan_mode)
|
||||
if ( LOAD_TO_USE_PLUS1 == 1 ) {
|
||||
i0_result_x := io.exu_i0_result_x
|
||||
i0_result_r := Mux((r_d.bits.i0v & r_d.bits.i0load).asBool,io.lsu_result_m, i0_result_r_raw)
|
||||
i0_result_r := Mux((r_d.i0v & r_d.i0load).asBool,io.lsu_result_m, i0_result_r_raw)
|
||||
}
|
||||
else {
|
||||
i0_result_x := Mux((x_d.bits.i0v & x_d.bits.i0load).asBool,io.lsu_result_m,io.exu_i0_result_x)
|
||||
i0_result_x := Mux((x_d.i0v & x_d.i0load).asBool,io.lsu_result_m,io.exu_i0_result_x)
|
||||
i0_result_r := i0_result_r_raw
|
||||
}
|
||||
|
||||
// correct lsu load data - don't use for bypass, do pass down the pipe
|
||||
i0_result_corr_r := Mux((r_d.bits.i0v & r_d.bits.i0load).asBool,io.lsu_result_corr_r,i0_result_r_raw)
|
||||
i0_result_corr_r := Mux((r_d.i0v & r_d.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))
|
||||
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)
|
||||
|
@ -716,16 +716,16 @@ class el2_dec_decode_ctl extends Module with el2_lib with RequireAsyncReset{
|
|||
|
||||
// divide stuff
|
||||
|
||||
val div_e1_to_r = (x_d.bits.i0div & x_d.valid) | (r_d.bits.i0div & r_d.valid)
|
||||
val div_e1_to_r = (x_d.i0div & x_d.i0valid) | (r_d.i0div & r_d.i0valid)
|
||||
|
||||
val div_flush = (x_d.bits.i0div & x_d.valid & (x_d.bits.i0rd === 0.U(5.W))) |
|
||||
(x_d.bits.i0div & x_d.valid & io.dec_tlu_flush_lower_r ) |
|
||||
(r_d.bits.i0div & r_d.valid & io.dec_tlu_flush_lower_r & io.dec_tlu_i0_kill_writeb_r)
|
||||
val div_flush = (x_d.i0div & x_d.i0valid & (x_d.i0rd === 0.U(5.W))) |
|
||||
(x_d.i0div & x_d.i0valid & 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)
|
||||
|
||||
// cancel if any younger inst committing this cycle to same dest as nonblock divide
|
||||
|
||||
val nonblock_div_cancel = (io.dec_div_active & div_flush) |
|
||||
(io.dec_div_active & !div_e1_to_r & (r_d.bits.i0rd === io.div_waddr_wb) & i0_wen_r)
|
||||
(io.dec_div_active & !div_e1_to_r & (r_d.i0rd === io.div_waddr_wb) & i0_wen_r)
|
||||
|
||||
io.dec_div_cancel := nonblock_div_cancel.asBool
|
||||
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
|
||||
|
||||
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.bits.i0v & (r_d.bits.i0rd === i0r.rs1)
|
||||
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_r = io.dec_i0_rs1_en_d & r_d.i0v & (r_d.i0rd === i0r.rs1)
|
||||
|
||||
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.bits.i0v & (r_d.bits.i0rd === i0r.rs2)
|
||||
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_r = io.dec_i0_rs2_en_d & r_d.i0v & (r_d.i0rd === i0r.rs2)
|
||||
// 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_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))
|
||||
|
|
|
@ -103,6 +103,7 @@ class el2_dest_pkt_t extends Bundle {
|
|||
val i0store = UInt(1.W)
|
||||
val i0div = UInt(1.W)
|
||||
val i0v = UInt(1.W)
|
||||
val i0valid = UInt(1.W)
|
||||
val csrwen = UInt(1.W)
|
||||
val csrwonly = UInt(1.W)
|
||||
val csrwaddr = UInt(12.W)
|
||||
|
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Loading…
Reference in New Issue