基于VHDL的數(shù)字頻率計的設(shè)計_第1頁
基于VHDL的數(shù)字頻率計的設(shè)計_第2頁
基于VHDL的數(shù)字頻率計的設(shè)計_第3頁
基于VHDL的數(shù)字頻率計的設(shè)計_第4頁
基于VHDL的數(shù)字頻率計的設(shè)計_第5頁
已閱讀5頁,還剩21頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、武漢理工大學(xué)能力拓展訓(xùn)練設(shè)計說明書- i - 目錄第一章 概述 . 11.1 設(shè)計概述 . 11.2 設(shè)計內(nèi)容 . 11.3 設(shè)計原理 . 11.4 設(shè)計功能 . 2第二章 技術(shù)與開發(fā)工具 . 32.1 vhdl 簡介. 32.1.1簡介 . . 32.1.2 vhdl 程序組成部分. 42.1.3 vhdl 系統(tǒng)優(yōu)勢 . 42.2 max+plus . 52.2.1 軟件簡介 . 52.2.2 軟件組成 . 62.2.3 設(shè)計流程 . 7第三章 系統(tǒng)分析 . 83.1 數(shù)字頻率計的設(shè)計任務(wù)及要求. 83.2 模塊的劃分 . 83.3 設(shè)計分析 . 9第四章 各功能模塊基于vhdl 的設(shè)計 .

2、 104.1 時基產(chǎn)生與測頻時序控制電路模塊的vhdl 源程序 . 10 4.2 待測信號脈沖計數(shù)電路模塊的vhdl 源程序 . 11 4.2.1 十進(jìn)制加法計數(shù)器的vhdl 源程序 . 11 4.2.2 待測信號脈沖計數(shù)器的vhdl 源程序 . 12 4.3 鎖存與譯碼顯示控制電路模塊的vhdl 源程序 . 13 4.3.1 譯碼顯示電路的 vhdl 源程序 . 13 武漢理工大學(xué)能力拓展訓(xùn)練設(shè)計說明書- ii - 4.3.2 鎖存與譯碼顯示控制模塊的vhdl 源程序 . 14 4.4 頂層電路的 vhdl 源程序 . 16 第五章 數(shù)字頻率計波形仿真 . . 185.1 時基產(chǎn)生與測頻時序

3、控制電路模塊的仿真. 18 5.2 待測信號脈沖計數(shù)電路模塊的仿真. 18 5.2.1 十進(jìn)制加法計數(shù)器的仿真 . 18 5.2.2 待測信號脈沖計數(shù)器的仿真. 19 5.3 鎖存與譯碼顯示控制電路模塊的仿真. 19 5.3.1 譯碼顯示電路的仿真 . 19 5.3.2 鎖存與譯碼顯示控制模塊的仿真. 20 5.4 數(shù)字頻率計系統(tǒng)的仿真. 20 結(jié)論 . 22參考文獻(xiàn) . 23武漢理工大學(xué)能力拓展訓(xùn)練設(shè)計說明書- iii - 摘要本文介紹了一種自頂向下分層設(shè)計多功能數(shù)字頻率計的設(shè)計方法。該頻率計采用vhdl 硬件描述語言編程以max+plus為開發(fā)環(huán)境,極大地減少了硬件資源的占用。數(shù)字頻率計模

4、塊劃分的設(shè)計具有相對獨立性,可以對模塊單獨進(jìn)行設(shè)計、 調(diào)試和修改,縮短了設(shè)計周期。該數(shù)字頻率計的測量范圍為lhz1mhz ,響應(yīng)時間小于等于15 秒;其測試結(jié)果由4 只七段數(shù)碼管穩(wěn)定顯示,測量誤差小于等于1 。仿真波形與分析結(jié)果表明, 所設(shè)計的電路通過硬件仿真能夠滿足數(shù)字頻率計的功能要求, 具有理論與實踐意義, 實現(xiàn)了電子電路自動化的過程。數(shù)字頻率計模塊劃分的設(shè)計具有相對獨立性,可以對模塊單獨進(jìn)行設(shè)計、 調(diào)試和修改, 縮短了設(shè)計周期。關(guān)鍵詞:vhdl 數(shù)字頻率計 eda max+plus武漢理工大學(xué)能力拓展訓(xùn)練設(shè)計說明書- 1 - 基于 vhdl的數(shù)字頻率計的設(shè)計第一章 概述1.1 設(shè)計概述所

