在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 7953|回复: 13

[求助] quartus ii 生成rom和ram嵌入oc8051

[复制链接]
发表于 2012-4-10 17:04:41 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
用quartus ii 生成rom和ram嵌入oc8051,将keil下生成的HEX文件写入rom,目的想实现hex指定功能。
现在的问题是怎么将这个hex写入rom。看到这么两条语句,可以写入,但是不是很理解。
$readmemb("test.pro",t_rom.memory); //t_rom是实例化名,memory不知道是不是后缀名。
$readmemb("test.dat",t_ram.ram); //这条暂时用不到

还有这些语句是在tb文件里加入的吧!
发表于 2012-4-10 18:02:09 | 显示全部楼层
这两条语句只是调用系统函数,仿真还可以,实际用起来建议你看看例化ROM的过程,期间有一个选项mem ini,看看
发表于 2012-4-10 18:14:58 | 显示全部楼层
生成ROM的时候,指定一个.hex文件.这样仿真的时候,把.hex文件放到当前目录下即可.

这个.hex,必须每行一个word

你用oc8051的话,必须对Keil生成的.hex进行格式转换,转成每行一个word的格式.
 楼主| 发表于 2012-4-10 18:27:24 | 显示全部楼层
回复 2# tobemyself
不知道你是不是说的quartus ii里面生成ip核的时候,那个里面是添加过hex文件的!
发表于 2012-4-10 18:31:37 | 显示全部楼层
megawizard生成的时候,仔细看看.有指定memory initialize的地方.
 楼主| 发表于 2012-4-10 20:00:48 | 显示全部楼层
回复 5# gordon_m
有没有别的方法呢?
有这么条语句:
$readmemb("......\init.in",buff);//buff为定义寄存器
可以在全编译时,将程序写入rom!
要是每次写程序都要从头生成rom,会不会太麻烦了!
发表于 2012-4-10 20:32:46 | 显示全部楼层
回复 4# 这人很烦


   是的,哥们在FPFA上验证的怎么样了?
 楼主| 发表于 2012-4-10 20:48:02 | 显示全部楼层
回复 7# tobemyself
还是搞不定!
我说说我的思路你看对否。
keil里写了给p0口赋(96h)值点亮led的汇编,生成hex。在生成rom ip核时调用刚才生成的hex文件,由于程序简单再没有其他数据,所以就没管ram。
在管教分配时,把p0_o赋在了FPGA板上的led(这里的p0口没有例话,所以会有p0_i和p0_o),生成sof,烧入板中,led常亮。没有实现控制点亮,不知道这样做能否?
发表于 2012-4-11 17:05:06 | 显示全部楼层
每次写程序,只要重新生成.hex. 而并不需要重新生成ROM

Altera的ROM模型有点小复杂,你直接readmemb不一定行.
 楼主| 发表于 2012-4-11 17:42:24 | 显示全部楼层
回复 9# gordon_m
readmemb试过了不行。
我是在定制rom时,倒数第三步要求加入初始化文件的。不知道还能在哪里写入初始化文件?求赐教~
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条


小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-11-26 04:59 , Processed in 0.030266 second(s), 8 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表