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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 5501|回复: 23

[求助] 关于Altera FPGA采用MAX器件实现动态加载的问题

[复制链接]
发表于 2017-10-16 20:06:25 | 显示全部楼层 |阅读模式

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

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

x
最近在做一个小课题,实现Altera FPGA的动态加载问题,在一块子板上有Stratix IV核以及MAX II核,将fpga中编译后的sof文件转换成rbf格式的文件,并通过外部显控写入板上flash中。系统上电后,通过cpld读取flash中的程序,采用fpp的加载方式加载到fpga中。

根据《stratix4_handbook》手册中page342起关于fpp加载方式的描述,有压缩/非压缩两种格式,相应的加载的时序图也不一样,前者每4个dclk输出一字节数据,后者每1个dclk输出一字节数据,详情可参考手册。可以通过项目设置生成压缩/非压缩的文件,也可以直接导出rbf文件或者通过Quartus自带的文件转换功能将sof转换成rbf文件的格式。不知这样的方式是否有问题?另外一点,我发现,不论是压缩/非压缩方式,最后生成的sof和rbf文件都差不多大小啊,没有明显区别。


本课题采用非压缩格式,时序相对简单,由于flash不是连续读取的,每次读取16位数据,因此dclk时钟并非一直都有,存在停止的时候,根据手册所说:只有在“two clock cycles after the last data byte was latched into the Stratix IV device when you do not use the Stratix IV decompression and/or design security features”情况下可以停止时钟。因此,我每读取16位数据并转换成2字节数据依次发送之后,额外再发送两个时钟,不知这样是否正确?


目前调试的时候采用cpld中读取数据,转接到fpga中去观察,采用vio手动控制的方式给出fpga_nstatus信号以及fpga_conf_done信号,signaltap采样的波形看似没问题,当我将cpld中fpga_dclk信号、fpga_data信号、fpga_nconfig信号管脚分配之后,当我开始加载后,原来的fpga中的在线配置的程序确实是掉了,但是新的flash中的程序一直加载不上。愁死我了。


不知道论坛里有没有朋友做过类似的工作,能否给小弟一点点建议一点点思路。万分感谢,抱拳!
 楼主| 发表于 2017-10-17 19:57:23 | 显示全部楼层
自己顶啊。总感觉自己代码没问题,就是加载不上啊!求助!
发表于 2017-10-18 17:16:20 | 显示全部楼层
感觉不需要转成rbf,直接转成pof加再进flash中就可以了,也不要设置压缩之类的,可以配置成功的。
 楼主| 发表于 2017-10-18 18:31:16 | 显示全部楼层
回复 3# 荒漠小草


   感谢回复。请问是直接把pof文件通过显控写入flash,非压缩,然后通过自己写接口时序程序读flash去加载呢还是可以直接用ALTERA的核( Parallel Flash Loader)呢?
 楼主| 发表于 2017-10-18 18:57:19 | 显示全部楼层
回复 3# 荒漠小草


   还有一个问题是,pof文件相对于sof以及rbf而言,大太多了,写入flash花费时间久啊。
 楼主| 发表于 2017-10-18 19:39:57 | 显示全部楼层
在配置的时候,fpga_nconfig信号正常,发送一个低脉冲后拉高,但是fpga_nstatus信号在低脉冲拉高以后再次给拉低了,根据手册所说,应该是出现error了,正在尝试解决。
 楼主| 发表于 2017-10-19 14:25:51 | 显示全部楼层
配置时钟暂停的时候,到底需不需要额外再多给两个(非压缩)或三个(压缩)周期的时钟呢?求助啊!
发表于 2017-10-21 17:12:04 | 显示全部楼层
必须是rbf文件。把你写进flash的值想办法读出来,和原始文件比较,如果有错,就查看写flash时序。
 楼主| 发表于 2017-10-23 10:06:56 | 显示全部楼层
回复 8# branch


   谢谢你的回答!我每次从flash中读取16位数据,分两个字节发送配置,用两个dclk,然后再过一段时间继续读取16位数据。手册上提到压缩/非压缩时,涉及时钟暂停的要额外给几个时钟,不知道我这种情况算是时钟暂停的吗?fpga_nstatus信号总是在拉高后又拉低。
 楼主| 发表于 2017-10-23 11:03:32 | 显示全部楼层
fpga_nstatus信号会在什么情况下拉低呢?哪些情况会导致配置错误而拉低该信号呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

×

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

GMT+8, 2024-3-29 22:08 , Processed in 0.026562 second(s), 6 queries , Gzip On, Redis On.

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