5、謂頻率,就是周期信號在單位時間(1s)里變化的次數(shù)。本數(shù)字頻率計的設(shè)計思路是:(1) 根據(jù)頻率計的測頻原理, 可以選擇合適的時基信號對輸入被測信號脈沖進(jìn)行計數(shù),實現(xiàn)測頻的目的。(2) 根據(jù)數(shù)字頻率計的基本原理, 本文設(shè)計方案的基本思想是分為三個模塊來實現(xiàn)其功能, 即時基產(chǎn)生與測頻時序控制電路模塊、待測信號脈沖計數(shù)電路模塊和鎖存與譯碼顯示控制電路模塊,并且分別用vhdl 對其進(jìn)行編程,實現(xiàn)計數(shù)電路、鎖存電路、顯示電路等。1.2 設(shè)計內(nèi)容分析數(shù)字頻率計的功能,完成功能模塊的劃分,分別用vhdl 語言完成底層模塊的設(shè)計和以原理圖的方法完成頂層模塊的設(shè)計,分別對各個模塊以及頂層模塊進(jìn)行仿真分析,最后在

6、硬件開發(fā)平臺上進(jìn)行測試。1.3 設(shè)計原理我們都知道,頻率信號易于傳輸,抗干擾性強,可以獲得較好的測量精度。因此,頻率檢測是電子測量領(lǐng)域最基本的測量之一。頻率計的基本原理是用一個頻率穩(wěn)定度高的頻率源作為基準(zhǔn)時鐘,對比測量其他信號的頻率。 通常情況下計算每秒內(nèi)待測信號的脈沖個數(shù),即閘門時間為1s。閘門時間可以根據(jù)需要取值,大于或小于 1s都可以。閘門時間越長,得到的頻率值就越準(zhǔn)確,但閘門時間越武漢理工大學(xué)能力拓展訓(xùn)練設(shè)計說明書- 2 - 長,則每測一次頻率的間隔就越長。閘門時間越短,測得的頻率值刷新就越快,但測得的頻率精度就受影響。一般取1s 作為閘門時間。數(shù)字頻率計的關(guān)鍵組成部分包括測頻控制信號

7、發(fā)生器、計數(shù)器、鎖存器、譯碼驅(qū)動電路和顯示電路,其原理框圖如圖1. 1 所示。1.4 設(shè)計功能四位十進(jìn)制數(shù)字頻率計用四組七段譯碼顯示的數(shù)字頻率計,其頻率測量范圍為 1hz10khz。采用記憶顯示的方法,即在測量過程中不刷新數(shù)據(jù),等數(shù)據(jù)過程結(jié)束后才顯示測量結(jié)果,給出待測信號的頻率值,并保存到下一次測量結(jié)束,顯示時間不少于 1 秒。計數(shù)器鎖存器譯碼驅(qū)動電路數(shù)碼管顯示測頻控制信號發(fā)生器圖 1.1 原理框圖待測信號武漢理工大學(xué)能力拓展訓(xùn)練設(shè)計說明書- 3 - 第二章技術(shù)與開發(fā)工具2.1 vhdl 簡介2.1.1 簡介vhdl主要用于描述數(shù)字系統(tǒng)的結(jié)構(gòu),行為,功能和接口。vhdl的程序結(jié)構(gòu)特點是將一項工

