简单的fpga读写内部ram的问题。。麻烦帮帮忙。。谢谢

我加了一个2位宽,4个位深的ramip核,程序如下,综合没错,接着向问问怎么向里面写数据,还有怎么将数据读出来?麻烦帮帮忙。。十分感谢。。。因为要急用,所以没时间去慢慢看... 我加了一个2位宽,4个位深的ram ip核,程序如下,综合没错,接着向问问怎么向里面写数据,还有怎么将数据读出来? 麻烦帮帮忙。。十分感谢。。。因为要急用,所以没时间去慢慢看书。。。还有我见例程有些参数要定义wire变量弄弄到子程序里面,请问什么情况时候用到。。wire和reg的区别我大概清楚,就是不明白问什么有些子程序参数要定义wire变量。。先谢谢帮忙的人。。

module ram_top(
clk,
a,
d,
out
);
input clk;
input [1:0] a;
input [1:0] d;
output [1:0] out;

ram2 ram2_1 (
.clka(clk),
.wea(1), // Bus [0 : 0]
.addra(a), // Bus [1 : 0]
.dina(d), // Bus [1 : 0]
.douta(out)); // Bus [1 : 0]
endmodule
展开
 我来答
liongcui910616894
2017-02-28 · TA获得超过769个赞
知道小有建树答主
回答量:564
采纳率:60%
帮助的人:135万
展开全部
不知道你现在明白了没有,我是刚学完,感觉明白了,写入数据就是wea写使能为1,然后设置地址addra的同时,设置你要输入的dina即可完成写入,因为你要控制地址和输入数据,所以对于你来说,输入数据d,与a可以设成中间变量,不可以作为输入端口,因为输入端口你是不能设置的。比如wire [1:0]a, wire[1:0] d,然后写程序来控制a和d,达到写入数据的目的。这样顶层为 ram_top(clk,rst_n ,out);即可。其他都作为中间变量。读的话要是写使能wea变为0才能读的,输入你想读的地址即可输出
迪凯特科技(北京)有限公司
2023-07-28 广告
MCS-51串行接口有四种工作方式,分别是:1. 方式0(8位同步移位寄存器方式),一般用于外接移位寄存器芯片扩展I/O接口。2. 方式1(10位异步收发方式),通常常用于双机通信。3. 方式2(11位异步收发方式),通常常用于多机通信。4... 点击进入详情页
本回答由迪凯特科技(北京)有限公司提供
ppc68
推荐于2016-12-01 · TA获得超过581个赞
知道小有建树答主
回答量:1257
采纳率:100%
帮助的人:781万
展开全部
初始化数据可以新建一个.hex或者.mif文件,引用ram ip核的时候向导里有个可以添加初始化文件的地方,关联到你写的那个文件就可以了。模块例化的时候,要把中间需要用到的变量定义成wire型的,相当是个声明的作用吧,不定义会出警告,有时也不影响运行结果但我遇到过会影响结果的情况,而且对于好的写代码习惯也是需要的
更多追问追答
追问
可是我不要初始化啊..我是要现场采集数据然后送到ram里面的。。请问怎么用啊 。。具体。。datasheet里面也没怎么解释。。T T。。先谢谢你帮忙
追答
那就写进去嘛ram2 ram2_1 ( 
.clka(clk),
.wea(1), // Bus [0 : 0]
.addra(a), // Bus [1 : 0]
.dina(d), // Bus [1 : 0]
.douta(out)); // Bus [1 : 0]
给到dina
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
IMXIEXIN
2011-07-24
知道答主
回答量:10
采纳率:0%
帮助的人:0
展开全部
111111
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式