EDA課程設(shè)計(jì)-數(shù)字頻率計(jì)_第1頁
EDA課程設(shè)計(jì)-數(shù)字頻率計(jì)_第2頁
EDA課程設(shè)計(jì)-數(shù)字頻率計(jì)_第3頁
EDA課程設(shè)計(jì)-數(shù)字頻率計(jì)_第4頁
EDA課程設(shè)計(jì)-數(shù)字頻率計(jì)_第5頁
已閱讀5頁,還剩21頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、摘要 數(shù)字頻率計(jì)是直接用十進(jìn)制數(shù)字來顯示被測信號頻率的一種測量裝置。它不僅可以測量正弦波、方波、三角波、尖脈沖信號和其他具有周期特性的信號的頻率,而且還可以測量它們的周期。經(jīng)過改裝,可以測量脈沖寬度,做成數(shù)字式脈寬測量儀;可以測量電容做成數(shù)字式電容測量儀;在電路中增加傳感器,還可以做成數(shù)字脈搏儀、計(jì)價器等。因此數(shù)字頻率計(jì)在測量物理量方面應(yīng)用廣泛。本設(shè)計(jì)用VHDL在CPLD器件上實(shí)現(xiàn)數(shù)字頻率計(jì)測頻系統(tǒng),能夠用十進(jìn)制數(shù)碼顯示被測信號的頻率,能夠測量正弦波、方波和三角波等信號的頻率,而且還能對其他多種物理量進(jìn)行測量。具有體積小、可靠性高、功耗低的特點(diǎn)。數(shù)字頻率計(jì)是計(jì)算機(jī)、通訊設(shè)備、音頻視頻等科研生產(chǎn)

2、領(lǐng)域不可缺少的測量儀器。采用VDHL編程設(shè)計(jì)實(shí)現(xiàn)的數(shù)字頻率計(jì),除被測信號的整形部分、鍵輸入部分和數(shù)碼顯示部分以外,其余全部在一片F(xiàn)PGA芯片上實(shí)現(xiàn),整個系統(tǒng)非常精簡,而且具有靈活的現(xiàn)場可更改性。在不更改硬件電路的基礎(chǔ)上,對系統(tǒng)進(jìn)行各種改進(jìn)還可以進(jìn)一步提高系統(tǒng)的性能。該數(shù)字頻率計(jì)具有高速、精確、可靠、抗干擾性強(qiáng)和現(xiàn)場可編程等優(yōu)點(diǎn)。關(guān)鍵詞:FPGA芯片、VHDL語言、數(shù)字頻率計(jì)、數(shù)字頻率計(jì)原理圖、EDA技術(shù)AbstractDigital cymometer is to directly show to be measured a kind of diagraph of signal frequen

3、cy to equip with the decimal system number.It not only can measure sine wave, square wave, triangle wave, sharp pulse signal and other have a period of the frequency of the signal of characteristic, and can also measure their periods.Has been refitted, can measure pulse width, make into the number t

4、ype vein breadth to measure an instrument;Can measure electric capacity to make into a number type the electric capacity measure an instrument;Increase to spread a feeling machine in the electric circuit, can also make into a number pulse instrument, account a price machine etc.Therefore the digital

5、 cymometer accounts in the diagraph physics to measure aspect applied extensive.This design is used VHDL the spare part is at CPLD up carry out digital cymometer to account to measure repeatedly system, can show to be measured the frequency of signal with the decimal system figures, can measure the

6、frequency of sine wave, square wave and triangle wave etc. signal, and return an ability as to its he various physical quantity carry on diagraph.Have the physical volume small and dependable sex Gao and achievement to consume a low characteristics.digital cymometer is the diagraph instrument of res

7、earch production realm indispensabilities, such as calculator, communication equipments and audio frequency video frequency.etc.The digital cymometer that adopts VDHL to weave a distance to design a realization accounts, in addition to is measured the orthopedics of signal part, the key importation