8、程設(shè)計,或稱設(shè)計實體(可以是一個元件,一個電路模塊或一個系統(tǒng))分成外部(或稱可是部分, 及端口 ) 和內(nèi)部(或稱不可視部分),既涉及實體的內(nèi)部功能和算法完成部分。在對一個設(shè)計實體定義了外部界面后,一旦其內(nèi)部開發(fā)完成后,其他的設(shè)計就可以直接調(diào)用這個實體。這種將設(shè)計實體分成內(nèi)外部分的概念是vhdl系統(tǒng)設(shè)計的基本點。vhdl 語言能夠成為標(biāo)準(zhǔn)化的硬件描述語言并獲得廣泛應(yīng)用 , 它自身必然具有很多其他硬件描述語言所不具備的優(yōu)點。歸納起來,vhdl 語言主要具有以下優(yōu)點:(1) vhdl 語言功能強大,設(shè)計方式多樣vhdl 語言具有強大的語言結(jié)構(gòu), 只需采用簡單明確的vhdl語言程序就可以描述十分復(fù)雜的

9、硬件電路。同時,它還具有多層次的電路設(shè)計描述功能。此外, vhdl 語言能夠同時支持同步電路、異步電路和隨機電路的設(shè)計實現(xiàn) , 這是其他硬件描述語言所不能比擬的。vhdl 語言設(shè)計方法靈活多樣 , 既支持自頂向下的設(shè)計方式, 也支持自底向上的設(shè)計方法; 既支持模塊化設(shè)計方法, 也支持層次化設(shè)計方法。(2) vhdl 語言具有強大的硬件描述能力vhdl語言具有多層次的電路設(shè)計描述功能,既可描述系統(tǒng)級電路 , 也可以描述門級電路;描述方式既可以采用行為描述、寄存器傳輸描述或者結(jié)構(gòu)描述,也可以采用三者的混合描述方式。同時,vhdl語言也支持慣性延遲和傳輸延遲,這樣可以準(zhǔn)確地建立硬件電路的模型。vhd

10、l語言的強大描述能力還體現(xiàn)在它具有豐富的數(shù)據(jù)類型。vhdl 語言既支持標(biāo)準(zhǔn)定義的數(shù)據(jù)類型,也支持用戶定義的數(shù)據(jù)類型,這樣便會給硬件描述帶來較大的自由度。武漢理工大學(xué)能力拓展訓(xùn)練設(shè)計說明書- 4 - (3) vhdl 語言具有很強的移植能力vhdl語言很強的移植能力主要體現(xiàn)在: 對于同一個硬件電路的 vhdl 語言描述,它可以從一個模擬器移植到另一個模擬器上、從一個綜合器移植到另一個綜合器上或者從一個工作平臺移植到另一個工作平臺上去執(zhí)行。(4) vhdl 語言的設(shè)計描述與器件無關(guān)采用 vhdl語言描述硬件電路時,設(shè)計人員并不需要首先考慮選擇進(jìn)行設(shè)計的器件。這樣做的好處是可以使設(shè)計人員集中精力進(jìn)行

11、電路設(shè)計的優(yōu)化,而不需要考慮其他的問題。當(dāng)硬件電路的設(shè)計描述完成以后,vhdl 語言允許采用多種不同的器件結(jié)構(gòu)來實現(xiàn)。(5) vhdl 語言程序易于共享和復(fù)用vhdl語言采用基于庫(library)的設(shè)計方法。在設(shè)計過程中,設(shè)計人員可以建立各種可再次利用的模塊,一個大規(guī)模的硬件電路的設(shè)計不可能從門級電路開始一步步地進(jìn)行設(shè)計,而是一些模塊的累加。這些模塊可以預(yù)先設(shè)計或者使用以前設(shè)計中的存檔模塊,將這些模塊存放在庫中,就可以在以后的設(shè)計中進(jìn)行復(fù)用。2.1.2 vhdl程序組成部分全部 的 vhdl 程 序 由 實 體 ( entity) 、 構(gòu) 造 體 (architecture)、 配 置(co

12、nfiguration) 、包集合( package) 、庫( library )5 個部分組成。各組成部分的作用是:(1) 實體用于描述所設(shè)計的系統(tǒng)的外部接口信號。(2) 構(gòu)造體用于描述系統(tǒng)內(nèi)部的結(jié)構(gòu)和行為。(3) 配置用于從庫中選取不同單元(器件)來組成系統(tǒng)設(shè)計的不同版本。(4) 包集合存放各設(shè)計模塊都能共享的數(shù)據(jù)類型、常數(shù)和子程序等。(5) 庫存放已經(jīng)編譯了的實體、 構(gòu)造體、包集合和配置。 庫可由系統(tǒng)工程師生成或由 asic芯片商提供,以便在設(shè)計中共享。2.1.3 vhdl 系統(tǒng)優(yōu)勢武漢理工大學(xué)能力拓展訓(xùn)練設(shè)計說明書- 5 - (1) 與其他的硬件描述語言相比,vhdl具有更強的行為描述

