![]() |
|
||||||||||||||
| . 网站首页 . 新闻 . 新品 . 方案 . 专访 . 活动 . DSP . EDA . 评测室 . 技术文库 . 会员区 . 商城 . 服务导航 . 邮购 . 资源 . | ||
|
||
|
|||||
| 在Quartus II中快速更新FPGA片上存储器初始值的一种方法 | |||||
作者:Free 文章来源:Free 点击数: 更新时间:2008-1-4 ![]() |
|||||
|
实现存储器中数值的初始化比较容易,在生成RAM模块时指定一个初始化文件(.hex或.mif)即可。 实现部分参数的动态修改也容易,设计一个状态机在需要的时候写入该RAM即可。 为了调试,更新初始化数值就难了些,可供选择的方法有这样几种: 1. 采用In-system Memory Content Editor,通过Import File的方式把修改后的初始化文件更新到RAM中。 2. 采用Virtual JTAG定制一个RAM写入接口,连接到双端口RAM的一个空闲端口用于调试,双端口RAM的另一个端口用作正常使用。 3. 修改初始化文件,把初始化文件更新到编程文件中,通过重新下载更新到RAM中。 第一种方法原理上没有任何问题,在MegaWizard Plug-in Manager中选择Allow In-system Memory Content Editor...即可。但是,在实际应用中,只有单端口ROM可以采用该方法;单端口RAM采用该方法可以生成代码,但是不能正确编译,总是报出一些奇怪的错误;此外。双端口的ROM和RAM都不支持In-system Memory Content Editor。 第二种方法在本质上与第一种方法相同,在实际应用中也能正确编译,唯一的缺点是需要对Virtual JTAG有较深入的认识,需要手工编写一些代码,还要编写TCL脚本。 第三种方法可以不修改代码,也不需要执行全编译,只要在Quartus II集成开发环境中执行两个简单的操作即可。下面就是具体的步骤: 1. Processing -〉Update Memory Initialization File 2. Processing -〉Start -〉Start Assembler 上述操作执行完毕,把Assembler生成的编程文件下载到FPGA中,修改后的初始化文件就更新到片上存储器中了。 该方法的原理是,在Update Memory Initialization File过程中,只更新db文件夹中与RAM初始化内容相关的文件,其余文件不更新,所以不需要执行全编译;更新后执行Assembler,把新的初始化内容更新到编程文件中去。该方法类似于软件编译过程中的部分编译和重新链接。 该方法只适用于静态更新RAM内容,如果需要对RAM进行动态调试,还是用第二种方法才行。 |
|||||
| 欢迎点击进入:TI德州中文网 (国内唯一针对TI应用的中文技术网站) 文章录入:admin 责任编辑:admin | |||||
| 【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】 | |||||
| 最新热点 | 最新推荐 | 相关文章 | ||
| 上升沿和下降沿触发小论 Quartus II 7.1 (32-Bit)的安… |
| 网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!) |
| | 设为首页 | 加入收藏 | 联系站长 | 友情链接 | 版权申明 | 网站公告 | 管理登录 | | |||
|
|