




已閱讀5頁,還剩57頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
等精度數(shù)字頻率計(jì)的設(shè)計(jì)李艷秋摘 要基于傳統(tǒng)測(cè)頻原理的頻率計(jì)的測(cè)量精度將隨著被測(cè)信號(hào)頻率的下降而降低,在實(shí)用中有很大的局限性,而等精度頻率計(jì)不但有較高的測(cè)量精度,而且在整個(gè)測(cè)頻區(qū)域內(nèi)保持恒定的測(cè)試精度。運(yùn)用等精度測(cè)量原理,結(jié)合單片機(jī)技術(shù)設(shè)計(jì)了一種數(shù)字頻率計(jì),由于采用了屏蔽驅(qū)動(dòng)電路及數(shù)字均值濾波等技術(shù)措施,因而能在較寬定的頻率范圍和幅度范圍內(nèi)對(duì)頻率,周期,脈寬,占空比等參數(shù)進(jìn)行測(cè)量,并可通過調(diào)整閘門時(shí)間預(yù)置測(cè)量精度。選取的這種綜合測(cè)量法作為數(shù)字頻率計(jì)的測(cè)量算法,提出了基于FPGA 的數(shù)字頻率計(jì)的設(shè)計(jì)方案。給出了該設(shè)計(jì)方案的實(shí)際測(cè)量效果,證明該設(shè)計(jì)方案切實(shí)可行,能達(dá)到較高的頻率測(cè)量精度。 關(guān)鍵詞 等精度測(cè)量,單片機(jī),頻率計(jì),閘門時(shí)間,F(xiàn)PGAABSTRACTAlong with is measured based on the traditional frequency measurement principle frequency meter measuring accuracy the signalling frequency the drop but to reduce, in is practical has the very big limitation, but and so on the precision frequency meter not only has teaches the high measuring accuracy, moreover maintains the constant test precision in the entire frequency measurement region. Using and so on the precision survey principle, unified the monolithic integrated circuit technical design one kind of numeral frequency meter, because has used the shield actuation electric circuit and technical measure and so on digital average value filter, thus could in compared in the frequency range and the scope scope which the width decided to the frequency, the cycle, the pulse width, occupied parameter and so on spatial ratio carries on the survey, and might through the adjustment strobe time initialization measuring accuracy. Selection this kind of synthesis measured the mensuration took the digital frequency meter the survey algorithm, proposed based on the FPGA digital frequency meter design proposal. Has produced this design proposal actual survey effect, proved this design proposal is practical and feasible, can achieve the high frequency measurement precision Keywords Precision survey, microcontroller, frequency meter, strobe time,field programmable gate array 目 錄摘 要I ABSTRACTII 1 緒論1 2 系統(tǒng)設(shè)計(jì)方案2 2.1系統(tǒng)設(shè)計(jì)方案的選擇2 2.1.1 頻率測(cè)量模塊2 2.1.2 周期測(cè)量模塊42.1.3 脈寬測(cè)量模塊42.1.4 占空比測(cè)量模塊4 3 系統(tǒng)總體設(shè)計(jì)方案5 4 CPLD/FPGA測(cè)頻專用模塊的VHDL程序設(shè)計(jì)6 4.1 測(cè)頻模塊邏輯結(jié)構(gòu)6 4.2 各模塊功能和工作步驟如下:6 4.2.1 測(cè)頻/測(cè)周期的實(shí)現(xiàn)74.2.2 控制部件設(shè)計(jì)74.2.3 脈沖寬度測(cè)量和占空比測(cè)量模塊設(shè)計(jì)74.2.4 電路顯示模塊84.2.5 數(shù)碼管的編碼表105 單片機(jī)控制與運(yùn)算程序的設(shè)計(jì)11 5.1 AT89C51RC單片機(jī)簡介11 5.2 軟件調(diào)試系統(tǒng)19 5.3具體試驗(yàn)過程20 5.3.1 第一次測(cè)試205.3.2 第二次計(jì)算225.4 系統(tǒng)調(diào)試的方法23 5.4.1 調(diào)試的軟/硬件235.4.2 系統(tǒng)的仿真結(jié)果235.5 設(shè)計(jì)技巧分析24 5.6 系統(tǒng)擴(kuò)展思路24 6 VHDL程序語言和FPGA簡介26 6.1 vhdl程序語言介紹:26 6.2 FPGA 簡介28 6.3 VHDL 在FPGA中的運(yùn)用29 結(jié)論32附錄A:單片機(jī)程序和VHDL程序33參考文獻(xiàn)56致 謝57 1 緒論 測(cè)量頻率是電子測(cè)量技術(shù)中最常見的測(cè)量之一。不少物理量的測(cè)量, 如時(shí)間、速度等都涉及到或本身可轉(zhuǎn)化為頻率的測(cè)量。目前, 市場(chǎng)上有各種多功能、高精度、高頻率的數(shù)字頻率計(jì), 但價(jià)格不菲。而在實(shí)際工程中, 并不是對(duì)所有信號(hào)的頻率測(cè)量都要求達(dá)到非常高的精度。目前, 有三種常用的數(shù)字頻率的測(cè)量方法: 直接測(cè)量法(以下稱M法) 、周期測(cè)量法(以下稱T法) 和綜合測(cè)量法(以下稱M /T法) 。M法是在給定的閘門時(shí)間內(nèi)測(cè)量被測(cè)信號(hào)的脈沖個(gè)數(shù), 進(jìn)行換算得出被測(cè)信號(hào)的頻率。T法是通過測(cè)量被測(cè)信號(hào)一個(gè)周期時(shí)間計(jì)時(shí)信號(hào)的脈沖個(gè)數(shù), 然后換算出被測(cè)信號(hào)的頻率。這兩種測(cè)量法的精度都與被測(cè)信號(hào)有關(guān), 因而它們屬于非等精度測(cè)量法。而M /T法它通過測(cè)量被測(cè)信號(hào)數(shù)個(gè)周期的時(shí)間, 然后換算得出被測(cè)信號(hào)的頻率, 克服了測(cè)量精度對(duì)被測(cè)信號(hào)的依賴性。M /T法的核心思想是通過閘門信號(hào)與被測(cè)信號(hào)同步, 將閘門時(shí)間控制為被測(cè)信號(hào)周期長度的整數(shù)倍。測(cè)量時(shí), 先打開預(yù)置閘門, 當(dāng)檢測(cè)到被測(cè)信號(hào)脈沖沿到達(dá)時(shí), 標(biāo)準(zhǔn)信號(hào)時(shí)鐘開始計(jì)數(shù)。預(yù)置閘門關(guān)閉時(shí), 標(biāo)準(zhǔn)信號(hào)并不立即停止計(jì)數(shù), 而是等檢測(cè)到被測(cè)信號(hào)脈沖沿到達(dá)時(shí)才停止, 完成被測(cè)信號(hào)整數(shù)周期的測(cè)量。測(cè)量的實(shí)際閘門時(shí)間與預(yù)置閘門時(shí)間可能不完全相同, 但最大差值不超過被測(cè)信號(hào)的一個(gè)周期。2 系統(tǒng)設(shè)計(jì)方案2.1系統(tǒng)設(shè)計(jì)方案的選擇根據(jù)頻率計(jì)的設(shè)計(jì)要求,我們可將整個(gè)電路系統(tǒng)劃分為幾個(gè)模塊,頻率測(cè)量模塊,周期測(cè)量模塊,脈寬測(cè)量模塊,和占空比測(cè)量模塊。標(biāo)準(zhǔn)頻率發(fā)生電路采用高頻率穩(wěn)定度和高精度的晶鎮(zhèn)作為標(biāo)準(zhǔn)頻率發(fā)生器。如圖所示。各模塊的實(shí)現(xiàn)均有幾種不同的設(shè)計(jì)方案。 圖2.1 頻率計(jì)組成模塊框圖2.1.1 頻率測(cè)量模塊直接測(cè)頻法:把被測(cè)頻率信號(hào)經(jīng)脈沖整形電路處理后加到閘門的一個(gè)出入端,只有在閘門開通時(shí)間T(以秒計(jì))內(nèi),被計(jì)數(shù)的脈沖送到十進(jìn)制計(jì)數(shù)器進(jìn)行計(jì)數(shù);設(shè)計(jì)數(shù)器的值為N,則可得到被測(cè)信號(hào)頻率為f=N/T,經(jīng)分析,本測(cè)量在低頻率的相對(duì)測(cè)量誤差較大,即在低頻段不能滿足本設(shè)計(jì)的要求。組合測(cè)頻法:這種方法可以在一定程度上彌補(bǔ)方法(1)中的不足,但是難以確定最佳分測(cè)點(diǎn),且電路實(shí)現(xiàn)較復(fù)雜。倍頻法:是指把頻率測(cè)量范圍分成多個(gè)頻段,使用倍頻技術(shù),根據(jù)頻段設(shè)置倍頻系數(shù),將經(jīng)整形的低頻信號(hào)進(jìn)行倍頻后在進(jìn)行測(cè)量,對(duì)高頻段則直接進(jìn)行測(cè)量。倍頻法較難實(shí)現(xiàn)。等精度測(cè)頻法:其實(shí)現(xiàn)方式可用圖2.2來說明。圖中,預(yù)置門控信號(hào)是寬度為TPR的一個(gè)脈沖,CNT1和CNT2是兩個(gè)可控計(jì)數(shù)器。標(biāo)準(zhǔn)頻率信號(hào)從CNT1的時(shí)鐘輸出端CLK輸入,其頻率為fs,經(jīng)整形后的被測(cè)信號(hào)從CNT2的時(shí)鐘輸入端CLK輸入,設(shè)其實(shí)際頻率為fx;當(dāng)預(yù)置門控信號(hào)為高時(shí),經(jīng)整形后的被測(cè)信號(hào)的上升沿通過D觸發(fā)器的Q端同時(shí)啟動(dòng)計(jì)數(shù)器CNT1和CNT2。CNT1和CNT2分別對(duì)被測(cè)信號(hào)(頻率為fs)和標(biāo)準(zhǔn)頻率信號(hào)(頻率為fx)同時(shí)計(jì)數(shù)。當(dāng)預(yù)置門信號(hào)為低時(shí),隨后而至的被測(cè)信號(hào)的上升沿將兩個(gè)計(jì)數(shù)器同時(shí)關(guān)閉。設(shè)在一次預(yù)置門時(shí)間Tpr內(nèi)對(duì)被測(cè)信號(hào)的計(jì)數(shù)值為Nx,對(duì)標(biāo)準(zhǔn)信號(hào)的計(jì)數(shù)值為Ns。則下式成立:fx/Nx=fs/Ns由此推得:fx=fs*Nx/Ns圖2.2 等精度測(cè)頻法原理框圖若所測(cè)頻率值為fx,其真實(shí)值為fxe,標(biāo)準(zhǔn)頻率為fs,一次測(cè)量中,由于fx計(jì)數(shù)的起停時(shí)間都是該信號(hào)的上跳沿觸發(fā)的,因此在Tpr時(shí)間內(nèi)對(duì)fx的計(jì)數(shù)Nx無誤差,在此時(shí)間內(nèi)的計(jì)數(shù)Ns最多相差一個(gè)脈沖,即fx/Nx=fs/Ns,則下式成立: fxe/Nx=fs/Ns+et 可分別推得 fx=fs*Nx/Ns fxe=fs*Nx/Ns+et 根據(jù)相對(duì)誤差的公式有:fxe/fxe=fxe-fx/fxe 經(jīng)整理可得到:fxe/fxe=et/Ns因et1,故fxe/fxe1/Ns Ns=Tpr*fs根據(jù)以上分析,我們可知等精度測(cè)頻法具有三個(gè)特點(diǎn):1,相對(duì)測(cè)量誤差與被測(cè)頻率的高低無關(guān);2,增大Tpr或fs可以增大Ns,減少測(cè)量誤差,提高測(cè)量精度;3,測(cè)量精度與預(yù)置門寬度和標(biāo)準(zhǔn)頻率有關(guān),與被測(cè)信號(hào)的頻率無關(guān),在預(yù)置門和常規(guī)測(cè)頻閘門時(shí)間相同而被測(cè)信號(hào)頻率不同的情況下,等精度測(cè)量法的測(cè)量精度不變; 經(jīng)過綜合考慮,結(jié)合設(shè)計(jì)需求,選用第種方案,即用等精度測(cè)頻法來實(shí)現(xiàn)本設(shè)計(jì)頻率測(cè)量。2.1.2 周期測(cè)量模塊直接周期測(cè)量法:用被測(cè)信號(hào)經(jīng)放大整形后形成的方波信號(hào)直接控制計(jì)數(shù)門控電路,使主門開放時(shí)間等于信號(hào)周期Tx,時(shí)標(biāo)為Ts的脈沖在主門開放時(shí)間進(jìn)入計(jì)數(shù)器。設(shè)在Tx期間計(jì)數(shù)值為N,可以根據(jù)以下公式來算得被測(cè)信號(hào)周期:Tx=N*Ts經(jīng)誤差分析,可得結(jié)論:用該測(cè)量法測(cè)量時(shí),被測(cè)信號(hào)的頻率越高,測(cè)量誤差越大。等精度周期測(cè)量法:該方法在測(cè)量電路和測(cè)量精度上與等精度測(cè)量完全相同,只是在進(jìn)行計(jì)算時(shí)公式不同,在周期1/T代換頻率f即可,其計(jì)算公式為Tx=Ts*Ns/Nx從降低電路的復(fù)雜度及提高精度(特別是高頻)上考慮,本設(shè)計(jì)擬采用方法測(cè)量被測(cè)信號(hào)的周期。2.1.3 脈寬測(cè)量模塊在進(jìn)行脈沖寬度測(cè)量時(shí),首先經(jīng)信號(hào)處理電路進(jìn)行處理,限制只有信號(hào)的50%幅度及其以上部分才能輸入數(shù)字測(cè)量部分。脈沖邊沿被處理得非常陡峭,然后送入測(cè)量計(jì)數(shù)器進(jìn)行測(cè)量。測(cè)量電路在檢測(cè)到脈沖信號(hào)的上升沿時(shí)打開計(jì)數(shù)器,在下降沿是關(guān)閉計(jì)數(shù)器,設(shè)脈沖寬度為Twx,計(jì)算公式為:Twx=Nx/fs。2.1.4 占空比測(cè)量模塊 測(cè)一次脈沖信號(hào)的脈寬,記錄其值為Twx1,然后將信號(hào)反相,再測(cè)一次脈寬并記錄起值為Twx2,通過下式計(jì)算占空比:占空比=Twx1/(Twx1+Twx2)*100%3 系統(tǒng)總體設(shè)計(jì)方案等精度數(shù)字頻率計(jì)涉及到的計(jì)算包括加,減,乘,除,耗用的資源比較大,用一般中小規(guī)模CPLD/FPGA芯片難以實(shí)現(xiàn)。因此,我們選擇單片機(jī)和CPLD/FPGA的結(jié)合來實(shí)現(xiàn)。電路系統(tǒng)原理框圖如圖所示,其中單片機(jī)完成整個(gè)測(cè)量電路的測(cè)試控制,數(shù)據(jù)處理和顯示輸出;CPLD/FPGA完成各種測(cè)試功能;鍵盤信號(hào)由AT89C51單片機(jī)進(jìn)行處理,它從CPLD/FPGA讀回計(jì)數(shù)數(shù)據(jù)并進(jìn)行運(yùn)算,向顯示電路輸出測(cè)量結(jié)果;顯示器電路采用七段LED動(dòng)態(tài)顯示,由8個(gè)芯片74LS164分別驅(qū)動(dòng)數(shù)碼管。圖3.1 等精度數(shù)字頻率計(jì)電路系統(tǒng)原理框圖系統(tǒng)的基本工作方式如下:P0是單片機(jī)與FPGA的數(shù)據(jù)傳送通信口,P1口用于鍵盤掃描,實(shí)現(xiàn)各測(cè)試功能的轉(zhuǎn)換;P2口為雙向控制口。P3口為LED的串行顯示控制口;系統(tǒng)設(shè)置5個(gè)功能鍵:占空比,脈寬,周期,頻率,和復(fù)位。7個(gè)LED數(shù)碼管組成測(cè)量數(shù)據(jù)顯示器,另一個(gè)獨(dú)立的數(shù)碼管用于狀態(tài)顯示。BCLK 為測(cè)頻標(biāo)準(zhǔn)頻率為50MHz 信號(hào)輸入端,由晶體震蕩源電路提供。待測(cè)信號(hào)經(jīng)放大整形后輸入CPLD/FPGA 的TCLK。4 CPLD/FPGA測(cè)頻專用模塊的VHDL程序設(shè)計(jì)4.1測(cè)頻模塊邏輯結(jié)構(gòu)利用VHDL程序設(shè)計(jì)的測(cè)頻模塊邏輯結(jié)構(gòu)如圖所示,其中有關(guān)的接口信號(hào)規(guī)定如下:TP(P2.7):TF=0 時(shí)等精度測(cè)頻;TF=1 時(shí)測(cè)脈寬; CLR/TRIG(P2.6):當(dāng)TF=0 時(shí)系統(tǒng)全清零功能;當(dāng)TF=1 時(shí)CLRTRIG 的上跳沿將啟動(dòng)CNT2 ,進(jìn)行脈寬測(cè)試計(jì)數(shù); ENDD (P2.4):脈寬計(jì)數(shù)結(jié)束狀態(tài)信號(hào),ENDD=1計(jì)數(shù)結(jié)束;CHOICE(P3.2):自校/測(cè)頻選擇,CHOICE=1 測(cè)頻;CHOICE=0自校; START(P2.5):當(dāng)TF=0 時(shí),作為預(yù)置門閘,門寬可通過鍵盤由單片機(jī)控制,START=1時(shí)預(yù)置門開;當(dāng)TF=1時(shí),START有第二功能,此時(shí),當(dāng)START=0時(shí)測(cè)負(fù)脈寬,當(dāng)START=1時(shí)測(cè)正脈寬。利用此功能可分別獲得脈寬和占空比數(shù)據(jù)。 EEDN(P2.3):等精度測(cè)頻計(jì)數(shù)結(jié)束狀態(tài)信號(hào),EEND=0時(shí)計(jì)數(shù)結(jié)束。 SELP2.2(P2.2,P2.1,P2.0):計(jì)數(shù)值讀出選通控制;當(dāng)SEL2.0=“000”,“001”, “010”. “111”時(shí),將CNT1,CNT2的計(jì)數(shù)值分8次,每次讀出8位,并傳達(dá)到單片機(jī)的P0口。圖4.1 測(cè)頻模塊邏輯圖4.2 各模塊功能和工作步驟如下:4.2.1 測(cè)頻/測(cè)周期的實(shí)現(xiàn)被測(cè)信號(hào)脈沖從CONTRL模塊的FIN端輸入,標(biāo)準(zhǔn)頻率信號(hào)從CONTRL 的FSD端輸入,CONTRL的CLR是此模塊電路的工作初始化信號(hào)輸入端。在進(jìn)行頻率或周期測(cè)量時(shí),其工作步驟如下: 令TF=0,選擇等精度測(cè)頻,然后再CONTRL的CLR端加一正脈沖信號(hào)以完成測(cè)試電路狀態(tài)的初始化。 由預(yù)置門控信號(hào)將CONTRL的START端置高電平,預(yù)置門開始定時(shí),此時(shí)由被測(cè)信號(hào)的上沿打開計(jì)數(shù)器CNT1進(jìn)行計(jì)數(shù),同時(shí)使標(biāo)準(zhǔn)頻率信號(hào)進(jìn)入計(jì)數(shù)器CNT2。 預(yù)置門定時(shí)結(jié)束信號(hào)把CONTRL的START端置為低電平(由單片機(jī)來完成),在被測(cè)信號(hào)的下一次脈沖的上沿到來時(shí),CNT1停止計(jì)數(shù),同時(shí)關(guān)斷CNT2對(duì)FS的計(jì)數(shù)。 計(jì)數(shù)結(jié)束后,CONTRL的EEND端將輸出低電平來指示測(cè)量計(jì)數(shù)結(jié)束,單片機(jī)得到此信號(hào)后,即可利用ADRC(P2.2),ADRB(P2.1),ADRA(P2.0)分別讀回CNT1 和CNT2的計(jì)數(shù)值,并根據(jù)精度測(cè)量公式進(jìn)行運(yùn)算,計(jì)算出被測(cè)信號(hào)的頻率或周期值。4.2.2 控制部件設(shè)計(jì)如圖所示,當(dāng)D觸發(fā)器的輸入端START為高電平時(shí),若FIN端來一個(gè)上升沿,則Q端變?yōu)楦唠娖剑瑢?dǎo)通FIN-CLK1和FSD-CLK2,同時(shí)EEND被置為高電平作為標(biāo)志;當(dāng)D觸發(fā)器的輸入端START為低電平時(shí),若FIN端輸入一個(gè)脈沖上沿,則FIN-CLK1與FSD-CLK2的信號(hào)通道被切斷。圖4.2 測(cè)頻與測(cè)周期控制部分電路計(jì)數(shù)部件設(shè)計(jì) 圖中的計(jì)數(shù)器CNT1/CNT2是32位二進(jìn)制計(jì)數(shù)器,通過DSEL模塊的控制,單片機(jī)可分4次將其32位數(shù)據(jù)全部讀數(shù)。4.2.3 脈沖寬度測(cè)量和占空比測(cè)量模塊設(shè)計(jì) 根據(jù)上述脈寬測(cè)量原理,設(shè)計(jì)如圖(CONTRL)所示的電路原理示意圖。該信號(hào)的上沿和下沿信號(hào)對(duì)應(yīng)于未經(jīng)處理時(shí)的被測(cè)信號(hào)50%幅度時(shí)的上沿和下沿.被測(cè)信號(hào)從FIN端輸入,CLR為初始化信號(hào)START為工作使能信號(hào).CONTRL2模塊的PUL端與GATE的輸入端PUL連接.圖4.3 脈沖寬度測(cè)量原理圖測(cè)量脈沖寬度的工作步驟如下: 向CONTRL的CLR端送一個(gè)脈沖以便進(jìn)行電路的工作狀態(tài)初始化. 將GATE的CNL端置高電平,表示開始脈沖寬度測(cè)量,這時(shí)CNT2的輸入信號(hào)為FSD. 在被測(cè)脈沖的上沿到來時(shí),CONTRL2的PUL端輸出高電平,標(biāo)準(zhǔn)頻率信號(hào)進(jìn)入計(jì)數(shù)器CNT2. 在被測(cè)脈沖的下沿到來時(shí),CONTRL2的PUL端輸出低電平,計(jì)數(shù)器CNT2被關(guān)斷. 由單片機(jī)讀出計(jì)數(shù)器CNT2的結(jié)果,并通過上述測(cè)量原理公式計(jì)算出脈沖寬度.CONTRL2子模塊的主要特點(diǎn)是:電路的設(shè)計(jì)保證了只有CONTRL2被初始化后才能工作,否則PUL輸出始終為零.只有在先檢測(cè)到上沿后PUL才為高電平,然后在檢測(cè)到下沿時(shí),PUL輸出為低電平:ENDD輸出高電平以便通知單片機(jī)測(cè)量計(jì)數(shù)已經(jīng)結(jié)束:如果先檢測(cè)到下沿,PUL并無變化;在檢測(cè)到上沿并緊接一個(gè)下沿后,CONTRL2不再發(fā)生變化直到下一個(gè)初始化信號(hào)到來.占空比的測(cè)量方法是通過測(cè)量脈沖寬度記錄CNT2的計(jì)數(shù)值N1,然后將輸入信號(hào)反相,再測(cè)量脈沖寬度,沒得CNT2計(jì)數(shù)值N2則可以計(jì)算出: 占空比=N1/(N1+N2)*100%4.2.4 電路顯示模塊系統(tǒng)硬件電路中,單片機(jī)MCU與FPGA進(jìn)行數(shù)據(jù)交換占用了P0口、P1口和P3口,因此數(shù)據(jù)顯示電路的設(shè)計(jì)采用靜態(tài)顯示的方式,顯示電路由8個(gè)共陽極七段數(shù)碼管和8片1位串入8位并出的74LS164芯片組成。 圖4.4 顯示電路圖這種顯示方式不僅占用單片機(jī)端口少,而且充分利用了單片機(jī)的資源,容易掌握其編碼規(guī)律,簡化了軟件編程,在實(shí)驗(yàn)過程中,也體現(xiàn)出較高的可靠性。數(shù)據(jù)顯示電路如圖4.4所示。74LS164是一種8位高速串入/并出的移位寄存器,隨著時(shí)鐘信號(hào)的高低變化,串行數(shù)據(jù)通過一個(gè)2輸入與門同步的送入,使用獨(dú)立于時(shí)鐘的主控復(fù)位端讓寄存器的輸出端變?yōu)榈碗娖剑⑶也捎眯ぬ鼗Q位電路以達(dá)到高速運(yùn)行的目的。并且還具有以下的特點(diǎn):典型的35MHZ移位頻率;異步主控復(fù)位;門控串行輸入;同步數(shù)據(jù)傳輸;采用鉗位二極管限制高速的終端;靜電放電值大于3500V。 在本系統(tǒng)中,74LS164的連接方式為:74LS164的輸出Q0Q7分別接LED數(shù)碼管的dp、g、f、e、d、c、b、a,并且Q7連接下一個(gè)74LS164的A,B端,時(shí)鐘CLK連接單片機(jī)的TXD端,第一片芯片的AB端連接單片機(jī)的RXD端,74LS164芯片的主控復(fù)位端接高電平VCC。在這種狀態(tài)下,數(shù)碼管的編碼如下表所示。 4.2.5 數(shù)碼管的編碼表顯示數(shù)碼段 碼顯示數(shù)碼段 碼00c0h880h10f9h990h20a4hA88h30b0hB83h499hC0c6h592hD0a1h682hE86h70f8hF8eh5 單片機(jī)控制與運(yùn)算程序的設(shè)計(jì)5.1 AT89C51RC單片機(jī)簡介AT89C5lRC是在AT89C52基礎(chǔ)上開發(fā)的新型高檔單片機(jī)。它的主要特性是:片內(nèi)含有 32 KB的 Flash程序存儲(chǔ)器,擦寫周期為 1000次;片內(nèi)數(shù)據(jù)存儲(chǔ)器內(nèi)含512字節(jié)的RAM;具有可編程32線I/O口(P0,P1,P2和P3口);具有3個(gè)可編程定時(shí)器T0,T1和T2;中斷系統(tǒng)是具有8個(gè)中斷源、6個(gè)中斷矢量、2級(jí)中斷優(yōu)先權(quán)的中斷結(jié)構(gòu);具有一個(gè)全雙工 UART串行口;低功耗工作方式為空閑模式和掉電模式;具有雙數(shù)據(jù)指針DPTR0和DPTR1;具有3級(jí)程序鎖定位;具有硬件看門狗定時(shí)器WDT;AT89C51RC工作電源為4.05.5V(AT89LV51RC為2.75.5V);AT89C51RC最高工作頻率為33MHZ(AT89LV51RC為12MHZ);具有斷電標(biāo)志POF與AT89C52相比,AT89C5lRC具有如下特點(diǎn):程序存儲(chǔ)器由 8 KB增加到32 KB;片內(nèi)數(shù)據(jù)存儲(chǔ)器由256字節(jié)增加到512字節(jié);數(shù)據(jù)指針由1個(gè)增加到2個(gè);增加了看門狗定時(shí)器,CPU在執(zhí)行程序過程中,由于瞬時(shí)的干擾使程序陷入死循環(huán)環(huán)狀態(tài),WDT(Watchdog Timer)是使CPU擺脫這種困境而自動(dòng)恢復(fù)的一種方法;退出掉電方式由單純硬件復(fù)位方式增加到硬件復(fù)位和中斷兩種方式;新增加了斷電標(biāo)志POF89C51RC的內(nèi)部框圖 圖5.1 89C51RC的內(nèi)部框圖 引腳排列及功能 AT89C51RC有3種封裝形式:PDIPPLCC和TQFPPDIP封裝的引腳排列如圖所示。圖5.2 AT89C51RC引腳圖口線 P0口8位、漏極開路的雙向 1O口。 當(dāng)使用片外存儲(chǔ)器及外擴(kuò) IO口時(shí),P0口作為低字節(jié)地址數(shù)據(jù)復(fù)用線。在編程時(shí),P0口可用于接收指令代碼宇節(jié);在程序校驗(yàn)時(shí),P0口可輸出指令字節(jié)(這時(shí)需要加外部上拉電阻)。 P0口也可作通用I/O口使用但需加上拉電阻變?yōu)闇?zhǔn)雙向口。當(dāng)作為普通輸入時(shí),應(yīng)將 輸出鎖存器置1 PO口可驅(qū)動(dòng)8個(gè) TTL負(fù)載 P1口8位、準(zhǔn)雙向IO口,具有內(nèi)部上拉電阻。P1口是為用戶準(zhǔn)備的 1O雙向口。在編程和校驗(yàn)時(shí),可用做輸入低8位地址。用做輸入時(shí),應(yīng)先將輸出鎖存器置1 P1口可驅(qū)動(dòng)4個(gè)TTL負(fù)載。P1.0 P1.1替代功能引腳替代功能說明P1.0T2定時(shí)器2的外部事件輸入端;可編脈沖輸出端P1.1T2EX定時(shí)器 2的捕捉重裝觸發(fā)器輸入端定時(shí)器2的計(jì)數(shù)方向控制端P2口8位、準(zhǔn)雙向 1O口具有內(nèi)部上位電阻 當(dāng)使用片外存儲(chǔ)器或外擴(kuò)1O口時(shí)P2口輸出高8位地址。在編程校驗(yàn)時(shí)P2口可接收高字節(jié)地址和某些控制信號(hào)。 P2口也可作普通IO口使用。用做輸入時(shí),應(yīng)先將輸出鎖存器置1 P2口可驅(qū)動(dòng)4個(gè)TTL負(fù)載。 P3口8位、準(zhǔn)雙向 1O口,具有內(nèi)部上拉電阻。 P3口可作為普通1O口。用做輸入時(shí),應(yīng)先將輸出鎖存器置 1在編程校驗(yàn)時(shí)P3口接收某些控制信號(hào)。它可驅(qū)動(dòng)4個(gè)TTL負(fù)載。P3口還提供各種替代功能。P3口替代功能P3.0RXD(串行輸入口)P3.1TXD(串行輸出口)P3.2(外部中斷0)P3.3(外部中斷1)P3.4T0(記時(shí)器0外部輸入)P3.5T1(記時(shí)器1外部輸入)P3.6(外部數(shù)據(jù)存儲(chǔ)器寫選通)P3.7(外部數(shù)據(jù)存儲(chǔ)器讀選通)2控制信號(hào)線 RST復(fù)位輸入信號(hào),高電平有效。在振蕩器穩(wěn)定工作時(shí),在RST腳施加兩個(gè)機(jī)器周期(即24個(gè)晶振周期)以上的高電平,將器件復(fù)位。 VPP外部程序存惜器訪問允許信號(hào)EA(External Access Enable)。 當(dāng)信號(hào)接地時(shí),對(duì)ROM的讀操作限定在外部程序存儲(chǔ)器,地址為0000HFFFFH;當(dāng)接地時(shí),對(duì)ROM的讀操作從內(nèi)部程序存儲(chǔ)器開始,并可延續(xù)至外部程序存儲(chǔ)器。 在編程時(shí),該引腳可接編程電壓(AT89C51的VPP為5V或12V;AT89LV51的VPP為12 V)。在編程校驗(yàn)時(shí),該引腳可接VCC。 片外程序存儲(chǔ)器讀選通信號(hào)用PSEN(Program Store Enable),低電平有效。 在片外程序存儲(chǔ)器取指期間,當(dāng)有效時(shí),程序存儲(chǔ)器的內(nèi)容被送至 PO口(數(shù)據(jù)總線);在訪問外部RAM時(shí),無效。 AIE/低字節(jié)地址鎖存信號(hào) AlE(Address latch Enable)。 在系統(tǒng)擴(kuò)展時(shí),AlE的下降沿將PO口輸出的低8位地址鎖存在外接的地址鎖存器中,以實(shí)現(xiàn)低字節(jié)地址和數(shù)據(jù)的分時(shí)傳送。此外,ALE端連續(xù)輸出正脈沖頻率為晶振頻率的16,可用做外部定時(shí)脈沖使用。但要注意,每次訪問外RAM時(shí)要丟失一個(gè)ALE脈沖。在編程期間,該引腳輸入編程脈沖()。3電原線 VCC電源電壓輸入。GND接地。4.外部晶振引線 XTAL1片內(nèi)振蕩器反相放大器和時(shí)鐘發(fā)生線路的輸入端。使用片內(nèi)振蕩器時(shí),連接外部石英晶體和微調(diào)電容。 XTAL2片內(nèi)振蕩器反相放大器的輸出端。當(dāng)使用片內(nèi)振蕩器時(shí),外接石英晶體 和微調(diào)電容。 當(dāng)使用外部振蕩器時(shí),引腳XTAL1接收外振蕩器信號(hào),XTAIL2懸空。 AT89C5lRC有兩種低功耗節(jié)電模式:空閑模式和掉電模式。1空閑模式 應(yīng)用軟件使PCON中的IDLl,系統(tǒng)便可進(jìn)入空閑模式由于PCON不可位尋址,進(jìn)入空閑模式可采用如下指令: MOV A,PCON SETB ACC,0 ;IDL=l MOV PCON,A系統(tǒng)進(jìn)入空閑模式后,CPU處于休眠狀態(tài)振蕩器和片內(nèi)外圍單元(中斷系統(tǒng)、定時(shí)器、IO口、串行口)仍然有效片內(nèi)RAM和SFR中的內(nèi)容保留不變。退出空閑模式有兩種方法:任何一個(gè)有效的中斷和便件復(fù)位退出空閑模式后,IDL由片內(nèi)硬件自動(dòng)清0。2掉電模式 執(zhí)行一條指令,使PD=1,系統(tǒng)便進(jìn)入掉電模式。進(jìn)入掉電模式后,振蕩器停止工作掉電模式下片內(nèi)RAM和SPR中的內(nèi)容保持不變退出掉電模式有兩種方法:硬件復(fù)位和允許的外部低電平中斷(INT0和INT1)。硬件復(fù)位過程不改變片內(nèi)RAM的內(nèi)容,但要重新設(shè)量SFR的內(nèi)容僅當(dāng)VCC恢復(fù)到正常操作值,且振蕩器達(dá)到穩(wěn)定后,復(fù)位有效復(fù)位退出掉電模式時(shí),系統(tǒng)首先從斷點(diǎn)處恢復(fù)執(zhí)行程序,直到復(fù)位控制邏輯有效。這個(gè)過程長達(dá)2個(gè)機(jī)器周期。在復(fù)位有效之前,片內(nèi)有硬件控制電路防止寫入片內(nèi)RAM,即在復(fù)位過渡期間片內(nèi)RAM內(nèi)容受到保護(hù),但并不保護(hù)SFR的內(nèi)容。因此,在進(jìn)入掉電模式指令(使PD=l的指令)的后面,不要緊隨寫入1O端口或?qū)懭肫釸AM的指令。主要單片機(jī)控制與運(yùn)算程序流程圖:圖5.3 測(cè)周期子程序流程圖 圖5.4 主程序流程圖圖5.5 顯示子程序流程圖圖5.6 頻率,周期計(jì)數(shù)子程序流程圖圖5.7 測(cè)頻率子程序流程圖圖5.8 脈寬,占空比計(jì)數(shù)子程序流程圖5.2 軟件調(diào)試系統(tǒng)支持CPLD和FPGA設(shè)計(jì)的軟件有很多種,這里我使用由ALTERA公司開發(fā)的MAX+PLUSII工具軟件,該軟件方便易用,功能全面,能滿足用戶各種各樣的設(shè)計(jì)需要,概括起來MAX+PLUSII開發(fā)系統(tǒng)具有如下幾個(gè)特點(diǎn)。1結(jié)構(gòu)無關(guān) MAX+PLUSII支持ALTERA公司的CLASSIC,ACEX1K,MAX3000,MAX5000,MAX7000,MAX9000,F(xiàn)LEX6000,F(xiàn)LEX8000和FLEX10K等系列可編程邏輯器件,門數(shù)為600250 000門,提供了業(yè)界真正與結(jié)構(gòu)無關(guān)的可編程邏輯設(shè)計(jì)環(huán)境。MAX+PLUSII的編譯器還提供了強(qiáng)大的邏輯綜合與優(yōu)化功能以減輕用戶的設(shè)計(jì)負(fù)擔(dān)。2集成化的界面 MAX+PLUSII提供了設(shè)計(jì)輸入,設(shè)計(jì)處理和仿真校驗(yàn)等全集成化的開發(fā)工具,可以加快動(dòng)態(tài)調(diào)試,縮短開發(fā)周期。3模塊組合式設(shè)計(jì)工具 設(shè)計(jì)者可從各種設(shè)計(jì)輸入,設(shè)計(jì)處理和設(shè)計(jì)校驗(yàn)選項(xiàng)中進(jìn)行選擇,從而使設(shè)計(jì)環(huán)境用戶化。需要時(shí),還可以保留初始的工具,并增添新的性能。由于MAX+PLUSII支持各種器件系列,設(shè)計(jì)者用此工具即可支持新結(jié)構(gòu)。4支持多種HDL語言 MAX+PLUSII支持多種流行的HDL描述語言,包括VHDL,VERILOG HDL和AHDL。5良好的開放性和數(shù)據(jù)互換性 MAX+PLUSII可與其他工業(yè)標(biāo)準(zhǔn)的設(shè)計(jì)輸入,綜合與校驗(yàn)工具連接。它與EDA工具的接口符合EDIF200和209標(biāo)準(zhǔn),并提供了參數(shù)化的模塊庫(LPM)。設(shè)計(jì)者可以使用ALTERA或其他標(biāo)準(zhǔn)的EDA設(shè)計(jì)輸入工具去建立邏輯設(shè)計(jì),使用MAX+PLUSII COMPLIER對(duì)設(shè)計(jì)進(jìn)行編譯和綜合,然后進(jìn)行仿真,也可使用其他EDA工具來仿真。6基于MAX+PLUSII的設(shè)計(jì)使用MAX+PLUSII軟件進(jìn)行設(shè)計(jì)和開發(fā),主要包括以下幾個(gè)步驟:設(shè)計(jì)輸入:可以采用原理圖輸入,HDL語言描述,EDIF網(wǎng)表輸入及波形輸入等幾種方式。編譯:先根據(jù)設(shè)計(jì)要求設(shè)定編譯參數(shù)和編譯策略,如器件的選擇,邏輯綜合方式的選擇等;然后根據(jù)設(shè)定的參數(shù)和策略對(duì)設(shè)計(jì)項(xiàng)目進(jìn)行網(wǎng)表提取,邏輯綜合和器件適配,并產(chǎn)生報(bào)告文件,延時(shí)信息文件及編程文件,供分析,仿真和編程使用。1 仿真:仿真包括功能仿真,時(shí)序仿真和定時(shí)分析,可以利用軟件的仿真功能來驗(yàn)證設(shè)計(jì)項(xiàng)目的邏輯功能是否正確。2 編程與驗(yàn)證:用經(jīng)過仿真確認(rèn)后的編程文件通過編程電纜配置PLD,加入實(shí)際激勵(lì),檢查是否完成預(yù)定功能。在設(shè)計(jì)過程中,如果出現(xiàn)錯(cuò)誤,則需要重新回到設(shè)計(jì)輸入階段,改正錯(cuò)誤或調(diào)整電路后重復(fù)上述過程。5.3具體試驗(yàn)過程5.3.1 第一次測(cè)試 根據(jù)試驗(yàn)箱的操作,分別用按鈕D12控制測(cè)頻/占空比的轉(zhuǎn)換,用D15控制清零,用D16 控制開始測(cè)量。最初的軟件調(diào)試工程,分別通過手動(dòng)按鈕從0到7讀出顯示上的兩位十六進(jìn)制數(shù),從零到三所讀出的4個(gè)十六進(jìn)制數(shù)組合在一起是Ns,四到七讀出的數(shù)組合在一起時(shí)Nx,分別把組合的數(shù)據(jù)轉(zhuǎn)化成十進(jìn)制進(jìn)行計(jì)算,得到所測(cè)頻率。 根據(jù)Fx=Fs*Nx/Ns,得到所測(cè)數(shù)據(jù)。Fs=12mhz,f測(cè)=8hz。Ns02AE9F4501F785DB02C5826FNx0000001E000000160000001FFx= Fs*Nx/Ns8.00027218708.00027236578.0002726974Fs=12mhz,f測(cè)=4hzNs06cb715d02254c3701c9bf82Nx000000260000000c0000000aFx= Fs*Nx/Ns4.00013596954.00013611574284.0001362713Fs=12mhz,f測(cè)=64hzNs01b5b8bb022de16805a1e811Nx00000099000000c3000001f8Fx=Fs*Nx/Ns64.0002179764.0021776064.002177428Fs=12mhz,f測(cè)=12mhzNs017abb2800d28bb90196b4bfNx017ab04c00d286dc0196bbf4Fx= Fs*Nx/Ns11998655.9501199817.26011998986.720Fs=12mhz,f測(cè)=750khzNs0251af5001199160016f32f0Nx00251af5001199160016f32fFx=Fs*Nx/Ns750000750000750000 Fs=12mhz,f測(cè)=6mhzNs0124b1be0169c67601cb2bdbNx009258df00b4e33b00e595ebFx=Fs*Nx/Ns600000060000006000000Ns0144905800fb3aa800b67b38Nx0028920b001ec7550016cf67Fx= Fs*Nx/Ns150000015000001500000 Fs=12mhz,f測(cè)=1.5mhz5.3.2 第二次計(jì)算根據(jù)此計(jì)算結(jié)果,我們可以知道在實(shí)驗(yàn)箱里的程序是可行的。但是需要用單片機(jī)來實(shí)現(xiàn)我們的計(jì)算過程和控制。所以我們進(jìn)行了單片機(jī)程序的編寫,希望通過按健控制直接從數(shù)碼管上讀出數(shù)據(jù),但因?yàn)榫帉懘颐?,沒能設(shè)計(jì)小數(shù)點(diǎn)后面的顯示,對(duì)于小頻率的測(cè)試,誤差就相當(dāng)大了。下面是再次測(cè)試的實(shí)現(xiàn)數(shù)據(jù)。 次數(shù)(HZ)被測(cè)頻率N1N2N3N411111444341616161616646464646425625525625625616384163841638416384163846553665535655356555365536750k749974749974749974749974150000014999461499949149994914999496000000599979659997965999792599979612000000119995921199958911999589119995925000000050000614500008075000079050000843 有上面的測(cè)試結(jié)果可見,測(cè)試頻率可以高達(dá)50mhz,看來我們的程序是可行的,對(duì)于粗略的測(cè)試還是比較準(zhǔn)確的。但是因?yàn)闆]有小數(shù)顯示,對(duì)于頻率較低的測(cè)試,誤差就大了。所以有待改進(jìn)。5.4 系統(tǒng)調(diào)試的方法本系統(tǒng)既含有FPGA自編程硬件設(shè)計(jì)電路,又含有單片機(jī)控制電路,整個(gè)系統(tǒng)比較復(fù)雜,因此我們采用自底向上的調(diào)試方法,也就是先進(jìn)行各個(gè)單元電路的軟件仿真和硬件調(diào)試,在各個(gè)單元電路調(diào)試好后再進(jìn)行系統(tǒng)聯(lián)調(diào),最后進(jìn)行硬件的編程固化及系統(tǒng)的組裝。5.4.1 調(diào)試的軟/硬件(1) 系統(tǒng)設(shè)計(jì)開發(fā)軟件:MAX+plus 10.0,偉福6000(WAVE 6000 for windows)。(2) 單片機(jī)及FPGA/CPLD調(diào)試設(shè)備:PIV計(jì)算機(jī),偉福E6000L單片機(jī)仿真器及POD8X5XP仿真頭,GW48-CK EDA實(shí)驗(yàn)開發(fā)系統(tǒng)及EPF10K20TC144-4FPGA適配板,GWDVPB電子設(shè)計(jì)開發(fā)板單片機(jī)最小系統(tǒng),煒煌WH-500B程序編寫加密器,GDS-820S數(shù)字存儲(chǔ)示波器。5.4.2 系統(tǒng)的仿真結(jié)果 FPGA測(cè)試模塊中頻率/周期測(cè)量仿真圖如下圖所示。5.4.3 系統(tǒng)的硬件驗(yàn)證 單元電路的調(diào)試 FPGA/CPLD測(cè)頻專用電路的調(diào)試:使用MAX+plus 10.0,計(jì)算機(jī),GW48-CK EDA實(shí)驗(yàn)開發(fā)系統(tǒng)等軟件和設(shè)備,對(duì)FPGA/CPLD測(cè)控電路進(jìn)行VHDL程序的調(diào)試,有關(guān)仿真以及編程下載,硬件測(cè)試等。統(tǒng)的聯(lián)合調(diào)試 在各個(gè)單元電路調(diào)試好后即可進(jìn)行系統(tǒng)聯(lián)調(diào)。統(tǒng)的硬件驗(yàn)證系統(tǒng)聯(lián)合調(diào)試成功后,可將單片機(jī)程序通過編程器固化到單片機(jī)中并插入EDA實(shí)驗(yàn)開發(fā)系統(tǒng)中的單片機(jī)插座上,將VHDL設(shè)計(jì)經(jīng)過綜合適配后的網(wǎng)表對(duì)CPLD/FPGA進(jìn)行編程下載,輸入相關(guān)的信號(hào),并進(jìn)行有關(guān)性能指標(biāo)的測(cè)試,直到滿足系統(tǒng)的設(shè)計(jì)要求為止。本設(shè)計(jì)的具體硬件驗(yàn)證說明如下:本系統(tǒng)的顯示電路共設(shè)置了8個(gè)數(shù)碼管,前7個(gè)為數(shù)字顯示,另一個(gè)是測(cè)量狀態(tài)顯示。(1) 當(dāng)顯示為P. 時(shí),是復(fù)位狀態(tài),此時(shí)數(shù)碼管全熄。(2) 當(dāng)顯示為F時(shí),是頻率測(cè)量狀態(tài),單位Hz,如果前面出現(xiàn)兩個(gè)小數(shù)點(diǎn),則第二個(gè)小數(shù)點(diǎn)表示MHz。(3) 當(dāng)顯示為P時(shí),是周期測(cè)量狀態(tài),單位s。(4) 當(dāng)顯示為A時(shí),是脈寬測(cè)量狀態(tài),單位s。(5) 當(dāng)顯示為B時(shí),是占空比測(cè)量狀態(tài),單位%。 5.5 設(shè)計(jì)技巧分析(1) 在系統(tǒng)總體設(shè)計(jì)方面,充分利用單片機(jī)和FPGA/CPLD各自的優(yōu)勢(shì),將測(cè)控的主體分配給FPGA/CPLD,既可滿足頻測(cè)對(duì)速度方面的要求和多I/O口的要求,同時(shí)利用單片機(jī)具有良好的人機(jī)接口和控制運(yùn)算的功能,可以較簡單地實(shí)現(xiàn)鍵盤和顯示控制以及數(shù)據(jù)處理運(yùn)算。(2) 在頻率測(cè)量方面,由于采用了等精度測(cè)頻法,使該系統(tǒng)具有以下特點(diǎn): 相對(duì)測(cè)量誤差與被測(cè)頻率的高低無關(guān); 增大Tpr或fs可以增大Ns,減少測(cè)量誤差,提高測(cè)量精度; 測(cè)量精度與預(yù)置門寬度和標(biāo)準(zhǔn)頻率有關(guān),與被測(cè)信號(hào)的頻率無關(guān),預(yù)置門和常規(guī)測(cè)頻閘門時(shí)間相同而被測(cè)信號(hào)頻率不同的情況下,等精度測(cè)量法的測(cè)量精度不變。(3) 在顯示方面,首先采用串行動(dòng)態(tài)顯示,節(jié)約了I/O口,簡化了驅(qū)動(dòng)電路的設(shè)計(jì)。5.6系統(tǒng)擴(kuò)展思路 (1) 設(shè)計(jì)并制作系統(tǒng)工作的外圍電路:系統(tǒng)用方波信號(hào)源、直流工作電源。(2) 系統(tǒng)聯(lián)合調(diào)試成功后,可將單片機(jī)程序通過編程器固化到單片機(jī)中,將VHDL設(shè)計(jì)經(jīng)過綜合適配后的網(wǎng)表對(duì)CPLD/FPGA進(jìn)行編程下載,將整個(gè)系統(tǒng)的外圍電路設(shè)計(jì)制作印刷電路板。 6 VHDL程序語言和FPGA簡介6.1 VHDL程序語言介紹:硬件描述語言,是電子系統(tǒng)硬件行為描述,結(jié)構(gòu)描述,數(shù)據(jù)流描述語言。目前利用硬件描述語言可以進(jìn)行數(shù)字電子系統(tǒng)的設(shè)計(jì)。VHDL語言描述能力強(qiáng),覆蓋面廣,抽象能力強(qiáng),可讀性好,既能被人容易讀懂又能被計(jì)算機(jī)識(shí)別。VHDL語言中設(shè)計(jì)實(shí)體,程序包,涉及庫,為設(shè)計(jì)人員重復(fù)利用別人的設(shè)計(jì)提供了技術(shù)手段。重復(fù)利用別人的ip模塊和軟核是VHDL的特色,許多設(shè)計(jì)不必個(gè)個(gè)從頭再來,只要在更高層次上把ip 模塊利用起來,就能達(dá)到事半功倍的效果。傳統(tǒng)的硬件電路設(shè)計(jì)方法是采用自下而上的設(shè)計(jì)方法,即根據(jù)系統(tǒng)對(duì)硬件的要求,詳細(xì)編制技術(shù)規(guī)格書,并畫出系統(tǒng)控制流圖;然后根據(jù)技術(shù)規(guī)格書和系統(tǒng)控制流圖,對(duì)系統(tǒng)的功能進(jìn)行細(xì)化,合理地劃分功能模塊,并畫出系統(tǒng)的功能框圖;接著就進(jìn)行各功能模塊的細(xì)化和電路設(shè)計(jì);各功能模塊電路設(shè)計(jì)、調(diào)試完成后,將各功能模塊的硬件電路連接起來再進(jìn)行系統(tǒng)的調(diào)試,最后完成整個(gè)系統(tǒng)的硬件設(shè)計(jì)。采用傳統(tǒng)方法設(shè)計(jì)數(shù)字系統(tǒng),特別是當(dāng)電路系統(tǒng)非常龐大時(shí),設(shè)計(jì)者必須具備較好的設(shè)計(jì)經(jīng)驗(yàn),而且繁雜多樣的原理圖的閱讀和修改也給設(shè)計(jì)者帶來諸多的不便。為了提高開發(fā)的效率,增加已有開發(fā)成果的可繼承性以及縮短開發(fā)周期,各ASIC研制和生產(chǎn)廠家相繼開發(fā)了具有自己特色的電路硬件描述語言(Hardware Description Language,簡稱HDL)。但這些硬件描述語言差異很大,各自只能在自己的特定設(shè)計(jì)環(huán)境中使用,這給設(shè)計(jì)者之間的相互交流帶來了極大的困難。因此,開發(fā)一種強(qiáng)大的、標(biāo)準(zhǔn)化的硬件描述語言作為可相互交流的設(shè)計(jì)環(huán)境已勢(shì)在必行。于是,美國于1981年提出了一種新的、標(biāo)準(zhǔn)化的HDL,稱之為VHSIC(Very High Speed Integrated Circuit) Hardware Description Language,簡稱VHDL。這是一種用形式化方法來描述數(shù)字電路和設(shè)計(jì)數(shù)字邏輯系統(tǒng)的語言。設(shè)計(jì)者可以利用這種語言來描述自己的設(shè)計(jì)思想,然后利用電子設(shè)計(jì)自動(dòng)化工具進(jìn)行仿真,再自動(dòng)綜合到門級(jí)電路,最后用PLD實(shí)現(xiàn)其功能。綜合起來講,VHDL語言具有如下優(yōu)點(diǎn):1 覆蓋面廣,描述能力強(qiáng),是一個(gè)多層次的硬件描述語言。在VHDL語言中,設(shè)計(jì)的原始描述可以非常簡練,經(jīng)過層層加強(qiáng)后,最終可成為直接付諸生產(chǎn)的電路或版圖參數(shù)描述。2 具有良好的可讀性,即容易被計(jì)算機(jī)接受,也容易被讀者理解。3 使用期長,不會(huì)因工藝變化而使描述過時(shí)。因?yàn)閂HDL的硬件描述與工藝無關(guān),當(dāng)工藝改變時(shí),只需修改相應(yīng)程序中的屬性參數(shù)即可。4 支持大規(guī)模設(shè)計(jì)的分解和已有設(shè)計(jì)的再利用。一個(gè)大規(guī)模的設(shè)計(jì)不可能由一個(gè)人獨(dú)立完成,必須由多人共同承擔(dān),VHDL為設(shè)計(jì)的分解和設(shè)計(jì)的再利用提供了有力的支持。當(dāng)電路系統(tǒng)采用VHDL語言設(shè)計(jì)其硬件時(shí),與傳統(tǒng)的電路設(shè)計(jì)方法相比較,具有如下的特點(diǎn):一 采用自上而下的設(shè)計(jì)方法。即從系統(tǒng)總體要求出發(fā),自上而下地逐步將設(shè)計(jì)的內(nèi)容細(xì)化,最后完成系統(tǒng)硬件的整體設(shè)計(jì)。在設(shè)計(jì)的過程中,對(duì)系統(tǒng)自上而下分成三個(gè)層次進(jìn)行設(shè)計(jì):第一層次是行為描述。所謂行為描述,實(shí)質(zhì)上就是對(duì)整個(gè)系統(tǒng)的數(shù)學(xué)模型的描述。一般來說,對(duì)系統(tǒng)進(jìn)行行為描述的目的是試圖在系統(tǒng)設(shè)計(jì)的初始階段,通過對(duì)系統(tǒng)行為描述的仿真來發(fā)現(xiàn)設(shè)計(jì)中存在的問題。在行為描述階段,并不真正考慮其實(shí)際的操作和算法用何種方法來實(shí)現(xiàn),而是考慮系統(tǒng)的結(jié)構(gòu)及其工作的過程是否能到達(dá)系統(tǒng)設(shè)計(jì)的要求。第二層次是RTL方式描述。這一層次稱為寄存器傳輸描述(又稱數(shù)據(jù)流描述)。如前所述,用行為方式描述的系統(tǒng)結(jié)構(gòu)的程序,其抽象程度高,是很難直接映射到具體邏輯元件結(jié)構(gòu)的。要想得到硬件的具體實(shí)現(xiàn),必須將行為方式描述的VHDL語言程序改寫為RTL方式描述的VHDL語言程序。也就是說,系統(tǒng)采用RTL方式描述,才能導(dǎo)出系統(tǒng)的邏輯表達(dá)式,才能進(jìn)行邏輯綜合。第三層次是邏輯綜合。即利用邏輯綜合工具,將RTL方式描述的程序轉(zhuǎn)換成用基本邏輯元件表示的文件(門級(jí)網(wǎng)絡(luò)表)。此時(shí),如果需要,可將邏輯綜合的結(jié)果以邏輯原理圖的方式輸出。此后可對(duì)綜合的結(jié)果在門電路級(jí)上進(jìn)行仿真,并檢查其時(shí)序關(guān)系。應(yīng)用邏輯綜合工具產(chǎn)生的門級(jí)網(wǎng)絡(luò)表,將其轉(zhuǎn)換成PLD的編程碼點(diǎn),即可利用PLD實(shí)現(xiàn)硬件電路的設(shè)計(jì)。由自上而下的設(shè)計(jì)過程可知,從總體行為設(shè)計(jì)開始到最終的邏輯綜合,每一步都要進(jìn)行仿真檢查,這樣有利于盡早發(fā)現(xiàn)設(shè)計(jì)中存在的問題,從而可以大大縮短系統(tǒng)的設(shè)計(jì)周期。二.系統(tǒng)可大量采用PLD芯片。由于目前眾多制造PLD芯片的廠家,其工具軟件均支持VHDL語言的編程。所以利用VHDL語言設(shè)計(jì)數(shù)字系統(tǒng)時(shí),可以根據(jù)硬件電路的設(shè)計(jì)需要,自行利用PLD設(shè)計(jì)自用的ASIC芯片,而無須受通用元器件的限制。三.采用系統(tǒng)早期仿真。從自上而下的設(shè)計(jì)過程中可以看到,在系統(tǒng)設(shè)計(jì)過程中要進(jìn)行三級(jí)仿真,即行為層次仿真、RTL層次仿真和門級(jí)層次仿真。這三級(jí)仿真貫穿系統(tǒng)設(shè)計(jì)的全過程,從而可以在系統(tǒng)設(shè)計(jì)的早期發(fā)現(xiàn)設(shè)計(jì)中存在的問題,大大縮短系
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 房建樁基礎(chǔ)施工方案
- 世貿(mào)跨年活動(dòng)方案
- 業(yè)主園林活動(dòng)方案
- 業(yè)主結(jié)婚活動(dòng)方案
- 大班紙杯樂園活動(dòng)方案
- 大干一百天活動(dòng)方案
- 夏季手工活動(dòng)方案
- 天津美甲店充值活動(dòng)方案
- 地產(chǎn)廣告活動(dòng)方案
- 垃圾不見了繪本活動(dòng)方案
- 七年級(jí)數(shù)學(xué)新北師大版(2024)下冊(cè)第一章《整式的乘除》單元檢測(cè)習(xí)題(含簡單答案)
- 固定動(dòng)火區(qū)管理規(guī)定、通知及審批表
- 2025年下半年吉林省白城洮北區(qū)面向應(yīng)征入伍高校畢業(yè)生招聘事業(yè)單位人員18人歷年高頻重點(diǎn)提升(共500題)附帶答案詳解
- 《課件鐵路發(fā)展史》課件
- 消渴中醫(yī)護(hù)理查房
- 兒童護(hù)照辦理委托書
- 《中藥調(diào)劑技術(shù)》課件-中藥調(diào)劑的概念、起源與發(fā)展
- 《數(shù)據(jù)中心節(jié)能方法》課件
- 倉儲(chǔ)式物流產(chǎn)業(yè)園建設(shè)項(xiàng)目可行性研究報(bào)告
- 2024年變電設(shè)備檢修工(高級(jí))技能鑒定理論考試題庫-上(選擇題)
- 中醫(yī)診所負(fù)責(zé)人合作協(xié)議書范文
評(píng)論
0/150
提交評(píng)論