微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 在FPGA上跑微处理器遇到的问题

在FPGA上跑微处理器遇到的问题

时间:10-02 整理:3721RD 点击:
问题是这样的:
我把一个微处理器核下载到FPGA中,用FPGA板子上的flash做为微处理器的flash,问题是原来微处理器用的flash(AMD)和FPGA上的flash(intel)不一样,对其擦除和编程写入的命令字也就不一样。然后再通过原来微处理器用的编程器把应用程序下载到FPGA的flash中,感觉行不通,因为对flash的擦除和编程都是编程器自动写入的。这个问题咋个解决呢,有其他方法下载FPGA上的flash吗?

一个办法是你搞懂编程器和处理器的协议,看看能修改哪里的API函数,如果用的是keil的话,里有操作flash的一些接口函数
另一个办法是,你的fpga板子上有flash,肯定有写flash的例程了,照着写个module或者用其他软核把二进制写进去就是了



    谢谢指点,貌似用第2种办法好点,操作flash不难,难的时如何将keil编译产生的.hex文件下载到flash,FPGA中有专门的IP干这个事情的吗?

如果你的微处理器设计里面集成了flash控制器,那好办。如果没有,FPGA也没有这个IP的。需要自己写代码了。


谢谢小编的回答。
这个微处理器中有对flash进行控制的jtag控制器和编程器,但它针对的是AMD 的flash,现在想用FPGA板上的intel flash作为它的程序存储区,关键的问题是怎样才能将keil编译的.hex文件烧到这个intel flash中去,感觉单纯的写个控制flash的verilog 代码也没用啊,.hex文件的内容也没法弄进去啊

用一个跟PC通信的module跟一个controller结合,把hex文件转化成二进制文件,一页一页或一个字节一个字节地传下去。

keil编译出来的hex文件时intel格式的,你要自己做个小工具或者网上找,将hex转化成按地址排列的二进制文件。然后用接口控制一个个的传进去

先谢谢大家的回复。
发现FPGA配置有种BPI flash模式,可以把FPGA的用户数据和FPGA配置数据都放在flash中,用户数据支持.mem,.elf格式的文件,貌似这种方法可以,但还不知道.hex文件怎样转换为.mem或者elf文件。

问题已解决,将.hex转为.coe.用FPGA上的块rom做为微处理器的程序存储区.

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top