|
55 | 55 | assign _saxi_bready = 1;
|
56 | 56 | assign _saxi_arcache = 3;
|
57 | 57 | assign _saxi_arprot = 0;
|
58 |
| - wire [32-1:0] _tmp_0; |
59 |
| - assign _tmp_0 = _saxi_awaddr; |
| 58 | + reg [32-1:0] outstanding_wreq_count_0; |
| 59 | + wire [32-1:0] _tmp_1; |
| 60 | + assign _tmp_1 = _saxi_awaddr; |
60 | 61 |
|
61 | 62 | always @(*) begin
|
62 |
| - saxi_awaddr = _tmp_0; |
| 63 | + saxi_awaddr = _tmp_1; |
63 | 64 | end
|
64 | 65 |
|
65 |
| - wire [4-1:0] _tmp_1; |
66 |
| - assign _tmp_1 = _saxi_awcache; |
| 66 | + wire [4-1:0] _tmp_2; |
| 67 | + assign _tmp_2 = _saxi_awcache; |
67 | 68 |
|
68 | 69 | always @(*) begin
|
69 |
| - saxi_awcache = _tmp_1; |
| 70 | + saxi_awcache = _tmp_2; |
70 | 71 | end
|
71 | 72 |
|
72 |
| - wire [3-1:0] _tmp_2; |
73 |
| - assign _tmp_2 = _saxi_awprot; |
| 73 | + wire [3-1:0] _tmp_3; |
| 74 | + assign _tmp_3 = _saxi_awprot; |
74 | 75 |
|
75 | 76 | always @(*) begin
|
76 |
| - saxi_awprot = _tmp_2; |
| 77 | + saxi_awprot = _tmp_3; |
77 | 78 | end
|
78 | 79 |
|
79 |
| - wire _tmp_3; |
80 |
| - assign _tmp_3 = _saxi_awvalid; |
| 80 | + wire _tmp_4; |
| 81 | + assign _tmp_4 = _saxi_awvalid; |
81 | 82 |
|
82 | 83 | always @(*) begin
|
83 |
| - saxi_awvalid = _tmp_3; |
| 84 | + saxi_awvalid = _tmp_4; |
84 | 85 | end
|
85 | 86 |
|
86 | 87 | assign _saxi_awready = saxi_awready;
|
87 |
| - wire [32-1:0] _tmp_4; |
88 |
| - assign _tmp_4 = _saxi_wdata; |
| 88 | + wire [32-1:0] _tmp_5; |
| 89 | + assign _tmp_5 = _saxi_wdata; |
89 | 90 |
|
90 | 91 | always @(*) begin
|
91 |
| - saxi_wdata = _tmp_4; |
| 92 | + saxi_wdata = _tmp_5; |
92 | 93 | end
|
93 | 94 |
|
94 |
| - wire [4-1:0] _tmp_5; |
95 |
| - assign _tmp_5 = _saxi_wstrb; |
| 95 | + wire [4-1:0] _tmp_6; |
| 96 | + assign _tmp_6 = _saxi_wstrb; |
96 | 97 |
|
97 | 98 | always @(*) begin
|
98 |
| - saxi_wstrb = _tmp_5; |
| 99 | + saxi_wstrb = _tmp_6; |
99 | 100 | end
|
100 | 101 |
|
101 |
| - wire _tmp_6; |
102 |
| - assign _tmp_6 = _saxi_wvalid; |
| 102 | + wire _tmp_7; |
| 103 | + assign _tmp_7 = _saxi_wvalid; |
103 | 104 |
|
104 | 105 | always @(*) begin
|
105 |
| - saxi_wvalid = _tmp_6; |
| 106 | + saxi_wvalid = _tmp_7; |
106 | 107 | end
|
107 | 108 |
|
108 | 109 | assign _saxi_wready = saxi_wready;
|
109 | 110 | assign _saxi_bresp = saxi_bresp;
|
110 | 111 | assign _saxi_bvalid = saxi_bvalid;
|
111 |
| - wire _tmp_7; |
112 |
| - assign _tmp_7 = _saxi_bready; |
| 112 | + wire _tmp_8; |
| 113 | + assign _tmp_8 = _saxi_bready; |
113 | 114 |
|
114 | 115 | always @(*) begin
|
115 |
| - saxi_bready = _tmp_7; |
| 116 | + saxi_bready = _tmp_8; |
116 | 117 | end
|
117 | 118 |
|
118 |
| - wire [32-1:0] _tmp_8; |
119 |
| - assign _tmp_8 = _saxi_araddr; |
| 119 | + wire [32-1:0] _tmp_9; |
| 120 | + assign _tmp_9 = _saxi_araddr; |
120 | 121 |
|
121 | 122 | always @(*) begin
|
122 |
| - saxi_araddr = _tmp_8; |
| 123 | + saxi_araddr = _tmp_9; |
123 | 124 | end
|
124 | 125 |
|
125 |
| - wire [4-1:0] _tmp_9; |
126 |
| - assign _tmp_9 = _saxi_arcache; |
| 126 | + wire [4-1:0] _tmp_10; |
| 127 | + assign _tmp_10 = _saxi_arcache; |
127 | 128 |
|
128 | 129 | always @(*) begin
|
129 |
| - saxi_arcache = _tmp_9; |
| 130 | + saxi_arcache = _tmp_10; |
130 | 131 | end
|
131 | 132 |
|
132 |
| - wire [3-1:0] _tmp_10; |
133 |
| - assign _tmp_10 = _saxi_arprot; |
| 133 | + wire [3-1:0] _tmp_11; |
| 134 | + assign _tmp_11 = _saxi_arprot; |
134 | 135 |
|
135 | 136 | always @(*) begin
|
136 |
| - saxi_arprot = _tmp_10; |
| 137 | + saxi_arprot = _tmp_11; |
137 | 138 | end
|
138 | 139 |
|
139 |
| - wire _tmp_11; |
140 |
| - assign _tmp_11 = _saxi_arvalid; |
| 140 | + wire _tmp_12; |
| 141 | + assign _tmp_12 = _saxi_arvalid; |
141 | 142 |
|
142 | 143 | always @(*) begin
|
143 |
| - saxi_arvalid = _tmp_11; |
| 144 | + saxi_arvalid = _tmp_12; |
144 | 145 | end
|
145 | 146 |
|
146 | 147 | assign _saxi_arready = saxi_arready;
|
147 | 148 | assign _saxi_rdata = saxi_rdata;
|
148 | 149 | assign _saxi_rresp = saxi_rresp;
|
149 | 150 | assign _saxi_rvalid = saxi_rvalid;
|
150 |
| - wire _tmp_12; |
151 |
| - assign _tmp_12 = _saxi_rready; |
| 151 | + wire _tmp_13; |
| 152 | + assign _tmp_13 = _saxi_rready; |
152 | 153 |
|
153 | 154 | always @(*) begin
|
154 |
| - saxi_rready = _tmp_12; |
| 155 | + saxi_rready = _tmp_13; |
155 | 156 | end
|
156 | 157 |
|
157 | 158 | reg [32-1:0] counter;
|
|
170 | 171 | reg __saxi_cond_5_1;
|
171 | 172 | reg signed [32-1:0] _th_ctrl_araddr_8;
|
172 | 173 | reg __saxi_cond_6_1;
|
173 |
| - reg signed [32-1:0] axim_rdata_13; |
| 174 | + reg signed [32-1:0] axim_rdata_14; |
174 | 175 | reg signed [32-1:0] _th_ctrl_v_9;
|
175 | 176 | reg __saxi_cond_7_1;
|
176 |
| - reg signed [32-1:0] axim_rdata_14; |
| 177 | + reg signed [32-1:0] axim_rdata_15; |
177 | 178 | reg __saxi_cond_8_1;
|
178 | 179 | assign _saxi_rready = (th_ctrl == 21) || (th_ctrl == 25) || (th_ctrl == 30);
|
179 |
| - reg signed [32-1:0] axim_rdata_15; |
| 180 | + reg signed [32-1:0] axim_rdata_16; |
180 | 181 | reg signed [32-1:0] _th_ctrl_c_10;
|
181 | 182 | reg signed [32-1:0] _th_ctrl_end_time_11;
|
182 | 183 | reg signed [32-1:0] _th_ctrl_time_12;
|
|
233 | 234 | _saxi_wvalid = 0;
|
234 | 235 | _saxi_araddr = 0;
|
235 | 236 | _saxi_arvalid = 0;
|
| 237 | + outstanding_wreq_count_0 = 0; |
236 | 238 | counter = 0;
|
237 | 239 | th_ctrl = th_ctrl_init;
|
238 | 240 | _th_ctrl_i_3 = 0;
|
|
248 | 250 | __saxi_cond_5_1 = 0;
|
249 | 251 | _th_ctrl_araddr_8 = 0;
|
250 | 252 | __saxi_cond_6_1 = 0;
|
251 |
| - axim_rdata_13 = 0; |
| 253 | + axim_rdata_14 = 0; |
252 | 254 | _th_ctrl_v_9 = 0;
|
253 | 255 | __saxi_cond_7_1 = 0;
|
254 |
| - axim_rdata_14 = 0; |
255 |
| - __saxi_cond_8_1 = 0; |
256 | 256 | axim_rdata_15 = 0;
|
| 257 | + __saxi_cond_8_1 = 0; |
| 258 | + axim_rdata_16 = 0; |
257 | 259 | _th_ctrl_c_10 = 0;
|
258 | 260 | _th_ctrl_end_time_11 = 0;
|
259 | 261 | _th_ctrl_time_12 = 0;
|
|
268 | 270 |
|
269 | 271 | always @(posedge CLK) begin
|
270 | 272 | if(RST) begin
|
| 273 | + outstanding_wreq_count_0 <= 0; |
271 | 274 | _saxi_awaddr <= 0;
|
272 | 275 | _saxi_awvalid <= 0;
|
273 | 276 | __saxi_cond_0_1 <= 0;
|
|
312 | 315 | if(__saxi_cond_8_1) begin
|
313 | 316 | _saxi_arvalid <= 0;
|
314 | 317 | end
|
| 318 | + if(_saxi_awvalid && _saxi_awready && !(_saxi_bvalid && _saxi_bready)) begin |
| 319 | + outstanding_wreq_count_0 <= outstanding_wreq_count_0 + 1; |
| 320 | + end |
| 321 | + if(!(_saxi_awvalid && _saxi_awready) && (_saxi_bvalid && _saxi_bready) && (outstanding_wreq_count_0 > 0)) begin |
| 322 | + outstanding_wreq_count_0 <= outstanding_wreq_count_0 - 1; |
| 323 | + end |
315 | 324 | if((th_ctrl == 7) && (_saxi_awready || !_saxi_awvalid)) begin
|
316 | 325 | _saxi_awaddr <= _th_ctrl_awaddr_4;
|
317 | 326 | _saxi_awvalid <= 1;
|
|
446 | 455 | _th_ctrl_b_6 <= 0;
|
447 | 456 | _th_ctrl_start_time_7 <= 0;
|
448 | 457 | _th_ctrl_araddr_8 <= 0;
|
449 |
| - axim_rdata_13 <= 0; |
450 |
| - _th_ctrl_v_9 <= 0; |
451 | 458 | axim_rdata_14 <= 0;
|
| 459 | + _th_ctrl_v_9 <= 0; |
452 | 460 | axim_rdata_15 <= 0;
|
| 461 | + axim_rdata_16 <= 0; |
453 | 462 | _th_ctrl_c_10 <= 0;
|
454 | 463 | _th_ctrl_end_time_11 <= 0;
|
455 | 464 | _th_ctrl_time_12 <= 0;
|
|
550 | 559 | end
|
551 | 560 | th_ctrl_21: begin
|
552 | 561 | if(_saxi_rready && _saxi_rvalid) begin
|
553 |
| - axim_rdata_13 <= _saxi_rdata; |
| 562 | + axim_rdata_14 <= _saxi_rdata; |
554 | 563 | end
|
555 | 564 | if(_saxi_rready && _saxi_rvalid) begin
|
556 | 565 | th_ctrl <= th_ctrl_22;
|
557 | 566 | end
|
558 | 567 | end
|
559 | 568 | th_ctrl_22: begin
|
560 |
| - _th_ctrl_v_9 <= axim_rdata_13; |
| 569 | + _th_ctrl_v_9 <= axim_rdata_14; |
561 | 570 | th_ctrl <= th_ctrl_23;
|
562 | 571 | end
|
563 | 572 | th_ctrl_23: begin
|
|
574 | 583 | end
|
575 | 584 | th_ctrl_25: begin
|
576 | 585 | if(_saxi_rready && _saxi_rvalid) begin
|
577 |
| - axim_rdata_14 <= _saxi_rdata; |
| 586 | + axim_rdata_15 <= _saxi_rdata; |
578 | 587 | end
|
579 | 588 | if(_saxi_rready && _saxi_rvalid) begin
|
580 | 589 | th_ctrl <= th_ctrl_26;
|
581 | 590 | end
|
582 | 591 | end
|
583 | 592 | th_ctrl_26: begin
|
584 |
| - _th_ctrl_v_9 <= axim_rdata_14; |
| 593 | + _th_ctrl_v_9 <= axim_rdata_15; |
585 | 594 | th_ctrl <= th_ctrl_27;
|
586 | 595 | end
|
587 | 596 | th_ctrl_27: begin
|
|
598 | 607 | end
|
599 | 608 | th_ctrl_30: begin
|
600 | 609 | if(_saxi_rready && _saxi_rvalid) begin
|
601 |
| - axim_rdata_15 <= _saxi_rdata; |
| 610 | + axim_rdata_16 <= _saxi_rdata; |
602 | 611 | end
|
603 | 612 | if(_saxi_rready && _saxi_rvalid) begin
|
604 | 613 | th_ctrl <= th_ctrl_31;
|
605 | 614 | end
|
606 | 615 | end
|
607 | 616 | th_ctrl_31: begin
|
608 |
| - _th_ctrl_c_10 <= axim_rdata_15; |
| 617 | + _th_ctrl_c_10 <= axim_rdata_16; |
609 | 618 | th_ctrl <= th_ctrl_32;
|
610 | 619 | end
|
611 | 620 | th_ctrl_32: begin
|
|
695 | 704 | localparam _saxi_shift = 2;
|
696 | 705 | reg [32-1:0] _saxi_register_fsm;
|
697 | 706 | localparam _saxi_register_fsm_init = 0;
|
698 |
| - reg [32-1:0] _tmp_0; |
699 |
| - reg _tmp_1; |
700 |
| - reg _tmp_2; |
701 |
| - reg _tmp_3; |
702 |
| - reg _tmp_4; |
703 |
| - assign saxi_awready = (_saxi_register_fsm == 0) && (!_tmp_1 && !_tmp_2 && !saxi_bvalid && _tmp_3); |
704 |
| - assign saxi_arready = (_saxi_register_fsm == 0) && (!_tmp_2 && !_tmp_1 && _tmp_4 && !_tmp_3); |
| 707 | + reg [32-1:0] addr_0; |
| 708 | + reg writevalid_1; |
| 709 | + reg readvalid_2; |
| 710 | + reg prev_awvalid_3; |
| 711 | + reg prev_arvalid_4; |
| 712 | + assign saxi_awready = (_saxi_register_fsm == 0) && (!writevalid_1 && !readvalid_2 && !saxi_bvalid && prev_awvalid_3); |
| 713 | + assign saxi_arready = (_saxi_register_fsm == 0) && (!readvalid_2 && !writevalid_1 && prev_arvalid_4 && !prev_awvalid_3); |
705 | 714 | reg [_saxi_maskwidth-1:0] _tmp_5;
|
706 | 715 | wire signed [32-1:0] _tmp_6;
|
707 | 716 | assign _tmp_6 = (_tmp_5 == 0)? _saxi_register_0 :
|
|
741 | 750 | always @(posedge CLK) begin
|
742 | 751 | if(RST) begin
|
743 | 752 | saxi_bvalid <= 0;
|
744 |
| - _tmp_3 <= 0; |
745 |
| - _tmp_4 <= 0; |
746 |
| - _tmp_1 <= 0; |
747 |
| - _tmp_2 <= 0; |
748 |
| - _tmp_0 <= 0; |
| 753 | + prev_awvalid_3 <= 0; |
| 754 | + prev_arvalid_4 <= 0; |
| 755 | + writevalid_1 <= 0; |
| 756 | + readvalid_2 <= 0; |
| 757 | + addr_0 <= 0; |
749 | 758 | saxi_rdata <= 0;
|
750 | 759 | saxi_rvalid <= 0;
|
751 | 760 | _saxi_cond_0_1 <= 0;
|
|
783 | 792 | if(saxi_wvalid && saxi_wready) begin
|
784 | 793 | saxi_bvalid <= 1;
|
785 | 794 | end
|
786 |
| - _tmp_3 <= saxi_awvalid; |
787 |
| - _tmp_4 <= saxi_arvalid; |
788 |
| - _tmp_1 <= 0; |
789 |
| - _tmp_2 <= 0; |
| 795 | + prev_awvalid_3 <= saxi_awvalid; |
| 796 | + prev_arvalid_4 <= saxi_arvalid; |
| 797 | + writevalid_1 <= 0; |
| 798 | + readvalid_2 <= 0; |
790 | 799 | if(saxi_awready && saxi_awvalid && !saxi_bvalid) begin
|
791 |
| - _tmp_0 <= saxi_awaddr; |
792 |
| - _tmp_1 <= 1; |
| 800 | + addr_0 <= saxi_awaddr; |
| 801 | + writevalid_1 <= 1; |
793 | 802 | end else if(saxi_arready && saxi_arvalid) begin
|
794 |
| - _tmp_0 <= saxi_araddr; |
795 |
| - _tmp_2 <= 1; |
| 803 | + addr_0 <= saxi_araddr; |
| 804 | + readvalid_2 <= 1; |
796 | 805 | end
|
797 | 806 | if((_saxi_register_fsm == 1) && (saxi_rready || !saxi_rvalid)) begin
|
798 | 807 | saxi_rdata <= _tmp_6;
|
|
967 | 976 | end else begin
|
968 | 977 | case(_saxi_register_fsm)
|
969 | 978 | _saxi_register_fsm_init: begin
|
970 |
| - if(_tmp_2 || _tmp_1) begin |
971 |
| - _tmp_5 <= (_tmp_0 >> _saxi_shift) & _saxi_mask; |
| 979 | + if(readvalid_2 || writevalid_1) begin |
| 980 | + _tmp_5 <= (addr_0 >> _saxi_shift) & _saxi_mask; |
972 | 981 | end
|
973 |
| - if(_tmp_2) begin |
| 982 | + if(readvalid_2) begin |
974 | 983 | _saxi_register_fsm <= _saxi_register_fsm_1;
|
975 | 984 | end
|
976 |
| - if(_tmp_1) begin |
| 985 | + if(writevalid_1) begin |
977 | 986 | _saxi_register_fsm <= _saxi_register_fsm_3;
|
978 | 987 | end
|
979 | 988 | end
|
|
0 commit comments