一种高档FPGA可重构配置方法

11-20| http://www.dianzi6.com | EDA/PLD|人气:152

一种高档FPGA可重构配置方法

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

  1 FPGA及其可重构技术简介

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

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

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

  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存储空间。

  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仿真时序图如图 4所示。


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

  module conf( clk20m, //设时钟频率20Mhz

  …… ) //端口列表

  …… //输入输出口定义

  …… //寄存器定义

  …… //配置模式参数定义

  …… //工作状态参数定义

  always@(posedge clk)

  begin

  if (conf_start==1) //配置启动脉冲启动一次配置

  nCONFIG<=0;

  if(nCONFIG==0)

  count1<=count1+1;

  if (count1<=50) //进入复位状态,复位时间大于2us

  state<=reset;

  if(count1>50)

  nCONFIG<=1;

  if(nSTATUS==1)

  state<=configure; //进入配置状态

  if(CONF_DONE)

  begin state<=init; count2<=count2+1;end //进入初始化状态

  if(INIT_DONE)

  begin state<=user_mode;count2<=0;end //进入用户状态

  end

  always@(posedge clk)

  begin

  case(state)

  reset: begin

  case(mode)

  conf_mode1: address<=23'h000000;

  …… //初始化该模式起始地址

  endcase

  clk_start<=0;

  end

  configure:

  begin

  if(clk_start==0)

  count3<=count3+1;

  if(count3>=2000) //进入配置模式后延时100us 开始写数据

  clk_start<=1;

  if(clk_start==1)

  begin

  DCLK<=~DCLK;

  if(DCLK==0) begin address<=address+1;DATA_OUT<=datain;end

  end

  end

  init: begin …… end //配置完成,进入初始化工作状态

  user_mode: begin …… end //初始化完成,进入用户工作状态

  endcase

  end

  endmodule

  程序代码在 QUARTUSⅡ6.0下的仿真时序如图 5所示。其简要工作过程是,外部 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提供两种方法得到所需的文件[2],一是编译时改变编译选项自动生成所需文件,二是将已有配置文件转换为所需文件格式。

  4 结束语

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


如果觉得 一种高档FPGA可重构配置方法这篇文章不错,可以推荐给朋友分享哦。
本文Tags:eda技术,eda技术实用教程,EDA/PLD,
相关EDA/PLD资料


温馨提示; 本站的资料全部免费下载,为方便下次找到本站记得将本站加入收藏夹哦,牢记网址http://www.dianzi6.com

此页提供一种高档FPGA可重构配置方法eda技术,eda技术实用教程, EDA/PLD参考。本站还有更多的EDA/PLD相关资料分享。
Copyright© www.dianzi6.com Inc. All rights reserved 。 1 2 3 4 5 6 7 8