User`s manual
169 doread <= 1’b0;
170 //dowrite <= 1’b0; // only write on new data // WATCH OUT!!
171 if (newout) begin
172 bytesRxed <= bytesRxed + 1;
173 wdata <= {dataFromFifo, 8’b0};//{out, 8’b0};
174 dowrite <= 1’b1;
175 end
176 end
177
178 // if button is DOWN - scroll through addresses via buttons
179 if (~writeSwitch) begin
180 dowrite <= 1’b0;
181 writemode <= 1’b0;
182 doread <= 1’b1;
183
184 if (playing & ready) begin // REMOVE audioTrigger
185 if (raddr < trackEndAddr) begin
186 // Normal 48K Playback
187 raddr <= raddr + 1;
188 to_ac97_data <= frdata[15:8]; // PUT BACK
189 end
190 else begin
191 if (playbackSeq[45:23] < UNUSED_INDEX) begin
192 // change raddr to next track
193 raddr <= playbackSeq[45:23] * TRACK_LENGTH;
194 // shift playbackSeq down
195 playbackSeq <= {UNUSED_INDEX, playbackSeq[91:23]};
196 // update trackEndAddr
197 trackEndAddr <= playbackSeq[45:23] * TRACK_LENGTH + TRACK_LENGTH;
198 end
199 else if (playbackSeq[45:23] == UNUSED_INDEX) begin
200 playing <= 0;
201 raddr <= 0; // reset for safety - lower than UNUSED_ADDR
202 end
203 end
204 end // if (playing & audioTrigger & ready)
205
206 // if entering this state, assign start address
207 if (audioTrigger & ~lastAudioTrigger) begin
208 playing <= 1;
209 case(ones)
210 0: playbackSeq[91:23] <= {UNUSED_INDEX, USED_INDEX, PERCENT_INDEX};
211 1: playbackSeq[91:23] <= {USED_INDEX, PERCENT_INDEX, ONE_INDEX};
212 2: playbackSeq[91:23] <= {USED_INDEX, PERCENT_INDEX, TWO_INDEX};
213 3: playbackSeq[91:23] <= {USED_INDEX, PERCENT_INDEX, THREE_INDEX};
214 4: playbackSeq[91:23] <= {USED_INDEX, PERCENT_INDEX, FOUR_INDEX};
239