基于測頻原理的頻率計_第1頁
基于測頻原理的頻率計_第2頁
基于測頻原理的頻率計_第3頁
基于測頻原理的頻率計_第4頁
基于測頻原理的頻率計_第5頁
已閱讀5頁,還剩12頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

./課程設計任務書學生__王耀輝專業(yè)__通信1304指導陳適工作單位:信息工程學院題目:采用測頻原理的數字頻率計初始條件:VHDL硬件描述語言,ISEDesignSuite開發(fā)環(huán)境,ModelsimSE仿真環(huán)境要求完成的主要任務:采用測頻法,設計一個4位十進制數字顯示的數字頻率計其測量的X圍為1~9999KHz課程設計進度安排序號階段內容所需時間1方案設計1天2軟件設計2天3系統調試1天4撰寫報告1天合計5天指導教師簽名:年月日系主任〔或責任教師〕簽名:年月日.目錄TOC\o"1-3"\u摘要1Abstract21.FPGA、VHDL與ISE概述31.1FPGA簡介31.2VHDL概述31.3ISE52頻率測量原理與方案62.1設計要求62.2頻率測量方法62.2.1時間門限測量法62.2.2標準頻率比較測量法62.2.3等精度測量法72.3方案提出與確定72.4系統設計82.5系統組成92.6小結103數字頻率計VHDL程序與仿真113.1模塊圖113.1.1頂層模塊圖113.1.2頂層模塊圖123.2程序設計124仿真測試174.1調試和器件編程174.2頻率計仿真結果185心得體會216參考文獻22.摘要數字頻率計是數字電路中的一個典型應用,實際的硬件設計用到的器件較多,連線比較復雜,而且會產生比較大的延時,造成測量誤差、可靠性差。隨著現場可編程門陣列FPGA的廣泛應用,運用VHDL等硬件描述語言,將使整個系統大大簡化,提高了系統的整體性能和可靠性。采用FPGA現場可編程門陣列為控制核心,通過硬件描述語言VHDL編程,在QuartusII仿真平臺上編譯、仿真、調試,并下載到FPGA芯片上,通過嚴格的測試后,能夠較準確地測量方波、正弦波、三角波、矩齒波等各種常用的信號的頻率,而且還能對其他多種物理量進行測量本文介紹了如何采用測頻法,利用FPGA現場可編程門陣列為控制核心,通過VHDL語言編程,在ISE仿真平臺上仿真平臺上編譯、仿真、調試,設計一個4位十進制數字顯示的數字頻率計以此來鞏固課堂理論學習,并能用所學理論知識正確分析硬件設計基本問題和解釋數字電路的基本現象。關鍵字:FPGA,數字電路,測頻法,數字頻率計.AbstractDigitalfrequencymeterisadigitalcircuitinatypicalapplication,theactualhardwaredesignofdevicesusedinmorecomplicatedconnection,butwillhaverelativelylargedelay,causedbymeasurementerror,poorreliability.WiththeFPGAfieldprogrammablegatearrayawiderangeofapplicationstothedevelopmentasameansofusingtheVHDLhardwaredescriptionlanguagesuchaslanguage,willgreatlysimplifythewholesystemtoimproveoverallsystemperformanceandreliability.

