夏宇闻老师,各位前辈高人,FPGA 与DSP并口通信的问题
夏宇闻老师,各位前辈高人:我正在做FPGA 与DSP并口通信,就是把FPGA 当做SRAM一样的读写,但是仿真不对,麻烦给看看代码,哪里的问题呢?
module CommandOperate(resetcommandmainprocess,
DSP_DATA,DSP_ADDR,dsp_we,dsp_rd,cs_fpga,
LED1);
input resetcommandmainprocess;
input dsp_we,dsp_rd,cs_fpga;
inoutDSP_DATA;
input DSP_ADDR;
output LED1;//LED2;
/////////////////////////////////////////
reg Reg_LED1;//Reg_LED2;
reg rd_data;
always @(posedge dsp_rd or posedge resetcommandmainprocess )
begin
if (resetcommandmainprocess) begin
rd_data<= 16'bzzzz_zzzz_zzzz_zzzz;
end
else if (( DSP_ADDR == 5'b11000)&&(cs_fpga == 0))
rd_data<= Reg_LED1;
else rd_data<= 16'bzzzz_zzzz_zzzz_zzzz;
end
assign DSP_DATA=rd_data ;
///////////////////////////////////////////////
always @(posedge dsp_we or posedge resetcommandmainprocess)
begin
if (resetcommandmainprocess)begin
Reg_LED1<=16'h0000;
end
else if(( DSP_ADDR == 5'b11000)&&(cs_fpga == 0))
Reg_LED1<= DSP_DATA;
end
assign LED1=1'b1;//Reg_LED1;
endmodule 在线等待,已经搞了两天了。 module CommandOperate(
DSP_RSTn,//Inputs from MAX811
RDn,
WEn, //from DSP2812
DSP_DATA,
DSP_ADDR,
CS0AND1n,
/////////////////////////////////////////
LD
);
////////////////////////////////////////////
input DSP_RSTn;//Inputs from MAX811
input RDn;
input WEn; //from DSP2812
inout DSP_DATA;
input DSP_ADDR;
input CS0AND1n;
/////////////////////////////////////////
output LD;
////////////////////////////////////////////////////////
regLED;
///////////////////////
reg rd_data;
///////////////////////////////////////////////////
always @(posedge RDn or posedge DSP_RSTn )
begin
if (DSP_RSTn) begin
rd_data <= 16'bzzzzzzzzzzzzzzzz;
end
else if (( DSP_ADDR == 13'b0000000000001)&& (CS0AND1n == 0 ))
rd_data<=LED;
else rd_data <= 16'bzzzzzzzzzzzzzzzz;
end
assign DSP_DATA=rd_data;
///////////////////////////////////////////////
always @(posedge WEn or posedge DSP_RSTn )
begin
if (DSP_RSTn) begin
LED <= 0;
end
else if (( DSP_ADDR == 13'b0000000000001 )&& (CS0AND1n == 0 ))
LED<= DSP_DATA;
end
assign LD=LED;
endmodule
这是最新的代码,还是不行,第二次读数据,就错了,data上面的数据没有了,不对了 就是这样,LD是我要的数据 你的数据流乱起八糟的,由于你的代码有问题,数据存在冲突,当然没有数据 感觉你写的很混乱 你直接用内部的核不就行了,Quartus里面有内部RAM核可以调用啊。 你直接用内部的核不就行了,Quartus里面有内部RAM核可以调用啊。
页:
[1]