基于SRAM编程技术的PLD核心可重构电路结构设计
发布时间:2008/5/28 0:00:00 访问次数:475
关键词:cpld;fpga;p-term;可编程互连线;可重构技术
八十年代中期,高密度可编程逻辑器件(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)给出:
(a) 基于eeprom的可编程宽与门结构
(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;fpga;p-term;可编程互连线;可重构技术
八十年代中期,高密度可编程逻辑器件(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)给出:
(a) 基于eeprom的可编程宽与门结构
(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中连线路径的起点到终点之间经