13、能力,從而決定了他成為系統(tǒng)設(shè)計領(lǐng)域最佳的硬件描述語言。強大的行為描述能力是避開具體的器件結(jié)構(gòu),從邏輯行為上描述和設(shè)計大規(guī)模電子系統(tǒng)的重要保證。(2) vhdl 豐富的仿真語句和庫函數(shù),使得在任何大系統(tǒng)的設(shè)計早期就能查驗設(shè)計系統(tǒng)的功能可行性,隨時可對設(shè)計進(jìn)行仿真模擬。(3) vhdl 語句的行為描述能力和程序結(jié)構(gòu)決定了他具有支持大規(guī)模設(shè)計的分解和已有設(shè)計的再利用功能。符合市場需求的大規(guī)模系統(tǒng)高效,高速的完成必須有多人甚至多個代發(fā)組共同并行工作才能實現(xiàn)。(4) 對于用 vhdl完成的一個確定的設(shè)計,可以利用eda工具進(jìn)行邏輯綜合和優(yōu)化,并自動的把vhdl描述設(shè)計轉(zhuǎn)變成門級網(wǎng)表。(5) vhdl對設(shè)

14、計的描述具有相對獨立性,設(shè)計者可以不懂硬件的結(jié)構(gòu),也不必管理最終設(shè)計實現(xiàn)的目標(biāo)器件是什么,而進(jìn)行獨立的設(shè)計。2.2 max+plus 2.2.1 軟件簡介max+plus(multiple array and programming logic user system)開發(fā)工具是 altera公司推出的一種 eda工具,具有靈活高效、使用便捷和易學(xué)易用等特點。altera公司在推出各種 cpld 的同時,也在不斷地升級相應(yīng)的開發(fā)工具軟件,已從早起的第一代a+plus 、第二代 max+plus 發(fā)展到第三代 max+plus和第四代 quartus。使用 max+plus軟件,設(shè)計者無需精通器

15、件內(nèi)部的復(fù)雜結(jié)構(gòu),只需用業(yè)已熟悉的設(shè)計輸入工具,如硬件描述語言、原理圖等進(jìn)行輸入即可,max+plus就會自動將設(shè)計轉(zhuǎn)換成目標(biāo)文件下載到器件中去。max+plus開發(fā)系統(tǒng)具有以下特點(1) 多平臺。 max+plus軟件可以在基于pc機的操作系統(tǒng)如 windows95 、windows98 、windows2000 、windows nt下運行,也可以在 sun spac station等工作站上運行。(2) 開放的界面。 max+plus提供了與其他設(shè)計輸入、綜合和校驗工具的接口,武漢理工大學(xué)能力拓展訓(xùn)練設(shè)計說明書- 6 - 借口符合 edif 200/300、lpm 、vhdl 、veri

