|
小白正在做一个FPGA跟单片机通信的小实验,遇到问题了。请各路大神指导指导。
现在的情况是,单片机先运行,然后FPGA再开始运行,传输数据就是正确的。但是,当FPGA运行过程中,单片机复位之后,数据就发生错误。估计问题是出现在发送的计数器问题上,现在有没有一种方法能够避免这样的错误。设想是在SPI使能信号开始将计数器清空。还没有实现,还请各位指导小弟一把。
附上程序
module spi_travel(clk_in,freq_in,en,sdo_out,cnt);
input clk_in;
input [31:0]freq_in;
reg [31:0]freq_data;
input en;
output sdo_out;
output cnt;
reg sdo_out;
reg[5:0]cnt;
parameter freq=32'h77777777;
always@(posedge en)
begin
freq_data<=freq_in;
end
always@(posedge clk_in)
begin
if(en&clk_in)
begin
sdo_out=freq_data[31-cnt];
cnt=cnt+1;
if(cnt==32)cnt=0;
end
else
sdo_out<=freq_data[31-cnt];
end
endmodule
|
|