Digitalfrequencymeterismadebyusingadigitalcircuitsystemcanachievethecyclicalchangesinsignalfrequencymeasuringinstruments.Frequencymeterismainlyusedformeasuringfrequencysinewave,squarewave,trianglewaveandspikesandotherperiodicsignal.Itsextendedfunctionalitycanmeasurecycleandpulsewidthofthesignal.Thisarticledescribeshowtousethefrequencymeasurementmethod,usingoffieldprogrammablegatearrayFPGAforthecontrolofthecoreandVHDLlanguageprogramming,simulationinQuartusIIdevelopmentenvironment,thedesignofafourdecimaldigitsdisplayeddigitalfrequencymeterinordertoreinforceclassroomlearningtheoryandthetheoryofknowledgecanbeusedtocorrectlyanalyzehardwarethedesignandinterpretationofthebasicproblemsofthebasicphenomenaofdigitalcircuits.Keywords:FPGA,Digitalcircuits,Frequencymeasurementmethod,Digitalfrequencymeter1.FPGA、VHDL與ISE概述本章首先對設計所采用的可編程邏輯器件FPGA與VHDL以與仿真軟件ISE進行簡單的介紹,對設計有些基本的了解。1.1FPGA簡介FPGA是20世紀80年代中期出現的高密度可編程邏輯器件,它一般由布線資源分隔的可編程邏輯單元構成陣列,又由可編程I/O單元圍繞陣列構成整個芯片,排列陣列的餓邏輯單元由布線通道中的可編程內連線連接起來實現一定的邏輯功能。一個FPGA包含豐富的具有快速系統速度的邏輯門、寄存器和I/O組成。FPGA/CPLD芯片都是特殊的ASIC芯片,除了具有ASIC的特點外還有一下幾個優(yōu)點:隨著超大規(guī)模集成電路VLSI工藝的不斷提高,單一芯片內部可以容納上百萬個晶體管;FPGA/CPLD芯片出廠前100%都做過測試,不需要設計人員承擔風險和費用;用戶可以反復地編程、擦除、使用或者在外圍電路不動的的情況下,用不同軟件就可實現不同的功能,用FPGA/CPLD試制樣片,能以最快的速度占領市場。FPGA/CPLD軟件包中有各種輸入工具、仿真工具、版圖設計與編程器等全線產品,使電路設計人員在較短的時間內就可以完成電路的輸入、編譯、優(yōu)化、仿真,直至最后芯片的制作。1.2VHDL概述VHDL語言是一種用于電路設計的高級語言。它在80年代的后期出現。最初是由美國國防部開發(fā)出來供美軍用來提高設計的可靠性和縮減開發(fā)周期的一種使用X圍較小的設計語言VHDL的英文全寫是:VHSIC〔VeryHighSpeedIntegratedCircuit〕HardwareDescriptionLanguage.翻譯成中文就是超高速集成電路硬件描述語言。因此它的應用主要是應用在數字電路的設計中。目前,它在中國的應用多數是用在FPGA/CPLD/EPLD的設計中。當然在一些實力較為雄厚的單位,它也被用來設計ASIC。VHDL主要用于描述數字系統的結構,行為,功能和接口。除了含有許多具有硬件特征的語句外,VHDL的語言形式和描述風格與句法是十分類似于一般的計算機高級語言。VHDL的程序結構特點是將一項工程設計,或稱設計實體〔可以是一個元件,一個電路模塊或一個系統〕分成外部〔或稱可視部分,與端口>和內部〔或稱不可視部分〕,既涉與實體的內部功能和算法完成部分。在對一個設計實體定義了外部界面后,一旦其內部開發(fā)完成后,其他的設計就可以直接調用這個實體。這種將設計實體分成內外部分的概念是VHDL系統設計的基本點。VHDL主要特點有:〔1〕功能強大、設計靈活〔2〕支持廣泛、易于修改〔3〕強大的系統硬件描述能力〔4〕獨立于器件的設計、與工藝無關〔5〕很強的移植能力〔6〕易于共享和復用VHDL系統優(yōu)勢:<1>與其他的硬件描述語言相比,VHDL具有更強的行為描述能力,從而決定了他成為系統設計領域最佳的硬件描述語言。強大的行為描述能力是避開具體的器件結構,從邏輯行為上描述和設計大規(guī)模電子系統的重要保證。<2>VHDL豐富的仿真語句和庫函數,使得在任何大系統的設計早期就能查驗設計系統的功能可行性,隨時可對設計進行仿真模擬。<3>VHDL語句的行為描述能力和程序結構決定了他具有支持大規(guī)模設計的分解和已有設計的再利用功能。符合市場需求的大規(guī)模系統高效,高速的完成必須有多人甚至多個代發(fā)組共同并行工作才能實現。<4>對于用VHDL完成的一個確定的設計,可以利用EDA工具進行邏輯綜合和優(yōu)化,并自動的把VHDL描述設計轉變成門級網表。<5>VHDL對設計的描述具有相對獨立性,設計者可以不懂硬件的結構,也不必管理最終設計實現的目標器件是什么,而進行獨立的設計。1.3ISEISE是使用XILINX的FPGA的必備的設計工具。目前官方提供下載的最新版本是14.4。它可以完成FPGA開發(fā)的全部流程,包括設計輸入、仿真、綜合、布局布線、生成BIT文件、配置以與在線調試等,功能非常強大。ISE除了功能完整,使用方便外,它的設計性能也非常好,拿ISE9.x來說,其設計性能比其他解決方案平均快30%,它集成的時序收斂流程整合了增強性物理綜合優(yōu)化,提供最佳的時鐘布局、更好的封裝和時序收斂映射,從而獲得更高的設計性能。先進的綜合和實現算法將動態(tài)功耗降低了10%。2頻率測量原理與方案本章首先介紹了數字頻率計設計的要求和頻率測量的工作原理,最后對系統的設計方案進行探討,綜合起來形成數字頻率計的設計思路以與原理框圖。2.1設計要求采用測頻法,設計一個4位十進制數字顯示的數字頻率計其測量的X圍為1~9999KHz2.2頻率測量方法數字頻率計是用于測量信號頻率的電路。測量信號的頻率參數是最常用的測量方法之一。實現頻率測量的方法比較多,在此我們主要介紹三種常用的方法:時間門限測量法、標準頻率比較測量法、等精度測量法。2.2.1時間門限測量法在一定的時間門限T內,如果測得輸入信號的脈沖數為N,設待測信號的頻率為fx,則該信號的頻率為改變時間T,則可改變測量頻率X圍。例如,當T=1s,則fx=N<Hz>;T=1ms,則fx=N<kHz>。2.2.2標準頻率比較測量法用兩組計數器在相同的時間門限內同時計數,測得待測信號的脈沖個數為N1、已知的標準頻率信號的脈沖個數為N2,設待測信號的頻率為fx,已知的標準頻率信號的頻率為f0;由于測量時間相同,則可得到如下等式:從上式可以得出待測頻率的公式為標準頻率比較測量法對測量時產生的時間門限的精度要求不高,對標準頻率信號的頻率準確度和頻率的穩(wěn)定度要求較高,標準信號的頻率越高,測量的精度就比較高。該方法的測量時間誤差與時間門限測量法的相同,可能的最大誤差為正負一個待測信號周期,即Δt=±1/fx。2.2.3等精度測量法等精度測量法的機理是在標準頻率比較測量法的基礎上改變計數器的計數開始和結束與閘門門限的上升沿和下降沿的嚴格關系。當閘門門限的上升沿到來時,如果待測量信號的上升沿未到時兩組計數器也不計數,只有在待測量信號的上升沿到來時,兩組計數器才開始計數;當閘門門限的下降沿到來時,如果待測量信號的一個周期未結束時兩組計數器也不停止計數,只有在待測量信號的一個周期結束時兩組計數器才停止計數。這樣就克服了待測量信號的脈沖周期不完整的問題,其誤差只由標準頻率信號產生,與待測量信號的頻率無關。最大誤差為正負一個標準頻率周期,即Δt=±1/f0。由于一般標準信號頻率都在幾十兆赫茲以上,因此誤差小于10-6HZ。2.3方案提出與確定方法一:采用小規(guī)模數字集成電路制作被測信號經過放大整形變換為脈沖信號后加到主控門的輸入端,時基信號經控制電路產生閘門信號送至主控門,只有在閘門信號采樣期間內輸入信號才通過主控門,若時基信號周期為T,進入計數器的輸入脈沖數為N,則被信號的測頻率其頻率F=N/T,其原理方框圖如圖2-1所示顯示譯碼器計數器閘門整形放大被測信號顯示譯碼器計數器閘門整形放大控制部分控制部分圖2-1方案一測頻原理圖方案二:采用單片機進行測頻控制單片機技術比較成熟,功能也比較強大,被測信號經放大整形后送入測頻電路,由單片機對測頻電路的輸出信號進行處理,得出相應的數據送至顯示器顯示。原理方框圖如圖2-2所示。顯示單片機測頻電路信號整形待測信號顯示單片機測頻電路信號整形晶振晶振圖2-2單片機測頻電路原理圖采用這種方案優(yōu)點是依賴成熟的單片機技術、運算功能較強、軟件編程靈活、自由度大、設計成本也較低,缺點是顯而易見的,在傳統的單片機設計系統中必須使用許多分立元件組成單片機的外圍電路,整個系統顯得十分復雜,并且單片機的頻率不能做得很高,使得測量精度大大降低。方案三:采用現場可編程門陣列<FPGA>為控制核心采用現場可編程門陣列<FPGA>為控制核心,利用VHDL語言編程,下載燒制實現。將所有器件集成在一塊芯片上,體積大大減小的同時還提高了穩(wěn)定性,可實現大規(guī)模和超大規(guī)模的集成電路,測頻測量精度高,測量頻率X圍大,而且編程靈活、調試方便。綜合上述分析,方案三為本設計測量部分最佳選擇方案。2.4系統設計數字頻率計的測量原理,可選擇合適的時基信號即閘門時間,對輸入被測信號脈沖進行計數,實行測頻的目的,在進行設計之前,首先搞清楚在什么情況下是測頻率,在什么情況下是測周期,其實就是一個選擇合適的閘門信號的問題。在這個設計中,在測頻率的時候,以分頻后的時鐘信號作為閘門信號,因為輸入信號的頻率大于閘門信號頻率,在閘門信號周期內,計算輸入信號的周期數目,就可以計算出輸入信號的頻率值了。原理圖如下:閘門信號閘門信號被測信號圖2-3原理圖在確定的閘門時間Tw內,記錄被測信號的變化周期數〔或脈沖個數〕Nx,則被測信號的頻率為:fx=Nx/Tw。這種方法的計數值會產生±1個字誤差,測試精度與計數器中記錄的數值Nx有關。2.5系統組成系統包含輸入模塊,FPGA模塊,顯示模塊。輸入模塊包括基準時鐘,復位信號和被測信號。FPGA模塊是系統的核心部分,其包括分頻、7位十進制計數器、數據處理和動態(tài)譯碼。當系統正常工作時,分頻部分的作用是對基準時鐘進行分頻,得到一個閘門信號,作為7位十進制計數器的使能信號。數據處理部分作用:取7位十進制計數器的有效高4位數據,送入動態(tài)顯示譯碼部分進行顯示譯碼。顯示模塊用數碼管顯示。圖2-4系統組成框圖2.6小結本章對數字頻率的設計要求進行闡述,由此對頻率測量的工作原理進行探討引申出幾個設計的方案,采用的時間門限測量法根據此方法確定了以現場可編程門陣列為控制核心的設計方案,它最為靈活方便。然后得出論述對方案的進行細節(jié)方面的論證,產生了設計的原理方框圖。但是在設計中有個特別需要注意的地方是:在測頻控制信號發(fā)生器的設計當中,要對其進行仔細的時序仿真,防止可能產生的毛刺。3數字頻率計VHDL程序與仿真3.1模塊圖3.1.1頂層模塊圖圖3-1頂層元件圖Clk:系統時鐘Clk1:被測信號Start:復位信號Yy1:八段碼W1:數碼管位選信號3.1.2底層模塊圖3-2底層元件圖3.2程序設計libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entitypljisport<start:instd_logic;--復位信號clk:instd_logic;--系統時鐘clk1:instd_logic;--被測信號yy1:outstd_logic_vector<7downto0>;--八段碼w1:outstd_logic_vector<3downto0>>;--數碼管位選信號endplj;architecturebehavofPLjissignalb1,b2,b3,b4,b5,b6,b7:std_logic_vector<3downto0>;--十進制計數器signalbcd:std_logic_vector<3downto0>;--BCD碼寄存器signalq:integerrange0to49999999;--秒分頻系數signal:integerrange0to499999;--動態(tài)掃描分頻系數signalen,bclk:std_logic;--使能信號,有效被測信號signalsss:std_logic_vector<3downto0>;--小數點signalbcd0,bcd1,bcd2,bcd3:std_logic_vector<3downto0>;--寄存7位十位計數器中有效的高4位數據beginsecond:process<clk>--此進程產生一個持續(xù)時間為一秒的的閘門信號beginifstart='1'thenq<=0;elsifclk'eventandclk='1'thenifq<49999999thenq<=q+1;elseq<=49999999;endif;endif;ifq<49999999andstart='0'thenen<='1';elseen<='0';endif;endprocess;and2:process<en,clk1>--此進程得到7位十進制計數器的計數脈沖beginbclk<=clk1anden;endprocess;com:process<start,bclk>--此進程完成對被測信號計脈沖數beginifstart='1'then--復位b1<="0000";b2<="0000";b3<="0000";b4<="0000";b5<="0000";b6<="0000";b7<="0000";elsifbclk'eventandbclk='1'thenifb1="1001"thenb1<="0000";--此IF語句完成個位十進制計數ifb2="1001"thenb2<="0000";--此IF語句完成百位十進制計數ifb3="1001"thenb3<="0000";--此IF語句完成千位十進制計數ifb4="1001"thenb4<="0000";--此IF語句完成萬位十進制計數ifb5="1001"THENb5<="0000";--此IF語句完成十萬位十進制計數ifb6="1001"thenb6<="0000";--此IF語句完成百萬位十進制計數ifb7="1001"thenb7<="0000";--此IF語句完成千萬位十進制計數elseb7<=b7+1;endif;elseb6<=b6+1;endif;elseb5<=b5+1;endif;elseb4<=b4+1;endif;elseb3<=b3+1;endif;elseb2<=b2+1;endif;elseb1<=b1+1;endif;endif;endprocess;process<clk>--把7位十進制計數器有效的高4位數據送如bcd0~3;并得到小數點信息beginifrising_edge<clk>thenifen='0'thenifb7>"0000"thenbcd3<=b7;bcd2<=b6;bcd1<=b5;bcd0<=b4;sss<="1110";elsifb6>"0000"thenbcd3<=b6;bcd2<=b5;bcd1<=b4;bcd0<=b3;sss<="1101";elsifb5>"0000"thenbcd3<=b5;bcd2<=b4;bcd1<=b3;bcd0<=b2;sss<="1011"; elsebcd3<=b4;bcd2<=b3;bcd1<=b2;bcd0<=b1;sss<="1111"; endif;endif;endif;endprocess;weixuan:process<clk>--此進程完成數據的動態(tài)顯示beginifclk'eventandclk='1'thenif<99999then<=+1;bcd<=bcd3;w1<="0111"; ifsss="0111"thenyy1<0><='0'; elseyy1<0><='1'; endif;elsif<199999then<=+1;bcd<=bcd2;w1<="1011"; ifsss="1011"thenyy1<0><='0'; elseyy1<0><='1'; endif;elsif<299999then<=+1;bcd<=bcd1;w1<="1101"; ifsss="1101"thenyy1<0><='0'; elseyy1<0><='1'; endif;elsif<399999then<=+1;bcd<=bcd0;w1<="1110";ifsss="1110"thenyy1<0><='0';elseyy1<0><='1';endif;else<=0;endif;endif;endprocess;m0:process<bcd>--譯碼begincasebcdiswhen"0000"=>yy1<7downto1><="0000001";when"0001"=>yy1<7downto1><="1001111";when"0010"=>yy1<7downto1><="0010010";when"0011"=>yy1<7downto1><="0000110";when"0100"=>yy1<7downto1><="1001100";when"0101"=>yy1<7downto1><="0100100";when"0110"=>yy1<7downto1><="1100000";when"0111"=>yy1<7downto1><="0001111";when"1000"=>yy1<7downto1><="0000000";when"1001"=>yy1<7downto1><="0001100";whenothers=>yy1<7downto1><="1111111";endcase;endprocess;endbehav;4仿真測試本章進行對于源文件進行編譯、模擬仿真、調試,對電路板芯片管腳進行定義,最后下載到FPGA芯片上,對頻率進行測試,查看結果。4.1調試和器件編程將各個模塊的源文件程序代碼輸入文本文件,編譯運行項目成功后,把各個模塊放在一起形成頂層設計文件,對項目進行邏輯綜合,然后將項目的設計結果加載到Altera器件中;成功編譯以后,進入到模擬仿真時段,設置好完成時間和網絡間距,在列出輸入輸出信號等等,進行波形編輯在模擬器運行成功;啟動定時分析工具,對傳播延遲、時序電路性能、建立和保持時間等進行分析順利后,就可以開始器件編程了。圖4-1編譯檢查成功圖圖4-2Summary信息4.2頻率計仿真結果圖4-3頻率計仿真全圖圖4-4頻率計仿真-開始計數部分圖4-5頻率計仿真-計數過程部分圖4-6頻率計仿真中動態(tài)顯示部分

溫馨提示

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

評論

0/150

提交評論