16、log-hdl 等標(biāo)準(zhǔn)。目前 max+plus所支持的主流第三方eda工具主要有 synopsys、viewlogic 、mentor、graphics 、cadence 、orcad 、xilinx等公司提供的工具。(3) 模塊組合式工具軟件。 max+plus具有一個完整的可編程邏輯設(shè)計環(huán)境,包括設(shè)計輸入、 設(shè)計處理、 設(shè)計校驗和下載編程4 個模塊,設(shè)計者可以按設(shè)計流程選擇工作模塊。(4) 與結(jié)構(gòu)無關(guān)。max+plus開發(fā)系統(tǒng)的核心 compiler( 編譯器) 能夠自動完成邏輯綜合和優(yōu)化,它支持altera的 classic 、max7000 、flex8000和flex10k 等可編程

17、器件系列,提供一個與結(jié)構(gòu)無關(guān)的pld開發(fā)環(huán)境。(5) 支持硬件描述語言。 max+plus支持各種 hdl設(shè)計輸入語言,包括vhdl 、verilog-hdl 和 altera的硬件描述語言ahdl 。(6) 豐富的設(shè)計庫。 max+plus提供豐富的庫單元供設(shè)計者調(diào)用,其中包括一些基本的邏輯單元, 74 系列的器件和多種特定功能的宏功能模塊以及參數(shù)化的兆功能模塊。 調(diào)用庫單元進(jìn)行設(shè)計, 可以大大減輕設(shè)計人員的工作量,縮短設(shè)計周期。2.2.2 軟件組成max+plus軟件采用模塊化結(jié)構(gòu), 包括設(shè)計輸入、 項目處理、 項目校驗和器件編程 4 個部分,所有這些部分都集成在一個可視化的操作環(huán)境下。(

18、1) 設(shè)計輸入max+plus的設(shè)計輸入方法有多種,主要包括文本設(shè)計輸入、原理圖輸入、波形設(shè)計輸入等多種方式。 另外,還可以利用第三方eda工具生成的網(wǎng)表文件輸入,該軟件可接受的網(wǎng)表有edif格式、vhdl 格式及 verilog格式。max+plus是一種層次設(shè)計工具,可根據(jù)實際情況靈活地使用最適合每一層次的設(shè)計方法。(2) 項目處理設(shè)計處理的任務(wù)就是對項目進(jìn)行編譯(compile) ,編譯實際就是將設(shè)計者編寫的設(shè)計改為可以用于生產(chǎn)的“語言” 。編譯器通過讀入設(shè)計文件并產(chǎn)生用于編程、仿真和定時分析的輸出文件來完成編譯工作。max+plus提供的編譯軟件,只需簡單的操作,如參數(shù)選擇、指定功能等

19、,就可進(jìn)行網(wǎng)表轉(zhuǎn)換、邏輯分割和布武漢理工大學(xué)能力拓展訓(xùn)練設(shè)計說明書- 7 - 線布局。(3) 項目校驗max+plus提供的設(shè)計校驗過程包括仿真和定時分析,項目編譯后, 為確保設(shè)計無誤, 要再用專用軟件進(jìn)行仿真。 如果發(fā)現(xiàn)了錯誤, 則應(yīng)對設(shè)計輸入進(jìn)行部分修改直至無誤。(4) 器件編程max+plus通過編程器( device programmer )將編譯器生成的編程文件編程或配置到 altera cpld 器件中,然后加入實際激勵信號進(jìn)行測試,檢查是否達(dá)到了設(shè)計要求? altera公司器件的編程方法有許多種,可通過編程器、jtag在系統(tǒng)編程及 altera在線配置等方式進(jìn)行。在設(shè)計過程中,

