搜索
bottom↓
回复: 4

用quartus设置ROM的问题

[复制链接]

出0入0汤圆

发表于 2009-12-28 09:05:58 | 显示全部楼层 |阅读模式
最近的EDA实训在做波形发生器     想问下写正弦波程序时怎样用quartus设置一个ROM存储那二百多个采样数据, 然后再用一个读ROM的程序大数据读出来  
类似单片机C51程序从数组取里数据的操作   verilog里面好像没见有,我又不想用200多个case一个个写那些采样值太麻烦 呵呵!  
就是我看别人写的这一段:
rom_sine rom_sine(  
.address(Addr),  
.clock(clk_d),  
.q(temp1));  
rom_tri roms_tri(  
.address(Addr),  
.clock(clk_d),  
.q(temp2));  
rom_pulse roms_pulse(  
.address(Addr),  
.clock(clk_d),  
.q(temp3));

阿莫论坛20周年了!感谢大家的支持与爱护!!

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出0入0汤圆

发表于 2009-12-28 16:31:13 | 显示全部楼层
不是有现成的module嘛

出0入0汤圆

发表于 2009-12-28 17:23:40 | 显示全部楼层
简单的方法,用现成的ROM Core,主流的厂商都会支持,但是坏处是初始化内容的方法各不相同;
另外的方法,自己写一个程序,生成你说的那堆case语句,很简单的,随便一个语言都可以做到,
只要写得得当,一般的综合工具都会发现是ROM并且用FPGA里面的RAM资源来综合它。

其实,更简单的办法是,因为FPGA里面没有真正的ROM,直接写个RAM,加上这样的初始化语句即可:
reg [7:0] mem [0:31];
initial begin
    $readmemh("ram.txt", mem);
end
然后ram.txt里面写十六进制的内容,空格/换行分开。
注意,你mem变量有多少个位置,你的ram.txt里面就得有同样多的数据,否则初始化会不成功。

给个完整的例子,这里综合出的是RAM,你可以去掉写的部分,然后就是ROM了:
module ram_with_init(
output reg [7:0] q,
input [7:0] d,
input [2:0] write_address, read_address,
input we, clk
);
reg [7:0] mem [0:7];
initial begin
   $readmemh("ram.txt", mem);
end
always @ (posedge clk) begin
   if (we)
     mem[write_address] <= d;
     q <= mem[read_address];
   end
endmodule

出0入0汤圆

发表于 2009-12-28 17:39:09 | 显示全部楼层
补充下生成那个ram.txt的简单方法,如果你不想编程生成它,可以在excel里面算出你要的
数据们,转换成16进制(dec2hex函数),只保留需要的数据一列,另存为.txt文件(制表符分割),
然后搞定。

如果用个随便什么脚本语言,比如Python, Perl, Tcl之类,生成它就更亦如反掌了。不过不会
也不要紧,有excel一般情况下也够了。

出0入0汤圆

 楼主| 发表于 2009-12-29 10:24:30 | 显示全部楼层
回复【3楼】minux 啊啊?
-----------------------------------------------------------------------

非常感谢minux 啊啊? 的帮助 按你的方法我已经实现了 这方法我翻了好多书都没怎么讲到或像你讲得这么详细,省去了一大堆case的麻烦 呵呵  再次谢谢!!
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-16 04:14

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表