基于CPLD的數(shù)字延遲線設(shè)計(jì)
1. 引言
本文引用地址:http://butianyuan.cn/article/201706/349088.htmKicker電源是“九五”國家重大科學(xué)工程之一蘭州重離子加速器冷卻儲存環(huán)(HIRFL-CSR)的注入引出系統(tǒng)中一個(gè)重要組成部分[1] ,電源系統(tǒng)共包括六個(gè)分電源,它們需從共同的信號源接收信號,由于要求它們接收到的信號為同步信號而又因?yàn)榈乩砦恢弥率蛊浣邮盏男盘柺遣豢赡芡耆降?,為使其接收到同步信號需要在各分電源前端各配置一高速脈沖數(shù)字延遲線,對輸入信號進(jìn)行調(diào)節(jié)使經(jīng)過數(shù)字延遲線后所有信號達(dá)到同步的效果。數(shù)字延遲線要求其延遲時(shí)間可調(diào),時(shí)間范圍為:5ns~300ns。延遲線是用于將電信號延遲一段時(shí)間的元件或器件,其廣泛使用在雷達(dá)、電子計(jì)算機(jī)、彩色電視系統(tǒng)、通信系統(tǒng),以及測量儀器中。
隨著EDA技術(shù)的廣泛應(yīng)用,CPLD已成為現(xiàn)代數(shù)字系統(tǒng)設(shè)計(jì)的主要手段, CPLD的時(shí)鐘延遲可達(dá)到ns級,結(jié)合其并行工作方式,在超高速、實(shí)時(shí)測控方面有非常廣闊的應(yīng)用前景;并且CPLD具有高集成度、高可靠性,幾乎可將整個(gè)設(shè)計(jì)系統(tǒng)下載于同一芯片中,實(shí)現(xiàn)所謂片上系統(tǒng),從而大大縮小其體積。CPLD目前正朝著更高速、更高集成度、更強(qiáng)功能和更靈活的方向發(fā)展[2]。采用CPLD來實(shí)現(xiàn)數(shù)字延遲線系統(tǒng),不但大大節(jié)省電路開發(fā)費(fèi)用,而且能提高設(shè)計(jì)效率,同時(shí)還能有效實(shí)現(xiàn)電路的數(shù)字化與微型化。
2 數(shù)字延遲線工作原理
數(shù)字延遲線是將邏輯信號延遲一段時(shí)間的元件或器件。通常數(shù)字延遲線的設(shè)計(jì)思路是通過兩個(gè)參數(shù)完全相同的延遲模塊分別對脈沖的上升沿和下降沿進(jìn)行延遲來達(dá)到脈沖信號整體延遲一段時(shí)間的效果。而由于實(shí)際上不可能存在參數(shù)完全相同的延遲模塊使得脈沖前后沿的延遲時(shí)間不可能完全相同,所以這種設(shè)計(jì)的數(shù)字延遲線的延遲精度不可能很高。如果僅用一個(gè)延遲模塊就能同時(shí)完成脈沖前后沿的延遲,這樣就即節(jié)省了電路制作成本又提高了延遲線的延遲精度。本文正是基于這一思想并使用CPLD芯片來實(shí)現(xiàn)數(shù)字延遲線的設(shè)計(jì)的。
本數(shù)字延遲線整體思想是:延遲模塊在觸發(fā)信號上升沿到來時(shí)開始工作,邏輯控制電路控制其輸出為輸入脈沖同相信號或輸入脈沖反相信號,邏輯控制電路輸出用于觸發(fā)延遲模塊,在延遲線輸入脈沖上升沿到來時(shí),邏輯控制電路輸出為與輸入脈沖同相信號,進(jìn)而觸發(fā)延遲模塊,在延遲線輸入脈沖下降沿到來時(shí),邏輯控制電路輸出為與輸入脈沖反相信號,該信號剛好為上升沿,進(jìn)而觸發(fā)延遲模塊進(jìn)行延遲。同時(shí)該數(shù)字延遲線設(shè)計(jì)采用了反饋網(wǎng)絡(luò)結(jié)構(gòu),結(jié)構(gòu)更緊湊,更穩(wěn)定。具體工作原理如下:
圖1 數(shù)字延遲線電路工作原理時(shí)序圖
延遲線輸入信號A,其反相信號 ,兩信號通過邏輯控制模塊其輸出信號O1與其中一路信號同相,該信號接入可逆計(jì)數(shù)器模塊置位端,當(dāng)O1信號上升沿到來時(shí)觸發(fā)可逆計(jì)數(shù)器開始計(jì)數(shù),計(jì)數(shù)器計(jì)數(shù)結(jié)束后輸出信號CK觸發(fā)T觸發(fā)器使T觸發(fā)器輸出態(tài)Q和 反相,輸出端Q為該數(shù)字延遲線的輸出端,其相對輸入信號A有可逆計(jì)數(shù)器計(jì)數(shù)時(shí)間T的相對延遲,同時(shí)T觸發(fā)器的輸出端Q和 又作為邏輯控制模塊的選擇控制信號對信號A和 進(jìn)行選擇。初試狀態(tài)下延遲線輸入信號為低電平,T觸發(fā)器輸出端即延遲線輸出端Q也為低電平,此時(shí)邏輯控制模塊選擇輸入信號A使其輸出信號O1和信號A同相,信號O1輸入至計(jì)數(shù)器置位端,計(jì)數(shù)器置位端低電平有效,所以O(shè)1使可逆計(jì)數(shù)器處于置位狀態(tài),使計(jì)數(shù)器輸出端狀態(tài)恒處于預(yù)置位狀態(tài),計(jì)數(shù)器輸出信號不發(fā)生改變,即而T觸發(fā)器輸出Q不發(fā)生改變,當(dāng)信號A上升沿到來時(shí),信號O1上升沿同時(shí)到來使其變?yōu)楦唠娖?,高電平觸發(fā)計(jì)數(shù)器開始減計(jì)數(shù),當(dāng)計(jì)數(shù)器計(jì)數(shù)至0時(shí),計(jì)數(shù)器輸出端經(jīng)或非門輸出的信號CK由低電平變?yōu)楦唠娖?,該上升沿觸發(fā)T觸發(fā)器使其輸出端Q反相,由低電平變?yōu)楦唠娖?,同時(shí)T觸發(fā)器的輸出端Q和 作為邏輯控制模塊的選擇控制信號使其輸出信號O1變?yōu)榕c 同相,而此時(shí) 為低電平,所以O(shè)1信號使計(jì)數(shù)器處于置數(shù)狀態(tài)輸出為預(yù)置數(shù),使得CK有變?yōu)榈碗娖?,T觸發(fā)器不翻轉(zhuǎn),所有信號維持此狀態(tài)不變。當(dāng)輸入信號A出現(xiàn)下降沿,既由高電平變?yōu)榈碗娖綍r(shí),信號 出現(xiàn)上升沿使得O1有低電平變?yōu)楦唠娖?,O1觸發(fā)計(jì)數(shù)器減計(jì)數(shù),減計(jì)數(shù)至0時(shí),使得CK信號由低電平變?yōu)楦唠娖?,該上升沿觸發(fā)T觸發(fā)器使器輸出反相,一方面使得邏輯控制模塊輸出信號變?yōu)榕cA信號同相,處于低電平使計(jì)數(shù)器處于預(yù)置數(shù)狀態(tài),使得電路狀態(tài)又恢復(fù)到初始狀態(tài),當(dāng)輸入信號A又有脈沖到來時(shí),數(shù)字延遲線將會重復(fù)以上動作;另一方面使得輸出端Q出現(xiàn)下降沿,又高電平變?yōu)榈碗娖?,與輸入信號A同相。整個(gè)過程來看T觸發(fā)器輸出Q相對輸入信號A剛好有一個(gè)計(jì)數(shù)器計(jì)數(shù)時(shí)間Δt的延遲。數(shù)字延遲線電路工作原理的時(shí)序圖如圖1所示。由圖1還可看出,同時(shí)T觸發(fā)器的輸出端 也是數(shù)字延遲線輸入信號 的延遲信號。所以該數(shù)字延遲線即可以延遲高電平脈沖,也可以延遲低電平脈沖。
該數(shù)字延遲線電路特點(diǎn)總結(jié)如下:1、電路結(jié)構(gòu)相對簡單,造價(jià)低廉。而一般延遲線電路都需要兩個(gè)完全相同的電路分別完成對輸入信號的上升沿和下降沿的等時(shí)間延遲以實(shí)現(xiàn)數(shù)字延遲線的功能[3],而且也不可能做到兩電路參數(shù)完全相同。2、邏輯功能強(qiáng),該延遲線可同時(shí)完成高、低脈沖電平的延遲。3、電路為時(shí)鐘脈沖定時(shí)的延遲線,特別適用于數(shù)字通信、數(shù)字儀表及使用計(jì)算機(jī)的設(shè)備中。電路延時(shí)精度僅取決于時(shí)鐘脈沖CP的周期,受環(huán)境溫度、電源波動等因素的影響甚微,所以延遲時(shí)間非常穩(wěn)定、精確,最大誤差只是1個(gè)字的計(jì)數(shù)誤差,時(shí)鐘頻率越大,延遲精度越高。4、電路可編程端即計(jì)數(shù)器預(yù)置數(shù)端DCBA可以由程序控制,DCBA端輸入不同的BCD碼得到不同的延遲時(shí)間的延遲線。延遲時(shí)間Δt=n×1/f,其中,f為時(shí)鐘脈沖CP的頻率,n為DCBA輸入端的BCD碼對應(yīng)的十進(jìn)制數(shù)。5、該數(shù)字延遲線的局限是它只能處理比其延遲時(shí)間長的脈沖信號,這也是現(xiàn)今數(shù)字延遲線的局限[4],但是該電路并不局限于只能處理占空比接近50%的脈沖信號,而是不受脈沖信號占空比的限制。
3 系統(tǒng)實(shí)現(xiàn)
圖2 系統(tǒng)結(jié)構(gòu)圖
高速可程控?cái)?shù)字延遲線系統(tǒng)的整體結(jié)構(gòu)圖如圖所示。Kicker電源需要接收三路信號:主閘流管脈沖信號(MS)、從閘流管脈沖信號(DS)和高壓脈沖信號(HV),故需要完成對這三路脈沖信號的可編程延遲。系統(tǒng)采用CPLD完成對三路信號的高速可程控延遲,CPLD外圍電路包括晶體振蕩器、系統(tǒng)復(fù)位電路及DCBA編程。延遲時(shí)間Δt由晶體振蕩器輸出時(shí)鐘頻率f和DCBA編程值共同確定,調(diào)節(jié)范圍為(1 ~ 24-1)/f。DCBA編程值設(shè)置值為0000 ~ 1111,當(dāng)時(shí)鐘頻率f=200MHz時(shí),延遲時(shí)間調(diào)節(jié)范圍為5ns ~ 75ns,時(shí)間調(diào)節(jié)精度為5ns。
CPLD芯片包括三路數(shù)字延遲線模塊,單模塊的數(shù)字延遲線原理圖如圖3所示,包括MUX模塊、COUNTER_CDL模塊、MYCH模塊、MYTFF模塊和MYSEL模塊。數(shù)字延遲線模塊采用VHDL語言進(jìn)行編程,程序碼較長,限于篇幅,不再給出其VHDL源程序碼[5][6],各模塊功能如下:
圖3 數(shù)字延遲線原理圖
MUX模塊為邏輯控制模塊,輸出Q由控制端SEL電平高低選擇輸出與輸入D0同相或反相。COUNTER_CDL為可逆計(jì)數(shù)器模塊,根據(jù)DCBA編程設(shè)定值對信號進(jìn)行延遲,MYCH模塊將總線信號轉(zhuǎn)換為單路信號,使輸出信號僅在總線信號值為“0000”時(shí)輸出信號為低電平。MYCH模塊輸出信號上升沿可觸發(fā)MYTFF模塊輸出反相,MYTFF模塊為T觸發(fā)器,其輸出即為數(shù)字延遲線信號,該信號同時(shí)作為MUX模塊的控制輸入端控制MUX模塊的輸出。當(dāng)DCBA編程設(shè)定值為“0000”時(shí),MYTFF輸出信號并不是數(shù)字延遲線輸入信號,即以上設(shè)計(jì)不能完成零延時(shí),MYSEL模塊為信號選擇輸出模塊,在DCBA編程碼為“0000”時(shí),輸出為延遲線輸入信號,否則,輸出為編程延遲信號。
圖4 EPM3032ALC44-4的I/O布局
4 仿真及波形
本系統(tǒng)采用的CPLD芯片為ALTERA公司的EPM3032ALC44-4芯片,其最高運(yùn)行頻率為227.3MHz。采用MAX+PLUSⅡ10.0軟件工具開發(fā)。設(shè)計(jì)輸入完成后,進(jìn)行整體的編譯和邏輯仿真,然后進(jìn)行轉(zhuǎn)換、延時(shí)仿真生成配置文件,最后下載至CPLD器件,完成結(jié)構(gòu)功能配置,實(shí)現(xiàn)其硬件功能。CPLD芯片EPM3032ALC44-4的各管腳布局如圖4所示。其中clk時(shí)鐘端口采用了芯片的全局時(shí)鐘端,管腳號為43,輸入信號為ms、ds和hv,輸出為mso、dso和hvo。各管腳序號見圖4所示。
數(shù)字延遲線模塊編譯后進(jìn)行仿真,所得仿真波形圖如圖5所示。DCBA編程十進(jìn)制值為4,延遲線輸出信號Sigout相對輸入信號Signal剛好由4個(gè)時(shí)鐘周期的延遲。Clk時(shí)鐘頻率設(shè)定為f=100MHz,即周期T=10ns,所以延遲時(shí)間Δt=4×10=40ns. 延遲線最大延遲誤差只是1個(gè)字的計(jì)數(shù)誤差,所以時(shí)鐘脈沖頻率越高,誤差越小,由于采用的CPLD芯片的最高運(yùn)行頻率為227.3MHz,所以最小延遲誤差約為4.5ns。如果采用工作頻率更高的CPLD芯片,可進(jìn)一步提高延遲誤差的精度。由定時(shí)分析,輸入信號到輸出信號傳播延遲為4.5ns,由時(shí)鐘信號clk到輸出信號的傳播延遲時(shí)間為9.1ns.
5 結(jié)論
本文作者創(chuàng)新點(diǎn):摒棄了傳統(tǒng)的采用兩個(gè)參數(shù)完全相同的延遲模塊來實(shí)現(xiàn)數(shù)字延遲線的設(shè)計(jì)方法,設(shè)計(jì)了一種由單一模塊可同時(shí)對脈沖上升沿和下降沿進(jìn)行延遲的數(shù)字延遲線,并采用了CPLD用以實(shí)現(xiàn)高速可程控?cái)?shù)字延遲線系統(tǒng)的設(shè)計(jì)。另外,該數(shù)字延遲線系統(tǒng)可通過提高晶振頻率,采用速度更高的CPLD芯片來進(jìn)一步降低延遲誤差。本文所述系統(tǒng)已完成調(diào)試工作并已開始應(yīng)用于蘭州重離子加速器冷卻儲存環(huán)(HIRFL-CSR)的Kicker電源系統(tǒng)中。
評論