郭利文等
摘 要: 隨著FPGA以及CPLD在現(xiàn)代電子線路中的出現(xiàn)和使用越來越多,同時電子器件的集成度越來越高、速度越來越快,對電路的穩(wěn)定性有著越來越嚴(yán)苛的要求,在硬件上表現(xiàn)為對系統(tǒng)電源完整性和信號完整性的嚴(yán)苛要求。從信號完整性的角度出發(fā),通過分析硬件工程師和FPGA/CPLD軟件設(shè)計(jì)工程師容易疏忽的問題,以Altera Cyclone IV系列FPGA進(jìn)行重點(diǎn)研究,從硬件的角度確保FPGA/CPLD系統(tǒng)的穩(wěn)定性和魯棒性。
關(guān)鍵詞: FPGA; CPLD; 時序; 信號完整性
中圖分類號: TN911.6?34 文獻(xiàn)標(biāo)識碼: A 文章編號: 1004?373X(2015)17?0061?04
Analysis and research on influence of FPGA/CPLD pins setting on signal integrity
GUO Liwen1, DENG Yueming2, MO Xiaoshan3
(1. Hong Fu Jin Precision Industry (Shenzhen) Co., Ltd, Foxconn Technology Group, Shenzhen 518109, China;
2. School of Physics and Information Science, Hunan Normal University, Changsha 410081, China;
3. Hunan Institute of Metrology and Test, Changsha 410014, China)
Abstract: With the appearance and usage of FPGA and CPLD in modern electronic circuits, as well as the higher integrity and the faster speed of electronic devices, more rigorous requirements for the stability of electronic circuits are presented, which manifest as, the rigorous requirements of system′s power supply integrity and signal integrity on hardware. In the view of signal integrity, the Altera Cyclone IV FPGA is studied emphatically by analyzing the problems which are easy to ignore by hardware and software engineers. The stability and robustness of FPGA/CPLD system are guaranteed by hardware.
Keywords: FPGA; CPLD; timing sequence; signal integrity
0 引 言
在以FPGA/CPLD為中心的系統(tǒng)設(shè)計(jì)中,往往需要系統(tǒng)工程師聯(lián)合硬件工程師以及FPGA/CPLD開發(fā)工程師一起,先制定相關(guān)的系統(tǒng)規(guī)格,F(xiàn)PGA/CPLD工程師根據(jù)系統(tǒng)規(guī)格確定并設(shè)置相關(guān)的管腳屬性,并形成文檔交付硬件工程師,硬件工程師根據(jù)相應(yīng)管腳屬性實(shí)現(xiàn)FPGA/CPLD外圍線路的設(shè)計(jì)實(shí)現(xiàn)以及布局布線。由于PCB,F(xiàn)PGA/CPLD或者外圍ASIC等出線限制,此管腳設(shè)置可能需要在硬件工程師和FPGA/CPLD工程師之間進(jìn)行往返修改,最終實(shí)現(xiàn)最佳平衡。
FPGA/CPLD開發(fā)工程師在進(jìn)行管腳屬性設(shè)置中,通常需要考慮的是管腳類型、功能、封裝、電源屬性、時鐘屬性、ESD、內(nèi)部上拉、下拉、輸出斜率、電流驅(qū)動等。稍有差池,就會導(dǎo)致嚴(yán)重的信號完整性問題。
1 信號完整性
從廣義上來說,信號完整性指的是在高速產(chǎn)品中由于互連線引起的所有問題[1]。它主要研究的是互連線與數(shù)字信號的電壓、電流波形相互作用時,其電氣特性參數(shù)如何影響產(chǎn)品的性能。因此,對于電子工程師來說,信號完整性問題幾乎無處不在。
通常,信號完整性問題[1?3]按照影響和后果來分主要有電磁干擾(EMI)、噪聲、時序三個方面。其中,按照噪聲源劃分,信號完整性問題又可以細(xì)分為如下幾類:
(1) 單一網(wǎng)絡(luò)的信號完整性問題。這類噪聲主要是因?yàn)樵谛盘柭窂交蛘叻祷芈窂缴嫌捎谧杩共贿B續(xù)而引起的反射和失真。它只與信號所經(jīng)過的網(wǎng)絡(luò)有關(guān),當(dāng)信號從驅(qū)動源輸出時,構(gòu)成信號的電流和電壓將互連線看成一個阻抗網(wǎng)絡(luò),當(dāng)信號沿網(wǎng)絡(luò)進(jìn)行傳播時,就會時刻感受到互連線所引起的瞬態(tài)阻抗變化。如果阻抗保持不變,則信號就不會失真;一旦阻抗發(fā)生變化,如PCB走線線寬發(fā)生變化,信號換層,返回路徑不連續(xù)、接插件的加入、信號分支、T型線或者增加過孔以及在網(wǎng)絡(luò)末端沒有阻抗匹配等,信號就會在阻抗變化處發(fā)生反射,從而導(dǎo)致信號的失真。嚴(yán)重的失真可能會導(dǎo)致錯誤的觸發(fā)。這類信號完整性問題主要表現(xiàn)在信號的非單調(diào)、過沖、振鈴等,一般可以通過設(shè)計(jì)可控阻抗并進(jìn)行阻抗匹配解決。
(2) 多個網(wǎng)絡(luò)間互相干擾所導(dǎo)致的信號完整性問題。這類噪聲主要是因?yàn)樵诶硐牖芈泛头抢硐牖芈分g耦合的互電容和互電感所導(dǎo)致。當(dāng)網(wǎng)絡(luò)傳播信號時,即使第一個網(wǎng)絡(luò)(動態(tài)網(wǎng)路)上的信號質(zhì)量非常好,一些信號也會透過耦合的互容和互感耦合到第二個靜態(tài)網(wǎng)絡(luò)上。因此會有感性耦合噪聲和容性耦合噪聲之分。在互連線為均勻傳輸線的情況下,容性耦合和感性耦合大小相當(dāng)。在非均勻傳輸線中,感性耦合噪聲和容性耦合的大小會不一樣。通常這類噪聲主要表現(xiàn)為串?dāng)_。只有了解這些噪聲的本質(zhì),才能通過使用介電常數(shù)較小的材料,或縮短互連線的長度,或使用芯片最小封裝或者高密度互連線,或減小信號的上升速度等方式減低此類信號完整性的問題。
(3) 電源和地分配間的軌道坍塌所導(dǎo)致的信號完整性問題。這類噪聲主要是由電源和地平面的阻抗壓降所導(dǎo)致,特別是在目前電子線路發(fā)展的趨勢下,高性能處理器和ASIC由于芯片上集成的門的開關(guān)轉(zhuǎn)換速度越來越快,而每個周期都需要消耗一定的能量,所以當(dāng)芯片切換更快時,盡管每個周期消耗相同的能量,但由于更快的切換速度,所以平均功率就會更高,因而表現(xiàn)為低電壓供電,高功率消耗。表現(xiàn)在硬件系統(tǒng)上就會出現(xiàn)在更短的時間內(nèi)需要消耗更大的開關(guān)電流。一旦電壓越來越低,而電流越來越大時,任何與軌道坍塌有關(guān)的壓降對于硬件系統(tǒng)來說都是致命的。目前此類課題也是電源設(shè)計(jì)的重點(diǎn)之一,因此這類完整性問題也被歸類為電源完整性問題。
(4) 來自整個系統(tǒng)的電磁輻射和干擾。通常在電子線路中,會有兩類常見的電磁輻射和干擾。一是由于部分差分信號轉(zhuǎn)換成共模信號,最終累積并輸出;二是電路板上的地彈在外部單端屏蔽線上產(chǎn)生的共模電流,附加的噪聲便可以從屏蔽罩中泄露。
2 FPGA/CPLD發(fā)展趨勢與信號完整性的關(guān)聯(lián)
隨著科技的發(fā)展,電子系統(tǒng)的更新速度日新月異。FPGA/CPLD也不例外,衡量芯片性能的一個重要指標(biāo)是芯片的時鐘頻率。相對于過去來說,F(xiàn)PGA/CPLD的時鐘頻率也是兩年左右提高一倍。時鐘頻率在提高,同時生產(chǎn)工藝的水平也在不斷提高,從過去180 nm到后來130 nm,到目前的20 nm,甚至即將問世的14 nm [2],這意味著晶體管的溝道長度越來越短,開關(guān)時間也就越來越短,同時由于特征尺寸的縮小,上升時間必然減小,這樣信號完整性的問題將會變得日益突出。對于芯片生產(chǎn)商來說,生產(chǎn)工藝的提高,特征尺寸的持續(xù)縮小,單位面積硅圓片上生產(chǎn)的芯片越來越多,因此單個芯片的成本必然會降低。因此芯片廠商必然會不厭其煩地推薦采用最新工藝的芯片,而對于PCA設(shè)計(jì)廠商來說,最新工藝的芯片如果超過了其原有設(shè)計(jì)的信號完整性的考量,可能會帶來設(shè)計(jì)災(zāi)難。
同時,由于FPGA/CPLD本身的特性,其內(nèi)部完全為可編程,包括管腳設(shè)置,這樣也就意味著時序也是FPGA/CPLD設(shè)計(jì)時必然需要考量的項(xiàng)目之一。對于FPGA/CPLD開發(fā)工程師來說,通常會著重考量芯片內(nèi)程序要實(shí)現(xiàn)功能的時序要求,卻往往忽視芯片與外圍接口的時序要求,而這些往往會導(dǎo)致顯性信號完整性問題,比如輸出的非單調(diào),漏電等。
在FPGA/CPLD中,主要有三類管腳,分別是電源管腳、地管腳以及用戶使用管腳[4]。其中用戶使用管腳又分為三類,分別是時鐘專用管腳、通用輸入輸出管腳、復(fù)用管腳。在這些管腳類型中,電源和地管腳是固定的,需要嚴(yán)格按照FPGA/CPLD的數(shù)據(jù)手冊進(jìn)行連接,特別是與PLL相關(guān)的電源管腳,需要使用FUSE進(jìn)行隔離,確保其所使用的電源干凈。而用戶使用管腳幾乎都可以根據(jù)用戶的意愿進(jìn)行輸入、輸出或者雙向配置。一般來說,芯片廠商會對時鐘專用管腳進(jìn)行特殊設(shè)置,以確保該管腳上的信號進(jìn)入芯片后的抖動和偏移最小,因此,對于FPGA/CPLD設(shè)計(jì)者來說,此類管腳通常用來接全局時鐘信號,以確保時鐘抖動最小。復(fù)用管腳是一類非常特殊的管腳,比如JTAG管腳、休眠管腳等,通常情況下,這些管腳也是專屬管腳,但是在FPGA/CPLD的管腳數(shù)量有限的情況下,這些管腳也可以用作通用輸入輸出管腳,但必須嚴(yán)格遵照數(shù)據(jù)手冊進(jìn)行,并且確保該類操作滿足系統(tǒng)功能要求。
一般來說,用戶最常用的還是通用輸入輸出管腳。這類管腳的特性主要是可以根據(jù)用戶的使用要求進(jìn)行編程,包括I/O的類型設(shè)置(輸入、輸出、雙向、高阻等)、上拉、下拉、斜率控制等。當(dāng)然,在某些FPGA/CPLD中,由于IP的特定使用,有些通用輸入輸出管腳會有特殊要求,比如某些管腳取消了輸出結(jié)果,所以只能作輸入,某些管腳只能用于低速場合。設(shè)計(jì)者需要特別注意。
在FPGA/CPLD中,由于其本身結(jié)構(gòu)的原因,當(dāng)系統(tǒng)掉電后,F(xiàn)PGA/CPLD內(nèi)部的程序?qū)詣酉?,并保存在?nèi)部的Flash或者外部的SROM里面,此時FPGA/CPLD相當(dāng)于一個空白芯片。當(dāng)系統(tǒng)再次上電時,一旦給FPGA/CPLD的電壓達(dá)到相應(yīng)要求,F(xiàn)PGA/CPLD則開始從Flash或者SROM里面重新加載,這段時間將持續(xù)幾微秒到幾毫秒不等。只有加載成功后,F(xiàn)PGA/CPLD才能根據(jù)芯片設(shè)計(jì)者的程序進(jìn)行工作。
從而在上電開始到加載完成這段時間內(nèi),F(xiàn)PGA/CPLD將完全不受芯片編程工程師控制。通常來說,F(xiàn)PGA/CPLD芯片的管腳在此時的默認(rèn)屬性有兩種,一種是弱上拉,另外一種是三態(tài),而不是程序中設(shè)定的特定屬性。而有些FPGA/CPLD則會有數(shù)個bank,不同bank上的管腳默認(rèn)屬性也不一樣,以Altera Cyclone IV為例[3?4],共計(jì)有8個bank,其中bank1,bank6,bank7,bank8的默認(rèn)管腳屬性為弱上拉,而bank2,bank3,bank4,bank5為三態(tài)。因此在此過程中,硬件工程師和FPGA/CPLD工程師必須對FPGA/CPLD的連線進(jìn)行特別設(shè)置,否則將會出現(xiàn)嚴(yán)重的信號完整性問題。
3 Altera Cyclone IV設(shè)計(jì)考量以及違例分析
在Altera Cyclone IV設(shè)計(jì)中,考慮到上文所提到的不同bank上的管腳屬性問題,因此通過一個電源切換電路實(shí)現(xiàn)不同bank電源的設(shè)計(jì)[5?7],如圖1所示。由于FPGA ROM接口位于bank1上,因此首先給FPGA的bank1,bank6,bank7,bank8進(jìn)行供電,以確保FPGA進(jìn)行正常的加載,加載完畢后,F(xiàn)PGA通過加載完成信號通知切換電路,從而使得3.3 V電源通過切換電路給bank2,bank3,bank4,bank5進(jìn)行供電[8]。
因此,在硬件系統(tǒng)設(shè)計(jì)中,對于要接入Cyclone IV的信號來說,需要進(jìn)行嚴(yán)格的甄別,才能進(jìn)行相應(yīng)的連接。在此設(shè)計(jì)中,有以下屬性的信號禁止連接到bank1,bank6,bank7,bank8上,只能連接到bank2,bank3,bank4,bank5上的通用輸入輸出管腳。
(1) 如果有任何信號上拉到與P3V3_STBY不同的電源時,不能接入bank1,bank6,bank7,bank8。
(2) FPGA驅(qū)動其他非P3V3_STBY所供電源的IC時,這些驅(qū)動信號不能接入bank1,bank6,bank7,bank8。
如果萬一違例將會出現(xiàn)怎樣的后果?在分析違例之前,還需要簡單了解一下FPGA內(nèi)部的ESD防護(hù)結(jié)構(gòu)[3?5]。如圖2所示,在FPGA的I/O端口上,通常會有如下的I/O口結(jié)構(gòu),確保信號保持在[VSS-VD2]~[VDD+VD1]之間,而不至于I/O承受過高電壓而被擊穿。
下面結(jié)合圖1分析如下的時序圖,當(dāng)P3V3_STBY穩(wěn)定后,LDO將會自動生成FPGA_PVCCIO電壓,一旦FPGA_PVCCIO穩(wěn)定,F(xiàn)PGA將自動加載,加載成功后, FPGA自動生成FPGA_READY信號,然后外部線路導(dǎo)通,從而生成PVCCIO_PFGA_INIT_DONE電壓給FPGA剩余I/O進(jìn)行供電。
下面分析兩類情形,觀察其對信號完整性的影響。
(1) 信號在FPGA/CPLD bank電壓穩(wěn)定之前就為高電平。當(dāng)信號在FPGA bank電壓穩(wěn)定之前就為高電平,那么根據(jù)上述結(jié)構(gòu),高電平信號必將通過ESD D1流入[VDD,]從而會導(dǎo)致系統(tǒng)整體漏電。因此針對這類信號,硬件設(shè)計(jì)工程師必須在線路設(shè)計(jì)時就需要避免。通常會采用一個MOSFET管實(shí)現(xiàn)電平轉(zhuǎn)換和電壓隔離,避免漏電。以上時序圖沒有著重指出,但是在FPGA/CPLD系統(tǒng)設(shè)計(jì)時,必須嚴(yán)格遵守。
(2) 本應(yīng)該接入bank1,bank6,bank7,bank8的信號接入到bank2,bank3,bank4,bank5上。由于bank2,bank3,bank4,bank5的電壓會后開啟,而bank1,bank6,bank7,bank8的電壓會先啟動。這樣就有可能出現(xiàn)信號在FPGA bank電源還沒有穩(wěn)定之前就為高的情形,當(dāng)然也就會出現(xiàn)漏電的情況,在FPGA bank上電過程中,由于電壓是連續(xù)上升的,同時由于ESD防護(hù)二極管單向?qū)ǖ男再|(zhì),那么bank電壓會先達(dá)到一個使能整個ESD防護(hù)二極管的幅值,在這里假定FPGA ESD使能電平值為[Vesd,]那么當(dāng)外部信號的幅值大于或者等于[Vesd+]0.7 V時,ESD防護(hù)二極管D1將會導(dǎo)通,這樣就會使本來為高電平的輸入信號會被突然拉低至[Vesd+]0.7 V,接著隨著bank電壓繼續(xù)爬升并最終達(dá)到其穩(wěn)定值,D1會關(guān)閉,從而就會使得信號在波形上出現(xiàn)一個向下拉的脈沖,這樣就出現(xiàn)了一個信號完整性的問題;如果該脈沖剛好處于高、低電平閾值邊沿,F(xiàn)PGA或者外圍ASIC可能進(jìn)行誤判,從而導(dǎo)致系統(tǒng)出現(xiàn)意外的動作,甚至崩潰。圖3為相關(guān)示意圖,圖4為在實(shí)際系統(tǒng)上測得的相應(yīng)波形。
要解決此類違例所導(dǎo)致的信號完整性問題,可以通過修改線路實(shí)現(xiàn)。當(dāng)然,如果在工程設(shè)計(jì)中,出于成本和交期的考慮,也可以通過在FPGA/CPLD中屏蔽ESD使能設(shè)置解決此問題,但如果在比較惡劣的環(huán)境中,比如接插件較多,熱插拔比較頻繁的系統(tǒng),可能會導(dǎo)致FPGA/CPLD由于沒有ESD防護(hù)而損壞。
4 結(jié) 語
在以FPGA/CPLD為中心的系統(tǒng)設(shè)計(jì)中,人們不僅僅需要理解FPGA/CPLD具體的設(shè)計(jì)理念和功能要求,同時也需要認(rèn)真領(lǐng)悟FPGA/CPLD器件本身對電源完整性和信號完整性的具體要求。信號完整性無處不在,在管腳分配和設(shè)計(jì)中,需要系統(tǒng)工程師聯(lián)合FPGA/CPLD設(shè)計(jì)工程師以及硬件工程師,甚至包括布局布線工程師一起,緊密合作,確保系統(tǒng)的穩(wěn)定度性魯棒性,從而提高開發(fā)效率和質(zhì)量,并大大縮短產(chǎn)品開發(fā)時間和成本。
參考文獻(xiàn)
[1] BOGATIN E.信號完整性分析[M].李玉山,李麗平,譯.北京:電子工業(yè)出版社,2009.
[2] 王明虎,林大俊,楊依忠,等.基于超深亞微米IC設(shè)計(jì)的信號完整性研究[J].現(xiàn)代電子技術(shù),2004,27(12):22?24.
[3] 吳伯春,龔清萍.信號完整性分析技術(shù)[J].航空電子技術(shù),2004,35(2):20?21.
[4] 郭利文,鄧月明.CPLD/FPGA設(shè)計(jì)與應(yīng)用高級教程[M].北京:北京航空航天大學(xué)出版社,2011.
[5] Altera. Cyclone IV device datasheet [EB/OL]. [2014?04?12]. http://www.altera.com/literature/hb/cyclone?iv/cyiv?53001.pdf.
[6] Altera. AN 592: Cyclone IV design guidelines ver. 1.3 [EB/OL]. [2013?08?17]. http://www.altera.com/literature/an/an592.pdf.
[7] Altera. Cyclone IV device family pin connection guidelines ver. 1.6 [EB/OL]. [2013?10?23]. http://www.altera.com/literature/dp/cyclone?iv/PCG?01008.pdf.
[8] Altera. AN 447: Interfacing Altera Devices with 3.3/3.0/2.5 V LVTTL/LVCMOS I/O systems [EB/OL]. [2014?12?05]. http://www.altera.com/literature/an/an447.pdf.