8、part and figures show part, rest all in one FPGA realization of chip, the whole system simplifies very much, and has vivid spot to change sex.On the foundation that doesnt change hardware electric circuit, carries on various function that the improvement can also raise system further to the system.T

9、he numbers frequency accounts to have high speed, precision, credibility, the anti- interference is strong and the spot programmable etc. advantage.Key words: The FPGA chip, VHDL language and digital cymometer, the digital cymometer account principle diagram ,EDA technique目錄引言1技術(shù)性能指標(biāo)及分工2第1章 頻率計(jì)的設(shè)計(jì)背景

10、及原理31.1 設(shè)計(jì)背景31.2 設(shè)計(jì)原理31.2.1 頻率計(jì)設(shè)計(jì)原理31.2.2 原理框圖41.3 設(shè)計(jì)思路5第2章 頻率計(jì)測量頻率的層次化設(shè)計(jì)方案62.1頻率產(chǎn)生器62.2測頻控制信號發(fā)生器72.3十進(jìn)制計(jì)數(shù)器92.4 24位鎖存器112.5 數(shù)碼管控制器122.6 譯碼器142.7元件聲明及例化16總結(jié)20心得體會21參考文獻(xiàn)22附錄23引言所謂頻率,就是周期性信號在單位時間(1s)里變化的次數(shù)。本頻率計(jì)設(shè)計(jì)測量頻率的基本原理是,首先讓被測信號與標(biāo)準(zhǔn)信號一起通過一個閘門,然后用計(jì)數(shù)器計(jì)數(shù)信號脈沖的個數(shù),把標(biāo)準(zhǔn)時間內(nèi)的計(jì)數(shù)的結(jié)果,用鎖存器鎖存起來,最后用顯示譯碼器,把鎖存的結(jié)果用LED數(shù)碼

11、顯示管顯示出來。根據(jù)數(shù)字頻率計(jì)的基本原理,本設(shè)計(jì)方案分三個模塊來實(shí)現(xiàn)其功能,即整個數(shù)字頻率計(jì)系統(tǒng)分為時基產(chǎn)生與測頻時序控制電路模塊、待測信號脈沖計(jì)數(shù)電路模塊、鎖存與譯碼顯示控制電路模塊等幾個單元,并且分別用VHDL硬件描述語言對其進(jìn)行編程,實(shí)現(xiàn)了控制電路、計(jì)數(shù)電路、鎖存與譯碼顯示電路。技術(shù)性能指標(biāo)及分工1)能夠測量正弦波、三角波、鋸齒波、矩形波等周期性信號的頻率;2)能直接用十進(jìn)制數(shù)字顯示測得的頻率;3)頻率測量范圍:1HZHZ;4)測量時間:T=2.0S;5)用CPLD/FPGA可編程邏輯器件實(shí)現(xiàn);進(jìn)度安排:2011/06/27 集體針對設(shè)計(jì)進(jìn)行分析、討論,確定好分工,明確設(shè)計(jì)進(jìn)度,以及對設(shè)

12、計(jì) 總體上有個了解。 2011/06/28 各組員針對自己的任務(wù),查找相關(guān)資料,完成各自相關(guān)部分。2011/06/29 集體討論,找出一個較佳的方案。06/3007/05 進(jìn)行可行性分析,進(jìn)行程序設(shè)計(jì)及仿真,對有錯或不佳的地方加以改正。07/0607/07 最后分析整理,書寫課程設(shè)計(jì)報(bào)告。2011/07/08 打印相關(guān)圖紙,答辯。分配任務(wù): 郭躍明 上網(wǎng)搜集資料,審核,打??; 李 寶 對資料進(jìn)行初步整理,以備選用,寫論文; 江時文 確定設(shè)計(jì)方案,設(shè)計(jì)程序及仿真。第1章 頻率計(jì)的設(shè)計(jì)背景及原理1.1 設(shè)計(jì)背景隨著數(shù)字電子技術(shù)的發(fā)展,頻率測量成為一項(xiàng)越來越普遍的工作,因此測頻計(jì)常受到人們的青睞。目

