基于SRAM的可重配置電路PLD
基于SRAM的可重配置PLD(可編程邏輯器件)的出現(xiàn),為系統(tǒng)設(shè)計(jì)者動(dòng)態(tài)改變運(yùn)行電路中PLD的邏輯功能創(chuàng)造了條件。PLD使用SRAM單元來保存字的配置數(shù)據(jù)決定了PLD內(nèi)部互連和功能,改變這些數(shù)據(jù),也就改變了器件的邏輯功能。由于SRAM的數(shù)據(jù)是易失的,因此這些數(shù)據(jù)必須保存在PLD器件以外的EPROM,EEPROM或FLASH ROM等非易失存儲(chǔ)器內(nèi),以便系統(tǒng)在適當(dāng)?shù)臅r(shí)候?qū)⑵湎螺d到PLD中,從而實(shí)現(xiàn)在電路可重配置ICR(In-Circuit Reconfigurability,在電路可重配置)。
如何實(shí)現(xiàn)ICR?ALTER公司的應(yīng)用方案AN88中詳細(xì)介紹一種基于DS87C520微控制器的ISP&ICR設(shè)計(jì)方法,并鈄其源代碼放在ALTERA的網(wǎng)上,供用戶免費(fèi)下載。作者在設(shè)計(jì)一要求具有ICR功能的電子裝置時(shí),在詳細(xì)分析了AN88介紹的方法之后,發(fā)現(xiàn)該應(yīng)用方案中介紹的電路結(jié)構(gòu)復(fù)雜,對微控制器性能及微控制器的開發(fā)裝置的要求和成本都較高,且只適用于工作電壓為5V的PLD電路。本文介紹的是作者設(shè)計(jì)的PLD ICR控制電路,它和ALTERA介紹的方法相比,不但線路結(jié)構(gòu)簡潔、開發(fā)容易、體積小、成本低,而且只需改變ICR控制電路的電源電壓,就能實(shí)現(xiàn)工作電壓為3.3V或5V的PLD器件的電路內(nèi)重配置。
ICR控制電路硬件原理
ICR控制電路原理圖如圖1所示。圖中的U1是ICR控制電路的核心器件,它是PHILIPS公司在1999年底推出的20引腳低成本的微控制器 P87LPC762,該微控制器具有2K字節(jié)的程序存儲(chǔ)器、128字節(jié)的RAM、18/15個(gè)I/O、WATCHDOG、通用串行接口UART和一個(gè)硬件 I2C總線控制器。P87LPC762采用的是80C51加速處理器結(jié)構(gòu),其指令和80C51兼容,但指令的執(zhí)行速度在相同時(shí)鐘下,是標(biāo)準(zhǔn)80C51微控制器的兩倍。因它采用的是硬件I2C總線控制器節(jié)省大量的軟硬件資源。U2、U3是ATMEL公司的串行EEPROM AT24C256,其串行通信協(xié)議為I2C,容量為32K字節(jié)。在電路中,U2和U3有來存儲(chǔ)PLD的配置數(shù)據(jù)。
ICR 控制電路的工作過程為:經(jīng)MAXPLUS Ⅱ編譯生產(chǎn)的PLD配置文件經(jīng)過預(yù)處理后,通過PC機(jī)的串行通訊口下載到U1中,并在U1的控制下存儲(chǔ)在EEPROM U2和U3中,U1再根據(jù)系統(tǒng)的要求通過P0.2、P0.3、P0.4、P0.6和P0.7等5個(gè)I/O口,將其存儲(chǔ)在U2和U3中的PLD配置數(shù)據(jù)下載到電路中的PLD。
因作者設(shè)計(jì)電路中的PLD是ALTERA公司的ACEX系列的EP1K30,其配置文件的容量為52K字節(jié),故電路中采用了兩片AT24C256存儲(chǔ)PLD的配置數(shù)據(jù)。如果配置的PLD是EPF10K10或EPF10K20,則只需要一片AT24C256,此時(shí)整個(gè)ICR控制電路僅僅只有兩片IC,這可以說它是目前結(jié)構(gòu)最簡單、成本最低的ICR控制電路了。讀者在應(yīng)用該電路時(shí),可根據(jù)其PLD文件的大小(PLD的配置文件的大小可參考ALTERR公司的應(yīng)用方案AN116)采用1~4片AT24C256。
ICR控制電路軟件設(shè)計(jì)要點(diǎn)
在圖1介紹的ICR控制電路中,其存儲(chǔ)PLD配置數(shù)據(jù)的EEPROM AT24C256采用I2C串行總線進(jìn)行數(shù)據(jù)交換,其數(shù)據(jù)交換速度較慢(當(dāng)工作電壓為5V時(shí),其最大I2C總線時(shí)鐘為1MHz),而PLD配置數(shù)據(jù)又比較大,通常都在數(shù)十K字節(jié)以上。因此如何提高圖1介紹的ICR控制電路的配置速度,這將是軟件設(shè)計(jì)上的一個(gè)重點(diǎn)。
ALTERA公司生產(chǎn)且具有ICR功能的PLD器件有FLEX6000、FLEX10K、APEX和ACEX系列,它們的配置方式可分為PS(無源串行)、PPS(無源并行同步)、PSA(無源并行異步)、PSA(無源串行異步)和JTAG(Joint Test Action)等四種方式,在這四種方式,PS方式因PLD與配置電路的互連最簡單,對配置時(shí)鐘的最小頻率沒有限制而應(yīng)用最廣泛,因此在圖1介紹的ICR 控制電路中也采用PS配置方式來實(shí)現(xiàn)ICR功能。圖2是PS配置方式的時(shí)序圖。
數(shù)據(jù)從AT24C256讀出時(shí),可采用讀當(dāng)前地址、隨機(jī)讀和順序讀三種方式。這三種方式中,順序讀的最簡單,速度最快,因?yàn)樵谕黄珹T24C256中,僅需要寫入一次讀命令就可以按順序從0地址開始直至讀完整片AT24C256中的全部數(shù)據(jù)。AT24C256順序讀的時(shí)序圖如圖3所示。
比較圖2和圖3,可以看出PLD的PS配置時(shí)序圖和AT24C256順序讀時(shí)序圖有很多相似之處,其唯一的差別在于:在PS配置方式中,其數(shù)據(jù)配置順序是序列的最低位最先輸入,而I2C總線讀過程則是其序列的最高位最先輸出,它們之間的輸入和輸出順序剛好相反。如果將PLD的配置文件通過一定的預(yù)處理,使其配置數(shù)據(jù)的最低位存儲(chǔ)在EEPROM的最高位上,則在配置過程中,從EEPROM I2C總線上讀出的當(dāng)前位數(shù)據(jù)正好是PS配置時(shí)需要輸入到PLD中去的當(dāng)前位,這將是提高ICR的配置速度,縮短配置時(shí)間的最有效措施,其具體過程如下:
用戶設(shè)計(jì)的PLD程序經(jīng)MAXPLUS Ⅱ的編繹后將產(chǎn)生一個(gè)后綴為.sof的SRAM的SRAM目標(biāo)文件,該文件含有除配置數(shù)據(jù)以外的控制字符,不能直接寫入到PLD中去,需要利用 MAXPLUS Ⅱ的編程文件轉(zhuǎn)化功能使其生成一個(gè)后綴為.ttf的表格文本文件,該文件是不帶任何附加符號(hào)的PLD配置文件,可以直接配置到PLD中去。該文件中每一字節(jié)在下載到ICR控制電路的EEPROM之前,將D7 D6 D5 D4 D3 D2 D1 D0變換為D0 D1 D3 D4 D5 D6 D7之后再寫入EEPROM中,則在PLD配置過程中,其配置數(shù)據(jù)不經(jīng)任何處理,從EEPROM讀出的當(dāng)前位數(shù)據(jù)就是此時(shí)需要配置到PLD中去的當(dāng)前位數(shù)據(jù)(這是作者為什么采用時(shí)鐘頻率較慢的I2C的EEPROM,而沒有采用時(shí)鐘頻率相對較快,但沒有順序讀功能的SPI接口的EEPROM的原因),從而達(dá)到了縮短ICR控制電路配置時(shí)間的目的。
結(jié)論
本文介紹了一種基于微控制器的PLD ICR控制電路,該控制電路結(jié)構(gòu)簡單、占用空間小、性價(jià)比較高,適用于需要ICR功能的電子裝置中,該ICR控制電路是為配置ALTERR系列PLD器件來設(shè)計(jì)的,稍加屐也適用于XILINX公司的FPGA器件。這個(gè)配置電路的主要弱點(diǎn)在于配置速率較慢,只能適應(yīng)用于配置速率要求不高的應(yīng)用。
注:文中的一個(gè)概念是ICR(In-Circuit Reconfigurability,在電路可重配置),ICR是ALTERA提出的概念,它和目前ISP(In System Programmabled,在系統(tǒng)編程)相并列的一個(gè)概念與IAP(In Application re-Programmable)的意義相差不大。但筆者使用的是ALTERA的PLD,因此在文中采用了ICR這個(gè)概念。