芯路恒电子技术论坛

 找回密码
 立即注册
热搜: 合集
查看: 18695|回复: 0

【工具教程】FPGA程序掉电保存,jic模式烧写EPCS,代替AS方式

[复制链接]
  • TA的每日心情
    慵懒
    2021-2-24 10:16
  • 423

    主题

    782

    帖子

    1万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    15856
    QQ
    发表于 2019-1-3 21:45:22 | 显示全部楼层 |阅读模式


    提前说明,如果您已经拥有了一个jic格式的文件,则烧写时请直接按照本文最后一张图所示的方法进行烧写即可,无需执行前面的系列转换过程。


    不同的FPGA板,其实用的FPGA芯片和EPCS存储器型号也不一样。下表为小梅哥所有FPGA板卡在执行转换时对应需要选择的型号:AC101:EP4CE6 + EPCS16
    AC601:EP4CE6/10
    (具体哪个,根据购买的型号确定)+ EPCS16
    AC606:EP4CE6 + EPCS16
    AC608:EP4CE6/10/15/22(具体哪个,根据购买的型号确定) + EPCS16
    AC609:EP4CE6/10 (具体哪个,根据购买的型号确定)+ EPCS16
    AC620:EP4CE10 + EPCS16
    AC6102(30k):EP4CE30 + EPCS64
    AC6102(40k):EP4CE40 + EPCS64
    ====================================================================



    特别说明:EPCSxxx为Altera官方原厂提供的配置器件型号,实际上就是普通的FLASH,目前业内普通都使用镁光、华邦、ST的SPI FLASH代替,我们通常使用W25Q16或M25P16代替EPCS16、使用d或W25Q64代替EPCS64,使用时,直接在软件配置中选择EPCS16或EPCS64即可正常使用。



    本文摘自《FPGA自学笔记——设计与验证》69页内容。


    2.3.1 FPGA固件存储方案

    Intel或Xilinx的FPGA芯片,使用的是基于SRAM结构的查找表,而SRAM的一大特性就是掉电数据会丢失,当使用JTAG将SRAM配置文件(.sof)配置到FPGA芯片中后,这些数据是直接存储在SRAM结构的查找表中的,因此,一旦芯片掉电,则SRAM中的数据将丢失,再次上电后,SRAM中将不再有有效的数据。而普通的MCU内部集成了片上程序存储器ROM,即使掉电后也能保存程序。这也就是常见的,使用JTAG下载SOF固件到FPGA中后,板子重新上电,则之前下载的固件又不在了的原因。
    当系统设计完成并验证结束后,准备量产时,希望FPGA能够永久保持电路固件,即让FPGA上电后其查找表中就被写入有效的数据。但是又不能总是每次系统上电后就用JTAG去下载一次程序固件。因此,FPGA支持另外一种配置方式:主动串行配置(AS)。

    所谓主动串行配置,就是在FPGA芯片外部放置一片能够掉电数据不丢失的存储器,例如最常见的EPCS、QFLASH、并口FLASH,来存储设计好的电路固件。而FPGA芯片内部,则设计了一个专用的硬件电路,在芯片刚上电时就主动去读取存储器中的固件,并配置到FPGA芯片的每一个SRAM中去。通过这样一种方式,可在不改变FPGA芯片SRAM工艺的查找表结构前提下,使得芯片每次上电后,都能获得有效的配置数据。外部存储电路配置信息的芯片称之为配置芯片。早前,原Altera公司规定只能使用其自己发售的EPCS芯片作为外部配置器件,该EPCS芯片实质就是一个SPI接口的串行FLASH芯片,只不过是经过了Altera的严格测试,性能优异。而近些年,随着芯片生产工艺的不断发展,很多其他厂家生产的SPI接口的FLASH芯片也能够达到EPCS的技术标准,因此Altera就放开了该限制,并指出可以使用其他芯片厂家生产的SPI接口的FLASH芯片代替EPCS。在芯航线的AC620上就使用了一片华邦公司生产的16Mbit的串行FLASH芯片W25Q16来作为配置芯片。该芯片性能优异,性价比较高,完全能够达到EPCS的性能标准。


    2.3.2 Cyclone IV E FPGA固件烧写方案



    当需要将设计好的配置固件固化到该器件中时,有两种方式。第一种方式,也就是传统的方式,是使用专用AS接口(与JTAG 10针接口独立)来直接烧写该配置芯片,该种方式需要在电路板上设置一个独立的AS接口,占用PCB板面积较大,使用起来不方便。第二种方式,也是现在流行的方式则是通过JTAG接口,经FPGA芯片间接烧写配置芯片,其电路如图2.52所示。AC620开发板没有设计独立的AS接口,因此只支持第二种烧写方式。

    001.png
    图2.52  JTAG接口电路图

    2.3.3 烧写文件JIC的产生



    以下将对第二种烧写方式以一个实际例子来进行讲解说明。
    1.打开希望固化的FPGA设计工程,此处以本节的工程为例。
    2.在Quartus Prime软件中点击File—>Convert Programming Files,如图2.53所示:

    002.png
    图2.53  启动Convert Programming Files
    3.在弹出的窗口中,Programming file type 选择JTAG Indirect Configuration File(.jic),Mode选择Active Serial,Configuration device选择EPCS16,File name默认是output_file.jic,这里,我们养成良好的习惯,将其改成工程名字:led_test.jic,如图2.54所示。
    003.png
    图2.54  转换配置
    4.在Input files to convert一栏中,点击Flash Loader一项,在右侧点击Add Device选项,如图2.55所示:
    004.png
    图2.55  转换选项
    5.在上一步弹出的选项卡中,选择Cyclone IV E下的EP4CE10(AC620开发板上的芯片为EP4CE10F17C8,可根据实际情况进行选择),然后点击OK,如下图2.56所示:
    005.png
    图2.56  选择器件
    6.点击OK后会回到先前的配置页面,此时鼠标再次点击SOF Data,再点击右侧的Add File,如图2.57所示:
    006.png
    图2.57  添加需要转换的sof文件
    7.在弹出的窗口中,在工程生成的output files文件夹下找到“key_filter.sof”文件,点击Open,即可添加进来,如图2.58所示:
    007.png
    图2.58  添加需要转换的sof文件
    8.点击Open后,回到配置页面,点击Generate按钮,如图2.59所示:
    008.png
    图2.59  生成jic文件
    9.点击Generate按钮后,软件开始转换文件,转换成功后弹出成功提示窗口,如图2.60所示:
    009.png
    图2.60  生成jic文件
    10.点击OK即可,然后close窗口。
    11.打开Quartus Pime中的下载工具Programmer,将原有的sof文件移出,点击Add Files重新添加Output Files文件夹下的led_test.jic文件进来,勾选Programming/Configuration,如图2.61所示:

    010.png
    图2.61 下载jic文件
    12.设置完成后,点击Start(确保此时下载器与开发板已经正确连接),则软件开始烧录固件,整个烧录时间大约花费20秒钟左右。
    烧录完成后,此时固件已经保存在了配置芯片中,但是此刻FPGA还不能运行该固件,因为当前的固件是存储在配置芯片中的,并没有被配置到FPGA中,因此需要让FPGA主动执行一次从配置芯片中配置固件的过程,方法很简单,只需开发板断电后重新上电即可。
    此时,使用杜邦线分别接触不同的电平值,就可以看到LED的状态发生变化。断电再上电,固件依旧保持,整个程序固化工作完成。



    特别注意,下载时候,只能添加一个文件,只能添加一个文件,一个jic文件或者一个sof文件,添加 两个及以上的文件是会下载失败的,新手特别注意,不懂就仔细详细认真的核对上面图2.61界面和你自己界面的差异(文件名除外。)


    补充知识
    如果您还希望了解JIC模式配置EPCS究竟是个什么原理,可以参考以下小梅哥编写的帖子:
    概述FPGA烧写JIC文件到底是个怎样的过程,怎样的操作
    http://www.corecourse.cn/forum.php?mod=viewthread&tid=27768




    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|小黑屋|Archiver|芯路恒电子技术论坛 |鄂ICP备2021003648号

    GMT+8, 2024-4-26 13:56 , Processed in 0.130401 second(s), 35 queries .

    Powered by Discuz! X3.4

    © 2001-2017 Comsenz Inc. Template By 【未来科技】【 www.wekei.cn 】

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