13、前許多高精度的數(shù)字頻率計(jì)都采用單片機(jī)加上外部的高速計(jì)數(shù)器來實(shí)現(xiàn),然而單片機(jī)的時鐘頻率不高導(dǎo)致測頻速度比較慢,并且在這種設(shè)計(jì)中,由于PCB版的集成度不高,導(dǎo)致PCB板走線長,因此難以提高計(jì)數(shù)器的工作頻率。為了克服這種缺點(diǎn),大大提高測量精度和速度,我們可以設(shè)計(jì)一種可編程邏輯器件來實(shí)現(xiàn)數(shù)字頻率計(jì)。EDA技術(shù)是以大規(guī)模可編程邏輯器件為設(shè)計(jì)載體,以硬件語言為系統(tǒng)邏輯描述的主要方式,以計(jì)算機(jī)、大規(guī)??删幊踢壿嬈骷拈_發(fā)軟件及實(shí)驗(yàn)開發(fā)系統(tǒng)為設(shè)計(jì)工具,通過有關(guān)的開發(fā)軟件,自動完成用軟件設(shè)計(jì)的電子系統(tǒng)到硬件系統(tǒng)的設(shè)計(jì),最終形成集成電子系統(tǒng)或?qū)S眉尚酒囊婚T新技術(shù)。其設(shè)計(jì)的靈活性使得EDA技術(shù)得以快速發(fā)展和廣泛

14、應(yīng)用。以QUARTUS II軟件為設(shè)計(jì)平臺,采用VHDL語言實(shí)現(xiàn)數(shù)字頻率計(jì)的整體設(shè)計(jì)。伴隨著集成電路(IC)技術(shù)的發(fā)展,電子設(shè)計(jì)自動化(EDA)逐漸成為重要的設(shè)計(jì)手段,已經(jīng)廣泛應(yīng)用于模擬與數(shù)字電路系統(tǒng)等許多領(lǐng)域。電子設(shè)計(jì)自動化是一種實(shí)現(xiàn)電子系統(tǒng)或電子產(chǎn)品自動化設(shè)計(jì)的技術(shù),它與電子技術(shù),微電子技術(shù)的發(fā)展密切相關(guān),它吸收了計(jì)算機(jī)科學(xué)領(lǐng)域的大多數(shù)最新研究成果,以高性能的計(jì)算機(jī)作為工作平臺,促進(jìn)了工程發(fā)展。EDA的一個重要特征就是使用硬件描述語言(HDL)來完成的設(shè)計(jì)文件,VHDL語言是經(jīng)IEEE確認(rèn)的標(biāo)準(zhǔn)硬件語言,在電子設(shè)計(jì)領(lǐng)域受到了廣泛的接受。1.2 設(shè)計(jì)原理1.2.1 頻率計(jì)設(shè)計(jì)原理數(shù)字頻率計(jì)的

15、基本原理是用一個頻率穩(wěn)定度高的頻率源作為基準(zhǔn)時鐘,對比測量其他信號的頻率。通常情況下計(jì)算每秒內(nèi)待測信號的脈沖個數(shù),即閘門時間為1s。閘門時間可以根據(jù)需要取值,大于或小于1s都可以。閘門時間越長,得到的頻率值就越準(zhǔn)確,但閘門時間越長,則每測量一次頻率的間隔就越長。閘門時間越短,測得的頻率值刷新就越快,但測得的頻率精度就受影響。一般取1s作為閘門時間。在電子技術(shù)中,頻率是最基本的參數(shù)之一,并且與許多電參量的測量方案、測量結(jié)果都有十分密切的關(guān)系,因此,頻率的測量就顯得更為重要。測量頻率的方法有多種,其中電子計(jì)數(shù)器測量頻率具有精度高、使用方便、測量迅速,以及便于實(shí)現(xiàn)測量過程自動化等優(yōu)點(diǎn),是頻率測量的重

