課程設(shè)計頻率測量儀設(shè)計_第1頁
課程設(shè)計頻率測量儀設(shè)計_第2頁
課程設(shè)計頻率測量儀設(shè)計_第3頁
課程設(shè)計頻率測量儀設(shè)計_第4頁
課程設(shè)計頻率測量儀設(shè)計_第5頁
已閱讀5頁,還剩29頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、摘要本文介紹了一種自頂向下分層設(shè)計多功能數(shù)字頻率計的設(shè)計方法。該頻率計采用VHDL硬件描述語言編程以MAX+PLUS為開發(fā)環(huán)境,極大地減少了硬件資源的占用。數(shù)字頻率計模塊劃分的設(shè)計具有相對獨立性,可以對模塊單獨進(jìn)行設(shè)計、調(diào)試和修改,縮短了設(shè)計周期。該數(shù)字頻率計的測量范圍為l0Hz10MHz,響應(yīng)時間小于等于15秒;其測試結(jié)果由4只七段數(shù)碼管穩(wěn)定顯示,測量誤差小于等于1 。仿真波形與分析結(jié)果表明,所設(shè)計的電路通過硬件仿真能夠滿足數(shù)字頻率計的功能要求,具有理論與實踐意義,實現(xiàn)了電子電路自動化的過程。數(shù)字頻率計模塊劃分的設(shè)計具有相對獨立性,可以對模塊單獨進(jìn)行設(shè)計、調(diào)試和修改,縮短了設(shè)計周期。關(guān)鍵詞:

2、VHDL 數(shù)字頻率計 EDA MAX+PLUS第一章 概述第一節(jié) 課題研究背景數(shù)字頻率計是電子測量與儀表技術(shù)最基礎(chǔ)的電子儀表類別之一, 數(shù)字頻率計是計算機(jī)、通訊設(shè)備、音頻視頻等科研生產(chǎn)領(lǐng)域不可缺少的測量儀器,而且它是數(shù)字電壓必不可少的部件。當(dāng)今數(shù)字頻率計不僅是作為電壓表、計算機(jī)、天線電廣播通訊設(shè)備、工藝過程自動化裝置。多種儀表儀器與家庭電器等許多電子產(chǎn)品中的數(shù)據(jù)信息輸出顯示器反映到人們眼簾。集成數(shù)字頻率計由于所用元件少、投資少,體積小,功耗低,且可靠性高,功能強(qiáng),易于設(shè)計和研發(fā),使得它具有技術(shù)上的實用性和應(yīng)用的廣泛性。不論從我們用的彩色電視機(jī)、電冰箱,DVD,還有我們現(xiàn)在家庭常用到的數(shù)字電壓表

3、數(shù)字萬用表等等都包含有頻率計?,F(xiàn)在頻率計已是向數(shù)字智能方向發(fā)展,即可以很精確的讀數(shù)也精巧易于控制。數(shù)字頻率計已是現(xiàn)在頻率計發(fā)展的方向,它不僅可以很方便的讀數(shù),而且還可以使頻率的測量范圍和測量準(zhǔn)確度上都比模擬先進(jìn).而且頻率計的使用已是很多的方面,數(shù)字衛(wèi)星、數(shù)字通訊等高科技的領(lǐng)域都有應(yīng)用,今天數(shù)字頻率計的發(fā)展已經(jīng)不僅僅是一個小電子產(chǎn)品的發(fā)展也是整個民族乃至整個國家的發(fā)展,所以頻率計的發(fā)展是一個整體的趨勢。而從民族產(chǎn)業(yè)上來說,我們在這種產(chǎn)業(yè)中還落后于西方發(fā)達(dá)國家,這將會關(guān)系到民族產(chǎn)業(yè)的興衰。所以我們必須很重視當(dāng)前的情況,學(xué)習(xí)發(fā)達(dá)國家的先進(jìn)技術(shù)以發(fā)展本國的產(chǎn)業(yè)。第二節(jié) 設(shè)計概述所謂頻率,就是周期信號在

