why the program stuck in this line?
while (IORD(SGDMA_ST_TO_MM_FFT_BASE,0)!=14) {};
when i check the return value of IORD(SGDMA_ST_TO_MM_FFT_BASE,0) is always 8. could somebody give me a solution? Should we add a process in the wrapper?
thanks...
Here is the fft code wrapper as mentioned earlier in the thread.
module fft_avalon_wraper
(
clk,
reset_n,
mm_writedate,
mm_write,
sink_valid,
sink_sop,
sink_eop,
sink_empty,
sink_real,
// sink_imag,
sink_error,
source_ready,
sink_ready,
source_error,
source_sop,
source_eop,
source_valid,
source_data,
source_empty
// ,source_exp
);
input clk;
input reset_n;
input [7 : 0] mm_writedate;
input mm_write;
input sink_valid;
input sink_sop;
input sink_eop;
input [2 : 0] sink_empty;
input [31 : 0] sink_real;
//input [31 : 0] sink_imag;
input [1 : 0] sink_error;
input source_ready;
output sink_ready;
output [1 : 0] source_error;
output source_sop;
output source_eop;
output source_valid;
output [31 : 0] source_data;
output [2 : 0] source_empty;
//output [5 : 0] source_exp;
reg inverse=0;
reg [15 : 0]sink_imag=0;
wire [5 : 0] source_exp;
reg [10 :0] fftpts_in;
FFT fft
(
.clk(clk),
.reset_n(reset_n),
.inverse(inverse),
.sink_valid(sink_valid),
.sink_sop(sink_sop),
.sink_eop(sink_eop),
.sink_real(sink_real[15 : 0]),
.sink_imag(sink_imag),
.sink_error(sink_error),
.source_ready(source_ready),
.sink_ready(sink_ready),
.source_error(source_error),
.source_sop(source_sop),
.source_eop(source_eop),
.source_valid(source_valid),
.source_exp(source_exp),
.source_real(source_data[15 : 0]),
.source_imag(source_data[31 : 16]));
endmodule