基于DSP芯片的FPGA配置方法转让专利

申请号 : CN201811190013.4

文献号 : CN109408924B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 张慧勇白璐瑶

申请人 : 北京特种机械研究所

摘要 :

本发明涉及一种基于DSP芯片的FPGA配置方法,属于FPGA电路设计技术领域。本发明采用DSP来配置FPGA芯片,省去了FPGA专用配置芯片,将FPGA配置程序文件数据转换后烧写入DSP芯片的FLASH中,降低硬件成本。设备上电时,DSP程序模拟FPGA配置时序,将配置程序从自身FLASH存储器传入FPGA中,实现FPGA配置。DSP的FLASH程序容易通过串口、CAN、以太网等方式实现升级,便于FPGA程序更新,该方法不需要拆卸硬件设备连接仿真器,有效提高了软件升级的效率。

权利要求 :

1.一种基于DSP芯片的FPGA配置方法,其特征在于,包括以下步骤:

第一步,进行硬件电路设计

FPGA采用Altera公司的Cyclone III系列芯片EP3C10E144,将FPGA配置为PS方式,即MESEL0、MESEL1、MESEL2引脚接地;DSP采用TI公司的28系列芯片TMS320F28335,将DSP的5个GPIO引脚与FPGA相连;

第二步,进行DSP的FLASH存储区分配

DSP28335的FLASH存储区分为8个Sector:A、B、C、D、E、F、G、H,每个FLASH区大小为32K字,共计256K字,将DSP的FLASH内部存储空间分为两部分,分别用来放DSP程序、FPGA配置程序,二者共用一个FLASH,DSP程序存放在A、B、C、D四个区,DSP上电后程序自动跳转到该区域,执行DSP程序,FPGA配置程序放在E、F、G、H四个区,起始地址为0x300000;

FLASH烧写文件采用*.hex文件,为Intel‑HEX格式,Intel‑HEX文件记录了DSP芯片FLASH数据的存储位置,文件由多行数据组成,每行HEX数据包括6个部分:行起始符、数据字节数、FLASH装载起始地址、记录类型、数据、校验和;

第三步,进行FPGA配置文件格式转换及FLASH烧写

QuartusII通过设置自动产生*.ttf文件,该文件以8位十进制ascii码数据格式保存FPGA配置程序;

通过将*.ttf文件内容按照一定时序发送到FPGA实现DSP配置FPGA,FPGA配置程序烧写入FLASH采用如下方法:用记事本方法打开*.ttf文件,将*.ttf文件中的数据复制到DSP程序中,作为DSP程序的中一个常量数组const,和DSP程序一同编译、链接后,生成*.out或*.hex文件;当DSP程序烧写入FLASH内时,FPGA配置程序同时也存储入FLASH中。

2.如权利要求1所述的方法,其特征在于,第三步中,将FPGA配置程序烧写入FLASH采用的方法替换为如下方法:设计一个可执行脚本文件,将*.ttf文件中的数据按照Intel‑HEX格式自动转换为*.hex文件,采用C2Prog软件将*.hex烧写入DSP的FLASH中;

所述可执行脚本文件采用Python语言设计,是一个数据转换的可执行脚本文件,用于设置FLASH起始存储地址为0x300000,将两个8位TTF配置数据合并为一个16位数据,前一个数据放在高8位,后一个数据放在低8位,每行最大配置数据长度为32(0x20)个字节,即16字,因此每行的存储地址依次增加0x0010,生成HEX文件。

3.如权利要求2所述的方法,其特征在于,其中,DSP中的所述FPGA配置程序的设计方法为:设备上电时,DSP首先作为FPGA的外部控制器,DSP程序模拟FPGA的PS配置方式的时序,将烧写固化在FLASH存储器中的配置程序数据串行移入FPGA,然后DSP和FPGA再按照各自相应程序执行任务;

FPGA配置时序图和时序参数为FPGA芯片手册中PS配置方式,DSP配置程序流程如下,分为两个阶段:复位阶段和配置阶段:(1)复位阶段