4、單位時間(1s)里變化的次數(shù)。本數(shù)字頻率計的設(shè)計思路是:(一) 根據(jù)頻率計的測頻原理,可以選擇合適的時基信號對輸入被測信號脈沖進(jìn)行計數(shù),實現(xiàn)測頻的目的。(二) 根據(jù)數(shù)字頻率計的基本原理,本文設(shè)計方案的基本思想是分為三個模塊來實現(xiàn)其功能,即時基產(chǎn)生與測頻時序控制電路模塊、待測信號脈沖計數(shù)電路模塊和鎖存與譯碼顯示控制電路模塊,并且分別用VHDL對其進(jìn)行編程,實現(xiàn)計數(shù)電路、鎖存電路、顯示電路等。第三節(jié) 設(shè)計原理眾所周知,頻率信號易于傳輸,抗干擾性強(qiáng),可以獲得較好的測量精度。因此,頻率檢測是電子測量領(lǐng)域最基本的測量之一。頻率計的基本原理是用一個頻率穩(wěn)定度高的頻率源作為基準(zhǔn)時鐘,對比測量其他信號的頻率。

5、通常情況下計算每秒內(nèi)待測信號的脈沖個數(shù),即閘門時間為1s。閘門時間越長,得到的頻率值就越準(zhǔn)確,但閘門時間越長,則每測一次頻率的間隔就越長。閘門時間越短,測得的頻率值刷新就越快,但測得的頻率精度就受影響。一般取1s作為閘門時間。數(shù)字頻率計的關(guān)鍵組成部分包括測頻控制信號發(fā)生器、計數(shù)器、鎖存器、譯碼驅(qū)動電路和顯示電路,其原理框圖如圖1. 1所示。計數(shù)器鎖存器譯碼驅(qū)動電路數(shù)碼管顯示測頻控制信號發(fā)生器圖1.1 原理框圖待測信號第二章 VHDL程序語言和FPGA簡介一 VHDL程序語言介紹:VHDL語言描述能力強(qiáng),覆蓋面廣,抽象能力強(qiáng),可讀性好,既能被人容易讀懂又能被計算機(jī)識別。VHDL語言中設(shè)計實體,程

6、序包,涉及庫,為設(shè)計人員重復(fù)利用別人的設(shè)計提供了技術(shù)手段。當(dāng)電路系統(tǒng)采用VHDL語言設(shè)計其硬件時,與傳統(tǒng)的電路設(shè)計方法相比較,具有如下的特點:一 采用自上而下的設(shè)計方法。即從系統(tǒng)總體要求出發(fā),自上而下地逐步將設(shè)計的內(nèi)容細(xì)化,最后完成系統(tǒng)硬件的整體設(shè)計。在設(shè)計的過程中,對系統(tǒng)自上而下分成三個層次進(jìn)行設(shè)計:第一層次是行為描述。第二層次是RTL方式描述。第三層次是邏輯綜合。二.系統(tǒng)可大量采用PLD芯片。利用VHDL語言設(shè)計數(shù)字系統(tǒng)時,可以根據(jù)硬件電路的設(shè)計需要,自行利用PLD設(shè)計自用的ASIC芯片,而無須受通用元器件的限制。三.采用系統(tǒng)早期仿真。在系統(tǒng)設(shè)計過程中要進(jìn)行三級仿真。這三級仿真貫穿系統(tǒng)設(shè)計

7、的全過程,從而可以在系統(tǒng)設(shè)計的早期發(fā)現(xiàn)設(shè)計中存在的問題,大大縮短系統(tǒng)設(shè)計的周期。四.降低了硬件電路設(shè)計難度。在傳統(tǒng)的設(shè)計方法中,往往要求設(shè)計者在設(shè)計電路之前寫出該電路的邏輯表達(dá)式或真值表(或時序電路的狀態(tài)表)。而利用VHDL語言設(shè)計硬件電路時,就可以使設(shè)計者免除編寫邏輯表達(dá)式或真值表之苦,從而大大縮短了設(shè)計的周期。五.主要設(shè)計文件是用VHDL語言編寫的源程序。與傳統(tǒng)的電路原理圖相比,使用VHDL源程序有許多好處:其一是資料量小,便于保存。其二是可繼承性好。其三是閱讀方便。二 FPGA 簡介FPGA是英文Field Programmable Gate Array的縮寫,即現(xiàn)場可編程門陣列,它是在

