您的位置  > 互联网

2从串配置的原理公司-3E系列FPGA

FPGA(Field Gate Array)是一种高密度现场可编程逻辑器件。 其逻辑功能是通过将设计生成的数据文件配置到器件内部的静态配置数据存储器(SRAM)中来实现的。 FPGA可重新编程,可以灵活地实现各种逻辑功能。

基于 SRAM 技术的 FPGA 具有易失性。 系统断电后,其内部配置数据很容易丢失,因此需要外部ROM来保存其配置数据。 系统上电后,必须重新配置数据才能正常工作。 目前有两种解决方案可以实施。 一种是使用专用的PROM。 以公司的FPGA和XCFxx系列PROM为例,可以提供FPGA的配置时序,并在上电时自动将PROM中的配置数据加载到FPGA的SRAM中; 另一种是使用专用的PROM。 一种是使用其他非易失性存储器(例如闪存)来在包含微处理器的系统(例如嵌入式系统)中存储配置数据。 微处理器模拟FPGA的配置时序,并将ROM中的数据放入FPGA中。 与之前的方案相比,该方案节省了成本,减小了系统规模。 适用于对成本和体积要求严格的系统。

在便携式虚拟仪器的设计中,采用嵌入式系统和FPGA来实现系统功能。 嵌入式微处理器采用公司系列处理器:FPGA采用公司-3E系列并采用正确的配置。 取得了良好的成果。

2 从机串配置原理

2.1 从机串配置原理

公司的-3E系列FPGA产品是采用90 nm工艺的2.5 V低压FPGA器件

该软件具有高性能、低功耗、无限编程等特点。 它是-3E系列FPGA之一,总门数为10万门。 可配置为从串行、主串行、从并行、主并行、JTAG等模式[2]。 与从串配置模式相关的主要引脚功能如下:

M[2:0]:配置模式选择。 M2、M1、M0均接上拉电阻,即M[2:0]:111为从串模式;

CCLK:配置时钟,微处理器提供时钟源,上升沿有效:

DIN:串行配置数据输入:

DOUT:用于菊花链配置的串行数据输出:

:低电平异步复位FPGA内部逻辑,内部可配置:完全复位后,该引脚指示高电平。

当该引脚为高电平时,可以对 FPGA 进行配置:

:从低电平跳变到高电平时,采样配置模式,即M[2:0]的值决定配置模式; 如果配置过程中出现配置错误,会出现低电平;

DONE:复位时低电平。 如果配置成功,则为高级别。

2.2 微处理器从机串配置:FPGA 时序

FPGA的配置流程如下:

系统上电后,会将其拉低,复位FPGA内部逻辑,从而重新配置FPGA。 完全复位内部逻辑后(约100μs),将PROG_置高。

为低电平,拉高300ns后,FPGA将置高。 在从低电平转变为高电平的瞬间,对配置模式M[2:0]进行采样。 本系统采用从机串配置方式。

FPGA采样配置模式后,微处理器可以将时钟CCLK和数据配置到FPGA。 在CCLK的上升沿,数据被传输到DIN。 数据字节先发送到低位,然后发送到高位。 如果配置过程中出现错误,则为低级错误。

所有配置数据均已传输且 CRC 校验正确。 那么DONE为高电平,否则为低电平。

DONE 为高电平,FPGA 释放全局三态(GTS),激活 I/O 引脚,释放所有置位复位(GSR)和全局写使能(GWE)有效,开始执行配置区逻辑。

微处理器从串配置FPGA的时序如图1所示。

2.3 如何生成配置文件

使用公司提供的开发工具ISE8.1,经过综合、映射、布局布线后即可生成编程文件。 编程文件包括.bit、.bin、.mcs、.tek、.hex 等格式。 其中.bit格式用于JTAG,其他几种格式用于专用PROM编程。 首先按照生成专用PROM编程文件的方法生成.bin文件。 然后将.bin文件转换为ASCII码文件的存储形式,并用逗号分隔各个字节。 然后将配置数据作为系统程序源代码的一部分存储在系统程序头文件的数组[]中,并与其他程序一起编译。

3 硬件设计

嵌入式微处理器内置内核,集成了丰富的外围功能模块。 内部8 kB Cache大大提高了性能。 它可以访问 256MB 的地址空间,并以 66 MHz 的频率运行。 4 MB Flash用作程序存储器,可用于存储系统运行代码。 从机串配置程序和配置文件都固化保存在其中。 Flash支持低电压(1.65V~3.3V)写入操作。 8MB的SDRAM是程序的运行空间,直接运行Flash中的代码,但速度很慢。 通常Flash中的代码被移动到SDRAM中。 主要通过DONE、DONE、CCLK和DIN连接5条信号线,如图2所示。其中,VCC33代表3.3V,VCC25代表2.5V。

4 软件设计

软件设计流程如图3所示。配置软件的编程必须保证ARM完全按照配置信号的时序工作。 关键问题是

通用I/O口GPF0、GPF1、GPF2、GPF3、GPF4用于模拟DIN、CCLK、DONE等时序。

其中,大部分引脚都是多功能引脚,可以通过端口配置寄存器选择相应的引脚功能。

以F口为例,控制寄存器用于设置该引脚的输入、输出或特殊功能; 数据寄存器[0:8]对应GPF0~GPF8引脚上的数据。 读写寄存器的每一位对应引脚的读或写。 例如对GPF1先写0再写1得到CCLK上升沿时序,延时程序通过for循环实现。

然后继续循环等待

CCLK 在每个上升沿将 1 位数据放入 DIN。 首先将GPF1设置为低,在GPF0中准备1位数据,然后将GPF1设置为高。 这样,[]中的每个字节就按照先低位后高位的顺序循环写入到FPGA中。

无论FPGA内部逻辑设计的复杂程度如何,FPGA配置文件的大小都是相同的。 以10万门系列FPGA为例,其配置文件固定为581 344位。 如果CCLK时钟周期设置为2μs,则配置时间约为1.2s。

5 实验结果验证

验证环境:硬件采用自主研发的实验板和武汉创维公司的JTAG硬件仿真器; 该软件采用该公司的开发工具ISE8.1和武汉创维公司的集成开发环境ADT 1000(支持ARM7、ARM9)。

使用HDL编写程序led.v,在七段数码管上循环显示0~F。 使用ISE8.1进行编译、综合、映射、布局和布线。 生成用于编程专用 PROM 的 led.bin 文件。 使用简单的C程序将.bin文件转换为ASCⅡ代码文件,然后将ASCⅡ代码文件复制到配置数据数组[]中,然后在ADT环境中编译配置程序、配置数据和系统程序,并转换生成的 .bin 文件通过 JTAG 口编程到 Flash 中。 再次上电后,FPGA配置正常,实验结果与预设一致。

六,结论

基于ARM的FPGA从串配置方案结构简单、接线方便、软件编程简单,非常适合嵌入式系统设计。 该控制电路虽然是针对该公司的-3E系列FPGA设计的,但稍加修改也可以用于其他系列的FPGA器件,因此具有一定的通用性。 另外,由于FPGA具有可重构的灵活性,在嵌入式系统中,可以通过串口和网口对Flash进行远程编程,重构系统功能。 这种在线重构技术为智能在线维护、功能重组和在线升级等提供了可能性,并且具有高度的灵活性。 本文提出的方案对数字系统设计具有参考意义,具有广阔的应用前景。