978 lines
71 KiB
Plaintext
978 lines
71 KiB
Plaintext
;buildInfoPackage: chisel3, version: 3.3.1, scalaVersion: 2.12.11, sbtVersion: 1.3.10
|
|
circuit lsu_lsc_ctl :
|
|
module lsu_addrcheck :
|
|
input clock : Clock
|
|
input reset : AsyncReset
|
|
output io : {flip lsu_c2_m_clk : Clock, flip start_addr_d : UInt<32>, flip end_addr_d : UInt<32>, flip lsu_pkt_d : {valid : UInt<1>, bits : {fast_int : UInt<1>, stack : UInt<1>, by : UInt<1>, half : UInt<1>, word : UInt<1>, dword : UInt<1>, load : UInt<1>, store : UInt<1>, unsign : UInt<1>, dma : UInt<1>, store_data_bypass_d : UInt<1>, load_ldst_bypass_d : UInt<1>, store_data_bypass_m : UInt<1>}}, flip dec_tlu_mrac_ff : UInt<32>, flip rs1_region_d : UInt<4>, flip rs1_d : UInt<32>, is_sideeffects_m : UInt<1>, addr_in_dccm_d : UInt<1>, addr_in_pic_d : UInt<1>, addr_external_d : UInt<1>, access_fault_d : UInt<1>, misaligned_fault_d : UInt<1>, exc_mscause_d : UInt<4>, fir_dccm_access_error_d : UInt<1>, fir_nondccm_access_error_d : UInt<1>, flip scan_mode : UInt<1>}
|
|
|
|
node _T = bits(io.start_addr_d, 31, 28) @[lib.scala 370:27]
|
|
node start_addr_in_dccm_region_d = eq(_T, UInt<4>("h0f")) @[lib.scala 370:49]
|
|
wire start_addr_in_dccm_d : UInt<1> @[lib.scala 371:26]
|
|
node _T_1 = bits(io.start_addr_d, 31, 16) @[lib.scala 375:24]
|
|
node _T_2 = eq(_T_1, UInt<16>("h0f004")) @[lib.scala 375:39]
|
|
start_addr_in_dccm_d <= _T_2 @[lib.scala 375:16]
|
|
node _T_3 = bits(io.end_addr_d, 31, 28) @[lib.scala 370:27]
|
|
node end_addr_in_dccm_region_d = eq(_T_3, UInt<4>("h0f")) @[lib.scala 370:49]
|
|
wire end_addr_in_dccm_d : UInt<1> @[lib.scala 371:26]
|
|
node _T_4 = bits(io.end_addr_d, 31, 16) @[lib.scala 375:24]
|
|
node _T_5 = eq(_T_4, UInt<16>("h0f004")) @[lib.scala 375:39]
|
|
end_addr_in_dccm_d <= _T_5 @[lib.scala 375:16]
|
|
wire addr_in_iccm : UInt<1>
|
|
addr_in_iccm <= UInt<1>("h00")
|
|
node _T_6 = bits(io.start_addr_d, 31, 28) @[lsu_addrcheck.scala 42:37]
|
|
node _T_7 = eq(_T_6, UInt<4>("h0e")) @[lsu_addrcheck.scala 42:45]
|
|
addr_in_iccm <= _T_7 @[lsu_addrcheck.scala 42:18]
|
|
node _T_8 = bits(io.start_addr_d, 31, 0) @[lsu_addrcheck.scala 50:89]
|
|
node _T_9 = bits(_T_8, 31, 28) @[lib.scala 370:27]
|
|
node start_addr_in_pic_region_d = eq(_T_9, UInt<4>("h0f")) @[lib.scala 370:49]
|
|
wire start_addr_in_pic_d : UInt<1> @[lib.scala 371:26]
|
|
node _T_10 = bits(_T_8, 31, 15) @[lib.scala 375:24]
|
|
node _T_11 = eq(_T_10, UInt<17>("h01e018")) @[lib.scala 375:39]
|
|
start_addr_in_pic_d <= _T_11 @[lib.scala 375:16]
|
|
node _T_12 = bits(io.end_addr_d, 31, 0) @[lsu_addrcheck.scala 52:83]
|
|
node _T_13 = bits(_T_12, 31, 28) @[lib.scala 370:27]
|
|
node end_addr_in_pic_region_d = eq(_T_13, UInt<4>("h0f")) @[lib.scala 370:49]
|
|
wire end_addr_in_pic_d : UInt<1> @[lib.scala 371:26]
|
|
node _T_14 = bits(_T_12, 31, 15) @[lib.scala 375:24]
|
|
node _T_15 = eq(_T_14, UInt<17>("h01e018")) @[lib.scala 375:39]
|
|
end_addr_in_pic_d <= _T_15 @[lib.scala 375:16]
|
|
node start_addr_dccm_or_pic = or(start_addr_in_dccm_region_d, start_addr_in_pic_region_d) @[lsu_addrcheck.scala 54:60]
|
|
node _T_16 = bits(io.rs1_region_d, 3, 0) @[lsu_addrcheck.scala 55:49]
|
|
node _T_17 = eq(_T_16, UInt<4>("h0f")) @[lsu_addrcheck.scala 55:55]
|
|
node _T_18 = and(_T_17, UInt<1>("h01")) @[lsu_addrcheck.scala 55:74]
|
|
node _T_19 = bits(io.rs1_region_d, 3, 0) @[lsu_addrcheck.scala 55:109]
|
|
node _T_20 = eq(_T_19, UInt<4>("h0f")) @[lsu_addrcheck.scala 55:115]
|
|
node base_reg_dccm_or_pic = or(_T_18, _T_20) @[lsu_addrcheck.scala 55:91]
|
|
node _T_21 = and(start_addr_in_dccm_d, end_addr_in_dccm_d) @[lsu_addrcheck.scala 56:57]
|
|
io.addr_in_dccm_d <= _T_21 @[lsu_addrcheck.scala 56:32]
|
|
node _T_22 = and(start_addr_in_pic_d, end_addr_in_pic_d) @[lsu_addrcheck.scala 57:56]
|
|
io.addr_in_pic_d <= _T_22 @[lsu_addrcheck.scala 57:32]
|
|
node _T_23 = or(start_addr_in_dccm_region_d, start_addr_in_pic_region_d) @[lsu_addrcheck.scala 59:63]
|
|
node _T_24 = not(_T_23) @[lsu_addrcheck.scala 59:33]
|
|
io.addr_external_d <= _T_24 @[lsu_addrcheck.scala 59:30]
|
|
node _T_25 = bits(io.start_addr_d, 31, 28) @[lsu_addrcheck.scala 60:51]
|
|
node csr_idx = cat(_T_25, UInt<1>("h01")) @[Cat.scala 29:58]
|
|
node _T_26 = dshr(io.dec_tlu_mrac_ff, csr_idx) @[lsu_addrcheck.scala 61:50]
|
|
node _T_27 = bits(_T_26, 0, 0) @[lsu_addrcheck.scala 61:50]
|
|
node _T_28 = or(start_addr_in_dccm_region_d, start_addr_in_pic_region_d) @[lsu_addrcheck.scala 61:92]
|
|
node _T_29 = or(_T_28, addr_in_iccm) @[lsu_addrcheck.scala 61:121]
|
|
node _T_30 = eq(_T_29, UInt<1>("h00")) @[lsu_addrcheck.scala 61:62]
|
|
node _T_31 = and(_T_27, _T_30) @[lsu_addrcheck.scala 61:60]
|
|
node _T_32 = and(_T_31, io.lsu_pkt_d.valid) @[lsu_addrcheck.scala 61:137]
|
|
node _T_33 = or(io.lsu_pkt_d.bits.store, io.lsu_pkt_d.bits.load) @[lsu_addrcheck.scala 61:185]
|
|
node is_sideeffects_d = and(_T_32, _T_33) @[lsu_addrcheck.scala 61:158]
|
|
node _T_34 = bits(io.start_addr_d, 1, 0) @[lsu_addrcheck.scala 62:74]
|
|
node _T_35 = eq(_T_34, UInt<1>("h00")) @[lsu_addrcheck.scala 62:80]
|
|
node _T_36 = and(io.lsu_pkt_d.bits.word, _T_35) @[lsu_addrcheck.scala 62:56]
|
|
node _T_37 = bits(io.start_addr_d, 0, 0) @[lsu_addrcheck.scala 62:134]
|
|
node _T_38 = eq(_T_37, UInt<1>("h00")) @[lsu_addrcheck.scala 62:138]
|
|
node _T_39 = and(io.lsu_pkt_d.bits.half, _T_38) @[lsu_addrcheck.scala 62:116]
|
|
node _T_40 = or(_T_36, _T_39) @[lsu_addrcheck.scala 62:90]
|
|
node is_aligned_d = or(_T_40, io.lsu_pkt_d.bits.by) @[lsu_addrcheck.scala 62:148]
|
|
node _T_41 = cat(UInt<1>("h00"), UInt<1>("h00")) @[Cat.scala 29:58]
|
|
node _T_42 = cat(UInt<1>("h00"), UInt<1>("h00")) @[Cat.scala 29:58]
|
|
node _T_43 = cat(_T_42, _T_41) @[Cat.scala 29:58]
|
|
node _T_44 = cat(UInt<1>("h01"), UInt<1>("h01")) @[Cat.scala 29:58]
|
|
node _T_45 = cat(UInt<1>("h01"), UInt<1>("h01")) @[Cat.scala 29:58]
|
|
node _T_46 = cat(_T_45, _T_44) @[Cat.scala 29:58]
|
|
node _T_47 = cat(_T_46, _T_43) @[Cat.scala 29:58]
|
|
node _T_48 = orr(_T_47) @[lsu_addrcheck.scala 66:99]
|
|
node _T_49 = eq(_T_48, UInt<1>("h00")) @[lsu_addrcheck.scala 65:33]
|
|
node _T_50 = bits(io.start_addr_d, 31, 0) @[lsu_addrcheck.scala 67:49]
|
|
node _T_51 = or(_T_50, UInt<31>("h07fffffff")) @[lsu_addrcheck.scala 67:56]
|
|
node _T_52 = or(UInt<1>("h00"), UInt<31>("h07fffffff")) @[lsu_addrcheck.scala 67:121]
|
|
node _T_53 = eq(_T_51, _T_52) @[lsu_addrcheck.scala 67:88]
|
|
node _T_54 = and(UInt<1>("h01"), _T_53) @[lsu_addrcheck.scala 67:30]
|
|
node _T_55 = bits(io.start_addr_d, 31, 0) @[lsu_addrcheck.scala 68:49]
|
|
node _T_56 = or(_T_55, UInt<30>("h03fffffff")) @[lsu_addrcheck.scala 68:56]
|
|
node _T_57 = or(UInt<32>("h0c0000000"), UInt<30>("h03fffffff")) @[lsu_addrcheck.scala 68:121]
|
|
node _T_58 = eq(_T_56, _T_57) @[lsu_addrcheck.scala 68:88]
|
|
node _T_59 = and(UInt<1>("h01"), _T_58) @[lsu_addrcheck.scala 68:30]
|
|
node _T_60 = or(_T_54, _T_59) @[lsu_addrcheck.scala 67:153]
|
|
node _T_61 = bits(io.start_addr_d, 31, 0) @[lsu_addrcheck.scala 69:49]
|
|
node _T_62 = or(_T_61, UInt<29>("h01fffffff")) @[lsu_addrcheck.scala 69:56]
|
|
node _T_63 = or(UInt<32>("h0a0000000"), UInt<29>("h01fffffff")) @[lsu_addrcheck.scala 69:121]
|
|
node _T_64 = eq(_T_62, _T_63) @[lsu_addrcheck.scala 69:88]
|
|
node _T_65 = and(UInt<1>("h01"), _T_64) @[lsu_addrcheck.scala 69:30]
|
|
node _T_66 = or(_T_60, _T_65) @[lsu_addrcheck.scala 68:153]
|
|
node _T_67 = bits(io.start_addr_d, 31, 0) @[lsu_addrcheck.scala 70:49]
|
|
node _T_68 = or(_T_67, UInt<28>("h0fffffff")) @[lsu_addrcheck.scala 70:56]
|
|
node _T_69 = or(UInt<32>("h080000000"), UInt<28>("h0fffffff")) @[lsu_addrcheck.scala 70:121]
|
|
node _T_70 = eq(_T_68, _T_69) @[lsu_addrcheck.scala 70:88]
|
|
node _T_71 = and(UInt<1>("h01"), _T_70) @[lsu_addrcheck.scala 70:30]
|
|
node _T_72 = or(_T_66, _T_71) @[lsu_addrcheck.scala 69:153]
|
|
node _T_73 = bits(io.start_addr_d, 31, 0) @[lsu_addrcheck.scala 71:49]
|
|
node _T_74 = or(_T_73, UInt<32>("h0ffffffff")) @[lsu_addrcheck.scala 71:56]
|
|
node _T_75 = or(UInt<1>("h00"), UInt<32>("h0ffffffff")) @[lsu_addrcheck.scala 71:121]
|
|
node _T_76 = eq(_T_74, _T_75) @[lsu_addrcheck.scala 71:88]
|
|
node _T_77 = and(UInt<1>("h00"), _T_76) @[lsu_addrcheck.scala 71:30]
|
|
node _T_78 = or(_T_72, _T_77) @[lsu_addrcheck.scala 70:153]
|
|
node _T_79 = bits(io.start_addr_d, 31, 0) @[lsu_addrcheck.scala 72:49]
|
|
node _T_80 = or(_T_79, UInt<32>("h0ffffffff")) @[lsu_addrcheck.scala 72:56]
|
|
node _T_81 = or(UInt<1>("h00"), UInt<32>("h0ffffffff")) @[lsu_addrcheck.scala 72:121]
|
|
node _T_82 = eq(_T_80, _T_81) @[lsu_addrcheck.scala 72:88]
|
|
node _T_83 = and(UInt<1>("h00"), _T_82) @[lsu_addrcheck.scala 72:30]
|
|
node _T_84 = or(_T_78, _T_83) @[lsu_addrcheck.scala 71:153]
|
|
node _T_85 = bits(io.start_addr_d, 31, 0) @[lsu_addrcheck.scala 73:49]
|
|
node _T_86 = or(_T_85, UInt<32>("h0ffffffff")) @[lsu_addrcheck.scala 73:56]
|
|
node _T_87 = or(UInt<1>("h00"), UInt<32>("h0ffffffff")) @[lsu_addrcheck.scala 73:121]
|
|
node _T_88 = eq(_T_86, _T_87) @[lsu_addrcheck.scala 73:88]
|
|
node _T_89 = and(UInt<1>("h00"), _T_88) @[lsu_addrcheck.scala 73:30]
|
|
node _T_90 = or(_T_84, _T_89) @[lsu_addrcheck.scala 72:153]
|
|
node _T_91 = bits(io.start_addr_d, 31, 0) @[lsu_addrcheck.scala 74:49]
|
|
node _T_92 = or(_T_91, UInt<32>("h0ffffffff")) @[lsu_addrcheck.scala 74:56]
|
|
node _T_93 = or(UInt<1>("h00"), UInt<32>("h0ffffffff")) @[lsu_addrcheck.scala 74:121]
|
|
node _T_94 = eq(_T_92, _T_93) @[lsu_addrcheck.scala 74:88]
|
|
node _T_95 = and(UInt<1>("h00"), _T_94) @[lsu_addrcheck.scala 74:30]
|
|
node _T_96 = or(_T_90, _T_95) @[lsu_addrcheck.scala 73:153]
|
|
node _T_97 = bits(io.end_addr_d, 31, 0) @[lsu_addrcheck.scala 76:48]
|
|
node _T_98 = or(_T_97, UInt<31>("h07fffffff")) @[lsu_addrcheck.scala 76:57]
|
|
node _T_99 = or(UInt<1>("h00"), UInt<31>("h07fffffff")) @[lsu_addrcheck.scala 76:122]
|
|
node _T_100 = eq(_T_98, _T_99) @[lsu_addrcheck.scala 76:89]
|
|
node _T_101 = and(UInt<1>("h01"), _T_100) @[lsu_addrcheck.scala 76:31]
|
|
node _T_102 = bits(io.end_addr_d, 31, 0) @[lsu_addrcheck.scala 77:49]
|
|
node _T_103 = or(_T_102, UInt<30>("h03fffffff")) @[lsu_addrcheck.scala 77:58]
|
|
node _T_104 = or(UInt<32>("h0c0000000"), UInt<30>("h03fffffff")) @[lsu_addrcheck.scala 77:123]
|
|
node _T_105 = eq(_T_103, _T_104) @[lsu_addrcheck.scala 77:90]
|
|
node _T_106 = and(UInt<1>("h01"), _T_105) @[lsu_addrcheck.scala 77:32]
|
|
node _T_107 = or(_T_101, _T_106) @[lsu_addrcheck.scala 76:154]
|
|
node _T_108 = bits(io.end_addr_d, 31, 0) @[lsu_addrcheck.scala 78:49]
|
|
node _T_109 = or(_T_108, UInt<29>("h01fffffff")) @[lsu_addrcheck.scala 78:58]
|
|
node _T_110 = or(UInt<32>("h0a0000000"), UInt<29>("h01fffffff")) @[lsu_addrcheck.scala 78:123]
|
|
node _T_111 = eq(_T_109, _T_110) @[lsu_addrcheck.scala 78:90]
|
|
node _T_112 = and(UInt<1>("h01"), _T_111) @[lsu_addrcheck.scala 78:32]
|
|
node _T_113 = or(_T_107, _T_112) @[lsu_addrcheck.scala 77:155]
|
|
node _T_114 = bits(io.end_addr_d, 31, 0) @[lsu_addrcheck.scala 79:49]
|
|
node _T_115 = or(_T_114, UInt<28>("h0fffffff")) @[lsu_addrcheck.scala 79:58]
|
|
node _T_116 = or(UInt<32>("h080000000"), UInt<28>("h0fffffff")) @[lsu_addrcheck.scala 79:123]
|
|
node _T_117 = eq(_T_115, _T_116) @[lsu_addrcheck.scala 79:90]
|
|
node _T_118 = and(UInt<1>("h01"), _T_117) @[lsu_addrcheck.scala 79:32]
|
|
node _T_119 = or(_T_113, _T_118) @[lsu_addrcheck.scala 78:155]
|
|
node _T_120 = bits(io.end_addr_d, 31, 0) @[lsu_addrcheck.scala 80:49]
|
|
node _T_121 = or(_T_120, UInt<32>("h0ffffffff")) @[lsu_addrcheck.scala 80:58]
|
|
node _T_122 = or(UInt<1>("h00"), UInt<32>("h0ffffffff")) @[lsu_addrcheck.scala 80:123]
|
|
node _T_123 = eq(_T_121, _T_122) @[lsu_addrcheck.scala 80:90]
|
|
node _T_124 = and(UInt<1>("h00"), _T_123) @[lsu_addrcheck.scala 80:32]
|
|
node _T_125 = or(_T_119, _T_124) @[lsu_addrcheck.scala 79:155]
|
|
node _T_126 = bits(io.end_addr_d, 31, 0) @[lsu_addrcheck.scala 81:49]
|
|
node _T_127 = or(_T_126, UInt<32>("h0ffffffff")) @[lsu_addrcheck.scala 81:58]
|
|
node _T_128 = or(UInt<1>("h00"), UInt<32>("h0ffffffff")) @[lsu_addrcheck.scala 81:123]
|
|
node _T_129 = eq(_T_127, _T_128) @[lsu_addrcheck.scala 81:90]
|
|
node _T_130 = and(UInt<1>("h00"), _T_129) @[lsu_addrcheck.scala 81:32]
|
|
node _T_131 = or(_T_125, _T_130) @[lsu_addrcheck.scala 80:155]
|
|
node _T_132 = bits(io.end_addr_d, 31, 0) @[lsu_addrcheck.scala 82:49]
|
|
node _T_133 = or(_T_132, UInt<32>("h0ffffffff")) @[lsu_addrcheck.scala 82:58]
|
|
node _T_134 = or(UInt<1>("h00"), UInt<32>("h0ffffffff")) @[lsu_addrcheck.scala 82:123]
|
|
node _T_135 = eq(_T_133, _T_134) @[lsu_addrcheck.scala 82:90]
|
|
node _T_136 = and(UInt<1>("h00"), _T_135) @[lsu_addrcheck.scala 82:32]
|
|
node _T_137 = or(_T_131, _T_136) @[lsu_addrcheck.scala 81:155]
|
|
node _T_138 = bits(io.end_addr_d, 31, 0) @[lsu_addrcheck.scala 83:49]
|
|
node _T_139 = or(_T_138, UInt<32>("h0ffffffff")) @[lsu_addrcheck.scala 83:58]
|
|
node _T_140 = or(UInt<1>("h00"), UInt<32>("h0ffffffff")) @[lsu_addrcheck.scala 83:123]
|
|
node _T_141 = eq(_T_139, _T_140) @[lsu_addrcheck.scala 83:90]
|
|
node _T_142 = and(UInt<1>("h00"), _T_141) @[lsu_addrcheck.scala 83:32]
|
|
node _T_143 = or(_T_137, _T_142) @[lsu_addrcheck.scala 82:155]
|
|
node _T_144 = and(_T_96, _T_143) @[lsu_addrcheck.scala 75:7]
|
|
node non_dccm_access_ok = or(_T_49, _T_144) @[lsu_addrcheck.scala 66:104]
|
|
node regpred_access_fault_d = xor(start_addr_dccm_or_pic, base_reg_dccm_or_pic) @[lsu_addrcheck.scala 85:57]
|
|
node _T_145 = bits(io.start_addr_d, 1, 0) @[lsu_addrcheck.scala 86:70]
|
|
node _T_146 = neq(_T_145, UInt<2>("h00")) @[lsu_addrcheck.scala 86:76]
|
|
node _T_147 = eq(io.lsu_pkt_d.bits.word, UInt<1>("h00")) @[lsu_addrcheck.scala 86:92]
|
|
node _T_148 = or(_T_146, _T_147) @[lsu_addrcheck.scala 86:90]
|
|
node picm_access_fault_d = and(io.addr_in_pic_d, _T_148) @[lsu_addrcheck.scala 86:51]
|
|
wire unmapped_access_fault_d : UInt<1>
|
|
unmapped_access_fault_d <= UInt<1>("h01")
|
|
wire mpu_access_fault_d : UInt<1>
|
|
mpu_access_fault_d <= UInt<1>("h01")
|
|
node _T_149 = or(start_addr_in_dccm_d, start_addr_in_pic_d) @[lsu_addrcheck.scala 91:87]
|
|
node _T_150 = eq(_T_149, UInt<1>("h00")) @[lsu_addrcheck.scala 91:64]
|
|
node _T_151 = and(start_addr_in_dccm_region_d, _T_150) @[lsu_addrcheck.scala 91:62]
|
|
node _T_152 = or(end_addr_in_dccm_d, end_addr_in_pic_d) @[lsu_addrcheck.scala 93:57]
|
|
node _T_153 = eq(_T_152, UInt<1>("h00")) @[lsu_addrcheck.scala 93:36]
|
|
node _T_154 = and(end_addr_in_dccm_region_d, _T_153) @[lsu_addrcheck.scala 93:34]
|
|
node _T_155 = or(_T_151, _T_154) @[lsu_addrcheck.scala 91:112]
|
|
node _T_156 = and(start_addr_in_dccm_d, end_addr_in_pic_d) @[lsu_addrcheck.scala 95:29]
|
|
node _T_157 = or(_T_155, _T_156) @[lsu_addrcheck.scala 93:85]
|
|
node _T_158 = and(start_addr_in_pic_d, end_addr_in_dccm_d) @[lsu_addrcheck.scala 97:29]
|
|
node _T_159 = or(_T_157, _T_158) @[lsu_addrcheck.scala 95:85]
|
|
unmapped_access_fault_d <= _T_159 @[lsu_addrcheck.scala 91:29]
|
|
node _T_160 = eq(start_addr_in_dccm_region_d, UInt<1>("h00")) @[lsu_addrcheck.scala 99:33]
|
|
node _T_161 = eq(non_dccm_access_ok, UInt<1>("h00")) @[lsu_addrcheck.scala 99:64]
|
|
node _T_162 = and(_T_160, _T_161) @[lsu_addrcheck.scala 99:62]
|
|
mpu_access_fault_d <= _T_162 @[lsu_addrcheck.scala 99:29]
|
|
node _T_163 = or(unmapped_access_fault_d, mpu_access_fault_d) @[lsu_addrcheck.scala 111:49]
|
|
node _T_164 = or(_T_163, picm_access_fault_d) @[lsu_addrcheck.scala 111:70]
|
|
node _T_165 = or(_T_164, regpred_access_fault_d) @[lsu_addrcheck.scala 111:92]
|
|
node _T_166 = and(_T_165, io.lsu_pkt_d.valid) @[lsu_addrcheck.scala 111:118]
|
|
node _T_167 = eq(io.lsu_pkt_d.bits.dma, UInt<1>("h00")) @[lsu_addrcheck.scala 111:141]
|
|
node _T_168 = and(_T_166, _T_167) @[lsu_addrcheck.scala 111:139]
|
|
io.access_fault_d <= _T_168 @[lsu_addrcheck.scala 111:21]
|
|
node _T_169 = bits(unmapped_access_fault_d, 0, 0) @[lsu_addrcheck.scala 112:60]
|
|
node _T_170 = bits(mpu_access_fault_d, 0, 0) @[lsu_addrcheck.scala 112:100]
|
|
node _T_171 = bits(regpred_access_fault_d, 0, 0) @[lsu_addrcheck.scala 112:144]
|
|
node _T_172 = bits(picm_access_fault_d, 0, 0) @[lsu_addrcheck.scala 112:185]
|
|
node _T_173 = mux(_T_172, UInt<4>("h06"), UInt<4>("h00")) @[lsu_addrcheck.scala 112:164]
|
|
node _T_174 = mux(_T_171, UInt<4>("h05"), _T_173) @[lsu_addrcheck.scala 112:120]
|
|
node _T_175 = mux(_T_170, UInt<4>("h03"), _T_174) @[lsu_addrcheck.scala 112:80]
|
|
node access_fault_mscause_d = mux(_T_169, UInt<4>("h02"), _T_175) @[lsu_addrcheck.scala 112:35]
|
|
node _T_176 = bits(io.start_addr_d, 31, 28) @[lsu_addrcheck.scala 113:53]
|
|
node _T_177 = bits(io.end_addr_d, 31, 28) @[lsu_addrcheck.scala 113:78]
|
|
node regcross_misaligned_fault_d = neq(_T_176, _T_177) @[lsu_addrcheck.scala 113:61]
|
|
node _T_178 = eq(is_aligned_d, UInt<1>("h00")) @[lsu_addrcheck.scala 114:59]
|
|
node sideeffect_misaligned_fault_d = and(is_sideeffects_d, _T_178) @[lsu_addrcheck.scala 114:57]
|
|
node _T_179 = and(sideeffect_misaligned_fault_d, io.addr_external_d) @[lsu_addrcheck.scala 115:90]
|
|
node _T_180 = or(regcross_misaligned_fault_d, _T_179) @[lsu_addrcheck.scala 115:57]
|
|
node _T_181 = and(_T_180, io.lsu_pkt_d.valid) @[lsu_addrcheck.scala 115:113]
|
|
node _T_182 = eq(io.lsu_pkt_d.bits.dma, UInt<1>("h00")) @[lsu_addrcheck.scala 115:136]
|
|
node _T_183 = and(_T_181, _T_182) @[lsu_addrcheck.scala 115:134]
|
|
io.misaligned_fault_d <= _T_183 @[lsu_addrcheck.scala 115:25]
|
|
node _T_184 = bits(sideeffect_misaligned_fault_d, 0, 0) @[lsu_addrcheck.scala 116:111]
|
|
node _T_185 = mux(_T_184, UInt<4>("h01"), UInt<4>("h00")) @[lsu_addrcheck.scala 116:80]
|
|
node misaligned_fault_mscause_d = mux(regcross_misaligned_fault_d, UInt<4>("h02"), _T_185) @[lsu_addrcheck.scala 116:39]
|
|
node _T_186 = bits(io.misaligned_fault_d, 0, 0) @[lsu_addrcheck.scala 117:50]
|
|
node _T_187 = bits(misaligned_fault_mscause_d, 3, 0) @[lsu_addrcheck.scala 117:84]
|
|
node _T_188 = bits(access_fault_mscause_d, 3, 0) @[lsu_addrcheck.scala 117:113]
|
|
node _T_189 = mux(_T_186, _T_187, _T_188) @[lsu_addrcheck.scala 117:27]
|
|
io.exc_mscause_d <= _T_189 @[lsu_addrcheck.scala 117:21]
|
|
node _T_190 = eq(start_addr_in_dccm_d, UInt<1>("h00")) @[lsu_addrcheck.scala 118:66]
|
|
node _T_191 = and(start_addr_in_dccm_region_d, _T_190) @[lsu_addrcheck.scala 118:64]
|
|
node _T_192 = eq(end_addr_in_dccm_d, UInt<1>("h00")) @[lsu_addrcheck.scala 118:120]
|
|
node _T_193 = and(end_addr_in_dccm_region_d, _T_192) @[lsu_addrcheck.scala 118:118]
|
|
node _T_194 = or(_T_191, _T_193) @[lsu_addrcheck.scala 118:88]
|
|
node _T_195 = and(_T_194, io.lsu_pkt_d.valid) @[lsu_addrcheck.scala 118:142]
|
|
node _T_196 = and(_T_195, io.lsu_pkt_d.bits.fast_int) @[lsu_addrcheck.scala 118:163]
|
|
io.fir_dccm_access_error_d <= _T_196 @[lsu_addrcheck.scala 118:31]
|
|
node _T_197 = and(start_addr_in_dccm_region_d, end_addr_in_dccm_region_d) @[lsu_addrcheck.scala 119:66]
|
|
node _T_198 = eq(_T_197, UInt<1>("h00")) @[lsu_addrcheck.scala 119:36]
|
|
node _T_199 = and(_T_198, io.lsu_pkt_d.valid) @[lsu_addrcheck.scala 119:95]
|
|
node _T_200 = and(_T_199, io.lsu_pkt_d.bits.fast_int) @[lsu_addrcheck.scala 119:116]
|
|
io.fir_nondccm_access_error_d <= _T_200 @[lsu_addrcheck.scala 119:33]
|
|
reg _T_201 : UInt<1>, io.lsu_c2_m_clk with : (reset => (reset, UInt<1>("h00"))) @[lsu_addrcheck.scala 121:60]
|
|
_T_201 <= is_sideeffects_d @[lsu_addrcheck.scala 121:60]
|
|
io.is_sideeffects_m <= _T_201 @[lsu_addrcheck.scala 121:50]
|
|
|
|
extmodule gated_latch :
|
|
output Q : Clock
|
|
input CK : Clock
|
|
input EN : UInt<1>
|
|
input SE : UInt<1>
|
|
|
|
defname = gated_latch
|
|
|
|
|
|
module rvclkhdr :
|
|
input clock : Clock
|
|
input reset : Reset
|
|
output io : {l1clk : Clock, flip clk : Clock, flip en : UInt<1>, flip scan_mode : UInt<1>}
|
|
|
|
inst clkhdr of gated_latch @[lib.scala 334:26]
|
|
clkhdr.SE is invalid
|
|
clkhdr.EN is invalid
|
|
clkhdr.CK is invalid
|
|
clkhdr.Q is invalid
|
|
io.l1clk <= clkhdr.Q @[lib.scala 335:14]
|
|
clkhdr.CK <= io.clk @[lib.scala 336:18]
|
|
clkhdr.EN <= io.en @[lib.scala 337:18]
|
|
clkhdr.SE <= io.scan_mode @[lib.scala 338:18]
|
|
|
|
extmodule gated_latch_1 :
|
|
output Q : Clock
|
|
input CK : Clock
|
|
input EN : UInt<1>
|
|
input SE : UInt<1>
|
|
|
|
defname = gated_latch
|
|
|
|
|
|
module rvclkhdr_1 :
|
|
input clock : Clock
|
|
input reset : Reset
|
|
output io : {l1clk : Clock, flip clk : Clock, flip en : UInt<1>, flip scan_mode : UInt<1>}
|
|
|
|
inst clkhdr of gated_latch_1 @[lib.scala 334:26]
|
|
clkhdr.SE is invalid
|
|
clkhdr.EN is invalid
|
|
clkhdr.CK is invalid
|
|
clkhdr.Q is invalid
|
|
io.l1clk <= clkhdr.Q @[lib.scala 335:14]
|
|
clkhdr.CK <= io.clk @[lib.scala 336:18]
|
|
clkhdr.EN <= io.en @[lib.scala 337:18]
|
|
clkhdr.SE <= io.scan_mode @[lib.scala 338:18]
|
|
|
|
extmodule gated_latch_2 :
|
|
output Q : Clock
|
|
input CK : Clock
|
|
input EN : UInt<1>
|
|
input SE : UInt<1>
|
|
|
|
defname = gated_latch
|
|
|
|
|
|
module rvclkhdr_2 :
|
|
input clock : Clock
|
|
input reset : Reset
|
|
output io : {l1clk : Clock, flip clk : Clock, flip en : UInt<1>, flip scan_mode : UInt<1>}
|
|
|
|
inst clkhdr of gated_latch_2 @[lib.scala 334:26]
|
|
clkhdr.SE is invalid
|
|
clkhdr.EN is invalid
|
|
clkhdr.CK is invalid
|
|
clkhdr.Q is invalid
|
|
io.l1clk <= clkhdr.Q @[lib.scala 335:14]
|
|
clkhdr.CK <= io.clk @[lib.scala 336:18]
|
|
clkhdr.EN <= io.en @[lib.scala 337:18]
|
|
clkhdr.SE <= io.scan_mode @[lib.scala 338:18]
|
|
|
|
extmodule gated_latch_3 :
|
|
output Q : Clock
|
|
input CK : Clock
|
|
input EN : UInt<1>
|
|
input SE : UInt<1>
|
|
|
|
defname = gated_latch
|
|
|
|
|
|
module rvclkhdr_3 :
|
|
input clock : Clock
|
|
input reset : Reset
|
|
output io : {l1clk : Clock, flip clk : Clock, flip en : UInt<1>, flip scan_mode : UInt<1>}
|
|
|
|
inst clkhdr of gated_latch_3 @[lib.scala 334:26]
|
|
clkhdr.SE is invalid
|
|
clkhdr.EN is invalid
|
|
clkhdr.CK is invalid
|
|
clkhdr.Q is invalid
|
|
io.l1clk <= clkhdr.Q @[lib.scala 335:14]
|
|
clkhdr.CK <= io.clk @[lib.scala 336:18]
|
|
clkhdr.EN <= io.en @[lib.scala 337:18]
|
|
clkhdr.SE <= io.scan_mode @[lib.scala 338:18]
|
|
|
|
module lsu_lsc_ctl :
|
|
input clock : Clock
|
|
input reset : AsyncReset
|
|
output io : {flip clk_override : UInt<1>, flip lsu_c1_m_clk : Clock, flip lsu_c1_r_clk : Clock, flip lsu_c2_m_clk : Clock, flip lsu_c2_r_clk : Clock, flip lsu_store_c1_m_clk : Clock, flip lsu_ld_data_r : UInt<32>, flip lsu_ld_data_corr_r : UInt<32>, flip lsu_single_ecc_error_r : UInt<1>, flip lsu_double_ecc_error_r : UInt<1>, flip lsu_ld_data_m : UInt<32>, flip lsu_single_ecc_error_m : UInt<1>, flip lsu_double_ecc_error_m : UInt<1>, flip flush_m_up : UInt<1>, flip flush_r : UInt<1>, flip ldst_dual_d : UInt<1>, flip ldst_dual_m : UInt<1>, flip ldst_dual_r : UInt<1>, lsu_exu : {flip exu_lsu_rs1_d : UInt<32>, flip exu_lsu_rs2_d : UInt<32>, lsu_result_m : UInt<32>}, flip lsu_p : {valid : UInt<1>, bits : {fast_int : UInt<1>, stack : UInt<1>, by : UInt<1>, half : UInt<1>, word : UInt<1>, dword : UInt<1>, load : UInt<1>, store : UInt<1>, unsign : UInt<1>, dma : UInt<1>, store_data_bypass_d : UInt<1>, load_ldst_bypass_d : UInt<1>, store_data_bypass_m : UInt<1>}}, flip dec_lsu_valid_raw_d : UInt<1>, flip dec_lsu_offset_d : UInt<12>, flip picm_mask_data_m : UInt<32>, flip bus_read_data_m : UInt<32>, lsu_result_corr_r : UInt<32>, lsu_addr_d : UInt<32>, lsu_addr_m : UInt<32>, lsu_addr_r : UInt<32>, end_addr_d : UInt<32>, end_addr_m : UInt<32>, end_addr_r : UInt<32>, store_data_m : UInt<32>, flip dec_tlu_mrac_ff : UInt<32>, lsu_exc_m : UInt<1>, is_sideeffects_m : UInt<1>, lsu_commit_r : UInt<1>, lsu_single_ecc_error_incr : UInt<1>, lsu_error_pkt_r : {valid : UInt<1>, bits : {single_ecc_error : UInt<1>, inst_type : UInt<1>, exc_type : UInt<1>, mscause : UInt<4>, addr : UInt<32>}}, lsu_fir_addr : UInt<31>, lsu_fir_error : UInt<2>, addr_in_dccm_d : UInt<1>, addr_in_dccm_m : UInt<1>, addr_in_dccm_r : UInt<1>, addr_in_pic_d : UInt<1>, addr_in_pic_m : UInt<1>, addr_in_pic_r : UInt<1>, addr_external_m : UInt<1>, dma_lsc_ctl : {flip dma_dccm_req : UInt<1>, flip dma_mem_addr : UInt<32>, flip dma_mem_sz : UInt<3>, flip dma_mem_write : UInt<1>, flip dma_mem_wdata : UInt<64>}, lsu_pkt_d : {valid : UInt<1>, bits : {fast_int : UInt<1>, stack : UInt<1>, by : UInt<1>, half : UInt<1>, word : UInt<1>, dword : UInt<1>, load : UInt<1>, store : UInt<1>, unsign : UInt<1>, dma : UInt<1>, store_data_bypass_d : UInt<1>, load_ldst_bypass_d : UInt<1>, store_data_bypass_m : UInt<1>}}, lsu_pkt_m : {valid : UInt<1>, bits : {fast_int : UInt<1>, stack : UInt<1>, by : UInt<1>, half : UInt<1>, word : UInt<1>, dword : UInt<1>, load : UInt<1>, store : UInt<1>, unsign : UInt<1>, dma : UInt<1>, store_data_bypass_d : UInt<1>, load_ldst_bypass_d : UInt<1>, store_data_bypass_m : UInt<1>}}, lsu_pkt_r : {valid : UInt<1>, bits : {fast_int : UInt<1>, stack : UInt<1>, by : UInt<1>, half : UInt<1>, word : UInt<1>, dword : UInt<1>, load : UInt<1>, store : UInt<1>, unsign : UInt<1>, dma : UInt<1>, store_data_bypass_d : UInt<1>, load_ldst_bypass_d : UInt<1>, store_data_bypass_m : UInt<1>}}, flip scan_mode : UInt<1>}
|
|
|
|
wire end_addr_pre_m : UInt<29>
|
|
end_addr_pre_m <= UInt<29>("h00")
|
|
wire end_addr_pre_r : UInt<29>
|
|
end_addr_pre_r <= UInt<29>("h00")
|
|
wire dma_pkt_d : {valid : UInt<1>, bits : {fast_int : UInt<1>, stack : UInt<1>, by : UInt<1>, half : UInt<1>, word : UInt<1>, dword : UInt<1>, load : UInt<1>, store : UInt<1>, unsign : UInt<1>, dma : UInt<1>, store_data_bypass_d : UInt<1>, load_ldst_bypass_d : UInt<1>, store_data_bypass_m : UInt<1>}} @[lsu_lsc_ctl.scala 93:29]
|
|
wire lsu_pkt_m_in : {valid : UInt<1>, bits : {fast_int : UInt<1>, stack : UInt<1>, by : UInt<1>, half : UInt<1>, word : UInt<1>, dword : UInt<1>, load : UInt<1>, store : UInt<1>, unsign : UInt<1>, dma : UInt<1>, store_data_bypass_d : UInt<1>, load_ldst_bypass_d : UInt<1>, store_data_bypass_m : UInt<1>}} @[lsu_lsc_ctl.scala 94:29]
|
|
wire lsu_pkt_r_in : {valid : UInt<1>, bits : {fast_int : UInt<1>, stack : UInt<1>, by : UInt<1>, half : UInt<1>, word : UInt<1>, dword : UInt<1>, load : UInt<1>, store : UInt<1>, unsign : UInt<1>, dma : UInt<1>, store_data_bypass_d : UInt<1>, load_ldst_bypass_d : UInt<1>, store_data_bypass_m : UInt<1>}} @[lsu_lsc_ctl.scala 95:29]
|
|
wire lsu_error_pkt_m : {valid : UInt<1>, bits : {single_ecc_error : UInt<1>, inst_type : UInt<1>, exc_type : UInt<1>, mscause : UInt<4>, addr : UInt<32>}} @[lsu_lsc_ctl.scala 96:29]
|
|
wire _T : {valid : UInt<1>, bits : {single_ecc_error : UInt<1>, inst_type : UInt<1>, exc_type : UInt<1>, mscause : UInt<4>, addr : UInt<32>}} @[lsu_lsc_ctl.scala 97:35]
|
|
_T.bits.addr <= UInt<32>("h00") @[lsu_lsc_ctl.scala 97:35]
|
|
_T.bits.mscause <= UInt<4>("h00") @[lsu_lsc_ctl.scala 97:35]
|
|
_T.bits.exc_type <= UInt<1>("h00") @[lsu_lsc_ctl.scala 97:35]
|
|
_T.bits.inst_type <= UInt<1>("h00") @[lsu_lsc_ctl.scala 97:35]
|
|
_T.bits.single_ecc_error <= UInt<1>("h00") @[lsu_lsc_ctl.scala 97:35]
|
|
_T.valid <= UInt<1>("h00") @[lsu_lsc_ctl.scala 97:35]
|
|
lsu_error_pkt_m.bits.addr <= _T.bits.addr @[lsu_lsc_ctl.scala 97:20]
|
|
lsu_error_pkt_m.bits.mscause <= _T.bits.mscause @[lsu_lsc_ctl.scala 97:20]
|
|
lsu_error_pkt_m.bits.exc_type <= _T.bits.exc_type @[lsu_lsc_ctl.scala 97:20]
|
|
lsu_error_pkt_m.bits.inst_type <= _T.bits.inst_type @[lsu_lsc_ctl.scala 97:20]
|
|
lsu_error_pkt_m.bits.single_ecc_error <= _T.bits.single_ecc_error @[lsu_lsc_ctl.scala 97:20]
|
|
lsu_error_pkt_m.valid <= _T.valid @[lsu_lsc_ctl.scala 97:20]
|
|
node _T_1 = bits(io.dec_lsu_valid_raw_d, 0, 0) @[lsu_lsc_ctl.scala 99:52]
|
|
node lsu_rs1_d = mux(_T_1, io.lsu_exu.exu_lsu_rs1_d, io.dma_lsc_ctl.dma_mem_addr) @[lsu_lsc_ctl.scala 99:28]
|
|
node _T_2 = bits(io.dec_lsu_offset_d, 11, 0) @[lsu_lsc_ctl.scala 100:44]
|
|
node _T_3 = bits(io.dec_lsu_valid_raw_d, 0, 0) @[Bitwise.scala 72:15]
|
|
node _T_4 = mux(_T_3, UInt<12>("h0fff"), UInt<12>("h00")) @[Bitwise.scala 72:12]
|
|
node lsu_offset_d = and(_T_2, _T_4) @[lsu_lsc_ctl.scala 100:51]
|
|
node _T_5 = bits(io.lsu_pkt_d.bits.load_ldst_bypass_d, 0, 0) @[lsu_lsc_ctl.scala 103:66]
|
|
node rs1_d = mux(_T_5, io.lsu_exu.lsu_result_m, lsu_rs1_d) @[lsu_lsc_ctl.scala 103:28]
|
|
node _T_6 = bits(rs1_d, 11, 0) @[lib.scala 92:31]
|
|
node _T_7 = cat(UInt<1>("h00"), _T_6) @[Cat.scala 29:58]
|
|
node _T_8 = bits(lsu_offset_d, 11, 0) @[lib.scala 92:60]
|
|
node _T_9 = cat(UInt<1>("h00"), _T_8) @[Cat.scala 29:58]
|
|
node _T_10 = add(_T_7, _T_9) @[lib.scala 92:39]
|
|
node _T_11 = tail(_T_10, 1) @[lib.scala 92:39]
|
|
node _T_12 = bits(lsu_offset_d, 11, 11) @[lib.scala 93:41]
|
|
node _T_13 = bits(_T_11, 12, 12) @[lib.scala 93:50]
|
|
node _T_14 = xor(_T_12, _T_13) @[lib.scala 93:46]
|
|
node _T_15 = not(_T_14) @[lib.scala 93:33]
|
|
node _T_16 = bits(_T_15, 0, 0) @[Bitwise.scala 72:15]
|
|
node _T_17 = mux(_T_16, UInt<20>("h0fffff"), UInt<20>("h00")) @[Bitwise.scala 72:12]
|
|
node _T_18 = bits(rs1_d, 31, 12) @[lib.scala 93:63]
|
|
node _T_19 = and(_T_17, _T_18) @[lib.scala 93:58]
|
|
node _T_20 = bits(lsu_offset_d, 11, 11) @[lib.scala 94:25]
|
|
node _T_21 = not(_T_20) @[lib.scala 94:18]
|
|
node _T_22 = bits(_T_11, 12, 12) @[lib.scala 94:34]
|
|
node _T_23 = and(_T_21, _T_22) @[lib.scala 94:30]
|
|
node _T_24 = bits(_T_23, 0, 0) @[Bitwise.scala 72:15]
|
|
node _T_25 = mux(_T_24, UInt<20>("h0fffff"), UInt<20>("h00")) @[Bitwise.scala 72:12]
|
|
node _T_26 = bits(rs1_d, 31, 12) @[lib.scala 94:47]
|
|
node _T_27 = add(_T_26, UInt<1>("h01")) @[lib.scala 94:54]
|
|
node _T_28 = tail(_T_27, 1) @[lib.scala 94:54]
|
|
node _T_29 = and(_T_25, _T_28) @[lib.scala 94:41]
|
|
node _T_30 = or(_T_19, _T_29) @[lib.scala 93:72]
|
|
node _T_31 = bits(lsu_offset_d, 11, 11) @[lib.scala 95:24]
|
|
node _T_32 = bits(_T_11, 12, 12) @[lib.scala 95:34]
|
|
node _T_33 = not(_T_32) @[lib.scala 95:31]
|
|
node _T_34 = and(_T_31, _T_33) @[lib.scala 95:29]
|
|
node _T_35 = bits(_T_34, 0, 0) @[Bitwise.scala 72:15]
|
|
node _T_36 = mux(_T_35, UInt<20>("h0fffff"), UInt<20>("h00")) @[Bitwise.scala 72:12]
|
|
node _T_37 = bits(rs1_d, 31, 12) @[lib.scala 95:47]
|
|
node _T_38 = sub(_T_37, UInt<1>("h01")) @[lib.scala 95:54]
|
|
node _T_39 = tail(_T_38, 1) @[lib.scala 95:54]
|
|
node _T_40 = and(_T_36, _T_39) @[lib.scala 95:41]
|
|
node _T_41 = or(_T_30, _T_40) @[lib.scala 94:61]
|
|
node _T_42 = bits(_T_11, 11, 0) @[lib.scala 96:22]
|
|
node full_addr_d = cat(_T_41, _T_42) @[Cat.scala 29:58]
|
|
node _T_43 = bits(io.lsu_pkt_d.bits.half, 0, 0) @[Bitwise.scala 72:15]
|
|
node _T_44 = mux(_T_43, UInt<3>("h07"), UInt<3>("h00")) @[Bitwise.scala 72:12]
|
|
node _T_45 = and(_T_44, UInt<3>("h01")) @[lsu_lsc_ctl.scala 108:58]
|
|
node _T_46 = bits(io.lsu_pkt_d.bits.word, 0, 0) @[Bitwise.scala 72:15]
|
|
node _T_47 = mux(_T_46, UInt<3>("h07"), UInt<3>("h00")) @[Bitwise.scala 72:12]
|
|
node _T_48 = and(_T_47, UInt<3>("h03")) @[lsu_lsc_ctl.scala 109:40]
|
|
node _T_49 = or(_T_45, _T_48) @[lsu_lsc_ctl.scala 108:70]
|
|
node _T_50 = bits(io.lsu_pkt_d.bits.dword, 0, 0) @[Bitwise.scala 72:15]
|
|
node _T_51 = mux(_T_50, UInt<3>("h07"), UInt<3>("h00")) @[Bitwise.scala 72:12]
|
|
node _T_52 = and(_T_51, UInt<3>("h07")) @[lsu_lsc_ctl.scala 110:40]
|
|
node addr_offset_d = or(_T_49, _T_52) @[lsu_lsc_ctl.scala 109:52]
|
|
node _T_53 = bits(lsu_offset_d, 11, 11) @[lsu_lsc_ctl.scala 112:39]
|
|
node _T_54 = bits(lsu_offset_d, 11, 0) @[lsu_lsc_ctl.scala 112:52]
|
|
node _T_55 = cat(_T_53, _T_54) @[Cat.scala 29:58]
|
|
node _T_56 = mux(UInt<1>("h00"), UInt<9>("h01ff"), UInt<9>("h00")) @[Bitwise.scala 72:12]
|
|
node _T_57 = bits(addr_offset_d, 2, 0) @[lsu_lsc_ctl.scala 112:91]
|
|
node _T_58 = cat(_T_56, _T_57) @[Cat.scala 29:58]
|
|
node _T_59 = add(_T_55, _T_58) @[lsu_lsc_ctl.scala 112:60]
|
|
node end_addr_offset_d = tail(_T_59, 1) @[lsu_lsc_ctl.scala 112:60]
|
|
node _T_60 = bits(rs1_d, 31, 0) @[lsu_lsc_ctl.scala 113:32]
|
|
node _T_61 = bits(end_addr_offset_d, 12, 12) @[lsu_lsc_ctl.scala 113:70]
|
|
node _T_62 = bits(_T_61, 0, 0) @[Bitwise.scala 72:15]
|
|
node _T_63 = mux(_T_62, UInt<19>("h07ffff"), UInt<19>("h00")) @[Bitwise.scala 72:12]
|
|
node _T_64 = bits(end_addr_offset_d, 12, 0) @[lsu_lsc_ctl.scala 113:93]
|
|
node _T_65 = cat(_T_63, _T_64) @[Cat.scala 29:58]
|
|
node _T_66 = add(_T_60, _T_65) @[lsu_lsc_ctl.scala 113:39]
|
|
node full_end_addr_d = tail(_T_66, 1) @[lsu_lsc_ctl.scala 113:39]
|
|
io.end_addr_d <= full_end_addr_d @[lsu_lsc_ctl.scala 114:24]
|
|
inst addrcheck of lsu_addrcheck @[lsu_lsc_ctl.scala 117:25]
|
|
addrcheck.clock <= clock
|
|
addrcheck.reset <= reset
|
|
addrcheck.io.lsu_c2_m_clk <= io.lsu_c2_m_clk @[lsu_lsc_ctl.scala 119:42]
|
|
addrcheck.io.start_addr_d <= full_addr_d @[lsu_lsc_ctl.scala 121:42]
|
|
addrcheck.io.end_addr_d <= full_end_addr_d @[lsu_lsc_ctl.scala 122:42]
|
|
addrcheck.io.lsu_pkt_d.bits.store_data_bypass_m <= io.lsu_pkt_d.bits.store_data_bypass_m @[lsu_lsc_ctl.scala 123:42]
|
|
addrcheck.io.lsu_pkt_d.bits.load_ldst_bypass_d <= io.lsu_pkt_d.bits.load_ldst_bypass_d @[lsu_lsc_ctl.scala 123:42]
|
|
addrcheck.io.lsu_pkt_d.bits.store_data_bypass_d <= io.lsu_pkt_d.bits.store_data_bypass_d @[lsu_lsc_ctl.scala 123:42]
|
|
addrcheck.io.lsu_pkt_d.bits.dma <= io.lsu_pkt_d.bits.dma @[lsu_lsc_ctl.scala 123:42]
|
|
addrcheck.io.lsu_pkt_d.bits.unsign <= io.lsu_pkt_d.bits.unsign @[lsu_lsc_ctl.scala 123:42]
|
|
addrcheck.io.lsu_pkt_d.bits.store <= io.lsu_pkt_d.bits.store @[lsu_lsc_ctl.scala 123:42]
|
|
addrcheck.io.lsu_pkt_d.bits.load <= io.lsu_pkt_d.bits.load @[lsu_lsc_ctl.scala 123:42]
|
|
addrcheck.io.lsu_pkt_d.bits.dword <= io.lsu_pkt_d.bits.dword @[lsu_lsc_ctl.scala 123:42]
|
|
addrcheck.io.lsu_pkt_d.bits.word <= io.lsu_pkt_d.bits.word @[lsu_lsc_ctl.scala 123:42]
|
|
addrcheck.io.lsu_pkt_d.bits.half <= io.lsu_pkt_d.bits.half @[lsu_lsc_ctl.scala 123:42]
|
|
addrcheck.io.lsu_pkt_d.bits.by <= io.lsu_pkt_d.bits.by @[lsu_lsc_ctl.scala 123:42]
|
|
addrcheck.io.lsu_pkt_d.bits.stack <= io.lsu_pkt_d.bits.stack @[lsu_lsc_ctl.scala 123:42]
|
|
addrcheck.io.lsu_pkt_d.bits.fast_int <= io.lsu_pkt_d.bits.fast_int @[lsu_lsc_ctl.scala 123:42]
|
|
addrcheck.io.lsu_pkt_d.valid <= io.lsu_pkt_d.valid @[lsu_lsc_ctl.scala 123:42]
|
|
addrcheck.io.dec_tlu_mrac_ff <= io.dec_tlu_mrac_ff @[lsu_lsc_ctl.scala 124:42]
|
|
node _T_67 = bits(rs1_d, 31, 28) @[lsu_lsc_ctl.scala 125:50]
|
|
addrcheck.io.rs1_region_d <= _T_67 @[lsu_lsc_ctl.scala 125:42]
|
|
addrcheck.io.rs1_d <= rs1_d @[lsu_lsc_ctl.scala 126:42]
|
|
io.is_sideeffects_m <= addrcheck.io.is_sideeffects_m @[lsu_lsc_ctl.scala 127:42]
|
|
io.addr_in_dccm_d <= addrcheck.io.addr_in_dccm_d @[lsu_lsc_ctl.scala 128:42]
|
|
io.addr_in_pic_d <= addrcheck.io.addr_in_pic_d @[lsu_lsc_ctl.scala 129:42]
|
|
addrcheck.io.scan_mode <= io.scan_mode @[lsu_lsc_ctl.scala 136:42]
|
|
wire exc_mscause_r : UInt<4>
|
|
exc_mscause_r <= UInt<4>("h00")
|
|
wire fir_dccm_access_error_r : UInt<1>
|
|
fir_dccm_access_error_r <= UInt<1>("h00")
|
|
wire fir_nondccm_access_error_r : UInt<1>
|
|
fir_nondccm_access_error_r <= UInt<1>("h00")
|
|
wire access_fault_r : UInt<1>
|
|
access_fault_r <= UInt<1>("h00")
|
|
wire misaligned_fault_r : UInt<1>
|
|
misaligned_fault_r <= UInt<1>("h00")
|
|
wire lsu_fir_error_m : UInt<2>
|
|
lsu_fir_error_m <= UInt<2>("h00")
|
|
wire fir_dccm_access_error_m : UInt<1>
|
|
fir_dccm_access_error_m <= UInt<1>("h00")
|
|
wire fir_nondccm_access_error_m : UInt<1>
|
|
fir_nondccm_access_error_m <= UInt<1>("h00")
|
|
reg access_fault_m : UInt, io.lsu_c1_m_clk with : (reset => (reset, UInt<1>("h00"))) @[lsu_lsc_ctl.scala 148:75]
|
|
access_fault_m <= addrcheck.io.access_fault_d @[lsu_lsc_ctl.scala 148:75]
|
|
reg misaligned_fault_m : UInt, io.lsu_c1_m_clk with : (reset => (reset, UInt<1>("h00"))) @[lsu_lsc_ctl.scala 149:75]
|
|
misaligned_fault_m <= addrcheck.io.misaligned_fault_d @[lsu_lsc_ctl.scala 149:75]
|
|
reg exc_mscause_m : UInt, io.lsu_c1_m_clk with : (reset => (reset, UInt<1>("h00"))) @[lsu_lsc_ctl.scala 150:75]
|
|
exc_mscause_m <= addrcheck.io.exc_mscause_d @[lsu_lsc_ctl.scala 150:75]
|
|
reg _T_68 : UInt, io.lsu_c1_m_clk with : (reset => (reset, UInt<1>("h00"))) @[lsu_lsc_ctl.scala 151:75]
|
|
_T_68 <= addrcheck.io.fir_dccm_access_error_d @[lsu_lsc_ctl.scala 151:75]
|
|
fir_dccm_access_error_m <= _T_68 @[lsu_lsc_ctl.scala 151:38]
|
|
reg _T_69 : UInt, io.lsu_c1_m_clk with : (reset => (reset, UInt<1>("h00"))) @[lsu_lsc_ctl.scala 152:75]
|
|
_T_69 <= addrcheck.io.fir_nondccm_access_error_d @[lsu_lsc_ctl.scala 152:75]
|
|
fir_nondccm_access_error_m <= _T_69 @[lsu_lsc_ctl.scala 152:38]
|
|
node _T_70 = or(access_fault_m, misaligned_fault_m) @[lsu_lsc_ctl.scala 154:34]
|
|
io.lsu_exc_m <= _T_70 @[lsu_lsc_ctl.scala 154:16]
|
|
node _T_71 = eq(io.lsu_double_ecc_error_r, UInt<1>("h00")) @[lsu_lsc_ctl.scala 155:64]
|
|
node _T_72 = and(io.lsu_single_ecc_error_r, _T_71) @[lsu_lsc_ctl.scala 155:62]
|
|
node _T_73 = or(io.lsu_commit_r, io.lsu_pkt_r.bits.dma) @[lsu_lsc_ctl.scala 155:111]
|
|
node _T_74 = and(_T_72, _T_73) @[lsu_lsc_ctl.scala 155:92]
|
|
node _T_75 = and(_T_74, io.lsu_pkt_r.valid) @[lsu_lsc_ctl.scala 155:136]
|
|
io.lsu_single_ecc_error_incr <= _T_75 @[lsu_lsc_ctl.scala 155:32]
|
|
node _T_76 = or(access_fault_m, misaligned_fault_m) @[lsu_lsc_ctl.scala 177:46]
|
|
node _T_77 = or(_T_76, io.lsu_double_ecc_error_m) @[lsu_lsc_ctl.scala 177:67]
|
|
node _T_78 = and(_T_77, io.lsu_pkt_m.valid) @[lsu_lsc_ctl.scala 177:96]
|
|
node _T_79 = eq(io.lsu_pkt_m.bits.dma, UInt<1>("h00")) @[lsu_lsc_ctl.scala 177:119]
|
|
node _T_80 = and(_T_78, _T_79) @[lsu_lsc_ctl.scala 177:117]
|
|
node _T_81 = eq(io.lsu_pkt_m.bits.fast_int, UInt<1>("h00")) @[lsu_lsc_ctl.scala 177:144]
|
|
node _T_82 = and(_T_80, _T_81) @[lsu_lsc_ctl.scala 177:142]
|
|
node _T_83 = eq(io.flush_m_up, UInt<1>("h00")) @[lsu_lsc_ctl.scala 177:174]
|
|
node _T_84 = and(_T_82, _T_83) @[lsu_lsc_ctl.scala 177:172]
|
|
lsu_error_pkt_m.valid <= _T_84 @[lsu_lsc_ctl.scala 177:27]
|
|
node _T_85 = eq(lsu_error_pkt_m.valid, UInt<1>("h00")) @[lsu_lsc_ctl.scala 178:75]
|
|
node _T_86 = and(io.lsu_single_ecc_error_m, _T_85) @[lsu_lsc_ctl.scala 178:73]
|
|
node _T_87 = eq(io.lsu_pkt_m.bits.dma, UInt<1>("h00")) @[lsu_lsc_ctl.scala 178:101]
|
|
node _T_88 = and(_T_86, _T_87) @[lsu_lsc_ctl.scala 178:99]
|
|
lsu_error_pkt_m.bits.single_ecc_error <= _T_88 @[lsu_lsc_ctl.scala 178:43]
|
|
lsu_error_pkt_m.bits.inst_type <= io.lsu_pkt_m.bits.store @[lsu_lsc_ctl.scala 179:43]
|
|
node _T_89 = not(misaligned_fault_m) @[lsu_lsc_ctl.scala 180:46]
|
|
lsu_error_pkt_m.bits.exc_type <= _T_89 @[lsu_lsc_ctl.scala 180:43]
|
|
node _T_90 = eq(misaligned_fault_m, UInt<1>("h00")) @[lsu_lsc_ctl.scala 181:80]
|
|
node _T_91 = and(io.lsu_double_ecc_error_m, _T_90) @[lsu_lsc_ctl.scala 181:78]
|
|
node _T_92 = eq(access_fault_m, UInt<1>("h00")) @[lsu_lsc_ctl.scala 181:102]
|
|
node _T_93 = and(_T_91, _T_92) @[lsu_lsc_ctl.scala 181:100]
|
|
node _T_94 = eq(_T_93, UInt<1>("h01")) @[lsu_lsc_ctl.scala 181:118]
|
|
node _T_95 = bits(exc_mscause_m, 3, 0) @[lsu_lsc_ctl.scala 181:149]
|
|
node _T_96 = mux(_T_94, UInt<4>("h01"), _T_95) @[lsu_lsc_ctl.scala 181:49]
|
|
lsu_error_pkt_m.bits.mscause <= _T_96 @[lsu_lsc_ctl.scala 181:43]
|
|
node _T_97 = bits(io.lsu_addr_m, 31, 0) @[lsu_lsc_ctl.scala 182:59]
|
|
lsu_error_pkt_m.bits.addr <= _T_97 @[lsu_lsc_ctl.scala 182:43]
|
|
node _T_98 = bits(fir_nondccm_access_error_m, 0, 0) @[lsu_lsc_ctl.scala 183:72]
|
|
node _T_99 = bits(fir_dccm_access_error_m, 0, 0) @[lsu_lsc_ctl.scala 183:117]
|
|
node _T_100 = and(io.lsu_pkt_m.bits.fast_int, io.lsu_double_ecc_error_m) @[lsu_lsc_ctl.scala 183:166]
|
|
node _T_101 = bits(_T_100, 0, 0) @[lsu_lsc_ctl.scala 183:195]
|
|
node _T_102 = mux(_T_101, UInt<2>("h01"), UInt<2>("h00")) @[lsu_lsc_ctl.scala 183:137]
|
|
node _T_103 = mux(_T_99, UInt<2>("h02"), _T_102) @[lsu_lsc_ctl.scala 183:92]
|
|
node _T_104 = mux(_T_98, UInt<2>("h03"), _T_103) @[lsu_lsc_ctl.scala 183:44]
|
|
lsu_fir_error_m <= _T_104 @[lsu_lsc_ctl.scala 183:38]
|
|
node _T_105 = or(lsu_error_pkt_m.valid, lsu_error_pkt_m.bits.single_ecc_error) @[lsu_lsc_ctl.scala 184:73]
|
|
node _T_106 = or(_T_105, io.clk_override) @[lsu_lsc_ctl.scala 184:113]
|
|
node _T_107 = bits(_T_106, 0, 0) @[lib.scala 8:44]
|
|
node _T_108 = bits(io.scan_mode, 0, 0) @[lib.scala 8:44]
|
|
inst rvclkhdr of rvclkhdr @[lib.scala 417:23]
|
|
rvclkhdr.clock <= clock
|
|
rvclkhdr.reset <= reset
|
|
rvclkhdr.io.clk <= clock @[lib.scala 419:18]
|
|
rvclkhdr.io.en <= _T_107 @[lib.scala 420:17]
|
|
rvclkhdr.io.scan_mode <= UInt<1>("h00") @[lib.scala 421:24]
|
|
wire _T_109 : {valid : UInt<1>, bits : {single_ecc_error : UInt<1>, inst_type : UInt<1>, exc_type : UInt<1>, mscause : UInt<4>, addr : UInt<32>}} @[lib.scala 423:50]
|
|
_T_109.bits.addr <= UInt<32>("h00") @[lib.scala 423:50]
|
|
_T_109.bits.mscause <= UInt<4>("h00") @[lib.scala 423:50]
|
|
_T_109.bits.exc_type <= UInt<1>("h00") @[lib.scala 423:50]
|
|
_T_109.bits.inst_type <= UInt<1>("h00") @[lib.scala 423:50]
|
|
_T_109.bits.single_ecc_error <= UInt<1>("h00") @[lib.scala 423:50]
|
|
_T_109.valid <= UInt<1>("h00") @[lib.scala 423:50]
|
|
reg _T_110 : {valid : UInt<1>, bits : {single_ecc_error : UInt<1>, inst_type : UInt<1>, exc_type : UInt<1>, mscause : UInt<4>, addr : UInt<32>}}, clock with : (reset => (reset, _T_109)) @[Reg.scala 27:20]
|
|
when _T_107 : @[Reg.scala 28:19]
|
|
_T_110.bits.addr <= lsu_error_pkt_m.bits.addr @[Reg.scala 28:23]
|
|
_T_110.bits.mscause <= lsu_error_pkt_m.bits.mscause @[Reg.scala 28:23]
|
|
_T_110.bits.exc_type <= lsu_error_pkt_m.bits.exc_type @[Reg.scala 28:23]
|
|
_T_110.bits.inst_type <= lsu_error_pkt_m.bits.inst_type @[Reg.scala 28:23]
|
|
_T_110.bits.single_ecc_error <= lsu_error_pkt_m.bits.single_ecc_error @[Reg.scala 28:23]
|
|
_T_110.valid <= lsu_error_pkt_m.valid @[Reg.scala 28:23]
|
|
skip @[Reg.scala 28:19]
|
|
io.lsu_error_pkt_r.bits.addr <= _T_110.bits.addr @[lsu_lsc_ctl.scala 184:24]
|
|
io.lsu_error_pkt_r.bits.mscause <= _T_110.bits.mscause @[lsu_lsc_ctl.scala 184:24]
|
|
io.lsu_error_pkt_r.bits.exc_type <= _T_110.bits.exc_type @[lsu_lsc_ctl.scala 184:24]
|
|
io.lsu_error_pkt_r.bits.inst_type <= _T_110.bits.inst_type @[lsu_lsc_ctl.scala 184:24]
|
|
io.lsu_error_pkt_r.bits.single_ecc_error <= _T_110.bits.single_ecc_error @[lsu_lsc_ctl.scala 184:24]
|
|
io.lsu_error_pkt_r.valid <= _T_110.valid @[lsu_lsc_ctl.scala 184:24]
|
|
reg _T_111 : UInt, io.lsu_c2_r_clk with : (reset => (reset, UInt<1>("h00"))) @[lsu_lsc_ctl.scala 185:83]
|
|
_T_111 <= lsu_error_pkt_m.bits.single_ecc_error @[lsu_lsc_ctl.scala 185:83]
|
|
io.lsu_error_pkt_r.bits.single_ecc_error <= _T_111 @[lsu_lsc_ctl.scala 185:46]
|
|
reg _T_112 : UInt<1>, io.lsu_c2_r_clk with : (reset => (reset, UInt<1>("h00"))) @[lsu_lsc_ctl.scala 186:67]
|
|
_T_112 <= lsu_error_pkt_m.valid @[lsu_lsc_ctl.scala 186:67]
|
|
io.lsu_error_pkt_r.valid <= _T_112 @[lsu_lsc_ctl.scala 186:30]
|
|
reg _T_113 : UInt, io.lsu_c2_r_clk with : (reset => (reset, UInt<1>("h00"))) @[lsu_lsc_ctl.scala 187:75]
|
|
_T_113 <= lsu_fir_error_m @[lsu_lsc_ctl.scala 187:75]
|
|
io.lsu_fir_error <= _T_113 @[lsu_lsc_ctl.scala 187:38]
|
|
dma_pkt_d.bits.unsign <= UInt<1>("h00") @[lsu_lsc_ctl.scala 189:27]
|
|
dma_pkt_d.bits.stack <= UInt<1>("h00") @[lsu_lsc_ctl.scala 190:26]
|
|
dma_pkt_d.bits.fast_int <= UInt<1>("h00") @[lsu_lsc_ctl.scala 191:27]
|
|
dma_pkt_d.valid <= io.dma_lsc_ctl.dma_dccm_req @[lsu_lsc_ctl.scala 192:22]
|
|
dma_pkt_d.bits.dma <= UInt<1>("h01") @[lsu_lsc_ctl.scala 193:27]
|
|
dma_pkt_d.bits.store <= io.dma_lsc_ctl.dma_mem_write @[lsu_lsc_ctl.scala 194:27]
|
|
node _T_114 = not(io.dma_lsc_ctl.dma_mem_write) @[lsu_lsc_ctl.scala 195:30]
|
|
dma_pkt_d.bits.load <= _T_114 @[lsu_lsc_ctl.scala 195:27]
|
|
node _T_115 = bits(io.dma_lsc_ctl.dma_mem_sz, 2, 0) @[lsu_lsc_ctl.scala 196:56]
|
|
node _T_116 = eq(_T_115, UInt<3>("h00")) @[lsu_lsc_ctl.scala 196:62]
|
|
dma_pkt_d.bits.by <= _T_116 @[lsu_lsc_ctl.scala 196:27]
|
|
node _T_117 = bits(io.dma_lsc_ctl.dma_mem_sz, 2, 0) @[lsu_lsc_ctl.scala 197:56]
|
|
node _T_118 = eq(_T_117, UInt<3>("h01")) @[lsu_lsc_ctl.scala 197:62]
|
|
dma_pkt_d.bits.half <= _T_118 @[lsu_lsc_ctl.scala 197:27]
|
|
node _T_119 = bits(io.dma_lsc_ctl.dma_mem_sz, 2, 0) @[lsu_lsc_ctl.scala 198:56]
|
|
node _T_120 = eq(_T_119, UInt<3>("h02")) @[lsu_lsc_ctl.scala 198:62]
|
|
dma_pkt_d.bits.word <= _T_120 @[lsu_lsc_ctl.scala 198:27]
|
|
node _T_121 = bits(io.dma_lsc_ctl.dma_mem_sz, 2, 0) @[lsu_lsc_ctl.scala 199:56]
|
|
node _T_122 = eq(_T_121, UInt<3>("h03")) @[lsu_lsc_ctl.scala 199:62]
|
|
dma_pkt_d.bits.dword <= _T_122 @[lsu_lsc_ctl.scala 199:27]
|
|
dma_pkt_d.bits.store_data_bypass_d <= UInt<1>("h00") @[lsu_lsc_ctl.scala 200:39]
|
|
dma_pkt_d.bits.load_ldst_bypass_d <= UInt<1>("h00") @[lsu_lsc_ctl.scala 201:39]
|
|
dma_pkt_d.bits.store_data_bypass_m <= UInt<1>("h00") @[lsu_lsc_ctl.scala 202:39]
|
|
wire lsu_ld_datafn_r : UInt<32>
|
|
lsu_ld_datafn_r <= UInt<32>("h00")
|
|
wire lsu_ld_datafn_corr_r : UInt<32>
|
|
lsu_ld_datafn_corr_r <= UInt<32>("h00")
|
|
wire lsu_ld_datafn_m : UInt<32>
|
|
lsu_ld_datafn_m <= UInt<32>("h00")
|
|
node _T_123 = bits(io.dec_lsu_valid_raw_d, 0, 0) @[lsu_lsc_ctl.scala 208:50]
|
|
node _T_124 = mux(_T_123, io.lsu_p, dma_pkt_d) @[lsu_lsc_ctl.scala 208:26]
|
|
io.lsu_pkt_d.bits.store_data_bypass_m <= _T_124.bits.store_data_bypass_m @[lsu_lsc_ctl.scala 208:20]
|
|
io.lsu_pkt_d.bits.load_ldst_bypass_d <= _T_124.bits.load_ldst_bypass_d @[lsu_lsc_ctl.scala 208:20]
|
|
io.lsu_pkt_d.bits.store_data_bypass_d <= _T_124.bits.store_data_bypass_d @[lsu_lsc_ctl.scala 208:20]
|
|
io.lsu_pkt_d.bits.dma <= _T_124.bits.dma @[lsu_lsc_ctl.scala 208:20]
|
|
io.lsu_pkt_d.bits.unsign <= _T_124.bits.unsign @[lsu_lsc_ctl.scala 208:20]
|
|
io.lsu_pkt_d.bits.store <= _T_124.bits.store @[lsu_lsc_ctl.scala 208:20]
|
|
io.lsu_pkt_d.bits.load <= _T_124.bits.load @[lsu_lsc_ctl.scala 208:20]
|
|
io.lsu_pkt_d.bits.dword <= _T_124.bits.dword @[lsu_lsc_ctl.scala 208:20]
|
|
io.lsu_pkt_d.bits.word <= _T_124.bits.word @[lsu_lsc_ctl.scala 208:20]
|
|
io.lsu_pkt_d.bits.half <= _T_124.bits.half @[lsu_lsc_ctl.scala 208:20]
|
|
io.lsu_pkt_d.bits.by <= _T_124.bits.by @[lsu_lsc_ctl.scala 208:20]
|
|
io.lsu_pkt_d.bits.stack <= _T_124.bits.stack @[lsu_lsc_ctl.scala 208:20]
|
|
io.lsu_pkt_d.bits.fast_int <= _T_124.bits.fast_int @[lsu_lsc_ctl.scala 208:20]
|
|
io.lsu_pkt_d.valid <= _T_124.valid @[lsu_lsc_ctl.scala 208:20]
|
|
lsu_pkt_m_in.bits.store_data_bypass_m <= io.lsu_pkt_d.bits.store_data_bypass_m @[lsu_lsc_ctl.scala 209:20]
|
|
lsu_pkt_m_in.bits.load_ldst_bypass_d <= io.lsu_pkt_d.bits.load_ldst_bypass_d @[lsu_lsc_ctl.scala 209:20]
|
|
lsu_pkt_m_in.bits.store_data_bypass_d <= io.lsu_pkt_d.bits.store_data_bypass_d @[lsu_lsc_ctl.scala 209:20]
|
|
lsu_pkt_m_in.bits.dma <= io.lsu_pkt_d.bits.dma @[lsu_lsc_ctl.scala 209:20]
|
|
lsu_pkt_m_in.bits.unsign <= io.lsu_pkt_d.bits.unsign @[lsu_lsc_ctl.scala 209:20]
|
|
lsu_pkt_m_in.bits.store <= io.lsu_pkt_d.bits.store @[lsu_lsc_ctl.scala 209:20]
|
|
lsu_pkt_m_in.bits.load <= io.lsu_pkt_d.bits.load @[lsu_lsc_ctl.scala 209:20]
|
|
lsu_pkt_m_in.bits.dword <= io.lsu_pkt_d.bits.dword @[lsu_lsc_ctl.scala 209:20]
|
|
lsu_pkt_m_in.bits.word <= io.lsu_pkt_d.bits.word @[lsu_lsc_ctl.scala 209:20]
|
|
lsu_pkt_m_in.bits.half <= io.lsu_pkt_d.bits.half @[lsu_lsc_ctl.scala 209:20]
|
|
lsu_pkt_m_in.bits.by <= io.lsu_pkt_d.bits.by @[lsu_lsc_ctl.scala 209:20]
|
|
lsu_pkt_m_in.bits.stack <= io.lsu_pkt_d.bits.stack @[lsu_lsc_ctl.scala 209:20]
|
|
lsu_pkt_m_in.bits.fast_int <= io.lsu_pkt_d.bits.fast_int @[lsu_lsc_ctl.scala 209:20]
|
|
lsu_pkt_m_in.valid <= io.lsu_pkt_d.valid @[lsu_lsc_ctl.scala 209:20]
|
|
lsu_pkt_r_in.bits.store_data_bypass_m <= io.lsu_pkt_m.bits.store_data_bypass_m @[lsu_lsc_ctl.scala 210:20]
|
|
lsu_pkt_r_in.bits.load_ldst_bypass_d <= io.lsu_pkt_m.bits.load_ldst_bypass_d @[lsu_lsc_ctl.scala 210:20]
|
|
lsu_pkt_r_in.bits.store_data_bypass_d <= io.lsu_pkt_m.bits.store_data_bypass_d @[lsu_lsc_ctl.scala 210:20]
|
|
lsu_pkt_r_in.bits.dma <= io.lsu_pkt_m.bits.dma @[lsu_lsc_ctl.scala 210:20]
|
|
lsu_pkt_r_in.bits.unsign <= io.lsu_pkt_m.bits.unsign @[lsu_lsc_ctl.scala 210:20]
|
|
lsu_pkt_r_in.bits.store <= io.lsu_pkt_m.bits.store @[lsu_lsc_ctl.scala 210:20]
|
|
lsu_pkt_r_in.bits.load <= io.lsu_pkt_m.bits.load @[lsu_lsc_ctl.scala 210:20]
|
|
lsu_pkt_r_in.bits.dword <= io.lsu_pkt_m.bits.dword @[lsu_lsc_ctl.scala 210:20]
|
|
lsu_pkt_r_in.bits.word <= io.lsu_pkt_m.bits.word @[lsu_lsc_ctl.scala 210:20]
|
|
lsu_pkt_r_in.bits.half <= io.lsu_pkt_m.bits.half @[lsu_lsc_ctl.scala 210:20]
|
|
lsu_pkt_r_in.bits.by <= io.lsu_pkt_m.bits.by @[lsu_lsc_ctl.scala 210:20]
|
|
lsu_pkt_r_in.bits.stack <= io.lsu_pkt_m.bits.stack @[lsu_lsc_ctl.scala 210:20]
|
|
lsu_pkt_r_in.bits.fast_int <= io.lsu_pkt_m.bits.fast_int @[lsu_lsc_ctl.scala 210:20]
|
|
lsu_pkt_r_in.valid <= io.lsu_pkt_m.valid @[lsu_lsc_ctl.scala 210:20]
|
|
node _T_125 = eq(io.lsu_p.bits.fast_int, UInt<1>("h00")) @[lsu_lsc_ctl.scala 212:64]
|
|
node _T_126 = and(io.flush_m_up, _T_125) @[lsu_lsc_ctl.scala 212:61]
|
|
node _T_127 = eq(_T_126, UInt<1>("h00")) @[lsu_lsc_ctl.scala 212:45]
|
|
node _T_128 = and(io.lsu_p.valid, _T_127) @[lsu_lsc_ctl.scala 212:43]
|
|
node _T_129 = or(_T_128, io.dma_lsc_ctl.dma_dccm_req) @[lsu_lsc_ctl.scala 212:90]
|
|
io.lsu_pkt_d.valid <= _T_129 @[lsu_lsc_ctl.scala 212:24]
|
|
node _T_130 = eq(io.lsu_pkt_d.bits.dma, UInt<1>("h00")) @[lsu_lsc_ctl.scala 213:68]
|
|
node _T_131 = and(io.flush_m_up, _T_130) @[lsu_lsc_ctl.scala 213:65]
|
|
node _T_132 = eq(_T_131, UInt<1>("h00")) @[lsu_lsc_ctl.scala 213:49]
|
|
node _T_133 = and(io.lsu_pkt_d.valid, _T_132) @[lsu_lsc_ctl.scala 213:47]
|
|
lsu_pkt_m_in.valid <= _T_133 @[lsu_lsc_ctl.scala 213:24]
|
|
node _T_134 = eq(io.lsu_pkt_m.bits.dma, UInt<1>("h00")) @[lsu_lsc_ctl.scala 214:68]
|
|
node _T_135 = and(io.flush_m_up, _T_134) @[lsu_lsc_ctl.scala 214:65]
|
|
node _T_136 = eq(_T_135, UInt<1>("h00")) @[lsu_lsc_ctl.scala 214:49]
|
|
node _T_137 = and(io.lsu_pkt_m.valid, _T_136) @[lsu_lsc_ctl.scala 214:47]
|
|
lsu_pkt_r_in.valid <= _T_137 @[lsu_lsc_ctl.scala 214:24]
|
|
wire _T_138 : {valid : UInt<1>, bits : {fast_int : UInt<1>, stack : UInt<1>, by : UInt<1>, half : UInt<1>, word : UInt<1>, dword : UInt<1>, load : UInt<1>, store : UInt<1>, unsign : UInt<1>, dma : UInt<1>, store_data_bypass_d : UInt<1>, load_ldst_bypass_d : UInt<1>, store_data_bypass_m : UInt<1>}} @[lsu_lsc_ctl.scala 216:91]
|
|
_T_138.bits.store_data_bypass_m <= UInt<1>("h00") @[lsu_lsc_ctl.scala 216:91]
|
|
_T_138.bits.load_ldst_bypass_d <= UInt<1>("h00") @[lsu_lsc_ctl.scala 216:91]
|
|
_T_138.bits.store_data_bypass_d <= UInt<1>("h00") @[lsu_lsc_ctl.scala 216:91]
|
|
_T_138.bits.dma <= UInt<1>("h00") @[lsu_lsc_ctl.scala 216:91]
|
|
_T_138.bits.unsign <= UInt<1>("h00") @[lsu_lsc_ctl.scala 216:91]
|
|
_T_138.bits.store <= UInt<1>("h00") @[lsu_lsc_ctl.scala 216:91]
|
|
_T_138.bits.load <= UInt<1>("h00") @[lsu_lsc_ctl.scala 216:91]
|
|
_T_138.bits.dword <= UInt<1>("h00") @[lsu_lsc_ctl.scala 216:91]
|
|
_T_138.bits.word <= UInt<1>("h00") @[lsu_lsc_ctl.scala 216:91]
|
|
_T_138.bits.half <= UInt<1>("h00") @[lsu_lsc_ctl.scala 216:91]
|
|
_T_138.bits.by <= UInt<1>("h00") @[lsu_lsc_ctl.scala 216:91]
|
|
_T_138.bits.stack <= UInt<1>("h00") @[lsu_lsc_ctl.scala 216:91]
|
|
_T_138.bits.fast_int <= UInt<1>("h00") @[lsu_lsc_ctl.scala 216:91]
|
|
_T_138.valid <= UInt<1>("h00") @[lsu_lsc_ctl.scala 216:91]
|
|
reg _T_139 : {valid : UInt<1>, bits : {fast_int : UInt<1>, stack : UInt<1>, by : UInt<1>, half : UInt<1>, word : UInt<1>, dword : UInt<1>, load : UInt<1>, store : UInt<1>, unsign : UInt<1>, dma : UInt<1>, store_data_bypass_d : UInt<1>, load_ldst_bypass_d : UInt<1>, store_data_bypass_m : UInt<1>}}, io.lsu_c1_m_clk with : (reset => (reset, _T_138)) @[lsu_lsc_ctl.scala 216:65]
|
|
_T_139.bits.store_data_bypass_m <= lsu_pkt_m_in.bits.store_data_bypass_m @[lsu_lsc_ctl.scala 216:65]
|
|
_T_139.bits.load_ldst_bypass_d <= lsu_pkt_m_in.bits.load_ldst_bypass_d @[lsu_lsc_ctl.scala 216:65]
|
|
_T_139.bits.store_data_bypass_d <= lsu_pkt_m_in.bits.store_data_bypass_d @[lsu_lsc_ctl.scala 216:65]
|
|
_T_139.bits.dma <= lsu_pkt_m_in.bits.dma @[lsu_lsc_ctl.scala 216:65]
|
|
_T_139.bits.unsign <= lsu_pkt_m_in.bits.unsign @[lsu_lsc_ctl.scala 216:65]
|
|
_T_139.bits.store <= lsu_pkt_m_in.bits.store @[lsu_lsc_ctl.scala 216:65]
|
|
_T_139.bits.load <= lsu_pkt_m_in.bits.load @[lsu_lsc_ctl.scala 216:65]
|
|
_T_139.bits.dword <= lsu_pkt_m_in.bits.dword @[lsu_lsc_ctl.scala 216:65]
|
|
_T_139.bits.word <= lsu_pkt_m_in.bits.word @[lsu_lsc_ctl.scala 216:65]
|
|
_T_139.bits.half <= lsu_pkt_m_in.bits.half @[lsu_lsc_ctl.scala 216:65]
|
|
_T_139.bits.by <= lsu_pkt_m_in.bits.by @[lsu_lsc_ctl.scala 216:65]
|
|
_T_139.bits.stack <= lsu_pkt_m_in.bits.stack @[lsu_lsc_ctl.scala 216:65]
|
|
_T_139.bits.fast_int <= lsu_pkt_m_in.bits.fast_int @[lsu_lsc_ctl.scala 216:65]
|
|
_T_139.valid <= lsu_pkt_m_in.valid @[lsu_lsc_ctl.scala 216:65]
|
|
io.lsu_pkt_m.bits.store_data_bypass_m <= _T_139.bits.store_data_bypass_m @[lsu_lsc_ctl.scala 216:28]
|
|
io.lsu_pkt_m.bits.load_ldst_bypass_d <= _T_139.bits.load_ldst_bypass_d @[lsu_lsc_ctl.scala 216:28]
|
|
io.lsu_pkt_m.bits.store_data_bypass_d <= _T_139.bits.store_data_bypass_d @[lsu_lsc_ctl.scala 216:28]
|
|
io.lsu_pkt_m.bits.dma <= _T_139.bits.dma @[lsu_lsc_ctl.scala 216:28]
|
|
io.lsu_pkt_m.bits.unsign <= _T_139.bits.unsign @[lsu_lsc_ctl.scala 216:28]
|
|
io.lsu_pkt_m.bits.store <= _T_139.bits.store @[lsu_lsc_ctl.scala 216:28]
|
|
io.lsu_pkt_m.bits.load <= _T_139.bits.load @[lsu_lsc_ctl.scala 216:28]
|
|
io.lsu_pkt_m.bits.dword <= _T_139.bits.dword @[lsu_lsc_ctl.scala 216:28]
|
|
io.lsu_pkt_m.bits.word <= _T_139.bits.word @[lsu_lsc_ctl.scala 216:28]
|
|
io.lsu_pkt_m.bits.half <= _T_139.bits.half @[lsu_lsc_ctl.scala 216:28]
|
|
io.lsu_pkt_m.bits.by <= _T_139.bits.by @[lsu_lsc_ctl.scala 216:28]
|
|
io.lsu_pkt_m.bits.stack <= _T_139.bits.stack @[lsu_lsc_ctl.scala 216:28]
|
|
io.lsu_pkt_m.bits.fast_int <= _T_139.bits.fast_int @[lsu_lsc_ctl.scala 216:28]
|
|
io.lsu_pkt_m.valid <= _T_139.valid @[lsu_lsc_ctl.scala 216:28]
|
|
wire _T_140 : {valid : UInt<1>, bits : {fast_int : UInt<1>, stack : UInt<1>, by : UInt<1>, half : UInt<1>, word : UInt<1>, dword : UInt<1>, load : UInt<1>, store : UInt<1>, unsign : UInt<1>, dma : UInt<1>, store_data_bypass_d : UInt<1>, load_ldst_bypass_d : UInt<1>, store_data_bypass_m : UInt<1>}} @[lsu_lsc_ctl.scala 217:91]
|
|
_T_140.bits.store_data_bypass_m <= UInt<1>("h00") @[lsu_lsc_ctl.scala 217:91]
|
|
_T_140.bits.load_ldst_bypass_d <= UInt<1>("h00") @[lsu_lsc_ctl.scala 217:91]
|
|
_T_140.bits.store_data_bypass_d <= UInt<1>("h00") @[lsu_lsc_ctl.scala 217:91]
|
|
_T_140.bits.dma <= UInt<1>("h00") @[lsu_lsc_ctl.scala 217:91]
|
|
_T_140.bits.unsign <= UInt<1>("h00") @[lsu_lsc_ctl.scala 217:91]
|
|
_T_140.bits.store <= UInt<1>("h00") @[lsu_lsc_ctl.scala 217:91]
|
|
_T_140.bits.load <= UInt<1>("h00") @[lsu_lsc_ctl.scala 217:91]
|
|
_T_140.bits.dword <= UInt<1>("h00") @[lsu_lsc_ctl.scala 217:91]
|
|
_T_140.bits.word <= UInt<1>("h00") @[lsu_lsc_ctl.scala 217:91]
|
|
_T_140.bits.half <= UInt<1>("h00") @[lsu_lsc_ctl.scala 217:91]
|
|
_T_140.bits.by <= UInt<1>("h00") @[lsu_lsc_ctl.scala 217:91]
|
|
_T_140.bits.stack <= UInt<1>("h00") @[lsu_lsc_ctl.scala 217:91]
|
|
_T_140.bits.fast_int <= UInt<1>("h00") @[lsu_lsc_ctl.scala 217:91]
|
|
_T_140.valid <= UInt<1>("h00") @[lsu_lsc_ctl.scala 217:91]
|
|
reg _T_141 : {valid : UInt<1>, bits : {fast_int : UInt<1>, stack : UInt<1>, by : UInt<1>, half : UInt<1>, word : UInt<1>, dword : UInt<1>, load : UInt<1>, store : UInt<1>, unsign : UInt<1>, dma : UInt<1>, store_data_bypass_d : UInt<1>, load_ldst_bypass_d : UInt<1>, store_data_bypass_m : UInt<1>}}, io.lsu_c1_r_clk with : (reset => (reset, _T_140)) @[lsu_lsc_ctl.scala 217:65]
|
|
_T_141.bits.store_data_bypass_m <= lsu_pkt_r_in.bits.store_data_bypass_m @[lsu_lsc_ctl.scala 217:65]
|
|
_T_141.bits.load_ldst_bypass_d <= lsu_pkt_r_in.bits.load_ldst_bypass_d @[lsu_lsc_ctl.scala 217:65]
|
|
_T_141.bits.store_data_bypass_d <= lsu_pkt_r_in.bits.store_data_bypass_d @[lsu_lsc_ctl.scala 217:65]
|
|
_T_141.bits.dma <= lsu_pkt_r_in.bits.dma @[lsu_lsc_ctl.scala 217:65]
|
|
_T_141.bits.unsign <= lsu_pkt_r_in.bits.unsign @[lsu_lsc_ctl.scala 217:65]
|
|
_T_141.bits.store <= lsu_pkt_r_in.bits.store @[lsu_lsc_ctl.scala 217:65]
|
|
_T_141.bits.load <= lsu_pkt_r_in.bits.load @[lsu_lsc_ctl.scala 217:65]
|
|
_T_141.bits.dword <= lsu_pkt_r_in.bits.dword @[lsu_lsc_ctl.scala 217:65]
|
|
_T_141.bits.word <= lsu_pkt_r_in.bits.word @[lsu_lsc_ctl.scala 217:65]
|
|
_T_141.bits.half <= lsu_pkt_r_in.bits.half @[lsu_lsc_ctl.scala 217:65]
|
|
_T_141.bits.by <= lsu_pkt_r_in.bits.by @[lsu_lsc_ctl.scala 217:65]
|
|
_T_141.bits.stack <= lsu_pkt_r_in.bits.stack @[lsu_lsc_ctl.scala 217:65]
|
|
_T_141.bits.fast_int <= lsu_pkt_r_in.bits.fast_int @[lsu_lsc_ctl.scala 217:65]
|
|
_T_141.valid <= lsu_pkt_r_in.valid @[lsu_lsc_ctl.scala 217:65]
|
|
io.lsu_pkt_r.bits.store_data_bypass_m <= _T_141.bits.store_data_bypass_m @[lsu_lsc_ctl.scala 217:28]
|
|
io.lsu_pkt_r.bits.load_ldst_bypass_d <= _T_141.bits.load_ldst_bypass_d @[lsu_lsc_ctl.scala 217:28]
|
|
io.lsu_pkt_r.bits.store_data_bypass_d <= _T_141.bits.store_data_bypass_d @[lsu_lsc_ctl.scala 217:28]
|
|
io.lsu_pkt_r.bits.dma <= _T_141.bits.dma @[lsu_lsc_ctl.scala 217:28]
|
|
io.lsu_pkt_r.bits.unsign <= _T_141.bits.unsign @[lsu_lsc_ctl.scala 217:28]
|
|
io.lsu_pkt_r.bits.store <= _T_141.bits.store @[lsu_lsc_ctl.scala 217:28]
|
|
io.lsu_pkt_r.bits.load <= _T_141.bits.load @[lsu_lsc_ctl.scala 217:28]
|
|
io.lsu_pkt_r.bits.dword <= _T_141.bits.dword @[lsu_lsc_ctl.scala 217:28]
|
|
io.lsu_pkt_r.bits.word <= _T_141.bits.word @[lsu_lsc_ctl.scala 217:28]
|
|
io.lsu_pkt_r.bits.half <= _T_141.bits.half @[lsu_lsc_ctl.scala 217:28]
|
|
io.lsu_pkt_r.bits.by <= _T_141.bits.by @[lsu_lsc_ctl.scala 217:28]
|
|
io.lsu_pkt_r.bits.stack <= _T_141.bits.stack @[lsu_lsc_ctl.scala 217:28]
|
|
io.lsu_pkt_r.bits.fast_int <= _T_141.bits.fast_int @[lsu_lsc_ctl.scala 217:28]
|
|
io.lsu_pkt_r.valid <= _T_141.valid @[lsu_lsc_ctl.scala 217:28]
|
|
reg _T_142 : UInt<1>, io.lsu_c2_m_clk with : (reset => (reset, UInt<1>("h00"))) @[lsu_lsc_ctl.scala 218:65]
|
|
_T_142 <= lsu_pkt_m_in.valid @[lsu_lsc_ctl.scala 218:65]
|
|
io.lsu_pkt_m.valid <= _T_142 @[lsu_lsc_ctl.scala 218:28]
|
|
reg _T_143 : UInt<1>, io.lsu_c2_r_clk with : (reset => (reset, UInt<1>("h00"))) @[lsu_lsc_ctl.scala 219:65]
|
|
_T_143 <= lsu_pkt_r_in.valid @[lsu_lsc_ctl.scala 219:65]
|
|
io.lsu_pkt_r.valid <= _T_143 @[lsu_lsc_ctl.scala 219:28]
|
|
node _T_144 = bits(io.dma_lsc_ctl.dma_mem_wdata, 63, 0) @[lsu_lsc_ctl.scala 221:59]
|
|
node _T_145 = bits(io.dma_lsc_ctl.dma_mem_addr, 2, 0) @[lsu_lsc_ctl.scala 221:100]
|
|
node _T_146 = cat(_T_145, UInt<3>("h00")) @[Cat.scala 29:58]
|
|
node dma_mem_wdata_shifted = dshr(_T_144, _T_146) @[lsu_lsc_ctl.scala 221:66]
|
|
node _T_147 = bits(io.dma_lsc_ctl.dma_dccm_req, 0, 0) @[lsu_lsc_ctl.scala 222:63]
|
|
node _T_148 = bits(dma_mem_wdata_shifted, 31, 0) @[lsu_lsc_ctl.scala 222:91]
|
|
node _T_149 = bits(io.lsu_exu.exu_lsu_rs2_d, 31, 0) @[lsu_lsc_ctl.scala 222:122]
|
|
node store_data_d = mux(_T_147, _T_148, _T_149) @[lsu_lsc_ctl.scala 222:34]
|
|
node _T_150 = bits(io.lsu_pkt_d.bits.store_data_bypass_d, 0, 0) @[lsu_lsc_ctl.scala 223:73]
|
|
node _T_151 = bits(io.lsu_exu.lsu_result_m, 31, 0) @[lsu_lsc_ctl.scala 223:103]
|
|
node _T_152 = bits(store_data_d, 31, 0) @[lsu_lsc_ctl.scala 223:122]
|
|
node store_data_m_in = mux(_T_150, _T_151, _T_152) @[lsu_lsc_ctl.scala 223:34]
|
|
reg store_data_pre_m : UInt, io.lsu_store_c1_m_clk with : (reset => (reset, UInt<1>("h00"))) @[lsu_lsc_ctl.scala 225:72]
|
|
store_data_pre_m <= store_data_m_in @[lsu_lsc_ctl.scala 225:72]
|
|
reg _T_153 : UInt, io.lsu_c1_m_clk with : (reset => (reset, UInt<1>("h00"))) @[lsu_lsc_ctl.scala 226:62]
|
|
_T_153 <= io.lsu_addr_d @[lsu_lsc_ctl.scala 226:62]
|
|
io.lsu_addr_m <= _T_153 @[lsu_lsc_ctl.scala 226:24]
|
|
reg _T_154 : UInt, io.lsu_c1_r_clk with : (reset => (reset, UInt<1>("h00"))) @[lsu_lsc_ctl.scala 227:62]
|
|
_T_154 <= io.lsu_addr_m @[lsu_lsc_ctl.scala 227:62]
|
|
io.lsu_addr_r <= _T_154 @[lsu_lsc_ctl.scala 227:24]
|
|
node _T_155 = bits(io.ldst_dual_m, 0, 0) @[lib.scala 8:44]
|
|
node _T_156 = bits(io.lsu_addr_m, 31, 3) @[lsu_lsc_ctl.scala 228:71]
|
|
node _T_157 = mux(_T_155, end_addr_pre_m, _T_156) @[lsu_lsc_ctl.scala 228:27]
|
|
node _T_158 = bits(io.end_addr_d, 2, 0) @[lsu_lsc_ctl.scala 228:128]
|
|
reg _T_159 : UInt, io.lsu_c1_m_clk with : (reset => (reset, UInt<1>("h00"))) @[lsu_lsc_ctl.scala 228:114]
|
|
_T_159 <= _T_158 @[lsu_lsc_ctl.scala 228:114]
|
|
node _T_160 = cat(_T_157, _T_159) @[Cat.scala 29:58]
|
|
io.end_addr_m <= _T_160 @[lsu_lsc_ctl.scala 228:17]
|
|
node _T_161 = bits(io.ldst_dual_r, 0, 0) @[lib.scala 8:44]
|
|
node _T_162 = bits(io.lsu_addr_r, 31, 3) @[lsu_lsc_ctl.scala 229:71]
|
|
node _T_163 = mux(_T_161, end_addr_pre_r, _T_162) @[lsu_lsc_ctl.scala 229:27]
|
|
node _T_164 = bits(io.end_addr_m, 2, 0) @[lsu_lsc_ctl.scala 229:128]
|
|
reg _T_165 : UInt, io.lsu_c1_r_clk with : (reset => (reset, UInt<1>("h00"))) @[lsu_lsc_ctl.scala 229:114]
|
|
_T_165 <= _T_164 @[lsu_lsc_ctl.scala 229:114]
|
|
node _T_166 = cat(_T_163, _T_165) @[Cat.scala 29:58]
|
|
io.end_addr_r <= _T_166 @[lsu_lsc_ctl.scala 229:17]
|
|
node _T_167 = bits(io.end_addr_d, 31, 3) @[lsu_lsc_ctl.scala 230:41]
|
|
node _T_168 = and(io.lsu_pkt_d.valid, io.ldst_dual_d) @[lsu_lsc_ctl.scala 230:69]
|
|
node _T_169 = or(_T_168, io.clk_override) @[lsu_lsc_ctl.scala 230:87]
|
|
node _T_170 = bits(_T_169, 0, 0) @[lib.scala 8:44]
|
|
node _T_171 = bits(io.scan_mode, 0, 0) @[lib.scala 8:44]
|
|
inst rvclkhdr_1 of rvclkhdr_1 @[lib.scala 404:23]
|
|
rvclkhdr_1.clock <= clock
|
|
rvclkhdr_1.reset <= reset
|
|
rvclkhdr_1.io.clk <= clock @[lib.scala 406:18]
|
|
rvclkhdr_1.io.en <= _T_170 @[lib.scala 407:17]
|
|
rvclkhdr_1.io.scan_mode <= UInt<1>("h00") @[lib.scala 408:24]
|
|
reg _T_172 : UInt, clock with : (reset => (reset, UInt<1>("h00"))) @[Reg.scala 27:20]
|
|
when _T_170 : @[Reg.scala 28:19]
|
|
_T_172 <= _T_167 @[Reg.scala 28:23]
|
|
skip @[Reg.scala 28:19]
|
|
end_addr_pre_m <= _T_172 @[lsu_lsc_ctl.scala 230:18]
|
|
node _T_173 = bits(io.end_addr_m, 31, 3) @[lsu_lsc_ctl.scala 231:41]
|
|
node _T_174 = and(io.lsu_pkt_m.valid, io.ldst_dual_m) @[lsu_lsc_ctl.scala 231:69]
|
|
node _T_175 = or(_T_174, io.clk_override) @[lsu_lsc_ctl.scala 231:87]
|
|
node _T_176 = bits(_T_175, 0, 0) @[lib.scala 8:44]
|
|
node _T_177 = bits(io.scan_mode, 0, 0) @[lib.scala 8:44]
|
|
inst rvclkhdr_2 of rvclkhdr_2 @[lib.scala 404:23]
|
|
rvclkhdr_2.clock <= clock
|
|
rvclkhdr_2.reset <= reset
|
|
rvclkhdr_2.io.clk <= clock @[lib.scala 406:18]
|
|
rvclkhdr_2.io.en <= _T_176 @[lib.scala 407:17]
|
|
rvclkhdr_2.io.scan_mode <= UInt<1>("h00") @[lib.scala 408:24]
|
|
reg _T_178 : UInt, clock with : (reset => (reset, UInt<1>("h00"))) @[Reg.scala 27:20]
|
|
when _T_176 : @[Reg.scala 28:19]
|
|
_T_178 <= _T_173 @[Reg.scala 28:23]
|
|
skip @[Reg.scala 28:19]
|
|
end_addr_pre_r <= _T_178 @[lsu_lsc_ctl.scala 231:18]
|
|
reg _T_179 : UInt, io.lsu_c1_m_clk with : (reset => (reset, UInt<1>("h00"))) @[lsu_lsc_ctl.scala 232:62]
|
|
_T_179 <= io.addr_in_dccm_d @[lsu_lsc_ctl.scala 232:62]
|
|
io.addr_in_dccm_m <= _T_179 @[lsu_lsc_ctl.scala 232:24]
|
|
reg _T_180 : UInt, io.lsu_c1_r_clk with : (reset => (reset, UInt<1>("h00"))) @[lsu_lsc_ctl.scala 233:62]
|
|
_T_180 <= io.addr_in_dccm_m @[lsu_lsc_ctl.scala 233:62]
|
|
io.addr_in_dccm_r <= _T_180 @[lsu_lsc_ctl.scala 233:24]
|
|
reg _T_181 : UInt, io.lsu_c1_m_clk with : (reset => (reset, UInt<1>("h00"))) @[lsu_lsc_ctl.scala 234:62]
|
|
_T_181 <= io.addr_in_pic_d @[lsu_lsc_ctl.scala 234:62]
|
|
io.addr_in_pic_m <= _T_181 @[lsu_lsc_ctl.scala 234:24]
|
|
reg _T_182 : UInt, io.lsu_c1_r_clk with : (reset => (reset, UInt<1>("h00"))) @[lsu_lsc_ctl.scala 235:62]
|
|
_T_182 <= io.addr_in_pic_m @[lsu_lsc_ctl.scala 235:62]
|
|
io.addr_in_pic_r <= _T_182 @[lsu_lsc_ctl.scala 235:24]
|
|
reg _T_183 : UInt, io.lsu_c1_m_clk with : (reset => (reset, UInt<1>("h00"))) @[lsu_lsc_ctl.scala 236:62]
|
|
_T_183 <= addrcheck.io.addr_external_d @[lsu_lsc_ctl.scala 236:62]
|
|
io.addr_external_m <= _T_183 @[lsu_lsc_ctl.scala 236:24]
|
|
reg addr_external_r : UInt<1>, io.lsu_c1_r_clk with : (reset => (reset, UInt<1>("h00"))) @[lsu_lsc_ctl.scala 237:66]
|
|
addr_external_r <= io.addr_external_m @[lsu_lsc_ctl.scala 237:66]
|
|
node _T_184 = or(io.addr_external_m, io.clk_override) @[lsu_lsc_ctl.scala 238:77]
|
|
node _T_185 = bits(io.scan_mode, 0, 0) @[lib.scala 8:44]
|
|
inst rvclkhdr_3 of rvclkhdr_3 @[lib.scala 404:23]
|
|
rvclkhdr_3.clock <= clock
|
|
rvclkhdr_3.reset <= reset
|
|
rvclkhdr_3.io.clk <= clock @[lib.scala 406:18]
|
|
rvclkhdr_3.io.en <= _T_184 @[lib.scala 407:17]
|
|
rvclkhdr_3.io.scan_mode <= UInt<1>("h00") @[lib.scala 408:24]
|
|
reg bus_read_data_r : UInt, clock with : (reset => (reset, UInt<1>("h00"))) @[Reg.scala 27:20]
|
|
when _T_184 : @[Reg.scala 28:19]
|
|
bus_read_data_r <= io.bus_read_data_m @[Reg.scala 28:23]
|
|
skip @[Reg.scala 28:19]
|
|
node _T_186 = bits(io.lsu_ld_data_corr_r, 31, 1) @[lsu_lsc_ctl.scala 241:52]
|
|
io.lsu_fir_addr <= _T_186 @[lsu_lsc_ctl.scala 241:28]
|
|
io.lsu_addr_d <= full_addr_d @[lsu_lsc_ctl.scala 243:28]
|
|
node _T_187 = or(io.lsu_pkt_r.bits.store, io.lsu_pkt_r.bits.load) @[lsu_lsc_ctl.scala 245:68]
|
|
node _T_188 = and(io.lsu_pkt_r.valid, _T_187) @[lsu_lsc_ctl.scala 245:41]
|
|
node _T_189 = eq(io.flush_r, UInt<1>("h00")) @[lsu_lsc_ctl.scala 245:96]
|
|
node _T_190 = and(_T_188, _T_189) @[lsu_lsc_ctl.scala 245:94]
|
|
node _T_191 = eq(io.lsu_pkt_r.bits.dma, UInt<1>("h00")) @[lsu_lsc_ctl.scala 245:110]
|
|
node _T_192 = and(_T_190, _T_191) @[lsu_lsc_ctl.scala 245:108]
|
|
io.lsu_commit_r <= _T_192 @[lsu_lsc_ctl.scala 245:19]
|
|
node _T_193 = bits(io.picm_mask_data_m, 31, 0) @[lsu_lsc_ctl.scala 246:52]
|
|
node _T_194 = eq(io.addr_in_pic_m, UInt<1>("h00")) @[lsu_lsc_ctl.scala 246:69]
|
|
node _T_195 = bits(_T_194, 0, 0) @[Bitwise.scala 72:15]
|
|
node _T_196 = mux(_T_195, UInt<32>("h0ffffffff"), UInt<32>("h00")) @[Bitwise.scala 72:12]
|
|
node _T_197 = or(_T_193, _T_196) @[lsu_lsc_ctl.scala 246:59]
|
|
node _T_198 = bits(io.lsu_pkt_m.bits.store_data_bypass_m, 0, 0) @[lsu_lsc_ctl.scala 246:133]
|
|
node _T_199 = mux(_T_198, io.lsu_exu.lsu_result_m, store_data_pre_m) @[lsu_lsc_ctl.scala 246:94]
|
|
node _T_200 = and(_T_197, _T_199) @[lsu_lsc_ctl.scala 246:89]
|
|
io.store_data_m <= _T_200 @[lsu_lsc_ctl.scala 246:29]
|
|
node _T_201 = mux(io.addr_external_m, io.bus_read_data_m, io.lsu_ld_data_m) @[lsu_lsc_ctl.scala 267:33]
|
|
lsu_ld_datafn_m <= _T_201 @[lsu_lsc_ctl.scala 267:27]
|
|
node _T_202 = eq(addr_external_r, UInt<1>("h01")) @[lsu_lsc_ctl.scala 268:49]
|
|
node _T_203 = mux(_T_202, bus_read_data_r, io.lsu_ld_data_corr_r) @[lsu_lsc_ctl.scala 268:33]
|
|
lsu_ld_datafn_corr_r <= _T_203 @[lsu_lsc_ctl.scala 268:27]
|
|
node _T_204 = and(io.lsu_pkt_m.bits.unsign, io.lsu_pkt_m.bits.by) @[lsu_lsc_ctl.scala 269:74]
|
|
node _T_205 = bits(_T_204, 0, 0) @[Bitwise.scala 72:15]
|
|
node _T_206 = mux(_T_205, UInt<32>("h0ffffffff"), UInt<32>("h00")) @[Bitwise.scala 72:12]
|
|
node _T_207 = bits(lsu_ld_datafn_m, 7, 0) @[lsu_lsc_ctl.scala 269:133]
|
|
node _T_208 = cat(UInt<24>("h00"), _T_207) @[Cat.scala 29:58]
|
|
node _T_209 = and(_T_206, _T_208) @[lsu_lsc_ctl.scala 269:102]
|
|
node _T_210 = and(io.lsu_pkt_m.bits.unsign, io.lsu_pkt_m.bits.half) @[lsu_lsc_ctl.scala 270:43]
|
|
node _T_211 = bits(_T_210, 0, 0) @[Bitwise.scala 72:15]
|
|
node _T_212 = mux(_T_211, UInt<32>("h0ffffffff"), UInt<32>("h00")) @[Bitwise.scala 72:12]
|
|
node _T_213 = bits(lsu_ld_datafn_m, 15, 0) @[lsu_lsc_ctl.scala 270:102]
|
|
node _T_214 = cat(UInt<16>("h00"), _T_213) @[Cat.scala 29:58]
|
|
node _T_215 = and(_T_212, _T_214) @[lsu_lsc_ctl.scala 270:71]
|
|
node _T_216 = or(_T_209, _T_215) @[lsu_lsc_ctl.scala 269:141]
|
|
node _T_217 = eq(io.lsu_pkt_m.bits.unsign, UInt<1>("h00")) @[lsu_lsc_ctl.scala 271:17]
|
|
node _T_218 = and(_T_217, io.lsu_pkt_m.bits.by) @[lsu_lsc_ctl.scala 271:43]
|
|
node _T_219 = bits(_T_218, 0, 0) @[Bitwise.scala 72:15]
|
|
node _T_220 = mux(_T_219, UInt<32>("h0ffffffff"), UInt<32>("h00")) @[Bitwise.scala 72:12]
|
|
node _T_221 = bits(lsu_ld_datafn_m, 7, 7) @[lsu_lsc_ctl.scala 271:102]
|
|
node _T_222 = bits(_T_221, 0, 0) @[Bitwise.scala 72:15]
|
|
node _T_223 = mux(_T_222, UInt<24>("h0ffffff"), UInt<24>("h00")) @[Bitwise.scala 72:12]
|
|
node _T_224 = bits(lsu_ld_datafn_m, 7, 0) @[lsu_lsc_ctl.scala 271:125]
|
|
node _T_225 = cat(_T_223, _T_224) @[Cat.scala 29:58]
|
|
node _T_226 = and(_T_220, _T_225) @[lsu_lsc_ctl.scala 271:71]
|
|
node _T_227 = or(_T_216, _T_226) @[lsu_lsc_ctl.scala 270:114]
|
|
node _T_228 = eq(io.lsu_pkt_m.bits.unsign, UInt<1>("h00")) @[lsu_lsc_ctl.scala 272:17]
|
|
node _T_229 = and(_T_228, io.lsu_pkt_m.bits.half) @[lsu_lsc_ctl.scala 272:43]
|
|
node _T_230 = bits(_T_229, 0, 0) @[Bitwise.scala 72:15]
|
|
node _T_231 = mux(_T_230, UInt<32>("h0ffffffff"), UInt<32>("h00")) @[Bitwise.scala 72:12]
|
|
node _T_232 = bits(lsu_ld_datafn_m, 15, 15) @[lsu_lsc_ctl.scala 272:101]
|
|
node _T_233 = bits(_T_232, 0, 0) @[Bitwise.scala 72:15]
|
|
node _T_234 = mux(_T_233, UInt<16>("h0ffff"), UInt<16>("h00")) @[Bitwise.scala 72:12]
|
|
node _T_235 = bits(lsu_ld_datafn_m, 15, 0) @[lsu_lsc_ctl.scala 272:125]
|
|
node _T_236 = cat(_T_234, _T_235) @[Cat.scala 29:58]
|
|
node _T_237 = and(_T_231, _T_236) @[lsu_lsc_ctl.scala 272:71]
|
|
node _T_238 = or(_T_227, _T_237) @[lsu_lsc_ctl.scala 271:134]
|
|
node _T_239 = bits(io.lsu_pkt_m.bits.word, 0, 0) @[Bitwise.scala 72:15]
|
|
node _T_240 = mux(_T_239, UInt<32>("h0ffffffff"), UInt<32>("h00")) @[Bitwise.scala 72:12]
|
|
node _T_241 = bits(lsu_ld_datafn_m, 31, 0) @[lsu_lsc_ctl.scala 273:60]
|
|
node _T_242 = and(_T_240, _T_241) @[lsu_lsc_ctl.scala 273:43]
|
|
node _T_243 = or(_T_238, _T_242) @[lsu_lsc_ctl.scala 272:134]
|
|
io.lsu_exu.lsu_result_m <= _T_243 @[lsu_lsc_ctl.scala 269:35]
|
|
node _T_244 = and(io.lsu_pkt_r.bits.unsign, io.lsu_pkt_r.bits.by) @[lsu_lsc_ctl.scala 274:66]
|
|
node _T_245 = bits(_T_244, 0, 0) @[Bitwise.scala 72:15]
|
|
node _T_246 = mux(_T_245, UInt<32>("h0ffffffff"), UInt<32>("h00")) @[Bitwise.scala 72:12]
|
|
node _T_247 = bits(lsu_ld_datafn_corr_r, 7, 0) @[lsu_lsc_ctl.scala 274:130]
|
|
node _T_248 = cat(UInt<24>("h00"), _T_247) @[Cat.scala 29:58]
|
|
node _T_249 = and(_T_246, _T_248) @[lsu_lsc_ctl.scala 274:94]
|
|
node _T_250 = and(io.lsu_pkt_r.bits.unsign, io.lsu_pkt_r.bits.half) @[lsu_lsc_ctl.scala 275:43]
|
|
node _T_251 = bits(_T_250, 0, 0) @[Bitwise.scala 72:15]
|
|
node _T_252 = mux(_T_251, UInt<32>("h0ffffffff"), UInt<32>("h00")) @[Bitwise.scala 72:12]
|
|
node _T_253 = bits(lsu_ld_datafn_corr_r, 15, 0) @[lsu_lsc_ctl.scala 275:107]
|
|
node _T_254 = cat(UInt<16>("h00"), _T_253) @[Cat.scala 29:58]
|
|
node _T_255 = and(_T_252, _T_254) @[lsu_lsc_ctl.scala 275:71]
|
|
node _T_256 = or(_T_249, _T_255) @[lsu_lsc_ctl.scala 274:138]
|
|
node _T_257 = eq(io.lsu_pkt_r.bits.unsign, UInt<1>("h00")) @[lsu_lsc_ctl.scala 276:17]
|
|
node _T_258 = and(_T_257, io.lsu_pkt_r.bits.by) @[lsu_lsc_ctl.scala 276:43]
|
|
node _T_259 = bits(_T_258, 0, 0) @[Bitwise.scala 72:15]
|
|
node _T_260 = mux(_T_259, UInt<32>("h0ffffffff"), UInt<32>("h00")) @[Bitwise.scala 72:12]
|
|
node _T_261 = bits(lsu_ld_datafn_corr_r, 7, 7) @[lsu_lsc_ctl.scala 276:107]
|
|
node _T_262 = bits(_T_261, 0, 0) @[Bitwise.scala 72:15]
|
|
node _T_263 = mux(_T_262, UInt<24>("h0ffffff"), UInt<24>("h00")) @[Bitwise.scala 72:12]
|
|
node _T_264 = bits(lsu_ld_datafn_corr_r, 7, 0) @[lsu_lsc_ctl.scala 276:135]
|
|
node _T_265 = cat(_T_263, _T_264) @[Cat.scala 29:58]
|
|
node _T_266 = and(_T_260, _T_265) @[lsu_lsc_ctl.scala 276:71]
|
|
node _T_267 = or(_T_256, _T_266) @[lsu_lsc_ctl.scala 275:119]
|
|
node _T_268 = eq(io.lsu_pkt_r.bits.unsign, UInt<1>("h00")) @[lsu_lsc_ctl.scala 277:17]
|
|
node _T_269 = and(_T_268, io.lsu_pkt_r.bits.half) @[lsu_lsc_ctl.scala 277:43]
|
|
node _T_270 = bits(_T_269, 0, 0) @[Bitwise.scala 72:15]
|
|
node _T_271 = mux(_T_270, UInt<32>("h0ffffffff"), UInt<32>("h00")) @[Bitwise.scala 72:12]
|
|
node _T_272 = bits(lsu_ld_datafn_corr_r, 15, 15) @[lsu_lsc_ctl.scala 277:106]
|
|
node _T_273 = bits(_T_272, 0, 0) @[Bitwise.scala 72:15]
|
|
node _T_274 = mux(_T_273, UInt<16>("h0ffff"), UInt<16>("h00")) @[Bitwise.scala 72:12]
|
|
node _T_275 = bits(lsu_ld_datafn_corr_r, 15, 0) @[lsu_lsc_ctl.scala 277:135]
|
|
node _T_276 = cat(_T_274, _T_275) @[Cat.scala 29:58]
|
|
node _T_277 = and(_T_271, _T_276) @[lsu_lsc_ctl.scala 277:71]
|
|
node _T_278 = or(_T_267, _T_277) @[lsu_lsc_ctl.scala 276:144]
|
|
node _T_279 = bits(io.lsu_pkt_r.bits.word, 0, 0) @[Bitwise.scala 72:15]
|
|
node _T_280 = mux(_T_279, UInt<32>("h0ffffffff"), UInt<32>("h00")) @[Bitwise.scala 72:12]
|
|
node _T_281 = bits(lsu_ld_datafn_corr_r, 31, 0) @[lsu_lsc_ctl.scala 278:65]
|
|
node _T_282 = and(_T_280, _T_281) @[lsu_lsc_ctl.scala 278:43]
|
|
node _T_283 = or(_T_278, _T_282) @[lsu_lsc_ctl.scala 277:144]
|
|
io.lsu_result_corr_r <= _T_283 @[lsu_lsc_ctl.scala 274:27]
|
|
|