8、PAL、GAL、EPLD等可編程器件的基礎(chǔ)上進(jìn)一步發(fā)展的產(chǎn)物。它是作為專用集成電路(ASIC)領(lǐng)域中的一種半定制電路而出現(xiàn)的,既解決了定制電路的不足,又克服了原有可編程器件門電路數(shù)有限的缺點。FPGA采用了邏輯單元陣列LCA(Logic Cell Array)這樣一個新概念,內(nèi)部包括可配置邏輯模塊CLB(Configurable Logic Block)、輸出輸入模塊IOB(Input Output Block)和內(nèi)部連線(Interconnect)三個部分。FPGA的基本特點主要有:1)采用FPGA設(shè)計ASIC電路,用戶不需要投片生產(chǎn),就能得到合用的芯片。2)FPGA可做其它全定制或半定制A

9、SIC電路的中試樣片。3)FPGA內(nèi)部有豐富的觸發(fā)器和IO引腳。4)FPGA是ASIC電路中設(shè)計周期最短、開發(fā)費(fèi)用最低、風(fēng)險最小的器件之一。5)FPGA采用高速CHMOS工藝,功耗低,可以與CMOS、TTL電平兼容。三 VHDL 在FPGA中的運(yùn)用近30年來,由于微電子學(xué)和計算機(jī)科學(xué)的迅速發(fā)展,給EDA(電子設(shè)計自動化)行業(yè)帶來了巨大的變化。可以說EDA產(chǎn)業(yè)已經(jīng)成為電子信息類產(chǎn)品的支柱產(chǎn)業(yè)。就FPGA和CPLD開發(fā)而言,比較流行的HDL主要有Verilog HDL、VHDL、ABEL-HDL和 AHDL 等,其中VHDL和Verilog HDL因適合標(biāo)準(zhǔn)化的發(fā)展方向而最終成為IEEE標(biāo)準(zhǔn)。隨著

10、電子技術(shù)的高速發(fā)展,CPLD的出現(xiàn)以其高速、高可靠性、串并行工作方式等突出優(yōu)點在電子設(shè)計中廣泛應(yīng)用,并代表著未來EDA設(shè)計的方向。CPLD的設(shè)計采用了高級語言(如VHDL語言),進(jìn)一步打破了軟硬件之間的界限,加速了產(chǎn)品的開發(fā)過程。采用先進(jìn)的CPLD(復(fù)雜可編程邏輯器件)取代傳統(tǒng)的標(biāo)準(zhǔn)集成電路、接口電路也是電子技術(shù)發(fā)展的必然趨勢。EDA(電子設(shè)計自動化) 代表了當(dāng)今電子設(shè)計技術(shù)的最新發(fā)展方向,它的基本特征是:設(shè)計人員按照“自頂向下”的設(shè)計方法,對整個系統(tǒng)進(jìn)行方案設(shè)計和功能劃分,系統(tǒng)的關(guān)鍵電路用一片或幾片專用集成電路(ASIC) 實現(xiàn),然后采用硬件描述語言(HDL) 完成系統(tǒng)行為級設(shè)計,最后通過綜

11、合器和適配器生成最終目標(biāo)器件。 采用VDHL 編程設(shè)計實現(xiàn)的數(shù)字頻率計, 除被測信號的整形部分、鍵輸入部分和數(shù)碼顯示部分以外, 其余全部在一片F(xiàn)PGA 芯片上實現(xiàn), 整個設(shè)計過程變得十分透明、快捷和方便。四 軟件組成MAX+PLUS軟件采用模塊化結(jié)構(gòu),包括設(shè)計輸入、項目處理、項目校驗和器件編程4個部分,所有這些部分都集成在一個可視化的操作環(huán)境下。(一) 設(shè)計輸入MAX+PLUS的設(shè)計輸入方法有多種,主要包括文本設(shè)計輸入、原理圖輸入、波形設(shè)計輸入等多種方式。另外,還可以利用第三方EDA工具生成的網(wǎng)表文件輸入(二) 項目處理設(shè)計處理的任務(wù)就是對項目進(jìn)行編譯(Compile),編譯實際就是將設(shè)計者編

