如何写FPGA读写SRAM的仿真程式??

使用verilog写了个FPGA读写SRAM的程式,思路就是当SRAM写能有效时,FPGA往SRAM的第一个地址写入一个数据,当读有效时,再把该数读出来,延时一段时间后,... 使用verilog写了个FPGA读写SRAM的程式,思路就是当SRAM写能有效时,FPGA往SRAM的第一个地址写入一个数据,当读有效时,再把该数读出来,延时一段时间后,地址及数据顺序自增1,上述使用到双向口,可在写仿真程式时,仿真波形不对,我钻研有一周了,因为是自学外加我悟性不是很高,学习进度非常缓慢,现求助于网络,麻烦知道的网友给予答疑解惑,谢谢!
仿真程序如下:
`timescale 1 ns/ 1 ps
`define test;
module sram_vlg_tst();
reg clk;
reg rst_n;
reg sdlink;
reg [14:0] addr_r;
reg[7:0] wr_data;
// wires
wire led;
wire [7:0] sram_data; //FPGA的双向口,写能时,sram_data为输出口,往SRAM写数据
//读能时,sram_data为输入口,从SRAM读数据;
sram i1 (
// port map - connection between master ports and signals/registers
.clk(clk),
.led(led),
.rst_n(rst_n),
.sram_addr(sram_addr),
.sram_data(sram_data),
.sram_wr_n(sram_wr_n)
);
`ifdef test
initial begin
clk=0;
forever #10 clk=~clk;
end
initial begin
rst_n=0;
#1000;
rst_n=1;
sdlink=1; //Sdlink为高时,FPGA往SRAM第0地址输入数据
addr_r=15'd0;
wr_data=8'd2;
end
`else
initial begin
clk=0;
forever #10 clk=~clk;
end
initial begin
rst_n=0;
#1000;
rst_n=0;
sdlink=0; //Sdlink为高时,FPGA往SRAM第0地址输入数据
addr_r=15'd0;
end
`endif
endmodule
展开
 我来答
warrrlock
2012-07-29 · 超过46用户采纳过TA的回答
知道小有建树答主
回答量:109
采纳率:0%
帮助的人:103万
展开全部
sram_wr_n没有激励。这是sram的写使能信号,低有效。
追问
我在源代码里有assign sram_wr_n=~sdlink,在测仿真程式里还要再加进去么?
追答
sram i1 (
// port map - connection between master ports and signals/registers
.clk(clk),
.led(led),
.rst_n(rst_n),
.sram_addr(sram_addr),
.sram_data(sram_data),
.sram_wr_n(sram_wr_n)
);

这个就是向sram输入激励。你看看波形中sram_wr_n是否和你预期的一样。
要加入assign sram_wr_n=~sdlink
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式