From 76f0c4f9a9892a9eb857e65064c44dcae87b7389 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=8BLaraib=20Khan?= <​laraib.khan@lampromellon.com> Date: Wed, 2 Dec 2020 15:07:54 +0500 Subject: [PATCH] ahb to axi update --- ahb_to_axi4.fir | 128 +++++++++--------- ahb_to_axi4.v | 80 +++++------ src/main/scala/lib/ahb_to_axi4.scala | 6 +- target/scala-2.12/classes/lib/AHB_main$.class | Bin 3903 -> 3903 bytes .../lib/AHB_main$delayedInit$body.class | Bin 738 -> 738 bytes .../scala-2.12/classes/lib/ahb_to_axi4.class | Bin 110868 -> 110948 bytes 6 files changed, 107 insertions(+), 107 deletions(-) diff --git a/ahb_to_axi4.fir b/ahb_to_axi4.fir index bc7bd34b..9c822645 100644 --- a/ahb_to_axi4.fir +++ b/ahb_to_axi4.fir @@ -258,8 +258,8 @@ circuit ahb_to_axi4 : buf_state_en <= _T_21 @[ahb_to_axi4.scala 132:22] node _T_22 = eq(cmdbuf_full, UInt<1>("h00")) @[ahb_to_axi4.scala 133:25] node _T_23 = bits(io.ahb_htrans, 1, 0) @[ahb_to_axi4.scala 133:72] - node _T_24 = eq(_T_23, UInt<1>("h01")) @[ahb_to_axi4.scala 133:79] - node _T_25 = and(_T_24, io.ahb_hsel) @[ahb_to_axi4.scala 133:92] + node _T_24 = eq(_T_23, UInt<2>("h01")) @[ahb_to_axi4.scala 133:79] + node _T_25 = and(_T_24, io.ahb_hsel) @[ahb_to_axi4.scala 133:97] node _T_26 = or(io.ahb_hresp, _T_25) @[ahb_to_axi4.scala 133:55] node _T_27 = eq(_T_26, UInt<1>("h00")) @[ahb_to_axi4.scala 133:40] node _T_28 = and(_T_22, _T_27) @[ahb_to_axi4.scala 133:38] @@ -455,88 +455,88 @@ circuit ahb_to_axi4 : node _T_153 = eq(_T_152, UInt<1>("h00")) @[ahb_to_axi4.scala 189:50] node _T_154 = and(cmdbuf_vld, _T_153) @[ahb_to_axi4.scala 189:48] cmdbuf_full <= _T_154 @[ahb_to_axi4.scala 189:33] - node _T_155 = and(UInt<1>("h01"), cmdbuf_rst) @[ahb_to_axi4.scala 193:26] - node _T_156 = bits(cmdbuf_wr_en, 0, 0) @[ahb_to_axi4.scala 193:87] - reg _T_157 : UInt, bus_clk with : (reset => (reset, UInt<1>("h00"))) @[Reg.scala 27:20] - when _T_156 : @[Reg.scala 28:19] - _T_157 <= _T_155 @[Reg.scala 28:23] - skip @[Reg.scala 28:19] - cmdbuf_vld <= _T_157 @[ahb_to_axi4.scala 192:33] - node _T_158 = bits(cmdbuf_wr_en, 0, 0) @[ahb_to_axi4.scala 197:57] - reg _T_159 : UInt, bus_clk with : (reset => (reset, UInt<1>("h00"))) @[Reg.scala 27:20] - when _T_158 : @[Reg.scala 28:19] - _T_159 <= ahb_hwrite_q @[Reg.scala 28:23] - skip @[Reg.scala 28:19] - cmdbuf_write <= _T_159 @[ahb_to_axi4.scala 196:33] - node _T_160 = bits(cmdbuf_wr_en, 0, 0) @[ahb_to_axi4.scala 200:56] + node _T_155 = bits(cmdbuf_wr_en, 0, 0) @[ahb_to_axi4.scala 191:88] + node _T_156 = mux(_T_155, UInt<1>("h01"), cmdbuf_vld) @[ahb_to_axi4.scala 191:68] + node _T_157 = eq(cmdbuf_rst, UInt<1>("h00")) @[ahb_to_axi4.scala 191:112] + node _T_158 = and(_T_156, _T_157) @[ahb_to_axi4.scala 191:110] + reg _T_159 : UInt, bus_clk with : (reset => (reset, UInt<1>("h00"))) @[ahb_to_axi4.scala 191:63] + _T_159 <= _T_158 @[ahb_to_axi4.scala 191:63] + cmdbuf_vld <= _T_159 @[ahb_to_axi4.scala 191:33] + node _T_160 = bits(cmdbuf_wr_en, 0, 0) @[ahb_to_axi4.scala 195:57] reg _T_161 : UInt, bus_clk with : (reset => (reset, UInt<1>("h00"))) @[Reg.scala 27:20] when _T_160 : @[Reg.scala 28:19] - _T_161 <= ahb_hsize_q @[Reg.scala 28:23] + _T_161 <= ahb_hwrite_q @[Reg.scala 28:23] skip @[Reg.scala 28:19] - cmdbuf_size <= _T_161 @[ahb_to_axi4.scala 199:33] - node _T_162 = bits(cmdbuf_wr_en, 0, 0) @[ahb_to_axi4.scala 203:57] + cmdbuf_write <= _T_161 @[ahb_to_axi4.scala 194:33] + node _T_162 = bits(cmdbuf_wr_en, 0, 0) @[ahb_to_axi4.scala 198:56] reg _T_163 : UInt, bus_clk with : (reset => (reset, UInt<1>("h00"))) @[Reg.scala 27:20] when _T_162 : @[Reg.scala 28:19] - _T_163 <= master_wstrb @[Reg.scala 28:23] + _T_163 <= ahb_hsize_q @[Reg.scala 28:23] skip @[Reg.scala 28:19] - cmdbuf_wstrb <= _T_163 @[ahb_to_axi4.scala 202:33] - node _T_164 = bits(cmdbuf_wr_en, 0, 0) @[ahb_to_axi4.scala 206:59] + cmdbuf_size <= _T_163 @[ahb_to_axi4.scala 197:33] + node _T_164 = bits(cmdbuf_wr_en, 0, 0) @[ahb_to_axi4.scala 201:57] + reg _T_165 : UInt, bus_clk with : (reset => (reset, UInt<1>("h00"))) @[Reg.scala 27:20] + when _T_164 : @[Reg.scala 28:19] + _T_165 <= master_wstrb @[Reg.scala 28:23] + skip @[Reg.scala 28:19] + cmdbuf_wstrb <= _T_165 @[ahb_to_axi4.scala 200:33] + node _T_166 = bits(cmdbuf_wr_en, 0, 0) @[ahb_to_axi4.scala 204:59] inst rvclkhdr_3 of rvclkhdr_3 @[el2_lib.scala 508:23] rvclkhdr_3.clock <= clock rvclkhdr_3.reset <= reset rvclkhdr_3.io.clk <= bus_clk @[el2_lib.scala 510:18] - rvclkhdr_3.io.en <= _T_164 @[el2_lib.scala 511:17] + rvclkhdr_3.io.en <= _T_166 @[el2_lib.scala 511:17] rvclkhdr_3.io.scan_mode <= io.scan_mode @[el2_lib.scala 512:24] - reg _T_165 : UInt, rvclkhdr_3.io.l1clk with : (reset => (reset, UInt<1>("h00"))) @[el2_lib.scala 514:16] - _T_165 <= ahb_haddr_q @[el2_lib.scala 514:16] - cmdbuf_addr <= _T_165 @[ahb_to_axi4.scala 206:17] - node _T_166 = bits(cmdbuf_wr_en, 0, 0) @[ahb_to_axi4.scala 207:62] + reg _T_167 : UInt, rvclkhdr_3.io.l1clk with : (reset => (reset, UInt<1>("h00"))) @[el2_lib.scala 514:16] + _T_167 <= ahb_haddr_q @[el2_lib.scala 514:16] + cmdbuf_addr <= _T_167 @[ahb_to_axi4.scala 204:17] + node _T_168 = bits(cmdbuf_wr_en, 0, 0) @[ahb_to_axi4.scala 205:62] inst rvclkhdr_4 of rvclkhdr_4 @[el2_lib.scala 508:23] rvclkhdr_4.clock <= clock rvclkhdr_4.reset <= reset rvclkhdr_4.io.clk <= bus_clk @[el2_lib.scala 510:18] - rvclkhdr_4.io.en <= _T_166 @[el2_lib.scala 511:17] + rvclkhdr_4.io.en <= _T_168 @[el2_lib.scala 511:17] rvclkhdr_4.io.scan_mode <= io.scan_mode @[el2_lib.scala 512:24] - reg _T_167 : UInt, rvclkhdr_4.io.l1clk with : (reset => (reset, UInt<1>("h00"))) @[el2_lib.scala 514:16] - _T_167 <= io.ahb_hwdata @[el2_lib.scala 514:16] - cmdbuf_wdata <= _T_167 @[ahb_to_axi4.scala 207:18] - node _T_168 = and(cmdbuf_vld, cmdbuf_write) @[ahb_to_axi4.scala 210:43] - io.axi_awvalid <= _T_168 @[ahb_to_axi4.scala 210:29] - io.axi_awid <= UInt<1>("h00") @[ahb_to_axi4.scala 211:29] - io.axi_awaddr <= cmdbuf_addr @[ahb_to_axi4.scala 212:29] - node _T_169 = bits(cmdbuf_size, 1, 0) @[ahb_to_axi4.scala 213:55] - node _T_170 = cat(UInt<1>("h00"), _T_169) @[Cat.scala 29:58] - io.axi_awsize <= _T_170 @[ahb_to_axi4.scala 213:29] - node _T_171 = mux(UInt<1>("h00"), UInt<3>("h07"), UInt<3>("h00")) @[Bitwise.scala 72:12] - io.axi_awprot <= _T_171 @[ahb_to_axi4.scala 214:29] - node _T_172 = mux(UInt<1>("h00"), UInt<8>("h0ff"), UInt<8>("h00")) @[Bitwise.scala 72:12] - io.axi_awlen <= _T_172 @[ahb_to_axi4.scala 215:29] - io.axi_awburst <= UInt<1>("h01") @[ahb_to_axi4.scala 216:29] - node _T_173 = and(cmdbuf_vld, cmdbuf_write) @[ahb_to_axi4.scala 218:43] - io.axi_wvalid <= _T_173 @[ahb_to_axi4.scala 218:29] - io.axi_wdata <= cmdbuf_wdata @[ahb_to_axi4.scala 219:29] - io.axi_wstrb <= cmdbuf_wstrb @[ahb_to_axi4.scala 220:29] - io.axi_wlast <= UInt<1>("h01") @[ahb_to_axi4.scala 221:29] - io.axi_bready <= UInt<1>("h01") @[ahb_to_axi4.scala 223:29] - node _T_174 = eq(cmdbuf_write, UInt<1>("h00")) @[ahb_to_axi4.scala 225:45] - node _T_175 = and(cmdbuf_vld, _T_174) @[ahb_to_axi4.scala 225:43] - io.axi_arvalid <= _T_175 @[ahb_to_axi4.scala 225:29] - io.axi_arid <= UInt<1>("h00") @[ahb_to_axi4.scala 226:29] - io.axi_araddr <= cmdbuf_addr @[ahb_to_axi4.scala 227:29] - node _T_176 = bits(cmdbuf_size, 1, 0) @[ahb_to_axi4.scala 228:55] - node _T_177 = cat(UInt<1>("h00"), _T_176) @[Cat.scala 29:58] - io.axi_arsize <= _T_177 @[ahb_to_axi4.scala 228:29] - node _T_178 = mux(UInt<1>("h00"), UInt<3>("h07"), UInt<3>("h00")) @[Bitwise.scala 72:12] - io.axi_arprot <= _T_178 @[ahb_to_axi4.scala 229:29] - node _T_179 = mux(UInt<1>("h00"), UInt<8>("h0ff"), UInt<8>("h00")) @[Bitwise.scala 72:12] - io.axi_arlen <= _T_179 @[ahb_to_axi4.scala 230:29] - io.axi_arburst <= UInt<1>("h01") @[ahb_to_axi4.scala 231:29] - io.axi_rready <= UInt<1>("h01") @[ahb_to_axi4.scala 233:29] + reg _T_169 : UInt, rvclkhdr_4.io.l1clk with : (reset => (reset, UInt<1>("h00"))) @[el2_lib.scala 514:16] + _T_169 <= io.ahb_hwdata @[el2_lib.scala 514:16] + cmdbuf_wdata <= _T_169 @[ahb_to_axi4.scala 205:18] + node _T_170 = and(cmdbuf_vld, cmdbuf_write) @[ahb_to_axi4.scala 208:43] + io.axi_awvalid <= _T_170 @[ahb_to_axi4.scala 208:29] + io.axi_awid <= UInt<1>("h00") @[ahb_to_axi4.scala 209:29] + io.axi_awaddr <= cmdbuf_addr @[ahb_to_axi4.scala 210:29] + node _T_171 = bits(cmdbuf_size, 1, 0) @[ahb_to_axi4.scala 211:55] + node _T_172 = cat(UInt<1>("h00"), _T_171) @[Cat.scala 29:58] + io.axi_awsize <= _T_172 @[ahb_to_axi4.scala 211:29] + node _T_173 = mux(UInt<1>("h00"), UInt<3>("h07"), UInt<3>("h00")) @[Bitwise.scala 72:12] + io.axi_awprot <= _T_173 @[ahb_to_axi4.scala 212:29] + node _T_174 = mux(UInt<1>("h00"), UInt<8>("h0ff"), UInt<8>("h00")) @[Bitwise.scala 72:12] + io.axi_awlen <= _T_174 @[ahb_to_axi4.scala 213:29] + io.axi_awburst <= UInt<1>("h01") @[ahb_to_axi4.scala 214:29] + node _T_175 = and(cmdbuf_vld, cmdbuf_write) @[ahb_to_axi4.scala 216:43] + io.axi_wvalid <= _T_175 @[ahb_to_axi4.scala 216:29] + io.axi_wdata <= cmdbuf_wdata @[ahb_to_axi4.scala 217:29] + io.axi_wstrb <= cmdbuf_wstrb @[ahb_to_axi4.scala 218:29] + io.axi_wlast <= UInt<1>("h01") @[ahb_to_axi4.scala 219:29] + io.axi_bready <= UInt<1>("h01") @[ahb_to_axi4.scala 221:29] + node _T_176 = eq(cmdbuf_write, UInt<1>("h00")) @[ahb_to_axi4.scala 223:45] + node _T_177 = and(cmdbuf_vld, _T_176) @[ahb_to_axi4.scala 223:43] + io.axi_arvalid <= _T_177 @[ahb_to_axi4.scala 223:29] + io.axi_arid <= UInt<1>("h00") @[ahb_to_axi4.scala 224:29] + io.axi_araddr <= cmdbuf_addr @[ahb_to_axi4.scala 225:29] + node _T_178 = bits(cmdbuf_size, 1, 0) @[ahb_to_axi4.scala 226:55] + node _T_179 = cat(UInt<1>("h00"), _T_178) @[Cat.scala 29:58] + io.axi_arsize <= _T_179 @[ahb_to_axi4.scala 226:29] + node _T_180 = mux(UInt<1>("h00"), UInt<3>("h07"), UInt<3>("h00")) @[Bitwise.scala 72:12] + io.axi_arprot <= _T_180 @[ahb_to_axi4.scala 227:29] + node _T_181 = mux(UInt<1>("h00"), UInt<8>("h0ff"), UInt<8>("h00")) @[Bitwise.scala 72:12] + io.axi_arlen <= _T_181 @[ahb_to_axi4.scala 228:29] + io.axi_arburst <= UInt<1>("h01") @[ahb_to_axi4.scala 229:29] + io.axi_rready <= UInt<1>("h01") @[ahb_to_axi4.scala 231:29] inst rvclkhdr_5 of rvclkhdr_5 @[el2_lib.scala 483:22] rvclkhdr_5.clock <= clock rvclkhdr_5.reset <= reset rvclkhdr_5.io.clk <= clock @[el2_lib.scala 484:17] rvclkhdr_5.io.en <= io.bus_clk_en @[el2_lib.scala 485:16] rvclkhdr_5.io.scan_mode <= io.scan_mode @[el2_lib.scala 486:23] - bus_clk <= rvclkhdr_5.io.l1clk @[ahb_to_axi4.scala 236:29] + bus_clk <= rvclkhdr_5.io.l1clk @[ahb_to_axi4.scala 234:29] diff --git a/ahb_to_axi4.v b/ahb_to_axi4.v index 98da5647..5fdbf1eb 100644 --- a/ahb_to_axi4.v +++ b/ahb_to_axi4.v @@ -120,8 +120,8 @@ module ahb_to_axi4( wire _T_14 = io_ahb_hresp | _T_13; // @[ahb_to_axi4.scala 131:43] wire _T_15 = ~io_ahb_hsel; // @[ahb_to_axi4.scala 131:80] wire _T_16 = _T_14 | _T_15; // @[ahb_to_axi4.scala 131:78] - wire bus_clk = rvclkhdr_5_io_l1clk; // @[ahb_to_axi4.scala 98:35 ahb_to_axi4.scala 236:29] - reg cmdbuf_vld; // @[Reg.scala 27:20] + wire bus_clk = rvclkhdr_5_io_l1clk; // @[ahb_to_axi4.scala 98:35 ahb_to_axi4.scala 234:29] + reg cmdbuf_vld; // @[ahb_to_axi4.scala 191:63] wire _T_150 = io_axi_awvalid & io_axi_awready; // @[ahb_to_axi4.scala 189:68] wire _T_151 = io_axi_arvalid & io_axi_arready; // @[ahb_to_axi4.scala 189:104] wire _T_152 = _T_150 | _T_151; // @[ahb_to_axi4.scala 189:86] @@ -130,7 +130,7 @@ module ahb_to_axi4( wire _T_20 = ~cmdbuf_full; // @[ahb_to_axi4.scala 132:26] wire _T_21 = _T_20 | io_ahb_hresp; // @[ahb_to_axi4.scala 132:39] wire _T_24 = io_ahb_htrans == 2'h1; // @[ahb_to_axi4.scala 133:79] - wire _T_25 = _T_24 & io_ahb_hsel; // @[ahb_to_axi4.scala 133:92] + wire _T_25 = _T_24 & io_ahb_hsel; // @[ahb_to_axi4.scala 133:97] wire _T_26 = io_ahb_hresp | _T_25; // @[ahb_to_axi4.scala 133:55] wire _T_27 = ~_T_26; // @[ahb_to_axi4.scala 133:40] wire _T_28 = _T_20 & _T_27; // @[ahb_to_axi4.scala 133:38] @@ -163,21 +163,21 @@ module ahb_to_axi4( wire _T_52 = ahb_hsize_q == 3'h1; // @[ahb_to_axi4.scala 150:62] wire [7:0] _T_54 = _T_52 ? 8'hff : 8'h0; // @[Bitwise.scala 72:12] wire [8:0] _T_56 = 9'h3 << ahb_haddr_q[2:0]; // @[ahb_to_axi4.scala 150:80] - wire [8:0] _GEN_24 = {{1'd0}, _T_54}; // @[ahb_to_axi4.scala 150:72] - wire [8:0] _T_57 = _GEN_24 & _T_56; // @[ahb_to_axi4.scala 150:72] - wire [8:0] _GEN_25 = {{1'd0}, _T_50}; // @[ahb_to_axi4.scala 149:111] - wire [8:0] _T_58 = _GEN_25 | _T_57; // @[ahb_to_axi4.scala 149:111] + wire [8:0] _GEN_23 = {{1'd0}, _T_54}; // @[ahb_to_axi4.scala 150:72] + wire [8:0] _T_57 = _GEN_23 & _T_56; // @[ahb_to_axi4.scala 150:72] + wire [8:0] _GEN_24 = {{1'd0}, _T_50}; // @[ahb_to_axi4.scala 149:111] + wire [8:0] _T_58 = _GEN_24 | _T_57; // @[ahb_to_axi4.scala 149:111] wire _T_60 = ahb_hsize_q == 3'h2; // @[ahb_to_axi4.scala 151:62] wire [7:0] _T_62 = _T_60 ? 8'hff : 8'h0; // @[Bitwise.scala 72:12] wire [10:0] _T_64 = 11'hf << ahb_haddr_q[2:0]; // @[ahb_to_axi4.scala 151:80] - wire [10:0] _GEN_26 = {{3'd0}, _T_62}; // @[ahb_to_axi4.scala 151:72] - wire [10:0] _T_65 = _GEN_26 & _T_64; // @[ahb_to_axi4.scala 151:72] - wire [10:0] _GEN_27 = {{2'd0}, _T_58}; // @[ahb_to_axi4.scala 150:111] - wire [10:0] _T_66 = _GEN_27 | _T_65; // @[ahb_to_axi4.scala 150:111] + wire [10:0] _GEN_25 = {{3'd0}, _T_62}; // @[ahb_to_axi4.scala 151:72] + wire [10:0] _T_65 = _GEN_25 & _T_64; // @[ahb_to_axi4.scala 151:72] + wire [10:0] _GEN_26 = {{2'd0}, _T_58}; // @[ahb_to_axi4.scala 150:111] + wire [10:0] _T_66 = _GEN_26 | _T_65; // @[ahb_to_axi4.scala 150:111] wire _T_68 = ahb_hsize_q == 3'h3; // @[ahb_to_axi4.scala 152:62] wire [7:0] _T_70 = _T_68 ? 8'hff : 8'h0; // @[Bitwise.scala 72:12] - wire [10:0] _GEN_28 = {{3'd0}, _T_70}; // @[ahb_to_axi4.scala 151:111] - wire [10:0] _T_72 = _T_66 | _GEN_28; // @[ahb_to_axi4.scala 151:111] + wire [10:0] _GEN_27 = {{3'd0}, _T_70}; // @[ahb_to_axi4.scala 151:111] + wire [10:0] _T_72 = _T_66 | _GEN_27; // @[ahb_to_axi4.scala 151:111] reg ahb_hready_q; // @[ahb_to_axi4.scala 174:62] wire _T_73 = ~ahb_hready_q; // @[ahb_to_axi4.scala 155:68] reg ahb_hresp_q; // @[ahb_to_axi4.scala 173:62] @@ -222,12 +222,14 @@ module ahb_to_axi4( wire _T_146 = _T_152 & _T_145; // @[ahb_to_axi4.scala 188:109] wire _T_148 = io_ahb_hresp & _T_37; // @[ahb_to_axi4.scala 188:142] wire cmdbuf_rst = _T_146 | _T_148; // @[ahb_to_axi4.scala 188:126] - reg [2:0] _T_161; // @[Reg.scala 27:20] + wire _T_156 = cmdbuf_wr_en | cmdbuf_vld; // @[ahb_to_axi4.scala 191:68] + wire _T_157 = ~cmdbuf_rst; // @[ahb_to_axi4.scala 191:112] + reg [2:0] _T_163; // @[Reg.scala 27:20] reg [7:0] cmdbuf_wstrb; // @[Reg.scala 27:20] wire [7:0] master_wstrb = _T_72[7:0]; // @[ahb_to_axi4.scala 149:33] reg [31:0] cmdbuf_addr; // @[el2_lib.scala 514:16] reg [63:0] cmdbuf_wdata; // @[el2_lib.scala 514:16] - wire [1:0] cmdbuf_size = _T_161[1:0]; // @[ahb_to_axi4.scala 199:33] + wire [1:0] cmdbuf_size = _T_163[1:0]; // @[ahb_to_axi4.scala 197:33] rvclkhdr rvclkhdr ( // @[el2_lib.scala 483:22] .io_l1clk(rvclkhdr_io_l1clk), .io_clk(rvclkhdr_io_clk), @@ -264,24 +266,24 @@ module ahb_to_axi4( .io_en(rvclkhdr_5_io_en), .io_scan_mode(rvclkhdr_5_io_scan_mode) ); - assign io_axi_awvalid = cmdbuf_vld & cmdbuf_write; // @[ahb_to_axi4.scala 210:29] - assign io_axi_awaddr = cmdbuf_addr; // @[ahb_to_axi4.scala 212:29] - assign io_axi_awsize = {1'h0,cmdbuf_size}; // @[ahb_to_axi4.scala 213:29] - assign io_axi_awprot = 3'h0; // @[ahb_to_axi4.scala 214:29] - assign io_axi_awlen = 8'h0; // @[ahb_to_axi4.scala 215:29] - assign io_axi_awburst = 2'h1; // @[ahb_to_axi4.scala 216:29] - assign io_axi_wvalid = cmdbuf_vld & cmdbuf_write; // @[ahb_to_axi4.scala 218:29] - assign io_axi_wdata = cmdbuf_wdata; // @[ahb_to_axi4.scala 219:29] - assign io_axi_wstrb = cmdbuf_wstrb; // @[ahb_to_axi4.scala 220:29] - assign io_axi_wlast = 1'h1; // @[ahb_to_axi4.scala 221:29] - assign io_axi_bready = 1'h1; // @[ahb_to_axi4.scala 223:29] - assign io_axi_arvalid = cmdbuf_vld & _T_37; // @[ahb_to_axi4.scala 225:29] - assign io_axi_araddr = cmdbuf_addr; // @[ahb_to_axi4.scala 227:29] - assign io_axi_arsize = {1'h0,cmdbuf_size}; // @[ahb_to_axi4.scala 228:29] - assign io_axi_arprot = 3'h0; // @[ahb_to_axi4.scala 229:29] - assign io_axi_arlen = 8'h0; // @[ahb_to_axi4.scala 230:29] - assign io_axi_arburst = 2'h1; // @[ahb_to_axi4.scala 231:29] - assign io_axi_rready = 1'h1; // @[ahb_to_axi4.scala 233:29] + assign io_axi_awvalid = cmdbuf_vld & cmdbuf_write; // @[ahb_to_axi4.scala 208:29] + assign io_axi_awaddr = cmdbuf_addr; // @[ahb_to_axi4.scala 210:29] + assign io_axi_awsize = {1'h0,cmdbuf_size}; // @[ahb_to_axi4.scala 211:29] + assign io_axi_awprot = 3'h0; // @[ahb_to_axi4.scala 212:29] + assign io_axi_awlen = 8'h0; // @[ahb_to_axi4.scala 213:29] + assign io_axi_awburst = 2'h1; // @[ahb_to_axi4.scala 214:29] + assign io_axi_wvalid = cmdbuf_vld & cmdbuf_write; // @[ahb_to_axi4.scala 216:29] + assign io_axi_wdata = cmdbuf_wdata; // @[ahb_to_axi4.scala 217:29] + assign io_axi_wstrb = cmdbuf_wstrb; // @[ahb_to_axi4.scala 218:29] + assign io_axi_wlast = 1'h1; // @[ahb_to_axi4.scala 219:29] + assign io_axi_bready = 1'h1; // @[ahb_to_axi4.scala 221:29] + assign io_axi_arvalid = cmdbuf_vld & _T_37; // @[ahb_to_axi4.scala 223:29] + assign io_axi_araddr = cmdbuf_addr; // @[ahb_to_axi4.scala 225:29] + assign io_axi_arsize = {1'h0,cmdbuf_size}; // @[ahb_to_axi4.scala 226:29] + assign io_axi_arprot = 3'h0; // @[ahb_to_axi4.scala 227:29] + assign io_axi_arlen = 8'h0; // @[ahb_to_axi4.scala 228:29] + assign io_axi_arburst = 2'h1; // @[ahb_to_axi4.scala 229:29] + assign io_axi_rready = 1'h1; // @[ahb_to_axi4.scala 231:29] assign io_ahb_hrdata = buf_rdata; // @[ahb_to_axi4.scala 158:33] assign io_ahb_hreadyout = io_ahb_hresp ? _T_74 : _T_84; // @[ahb_to_axi4.scala 155:33] assign io_ahb_hresp = _T_126 | _T_74; // @[ahb_to_axi4.scala 159:33] @@ -361,7 +363,7 @@ initial begin _RAND_10 = {1{`RANDOM}}; ahb_hwrite_q = _RAND_10[0:0]; _RAND_11 = {1{`RANDOM}}; - _T_161 = _RAND_11[2:0]; + _T_163 = _RAND_11[2:0]; _RAND_12 = {1{`RANDOM}}; cmdbuf_wstrb = _RAND_12[7:0]; _RAND_13 = {1{`RANDOM}}; @@ -403,7 +405,7 @@ initial begin ahb_hwrite_q = 1'h0; end if (reset) begin - _T_161 = 3'h0; + _T_163 = 3'h0; end if (reset) begin cmdbuf_wstrb = 8'h0; @@ -459,8 +461,8 @@ end // initial always @(posedge bus_clk or posedge reset) begin if (reset) begin cmdbuf_vld <= 1'h0; - end else if (cmdbuf_wr_en) begin - cmdbuf_vld <= cmdbuf_rst; + end else begin + cmdbuf_vld <= _T_156 & _T_157; end end always @(posedge bus_clk or posedge reset) begin @@ -527,9 +529,9 @@ end // initial end always @(posedge bus_clk or posedge reset) begin if (reset) begin - _T_161 <= 3'h0; + _T_163 <= 3'h0; end else if (cmdbuf_wr_en) begin - _T_161 <= ahb_hsize_q; + _T_163 <= ahb_hsize_q; end end always @(posedge bus_clk or posedge reset) begin diff --git a/src/main/scala/lib/ahb_to_axi4.scala b/src/main/scala/lib/ahb_to_axi4.scala index 95ed880f..dbae8bfa 100644 --- a/src/main/scala/lib/ahb_to_axi4.scala +++ b/src/main/scala/lib/ahb_to_axi4.scala @@ -130,7 +130,7 @@ class ahb_to_axi4 extends Module with el2_lib with RequireAsyncReset { is(wr) { // Write command recieved last cycle buf_nxtstate := Mux((io.ahb_hresp | (io.ahb_htrans(1, 0) === "b0".U) | !io.ahb_hsel).asBool, idle, Mux(io.ahb_hwrite, wr, rd)) buf_state_en := (!cmdbuf_full | io.ahb_hresp) - cmdbuf_wr_en := !cmdbuf_full & !(io.ahb_hresp | ((io.ahb_htrans(1, 0) === "b01".U) & io.ahb_hsel)) // Dont send command to the buffer in case of an error or when the master is not ready with the data now. + cmdbuf_wr_en := !cmdbuf_full & !(io.ahb_hresp | ((io.ahb_htrans(1, 0) === "b01".U(2.W)) & io.ahb_hsel)) // Dont send command to the buffer in case of an error or when the master is not ready with the data now. } is(rd) { // Read command recieved last cycle. buf_nxtstate := Mux(io.ahb_hresp, idle, pend) // If error go to idle, else wait for read data @@ -187,10 +187,8 @@ class ahb_to_axi4 extends Module with el2_lib with RequireAsyncReset { cmdbuf_rst := (((io.axi_awvalid & io.axi_awready) | (io.axi_arvalid & io.axi_arready)) & !cmdbuf_wr_en) | (io.ahb_hresp & !cmdbuf_write) cmdbuf_full := (cmdbuf_vld & !((io.axi_awvalid & io.axi_awready) | (io.axi_arvalid & io.axi_arready))) - //rvdffsc - cmdbuf_vld := withClock(bus_clk) { - RegEnable("b1".U & Fill("b1".U.getWidth, cmdbuf_rst), 0.U, cmdbuf_wr_en.asBool())} + cmdbuf_vld := withClock(bus_clk) {RegNext((Mux(cmdbuf_wr_en.asBool(),"b1".U,cmdbuf_vld) & !cmdbuf_rst), 0.U)} //dffs cmdbuf_write := withClock(bus_clk) { diff --git a/target/scala-2.12/classes/lib/AHB_main$.class b/target/scala-2.12/classes/lib/AHB_main$.class index 067b558beeaf94dc1e2926d410ccb6f93faa01fe..c9f3ec78ea5a6497cd7eb09469d6aedd40b00fee 100644 GIT binary patch delta 103 zcmdllw_k3<4=%10$ZYv<`6}JtLROf-nOHQuiu>kV7^SFXl mNlq5ywFI+b7~f4^%Nxr1mVtxe9fLl@o5|dK6+oF5zTE)ycO~oq delta 103 zcmdllw_k3<4=%=clYesA0?7bg@yUMNo>10$ZYv<`6}JtLROf-nOHQuiu>kV7^SFXl mNlq5ywFI+b7(Yy2%Nxr1o`Hkm1A{)pyUE;q6+oF5zTE)%gC+<7 diff --git a/target/scala-2.12/classes/lib/AHB_main$delayedInit$body.class b/target/scala-2.12/classes/lib/AHB_main$delayedInit$body.class index df98dd7d3000626cdd8dbedf22d36a9b5f82ce63..d4c0f487f46c62c6fd3cef714cc3d505ea98af9e 100644 GIT binary patch delta 19 ZcmaFF`iOOdD-+|J$!<&mKyo^hHvmjq2SNY< delta 19 ZcmaFF`iOOdD-+|p$!<&mKyo^hHvmj~2Sxw@ diff --git a/target/scala-2.12/classes/lib/ahb_to_axi4.class b/target/scala-2.12/classes/lib/ahb_to_axi4.class index 0a51253db73862d2ae59b959c20c1b090d0e5c41..8328c4c949404027506c1bdcf2494d3ffcbe99cf 100644 GIT binary patch literal 110948 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 DFY`0t literal 110868 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