quasar/el2_lsu_addrcheck.fir

305 lines
22 KiB
Plaintext

;buildInfoPackage: chisel3, version: 3.3.1, scalaVersion: 2.12.11, sbtVersion: 1.3.10
circuit el2_lsu_addrcheck :
module rvrangecheck :
input clock : Clock
input reset : Reset
output io : {flip addr : UInt<32>, in_range : UInt<1>, in_region : UInt<1>}
node _T = bits(io.addr, 31, 28) @[beh_lib.scala 113:30]
node _T_1 = eq(_T, UInt<4>("h0f")) @[beh_lib.scala 113:52]
io.in_region <= _T_1 @[beh_lib.scala 113:19]
node _T_2 = bits(io.addr, 31, 16) @[beh_lib.scala 117:30]
node _T_3 = eq(_T_2, UInt<16>("h0f004")) @[beh_lib.scala 117:45]
io.in_range <= _T_3 @[beh_lib.scala 117:19]
module rvrangecheck_1 :
input clock : Clock
input reset : Reset
output io : {flip addr : UInt<32>, in_range : UInt<1>, in_region : UInt<1>}
node _T = bits(io.addr, 31, 28) @[beh_lib.scala 113:30]
node _T_1 = eq(_T, UInt<4>("h0f")) @[beh_lib.scala 113:52]
io.in_region <= _T_1 @[beh_lib.scala 113:19]
node _T_2 = bits(io.addr, 31, 16) @[beh_lib.scala 117:30]
node _T_3 = eq(_T_2, UInt<16>("h0f004")) @[beh_lib.scala 117:45]
io.in_range <= _T_3 @[beh_lib.scala 117:19]
module rvrangecheck_2 :
input clock : Clock
input reset : Reset
output io : {flip addr : UInt<32>, in_range : UInt<1>, in_region : UInt<1>}
node _T = bits(io.addr, 31, 28) @[beh_lib.scala 113:30]
node _T_1 = eq(_T, UInt<4>("h0f")) @[beh_lib.scala 113:52]
io.in_region <= _T_1 @[beh_lib.scala 113:19]
node _T_2 = bits(io.addr, 31, 15) @[beh_lib.scala 117:30]
node _T_3 = eq(_T_2, UInt<17>("h01e018")) @[beh_lib.scala 117:45]
io.in_range <= _T_3 @[beh_lib.scala 117:19]
module rvrangecheck_3 :
input clock : Clock
input reset : Reset
output io : {flip addr : UInt<32>, in_range : UInt<1>, in_region : UInt<1>}
node _T = bits(io.addr, 31, 28) @[beh_lib.scala 113:30]
node _T_1 = eq(_T, UInt<4>("h0f")) @[beh_lib.scala 113:52]
io.in_region <= _T_1 @[beh_lib.scala 113:19]
node _T_2 = bits(io.addr, 31, 15) @[beh_lib.scala 117:30]
node _T_3 = eq(_T_2, UInt<17>("h01e018")) @[beh_lib.scala 117:45]
io.in_range <= _T_3 @[beh_lib.scala 117:19]
module el2_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 : {fast_int : 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>, valid : 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>}
wire start_addr_in_dccm_d : UInt<1>
start_addr_in_dccm_d <= UInt<1>("h00")
wire start_addr_in_dccm_region_d : UInt<1>
start_addr_in_dccm_region_d <= UInt<1>("h00")
wire end_addr_in_dccm_d : UInt<1>
end_addr_in_dccm_d <= UInt<1>("h00")
wire end_addr_in_dccm_region_d : UInt<1>
end_addr_in_dccm_region_d <= UInt<1>("h00")
inst rvrangecheck of rvrangecheck @[el2_lsu_addrcheck.scala 45:44]
rvrangecheck.clock <= clock
rvrangecheck.reset <= reset
rvrangecheck.io.addr <= io.start_addr_d @[el2_lsu_addrcheck.scala 46:41]
start_addr_in_dccm_d <= rvrangecheck.io.in_range @[el2_lsu_addrcheck.scala 47:41]
start_addr_in_dccm_region_d <= rvrangecheck.io.in_region @[el2_lsu_addrcheck.scala 48:41]
inst rvrangecheck_1 of rvrangecheck_1 @[el2_lsu_addrcheck.scala 51:44]
rvrangecheck_1.clock <= clock
rvrangecheck_1.reset <= reset
rvrangecheck_1.io.addr <= io.end_addr_d @[el2_lsu_addrcheck.scala 52:41]
end_addr_in_dccm_d <= rvrangecheck_1.io.in_range @[el2_lsu_addrcheck.scala 53:41]
end_addr_in_dccm_region_d <= rvrangecheck_1.io.in_region @[el2_lsu_addrcheck.scala 54:41]
wire addr_in_iccm : UInt<1>
addr_in_iccm <= UInt<1>("h00")
node _T = bits(io.start_addr_d, 31, 28) @[el2_lsu_addrcheck.scala 65:37]
node _T_1 = eq(_T, UInt<4>("h0e")) @[el2_lsu_addrcheck.scala 65:45]
addr_in_iccm <= _T_1 @[el2_lsu_addrcheck.scala 65:18]
inst start_addr_pic_rangecheck of rvrangecheck_2 @[el2_lsu_addrcheck.scala 74:41]
start_addr_pic_rangecheck.clock <= clock
start_addr_pic_rangecheck.reset <= reset
node _T_2 = bits(io.start_addr_d, 31, 0) @[el2_lsu_addrcheck.scala 75:55]
start_addr_pic_rangecheck.io.addr <= _T_2 @[el2_lsu_addrcheck.scala 75:37]
inst end_addr_pic_rangecheck of rvrangecheck_3 @[el2_lsu_addrcheck.scala 80:39]
end_addr_pic_rangecheck.clock <= clock
end_addr_pic_rangecheck.reset <= reset
node _T_3 = bits(io.end_addr_d, 31, 0) @[el2_lsu_addrcheck.scala 81:51]
end_addr_pic_rangecheck.io.addr <= _T_3 @[el2_lsu_addrcheck.scala 81:35]
node start_addr_dccm_or_pic = or(start_addr_in_dccm_region_d, start_addr_pic_rangecheck.io.in_region) @[el2_lsu_addrcheck.scala 85:60]
node _T_4 = bits(io.rs1_region_d, 3, 0) @[el2_lsu_addrcheck.scala 86:48]
node _T_5 = eq(_T_4, UInt<4>("h0f")) @[el2_lsu_addrcheck.scala 86:54]
node _T_6 = bits(io.rs1_region_d, 3, 0) @[el2_lsu_addrcheck.scala 86:92]
node _T_7 = eq(_T_6, UInt<4>("h0f")) @[el2_lsu_addrcheck.scala 86:98]
node base_reg_dccm_or_pic = or(_T_5, _T_7) @[el2_lsu_addrcheck.scala 86:74]
node _T_8 = and(start_addr_in_dccm_d, end_addr_in_dccm_d) @[el2_lsu_addrcheck.scala 87:57]
io.addr_in_dccm_d <= _T_8 @[el2_lsu_addrcheck.scala 87:32]
node _T_9 = and(start_addr_pic_rangecheck.io.in_range, end_addr_pic_rangecheck.io.in_range) @[el2_lsu_addrcheck.scala 88:56]
io.addr_in_pic_d <= _T_9 @[el2_lsu_addrcheck.scala 88:32]
node _T_10 = or(start_addr_in_dccm_region_d, start_addr_pic_rangecheck.io.in_region) @[el2_lsu_addrcheck.scala 90:63]
node _T_11 = not(_T_10) @[el2_lsu_addrcheck.scala 90:33]
io.addr_external_d <= _T_11 @[el2_lsu_addrcheck.scala 90:30]
node _T_12 = bits(io.start_addr_d, 31, 28) @[el2_lsu_addrcheck.scala 91:51]
node csr_idx = cat(_T_12, UInt<1>("h01")) @[Cat.scala 29:58]
node _T_13 = dshr(io.dec_tlu_mrac_ff, csr_idx) @[el2_lsu_addrcheck.scala 92:50]
node _T_14 = bits(_T_13, 0, 0) @[el2_lsu_addrcheck.scala 92:50]
node _T_15 = or(start_addr_in_dccm_region_d, start_addr_pic_rangecheck.io.in_region) @[el2_lsu_addrcheck.scala 92:92]
node _T_16 = or(_T_15, addr_in_iccm) @[el2_lsu_addrcheck.scala 92:121]
node _T_17 = not(_T_16) @[el2_lsu_addrcheck.scala 92:62]
node _T_18 = and(_T_14, _T_17) @[el2_lsu_addrcheck.scala 92:60]
node _T_19 = and(_T_18, io.lsu_pkt_d.valid) @[el2_lsu_addrcheck.scala 92:137]
node _T_20 = or(io.lsu_pkt_d.store, io.lsu_pkt_d.load) @[el2_lsu_addrcheck.scala 92:180]
node is_sideeffects_d = and(_T_19, _T_20) @[el2_lsu_addrcheck.scala 92:158]
node _T_21 = bits(io.start_addr_d, 1, 0) @[el2_lsu_addrcheck.scala 93:69]
node _T_22 = eq(_T_21, UInt<1>("h00")) @[el2_lsu_addrcheck.scala 93:75]
node _T_23 = and(io.lsu_pkt_d.word, _T_22) @[el2_lsu_addrcheck.scala 93:51]
node _T_24 = bits(io.start_addr_d, 0, 0) @[el2_lsu_addrcheck.scala 93:124]
node _T_25 = eq(_T_24, UInt<1>("h00")) @[el2_lsu_addrcheck.scala 93:128]
node _T_26 = and(io.lsu_pkt_d.half, _T_25) @[el2_lsu_addrcheck.scala 93:106]
node _T_27 = or(_T_23, _T_26) @[el2_lsu_addrcheck.scala 93:85]
node is_aligned_d = or(_T_27, io.lsu_pkt_d.by) @[el2_lsu_addrcheck.scala 93:138]
node _T_28 = cat(UInt<1>("h00"), UInt<1>("h00")) @[Cat.scala 29:58]
node _T_29 = cat(UInt<1>("h00"), UInt<1>("h00")) @[Cat.scala 29:58]
node _T_30 = cat(_T_29, _T_28) @[Cat.scala 29:58]
node _T_31 = cat(UInt<1>("h01"), UInt<1>("h01")) @[Cat.scala 29:58]
node _T_32 = cat(UInt<1>("h01"), UInt<1>("h01")) @[Cat.scala 29:58]
node _T_33 = cat(_T_32, _T_31) @[Cat.scala 29:58]
node _T_34 = cat(_T_33, _T_30) @[Cat.scala 29:58]
node _T_35 = orr(_T_34) @[el2_lsu_addrcheck.scala 97:99]
node _T_36 = not(_T_35) @[el2_lsu_addrcheck.scala 96:33]
node _T_37 = bits(io.start_addr_d, 31, 0) @[el2_lsu_addrcheck.scala 98:50]
node _T_38 = or(_T_37, UInt<32>("h07fffffff")) @[el2_lsu_addrcheck.scala 98:57]
node _T_39 = or(UInt<32>("h00"), UInt<32>("h07fffffff")) @[el2_lsu_addrcheck.scala 98:108]
node _T_40 = eq(_T_38, _T_39) @[el2_lsu_addrcheck.scala 98:82]
node _T_41 = and(UInt<1>("h01"), _T_40) @[el2_lsu_addrcheck.scala 98:31]
node _T_42 = bits(io.start_addr_d, 31, 0) @[el2_lsu_addrcheck.scala 99:50]
node _T_43 = or(_T_42, UInt<32>("h03fffffff")) @[el2_lsu_addrcheck.scala 99:57]
node _T_44 = or(UInt<32>("h0c0000000"), UInt<32>("h03fffffff")) @[el2_lsu_addrcheck.scala 99:108]
node _T_45 = eq(_T_43, _T_44) @[el2_lsu_addrcheck.scala 99:82]
node _T_46 = and(UInt<1>("h01"), _T_45) @[el2_lsu_addrcheck.scala 99:31]
node _T_47 = or(_T_41, _T_46) @[el2_lsu_addrcheck.scala 98:133]
node _T_48 = bits(io.start_addr_d, 31, 0) @[el2_lsu_addrcheck.scala 100:50]
node _T_49 = or(_T_48, UInt<32>("h01fffffff")) @[el2_lsu_addrcheck.scala 100:57]
node _T_50 = or(UInt<32>("h0a0000000"), UInt<32>("h01fffffff")) @[el2_lsu_addrcheck.scala 100:108]
node _T_51 = eq(_T_49, _T_50) @[el2_lsu_addrcheck.scala 100:82]
node _T_52 = and(UInt<1>("h01"), _T_51) @[el2_lsu_addrcheck.scala 100:31]
node _T_53 = or(_T_47, _T_52) @[el2_lsu_addrcheck.scala 99:133]
node _T_54 = bits(io.start_addr_d, 31, 0) @[el2_lsu_addrcheck.scala 101:50]
node _T_55 = or(_T_54, UInt<32>("h0fffffff")) @[el2_lsu_addrcheck.scala 101:57]
node _T_56 = or(UInt<32>("h080000000"), UInt<32>("h0fffffff")) @[el2_lsu_addrcheck.scala 101:108]
node _T_57 = eq(_T_55, _T_56) @[el2_lsu_addrcheck.scala 101:82]
node _T_58 = and(UInt<1>("h01"), _T_57) @[el2_lsu_addrcheck.scala 101:31]
node _T_59 = or(_T_53, _T_58) @[el2_lsu_addrcheck.scala 100:133]
node _T_60 = bits(io.start_addr_d, 31, 0) @[el2_lsu_addrcheck.scala 102:50]
node _T_61 = or(_T_60, UInt<32>("h0ffffffff")) @[el2_lsu_addrcheck.scala 102:57]
node _T_62 = or(UInt<32>("h00"), UInt<32>("h0ffffffff")) @[el2_lsu_addrcheck.scala 102:108]
node _T_63 = eq(_T_61, _T_62) @[el2_lsu_addrcheck.scala 102:82]
node _T_64 = and(UInt<1>("h00"), _T_63) @[el2_lsu_addrcheck.scala 102:31]
node _T_65 = or(_T_59, _T_64) @[el2_lsu_addrcheck.scala 101:133]
node _T_66 = bits(io.start_addr_d, 31, 0) @[el2_lsu_addrcheck.scala 103:50]
node _T_67 = or(_T_66, UInt<32>("h0ffffffff")) @[el2_lsu_addrcheck.scala 103:57]
node _T_68 = or(UInt<32>("h00"), UInt<32>("h0ffffffff")) @[el2_lsu_addrcheck.scala 103:108]
node _T_69 = eq(_T_67, _T_68) @[el2_lsu_addrcheck.scala 103:82]
node _T_70 = and(UInt<1>("h00"), _T_69) @[el2_lsu_addrcheck.scala 103:31]
node _T_71 = or(_T_65, _T_70) @[el2_lsu_addrcheck.scala 102:133]
node _T_72 = bits(io.start_addr_d, 31, 0) @[el2_lsu_addrcheck.scala 104:50]
node _T_73 = or(_T_72, UInt<32>("h0ffffffff")) @[el2_lsu_addrcheck.scala 104:57]
node _T_74 = or(UInt<32>("h00"), UInt<32>("h0ffffffff")) @[el2_lsu_addrcheck.scala 104:108]
node _T_75 = eq(_T_73, _T_74) @[el2_lsu_addrcheck.scala 104:82]
node _T_76 = and(UInt<1>("h00"), _T_75) @[el2_lsu_addrcheck.scala 104:31]
node _T_77 = or(_T_71, _T_76) @[el2_lsu_addrcheck.scala 103:133]
node _T_78 = bits(io.start_addr_d, 31, 0) @[el2_lsu_addrcheck.scala 105:50]
node _T_79 = or(_T_78, UInt<32>("h0ffffffff")) @[el2_lsu_addrcheck.scala 105:57]
node _T_80 = or(UInt<32>("h00"), UInt<32>("h0ffffffff")) @[el2_lsu_addrcheck.scala 105:108]
node _T_81 = eq(_T_79, _T_80) @[el2_lsu_addrcheck.scala 105:82]
node _T_82 = and(UInt<1>("h00"), _T_81) @[el2_lsu_addrcheck.scala 105:31]
node _T_83 = or(_T_77, _T_82) @[el2_lsu_addrcheck.scala 104:133]
node _T_84 = bits(io.end_addr_d, 31, 0) @[el2_lsu_addrcheck.scala 107:49]
node _T_85 = or(_T_84, UInt<32>("h07fffffff")) @[el2_lsu_addrcheck.scala 107:58]
node _T_86 = or(UInt<32>("h00"), UInt<32>("h07fffffff")) @[el2_lsu_addrcheck.scala 107:109]
node _T_87 = eq(_T_85, _T_86) @[el2_lsu_addrcheck.scala 107:83]
node _T_88 = and(UInt<1>("h01"), _T_87) @[el2_lsu_addrcheck.scala 107:32]
node _T_89 = bits(io.end_addr_d, 31, 0) @[el2_lsu_addrcheck.scala 108:50]
node _T_90 = or(_T_89, UInt<32>("h03fffffff")) @[el2_lsu_addrcheck.scala 108:59]
node _T_91 = or(UInt<32>("h0c0000000"), UInt<32>("h03fffffff")) @[el2_lsu_addrcheck.scala 108:110]
node _T_92 = eq(_T_90, _T_91) @[el2_lsu_addrcheck.scala 108:84]
node _T_93 = and(UInt<1>("h01"), _T_92) @[el2_lsu_addrcheck.scala 108:33]
node _T_94 = or(_T_88, _T_93) @[el2_lsu_addrcheck.scala 107:134]
node _T_95 = bits(io.end_addr_d, 31, 0) @[el2_lsu_addrcheck.scala 109:50]
node _T_96 = or(_T_95, UInt<32>("h01fffffff")) @[el2_lsu_addrcheck.scala 109:59]
node _T_97 = or(UInt<32>("h0a0000000"), UInt<32>("h01fffffff")) @[el2_lsu_addrcheck.scala 109:110]
node _T_98 = eq(_T_96, _T_97) @[el2_lsu_addrcheck.scala 109:84]
node _T_99 = and(UInt<1>("h01"), _T_98) @[el2_lsu_addrcheck.scala 109:33]
node _T_100 = or(_T_94, _T_99) @[el2_lsu_addrcheck.scala 108:135]
node _T_101 = bits(io.end_addr_d, 31, 0) @[el2_lsu_addrcheck.scala 110:50]
node _T_102 = or(_T_101, UInt<32>("h0fffffff")) @[el2_lsu_addrcheck.scala 110:59]
node _T_103 = or(UInt<32>("h080000000"), UInt<32>("h0fffffff")) @[el2_lsu_addrcheck.scala 110:110]
node _T_104 = eq(_T_102, _T_103) @[el2_lsu_addrcheck.scala 110:84]
node _T_105 = and(UInt<1>("h01"), _T_104) @[el2_lsu_addrcheck.scala 110:33]
node _T_106 = or(_T_100, _T_105) @[el2_lsu_addrcheck.scala 109:135]
node _T_107 = bits(io.end_addr_d, 31, 0) @[el2_lsu_addrcheck.scala 111:50]
node _T_108 = or(_T_107, UInt<32>("h0ffffffff")) @[el2_lsu_addrcheck.scala 111:59]
node _T_109 = or(UInt<32>("h00"), UInt<32>("h0ffffffff")) @[el2_lsu_addrcheck.scala 111:110]
node _T_110 = eq(_T_108, _T_109) @[el2_lsu_addrcheck.scala 111:84]
node _T_111 = and(UInt<1>("h00"), _T_110) @[el2_lsu_addrcheck.scala 111:33]
node _T_112 = or(_T_106, _T_111) @[el2_lsu_addrcheck.scala 110:135]
node _T_113 = bits(io.end_addr_d, 31, 0) @[el2_lsu_addrcheck.scala 112:50]
node _T_114 = or(_T_113, UInt<32>("h0ffffffff")) @[el2_lsu_addrcheck.scala 112:59]
node _T_115 = or(UInt<32>("h00"), UInt<32>("h0ffffffff")) @[el2_lsu_addrcheck.scala 112:110]
node _T_116 = eq(_T_114, _T_115) @[el2_lsu_addrcheck.scala 112:84]
node _T_117 = and(UInt<1>("h00"), _T_116) @[el2_lsu_addrcheck.scala 112:33]
node _T_118 = or(_T_112, _T_117) @[el2_lsu_addrcheck.scala 111:135]
node _T_119 = bits(io.end_addr_d, 31, 0) @[el2_lsu_addrcheck.scala 113:50]
node _T_120 = or(_T_119, UInt<32>("h0ffffffff")) @[el2_lsu_addrcheck.scala 113:59]
node _T_121 = or(UInt<32>("h00"), UInt<32>("h0ffffffff")) @[el2_lsu_addrcheck.scala 113:110]
node _T_122 = eq(_T_120, _T_121) @[el2_lsu_addrcheck.scala 113:84]
node _T_123 = and(UInt<1>("h00"), _T_122) @[el2_lsu_addrcheck.scala 113:33]
node _T_124 = or(_T_118, _T_123) @[el2_lsu_addrcheck.scala 112:135]
node _T_125 = bits(io.end_addr_d, 31, 0) @[el2_lsu_addrcheck.scala 114:50]
node _T_126 = or(_T_125, UInt<32>("h0ffffffff")) @[el2_lsu_addrcheck.scala 114:59]
node _T_127 = or(UInt<32>("h00"), UInt<32>("h0ffffffff")) @[el2_lsu_addrcheck.scala 114:110]
node _T_128 = eq(_T_126, _T_127) @[el2_lsu_addrcheck.scala 114:84]
node _T_129 = and(UInt<1>("h00"), _T_128) @[el2_lsu_addrcheck.scala 114:33]
node _T_130 = or(_T_124, _T_129) @[el2_lsu_addrcheck.scala 113:135]
node _T_131 = and(_T_83, _T_130) @[el2_lsu_addrcheck.scala 106:7]
node non_dccm_access_ok = or(_T_36, _T_131) @[el2_lsu_addrcheck.scala 97:104]
node regpred_access_fault_d = xor(start_addr_dccm_or_pic, base_reg_dccm_or_pic) @[el2_lsu_addrcheck.scala 116:57]
node _T_132 = bits(io.start_addr_d, 1, 0) @[el2_lsu_addrcheck.scala 117:70]
node _T_133 = neq(_T_132, UInt<2>("h00")) @[el2_lsu_addrcheck.scala 117:76]
node _T_134 = not(io.lsu_pkt_d.word) @[el2_lsu_addrcheck.scala 117:92]
node _T_135 = or(_T_133, _T_134) @[el2_lsu_addrcheck.scala 117:90]
node picm_access_fault_d = and(io.addr_in_pic_d, _T_135) @[el2_lsu_addrcheck.scala 117: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_136 = or(start_addr_in_dccm_d, start_addr_pic_rangecheck.io.in_range) @[el2_lsu_addrcheck.scala 122:87]
node _T_137 = not(_T_136) @[el2_lsu_addrcheck.scala 122:64]
node _T_138 = and(start_addr_in_dccm_region_d, _T_137) @[el2_lsu_addrcheck.scala 122:62]
node _T_139 = or(end_addr_in_dccm_d, end_addr_pic_rangecheck.io.in_range) @[el2_lsu_addrcheck.scala 124:57]
node _T_140 = not(_T_139) @[el2_lsu_addrcheck.scala 124:36]
node _T_141 = and(end_addr_in_dccm_region_d, _T_140) @[el2_lsu_addrcheck.scala 124:34]
node _T_142 = or(_T_138, _T_141) @[el2_lsu_addrcheck.scala 122:112]
node _T_143 = and(start_addr_in_dccm_d, end_addr_pic_rangecheck.io.in_range) @[el2_lsu_addrcheck.scala 126:29]
node _T_144 = or(_T_142, _T_143) @[el2_lsu_addrcheck.scala 124:85]
node _T_145 = and(start_addr_pic_rangecheck.io.in_range, end_addr_in_dccm_d) @[el2_lsu_addrcheck.scala 128:29]
node _T_146 = or(_T_144, _T_145) @[el2_lsu_addrcheck.scala 126:85]
unmapped_access_fault_d <= _T_146 @[el2_lsu_addrcheck.scala 122:29]
node _T_147 = not(start_addr_in_dccm_region_d) @[el2_lsu_addrcheck.scala 130:33]
node _T_148 = not(non_dccm_access_ok) @[el2_lsu_addrcheck.scala 130:64]
node _T_149 = and(_T_147, _T_148) @[el2_lsu_addrcheck.scala 130:62]
mpu_access_fault_d <= _T_149 @[el2_lsu_addrcheck.scala 130:29]
node _T_150 = or(unmapped_access_fault_d, mpu_access_fault_d) @[el2_lsu_addrcheck.scala 142:49]
node _T_151 = or(_T_150, picm_access_fault_d) @[el2_lsu_addrcheck.scala 142:70]
node _T_152 = or(_T_151, regpred_access_fault_d) @[el2_lsu_addrcheck.scala 142:92]
node _T_153 = and(_T_152, io.lsu_pkt_d.valid) @[el2_lsu_addrcheck.scala 142:118]
node _T_154 = not(io.lsu_pkt_d.dma) @[el2_lsu_addrcheck.scala 142:141]
node _T_155 = and(_T_153, _T_154) @[el2_lsu_addrcheck.scala 142:139]
io.access_fault_d <= _T_155 @[el2_lsu_addrcheck.scala 142:21]
node _T_156 = bits(unmapped_access_fault_d, 0, 0) @[el2_lsu_addrcheck.scala 143:60]
node _T_157 = bits(mpu_access_fault_d, 0, 0) @[el2_lsu_addrcheck.scala 143:100]
node _T_158 = bits(regpred_access_fault_d, 0, 0) @[el2_lsu_addrcheck.scala 143:144]
node _T_159 = bits(picm_access_fault_d, 0, 0) @[el2_lsu_addrcheck.scala 143:185]
node _T_160 = mux(_T_159, UInt<4>("h06"), UInt<4>("h00")) @[el2_lsu_addrcheck.scala 143:164]
node _T_161 = mux(_T_158, UInt<4>("h05"), _T_160) @[el2_lsu_addrcheck.scala 143:120]
node _T_162 = mux(_T_157, UInt<4>("h03"), _T_161) @[el2_lsu_addrcheck.scala 143:80]
node access_fault_mscause_d = mux(_T_156, UInt<4>("h02"), _T_162) @[el2_lsu_addrcheck.scala 143:35]
node _T_163 = bits(io.start_addr_d, 31, 28) @[el2_lsu_addrcheck.scala 144:53]
node _T_164 = bits(io.end_addr_d, 31, 28) @[el2_lsu_addrcheck.scala 144:78]
node regcross_misaligned_fault_d = neq(_T_163, _T_164) @[el2_lsu_addrcheck.scala 144:61]
node _T_165 = not(is_aligned_d) @[el2_lsu_addrcheck.scala 145:59]
node sideeffect_misaligned_fault_d = and(is_sideeffects_d, _T_165) @[el2_lsu_addrcheck.scala 145:57]
node _T_166 = and(sideeffect_misaligned_fault_d, io.addr_external_d) @[el2_lsu_addrcheck.scala 146:90]
node _T_167 = or(regcross_misaligned_fault_d, _T_166) @[el2_lsu_addrcheck.scala 146:57]
node _T_168 = and(_T_167, io.lsu_pkt_d.valid) @[el2_lsu_addrcheck.scala 146:113]
node _T_169 = not(io.lsu_pkt_d.dma) @[el2_lsu_addrcheck.scala 146:136]
node _T_170 = and(_T_168, _T_169) @[el2_lsu_addrcheck.scala 146:134]
io.misaligned_fault_d <= _T_170 @[el2_lsu_addrcheck.scala 146:25]
node _T_171 = bits(sideeffect_misaligned_fault_d, 0, 0) @[el2_lsu_addrcheck.scala 147:111]
node _T_172 = mux(_T_171, UInt<4>("h01"), UInt<4>("h00")) @[el2_lsu_addrcheck.scala 147:80]
node misaligned_fault_mscause_d = mux(regcross_misaligned_fault_d, UInt<4>("h02"), _T_172) @[el2_lsu_addrcheck.scala 147:39]
node _T_173 = bits(io.misaligned_fault_d, 0, 0) @[el2_lsu_addrcheck.scala 148:50]
node _T_174 = bits(misaligned_fault_mscause_d, 3, 0) @[el2_lsu_addrcheck.scala 148:84]
node _T_175 = bits(access_fault_mscause_d, 3, 0) @[el2_lsu_addrcheck.scala 148:113]
node _T_176 = mux(_T_173, _T_174, _T_175) @[el2_lsu_addrcheck.scala 148:27]
io.exc_mscause_d <= _T_176 @[el2_lsu_addrcheck.scala 148:21]
node _T_177 = not(start_addr_in_dccm_d) @[el2_lsu_addrcheck.scala 149:66]
node _T_178 = and(start_addr_in_dccm_region_d, _T_177) @[el2_lsu_addrcheck.scala 149:64]
node _T_179 = not(end_addr_in_dccm_d) @[el2_lsu_addrcheck.scala 149:120]
node _T_180 = and(end_addr_in_dccm_region_d, _T_179) @[el2_lsu_addrcheck.scala 149:118]
node _T_181 = or(_T_178, _T_180) @[el2_lsu_addrcheck.scala 149:88]
node _T_182 = and(_T_181, io.lsu_pkt_d.valid) @[el2_lsu_addrcheck.scala 149:142]
node _T_183 = and(_T_182, io.lsu_pkt_d.fast_int) @[el2_lsu_addrcheck.scala 149:163]
io.fir_dccm_access_error_d <= _T_183 @[el2_lsu_addrcheck.scala 149:31]
node _T_184 = and(start_addr_in_dccm_region_d, end_addr_in_dccm_region_d) @[el2_lsu_addrcheck.scala 150:66]
node _T_185 = not(_T_184) @[el2_lsu_addrcheck.scala 150:36]
node _T_186 = and(_T_185, io.lsu_pkt_d.valid) @[el2_lsu_addrcheck.scala 150:95]
node _T_187 = and(_T_186, io.lsu_pkt_d.fast_int) @[el2_lsu_addrcheck.scala 150:116]
io.fir_nondccm_access_error_d <= _T_187 @[el2_lsu_addrcheck.scala 150:33]
reg _T_188 : UInt, io.lsu_c2_m_clk with : (reset => (reset, UInt<1>("h00"))) @[el2_lsu_addrcheck.scala 152:60]
_T_188 <= is_sideeffects_d @[el2_lsu_addrcheck.scala 152:60]
io.is_sideeffects_m <= _T_188 @[el2_lsu_addrcheck.scala 152:50]