八十年代中期,高密度可編程邏輯器件(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在實現較復雜的組合邏輯時可以消除信號之間的歪斜,更容易消除競爭冒險現象。目前,主流的CPLD全部采用連續式互連線結構,比如MAX7000中的PIA結構和XC9500中的FastCONNECT結構。圖1(b)給出了MAX7000中PIA的邏輯結構。該結構中,每個編程節點的EEPROM晶體管控制2輸入與門的1個輸入端來決定另一輸入端信號的取舍。 綜上所述,CPLD的核心可編程結構是P-Term和具有固定延時的可編程互連線結構。 基于SRAM編程技術的PLD電路結構設計 針對CPLD的核心可編程結構——P-Term和具有固定延時的可編程互連線,設計了基于SRAM編程技術的新電路結構,下面做詳細介紹。 SRAM編程單元的電路結構設計 基于SRAM的編程技術是將PLD的每一位配置數據相應存儲在SRAM單元中。如圖2a所示, (a) SRAM編程單元結構 (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的問題?删幊痰纳侠Y構由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。 (a) 基于SRAM的可編程寬與門電路結構 (b) 寬與門關鍵路徑的Hspice仿真結果 圖3 電路結構與仿真結果圖 基于SRAM編程技術的可編程互連線電路結構設計 CPLD中可編程互連線的作用是集中分配輸入信號以固定延時輸出到宏單元的輸入端(P- Term的輸入端)。本文所設計的可編程互連線是由結構完全相同的可編程連線單元組成的二維陣列。可編程連線單元之間不存在互連關系,每個單元的輸入信號直接來自于輸入總線,輸出信號直接到宏單元,這樣可以保證延時固定。因此,這種結構的設計實質上是可編程連線單元的結構設計。 本文設計的基于SRAM的可編程連線單元結構如圖4(a)所示。該結構的作用是在8條輸入線中選擇1條或者都不選而僅選擇低電平輸出,然后將選擇的輸出變成正反兩個信號輸出到宏單元中P-Term的輸入端。核心結構是SRAM控制的多路選擇器,其中的SRAM編程控制位SRAM1~SRAM3 (a) 基于SRAM的可編程互連單元電路結構 (b) 可編程互連單元關鍵路徑的Hspice仿真結果 圖4 電路結構與仿真結果圖 控制多路選擇器實現8選1的連線狀態,而SRAM4控制開關管實現輸出低電平。本設計僅用單NMOS管構成多路選擇器,相對于采用傳輸門的情況,每個開關減少了1個晶體管。但是,NMOS傳送高電平存在閾值損耗,因此,在選擇適當晶體管尺寸的同時,在第3、4級開關處分別加了反向器A和B,保證輸出高電平的幅值和足夠的驅動能力?删幊袒ミB線延時對PLD的速度起決定性作用。圖4 (a)中的虛線是本結構的關鍵路徑,圖4(b)給出了關鍵路徑的Hspice仿真結果,(1)和(2)圖分別為輸入信號上升和下降引起輸出的變化情況,a、b和c三條曲線分別表示輸入總線信號、輸出的正反信號OUT和OUTn。仿真結果表明,本結構的最大延時僅為300ps。 特別指出,本結構僅用了4bitSRAM編程就實現了MAX7000的PIA單元中1組開關的功能,而圖1(b)中的結構需要8bitEEPROM。這樣,本結構同基于EEPROM的結構相比,減少了4bit編程數據,從而使基于本結構的可編程互連線的編程數據減少了50%。編程數據的減少,可以縮短器件配置的時間,提高在重構系統應用中動態重構的效率。 結論 本文針對傳統CPLD的核心可編程結構——P-Term和可編程互連線,采用2.5V、0.25μmCMOS工藝設計了新的、基于SRAM的可重構電路結構。本設計中的P-Term結構具有可編程的3種工作模式,可以根據需要獲得較好的速度和功耗折衷;赟RAM的、延時固定的可編程互連線僅有300ps的延時時間,可以獲得很高的速度,而且同基于EEPROM的互連線相比編程數據減少了50%,可獲得更短的配置時間,更適合動態重構應用。采用上述新結構構成的PLD比FPGA更適合在可重構系統中實現復雜狀態機和譯碼電路。 |