20、如果出現(xiàn)錯誤, 則需要重新回到設(shè)計輸入階段,改正錯誤或調(diào)整電路后重復(fù)上述過程。2.2.3 設(shè)計流程使用 max+plus進(jìn)行可編程邏輯器件開發(fā)主要包括4 個階段:設(shè)計輸入、編譯處理、驗證(包括功能仿真、時序仿真、和定時分析)和器件編程,流程如圖2. 1 所示:設(shè)計要求設(shè)計輸入編譯處理驗證器件編程器件測試系統(tǒng)產(chǎn)品設(shè)計修改圖 2.1 設(shè)計流程圖武漢理工大學(xué)能力拓展訓(xùn)練設(shè)計說明書- 8 - 第三章系統(tǒng)分析3.1 數(shù)字頻率計的設(shè)計任務(wù)及要求設(shè)計一個四位十進(jìn)制的數(shù)字頻率計,要求具有以下功能:(1) 測量范圍: 1hz 10khz。(2) 測量誤差1% 。(3) 響應(yīng)時間15s。(4) 顯示時間不少于 1

21、s。(5) 具有記憶顯示的功能, 即在測量的過程中不刷新數(shù)據(jù), 等數(shù)據(jù)過程結(jié)束后才顯示測量結(jié)果,給出待測信號的頻率值,并保存到下一次測量結(jié)束。3.2 模塊的劃分根據(jù)系統(tǒng)設(shè)計要求, 系統(tǒng)設(shè)計采用自頂向下的設(shè)計方法,系統(tǒng)的組成框圖如圖 3. 1 所示,包括時基產(chǎn)生與測頻時序控制電路模塊,以及待測信號脈沖計數(shù)電路模塊和鎖存與譯碼顯示控制電路模塊。(1) 時基產(chǎn)生與測頻時序控制電路模塊時基產(chǎn)生與測頻時序控制電路待測信號脈沖計數(shù)電路鎖存與譯碼顯示電路en clr lock q0:15 z10:6 z20:6 z30:6 z40:6 待測信號 f_in 標(biāo)準(zhǔn)時鐘clk 圖 3.1 數(shù)字頻率計的組成框圖武漢

22、理工大學(xué)能力拓展訓(xùn)練設(shè)計說明書- 9 - 時基產(chǎn)生與測頻時序控制電路的主要產(chǎn)生計數(shù)允許信號en 、清零信號clr和鎖存信號 lock 。(2) 待測信號脈沖計數(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。(3) 鎖存與譯碼顯示控制電路模塊鎖存與譯碼顯示控制電

23、路用于實現(xiàn)記憶顯示,在測量過程中不刷新新的數(shù)據(jù),直到測量過程結(jié)束后,鎖存顯示測量結(jié)果,并且保存到下一次測量結(jié)束。鎖存與譯碼顯示電路的功能是對四位bcd碼進(jìn)行鎖存,并轉(zhuǎn)換為對應(yīng)的4組七段碼,用于驅(qū)動數(shù)碼管。3.3 設(shè)計分析采用 vhdl 語言設(shè)計一個復(fù)雜的電路系統(tǒng),運用自頂向下的設(shè)計思想,將系統(tǒng)按功能逐層分割的層次化設(shè)計方法進(jìn)行設(shè)計。在頂層對內(nèi)部各功能塊的連接關(guān)系和對外的接口關(guān)系進(jìn)行了描述, 而功能塊的邏輯功能和具體實現(xiàn)形式則由下一層模塊來描述。各功能模塊采用vhdl 語言來描述。武漢理工大學(xué)能力拓展訓(xùn)練設(shè)計說明書- 10 - 第四章各功能模塊基于vhdl的設(shè)計4.1 時基產(chǎn)生與測頻時序控制電路

24、模塊的vhdl源程序程序 ctrl.vhd library 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; -鎖存信號 en: out std_logic; -計數(shù)允許信號 clr: out std_logic); -清零信號end; architecture art of ctrl is signal q: std_logic_vector(3 downto 0); -定義變

