課程設(shè)計(jì)頻率測(cè)量?jī)x設(shè)計(jì)_第1頁(yè)
課程設(shè)計(jì)頻率測(cè)量?jī)x設(shè)計(jì)_第2頁(yè)
課程設(shè)計(jì)頻率測(cè)量?jī)x設(shè)計(jì)_第3頁(yè)
課程設(shè)計(jì)頻率測(cè)量?jī)x設(shè)計(jì)_第4頁(yè)
課程設(shè)計(jì)頻率測(cè)量?jī)x設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩25頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

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

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

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

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

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

6、,程序包,涉及庫(kù),為設(shè)計(jì)人員重復(fù)利用別人的設(shè)計(jì)提供了技術(shù)手段。當(dāng)電路系統(tǒng)采用VHDL語(yǔ)言設(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ì)的過(guò)程中,對(duì)系統(tǒng)自上而下分成三個(gè)層次進(jìn)行設(shè)計(jì):第一層次是行為描述。第二層次是RTL方式描述。第三層次是邏輯綜合。二.系統(tǒng)可大量采用PLD芯片。利用VHDL語(yǔ)言設(shè)計(jì)數(shù)字系統(tǒng)時(shí),可以根據(jù)硬件電路的設(shè)計(jì)需要,自行利用PLD設(shè)計(jì)自用的ASIC芯片,而無(wú)須受通用元器件的限制。三.采用系統(tǒng)早期仿真。在系統(tǒng)設(shè)計(jì)過(guò)程中要進(jìn)行三級(jí)仿真。這三級(jí)仿真貫穿系統(tǒng)

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

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

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

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

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

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

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

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

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

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

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

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

19、it位。1.將bin31(bin是bin31:0)移入bcd0。這樣,bin31就變成了原來(lái)的bin30,bin0=0。2.分別檢查個(gè)十百千里存的數(shù)是不是大于等于5(按二進(jìn)制換十進(jìn)制那樣換算),如果是,加3。3.重做1,2直到全部移進(jìn)去。第三節(jié) 設(shè)計(jì)分析一 測(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),EN

20、DD=1計(jì)數(shù)結(jié)束;CHOICE(P3.2):自校/測(cè)頻選擇,CHOICE=1 測(cè)頻;CHOICE=0自校; START(P2.5):當(dāng)TF=0 時(shí),作為預(yù)置門(mén)閘,門(mén)寬可通過(guò)鍵盤(pán)由單片機(jī)控制,START=1時(shí)預(yù)置門(mén)開(kāi);當(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

21、次,每次讀出8位,并傳達(dá)到單片機(jī)的P0口。圖4.1 測(cè)頻模塊邏輯圖二 各模塊功能和工作步驟如下:(一) 測(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ù)置門(mén)控信號(hào)將CONTRL的START端置高電平,預(yù)置門(mén)開(kāi)始定時(shí),此時(shí)由被測(cè)信號(hào)的上沿打開(kāi)計(jì)數(shù)器CNT1進(jìn)行計(jì)數(shù),同時(shí)使標(biāo)準(zhǔn)頻率信號(hào)進(jìn)入計(jì)數(shù)器CNT2。 預(yù)置門(mén)定時(shí)結(jié)束信號(hào)把CONTRL的

22、START端置為低電平(由單片機(jī)來(lái)完成),在被測(cè)信號(hào)的下一次脈沖的上沿到來(lái)時(shí),CNT1停止計(jì)數(shù),同時(shí)關(guān)斷CNT2對(duì)FS的計(jì)數(shù)。 計(jì)數(shù)結(jié)束后,CONTRL的EEND端將輸出低電平來(lái)指示測(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)的頻率或周期值。(二) 控制部件設(shè)計(jì)如圖所示,當(dāng)D觸發(fā)器的輸入端START為高電平時(shí),若FIN端來(lái)一個(gè)上升沿,則Q端變?yōu)楦唠娖?,?dǎo)通FIN-CLK1和FSD-CLK2,同時(shí)EEND被置為高電平作為標(biāo)志;當(dāng)D觸發(fā)器的輸入端START為

