版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、i摘摘 要要伴隨著集成電路(ic)技術的發(fā)展,電子設計自動化(eda)逐漸成為重要的設計手段,已經廣泛應用于模擬與數字電路系統(tǒng)等許多領域。電子設計自動化是一種實現(xiàn)電系統(tǒng)或電子產品自動化設計的技術,它與電子技術、微電子技術的發(fā)展密切相關,它吸收了計算機科學領域的大多數最新研究成果,以高性能的計算機作為工作平臺,促進了工程發(fā)展。數字頻率計是一種基本的測量儀器。它被廣泛應用與航天、電子、測控等領域。采用等精度頻率測量方法具有測量精度保持恒定,不隨所測信號的變化而變化的特點。本文首先綜述了 eda 技術的發(fā)展概況,fpga/cpld 開發(fā)的涵義、優(yōu)缺點,vhdl 語言的歷史及其優(yōu)點,概述了 eda 軟
2、件平臺quartus;然后介紹了頻率測量的一般原理,利用等精度測量原理,通過 fpga 運用 vhdl 編程,利用 fpga(現(xiàn)場可編程門陣列)芯片設計了一個 8 位數字式等精度頻率計,該頻率計的測量范圍為 0-100mhz,利用 quartus 集成開發(fā)環(huán)境進行編輯、綜合、波形仿真,并下載到 cpld 器件中,經實際電路測試,仿真和實驗結果表明,該頻率計有較高的實用性和可靠性。 關鍵詞關鍵詞:電子設計自動化;vhdl 語言;頻率測量;數字頻率計iiabstractthe electronic design automation (eda) technology has become an i
3、mportant design method of analog and digital circuit system as the integrated circuits growing. the eda technology, which is closely connected with the electronic technology, microelectronics technology and computer science, can be used in designing electronic product automatically. digital frequenc
4、y meter is a basic measuring instruments. it is widely used in aerospace, electronics, monitoring and other fields. with equal precision frequency measurement accuracy to maintain a constant, and not with the measured signal varies.we firstly present some background information of eda, fpga/cpld,vhd
5、l and the eda software platform quartus in this thesis;then introduced the general principle of frequency measurement, utilization of precision measuring principle, using vhdl programming, use of fpga (field programmable gate array) chip design such as the precision of a digital frequency meter, thi
6、s frequency meters measuring range is 0-100mhz,use quartus integrated development environment for editing, synthesis, wave simulation, and download to the cpld device, by the actual circuit testing, simulation and experimental results show that the frequency meter has high practical and reliability.
7、keywords: electronic design automation,vhdl, frequency measurement,digital frequency meteriii目目 錄錄摘 要.iabstract.ii目 錄.iii1. 前言.12. 頻率測量.32.1 數字頻率計工作原理概述.32.2 測頻原理及誤差分析.42.3.1 常用測頻方案.42.3.2 等精度測頻原理.42.3.3 誤差分析.5本章小結.63. 數字頻率計的系統(tǒng)設計與功能仿真.73.1 系統(tǒng)的總體設計.73.2 信號源模塊.83.3 分頻器.93.4 測頻控制信號產生器.103.5 鎖存器.113.6 十
8、進制計數器.113.7顯示模塊.123.7.1 顯示模塊設計.123.7.2 顯示電路.133.7.3 譯碼器.14本章小結.14結 論.15致 謝.16參考文獻.17附錄一 頻率計頂層文件.18附錄二 信號源模塊源程序.19附錄三 分頻器源程序.20附錄四 測頻控制信號發(fā)生器源程序.21iv附錄五 32 位鎖存器源程序.22附錄六 有時鐘使能的十進制計數器的源程序.23附錄七 顯示模塊源程序.2411. . 前言前言eda 是指以計算機大規(guī)??删幊踢壿嬈骷拈_發(fā)軟件及實驗開發(fā)系統(tǒng)為設計工具,通過有關開發(fā)軟件,自動完成用軟件方式設計的電子系統(tǒng)到硬件系統(tǒng)的邏輯編譯、邏輯化簡、邏輯分割、邏輯綜合及
9、優(yōu)化、邏輯布局布線、邏輯仿真,直至對于特定目標芯片的適配編譯、邏輯映射、編程下載等工作,最終形成集成電子系統(tǒng)或專用集成芯片的一門新技術1。eda 技術高級階段采用一種新的設計概念:自頂而下(top_down)的設計程序和并行工程(concurrent engineering )的設計方法,設計者的精力主要集中在所要電子產品的準確定義上,eda 系統(tǒng)去完成電子產品的系統(tǒng)級至物理級的設計。此階段 eda 技術的主要特征是支持高級語言對系統(tǒng)進行描述,高層次綜合(high level synthesis )理論得到了巨大的發(fā)展,可進行系統(tǒng)級的仿真和綜合。vhdl(超高速集成電路硬件描述語言)是由美國國
10、防部開發(fā)的一種快速設計電路的工具,目前已經成為 ieee(the institute of electrical and electronics engineers)的一種工業(yè)標準硬件描述語言。相比傳統(tǒng)的電路系統(tǒng)的設計方法,vhdl 具有多層次描述系統(tǒng)硬件功能的能力,支持自頂向下(top_down)和基于庫(librarybased)的設計的特點,因此設計者可以不必了解硬件結構。vhdl 主要用于描述數字系統(tǒng)的結構、行為、功能和接口,非常適用于可編程邏輯芯片的應用設計。與其它的 hdl 相比,vhdl 具有更強的行為描述能力,從而決定了它成為系統(tǒng)設計領域最佳的硬件描述語言。強大的行為描述能力是
11、避開具體的器件結構,從邏輯行為上描述和設計大規(guī)模電子系統(tǒng)的重要保證。就目前流行的 eda 工具和vhdl 綜合器而言,將基于抽象的行為描述風格的 vhdl 程序綜合成為具體的 fpga和 cpld 等目標器件的網表文件己不成問題。vhdl 語言在硬件設計領域的作用將與c 和 c+在軟件設計領域的作用一樣,在大規(guī)模數字系統(tǒng)的設計中,它將逐步取代如邏輯狀態(tài)表和邏輯電路圖等級別較低的繁瑣的硬件描述方法,而成為主要的硬件描述工具,它將成為數字系統(tǒng)設計領域中所有技術人員必須掌握的一種語言。vhdl 和可編程邏輯器件的結合作為一種強有力的設計方式,將為設計者的產品上市帶來創(chuàng)紀錄的速度。從系統(tǒng)設計入手,在頂
12、層進行系統(tǒng)方框圖的劃分和結構設計,在方框圖一級用 vhdl 對電路的行為進行描述,并進行仿真和糾錯,然后在系統(tǒng)一級進行驗證,最后再用邏輯綜合優(yōu)化工具生成具體的門級邏輯電路的網表,下載到具體的 cpld 器件中去,從而實現(xiàn)可編程的專用集成電路(asic)的設計。cpld 和 fpga 建立內部可編程邏輯連接關系的編程技術有三種:基于反熔絲技術的器件只允許對器件編程一次,編程后不能修改。其優(yōu)點是集成度、工作頻率和可靠性都很高,2適用于電磁輻射干擾較強的惡劣環(huán)境?;?eeprom 內存技術的可編程邏輯芯片能夠重復編程100 次以上,系統(tǒng)掉電后編程信息也不會丟失。編程方法分為在編程器上編程和用下載電
13、纜編程。用下載電纜編程的器件,只要先將器件裝焊在印刷電路板上,通過 pc, sun 工作站、ate(自動測試儀)或嵌入式微處理器系統(tǒng),就能產生編程所用的標準 5v, 3.3v 或 2.5v 邏輯電平信號,也稱為isp ( in system programmable)方式編程,其調試和維修也很方便。基于 sram 技術的器件編程數據存儲于器件的 ram 區(qū)中,使之具有用戶設計的功能。在系統(tǒng)不加電時,編程數據存儲在eprom、硬盤、或軟盤中。系統(tǒng)加電時將這些編程數據實時寫入可編程器件,從而實現(xiàn)板級或系統(tǒng)級的動態(tài)配置。數字頻率計是數字電路中的一個典型應用,實際的硬件設計用到的器件較多,連線比較復雜
14、,而且會產生比較大的延時,造成測量誤差,可靠性差。隨著復雜可編程邏輯器件(cpld)的廣泛應用,以 eda 工具作為開發(fā)手段,運用 vhdl 語言。將使整個系統(tǒng)大大簡化。提高整體的性能和可靠性。數字頻率計是通信設備、音、視頻等科研生產領域不可缺少的測量儀器。采用vhdl 編程設計實現(xiàn)的數字頻率計,除被測信號的整形部分、鍵輸入部分和數碼顯示部分外,其余全部在一片 fpga 芯片上實現(xiàn)。整個系統(tǒng)非常精簡,且具有靈活的現(xiàn)場可更改性。本文用 vhdl 在 cpld 器件上實現(xiàn)一種 8 位數字頻率計測頻系統(tǒng),能夠用十進制數碼顯示被測信號的頻率,不僅能夠測量正弦波、方波和三角波等信號的頻率,而且能對其他多
15、種頻率信號進行測量。具有體積小、可靠性高、功耗低的特點。2. . 頻率測量頻率測量2.1 數字頻率計工作原理概述數字頻率計工作原理概述數字頻率計的設計原理實際上是測量單位時間內的周期數。這種方法免去了實測以前的預測,同時節(jié)省了劃分頻段的時間,克服了原來高頻段采用測頻模式而低頻段3采用測周期模式的測量方法存在換擋速度慢的缺點。采用一個標準的基準時鐘,在單位時間(1s)里對被測信號的脈沖數進行計數,即為信號的頻率。由于閘門的起始和結束時刻對于信號來說是隨機的,將會有一個脈沖周期的量化誤差。進一步分析測量準確度:設待測信號脈沖周期為 tx,頻率為 fx,當測量時間為 t=1s 時,測量準確度為=tx
16、/t=1/fx。由此可知直接測頻法的測量準確度與信號的頻率有關:當待測信號頻率較高時,測量準確度也較高,反之測量準確度也較低。因此直接測頻法只適合測量頻率較高的信號,不能滿足在整個測量頻段內的測量精度保持不變的要求。 為克服低頻段測量的不準確問題,采用門控信號和被測信號對計數器的使能信號進行雙重控制,大大提高了準確度。當門控信號為 1 時,使能信號并不為 1,只有被測信號的上升沿到來時,使能端才開始發(fā)送有效信號,兩個計數器同時開始計數。當門控信號變?yōu)?0 時,使能信號并不是立即改變,而是當被測信號的下一個上升沿到來時才變?yōu)?0,計數器停止計數。因此測量的誤差最多為一個標準時鐘周期。當采用100
17、mhz 的信號作為標準信號時,誤差最大為 0.01s。計算每秒鐘內待測信號脈沖個數。這就要求計數使能信號 tsten 能產生一個 1 秒脈寬的周期信號,并對頻率計的每一計數器 cnt10 的 ena 使能端進行同步控制。當tsten 為高電平時,允許計數;低電平時,停止計數,并保持其所計的數。在停止計數期間,首先需要一個鎖存信號 load 的上跳沿將計數器在前 1 秒鐘的計數值鎖存進32 位鎖存器 reg32b 中,并由外部的譯碼器譯出并穩(wěn)定顯示。鎖存信號之后,必須由清零信號 clr_cnt 對計數器進行清零,為下一秒鐘的計數操作做準備。當系統(tǒng)正常工作時,脈沖發(fā)生器提供的 1 hz 的輸入信號
18、,經過測頻控制信號發(fā)生器進行信號的變換,產生計數信號,被測信號通過信號整形電路產生同頻率的矩形波,送入計數模塊,計數模塊對輸入的矩形波進行計數,將計數結果送入鎖存器中,保證系統(tǒng)可以穩(wěn)定顯示數據,顯示譯碼驅動電路將二進制表示的計數結果轉換成相應的能夠在數碼顯示管上可以顯示的十進制結果。在數碼顯示管上可以看到計數結果3。2.2 測頻原理及誤差分析測頻原理及誤差分析2.3.1 常用測頻方案常用測頻方案頻率測量方案方案一:采用周期法。通過測量待測信號的周期并求其倒數,需要有標準倍的頻率,在待測信號的一個周期內,記錄標準頻率的周期數,這種方法的計數值會產生最4大為1 個脈沖誤差,并且測試精度與計數器中記
19、錄的數值有關,為了保證測試精度,測周期法僅適用于低頻信號的測量。方案二:采用直接測頻法。直接測頻法就是在確定的閘門時間內,記錄被測信號的脈沖個數。由于閘門時間通常不是待測信號的整數倍,這種方法的計數值也會產生最大為1 個脈沖誤差。進一步分析測量準確度:設待測信號脈沖周期為 tx,頻率為fx,當測量時間為 t=1s 時,測量準確度為=tx/t=1/fx。由此可知直接測頻法的測量準確度與信號的頻率有關:當待測信號頻率較高時,測量準確度也較高,反之測量準確度也較低。因此直接測頻法只適合測量頻率較高的信號,不能滿足在整個測量頻段內的測量精度保持不變的要求。方案三:采用等精度頻率測量法,測量精度保持恒定
20、,不隨所測信號的變化而變化。在快速測量的要求下,要保證較高精度的測頻,必須采用較高的標準頻率信號。單片機受本身時鐘頻率和若干指令運算的限制,測頻速度較慢,無法滿足高速、高精度的測頻要求;而采用高集成度、高速的現(xiàn)場可編程門陣列 fpga 為實現(xiàn)高速、高精度的測頻提供了保證。本設計所采用的測頻方法就是等精度頻率測量法,下面我們將對等精度頻率測量法做進一步介紹。2.3.2 等精度測頻原理等精度測頻原理等精度測頻方法是在直接測頻方法的基礎上發(fā)展起來的。它的閘門時間不是固定的值,而是被測信號周期的整數倍,即與被測信號同步,因此,避除了對被測信號計數所產生1 個字誤差,并且達到了在整個測試頻段的等精度測量
21、。其測頻原理如圖2.1 所示。在測量過程中,有兩個計數器分別對標準信號和被測信號同時計數。首先給出閘門開啟信號(預置閘門上升沿),此時計數器并不開始計數,而是等到被測信號的上升沿到來時,計數器才真正開始計數。然后預置閘門關閉信號(下降沿)到時,計數器并不立即停止計數,而是等到被測信號的上升沿到來時才結束計數,完成一次測量過程。可以看出,實際閘門時間 t 與預置閘門時間 t1 并不嚴格相等,但差值不超過被測信號的一個周期4。5圖 2.1 等精度測頻原理波形圖等精度測頻的實現(xiàn)方法可簡化為圖 2.2 所示。cnt1 和 cnt2 是兩個可控計數器,標準頻率信號從 cnt1 的時鐘輸入端 clk 輸入
22、;經整形后的被測信號從 cnt2 的時鐘輸入端 clk 輸入。當預置門控信號為高電平時,經整形后的被測信號的上升沿通過 d觸發(fā)器的 q 端同時啟動 cnt1 和 cnt2。cnt1、cnt2 同時對標準頻率信號和經整形后的被測信號進行計數,分別為 ns與 nx。當預置門信號為低電平的時候,后而來的被測信號的上升沿將使兩個計數器同時關閉,所測得的頻率為(fs/ns)*nx。則等精度測量方法測量精度與預置門寬度的標準頻率有關,與被測信號的頻率無關。在預置門時間和常規(guī)測頻閘門時間相同而被測信號頻率不同的情況下,等精度測量法的測量精度不變。圖 2.2 等精度測頻實現(xiàn)原理圖62.3.3 誤差分析誤差分析
23、設在一次實際閘門時間 t 中計數器對被測信號的計數值為 nx,對標準信號的計數值為 ns。標準信號的頻率為 fs,則被測信號的頻率如式(2-1): fx=(nx/ns)fs (2-1)由式 1-1 可知,若忽略標頻 fs 的誤差,則等精度測頻可能產生的相對誤差如式(2-2): =(|fxe-fx|/fxe)100% (2-2)其中 fxe 為被測信號頻率的準確值。在測量中,由于 fx 計數的起停時間都是由該信號的上升沿觸發(fā)的,在閘門時間 t內對 fx 的計數 nx 無誤差(t=nxtx);對 fs 的計數 ns 最多相差一個數的誤差,即|ns|1,其測量頻率如式(2-3):fxe=nx/(ns
24、+ns)fs (2-3)將式(2-1)和(2-3)代入式(2-2),并整理如式(2-4):=|ns|/ns1/ns=1/(tfs) (2-4)由上式可以看出,測量頻率的相對誤差與被測信號頻率的大小無關,僅與閘門時間和標準信號頻率有關,即實現(xiàn)了整個測試頻段的等精度測量。閘門時間越長,標準頻率越高,測頻的相對誤差就越小。標準頻率可由穩(wěn)定度好、精度高的高頻率晶體振蕩器產生,在保證測量精度不變的前提下,提高標準信號頻率,可使閘門時間縮短,即提高測試速度5。本章小結本章小結本章從各個方面說明了頻率計的工作原理,介紹了頻率測量的原理和誤差的分析,通過對各種頻率測量方法的比對,對等精度頻率計的實現(xiàn),在理論上
25、起到了作用。 73. 數字頻率計的系統(tǒng)設計與功能仿真數字頻率計的系統(tǒng)設計與功能仿真3.1 系統(tǒng)的總體設計系統(tǒng)的總體設計當系統(tǒng)正常工作時,由系統(tǒng)時鐘提供的 100mhz 的輸入信號,經過信號源模塊,先通過 100 分頻產生 1mhz 的時鐘信號,再將 1mhz 的時鐘信號分頻產生多種頻率輸出,其中 1hz 的輸出頻率被作為控制模塊的時鐘輸入,7812hz 的輸出頻率被作為顯示模塊的時鐘輸入,由控制模塊產生的計數使能信號 testen 和清零信號 clr 對計數模塊進行控制,而由其產生的鎖存信號 load 對鎖存模塊進行控制,一旦計數使能信號為高電平,并且時鐘上升沿到來,計數器便開始正常計數,清零
26、信號到來則計數清零,而當鎖存信號為高電平時,數據便被鎖存器鎖存,然后將鎖存的數據輸出到顯示模塊顯示出來,數據鎖存保證系統(tǒng)可以穩(wěn)定顯示數據,顯示譯碼驅動電路將二進制表示的計數結果轉換成相應的能夠在數碼顯示管上可以顯示的十進制結果。在數碼顯示管上可以看到計數結果。數字頻率計的原理框圖如圖 3.1 所示。主要由 5 個模塊組成,分別是:信號源模塊、控制模塊、計數模塊、鎖存器模塊和顯示器模塊6。圖 3.1 數字頻率計的原理框圖根據數字頻率計的系統(tǒng)原理,cnt 控制信號發(fā)生器。testctl 的計數使能信號 testen能產生一個 1 s 寬的周期信號,并對頻率計的每一計數器 cnt10 的 ena 使
27、能端進行同步控制:當 testen 高電平時允許計數、低電平時停止計數。8reg32b 為鎖存器。在信號 load 的上升沿時,立即對模塊的輸入口的數據鎖存到reg32b 的內部,并由 reg32b 的輸出端輸出,然后,七段譯碼器可以譯碼輸出。在這里使用了鎖存器,好處是可以穩(wěn)定顯示數據,不會由于周期性的清零信號而不斷閃爍。 cnt10 為十進制計數器。有一時鐘使能輸入端 ena,用于鎖定計數值。當高電平時允許計數,低電平時禁止計數。將八個十進制計數器 cnt10 級聯(lián)起來實現(xiàn) 8 位十進制計數功能2,7 。 disply 為七段譯碼顯示驅動電路,可以將頻率計數的結果譯成能在數碼管上顯示的相對應
28、的阿拉伯數字,便于讀取測量的結果。為了實現(xiàn)系統(tǒng)功能,測頻控制信號發(fā)生器 testctl、計數器 cnt10、鎖存器 reg32b 存在一個工作時序的問題,設計時需要綜合考慮。8位數字頻率計的頂層框圖(endfreq.bdf),設計實現(xiàn)包括信號源模塊(f1mhz、cnt)、頻率計模塊(freq)和顯示模塊(display)三大模塊。下面分別介紹三個模塊的結構和實現(xiàn)方法。 3.2 信號源模塊信號源模塊信號源是為了產生 1mhz 的門控信號和待測的定頻信號,而對輸入系統(tǒng)時鐘clk(50mhz)進行分頻的模塊,設計源代碼 pin1mhz.vhd 對輸入系統(tǒng)時鐘clk(50mhz)進行分頻產生 1mhz
29、 信號。pin1mhz 的封裝圖如 3.2 所示,圖中 clkin 為接入的 100mhz 信號,圖中clkout 為接到 cnt 的 clk 的 1mhz 的信號。clkin clkoutpin1mhz_1inst圖3.2 pin1mhz封裝圖pin1mhz 的工作時序仿真圖如圖 3.3 所示。圖 3.3 信號源模塊仿真圖9從 pin1mhz 的工作時序仿真圖可以看出:由系統(tǒng)時鐘提供的 100mhz 的輸入信號,經過信號源模塊,通過 100 分頻產生 1mhz 的時鐘信號,達到了設計所需的預期效果。3.3 分頻器分頻器此程序要求將1mhz的輸入頻率分別進行21分頻(產生500khz的輸出頻f
30、req500k)、23分頻(產生125 khz的輸出頻率freq125k)、25 分頻(產生31250hz的輸出頻freq31250)、27分頻(產生7812hz的輸出頻率freq7812)、29分頻(產生1953hz的輸出頻率freq1953)、211分頻(產生488hz的輸出頻率freq488)、213分頻(產生1hz的輸出頻率freq1)。 cnt的封裝圖如圖3.4,圖中clk為pin1mhz輸入的1mhz信號,freq1為輸出給控制信號發(fā)生器的1hz信號,7812hz的輸出頻率freq7812被作為顯示模塊的時鐘輸入,freq 488、freq1953、freq31250、freq12
31、5k、freq500k作為待測信號。clkfreq1freq488freq1953freq7812freq31250freq125kfreq500kcntinst圖3.4cnt封裝圖cnt 的工作時序仿真圖如圖 3.5 所示。圖 3.5 cnt 的時序仿真圖當 1mhz 頻率波形輸入后,分別產生了設計所需要的 500khz 的輸出頻freq500k,125 khz 的輸出頻率 freq125k,31250hz 的輸出頻 freq31250,7812hz 的輸10出頻率 freq7812,1953hz 的輸出頻率 freq1953,488hz 的輸出頻率 freq488,1hz 的輸出頻率 fr
32、eq1。3.4 測頻控制信號產生器測頻控制信號產生器控制模塊的作用是產生測頻所需要的各種控制信號。控制信號的標準輸入時鐘為1hz,每兩個時鐘周期進行一次頻率測量。該模塊產生的 3 個控制信號,分別為tsten,load,clr_cnt.clr_cnt 信號用于在每次測量開始時,對計數器進行復位,以清除上次測量的結果,該復位信號高電平有效,持續(xù)半個時鐘周期的時間。tsten為計數允許信號,在 tsten 信號的上升沿時刻計數模塊開始對輸入信號的頻率進行測量,測量時間恰為一個時鐘周期(正好為單位時間 1s),在此時間里被測信號的脈沖數進行計數,即為信號的頻率。然后將值鎖存,并送到數碼管顯示出來。設
33、置鎖存器的好處是使顯示的數據穩(wěn)定,不會由于周期性的清零信號而不斷閃爍。在每一次測量開始時,都必須重新對計數器清 07。測頻控制產生器如圖 3.6,圖中 clk 接 cnt 的 freq1 的 1hz 的信號,tsten 為計數允許信號,接計數器 cnt10 的 ena,clr_cnt 信號用于在每次測量開始時,對計數器進行復位,接計數器 cnt10 的 clr,load 接鎖存器的 load。clktstenclr_cntloadtestctlinst圖 3.6 testctl 的封裝圖測頻控制信號發(fā)生器 testctl 的工作時序圖,控制模塊的幾個控制信號的時序關系圖如圖 3.7 所示。圖3
34、.7 testctl的時序仿真圖從圖中可看出,計數使能信號 tsten 在 1s 的高電平后,利用其反相值的上跳沿產生一個鎖存信號 load,隨后產生清 0 信號上跳沿 clr_cnt。為了產生這個時序圖11需首先建立一個由 d 觸發(fā)器構成的二分頻器,在每次時鐘 clk 上升沿到來時令其翻轉。其中,控制信號時鐘 clk 的頻率取 1hz,而信號 tsten 的脈寬恰好為 1s,可以用作閘門信號。此時,根據測頻的時序要求,可得出信號 load 和 clr_cnt 的邏輯描述。由圖可知,在計數完成后,計數使能信號 teten 在 1s 的高電平后,利用其反相值的上跳沿產生一個鎖存信號 load,0
35、.5s 后,clr_cnt 產生一個請零信號上跳沿。3.5 鎖存器鎖存器鎖存器模塊也是必不可少的,測量模塊測量完成后,在load信號的上升沿時刻將測量值鎖存到寄存器中,然后輸出到顯示模塊。鎖存器是起數據保持的作用,它將會把數據保存到下次觸發(fā)或復位。主要是主從觸發(fā)器組成的。用于存儲數據來進行交換,使數據穩(wěn)定下來保持一段時間不變化,直到新的數據將其替換。鎖存器reg32b的封裝如圖3.8,圖中l(wèi)oad接控制測頻產生器testctl的load,而din31.0接計數器cnt10的cq3.0,dout31.0接顯示器display的in端。loaddin31.0dout31.0reg32binst圖3
36、.8 reg32b的封裝圖32 位鎖存器 reg32b 的工作時序圖如圖 3.9。圖 3.9 reg32b 的時序仿真圖本程序是用來實現(xiàn)鎖存器模塊的功能,但它的程序相當簡單,在鎖存信號 load 的上升沿到來時,鎖存器將測量值鎖存到寄存器,然后輸出到顯示模塊。但從仿真圖 3.9中可以明顯的看出,鎖存輸出并不是立即進行的,而是經歷了一個短暫的延時,這是由于硬件引起的。3.6 十進制十進制計數器計數器計數器模塊是由 8 個帶有異步清零端,進位信號輸出的模為 10 的計數模塊級連而成。通過(freq.vhd)進行元件例化實現(xiàn)。此十進制計數器的特殊之處是,有一時鐘使能12輸入端 ena,用于鎖定計數器
37、。當高電平計數允許,低電平時計數禁止。計數器模塊用于對輸入信號的脈沖進行計數,該模塊必須有計數允許、異步清零等端口,以便于控制模塊對其進行控制。cnt10 的封裝如圖 3.10,其中 clr 為復位接 testctl 的 clr_cnt 端,ena接 testctl 的 tsten 端,cq3.0接鎖存器的 dout31.0端。clkclrenacq3.0carry_outcnt10inst圖 3.10 cnt10 的封裝圖有時鐘使能的十進制計數器cnt10的工作時序仿真如圖3.11。圖 3.11 cnt10 的時序仿真圖此程序模塊實現(xiàn)的功能是帶使能端的 10 進制計數。程序要求只有當使能端信
38、號為高電平時計數器才能正常工作,每個時鐘的上升沿到來時計數器加 1,因為這里要實現(xiàn)的是 10 進制計數,所以當計數到 10 時計數器清零,同時產生進位信號,這里的進位信號僅為一個脈沖信號,一旦計數從 10 變?yōu)?1,脈沖信號立即變?yōu)榈碗娖健M瑫r該計數器也應帶有清零信號,一旦清零信號為高電平,計數器立即清零。3.7顯示模塊顯示模塊3.7.1 顯示模塊設計顯示模塊設計led有段碼和位碼之分,所謂段碼就是讓led顯示出八位數據,一般情況下要通過一個譯碼電路,將輸入的4位2進制數轉換為與led顯示對應的8位段碼。位碼也就是led的顯示使能端,對于共陰級的led而言,低電平使能,在本設計中設計了一個3位
39、的循環(huán)計數器,將計數結果輸入到譯碼器,譯碼結果輸出即可依次使能每個led。例如:要讓8個led同時工作顯示數據,就是要不停的循環(huán)掃描每一個led,并在使能每一個led的同時,輸入所需顯示的數據對應的8位段碼。雖然8個led是依次顯示,但是受視覺分辨率的影響,看到的現(xiàn)象是8個led同時工作。display 模塊的頂層圖如下13所示。cnt計數產生掃描信號(位碼),led模塊用于查表產生led段碼輸出。圖3.12位display的封裝圖。圖中in0in7接鎖存器的dout31.0端。in73.0in63.0in53.0in43.0in33.0in23.0in13.0in03.0clklout76.
40、0sel2.0displayinst圖3.12 display的封裝圖display 工作時序圖如下圖 3.13。圖 3.13 disply 工作時序圖用 8 個 led 將待測頻率顯示出來,將通過十進制計數器的時鐘信號 clk,輸出為時鐘信號計數譯碼后的顯示驅動端,在八段 led 譯碼為對應的八段二進制編碼,并由數碼顯示器顯示出來。圖 3.13 中為相應二進制編碼與相對應的屏顯數字。143.7.2 顯示電路顯示電路圖 3.14 display 硬件結構圖此部分如圖 3.14,圖中主要由 07 循環(huán)累加器、3-8 譯碼器、bcd-7 段顯示譯碼器、8 選 1 多路數據開關和 8 個 led 顯
41、示器組成的掃描數碼顯示器。3.7.3 譯碼器譯碼器74138 譯碼器作為數據分配器的功能表如表 1 所示。表 1 74ls138 編碼器作為數據分配器的功能表輸入輸出en1 en2b en2a c b ay0 y1 y2 y3 y4 y5 y6 y7 0 0 x x x x 1 1 1 1 1 1 1 1 1 0 d 0 0 0 d 1 1 1 1 1 1 1 1 0 d 0 0 1 1 d 1 1 1 1 1 1 1 0 d 0 1 0 1 1 d 1 1 1 1 1 1 0 d 0 1 1 1 1 1 d 1 1 1 1 1 0 d 1 0 0 1 1 1 1 d 1 1 1 1 0 d
42、1 0 1 1 1 1 1 1 d 1 1 1 0 d 1 1 0 1 1 1 1 1 1 d 1 1 0 d 1 1 1 1 1 1 1 1 1 1 d 74ls138 的 3 個譯碼輸入 c、b、a 用做數據分配器的地址輸入,8 個輸出 y0y715用做 8 路數據輸出,3 個輸入控制端中的 en2a用做數據輸入端,en2b接地,en1 用做使能端6。當 en1=1,允許數據分配,若需要將輸入數據轉送至輸出端 y2,地址輸入應為 cba=010,由功能表可得: (3-1)21222()abaygggcbag而其余輸出端均為高電平。因此,當地址 cba=010 時,只有輸出端 y2 得到與輸
43、入相同的數據波形。 本章小結本章小結本章介紹了頻率計的各個軟件組成模塊,通過運用 quartus 集成開發(fā)環(huán)境對各功能模塊進行編輯、綜合、波形仿真,對各功能模塊的的仿真圖,及其仿真功能做了基本講解,對本設計的實現(xiàn)起到了主要作用。結結 論論本設計對等精度頻率計進行了系統(tǒng)的設計。首先介紹了頻率測量的一般方法,著重介紹等精度測頻原理并進行了誤差分析,利用等精度測量原理,通過 fpga 運用vhdl 編程,利用 fpga(現(xiàn)場可編程門陣列)芯片設計了一個 8 位數字式等精度頻率計,該頻率計的測量范圍為 0-100mhz,利用 quartus 集成開發(fā)環(huán)境進行編輯、綜合、波形仿真,并下載到 cpld 器
44、件中,經實際電路測試,仿真和實驗結果表明,該頻率計有較高的實用性和可靠性,達到預期的結果。和傳統(tǒng)的頻率計相比,利用fpga 設計的頻率計簡化了電路板設計,提高了系統(tǒng)設計的實用性和可靠性,實現(xiàn)數字系統(tǒng)的軟件化,這也是數字邏輯設計的趨勢。本次畢業(yè)設計中,我除了對相關的專業(yè)知識以及相關的實驗操作進行了回顧,還有許多其他的收獲,比如在繪制論文中所需要的相關的電路圖的過程中,我還學會使用word繪圖,這次畢業(yè)設計不但讓我對本專業(yè)的相關基礎知識進行了很好的復習,還對原由書本上的知識進行了拓展和延伸,畢業(yè)設計不但鍛煉了我的動手能力,也鍛煉了我處理問題的能力,并且學會了許多新的知識。16致致 謝謝通過兩個多月
45、的努力,參閱了大量的文獻、專著、和資料,才使我有了較為清晰的思路來完成本課題的設計。設計也引用了其中的部分內容,在此,對這些文獻、專著和資料的作者和編著們表示感謝。在這里同時也要感謝指導老師徐進老師,由于對以前所學知識的遺忘,我在最初的一個星期里總是不知道該怎么入手,正是有了徐進老師的指點我的畢業(yè)設計才得以順利進行。在論文的撰寫和設計模塊的仿真過程中,我也得到了很多同學和朋友的幫助與支持,在這里一并表示感謝。同時,也向我的家人致以真心的謝意!他們在我的大學階段中給予我的一切是無法用言語來表達的。最后,衷心感謝各位評閱老師!感謝您們在百忙之中參與我的論文評閱工作。謝謝!17 參考文獻參考文獻1
46、王紫婷,吳蓉,張彩珍,吳曉春.eda 技術與應用.蘭州:蘭州大學出版社,2003 年 4 月2 譚會生,張昌凡.eda 技術及應用.西安:西安電子科技大學出版社,2004 年 4 月3 林敏,方穎立.vhdl 數字系統(tǒng)設計與高層次綜合.北京:電子工業(yè)出版社,2002 年 1 月4 李國洪,沈明山.可編程器件 eda 技術與實踐.北京:機械工業(yè)出版社,2004 年 7 月5 王鎖萍.電子設計自動化教程.成都:電子科技大學出版社,2000 年 2 月6 周國富.現(xiàn)場可編程門陣列及應用.電子技術應用,1995 年 6 月18附錄一附錄一 頻率計頂層文件頻率計頂層文件clkfreq1freq488fr
47、eq1953freq7812freq31250freq125kfreq500kcntinstclkclrenacq3.0carry_outcnt10inst1clkclrenacq3.0carry_outcnt10inst2clkclrenacq3.0carry_outcnt10inst3clkclrenacq3.0carry_outcnt10inst4clkclrenacq3.0carry_outcnt10inst5clkclrenacq3.0carry_outcnt10inst6clkclrenacq3.0carry_outcnt10inst7clkclrenacq3.0carry_out
48、cnt10inst8in73.0in63.0in53.0in43.0in33.0in23.0in13.0in03.0clklout76.0sel2.0displayinst9clkin clkoutpin1mhz_1inst10loaddin31.0dout31.0reg32binst11clktstenclr_cntloadtestctlinst12vccclkinputlout76.0outputsel2.0outputsd3.0sd7.4sd11.8sd19.16sd23.20sd27.24sd31.28sd15.12sd31.0dout31.019附錄二附錄二 信號源模塊源程序信號源模
49、塊源程序library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity pin1mhz_1 is port (clkin : in std_logic; clkout : out std_logic); end pin1mhz_1; architecture a of pin1mhz_1 is begin process(clkin) variable cnttemp : integer range 0 to 99; begin if clkin=1 and clkinevent then i
50、f cnttemp=99 then cnttemp:=0; else if cnttemp50 then clkout=1; else clkout=0; end if; cnttemp:=cnttemp+1; end if; end if; end process; end a;20附錄三附錄三 分頻器源程序分頻器源程序library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity cnt is port(clk : in std_logic; -1mhz 輸入 freq1 : out st
51、d_logic; -1hz 輸出 freq488 : out std_logic; -488hz 輸出 freq1953 : out std_logic; -1953hz 輸出 freq7812 : out std_logic; -7812hz 輸出 freq31250: out std_logic; -31250hz 輸出 freq125k : out std_logic; -125khz 輸出 freq500k : out std_logic ); -500khz 輸出 end cnt; architecture behv of cnt is signal temp: std_logic_
52、vector(19 downto 0); begin process(clk) begin if clkevent and clk =1 then if temp=11110100001000111111 then temp=00000000000000000000; else temp=temp+1; end if; end if; end process; freq1=temp(19); freq488=temp(10);freq1953=temp(8); freq7812=temp(6); freq31250=temp(4); freq125k=temp(2); freq500k=tem
53、p(0); end behv; 21附錄四附錄四 測頻控制信號發(fā)生器源程序測頻控制信號發(fā)生器源程序library ieee;use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all;entity testctl is port ( clk: in std_logic; -1 hz 測頻控制時鐘 tsten: out std_logic; -計數器時鐘使能 clr_cnt: out std_logic; -計數器清零 load: out std_logic); -輸出鎖存信號end testctl;architecture art of testctl is signal div2clk :std_logic;signal clr :std_logic;signal loadcnt :std_logic;begin process ( clk ) is begin if clkevent and clk= 1 -1 hz 時鐘二分頻 then div2clk=not div2clk; end if ; end process; process ( clk,div2clk ) begin if clk= 0 and div2clk = 0 then -產生計
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024特許加盟合同協(xié)議范本
- 2025年度礦產資源整合采礦權抵押交易合同樣本3篇
- 2025年度圓通快遞快遞員權益保障及培訓合同3篇
- 2025年度工業(yè)園區(qū)廠房及倉儲場地租賃合同范本2篇
- 2025年度物流數據分析與挖掘服務合同4篇
- 2024美容美發(fā)連鎖加盟合同
- 2024裝飾工程承包合同書
- 2025年度物流車輛數據信息服務合同4篇
- 2024版設備銷售與服務合同
- 2025年度MCN藝人品牌合作推廣合同3篇
- 2025年河北供水有限責任公司招聘筆試參考題庫含答案解析
- Unit3 Sports and fitness Discovering Useful Structures 說課稿-2024-2025學年高中英語人教版(2019)必修第一冊
- 農發(fā)行案防知識培訓課件
- 社區(qū)醫(yī)療抗菌藥物分級管理方案
- NB/T 11536-2024煤礦帶壓開采底板井下注漿加固改造技術規(guī)范
- 2024年九年級上德育工作總結
- 2024年儲罐呼吸閥項目可行性研究報告
- 除氧器出水溶解氧不合格的原因有哪些
- 沖擊式機組水輪機安裝概述與流程
- 新加坡SM2數學試題
- 畢業(yè)論文-水利水電工程質量管理
評論
0/150
提交評論