DSP将nCONFIG置为低电平复位FPGA,FPGA处于复位阶段时nSTATUS引脚为低电平;DSP将nCONFIG从低电平变为高电平时,FPGA就将跳出复位阶段将nSTATUS拉到高电平,若nSTATUS变为高电平,FPGA即进入准备接收配置数据状态;

(2)配置阶段

DSP从FLASH存储器中读取配置数据,FLASH中配置数据存储位置起始地址为

0x0300000,最大数据长度0x020000,每个数据长度为16位,每个16位配置数据,DSP先发送高8位数据,再发送低8位数据,DSP用GPIO引脚产生DCLK时钟信号,每个DCLK上升沿到来时,通过DATA引脚发送1位数据,如此将串行数据逐位送给FPGA,FPGA配置完成时将CONFIG_DONE从低电变为高电平,DSP检查到CONFIG_DONE从低电平到高电平的跳变,意味着配置的结束,DSP和FPGA开始执行各自的任务程序。

4.如权利要求1所述的方法,其特征在于,第二步中,还采用TI公司提供的程序固化软件C2Prog,基于串口、CAN、JTAG、USB这些方式将*.hex文件烧写入28系列芯片的FLASH,实现DSP用户程序升级固化。

5.如权利要求1所述的方法,其特征在于,第二步中,用户可根据DSP和FPGA程序大小,自行调整FLASH存储区分配。

6.如权利要求1所述的方法,其特征在于,所述行起始符为“:”。

7.如权利要求1所述的方法,其特征在于,所述数据字节数为8位,最大值32即0x20、所述FLASH装载起始地址为16位。

8.如权利要求1所述的方法,其特征在于,所述记录类型为8位,类型分三种:00数据,01文件结束,04扩展地址。

9.如权利要求1至8中任一项所述的方法,其特征在于,所述每行HEX数据中的数据最多

32字节、校验和为8位。

说明书 :

基于DSP芯片的FPGA配置方法

技术领域

[0001] 本发明属于FPGA电路设计技术领域,具体涉及一种基于DSP芯片的FPGA配置方法。

背景技术

[0002] 目前,复杂的数字控制电路中一般都包含DSP(或MCU)和FPGA两个主控芯片,DSP主要实现逻辑算法功能,FPGA主要实现接口扩展功能,二者相互配合实现设备所需功能。但FPGA需要专用的配置芯片来完成程序的存储及加载,FPGA配置芯片价格不菲,且占一定的电路板面积,不利用设备的小型化;而且FPGA软件升级一般都是通过JTAG接口,连接专用仿真器的方法完成FPGA软件配置和升级,该方式需要设备拆卸开盖,将印制电路板中JTAG接口露出连接仿真器,软件升级费时费力。
[0003] 因此,需要设计一种可以省去配置芯片的FPGA配置方法。

发明内容

