找回密码
 注册
关于网站域名变更的通知
查看: 469|回复: 1
打印 上一主题 下一主题

转——芯航线FPGA学习套件配置文件(JIC文件)固化教程

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2019-4-3 07:30 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

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

x
转——芯航线FPGA学习套件配置文件(JIC文件)固化教程
很多做过单片机的朋友都知道,我们在对mcu烧写完程序固件后,那么该程序固件就存储在了该MCU内部。即使MCU断电了再重新上电,程序也能继续运行。这是因为对MCU烧写固件的实质就是将程序固件写入到MCU的片上程序存储器ROM中,而现代的大部分MCU这个ROM都是FLASH存储器。FLASH存储器能够掉电保持数据,所以可以实现掉电程序不丢失。Altera或Xilinx的FPGA芯片,使用的是基于SRAM结构的查找表,而SRAM的一大特性就是掉电数据会丢失,当我们使用JTAG将SRAM配置文件(.sof)配置到FPGA芯片中后,这些数据是直接存储在SRAM结构的查找表中的,因此,一旦芯片掉电,则SRAM中的数据将丢失,再次上电后,SRAM中将不再有有效的数据。这也就是我们常见的,使用JTAG下载SOF固件到FPGA中后,板子重新上电,则之前下载的固件又不在了的原因。当我们的系统做稳定后并量产时,当然希望能够永久保持电路固件,即让FPGA上电后其查找表中就被写入有效的数据。但是我们又不能总是每次系统上电了就用JTAG去下载一次程序固件。因此,FPGA支持另外一种配置方式:主动串行配置。
0 s0 g4 F+ t7 o* X& _
        所谓主动串行配置,就是在FPGA芯片外部放置一片能够掉电数据不丢失的存储器,例如最常见的EPCS、QFLASH、并口FLASH,来存储设计好的电路固件。而FPGA芯片内部,则设计了一个专用的硬件电路,在芯片刚上电的时刻就主动去读取存储在该存储器中的固件,并配置到FPGA芯片的每一个SRAM中去。通过这样一种方式,即可在不改变FPGA芯片SRAM工艺的查找表结构前提下,让每次芯片上电后,都能获得有效的配置数据。外部存储电路配置信息的芯片,我们称之为配置芯片。前些年,Altera的FPGA芯片指明只能使用其公司自己发售的EPCS芯片作为外部配置器件,该EPCS芯片实质就是一个SPI接口的串行FLASH芯片,不过是经过了Altera的严格测试,性能优异。而近些年,随着芯片生产工艺的不断发展,很多其他厂家生产的SPI接口的FLASH芯片也能够达到EPCS的技术标准,因此Altera就放开了该限制,并指出可以使用其他芯片厂家生产的SPI接口的FLASH芯片代替EPCS。我们芯航线starterboard上就使用了一片ST公司生产的16Mbit的串行FLASH芯片M25P16来作为配置芯片。该芯片性能优异,完全能够达到EPCS的性能标准,而成本则只有相同容量的EPCS芯片的一半不到。

5 U8 ?) m! N' I# N2 a
        当我们需要将设计好的配置固件固化到该器件中时,有两种方式,第一种方式,也就是传统的方式是使用专用AS接口(与JTAG 10针接口独立)来直接烧写该配置芯片,该种方式需要在电路板上设置一个独立的AS接口,占用PCB板面积。第二种方式,也是现在流行的方式则是通过JTAG接口,经由FPGA芯片间接烧写该配置芯片。我们的开发板没有做独立的AS接口,因此只支持第二种烧写方式。以下对该种烧写方式以一个实际例子来进行讲解说明。
7 h$ u' V' v: ]5 g( [
一、打开希望固化的FPGA设计工程,这里我直接打开按键消抖这节课的工程。

; z0 K9 I& S2 u- e7 [# u; ^# b二、在quartus ii软件中点击File—>Convert Programming Files,如下图所示:2 q1 Y$ ~  @5 f& _, z
; T: f  P6 g  ~* m1 w( |! M. F4 R
5 U/ {, g# v. J. E: m% g

2 l* K1 d1 ?# Z: x6 Y6 a4 T" v
5 I4 \3 W. i7 i5 V8 o

2 |! E5 S. C- z3 X8 _
! U- w( C2 f7 l0 o6 P
三、    在弹出的窗口中,Programming filetype 选择JTAG Indirect Configuration File(.jic),Mode选择Active Serial,Configurationdevice选择EPCS16,File name默认是output_file.jic,这里,我们养成良好的习惯,将其改成工程名字:key_filter.jic。
2 `/ L8 m- U6 ~" A9 ^8 t

0 L2 d# q! ~, F3 [四、在input files toconvert一栏中,点击Flash Loader一项,在右侧点击Add Device选项,如下图所示:
& c1 Y$ X* H4 p# k/ R1 {& N
$ h5 w) ]1 u( F: c/ v/ v0 M! I* A3 A, V- \
五、点击Add Device选项后在弹出的选项卡中,选择EP4CE10,然后点击OK,如下图所示:
; l+ C6 y/ k$ ~. u/ u! X4 g 3 @: P9 q  J, m; u; n: L' T. E8 i

( D' b0 ]. Z3 d1 _六、点击OK后会回到先前的配置页面,此时再次鼠标点击SOF Data,再点击右侧的Add File,如下图所示:0 ~' {5 z2 ^/ u; \. z; N

! H- ~, P8 C/ ^9 c  j& ^" ]% G! {1 k+ g' @' i5 [( [
七、在弹出的窗口中,在outputfiles文件夹下找到“key_filter.sof”文件,点击open,即可添加进来,如下图所示:
, R) D" A7 }: `1 U! v2 {' N 3 \+ n3 T9 s9 r/ ]7 J: X$ [
5 S* m( J9 e4 B8 x& o3 c
八、点击open后,回到配置页面,点击Generate按钮,如下图所示:% d7 b, t6 @- {, {( z
6 s+ ?: l: i8 R% g: W/ V  O( J/ y

' E- }1 ?3 [& h) {9 D9 ^4 `九、点击Generate按钮后,则软件开始转换文件,转换成功后弹出成功提示窗口,如下图所示:' _% X6 }1 ^& t

5 g1 j6 u6 k' M( v% `. V
3 I2 V$ t4 U' k" x" S
十、点击OK即可,然后close窗口。
十一、打开QuartusII中的下载工具programmer,将原有的sof文件移出,重新添加key_filter.jic文件进来,勾选programming/configuration,如下图所示:
, C4 n0 C# Y2 Z
8 l/ }! ?  w' i# b- J# |% }' _
" U  p1 i- s1 J4 {0 f( I6 _0 n
十二、设置完成后,点击Start(前提是下载器与开发板已经正确连接),则软件开始烧录固件,整个烧录时间大约花费20秒钟左右。烧录完成后,此时固件已经保存在了配置芯片中,但是此刻FPGA还不能运行该固件,因为当前的固件是存在配置芯片中的,并没有被配置到FPGA中,因此需要让FPGA执行一次从配置芯片中主动配置固件的过程,方法很简单,给开发板断电后重新上电即可。此时,我们按下按键0或者按键1,就可以看到LED的状态发生变化了。断电再上电,固件依旧保持,整个设计固化工作完成。
游客,如果您要查看本帖隐藏内容请回复
9 j) t$ s" C6 ?0 k  a* }' J4 ]8 Q
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-10-9 14:59 , Processed in 0.140625 second(s), 26 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表