12、寫的設(shè)計改為可以用于生產(chǎn)的“語言”。編譯器通過讀入設(shè)計文件并產(chǎn)生用于編程、仿真和定時分析的輸出文件來完成編譯工作。MAX+PLUS提供的編譯軟件,只需簡單的操作。(三) 項目校驗MAX+PLUS提供的設(shè)計校驗過程包括仿真和定時分析,項目編譯后,為確保設(shè)計無誤,要再用專用軟件進(jìn)行仿真。如果發(fā)現(xiàn)了錯誤,則應(yīng)對設(shè)計輸入進(jìn)行部分修改直至無誤。(四) 器件編程MAX+PLUS通過編程器(Device Programmer)將編譯器生成的編程文件編程或配置到Altera CPLD器件中,然后加入實際激勵信號進(jìn)行測試,檢查是否達(dá)到了設(shè)計要求?在設(shè)計過程中,如果出現(xiàn)錯誤,則需要重新回到設(shè)計輸入階段,改正錯誤或

13、調(diào)整電路后重復(fù)上述過程。五 設(shè)計流程使用MAX+PLUS進(jìn)行可編程邏輯器件開發(fā)主要包括4個階段:設(shè)計輸入、編譯處理、驗證(包括功能仿真、時序仿真、和定時分析)和器件編程,流程如圖設(shè)計要求設(shè)計輸入編譯處理驗證器件編程器件測試系統(tǒng)產(chǎn)品設(shè)計修改圖2.1 設(shè)計流程圖第三章 系統(tǒng)分析第一節(jié) 數(shù)字頻率計的設(shè)計任務(wù)及要求設(shè)計一個四位十進(jìn)制的數(shù)字頻率計,要求具有以下功能:(一) 測量范圍:1Hz10kHz。(二) 測量誤差1%。(三) 響應(yīng)時間15s。(四) 顯示時間不少于1s。(五) 具有記憶顯示的功能,即在測量的過程中不刷新數(shù)據(jù),等數(shù)據(jù)過程結(jié)束后才顯示測量結(jié)果,給出待測信號的頻率值,并保存到下一次測量結(jié)束

14、。等精度測量法等精度測量法的機(jī)理是在標(biāo)準(zhǔn)頻率比較測量法的基礎(chǔ)上改變計數(shù)器的計數(shù)開始和結(jié)束與閘門門限的上升沿和下降沿的嚴(yán)格關(guān)系。當(dāng)閘門門限的上升沿到來時,如果待測量信號的上升沿未到時兩組計數(shù)器也不計數(shù),只有在待測量信號的上升沿到來時,兩組計數(shù)器才開始計數(shù);當(dāng)閘門門限的下降沿到來時,如果待測量信號的一個周期未結(jié)束時兩組計數(shù)器也不停止計數(shù),只有在待測量信號的一個周期結(jié)束時兩組計數(shù)器才停止計數(shù)。這樣就克服了待測量信號的脈沖周期不完整的問題,其誤差只由標(biāo)準(zhǔn)頻率信號產(chǎn)生,與待測量信號的頻率無關(guān)。最大誤差為正負(fù)一個標(biāo)準(zhǔn)頻率周期,即t=±1/f0。由于一般標(biāo)準(zhǔn)信號頻率都在幾十兆赫茲以上,因此誤差小于

15、 10-6HZ??紤]到精度問題這次我們選擇了等精度方法,具體實現(xiàn)邏輯框圖如圖一圖一首先按鍵發(fā)出一個清零信號CLR,使2個32 bit的計數(shù)器和D觸發(fā)器置0,然后按鍵再發(fā)出允許測頻命令,即使預(yù)置門控信號GATE為高電平,這時D觸發(fā)器要一直等到被測信號的上升沿通過時,Q端才被置1,即使計數(shù)器1和計數(shù)器2的EN同時為1,將啟動計算器計數(shù),系統(tǒng)進(jìn)入計算允許周期。這時,計數(shù)器1和2分別對被測信號和標(biāo)準(zhǔn)頻率信號同時計數(shù)。當(dāng)Tc秒過后,預(yù)置門控信號被D觸發(fā)器置為低電平,但此時2個32 bit的計數(shù)器仍然沒有停止計數(shù),一直等到隨后而至的被測信號的上升沿到來時,才通過D觸發(fā)器將這2個計算器同時關(guān)閉。由圖所示的測