[0004] (一)要解决的技术问题
[0005] 本发明要解决的技术问题是:如何设计一种可以省去配置芯片的FPGA配置方法。
[0006] (二)技术方案
[0007] 为了解决上述技术问题,本发明提供了一种双基于DSP芯片的FPGA配置方法,包括以下步骤:
[0008] 第一步,进行硬件电路设计
[0009] FPGA采用Altera公司的Cyclone III系列芯片EP3C10E144,将FPGA配置为PS方式,即MESEL0、MESEL1、MESEL2引脚接地;DSP采用TI公司的28系列芯片TMS320F28335,将DSP的5个GPIO引脚与FPGA相连;
[0010] 第二步,进行DSP的FLASH存储区分配
[0011] DSP28335的FLASH存储区分为8个Sector:A、B、C、D、E、F、G、H,每个FLASH区大小为32K字,共计256K字,将DSP的FLASH内部存储空间分为两部分,分别用来放DSP程序、FPGA配置程序,二者共用一个FLASH,DSP程序存放在A、B、C、D四个区,DSP上电后程序自动跳转到该区域,执行DSP程序,FPGA配置程序放在E、F、G、H四个区,起始地址为0x300000;
[0012] FLASH烧写文件采用*.hex文件,为Intel‑HEX格式,Intel‑HEX文件记录了DSP芯片FLASH数据的存储位置,文件由多行数据组成,每行HEX数据包括6个部分:行起始符、数据字节数、FLASH装载起始地址、记录类型、数据、校验和;
[0013] 第三步,进行FPGA配置文件格式转换及FLASH烧写
[0014] QuartusII通过设置自动产生*.ttf文件,该文件以8位十进制ascii码数据格式保存FPGA配置程序;
[0015] 通过将*.ttf文件内容按照一定时序发送到FPGA实现DSP配置FPGA,FPGA配置程序烧写入FLASH采用如下方法:
[0016] 用记事本方法打开*.ttf文件,将*.ttf文件中的数据复制到DSP程序中,作为DSP程序的中一个常量数组const,和DSP程序一同编译、链接后,生成*.out或*.hex文件;当DSP程序烧写入FLASH内时,FPGA配置程序同时也存储入FLASH中。
[0017] 优选地,第三步中,将FPGA配置程序烧写入FLASH采用的方法替换为如下方法:
[0018] 设计一个可执行脚本文件,将*.ttf文件中的数据按照Intel‑HEX格式自动转换为*.hex文件,采用C2Prog软件等多种方式将*.hex烧写入DSP的FLASH中;
[0019] 所述可执行脚本文件采用Python语言设计,是一个数据转换的可执行脚本文件,用于设置FLASH起始存储地址为0x300000,将两个8位TTF配置数据合并为一个16位数据,前一个数据放在高8位,后一个数据放在低8位,每行最大配置数据长度为32(0x20)个字节,即16字,因此每行的存储地址依次增加0x0010,生成HEX文件。
[0020] 优选地,其中,DSP中的所述FPGA配置程序的设计方法为:
[0021] 设备上电时,DSP首先作为FPGA的外部控制器,DSP程序模拟FPGA的PS配置方式的时序,将烧写固化在FLASH存储器中的配置程序数据串行移入FPGA,然后DSP和FPGA再按照各自相应程序执行任务;
[0022] FPGA配置时序图和时序参数为FPGA芯片手册中PS配置方式,DSP配置程序流程如下,分为两个阶段:复位阶段和配置阶段:
[0023] (1)复位阶段
[0024] DSP将nCONFIG置为低电平复位FPGA,FPGA处于复位阶段时nSTATUS引脚为低电平;DSP将nCONFIG从低电平变为高电平时,FPGA就将跳出复位阶段将nSTATUS拉到高电平,若nSTATUS变为高电平,FPGA即进入准备接收配置数据状态;
[0025] (2)配置阶段
[0026] DSP从FLASH存储器中读取配置数据,FLASH中配置数据存储位置起始地址为0x0300000,最大数据长度0x020000,每个数据长度为16位,每个16位配置数据,DSP先发送高8位数据,再发送低8位数据,DSP用GPIO引脚产生DCLK时钟信号,每个DCLK上升沿到来时,通过DATA引脚发送1位数据,如此将串行数据逐位送给FPGA,FPGA配置完成时将CONFIG_DONE从低电变为高电平,DSP检查到CONFIG_DONE从低电平到高电平的跳变,意味着配置的结束,DSP和FPGA开始执行各自的任务程序。
[0027] 优选地,第二步中,还采用TI公司提供的程序固化软件C2Prog,基于串口、CAN、JTAG、USB这些方式将*.hex文件烧写入28系列芯片的FLASH,实现DSP用户程序升级固化。
[0028] 优选地,第二步中,还通过DSP芯片的Boot引导程序,采用以太网、1553B总线等方式将*.hex文件烧写入DSP的FLASH中,实现用户程序升级固化。
[0029] 优选地,第二步中,用户可根据DSP和FPGA程序大小,自行调整FLASH存储区分配。
[0030] 优选地,所述行起始符为“:”。
[0031] 优选地,所述数据字节数为8位,最大值32即0x20、所述FLASH装载起始地址为16位。
[0032] 优选地,所述记录类型为8位,类型分三种:00数据,01文件结束,04扩展地址。
[0033] 优选地,所述每行HEX数据中的数据最多32字节、校验和为8位。
[0034] (三)有益效果
[0035] 本发明采用DSP来配置FPGA芯片,省去了FPGA专用配置芯片,将FPGA配置程序文件数据转换后烧写入DSP芯片的FLASH中,降低硬件成本。设备上电时,DSP程序模拟FPGA配置时序,将配置程序从自身FLASH存储器传入FPGA中,实现FPGA配置。DSP的FLASH程序容易通过串口、CAN、以太网等方式实现升级,便于FPGA程序更新,该方法不需要拆卸硬件设备连接仿真器,有效提高了软件升级的效率。