23、低電平時(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ù)器,通過(guò)DSEL模塊的控制,單片機(jī)可分4次將其32位數(shù)據(jù)全部讀數(shù)。(三) 脈沖寬度測(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è)量原理圖

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

25、碼管和8片1位串入8位并出的74LS164芯片組成。 圖4.4 顯示電路圖這種顯示方式不僅占用單片機(jī)端口少,而且充分利用了單片機(jī)的資源,容易掌握其編碼規(guī)律,簡(jiǎn)化了軟件編程,在實(shí)驗(yàn)過(guò)程中,也體現(xiàn)出較高的可靠性。數(shù)據(jù)顯示電路如圖4.4所示。第四章 各功能模塊基于VHDL的設(shè)計(jì)第一節(jié) 時(shí)基產(chǎn)生與測(cè)頻時(shí)序控制電路模塊的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)時(shí)鐘 LOCK: OUT

26、 STD_LOGIC; -鎖存信號(hào) EN: OUT STD_LOGIC; -計(jì)數(shù)允許信號(hào) CLR: OUT STD_LOGIC); -清零信號(hào)END;ARCHITECTURE ART OF CTRL IS SIGNAL Q: STD_LOGIC_VECTOR(3 DOWNTO 0); -定義變量BEGINPROCESS(CLK) BEGIN IF(CLK'EVENT AND CLK='1')THEN -檢測(cè)時(shí)鐘上升沿 IF Q="1111"THEN Q<="0000" -計(jì)數(shù)大于15,清零 ELSE Q<=Q+'

27、;1' -允許計(jì)數(shù) END IF; END IF; 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; 程序主要講述了由時(shí)鐘信號(hào)產(chǎn)生計(jì)數(shù)允許信號(hào)、清零信號(hào)和鎖存信號(hào),而且限定了響應(yīng)時(shí)間為不超過(guò)15s。第二節(jié) 待測(cè)信號(hào)脈沖計(jì)數(shù)電路模塊的VHDL源程序一 十進(jìn)制加法計(jì)數(shù)器的VHDL源程序程序cb10.vhdLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC

28、_UNSIGNED.ALL;ENTITY CB10 IS PORT(CLK,EN,CLR: IN STD_LOGIC; COUNT10: BUFFER STD_LOGIC_VECTOR(3 DOWNTO 0); -計(jì)數(shù)輸信號(hào)END CB10;ARCHITECTURE ART OF CB10 IS -結(jié)構(gòu)體 BEGIN PROCESS(CLK,CLR,EN) BEGIN IF CLR='1' THEN COUNT10<="0000" -計(jì)數(shù)器清零 ELSIF RISING_EDGE(CLK) THEN -檢測(cè)時(shí)鐘上升沿 IF(EN='1'

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

30、EE.STD_LOGIC_UNSIGNED.ALL;ENTITY COUNT IS PORT(CLK: IN STD_LOGIC; -待測(cè)時(shí)鐘信號(hào) EN: IN STD_LOGIC; -計(jì)數(shù)選通控制信號(hào) CLR: IN STD_LOGIC; -計(jì)數(shù)器清零信號(hào) QA,QB,QC,QD: BUFFER STD_LOGIC_VECTOR(3 DOWNTO 0); -結(jié)果輸出信號(hào)END;ARCHITECTURE ART OF COUNT IS COMPONENT CB10 -元件CB10引用說(shuō)明語(yǔ)句 PORT(CLK,EN,CLR: IN STD_LOGIC; COUNT10: BUFFER STD_

31、LOGIC_VECTOR(3 DOWNTO 0); -計(jì)數(shù)輸出信號(hào) END COMPONENT; SIGNAL CLK2: STD_LOGIC; SIGNAL CLK3: STD_LOGIC; SIGNAL CLK4: STD_LOGIC; BEGIN CLK2<=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,Q

32、C); -元件引用例示 U4:CB10 PORT MAP(CLK4,EN,CLR,QD); -元件引用例示END ART;第三節(jié) 鎖存與譯碼顯示控制電路模塊的VHDL源程序一 譯碼顯示電路的VHDL源程序程序bcd7.vhdLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY BCD7 IS PORT(BCD: IN STD_LOGIC_VECTOR(3 DOWNTO 0); -BCD輸入信號(hào) LED: OUT STD_LOGIC_VECTOR(6 DOWNTO 0); -七段譯碼輸出信號(hào)END;ARCHITECTURE ART OF BCD7 IS

33、BEGIN LED<="0111111" WHEN BCD="0000" ELSE -對(duì)照七段字形顯示譯碼器真值表 "0000110" WHEN BCD="0001" ELSE "1011011" WHEN BCD="0010" ELSE "1001111" WHEN BCD="0011" ELSE "1100110" WHEN BCD="0100" ELSE "1101101&q

34、uot; WHEN BCD="0101" ELSE "1111101" WHEN BCD="0110" ELSE "0000111" WHEN BCD="0111" ELSE "1111111" WHEN BCD="1000" ELSE "1101111" WHEN BCD="1001" ELSE "0000000"END ART; 程序主要講述了七段譯碼器的顯示問(wèn)題,對(duì)應(yīng)的給出了信號(hào)輸入過(guò)程中七

35、段譯碼器的各種顯示。二 鎖存與譯碼顯示控制模塊的VHDL源程序程序lock.vhdLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY LOCK IS PORT(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);-頻率計(jì)數(shù)輸出END;ARCHITECTURE ART OF LOCK IS SIGNAL QAL,QBL,QCL,QDL: STD_LOGIC_VECTO

36、R(3 DOWNTO 0); COMPONENT BCD7 -元件BCD7引用說(shuō)明語(yǔ)句 PORT(BCD: IN STD_LOGIC_VECTOR(3 DOWNTO 0); LED: OUT STD_LOGIC_VECTOR(6 DOWNTO 0); END COMPONENT; BEGIN PROCESS(LOCK) BEGIN IF(LOCK'EVENT AND LOCK='1')THEN -檢測(cè)時(shí)鐘上升沿 QAL<=QA; QBL<=QB; QCL<=QC; QDL<=QD; END IF; END PROCESS; U0: BCD7 PO

37、RT MAP(QAL,LEDA); -元件引用例示 U1: BCD7 PORT MAP(QBL,LEDB); -元件引用例示 U2: BCD7 PORT MAP(QCL,LEDC); -元件引用例示 U3: BCD7 PORT MAP(QDL,LEDD); -元件引用例示END ART; 程序主要講述了調(diào)用七段譯碼器的顯示,將輸入的信號(hào)經(jīng)過(guò)譯碼之后在七段譯碼器上進(jìn)行顯示。第四節(jié) 頂層電路的VHDL源程序程序pinlvji.vhdLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY PINLVJI IS PORT(F_IN,CLK: IN STD_LOG

38、IC; ENT,LOCKT,CLRT: BUFFER STD_LOGIC; Z1,Z2,Z3,Z4: OUT STD_LOGIC_VECTOR(6 DOWNTO 0);END PINLVJI;ARCHITECTURE ART OF PINLVJI IS SIGNAL ENS,LOCKS,CLRS: STD_LOGIC; SIGNAL QAS,QBS,QCS,QDS: STD_LOGIC_VECTOR(3 DOWNTO 0);COMPONENT CTRL -元件CTRL引用說(shuō)明語(yǔ)句 PORT(CLK: IN STD_LOGIC; EN,LOCK,CLR: OUT STD_LOGIC);END COMPONENT;COMPONENT COUNT -元件COUNT引用說(shuō)明語(yǔ)句 PORT(CLK,EN,CLR: IN STD_LOGIC; QA,QB,QC,QD: OUT STD_LOGIC_VECTOR(3 DOWNTO 0);END COMPONENT;COMPONENT LOCK -元件LOCK引用說(shuō)明語(yǔ)句 PORT(LOCK: IN STD_LOGIC; QA,QB,QC,QD: IN STD_LOGIC_VECTOR(3 DOWNTO 0); LEDA

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論