当前位置:首页 > 工业控制 > 电子设计自动化

  摘 要: 介绍了采用CPLD和Flash器件对FPGA实现快速并行配置,并给出了具体的硬件电路设计和关键模块的内部编程思路。
  关键词: FPGA 并行配置 Flash CPLD


  基于SRAM工艺的FPGA(现场可编程门阵列)具有集成度高、逻辑功能强等特点;应用FPGA进行数字电路设计,不但能减小电路的体积,提高系统运行的可靠性,而且其先进的开发工具可使电路设计和系统调试周期大大缩短;FPGA可无限次重复擦写,可使数字系统在线重新配置,设计更加灵活,功能更加强大,且易于更改和升级。由于FPGA中静态随机存储器(SRAM)掉电后数据会丢失,系统每次上电后需重新配置数据,如何快速、高效地将配置数据写入目标器件,并且保证其在掉电后再次上电能自动可靠地恢复配置,就成为整个系统的关键所在。本文就基于CPLD的FPGA并行数据配置方法和配置电路的设计进行初步的研究,并给出具体的硬件电路设计和关键模块的内部编程思路。
1 FPGA数据配置方法比较
  实现FPGA的数据配置方法有很多,但根据器件类型和应用场合,Xilinx公司为其FPGA系列产品提供了多种数据配置方式,归纳起来主要有以下四种[3]:①采用JTAG方式加载;②采用主串方式加载;③采用从串方式加载;④采用并行方式加载。
  JTAG方式数据加载方法是基于IEEE1149.1和IEEE1532的配置模式,通过TDI、TDO、TMS和TCK四根信号线接到FPGA上的相应引脚实现数据加载。这种方式电路结构简单、工作可靠、无需外接PROM等存储器件进行数据配置,但需要专用的数据配置电缆,因此该方法适用于数字系统的开发阶段。
  主串方式数据加载方法是通过串行方法读取专用PROM存储介质中数据,实现FPGA的在线配置的,其配置时钟由FPGA内部送出。这种方式电路实现较为简单,但该配置方式必须使用Xilinx公司生产的专用PROM,应用不灵活。
  从串方式数据加载方法类似于主串方式,但配置时钟由FPGA外部提供,需要设计专用电路控制整个配置过程。
  并行方式数据加载方法是通过并行方法读取通用Flash或E2PROM等存储介质中的数据,实现FPGA的在线配置的。由于采用并行方式,八位数据可同时被写入FPGA,数据配置速度最快。其配置时钟由外部提供,需要设计专用电路控制整个配置过程。常用的配置控制器可以是各类处理器、微控制器或可编程逻辑器件,目前应用较多的是采用单片机和E2PROM构成控制电路。随着FPGA规模和性能的不断提升,其配置文件越来越大,对配置速度的要求也越来越高,所以快速的并行配置方式必将得到越来越广泛的应用。
2 FPGA并行方式数据配置原理
  采用并行方式进行FPGA数据配置时,其相关配置引脚可分为专用配置引脚和非专用配置引脚。专用配置引脚包括:配置模式引脚M2、M1、M0;配置时钟引脚CCLK;配置逻辑异步复位引脚;启动控制引脚DONE。这些引脚只在配置时起作用,配置完成后不能作其它用途。非专用配置引脚包括:数据接口D0~D7、片选信号CS、写信号、BUSY、等引脚,这些引脚在配置时作为信号通道使用,配置完成后还可作为普通I/O口使用。数据配置时序如图1所示。当为低电平时,FPGA内部数据初始化,初始化完成后,DONE信号变为低电平,同时信号自动置为低电平,开始清空配置存储器。配置存储器清空后,信号重新被置为高电平,同时器件对模式引脚进行采样,确定以并行方式加载配置数据。当、信号都为低电平时,就可以通过数据接口D0~D7进行数据配置。图1清晰地表明了并行配置的全过程。


3 系统设计
3.1 系统组成
  并行方式的FPGA数据配置系统由上位机、可编程逻辑器件(CPLD)、Flash、FPGA等组成,其结构如图2所示。控制器件对整个系统的性能具有重要影响,低成本的处理器、微控制器工作频率较低,在对速度要求较高的场合,会成为系统速度的瓶颈,不能发挥并行配置的速度优势,而且仅作为配置控制器使用又造成资源的浪费。采用CPLD作为控制器,Flash作为存储器件,不仅能满足速度和功能的要求,而且硬件电路更为简洁。


  并行数据配置系统的上位机可以选用PC机、工控机等,主要对CPLD进行简单的功能控制,并对系统数据进行处理。CPLD是整个系统设计的核心,其主要功能是进行配置控制和地址生成。Flash闪存是配置文件的存储器件,由专用开发工具生成FPGA配置文件,预先烧写进Flash中。FPGA是系统中配置的目标器件,本系统采用六片Spartan II系列中的Xilinx XC2S200。
3.2 硬件设计
3.2.1 芯片选型
  配置电路中CPLD采用XC9500系列中的XC9536芯片,宏单元数目为36个,采用快闪存储技术,最高工作频率可达100MHz。PC44封装的XC9536包括时钟端口在内共有34个通用I/O口,可以满足系统的要求。配置存储器采用Winbond公司的W29C040-90,其512K×8bit的容量可以依次存放三个不同的配置文件,存取周期可达90ns。Spartan II系列FPGA的配置时钟最高可达66 MHz,但考虑到闪存的存取时间限制,配置晶振采用8MHz有源晶振。