25、量begin process(clk) begin if(clkevent and clk=1)then -檢測時鐘上升沿 if q=1111then q=0000; -計數(shù)大于 15, 清零 else 武漢理工大學(xué)能力拓展訓(xùn)練設(shè)計說明書- 11 - q=q+1; -允許計數(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; 程序主要講述了由時鐘信號產(chǎn)生計數(shù)允許信號、清零信號和鎖存信號, 而且限定了響應(yīng)時間為不超過

26、15s。4.2 待測信號脈沖計數(shù)電路模塊的vhdl源程序4.2.1 十進(jìn)制加法計數(shù)器的vhdl源程序程序 cb10.vhd library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity cb10 is port(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 武漢理工大學(xué)能力拓展訓(xùn)練設(shè)計說

27、明書- 12 - process(clk,clr,en) begin if clr=1 then count10=0000; -計數(shù)器清零 elsif rising_edge(clk) then -檢測時鐘上升沿 if(en=1) then -檢測是否允許計數(shù) if count10=1001 then count10=0000; -計數(shù)值滿 9 清零 else count10=count10+1; -允許計數(shù) end if; end if; end if; end process; end art; 程序主要講述了十進(jìn)制加法計數(shù)器的使用,在符合了一定的標(biāo)準(zhǔn)以后十進(jìn)制的使用,在計數(shù)器滿9 后清零

28、。4.2.2 待測信號脈沖計數(shù)器的vhdl 源程序程序 count.vhd library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity count is port(clk: in std_logic; -待測時鐘信號 en: in std_logic; -計數(shù)選通控制信號 clr: in std_logic; -計數(shù)器清零信號武漢理工大學(xué)能力拓展訓(xùn)練設(shè)計說明書- 13 - qa,qb,qc,qd: buffer std_logic_vector(3 downto 0); -結(jié)果輸出信號en

29、d; architecture art of count is component cb10 -元件 cb10引用說明語句 port(clk,en,clr: in std_logic; count10: buffer std_logic_vector(3 downto 0); -計數(shù)輸出信號 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

30、 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; 4.3 鎖存與譯碼顯示控制電路模塊的vhdl源程序4.3.1 譯碼顯示電路的vhdl源程序程序 bcd7.vhd library ieee; 武漢理工大學(xué)能力拓展訓(xùn)練設(shè)計說明書- 14 - use ieee.std_logic_1164.all; entity bcd7 i

31、s port(bcd: in std_logic_vector(3 downto 0); -bcd 輸入信號 led: out std_logic_vector(6 downto 0); -七段譯碼輸出信號end; architecture art of bcd7 is begin led=0111111 when bcd=0000 else -對照七段字形顯示譯碼器真值表 0000110 when bcd=0001 else 1011011 when bcd=0010 else 1001111 when bcd=0011 else 1100110 when bcd=0100 else 110

32、1101 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; 程序主要講述了七段譯碼器的顯示問題,對應(yīng)的給出了信號輸入過程中七段譯碼器的各種顯示。4.3.2 鎖存與譯碼顯示控制模塊的vhdl 源程序程序 lock.vhd library ieee; use ieee.std_logic_1164.all; 武漢理工大學(xué)能力拓展訓(xùn)練設(shè)計說明書- 15 - ent

33、ity 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);-頻率計數(shù)輸出end; architecture art of lock is signal qal,qbl,qcl,qdl: std_logic_vector(3 downto 0); component bcd7 -元件 bcd7 引用說明語句 port(bcd: in std_logic_vector(3 downto

34、 0); led: out std_logic_vector(6 downto 0); end component; begin process(lock) begin if(lockevent 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,ledc); -元件引用例示 u3: bcd7 port

35、 map(qdl,ledd); -元件引用例示end art; 武漢理工大學(xué)能力拓展訓(xùn)練設(shè)計說明書- 16 - 程序主要講述了調(diào)用七段譯碼器的顯示,將輸入的信號經(jīng)過譯碼之后在七段譯碼器上進(jìn)行顯示。4.4 頂層電路的vhdl源程序程序 pinlvji.vhd library ieee; use ieee.std_logic_1164.all; entity pinlvji is port(f_in,clk: in std_logic; ent,lockt,clrt: buffer std_logic; z1,z2,z3,z4: out std_logic_vector(6 downto 0);

36、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引用說明語句 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,

37、qc,qd: out std_logic_vector(3 downto 0); end component; 武漢理工大學(xué)能力拓展訓(xùn)練設(shè)計說明書- 17 - component lock -元件 lock 引用說明語句 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); end component; begin ent=ens; lockt=locks; clrt=clrs; u1:ctrl p

38、ort map(clk,ens,locks,clrs); -元件引用例示 u2:count port map(f_in,ens,clrs,qas,qbs,qcs,qds); - 元件引用例示 u3:lock port map(locks,qas,qbs,qcs,qds,z1,z2,z3,z4); - 元件引用例示 end art; 武漢理工大學(xué)能力拓展訓(xùn)練設(shè)計說明書- 18 - 第五章數(shù)字頻率計波形仿真5.1 時基產(chǎn)生與測頻時序控制電路模塊的仿真圖 5.1 時基產(chǎn)生與測頻時序控制模塊的仿真圖圖 5. 2 時基產(chǎn)生與測頻時序控制電路模塊的仿真圖的詳細(xì)圖 5.1 顯示的是時基產(chǎn)生與測頻時序控制電路

39、模塊的仿真圖,很鮮明的給出了時鐘信號與計數(shù)允許信號、清零信號和鎖存信號的關(guān)系,而圖5. 2 更加詳細(xì)的給出了計數(shù)允許信號、 清零信號和鎖存信號與變量q之間所存在的相對應(yīng)的關(guān)系。5.2 待測信號脈沖計數(shù)電路模塊的仿真5.2.1 十進(jìn)制加法計數(shù)器的仿真武漢理工大學(xué)能力拓展訓(xùn)練設(shè)計說明書- 19 - 圖 5.3 十進(jìn)制加法計數(shù)器的仿真圖圖 5.3 顯示的是十進(jìn)制加法計數(shù)器的仿真圖,它詳細(xì)的給出了計數(shù)輸出信號與計數(shù)允許信號和清零信號之間的關(guān)系,能清楚的理解當(dāng) clr為 0 時, 輸出為 0;在 en為 1 選通有效后,則開始計數(shù)。5.2.2 待測信號脈沖計數(shù)器的仿真圖 5.4 測信號脈沖計數(shù)器的仿真圖

40、 5.4 顯示的是測信號脈沖計數(shù)器的仿真圖,以圖文的形式更直接的表現(xiàn)了信號脈沖的計數(shù)值,簡介明了。5.3 鎖存與譯碼顯示控制電路模塊的仿真5.3.1 譯碼顯示電路的仿真武漢理工大學(xué)能力拓展訓(xùn)練設(shè)計說明書- 20 - 圖 5.5 譯碼顯示電路的仿真圖圖 5.5 顯示的是譯碼顯示電路的仿真圖, 它直接用圖形詮釋了程序中語句的意思,讓人一目了然,更簡單的了解了模塊的作用。5.3.2 鎖存與譯碼顯示控制模塊的仿真圖 5.6 鎖存與譯碼顯示控制電路的仿真圖圖 5.6 顯示的是鎖存與譯碼顯示控制電路的仿真圖,給人第一感覺很繁瑣,但是聯(lián)系程序再看圖就可以很輕松的清楚程序中之前還存在的疑惑也將圖從而理解透徹。5.4 數(shù)字頻率計系統(tǒng)的仿真武漢理工大學(xué)能力拓展訓(xùn)練設(shè)計說明書- 21 - 圖 5.7 數(shù)字頻率計系統(tǒng)的仿真圖 5.7 顯示的是數(shù)字頻率計系統(tǒng)的仿真圖, 它系統(tǒng)的體現(xiàn)了所設(shè)計的頻率計的作用。武漢理工大學(xué)能力拓展訓(xùn)練設(shè)計說明書- 22 - 結(jié)論本設(shè)計采用 eda

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論