首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

用单片机实现可编程逻辑器件的配置

用单片机实现可编程逻辑器件的配置

基于SRAM(静态随机存储器)的可得配置PLD(可编程逻辑器件)的出现,为系统设计者动态改变运行电路中PLD的逻辑功能创造了条件。PLD使用 SRAM单元来保存配置数据决定了PLD内部的互连和功能。改变这些数据,也就改变了器件的逻辑功能。由于SRAM的数据是易失的,因此,这些数据必须保存在PLD器件以外的EPROM、EEPROM或Flash ROM等非易失存储器内,以便使系统在适当的时候其下载到PLD中,从而实现在线可重配置ICR(In-Circuit Reconfigurability)。
此PLD ICR控制电路,不但线路结构简洁、开发容易、体积小、成本低,而且在ICR控制电路中,存储PLD配置数据的Flash存储器采用并行总线,交换速度快。PLD配置数据比较大,通常都在数十KB以上,因此,如何提高ICR控制电路的配置速度,使系统上电后在最短的时间内完成配置而进入正常工作状态,将是软件设计上的一个重点。
1 基于SRAM的可得配置PLD/FPGA的结构与原理
早期的可编程逻辑器件只有可编程只读存储器(PROM)、紫外线可擦除只读存储器(EPROM)和电可擦除只读存储器(EEPROM)3种。由于结构的限制,它们只能完成简单的数字逻辑功能。其后,出现了一类结构上稍复杂可编程芯片,即可编程逻辑器件(PLD),能够完成各种数字逻辑功能。FLEX以上的器件都以SRAM为基础,使其维持状态的功耗很低,并且可进行在线配置。
采用这种结构的PLD芯片有Altera的FLEX、ACEX、APEX系列,Xilinx的 Spartan、Virtex系列。多年来,Altera公司一直致力于EPLD(Erasable Programmable Logic Device)的开发。近几年,该公司又向市场上推出了很有竞争力的CPLD器件,即FLEX(Flexible Logic Element Matrix)系列产品。相对于其他一些厂家的FPGA产品来说,Altera公司的FLEX系列产品有其独特之处,这主要表现在高密度、在线配置功能、高速度和连续式布线结构等方面。
查找表LUT(Look-Up-Table)是基于SRAM的可重配置PLD的一个重要组成部分。本质上就是一个RAM。目前,FPGA中多使用4输入的 LUT,所以每一个LUT可以看成一个有4位地址线的16×1位的RAM。当用户通过GDF原理图或VHDL语言描述了一个逻辑电路以后, PLD/FPGA开发软件会自动计算逻辑电路的所有可能的结果,并把结果事先写入RAM。这样,每输入1个信号进行逻辑运算就等于输入1个地址进行查表,找出地址对应的内容,然后输出即可。
下面是一个4输入与门的例子,实际逻辑电路LUT的实现方式如图1所示。

2 可编程逻辑器件的配置原理
当电路设计者利用MAX+PLUSII等软件工具将电路输入,并且经过编译、优化、仿真,从波形上看已经达到了最初的要求以后,就应当考虑CPLD器件的系统配置与下载方法了。在PLD/FPGA开发软件中完成设计以后,软件会自动产生一个最终的编程文件(扩展名为pof文件)。如何将编程文件烧到PLD芯片中去呢?对于基于查找表技术、SRAM工艺的FPGA(如Altera的所有FLEX、 ACEX、APEX系列,Xilinx的Sparten、 Vertex),由于SRAM工艺的特点,掉电后数据会消失,因此调试期间可以用ByteblasteMV并口下载电缆配置PLD器件。调试完成后,需要将数据固化在一个专用的EEPROM中(用通用编程器烧写)。上电时,由这片配置EEPROM先对PLD加载数据,几十ms后,PLD即可正常工作(亦可由CPU配置PLD)。
CPLD器件的工作状态分为3 种:一种称之为用户状态(usermode),指电路中CPLD器件正常工作时的状态;一种是配置状态(configuration),将编程数据装入 CPLD器件的过程,也可称之为构造;第3种就是初始状态(initialization),CPLD器件复位各类寄存器,让I/O引脚为逻辑器件正常工作准备。
Altera公司生产的具有ICR功能的 PLD器件有FLEX8000、FLEX10K、APEX和ACEX系列。它们的配置方式可分为PS、PPS、PSA和JTAG等4种方式。PS方式(被动串行配置方式)因PLD与配置电路的互连最简单,对配置时钟的最小频率没有限制而应用最广泛,因此,在ICR控制电路中也采用PS配置方式来实现ICR 功能。高仿浪琴手表高仿劳力士手表在PS方式中,由 BitBlaster.FLEX下载电缆或微处理器产生一个由低到高的跳变送到NCONFIG引脚,然后微处理器或编程硬件将配置数据送到DATA0引脚。该数据锁存至CONF_DONE变为高电平。它是先将每字节的最低位LSB送到FLEX10器件。图2是PS配置方式的时序图。CONF_DONE变成高电平后,DCLK多余的10个周期来初始化该器件,器件的初始化是由下载电缆自动执行的。在PS方式中没有握手信号,所以,配置时钟的工作频率必须低于10MHz。在多器件PS方式中,第1片FLEX10K的nCEO引脚级连到下一片FLEX10K的nCE引脚。在配置完第1个器件后,nCEO输出为低,使第2个FLEX10K器件的nCE有效,开始对第2块器件进行配置。
返回列表