3.2.2 原理图
  配置电路接口如图3所示,并行配置的多片FPGA的控制信号CCLK、、、DONE、和BUSY以及数据线DATA(7:0)并行连接,通过分别设置片选信号CS(0:5)实现各器件的依次配置,直到所有FPGA都配置完成后才进入START-UP阶段,经过八个时钟周期延迟后一起进入工作状态。


  图中Flash的存储区被分配成三个区域,分别存储不同的配置文件。其使能信号和地址信号由CPLD提供,当EN为高时,在时钟信号的下降沿对应A(18:0)的八位数据就出现在数据线D(7:0)上。CPLD的作用主要是:①实现与上位机通讯,接收指令并将工作状态反馈到上位机;②通过置PROG低电平控制FPGA的初始化过程;③初始化完成后,控制各FPGA的配置过程。
  在数据配置过程中,相应FPGA的和信号应置低电平,若CS信号已被设置,则的状态就不能改变,否则将引起一个Abort过程[1],使配置过程中断。为确保在CCLK上升沿采到正确的数据,在CCLK下降沿改变数据线D(7:0)上的数据。在CCLK的上升沿,若BUSY信号为低电平,数据在此时钟周期内被接收;若BUSY为高电平,数据不能被接收,直到BUSY变低后的第一个时钟周期才能继续接收数据。因此,这时的配置数据需要一直保持。
  需要注意的是,多片FPGA的START-UP过程是同时进行的,为实现这一功能,在由Xilinx的开发工具ISE[4]中生成配置文件时,需要修改相应的属性。
3.3 软件设计
  CPLD的设计是本系统中最重要的部分,它所实现的功能模块包括接口模块、控制模块、地址发生器模块。接口模块实现与上位机的通信,接收上位机的指令并作相应处理,同时将工作状态反馈给上位机;控制模块提供控制时序命令,操纵整个配置过程;地址发生器模块为读取闪存数据提供数据地址。内部各功能模块采用VHDL硬件描述语言实现,控制主程序用mealy状态机实现。控制主程序的状态转移图如图4所示,其中状态Start是初始状态,Init是初始化过程,Clear RAM过程清空配置存储器,Config是配置过程,Wait过程是配置多片FPGA的中间过程。


  控制模块根据上位机的控制指令完成FPGA的初始化、配置等过程,并将运行结果回传给上位机。由VHDL硬件描述语言生成的原理图符号如图5所示,其中,CLK是配置时钟,RESET是启动信号,DONE、是FPGA的反馈信号,CEND是地址发生器模块计数结束标志,EN是计数允许信号;、是控制信号,TRUE、FALSE是状态信号,反馈给上位机;CS(0:3)是多片FPGA的片选信号。控制模块的ModelSim仿真结果如图6所示。


参考文献
1 Xilinx Spartan II 2.5V FPGA Complete Data Sheet. Xilinx,2004
2 王道宪.CPLD/FPGA可编程逻辑器件应用与开发[M].北京:国防工业出版社, 2004
3 任晓东,文博.CPLD/FPGA高级应用开发指南[M]. 北京:电子工业出版社, 2003
4 王诚.FPGA/CPLD设计工具Xilinx ISE 5.X使用详解[M]. 北京:人民邮电出版社, 2003
5 房 磊,张焕春. FPGA的配置及接口电路[J]. 世界电子元器件, 2003(11):55~57

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

Bluespec支持加速器功能的RISC-V处理器将Achronix的FPGA转化为可编程SoC

关键字: RISC-V处理器 FPGA SoC

为无处不在的端侧设备插上AI的翅膀,AMD发布第二代Versal™ 自适应 SoC

关键字: AMD FPGA 自适应SoC AI 边缘计算

在现代电气和电子工程领域,分流器作为一种重要的电气元件,广泛应用于各种电路中。它不仅能够有效地将电流分配到不同的支路,还能实现电路的保护和测量功能。本文将详细介绍分流器的使用方法、应用场景以及实用技巧,帮助读者更好地理解...

关键字: 分流器 电气元件 电路

Pmod接口可以说是数字电路板的连接革命。随着科技的飞速发展,数字电路板间的通信与连接技术也在不断创新和进步。Pmod接口,作为一种新兴的数字接口标准,正逐渐成为数字电路板间通信的桥梁,为电子设备的连接和通信带来了革命性...

关键字: pmod接口 FPGA 数字电路板

将测量电流的电极接入电路,注意不要混淆正负极,否则会发生短路,万用表的正负极正确接入电路,然后读取电流值。

关键字: 万用表 电路 正负极

在科技飞速发展的今天,比较器作为一种关键的电路或装置,其在数字系统、模拟电路以及信号处理等领域发挥着至关重要的作用。比较器的主要功能是对两个或多个数据项进行比较,以确定它们是否相等,或确定它们之间的大小关系及排列顺序。本...

关键字: 比较器 电路

为增进大家对混合集成电路的认识,本文将对混合集成电路的相关内容予以介绍。

关键字: 电路 指数 集成电路

为增进大家对集成电路的认识,本文将对集成电路的种类、应用以及芯片的种类、应用予以介绍。

关键字: 电路 指数 集成电路

为增进大家对集成电路的认识,本文将对集成电路、集成电路和芯片的主要差异予以介绍。

关键字: 电路 指数 集成电路

近日举办的GTC大会把人工智能/机器学习(AI/ML)领域中的算力比拼又带到了一个新的高度,这不只是说明了通用图形处理器(GPGPU)时代的来临,而是包括GPU、FPGA和NPU等一众数据处理加速器时代的来临,就像GPU...

关键字: FPGA AI 图形处理器
关闭
关闭