16、要手段之一。數(shù)字式頻率計(jì)的測量原理有兩類:一是直接測頻法,即在一定閘門時間內(nèi)測量被測信號的脈沖個數(shù);二是間接測頻法即測周期法,如周期測頻法。直接測頻法適用于高頻信號的頻率測量,通常采用計(jì)數(shù)器、數(shù)據(jù)鎖存器及控制電路實(shí)現(xiàn),并通過改變計(jì)數(shù)器閥門的時間長短在達(dá)到不同的測量精度;間接測頻法適用于低頻信號的頻率測量,本設(shè)計(jì)中使用的就是直接測頻法,即用計(jì)數(shù)器在計(jì)算1S內(nèi)輸入信號周期的個數(shù)。數(shù)字頻率計(jì)是數(shù)字電路中的一個典型應(yīng)用,實(shí)際的硬件設(shè)計(jì)用到的器件較多,連線比較復(fù)雜,而且會產(chǎn)生比較大的延時,造成測量誤差、可靠性差。隨著現(xiàn)場可編程門陣列FPGA的廣泛應(yīng)用,以EDA工具作為開發(fā)手段,運(yùn)用VHDL等硬件描述語言

17、語言,將使整個系統(tǒng)大大簡化,提高了系統(tǒng)的整體性能和可靠性。本設(shè)計(jì)中使用的就是直接測頻法,即用計(jì)數(shù)器在計(jì)算1s內(nèi)輸入信號周期的個數(shù),其測頻范圍為1HzHz。1.2.2 原理框圖設(shè)計(jì)的原理框圖如下所示: 圖1 數(shù)字頻率計(jì)原理框圖1.3 設(shè)計(jì)思路 1、通過脈沖轉(zhuǎn)換電路將三角波、鋸齒波、正弦波,矩形波等周期性信號轉(zhuǎn)換成矩形脈沖,本論文中就不涉及這方面的設(shè)計(jì)。矩形脈沖轉(zhuǎn)換原理如圖: 圖2 矩形脈沖生成原理圖2、頻率測量的基本原理是計(jì)算每秒鐘內(nèi)待測信號的轉(zhuǎn)換生成的脈沖個數(shù)。這就要求測頻控制信號發(fā)生器testpl的計(jì)數(shù)使能信號tsten能產(chǎn)生一個1秒脈寬的周期信號,并對頻率計(jì)的每一計(jì)數(shù)器cnt10的使能端e

18、n進(jìn)行同步控制。當(dāng)tsten為高電平1時,允許計(jì)數(shù);為低電平0時停止計(jì)數(shù),并保持其計(jì)數(shù)結(jié)果。在停止計(jì)數(shù)期間,首先需要一個鎖存信號load的上跳沿將計(jì)數(shù)器在前1 秒種的計(jì)數(shù)值鎖存進(jìn)24位鎖存器reg24b中。鎖存信號之后,必須有一個清零信號clr_cnt對計(jì)數(shù)器進(jìn)行清零,為下1 秒的計(jì)數(shù)操作做準(zhǔn)備。然后由外部數(shù)碼管控制器ledcom控制的8段譯碼器ymq譯出,并穩(wěn)定顯示。第2章 頻率計(jì)測量頻率的層次化設(shè)計(jì)方案2.1頻率產(chǎn)生器頻率計(jì)電路工作時先要產(chǎn)生一個計(jì)數(shù)允許信號(即閘門信號),閘門信號的寬度為單位時間,如1S。在閘門信號有效時間內(nèi),對被測信號計(jì)數(shù),即為信號的頻率。該頻率計(jì)電路的精度取決于閘門信