附图说明

[0036] 图1是本发明中设计的DSP与FPGA的硬件连接电路图;
[0037] 图2是HEX文件格式图示;
[0038] 图3是C2Prog软件界面图示;
[0039] 图4是QuartusII自动生成的TTF文件;
[0040] 图5是本发明中脚本生成的HEX文件;
[0041] 图6是CycloneIII器件的PS配置时序图;
[0042] 图7是CycloneIII器件的PS配置时序参数例图。

具体实施方式

[0043] 为使本发明的目的、内容、和优点更加清楚,下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。
[0044] 本发明采用DSP来配置FPGA芯片,以Altera公司的FPGA芯片EP3C10E144和TI公司的DSP芯片TMS320F28335为例,设计电路原理图,省去FPGA专用配置芯片,设计了一个可执行脚本文件,将FPGA配置程序TTF文件自动转换为HEX文件,再将FPGA配置程序HEX文件烧写入DSP芯片的FLASH中。设备上电时,FPGA工作在PS模式下,DSP作为外部控制器,编程模拟PS配置方法的配置时序,将配置程序从自身FLASH存储器传入FPGA中,实现FPGA配置,然后DSP和FPGA再按照各自程序执行任务。
[0045] 具体而言,本发明的基于DSP芯片的FPGA配置方法的实现过程如下:
[0046] 第一步,进行硬件电路设计
[0047] 本实施例中,FPGA以Altera公司的Cyclone III系列芯片EP3C10E144为例,将FPGA配置为PS方式,即MESEL0、MESEL1、MESEL2引脚接地;DSP以TI公司的28系列芯片TMS320F28335为例,将DSP的5个普通GPIO引脚与FPGA相连,连接图如图1所示。
[0048] 第二步,进行DSP的FLASH存储区分配
[0049] DSP28335的FLASH存储区分为8个Sector:A、B、C、D、E、F、G、H,每个FLASH区大小为32K字,共计256K字。本发明将DSP的FLASH内部存储空间分为两部分,分别用来放DSP程序、FPGA配置程序,二者共用一个FLASH。DSP程序存放在A、B、C、D四个区,DSP上电后程序自动跳转到该区域,执行DSP程序。FPGA配置程序放在E、F、G、H四个区,起始地址为0x300000。用户也可根据DSP和FPGA程序大小,自行调整FLASH存储区分配。
[0050] 目前使用最广泛的FLASH烧写文件为*.hex文件(Intel‑HEX格式),Intel‑HEX文件记录了DSP芯片FLASH数据的存储位置,HEX格式如附图2所示,文件由多行数据组成,每行HEX数据包括6个部分:行起始符(:),数据字节数(8位,最大值32即0x20)、FLASH装载起始地址(16位)、记录类型(8位,类型分三种:00数据,01文件结束,04扩展地址)、数据(最多32字节)、校验和(8位)。
[0051] TI公司提供了一个程序固化软件C2Prog(见附图3),可使用串口、CAN、JTAG、USB等方式将*.hex文件烧写入28系列芯片的FLASH,实现DSP用户程序升级固化;用户可自行设计DSP芯片的Boot引导程序,采用以太网、1553B总线等方式将*.hex文件烧写入DSP的FLASH中,实现用户程序升级固化。
[0052] 第三步,进行FPGA配置文件格式转换及烧写FLASH
[0053] FPGA开发环境QuartusII开发平台对不同器件有不同的配置文件,配置文件大小和数据格式也不同,JTAG模式对应sof配置文件,AS模式对应pof配置文件。*.sof或*.pof文件不能直接烧写入DSP的FLASH,用于配置FPGA,因此需要进行数据转换。
[0054] QuartusII可通过设置可自动产生*.ttf文件(见图4),该文件以8位十进制ascii码数据格式保存FPGA配置程序。
[0055] DSP配置FPGA本质就是将*.ttf文件内容按照一定时序发送到FPGA。FPGA配置程序烧写入FLASH有两种方法:
[0056] 1)用记事本方法打开*.ttf文件,将*.ttf文件中的数据复制到DSP程序中,作为DSP程序的中一个常量数组(const),和DSP程序一同编译、链接后,生成*.out或*.hex文件;当DSP程序烧写入FLASH内时,FPGA配置程序同时也存储入FLASH中。
[0057] 2)设计一个可执行脚本文件,将*.ttf文件中的数据按照Intel‑HEX格式自动转换为*.hex文件,采用C2Prog软件等多种方式将*.hex烧写入DSP的FLASH中。
[0058] 第一种方法无需进行数据格式转换,无需编写可执行脚本文件,但每次FPGA程序更改,连同DSP程序需要一起更改,不灵活;第二种方法较为灵活,可单独烧写FPGA程序,本发明采用Python语言设计一个数据转换的可执行脚本文件,设置FLASH起始存储地址为0x300000,将两个8位TTF配置数据合并为一个16位数据,前一个数据放在高8位,后一个数据放在低8位,每行最大配置数据长度为32(0x20)个字节,即16字,因此每行的存储地址依次增加0x0010,生成后的HEX文件如图5所示。
[0059] 其中,DSP中的FPGA配置程序设计方法为:
[0060] 设备上电时,DSP首先作为FPGA的外部控制器,DSP程序模拟FPGA的PS配置方式的时序,将烧写固化在FLASH存储器中的配置程序数据串行移入FPGA,然后DSP和FPGA再按照各自相应程序执行任务。
[0061] FPGA配置时序图和时序参数参见FPGA芯片手册中PS配置方式,见附图6和附图7。DSP配置程序流程如下,分为两个阶段:复位阶段和配置阶段。
[0062] (1)复位阶段
[0063] DSP将nCONFIG置为低电平复位FPGA,FPGA处于复位阶段时nSTATUS引脚为低电平;DSP将nCONFIG从低电平变为高电平时,FPGA就将跳出复位阶段将nSTATUS拉到高电平,若nSTATUS变为高电平,FPGA即进入准备接收配置数据状态。
[0064] (2)配置阶段
[0065] DSP从FLASH存储器中读取配置数据,FLASH中配置数据存储位置起始地址为0x0300000,最大数据长度0x020000,每个数据长度为16位。每个16位配置数据,DSP先发送高8位数据,再发送低8位数据,DSP用GPIO引脚产生DCLK时钟信号,每个DCLK上升沿到来时,通过DATA引脚发送1位数据,如此将串行数据逐位送给FPGA。FPGA配置完成时将CONFIG_DONE从低电变为高电平,DSP检查到CONFIG_DONE从低电平到高电平的跳变,意味着配置的结束,DSP和FPGA开始执行各自的任务程序。
[0066] 可以看出,本发明采用DSP配置FPGA,可以实现:1)省去了FPGA专用配置芯片,降低硬件成本,并能减小主板面积;2)DSP中FLASH程序容易通过串口、CAN、以太网等方式实现升级、固化,同时也可实现FPGA程序的更新,该方法不需要拆卸硬件设备连接仿真器,有效提高了软件更新的效率。
[0067] 以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。