芯路恒电子技术论坛

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

【智多晶FPGA-010】烧写SA5Z系列SoC FPGA逻辑和CPU软件程序程序

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

    主题

    785

    帖子

    1万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    15871
    QQ
    发表于 2022-4-6 11:46:15 | 显示全部楼层 |阅读模式

    本帖介绍如何在HQFPGA软件中烧录SA5Z系列SoC FPGA器件的逻辑程序,以及烧录含Cortex-M3硬核CPU的软件程序。



    对于SA5Z系列FPGA,HQFPGA软件默认生成bit格式的配置文件,位于工程目录下的hq_run文件夹下,该格式文件就像Quartus软件的sof文件,以及Vivado软件的bit文件,可以用来在线烧写到FPGA的sram中运行。不同的是,智多晶的软件提供了直接烧录bit文件到FPGA外置Flash中的功能,从而实现上电自动加载和运行。对于quartus和vivado,要烧录到外部flash则是需要使用经过二次转换的专用文件。

    下载bit到FPGA(掉电丢失)
    1、打开需要烧录的工程,确保工程已经经过编译生成了bit文件,那么点击菜单栏的下载按钮以打开文件烧录界面,如下图所示。

    image.png

    如果是只有一个需要烧录的bit文件,没有对应工程,或者当前工程有错误无法编译生成bit文件,需要烧录之前编译的结果,则需要仅打开hqv3软件,不打开任何工程,或者关闭已经打开的工程,然后再点击【下载】图标才能打开下载烧录界面。
    2、文件类型选择bit
    3、点击【打开】按钮以找到本工程对应的bit文件,(注意,HQFPGA软件由Eclipse修改而来,继承了Eclipse总是无法及时更新路径的恶习,选bit/bin文件一定要检查路径是否正确,否则容易对应错文件,找到上一次用过的文件);
    4、点击“检测器件”按钮以检测下载器上连接的芯片型号,对于SA5Z-30系列FPGA,检测到的结果应该为SA30K。对应SA5Z -50系列FPGA,则检测结果应该为SA50K。
    5、不勾选【下载到Flash】选项,点击“下载”以将bit文件烧录到FPGA的SRAM中。
    6、程序中如果有设计上电复位逻辑,则程序自动复位后正确运行,否则如果是以外部按键作为复位输入,则可能需要按一次复位按键程序才能正常运行。
    7、此种方式下载的文件,芯片断电后就丢失了,重新上电无法继续运行。

    image.png


    下载bit到外部FLASH(掉电不丢失)
    为了实现程序下载后芯片重新上电后能继续运行我们期望的程序,可以将bit文件烧录到FPGA的外部FLASH中,让芯片重新上电后自动从外部FLASH中加载程序并运行。
    1、勾选下载界面的【下载到flash】选项,然后页面会多显示出来几个选项
    2、第一个【flash地址】是用来指定将文件烧录到flash芯片中的什么位置的。这个功能主要用在多启动的场景,对于单独程序,按默认的000000地址烧录即可,所以不用修改。
    3、第二个【DCLK频率】是用来设置FLASH的读写时钟频率的,这个频率设置在FPGA重新上电后从外部FLASH读取配置数据时依然有效。所以这个频率的高低直接决定了FPGA上电后的程序加载速度和耗费的时间。默认的2.09M是很慢的速度,我们一般可以将频率改为不低于33.42M,这样可以做到1秒以内完成加载和运行。比如这里我们就选33.42M。
    4、设置好之后,点击下载,即可将FPGA配置文件烧录到外部FLASH中。
    5、烧录完成后,FPGA会自动从外部FLASH中重新读取配置数据并运行。
    6、重新上电,FPGA也会自动从外部FLASH中读取配置数据并运行。



    烧录bin文件
    老版本的hqfpga软件烧录flash时候也是要用bin格式的文件,但是后面软件更新后就可以直接用bit文件烧录了,所以bin文件对于纯fpga逻辑程序来说,意义就不大了,我们就不再介绍使用bin烧录纯fpga逻辑程序的方法。bin格式后面主要用于带CPU软件程序的文件烧录。


    制作并烧录含FPGA逻辑程序和Cortex-M3/Co4rtex-M33软件程序的bin文件
    1、将FPGA的bit文件转换为bin文件
    (1)、点击下载界面左侧的【转换文件】,【文本格式位流文件转换】选项选择.bit to .bin。
    (2)、点击【打开】按钮,找到需要转换的bit文件,比如我这里用CPU UART项目的uart.bit。注意检查文件路径,不要找错文件了。
    (3)、【DCLK频率】选项选择一个合适的频率,比如这里选择33.42M。【AS】传输模式和【Addr模式】默认即可。
    (4)、勾选【压缩】选项
    (5)、点击【生成】按钮即可在1秒内完成bin文件的生成,生成的文件和bit文件位于同一路径下。

    image.png

    可能有用户知道hqfpga软件本身默认就能生成bin文件,那我们这里为啥还要用转换的方式,不用hqfpga软件默认生成的bin文件呢?这个主要是当前hqfpga软件默认生成bin文件的方式,无法设置DCLK的频率,导致上电加载的速度太慢,所以我们才使用手动转换的方式,不排除后续软件会在这一块做优化和设置,但是目前还没有,所以我们只能用手动转换的方法。


    2、在MDK中生成CPU运行的程序的bin文件
    关于MDK中生成CPU运行程序的bin文件方法此处不做介绍,大家可以看我们使用MDK开发M3/M33 CPU程序的相关章节。这里假设大家已经得到了可以运行的cpu程序的bin文件。


    3、将CPU与FPGA的程序bin文件合并为一个文件
    为了将CPU的程序文件也烧录进外部FLASH中,让CPU也能从外部flash中加载程序,实现掉电不丢失,我们需要将CPU和FPGA的bin文件先合并为一个文件,再使用烧录软件烧录进外部FLASH中。以下介绍合并文件的具体操作方法。
    (1)、点击软件界面左侧的【合并文件】选项
    (2)、【二进制格式位流文件转换】项中,下拉选择【FPGA + onchip CM3】,注意,这一项容易漏选,所以这里特做提醒。
    (3)、点击【FPGA bin文件】后面的打开按钮,找到前面转换得到的fpga的bin文件。注意检查文件日期确保是最新文件。
    (4)、点击【CM3 bin文件】后面的打开按钮,找到在MDK中编译生成的对应工程的bin文件,注意CPU软件程序需要和FPGA工程是对应的,是同一套。
    (5)、对于SA50K的芯片,如果有做RAM REMAP,则在下拉框中选择对应的REMAP模式,对于SA30K,则无需关注。
    (6)、点击合并按钮,即可在1秒内完成文件的合并。合并后的文件与FPGA bin文件位于同一路径下。文件名为FPGA文件名+CM3文件名的组合。

    image.png

    4、烧录合并的文件到外部FLASH
    (1)、点击烧录软件左侧的【海狮/海豹系列FPGA】选项回到默认的下载界面
    (2)、文件类型选择【.bin】
    (3)、点击【检测器件】按钮以确保硬件连接可靠
    (4)、点击【打开】按钮,找到前面合并得到的bin文件。该文件位于和fpga的bin文件同一路径下。
    (5)、点击【下载到FLASH】按钮即可将FPGA和CPU的程序文件同时下载进外部FLASH,上电两者都能从FLASH中加载配置文件并正常运行。
    (6)、如果仅需下载到RAM中运行,掉电丢失,则可以直接点击【Burst下载到FPGA】按钮。
    (7)、下载进FLASH后,可能需要给电路板重新上电。

    image.png

    更多智多晶FPGA相关资料,请查看下述汇总贴
    【智多晶FPGA-001】小梅哥智多晶FPGA产品使用自助服务手册

    回复

    使用道具 举报

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

    本版积分规则

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

    GMT+8, 2024-5-4 23:49 , Processed in 0.134050 second(s), 35 queries .

    Powered by Discuz! X3.4

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

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