需要确认注册邮箱后才能开通博客,立即确认我的邮箱
文章 搜索 高级搜索 ?3? ?3?
  • 滤波器new!
  • LED驱动 new!
  • 新能源 new!
  • PLL
  • PCIE协议
  • 可穿戴
  • LSI
  • FCI
文章 论坛 博客 小组 研讨会
EDN电子技术论坛>博客 >rich_ard博客 >【原创】ARM对FPGA进行FPP模式的远程配置

rich_ard的博客——理查德

博主:rich_ard???? ???? ????
介绍: 学习 记录 分享
文章(11)???? 访问(5849)???? 评论(4)???? 投票(3)???? 订阅本博??

博文列表查看方式: ???

【原创】ARM对FPGA进行FPP模式的远程配置
发布时间:2014-05-29 17:37:34
技术类别:CPLD/FPGA
需要确认注册邮箱后才能下载,立即确认我的邮箱

? ? ? ? 最近的一个项目里有一项功能是,用ARM来配置FPGA,配置模式是FPP模式。这么做的目的是,ARM可以实现通过网络来实现FPGA配置文件的远程升级,从而实现FPGA的远程配置。

? ? ? ? ?参考FPGA的芯片手册中关于其FPP配置的描述,FPGA要想实现FPP配置,需要完成三步:

? ? ? ? 第一步:硬件连接。硬件连接只要按照FPGA芯片手册中提供的参考电路连接即可,要注意手册中关于FPGA的模式选择的配置电路。

? ? ? ? 第二步:配置文件的生成。测试的时候我们使用的配置文件时.rbf格式的,由Quartus II软件直接生成,也可由.sof转换得来。

? ? ? ? 第三步:按照FPP配置时序来写入配置文件。FPGA芯片手册中给出了FPP配置的时序图,按照这个时序图来编写实现FPGA配置的程序(这里是ARM程序)。

? ? ? ? 在完成第三步以后,FPGA并不能初始化成功,测量FPGA引出来的CONF_DONE引脚,也是一直为低(CONF_DONE为低,说明FPGA在配置阶段就没有成功)。起初怀疑是FPP配置的连接电路有问题,检查排除了这个可能。后猜测可能是发送的数据不对的原因,可能是ARM这边发送一个数据,但FPGA这边接收的确实错误的数据,因为这块电路板上,ARM部分的最高电压是1.8V,而FPGA这边的最高电压是3.3V。打算编写程序测试一下是否是由于传输过程中数据不能正常接收的,但是由于一些原因,最终没有测试。而是一直在测是不是ARM的配置程序有问题,问题没有找到原因。偶然一个测试发现,在ARM发送.rbf文件的数据给FPGA时,nSTATUS信号会被拉低,而不是正常写入数据是的拉高。猜测nSTATUS被拉低的原因是由于nCONFIG信号被置低了,用示波器测量在写入配置数据期间nCONFIG的变化情况,果然nCONFIG被置低,导致FPGA重新开始配置过程。为什么写入.rbf的配置数据时,nCONFIG会被置低呢?测试发现,当不写入任何数据时,只用ARM拉高nCONFIG信号,nCONFIG不会变低。我们把写入的数据换成足够多数量的0x55数据组成的数组,重新写入到FPGA中,nCONFIG信号不会被置低。由此推断nCONFIG被置低应该是写入.rbf配置文件导致的。写入.rbf文件的过程是这样的,在ARM中读取.rbf文件,把读出的数据放到一个buffer里,然后发送给FPGA。因此我们就直接把.rbf文件中的数据读出并打印出来,然后做成一个数组,重新写入FPGA,nCONFIG依然会被置低。由于之前测试过把这个数组里的数据换成0x55,nCONFIG不会被置低,因此应该不是.rbf文件的读取并写入到FPGA的过程引发的问题,而是.rbf文件本身的问题导致nCONFIG被置低的。重新在Quartus II里设置配置模式(Configure Scheme)把AS模式更改为FPP模式,并且设置成配置文件不压缩的方式,重新编译生成.rbf文件。把更改后的.rbf文件写入到FPGA中,问题就解决了,FPGA也可以正常配置并正常进入到用户模式,自此,应用ARM对FPGA进行FPP配置就大功告成了。可是,问题虽然解决了,但是还有一些疑问没有消除,如果说只是.rbf文件的格式不对,那为什么只写入0x55时nCONFIG不被置低呢?还有为什么更改后的.rbf文件就可以实现FPGA的正常配置,而之前的.rbf不能实现FPGA的配置,而且会出现nCONFIG被置低的问题?猜测问题可能的原因是,没更改的.rbf文件由于生成的时候,在Quartus II中设置的配置模式是AS模式,因此在把这个.rbf文件数据写入的时候,FPGA被引导成AS模式,所以nCONFIG会被置低。写入更改后的.rbf文件到FPGA,在这个文件中FPGA的配置模式被设成了FPP模式,所以可以实现FPGA的正常配置。写入0x55,nCONFIG不被置低,有可能是因为0x55组成的数组中,并没有FPGA配置模式的引导数据,所以nCONFIG不会被FPGA置低,而是由ARM控制,被一直拉高。

分享到:? 新浪微博 ?? 微信 ??


打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮

1.扫描左侧二维码
2.点击右上角的分享按钮
3.选择分享给朋友
qq空间 ?? 腾讯微博 ?? 人人网 ?? 百度搜藏 ??
??????有[ 0 ]名读者喜欢此文
阅读(769)?? 评论(0)?? 收藏??I?? 打印??I?? 推荐到小组??I?? 转发到我的博客 (0)
对不起,您还没有登录,请先登录注册
上一篇:【转载】一篇关于dB的文章

下一篇:【原创】FPGA配置不成功的原因分析

最近到访博主
EDNC_Will zcf287 飞言走笔
牛人有话说 - 【原创】ARM对FPGA进行FPP模式的远程配置
美国的游客 (您将以游客身份发表,请登录 | ?注册)
?
你还可以输入1000
验证码:
分享: 新浪微博?? qq空间?? qq微博?? 人人网?? 百度搜藏??
?
有 [ 0 ] 名读者发表评论 - 【原创】ARM对FPGA进行FPP模式的远程配置
转发到我的博客
评论?@理查德?的“【原创】ARM对FPGA进行FPP模式的远程配置”
最近的一个项目里有一项功能是,用ARM来配置FPGA,配置模式是FPP模式。这么做的目的是,ARM可以实现通过网络来实现FPGA配置文件的远程升级,从而实现FPGA的远程配置。参考FPGA的芯片手册中关于其FPP配置的描述,FPGA要想实现FPP配置,需要完成三步:第一步:硬件连接。硬件连接只要按照...
你还可以输入30000
同时评论给?rich_ard
????
快速回复
?
你还可以输入1000
????
引用回复
引用评论?
?
你还可以输入1000
????
博主资料

FPGA 硬件 verilog C 汇编

文章存档
最新评论
阅读排行
rich_ard的好友
rich_ard的小组???? 加入小组
EDN助学—FPGA/CPLD学习小组
成员18971名
创建者:特权同学
最新网络博文
TQ210 WINCE 大分辨率不启动的问题
决战在即:量子点与OLED谁主沉浮?
基于HDRS平台的太阳能发电设备远程故...
例说FPGA连载4:FPGA语言与厂商介绍
加速创新,努比亚突破摩尔定律
? 更多博文>>
返回博客首页
有问题请反馈