采用CPLD+FLASH方案的可重构配置方法

描述

基于软件无线电的某机载多模式导航接收机能较好地解决导航体制不兼容对飞行保障区域的限制,但由于各体制信号差异较大,各自实现其硬件将相当庞大,若对本系统中数字信号处理的核心FPGA芯片使用可重构的配置方法,将导航接收机的多种模式以时分复用的方式得以实现,可以重复利用FPGA的硬件资源,达到了缩小体积,减小功耗,增加灵活性和降低系统硬件复杂程度等目的。本系统中的核心器件是新一代高档FPGA,适合于计算量大的数字信号处理,包含实现数字信号处理的DSP块、数字锁相环、硬件乘法器以及各种接口等多项技术,支持远程更新,但其配置数据大,实现较为复杂。采用CPLD+FLASH方案,有效的解决了这一问题。

1 FPGA及其可重构技术简介

现代高速度FPGA运行时需将其配置数据加载到内部SDRAM中,改变SDRAM里面的数据,可使FPGA实现不同的功能,即所谓的可重构技术。可重构技术包括静态系统重构和动态系统重构。在FPGA处于工作状态时对其部分配置数据进行更改称为动态配置,否则称为静态配置。由于本系统在工作时需要改变整个FPGA功能,所以采用静态配置。这种配置是完全的,它对整个FPGA的功能、参数完全更改,而且其引脚功能也被更改。

系统的关键部件为一片高档密度FPGA EP2S30,其要求的一次配置数据达1.205MBytes,故其配置采用“Flash存储器+CPLD主控器”的方案。

EP2S30支持5种配置方案,即AS(Active Serial)模式、PS(Passive Serial)模式、FPP(Fast Passive Parallel)模式、PPA(Passive parallel Asynchronous)模式和JTAG配置模式等。为缩短配置时间,本系统采用FPP模式,配置数据不压缩,使各配置数据长度一致,以便于分配Flash存储空间,且只需要同数据率相同的时钟信号。

2 可重构系统硬件设计

2.1 芯片介绍

2.1.1 FPGA芯片

采用Altera公司StratixⅡ系列FPGA,具有多达33880个等价逻辑单元(LE)和13552个自适应逻辑单元(ALM),支持可编程片上系统(SOPC),有多达1369Kbits片上RAM,支持NIOS嵌入式处理器,片上有多达16个DSP块和64个18位×18位硬件乘法器以及6个PLL模块,支持远程更新。其片内资源完全可以实现系统所需的数字下变频(DDC)、幅度调制与解调、方位和距离脉冲形成以及控制信号的产生等。但其配置数据达1.205MBytes,要完成多模式可重构配置,其配置数据存储器必须有足够大的空间。

2.1.2 Flash芯片

为实现快速配置,综合存储容量、工作电压以及等各方面的要求,Flash芯片选用AMD公司AM29LV065,其为8M×8bits Flash存储器,内部被分为128个64Kbytes扇区,可以存储6套配置方案数据。支持3.3V电压读写和擦除,支持扇区擦除和整片擦除,这一特性有利于实现某一配置数据单独更改。地址不变时能自动进入休眠状态,将数据锁存,从而减小功耗。

2.1.3 控制芯片

控制芯片采用Altera公司MAX7000AE系列CPLD EPM7064A,其具有ISP功能,为3.3V内核,IO口灵活方便,避免了采用单片机作为控制芯片时IO口不够用的问题。

2.2 硬件连接

配置系统硬件连接如图1所示。

无线电

配置系统中配置主控制器EPM7064A是整个配置系统的核心,它在数据加载过程中与PC机通讯,产生Flash命令控制字并将配置数据写入Flash存储器,同时对Flash存储空间进行自动分配;在配置过程中根据系统的配置模式控制信号将Flash中的数据读出并配置到FPGA中,同时完成FPGA配置所需的时序,并检测FPGA的状态,若配置成功进入休眠状态以节省功耗,若配置不成功将对FPGA进行复位并重新配置。

为简化CPLD的控制时序,便于对FPGA进行自动配置,将Flash的存储空间按顺序划分为6个块,分别存储6个配置数据。每个块包含20个扇区,1.25MBytes存储空间。

3 CPLD控制部分软件设计与实现

3.1 EPM7064A的Verilog HDL描述

EPM7064A是整个配置电路的核心,它完成Flash配置数据的加载和配置时序的产生。按照由上至下的进行设计,将其分成三个主要功能模块,即数据加载过程中与PC机通讯的UART模块、写Flash时序产生模块和配置时序产生模块,分别由Verilog HDL硬件描述语言实现。

数据加载过程中,EPM7064A的UART模块与PC机通讯,同时产生Flash编程控制字,将PC机送来的数据写入指定的块。其主要工作过程是串口模块接收到一个字节数据后,其DATARDY有效,触发Flash写模块先将三个控制字数据AA、55、A0写入Flash,然后将接收到的数据写入Flash。写Flash仿真时序图如图2所示。

无线电

数据读取和配置时序模块的主要程序代码如下:

无线电

程序代码在QUARTUSⅡ6.0下的仿真时序如图3所示。其简要工作过程是,外部conf_start信号启动一次配置,EPM7064A将nCONFIG和nSTATUS信号拉低,FPGA进入复位状态,根据mode取得相应的Flash初始地址,复位完成FPGA将nSTATUS释放,延时大约100us后EPM7064开始给FPGA提供时钟和数据,直到将配置数据全部写入FPGA,配置完成后FPGA将CONF_DONE释放,表明配置完成,FPGA进入初始化状态,经过内部初始化后,INIT_DONE变高,表明FPGA进入工作状态,各引脚将根据用户定义的状态工作。若配置过程中nSTATUS被FPGA拉低,则表明有配置错误,重新进行配置,在任何工作状态下外部指令都可以再次启动配置。

无线电

3.2 配置文件的获取

在FPGA的工程设计编译后产生的.pof和.sof文件只能直接用于在PS模式下对FPGA进行配置,要用Flash存储配置数据,需要将配置数据转换成.hexout或.hex格式,QUARTUSⅡ6.0提供两种方法得到所需的文件,一是编译时改变编译选项自动生成所需文件,二是将已有配置文件转换为所需文件格式。

4 结束语

将可重构配置方法成功应用于某导航接收机中,充分利用了硬件资源。这种可重构配置方法能根据指令自动更改FPGA配置程序,重构系统功能,实现了多模式导航体制融为一体,系统灵活性和可扩展性大大增强,以较低的成本实现复杂系统,具有一定的工程实用价值。


打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分