fpga中reg[7:0] mem[0:255]怎么赋初值,还有它与通过mif初始化的ROM有什么区别?

 我来答
nope_nope
2014-12-12
知道答主
回答量:23
采纳率:0%
帮助的人:17.7万
展开全部
首先,verilog中对数组赋初始值没有简便的方法,只能对数组中的每个元素单独赋值。

第二,直接声明一个数组与调用一个IP核的ROM没有本质区别,取决于你的具体需求。前者简单易移植,后者性能更有保障。如果需要调用的存储深度很大,那么建议老老实实的用IP核、或者直接调用BlockRAM原语。
追问
哦,是这样啊,那就是说数组赋初值是相当麻烦的,毕竟这么多,但是用的时候要快些,直接用就行了,而且一次可以对多个进行操作,ROM的话初始化容易些,但是后面要用的话就必须牵涉的地址操作
追答
如果仅是仿真的话,你说的倒也没错。
但是在硬件实现时,定义的数组最终还是会映射到分布式RAM(寄存器)或者BlockRAM,具体映射到哪种取决于数组的容量。
像你举得这个例子,编译器会把它映射到BlockRAM,地址操作是绕不开的。某一时刻仅能读(写)某一个地址的内容(双口RAM的话可以同时两个地址)。
说到底,还是看你的具体需求。如果仅是想跑跑仿真,倒也不需想太多。如果需要硬件实现并上器件调试,那么建议你先看看FPGA的结构概述,先对其结构和资源有个感性认识。
renzhu1111
2014-12-12
知道答主
回答量:7
采纳率:0%
帮助的人:5.4万
展开全部
相当于c语言里的数组,声明了一系列的mem寄存器,具体用的时候可以m[0],m[1],每一个寄存器是8位的,mif初始化的是fpga的内部资源,相当于把不用的资源拿来做rom用,mem只是寄存器,占用的资源不一样吧,个人理解
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2014-12-13
展开全部
一个是用EAB做的,一个是用逻辑宏单元的资源做的!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式