Rev 133 | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 133 | Rev 134 | ||
---|---|---|---|
Line 119... | Line 119... | ||
119 | begin |
119 | begin |
120 | wr_regs[2:0] <= { wr_regs[1:0], ~zwr_n }; |
120 | wr_regs[2:0] <= { wr_regs[1:0], ~zwr_n }; |
121 | rd_regs[2:0] <= { rd_regs[1:0], ~zrd_n }; |
121 | rd_regs[2:0] <= { rd_regs[1:0], ~zrd_n }; |
122 | end |
122 | end |
123 | // |
123 | // |
124 | always @(posedge fclk, negedge rst_n) |
- | |
125 | if( !rst_n ) |
- | |
126 | begin |
- | |
127 | wr_state <= 1'b0; |
- | |
128 | rd_state <= 1'b0; |
- | |
129 | end |
- | |
130 | else |
- | |
131 | begin |
- | |
132 | if( wr_regs[1:0]==2'b01 && !wr_state ) |
- | |
133 | wr_state <= 1'b1; |
- | |
134 | else if( wr_regs[1:0]==2'b00 && wr_state ) |
- | |
135 | wr_state <= 1'b0; |
- | |
136 | // |
- | |
137 | if( rd_regs[1:0]==2'b01 && !rd_state ) |
- | |
138 | rd_state <= 1'b1; |
- | |
139 | else if( rd_regs[1:0]==2'b00 && rd_state ) |
- | |
140 | rd_state <= 1'b0; |
- | |
141 | end |
- | |
142 | // |
124 | |
143 | assign wr_start = wr_regs[1:0]==2'b01 && !wr_state; |
125 | assign wr_start = wr_regs[2:0]==3'b001 && !ctr_5; |
144 | assign rd_start = rd_regs[1:0]==2'b01 && !rd_state; |
126 | assign rd_start = rd_regs[2:0]==3'b001 && !ctr_5; |
145 | 127 | ||
146 | 128 | ||
147 | // buffered rd/wrs |
129 | // buffered rd/wrs |
148 | always @(posedge fclk) |
130 | always @(posedge fclk) |
149 | begin |
131 | begin |
Line 163... | Line 145... | ||
163 | begin |
145 | begin |
164 | ctr_5 <= 3'd0; |
146 | ctr_5 <= 3'd0; |
165 | end |
147 | end |
166 | else if( wr_start || rd_start ) |
148 | else if( wr_start || rd_start ) |
167 | ctr_5 <= 3'd4; |
149 | ctr_5 <= 3'd4; |
168 | else |
150 | else if( ctr_5 ) |
169 | ctr_5 <= ctr_5 - 3'd1; |
151 | ctr_5 <= ctr_5 - 3'd1; |
170 | 152 | ||
171 | 153 | ||
172 | // buffered chipselects |
154 | // buffered chipselects |
173 | always @(posedge fclk) |
155 | always @(posedge fclk) |