您当前的位置:五五电子网电子知识单片机-工控设备DSP/FPGA技术基于SRAM编程技术的PLD核心可重构电路结构设计 正文
基于SRAM编程技术的PLD核心可重构电路结构设计

基于SRAM编程技术的PLD核心可重构电路结构设计

点击数:7298 次   录入时间:03-04 11:43:15   整理:http://www.55dianzi.com   DSP/FPGA技术

  八十年代中期,高密度可编程逻辑器件(Programmable LogIC Device,简称PLD)的出现开辟了一种数字逻辑电路实现的新方式。高密度的PLD可以分成两大类:复杂可编程逻辑器件(Complex Programmable Logic Device,简称 CPLD )和现场可编程门阵列(FiELD Programmable GateArray,简称 FPGA ),主要基于三种编程技术:有限编程次数(一般数百次到上万次)的EEPROM(电可擦除只读存储器)、无限编程次数的SRAM(静态随机存储器)和仅可编程一次的Antifuse(反熔丝)。当前,主流的CPLD都是采用基于EEPROM的乘积项(Product Term,简称 P-Term )结构,而主流的FPGA则采用基于SRAM的查找表(Look-up Table,简称LUT)结构和基于Antifuse的多路开关单元结构。其中,基于SRAM的FPGA由于可以在系统中重构甚至动态重构,所以应用灵活性最大。

  近十年来兴起的 可重构技术 起源于FPGA可编程结构的思想。该技术在应用中可以获得很好的速度和灵活性之间的折衷,填补了传统的软、硬件应用实现方案之间的空白。可重构技术是指利用具有硬件可重构结构的电路构建系统来满足较宽范围应用的实现技术。采用FPGA作为重构系统的核心既可以大大缩短系统开发时间,又可以获得很高的灵活性以节约资源。FPGA中含有大量的触发器(多达上千个)和结构灵活的LUT,适合实现细颗粒度的且基于流水线的通用计算。对于可重构多总线控制和网络中数据包相关的不同协议处理等应用,需要时时变换的译码和控制。重构系统在完成上述应用时,需要可以动态重构的复杂状态机和译码电路。由于这些电路中组合逻辑复杂且输入数目大而触发器很少,因此,用FPGA实现会造成单元中触发器大量浪费,而且利用多个LUT的级连实现大输入的组合逻辑,会使性能大大降低,难以满足速度上的要求。

  CPLD的结构非常适于实现上述逻辑功能。但是,CPLD的EEPROM编程速度低且编程次数有限又不适合要求快速频繁重构的动态重构系统的应用。

  显然,设计基于SRAM编程技术的CPLD可以很好解决上述应用问题。CPLD的设计和实现的关键问题是核心可编程电路结构的实现。因此,本文主要探讨针对CPLD的核心可编程结构,如何设计具有相似功能且基于SRAM编程技术的电路结构,从而更好满足动态重构系统中实现复杂状态机和译码电路的应用。

  CPLD的核心可编程结构介绍

  CPLD由若干宏单元和 可编程互连线 构成。每个宏单元包括5个乘积项、1个异或门、1个5输入或门和1个触发器。乘积项是宏单元的核心可编程结构,可以灵活实现大输入数目宽与门功能。如图1a所示,P-Term是一个由EEPROM晶体管构成的阵列。该阵列中每个EEPROM晶体管相当于一个可编程开关,编程之后,处于“开”状态的EEP2ROM晶体管同普通晶体管一样,受栅极输入控制充当宽与门的下拉开关,而处于“关”状态的EEP2ROM晶体管是断路,栅极的输入对宽与门无贡献。这样,P-Term所实现的逻辑功能可由式(1)给出:

基于EEPROM的可编程宽与门结构

  (a) 基于EEPROM的可编程宽与门结构

MAX7000中的PIA可编程结构

  (b) MAX7000中的PIA可编程结构

  图1 电路结构图

公式

  式(1)中,C1~Cn对应图1(a)中的n个EEPROM晶体管编程后所处的状态。当第i(i=1~n)个位置的EEPROM晶体管开时,Ci为0,反之,Ci为1。当前,主流的CPLD全部采用这种结构,比如ALTEra公司的MAX7000系列和MAX9000系列、Xilinx公司的XC9500系列以及Lattice公司的ispLSI系列等。

  可编程互连线是CPLD中另一个核心可编程结构。该结构是包含大量可编程开关的互连网络,提供芯片的I/O引脚和宏单元的输入输出之间的灵活互连。具有固定的延时是CPLD中可编程互连线的最显著特点。不同于FPGA的分段式可编程互连方式,CPLD结构采用全局式的可编程互连网络来集中分配互连线资源,这样可以使连线路径的起点到终点延时固定。而FPGA中连线路径的起点到终点之间经过的分段连线数目不固定,因此延时也是不固定的。相比之下,CPLD在实现较复杂的组合逻辑时可以消除信号之间的歪斜,更容易消除竞争冒险现象。目前,主流的CPLD全部采用连续式互连线结构,比如MAX7000中的PIA结构和XC9500中的FastCONNECT结构。图1(b)给出了MAX7000中PIA的逻辑结构。该结构中,每个编程节点的EEPROM晶体管控制2输入与门的1个输入端来决定另一输入端信号的取舍。

  综上所述,CPLD的核心可编程结构是P-Term和具有固定延时的可编程互连线结构。

