From 8f0104e35b19321dca37df5071d7f7f14a3bdad2 Mon Sep 17 00:00:00 2001 From: waleed-lm Date: Fri, 11 Dec 2020 15:19:06 +0500 Subject: [PATCH] Quasar top done --- firrtl_black_box_resource_files.f | 4 +- quasar_wrapper.fir | 594 +++++++++--------- quasar_wrapper.v | 450 ++++++------- src/main/scala/dma_ctrl.scala | 4 - src/main/scala/lib/ahb_to_axi4.scala | 3 - src/main/scala/lib/axi4_to_ahb.scala | 5 - src/main/scala/lsu/lsu.scala | 3 - src/main/scala/lsu/lsu_bus_buffer.scala | 3 - src/main/scala/pic_ctrl.scala | 4 - src/main/scala/quasar.scala | 3 - src/main/scala/quasar_wrapper.scala | 39 +- target/scala-2.12/classes/QUASAR_Wrp$.class | Bin 3859 -> 3859 bytes .../classes/QUASAR_Wrp$delayedInit$body.class | Bin 729 -> 729 bytes .../scala-2.12/classes/quasar_wrapper.class | Bin 87491 -> 89237 bytes 14 files changed, 527 insertions(+), 585 deletions(-) diff --git a/firrtl_black_box_resource_files.f b/firrtl_black_box_resource_files.f index d4456bc6..40eae7ce 100644 --- a/firrtl_black_box_resource_files.f +++ b/firrtl_black_box_resource_files.f @@ -1 +1,3 @@ -/home/waleedbinehsan/Desktop/Quasar/gated_latch.v \ No newline at end of file +/home/waleedbinehsan/Desktop/Quasar/gated_latch.v +/home/waleedbinehsan/Desktop/Quasar/dmi_wrapper.sv +/home/waleedbinehsan/Desktop/Quasar/mem.sv \ No newline at end of file diff --git a/quasar_wrapper.fir b/quasar_wrapper.fir index b08de1aa..a2904da3 100644 --- a/quasar_wrapper.fir +++ b/quasar_wrapper.fir @@ -114830,305 +114830,297 @@ circuit quasar_wrapper : inst swerv of quasar @[quasar_wrapper.scala 65:21] swerv.clock <= clock swerv.reset <= reset - dmi_wrapper.trst_n <= io.jtag_trst_n @[quasar_wrapper.scala 66:25] - dmi_wrapper.tck <= io.jtag_tck @[quasar_wrapper.scala 67:22] - dmi_wrapper.tms <= io.jtag_tms @[quasar_wrapper.scala 68:22] - dmi_wrapper.tdi <= io.jtag_tdi @[quasar_wrapper.scala 69:22] - dmi_wrapper.core_clk <= clock @[quasar_wrapper.scala 70:27] - dmi_wrapper.jtag_id <= io.jtag_id @[quasar_wrapper.scala 71:26] - dmi_wrapper.rd_data <= swerv.io.dmi_reg_rdata @[quasar_wrapper.scala 72:26] - dmi_wrapper.core_rst_n <= io.dbg_rst_l @[quasar_wrapper.scala 75:29] - swerv.io.dmi_reg_wdata <= dmi_wrapper.reg_wr_data @[quasar_wrapper.scala 76:26] - swerv.io.dmi_reg_addr <= dmi_wrapper.reg_wr_addr @[quasar_wrapper.scala 77:25] - swerv.io.dmi_reg_en <= dmi_wrapper.reg_en @[quasar_wrapper.scala 78:23] - swerv.io.dmi_reg_wr_en <= dmi_wrapper.reg_wr_en @[quasar_wrapper.scala 79:26] - swerv.io.dmi_hard_reset <= dmi_wrapper.dmi_hard_reset @[quasar_wrapper.scala 80:27] - io.jtag_tdo <= dmi_wrapper.tdo @[quasar_wrapper.scala 81:15] - mem.dccm_clk_override <= swerv.io.dccm_clk_override @[quasar_wrapper.scala 84:28] - mem.icm_clk_override <= swerv.io.icm_clk_override @[quasar_wrapper.scala 85:27] - mem.dec_tlu_core_ecc_disable <= swerv.io.dec_tlu_core_ecc_disable @[quasar_wrapper.scala 86:35] - swerv.io.dccm.rd_data_hi <= mem.dccm.rd_data_hi @[quasar_wrapper.scala 87:15] - swerv.io.dccm.rd_data_lo <= mem.dccm.rd_data_lo @[quasar_wrapper.scala 87:15] - mem.dccm.wr_data_hi <= swerv.io.dccm.wr_data_hi @[quasar_wrapper.scala 87:15] - mem.dccm.wr_data_lo <= swerv.io.dccm.wr_data_lo @[quasar_wrapper.scala 87:15] - mem.dccm.rd_addr_hi <= swerv.io.dccm.rd_addr_hi @[quasar_wrapper.scala 87:15] - mem.dccm.rd_addr_lo <= swerv.io.dccm.rd_addr_lo @[quasar_wrapper.scala 87:15] - mem.dccm.wr_addr_hi <= swerv.io.dccm.wr_addr_hi @[quasar_wrapper.scala 87:15] - mem.dccm.wr_addr_lo <= swerv.io.dccm.wr_addr_lo @[quasar_wrapper.scala 87:15] - mem.dccm.rden <= swerv.io.dccm.rden @[quasar_wrapper.scala 87:15] - mem.dccm.wren <= swerv.io.dccm.wren @[quasar_wrapper.scala 87:15] - mem.rst_l <= reset @[quasar_wrapper.scala 88:16] - mem.clk <= clock @[quasar_wrapper.scala 89:14] - mem.scan_mode <= io.scan_mode @[quasar_wrapper.scala 90:20] - swerv.io.dbg_rst_l <= io.dbg_rst_l @[quasar_wrapper.scala 92:22] - mem.ic.sel_premux_data <= swerv.io.ic.sel_premux_data @[quasar_wrapper.scala 93:15] - mem.ic.premux_data <= swerv.io.ic.premux_data @[quasar_wrapper.scala 93:15] - mem.ic.debug_way <= swerv.io.ic.debug_way @[quasar_wrapper.scala 93:15] - mem.ic.debug_tag_array <= swerv.io.ic.debug_tag_array @[quasar_wrapper.scala 93:15] - mem.ic.debug_wr_en <= swerv.io.ic.debug_wr_en @[quasar_wrapper.scala 93:15] - mem.ic.debug_rd_en <= swerv.io.ic.debug_rd_en @[quasar_wrapper.scala 93:15] - swerv.io.ic.tag_perr <= mem.ic.tag_perr @[quasar_wrapper.scala 93:15] - swerv.io.ic.rd_hit <= mem.ic.rd_hit @[quasar_wrapper.scala 93:15] - swerv.io.ic.parerr <= mem.ic.parerr @[quasar_wrapper.scala 93:15] - swerv.io.ic.eccerr <= mem.ic.eccerr @[quasar_wrapper.scala 93:15] - swerv.io.ic.tag_debug_rd_data <= mem.ic.tag_debug_rd_data @[quasar_wrapper.scala 93:15] - swerv.io.ic.debug_rd_data <= mem.ic.debug_rd_data @[quasar_wrapper.scala 93:15] - swerv.io.ic.rd_data <= mem.ic.rd_data @[quasar_wrapper.scala 93:15] - mem.ic.debug_addr <= swerv.io.ic.debug_addr @[quasar_wrapper.scala 93:15] - mem.ic.debug_wr_data <= swerv.io.ic.debug_wr_data @[quasar_wrapper.scala 93:15] - mem.ic.wr_data[0] <= swerv.io.ic.wr_data[0] @[quasar_wrapper.scala 93:15] - mem.ic.wr_data[1] <= swerv.io.ic.wr_data[1] @[quasar_wrapper.scala 93:15] - mem.ic.rd_en <= swerv.io.ic.rd_en @[quasar_wrapper.scala 93:15] - mem.ic.wr_en <= swerv.io.ic.wr_en @[quasar_wrapper.scala 93:15] - mem.ic.tag_valid <= swerv.io.ic.tag_valid @[quasar_wrapper.scala 93:15] - mem.ic.rw_addr <= swerv.io.ic.rw_addr @[quasar_wrapper.scala 93:15] - swerv.io.iccm.rd_data_ecc <= mem.iccm.rd_data_ecc @[quasar_wrapper.scala 94:17] - swerv.io.iccm.rd_data <= mem.iccm.rd_data @[quasar_wrapper.scala 94:17] - mem.iccm.wr_data <= swerv.io.iccm.wr_data @[quasar_wrapper.scala 94:17] - mem.iccm.wr_size <= swerv.io.iccm.wr_size @[quasar_wrapper.scala 94:17] - mem.iccm.rden <= swerv.io.iccm.rden @[quasar_wrapper.scala 94:17] - mem.iccm.wren <= swerv.io.iccm.wren @[quasar_wrapper.scala 94:17] - mem.iccm.correction_state <= swerv.io.iccm.correction_state @[quasar_wrapper.scala 94:17] - mem.iccm.buf_correct_ecc <= swerv.io.iccm.buf_correct_ecc @[quasar_wrapper.scala 94:17] - mem.iccm.rw_addr <= swerv.io.iccm.rw_addr @[quasar_wrapper.scala 94:17] - wire _T : {flip hrdata : UInt<64>, flip hready : UInt<1>, flip hresp : UInt<1>} @[quasar_wrapper.scala 96:39] - _T.hresp <= UInt<1>("h00") @[quasar_wrapper.scala 96:39] - _T.hready <= UInt<1>("h00") @[quasar_wrapper.scala 96:39] - _T.hrdata <= UInt<64>("h00") @[quasar_wrapper.scala 96:39] - swerv.io.ahb.in.hresp <= _T.hresp @[quasar_wrapper.scala 96:24] - swerv.io.ahb.in.hready <= _T.hready @[quasar_wrapper.scala 96:24] - swerv.io.ahb.in.hrdata <= _T.hrdata @[quasar_wrapper.scala 96:24] - wire _T_1 : {flip hrdata : UInt<64>, flip hready : UInt<1>, flip hresp : UInt<1>} @[quasar_wrapper.scala 97:39] - _T_1.hresp <= UInt<1>("h00") @[quasar_wrapper.scala 97:39] - _T_1.hready <= UInt<1>("h00") @[quasar_wrapper.scala 97:39] - _T_1.hrdata <= UInt<64>("h00") @[quasar_wrapper.scala 97:39] - swerv.io.lsu_ahb.in.hresp <= _T_1.hresp @[quasar_wrapper.scala 97:24] - swerv.io.lsu_ahb.in.hready <= _T_1.hready @[quasar_wrapper.scala 97:24] - swerv.io.lsu_ahb.in.hrdata <= _T_1.hrdata @[quasar_wrapper.scala 97:24] - wire _T_2 : {flip hrdata : UInt<64>, flip hready : UInt<1>, flip hresp : UInt<1>} @[quasar_wrapper.scala 98:39] - _T_2.hresp <= UInt<1>("h00") @[quasar_wrapper.scala 98:39] - _T_2.hready <= UInt<1>("h00") @[quasar_wrapper.scala 98:39] - _T_2.hrdata <= UInt<64>("h00") @[quasar_wrapper.scala 98:39] - swerv.io.sb_ahb.in.hresp <= _T_2.hresp @[quasar_wrapper.scala 98:24] - swerv.io.sb_ahb.in.hready <= _T_2.hready @[quasar_wrapper.scala 98:24] - swerv.io.sb_ahb.in.hrdata <= _T_2.hrdata @[quasar_wrapper.scala 98:24] - wire _T_3 : {flip ahb : {in : {flip hrdata : UInt<64>, flip hready : UInt<1>, flip hresp : UInt<1>}, out : {haddr : UInt<32>, hburst : UInt<3>, hmastlock : UInt<1>, hprot : UInt<4>, hsize : UInt<3>, htrans : UInt<2>, hwrite : UInt<1>, hwdata : UInt<64>}}, flip hsel : UInt<1>, flip hreadyin : UInt<1>} @[quasar_wrapper.scala 99:33] - _T_3.hreadyin <= UInt<1>("h00") @[quasar_wrapper.scala 99:33] - _T_3.hsel <= UInt<1>("h00") @[quasar_wrapper.scala 99:33] - _T_3.ahb.out.hwdata <= UInt<64>("h00") @[quasar_wrapper.scala 99:33] - _T_3.ahb.out.hwrite <= UInt<1>("h00") @[quasar_wrapper.scala 99:33] - _T_3.ahb.out.htrans <= UInt<2>("h00") @[quasar_wrapper.scala 99:33] - _T_3.ahb.out.hsize <= UInt<3>("h00") @[quasar_wrapper.scala 99:33] - _T_3.ahb.out.hprot <= UInt<4>("h00") @[quasar_wrapper.scala 99:33] - _T_3.ahb.out.hmastlock <= UInt<1>("h00") @[quasar_wrapper.scala 99:33] - _T_3.ahb.out.hburst <= UInt<3>("h00") @[quasar_wrapper.scala 99:33] - _T_3.ahb.out.haddr <= UInt<32>("h00") @[quasar_wrapper.scala 99:33] - _T_3.ahb.in.hresp <= UInt<1>("h00") @[quasar_wrapper.scala 99:33] - _T_3.ahb.in.hready <= UInt<1>("h00") @[quasar_wrapper.scala 99:33] - _T_3.ahb.in.hrdata <= UInt<64>("h00") @[quasar_wrapper.scala 99:33] - swerv.io.dma.hreadyin <= _T_3.hreadyin @[quasar_wrapper.scala 99:18] - swerv.io.dma.hsel <= _T_3.hsel @[quasar_wrapper.scala 99:18] - swerv.io.dma.ahb.out.hwdata <= _T_3.ahb.out.hwdata @[quasar_wrapper.scala 99:18] - swerv.io.dma.ahb.out.hwrite <= _T_3.ahb.out.hwrite @[quasar_wrapper.scala 99:18] - swerv.io.dma.ahb.out.htrans <= _T_3.ahb.out.htrans @[quasar_wrapper.scala 99:18] - swerv.io.dma.ahb.out.hsize <= _T_3.ahb.out.hsize @[quasar_wrapper.scala 99:18] - swerv.io.dma.ahb.out.hprot <= _T_3.ahb.out.hprot @[quasar_wrapper.scala 99:18] - swerv.io.dma.ahb.out.hmastlock <= _T_3.ahb.out.hmastlock @[quasar_wrapper.scala 99:18] - swerv.io.dma.ahb.out.hburst <= _T_3.ahb.out.hburst @[quasar_wrapper.scala 99:18] - swerv.io.dma.ahb.out.haddr <= _T_3.ahb.out.haddr @[quasar_wrapper.scala 99:18] - _T_3.ahb.in.hresp <= swerv.io.dma.ahb.in.hresp @[quasar_wrapper.scala 99:18] - _T_3.ahb.in.hready <= swerv.io.dma.ahb.in.hready @[quasar_wrapper.scala 99:18] - _T_3.ahb.in.hrdata <= swerv.io.dma.ahb.in.hrdata @[quasar_wrapper.scala 99:18] - swerv.io.scan_mode <= io.scan_mode @[quasar_wrapper.scala 110:22] - swerv.io.dbg_rst_l <= io.dbg_rst_l @[quasar_wrapper.scala 112:22] - swerv.io.rst_vec <= io.rst_vec @[quasar_wrapper.scala 113:20] - swerv.io.nmi_int <= io.nmi_int @[quasar_wrapper.scala 114:20] - swerv.io.nmi_vec <= io.nmi_vec @[quasar_wrapper.scala 115:20] - swerv.io.i_cpu_halt_req <= io.i_cpu_halt_req @[quasar_wrapper.scala 118:27] - swerv.io.i_cpu_run_req <= io.i_cpu_run_req @[quasar_wrapper.scala 119:26] - swerv.io.core_id <= io.core_id @[quasar_wrapper.scala 120:20] - swerv.io.mpc_debug_halt_req <= io.mpc_debug_halt_req @[quasar_wrapper.scala 123:31] - swerv.io.mpc_debug_run_req <= io.mpc_debug_run_req @[quasar_wrapper.scala 124:30] - swerv.io.mpc_reset_run_req <= io.mpc_reset_run_req @[quasar_wrapper.scala 125:30] - swerv.io.lsu_axi.r.bits.last <= io.lsu_brg.r.bits.last @[quasar_wrapper.scala 129:20] - swerv.io.lsu_axi.r.bits.resp <= io.lsu_brg.r.bits.resp @[quasar_wrapper.scala 129:20] - swerv.io.lsu_axi.r.bits.data <= io.lsu_brg.r.bits.data @[quasar_wrapper.scala 129:20] - swerv.io.lsu_axi.r.bits.id <= io.lsu_brg.r.bits.id @[quasar_wrapper.scala 129:20] - swerv.io.lsu_axi.r.valid <= io.lsu_brg.r.valid @[quasar_wrapper.scala 129:20] - io.lsu_brg.r.ready <= swerv.io.lsu_axi.r.ready @[quasar_wrapper.scala 129:20] - io.lsu_brg.ar.bits.qos <= swerv.io.lsu_axi.ar.bits.qos @[quasar_wrapper.scala 129:20] - io.lsu_brg.ar.bits.prot <= swerv.io.lsu_axi.ar.bits.prot @[quasar_wrapper.scala 129:20] - io.lsu_brg.ar.bits.cache <= swerv.io.lsu_axi.ar.bits.cache @[quasar_wrapper.scala 129:20] - io.lsu_brg.ar.bits.lock <= swerv.io.lsu_axi.ar.bits.lock @[quasar_wrapper.scala 129:20] - io.lsu_brg.ar.bits.burst <= swerv.io.lsu_axi.ar.bits.burst @[quasar_wrapper.scala 129:20] - io.lsu_brg.ar.bits.size <= swerv.io.lsu_axi.ar.bits.size @[quasar_wrapper.scala 129:20] - io.lsu_brg.ar.bits.len <= swerv.io.lsu_axi.ar.bits.len @[quasar_wrapper.scala 129:20] - io.lsu_brg.ar.bits.region <= swerv.io.lsu_axi.ar.bits.region @[quasar_wrapper.scala 129:20] - io.lsu_brg.ar.bits.addr <= swerv.io.lsu_axi.ar.bits.addr @[quasar_wrapper.scala 129:20] - io.lsu_brg.ar.bits.id <= swerv.io.lsu_axi.ar.bits.id @[quasar_wrapper.scala 129:20] - io.lsu_brg.ar.valid <= swerv.io.lsu_axi.ar.valid @[quasar_wrapper.scala 129:20] - swerv.io.lsu_axi.ar.ready <= io.lsu_brg.ar.ready @[quasar_wrapper.scala 129:20] - swerv.io.lsu_axi.b.bits.id <= io.lsu_brg.b.bits.id @[quasar_wrapper.scala 129:20] - swerv.io.lsu_axi.b.bits.resp <= io.lsu_brg.b.bits.resp @[quasar_wrapper.scala 129:20] - swerv.io.lsu_axi.b.valid <= io.lsu_brg.b.valid @[quasar_wrapper.scala 129:20] - io.lsu_brg.b.ready <= swerv.io.lsu_axi.b.ready @[quasar_wrapper.scala 129:20] - io.lsu_brg.w.bits.last <= swerv.io.lsu_axi.w.bits.last @[quasar_wrapper.scala 129:20] - io.lsu_brg.w.bits.strb <= swerv.io.lsu_axi.w.bits.strb @[quasar_wrapper.scala 129:20] - io.lsu_brg.w.bits.data <= swerv.io.lsu_axi.w.bits.data @[quasar_wrapper.scala 129:20] - io.lsu_brg.w.valid <= swerv.io.lsu_axi.w.valid @[quasar_wrapper.scala 129:20] - swerv.io.lsu_axi.w.ready <= io.lsu_brg.w.ready @[quasar_wrapper.scala 129:20] - io.lsu_brg.aw.bits.qos <= swerv.io.lsu_axi.aw.bits.qos @[quasar_wrapper.scala 129:20] - io.lsu_brg.aw.bits.prot <= swerv.io.lsu_axi.aw.bits.prot @[quasar_wrapper.scala 129:20] - io.lsu_brg.aw.bits.cache <= swerv.io.lsu_axi.aw.bits.cache @[quasar_wrapper.scala 129:20] - io.lsu_brg.aw.bits.lock <= swerv.io.lsu_axi.aw.bits.lock @[quasar_wrapper.scala 129:20] - io.lsu_brg.aw.bits.burst <= swerv.io.lsu_axi.aw.bits.burst @[quasar_wrapper.scala 129:20] - io.lsu_brg.aw.bits.size <= swerv.io.lsu_axi.aw.bits.size @[quasar_wrapper.scala 129:20] - io.lsu_brg.aw.bits.len <= swerv.io.lsu_axi.aw.bits.len @[quasar_wrapper.scala 129:20] - io.lsu_brg.aw.bits.region <= swerv.io.lsu_axi.aw.bits.region @[quasar_wrapper.scala 129:20] - io.lsu_brg.aw.bits.addr <= swerv.io.lsu_axi.aw.bits.addr @[quasar_wrapper.scala 129:20] - io.lsu_brg.aw.bits.id <= swerv.io.lsu_axi.aw.bits.id @[quasar_wrapper.scala 129:20] - io.lsu_brg.aw.valid <= swerv.io.lsu_axi.aw.valid @[quasar_wrapper.scala 129:20] - swerv.io.lsu_axi.aw.ready <= io.lsu_brg.aw.ready @[quasar_wrapper.scala 129:20] - swerv.io.ifu_axi.r.bits.last <= io.ifu_brg.r.bits.last @[quasar_wrapper.scala 132:20] - swerv.io.ifu_axi.r.bits.resp <= io.ifu_brg.r.bits.resp @[quasar_wrapper.scala 132:20] - swerv.io.ifu_axi.r.bits.data <= io.ifu_brg.r.bits.data @[quasar_wrapper.scala 132:20] - swerv.io.ifu_axi.r.bits.id <= io.ifu_brg.r.bits.id @[quasar_wrapper.scala 132:20] - swerv.io.ifu_axi.r.valid <= io.ifu_brg.r.valid @[quasar_wrapper.scala 132:20] - io.ifu_brg.r.ready <= swerv.io.ifu_axi.r.ready @[quasar_wrapper.scala 132:20] - io.ifu_brg.ar.bits.qos <= swerv.io.ifu_axi.ar.bits.qos @[quasar_wrapper.scala 132:20] - io.ifu_brg.ar.bits.prot <= swerv.io.ifu_axi.ar.bits.prot @[quasar_wrapper.scala 132:20] - io.ifu_brg.ar.bits.cache <= swerv.io.ifu_axi.ar.bits.cache @[quasar_wrapper.scala 132:20] - io.ifu_brg.ar.bits.lock <= swerv.io.ifu_axi.ar.bits.lock @[quasar_wrapper.scala 132:20] - io.ifu_brg.ar.bits.burst <= swerv.io.ifu_axi.ar.bits.burst @[quasar_wrapper.scala 132:20] - io.ifu_brg.ar.bits.size <= swerv.io.ifu_axi.ar.bits.size @[quasar_wrapper.scala 132:20] - io.ifu_brg.ar.bits.len <= swerv.io.ifu_axi.ar.bits.len @[quasar_wrapper.scala 132:20] - io.ifu_brg.ar.bits.region <= swerv.io.ifu_axi.ar.bits.region @[quasar_wrapper.scala 132:20] - io.ifu_brg.ar.bits.addr <= swerv.io.ifu_axi.ar.bits.addr @[quasar_wrapper.scala 132:20] - io.ifu_brg.ar.bits.id <= swerv.io.ifu_axi.ar.bits.id @[quasar_wrapper.scala 132:20] - io.ifu_brg.ar.valid <= swerv.io.ifu_axi.ar.valid @[quasar_wrapper.scala 132:20] - swerv.io.ifu_axi.ar.ready <= io.ifu_brg.ar.ready @[quasar_wrapper.scala 132:20] - swerv.io.ifu_axi.b.bits.id <= io.ifu_brg.b.bits.id @[quasar_wrapper.scala 132:20] - swerv.io.ifu_axi.b.bits.resp <= io.ifu_brg.b.bits.resp @[quasar_wrapper.scala 132:20] - swerv.io.ifu_axi.b.valid <= io.ifu_brg.b.valid @[quasar_wrapper.scala 132:20] - io.ifu_brg.b.ready <= swerv.io.ifu_axi.b.ready @[quasar_wrapper.scala 132:20] - io.ifu_brg.w.bits.last <= swerv.io.ifu_axi.w.bits.last @[quasar_wrapper.scala 132:20] - io.ifu_brg.w.bits.strb <= swerv.io.ifu_axi.w.bits.strb @[quasar_wrapper.scala 132:20] - io.ifu_brg.w.bits.data <= swerv.io.ifu_axi.w.bits.data @[quasar_wrapper.scala 132:20] - io.ifu_brg.w.valid <= swerv.io.ifu_axi.w.valid @[quasar_wrapper.scala 132:20] - swerv.io.ifu_axi.w.ready <= io.ifu_brg.w.ready @[quasar_wrapper.scala 132:20] - io.ifu_brg.aw.bits.qos <= swerv.io.ifu_axi.aw.bits.qos @[quasar_wrapper.scala 132:20] - io.ifu_brg.aw.bits.prot <= swerv.io.ifu_axi.aw.bits.prot @[quasar_wrapper.scala 132:20] - io.ifu_brg.aw.bits.cache <= swerv.io.ifu_axi.aw.bits.cache @[quasar_wrapper.scala 132:20] - io.ifu_brg.aw.bits.lock <= swerv.io.ifu_axi.aw.bits.lock @[quasar_wrapper.scala 132:20] - io.ifu_brg.aw.bits.burst <= swerv.io.ifu_axi.aw.bits.burst @[quasar_wrapper.scala 132:20] - io.ifu_brg.aw.bits.size <= swerv.io.ifu_axi.aw.bits.size @[quasar_wrapper.scala 132:20] - io.ifu_brg.aw.bits.len <= swerv.io.ifu_axi.aw.bits.len @[quasar_wrapper.scala 132:20] - io.ifu_brg.aw.bits.region <= swerv.io.ifu_axi.aw.bits.region @[quasar_wrapper.scala 132:20] - io.ifu_brg.aw.bits.addr <= swerv.io.ifu_axi.aw.bits.addr @[quasar_wrapper.scala 132:20] - io.ifu_brg.aw.bits.id <= swerv.io.ifu_axi.aw.bits.id @[quasar_wrapper.scala 132:20] - io.ifu_brg.aw.valid <= swerv.io.ifu_axi.aw.valid @[quasar_wrapper.scala 132:20] - swerv.io.ifu_axi.aw.ready <= io.ifu_brg.aw.ready @[quasar_wrapper.scala 132:20] - swerv.io.sb_axi.r.bits.last <= io.sb_brg.r.bits.last @[quasar_wrapper.scala 135:19] - swerv.io.sb_axi.r.bits.resp <= io.sb_brg.r.bits.resp @[quasar_wrapper.scala 135:19] - swerv.io.sb_axi.r.bits.data <= io.sb_brg.r.bits.data @[quasar_wrapper.scala 135:19] - swerv.io.sb_axi.r.bits.id <= io.sb_brg.r.bits.id @[quasar_wrapper.scala 135:19] - swerv.io.sb_axi.r.valid <= io.sb_brg.r.valid @[quasar_wrapper.scala 135:19] - io.sb_brg.r.ready <= swerv.io.sb_axi.r.ready @[quasar_wrapper.scala 135:19] - io.sb_brg.ar.bits.qos <= swerv.io.sb_axi.ar.bits.qos @[quasar_wrapper.scala 135:19] - io.sb_brg.ar.bits.prot <= swerv.io.sb_axi.ar.bits.prot @[quasar_wrapper.scala 135:19] - io.sb_brg.ar.bits.cache <= swerv.io.sb_axi.ar.bits.cache @[quasar_wrapper.scala 135:19] - io.sb_brg.ar.bits.lock <= swerv.io.sb_axi.ar.bits.lock @[quasar_wrapper.scala 135:19] - io.sb_brg.ar.bits.burst <= swerv.io.sb_axi.ar.bits.burst @[quasar_wrapper.scala 135:19] - io.sb_brg.ar.bits.size <= swerv.io.sb_axi.ar.bits.size @[quasar_wrapper.scala 135:19] - io.sb_brg.ar.bits.len <= swerv.io.sb_axi.ar.bits.len @[quasar_wrapper.scala 135:19] - io.sb_brg.ar.bits.region <= swerv.io.sb_axi.ar.bits.region @[quasar_wrapper.scala 135:19] - io.sb_brg.ar.bits.addr <= swerv.io.sb_axi.ar.bits.addr @[quasar_wrapper.scala 135:19] - io.sb_brg.ar.bits.id <= swerv.io.sb_axi.ar.bits.id @[quasar_wrapper.scala 135:19] - io.sb_brg.ar.valid <= swerv.io.sb_axi.ar.valid @[quasar_wrapper.scala 135:19] - swerv.io.sb_axi.ar.ready <= io.sb_brg.ar.ready @[quasar_wrapper.scala 135:19] - swerv.io.sb_axi.b.bits.id <= io.sb_brg.b.bits.id @[quasar_wrapper.scala 135:19] - swerv.io.sb_axi.b.bits.resp <= io.sb_brg.b.bits.resp @[quasar_wrapper.scala 135:19] - swerv.io.sb_axi.b.valid <= io.sb_brg.b.valid @[quasar_wrapper.scala 135:19] - io.sb_brg.b.ready <= swerv.io.sb_axi.b.ready @[quasar_wrapper.scala 135:19] - io.sb_brg.w.bits.last <= swerv.io.sb_axi.w.bits.last @[quasar_wrapper.scala 135:19] - io.sb_brg.w.bits.strb <= swerv.io.sb_axi.w.bits.strb @[quasar_wrapper.scala 135:19] - io.sb_brg.w.bits.data <= swerv.io.sb_axi.w.bits.data @[quasar_wrapper.scala 135:19] - io.sb_brg.w.valid <= swerv.io.sb_axi.w.valid @[quasar_wrapper.scala 135:19] - swerv.io.sb_axi.w.ready <= io.sb_brg.w.ready @[quasar_wrapper.scala 135:19] - io.sb_brg.aw.bits.qos <= swerv.io.sb_axi.aw.bits.qos @[quasar_wrapper.scala 135:19] - io.sb_brg.aw.bits.prot <= swerv.io.sb_axi.aw.bits.prot @[quasar_wrapper.scala 135:19] - io.sb_brg.aw.bits.cache <= swerv.io.sb_axi.aw.bits.cache @[quasar_wrapper.scala 135:19] - io.sb_brg.aw.bits.lock <= swerv.io.sb_axi.aw.bits.lock @[quasar_wrapper.scala 135:19] - io.sb_brg.aw.bits.burst <= swerv.io.sb_axi.aw.bits.burst @[quasar_wrapper.scala 135:19] - io.sb_brg.aw.bits.size <= swerv.io.sb_axi.aw.bits.size @[quasar_wrapper.scala 135:19] - io.sb_brg.aw.bits.len <= swerv.io.sb_axi.aw.bits.len @[quasar_wrapper.scala 135:19] - io.sb_brg.aw.bits.region <= swerv.io.sb_axi.aw.bits.region @[quasar_wrapper.scala 135:19] - io.sb_brg.aw.bits.addr <= swerv.io.sb_axi.aw.bits.addr @[quasar_wrapper.scala 135:19] - io.sb_brg.aw.bits.id <= swerv.io.sb_axi.aw.bits.id @[quasar_wrapper.scala 135:19] - io.sb_brg.aw.valid <= swerv.io.sb_axi.aw.valid @[quasar_wrapper.scala 135:19] - swerv.io.sb_axi.aw.ready <= io.sb_brg.aw.ready @[quasar_wrapper.scala 135:19] - io.dma_brg.r.bits.last <= swerv.io.dma_axi.r.bits.last @[quasar_wrapper.scala 139:20] - io.dma_brg.r.bits.resp <= swerv.io.dma_axi.r.bits.resp @[quasar_wrapper.scala 139:20] - io.dma_brg.r.bits.data <= swerv.io.dma_axi.r.bits.data @[quasar_wrapper.scala 139:20] - io.dma_brg.r.bits.id <= swerv.io.dma_axi.r.bits.id @[quasar_wrapper.scala 139:20] - io.dma_brg.r.valid <= swerv.io.dma_axi.r.valid @[quasar_wrapper.scala 139:20] - swerv.io.dma_axi.r.ready <= io.dma_brg.r.ready @[quasar_wrapper.scala 139:20] - swerv.io.dma_axi.ar.bits.qos <= io.dma_brg.ar.bits.qos @[quasar_wrapper.scala 139:20] - swerv.io.dma_axi.ar.bits.prot <= io.dma_brg.ar.bits.prot @[quasar_wrapper.scala 139:20] - swerv.io.dma_axi.ar.bits.cache <= io.dma_brg.ar.bits.cache @[quasar_wrapper.scala 139:20] - swerv.io.dma_axi.ar.bits.lock <= io.dma_brg.ar.bits.lock @[quasar_wrapper.scala 139:20] - swerv.io.dma_axi.ar.bits.burst <= io.dma_brg.ar.bits.burst @[quasar_wrapper.scala 139:20] - swerv.io.dma_axi.ar.bits.size <= io.dma_brg.ar.bits.size @[quasar_wrapper.scala 139:20] - swerv.io.dma_axi.ar.bits.len <= io.dma_brg.ar.bits.len @[quasar_wrapper.scala 139:20] - swerv.io.dma_axi.ar.bits.region <= io.dma_brg.ar.bits.region @[quasar_wrapper.scala 139:20] - swerv.io.dma_axi.ar.bits.addr <= io.dma_brg.ar.bits.addr @[quasar_wrapper.scala 139:20] - swerv.io.dma_axi.ar.bits.id <= io.dma_brg.ar.bits.id @[quasar_wrapper.scala 139:20] - swerv.io.dma_axi.ar.valid <= io.dma_brg.ar.valid @[quasar_wrapper.scala 139:20] - io.dma_brg.ar.ready <= swerv.io.dma_axi.ar.ready @[quasar_wrapper.scala 139:20] - io.dma_brg.b.bits.id <= swerv.io.dma_axi.b.bits.id @[quasar_wrapper.scala 139:20] - io.dma_brg.b.bits.resp <= swerv.io.dma_axi.b.bits.resp @[quasar_wrapper.scala 139:20] - io.dma_brg.b.valid <= swerv.io.dma_axi.b.valid @[quasar_wrapper.scala 139:20] - swerv.io.dma_axi.b.ready <= io.dma_brg.b.ready @[quasar_wrapper.scala 139:20] - swerv.io.dma_axi.w.bits.last <= io.dma_brg.w.bits.last @[quasar_wrapper.scala 139:20] - swerv.io.dma_axi.w.bits.strb <= io.dma_brg.w.bits.strb @[quasar_wrapper.scala 139:20] - swerv.io.dma_axi.w.bits.data <= io.dma_brg.w.bits.data @[quasar_wrapper.scala 139:20] - swerv.io.dma_axi.w.valid <= io.dma_brg.w.valid @[quasar_wrapper.scala 139:20] - io.dma_brg.w.ready <= swerv.io.dma_axi.w.ready @[quasar_wrapper.scala 139:20] - swerv.io.dma_axi.aw.bits.qos <= io.dma_brg.aw.bits.qos @[quasar_wrapper.scala 139:20] - swerv.io.dma_axi.aw.bits.prot <= io.dma_brg.aw.bits.prot @[quasar_wrapper.scala 139:20] - swerv.io.dma_axi.aw.bits.cache <= io.dma_brg.aw.bits.cache @[quasar_wrapper.scala 139:20] - swerv.io.dma_axi.aw.bits.lock <= io.dma_brg.aw.bits.lock @[quasar_wrapper.scala 139:20] - swerv.io.dma_axi.aw.bits.burst <= io.dma_brg.aw.bits.burst @[quasar_wrapper.scala 139:20] - swerv.io.dma_axi.aw.bits.size <= io.dma_brg.aw.bits.size @[quasar_wrapper.scala 139:20] - swerv.io.dma_axi.aw.bits.len <= io.dma_brg.aw.bits.len @[quasar_wrapper.scala 139:20] - swerv.io.dma_axi.aw.bits.region <= io.dma_brg.aw.bits.region @[quasar_wrapper.scala 139:20] - swerv.io.dma_axi.aw.bits.addr <= io.dma_brg.aw.bits.addr @[quasar_wrapper.scala 139:20] - swerv.io.dma_axi.aw.bits.id <= io.dma_brg.aw.bits.id @[quasar_wrapper.scala 139:20] - swerv.io.dma_axi.aw.valid <= io.dma_brg.aw.valid @[quasar_wrapper.scala 139:20] - io.dma_brg.aw.ready <= swerv.io.dma_axi.aw.ready @[quasar_wrapper.scala 139:20] - swerv.io.lsu_bus_clk_en <= io.lsu_bus_clk_en @[quasar_wrapper.scala 155:27] - swerv.io.ifu_bus_clk_en <= io.ifu_bus_clk_en @[quasar_wrapper.scala 156:27] - swerv.io.dbg_bus_clk_en <= io.dbg_bus_clk_en @[quasar_wrapper.scala 157:27] - swerv.io.dma_bus_clk_en <= io.dma_bus_clk_en @[quasar_wrapper.scala 158:27] - swerv.io.timer_int <= io.timer_int @[quasar_wrapper.scala 160:22] - swerv.io.soft_int <= io.soft_int @[quasar_wrapper.scala 161:21] - swerv.io.extintsrc_req <= io.extintsrc_req @[quasar_wrapper.scala 162:26] - io.rv_trace_pkt.rv_i_tval_ip <= swerv.io.rv_trace_pkt.rv_i_tval_ip @[quasar_wrapper.scala 166:19] - io.rv_trace_pkt.rv_i_interrupt_ip <= swerv.io.rv_trace_pkt.rv_i_interrupt_ip @[quasar_wrapper.scala 166:19] - io.rv_trace_pkt.rv_i_ecause_ip <= swerv.io.rv_trace_pkt.rv_i_ecause_ip @[quasar_wrapper.scala 166:19] - io.rv_trace_pkt.rv_i_exception_ip <= swerv.io.rv_trace_pkt.rv_i_exception_ip @[quasar_wrapper.scala 166:19] - io.rv_trace_pkt.rv_i_address_ip <= swerv.io.rv_trace_pkt.rv_i_address_ip @[quasar_wrapper.scala 166:19] - io.rv_trace_pkt.rv_i_insn_ip <= swerv.io.rv_trace_pkt.rv_i_insn_ip @[quasar_wrapper.scala 166:19] - io.rv_trace_pkt.rv_i_valid_ip <= swerv.io.rv_trace_pkt.rv_i_valid_ip @[quasar_wrapper.scala 166:19] - io.o_cpu_halt_ack <= swerv.io.o_cpu_halt_ack @[quasar_wrapper.scala 169:21] - io.o_cpu_halt_status <= swerv.io.o_cpu_halt_status @[quasar_wrapper.scala 170:24] - io.o_cpu_run_ack <= swerv.io.o_cpu_run_ack @[quasar_wrapper.scala 171:20] - io.o_debug_mode_status <= swerv.io.o_debug_mode_status @[quasar_wrapper.scala 172:26] - io.mpc_debug_halt_ack <= swerv.io.mpc_debug_halt_ack @[quasar_wrapper.scala 174:25] - io.mpc_debug_run_ack <= swerv.io.mpc_debug_run_ack @[quasar_wrapper.scala 175:24] - io.debug_brkpt_status <= swerv.io.debug_brkpt_status @[quasar_wrapper.scala 176:25] - io.dec_tlu_perfcnt0 <= swerv.io.dec_tlu_perfcnt0 @[quasar_wrapper.scala 178:23] - io.dec_tlu_perfcnt1 <= swerv.io.dec_tlu_perfcnt1 @[quasar_wrapper.scala 179:23] - io.dec_tlu_perfcnt2 <= swerv.io.dec_tlu_perfcnt2 @[quasar_wrapper.scala 180:23] - io.dec_tlu_perfcnt3 <= swerv.io.dec_tlu_perfcnt3 @[quasar_wrapper.scala 181:23] + swerv.io.scan_mode <= io.scan_mode @[quasar_wrapper.scala 66:22] + dmi_wrapper.trst_n <= io.jtag_trst_n @[quasar_wrapper.scala 67:25] + dmi_wrapper.tck <= io.jtag_tck @[quasar_wrapper.scala 68:22] + dmi_wrapper.tms <= io.jtag_tms @[quasar_wrapper.scala 69:22] + dmi_wrapper.tdi <= io.jtag_tdi @[quasar_wrapper.scala 70:22] + dmi_wrapper.core_clk <= clock @[quasar_wrapper.scala 71:27] + dmi_wrapper.jtag_id <= io.jtag_id @[quasar_wrapper.scala 72:26] + dmi_wrapper.rd_data <= swerv.io.dmi_reg_rdata @[quasar_wrapper.scala 73:26] + dmi_wrapper.core_rst_n <= io.dbg_rst_l @[quasar_wrapper.scala 76:29] + swerv.io.dmi_reg_wdata <= dmi_wrapper.reg_wr_data @[quasar_wrapper.scala 77:26] + swerv.io.dmi_reg_addr <= dmi_wrapper.reg_wr_addr @[quasar_wrapper.scala 78:25] + swerv.io.dmi_reg_en <= dmi_wrapper.reg_en @[quasar_wrapper.scala 79:23] + swerv.io.dmi_reg_wr_en <= dmi_wrapper.reg_wr_en @[quasar_wrapper.scala 80:26] + swerv.io.dmi_hard_reset <= dmi_wrapper.dmi_hard_reset @[quasar_wrapper.scala 81:27] + io.jtag_tdo <= dmi_wrapper.tdo @[quasar_wrapper.scala 82:15] + mem.dccm_clk_override <= swerv.io.dccm_clk_override @[quasar_wrapper.scala 85:28] + mem.icm_clk_override <= swerv.io.icm_clk_override @[quasar_wrapper.scala 86:27] + mem.dec_tlu_core_ecc_disable <= swerv.io.dec_tlu_core_ecc_disable @[quasar_wrapper.scala 87:35] + swerv.io.dccm.rd_data_hi <= mem.dccm.rd_data_hi @[quasar_wrapper.scala 88:15] + swerv.io.dccm.rd_data_lo <= mem.dccm.rd_data_lo @[quasar_wrapper.scala 88:15] + mem.dccm.wr_data_hi <= swerv.io.dccm.wr_data_hi @[quasar_wrapper.scala 88:15] + mem.dccm.wr_data_lo <= swerv.io.dccm.wr_data_lo @[quasar_wrapper.scala 88:15] + mem.dccm.rd_addr_hi <= swerv.io.dccm.rd_addr_hi @[quasar_wrapper.scala 88:15] + mem.dccm.rd_addr_lo <= swerv.io.dccm.rd_addr_lo @[quasar_wrapper.scala 88:15] + mem.dccm.wr_addr_hi <= swerv.io.dccm.wr_addr_hi @[quasar_wrapper.scala 88:15] + mem.dccm.wr_addr_lo <= swerv.io.dccm.wr_addr_lo @[quasar_wrapper.scala 88:15] + mem.dccm.rden <= swerv.io.dccm.rden @[quasar_wrapper.scala 88:15] + mem.dccm.wren <= swerv.io.dccm.wren @[quasar_wrapper.scala 88:15] + mem.rst_l <= reset @[quasar_wrapper.scala 89:16] + mem.clk <= clock @[quasar_wrapper.scala 90:14] + mem.scan_mode <= io.scan_mode @[quasar_wrapper.scala 91:20] + swerv.io.dbg_rst_l <= io.dbg_rst_l @[quasar_wrapper.scala 93:22] + mem.ic.sel_premux_data <= swerv.io.ic.sel_premux_data @[quasar_wrapper.scala 94:15] + mem.ic.premux_data <= swerv.io.ic.premux_data @[quasar_wrapper.scala 94:15] + mem.ic.debug_way <= swerv.io.ic.debug_way @[quasar_wrapper.scala 94:15] + mem.ic.debug_tag_array <= swerv.io.ic.debug_tag_array @[quasar_wrapper.scala 94:15] + mem.ic.debug_wr_en <= swerv.io.ic.debug_wr_en @[quasar_wrapper.scala 94:15] + mem.ic.debug_rd_en <= swerv.io.ic.debug_rd_en @[quasar_wrapper.scala 94:15] + swerv.io.ic.tag_perr <= mem.ic.tag_perr @[quasar_wrapper.scala 94:15] + swerv.io.ic.rd_hit <= mem.ic.rd_hit @[quasar_wrapper.scala 94:15] + swerv.io.ic.parerr <= mem.ic.parerr @[quasar_wrapper.scala 94:15] + swerv.io.ic.eccerr <= mem.ic.eccerr @[quasar_wrapper.scala 94:15] + swerv.io.ic.tag_debug_rd_data <= mem.ic.tag_debug_rd_data @[quasar_wrapper.scala 94:15] + swerv.io.ic.debug_rd_data <= mem.ic.debug_rd_data @[quasar_wrapper.scala 94:15] + swerv.io.ic.rd_data <= mem.ic.rd_data @[quasar_wrapper.scala 94:15] + mem.ic.debug_addr <= swerv.io.ic.debug_addr @[quasar_wrapper.scala 94:15] + mem.ic.debug_wr_data <= swerv.io.ic.debug_wr_data @[quasar_wrapper.scala 94:15] + mem.ic.wr_data[0] <= swerv.io.ic.wr_data[0] @[quasar_wrapper.scala 94:15] + mem.ic.wr_data[1] <= swerv.io.ic.wr_data[1] @[quasar_wrapper.scala 94:15] + mem.ic.rd_en <= swerv.io.ic.rd_en @[quasar_wrapper.scala 94:15] + mem.ic.wr_en <= swerv.io.ic.wr_en @[quasar_wrapper.scala 94:15] + mem.ic.tag_valid <= swerv.io.ic.tag_valid @[quasar_wrapper.scala 94:15] + mem.ic.rw_addr <= swerv.io.ic.rw_addr @[quasar_wrapper.scala 94:15] + swerv.io.iccm.rd_data_ecc <= mem.iccm.rd_data_ecc @[quasar_wrapper.scala 95:17] + swerv.io.iccm.rd_data <= mem.iccm.rd_data @[quasar_wrapper.scala 95:17] + mem.iccm.wr_data <= swerv.io.iccm.wr_data @[quasar_wrapper.scala 95:17] + mem.iccm.wr_size <= swerv.io.iccm.wr_size @[quasar_wrapper.scala 95:17] + mem.iccm.rden <= swerv.io.iccm.rden @[quasar_wrapper.scala 95:17] + mem.iccm.wren <= swerv.io.iccm.wren @[quasar_wrapper.scala 95:17] + mem.iccm.correction_state <= swerv.io.iccm.correction_state @[quasar_wrapper.scala 95:17] + mem.iccm.buf_correct_ecc <= swerv.io.iccm.buf_correct_ecc @[quasar_wrapper.scala 95:17] + mem.iccm.rw_addr <= swerv.io.iccm.rw_addr @[quasar_wrapper.scala 95:17] + wire _T : {flip hrdata : UInt<64>, flip hready : UInt<1>, flip hresp : UInt<1>} @[quasar_wrapper.scala 99:36] + _T.hresp <= UInt<1>("h00") @[quasar_wrapper.scala 99:36] + _T.hready <= UInt<1>("h00") @[quasar_wrapper.scala 99:36] + _T.hrdata <= UInt<64>("h00") @[quasar_wrapper.scala 99:36] + swerv.io.ahb.in.hresp <= _T.hresp @[quasar_wrapper.scala 99:21] + swerv.io.ahb.in.hready <= _T.hready @[quasar_wrapper.scala 99:21] + swerv.io.ahb.in.hrdata <= _T.hrdata @[quasar_wrapper.scala 99:21] + wire _T_1 : {flip hrdata : UInt<64>, flip hready : UInt<1>, flip hresp : UInt<1>} @[quasar_wrapper.scala 100:40] + _T_1.hresp <= UInt<1>("h00") @[quasar_wrapper.scala 100:40] + _T_1.hready <= UInt<1>("h00") @[quasar_wrapper.scala 100:40] + _T_1.hrdata <= UInt<64>("h00") @[quasar_wrapper.scala 100:40] + swerv.io.lsu_ahb.in.hresp <= _T_1.hresp @[quasar_wrapper.scala 100:25] + swerv.io.lsu_ahb.in.hready <= _T_1.hready @[quasar_wrapper.scala 100:25] + swerv.io.lsu_ahb.in.hrdata <= _T_1.hrdata @[quasar_wrapper.scala 100:25] + wire _T_2 : {flip hrdata : UInt<64>, flip hready : UInt<1>, flip hresp : UInt<1>} @[quasar_wrapper.scala 101:39] + _T_2.hresp <= UInt<1>("h00") @[quasar_wrapper.scala 101:39] + _T_2.hready <= UInt<1>("h00") @[quasar_wrapper.scala 101:39] + _T_2.hrdata <= UInt<64>("h00") @[quasar_wrapper.scala 101:39] + swerv.io.sb_ahb.in.hresp <= _T_2.hresp @[quasar_wrapper.scala 101:24] + swerv.io.sb_ahb.in.hready <= _T_2.hready @[quasar_wrapper.scala 101:24] + swerv.io.sb_ahb.in.hrdata <= _T_2.hrdata @[quasar_wrapper.scala 101:24] + wire _T_3 : {haddr : UInt<32>, hburst : UInt<3>, hmastlock : UInt<1>, hprot : UInt<4>, hsize : UInt<3>, htrans : UInt<2>, hwrite : UInt<1>, hwdata : UInt<64>} @[quasar_wrapper.scala 102:41] + _T_3.hwdata <= UInt<64>("h00") @[quasar_wrapper.scala 102:41] + _T_3.hwrite <= UInt<1>("h00") @[quasar_wrapper.scala 102:41] + _T_3.htrans <= UInt<2>("h00") @[quasar_wrapper.scala 102:41] + _T_3.hsize <= UInt<3>("h00") @[quasar_wrapper.scala 102:41] + _T_3.hprot <= UInt<4>("h00") @[quasar_wrapper.scala 102:41] + _T_3.hmastlock <= UInt<1>("h00") @[quasar_wrapper.scala 102:41] + _T_3.hburst <= UInt<3>("h00") @[quasar_wrapper.scala 102:41] + _T_3.haddr <= UInt<32>("h00") @[quasar_wrapper.scala 102:41] + swerv.io.dma.ahb.out.hwdata <= _T_3.hwdata @[quasar_wrapper.scala 102:26] + swerv.io.dma.ahb.out.hwrite <= _T_3.hwrite @[quasar_wrapper.scala 102:26] + swerv.io.dma.ahb.out.htrans <= _T_3.htrans @[quasar_wrapper.scala 102:26] + swerv.io.dma.ahb.out.hsize <= _T_3.hsize @[quasar_wrapper.scala 102:26] + swerv.io.dma.ahb.out.hprot <= _T_3.hprot @[quasar_wrapper.scala 102:26] + swerv.io.dma.ahb.out.hmastlock <= _T_3.hmastlock @[quasar_wrapper.scala 102:26] + swerv.io.dma.ahb.out.hburst <= _T_3.hburst @[quasar_wrapper.scala 102:26] + swerv.io.dma.ahb.out.haddr <= _T_3.haddr @[quasar_wrapper.scala 102:26] + swerv.io.dma.hsel <= UInt<1>("h00") @[quasar_wrapper.scala 103:23] + swerv.io.dma.hreadyin <= UInt<1>("h00") @[quasar_wrapper.scala 104:27] + swerv.io.lsu_axi.r.bits.last <= io.lsu_brg.r.bits.last @[quasar_wrapper.scala 105:22] + swerv.io.lsu_axi.r.bits.resp <= io.lsu_brg.r.bits.resp @[quasar_wrapper.scala 105:22] + swerv.io.lsu_axi.r.bits.data <= io.lsu_brg.r.bits.data @[quasar_wrapper.scala 105:22] + swerv.io.lsu_axi.r.bits.id <= io.lsu_brg.r.bits.id @[quasar_wrapper.scala 105:22] + swerv.io.lsu_axi.r.valid <= io.lsu_brg.r.valid @[quasar_wrapper.scala 105:22] + io.lsu_brg.r.ready <= swerv.io.lsu_axi.r.ready @[quasar_wrapper.scala 105:22] + io.lsu_brg.ar.bits.qos <= swerv.io.lsu_axi.ar.bits.qos @[quasar_wrapper.scala 105:22] + io.lsu_brg.ar.bits.prot <= swerv.io.lsu_axi.ar.bits.prot @[quasar_wrapper.scala 105:22] + io.lsu_brg.ar.bits.cache <= swerv.io.lsu_axi.ar.bits.cache @[quasar_wrapper.scala 105:22] + io.lsu_brg.ar.bits.lock <= swerv.io.lsu_axi.ar.bits.lock @[quasar_wrapper.scala 105:22] + io.lsu_brg.ar.bits.burst <= swerv.io.lsu_axi.ar.bits.burst @[quasar_wrapper.scala 105:22] + io.lsu_brg.ar.bits.size <= swerv.io.lsu_axi.ar.bits.size @[quasar_wrapper.scala 105:22] + io.lsu_brg.ar.bits.len <= swerv.io.lsu_axi.ar.bits.len @[quasar_wrapper.scala 105:22] + io.lsu_brg.ar.bits.region <= swerv.io.lsu_axi.ar.bits.region @[quasar_wrapper.scala 105:22] + io.lsu_brg.ar.bits.addr <= swerv.io.lsu_axi.ar.bits.addr @[quasar_wrapper.scala 105:22] + io.lsu_brg.ar.bits.id <= swerv.io.lsu_axi.ar.bits.id @[quasar_wrapper.scala 105:22] + io.lsu_brg.ar.valid <= swerv.io.lsu_axi.ar.valid @[quasar_wrapper.scala 105:22] + swerv.io.lsu_axi.ar.ready <= io.lsu_brg.ar.ready @[quasar_wrapper.scala 105:22] + swerv.io.lsu_axi.b.bits.id <= io.lsu_brg.b.bits.id @[quasar_wrapper.scala 105:22] + swerv.io.lsu_axi.b.bits.resp <= io.lsu_brg.b.bits.resp @[quasar_wrapper.scala 105:22] + swerv.io.lsu_axi.b.valid <= io.lsu_brg.b.valid @[quasar_wrapper.scala 105:22] + io.lsu_brg.b.ready <= swerv.io.lsu_axi.b.ready @[quasar_wrapper.scala 105:22] + io.lsu_brg.w.bits.last <= swerv.io.lsu_axi.w.bits.last @[quasar_wrapper.scala 105:22] + io.lsu_brg.w.bits.strb <= swerv.io.lsu_axi.w.bits.strb @[quasar_wrapper.scala 105:22] + io.lsu_brg.w.bits.data <= swerv.io.lsu_axi.w.bits.data @[quasar_wrapper.scala 105:22] + io.lsu_brg.w.valid <= swerv.io.lsu_axi.w.valid @[quasar_wrapper.scala 105:22] + swerv.io.lsu_axi.w.ready <= io.lsu_brg.w.ready @[quasar_wrapper.scala 105:22] + io.lsu_brg.aw.bits.qos <= swerv.io.lsu_axi.aw.bits.qos @[quasar_wrapper.scala 105:22] + io.lsu_brg.aw.bits.prot <= swerv.io.lsu_axi.aw.bits.prot @[quasar_wrapper.scala 105:22] + io.lsu_brg.aw.bits.cache <= swerv.io.lsu_axi.aw.bits.cache @[quasar_wrapper.scala 105:22] + io.lsu_brg.aw.bits.lock <= swerv.io.lsu_axi.aw.bits.lock @[quasar_wrapper.scala 105:22] + io.lsu_brg.aw.bits.burst <= swerv.io.lsu_axi.aw.bits.burst @[quasar_wrapper.scala 105:22] + io.lsu_brg.aw.bits.size <= swerv.io.lsu_axi.aw.bits.size @[quasar_wrapper.scala 105:22] + io.lsu_brg.aw.bits.len <= swerv.io.lsu_axi.aw.bits.len @[quasar_wrapper.scala 105:22] + io.lsu_brg.aw.bits.region <= swerv.io.lsu_axi.aw.bits.region @[quasar_wrapper.scala 105:22] + io.lsu_brg.aw.bits.addr <= swerv.io.lsu_axi.aw.bits.addr @[quasar_wrapper.scala 105:22] + io.lsu_brg.aw.bits.id <= swerv.io.lsu_axi.aw.bits.id @[quasar_wrapper.scala 105:22] + io.lsu_brg.aw.valid <= swerv.io.lsu_axi.aw.valid @[quasar_wrapper.scala 105:22] + swerv.io.lsu_axi.aw.ready <= io.lsu_brg.aw.ready @[quasar_wrapper.scala 105:22] + swerv.io.ifu_axi.r.bits.last <= io.ifu_brg.r.bits.last @[quasar_wrapper.scala 106:22] + swerv.io.ifu_axi.r.bits.resp <= io.ifu_brg.r.bits.resp @[quasar_wrapper.scala 106:22] + swerv.io.ifu_axi.r.bits.data <= io.ifu_brg.r.bits.data @[quasar_wrapper.scala 106:22] + swerv.io.ifu_axi.r.bits.id <= io.ifu_brg.r.bits.id @[quasar_wrapper.scala 106:22] + swerv.io.ifu_axi.r.valid <= io.ifu_brg.r.valid @[quasar_wrapper.scala 106:22] + io.ifu_brg.r.ready <= swerv.io.ifu_axi.r.ready @[quasar_wrapper.scala 106:22] + io.ifu_brg.ar.bits.qos <= swerv.io.ifu_axi.ar.bits.qos @[quasar_wrapper.scala 106:22] + io.ifu_brg.ar.bits.prot <= swerv.io.ifu_axi.ar.bits.prot @[quasar_wrapper.scala 106:22] + io.ifu_brg.ar.bits.cache <= swerv.io.ifu_axi.ar.bits.cache @[quasar_wrapper.scala 106:22] + io.ifu_brg.ar.bits.lock <= swerv.io.ifu_axi.ar.bits.lock @[quasar_wrapper.scala 106:22] + io.ifu_brg.ar.bits.burst <= swerv.io.ifu_axi.ar.bits.burst @[quasar_wrapper.scala 106:22] + io.ifu_brg.ar.bits.size <= swerv.io.ifu_axi.ar.bits.size @[quasar_wrapper.scala 106:22] + io.ifu_brg.ar.bits.len <= swerv.io.ifu_axi.ar.bits.len @[quasar_wrapper.scala 106:22] + io.ifu_brg.ar.bits.region <= swerv.io.ifu_axi.ar.bits.region @[quasar_wrapper.scala 106:22] + io.ifu_brg.ar.bits.addr <= swerv.io.ifu_axi.ar.bits.addr @[quasar_wrapper.scala 106:22] + io.ifu_brg.ar.bits.id <= swerv.io.ifu_axi.ar.bits.id @[quasar_wrapper.scala 106:22] + io.ifu_brg.ar.valid <= swerv.io.ifu_axi.ar.valid @[quasar_wrapper.scala 106:22] + swerv.io.ifu_axi.ar.ready <= io.ifu_brg.ar.ready @[quasar_wrapper.scala 106:22] + swerv.io.ifu_axi.b.bits.id <= io.ifu_brg.b.bits.id @[quasar_wrapper.scala 106:22] + swerv.io.ifu_axi.b.bits.resp <= io.ifu_brg.b.bits.resp @[quasar_wrapper.scala 106:22] + swerv.io.ifu_axi.b.valid <= io.ifu_brg.b.valid @[quasar_wrapper.scala 106:22] + io.ifu_brg.b.ready <= swerv.io.ifu_axi.b.ready @[quasar_wrapper.scala 106:22] + io.ifu_brg.w.bits.last <= swerv.io.ifu_axi.w.bits.last @[quasar_wrapper.scala 106:22] + io.ifu_brg.w.bits.strb <= swerv.io.ifu_axi.w.bits.strb @[quasar_wrapper.scala 106:22] + io.ifu_brg.w.bits.data <= swerv.io.ifu_axi.w.bits.data @[quasar_wrapper.scala 106:22] + io.ifu_brg.w.valid <= swerv.io.ifu_axi.w.valid @[quasar_wrapper.scala 106:22] + swerv.io.ifu_axi.w.ready <= io.ifu_brg.w.ready @[quasar_wrapper.scala 106:22] + io.ifu_brg.aw.bits.qos <= swerv.io.ifu_axi.aw.bits.qos @[quasar_wrapper.scala 106:22] + io.ifu_brg.aw.bits.prot <= swerv.io.ifu_axi.aw.bits.prot @[quasar_wrapper.scala 106:22] + io.ifu_brg.aw.bits.cache <= swerv.io.ifu_axi.aw.bits.cache @[quasar_wrapper.scala 106:22] + io.ifu_brg.aw.bits.lock <= swerv.io.ifu_axi.aw.bits.lock @[quasar_wrapper.scala 106:22] + io.ifu_brg.aw.bits.burst <= swerv.io.ifu_axi.aw.bits.burst @[quasar_wrapper.scala 106:22] + io.ifu_brg.aw.bits.size <= swerv.io.ifu_axi.aw.bits.size @[quasar_wrapper.scala 106:22] + io.ifu_brg.aw.bits.len <= swerv.io.ifu_axi.aw.bits.len @[quasar_wrapper.scala 106:22] + io.ifu_brg.aw.bits.region <= swerv.io.ifu_axi.aw.bits.region @[quasar_wrapper.scala 106:22] + io.ifu_brg.aw.bits.addr <= swerv.io.ifu_axi.aw.bits.addr @[quasar_wrapper.scala 106:22] + io.ifu_brg.aw.bits.id <= swerv.io.ifu_axi.aw.bits.id @[quasar_wrapper.scala 106:22] + io.ifu_brg.aw.valid <= swerv.io.ifu_axi.aw.valid @[quasar_wrapper.scala 106:22] + swerv.io.ifu_axi.aw.ready <= io.ifu_brg.aw.ready @[quasar_wrapper.scala 106:22] + swerv.io.sb_axi.r.bits.last <= io.sb_brg.r.bits.last @[quasar_wrapper.scala 107:21] + swerv.io.sb_axi.r.bits.resp <= io.sb_brg.r.bits.resp @[quasar_wrapper.scala 107:21] + swerv.io.sb_axi.r.bits.data <= io.sb_brg.r.bits.data @[quasar_wrapper.scala 107:21] + swerv.io.sb_axi.r.bits.id <= io.sb_brg.r.bits.id @[quasar_wrapper.scala 107:21] + swerv.io.sb_axi.r.valid <= io.sb_brg.r.valid @[quasar_wrapper.scala 107:21] + io.sb_brg.r.ready <= swerv.io.sb_axi.r.ready @[quasar_wrapper.scala 107:21] + io.sb_brg.ar.bits.qos <= swerv.io.sb_axi.ar.bits.qos @[quasar_wrapper.scala 107:21] + io.sb_brg.ar.bits.prot <= swerv.io.sb_axi.ar.bits.prot @[quasar_wrapper.scala 107:21] + io.sb_brg.ar.bits.cache <= swerv.io.sb_axi.ar.bits.cache @[quasar_wrapper.scala 107:21] + io.sb_brg.ar.bits.lock <= swerv.io.sb_axi.ar.bits.lock @[quasar_wrapper.scala 107:21] + io.sb_brg.ar.bits.burst <= swerv.io.sb_axi.ar.bits.burst @[quasar_wrapper.scala 107:21] + io.sb_brg.ar.bits.size <= swerv.io.sb_axi.ar.bits.size @[quasar_wrapper.scala 107:21] + io.sb_brg.ar.bits.len <= swerv.io.sb_axi.ar.bits.len @[quasar_wrapper.scala 107:21] + io.sb_brg.ar.bits.region <= swerv.io.sb_axi.ar.bits.region @[quasar_wrapper.scala 107:21] + io.sb_brg.ar.bits.addr <= swerv.io.sb_axi.ar.bits.addr @[quasar_wrapper.scala 107:21] + io.sb_brg.ar.bits.id <= swerv.io.sb_axi.ar.bits.id @[quasar_wrapper.scala 107:21] + io.sb_brg.ar.valid <= swerv.io.sb_axi.ar.valid @[quasar_wrapper.scala 107:21] + swerv.io.sb_axi.ar.ready <= io.sb_brg.ar.ready @[quasar_wrapper.scala 107:21] + swerv.io.sb_axi.b.bits.id <= io.sb_brg.b.bits.id @[quasar_wrapper.scala 107:21] + swerv.io.sb_axi.b.bits.resp <= io.sb_brg.b.bits.resp @[quasar_wrapper.scala 107:21] + swerv.io.sb_axi.b.valid <= io.sb_brg.b.valid @[quasar_wrapper.scala 107:21] + io.sb_brg.b.ready <= swerv.io.sb_axi.b.ready @[quasar_wrapper.scala 107:21] + io.sb_brg.w.bits.last <= swerv.io.sb_axi.w.bits.last @[quasar_wrapper.scala 107:21] + io.sb_brg.w.bits.strb <= swerv.io.sb_axi.w.bits.strb @[quasar_wrapper.scala 107:21] + io.sb_brg.w.bits.data <= swerv.io.sb_axi.w.bits.data @[quasar_wrapper.scala 107:21] + io.sb_brg.w.valid <= swerv.io.sb_axi.w.valid @[quasar_wrapper.scala 107:21] + swerv.io.sb_axi.w.ready <= io.sb_brg.w.ready @[quasar_wrapper.scala 107:21] + io.sb_brg.aw.bits.qos <= swerv.io.sb_axi.aw.bits.qos @[quasar_wrapper.scala 107:21] + io.sb_brg.aw.bits.prot <= swerv.io.sb_axi.aw.bits.prot @[quasar_wrapper.scala 107:21] + io.sb_brg.aw.bits.cache <= swerv.io.sb_axi.aw.bits.cache @[quasar_wrapper.scala 107:21] + io.sb_brg.aw.bits.lock <= swerv.io.sb_axi.aw.bits.lock @[quasar_wrapper.scala 107:21] + io.sb_brg.aw.bits.burst <= swerv.io.sb_axi.aw.bits.burst @[quasar_wrapper.scala 107:21] + io.sb_brg.aw.bits.size <= swerv.io.sb_axi.aw.bits.size @[quasar_wrapper.scala 107:21] + io.sb_brg.aw.bits.len <= swerv.io.sb_axi.aw.bits.len @[quasar_wrapper.scala 107:21] + io.sb_brg.aw.bits.region <= swerv.io.sb_axi.aw.bits.region @[quasar_wrapper.scala 107:21] + io.sb_brg.aw.bits.addr <= swerv.io.sb_axi.aw.bits.addr @[quasar_wrapper.scala 107:21] + io.sb_brg.aw.bits.id <= swerv.io.sb_axi.aw.bits.id @[quasar_wrapper.scala 107:21] + io.sb_brg.aw.valid <= swerv.io.sb_axi.aw.valid @[quasar_wrapper.scala 107:21] + swerv.io.sb_axi.aw.ready <= io.sb_brg.aw.ready @[quasar_wrapper.scala 107:21] + io.dma_brg.r.bits.last <= swerv.io.dma_axi.r.bits.last @[quasar_wrapper.scala 108:22] + io.dma_brg.r.bits.resp <= swerv.io.dma_axi.r.bits.resp @[quasar_wrapper.scala 108:22] + io.dma_brg.r.bits.data <= swerv.io.dma_axi.r.bits.data @[quasar_wrapper.scala 108:22] + io.dma_brg.r.bits.id <= swerv.io.dma_axi.r.bits.id @[quasar_wrapper.scala 108:22] + io.dma_brg.r.valid <= swerv.io.dma_axi.r.valid @[quasar_wrapper.scala 108:22] + swerv.io.dma_axi.r.ready <= io.dma_brg.r.ready @[quasar_wrapper.scala 108:22] + swerv.io.dma_axi.ar.bits.qos <= io.dma_brg.ar.bits.qos @[quasar_wrapper.scala 108:22] + swerv.io.dma_axi.ar.bits.prot <= io.dma_brg.ar.bits.prot @[quasar_wrapper.scala 108:22] + swerv.io.dma_axi.ar.bits.cache <= io.dma_brg.ar.bits.cache @[quasar_wrapper.scala 108:22] + swerv.io.dma_axi.ar.bits.lock <= io.dma_brg.ar.bits.lock @[quasar_wrapper.scala 108:22] + swerv.io.dma_axi.ar.bits.burst <= io.dma_brg.ar.bits.burst @[quasar_wrapper.scala 108:22] + swerv.io.dma_axi.ar.bits.size <= io.dma_brg.ar.bits.size @[quasar_wrapper.scala 108:22] + swerv.io.dma_axi.ar.bits.len <= io.dma_brg.ar.bits.len @[quasar_wrapper.scala 108:22] + swerv.io.dma_axi.ar.bits.region <= io.dma_brg.ar.bits.region @[quasar_wrapper.scala 108:22] + swerv.io.dma_axi.ar.bits.addr <= io.dma_brg.ar.bits.addr @[quasar_wrapper.scala 108:22] + swerv.io.dma_axi.ar.bits.id <= io.dma_brg.ar.bits.id @[quasar_wrapper.scala 108:22] + swerv.io.dma_axi.ar.valid <= io.dma_brg.ar.valid @[quasar_wrapper.scala 108:22] + io.dma_brg.ar.ready <= swerv.io.dma_axi.ar.ready @[quasar_wrapper.scala 108:22] + io.dma_brg.b.bits.id <= swerv.io.dma_axi.b.bits.id @[quasar_wrapper.scala 108:22] + io.dma_brg.b.bits.resp <= swerv.io.dma_axi.b.bits.resp @[quasar_wrapper.scala 108:22] + io.dma_brg.b.valid <= swerv.io.dma_axi.b.valid @[quasar_wrapper.scala 108:22] + swerv.io.dma_axi.b.ready <= io.dma_brg.b.ready @[quasar_wrapper.scala 108:22] + swerv.io.dma_axi.w.bits.last <= io.dma_brg.w.bits.last @[quasar_wrapper.scala 108:22] + swerv.io.dma_axi.w.bits.strb <= io.dma_brg.w.bits.strb @[quasar_wrapper.scala 108:22] + swerv.io.dma_axi.w.bits.data <= io.dma_brg.w.bits.data @[quasar_wrapper.scala 108:22] + swerv.io.dma_axi.w.valid <= io.dma_brg.w.valid @[quasar_wrapper.scala 108:22] + io.dma_brg.w.ready <= swerv.io.dma_axi.w.ready @[quasar_wrapper.scala 108:22] + swerv.io.dma_axi.aw.bits.qos <= io.dma_brg.aw.bits.qos @[quasar_wrapper.scala 108:22] + swerv.io.dma_axi.aw.bits.prot <= io.dma_brg.aw.bits.prot @[quasar_wrapper.scala 108:22] + swerv.io.dma_axi.aw.bits.cache <= io.dma_brg.aw.bits.cache @[quasar_wrapper.scala 108:22] + swerv.io.dma_axi.aw.bits.lock <= io.dma_brg.aw.bits.lock @[quasar_wrapper.scala 108:22] + swerv.io.dma_axi.aw.bits.burst <= io.dma_brg.aw.bits.burst @[quasar_wrapper.scala 108:22] + swerv.io.dma_axi.aw.bits.size <= io.dma_brg.aw.bits.size @[quasar_wrapper.scala 108:22] + swerv.io.dma_axi.aw.bits.len <= io.dma_brg.aw.bits.len @[quasar_wrapper.scala 108:22] + swerv.io.dma_axi.aw.bits.region <= io.dma_brg.aw.bits.region @[quasar_wrapper.scala 108:22] + swerv.io.dma_axi.aw.bits.addr <= io.dma_brg.aw.bits.addr @[quasar_wrapper.scala 108:22] + swerv.io.dma_axi.aw.bits.id <= io.dma_brg.aw.bits.id @[quasar_wrapper.scala 108:22] + swerv.io.dma_axi.aw.valid <= io.dma_brg.aw.valid @[quasar_wrapper.scala 108:22] + io.dma_brg.aw.ready <= swerv.io.dma_axi.aw.ready @[quasar_wrapper.scala 108:22] + swerv.io.dbg_rst_l <= io.dbg_rst_l @[quasar_wrapper.scala 122:22] + swerv.io.rst_vec <= io.rst_vec @[quasar_wrapper.scala 123:20] + swerv.io.nmi_int <= io.nmi_int @[quasar_wrapper.scala 124:20] + swerv.io.nmi_vec <= io.nmi_vec @[quasar_wrapper.scala 125:20] + swerv.io.i_cpu_halt_req <= io.i_cpu_halt_req @[quasar_wrapper.scala 128:27] + swerv.io.i_cpu_run_req <= io.i_cpu_run_req @[quasar_wrapper.scala 129:26] + swerv.io.core_id <= io.core_id @[quasar_wrapper.scala 130:20] + swerv.io.mpc_debug_halt_req <= io.mpc_debug_halt_req @[quasar_wrapper.scala 133:31] + swerv.io.mpc_debug_run_req <= io.mpc_debug_run_req @[quasar_wrapper.scala 134:30] + swerv.io.mpc_reset_run_req <= io.mpc_reset_run_req @[quasar_wrapper.scala 135:30] + swerv.io.lsu_bus_clk_en <= io.lsu_bus_clk_en @[quasar_wrapper.scala 137:27] + swerv.io.ifu_bus_clk_en <= io.ifu_bus_clk_en @[quasar_wrapper.scala 138:27] + swerv.io.dbg_bus_clk_en <= io.dbg_bus_clk_en @[quasar_wrapper.scala 139:27] + swerv.io.dma_bus_clk_en <= io.dma_bus_clk_en @[quasar_wrapper.scala 140:27] + swerv.io.timer_int <= io.timer_int @[quasar_wrapper.scala 142:22] + swerv.io.soft_int <= io.soft_int @[quasar_wrapper.scala 143:21] + swerv.io.extintsrc_req <= io.extintsrc_req @[quasar_wrapper.scala 144:26] + io.rv_trace_pkt.rv_i_tval_ip <= swerv.io.rv_trace_pkt.rv_i_tval_ip @[quasar_wrapper.scala 148:19] + io.rv_trace_pkt.rv_i_interrupt_ip <= swerv.io.rv_trace_pkt.rv_i_interrupt_ip @[quasar_wrapper.scala 148:19] + io.rv_trace_pkt.rv_i_ecause_ip <= swerv.io.rv_trace_pkt.rv_i_ecause_ip @[quasar_wrapper.scala 148:19] + io.rv_trace_pkt.rv_i_exception_ip <= swerv.io.rv_trace_pkt.rv_i_exception_ip @[quasar_wrapper.scala 148:19] + io.rv_trace_pkt.rv_i_address_ip <= swerv.io.rv_trace_pkt.rv_i_address_ip @[quasar_wrapper.scala 148:19] + io.rv_trace_pkt.rv_i_insn_ip <= swerv.io.rv_trace_pkt.rv_i_insn_ip @[quasar_wrapper.scala 148:19] + io.rv_trace_pkt.rv_i_valid_ip <= swerv.io.rv_trace_pkt.rv_i_valid_ip @[quasar_wrapper.scala 148:19] + io.o_cpu_halt_ack <= swerv.io.o_cpu_halt_ack @[quasar_wrapper.scala 151:21] + io.o_cpu_halt_status <= swerv.io.o_cpu_halt_status @[quasar_wrapper.scala 152:24] + io.o_cpu_run_ack <= swerv.io.o_cpu_run_ack @[quasar_wrapper.scala 153:20] + io.o_debug_mode_status <= swerv.io.o_debug_mode_status @[quasar_wrapper.scala 154:26] + io.mpc_debug_halt_ack <= swerv.io.mpc_debug_halt_ack @[quasar_wrapper.scala 156:25] + io.mpc_debug_run_ack <= swerv.io.mpc_debug_run_ack @[quasar_wrapper.scala 157:24] + io.debug_brkpt_status <= swerv.io.debug_brkpt_status @[quasar_wrapper.scala 158:25] + io.dec_tlu_perfcnt0 <= swerv.io.dec_tlu_perfcnt0 @[quasar_wrapper.scala 160:23] + io.dec_tlu_perfcnt1 <= swerv.io.dec_tlu_perfcnt1 @[quasar_wrapper.scala 161:23] + io.dec_tlu_perfcnt2 <= swerv.io.dec_tlu_perfcnt2 @[quasar_wrapper.scala 162:23] + io.dec_tlu_perfcnt3 <= swerv.io.dec_tlu_perfcnt3 @[quasar_wrapper.scala 163:23] diff --git a/quasar_wrapper.v b/quasar_wrapper.v index 3d4c37a6..9c68f9cd 100644 --- a/quasar_wrapper.v +++ b/quasar_wrapper.v @@ -84235,231 +84235,231 @@ module quasar_wrapper( .io_soft_int(swerv_io_soft_int), .io_scan_mode(swerv_io_scan_mode) ); - assign io_lsu_brg_aw_valid = swerv_io_lsu_axi_aw_valid; // @[quasar_wrapper.scala 129:20] - assign io_lsu_brg_aw_bits_id = swerv_io_lsu_axi_aw_bits_id; // @[quasar_wrapper.scala 129:20] - assign io_lsu_brg_aw_bits_addr = swerv_io_lsu_axi_aw_bits_addr; // @[quasar_wrapper.scala 129:20] - assign io_lsu_brg_aw_bits_region = swerv_io_lsu_axi_aw_bits_region; // @[quasar_wrapper.scala 129:20] - assign io_lsu_brg_aw_bits_len = 8'h0; // @[quasar_wrapper.scala 129:20] - assign io_lsu_brg_aw_bits_size = swerv_io_lsu_axi_aw_bits_size; // @[quasar_wrapper.scala 129:20] - assign io_lsu_brg_aw_bits_burst = 2'h1; // @[quasar_wrapper.scala 129:20] - assign io_lsu_brg_aw_bits_lock = 1'h0; // @[quasar_wrapper.scala 129:20] - assign io_lsu_brg_aw_bits_cache = swerv_io_lsu_axi_aw_bits_cache; // @[quasar_wrapper.scala 129:20] - assign io_lsu_brg_aw_bits_prot = 3'h0; // @[quasar_wrapper.scala 129:20] - assign io_lsu_brg_aw_bits_qos = 4'h0; // @[quasar_wrapper.scala 129:20] - assign io_lsu_brg_w_valid = swerv_io_lsu_axi_w_valid; // @[quasar_wrapper.scala 129:20] - assign io_lsu_brg_w_bits_data = swerv_io_lsu_axi_w_bits_data; // @[quasar_wrapper.scala 129:20] - assign io_lsu_brg_w_bits_strb = swerv_io_lsu_axi_w_bits_strb; // @[quasar_wrapper.scala 129:20] - assign io_lsu_brg_w_bits_last = 1'h1; // @[quasar_wrapper.scala 129:20] - assign io_lsu_brg_b_ready = 1'h1; // @[quasar_wrapper.scala 129:20] - assign io_lsu_brg_ar_valid = swerv_io_lsu_axi_ar_valid; // @[quasar_wrapper.scala 129:20] - assign io_lsu_brg_ar_bits_id = swerv_io_lsu_axi_ar_bits_id; // @[quasar_wrapper.scala 129:20] - assign io_lsu_brg_ar_bits_addr = swerv_io_lsu_axi_ar_bits_addr; // @[quasar_wrapper.scala 129:20] - assign io_lsu_brg_ar_bits_region = swerv_io_lsu_axi_ar_bits_region; // @[quasar_wrapper.scala 129:20] - assign io_lsu_brg_ar_bits_len = 8'h0; // @[quasar_wrapper.scala 129:20] - assign io_lsu_brg_ar_bits_size = swerv_io_lsu_axi_ar_bits_size; // @[quasar_wrapper.scala 129:20] - assign io_lsu_brg_ar_bits_burst = 2'h1; // @[quasar_wrapper.scala 129:20] - assign io_lsu_brg_ar_bits_lock = 1'h0; // @[quasar_wrapper.scala 129:20] - assign io_lsu_brg_ar_bits_cache = swerv_io_lsu_axi_ar_bits_cache; // @[quasar_wrapper.scala 129:20] - assign io_lsu_brg_ar_bits_prot = 3'h0; // @[quasar_wrapper.scala 129:20] - assign io_lsu_brg_ar_bits_qos = 4'h0; // @[quasar_wrapper.scala 129:20] - assign io_lsu_brg_r_ready = 1'h1; // @[quasar_wrapper.scala 129:20] - assign io_ifu_brg_aw_valid = 1'h0; // @[quasar_wrapper.scala 132:20] - assign io_ifu_brg_aw_bits_id = 3'h0; // @[quasar_wrapper.scala 132:20] - assign io_ifu_brg_aw_bits_addr = 32'h0; // @[quasar_wrapper.scala 132:20] - assign io_ifu_brg_aw_bits_region = 4'h0; // @[quasar_wrapper.scala 132:20] - assign io_ifu_brg_aw_bits_len = 8'h0; // @[quasar_wrapper.scala 132:20] - assign io_ifu_brg_aw_bits_size = 3'h0; // @[quasar_wrapper.scala 132:20] - assign io_ifu_brg_aw_bits_burst = 2'h0; // @[quasar_wrapper.scala 132:20] - assign io_ifu_brg_aw_bits_lock = 1'h0; // @[quasar_wrapper.scala 132:20] - assign io_ifu_brg_aw_bits_cache = 4'h0; // @[quasar_wrapper.scala 132:20] - assign io_ifu_brg_aw_bits_prot = 3'h0; // @[quasar_wrapper.scala 132:20] - assign io_ifu_brg_aw_bits_qos = 4'h0; // @[quasar_wrapper.scala 132:20] - assign io_ifu_brg_w_valid = 1'h0; // @[quasar_wrapper.scala 132:20] - assign io_ifu_brg_w_bits_data = 64'h0; // @[quasar_wrapper.scala 132:20] - assign io_ifu_brg_w_bits_strb = 8'h0; // @[quasar_wrapper.scala 132:20] - assign io_ifu_brg_w_bits_last = 1'h0; // @[quasar_wrapper.scala 132:20] - assign io_ifu_brg_b_ready = 1'h0; // @[quasar_wrapper.scala 132:20] - assign io_ifu_brg_ar_valid = swerv_io_ifu_axi_ar_valid; // @[quasar_wrapper.scala 132:20] - assign io_ifu_brg_ar_bits_id = swerv_io_ifu_axi_ar_bits_id; // @[quasar_wrapper.scala 132:20] - assign io_ifu_brg_ar_bits_addr = swerv_io_ifu_axi_ar_bits_addr; // @[quasar_wrapper.scala 132:20] - assign io_ifu_brg_ar_bits_region = swerv_io_ifu_axi_ar_bits_region; // @[quasar_wrapper.scala 132:20] - assign io_ifu_brg_ar_bits_len = 8'h0; // @[quasar_wrapper.scala 132:20] - assign io_ifu_brg_ar_bits_size = 3'h3; // @[quasar_wrapper.scala 132:20] - assign io_ifu_brg_ar_bits_burst = 2'h1; // @[quasar_wrapper.scala 132:20] - assign io_ifu_brg_ar_bits_lock = 1'h0; // @[quasar_wrapper.scala 132:20] - assign io_ifu_brg_ar_bits_cache = 4'hf; // @[quasar_wrapper.scala 132:20] - assign io_ifu_brg_ar_bits_prot = 3'h0; // @[quasar_wrapper.scala 132:20] - assign io_ifu_brg_ar_bits_qos = 4'h0; // @[quasar_wrapper.scala 132:20] - assign io_ifu_brg_r_ready = 1'h1; // @[quasar_wrapper.scala 132:20] - assign io_sb_brg_aw_valid = swerv_io_sb_axi_aw_valid; // @[quasar_wrapper.scala 135:19] - assign io_sb_brg_aw_bits_id = 1'h0; // @[quasar_wrapper.scala 135:19] - assign io_sb_brg_aw_bits_addr = swerv_io_sb_axi_aw_bits_addr; // @[quasar_wrapper.scala 135:19] - assign io_sb_brg_aw_bits_region = swerv_io_sb_axi_aw_bits_region; // @[quasar_wrapper.scala 135:19] - assign io_sb_brg_aw_bits_len = 8'h0; // @[quasar_wrapper.scala 135:19] - assign io_sb_brg_aw_bits_size = swerv_io_sb_axi_aw_bits_size; // @[quasar_wrapper.scala 135:19] - assign io_sb_brg_aw_bits_burst = 2'h1; // @[quasar_wrapper.scala 135:19] - assign io_sb_brg_aw_bits_lock = 1'h0; // @[quasar_wrapper.scala 135:19] - assign io_sb_brg_aw_bits_cache = 4'hf; // @[quasar_wrapper.scala 135:19] - assign io_sb_brg_aw_bits_prot = 3'h0; // @[quasar_wrapper.scala 135:19] - assign io_sb_brg_aw_bits_qos = 4'h0; // @[quasar_wrapper.scala 135:19] - assign io_sb_brg_w_valid = swerv_io_sb_axi_w_valid; // @[quasar_wrapper.scala 135:19] - assign io_sb_brg_w_bits_data = swerv_io_sb_axi_w_bits_data; // @[quasar_wrapper.scala 135:19] - assign io_sb_brg_w_bits_strb = swerv_io_sb_axi_w_bits_strb; // @[quasar_wrapper.scala 135:19] - assign io_sb_brg_w_bits_last = 1'h1; // @[quasar_wrapper.scala 135:19] - assign io_sb_brg_b_ready = 1'h1; // @[quasar_wrapper.scala 135:19] - assign io_sb_brg_ar_valid = swerv_io_sb_axi_ar_valid; // @[quasar_wrapper.scala 135:19] - assign io_sb_brg_ar_bits_id = 1'h0; // @[quasar_wrapper.scala 135:19] - assign io_sb_brg_ar_bits_addr = swerv_io_sb_axi_ar_bits_addr; // @[quasar_wrapper.scala 135:19] - assign io_sb_brg_ar_bits_region = swerv_io_sb_axi_ar_bits_region; // @[quasar_wrapper.scala 135:19] - assign io_sb_brg_ar_bits_len = 8'h0; // @[quasar_wrapper.scala 135:19] - assign io_sb_brg_ar_bits_size = swerv_io_sb_axi_ar_bits_size; // @[quasar_wrapper.scala 135:19] - assign io_sb_brg_ar_bits_burst = 2'h1; // @[quasar_wrapper.scala 135:19] - assign io_sb_brg_ar_bits_lock = 1'h0; // @[quasar_wrapper.scala 135:19] - assign io_sb_brg_ar_bits_cache = 4'h0; // @[quasar_wrapper.scala 135:19] - assign io_sb_brg_ar_bits_prot = 3'h0; // @[quasar_wrapper.scala 135:19] - assign io_sb_brg_ar_bits_qos = 4'h0; // @[quasar_wrapper.scala 135:19] - assign io_sb_brg_r_ready = 1'h1; // @[quasar_wrapper.scala 135:19] - assign io_dma_brg_aw_ready = swerv_io_dma_axi_aw_ready; // @[quasar_wrapper.scala 139:20] - assign io_dma_brg_w_ready = swerv_io_dma_axi_w_ready; // @[quasar_wrapper.scala 139:20] - assign io_dma_brg_b_valid = swerv_io_dma_axi_b_valid; // @[quasar_wrapper.scala 139:20] - assign io_dma_brg_b_bits_resp = swerv_io_dma_axi_b_bits_resp; // @[quasar_wrapper.scala 139:20] - assign io_dma_brg_b_bits_id = swerv_io_dma_axi_b_bits_id; // @[quasar_wrapper.scala 139:20] - assign io_dma_brg_ar_ready = swerv_io_dma_axi_ar_ready; // @[quasar_wrapper.scala 139:20] - assign io_dma_brg_r_valid = swerv_io_dma_axi_r_valid; // @[quasar_wrapper.scala 139:20] - assign io_dma_brg_r_bits_id = swerv_io_dma_axi_r_bits_id; // @[quasar_wrapper.scala 139:20] - assign io_dma_brg_r_bits_data = swerv_io_dma_axi_r_bits_data; // @[quasar_wrapper.scala 139:20] - assign io_dma_brg_r_bits_resp = swerv_io_dma_axi_r_bits_resp; // @[quasar_wrapper.scala 139:20] - assign io_dma_brg_r_bits_last = 1'h1; // @[quasar_wrapper.scala 139:20] - assign io_dec_tlu_perfcnt0 = swerv_io_dec_tlu_perfcnt0; // @[quasar_wrapper.scala 178:23] - assign io_dec_tlu_perfcnt1 = swerv_io_dec_tlu_perfcnt1; // @[quasar_wrapper.scala 179:23] - assign io_dec_tlu_perfcnt2 = swerv_io_dec_tlu_perfcnt2; // @[quasar_wrapper.scala 180:23] - assign io_dec_tlu_perfcnt3 = swerv_io_dec_tlu_perfcnt3; // @[quasar_wrapper.scala 181:23] - assign io_jtag_tdo = dmi_wrapper_tdo; // @[quasar_wrapper.scala 81:15] - assign io_mpc_debug_halt_ack = swerv_io_mpc_debug_halt_ack; // @[quasar_wrapper.scala 174:25] - assign io_mpc_debug_run_ack = swerv_io_mpc_debug_run_ack; // @[quasar_wrapper.scala 175:24] - assign io_debug_brkpt_status = swerv_io_debug_brkpt_status; // @[quasar_wrapper.scala 176:25] - assign io_o_cpu_halt_ack = swerv_io_o_cpu_halt_ack; // @[quasar_wrapper.scala 169:21] - assign io_o_cpu_halt_status = swerv_io_o_cpu_halt_status; // @[quasar_wrapper.scala 170:24] - assign io_o_debug_mode_status = swerv_io_o_debug_mode_status; // @[quasar_wrapper.scala 172:26] - assign io_o_cpu_run_ack = swerv_io_o_cpu_run_ack; // @[quasar_wrapper.scala 171:20] - assign io_rv_trace_pkt_rv_i_valid_ip = swerv_io_rv_trace_pkt_rv_i_valid_ip; // @[quasar_wrapper.scala 166:19] - assign io_rv_trace_pkt_rv_i_insn_ip = swerv_io_rv_trace_pkt_rv_i_insn_ip; // @[quasar_wrapper.scala 166:19] - assign io_rv_trace_pkt_rv_i_address_ip = swerv_io_rv_trace_pkt_rv_i_address_ip; // @[quasar_wrapper.scala 166:19] - assign io_rv_trace_pkt_rv_i_exception_ip = swerv_io_rv_trace_pkt_rv_i_exception_ip; // @[quasar_wrapper.scala 166:19] - assign io_rv_trace_pkt_rv_i_ecause_ip = swerv_io_rv_trace_pkt_rv_i_ecause_ip; // @[quasar_wrapper.scala 166:19] - assign io_rv_trace_pkt_rv_i_interrupt_ip = swerv_io_rv_trace_pkt_rv_i_interrupt_ip; // @[quasar_wrapper.scala 166:19] - assign io_rv_trace_pkt_rv_i_tval_ip = swerv_io_rv_trace_pkt_rv_i_tval_ip; // @[quasar_wrapper.scala 166:19] - assign mem_clk = clock; // @[quasar_wrapper.scala 89:14] - assign mem_rst_l = reset; // @[quasar_wrapper.scala 88:16] - assign mem_dccm_clk_override = swerv_io_dccm_clk_override; // @[quasar_wrapper.scala 84:28] - assign mem_icm_clk_override = swerv_io_icm_clk_override; // @[quasar_wrapper.scala 85:27] - assign mem_dec_tlu_core_ecc_disable = swerv_io_dec_tlu_core_ecc_disable; // @[quasar_wrapper.scala 86:35] - assign mem_dccm_wren = swerv_io_dccm_wren; // @[quasar_wrapper.scala 87:15] - assign mem_dccm_rden = swerv_io_dccm_rden; // @[quasar_wrapper.scala 87:15] - assign mem_dccm_wr_addr_lo = swerv_io_dccm_wr_addr_lo; // @[quasar_wrapper.scala 87:15] - assign mem_dccm_wr_addr_hi = swerv_io_dccm_wr_addr_hi; // @[quasar_wrapper.scala 87:15] - assign mem_dccm_rd_addr_lo = swerv_io_dccm_rd_addr_lo; // @[quasar_wrapper.scala 87:15] - assign mem_dccm_rd_addr_hi = swerv_io_dccm_rd_addr_hi; // @[quasar_wrapper.scala 87:15] - assign mem_dccm_wr_data_lo = swerv_io_dccm_wr_data_lo; // @[quasar_wrapper.scala 87:15] - assign mem_dccm_wr_data_hi = swerv_io_dccm_wr_data_hi; // @[quasar_wrapper.scala 87:15] - assign mem_iccm_rw_addr = swerv_io_iccm_rw_addr; // @[quasar_wrapper.scala 94:17] - assign mem_iccm_buf_correct_ecc = swerv_io_iccm_buf_correct_ecc; // @[quasar_wrapper.scala 94:17] - assign mem_iccm_correction_state = swerv_io_iccm_correction_state; // @[quasar_wrapper.scala 94:17] - assign mem_iccm_wren = swerv_io_iccm_wren; // @[quasar_wrapper.scala 94:17] - assign mem_iccm_rden = swerv_io_iccm_rden; // @[quasar_wrapper.scala 94:17] - assign mem_iccm_wr_size = swerv_io_iccm_wr_size; // @[quasar_wrapper.scala 94:17] - assign mem_iccm_wr_data = swerv_io_iccm_wr_data; // @[quasar_wrapper.scala 94:17] - assign mem_ic_rw_addr = swerv_io_ic_rw_addr; // @[quasar_wrapper.scala 93:15] - assign mem_ic_tag_valid = swerv_io_ic_tag_valid; // @[quasar_wrapper.scala 93:15] - assign mem_ic_wr_en = swerv_io_ic_wr_en; // @[quasar_wrapper.scala 93:15] - assign mem_ic_rd_en = swerv_io_ic_rd_en; // @[quasar_wrapper.scala 93:15] - assign mem_ic_wr_data_0 = swerv_io_ic_wr_data_0; // @[quasar_wrapper.scala 93:15] - assign mem_ic_wr_data_1 = swerv_io_ic_wr_data_1; // @[quasar_wrapper.scala 93:15] - assign mem_ic_debug_wr_data = swerv_io_ic_debug_wr_data; // @[quasar_wrapper.scala 93:15] - assign mem_ic_debug_addr = swerv_io_ic_debug_addr; // @[quasar_wrapper.scala 93:15] - assign mem_ic_debug_rd_en = swerv_io_ic_debug_rd_en; // @[quasar_wrapper.scala 93:15] - assign mem_ic_debug_wr_en = swerv_io_ic_debug_wr_en; // @[quasar_wrapper.scala 93:15] - assign mem_ic_debug_tag_array = swerv_io_ic_debug_tag_array; // @[quasar_wrapper.scala 93:15] - assign mem_ic_debug_way = swerv_io_ic_debug_way; // @[quasar_wrapper.scala 93:15] - assign mem_ic_premux_data = swerv_io_ic_premux_data; // @[quasar_wrapper.scala 93:15] - assign mem_ic_sel_premux_data = swerv_io_ic_sel_premux_data; // @[quasar_wrapper.scala 93:15] - assign mem_scan_mode = io_scan_mode; // @[quasar_wrapper.scala 90:20] - assign dmi_wrapper_trst_n = io_jtag_trst_n; // @[quasar_wrapper.scala 66:25] - assign dmi_wrapper_tck = io_jtag_tck; // @[quasar_wrapper.scala 67:22] - assign dmi_wrapper_tms = io_jtag_tms; // @[quasar_wrapper.scala 68:22] - assign dmi_wrapper_tdi = io_jtag_tdi; // @[quasar_wrapper.scala 69:22] - assign dmi_wrapper_core_rst_n = io_dbg_rst_l; // @[quasar_wrapper.scala 75:29] - assign dmi_wrapper_core_clk = clock; // @[quasar_wrapper.scala 70:27] - assign dmi_wrapper_jtag_id = io_jtag_id; // @[quasar_wrapper.scala 71:26] - assign dmi_wrapper_rd_data = 32'h0; // @[quasar_wrapper.scala 72:26] + assign io_lsu_brg_aw_valid = swerv_io_lsu_axi_aw_valid; // @[quasar_wrapper.scala 105:22] + assign io_lsu_brg_aw_bits_id = swerv_io_lsu_axi_aw_bits_id; // @[quasar_wrapper.scala 105:22] + assign io_lsu_brg_aw_bits_addr = swerv_io_lsu_axi_aw_bits_addr; // @[quasar_wrapper.scala 105:22] + assign io_lsu_brg_aw_bits_region = swerv_io_lsu_axi_aw_bits_region; // @[quasar_wrapper.scala 105:22] + assign io_lsu_brg_aw_bits_len = 8'h0; // @[quasar_wrapper.scala 105:22] + assign io_lsu_brg_aw_bits_size = swerv_io_lsu_axi_aw_bits_size; // @[quasar_wrapper.scala 105:22] + assign io_lsu_brg_aw_bits_burst = 2'h1; // @[quasar_wrapper.scala 105:22] + assign io_lsu_brg_aw_bits_lock = 1'h0; // @[quasar_wrapper.scala 105:22] + assign io_lsu_brg_aw_bits_cache = swerv_io_lsu_axi_aw_bits_cache; // @[quasar_wrapper.scala 105:22] + assign io_lsu_brg_aw_bits_prot = 3'h0; // @[quasar_wrapper.scala 105:22] + assign io_lsu_brg_aw_bits_qos = 4'h0; // @[quasar_wrapper.scala 105:22] + assign io_lsu_brg_w_valid = swerv_io_lsu_axi_w_valid; // @[quasar_wrapper.scala 105:22] + assign io_lsu_brg_w_bits_data = swerv_io_lsu_axi_w_bits_data; // @[quasar_wrapper.scala 105:22] + assign io_lsu_brg_w_bits_strb = swerv_io_lsu_axi_w_bits_strb; // @[quasar_wrapper.scala 105:22] + assign io_lsu_brg_w_bits_last = 1'h1; // @[quasar_wrapper.scala 105:22] + assign io_lsu_brg_b_ready = 1'h1; // @[quasar_wrapper.scala 105:22] + assign io_lsu_brg_ar_valid = swerv_io_lsu_axi_ar_valid; // @[quasar_wrapper.scala 105:22] + assign io_lsu_brg_ar_bits_id = swerv_io_lsu_axi_ar_bits_id; // @[quasar_wrapper.scala 105:22] + assign io_lsu_brg_ar_bits_addr = swerv_io_lsu_axi_ar_bits_addr; // @[quasar_wrapper.scala 105:22] + assign io_lsu_brg_ar_bits_region = swerv_io_lsu_axi_ar_bits_region; // @[quasar_wrapper.scala 105:22] + assign io_lsu_brg_ar_bits_len = 8'h0; // @[quasar_wrapper.scala 105:22] + assign io_lsu_brg_ar_bits_size = swerv_io_lsu_axi_ar_bits_size; // @[quasar_wrapper.scala 105:22] + assign io_lsu_brg_ar_bits_burst = 2'h1; // @[quasar_wrapper.scala 105:22] + assign io_lsu_brg_ar_bits_lock = 1'h0; // @[quasar_wrapper.scala 105:22] + assign io_lsu_brg_ar_bits_cache = swerv_io_lsu_axi_ar_bits_cache; // @[quasar_wrapper.scala 105:22] + assign io_lsu_brg_ar_bits_prot = 3'h0; // @[quasar_wrapper.scala 105:22] + assign io_lsu_brg_ar_bits_qos = 4'h0; // @[quasar_wrapper.scala 105:22] + assign io_lsu_brg_r_ready = 1'h1; // @[quasar_wrapper.scala 105:22] + assign io_ifu_brg_aw_valid = 1'h0; // @[quasar_wrapper.scala 106:22] + assign io_ifu_brg_aw_bits_id = 3'h0; // @[quasar_wrapper.scala 106:22] + assign io_ifu_brg_aw_bits_addr = 32'h0; // @[quasar_wrapper.scala 106:22] + assign io_ifu_brg_aw_bits_region = 4'h0; // @[quasar_wrapper.scala 106:22] + assign io_ifu_brg_aw_bits_len = 8'h0; // @[quasar_wrapper.scala 106:22] + assign io_ifu_brg_aw_bits_size = 3'h0; // @[quasar_wrapper.scala 106:22] + assign io_ifu_brg_aw_bits_burst = 2'h0; // @[quasar_wrapper.scala 106:22] + assign io_ifu_brg_aw_bits_lock = 1'h0; // @[quasar_wrapper.scala 106:22] + assign io_ifu_brg_aw_bits_cache = 4'h0; // @[quasar_wrapper.scala 106:22] + assign io_ifu_brg_aw_bits_prot = 3'h0; // @[quasar_wrapper.scala 106:22] + assign io_ifu_brg_aw_bits_qos = 4'h0; // @[quasar_wrapper.scala 106:22] + assign io_ifu_brg_w_valid = 1'h0; // @[quasar_wrapper.scala 106:22] + assign io_ifu_brg_w_bits_data = 64'h0; // @[quasar_wrapper.scala 106:22] + assign io_ifu_brg_w_bits_strb = 8'h0; // @[quasar_wrapper.scala 106:22] + assign io_ifu_brg_w_bits_last = 1'h0; // @[quasar_wrapper.scala 106:22] + assign io_ifu_brg_b_ready = 1'h0; // @[quasar_wrapper.scala 106:22] + assign io_ifu_brg_ar_valid = swerv_io_ifu_axi_ar_valid; // @[quasar_wrapper.scala 106:22] + assign io_ifu_brg_ar_bits_id = swerv_io_ifu_axi_ar_bits_id; // @[quasar_wrapper.scala 106:22] + assign io_ifu_brg_ar_bits_addr = swerv_io_ifu_axi_ar_bits_addr; // @[quasar_wrapper.scala 106:22] + assign io_ifu_brg_ar_bits_region = swerv_io_ifu_axi_ar_bits_region; // @[quasar_wrapper.scala 106:22] + assign io_ifu_brg_ar_bits_len = 8'h0; // @[quasar_wrapper.scala 106:22] + assign io_ifu_brg_ar_bits_size = 3'h3; // @[quasar_wrapper.scala 106:22] + assign io_ifu_brg_ar_bits_burst = 2'h1; // @[quasar_wrapper.scala 106:22] + assign io_ifu_brg_ar_bits_lock = 1'h0; // @[quasar_wrapper.scala 106:22] + assign io_ifu_brg_ar_bits_cache = 4'hf; // @[quasar_wrapper.scala 106:22] + assign io_ifu_brg_ar_bits_prot = 3'h0; // @[quasar_wrapper.scala 106:22] + assign io_ifu_brg_ar_bits_qos = 4'h0; // @[quasar_wrapper.scala 106:22] + assign io_ifu_brg_r_ready = 1'h1; // @[quasar_wrapper.scala 106:22] + assign io_sb_brg_aw_valid = swerv_io_sb_axi_aw_valid; // @[quasar_wrapper.scala 107:21] + assign io_sb_brg_aw_bits_id = 1'h0; // @[quasar_wrapper.scala 107:21] + assign io_sb_brg_aw_bits_addr = swerv_io_sb_axi_aw_bits_addr; // @[quasar_wrapper.scala 107:21] + assign io_sb_brg_aw_bits_region = swerv_io_sb_axi_aw_bits_region; // @[quasar_wrapper.scala 107:21] + assign io_sb_brg_aw_bits_len = 8'h0; // @[quasar_wrapper.scala 107:21] + assign io_sb_brg_aw_bits_size = swerv_io_sb_axi_aw_bits_size; // @[quasar_wrapper.scala 107:21] + assign io_sb_brg_aw_bits_burst = 2'h1; // @[quasar_wrapper.scala 107:21] + assign io_sb_brg_aw_bits_lock = 1'h0; // @[quasar_wrapper.scala 107:21] + assign io_sb_brg_aw_bits_cache = 4'hf; // @[quasar_wrapper.scala 107:21] + assign io_sb_brg_aw_bits_prot = 3'h0; // @[quasar_wrapper.scala 107:21] + assign io_sb_brg_aw_bits_qos = 4'h0; // @[quasar_wrapper.scala 107:21] + assign io_sb_brg_w_valid = swerv_io_sb_axi_w_valid; // @[quasar_wrapper.scala 107:21] + assign io_sb_brg_w_bits_data = swerv_io_sb_axi_w_bits_data; // @[quasar_wrapper.scala 107:21] + assign io_sb_brg_w_bits_strb = swerv_io_sb_axi_w_bits_strb; // @[quasar_wrapper.scala 107:21] + assign io_sb_brg_w_bits_last = 1'h1; // @[quasar_wrapper.scala 107:21] + assign io_sb_brg_b_ready = 1'h1; // @[quasar_wrapper.scala 107:21] + assign io_sb_brg_ar_valid = swerv_io_sb_axi_ar_valid; // @[quasar_wrapper.scala 107:21] + assign io_sb_brg_ar_bits_id = 1'h0; // @[quasar_wrapper.scala 107:21] + assign io_sb_brg_ar_bits_addr = swerv_io_sb_axi_ar_bits_addr; // @[quasar_wrapper.scala 107:21] + assign io_sb_brg_ar_bits_region = swerv_io_sb_axi_ar_bits_region; // @[quasar_wrapper.scala 107:21] + assign io_sb_brg_ar_bits_len = 8'h0; // @[quasar_wrapper.scala 107:21] + assign io_sb_brg_ar_bits_size = swerv_io_sb_axi_ar_bits_size; // @[quasar_wrapper.scala 107:21] + assign io_sb_brg_ar_bits_burst = 2'h1; // @[quasar_wrapper.scala 107:21] + assign io_sb_brg_ar_bits_lock = 1'h0; // @[quasar_wrapper.scala 107:21] + assign io_sb_brg_ar_bits_cache = 4'h0; // @[quasar_wrapper.scala 107:21] + assign io_sb_brg_ar_bits_prot = 3'h0; // @[quasar_wrapper.scala 107:21] + assign io_sb_brg_ar_bits_qos = 4'h0; // @[quasar_wrapper.scala 107:21] + assign io_sb_brg_r_ready = 1'h1; // @[quasar_wrapper.scala 107:21] + assign io_dma_brg_aw_ready = swerv_io_dma_axi_aw_ready; // @[quasar_wrapper.scala 108:22] + assign io_dma_brg_w_ready = swerv_io_dma_axi_w_ready; // @[quasar_wrapper.scala 108:22] + assign io_dma_brg_b_valid = swerv_io_dma_axi_b_valid; // @[quasar_wrapper.scala 108:22] + assign io_dma_brg_b_bits_resp = swerv_io_dma_axi_b_bits_resp; // @[quasar_wrapper.scala 108:22] + assign io_dma_brg_b_bits_id = swerv_io_dma_axi_b_bits_id; // @[quasar_wrapper.scala 108:22] + assign io_dma_brg_ar_ready = swerv_io_dma_axi_ar_ready; // @[quasar_wrapper.scala 108:22] + assign io_dma_brg_r_valid = swerv_io_dma_axi_r_valid; // @[quasar_wrapper.scala 108:22] + assign io_dma_brg_r_bits_id = swerv_io_dma_axi_r_bits_id; // @[quasar_wrapper.scala 108:22] + assign io_dma_brg_r_bits_data = swerv_io_dma_axi_r_bits_data; // @[quasar_wrapper.scala 108:22] + assign io_dma_brg_r_bits_resp = swerv_io_dma_axi_r_bits_resp; // @[quasar_wrapper.scala 108:22] + assign io_dma_brg_r_bits_last = 1'h1; // @[quasar_wrapper.scala 108:22] + assign io_dec_tlu_perfcnt0 = swerv_io_dec_tlu_perfcnt0; // @[quasar_wrapper.scala 160:23] + assign io_dec_tlu_perfcnt1 = swerv_io_dec_tlu_perfcnt1; // @[quasar_wrapper.scala 161:23] + assign io_dec_tlu_perfcnt2 = swerv_io_dec_tlu_perfcnt2; // @[quasar_wrapper.scala 162:23] + assign io_dec_tlu_perfcnt3 = swerv_io_dec_tlu_perfcnt3; // @[quasar_wrapper.scala 163:23] + assign io_jtag_tdo = dmi_wrapper_tdo; // @[quasar_wrapper.scala 82:15] + assign io_mpc_debug_halt_ack = swerv_io_mpc_debug_halt_ack; // @[quasar_wrapper.scala 156:25] + assign io_mpc_debug_run_ack = swerv_io_mpc_debug_run_ack; // @[quasar_wrapper.scala 157:24] + assign io_debug_brkpt_status = swerv_io_debug_brkpt_status; // @[quasar_wrapper.scala 158:25] + assign io_o_cpu_halt_ack = swerv_io_o_cpu_halt_ack; // @[quasar_wrapper.scala 151:21] + assign io_o_cpu_halt_status = swerv_io_o_cpu_halt_status; // @[quasar_wrapper.scala 152:24] + assign io_o_debug_mode_status = swerv_io_o_debug_mode_status; // @[quasar_wrapper.scala 154:26] + assign io_o_cpu_run_ack = swerv_io_o_cpu_run_ack; // @[quasar_wrapper.scala 153:20] + assign io_rv_trace_pkt_rv_i_valid_ip = swerv_io_rv_trace_pkt_rv_i_valid_ip; // @[quasar_wrapper.scala 148:19] + assign io_rv_trace_pkt_rv_i_insn_ip = swerv_io_rv_trace_pkt_rv_i_insn_ip; // @[quasar_wrapper.scala 148:19] + assign io_rv_trace_pkt_rv_i_address_ip = swerv_io_rv_trace_pkt_rv_i_address_ip; // @[quasar_wrapper.scala 148:19] + assign io_rv_trace_pkt_rv_i_exception_ip = swerv_io_rv_trace_pkt_rv_i_exception_ip; // @[quasar_wrapper.scala 148:19] + assign io_rv_trace_pkt_rv_i_ecause_ip = swerv_io_rv_trace_pkt_rv_i_ecause_ip; // @[quasar_wrapper.scala 148:19] + assign io_rv_trace_pkt_rv_i_interrupt_ip = swerv_io_rv_trace_pkt_rv_i_interrupt_ip; // @[quasar_wrapper.scala 148:19] + assign io_rv_trace_pkt_rv_i_tval_ip = swerv_io_rv_trace_pkt_rv_i_tval_ip; // @[quasar_wrapper.scala 148:19] + assign mem_clk = clock; // @[quasar_wrapper.scala 90:14] + assign mem_rst_l = reset; // @[quasar_wrapper.scala 89:16] + assign mem_dccm_clk_override = swerv_io_dccm_clk_override; // @[quasar_wrapper.scala 85:28] + assign mem_icm_clk_override = swerv_io_icm_clk_override; // @[quasar_wrapper.scala 86:27] + assign mem_dec_tlu_core_ecc_disable = swerv_io_dec_tlu_core_ecc_disable; // @[quasar_wrapper.scala 87:35] + assign mem_dccm_wren = swerv_io_dccm_wren; // @[quasar_wrapper.scala 88:15] + assign mem_dccm_rden = swerv_io_dccm_rden; // @[quasar_wrapper.scala 88:15] + assign mem_dccm_wr_addr_lo = swerv_io_dccm_wr_addr_lo; // @[quasar_wrapper.scala 88:15] + assign mem_dccm_wr_addr_hi = swerv_io_dccm_wr_addr_hi; // @[quasar_wrapper.scala 88:15] + assign mem_dccm_rd_addr_lo = swerv_io_dccm_rd_addr_lo; // @[quasar_wrapper.scala 88:15] + assign mem_dccm_rd_addr_hi = swerv_io_dccm_rd_addr_hi; // @[quasar_wrapper.scala 88:15] + assign mem_dccm_wr_data_lo = swerv_io_dccm_wr_data_lo; // @[quasar_wrapper.scala 88:15] + assign mem_dccm_wr_data_hi = swerv_io_dccm_wr_data_hi; // @[quasar_wrapper.scala 88:15] + assign mem_iccm_rw_addr = swerv_io_iccm_rw_addr; // @[quasar_wrapper.scala 95:17] + assign mem_iccm_buf_correct_ecc = swerv_io_iccm_buf_correct_ecc; // @[quasar_wrapper.scala 95:17] + assign mem_iccm_correction_state = swerv_io_iccm_correction_state; // @[quasar_wrapper.scala 95:17] + assign mem_iccm_wren = swerv_io_iccm_wren; // @[quasar_wrapper.scala 95:17] + assign mem_iccm_rden = swerv_io_iccm_rden; // @[quasar_wrapper.scala 95:17] + assign mem_iccm_wr_size = swerv_io_iccm_wr_size; // @[quasar_wrapper.scala 95:17] + assign mem_iccm_wr_data = swerv_io_iccm_wr_data; // @[quasar_wrapper.scala 95:17] + assign mem_ic_rw_addr = swerv_io_ic_rw_addr; // @[quasar_wrapper.scala 94:15] + assign mem_ic_tag_valid = swerv_io_ic_tag_valid; // @[quasar_wrapper.scala 94:15] + assign mem_ic_wr_en = swerv_io_ic_wr_en; // @[quasar_wrapper.scala 94:15] + assign mem_ic_rd_en = swerv_io_ic_rd_en; // @[quasar_wrapper.scala 94:15] + assign mem_ic_wr_data_0 = swerv_io_ic_wr_data_0; // @[quasar_wrapper.scala 94:15] + assign mem_ic_wr_data_1 = swerv_io_ic_wr_data_1; // @[quasar_wrapper.scala 94:15] + assign mem_ic_debug_wr_data = swerv_io_ic_debug_wr_data; // @[quasar_wrapper.scala 94:15] + assign mem_ic_debug_addr = swerv_io_ic_debug_addr; // @[quasar_wrapper.scala 94:15] + assign mem_ic_debug_rd_en = swerv_io_ic_debug_rd_en; // @[quasar_wrapper.scala 94:15] + assign mem_ic_debug_wr_en = swerv_io_ic_debug_wr_en; // @[quasar_wrapper.scala 94:15] + assign mem_ic_debug_tag_array = swerv_io_ic_debug_tag_array; // @[quasar_wrapper.scala 94:15] + assign mem_ic_debug_way = swerv_io_ic_debug_way; // @[quasar_wrapper.scala 94:15] + assign mem_ic_premux_data = swerv_io_ic_premux_data; // @[quasar_wrapper.scala 94:15] + assign mem_ic_sel_premux_data = swerv_io_ic_sel_premux_data; // @[quasar_wrapper.scala 94:15] + assign mem_scan_mode = io_scan_mode; // @[quasar_wrapper.scala 91:20] + assign dmi_wrapper_trst_n = io_jtag_trst_n; // @[quasar_wrapper.scala 67:25] + assign dmi_wrapper_tck = io_jtag_tck; // @[quasar_wrapper.scala 68:22] + assign dmi_wrapper_tms = io_jtag_tms; // @[quasar_wrapper.scala 69:22] + assign dmi_wrapper_tdi = io_jtag_tdi; // @[quasar_wrapper.scala 70:22] + assign dmi_wrapper_core_rst_n = io_dbg_rst_l; // @[quasar_wrapper.scala 76:29] + assign dmi_wrapper_core_clk = clock; // @[quasar_wrapper.scala 71:27] + assign dmi_wrapper_jtag_id = io_jtag_id; // @[quasar_wrapper.scala 72:26] + assign dmi_wrapper_rd_data = 32'h0; // @[quasar_wrapper.scala 73:26] assign swerv_clock = clock; assign swerv_reset = reset; - assign swerv_io_lsu_axi_aw_ready = io_lsu_brg_aw_ready; // @[quasar_wrapper.scala 129:20] - assign swerv_io_lsu_axi_w_ready = io_lsu_brg_w_ready; // @[quasar_wrapper.scala 129:20] - assign swerv_io_lsu_axi_b_valid = io_lsu_brg_b_valid; // @[quasar_wrapper.scala 129:20] - assign swerv_io_lsu_axi_b_bits_resp = io_lsu_brg_b_bits_resp; // @[quasar_wrapper.scala 129:20] - assign swerv_io_lsu_axi_b_bits_id = io_lsu_brg_b_bits_id; // @[quasar_wrapper.scala 129:20] - assign swerv_io_lsu_axi_ar_ready = io_lsu_brg_ar_ready; // @[quasar_wrapper.scala 129:20] - assign swerv_io_lsu_axi_r_valid = io_lsu_brg_r_valid; // @[quasar_wrapper.scala 129:20] - assign swerv_io_lsu_axi_r_bits_id = io_lsu_brg_r_bits_id; // @[quasar_wrapper.scala 129:20] - assign swerv_io_lsu_axi_r_bits_data = io_lsu_brg_r_bits_data; // @[quasar_wrapper.scala 129:20] - assign swerv_io_lsu_axi_r_bits_resp = io_lsu_brg_r_bits_resp; // @[quasar_wrapper.scala 129:20] - assign swerv_io_ifu_axi_ar_ready = io_ifu_brg_ar_ready; // @[quasar_wrapper.scala 132:20] - assign swerv_io_ifu_axi_r_valid = io_ifu_brg_r_valid; // @[quasar_wrapper.scala 132:20] - assign swerv_io_ifu_axi_r_bits_id = io_ifu_brg_r_bits_id; // @[quasar_wrapper.scala 132:20] - assign swerv_io_ifu_axi_r_bits_data = io_ifu_brg_r_bits_data; // @[quasar_wrapper.scala 132:20] - assign swerv_io_ifu_axi_r_bits_resp = io_ifu_brg_r_bits_resp; // @[quasar_wrapper.scala 132:20] - assign swerv_io_sb_axi_aw_ready = io_sb_brg_aw_ready; // @[quasar_wrapper.scala 135:19] - assign swerv_io_sb_axi_w_ready = io_sb_brg_w_ready; // @[quasar_wrapper.scala 135:19] - assign swerv_io_sb_axi_b_valid = io_sb_brg_b_valid; // @[quasar_wrapper.scala 135:19] - assign swerv_io_sb_axi_b_bits_resp = io_sb_brg_b_bits_resp; // @[quasar_wrapper.scala 135:19] - assign swerv_io_sb_axi_ar_ready = io_sb_brg_ar_ready; // @[quasar_wrapper.scala 135:19] - assign swerv_io_sb_axi_r_valid = io_sb_brg_r_valid; // @[quasar_wrapper.scala 135:19] - assign swerv_io_sb_axi_r_bits_data = io_sb_brg_r_bits_data; // @[quasar_wrapper.scala 135:19] - assign swerv_io_sb_axi_r_bits_resp = io_sb_brg_r_bits_resp; // @[quasar_wrapper.scala 135:19] - assign swerv_io_dma_axi_aw_valid = io_dma_brg_aw_valid; // @[quasar_wrapper.scala 139:20] - assign swerv_io_dma_axi_aw_bits_id = io_dma_brg_aw_bits_id; // @[quasar_wrapper.scala 139:20] - assign swerv_io_dma_axi_aw_bits_addr = io_dma_brg_aw_bits_addr; // @[quasar_wrapper.scala 139:20] - assign swerv_io_dma_axi_aw_bits_size = io_dma_brg_aw_bits_size; // @[quasar_wrapper.scala 139:20] - assign swerv_io_dma_axi_w_valid = io_dma_brg_w_valid; // @[quasar_wrapper.scala 139:20] - assign swerv_io_dma_axi_w_bits_data = io_dma_brg_w_bits_data; // @[quasar_wrapper.scala 139:20] - assign swerv_io_dma_axi_w_bits_strb = io_dma_brg_w_bits_strb; // @[quasar_wrapper.scala 139:20] - assign swerv_io_dma_axi_b_ready = io_dma_brg_b_ready; // @[quasar_wrapper.scala 139:20] - assign swerv_io_dma_axi_ar_valid = io_dma_brg_ar_valid; // @[quasar_wrapper.scala 139:20] - assign swerv_io_dma_axi_ar_bits_id = io_dma_brg_ar_bits_id; // @[quasar_wrapper.scala 139:20] - assign swerv_io_dma_axi_ar_bits_addr = io_dma_brg_ar_bits_addr; // @[quasar_wrapper.scala 139:20] - assign swerv_io_dma_axi_ar_bits_size = io_dma_brg_ar_bits_size; // @[quasar_wrapper.scala 139:20] - assign swerv_io_dma_axi_r_ready = io_dma_brg_r_ready; // @[quasar_wrapper.scala 139:20] - assign swerv_io_dbg_rst_l = io_dbg_rst_l; // @[quasar_wrapper.scala 92:22 quasar_wrapper.scala 112:22] - assign swerv_io_rst_vec = io_rst_vec; // @[quasar_wrapper.scala 113:20] - assign swerv_io_nmi_int = io_nmi_int; // @[quasar_wrapper.scala 114:20] - assign swerv_io_nmi_vec = io_nmi_vec; // @[quasar_wrapper.scala 115:20] - assign swerv_io_i_cpu_halt_req = io_i_cpu_halt_req; // @[quasar_wrapper.scala 118:27] - assign swerv_io_i_cpu_run_req = io_i_cpu_run_req; // @[quasar_wrapper.scala 119:26] - assign swerv_io_core_id = io_core_id; // @[quasar_wrapper.scala 120:20] - assign swerv_io_mpc_debug_halt_req = io_mpc_debug_halt_req; // @[quasar_wrapper.scala 123:31] - assign swerv_io_mpc_debug_run_req = io_mpc_debug_run_req; // @[quasar_wrapper.scala 124:30] - assign swerv_io_mpc_reset_run_req = io_mpc_reset_run_req; // @[quasar_wrapper.scala 125:30] - assign swerv_io_dccm_rd_data_lo = mem_dccm_rd_data_lo; // @[quasar_wrapper.scala 87:15] - assign swerv_io_dccm_rd_data_hi = mem_dccm_rd_data_hi; // @[quasar_wrapper.scala 87:15] - assign swerv_io_ic_rd_data = mem_ic_rd_data; // @[quasar_wrapper.scala 93:15] - assign swerv_io_ic_debug_rd_data = mem_ic_debug_rd_data; // @[quasar_wrapper.scala 93:15] - assign swerv_io_ic_tag_debug_rd_data = mem_ic_tag_debug_rd_data; // @[quasar_wrapper.scala 93:15] - assign swerv_io_ic_eccerr = mem_ic_eccerr; // @[quasar_wrapper.scala 93:15] - assign swerv_io_ic_rd_hit = mem_ic_rd_hit; // @[quasar_wrapper.scala 93:15] - assign swerv_io_ic_tag_perr = mem_ic_tag_perr; // @[quasar_wrapper.scala 93:15] - assign swerv_io_iccm_rd_data = mem_iccm_rd_data; // @[quasar_wrapper.scala 94:17] - assign swerv_io_iccm_rd_data_ecc = mem_iccm_rd_data_ecc; // @[quasar_wrapper.scala 94:17] - assign swerv_io_lsu_bus_clk_en = io_lsu_bus_clk_en; // @[quasar_wrapper.scala 155:27] - assign swerv_io_ifu_bus_clk_en = io_ifu_bus_clk_en; // @[quasar_wrapper.scala 156:27] - assign swerv_io_dbg_bus_clk_en = io_dbg_bus_clk_en; // @[quasar_wrapper.scala 157:27] - assign swerv_io_dma_bus_clk_en = io_dma_bus_clk_en; // @[quasar_wrapper.scala 158:27] - assign swerv_io_dmi_reg_en = dmi_wrapper_reg_en; // @[quasar_wrapper.scala 78:23] - assign swerv_io_dmi_reg_addr = dmi_wrapper_reg_wr_addr; // @[quasar_wrapper.scala 77:25] - assign swerv_io_dmi_reg_wr_en = dmi_wrapper_reg_wr_en; // @[quasar_wrapper.scala 79:26] - assign swerv_io_dmi_reg_wdata = dmi_wrapper_reg_wr_data; // @[quasar_wrapper.scala 76:26] - assign swerv_io_extintsrc_req = io_extintsrc_req; // @[quasar_wrapper.scala 162:26] - assign swerv_io_timer_int = io_timer_int; // @[quasar_wrapper.scala 160:22] - assign swerv_io_soft_int = io_soft_int; // @[quasar_wrapper.scala 161:21] - assign swerv_io_scan_mode = io_scan_mode; // @[quasar_wrapper.scala 110:22] + assign swerv_io_lsu_axi_aw_ready = io_lsu_brg_aw_ready; // @[quasar_wrapper.scala 105:22] + assign swerv_io_lsu_axi_w_ready = io_lsu_brg_w_ready; // @[quasar_wrapper.scala 105:22] + assign swerv_io_lsu_axi_b_valid = io_lsu_brg_b_valid; // @[quasar_wrapper.scala 105:22] + assign swerv_io_lsu_axi_b_bits_resp = io_lsu_brg_b_bits_resp; // @[quasar_wrapper.scala 105:22] + assign swerv_io_lsu_axi_b_bits_id = io_lsu_brg_b_bits_id; // @[quasar_wrapper.scala 105:22] + assign swerv_io_lsu_axi_ar_ready = io_lsu_brg_ar_ready; // @[quasar_wrapper.scala 105:22] + assign swerv_io_lsu_axi_r_valid = io_lsu_brg_r_valid; // @[quasar_wrapper.scala 105:22] + assign swerv_io_lsu_axi_r_bits_id = io_lsu_brg_r_bits_id; // @[quasar_wrapper.scala 105:22] + assign swerv_io_lsu_axi_r_bits_data = io_lsu_brg_r_bits_data; // @[quasar_wrapper.scala 105:22] + assign swerv_io_lsu_axi_r_bits_resp = io_lsu_brg_r_bits_resp; // @[quasar_wrapper.scala 105:22] + assign swerv_io_ifu_axi_ar_ready = io_ifu_brg_ar_ready; // @[quasar_wrapper.scala 106:22] + assign swerv_io_ifu_axi_r_valid = io_ifu_brg_r_valid; // @[quasar_wrapper.scala 106:22] + assign swerv_io_ifu_axi_r_bits_id = io_ifu_brg_r_bits_id; // @[quasar_wrapper.scala 106:22] + assign swerv_io_ifu_axi_r_bits_data = io_ifu_brg_r_bits_data; // @[quasar_wrapper.scala 106:22] + assign swerv_io_ifu_axi_r_bits_resp = io_ifu_brg_r_bits_resp; // @[quasar_wrapper.scala 106:22] + assign swerv_io_sb_axi_aw_ready = io_sb_brg_aw_ready; // @[quasar_wrapper.scala 107:21] + assign swerv_io_sb_axi_w_ready = io_sb_brg_w_ready; // @[quasar_wrapper.scala 107:21] + assign swerv_io_sb_axi_b_valid = io_sb_brg_b_valid; // @[quasar_wrapper.scala 107:21] + assign swerv_io_sb_axi_b_bits_resp = io_sb_brg_b_bits_resp; // @[quasar_wrapper.scala 107:21] + assign swerv_io_sb_axi_ar_ready = io_sb_brg_ar_ready; // @[quasar_wrapper.scala 107:21] + assign swerv_io_sb_axi_r_valid = io_sb_brg_r_valid; // @[quasar_wrapper.scala 107:21] + assign swerv_io_sb_axi_r_bits_data = io_sb_brg_r_bits_data; // @[quasar_wrapper.scala 107:21] + assign swerv_io_sb_axi_r_bits_resp = io_sb_brg_r_bits_resp; // @[quasar_wrapper.scala 107:21] + assign swerv_io_dma_axi_aw_valid = io_dma_brg_aw_valid; // @[quasar_wrapper.scala 108:22] + assign swerv_io_dma_axi_aw_bits_id = io_dma_brg_aw_bits_id; // @[quasar_wrapper.scala 108:22] + assign swerv_io_dma_axi_aw_bits_addr = io_dma_brg_aw_bits_addr; // @[quasar_wrapper.scala 108:22] + assign swerv_io_dma_axi_aw_bits_size = io_dma_brg_aw_bits_size; // @[quasar_wrapper.scala 108:22] + assign swerv_io_dma_axi_w_valid = io_dma_brg_w_valid; // @[quasar_wrapper.scala 108:22] + assign swerv_io_dma_axi_w_bits_data = io_dma_brg_w_bits_data; // @[quasar_wrapper.scala 108:22] + assign swerv_io_dma_axi_w_bits_strb = io_dma_brg_w_bits_strb; // @[quasar_wrapper.scala 108:22] + assign swerv_io_dma_axi_b_ready = io_dma_brg_b_ready; // @[quasar_wrapper.scala 108:22] + assign swerv_io_dma_axi_ar_valid = io_dma_brg_ar_valid; // @[quasar_wrapper.scala 108:22] + assign swerv_io_dma_axi_ar_bits_id = io_dma_brg_ar_bits_id; // @[quasar_wrapper.scala 108:22] + assign swerv_io_dma_axi_ar_bits_addr = io_dma_brg_ar_bits_addr; // @[quasar_wrapper.scala 108:22] + assign swerv_io_dma_axi_ar_bits_size = io_dma_brg_ar_bits_size; // @[quasar_wrapper.scala 108:22] + assign swerv_io_dma_axi_r_ready = io_dma_brg_r_ready; // @[quasar_wrapper.scala 108:22] + assign swerv_io_dbg_rst_l = io_dbg_rst_l; // @[quasar_wrapper.scala 93:22 quasar_wrapper.scala 122:22] + assign swerv_io_rst_vec = io_rst_vec; // @[quasar_wrapper.scala 123:20] + assign swerv_io_nmi_int = io_nmi_int; // @[quasar_wrapper.scala 124:20] + assign swerv_io_nmi_vec = io_nmi_vec; // @[quasar_wrapper.scala 125:20] + assign swerv_io_i_cpu_halt_req = io_i_cpu_halt_req; // @[quasar_wrapper.scala 128:27] + assign swerv_io_i_cpu_run_req = io_i_cpu_run_req; // @[quasar_wrapper.scala 129:26] + assign swerv_io_core_id = io_core_id; // @[quasar_wrapper.scala 130:20] + assign swerv_io_mpc_debug_halt_req = io_mpc_debug_halt_req; // @[quasar_wrapper.scala 133:31] + assign swerv_io_mpc_debug_run_req = io_mpc_debug_run_req; // @[quasar_wrapper.scala 134:30] + assign swerv_io_mpc_reset_run_req = io_mpc_reset_run_req; // @[quasar_wrapper.scala 135:30] + assign swerv_io_dccm_rd_data_lo = mem_dccm_rd_data_lo; // @[quasar_wrapper.scala 88:15] + assign swerv_io_dccm_rd_data_hi = mem_dccm_rd_data_hi; // @[quasar_wrapper.scala 88:15] + assign swerv_io_ic_rd_data = mem_ic_rd_data; // @[quasar_wrapper.scala 94:15] + assign swerv_io_ic_debug_rd_data = mem_ic_debug_rd_data; // @[quasar_wrapper.scala 94:15] + assign swerv_io_ic_tag_debug_rd_data = mem_ic_tag_debug_rd_data; // @[quasar_wrapper.scala 94:15] + assign swerv_io_ic_eccerr = mem_ic_eccerr; // @[quasar_wrapper.scala 94:15] + assign swerv_io_ic_rd_hit = mem_ic_rd_hit; // @[quasar_wrapper.scala 94:15] + assign swerv_io_ic_tag_perr = mem_ic_tag_perr; // @[quasar_wrapper.scala 94:15] + assign swerv_io_iccm_rd_data = mem_iccm_rd_data; // @[quasar_wrapper.scala 95:17] + assign swerv_io_iccm_rd_data_ecc = mem_iccm_rd_data_ecc; // @[quasar_wrapper.scala 95:17] + assign swerv_io_lsu_bus_clk_en = io_lsu_bus_clk_en; // @[quasar_wrapper.scala 137:27] + assign swerv_io_ifu_bus_clk_en = io_ifu_bus_clk_en; // @[quasar_wrapper.scala 138:27] + assign swerv_io_dbg_bus_clk_en = io_dbg_bus_clk_en; // @[quasar_wrapper.scala 139:27] + assign swerv_io_dma_bus_clk_en = io_dma_bus_clk_en; // @[quasar_wrapper.scala 140:27] + assign swerv_io_dmi_reg_en = dmi_wrapper_reg_en; // @[quasar_wrapper.scala 79:23] + assign swerv_io_dmi_reg_addr = dmi_wrapper_reg_wr_addr; // @[quasar_wrapper.scala 78:25] + assign swerv_io_dmi_reg_wr_en = dmi_wrapper_reg_wr_en; // @[quasar_wrapper.scala 80:26] + assign swerv_io_dmi_reg_wdata = dmi_wrapper_reg_wr_data; // @[quasar_wrapper.scala 77:26] + assign swerv_io_extintsrc_req = io_extintsrc_req; // @[quasar_wrapper.scala 144:26] + assign swerv_io_timer_int = io_timer_int; // @[quasar_wrapper.scala 142:22] + assign swerv_io_soft_int = io_soft_int; // @[quasar_wrapper.scala 143:21] + assign swerv_io_scan_mode = io_scan_mode; // @[quasar_wrapper.scala 66:22] endmodule diff --git a/src/main/scala/dma_ctrl.scala b/src/main/scala/dma_ctrl.scala index 58a8952c..009aa782 100644 --- a/src/main/scala/dma_ctrl.scala +++ b/src/main/scala/dma_ctrl.scala @@ -508,7 +508,3 @@ class dma_ctrl extends Module with lib with RequireAsyncReset { io.ifu_dma.dma_mem_ctl.dma_mem_write := io.lsu_dma.dma_lsc_ctl.dma_mem_write io.ifu_dma.dma_mem_ctl.dma_mem_tag := io.lsu_dma.dma_mem_tag } - -object dma_main extends App { - println((new chisel3.stage.ChiselStage).emitVerilog(new dma_ctrl())) -} diff --git a/src/main/scala/lib/ahb_to_axi4.scala b/src/main/scala/lib/ahb_to_axi4.scala index 22f74d34..aeb918f8 100644 --- a/src/main/scala/lib/ahb_to_axi4.scala +++ b/src/main/scala/lib/ahb_to_axi4.scala @@ -227,6 +227,3 @@ class ahb_to_axi4 extends Module with lib with RequireAsyncReset { bus_clk := rvclkhdr(clock, io.bus_clk_en, io.scan_mode) } -object AHB_main extends App { - println("Generate Verilog") - println((new chisel3.stage.ChiselStage).emitVerilog(new ahb_to_axi4()))} \ No newline at end of file diff --git a/src/main/scala/lib/axi4_to_ahb.scala b/src/main/scala/lib/axi4_to_ahb.scala index 81f42ba3..0baaf047 100644 --- a/src/main/scala/lib/axi4_to_ahb.scala +++ b/src/main/scala/lib/axi4_to_ahb.scala @@ -405,8 +405,3 @@ class axi4_to_ahb extends Module with lib with RequireAsyncReset with Config { ahbm_addr_clk := rvclkhdr(clock, ahbm_addr_clken, io.scan_mode) ahbm_data_clk := rvclkhdr(clock, ahbm_data_clken, io.scan_mode) } - -object AXImain extends App { - println("Generate Verilog") - println((new chisel3.stage.ChiselStage).emitVerilog(new axi4_to_ahb())) -} \ No newline at end of file diff --git a/src/main/scala/lsu/lsu.scala b/src/main/scala/lsu/lsu.scala index debd9571..367287cc 100644 --- a/src/main/scala/lsu/lsu.scala +++ b/src/main/scala/lsu/lsu.scala @@ -318,7 +318,4 @@ class lsu extends Module with RequireAsyncReset with param with lib { withClock(clkdomain.io.lsu_c2_r_clk){lsu_raw_fwd_hi_r := RegNext(lsu_raw_fwd_hi_m,0.U)} withClock(clkdomain.io.lsu_c2_r_clk){lsu_raw_fwd_lo_r := RegNext(lsu_raw_fwd_lo_m,0.U)} -} -object lsu extends App { - println((new chisel3.stage.ChiselStage).emitVerilog(new lsu())) } \ No newline at end of file diff --git a/src/main/scala/lsu/lsu_bus_buffer.scala b/src/main/scala/lsu/lsu_bus_buffer.scala index 5c502283..821260cc 100644 --- a/src/main/scala/lsu/lsu_bus_buffer.scala +++ b/src/main/scala/lsu/lsu_bus_buffer.scala @@ -616,6 +616,3 @@ class lsu_bus_buffer extends Module with RequireAsyncReset with lib { io.lsu_busreq_r := withClock(io.lsu_c2_r_clk){RegNext(io.lsu_busreq_m & !io.flush_r & !io.ld_full_hit_m, false.B)} lsu_nonblock_load_valid_r := withClock(io.lsu_c2_r_clk){RegNext(io.dctl_busbuff.lsu_nonblock_load_valid_m, false.B)} } -object bus_buffer extends App { - println((new chisel3.stage.ChiselStage).emitVerilog(new lsu_bus_buffer())) -} \ No newline at end of file diff --git a/src/main/scala/pic_ctrl.scala b/src/main/scala/pic_ctrl.scala index 1da398f7..82803859 100644 --- a/src/main/scala/pic_ctrl.scala +++ b/src/main/scala/pic_ctrl.scala @@ -405,7 +405,3 @@ class pic_ctrl extends Module with RequireAsyncReset with lib { } } - -object pic_main extends App { - println((new chisel3.stage.ChiselStage).emitVerilog(new pic_ctrl())) -} \ No newline at end of file diff --git a/src/main/scala/quasar.scala b/src/main/scala/quasar.scala index 010b42d5..30caa25a 100644 --- a/src/main/scala/quasar.scala +++ b/src/main/scala/quasar.scala @@ -532,8 +532,5 @@ class quasar extends Module with RequireAsyncReset with lib { } io.dmi_reg_rdata := 0.U } -object QUASAR extends App { - println((new chisel3.stage.ChiselStage).emitVerilog(new quasar())) -} diff --git a/src/main/scala/quasar_wrapper.scala b/src/main/scala/quasar_wrapper.scala index e4272ce9..e774898b 100644 --- a/src/main/scala/quasar_wrapper.scala +++ b/src/main/scala/quasar_wrapper.scala @@ -96,11 +96,12 @@ class quasar_wrapper extends Module with lib with RequireAsyncReset { if(BUILD_AXI4) { - swerv.io.ahb <> 0.U.asTypeOf(swerv.io.ahb.in) - swerv.io.lsu_ahb <> 0.U.asTypeOf(swerv.io.lsu_ahb.in) - swerv.io.sb_ahb <> 0.U.asTypeOf(swerv.io.sb_ahb.in) - swerv.io.dma <> 0.U.asTypeOf(swerv.io.dma) - + swerv.io.ahb.in <> 0.U.asTypeOf(swerv.io.ahb.in) + swerv.io.lsu_ahb.in <> 0.U.asTypeOf(swerv.io.lsu_ahb.in) + swerv.io.sb_ahb.in <> 0.U.asTypeOf(swerv.io.sb_ahb.in) + swerv.io.dma.ahb.out <> 0.U.asTypeOf(swerv.io.dma.ahb.out) + swerv.io.dma.hsel := 0.U + swerv.io.dma.hreadyin := 0.U swerv.io.lsu_axi <> io.lsu_brg swerv.io.ifu_axi <> io.ifu_brg swerv.io.sb_axi <> io.sb_brg @@ -133,25 +134,6 @@ class quasar_wrapper extends Module with lib with RequireAsyncReset { swerv.io.mpc_debug_run_req := io.mpc_debug_run_req swerv.io.mpc_reset_run_req := io.mpc_reset_run_req - - //-------------------------- DMA AXI signals-------------------------- - // AXI Write Channels - swerv.io.dma_axi <> io.dma_brg - - // DMA Slave - //swerv.io.dma.hsel := io.dma.hsel - //swerv.io.dma.ahb.out <> io.dma.ahb.out - // swerv.io.dma_haddr := io.dma_haddr - // swerv.io.dma_hburst := io.dma_hburst - // swerv.io.dma_hmastlock := io.dma_hmastlock - // swerv.io.dma_hprot := io.dma_hprot - // swerv.io.dma_hsize := io.dma_hsize - // swerv.io.dma_htrans := io.dma_htrans - // swerv.io.dma_hwrite := io.dma_hwrite - // swerv.io.dma_hwdata := io.dma_hwdata - //swerv.io.dma.hreadyin := io.dma.hreadyin - - swerv.io.lsu_bus_clk_en := io.lsu_bus_clk_en swerv.io.ifu_bus_clk_en := io.ifu_bus_clk_en swerv.io.dbg_bus_clk_en := io.dbg_bus_clk_en @@ -180,15 +162,6 @@ class quasar_wrapper extends Module with lib with RequireAsyncReset { io.dec_tlu_perfcnt2 := swerv.io.dec_tlu_perfcnt2 io.dec_tlu_perfcnt3 := swerv.io.dec_tlu_perfcnt3 - - //-------------------------- LSU AXI signals-------------------------- - // AXI Write Channels - - // DMA Slave - // io.dma_hrdata := swerv.io.dma_hrdata - // io.dma_hreadyout := swerv.io.dma_hreadyout - // io.dma_hresp := swerv.io.dma_hresp - } object QUASAR_Wrp extends App { println((new chisel3.stage.ChiselStage).emitVerilog(new quasar_wrapper())) diff --git a/target/scala-2.12/classes/QUASAR_Wrp$.class b/target/scala-2.12/classes/QUASAR_Wrp$.class index ca73ac0969675809899dbbfe9610862cdf2b4886..f7bc6a515262d67dc1481965cf8504ac12efcec1 100644 GIT binary patch delta 99 zcmbO%H(74O4KBuIlW%g_0!ag2@yUAJo={dlw-u0eirWTAvhzUXB`3%6SOEFcd0fG& iBqx94u>`YX7?)4(<@IG<&Y;e)Z1R2H3ZQ5N-);b1nIORc delta 99 zcmbO%H(74O4KBumlW%g_0!ag2@yUAJo={dlw-u0eirWTAvhzUXB`3%6SOEFcd0fG& iBqx94u>`YX7!OVE<@IGf#GuY_aPocL3ZQ5N-);b#f+8RQ diff --git a/target/scala-2.12/classes/QUASAR_Wrp$delayedInit$body.class b/target/scala-2.12/classes/QUASAR_Wrp$delayedInit$body.class index 73b0e4fa1359bab729aa30abaa40fab52230941f..15ffaa879a209067f7d02dbb0a695e34e3abd7f1 100644 GIT binary patch delta 19 Zcmcb~dXsg74HM(C$+k=ZK(dd?8vsSk28jRw delta 19 Zcmcb~dXsg74HM(R$+k=ZK(dd?8vsXr2EPCR diff --git a/target/scala-2.12/classes/quasar_wrapper.class b/target/scala-2.12/classes/quasar_wrapper.class index 08c8f982f3a202f4c5fbd63ba265a22e47cc7fb9..0b02f293cd7a61dc8a1607c46e52a0e7803b1df8 100644 GIT binary patch literal 89237 zcmd^I2VfM()t=qEy^~HO=~Q9q0?~vhlIURIR1g9ckVG%XNjeo!Lxo~6*tqxJd+*)I zxZ~b?ckH+%wv#xv6FYHY2gm<=GrN0xr{UOW9hdyZdNcd(y>Gsmc{^KfX6~7P-}@jT zWU_mML=rZ22RZ{C{w*DW_V!?hn@AEFT-(^x8Enp**woq;>}U-%Pb>{K1ZuaHwbgYu z2i?RW5qEP_%|!Tf6GbAbZeJPP)ZNq(^mT4)t*s1p2D{wEEs@mlA|`a!2ATsB8B)qJ z6FY+S&B5BPiB+hsYHDZ=bai(GXGuh<+13^8l-zS&lG0Kq$?gQn=Ub8yCn@sS{7o5D zDv(o@fXm^`lO$J3fGQq`L(Wh$3M7X+Um6}rmwb+qNlRiupQq`kfj(m(*Q5P%O}`rT zLzsS3f)eX!>WZb9fNRjS2`eYprzyVVd|%>FMQ!R%ST(Crs+CBLdR24Mq7$f#5>7JZ)r>RPUCPN2b#i69>+$ca)blwyIh64e6Qvee%!^Ye!`^ z#>|(pGhzddj6x~F5nHll!hC7c$XID|vFyloOWQ_B&Y_))29!2TST(JFE$|HZrnLKf zNdcu?acpc!3iy`HYAeajcGu(&%2Ax)Ss{5!JhQiyuASLEH#a*uBQe%d*0eAqP?6wB zQwH{5ye7A5QF(T8Vu5o`Al6-yBn^`jO9m}y>p#1`cv*ta?8rNQJrX4 z$n8eRi8Gq}wXT@b*0d}Zx=$V*KPqVx+9`8(6ekoo7aDkIhj_zhm8Z!cD$3mBmw*;cnb69bM+jK5gdrlj&! zv(^_a8??1qoz^@zy~|xAPvGrVDJ8OYTRE$1ZbIF())jeeNrMBf;vAnMC&dNiRnuzb zda|dtt;lUzzH?jy)Yq@KOUjbcoxeQu6AHcaB&v zVcn!nixy6vRyJtXWT>B;)o%)w@(0eUsn|JUdduoKc`e588pRQ4OOX>dl2);_xbg7E{Dm=@kYMUL@HiYKm|yuN86#uxU3Q|kv`M#8$B z#<`W5Tc91c8*vlAWAwyTlQxtLpW*XrynRK}HUaPDWh-Yj&K*vR6V^@YTr?l}4Ac1d zVp{`H@9_h2H&^UTSy8cueGcP>q_ij`)KIC;Rs@ySZ;*ja|?c#|S&d}AvU*5Y6@>6GQtu}MiuC5qx0>RCBba&~NV4eDRE7LG@I#?EJc)xL~C zs$8mMEP-(|!!aJliPe*~23^jWi34V)D@wP+k?))2ShOJ{BSVc-l=#$ul-F7{DkEuA znJ-5Px0lr<9QX9=OOhN{HXF{**?@D1vsUUScZ^h%aw^=8_@eCoEo*Z+9jdw&%Gu&m zmgKYynpr=W#s4(9ACK?O2B>#JtVDA43v|)e_U5MArmljvmiDIRU`2aZQ(J3iX82)2 zbD*=+P2%Aa9o^4O5+#x%aF)n0-LpMVyD`uZ%&hNdYbj~%s%|T7f_sWUvzsJKBr(Fu zO;RP|jWm_W$PIzbfr-t5)&{sG+1$1s+fO2$G zH&G?x;`S0r((Yn1J2uxgZ)~jV$aIrI5{Weqfnvy{uD(7921DWQr(-ia2t&Y|p3Y7% z7|sy1L%73g3ARk+w?LVYb(4`2@q~14GFl=IIF?9y_>EF#W}vmLH8aOevLqrmwL#OA z>J66PjWvgxByVX53gJN&SJ%>{-_HTVQaGGwQsJFd=ayi{W{Jd<@)AMiscq{B`a3$i z{LOI3W|R}Ul>?jjLSMDdUshD+FD)rAf|_Y}aMj)I&B4iFup&$`yEN1n6*U{+9&c9P zG;;ttraI8zU*6VHClRRxx}{^Y*1#?7rWE3^G}KetN8ko_TF;8?w2!cAT94{hNhUPb z)nF5szo6RhD=e(^F8~IiqtXf}hkaIA>09Y9ELvQ>02&81#S6gLSGB;OBN3`As!CQt zkt1tFXHn&_IV5z%NZo(FD)r8^!pa%L!eYcT|Js&Mag7{SmVH7 z?yD|Y2A_kf%D=d>8XIrEZ)s^Yge{9TUqL}pRTXQSNdg_TYA?H7fi6#=117zErwDXY z1-fYvZf1T(<-YvVB48-c0!M)sSPHbjQ=kQ=0xfVAXo0Oj3w*=sTIQ=-6xp7ri)>HS zMYbpEBHI&nk?o1P$o52CWP73x_$3q;6qNb%edUY%`6bm=Fobdi%O~>u%IYHj@{&S4 zySRq+fu`XAMFj=ANgQ+HT>~M;j^>*^I0ipQc$pldd?_aaBsfN8QE^E{xlXCdS6FG} z*{RHd7!Qqnd|{c-pTBgzJ{WlTah1OWPFSiRV8mk?%(lu8r?f=+&G%JR!--p6R9U%n zakam)sIa86r~uB0_>ux&!Ga=xE;bTy^J>SYHcK$8aF7a9;8~nxw$NJ63{>S`?gLIK zx>=FWG~^kEsO2rDvs99Jq0#RtGM9l(KP(AEdO;b@`3bobiRaH=4=r4u#4;kjzpq>xV3!lS;}Vo+HNb zNF9zlkvbfAB6WEJ9gaJZb~x@t>TukN)ZsX8)`iCL-dY^TduwqV@2v%%0xd8VXmK3x zjez5LZ!M1FW-X4LIF3i^BHI(~BHI&nk?o1P$o52CWP746vOQ6U{7Nf)h5qUa|I(@= z|Kif6RlvnvTD3G6Mme|6z7N>qtsUH#v15kDK7ygxzr3Qd5JnB= zr=J?kjt>vauDYVySBe8S^c+GM$9gLyR2IPvUp1WZ+HF!S($>zQI4#ec!lNDWmZ&Z% zE2{LD78L`25nP6n@r@~e0LtVEwDI^crh9Al1UGA}Nu$4H<@Rth>)4tJUa4cuM%qof zm%IxPaGm%%c49|&YgbcCaAH+gM|Ul}mkl%*1e%+x;2F+MehXK@nzpvC&MtU&ERoa9 z45B=ynI8fGwyCwjtO;|h-qs$B{-K$^=Bg8%Mac)`Ll1eMe3a-Szk{b9c*EViO(L04 z>4Vh{oIfU?B*R#)umzEY~ z!n^dyqRh5X$`|CzSn@gf3$!JGw))`#Bp5@!f{Q|Xpd-){gokBpg-+I2t4%%1`>d`JG}A>WeyaM295cEWpl zUu|u$v$LtDIVh2-X8Z`(sHp!YKX}OJ@MK3Efx0@06q|u~MNKvT50E8UazN`yPPk2g zwrp&xD+ts!1|jl?NA^pv0Ed&r&3(Xpz=6xhF)yO!!L@%#70%Z!#feT~7@l2S`1su# zBPE2hg^x5Mkn4T&!yq2Fp$ndlb@!BTclca$hg@%W81EfjwHsrk{^4$**W4i2+YK%W zF}zgt9USfpA8Njk>+K7d4o6o@XN&}IO3d8?dd&@Tz1`sIq7{k0@Ycla3m7+SdzXD%M=+=P*o3(?_hgfGxzq$4BB3WX3F30Pv7G zL4#R=LqyQzg@OjN0tbkPuo6O{k|zw6Jcs}{-Y{$q*2YM;MRdIVWhOeZ~;?1 zVx&D0-l0gz6GqBpj1=@{W#1d_jUQ@}g4y0>PlgakX!6&#cf(-S+y#TxrWom=2#`?3 zpt%49A|alGz%vTRcq{@V6gQKFaWff$!_BVHc!_;F!aEd1XeVF*k&@ifUhA(5)^ss^NBh4bFhcQ))&dF;e6(XTJSGHcgZ}o7T`@8|aD}x( zC{m{gBXtVIT|!&v%!TiEV`L=)BowA-F5rP-Y69u(f(c)pF|sEDClsbrgkd@b;x3-! zV5l=Li4ho~C`D@l7Yw^L?F`08Z@d^J zB1Qv-Gb9`b&9sQctN;h%FqsccH60th~lIg-&zZyjMIPleEo zgvpDMF{Dh-J!qxFK-S%|kWgqxKEG{(U|?2gbo5kPGkKnuCE>up3h{7QXe6YT)EHeE{XhkI}!w zo&_dUo-Y^25tj^4X0hG6CCrxyv0Pfx+GQe^4@E$69>W+gM~5(t3W(gOTq>7gY4Ex- zA>0z~5(AyhZLJNQ`$A||ejG`8A(gA-Y6MvdrX9g{n3ynhOi4Ies2v#%Xb5<4QqUOS z#)Q~Lccbzuc{P>x>j;6YXpuZsqt(!WgWL2mLW735KUbjGGz~h9!3trAapM;#C z+`*=Dd%IJ)My|!e>VPeDT>`>{{Ndag)7uH&?uDB{F@r+I^md?fle_^-frmIZPT45% zl|ncfuRe`A8>=EzKklpztz=-UhS=(_Uo{R?ZkIP9)eeZ^nl5Nlc$w80=xmG@omzLx z?X?i;W+y1hLX)V>4canSQGO4_SyBww!i?0eavI%Hz9E0iM z-1G>oS`Cf5Wp>0#caWHNVPiBwI644AD^~}D>P`u@Y&cN(Q7DeJ${#Bqhm}7bD%!C* zxH;JBhgZ%`UEAOVX)Q(#z6yfd6&NqLp5;?|n?g-b;ZUbSgoS<1PNJkp6*!#1o90Y> z>9M({16nNzHFLGq*TahoI0+3U*q+P5&ttbQ9WV(js4*Nirli+-&EL$k$jXJ$YtBJT zW*cq9hP&`1Htz_(S><1V#;`2={?m!w3_a1YIm8EgVr-}<4#JGem&uo7>tDfIpt)0P z0Y^tCT!f+eng*(W4X^&SFj91EZV7a5gh_8Lfv#FOJ!VFYqwvZ^bUzHKhy@9DGc-LO z;gAP2rp$#vtqMZ5G9Xz99pH$yWJGaPzD2$j>wBB|f}mYu5^LL9>zf+j+a>rK!QZe& zA{#>$D`;-3-8joA%5=3gbb_vn_E`iqIIZ9z2P8a9!>JH}Qu2!c+$o?{GX#b=qDIh)U4mBpuh)&r_sRETvp)bGYqSY3mYq()+FE$L ztA#sXXn;CA*&(JwN(jG4_?h~sVGg%~%zQzpkD^6`;IoMFUn0AIB&g8YEGX5ezTh)F z(`Af)7uFq{!QB~zm*K%Wqd|DJp(B?FI#K``t+NI$ zlE3zV-QO4}pF$f6%C(vB{q}5f2!j5Tfof_qD3!nCaQ}jnk59tIJ76IW3=MpI?xC|S#M1(dAgxgtvZJXcJ~dY&txB*1fvD5>GOGD>QBu7Z*}o?Ajmkmsr>spq++ zlr-?%a!ML`ZY3p6Jhz&X4LrA&l8rp)r=*$Z0+h7yTrDN7JQt*-jprIDY3I2nN;dJ_ zMoKz(u7#3Lo@=9|i{~~`(#><7lx*g?Zc4WB+!ji<^4vB`w(;C{N)F|@!zkI#bGs1mw8!0)1=WeFtOrE=ylCya3c1q6XxjQL2hv)WCaxTx^P04vYcMm1!^W1%u zT)=Y=P;w#9Jw(YxJohjq7xUbslw87dk5h6f&pk=WWjyyZC71Kuvy@!HbI((9CC|M` z$yGe}G9_2@+^dva!*j1waxKrjNy&9Q_ckTh^W1MJxq;{2qvS@Od!Le2JKBMFgp8K4VJ9+L)O77yhzf!V?=f0+-hv)uI$=y8n z4@&m(+_#k6!*l|4cuF4SxkO4HeW>!!KZP4ldqYE5OOT2ri}PPJ}2 zjhkj2q+PXH_y38p*0$D=wbr#}thKK-W37d)8Eb89%~)$?YsOkTAFQKshW;dLy@#e2 z;}=aW#xI&$j9)ah7{6$0F@Dk1V*H}1)~=#)i!VsiSF7ax+oqYi7n0LvAUGIkTmH=WsAP{nkM=aGCLVzp$4!2O-IpFLIKi zp;HGnt!g}Y-Sx$e+%gJRc51SffZSAcr>HStru0AVcFmA2(&TVax{{3zxOVfP1*0V{>Ewo@^G7QfS2rHC zTw?*~LE%DowNYBov|RL{MdRX7Q|v^EUbGAkohW^c#(IQBIUTj7sGOzP4zFY3*E?}H z>vnoDh}%cE3a^N0d}oXILRV067XzF*st;(S1p_-n#NiA`oKvXC1GY!RCG3FgL$P;2 zVh6j*8S8L)7ag#uP+STJ31ihRhY|LmW)uCYWLo3Pp@idN}twEHV z&q&iKH=mKFQEomXO{3g=Mw&*s`HVD;^6+FfJ?O(zZ{sKrPrZ$!JUsO_*4kG%c$s2> zbB^-x)Eha4Oi7fmh3FPd76Uo^EC zzi1kzU3)DN=i|Z;ev0zh??7ohBVzK`jDnu;U$w@AVlLn8sV_d zSEX}1(S2Too#_r%bO}IfZ4Enz6kVH`QD|v9Hxv!Ky;i()Q&H=M7Q%BI(Vaxt`gm?8 zde^5fn~x4;tfr67$$U9HP+_4<-GNw#mf*Ag6b(y)mHM2SsPn@Y@N+xSmDpI<&rL)< zZd&et;FbvO0&rkX;hO_+yJYzKT%S>)%~_=+n~aBV&z-NsY$o_PV$(26#*zv6@mu`M z_sA{7D49qm;pe}BDG1=MZ5u{O4#`FJZz;(mlQH)Jez6`Zp3Rq@MdexYY?w3P{2eb{ zCszqmi8|_L0XgSu`0*z&2ViznYg5;p@F@_>sPhlbKYGXrCoH~C39YQIZtQ5=f|JJF z&Odv|VCSDaWEh$xu$|NDyIXNbw9Fjv#;F0LoPULx+r~$xEzxjpLt;do-Oj&xoPS3b zui?VBO+#ZBZveORpC0G8XfrNEN?-0>0z1{!25^JD>Ocpq!Y|rd8)W&n=ca+z*rFa)#F1)3I{Tp1dx3{i$r=U<#}BH-{umomcZ zeA5B@MYvH&5a)a*YE`hKDbU<>D2q~M41C8IiWF_biqb$!OK@)wf4|_-U+Zo zf$u%t+1A}r8*FN=Z<|=fvZYO}LANp^hCsmeGdGG>+Y+2b12H<=qs&wefdQ+jh3|Ta zn}3WlI|!<)si-nnndbpYK1-BJfSp?@fZ;`_AAZ)jl_HoeRoCX%wjhDYppk86#Myx> zj-`ZVq=lDY3ijYuSfv9?)mpn?=kEMKXOKrOoZrRD0uKak33Yz$guP5;WfAmYsn_{V zGURiq^B>OlP`enkOT5nal8FPfB!_EZ6$Xy%eB^`0bZi4k7`m0^Fa|0spr^w=ax1tQ zmuVzovveu>N?GGkRx4|vJz!8|n|tse3Y{0))+UNyS?^H>DFI5}#;sRmr4|rFX1uH1 z3QS#f@hFwZ3_=WsW`XWbK<)=M2o-5uaG)_aD$O3}ex(I2ReGmm z72QgkNrMBATiFByWoB&~ta@QLA~1tg_h18)an#qYhoQ1l>GCM;N;h1odDm{itJfz~ ziswytD3y|VZih$d06VE4KimZ!r?X)bgWbvzR2sxTJd#QoJa@FIQaBgVtsG0GQT(&x zsWgt~PNdQ#o;#UJQ+V!FSddeTleok04EQ8us+_Kzfn9qhm1c7Lv#B(f=gx)QqIvFo zAc@y&+#sQ&j!jrMhZdWhNtFwgi!ih6k2<8I}0DwT4JD^0*#5SS`g zbCheSw1nGS=TVMRx}p9$1DyO%l^eO;O;lRO?QVggMmGtzQsp)t>9Zqq}h_1tDJmFl_fUMdB-?tUt5;JF8>)W&oB;FgVFd>#qi(Uk>T%qQk!aL=PW z4wn+V+Y5c>R-S~esH?4QVXJ%FHU~Rk$y1OjPh-JPDbHXdJ_Dy(Q!k6>xy1`;@d9je z0~3YWvOuclG@RbJ+nub|~CxXJ*EgOMN3CL{xYepq1)XVL4*8(8L>Xa}={ z<4m8rm3N@QGGT+?&ddhb69KLVRCyQU{5Q&bxXKGRtEI~OaBB$&aN`N3=BT;D7%$z%&nzT7jMNsQK<~wS1W&}(iX1!0yo=*kp^#*n_6p| zyX%4zn`-?)4Cwwv`72s~g)m=1%Z3}cmA`wGZ;+g`iPabP*9w_Hb8?h_D&Hc?cZl*G zHndR;H*qW9dz61GFuSW-h8?VA7ol>2T!=ZC-HJn!?tzQKY8wNst-+gQ>+*P9F|Ih^qn|VS=FM(bJUAJ{l&;1Lw<|H$mEiKi z9?dX$wU~O(U!?|h%E}LixP}fL!f`O(V zMWsVo7`fn9&(YQmcjGvj+1wkTgx1b-jlYB%$eN;M~I~QmTfFBm|59d?q9RA?~TrvjB?3wFA{^=qrUC2KzqtazOR{{0LI$g;R zE2(r1&s9_DdY)T`mwhm~i65?{(rs+8b*-k-ty~A^FdsWzek$F?bpa~f%k65ZbPv}B zsq_#VPhAaEdXVdysPq`uZKTqpT-QRSr@3z%m7e0dO;mb;+jUaud9H&C=c`<|g-Wk* z-8L${#dX`M^d{FGMy2<-ZWoo_jj;7M5TnE?FPq+@Qr+?-;xSoE- zb#OiXE7zS$rN409=~ViL>)`77cdmo0=f8M8;OhAu*PRbf=WLX7T}Y)Lxb9-p7-8%P z;O}y~;F@V3U`(IEV?1$Pj^T6#m7N^sDhj{K0auOHu4||q%XQaL*~4`=P&t9?ZlZD` z*WE(p6t26C%Bfs;2bKGC-Ca~xxvq!GgSl=mm4|TMy;L5~b@x+w1lK)C<}7dKabGZ&hg5>+AC`wyny%#`m0)Tp(?crfOoEe; z6$Tmj4G{eZGI9iO zA3;XW0Sf#Gx!^8R>fKl})};BG$r z2)X3xTreZ!K0N$0As5^|g&!do+!2KzAs5`wgdJf<#@$Ky5pu!JM)(nO z!EHnM5puyDK==`I!L2;_5pux|IrtHB!L2p;5pu!pG58U3!96bc5puzuD%cTbWZZ6o zA0ZdqHG&@@7u@`TA0Zc92FH((3+~Fmk06thSqC?L{2fb>ze$1DPt(kgf!Z4k{Y^}; zj+?;~bLhcNdkBR0a{Rd*b`)Xzo^sQ|P!VqTQi+@?fQNTAjgh}dVdqth;0;e0<6iG& z$OrD_9``c$ibR)tCEVaQv)4){>eRj3U7bvvZrJ4@*7%_pA1Ax?rP`vOs$^ z-ofKr8hFoA-rZ6IJCJfsaw)vfY+eTIU-4K|dU?ec>${b9!h=!?+>ds!r+D1B)Wcuf z%!eNwfrW9Eyk(a)u}wpLt*vda{|o*K3EX$W^E2N~mSch{u?qJ~Eop5AF8KNbp3RvC z=#va06DRz+NDQp1NX9qZ@aioYUuCltURkpg-chp@-cYj?md6pvy$JgLM>gSrKMV0rlsXt zTA`(jwRDM=R%&ULmR4)&QY~GkrOUN+g_gqVDpn6zTg6gXS;bOVSH)6TRmDBs->_xiq!|!MzIuDMzIvuMX?lCMX?mtM6ncBM6vX6Ej>a@cWdd9 zT6&b09<8OvXz8(9dYqOXucaqw>4{o;l9ryVrKf1=sakrPmY%MqXK3k}T6&h2o~@LyknSlh%>SlPrEuCy0`L+a2VuS;=3I>mmQ>A>a2%QrWny>>f#3 zo_!nGJKXC*#u4dzlI$k$yCv!lfWie|Kfw^{t^qj=fED;rBbNj}CJCk)Qj7%O48kYb zpaoVAA8ZYLQA|>{PRDp@q7|E-V8ZISiq{fR#!K+fM zq*CpZN;62MMD}Dfl+SDyeCGAypjKQqv7mGoq1#uS~3xn%x&t3&KbpVvw2>jTC%)^AnPqXOQwm zBL!b1StV82mzF9CYpEiG)ck0q;A<+Yq)Pfisx*w$LW9(zXrxN5lPb4Qs=^?(I2tMV zD$Z(4RrQ5bSy)R|8>E&-BL(04StYfiFQm%DNUbzTt%^npzH78fYHeRgRfLgRXOQwo zBL!b>S|wG}7gCGENYxso>Y|Z?Z&$67YUm58C1Io*4N^_fNWmAqR!KGYg;Zr2sTPA& zYcx{uowHR^o9vV7Fi3SqBL!dKYNY-v4>PMx4K-To);MKIn>9|thZ*<^*=j@eY3y8U zA~i20sq>hP33cm5RO6vH&kZKGgb%H_a#Au{WvQFxhzL07PBXz1l>a=L2;9F{|Ep=vJ zNNorsb(TTu>}aIm+i|O;&g%=QjbWtDH%MI&jTC$-ZMDcO)zL`7gbAyp`V>=}!bn|fkh(4!DVV!q zl~kW%sw0fl4F;(jqmjDFI;lQgkPi(bb+bY0mT0743X9d2y1g%F-}W$4cNnDZj7AFP z&{!qa(-%@Z!bsh1klGuK6ini=O6tD8kUA`k)cppj2cnUJSwvPz?duDv!^22DY>;{+ z8Y!5@WR=w8eIa#37^x==Qcp%B1@ow^l6s~uq;`jqde$KITr^TJk;^Kn7yCl$=rB?* z8Khp0Mha$IkosFRQZS*@Dye_;h198Gr2c7;`ZgLV zm{Dq#)c(GZIxURU_XeqdM5Bjq+o z>0h>szSqVXx>iZW^@Y@VVWg-*Dn43E!4zSuq`ZA0b$%GBB!g6PG*U1}*(#~DzL2^g zj8wWos$VoxFiF}fsR4ZMI#0C)UA>l+ZR%og^|iKNR5j|3MR^1B{iWhq%IF5HPIk7DHIunH8sWO@!H2I15Y3+AGh) zxmvPmYL=T}Q*I#p~pi1Xu|T za-&v4Sm!m13+Ua_2y1j6his8sHAr(Xb&3(gf{9P3mfIi#y5#O&ydVM&6{Ga#wHX@J z;I)}mb-NgHrwzzmV#wV#Adi%f(kdPbs&NohCx|h72i4J7bJpd@K+XuNqoK=>VeN3@ z0ZKT{Y6&M9C7f(7;Up;GWLCoI;$}HZTtM&6V+H6V0>DB%oP7Y&=Zi6WHwz00)-30k zNkeGJ=dcnkkS~OZsW=8MhAE^@NMo`F4jR8#zEWI77Pm1@=NK8MK4Z(r$T;~K2f`Tn zQYg%!#q~w3O7RXb^n!_3zLXVw)d8w@ow(fIRl6F>;5{BzwX2P)T`%9D#Z;(jZi2s?S(WaT@6rnFB5wFcNJ17As5(_e zb?ucO6c@XITN*8zAn%bMVl_*UdtliG7Mmd7jm5IuUdUlTCCK+cPGPxwA?ISGRF}L5 z2=&0<-SD>;{_cUldl|uf;s||AOssc=K8)?5N9e;0@^SeIEq>Mj7i8n%b>1t#AcmdH zt&IA5+6x9h8)({BR>N5VJARs>tf6ov+RbCX=?G-Tz zOLcoyeoY)eZ;3&B2asN~7^7w}yk>d;nd$*`cw2s_*U308d+=WQeX9lHiN{aIiy_A& z7Eeq4Wc-a@Fr0+?2?+&%Ab$uQ8+j-6vG`sl?BWH^pNL!jk7CYNTAoZ1TukqhKNBN{ z@d;f_$#g-b?vg*ZR;e%KFSQmafCj}T^=92A|Mf}Y&bnLvJ7$p#pVIFjQrrRV7rnB6 zzxa*(4*}q}9B@AXe)}H+elP#KH=qN4y9F3J99efc;KyqI6NV0_L(!rybW=2LkNnx~ z0Mq+^xK}^IngnBQn1c^S+Cl}%;daDmXHp1y;2!yN>(HT_Ww!P~BJ)JO>+o3WUE&iu zQ)|xoLgxf)&ILkeuQlgFp>wh|=OUqVsx{~NLg#dA&c#CK{??oq2%QI5b1o4&53=UG zQ0P3wn)4!|^Dt}9r9$W7)||_P&Y9Mn%Z1LPtT|T*oyS;nUMzIZvgW)*=$viMxl-sn z!J2cG(0P(IXV{^p*JbxEN3J#Jr9$V))|{6Kou^uJUM_T=Zq0dx(0Qgc=aoX|+18v_ z37zLyb6zcUo@dQ@jnFyYn)6zrbD=fobwcO))|~x9=LOcB*9)B&T5}EvolC7b*9e`< ztvS~Uoflhkt`j;}T5}ExovW=m*9)DOS#xd>I#aGr37s3QIkyX)H&}DtBy?`J=G-B4ZnfszDRgeP z=G-N8?y%=zN?t=fj20Cs=bnLg;*wHRs(z=TodXA1QP`&6@L3 zLgzEAIUg-_KFgZ(F+%5atT`VmbUx3T^KnAw3#>UGFLb`hn)3-l=S!?PpD1*`%$oB_ zLgy>2IiD~5>E_A-hn)4Y#=Uc2fpDA>{&6@LB zLgzcIIiD?bzRQ~PIYQ?iYtH8io%dREK2PX;uQliMh0ga|bG|_6{Gc`G3x&@6tT|sK zbbiE|^Tk5v$E-PDB6NPjn)9VX=clYWUnX>Z#+vixLg(kKIbR`ke!-gal|tv2tT|sL zbbiH}^VLG<*Q_~TBXoYln)9_n=eMjmUng{a$C~r?Lg#m_Io}|3{;f6V8->mvSaZHf z==_m2=bMGjzqjUmi_rNKYtFX{o&R9X`8J{RpR76GE_D90HRn5o&R^j$T~6P8XJ&7G2}WMko987^)?_I#E>;MAREPybv7WI z#E|tiAUB918*M;t6hm&X0og2uY_=0og8w?6Lv5NesE! z24sgAa;puA6Y(Q=oL!Mv*a)%i5BpZ;2i6Kw10l8BQd72H#U1G>HY(O3^hCIs#xR59coHXu(EL*8Wr@^mp|j}6E( z#E^S!K%Oavyw?WgSz^fhZ9twahJ4TlfdzGDOODlz1{HXyGSL;ltVpC%7?Rq6d_WADU<2|&F{IZ9`WTp+sr^S$?Y(PFEh8$x9 z@>wxtmJP_~#E{uGAfFdQPOt&_f*5j=4agV8khwM>UlK!3wgLIF7;>r&$XCRW(``V$ zDu$fdcSw@$e69Chiq1D8w+xOE{g?w8>wHt-{C1@CT%q$s=Q{%DcO#wW37vDC?+KiH z?f2{xI_C*~z~V0Fhmj?p+1uIclV>?U>Q!=&^Y@X?f?vPz`k=Kx7C3)u!I>n>U&&u< z&OzA895<;RmbJ3<5x&22V%B|R#LBF@ouBQI|2po`Yl&;zqYvE`~Tb^*BE*9oM7O>{aT< zIUZ2zdz1~=lGw8B9;Nl6eMtL|DPE0db|!WyOy3-Q;n%EDORU{vd79VhRuJu(5eLB`? zbu`0zKpkzu8l#TsjkP2!HUSHUm$B+t=Khd6*5sb00=zzo=_QR*`DpjB8XE56W@f9} zfQK=x_e`ZX(bNKX7ChRcJkg^(3pw5v&*`R1y@O1qSV3<3qG9@yZn`Xzzh?TXVfvbG zy4*WLi29ac`nGPmB8=;A4FVrR?)RoTt@L_LkRKa%pF++!{a1MtOh$h&jQ+?Pd%Vhr z{LfVLm_I?C5Nd3l)oO352`JR>pEIC|>O|ISU#b&Ly*5dm#DVa{)PdH94Qoi7cfi*M zx4-G8>%v;%ABO3_4AcF(so$GqqW42qR*y^SaXHR++@yQCTsndS;%Q$6P0>c_!D% z>f~_O5Z!w3*r;@K^v16@k3z0oqwz=2oT5%)WlmP7n97{0P7Q^0h^r3Q5H>*K@W5iy zHG1YWbsB@4s!lV(O;@K!gKG>M7ea6|*|{=9oxvbyt20cHGu4?Ka**jQHuDJ%U zd+3M`xKpPGKRLp=5Q4e82CF&t2pgAg>1~}%L8Ep)U`Vga11~gZl z%Ye$&xh9}_>b%}S&Ebr$m2Wg^=VDks)yJ?Ft3DG}zM9_~tIeBi3f?6KPzD1kPzxAP zm0Dl|DpU)51GR^d3ISy@pdz)10WDRFOhEJ1`MrTQg*8(MXfy*VR*Ml0!YAcMY%?t&xNf$bky1XN!o=J1`(C-SXa;QV|1qI}ro`t%t7SMfw0*VC%6q^dz ze2{_IsKMs2whq;xR8YW7QvqA7)?kac1`5CQm8d1GGgql4rp{cbF65nQzVsbx22zYm zpKA?^ibd)o2DDCHWCAKxOF5AFc4m9n#n`wxbggGVWoj7%s!_{KK;>#V2Qohh?g#@i zuIjEj22`O|Fra$1!UVKfUEG_|VPQZaMvV+;iMoUVZBUn(fGX9>UW}5+;bDVkh*C2{ zs#2>MQma~JLaJ7)1xQDjFA_=!shuG$RhKfP4t1#sX_*Qmzy1WIog+zP_W^3x#gLY( z%Nf#Ub-4*?g}Oq(>1glJ&`@RKw3Q*PRN+A$uC<4%D@{nN)KvncW4uFzNIMwPYIQY3 z+NrKKA+1r@2#}6F0Mg+MX|1}JA?;SznvmA1>jX&0AE57!Vn}|~&ybE${U)UK>Usgv z2?szrjv)oq07E)K4VaK>)EWWOi3dPBi6PahwG8PLwbq1Gr`8FOPC5Y6X$&c-1{u;B zYS4sKuht8YP6-d{E+R2b^S36BeU22yA=}rUbg0S}INZo2T zL)xQun~*lEn*~UB8%P(K9~rdTZBe%{qNS8(4t3wnVrXI$S9#;=DA?;Lm z3Xq;OkS-S>?NWC!q^H$gCZxmF!v#ps8c0_Nkd9D~U`WraN0^XytGfkAFB(W!h9lih zeB=Z2CHcy^Um7fBOA{e2kgBESkRC0aBb^WF&C-L?!;pRnKLGA( zEs!1|pCO+O>7(*%@|({6j#$S4$6!cv9QlqSNIM-zIgW+&A;(LOS0Vk>@lVIUoco=5 z&O&D~q`RD_InRXjS?9aX_nrHde##gH@ReGnOW6YH70R7T52Vj4zg0eT?sq4;hq*^U zy29P$Zg%dE&5JFJ1)SK{*j=%^A^j-!>)3Cc`#m|Hd=HfGIm&ak=R8QC_x#oa{&DGX zqvNt5^~bfxbwYY$-2HJ6LHakU&=}`_dI&A2OCUXlo=Y!q?oX&ns7q*o^rD2D6K;d_ zXJIVpK~@<>QmCpRazL3(v^Px3vGewjj2 zpxsjrNhwbOUMa_>oR@MTq%Ws@l=882f9k;0>{RHt)L`o7)NPR7nz}FbQAoc{^Q6T) z_oo%4Ri{CJrk$L2N!sO*zM1xiw9lOT(=*a@)2BeXF?~n+F6Vy!GoRDa$x%O$ui$qq z;eTZie4XOl{{#G%t$qy3cDGXh1N;i6Q!~-cikW^W{6sHzMZNyn5AgH9k$QmYU@kLA zOoWT>rbBuJpX)XVeW1@xMbHC4=rDRw2~q5HTP*TmcBZ1e2Z7XKbqdKA>~$ZcV%6S6 zDb->TdNG{ZAte1j@C)}HO8WnYzPdkFu`j-+>JI2b(R%T`>IGy_A2GslhLRyRaC9te z61zA?^AwO_HYu5D{TNt4?Kn0v6p-OR0yQ(e9}CY!G4n^FXr}pNVggk@WEYT8KO$8# z-5(p*M0w1QOxaBPzkzK~pGva+3)FS`d{i1vvj0nE=;h!@^WQ83nv2~8NHfTU|6*0l z)%kCiV?@9_GU>luC3CfYin5?;SKz=by+U$-f~x7&g8ha|CD7q+^!t` z(zlUJ{RwNU*O<5Td@}tfE<3#Zg=FT>P`=Iqd;RAsUv|6Zusff5WcJV01mvxYzlL8{M$Z8M{1?zP=H~gO@PQ`c@6hIv#lMgyGB?vN ziIXXsDt|#uWp1ut8ZRTde5Cpp)@0^p`z3NSHQlmbVAGkK@0ZHYIAMKc#V@o8&CU2r z=4gt>Rlne-G&kojou{cu*Zjhp)ZDDU2Ck;2UH2S-WiOtRYYvOEb z>Y86sQ=6On*T&n_Fa-mO>b`gUn_r87c~A#yTIHHzveoax?;nx zxGT)v@oTRKbP0c{SVWqCyH2Nx<=M_=l_HHM%MZ8|0i{htoQE!NA)(>9d{L! z^2uVD+TbSXB!-M7b4dUu6Pyn#C|@S|QW`0cc925p6H+8ECiCTcNwI^F1&$4*#L+`a zox@0(vze4T_mT?5Nfs-M$r9xvQt5J$rLG*Z%(aFrcO6Ssxb7e;UGI=pt{=#1_X4uk zeL7j^zMuHrpOPB)SEM#(C8>+qM}o1VNqy`aq`@J z-0w*{9ZxpV&7^}qM7rXKk?!~-$maNu$d-fxa%jRyWP8HvWJlrSXPD)-xPDwtSoSOVTIW1)@IWuJ%IVw$z^FTlgrZwk}J}K!J_KE|ybE+6fi6jY6Lh}=U8?*r=zb5n6vtrDeGIyEhZ}UC zfG*8Z1iDW_*WWP_bbkO{KgY44`y=QEI5vUqPoPsBuY&F~&<%1t0J=YeZlL2|p!*zj zLmVH2?hDWjb{2!~OVAB-=78=mpd0Eu6LfzC-Eik&p!*7R8P4}X_ciD;olk@AZ=f5Y zV154%x={+&_Z!fSRJMTbAD|nf1VHys(2Z7lK=&=^vXsj}_Z{fQDj$OGU!coYo(0{0 z(2aAC0NwYXo8XQI-M>LM-rWqkA3!(By^LhI3Fs!q0%x}by4+ac?3O{76T2I94$w`G zZ3dkaba}DgfKCD3)YuO|=K|dn544}#4Z7(bXg_xh=%#tj16?fWW_osm&I7s`9^mJW z1Kn&7@N-kp&5FwcT|DUK#HE5R0d$ANb%HJtbo1iYg3b%Nxp5DHE(vt`ao2+`8FW4x z1G*H@6~=u9x>V2=&?TTt1KoT&3v}tAE20;Gt{>=cs~VQHt1F-VZV(B-MS>~w+WzIn{+zpCW3B#(ss~I0-ZnU zH=xS_T}{&CpvwhaAbBL{@<3OYoCvzfpsP)81KkwR)hDk6-Bi#8lkWlDG|)9BUkSSD zple8hbJaZqbQ_Z4Ty@U`T~i9S{VdQmr(oO92HnP#3qf}X=vq^b2HhOcwWNFuy1Afh zPk9k^^FY^@3S)`e2fB__6?FNa+myNubOoU6O05N5A?P|&9|c_z=r*U`47&NC>rRUY zT`}mkrv3wT3qZFe4aOmN3Fr<@gK@~c5OmwpE(hHr(CtV&5p<=X+n)9r=*mF1GwpTI zm4oiE^eLdL0Nvr~LqWF~bi2}bfo=)tcBeOit`c-d;Qq0EFJG_6UFELUwhvB$ZGk1c z?quETUP}mWL`z^Xbsb0u9Fjo1Bnh^kO(AJ;VTvXF$pA8tsAMp4ks;tX4AKlpM?jhh z=_oP=E?%)@9K%U+2O*V7th*l4IQZNHe{jZ7cLONOVd?kpLGhk435t48$y7!vqmB^LHLszcpDwQfjSLI$s9N<}|RJt2sv)&0%ohxu(UJ1AIm2l5pzLhSSCx1wY z4@EwT0u+TPicri)QH){%iV_qHQ7l4HilPifIf@Dti%~2=QHi1oMKy}0D3+mEj$#Fh zl_*xBSdC&0inS=#q41+vk0OAg21PB3Iut<^^(Y!pG@@uiu>r+K6wN4FP_&|$BDWIK zhPieWn^1J1=tR+lq8r6#6kAYiMX?RVp(wVa*n#3O6gyGuLUA~XBTyWJVmFE-Q5=Qh zXcWhyI1a_}C{93eB8rnxoQ&cW6sMv%4aMmw&OmV{inCChjp7^>=b|_d#rY^MKye|8 zi%?vQ;t~{>qPPsjGKD6t|+d4aMy! z?m%%Tin~zkLD7TaZWMb_+=Jp?6!)RHAH@SG9z^jFihU>^M)3%WM^QY6;&BvDpm-9+ zQz)KB@eByL1v~UvJbVtt^C(_G@gj_Bk@ zio;OsM6nCS;V5>aI19Eaj~6eplK5yeR;PDXJGic?XXhT?P-XP`I} z1^!~G6MtjWiN6Z!JQoH2@}?7iE7OU;Zt1)b#YHGCMsW#>OHo{g;&K#MptusnRVc1T zaSe)VQCx@OdK5RHxDmxoC~ih^3yND&+=k+I6nCJw69xX_l@ouX%89=!<-8jO{&JHO ze{0E!zmDX*55@f`9zgLRiic3_L-8<*M^HS9;xQDDqj&=I2Of8D3Vc}j^Z2?7oxZf#g!O~YMqVegNy9#sH%Qq1D0{KEBzbyma2RPt;A%7|1k0wa+CtyeLCnMyA P@*?7Hg8L8{%gFx$YLN^D literal 87491 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