|
16 | 16 | reg RST; |
17 | 17 | wire [32-1:0] myaxi_awaddr; |
18 | 18 | wire [8-1:0] myaxi_awlen; |
| 19 | + wire [3-1:0] myaxi_awsize; |
| 20 | + wire [2-1:0] myaxi_awburst; |
| 21 | + wire [2-1:0] myaxi_awlock; |
| 22 | + wire [4-1:0] myaxi_awcache; |
| 23 | + wire [3-1:0] myaxi_awprot; |
| 24 | + wire [4-1:0] myaxi_awqos; |
| 25 | + wire [1-1:0] myaxi_awuser; |
19 | 26 | wire myaxi_awvalid; |
20 | 27 | reg myaxi_awready; |
21 | 28 | wire [32-1:0] myaxi_wdata; |
22 | 29 | wire [4-1:0] myaxi_wstrb; |
23 | 30 | wire myaxi_wlast; |
24 | 31 | wire myaxi_wvalid; |
25 | 32 | reg myaxi_wready; |
| 33 | + reg [2-1:0] myaxi_bresp; |
| 34 | + reg myaxi_bvalid; |
| 35 | + wire myaxi_bready; |
26 | 36 | wire [32-1:0] myaxi_araddr; |
27 | 37 | wire [8-1:0] myaxi_arlen; |
| 38 | + wire [3-1:0] myaxi_arsize; |
| 39 | + wire [2-1:0] myaxi_arburst; |
| 40 | + wire [2-1:0] myaxi_arlock; |
| 41 | + wire [4-1:0] myaxi_arcache; |
| 42 | + wire [3-1:0] myaxi_arprot; |
| 43 | + wire [4-1:0] myaxi_arqos; |
| 44 | + wire [1-1:0] myaxi_aruser; |
28 | 45 | wire myaxi_arvalid; |
29 | 46 | reg myaxi_arready; |
30 | 47 | reg [32-1:0] myaxi_rdata; |
| 48 | + reg [2-1:0] myaxi_rresp; |
31 | 49 | reg myaxi_rlast; |
32 | 50 | reg myaxi_rvalid; |
33 | 51 | wire myaxi_rready; |
34 | 52 | wire [32-1:0] memory_awaddr; |
35 | 53 | wire [8-1:0] memory_awlen; |
| 54 | + wire [3-1:0] memory_awsize; |
| 55 | + wire [2-1:0] memory_awburst; |
| 56 | + wire [2-1:0] memory_awlock; |
| 57 | + wire [4-1:0] memory_awcache; |
| 58 | + wire [3-1:0] memory_awprot; |
| 59 | + wire [4-1:0] memory_awqos; |
| 60 | + wire [1-1:0] memory_awuser; |
36 | 61 | wire memory_awvalid; |
37 | 62 | reg memory_awready; |
38 | 63 | wire [32-1:0] memory_wdata; |
39 | 64 | wire [4-1:0] memory_wstrb; |
40 | 65 | wire memory_wlast; |
41 | 66 | wire memory_wvalid; |
42 | 67 | reg memory_wready; |
| 68 | + wire [2-1:0] memory_bresp; |
| 69 | + reg memory_bvalid; |
| 70 | + wire memory_bready; |
43 | 71 | wire [32-1:0] memory_araddr; |
44 | 72 | wire [8-1:0] memory_arlen; |
| 73 | + wire [3-1:0] memory_arsize; |
| 74 | + wire [2-1:0] memory_arburst; |
| 75 | + wire [2-1:0] memory_arlock; |
| 76 | + wire [4-1:0] memory_arcache; |
| 77 | + wire [3-1:0] memory_arprot; |
| 78 | + wire [4-1:0] memory_arqos; |
| 79 | + wire [1-1:0] memory_aruser; |
45 | 80 | wire memory_arvalid; |
46 | 81 | reg memory_arready; |
47 | 82 | reg [32-1:0] memory_rdata; |
| 83 | + wire [2-1:0] memory_rresp; |
48 | 84 | reg memory_rlast; |
49 | 85 | reg memory_rvalid; |
50 | 86 | wire memory_rready; |
| 87 | + assign memory_bresp = 0; |
| 88 | + assign memory_rresp = 0; |
| 89 | + reg [32-1:0] _memory_fsm; |
| 90 | + localparam _memory_fsm_init = 0; |
51 | 91 | reg [8-1:0] _memory_mem [0:2**20-1]; |
52 | 92 |
|
53 | 93 | initial begin |
54 | 94 | $readmemh("memimg_test_simulation_verilator.out", _memory_mem); |
55 | 95 | end |
56 | 96 |
|
57 | | - reg [32-1:0] _memory_fsm; |
58 | | - localparam _memory_fsm_init = 0; |
59 | 97 | reg [33-1:0] _write_count; |
60 | 98 | reg [32-1:0] _write_addr; |
61 | 99 | reg [33-1:0] _read_count; |
|
67 | 105 | reg __memory_fsm_cond_211_2_1; |
68 | 106 | assign memory_awaddr = myaxi_awaddr; |
69 | 107 | assign memory_awlen = myaxi_awlen; |
| 108 | + assign memory_awsize = myaxi_awsize; |
| 109 | + assign memory_awburst = myaxi_awburst; |
| 110 | + assign memory_awlock = myaxi_awlock; |
| 111 | + assign memory_awcache = myaxi_awcache; |
| 112 | + assign memory_awprot = myaxi_awprot; |
| 113 | + assign memory_awqos = myaxi_awqos; |
| 114 | + assign memory_awuser = myaxi_awuser; |
70 | 115 | assign memory_awvalid = myaxi_awvalid; |
71 | 116 | wire _tmp_0; |
72 | 117 | assign _tmp_0 = memory_awready; |
|
86 | 131 | myaxi_wready = _tmp_1; |
87 | 132 | end |
88 | 133 |
|
| 134 | + wire [2-1:0] _tmp_2; |
| 135 | + assign _tmp_2 = memory_bresp; |
| 136 | +
|
| 137 | + always @(*) begin |
| 138 | + myaxi_bresp = _tmp_2; |
| 139 | + end |
| 140 | +
|
| 141 | + wire _tmp_3; |
| 142 | + assign _tmp_3 = memory_bvalid; |
| 143 | +
|
| 144 | + always @(*) begin |
| 145 | + myaxi_bvalid = _tmp_3; |
| 146 | + end |
| 147 | +
|
| 148 | + assign memory_bready = myaxi_bready; |
89 | 149 | assign memory_araddr = myaxi_araddr; |
90 | 150 | assign memory_arlen = myaxi_arlen; |
| 151 | + assign memory_arsize = myaxi_arsize; |
| 152 | + assign memory_arburst = myaxi_arburst; |
| 153 | + assign memory_arlock = myaxi_arlock; |
| 154 | + assign memory_arcache = myaxi_arcache; |
| 155 | + assign memory_arprot = myaxi_arprot; |
| 156 | + assign memory_arqos = myaxi_arqos; |
| 157 | + assign memory_aruser = myaxi_aruser; |
91 | 158 | assign memory_arvalid = myaxi_arvalid; |
92 | | - wire _tmp_2; |
93 | | - assign _tmp_2 = memory_arready; |
| 159 | + wire _tmp_4; |
| 160 | + assign _tmp_4 = memory_arready; |
94 | 161 |
|
95 | 162 | always @(*) begin |
96 | | - myaxi_arready = _tmp_2; |
| 163 | + myaxi_arready = _tmp_4; |
97 | 164 | end |
98 | 165 |
|
| 166 | + wire [32-1:0] _tmp_5; |
| 167 | + assign _tmp_5 = memory_rdata; |
99 | 168 |
|
100 | 169 | always @(*) begin |
101 | | - myaxi_rdata = memory_rdata; |
| 170 | + myaxi_rdata = _tmp_5; |
102 | 171 | end |
103 | 172 |
|
104 | | - wire _tmp_3; |
105 | | - assign _tmp_3 = memory_rlast; |
| 173 | + wire [2-1:0] _tmp_6; |
| 174 | + assign _tmp_6 = memory_rresp; |
106 | 175 |
|
107 | 176 | always @(*) begin |
108 | | - myaxi_rlast = _tmp_3; |
| 177 | + myaxi_rresp = _tmp_6; |
109 | 178 | end |
110 | 179 |
|
111 | | - wire _tmp_4; |
112 | | - assign _tmp_4 = memory_rvalid; |
| 180 | + wire _tmp_7; |
| 181 | + assign _tmp_7 = memory_rlast; |
113 | 182 |
|
114 | 183 | always @(*) begin |
115 | | - myaxi_rvalid = _tmp_4; |
| 184 | + myaxi_rlast = _tmp_7; |
| 185 | + end |
| 186 | +
|
| 187 | + wire _tmp_8; |
| 188 | + assign _tmp_8 = memory_rvalid; |
| 189 | +
|
| 190 | + always @(*) begin |
| 191 | + myaxi_rvalid = _tmp_8; |
116 | 192 | end |
117 | 193 |
|
118 | 194 | assign memory_rready = myaxi_rready; |
|
124 | 200 | .RST(RST), |
125 | 201 | .myaxi_awaddr(myaxi_awaddr), |
126 | 202 | .myaxi_awlen(myaxi_awlen), |
| 203 | + .myaxi_awsize(myaxi_awsize), |
| 204 | + .myaxi_awburst(myaxi_awburst), |
| 205 | + .myaxi_awlock(myaxi_awlock), |
| 206 | + .myaxi_awcache(myaxi_awcache), |
| 207 | + .myaxi_awprot(myaxi_awprot), |
| 208 | + .myaxi_awqos(myaxi_awqos), |
| 209 | + .myaxi_awuser(myaxi_awuser), |
127 | 210 | .myaxi_awvalid(myaxi_awvalid), |
128 | 211 | .myaxi_awready(myaxi_awready), |
129 | 212 | .myaxi_wdata(myaxi_wdata), |
130 | 213 | .myaxi_wstrb(myaxi_wstrb), |
131 | 214 | .myaxi_wlast(myaxi_wlast), |
132 | 215 | .myaxi_wvalid(myaxi_wvalid), |
133 | 216 | .myaxi_wready(myaxi_wready), |
| 217 | + .myaxi_bresp(myaxi_bresp), |
| 218 | + .myaxi_bvalid(myaxi_bvalid), |
| 219 | + .myaxi_bready(myaxi_bready), |
134 | 220 | .myaxi_araddr(myaxi_araddr), |
135 | 221 | .myaxi_arlen(myaxi_arlen), |
| 222 | + .myaxi_arsize(myaxi_arsize), |
| 223 | + .myaxi_arburst(myaxi_arburst), |
| 224 | + .myaxi_arlock(myaxi_arlock), |
| 225 | + .myaxi_arcache(myaxi_arcache), |
| 226 | + .myaxi_arprot(myaxi_arprot), |
| 227 | + .myaxi_arqos(myaxi_arqos), |
| 228 | + .myaxi_aruser(myaxi_aruser), |
136 | 229 | .myaxi_arvalid(myaxi_arvalid), |
137 | 230 | .myaxi_arready(myaxi_arready), |
138 | 231 | .myaxi_rdata(myaxi_rdata), |
| 232 | + .myaxi_rresp(myaxi_rresp), |
139 | 233 | .myaxi_rlast(myaxi_rlast), |
140 | 234 | .myaxi_rvalid(myaxi_rvalid), |
141 | 235 | .myaxi_rready(myaxi_rready) |
|
158 | 252 | RST = 0; |
159 | 253 | memory_awready = 0; |
160 | 254 | memory_wready = 0; |
| 255 | + memory_bvalid = 0; |
161 | 256 | memory_arready = 0; |
162 | 257 | memory_rdata = 0; |
163 | 258 | memory_rlast = 0; |
|
180 | 275 | $write(""); |
181 | 276 | end |
182 | 277 |
|
183 | | - wire _tmp_5; |
184 | | - assign _tmp_5 = io_CLK; |
| 278 | + wire _tmp_9; |
| 279 | + assign _tmp_9 = io_CLK; |
185 | 280 |
|
186 | 281 | always @(*) begin |
187 | | - CLK = _tmp_5; |
| 282 | + CLK = _tmp_9; |
188 | 283 | end |
189 | 284 |
|
190 | | - wire _tmp_6; |
191 | | - assign _tmp_6 = io_RST; |
| 285 | + wire _tmp_10; |
| 286 | + assign _tmp_10 = io_RST; |
192 | 287 |
|
193 | 288 | always @(*) begin |
194 | | - RST = _tmp_6; |
| 289 | + RST = _tmp_10; |
195 | 290 | end |
196 | 291 |
|
197 | 292 | localparam _memory_fsm_200 = 200; |
|
241 | 336 | memory_rlast <= 0; |
242 | 337 | __memory_fsm_cond_211_2_1 <= 0; |
243 | 338 | memory_rdata <= 0; |
| 339 | + memory_bvalid <= 0; |
244 | 340 | _sleep_count <= 0; |
245 | 341 | end else begin |
| 342 | + if(memory_bvalid && memory_bready) begin |
| 343 | + memory_bvalid <= 0; |
| 344 | + end |
| 345 | + if(memory_wvalid && memory_wready && memory_wlast) begin |
| 346 | + memory_bvalid <= 1; |
| 347 | + end |
246 | 348 | _sleep_count <= _sleep_count + 1; |
247 | 349 | if(_sleep_count == 3) begin |
248 | 350 | _sleep_count <= 0; |
|
276 | 378 | end |
277 | 379 | end |
278 | 380 | _memory_fsm_100: begin |
279 | | - if(memory_awvalid) begin |
| 381 | + if(memory_awvalid && !memory_bvalid) begin |
280 | 382 | memory_awready <= 1; |
281 | 383 | _write_addr <= memory_awaddr; |
282 | 384 | _write_count <= memory_awlen + 1; |
|
442 | 544 | input RST, |
443 | 545 | output reg [32-1:0] myaxi_awaddr, |
444 | 546 | output reg [8-1:0] myaxi_awlen, |
| 547 | + output [3-1:0] myaxi_awsize, |
| 548 | + output [2-1:0] myaxi_awburst, |
| 549 | + output [2-1:0] myaxi_awlock, |
| 550 | + output [4-1:0] myaxi_awcache, |
| 551 | + output [3-1:0] myaxi_awprot, |
| 552 | + output [4-1:0] myaxi_awqos, |
| 553 | + output [1-1:0] myaxi_awuser, |
445 | 554 | output reg myaxi_awvalid, |
446 | 555 | input myaxi_awready, |
447 | 556 | output reg [32-1:0] myaxi_wdata, |
448 | 557 | output reg [4-1:0] myaxi_wstrb, |
449 | 558 | output reg myaxi_wlast, |
450 | 559 | output reg myaxi_wvalid, |
451 | 560 | input myaxi_wready, |
| 561 | + input [2-1:0] myaxi_bresp, |
| 562 | + input myaxi_bvalid, |
| 563 | + output myaxi_bready, |
452 | 564 | output reg [32-1:0] myaxi_araddr, |
453 | 565 | output reg [8-1:0] myaxi_arlen, |
| 566 | + output [3-1:0] myaxi_arsize, |
| 567 | + output [2-1:0] myaxi_arburst, |
| 568 | + output [2-1:0] myaxi_arlock, |
| 569 | + output [4-1:0] myaxi_arcache, |
| 570 | + output [3-1:0] myaxi_arprot, |
| 571 | + output [4-1:0] myaxi_arqos, |
| 572 | + output [1-1:0] myaxi_aruser, |
454 | 573 | output reg myaxi_arvalid, |
455 | 574 | input myaxi_arready, |
456 | 575 | input [32-1:0] myaxi_rdata, |
| 576 | + input [2-1:0] myaxi_rresp, |
457 | 577 | input myaxi_rlast, |
458 | 578 | input myaxi_rvalid, |
459 | 579 | output myaxi_rready |
|
505 | 625 | .ram_c_0_wenable(ram_c_0_wenable) |
506 | 626 | ); |
507 | 627 |
|
| 628 | + assign myaxi_awsize = 2; |
| 629 | + assign myaxi_awburst = 1; |
| 630 | + assign myaxi_awlock = 0; |
| 631 | + assign myaxi_awcache = 3; |
| 632 | + assign myaxi_awprot = 0; |
| 633 | + assign myaxi_awqos = 0; |
| 634 | + assign myaxi_awuser = 1; |
| 635 | + assign myaxi_bready = 1; |
| 636 | + assign myaxi_arsize = 2; |
| 637 | + assign myaxi_arburst = 1; |
| 638 | + assign myaxi_arlock = 0; |
| 639 | + assign myaxi_arcache = 3; |
| 640 | + assign myaxi_arprot = 0; |
| 641 | + assign myaxi_arqos = 0; |
| 642 | + assign myaxi_aruser = 1; |
508 | 643 | reg _myaxi_read_start; |
509 | 644 | reg [8-1:0] _myaxi_read_op_sel; |
510 | 645 | reg [32-1:0] _myaxi_read_local_addr; |
|
0 commit comments