16、頻時序圖可見,GATE的寬度和發(fā)生的時間都不會影響計數(shù)使能信號允許計數(shù)的周期總是恰好等于待測信號XCLK的完整周期,這正是確保XCLK在任何頻率條件下都能保持恒定測量精度的關(guān)鍵。因為,此時GATE的寬度Tc改變以及隨機(jī)的出現(xiàn)時間造成的誤差最多只有基準(zhǔn)時鐘BCLK信號的一個時鐘周期。第二節(jié) 模塊的劃分根據(jù)系統(tǒng)設(shè)計要求,系統(tǒng)設(shè)計采用自頂向下的設(shè)計方法,系統(tǒng)的組成框圖如圖3. 1所示,包括時基產(chǎn)生與測頻時序控制電路模塊,以及待測信號脈沖計數(shù)電路模塊和鎖存與譯碼顯示控制電路模塊。時基產(chǎn)生與測頻時序控制電路待測信號脈沖計數(shù)電路鎖存與譯碼顯示電路ENCLRLOCKq0:15z10:6z20:6z30:6z

17、40:6待測信號F_IN標(biāo)準(zhǔn)時鐘CLK圖3.1 數(shù)字頻率計的組成框圖(一) 時基產(chǎn)生與測頻時序控制電路模塊時基產(chǎn)生與測頻時序控制電路的主要產(chǎn)生計數(shù)允許信號EN、清零信號CCLR和鎖存信號LOCK。(二) 待測信號脈沖計數(shù)電路模塊待測信號脈沖計數(shù)電路是對待測脈沖信號的頻率進(jìn)行測量,它可由4個十進(jìn)制加法計數(shù)器組成,其中EN為計數(shù)選通控制信號,CLR為計數(shù)器清零信號。在計數(shù)器清零信號CLR清零后,當(dāng)計數(shù)選通控制信號EN有效時,開始對待測信號進(jìn)行計數(shù)。如果計數(shù)選通控制信號EN的寬度為1s,那么計數(shù)結(jié)果就為待測信號的頻率;如果計數(shù)選通信號EN的寬度為100ms,那么待測信號的頻率等于計數(shù)結(jié)果10。(三)

18、 鎖存與譯碼顯示控制電路模塊鎖存與譯碼顯示控制電路用于實現(xiàn)記憶顯示,在測量過程中不刷新新的數(shù)據(jù),直到測量過程結(jié)束后,鎖存顯示測量結(jié)果,并且保存到下一次測量結(jié)束。鎖存與譯碼顯示電路的功能是對四位BCD碼進(jìn)行鎖存,并轉(zhuǎn)換為對應(yīng)的4組七段碼,用于驅(qū)動數(shù)碼管。四Bin轉(zhuǎn)BCD碼模塊由于要求數(shù)碼管10進(jìn)制輸出,因此需要一個二進(jìn)制轉(zhuǎn)bcd碼的模塊。操作是這樣的:用兩個寄存器,一個32bit,一個40bit,分別存bin碼和有待實現(xiàn)的bcd碼。接下來,逐位將BIN的最高位移入BCD的最低位。同時,將BCD的40位寄存器按每四位劃成一塊,我們稱之為個十百千好了。但記住,個,十,百,千等都有4個bit位。1.將

19、bin31(bin是bin31:0)移入bcd0。這樣,bin31就變成了原來的bin30,bin0=0。2.分別檢查個十百千里存的數(shù)是不是大于等于5(按二進(jìn)制換十進(jìn)制那樣換算),如果是,加3。3.重做1,2直到全部移進(jìn)去。第三節(jié) 設(shè)計分析一 測頻模塊邏輯結(jié)構(gòu)利用VHDL程序設(shè)計的測頻模塊邏輯結(jié)構(gòu)如圖所示,其中有關(guān)的接口信號規(guī)定如下:TP(P2.7):TF=0 時等精度測頻;TF=1 時測脈寬;CLR/TRIG(P2.6):當(dāng)TF=0 時系統(tǒng)全清零功能;當(dāng)TF=1 時CLRTRIG 的上跳沿將啟動CNT2 ,進(jìn)行脈寬測試計數(shù);ENDD (P2.4):脈寬計數(shù)結(jié)束狀態(tài)信號,ENDD=1計數(shù)結(jié)束;