19、號T。本設(shè)計(jì)中選取的基準(zhǔn)信號頻率為40khz,為了得到1s高電平的周期性閘門信號,本設(shè)計(jì)采用對頻率為40khz基準(zhǔn)信號進(jìn)行分頻就能得到1HZ的基準(zhǔn)信號,這樣得到的門閘信號高電平為1秒鐘,處理后可以產(chǎn)生用于測頻所需的計(jì)數(shù)允許、鎖存數(shù)據(jù)和清零三個控制信號。同時產(chǎn)生400HZ的信號來控制數(shù)碼管顯示。library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity lpm_counter0 is port(clock: in std_logic ; clk_div1 : out std_logic; clkq

20、: out std_logic);end lpm_counter0;architecture syn of lpm_counter0 is signal q1,q2 :std_logic;beginprocess(clock) variable cnt1 : integer range 1 to 50; variable cnt2 : integer range 1 to 400; begin if clockevent and clock=1 then if cnt1=50 then cnt1:=1; q1 = not q1; -掃描信號 if cnt2=400 then cnt2:=1;

21、q2 =not q2; else cnt2:=cnt2+1; end if; else cnt1:=cnt1+1; end if; end if; end process; clk_div1 =q1; clkq =q2;end syn;編譯成功后生成元件圖如下:仿真時設(shè)置總時間為4s,對clock引腳輸入設(shè)置成時間信號,周期是25ns,則其頻率為40kHZ。經(jīng)過分頻后產(chǎn)生1HZ的基準(zhǔn)信號,從clkq輸出。仿真波形如圖下圖:2.2測頻控制信號發(fā)生器輸入端clk收到1Hz信號后,其輸出端testen控制各個cnt10的使能,clr_cnt控制各個cnt10的清零,load控制鎖存器內(nèi)數(shù)據(jù)的輸出。l

22、ibrary ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity testpl is port(clk:in std_logic;-1Hz信號 tsten:out std_logic;-計(jì)數(shù)器使能信號 clr_cnt:out std_logic;-計(jì)數(shù)器清零信號 load:out std_logic);-鎖存器輸出控制信號end testpl;architecture art of testpl is signal div2clk:std_logic;begin process(clk) begin i

23、f clkevent and clk=1then div2clk=not div2clk; -div2clk為2Hz end if ; end process; process (clk ,div2clk) begin if( clk=0and div2clk=0)then clr_cnt=1; -當(dāng)div2clk與clk同時為零時計(jì)數(shù)器清零 else clr_cnt=0; -當(dāng)div2clk處于的高電平時計(jì)數(shù)器計(jì)數(shù) end if; end process; load=not div2clk; -鎖存器輸出與計(jì)數(shù)器使能信號反相 tsten=div2clk; end art;編譯成功后生成元件圖

24、如下:從測頻控制信號發(fā)生器模塊的仿真圖,很鮮明的給出了時鐘信號與計(jì)數(shù)允許信號tsten、清零信號clr_cnt和鎖存信號load的關(guān)系,從仿真圖可以看出計(jì)數(shù)允許信號、清零信號和鎖存信號與變量Q之間所存在的相對應(yīng)的關(guān)系。仿真結(jié)果如下圖所示:2.3十進(jìn)制計(jì)數(shù)器有一時鐘使能輸入端en,用于鎖定計(jì)數(shù)值。當(dāng)高電平1時允許計(jì)數(shù)器計(jì)數(shù),低電平0時禁止計(jì)數(shù)。多位十進(jìn)制計(jì)數(shù)器時,最低位的計(jì)數(shù)器的clk端輸入被測信號,各計(jì)數(shù)器的進(jìn)位輸出端c10將信號輸?shù)较乱晃皇M(jìn)制計(jì)數(shù)器cnt10的輸入端clk,最高位十進(jìn)制計(jì)數(shù)器cnt10的進(jìn)位輸出端c10給carry_out,進(jìn)行報(bào)警提示(超出量程)。library ieee

25、;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity cnt10 is port(clk,clr,en: in std_logic; -clk:計(jì)數(shù)器時鐘,clr:清零信號,en:計(jì)數(shù)使能信號 q: out std_logic_vector(3 downto 0);-q:4位計(jì)數(shù)結(jié)果輸出 c10: out std_logic); -計(jì)數(shù)進(jìn)位end cnt10;architecture art of cnt10 issignal cqi: std_logic_vector(3 downto 0);begin pro

