季振凱,郭俊杰
(中國電子科技集團(tuán)公司第五十八研究所,江蘇無錫214072)
基于FPGA的時(shí)鐘信號實(shí)現(xiàn)方法
季振凱,郭俊杰
(中國電子科技集團(tuán)公司第五十八研究所,江蘇無錫214072)
時(shí)鐘信號是時(shí)序電路的基礎(chǔ)和整個(gè)電路得以正常運(yùn)行的保證,由于儀器的小型化和低成本化對印刷電路板(Printed Circuit Board,PCB)具有嚴(yán)格的物理尺寸、層數(shù)等要求,使得通過震蕩器和時(shí)鐘分配IC獲得多種頻率時(shí)鐘信號的PCB電路設(shè)計(jì)方法越來越難以持續(xù)。為此,設(shè)計(jì)三種基于FPGA的時(shí)鐘信號實(shí)現(xiàn)方法,可以在FPGA引腳充足的情況下取代震蕩器和時(shí)鐘分配IC,為PCB電路提供多種頻率的時(shí)鐘信號。
時(shí)鐘信號;時(shí)序電路;FPGA;震蕩器
時(shí)鐘信號是指有固定周期并與運(yùn)行無關(guān)的信號量,它用于決定邏輯單元中的狀態(tài)何時(shí)更新。時(shí)鐘信號是時(shí)序邏輯的基礎(chǔ),是時(shí)序控制系統(tǒng)得以正常運(yùn)行的保障。而時(shí)序控制系統(tǒng)的首要制約條件便是同步,同步是指在有效信號沿發(fā)生時(shí)刻,能夠?qū)懭雴卧臄?shù)據(jù)也有效。
同步數(shù)字系統(tǒng)中的時(shí)鐘信號(如遠(yuǎn)程通信中使用的)為系統(tǒng)中的數(shù)據(jù)傳送定義了時(shí)間基準(zhǔn)。一個(gè)時(shí)鐘分配網(wǎng)絡(luò)由多個(gè)時(shí)鐘信號組成,由一個(gè)點(diǎn)將所有信號分配給需要時(shí)鐘信號的所有組件。因?yàn)闀r(shí)鐘信號執(zhí)行關(guān)鍵的系統(tǒng)功能,很顯然應(yīng)給予更多的關(guān)注,不僅在時(shí)鐘的特性(即偏移、抖動(dòng)和占空比)方面,還有那些產(chǎn)生時(shí)鐘信號的組件。
對于時(shí)序電路尤其是具有全局時(shí)鐘的高速電路,除考慮時(shí)鐘與數(shù)據(jù)是否滿足建立時(shí)間和保持時(shí)間外,還需考慮時(shí)鐘偏移、時(shí)鐘抖動(dòng)和時(shí)鐘占空比,以下將介紹這三種時(shí)鐘信號的特性。
2.1 時(shí)鐘偏移
時(shí)鐘偏移是指同一個(gè)時(shí)鐘信號到達(dá)兩個(gè)不同寄存器之間的時(shí)間差,根據(jù)差值的正負(fù)可以分為正偏移和負(fù)偏移。產(chǎn)生時(shí)鐘信號偏移的主要原因是:時(shí)鐘信號要提供整個(gè)電路的時(shí)序單元,從而導(dǎo)致時(shí)鐘線非常長,并構(gòu)成分布式RC網(wǎng)絡(luò)。它的延時(shí)與時(shí)鐘線的長度及被時(shí)鐘線驅(qū)動(dòng)的時(shí)序單元的負(fù)載電容大小和個(gè)數(shù)有關(guān),由于時(shí)鐘線長度及負(fù)載不同,從而導(dǎo)致時(shí)鐘信號到達(dá)相鄰兩個(gè)時(shí)序單元的時(shí)間不同,便產(chǎn)生了所謂的時(shí)鐘偏移。
時(shí)鐘偏移無法避免且永遠(yuǎn)存在,但當(dāng)其大到一定程度時(shí),就會(huì)嚴(yán)重影響電路的時(shí)序。因此在STA(static time analysis)中,時(shí)鐘信號偏斜是必須考慮的因素。同時(shí)通過布局布線前和布局布線后兩個(gè)階段的STA,估計(jì)時(shí)鐘樹上的偏移,繼而通過修改設(shè)計(jì)等方法,保證時(shí)鐘偏移滿足時(shí)序電路的要求。
2.2 時(shí)鐘抖動(dòng)
時(shí)鐘抖動(dòng)是指時(shí)鐘信號沿不穩(wěn)定,會(huì)提前或者延時(shí)。時(shí)鐘抖動(dòng)最常見的兩個(gè)參數(shù)是周期抖動(dòng)和周期間抖動(dòng)。周期抖動(dòng)較大也比較固定,常由第三方原因造成,如干擾、電源、噪聲等。周期間抖動(dòng)由環(huán)境因素造成,具有不確定性,滿足高斯分布,一般難以跟蹤。
同時(shí)鐘偏移一樣,時(shí)鐘抖動(dòng)是永遠(yuǎn)存在的,但當(dāng)其大到可以和時(shí)鐘周期相比擬時(shí),就會(huì)影響到設(shè)計(jì)時(shí)序,這樣的時(shí)鐘抖動(dòng)是不可接受的。
2.3 時(shí)鐘占空比
理想情況下,時(shí)鐘占空比是50%,也即時(shí)鐘信號的高電平保持時(shí)間等于低電平保持時(shí)間,時(shí)鐘信號在傳輸過程中由于變形、時(shí)延等原因的存在使得脈沖寬度發(fā)生變化,該變化使得時(shí)鐘信號高低電平的時(shí)間比例發(fā)生改變,也即時(shí)鐘占空比失真(Duty Cycle Distortion,DCD)。
對于單邊沿觸發(fā)的時(shí)序電路,時(shí)鐘占空比對于時(shí)序電路并不會(huì)有太大的影響,但是對于現(xiàn)有的其他高速電路,如片外高速存儲(chǔ)器,它采用雙數(shù)據(jù)甚至多數(shù)據(jù)接口,在時(shí)鐘的上升沿和下降沿都需要對數(shù)據(jù)進(jìn)行采樣,每次讀或?qū)懼辽儆袃膳臅r(shí)鐘,在此類應(yīng)用時(shí),DCD會(huì)吞噬大量的時(shí)序裕量,進(jìn)而造成數(shù)字信號的失真,使過零區(qū)間偏離理想位置,向上或者向下移動(dòng)。
因此,保證時(shí)鐘信號占空比對于充分利用系統(tǒng)資源、保證時(shí)序電路的時(shí)序裕量具有重要意義。
印刷電路板設(shè)計(jì)必須考慮到許多限制因素,包括物理尺寸、散熱要求、走線長度、層數(shù)和互連的類型。隨著每一代的設(shè)計(jì)都要求更多的功能,因而電路板的限制因素也越來越多。
采用添加時(shí)鐘信號IC的傳統(tǒng)設(shè)計(jì)方法不僅因?yàn)闀r(shí)鐘網(wǎng)絡(luò)的各種走線長度,占用了大量的電路板面積,并且還用到大量的振蕩器和時(shí)鐘分配IC來產(chǎn)生設(shè)計(jì)中所需的多種頻率[1],不但制約了PCB電路板的小型化還提高了設(shè)計(jì)成本[2]。本文提出的解決方案是使用可編程邏輯器件(如FPGA和CPLD)產(chǎn)生時(shí)鐘信號,減少元件數(shù)量,降低成本并降低電路板的復(fù)雜度。采取這種方法的同時(shí)還可以進(jìn)一步重新審視時(shí)鐘分配網(wǎng)絡(luò)。
3.1 調(diào)用內(nèi)部時(shí)鐘信號發(fā)生器
該方法最為簡單,但需要FPGA內(nèi)部集成時(shí)鐘信號發(fā)生器模塊,其原理圖如圖1所示。
圖1 時(shí)鐘信號發(fā)生器模塊原理圖
F8M、F500k、F16k、F490、F15分別對應(yīng)8 MHz、500 kHz、16 kHz、490 Hz和15 Hz的時(shí)鐘信號輸出。將各模塊端口與FPGA的IO口連接,便可以在該IO口獲得該頻率的時(shí)鐘信號。圖2、圖3分別是通過示波器獲得的F8M和F500K端口的時(shí)鐘信號。
圖2 通過示波器獲得的F8M端口的時(shí)鐘信號
圖3 通過示波器獲得的F500k端口的時(shí)鐘信號
采用這種方式獲得的時(shí)鐘信號頻率、占空比受限,但具有較低的抖動(dòng)和良好的穩(wěn)定性。
3.2 鎖相環(huán)配置時(shí)鐘
通過FPGA的外接晶振作為鎖相環(huán)的時(shí)鐘信號輸入,并利用鎖相環(huán)的分頻和倍頻功能,產(chǎn)生需要的特定頻率的時(shí)鐘信號[2]。其設(shè)計(jì)原理圖如圖4所示。
圖4 鎖相環(huán)配置時(shí)鐘信號設(shè)計(jì)原理圖
由圖4可知,鎖相環(huán)輸入時(shí)鐘也即晶振的頻率為40 MHz,通過調(diào)節(jié)Ratio的值來調(diào)節(jié)輸出時(shí)鐘信號的頻率。設(shè)輸入時(shí)鐘信號頻率為fin,輸出信號頻率為fc,Ratio的值為R,則輸出頻率的計(jì)算公式為fc=R·fin,其中R值的分子和分母皆為在一定范圍內(nèi)可調(diào)的正整數(shù),且對于不同的FPGA芯片,該值的范圍存在一定差異。默認(rèn)情況下被配置的時(shí)鐘信號占空比和相位延時(shí)分別為50%和0。通過調(diào)節(jié)鎖相環(huán)中的DC和ph調(diào)節(jié)輸出時(shí)鐘信號的占空比和相位延時(shí)[2~3]。
按照上述方法,配置兩路時(shí)鐘信號c0和c1。c0的頻率為20 MHz,相位延時(shí)為0,占空比為75%;c1的頻率為60 MHz,相位延時(shí)為0,占空比為50%。將以上設(shè)計(jì)載入FPGA,通過示波器獲得的兩路頻率信號波形如圖5、圖6所示。
圖5 c0信號波形
圖6 c1信號波形
采用鎖相環(huán)獲得的時(shí)鐘信號具有輸出穩(wěn)定、抖動(dòng)低、頻率相位精確可調(diào)的優(yōu)點(diǎn),但是必須外接晶體振蕩器來獲得初始時(shí)鐘信號,并且初始時(shí)鐘必須滿足一定頻率、抖動(dòng)要求。
3.3 級聯(lián)反相器
由于需要級聯(lián)若干反相器以實(shí)現(xiàn)不同頻率的時(shí)鐘信號輸出,所以該方法適用于FPGA資源富余的情況,其具體設(shè)計(jì)方法如圖7所示。
圖7 級聯(lián)4個(gè)反相器設(shè)計(jì)原理圖
本方法需使用的主要元件是反相器和鎖存器,通過反相器級聯(lián)并控制鎖存器的復(fù)位端和置位端以實(shí)現(xiàn)1和0狀態(tài)的翻轉(zhuǎn)。該方法相對較為復(fù)雜,旨在無法獲得鎖相環(huán)和時(shí)鐘信號發(fā)生器時(shí)臨時(shí)搭建時(shí)鐘系統(tǒng),是上述兩種方法的補(bǔ)充。
圖8 級聯(lián)20個(gè)反相器獲得的時(shí)鐘信號
圖9 級聯(lián)40個(gè)反相器獲得的時(shí)鐘信號
通過添加不同數(shù)量的反相器獲得不同的信號延時(shí),便可獲得不同頻率的時(shí)鐘信號。圖8為串聯(lián)20個(gè)反相器時(shí)獲得的時(shí)鐘信號波形,時(shí)鐘頻率為42.07 MHz,占空比為50%。圖9為串聯(lián)40個(gè)反相器時(shí)獲得的時(shí)鐘信號波形,時(shí)鐘頻率為75.8 MHz。
采用這種方法可在無外接晶振的情況下產(chǎn)生穩(wěn)定時(shí)鐘,有效降低PCB板上面積和復(fù)雜度。但是由于各反相器之間延時(shí)的關(guān)系,很難精確產(chǎn)生特定頻率的時(shí)鐘信號。同樣的原因,在程序經(jīng)過重新綜合、布線后時(shí)鐘信號的頻率還會(huì)發(fā)生一定改變。為避免這一現(xiàn)象,必須在約束文件中對每個(gè)反相器位置進(jìn)行約束。3.4三種時(shí)鐘信號獲取方法比較
(1)通過FPGA內(nèi)置時(shí)鐘模塊的方法簡單穩(wěn)定,不增加PCB板上面積,但是生成的頻率、相位、占空比受限;
(2)通過鎖相環(huán)生成時(shí)鐘信號的方法可以靈活地產(chǎn)生不同頻率、相位、占空比的時(shí)鐘信號,且信號抖動(dòng)小、誤差低,但是需要板上外接時(shí)鐘輸入;
(3)通過反相器串聯(lián)的方法可在無時(shí)鐘振蕩器的情況下生成穩(wěn)定可用的時(shí)鐘,但很難精確生成指定頻率的時(shí)鐘。
本文介紹了三種基于FPGA電路的時(shí)鐘信號實(shí)現(xiàn)方法,實(shí)現(xiàn)了取代震蕩器和時(shí)鐘分配IC,為PCB電路提供多種頻率的時(shí)鐘信號,可滿足不同情況下電路對時(shí)鐘信號的需求,減小了PCB面積、減少元件數(shù)量、降低成本并降低電路板的復(fù)雜度。
[1]劉一平,葉媲舟,凌朝東.FPGA的可靠時(shí)鐘設(shè)計(jì)方案[J].華僑大學(xué)學(xué)報(bào)(自然版),2009,30(6):720-722.
[2]James Wilson.為基于FPGA的設(shè)計(jì)選擇絕佳的內(nèi)部或者外部時(shí)鐘解決方案[J].今日電子,2014(9):32-33.
[3]沈增幀.一種基于FPGA的高精度時(shí)鐘信號源[J].電子技術(shù)與軟件工程,2016(10):105-107.
[4]陳欣波.Altera FPGA工程師成長手冊[M].北京:清華大學(xué)出版社,2012.
[5]張建斌.鎖相與頻率合成[M].北京:科學(xué)出版社,2011.
[6]張厥盛.鎖相環(huán)頻率合成器[M].北京:電子工業(yè)出版社, 1997.
Implementation Method of FPGA-Based Clock Signal
JI Zhenkai,GUO Junjie
(China Key System&Integrated Circuit Co.,LTD,Wuxi 214072,China)
Clock signal is the basis of timing circuit and the safeguard of circuit operation.The miniaturization and cost-effectiveness of the printed circuit board(PCB)entails strict requirements on physical size and layers, thereby crippling the method of obtaining various-frequency clock signal using oscillator and clock distribution ICs.The paper presents three FPGA-based clock signal implementation methods capable of replacing the traditionalmethod when FPGApinsare adequate.
clock signal;sequentialcircuit;FPGA;oscillator
TN402
A
1681-1070(2017)07-0017-04
季振凱(1986—),男,2009年畢業(yè)于南京大學(xué)電子科學(xué)與工程系,學(xué)士學(xué)位,2009年6月起就職于中國電子科技集團(tuán)公司第五十八研究所,從事超大規(guī)模集成電路測試應(yīng)用及可靠性驗(yàn)證的研究工作。
2017-3-21