采用CPLD的片內(nèi)環(huán)形振蕩器的方案設(shè)計
本文介紹一種通用的基于CPLD的片內(nèi)振蕩器設(shè)計方法,它基于環(huán)形振蕩器原理,只占用片上普通邏輯資源(LE),無需使用專用邏輯資源(如MaxII中的UFM),從而提高了芯片的資源利用率;振蕩頻率可在一定范圍內(nèi)調(diào)整,振蕩輸出可以驅(qū)動內(nèi)部邏輯和外部器件引腳。本設(shè)計有較大的通用性,可方便地在不同CPLD器件間移植,使一些基于CPLD的片上系統(tǒng)(SoC)設(shè)計無需使用外部時鐘信號源,從而降低設(shè)計成本和難度,增加系統(tǒng)集成度。通過在Altera公司的MAX7000系列EMP7128LC84-15芯片上的實驗說明實現(xiàn)的方法。實驗實現(xiàn)的頻率范圍在8MHz~62MHz。仿真和硬件測試結(jié)果表明了該設(shè)計方法的正確性和可行性。
1 基于CPLD的片內(nèi)環(huán)形振蕩器
環(huán)形振蕩器原理如圖1所示。由奇數(shù)個非門組成的環(huán)形非門級聯(lián)串使電路處于無穩(wěn)定狀態(tài),靜態(tài)下任何一個非門的輸入和輸出都不可能穩(wěn)定在高電平或低電平,而只能處于周而復(fù)始的高低電平轉(zhuǎn)換狀態(tài),從而產(chǎn)生自激振蕩。振蕩周期為T=2Ntpd,其中N是非門的個數(shù),tpd是每個非門的傳輸延遲時間,改變電路中非門的數(shù)量可以改變電路的振蕩頻率。
圖1所示的環(huán)形振蕩器即使采用電路原理圖輸入,經(jīng)電子設(shè)計自動化(EDA)軟件綜合后,也得不到對應(yīng)的電路結(jié)構(gòu)。實際上,EDA綜合工具不是從電路結(jié)構(gòu)出發(fā),而是從電路輸入和輸出的邏輯關(guān)系出發(fā)給出綜合結(jié)果,所以,奇數(shù)個非門的級聯(lián)將被綜合為一個非門,而偶數(shù)個非門的級聯(lián)被綜合為一個緩沖或一條聯(lián)線。為能在CPLD器件中實現(xiàn)圖1的環(huán)形振蕩器結(jié)構(gòu),本文將圖1中單端口輸入元件改成二端口輸入元件,即用二輸入與非門代替圖1的第一個非門,其余偶數(shù)個非門則用二輸入與門代替,二端口元件的一個輸入端口連接上級輸出,另一輸入端口作為控制端引出。振蕩器正常工作時控制端全部置高電平。采用Synplify Pro 7.7綜合后的原理圖如圖2所示。該電路完全可實現(xiàn)圖1的功能。
為了保證正反饋,圖1結(jié)構(gòu)的非門級聯(lián)必須是奇數(shù)個。圖2中的與非門起到反相作用,其他與門則起延時緩沖的作用??梢酝ㄟ^改變門的數(shù)量以及選擇門的種類(與門、與非門等)改變osc輸出端的振蕩頻率,而不受"奇數(shù)"個門的限制,只要保障第一個門得到正反饋就可以產(chǎn)生振蕩。而圖1的結(jié)構(gòu)必須改變偶數(shù)個非門才能達到改變振蕩頻率的目的,因而圖2結(jié)構(gòu)在CPLD芯片中實現(xiàn)時可以節(jié)省邏輯資源??刂贫薿scena[n-1,0]為振蕩使能控制端,置高電平時,與非門的輸入和輸出在緩沖級聯(lián)鏈的反饋作用下產(chǎn)生自激振蕩,振蕩器正常工作;控制端的任意一位置零使振蕩器停振。所以oscena既可單獨使用,也可互聯(lián)后作為一個端使用。實驗證明,圖2結(jié)構(gòu)能夠保證門延時的等間隔特性。
2 CPLD片內(nèi)振蕩器的實現(xiàn)和優(yōu)化
2.1 CPLD片內(nèi)振蕩器的實現(xiàn)
基于上述方法的片內(nèi)環(huán)形振蕩器設(shè)計有很大的通用性,可在不同CPLD芯片間方便地移植。本文以Altera公司的MAX7000S系列CPLD芯片的實現(xiàn)和測試為例說明。MAX7000S系列基于先進的多矩陣構(gòu)架設(shè)計,采用CMOS工藝制造,容量高達256個邏輯單元LE(Logic El-ement),每16個宏單元組成一個邏輯陣列塊LAB(LogicArray Block),速度達3.5ns的管腳到管腳延時,同時支持多種I/O電壓標準。
從EDA軟件綜合后的報告可以看出,圖2所示電路中每個門占用了一個邏輯單元。也就是說,電路內(nèi)LE的延時將作為門的延時tpd,而且需要將振蕩使能端引出到I/O引腳,當(dāng)所實現(xiàn)振蕩頻率較低時,需要較多的門電路單元,這將占用一定的邏輯和引腳資源,從而降低芯片資源的利用率,所以在低頻情況下使用時,要綜合考慮系統(tǒng)需要的振蕩頻率,盡量用較少的門電路實現(xiàn)環(huán)形振蕩器,以提供較高振蕩頻率,再設(shè)計分頻電路以取得合適的振蕩頻率,從而提高芯片的資源利用率。綜合器的這一處理,從客觀上保證了設(shè)計者可以選擇不同的門來實現(xiàn)圖2的結(jié)構(gòu),仍然可以保證振蕩間隔的一致性。實驗也證實了這個結(jié)果。
2.2 電源電壓的影響
電壓會影響振蕩電路的工作頻率,電壓增大會導(dǎo)致電路振蕩頻率增加,反之振蕩頻率減小。CPLD芯片一般有兩個相對獨立的供電端口,即核心電壓(VCCINT)和引腳電壓(VCCIO)。其中核心電壓給芯片內(nèi)部可編程邏輯電路資源提供電源,引腳電壓為芯片的I/O引腳提供電源,以適應(yīng)各種輸出標準(如LVCOMOS、LVTTL、SSTL-2、SSTL-3等)。對振蕩頻率有影響的是CPLD芯片的核心電壓,對此電壓應(yīng)采取穩(wěn)壓措施,穩(wěn)壓措施要視不同的應(yīng)用要求而定。最簡單的措施是采用高性能的穩(wěn)壓芯片給CPLD芯片分別提供兩部分電壓。隨著半導(dǎo)體技術(shù)的發(fā)展,簡單而廉價的穩(wěn)壓芯片已具有較高的性能,如National公司的LM2678系列芯片在有效輸入變化范圍內(nèi),穩(wěn)壓輸出誤差在±2%以內(nèi)。
2.3 CPLD片內(nèi)振蕩器優(yōu)化
通過EDA軟件對設(shè)計做優(yōu)化有可能提高所設(shè)計的振蕩器的性能,減少對CPLD片內(nèi)資源的占用。當(dāng)采用MAX+plusII10.2軟件設(shè)計時,軟件優(yōu)化開關(guān)設(shè)置為:(1)本設(shè)計選用MAX系列芯片,故選擇對該芯片的多層綜合選項(Multi-Level Synthesis for Max5000/7000/9000De-vice)。(2)在面積和速度優(yōu)化選項中,選擇對面積的優(yōu)化,使振蕩器部分盡可能分配到同一個LAB中。(3)打開"Slow Slew Rate"以降低開關(guān)噪聲,打開"XOR Synthesis"以減少芯片面積的占用。
3 電路仿真及測試結(jié)果
本文以Altera公司的MAX+plus II 10.2為設(shè)計工具,在MAX7000S系列芯片上實現(xiàn)并測試。圖3為選用EMP7128LC84-15芯片的時序仿真結(jié)果。其中p0~p7分別為環(huán)形振蕩電路中單個門之后的電路節(jié)點;oscena[7…0]為各延時門電路的控制端(即所有二輸入門中多余的輸入端)。
表1列出了以EPM7128LC84-15為目標芯片、采用Tektronic TDS2012示波器對用不同門數(shù)實現(xiàn)的片內(nèi)振蕩器的測試數(shù)據(jù)。F1和F2分別表示片內(nèi)振蕩器輸出和二分頻輸出的測量數(shù)據(jù)。圖4給出了測量數(shù)據(jù)的曲線。[!--empirenews.page--]
表1數(shù)據(jù)表明,通過增加門電路的數(shù)量可以有規(guī)律地減小振蕩電路的工作頻率,由每個邏輯單元實現(xiàn)的門電路單元延時tpd在7.5~10ns之間。
本文介紹的基于CPLD的片內(nèi)振蕩器設(shè)計方法,在改變該振蕩器電路中門電路數(shù)量時,可以有規(guī)律地將振蕩頻率控制在8MHz~62MHz范圍內(nèi)。振蕩器的片內(nèi)設(shè)計使基于CPLD的片上系統(tǒng)(SoC)設(shè)計無需外接時鐘信號源,加大了系統(tǒng)的集成度并降低了設(shè)計成本。本方法有很大的通用性,可以方便地在不同CPLD芯片間移植。仿真和測試數(shù)據(jù)表明該設(shè)計方法具有正確性和可行性。