26、cess (clk,clr) begin if clr=1 then cqi=0000; -當(dāng)輸入的clr_cnt為低電平0時清零 elsif clkevent and clk=1 then if en=1 then -當(dāng)輸入的tesen為高電平1時允許計(jì)數(shù) if (cqi9) then cqi=cqi+1; else cqi=0000; -等于9則計(jì)數(shù)器清零 end if; -當(dāng)輸入的tesen為低電平0時禁止計(jì)數(shù),鎖定計(jì)數(shù)值 end if; end if;end process;-產(chǎn)生進(jìn)位process(cqi) begin if cqi=1001 then c10=1; -當(dāng)加的9時產(chǎn)生

27、進(jìn)位輸出 else c10=0; end if;end process;q=cqi;end art;在項(xiàng)目編譯仿真成功后,將設(shè)計(jì)的十進(jìn)制計(jì)數(shù)器電路設(shè)置成可調(diào)用的元件cnt10.sym,用于以下的頂層設(shè)計(jì)。編譯成功后生成元件圖如下:在源程序中c10是計(jì)數(shù)器進(jìn)位輸出;q3.0是計(jì)數(shù)器的狀態(tài)輸出;clk是被測信號轉(zhuǎn)換后的矩形脈沖輸入端;clr是復(fù)位控制輸入端,當(dāng)clr=1時,q3.0=0;en是使能控制輸入端,當(dāng)en=1時,計(jì)數(shù)器計(jì)數(shù),當(dāng)en=0時,計(jì)數(shù)器保持狀態(tài)不變。編譯成功后進(jìn)行仿真,其仿真波形如下:2.4 24位鎖存器將已有24 位bcd碼存在于此模塊的輸入口din23.0,在信號load的上

