版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、本科學生畢業(yè)論文論文題目:基于fpga的數(shù)字頻率計設計學 院:電子工程學院年 級:2010專 業(yè):集成電路設計與集成系統(tǒng)姓 名:周景超學 號:20103665指導教師:林連冬2014年 5 月 11 日摘要eda技術的發(fā)展,改變了傳統(tǒng)的電子設計方法。fpga等大規(guī)??删幊踢壿嬈骷膹V泛應用,使電子設計變得和軟件編程一樣方便快捷。電子設計技術的進步,也改變了傳統(tǒng)頻率計的設計方法。常用的頻率測量方法既有模擬的利用電路頻率特性測量頻率的方法,又有利用脈沖計數(shù)測量頻率的數(shù)字方法。隨著數(shù)字電路技術的發(fā)展,以脈沖計數(shù)法為基礎衍生出各種改進型的數(shù)字測頻方法,在測量精度、測量響應的快速性等方面都有了很大提高。
2、 本文分析了直接測頻法和周期測頻法的測量原理,說明了這兩種測頻方法產(chǎn)生±1 個計數(shù)誤差的原因。多周期同步測頻法由于實現(xiàn)了測頻的閘門信號與被測脈沖信號的同步,消除了被測信號的±1個計數(shù)誤差。文中對多周期同步測頻原理進行了深入分析,并通過計算這三種測頻方法的測量誤差,說明了這三種測頻方法的優(yōu)缺點和適用的測頻場合。由于多周期同步測頻法的測量精度和被測信號的頻率無關,是一種等精度測量方法,適用于寬范圍的頻率測量,所以本文采用多周期同步測頻法來進行頻率計的設計,給出了設計總體方案。最終設計了一種基于fpga技術的數(shù)字頻率計,應用vhdl硬件開發(fā)語言,在quartusii集成開發(fā)環(huán)境進
3、行了仿真實現(xiàn)。 關鍵詞數(shù)字頻率計;直接測頻法;fpga;硬件開發(fā)語言abstractdevelopment of eda technology has changed the traditional method of electrical design. extensive application of programmable logic devices such as fpga has made the electrical design as convenient as software programming. the progress of electrical design te
4、chnology also changed the traditional design method of frequency meter. the common measurement method of frequency is to utilize the frequency characteristics of the circuit to measure frequency, and also to adopt numerical method of utilizing pulse counting to measure frequency. with the developmen
5、t of digital circuit technology, a variety of improved frequency measurement methods are produced based on pulse counting method. this paper analyzes the direct frequency measurement method and the measuring principle of periodic frequency measurement method, which shows the reasons why these two me
6、thods produce error of ± 1 counts. multi-period synchronous frequency measurement method realized the synchronization of gate signal of frequency measurement and the measured pulse signal, eliminating the measured signal error of ± 1 counts. the paper analyzes the multi-period synchronous
7、frequency measurement principle in depth and indicates the advantages and disadvantages of these three measurement methods and suitable measuring occasions by calculating the measurement error of these three methods. as the measurement accuracy of multi-period synchronous frequency measurement metho
8、d is independent on the measured signal frequency, which is an equal-accquracy measurement method, it is applicable to a wide range of frequency measurement. the final design of the digital frequency meter, application development language vhdl hardware based on fpga technology in quartusii integrat
9、ed development environment simulation implementation.key wordsdigital frequency meter;direct frequency measurement method;fpga;vhdliii目錄摘要iabstractii第一章 緒論11.1 課題的研究背景11.2 頻率計的發(fā)展現(xiàn)狀11.3 課題研究的主要內容21.4 論文各章主要內容3第二章 頻率計測量原理42.1 常用頻率測量方法42.1.1 直讀法測頻42.1.2 比較法測頻52.1.3 脈沖計數(shù)法測頻52.2 脈沖計數(shù)法測量原理52.3 基于脈沖計數(shù)的直接測頻
10、法62.3.1直接測頻法原理62.3.2直接測頻法誤差及測頻范圍分析72.4 基于脈沖計數(shù)的周期測頻法72.4.1 周期測頻法原理72.4.2 周期測頻法的誤差分析82.5 本章小結8第三章 基于fpga頻率計的設計方案93.1 fpga的結構與工作原理93.1.1 查找表的原理與結構93.1.2 fpga的數(shù)字邏輯實現(xiàn)原理103.2 eda技術與vhdl113.2.1 vhdl語言113.2.2 eda設計方法123.2.3 基于eda工具的fpga設計流程133.3 頻率計的總體設計方案153.4 頻率計各功能模塊的設計原理163.4.1 計數(shù)單元設計163.4.2 數(shù)碼管拆分過程183.
11、4.3 除法器設計193.5 本章小結20第四章 頻率計各功能模塊的設計實現(xiàn)214.1 頻率測量及顯示控制模塊214.1.1 測頻閘門信號產(chǎn)生模塊的設計214.1.2 測頻閘門信號模塊的端口信號214.1.3 測頻閘門信號模塊的vhdl設計流程224.2 計數(shù)器模塊234.2.1 計數(shù)器的端口信號244.2.2 計數(shù)器的vhdl設計流程244.3 除法器模塊254.3.1 除法器的端口信號254.3.2 除法器的設計原理264.3.3 除法器的vhdl實現(xiàn)274.4 信號整形模塊284.5 電源模塊304.6 顯示模塊314.7 數(shù)字頻率計仿真324.7.1 搭建硬件仿真平臺324.7.2 除
12、法器的仿真334.7.3 計數(shù)仲裁單元仿真334.7.4 計時過程仿真344.7.5 計數(shù)過程仿真344.8 本章小結35結論36參考文獻37致謝38基于fpga的數(shù)字頻率計設計第一章 緒論頻率是電子技術領域最基本的參數(shù)之一,頻率計是電子電氣、儀器儀表等應用領域不可缺少的測量儀器,除電量以外,不少物理量的測量,如振動、轉速等的測量都涉及到或可以轉化為頻率的測量。1.1 課題的研究背景頻率計的設計技術是隨著電子電路技術的發(fā)展而逐步向前發(fā)展的,早期的頻率計采用分立元件設計,設計周期長、穩(wěn)定性差,并且成品體積大、功耗高。數(shù)字電子技術和集成電路的發(fā)展,使得數(shù)字頻率計廣泛應用,數(shù)字頻率計可以使用單元電路
13、和單片機來設計實現(xiàn)。相比分立件式的頻率計來說,數(shù)字頻率計提高了穩(wěn)定性,減小了體積,但是數(shù)字頻率計仍然存在著電路復雜、設計周期長等缺點,數(shù)字頻率計的測量范圍都是有限的,為測量不同頻率的信號都要專門的設計某一部分電路,靈活性差。 20世紀末,隨著微電子技術的進步和計算機技術的發(fā)展,在二者的相互促進下,以fpga系列器件為代表的可編程邏輯器件的應用逐漸普及??删幊踢壿嬈骷淹ㄓ眉呻娐吠ㄟ^編程集成到一塊尺寸很小的硅片上,成倍縮小了電路的體積,同時由于走線短,減少了干擾,提高了系統(tǒng)的可靠性。由于這類器件可以通過軟件編程而對其硬件的結構和工作方式進行重構,使得硬件的設計可以如同軟件設計那樣方便快捷,為數(shù)
14、字電路系統(tǒng)的設計帶來了極大的靈活性。隨著可編程邏輯器件集成規(guī)模不斷擴大,自身功能的不斷完善和計算機輔助設計技術的提高,在現(xiàn)代電子系統(tǒng)設計領域中的eda便應運而生了。 eda(電子設計自動化)是在cad(計算機輔助設計)、cam(計算機輔助制造)、cat(計算機輔助測試)和cae(計算機輔助工程)基礎上發(fā)展起來的計算機輔助設計系統(tǒng),eda是以大規(guī)??删幊踢壿嬈骷樵O計載體,以硬件描述語言為系統(tǒng)設計的主要表達方式,以計算機軟硬件開發(fā)系統(tǒng)為設計工具,自動完成集成電子系統(tǒng)設計的一門新技術。 1.2 頻率計的發(fā)展現(xiàn)狀由于社會發(fā)展和科技發(fā)展的需要,信息傳輸和處理的要求的提高,對頻率的測量精度也提出了更高的
15、要求,需要更高準確度的時頻基準和更精密的測量技術。而 頻率測量所能達到的精度,主要取決于作為標準頻率源的精度以及所使用的測量設備和測量方法。目前,國內外使用的測頻的方法有很多,有直接測頻法、內插法、游標法、時間電壓變化法、多周期同步法、頻率倍增法、頻差倍增法以及相位比較法等等。直接測頻的方法較簡單,但精度不高。內插法和游標法都是采用模擬的方法,雖然精度提高了,但是電路設計卻很復雜。時間電壓變化法是利用電容的充放電時間進行測量,由于經(jīng)過a/d轉換,速度較慢,且抗干擾能力較弱。多周期同步法是精度較高的一種。為了進一步地提高精度,通常采用模擬內插法或游標法與多周期同步法結合使用,雖然精度有了進一步的
16、提高,但始終未解決±1個字的計數(shù)誤差(±1個字的誤差是指在規(guī)定的閘門時間內存在±1個信號的脈沖計數(shù)誤差),而且這些方法設備復雜,不利于推廣。頻率誤差倍增法可以減小計數(shù)器的±1個字的誤差,提高測量精度,但用這種方法來提高測量精度是有限的,因為如要得到2×10-13的測量精度,就要把被測頻率fx倍頻到mfx=1/2×1011hz=5000mhz,這無論是對倍頻技術,還是對目前的計數(shù)器都是很難實現(xiàn)的。頻差倍增多周期法是一種頻差倍增法和差拍法相結合的測量方法。這種方法是將被測信號和參考信號經(jīng)頻差倍增使被測信號的相位起伏擴大,在通過混頻器獲得差
17、拍信號,用電子計數(shù)器在低頻下進行多周期測量,能在較少的倍增次數(shù)和同樣的取樣時間情況下,得到比測頻法更高的系統(tǒng)分辨率和測量精度。但是仍然存在著時標不穩(wěn)而引入的誤差和一定的觸發(fā)誤差。以上只是對現(xiàn)存的幾種主要的測頻方法的概述,很顯然從以上的分析中知道:不同的測頻方法在不同的應用條件下是具有一定的優(yōu)勢的。本文設計的頻率計主要應用于一般性的頻率測量,對測量精度要求不是很高,通過比較各種測頻方法優(yōu)缺點,決定使用多周期同步測頻法進行頻率計的設計。1.3 課題研究的主要內容本課題主要研究如下內容: 1分析比較常用的幾種測頻方式的測量精度,選擇一種合適的測頻實現(xiàn)方式。 2根據(jù)確定的測頻方式分模塊設計頻率計。 3
18、用vhdl語言實現(xiàn)頻率計的各個模塊及頻率計的總體設計。 4將設計程序下載到fpga中,并設計頻率計的附件電路,完成頻率計總體硬件設計。1.4 論文各章主要內容本文旨在通過對于頻率計數(shù)器理論,頻率技術器這樣一個完整系統(tǒng)的制作。來加深自己對于fpga技術的認識,同時加深對于頻率計數(shù)器的學習。具體主要包含以下內容:第一章是緒論,主要介紹了課題的研究背景、研究現(xiàn)狀以及該課題的研究內容。第二章介紹了頻率計量的原理、研究價值和幾種常用的頻率測量方法,重點介紹了直接測頻法、周期測頻法,對于本文的設計原理有了更加深入了解原理。第三章介紹了fpga的工作原理,同時介紹了vhdl語言。并且進行了本電路fpga的軟
19、件和硬件設計。提出了頻率計的總體設計方案,并按照不同功能對頻率計的總體設計進行了模塊劃分。第四章根據(jù)第三章的設計理論對各個模塊進行了設計與實現(xiàn),并對fpga數(shù)字頻率計進行了仿真。驗證了設計的搭建硬件仿真平臺、計數(shù)仲裁單元仿真、除法器單元仿真、計時過程仿真。第二章 頻率計測量原理頻率測量是電子測量領域的最基本測量之一。由于頻率信號抗干擾性強、易傳輸,可以獲得較高的測量精度,所以測頻方法的研究越來越受到重視,在檢測技術中,常將一些電量或其他電參量轉換成頻率進行測量,以提高測量的精度。2.1 常用頻率測量方法目前,用于測量頻率的方法很多,頻率測量的準確度主要取決于所測量的頻率范圍以及被測對象的特點。
20、而測量所能達到的精度,不僅取決于作為標準使用的時鐘頻率的精度,也取決于所使用的測量設備和測量方法。下面對幾類常用的頻率測量方法進行簡單介紹。2.1.1 直讀法測頻直讀法測頻是利用電路的頻率特性進行頻率的判讀。直讀法測量頻率有電橋測頻法、諧振測頻法、頻率電壓轉換測頻法等。 1. 電橋法 電橋法測頻是利用交流電橋的平衡條件與電橋電源頻率有關這一特性來測頻的。在電橋面板上將調節(jié)電橋平衡的可變電阻(或電容)的調節(jié)旋鈕(度盤)按頻率刻度,則在電橋指示平衡時,測試者便可從刻度上直接讀得被測信號頻率fx。 電橋法測頻的測量精度約為±(0.51),一般用于低頻段的測量。在高頻時,由于寄生參數(shù)影響嚴重
21、,會使測量精確度大大下降,電橋測頻法僅適用于10khz以下的音頻范圍。 2. 諧振法測頻 諧振法測頻是利用電感、電容組成的串聯(lián)諧振回路或并聯(lián)諧振回路的諧振特性來實現(xiàn)頻率的測量。當被測頻率加到變壓器式的諧振電路中時,調節(jié)電容使諧振電路達到諧振。如果電容的調節(jié)度盤按諧振頻率刻度,則可直接從該刻度讀出被測頻率值。諧振法測量頻率的誤差大約在±(0.251)范圍內,主要用于高頻段的頻率測量。諧振法優(yōu)點是體積小、重量輕,不要求電源等,因而它目仍獲得廣泛的應用。 3. 頻率電壓轉換測頻法 頻率電壓轉換(f-v)測頻法的原理是利用相關電路把正弦頻率fx轉換為周期相等、寬度、幅度均為定值的矩形脈沖序列
22、,用低通濾波器濾除其全部交流分量,則平均值即直流分量。如下式: (2-1)輸出的直流電壓uo按頻率刻度的電壓表指示,則從電壓表指針所指刻度便可直接讀出被測頻率fx。f-v轉換式頻率計最高測量頻率可達幾兆赫??梢赃B續(xù)監(jiān)視頻率的變化是這種測量法的突出優(yōu)點。2.1.2 比較法測頻比較法測頻就是用標準頻率fc與被測頻率fx進行比較,當把標準頻率調節(jié)到與被測頻率相等時指零儀表(零示器)便指零,此時的標準頻率值即被測頻率值。比較法測頻可分為拍頻法測頻與差頻法測頻兩種。前者是將待測頻率信號與標準頻率信號在線性元件上疊加產(chǎn)生拍頻。后者是將待測頻率信號與標準頻率信號在非線性元件上進行混頻。目前拍頻法測量頻率的絕
23、對誤差約為零點幾赫茲,差頻法測量頻率的誤差可優(yōu)于10-5量級,最低可測信號電平達0.1v1v。拍頻法和差頻法在常規(guī)場合很少采用。2.1.3 脈沖計數(shù)法測頻計數(shù)法測頻是數(shù)字頻率計常用的、最基本的頻率測量方法。計數(shù)法就是在單位時間內對信號的周期個數(shù)進行計數(shù)。計數(shù)法測頻的精確度取決于基準時間的精確度和計數(shù)誤差。本設計采用計數(shù)法進行頻率測量,下面對計數(shù)法的測頻原理和基于計數(shù)法的幾種的測頻方法進行詳細分析。2.2 脈沖計數(shù)法測量原理計數(shù)法的原理就是在一定的時間內,對周期性脈沖的重復次數(shù)進行計數(shù)??捎脠D 2-1來說明。設時間間隔為t,若周期性脈沖的周期為ta,則計數(shù)結果為: (2-2)由于t和ta兩個量是
24、不相關的,t不一定正好是ta的整數(shù)n倍,即t與nta之間有一定誤差,如圖2-1所示。圖2-1 計數(shù)法測量原理圖中t1是閘門開啟時刻到第一個計數(shù)脈沖前沿的時間(假設計數(shù)脈沖前沿使計數(shù)器翻轉計數(shù)),t2是閘門關閉時刻至下一個計數(shù)脈沖前沿的時間。處在t區(qū)間內計數(shù)脈沖個數(shù)(即計數(shù)器計數(shù)結果)為n,則有: (2-3)其中,n的產(chǎn)生是由于計數(shù)時閘門的開啟時刻與計數(shù)脈沖之間的時間關系不相關造成的,即在相同的閘門開啟時間內,計數(shù)器所得的數(shù)并不一定相同。當閘門開啟時間t接近甚至等于被測信號周期tx的整數(shù)倍時,n的絕對值最大,為n = ±1。所以,脈沖計數(shù)的最大絕對誤差(又稱量化誤差)為: (2-4)最
25、大相對誤差為: (2-5)以上是脈沖計數(shù)法的測量原理和誤差分析。具體到應用脈沖計數(shù)法進行頻率測量,通常根據(jù)頻率值高低,又可分為直接測頻法(m 法)和周期測頻法(t 法)。2.3 基于脈沖計數(shù)的直接測頻法2.3.1直接測頻法原理直接測頻法又稱m法,是在脈沖計數(shù)法的基礎上,選用一個頻率相對較低的基準頻率信號作為閘門信號(圖2-1中信號b),而將被測信號轉換為同頻的周期性脈沖信號(圖2-1中信號a),在固定閘門時間t內對其計數(shù)。若計數(shù)結果為n,則用該方法測得的信號的頻率為: (2-6)這里,時間間隔t = m·tc = m / fc,tc、fc分別是基準頻率信號的周期和頻率值,m為t時間內
26、包含的基準頻率信號的周期數(shù)。很顯然,直接測頻法適合于測量頻率較高的信號。2.3.2 直接測頻法誤差及測頻范圍分析直接測頻法的誤差分析:經(jīng)過對直接測頻法的分析,我們知道這種方法的主要誤差來自閾門時間t以及計數(shù)器的結果正確與否,所以,我們可以得到總誤差同可用分項誤差這二者的絕對值進行相加,得到: (2-7)在上面這個公式中,最大量化誤差的絕對值主要是由于閾門與被測計數(shù)脈沖這二者未在同一時刻打開的原因,然而,根據(jù)理論我們可以知道,即便這二者在同一時間開啟,也未必能夠得到一個相同的值。在上面的公式中fx為預測基本頻率,fx為預測頻率變化量,我們用f0/f0來表示直測法的閾門時間相對誤差,這一誤差值是由
27、于電路標準頻率的偏差而產(chǎn)生的。通常情況下,閾門時間的正確與否是根據(jù)不同的測頻需求而先行制定的。在以往的測頻率誤差中,閾門時間都會對結果造成一定的影響,為了避免這種影響,我們選取的標準頻率的準確度應該取值高于被測信號2個數(shù)量級或2個數(shù)量級以上。2.4 基于脈沖計數(shù)的周期測頻法2.4.1 周期測頻法原理周期測頻法又稱t法,是在脈沖計數(shù)法的基礎上,將頻率相對較高的基準信號作為周期性脈沖計數(shù)信號(圖2-1中信號a),將被測信號轉換為時間長度等同于被測信號周期的閘門信號(圖2-1中信號b),在閘門時間t(被測信號周期)內對基準脈沖信號計數(shù)。若計數(shù)結果為n,則用該方法測得的信號的周期為: (2-8)被測信
28、號的頻率為: (2-9)很顯然,周期測頻法適合于測量頻率較低的信號。2.4.2 周期測頻法的誤差分析經(jīng)過對直接測周期法的分析,我們知道這種方法的主要誤差在于標準頻率數(shù)器的結果正確與否,所以,我們可以得到總誤差同可用分項誤差這二者的絕對值進行相加,得到: (2-10)在上面這個2-10式中,最大量化誤差的絕對值主要是由于閾門與被測計數(shù)脈沖這二者未在同一時刻打開的原因。在上面的公式中,我們用f0/f0測法的閾門時間相對誤差,這一誤差值是由于電路標準頻率的偏差而產(chǎn)生的。通常情況下,閾門時間的正確與否是根據(jù)不同的測頻需求而先行制定的。在以往的測頻率誤差中,閾門時間都會對結果造成一定的影響,為了避免這種
29、影響,我們選取的標準頻率的準確度應該取值高于被測信號2個數(shù)量級或2個數(shù)量級以上。由上文可以得出,被測頻率fx越高,閘門開啟時間t越長(m的值越大),測頻的相對誤差fx/fx越小,即測頻的精確度越高。2.5 本章小結本章主要介紹了常用的幾種頻率測量方法,并對各個測量方法的測量原理進行了說明,在原理說明的基礎上對各個測量方法的最大相對誤差進行了分析,給出了各個頻率測量方法適用的測頻場合。第三章 基于fpga頻率計的設計方案fpga 是現(xiàn)場可編程邏輯陣列(field programmable gate array)的英文縮寫。它和 cpld(complex programmable logic de
30、vice,復雜可編程邏輯器件)一樣,是目前常用的一類大規(guī)??删幊踢壿嬈骷?。3.1 fpga的結構與工作原理3.1.1 查找表的原理與結構對于組合邏輯電路來說,當前的輸出總是當前輸入的函數(shù),并且當電路結構固定時,輸入量不變,輸出量也不會發(fā)生變化。如圖3-1所示組合邏輯電路。圖3-1 組合邏輯電路示例圖3-1所示電路實現(xiàn)的組合邏輯為:p=ab+c;q=a (b+c)。該組合邏輯電路的真值表如表3-1所示。表3-1 示例組合電路的真值表 表3-2 ram中存儲的數(shù)據(jù)a b c p q0 0 0 0 00 0 1 1 00 1 0 0 00 1 1 1 01 0 0 0 01 0 1 1 11 1 0
31、 1 11 1 1 1 1a2 a1 a0 d1 d00 0 0 0 00 0 1 1 00 1 0 0 00 1 1 1 01 0 0 0 01 0 1 1 11 1 0 1 11 1 1 1 1真值表決定了輸入和輸出之間的邏輯關系。將真值表和隨機存儲器聯(lián)系起來,我們會看到,若輸入量a、b、c 作為隨機存儲器的地址輸入a2、a1、a0,則輸出量p、q可以看作是存儲器中該地址對應的存儲單元中存儲的數(shù)據(jù) d1、d0。如表3-2所示。存儲器中各個單元存入不同的數(shù)據(jù),地址(輸入量)和存儲單元中的數(shù)據(jù)(輸出量)可構成不同的組合邏輯關系。這是用隨機存儲器(ram)實現(xiàn)可編程組合邏輯的基本原理。 fpga
32、可編程邏輯的形成方法就是采用基于這種原理的可編程的查找表(look up table,lut)結構。lut是可編程的最小邏輯構成單元。大部分的fpga采用基于sram(靜態(tài)隨機存儲器)的查找表邏輯形成結構,就是用sram來構成邏輯函數(shù)發(fā)生器。目前fpga中多使用4輸入的lut,所以每一個lut可以看成一個有4位地址線的 16×1 的ram。當用戶在eda 開發(fā)環(huán)境中通過原理圖或hdl語言描述了一個邏輯電路以后,eda開發(fā)軟件會自動計算邏輯電路的所有可能的結果,并把結果事先寫入ram,這樣,每輸入一個信號進行邏輯運算就等于輸入一個地址進行查表,找出地址對應的內容,然后輸出即可。fpga
33、查找表單元如圖3-2所示。圖3-2 fpga查找表單元至于一般情況下fpga采用4 輸入的lut,是因為,對于一個n輸入的查找表,需要sram存儲n個輸入構成的真值表,需要2n個1位sram單元。顯然n不可能很大,否則lut 的利用率很低,所以一般fpga的lut多采用4輸入的形式即n=4。當邏輯函數(shù)的輸入多于4個的時候,必須用幾個查找表分開實現(xiàn)。3.1.2 fpga的數(shù)字邏輯實現(xiàn)原理我們以用fpga來實現(xiàn)圖3-3所示的數(shù)字電路來說明fpga實現(xiàn)數(shù)字邏輯的原理。在fpga中,a、b、c、d輸入信號由fpga芯片的管腳輸入后進入可編程連線,然后作為地址線連到到lut,lut根據(jù)圖3-3中虛線框內
34、的邏輯關系通過編程已經(jīng)事先寫入了所有可能的邏輯結果,所以lut通過地址查找到相應的數(shù)據(jù),然后輸出,這樣組合邏輯就實現(xiàn)了。電路中d觸發(fā)器是可利用lut后面d觸發(fā)器來實現(xiàn)。時鐘信號 clk由i/o腳輸入后進入芯片內部的時鐘專用通道,直接連接到觸發(fā)器的時鐘端。圖3-3 數(shù)字邏輯電路示例觸發(fā)器的輸出與i/o腳相連,把結果輸出到芯片管腳。這樣fpga 就完成了圖3-3所示電路的功能。這個電路是一個很簡單的例子,只需要一個lut加上一個觸發(fā)器就可以完成。對于一個lut無法完成的電路,就需要通過進位邏輯將多個單元相連,這樣fpga就可以實現(xiàn)復雜的邏輯。3.2 eda技術與vhdl3.2.1 vhdl語言本文
35、的電路設計語言采用了傳統(tǒng)的電路設計語言vhdl。這是一種高級的、被廣泛應用于設計電路的硬件開發(fā)語言。此硬件語言最早在上世紀的八十年代浮現(xiàn)于人們眼前,在vhdl語言被設計之處,是美國的國防部為了國家軍隊提高硬件開發(fā)的可靠性與縮短開發(fā)時間而研發(fā)的一種硬件語言。在那個時候,vhdl的使用范圍還是分有限。vhdl即“very-high-speed integrated circuit hardware description language”。在漢文的意思中,是速度非常快的、集成的、用來秒速電路硬件的語言。經(jīng)過多年的發(fā)展與使用,如今已經(jīng)被廣泛應用于各個領域,尤其是在數(shù)字電路的設計方面應用十分廣泛。在
36、我國大陸地區(qū),vhdl硬件語言主要被應用于fpga/cpld/epld的開發(fā)設計之中,只有一些非常有才能的企業(yè)應用vhdl來設計開發(fā)asic。被主要使用在對系統(tǒng)結構行為、功能接口的vhdl語言,是一種硬件特征明顯的語言,但它不僅僅包括了硬件特征的語句,它描述語句的描述方式、語句風格甚至到vhdl的語法都是特別接近計算機程序設計高級語言的,這在使用vhdl進行硬件程序設計之時,十分的方便。如此一來,通過使用vhdl所開發(fā)設計的程序就具備了這樣一個特點:可以把一個工程項目中抑或者是某個設計實體(譬如一個系統(tǒng)或者一個元件)分成外部或者內部,不但涉及實體的功能,還實現(xiàn)了算法部分。這么做的好處是:對已經(jīng)
37、定義了外部界面的涉及實體,一旦這個實體的內部完成了,那么其他的設計就能夠調用這個定義了外部界面的實體,這樣大大的減少了開發(fā)時間,提高了開發(fā)效率。在vhdl程序設計中,這一部分的優(yōu)勢與概念是vhdl系統(tǒng)的最基本的一個點。3.2.2 eda設計方法eda技術的發(fā)展從理念上顛覆了傳統(tǒng)的電子設計方法。傳統(tǒng)的電子設計方法通常是自底向上的,即首先確定構成系統(tǒng)的最底層的電路模塊或元件的結構和功能,然后根據(jù)主系統(tǒng)的功能要求,將它們組合成更大的功能塊,使它們的結構和功能滿足高層系統(tǒng)的要求,以此流程,逐步向上遞推,直至完成整個目標系統(tǒng)的設計。自底向上的設計方法的特點是必須首先關注并致力于解決系統(tǒng)最底層硬件的可獲得
38、性,以及它們的功能特性方面的諸多細節(jié)問題;在整個逐級設計和測試過程中,始終必須顧及具體目標器件的技術細節(jié)。在這個設計過程中的任一時刻,最底層目標器件的更換,或某些技術參數(shù)不滿足總體要求,或缺貨,或由于市場競爭的變化,臨時提出降低系統(tǒng)成本,提高運行速度等不可預測的外圍因素,都可使前面的工作前功盡棄,工作又得重新開始。由此可見,在某些情況下,自底向上的設計方法是一種低效、低可靠性、費時費力、且成本高昂的設計方法。在電子設計領域,自頂向下的設計方法在eda技術得到快速發(fā)展和成熟應用后才成為可能。自頂向下設計方法的有效應用必須基于功能強大的eda工具,具備集系統(tǒng)描述、行為描述和結構描述功能為一體的vh
39、dl語言,以及先進的asic制造工藝和 fpga開發(fā)技術。當今,自頂向下的設計方法已經(jīng)是eda技術的首選設計方法,是asic或fpga開發(fā)的主要設計手段。自頂向下的設計方法,就是在整個設計流程中各設計環(huán)節(jié)逐步求精的過程。一個項目的設計過程包括從自然語言說明到vhdl的系統(tǒng)行為描述,從系統(tǒng)的分解、rtl(register transport level,寄存器傳輸級)模型的建立、門級模型產(chǎn)生到最終的可以物理布線實現(xiàn)的底層電路,就是從高抽象級別到低抽象級別的整個設計周期。后端設計還必須包括涉及硬件的物理結構實現(xiàn)方法和測試(仍然利用計算機完成)。應用vhdl進行自頂向下的設計,就是使用vhdl模型在
40、所有綜合級別上對硬件設計進行說明、建模和仿真測試。(這里的綜合是指綜合器將用vhdl語言描述的電子系統(tǒng),通過vhdl 到rtl,從rtl到邏輯門,從邏輯門最終轉換為可直接配置fpga 的配置網(wǎng)表文件或進行asic設計所需的版圖文件的過程。)主系統(tǒng)和子系統(tǒng)最初的功能要求在vhdl里體現(xiàn)為可以被vhdl仿真程序驗證的可執(zhí)行程序。由于綜合器(計算機軟件,eda 工具之一)可以將高級別的模型轉化生成門級模型,所以整個設計過程基本是由計算機自動完成的。人為介入的方式主要是根據(jù)仿真的結果和優(yōu)化的指標,控制邏輯綜合的方式和指向。因此,在設計周期中,要根據(jù)仿真的結果進行優(yōu)化和升級,以及對模型進行及時修改,以改
41、進系統(tǒng)或子系統(tǒng)的功能,更正設計錯誤,提高目標系統(tǒng)的工作速度,較少面積耗用,降低功耗和成本等。在這些過程中,由于設計的下一步是基于當前的設計,即使發(fā)現(xiàn)問題或做新的修改而需從頭開始設計,也不妨礙整體的設計效率。此外,vhdl設計的可移植性、eda平臺的通用性以及與硬件結構的無關性,使得前期的設計可以很容易地應用于新的設計項目,而且設計的周期可以顯著縮短。自頂向下的設計方法可以將系統(tǒng)分解為各個功能模塊,不同的模塊可以同時設計、仿真、測試,最后將不同的模塊集成為最終的系統(tǒng)模型,并對其進行綜合測試和評價。3.2.3 基于eda工具的fpga設計流程一個完整的eda設計流程既是自頂向下設計方法的具體實施途
42、徑,也是eda工具軟件本身的組成結構。使用vhdl硬件描述語言對數(shù)字電路進行設計,一般的設計流程可用圖3-4表示。具體的設計流程為:1設計要求的定義 在從事設計進行編寫vhdl代碼之前,必須先對設計目的和要求有一個明確的認識。例如,要設計的功能是什么?對所需的信號建立時間、時鐘/輸出時間、最大系統(tǒng)工作頻率、關鍵的路徑等這些要求,要有一個明確的定義,然后再選擇適當?shù)脑O計方式和相應的邏輯器件,進行總體方案的設計。2設計vhdl描述按照vhdl的程序格式要求,用vhdl程序語言將設計方案表述出來。vhdl語言的代碼與其它計算機程序語言的代碼有很大的不同,它是和硬件相關的,編寫vhdl 程序時必須清醒
43、地認識到是正在設計硬件,編寫的vhdl代碼必須能夠綜合到采用可編程邏輯器件來實現(xiàn)的數(shù)字邏輯之中。 圖3-4 基于fpga的eda開發(fā)流程3vhdl文本編輯 使用編輯器將編寫好的vhdl語言源程序輸入到計算機當中。編輯器可以使用eda開發(fā)環(huán)境自帶的編輯器,也可以使用計算機上任一款文本編輯器如記事本等。但是不要使用office word,因為word中帶有一些隱形字符,不適合作為任一程序語言的編輯器。 4源代碼的功能仿真 功能仿真是直接對vhdl描述的邏輯功能進行測試模擬,以了解其實現(xiàn)的功能是否滿足原設計要求。對于大型設計,采用vhdl仿真軟件對其進行功能仿真可以節(jié)省時間,可以在設計的早期階段檢測
44、到設計中的錯誤,從而進行修正,以便盡可能地減少對設計日程計劃的影響。因為對于大型設計,其綜合優(yōu)化、配置往往要花費好幾個小時,在綜合之前對源代碼仿真,就可以大大減少設計重復次數(shù)和修正錯誤的時間。但對于小型設計,往往不需要先對vhdl原代碼進行功能仿真,即使做了,意義也不大。因為對于小型設計,其綜合優(yōu)化、配置花費的時間不多,而且在綜合優(yōu)化之后,往往會發(fā)現(xiàn)為了實現(xiàn)性能目標,將需要修改原設計。在這種情況下,用戶事先在源代碼仿真時所花費的時間是毫無意義的,因為一旦改變設計,還必須重新再做仿真。 5綜合 進行綜合前要選擇最終使用的fpga目標器件,在輸入約束條件后,vhdl綜合器將對vhdl源代碼進行綜合
45、處理,最終產(chǎn)生fpga的配置網(wǎng)表文件。整個的綜合過程就是將設計者輸入的vhdl語言源程序,依據(jù)給定的硬件結構組件和約束控制條件進行編譯、優(yōu)化、轉換和綜合,最終獲得門級電路甚至更底層的電路描述網(wǎng)表文件。 6適配 將綜合器產(chǎn)生的網(wǎng)表文件配置于指定的目標器件中,使之產(chǎn)生最終的下載文件,這一過程成為適配。完成適配的eda工具稱為適配器,根據(jù)其功能也稱結構綜合器。適配器將綜合后的網(wǎng)表文件針對某一具體的目標器件進行邏輯映射操作,其中包括底層器件配置、邏輯分割、邏輯優(yōu)化、邏輯布局布線操作。適配完成后可以利用適配所產(chǎn)生的仿真文件作精確的時序仿真,同時產(chǎn)生可用于編程的下載文件。 7時序仿真 時序仿真就是接近真實
46、器件運行特性的仿真,仿真文件中已包含了器件硬件特性參數(shù),因而,仿真精度高。但時序仿真文件必須來自針對具體器件的綜合器與適配器。綜合后所得的網(wǎng)表文件通常作為fpga適配器的輸入文件,產(chǎn)生的仿真網(wǎng)表文件中包含了精確的硬件延遲信息。 8編程下載 把適配后生成的下載或配置文件,通過編程器或編程電纜向fpga下載,對目標 fpga器件進行實際配置,以使其構成所需要的電路系統(tǒng),便于進行硬件測試和驗證。 9硬件測試 最后將含有載入了設計的fpga的硬件系統(tǒng)進行統(tǒng)一測試,以便最終驗證設計項目在目標系統(tǒng)上的實際工作情況,以排除錯誤,改進設計。由以上eda設計流程可知,這些eda工具可以由fpga器件廠商單獨提供
47、,也可以統(tǒng)一包含在eda的集成開發(fā)環(huán)境當中。本課題設計所用的quartusii軟件包就是altera公司提供的fpga/cpld開發(fā)集成環(huán)境,altera公司是世界上最大的可編程邏輯器件供應商之一。3.3 頻率計的總體設計方案對輸入源的信號進行信號整形,然后在fpga的io口處采集輸入信號上升沿,若在一秒內采集到的數(shù)據(jù)個數(shù)大于一個,也即頻率輸入大于1hz,則對該信號計數(shù),在一秒內采集到的數(shù)據(jù)個數(shù)記為當前頻率;若采集到的信號不到1hz,也就是在1s內沒有一個有效信號采集到則開始計數(shù),一直到下一個上升沿到來,也就是一個信號周期時間t。然后用1s除以t得到當前頻率值。最終值顯示到數(shù)碼管上??傮w設計框
48、圖如下圖3-5所示:圖3-5 總體設計框圖3.4 頻率計各功能模塊的設計原理本設計方案主要由計數(shù)單元設計、數(shù)碼管拆分過程、led顯示除法器設計等幾部分模塊組成。下面將一一介紹其中的設計思路。3.4.1 計數(shù)單元設計 外部時鐘我們采用50mhz有源晶振,該設計可以提供穩(wěn)定且精準的時鐘源。在此處我們設計方法上采用了同時計數(shù)法,就是在50m晶振的驅動下,同時對輸入信號和時間計數(shù),1s的計數(shù)周期就是在50m晶振驅動50000000次。該部分代碼設計如下。計數(shù)單元外部時鐘部分代碼設計process (clk_50m)beginif (clk_50m'event and clk_50m =
49、9;1') thenif (not(rst_n) = '1') thent_cnt <= "0000000000000000000000000"tc_sel <= "01"t_1s_done <= "00"elseif (t_cnt >= to_stdlogicvector(one_second_num, 25) thent_cnt <= "0000000000000000000000000"t_1s_done <= "01"if (c
50、_cnt > "0000000000000000000000001") thentc_sel <= "01"elsetc_sel <= "00"end if;elset_1s_done <= "00"t_cnt <= t_cnt + "0000000000000000000000001"end if;end if;end if;end process;該部分設計同時做了仲裁功能,就是對1s時間內的輸入信號做判斷,如果沒有輸入有效信號,則認定為低于1hz,此時進入低頻
51、邏輯過程。否則進入高頻相對于低于1hz的邏輯過程。計數(shù)單元我們采用單獨的計數(shù)控制,只對輸入信號響應,可以實現(xiàn)精確的輸入記錄。該部分代碼設計如下:為了不影響計數(shù)精度,該部分只是負責輸入信號的計數(shù)。計數(shù)單元部分代碼設計:process (sig_i)beginif (sig_i'event and sig_i = '1') thenif (not(rst_n) = '1') thenc_cnt <= "0000000000000000000000000"elsec_cnt <= c_cnt + "0000000000
52、000000000000001"if (t_1s_done /= "00") thenc_cnt <= "0000000000000000000000000"end if;end if;end if;end process;3.4.2 數(shù)碼管拆分過程由于在顯示到數(shù)碼管過程里面,數(shù)據(jù)需要依次拆分到各個位,于是我們設計了拆分過程,原理就是對一個數(shù)采取分權相除法,依次取出各個位。具體設計代碼如下。該過程將數(shù)的最高位拆分出來保存到d_msb0寄存器里面。數(shù)碼管拆分過程示例代碼:when to_stdlogicvector(divide_num_i
53、dle, 5) =>temp_result <= cur_fx;if (t_ok = '1') thendivide_num_state <= to_stdlogicvector(divide_num_s1, 5);divide_start <= '1'elsedivide_start <= '0'divide_num_state <= to_stdlogicvector(divide_num_idle, 5);end if;when to_stdlogicvector(divide_num_s1, 5) =&
54、gt;div_focus <= "100110001001011010000000"div_num <= temp_result(23 downto 0);load <= '1'if (bsy = '1') thendivide_num_state <= to_stdlogicvector(divide_num_s10, 5);end if;when to_stdlogicvector(divide_num_s10, 5) =>if (not(bsy) = '1') thend_msb0 <
55、= res_quotient(3 downto 0);temp_result <= ('0' & res_remaind);divide_num_state <= to_stdlogicvector(divide_num_s2, 5);end if;3.4.3 除法器設計由于fpga并沒有提供硬件除法器,在實際設計過程中,除法會耗費大量的邏輯資源,于是我們單獨設計了除法器,并采用了循環(huán)相減法,具體的設計就是除數(shù)依次減去被除數(shù),一直減少到除數(shù)小于被除數(shù),此時記下此過程中的商數(shù)和余數(shù)就是所求的結果。實際測試顯示,該方法有效實現(xiàn)了除法過程。該部分代碼如下。除法器設
56、計部分代碼:process (clk)beginif (clk'event and clk = '1') thenif (not(rst_n) = '1') thenres_quotient_xhdl0 <= "0000"res_remaind <= "0000"bsy <= '0'divide_state <= to_stdlogicvector(divide_idle, 4);elsecase divide_state iswhen to_stdlogicvector(divide_idle, 4) =>load_r2 <= load_r1;if (load_pos_edge = '1') thendivide_state <= to_stdlogicvector(divide_s1, 4);div_num_r <= d
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度能源項目合同財產(chǎn)保全擔保書范本3篇
- 2025年度個人裝修貸款協(xié)議書3篇
- 二零二五年度60歲以上人員社區(qū)教育輔導勞動合同模板3篇
- 2024-2025學年新教材高中政治第3單元就業(yè)與創(chuàng)業(yè)單元綜合提升教案新人教版選擇性必修2
- 2025版智能交通管理系統(tǒng)建設運營履約擔保合同4篇
- 2025年度噴灌系統(tǒng)節(jié)能改造技術合同4篇
- 2025年度在線教育平臺兼職外教遠程教學合同4篇
- 2025年度宿舍管理員職業(yè)發(fā)展規(guī)劃聘用合同
- 二零二五年度駕校教練員職業(yè)發(fā)展承包合同3篇
- 2025年度馬賽克材料研發(fā)與應用采購合同4篇
- C及C++程序設計課件
- 帶狀皰疹護理查房
- 公路路基路面現(xiàn)場測試隨機選點記錄
- 平衡計分卡-化戰(zhàn)略為行動
- 國家自然科學基金(NSFC)申請書樣本
- 幼兒教師干預幼兒同伴沖突的行為研究 論文
- 湖南省省級溫室氣體排放清單土地利用變化和林業(yè)部分
- 材料設備驗收管理流程圖
- 培訓機構消防安全承諾書范文(通用5篇)
- (完整版)建筑業(yè)10項新技術(2017年最新版)
- 第8期監(jiān)理月報(江蘇版)
評論
0/150
提交評論