




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、基于Verilog HDL數(shù)字頻率計(jì)設(shè)計(jì)與實(shí)現(xiàn) 課程設(shè)計(jì)任務(wù)書學(xué)院:計(jì)算機(jī)與通信工程學(xué)院 專業(yè):網(wǎng)絡(luò)工程專業(yè) 課程名稱計(jì)算機(jī)組成原理課程設(shè)計(jì)時(shí) 間20102011學(xué)年第一學(xué)期1718周學(xué)生姓名郭祥斌指導(dǎo)老師陳沅濤題 目主要內(nèi)容:(1)數(shù)字頻率計(jì)前端信號(hào)的放大整形處理(2)數(shù)字頻率計(jì)的Verilog HDL設(shè)計(jì)實(shí)現(xiàn)(3)數(shù)字頻率計(jì)的CPLD/FPGA制作要求:(1)通過(guò)對(duì)相應(yīng)文獻(xiàn)的收集、分析以及總結(jié),給出相應(yīng)課題的背景、意義 及現(xiàn)狀研究分析。(2)通過(guò)課題設(shè)計(jì),掌握計(jì)算機(jī)組成原理的分析方法和設(shè)計(jì)方法。(3)學(xué)按要求編寫課程設(shè)計(jì)報(bào)告書,能正確闡述設(shè)計(jì)和實(shí)驗(yàn)結(jié)果。(4)學(xué)生應(yīng)抱著嚴(yán)謹(jǐn)認(rèn)真的態(tài)度積極投
2、入到課程設(shè)計(jì)過(guò)程中,認(rèn)真查閱相應(yīng) 文獻(xiàn)以及實(shí)現(xiàn),給出個(gè)人分析、設(shè)計(jì)以及實(shí)現(xiàn)。應(yīng)當(dāng)提交的文件:(1)課程設(shè)計(jì)報(bào)告。(2)課程設(shè)計(jì)附件(主要是源程序)。 課程設(shè)計(jì)成績(jī)?cè)u(píng)定學(xué) 院 計(jì)算機(jī)通信工程 專 業(yè) 網(wǎng)絡(luò)工程 班 級(jí) 網(wǎng)絡(luò)08-02 班 學(xué) 號(hào) 200858080223 學(xué)生姓名 郭祥斌 指導(dǎo)教師 陳沅濤 課程成績(jī) 完成日期 2010年12月31日指導(dǎo)教師對(duì)學(xué)生在課程設(shè)計(jì)中的評(píng)價(jià)評(píng)分項(xiàng)目?jī)?yōu)良中及格不及格課程設(shè)計(jì)中的創(chuàng)造性成果學(xué)生掌握課程內(nèi)容的程度課程設(shè)計(jì)完成情況課程設(shè)計(jì)動(dòng)手能力文字表達(dá)學(xué)習(xí)態(tài)度規(guī)范要求課程設(shè)計(jì)論文的質(zhì)量指導(dǎo)教師對(duì)課程設(shè)計(jì)的評(píng)定意見(jiàn)綜合成績(jī) 指導(dǎo)教師簽字 年 月 日基于Verilo
3、g HDL數(shù)字頻率計(jì)設(shè)計(jì)與實(shí)現(xiàn)學(xué)生:郭祥斌 指導(dǎo)老師:陳沅濤摘 要: 在電子技術(shù)中,頻率是最基本的參數(shù)之一,并且與許多電參量的測(cè)量方案、測(cè)量結(jié)果都有十分密切的關(guān)系,因此頻率的測(cè)量就顯得更為重要。測(cè)量頻率的方法有多種,其中電子計(jì)數(shù)器測(cè)量頻率具有精度高、使用方便、測(cè)量迅速,以及便于實(shí)現(xiàn)測(cè)量過(guò)程自動(dòng)化等優(yōu)點(diǎn),是頻率測(cè)量的重要手段之一。電子計(jì)數(shù)器測(cè)頻有兩種方式:一是直接測(cè)頻法,即在一定閘門時(shí)間內(nèi)測(cè)量被測(cè)信號(hào)的脈沖個(gè)數(shù);二是間接測(cè)頻法,如周期測(cè)頻法。直接測(cè)頻法適用于高頻信號(hào)的頻率測(cè)量,間接測(cè)頻法適用于低頻信號(hào)的頻率測(cè)量。本文闡述了用Verilog HDL語(yǔ)言設(shè)計(jì)了一個(gè)簡(jiǎn)單的數(shù)字頻率計(jì)的過(guò)程關(guān)鍵詞:周期;
4、EDA;Verilog HDL;數(shù)字頻率計(jì);波形仿真目錄1 引 言61.1 數(shù)字頻率計(jì)概述71.2 頻率測(cè)量的思想和方法72 Verilog HDL簡(jiǎn)介102.1 Verilog HDL的簡(jiǎn)介103 數(shù)字頻率計(jì)系統(tǒng)框圖113.1數(shù)字頻率計(jì)系統(tǒng)框圖113.2數(shù)字頻率計(jì)系統(tǒng)部件簡(jiǎn)介114 基于Verilog HDL數(shù)字頻率計(jì)程序設(shè)計(jì)124.1數(shù)字頻率計(jì)系統(tǒng)模塊劃分結(jié)構(gòu)124.2計(jì)數(shù)模塊counter134.3門控模塊gate_control164.4分頻模塊fdiv194.5 寄存器模塊flip_latch214.6 多路選擇模塊data_mux234.7 動(dòng)態(tài)位選模塊dispselect244.
5、8 BCD譯碼模塊dispdecoder264.9 頂層電路top295 總結(jié)32參考文獻(xiàn)331 引 言 在電子測(cè)量領(lǐng)域中,頻率測(cè)量的精確度是最高的,可達(dá)1010E-13數(shù)量級(jí)。因此,在生產(chǎn)過(guò)程中許多物理量,例如溫度、壓力、流量、液位、PH值、振動(dòng)、位移、速度、加速度,乃至各種氣體的百分比成分等均用傳感器轉(zhuǎn)換成信號(hào)頻率,然后用數(shù)字頻率計(jì)來(lái)測(cè)量,以提高精確度。 國(guó)際上數(shù)字頻率計(jì)的分類很多。按功能分類,測(cè)量某種單一功能的計(jì)數(shù)器。如頻率計(jì)數(shù)器,只能專門用來(lái)測(cè)量高頻和微波頻率;時(shí)間計(jì)數(shù)器,是以測(cè)量時(shí)間為基礎(chǔ)的計(jì)數(shù)器,其測(cè)時(shí)分辨力和準(zhǔn)確度很高,可達(dá)ns數(shù)量級(jí);特種計(jì)數(shù)器,它具有特種功能,如可逆計(jì)數(shù)器、予
6、置計(jì)數(shù)器、差值計(jì)數(shù)器、倒數(shù)計(jì)數(shù)器等,用于工業(yè)和白控技術(shù)等方面。數(shù)字頻率計(jì)按頻段分類 (1)低速計(jì)數(shù)器:最高計(jì)數(shù)頻率10MHz; (2)中速計(jì)數(shù)器:最高計(jì)數(shù)頻率10100MHz; (3)高速計(jì)數(shù)器:最高計(jì)數(shù)頻率100MHz; (4)微波頻率計(jì)數(shù)器:測(cè)頻范圍180GHz或更高。單片機(jī)自問(wèn)世以來(lái),性能不斷提高和完善,其資源又能滿足很多應(yīng)用場(chǎng)合的需要,加之單片機(jī)具有集成度高、功能強(qiáng)、速度快、體積小、功耗低、使用方便、價(jià)格低廉等特點(diǎn),因此,在工業(yè)控制、智能儀器儀表、數(shù)據(jù)采集和處理、通信系統(tǒng)、高級(jí)計(jì)算器、家用電器等領(lǐng)域的應(yīng)用日益廣泛,并且正在逐步取代現(xiàn)有的多片微機(jī)應(yīng)用系統(tǒng)。單片機(jī)的潛力越來(lái)越被人們所重視。
7、特別是當(dāng)前用CMOS工藝制成的各種單片機(jī),由于功耗低,使用的溫度范圍大,抗干擾能力強(qiáng)、能滿足一些特殊要求的應(yīng)用場(chǎng)合,更加擴(kuò)大了單片機(jī)的應(yīng)用范圍,也進(jìn)一步促使單片機(jī)性能的發(fā)展。1.1 數(shù)字頻率計(jì)概述 頻率計(jì)的基本原理是用一個(gè)頻率穩(wěn)定度高的頻率源作為基準(zhǔn)時(shí)鐘,對(duì)比測(cè)量其他信號(hào)的頻率。通常情況下計(jì)算每秒內(nèi)待測(cè)信號(hào)的脈沖個(gè)數(shù),此時(shí)我們稱閘門時(shí)間為1秒。閘門時(shí)間也可以大于或小于一秒。閘門時(shí)間越長(zhǎng),得到的頻率值就越準(zhǔn)確,但閘門時(shí)間越長(zhǎng)則每測(cè)一次頻率的間隔就越長(zhǎng)。閘門時(shí)間越短,測(cè)的頻率值刷新就越快,但測(cè)得的頻率精度就受影響。本文數(shù)字頻率計(jì)是用數(shù)字顯示被測(cè)信號(hào)頻率的儀器,被測(cè)信號(hào)可以是正弦波,方波或其它周期性
8、變化的信號(hào)。如配以適當(dāng)?shù)膫鞲衅鳎梢詫?duì)多種物理量進(jìn)行測(cè)試,比如機(jī)械振動(dòng)的頻率,轉(zhuǎn)速,聲音的頻率以及產(chǎn)品的計(jì)件等等。因此,數(shù)字頻率計(jì)是一種應(yīng)用很廣泛的儀器 電子系統(tǒng)非常廣泛的應(yīng)用領(lǐng)域內(nèi),到處可見(jiàn)到處理離散信息的數(shù)字電路。數(shù)字電路制造工業(yè)的進(jìn)步,使得系統(tǒng)設(shè)計(jì)人員能在更小的空間內(nèi)實(shí)現(xiàn)更多的功能,從而提高系統(tǒng)可靠性和速度。 集成電路的類型很多,從大的方面可以分為模擬電路和數(shù)字集成電路2大類。數(shù)字集成電路廣泛用于計(jì)算機(jī)、控制與測(cè)量系統(tǒng),以及其它電子設(shè)備中。一般說(shuō)來(lái),數(shù)字系統(tǒng)中運(yùn)行的電信號(hào),其大小往往并不改變,但在實(shí)踐分布上卻有著嚴(yán)格的要求,這是數(shù)字電路的一個(gè)特點(diǎn)。數(shù)字集成電路作為電子技術(shù)最重要的基礎(chǔ)產(chǎn)品
9、之一,已廣泛地深入到各個(gè)應(yīng)用領(lǐng)域 1.2 頻率測(cè)量的思想和方法1頻率測(cè)量的基本思想測(cè)量被測(cè)信號(hào)在單位時(shí)間內(nèi)的脈沖個(gè)數(shù),其數(shù)字表達(dá)式f = N / t 其中: f為被測(cè)信號(hào)的頻率 N為脈沖的個(gè)數(shù) t為被測(cè)信號(hào)產(chǎn)生N個(gè)脈沖所需的時(shí)間2 頻率測(cè)量方法 直接測(cè)量法:直接測(cè)量被測(cè)信號(hào)的頻率,通過(guò)計(jì)數(shù)法來(lái)對(duì)被測(cè)信號(hào)在一定時(shí)間內(nèi)的脈沖個(gè)數(shù)進(jìn)行計(jì)數(shù)。直接測(cè)量法的結(jié)構(gòu)框圖如圖所示。被測(cè)信號(hào) 測(cè)量結(jié)果計(jì) 數(shù)放大整形標(biāo)準(zhǔn)時(shí)鐘分 頻圖 直接測(cè)量法的結(jié)構(gòu)框圖3 誤差來(lái)源 技術(shù)過(guò)程中最大存在著±1個(gè)字的量化誤差 對(duì)時(shí)間t的準(zhǔn)確把握,主要包括準(zhǔn)時(shí)鐘的時(shí)間準(zhǔn)確性、整形電路、分頻電路以及技術(shù)時(shí)間控制閘門的開(kāi)關(guān)速度等因
10、素。直接法測(cè)量的最大相對(duì)誤差可以表達(dá)為( df/f )max=±( |1/N| + |G| )=±( |1/ft| + |G| ) 其中: N為脈沖的個(gè)數(shù),G為標(biāo)準(zhǔn)時(shí)鐘的頻率穩(wěn)定性,f為被測(cè)信號(hào)頻率,t為被測(cè)信號(hào)產(chǎn)生N個(gè)脈沖所需的時(shí)間。4 功能及技術(shù)指標(biāo) 頻率測(cè)量范圍: 10Hz 100MHz 測(cè)量分辨率: 1Hz 測(cè)量通道靈敏度: 50mVpp 通道輸入阻抗:不小于100k 測(cè)量誤差:±1 測(cè)量結(jié)果顯示:6位數(shù)碼管顯示該數(shù)字頻率計(jì)的操作面板如圖所示圖 簡(jiǎn)易數(shù)字頻率計(jì)的操作面板其中,被測(cè)信號(hào)可以有三種,分別是方波、三角波和正弦波;測(cè)量結(jié)果顯示采用六個(gè)數(shù)碼管來(lái)顯示;
11、量程分為三個(gè),分別為:0999999Hz、09999.99kHz、099.9999MHz2 Verilog HDL簡(jiǎn)介2.1 Verilog HDL的簡(jiǎn)介 Verilog HDL是一種硬件描述語(yǔ)言(hardware description language),為了制作數(shù)位電路(數(shù)字電路)而用來(lái)描述ASICs和FPGAs的設(shè)計(jì)之用。Verilog 的設(shè)計(jì)者想要以 C 程序語(yǔ)言(en:C programming language)為基礎(chǔ)設(shè)計(jì)一種語(yǔ)言,可以使工程師比較熟悉跟容易接受。事實(shí)上,它產(chǎn)生與 C 程序語(yǔ)言類似的不嚴(yán)謹(jǐn)性質(zhì),并且大概與Pascal很相像。 這種語(yǔ)言跟傳統(tǒng)的程序設(shè)計(jì)語(yǔ)言不同,在于
12、它的程序敘述并非嚴(yán)格地線性(循序)執(zhí)行。Verilog 模式包含不同模組(modules)的階層關(guān)系。模組(modules)是輸出(inputs)和輸入(outputs)所定義出來(lái)的一個(gè)集合。在每個(gè)模組中,有一串的電線(wires)、暫存器(registers)和子模組(submodules)的定義。并且在每個(gè)模組里面,語(yǔ)言敘述大部分都被群組成為各種的執(zhí)行區(qū)塊(blocks),用來(lái)定義該模組所產(chǎn)生的行為描述。在每個(gè)區(qū)塊(blocks)內(nèi),使用 begin 和 end 的關(guān)鍵字來(lái)區(qū)隔開(kāi)來(lái),其中的敘述是循序被執(zhí)行。但是同一個(gè)設(shè)計(jì),不同的區(qū)塊間的執(zhí)行是平行的。 這個(gè)語(yǔ)言的敘述之子集合是可合成(syn
13、thesizable)。如果在一個(gè)電路設(shè)計(jì)的模組中僅包含可合成的敘述,那麼這個(gè)電路設(shè)計(jì)就可以被適當(dāng)?shù)能浖?轉(zhuǎn)換合成為電腦芯片的電路layout。3 數(shù)字頻率計(jì)系統(tǒng)框圖3.1數(shù)字頻率計(jì)系統(tǒng)框圖設(shè)計(jì)如圖所示的數(shù)字頻率計(jì)系統(tǒng)電路框圖圖 所示的數(shù)字頻率計(jì)系統(tǒng)電路框圖3.2數(shù)字頻率計(jì)系統(tǒng)部件簡(jiǎn)介1. 放大整形 數(shù)字頻率計(jì)允許測(cè)量信號(hào)的類型有三種:方波、三角波和正弦波,并且信號(hào)的測(cè)量通道靈敏度為 50mVpp,為此,需要將被測(cè)信號(hào)放大整形成標(biāo)準(zhǔn)的TTL電平的方波型號(hào),便于CPLD/FPGA對(duì)信號(hào)脈沖的計(jì)數(shù)。 2. SW1、SW2、SW3按鍵SW1、SW2、SW3這三個(gè)按鍵用來(lái)在測(cè)量的時(shí)候,用戶根據(jù)被測(cè)信號(hào)
14、的大致頻率范圍選擇不同的適合被測(cè)信號(hào)的量程。在按鍵的設(shè)計(jì)中,需要考慮實(shí)際按鍵的消抖問(wèn)題3. 標(biāo)準(zhǔn)時(shí)鐘 標(biāo)準(zhǔn)時(shí)鐘為頻率計(jì)測(cè)量提供精度相對(duì)比較高的時(shí)基信號(hào),其時(shí)間的穩(wěn)定性與精度將會(huì)直接影響到頻率計(jì)測(cè)量的準(zhǔn)確性。4. LED顯示模塊 頻率計(jì)將測(cè)量的結(jié)果通過(guò)6位數(shù)碼管(LED)來(lái)顯示。4 基于Verilog HDL數(shù)字頻率計(jì)程序設(shè)計(jì)4.1數(shù)字頻率計(jì)系統(tǒng)模塊劃分結(jié)構(gòu)數(shù)字頻率計(jì)中的CPLD/FPGA是頻率計(jì)的核心,主要實(shí)現(xiàn)在一定時(shí)間內(nèi),對(duì)被測(cè)信號(hào)的脈沖個(gè)數(shù)進(jìn)行計(jì)算,并且轉(zhuǎn)化為相應(yīng)的頻率值顯示在六個(gè)數(shù)碼管上。首先將系統(tǒng)分成七個(gè)模塊來(lái)分別設(shè)計(jì)仿真。分別有以下七個(gè)模塊:經(jīng)過(guò)上述模塊化劃分后的結(jié)構(gòu)框如圖4.1所示
15、圖4.1 模塊化劃分后的結(jié)構(gòu) 計(jì)數(shù)模塊counter:對(duì)包含被測(cè)信號(hào)頻率信息的脈沖進(jìn)行計(jì)數(shù) 門控模塊gate_control:根據(jù)量程,控制技術(shù)模塊計(jì)數(shù)。 分頻模塊fdiv:將標(biāo)準(zhǔn)時(shí)鐘分頻,得到計(jì)數(shù)以及動(dòng)態(tài)顯示所需的時(shí)鐘。 寄存器模塊flip_latch:對(duì)計(jì)數(shù)模塊的計(jì)數(shù)值進(jìn)行寄存。 多路選擇模塊data_mux:根據(jù)動(dòng)態(tài)選擇信號(hào),選擇相應(yīng)的需要顯示的計(jì)數(shù)值 動(dòng)態(tài)為選擇模塊dispselevt:輸出動(dòng)態(tài)顯示中的位選信號(hào) BCD譯碼模塊dispdenoder:將BCD碼譯成數(shù)碼管的顯示數(shù)據(jù)4.2計(jì)數(shù)模塊counter該模塊主要完成對(duì)被測(cè)信號(hào)經(jīng)過(guò)放大整形后輸入到可編程邏輯器件的F_IN信號(hào)是現(xiàn)在一
16、定的時(shí)間下的計(jì)數(shù),采用六個(gè)異步BCD碼十進(jìn)制計(jì)數(shù)器來(lái)實(shí)現(xiàn) 0999999范圍的計(jì)數(shù)。計(jì)數(shù)模塊的結(jié)構(gòu)框圖如圖所示。圖 計(jì)數(shù)模塊的結(jié)構(gòu)框圖根據(jù)模塊實(shí)現(xiàn)的功能設(shè)計(jì)Verilog HDL源代碼如下:module counter(EN,CLR,F_IN,F_OUT,Q0,Q1,Q2,Q3,Q4,Q5);output 3:0 Q5,Q4,Q3,Q2,Q1,Q0;output F_OUT;input EN;input CLR;input F_IN;reg 3:0 Q5,Q4,Q3,Q2,Q1,Q0;reg F_OUT;reg F_out0,F_out1,F_out2,F_out3,F_out4;always
17、 (posedge F_IN)begin if(EN = 1'b1)&&(CLR = 1'b0)&&(Q0 != 4'b1001) begin Q0 <= Q0 + 4'b0001;F_OUT <= 1'b0; end else beginQ0 <= 4'b0000;if(EN = 1'b1)&&(CLR = 1'b0)&&(Q1 != 4'b1001)begin Q1 <= Q1 + 4'b0001; F_OUT <=
18、1'b0;endelsebegin Q1 <= 4'b0000; if(EN = 1'b1)&&(CLR = 1'b0)&&(Q2 != 4'b1001) begin Q2 <= Q2 + 4'b0001; F_OUT <= 1'b0; end else beginQ2 <= 4'b0000;if(EN = 1'b1)&&(CLR = 1'b0)&&(Q3 != 4'b1001)begin Q3 <= Q3 + 4
19、'b0001; F_OUT <= 1'b0;endelsebegin Q3 <= 4'b0000; if(EN = 1'b1)&&(CLR = 1'b0)&&(Q4 != 4'b1001) begin Q4 <= Q4 + 4'b0001; F_OUT <= 1'b0; end else begin Q4 <= 4'b0000; if(EN = 1'b1)&&(CLR = 1'b0)&&(Q5 != 4'b
20、1001) begin Q5 <= Q5 + 4'b0001; F_OUT <= 1'b0; end else begin Q5 <= 4'b0000; F_OUT <= 1'b1; end end end end end endendEndmodule該模塊定義輸入端口如下: EN:異步BCD碼十進(jìn)制計(jì)數(shù)器的全局使能信號(hào) CLR:異步BCD碼十進(jìn)制計(jì)數(shù)器復(fù)位信號(hào) F_IN:被測(cè)信號(hào)經(jīng)過(guò)放大與整形處理后的信號(hào)該模塊定義輸出端口如下: F_OUT:超出技術(shù)范圍0999999的輸出信號(hào),用來(lái)指示提醒用戶選擇更大的量程。 Q0:計(jì)數(shù)器的最低位輸
21、出 Q1:計(jì)數(shù)器的第5位輸出 Q2:計(jì)數(shù)器的第4位輸出 Q3:計(jì)數(shù)器的第3位輸出 Q4:計(jì)數(shù)器的第2位輸出 Q5:計(jì)數(shù)器的第1位輸出在Altera公司的軟件工具QuartusII中編譯和波形仿真得到波形如圖所示。圖 計(jì)數(shù)模塊counter的仿真波形4.3門控模塊gate_control 門控模塊實(shí)現(xiàn)檢測(cè)外界量程的選擇,并且根據(jù)量程輸出控制6位BCD碼十進(jìn)制計(jì)算器的計(jì)數(shù)時(shí)鐘,以及在測(cè)量完一次信號(hào)頻率后,計(jì)數(shù)器計(jì)數(shù)值清零。計(jì)數(shù)器的清零要與后級(jí)寄存器的鎖存時(shí)刻做很好的時(shí)序配合。應(yīng)該實(shí)在計(jì)數(shù)器測(cè)量完一次信號(hào)頻率后,首先將數(shù)據(jù)鎖存到寄存器,然后再將計(jì)數(shù)器值清零,這樣可以驚醒下一次測(cè)量。門控模塊的結(jié)構(gòu)框圖
22、如圖所示圖 門控模塊結(jié)構(gòu)框圖 根據(jù)模塊實(shí)現(xiàn)的功能設(shè)計(jì)Verilog HDL源代碼如下:module gate_control(SW0,SW1,SW2,f1hz,f10hz,f100hz,Latch_EN,Counter_Clr,Counter_EN,dp_s1hz,dp_s10hz,dp_s100hz); output Latch_EN;output Counter_Clr;output Counter_EN;output dp_s1hz,dp_s10hz,dp_s100hz;input SW0,SW1,SW2;input f1hz,f10hz,f100hz;reg dp_s1hz,dp_s1
23、0hz,dp_s100hz;reg fref;reg wire_1;reg wire_2;/初始化輸入以及中間量initialbegin fref <= 1'b0; wire_1 <= 1'b0; wire_2 <= 1'b0;end/根據(jù)不同的外界量程選擇,選擇相應(yīng)的計(jì)數(shù)基時(shí)鐘always (SW0 or SW1 or SW2 or f1hz or f10hz or f100hz)begin if(SW2 = 1'b1) begin fref <= f100hz; dp_s1hz,dp_s10hz,dp_s100hz <= 3
24、39;b001; end else if(SW1 = 1'b1) begin fref <= f10hz; dp_s1hz,dp_s10hz,dp_s100hz <= 3'b010; end else if(SW0 = 1'b1) begin fref <= f1hz; dp_s1hz,dp_s10hz,dp_s100hz <= 3'b100; endend/根據(jù)不同的計(jì)數(shù)基時(shí)鐘,提供輸出相應(yīng)的計(jì)數(shù)器計(jì)數(shù)值的清除脈沖與鎖存器鎖存脈沖always (posedge fref)begin wire_1 <= ! wire_1;endal
25、ways (negedge fref)begin wire_2 <= wire_1;endassign Counter_EN = wire_1;assign Latch_EN = (! Counter_EN) & wire_2;assign Counter_Clr = (! Counter_EN) & (! Latch_EN) | (! wire_2);endmodule 該模塊定義輸入端如下: SW0、SW1、SW2:量程選擇開(kāi)關(guān) flhz:1Hz的標(biāo)準(zhǔn)時(shí)鐘輸入 fl0hz:10Hz的標(biāo)準(zhǔn)時(shí)鐘輸入 fl00hz:100Hz的標(biāo)準(zhǔn)時(shí)鐘輸入該模塊定義輸入端口如下: Latc
26、h_EN:用來(lái)是能寄存器所存數(shù)據(jù) Counter_Clr:用于計(jì)數(shù)器的清零 Counter_EN:用于使能計(jì)數(shù)器開(kāi)始計(jì)數(shù) dp_s1hz:選擇999999Hz量程時(shí),用于控制顯示中的小數(shù)點(diǎn)位置 dp_s10hz:選擇9999.99Hz量程時(shí),用于控制顯示中的小數(shù)點(diǎn)位置 dp_s100hz:選擇99.9999Hz量程時(shí),用于控制顯示中的小數(shù)點(diǎn)位置在Altera公司的軟件工具QuartusII中編譯和波形仿真得到波形如圖所示。圖 門控模塊的仿真波形4.4分頻模塊fdiv分頻模塊在系統(tǒng)全局時(shí)鐘的驅(qū)動(dòng)下,經(jīng)過(guò)分頻得到系統(tǒng)中所需要的多種頻率成分的時(shí)鐘信號(hào)。分頻模塊的結(jié)構(gòu)框圖如圖所示。圖 分頻模塊結(jié)構(gòu)框圖
27、根據(jù)模塊實(shí)現(xiàn)的功能設(shè)計(jì)Verilog HDL源代碼如下:module fdiv(clk,f1hz,f10hz,f100hz,f1khz);output f1hz,f10hz,f100hz,f1khz;input clk;reg f1hz,f10hz,f100hz,f1khz;integer cnt1=0,cnt2=0,cnt3=0,cnt4=0;always (posedge clk)begin/if(cnt1<9999) /實(shí)際系統(tǒng)分頻值if(cnt1 < 2) /仿真時(shí)的分頻值begin f1khz <= 1'b0;cnt1 = cnt1 + 1;endelseb
28、egin f1khz <= 1'b1; cnt1 = 0;endendalways (posedge f1khz)begin/if(cnt2<9) /實(shí)際系統(tǒng)分頻值if(cnt2 < 2) /仿真時(shí)的分頻值begin f100hz <= 1'b0; cnt2 = cnt2 + 1;endelsebegin f100hz <= 1'b1; cnt2 = 0;endendalways (posedge f100hz)begin/if(cnt3<9) /實(shí)際系統(tǒng)分頻值if(cnt3 < 2) /仿真時(shí)的分頻值begin f10hz &
29、lt;= 1'b0; cnt3 = cnt3 + 1;endelsebegin f10hz <= 1'b1; cnt3 = 0;endendalways (posedge f10hz)begin/if(cnt4<9) /實(shí)際系統(tǒng)分頻值if(cnt4 < 2) /仿真時(shí)的分頻值begin f1hz <= 1'b0; cnt4 = cnt4 + 1;endelsebegin f1hz <= 1'b1; cnt4 = 0;endendendmodule該模塊定義輸入端口如下: Clk:全局系統(tǒng)時(shí)鐘信號(hào)該模塊定義輸出端口如下: F1hz:輸
30、出1Hz的時(shí)鐘信號(hào) F10hz:輸出1Hz的時(shí)鐘信號(hào) F1khz:輸出1Hz的時(shí)鐘信號(hào)在Altera公司的軟件工具QuartusII中編譯和波形仿真得到波形如圖所示。圖 分頻模塊的仿真波形4.5 寄存器模塊flip_latch寄存器模塊實(shí)現(xiàn)每一個(gè)測(cè)量頻率時(shí),計(jì)數(shù)器計(jì)算值的暫時(shí)存儲(chǔ)。寄存器模塊的結(jié)構(gòu)框圖如圖所示。圖 寄存器模塊根據(jù)模塊實(shí)現(xiàn)的功能設(shè)計(jì)Verilog HDL源代碼如下:module flip_latch(clk,A0,A1,A2,A3,A4,A5,Q0,Q1,Q2,Q3,Q4,Q5);output 3:0 Q0,Q1,Q2,Q3,Q4,Q5;input clk;input 3:0 A
31、0,A1,A2,A3,A4,A5;reg 3:0 Q0,Q1,Q2,Q3,Q4,Q5;always (posedge clk)beginQ0 <= A0;Q1 <= A1;Q2 <= A2;Q3 <= A3;Q4 <= A4;Q5 <= A5;endEndmodule該模塊定義輸入端口如下: clk:所存數(shù)據(jù)信號(hào)輸入,當(dāng)clk的上升沿到來(lái)時(shí),寄存器將輸入端信號(hào)鎖存進(jìn)寄存器,并且改變輸出。 A0,A1,A2,A3,A4,A5:寄存器的數(shù)據(jù)輸入端該模塊定義輸出端口如下: Q0,Q1,Q2,Q3,Q4,Q5:寄存器的數(shù)據(jù)輸出端。在Altera公司的軟件工具Quar
32、tusII中編譯和波形仿真得到波形如圖所示。圖 寄存器模塊的仿真波形4.6 多路選擇模塊data_mux多路選擇模塊實(shí)現(xiàn)測(cè)量頻率值的分時(shí)顯示,即動(dòng)態(tài)顯示。經(jīng)過(guò)多路選擇器模塊來(lái)分時(shí)地傳輸數(shù)據(jù)。多路選擇模塊的結(jié)構(gòu)如圖所示。圖 多路選擇模塊結(jié)構(gòu)框圖根據(jù)模塊實(shí)現(xiàn)的功能設(shè)計(jì)Verilog HDL源代碼如下:module data_mux(disp_select,A0,A1,A2,A3,A4,A5,Q);output 3:0 Q;input 2:0disp_select;input 3:0 A0,A1,A2,A3,A4,A5;reg 3:0 Q;always (disp_select,A5,A4,A3,A
33、2,A1,A0,Q)begin case(disp_select) 3'b000: Q <= A5; 3'b001: Q <= A4; 3'b010: Q <= A3; 3'b011: Q <= A2; 3'b100: Q <= A1; 3'b101: Q <= A0; default: Q <= 4'b0; endcaseendEndmodule該模塊定義輸入端口如下: disp_select:選擇信號(hào)輸入 A0,A1,A2,A3,A4,A5:多路選擇模塊的數(shù)據(jù)輸入端口該模塊定義輸出端口如下:
34、多路選擇模塊的數(shù)據(jù)輸出端口。在Altera公司的軟件工具QuartusII中編譯和波形仿真得到波形如圖所示。圖 多路選擇模塊的仿真波形4.7 動(dòng)態(tài)位選模塊dispselect動(dòng)態(tài)位選模塊用來(lái)驅(qū)動(dòng)數(shù)碼動(dòng)態(tài)地顯示頻率測(cè)量數(shù)據(jù),分時(shí)地選擇各個(gè)數(shù)碼管進(jìn)行顯示 動(dòng)態(tài)位選的結(jié)構(gòu)框圖所示。圖 動(dòng)態(tài)位選模塊的結(jié)構(gòu)框圖根據(jù)模塊實(shí)現(xiàn)的功能設(shè)計(jì)Verilog HDL源代碼如下:module dispselect(clk,disp_select,Q);output 5:0 Q;output 2:0 disp_select;input clk;reg 5:0 Q;reg 2:0 disp_select;always (
35、posedge clk)beginif(disp_select < 3'b101)disp_select <= disp_select + 3'b1;elsedisp_select <= 3'b0;case(disp_select) 3'b000: Q <= 6'b100000; 3'b001: Q <= 6'b010000; 3'b010: Q <= 6'b001000; 3'b011: Q <= 6'b000100; 3'b100: Q <= 6&
36、#39;b000010; 3'b101: Q <= 6'b000001; default: Q <= 6'b000000; endcaseendendmodule該模塊定義輸入端口如下: clk:動(dòng)態(tài)位選的時(shí)鐘信號(hào)輸入,一般取1KHz左右的標(biāo)準(zhǔn)時(shí)鐘。該模塊定義輸出端口如下: disp_select:動(dòng)態(tài)位選中間量輸出,用于與系統(tǒng)中其他模塊之間的同步。 Q:動(dòng)態(tài)位選信號(hào)輸出,可以直接接到數(shù)碼管的公共端。在Altera公司的軟件工具QuartusII中編譯和波形仿真得到波形如圖所示。圖 動(dòng)態(tài)位選模塊的仿真波形4.8 BCD譯碼模塊dispdecoderBCD譯碼
37、模塊主要實(shí)現(xiàn)BCD碼到7段數(shù)碼管顯示碼字段的轉(zhuǎn)換,同時(shí),考慮到頻率測(cè)量中的一些“零”的處理,比如選擇量程1999999Hz,但被測(cè)信號(hào)頻率為100Hz,這樣在顯示的時(shí)候就需要將6為數(shù)碼管的前三位屏蔽。BCD譯碼模塊的結(jié)構(gòu)框圖如圖所示。圖 BCD譯碼模塊的結(jié)構(gòu)框圖根據(jù)模塊實(shí)現(xiàn)的功能設(shè)計(jì)Verilog HDL源代碼如下:module dispdecoder(data_in,disp_select,dp_s1hz,dp_s10hz,dp_s100hz,Q5,Q4,Q3,Q2,Q1,Q0,counter_out,data_out,dp);output 6:0 data_out;output dp;in
38、put 3:0 data_in;input 2:0 disp_select;input dp_s1hz,dp_s10hz,dp_s100hz;input 3:0 Q5,Q4,Q3,Q2,Q1,Q0;input counter_out;reg dp;reg 6:0 data_out;reg hide;initial begin dp <= 1'b0; hide <= 1'b0;end/譯碼顯示數(shù)據(jù)always (data_in,hide,data_out)begin if(hide = 1'b0) begincase(data_in) 4'b0000
39、: data_out <= 7'b1111110; /04'b0001 : data_out <= 7'b0110000; /14'b0010 : data_out <= 7'b1101101; /24'b0011 : data_out <= 7'b1111001; /34'b0100 : data_out <= 7'b0110011; /44'b0101 : data_out <= 7'b1011011; /54'b0110 : data_out <= 7
40、'b1011111; /64'b0111 : data_out <= 7'b1110000; /74'b1000 : data_out <= 7'b1111111; /84'b1001 : data_out <= 7'b1110011; /9default : data_out <= 7'b0000000;endcase endend/小數(shù)點(diǎn)位置與零數(shù)字的處理always (disp_select,dp_s1hz,dp_s10hz,dp_s100hz, Q5,Q4,Q3,Q2,Q1,counter_out,
41、dp,hide)begin if (disp_select = 3'b001) && (dp_s100hz = 1'b1)| (disp_select = 3'b011) && (dp_s10hz = 1'b1)| (disp_select = 3'b101) && (dp_s1hz = 1'b1) dp <= 1'b1; else dp <= 1'b0; case(disp_select) 3'b000: begin if(counter_out = 1'
42、;b0) && (Q5 = 4'b0) hide <= 1'b1; else hide <= 1'b0; end 3'b001: begin if(counter_out = 1'b0) && (Q5 = 4'b0) && (Q4 = 4'b0) &&(dp_s100hz != 1'b1) hide <= 1'b1; else hide <= 1'b0; end 3'b010: begin if(counter_out
43、= 1'b0) && (Q5 = 4'b0) && (Q4 = 4'b0) && (Q3 = 4'b0) && (dp_s100hz != 1'b1) hide <= 1'b1; else hide <= 1'b0; end 3'b011: begin if(counter_out = 1'b0) && (Q5 = 4'b0) && (Q4 = 4'b0) && (Q3 = 4'
44、;b0) && (Q2 = 4'b0) && (dp_s100hz != 1'b1)&& (dp_s10hz != 1'b1) hide <= 1'b1; else hide <= 1'b0; end 3'b100: begin if(counter_out = 1'b0) && (Q5 = 4'b0) && (Q4 = 4'b0) && (Q3 = 4'b0) && (Q2 = 4'
45、b0) && (Q1 = 4'b0) && (dp_s100hz != 1'b1)&& (dp_s10hz != 1'b1) hide <= 1'b1; else hide <= 1'b0; end default: hide <= 1'b0; endcaseendendmodule該模塊定義輸入端口如下: data_in:BCD碼字輸入信號(hào) disp_select:來(lái)自動(dòng)態(tài)顯示位模塊,實(shí)現(xiàn)兩者之間的同步 dp_s1hz,dp_s10hz,dp_s100hz:輸入小數(shù)點(diǎn)位置控制信號(hào)
46、來(lái)自門控模塊 Q5,Q4,Q3,Q2,Q1,Q0:計(jì)數(shù)器的計(jì)數(shù)值輸入,用來(lái)控制“零”顯示控制 counter_out:計(jì)數(shù)器計(jì)數(shù)溢出信號(hào),用來(lái)提示用戶更換更大量程該模塊定義輸出端口如下: data_out:經(jīng)過(guò)譯碼后的7段數(shù)碼管顯示數(shù)據(jù)輸出,可以直接連接到數(shù)碼管的數(shù)據(jù)端口 dp:小數(shù)點(diǎn)控制信號(hào)在Altera公司的軟件工具QuartusII中編譯和波形仿真得到波形如圖所示。圖 BCD譯碼模塊的仿真波形4.9 頂層電路top在設(shè)計(jì)完各個(gè)模塊后,需要將各個(gè)模塊有機(jī)地組合成一個(gè)整體,最后來(lái)實(shí)現(xiàn)系統(tǒng)的功能。在數(shù)字頻率計(jì)中,同時(shí)采用了電路原理圖示的設(shè)計(jì)以及Verilog HDL語(yǔ)言來(lái)編寫的頂層電路,其中頂
47、層如圖所示。圖 頂層電路top用Verilog HDL語(yǔ)言描述如下:module main(Clock,SW2,SW1,SW0,F_in,over_alarm,dp,disp_data,disp_select);inputClock;inputSW2;inputSW1;inputSW0;inputF_in;outputover_alarm;outputdp;output6:0 disp_data;output5:0 disp_select;wireSYNTHESIZED_WIRE_0;wireSYNTHESIZED_WIRE_1;wireSYNTHESIZED_WIRE_2;wire3:0 S
48、YNTHESIZED_WIRE_32;wire3:0 SYNTHESIZED_WIRE_33;wire3:0 SYNTHESIZED_WIRE_34;wire3:0 SYNTHESIZED_WIRE_35;wire3:0 SYNTHESIZED_WIRE_36;wire3:0 SYNTHESIZED_WIRE_37;wireSYNTHESIZED_WIRE_9;wireSYNTHESIZED_WIRE_10;wireSYNTHESIZED_WIRE_11;wireSYNTHESIZED_WIRE_12;wireSYNTHESIZED_WIRE_13;wireSYNTHESIZED_WIRE_1
49、4;wireSYNTHESIZED_WIRE_15;wire3:0 SYNTHESIZED_WIRE_16;wire2:0 SYNTHESIZED_WIRE_38;wireSYNTHESIZED_WIRE_24;wire3:0 SYNTHESIZED_WIRE_25;wire3:0 SYNTHESIZED_WIRE_26;wire3:0 SYNTHESIZED_WIRE_27;wire3:0 SYNTHESIZED_WIRE_28;wire3:0 SYNTHESIZED_WIRE_29;wire3:0 SYNTHESIZED_WIRE_30;assignover_alarm = SYNTHES
50、IZED_WIRE_15;counterb2v_inst(.EN(SYNTHESIZED_WIRE_0),.CLR(SYNTHESIZED_WIRE_1),.F_IN(F_in),.F_OUT(SYNTHESIZED_WIRE_15),.Q0(SYNTHESIZED_WIRE_32),.Q1(SYNTHESIZED_WIRE_33),.Q2(SYNTHESIZED_WIRE_34),.Q3(SYNTHESIZED_WIRE_35),.Q4(SYNTHESIZED_WIRE_36),.Q5(SYNTHESIZED_WIRE_37)fdivb2v_inst1(.clk(Clock),.f1hz(S
51、YNTHESIZED_WIRE_9),.f10hz(SYNTHESIZED_WIRE_10),.f100hz(SYNTHESIZED_WIRE_11),.f1khz(SYNTHESIZED_WIRE_24);flip_latchb2v_inst2(.clk(SYNTHESIZED_WIRE_2),.A0(SYNTHESIZED_WIRE_32),.A1(SYNTHESIZED_WIRE_33),.A2(SYNTHESIZED_WIRE_34),.A3(SYNTHESIZED_WIRE_35),.A4(SYNTHESIZED_WIRE_36),.A5(SYNTHESIZED_WIRE_37),.
52、Q0(SYNTHESIZED_WIRE_25),.Q1(SYNTHESIZED_WIRE_26),.Q2(SYNTHESIZED_WIRE_27),.Q3(SYNTHESIZED_WIRE_28),.Q4(SYNTHESIZED_WIRE_29),.Q5(SYNTHESIZED_WIRE_30);gate_controlb2v_inst3(.SW0(SW0),.SW1(SW1),.SW2(SW2),.f1hz(SYNTHESIZED_WIRE_9),.f10hz(SYNTHESIZED_WIRE_10),.f100hz(SYNTHESIZED_WIRE_11),.Latch_EN(SYNTHESIZED_WIRE_2),.Counter_Clr(SYNTHESIZED_WIRE_1),.Counter_EN(SYNTHESIZED_WIRE_0),.dp_s1hz(SYNTHESIZED_WIRE_12),.dp_s10hz(SYNTHESIZED_WIRE_13),.dp_s100hz(SY
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 公司單位授權(quán)委托書模板3篇
- 勞動(dòng)合同變更書3篇
- 學(xué)生年度工作計(jì)劃(9篇)
- 墊資建設(shè)合同3篇
- 工地圍擋施工合同爭(zhēng)議解決3篇
- 土地交易中介協(xié)議書3篇
- 快速辦理發(fā)票委托書步驟一覽無(wú)余3篇
- 幼兒園實(shí)習(xí)老師協(xié)議3篇
- 廉租房出售協(xié)議樣式3篇
- 供電委托示例3篇
- 2025屆山東省濟(jì)南市歷下區(qū)中考二模生物試題含解析
- 創(chuàng)意美術(shù)網(wǎng)絡(luò)安全課件
- 上海電信2025年度智慧城市合作協(xié)議2篇
- 2024燃煤發(fā)電企業(yè)安全生產(chǎn)標(biāo)準(zhǔn)化達(dá)標(biāo)評(píng)級(jí)標(biāo)準(zhǔn)
- 產(chǎn)前檢查婦產(chǎn)科教學(xué)課件
- 氣球婚禮派對(duì)合同范例
- 2024無(wú)人機(jī)測(cè)評(píng)規(guī)范
- 術(shù)中停電應(yīng)急預(yù)案
- 【高分復(fù)習(xí)筆記】許莉婭《個(gè)案工作》(第2版)筆記和課后習(xí)題詳解
- GB/T 22517.5-2024體育場(chǎng)地使用要求及檢驗(yàn)方法第5部分:足球場(chǎng)地
- 幼兒園的社會(huì)交往能力
評(píng)論
0/150
提交評(píng)論