28、升沿后即被鎖存到寄存器reg24b的內(nèi)部,并由reg24b的輸出端dout23.0輸出,設(shè)置鎖存器的好處是,數(shù)碼管上顯示的數(shù)據(jù)穩(wěn)定,不會由于周期性的清零信號而不斷閃爍。library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity reg24b is port (load: in std_logic;-輸出鎖存控制信號 din: in std_logic_vector(23 downto 0); dout: out std_logic_vector(23 downto 0);end reg24b;a

29、rchitecture art of reg24b isbegin process(load,din) begin if loadevent and load=1then -load為高電平時teten為低電平,計(jì)數(shù)器禁止 dout=din; -鎖存輸入的數(shù)據(jù) end if; end process;end art;編譯成功后生成元件圖如下:在源程序中l(wèi)oad 是鎖存信號,上升沿觸發(fā);din23.0是寄存器輸入;dout23.0是寄存器輸出。仿真結(jié)果如下圖所示:2.5 數(shù)碼管控制器兩個輸入端一個為datain23.0,另一個為數(shù)碼管顯示選擇的掃描頻率輸入端clk,輸出端為數(shù)碼管選擇信號com5

30、.0和對應(yīng)顯示的數(shù)碼管的BCD碼信號端dataout3.0,數(shù)碼管顯示選擇隨掃描頻率clk循環(huán)變化,實(shí)現(xiàn)穩(wěn)定顯示。library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity ledcom isport(clk:in std_logic; -數(shù)碼管掃描頻率 datain: in std_logic_vector(23 downto 0);-鎖存器輸入的24位信號 dataout: out std_logic_vector(3 downto 0);-輸出至譯碼器的4位信號 com: out std_

31、logic_vector(5 downto 0);-輸出數(shù)碼管選擇信號end ledcom;architecture art of ledcom is signal comclk: std_logic_vector(2 downto 0); begin -comclk同掃描頻率clk循環(huán)變化 process(clk)begin if rising_edge(clk) then if comclk 5 thencomclk=comclk+1; else comclk com com com com com comNULL; end case; end process;-對應(yīng)數(shù)碼管的輸出 proc

32、ess(comclk,datain)begin case comclk is when 101= dataout dataout dataout dataout dataout dataoutNULL; end case; end process;end art;編譯成功后生成元件圖如下: 在clk信號的控制下,數(shù)碼管進(jìn)行循環(huán)控制輸出。仿真結(jié)果如圖所示:2.6 譯碼器輸入端d_in3.0將接收BCD碼信號,譯碼后輸出端d_out7.0輸出8段數(shù)碼管信號,其中輸出的第8位均為高電平1可以使四個數(shù)碼管的小數(shù)點(diǎn)不顯示。經(jīng)譯碼器的處理輸出后數(shù)碼管顯示相應(yīng)的數(shù)值。library IEEE;use IEE

33、E.std_logic_1164.all;entity ymq is port( d_in: in std_logic_vector(3 downto 0); -數(shù)碼管控制器輸入四位信號 d_out: out std_logic_vector(7 downto 0); -輸出8位信號 end ymq; -第8位d_out7為逗號architecture art of ymq isbegin process(d_in) begin case d_in is -第8位為1高電平逗號不顯示 when 0000 = d_out d_out d_out d_out d_out d_out d_out d

34、_out d_out d_outNULL; end case; end process;end art;編譯成功后生成元件圖如下: 將相應(yīng)的BCD碼轉(zhuǎn)換成數(shù)碼管顯示信號,最后以十進(jìn)制的形式顯示出來。仿真結(jié)果如下圖所示:2.7元件聲明及例化將各個元器件依據(jù)設(shè)計(jì)相連:library ieee;use ieee.std_logic_1164.all;entity lx is port(clkqq: in std_logic; clk0: in std_logic; led: out std_logic_vector(7 downto 0); ledc: out std_logic_vector(5

35、downto 0); carry_out: out std_logic);end lx;architecture art of lx iscomponent lpm_counter0 -待調(diào)用的頻率生成器端口定義 port(clock: in std_logic ; clk_div1 : out std_logic; clkq: out std_logic);end component;-十進(jìn)制計(jì)數(shù)器component cnt10 -待調(diào)用的有時鐘使能的十進(jìn)制計(jì)數(shù)器端口定義 port(clk,clr,en: in std_logic; q: out std_logic_vector(3 dow

36、nto 0); c10: out std_logic);end component;-16位鎖存器component reg24b -待調(diào)用的32位鎖存器端口定義 port (load: in std_logic; din: in std_logic_vector(23 downto 0); dout: out std_logic_vector(23 downto 0);end component;-測頻控制器component testpl -待調(diào)用的測頻控制信號發(fā)生器端口定義 port(clk:in std_logic; tsten:out std_logic; clr_cnt:out s

37、td_logic; load:out std_logic);end component;-數(shù)碼管選擇器component ledcom -待調(diào)用的數(shù)碼管選擇器端口定義port(clk:in std_logic; datain: in std_logic_vector(23 downto 0); dataout: out std_logic_vector(3 downto 0); com: out std_logic_vector(5 downto 0);end component;-譯碼器component ymq -待調(diào)用的譯碼器端口定義 port(d_in: in std_logic_ve

38、ctor(3 downto 0); d_out: out std_logic_vector(7 downto 0);end component; signal clk1,clk2,clk3: std_logic;-clk1為1Hz信號,clk2為被測信號,clk3為數(shù)碼管掃描信號 signal tsten,clr,load: std_logic; signal c1,c2,c3,c4,c5: std_logic; signal qout,rout: std_logic_vector(23 downto 0); signal datao: std_logic_vector(3 downto 0)

39、;begin u0:testpl port map(clk1,tsten,clr,load); u1:cnt10 port map(clk0,clr,tsten,qout(3 downto 0),c1); u2:cnt10 port map(c1,clr,tsten,qout(7 downto 4),c2); u3:cnt10 port map(c2,clr,tsten,qout(11 downto 8),c3); u4:cnt10 port map(c3,clr,tsten,qout(15 downto 12),c4); u5:cnt10 port map(c4,clr,tsten,qout

40、(19 downto 16),c5); u6:cnt10 port map(c5,clr,tsten,qout(23 downto 20), carry_out); u7:reg24b port map(load,qout(23 downto 0),rout); u8:ledcom port map(clk2,rout,datao,ledc); u9:ymq port map(datao,led); u10:lpm_counter0 port map(clkqq, clkq=clk1, clk_div1=clk2);end art;編譯成功后生成元件圖如下:其中clk0為系統(tǒng)待測信號,led7

41、.0是八段數(shù)碼輸出,ledc5.0數(shù)碼管控制片選輸出,carry_out超出量程報(bào)警輸出??偟姆抡鏁r間設(shè)置1s,clkqq為40KHZ基頻信號,設(shè)置周期為25us;clk0為被測信號,周期任意(為了檢測設(shè)置周期為80us,計(jì)頻率為12.5kHZ,從仿真圖中可以看出測得頻率為12500HZ,與設(shè)計(jì)的一樣)。經(jīng)過1.5s后就能讀出待測信號的頻率。仿真結(jié)果如圖下圖所示:總結(jié)本頻率計(jì)滿足實(shí)驗(yàn)要求,測量頻率范圍是1-HZ,采用直接測頻法對被測信號進(jìn)行測量,但也存在不足的地方,最好的設(shè)計(jì)方法是用測周法與直接測頻法相結(jié)合的方式,在頻率低于1000HZ采用測周法,高于1000HZ時采用直接測頻法,這樣的好處在

42、于減小量化誤差。而兩種測量方法之間進(jìn)行自動選擇,首先采用測周法進(jìn)行測量,若頻率超過1000HZ則產(chǎn)生溢出信號,自動選擇采用測頻法進(jìn)行測量,這樣的設(shè)計(jì)是最合理的頻率計(jì)設(shè)計(jì),若只采用某一種方法進(jìn)行測量都存在不足之處。周期測量時信號頻率越低,測量的誤差越小,周期倍乘的值越大,誤差越小,另外也可以通過更好的時基信號來進(jìn)行計(jì)數(shù)來減小量化誤差的影響。 心得體會本次實(shí)習(xí)讓我們體味到設(shè)計(jì)程序、調(diào)測程序過程中的樂苦與甜。設(shè)計(jì)是我們將來必需的技能,這次實(shí)習(xí)恰恰給我們提供了一個應(yīng)用自己所學(xué)知識的機(jī)會,從到圖書館查找資料到對電路的設(shè)計(jì)對電路的調(diào)試試再到最后電路的成型,都對我所學(xué)的知識進(jìn)行了檢驗(yàn)。在實(shí)習(xí)的過程中發(fā)現(xiàn)了以

43、前學(xué)的知識掌握的不牢。同時在設(shè)計(jì)的過程中,遇到了一些以前沒有見到過的語句,但是通過查找資料來學(xué)習(xí)這些語句的功能和使用。調(diào)試程序過程是一個考驗(yàn)人耐心的過程,不能有絲毫的急躁,馬虎,特別是對仿真波形的調(diào)試要一步一步來,不能急躁,最重要的是要熟練地掌握課堂上的知識,這樣才能對試驗(yàn)中出現(xiàn)的問題進(jìn)行分析解決。在整個課程設(shè)計(jì)完后,總的感覺是:有收獲。以前上課都是上一些最基本的東西而現(xiàn)在卻可以將以前學(xué)的東西作出有實(shí)際價值的東西。在這個過程中,我的確學(xué)得到很多在書本上學(xué)不到的東西,如:利用VHDL語言編寫程序等等。但也遇到了不少的挫折,有時在仿真時遇到了一個錯誤怎么找也找不到原兇所在,找了老半天結(jié)果發(fā)現(xiàn)是取得時間太短了或是設(shè)定錯了頻率。

溫馨提示

  • 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

提交評論