www.55dianzi.com   基于SRAM编程技术的PLD电路结构设计

  针对 CPLD 的核心可编程结构—— P-Term 和具有固定延时的 可编程互连线 ,设计了基于SRAM编程技术的新电路结构,下面做详细介绍。

  SRAM编程单元的电路结构设计

  基于SRAM的编程技术是将PLD的每一位配置数据相应存储在SRAM单元中。如图2a所示,

SRAM编程单元结构

  (a) SRAM编程单元结构

SRAM单元的Hspice仿真结果

  (b) SRAM单元的HspICe仿真结果

  图2 电路结构与仿真结果图

  本设计采用5管单元的SRAM结构。该结构由2个CMOS反向器组成环路形成双稳态。不同于普通的SRAM,PLD的SRAM编程单元不需要读出功能,仅需写入的字线和位线。图2(a)中的输出信号Q和Qn直接控制晶体管开或关来完成可编程的功能。这种结构设计的关键之处在于选择适当的晶体管尺寸以保证当字线选通位线时,data信号的正常逻辑值可以改变单元的状态。因此,本设计确定字线控制的晶体管和反向器A具有较强的驱动能力,而反向器B的驱动能力较弱,适当调节晶体管的宽长比,以保证编程数据的快速写入。图2(b)给出了本设计中SRAM单元的Hspice仿真结果(基于2.5V、0.25μmCMOS工艺库的模型参数,后面的仿真结果都是基于这个工艺库),图中a和b两条曲线分别代表信号Q和Qn。图2(b)中的(1)和(2)图分别表示Q和Qn在写入高电平(单元中存储的是低电平)和低电平(单元中存储的是高电平)时的变化情况。从图中可以看出,写入的最大延时约为650ps,发生在写入高电平时。这样,该结构完全可以满足高速重构的配置速度要求。

  基于SRAM编程技术的P-Term电路结构设计

  基于SRAM的P-Term结构的设计核心是可编程宽与门的结构设计,即设计能够实现式(1)功能的结构。理论上,实现式(1)功能的结构有很多,比如采用静态CMOS逻辑门或传输门构成的逻辑,但是P-Term的输入数目巨大,可达88个输入,这样,采用上述结构在电路面积和性能上根本无法接受。而采用类NMOS电路结构在面积和性能上可以获得很好的效果,但是这种电路在输出低电平时存在电源到地的直流通路,存在静态功耗,而且输出低电平不是0,而决定于上拉和下拉倒通电阻的分压比。可见,这种电路的设计重点在于上拉结构的设计。本文设计的基于SRAM的可编程宽与门电路结构就是以类NMOS结构为基础的,采用可编程上拉结构控制功耗和性能的折衷。

  本文设计的电路结构如图3(a)所示,输入个数n=88。采用NMOS晶体管构成下拉网络,对应每一个输入的下拉结构是输入控制的NMOS管串联SRAM控制的NMOS管。SRAM中的编程数据控制对应晶体管的开关来决定相应的与门输入的取舍。输出采用2个反向器构成缓冲,解决类NMOS电路输出低电平不是0的问题。可编程的上拉结构由a、b、c三个PMOS管并联构成,其中PMOS管c常通,a和b受SRAM编程控制开或关。这样,该结构在SRAMa和SRAMb的编程控制下,具有三种不同的速度和功耗模式:高速高功耗(PMOS管a和b都通)、中速而功耗中等(a通而b不通)和低速低功耗(a、b都不通)。由于三个PMOS管的导通电阻要比下拉NMOS管的大很多,本结构的关键路径是图中虚线表示的高电平充电路径。

  在上述三种工作模式下,关键路径的Hspice仿真结果如图3(b)所示,其中(1)、(2)和(3)图分别表示三种模式下,输入信号由高电平到低电平的变化导致输出Pout由低电平到高电平的变化情况,曲线a为输入信号,b为输出信号Pout。在高速模式下,关键路径延时约为1 .2ns,但电源到地的静态电流也达到了56μA;在中速模式下,关键路径延时约为2.2ns,静态电流为29μA;在低功耗模式下,关键路径延时约为4ns,静态电流仅为14μA。

[1] [2]  下一页


本文关键字:编程技术  DSP/FPGA技术单片机-工控设备 - DSP/FPGA技术