20、CHOICE(P3.2):自校/測頻選擇,CHOICE=1 測頻;CHOICE=0自校;START(P2.5):當(dāng)TF=0 時,作為預(yù)置門閘,門寬可通過鍵盤由單片機(jī)控制,START=1時預(yù)置門開;當(dāng)TF=1時,START有第二功能,此時,當(dāng)START=0時測負(fù)脈寬,當(dāng)START=1時測正脈寬。利用此功能可分別獲得脈寬和占空比數(shù)據(jù)。EEDN(P2.3):等精度測頻計數(shù)結(jié)束狀態(tài)信號,EEND=0時計數(shù)結(jié)束。SELP2.2(P2.2,P2.1,P2.0):計數(shù)值讀出選通控制;當(dāng)SEL2.0=“000”,“001”,“010”.“111”時,將CNT1,CNT2的計數(shù)值分8次,每次讀出8位,并傳達(dá)到單

21、片機(jī)的P0口。圖4.1 測頻模塊邏輯圖二 各模塊功能和工作步驟如下:(一) 測頻/測周期的實現(xiàn)被測信號脈沖從CONTRL模塊的FIN端輸入,標(biāo)準(zhǔn)頻率信號從CONTRL 的FSD端輸入,CONTRL的CLR是此模塊電路的工作初始化信號輸入端。在進(jìn)行頻率或周期測量時,其工作步驟如下:令TF=0,選擇等精度測頻,然后再CONTRL的CLR端加一正脈沖信號以完成測試電路狀態(tài)的初始化。由預(yù)置門控信號將CONTRL的START端置高電平,預(yù)置門開始定時,此時由被測信號的上沿打開計數(shù)器CNT1進(jìn)行計數(shù),同時使標(biāo)準(zhǔn)頻率信號進(jìn)入計數(shù)器CNT2。預(yù)置門定時結(jié)束信號把CONTRL的START端置為低電平(由單片機(jī)來

22、完成),在被測信號的下一次脈沖的上沿到來時,CNT1停止計數(shù),同時關(guān)斷CNT2對FS的計數(shù)。計數(shù)結(jié)束后,CONTRL的EEND端將輸出低電平來指示測量計數(shù)結(jié)束,單片機(jī)得到此信號后,即可利用ADRC(P2.2),ADRB(P2.1),ADRA(P2.0)分別讀回CNT1 和CNT2的計數(shù)值,并根據(jù)精度測量公式進(jìn)行運(yùn)算,計算出被測信號的頻率或周期值。(二) 控制部件設(shè)計如圖所示,當(dāng)D觸發(fā)器的輸入端START為高電平時,若FIN端來一個上升沿,則Q端變?yōu)楦唠娖?,?dǎo)通FIN-CLK1和FSD-CLK2,同時EEND被置為高電平作為標(biāo)志;當(dāng)D觸發(fā)器的輸入端START為低電平時,若FIN端輸入一個脈沖上沿

23、,則FIN-CLK1與FSD-CLK2的信號通道被切斷。圖4.2 測頻與測周期控制部分電路計數(shù)部件設(shè)計 圖中的計數(shù)器CNT1/CNT2是32位二進(jìn)制計數(shù)器,通過DSEL模塊的控制,單片機(jī)可分4次將其32位數(shù)據(jù)全部讀數(shù)。(三) 脈沖寬度測量和占空比測量模塊設(shè)計 根據(jù)上述脈寬測量原理,設(shè)計如圖(CONTRL)所示的電路原理示意圖。該信號的上沿和下沿信號對應(yīng)于未經(jīng)處理時的被測信號50%幅度時的上沿和下沿.被測信號從FIN端輸入,CLR為初始化信號<START為工作使能信號.CONTRL2模塊的PUL端與GATE的輸入端PUL連接.圖4.3 脈沖寬度測量原理圖測量脈沖寬度的工作步驟如下: 向CO

24、NTRL的CLR端送一個脈沖以便進(jìn)行電路的工作狀態(tài)初始化. 將GATE的CNL端置高電平,表示開始脈沖寬度測量,這時CNT2的輸入信號為FSD. 在被測脈沖的上沿到來時,CONTRL2的PUL端輸出高電平,標(biāo)準(zhǔn)頻率信號進(jìn)入計數(shù)器CNT2. 在被測脈沖的下沿到來時,CONTRL2的PUL端輸出低電平,計數(shù)器CNT2被關(guān)斷. 由單片機(jī)讀出計數(shù)器CNT2的結(jié)果,并通過上述測量原理公式計算出脈沖寬度.(四) 電路顯示模塊系統(tǒng)硬件電路中,單片機(jī)MCU與FPGA進(jìn)行數(shù)據(jù)交換占用了P0口、P1口和P3口,因此數(shù)據(jù)顯示電路的設(shè)計采用靜態(tài)顯示的方式,顯示電路由8個共陽極七段數(shù)碼管和8片1位串入8位并出的74LS

