外部存储器接口(EMIF)是TMS DSP器件上的一种接口。一般来说,EMIF可实现DSP与不同类型存储器(SRAM、Flash RAM、DDR-RAM等)的连接。. 在本应用指南中,EMIF与FPGA相连,从而使FPGA平台充当一个协同处理器、高速数据处理器或高速数据传输接口。
该设计接口提供了一个至FPGA块RAM的无缝连接。在读/写、FIFO或存储器模式中,双端口块RAM的一侧被用来实现与DSP的通信。另一侧用于实现与内部FPGA逻辑电路或平台-FPGA嵌入式处理器的通信。
关于emif读写的问题
我有一个问题,我在fpga中留了一定空间做存储器,让emif来读写,做成异步的.可是在调试的时候可以写,不能读,不知为什么?有这方面的代码么,比如开始的emfi配置以及怎样读写,还有fpga这边的hdl语言.先谢谢了
| 说明一下:我是通过dsp的emif接口来读写fpga中的ram.我在fpga中的ram是自己写的,不是ipcore产生的,因为ipcore最多只有8个,而我要用到10多个,所以就自己做,下面是我的verilog hdl代码
其中DO是引出来测试写进去的数据是不是正确的,通过测试是正确的,就是读不出来,比如在dsp的ccs环境下写上d=*(unsigned int *)(0xb0380000),结果就停止在这条语句上不继续运行了!)
module SRAM(CLK, CE, AOE, AWE, A, D, DO);
input CLK;
input CE;
input AOE;
input AWE;
input [2:0] A;
inout [15:0] D;
output [7:0] DO;
reg [15:0] MEM[7:0];
reg [7:0] DO;
initial
begin
DO[7:0] = 8'b00000000;
end
assign D = (((!CE) && (!AOE))==1) ? MEM[A] : 16'bzzzzzzzzzzzz;
always @(posedge CLK)
begin
if((!CE) && (!AWE))
begin
MEM[A] = D;
DO[7:0] = D[7:0];
end
else;
end
endmodule
|
|