基于CPLD的片內(nèi)環(huán)形振蕩器的設(shè)計(jì)方案
本文介紹一種通用的基于CPLD的片內(nèi)振蕩器設(shè)計(jì)方法,它基于環(huán)形振蕩器原理,只占用片上普通邏輯資源(LE),無需使用專用邏輯資源(如MaxII中的UFM),從而提高了芯片的資源利用率;振蕩頻率可在一定范圍內(nèi)調(diào)整,振蕩輸出可以驅(qū)動(dòng)內(nèi)部邏輯和外部器件引腳。本設(shè)計(jì)有較大的通用性,可方便地在不同CPLD器件間移植,使一些基于CPLD的片上系統(tǒng)(SoC)設(shè)計(jì)無需使用外部時(shí)鐘信號(hào)源,從而降低設(shè)計(jì)成本和難度,增加系統(tǒng)集成度。通過在Altera公司的MAX7000系列EMP7128LC84-15芯片上的實(shí)驗(yàn)說明實(shí)現(xiàn)的方法。實(shí)驗(yàn)實(shí)現(xiàn)的頻率范圍在8MHz~62MHz。仿真和硬件測(cè)試結(jié)果表明了該設(shè)計(jì)方法的正確性和可行性。
1 基于CPLD的片內(nèi)環(huán)形振蕩器
環(huán)形振蕩器原理如圖1所示。由奇數(shù)個(gè)非門組成的環(huán)形非門級(jí)聯(lián)串使電路處于無穩(wěn)定狀態(tài),靜態(tài)下任何一個(gè)非門的輸入和輸出都不可能穩(wěn)定在高電平或低電平,而只能處于周而復(fù)始的高低電平轉(zhuǎn)換狀態(tài),從而產(chǎn)生自激振蕩。振蕩周期為T=2Ntpd,其中N是非門的個(gè)數(shù),tpd是每個(gè)非門的傳輸延遲時(shí)間,改變電路中非門的數(shù)量可以改變電路的振蕩頻率。
圖1所示的環(huán)形振蕩器即使采用電路原理圖輸入,經(jīng)電子設(shè)計(jì)自動(dòng)化(EDA)軟件綜合后,也得不到對(duì)應(yīng)的電路結(jié)構(gòu)。實(shí)際上,EDA綜合工具不是從電路結(jié)構(gòu)出發(fā),而是從電路輸入和輸出的邏輯關(guān)系出發(fā)給出綜合結(jié)果,所以,奇數(shù)個(gè)非門的級(jí)聯(lián)將被綜合為一個(gè)非門,而偶數(shù)個(gè)非門的級(jí)聯(lián)被綜合為一個(gè)緩沖或一條聯(lián)線。為能在CPLD器件中實(shí)現(xiàn)圖1的環(huán)形振蕩器結(jié)構(gòu),本文將圖1中單端口輸入元件改成二端口輸入元件,即用二輸入與非門代替圖1的第一個(gè)非門,其余偶數(shù)個(gè)非門則用二輸入與門代替,二端口元件的一個(gè)輸入端口連接上級(jí)輸出,另一輸入端口作為控制端引出。振蕩器正常工作時(shí)控制端全部置高電平。采用Synplify Pro 7.7綜合后的原理圖如圖2所示。該電路完全可實(shí)現(xiàn)圖1的功能。
為了保證正反饋,圖1結(jié)構(gòu)的非門級(jí)聯(lián)必須是奇數(shù)個(gè)。圖2中的與非門起到反相作用,其他與門則起延時(shí)緩沖的作用。可以通過改變門的數(shù)量以及選擇門的種類(與門、與非門等)改變osc輸出端的振蕩頻率,而不受"奇數(shù)"個(gè)門的限制,只要保障第一個(gè)門得到正反饋就可以產(chǎn)生振蕩。而圖1的結(jié)構(gòu)必須改變偶數(shù)個(gè)非門才能達(dá)到改變振蕩頻率的目的,因而圖2結(jié)構(gòu)在CPLD芯片中實(shí)現(xiàn)時(shí)可以節(jié)省邏輯資源??刂贫薿scena[n-1,0]為振蕩使能控制端,置高電平時(shí),與非門的輸入和輸出在緩沖級(jí)聯(lián)鏈的反饋?zhàn)饔孟庐a(chǎn)生自激振蕩,振蕩器正常工作;控制端的任意一位置零使振蕩器停振。所以oscena既可單獨(dú)使用,也可互聯(lián)后作為一個(gè)端使用。實(shí)驗(yàn)證明,圖2結(jié)構(gòu)能夠保證門延時(shí)的等間隔特性。
評(píng)論