25、164芯片組成。圖4.4 顯示電路圖這種顯示方式不僅占用單片機(jī)端口少,而且充分利用了單片機(jī)的資源,容易掌握其編碼規(guī)律,簡化了軟件編程,在實驗過程中,也體現(xiàn)出較高的可靠性。數(shù)據(jù)顯示電路如圖4.4所示。第四章 各功能模塊基于VHDL的設(shè)計第一節(jié) 時基產(chǎn)生與測頻時序控制電路模塊的VHDL源程序程序ctrl.vhdLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY CTRL IS PORT(CLK: IN STD_LOGIC; -系統(tǒng)時鐘 LOCK: OUT STD_LOGIC; -鎖存信號 E

26、N: OUT STD_LOGIC; -計數(shù)允許信號 CLR: OUT STD_LOGIC); -清零信號END;ARCHITECTURE ART OF CTRL IS SIGNAL Q: STD_LOGIC_VECTOR(3 DOWNTO 0); -定義變量BEGINPROCESS(CLK)BEGINIF(CLK'EVENT AND CLK='1')THEN -檢測時鐘上升沿IF Q="1111"THENQ<="0000" -計數(shù)大于15,清零ELSEQ<=Q+'1' -允許計數(shù)END IF;END I

27、F;EN<=NOT Q(3);LOCK<=Q(3) AND NOT(Q(2) AND Q(1);CLR<=Q(3) AND Q(2) AND NOT(Q(1);END PROCESS;END ART;程序主要講述了由時鐘信號產(chǎn)生計數(shù)允許信號、清零信號和鎖存信號,而且限定了響應(yīng)時間為不超過15s。第二節(jié) 待測信號脈沖計數(shù)電路模塊的VHDL源程序一 十進(jìn)制加法計數(shù)器的VHDL源程序程序cb10.vhdLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY CB10 ISPORT

28、(CLK,EN,CLR: IN STD_LOGIC; COUNT10: BUFFER STD_LOGIC_VECTOR(3 DOWNTO 0); -計數(shù)輸信號END CB10;ARCHITECTURE ART OF CB10 IS -結(jié)構(gòu)體BEGIN PROCESS(CLK,CLR,EN)BEGINIF CLR='1' THENCOUNT10<="0000" -計數(shù)器清零ELSIF RISING_EDGE(CLK) THEN -檢測時鐘上升沿IF(EN='1') THEN -檢測是否允許計數(shù)IF COUNT10="1001&q

29、uot; THENCOUNT10<="0000" -計數(shù)值滿9清零ELSECOUNT10<=COUNT10+'1' -允許計數(shù)END IF;END IF;END IF;END PROCESS;END ART;程序主要講述了十進(jìn)制加法計數(shù)器的使用,在符合了一定的標(biāo)準(zhǔn)以后十進(jìn)制的使用,在計數(shù)器滿9后清零。二 待測信號脈沖計數(shù)器的VHDL源程序程序count.vhdLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY COUNT IS PORT(C

30、LK: IN STD_LOGIC; -待測時鐘信號 EN: IN STD_LOGIC; -計數(shù)選通控制信號 CLR: IN STD_LOGIC; -計數(shù)器清零信號 QA,QB,QC,QD:BUFFER STD_LOGIC_VECTOR(3 DOWNTO 0); -結(jié)果輸出信號END;ARCHITECTURE ART OF COUNT ISCOMPONENT CB10 -元件CB10引用說明語句PORT(CLK,EN,CLR: IN STD_LOGIC;COUNT10: BUFFER STD_LOGIC_VECTOR(3 DOWNTO 0); -計數(shù)輸出信號END COMPONENT;SIGNA

31、L CLK2: STD_LOGIC;SIGNAL CLK3: STD_LOGIC;SIGNAL CLK4: STD_LOGIC;BEGINCLK2<=NOT QA(3);CLK3<=NOT QB(3);CLK4<=NOT QC(3);U1:CB10 PORT MAP(CLK,EN,CLR,QA); -元件引用例示U2:CB10 PORT MAP(CLK2,EN,CLR,QB); -元件引用例示U3:CB10 PORT MAP(CLK3,EN,CLR,QC); -元件引用例示U4:CB10 PORT MAP(CLK4,EN,CLR,QD); -元件引用例示END ART;第三節(jié)

32、 鎖存與譯碼顯示控制電路模塊的VHDL源程序一 譯碼顯示電路的VHDL源程序程序bcd7.vhdLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY BCD7 IS PORT(BCD: IN STD_LOGIC_VECTOR(3 DOWNTO 0); -BCD輸入信號 LED: OUT STD_LOGIC_VECTOR(6 DOWNTO 0); -七段譯碼輸出信號END;ARCHITECTURE ART OF BCD7 ISBEGINLED<="0111111" WHEN BCD="0000" ELSE -

33、對照七段字形顯示譯碼器真值表 "0000110" WHEN BCD="0001" ELSE "1011011" WHEN BCD="0010" ELSE "1001111" WHEN BCD="0011" ELSE "1100110" WHEN BCD="0100" ELSE "1101101" WHEN BCD="0101" ELSE "1111101" WHEN BCD=&

34、quot;0110" ELSE "0000111" WHEN BCD="0111" ELSE "1111111" WHEN BCD="1000" ELSE "1101111" WHEN BCD="1001" ELSE "0000000"END ART;程序主要講述了七段譯碼器的顯示問題,對應(yīng)的給出了信號輸入過程中七段譯碼器的各種顯示。二 鎖存與譯碼顯示控制模塊的VHDL源程序程序lock.vhdLIBRARY IEEE;USE IEEE.STD_

35、LOGIC_1164.ALL;ENTITY LOCK ISPORT(LOCK: IN STD_LOGIC; QA,QB,QC,QD: IN STD_LOGIC_VECTOR(3 DOWNTO 0);LEDA,LEDB,LEDC,LEDD: OUT STD_LOGIC_VECTOR(6 DOWNTO 0);-頻率計數(shù)輸出END;ARCHITECTURE ART OF LOCK ISSIGNAL QAL,QBL,QCL,QDL: STD_LOGIC_VECTOR(3 DOWNTO 0);COMPONENT BCD7 -元件BCD7引用說明語句PORT(BCD: IN STD_LOGIC_VECTO

36、R(3 DOWNTO 0);LED: OUT STD_LOGIC_VECTOR(6 DOWNTO 0);END COMPONENT;BEGIN PROCESS(LOCK)BEGINIF(LOCK'EVENT AND LOCK='1')THEN -檢測時鐘上升沿QAL<=QA;QBL<=QB;QCL<=QC;QDL<=QD;END IF;END PROCESS;U0: BCD7 PORT MAP(QAL,LEDA); -元件引用例示U1: BCD7 PORT MAP(QBL,LEDB); -元件引用例示U2: BCD7 PORT MAP(QCL,L

37、EDC); -元件引用例示U3: BCD7 PORT MAP(QDL,LEDD); -元件引用例示END ART;程序主要講述了調(diào)用七段譯碼器的顯示,將輸入的信號經(jīng)過譯碼之后在七段譯碼器上進(jìn)行顯示。第四節(jié) 頂層電路的VHDL源程序程序pinlvji.vhdLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY PINLVJI ISPORT(F_IN,CLK: IN STD_LOGIC;ENT,LOCKT,CLRT: BUFFER STD_LOGIC;Z1,Z2,Z3,Z4: OUT STD_LOGIC_VECTOR(6 DOWNTO 0);END PIN

38、LVJI;ARCHITECTURE ART OF PINLVJI ISSIGNAL ENS,LOCKS,CLRS: STD_LOGIC;SIGNAL QAS,QBS,QCS,QDS: STD_LOGIC_VECTOR(3 DOWNTO 0);COMPONENT CTRL -元件CTRL引用說明語句PORT(CLK: IN STD_LOGIC;EN,LOCK,CLR: OUT STD_LOGIC);END COMPONENT;COMPONENT COUNT -元件COUNT引用說明語句PORT(CLK,EN,CLR: IN STD_LOGIC;QA,QB,QC,QD: OUT STD_LOGIC_VECTOR(3 DOWNTO 0);END COMPONENT;COMPONENT LOCK -元件LOCK引用說明語句PORT(LOCK: IN STD_LOGIC; QA,QB,QC,QD: IN STD_LOGIC_VECTOR(3 DOWNTO 0);LEDA,

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論