




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、課程設計說明書1 緒論eda技術是以大規模可編程邏輯器件為設計載體,以硬件語言為系統邏輯描述的主要方式,以計算機、大規模可編程邏輯器件的開發軟件及實驗開發系統為設計工具,通過有關的開發軟件,自動完成用軟件設計的電子系統到硬件系統的設計,最終形成集成電子系統或專用集成芯片的一門新技術。其設計的靈活性使得eda技術得以快速發展和廣泛應用。本文以quartus軟件為設計平臺,采用vhdl語言實現數字頻率計的整體設計。1.1 eda簡介eda是電子設計自動化(electronic design automation)縮寫,是90年代初從cad(計算機輔助設計)、cam(計算機輔助制造)、cat(計算機
2、輔助測試)和cae(計算機輔助工程)的概念發展而來的。eda技術是以計算機為工具,根據硬件描述語言hdl(hardware description language)完成的設計文件,自動地完成邏輯編譯、化簡、分割、綜合及優化、布局布線、仿真以及對于特定目標芯片的適配編譯和編程下載等工作。典型的eda工具中必須包含兩個特殊的軟件包,即綜合器和適配器。綜合器的功能就是將設計者在eda平臺上完成的針對某個系統項目的vhdl、原理圖或狀態圖形描述,針對給定的硬件系統組件,進行編譯、優化、轉換和綜合,最終獲得我們欲實現功能的描述文件。綜合器在工作前,必須給定所要實現的硬件結構參數,它的功能就是將軟件描述
3、與給定的硬件結構用一定的方式聯系起來。也就是說,綜合器是軟件描述與硬件實現的一座橋梁。綜合過程就是將電路的高級語言描述轉換低級的、可與目標器件fpga/cpld相映射的網表文件。 適配器的功能是將由綜合器產生的王表文件配置與指定的目標器件中,產生最終的下載文件,如jed文件。適配所選定的目標器件(fpga/cpld芯片)必須屬于在綜合器中已指定的目標器件系列。 硬件描述語言hdl是相對于一般的計算機軟件語言,如:c、pascal而言的。hdl語言使用與設計硬件電子系統的計算機語言,它能描述電子系統的邏輯功能、電路結構和連接方式。設計者可利用hdl程序來描述所希望的電路系統,規定器件結構特征和電
4、路的行為方式;然后利用綜合器和適配器將此程序編程能控制fpga和cpld內部結構,并實現相應邏輯功能的的門級或更底層的結構網表文件或下載文件。目前,就fpga/cpld開發來說,比較常用和流行的hdl主要有abel-hdl、ahdl和vhdl。1.2 基于eda工具的fpga/cpld開發流程 1.文本/原理圖編輯與修改。首先利用eda工具的文本或圖形編輯器將設計者的設計意圖用文本(abel-hdl程序)或圖形方式(原理圖或狀態圖)表達出來2.編譯。完成設計描述后即可通過編譯器進行排錯編譯,變成特定的文本格式,為下一步的綜合做準備。 3.綜合。這是將軟件設計與硬件的可實現性掛鉤,是將軟件轉化為
5、硬件電路的關鍵步驟。綜合后hdl綜合器可生成enif、xnf或vhdl等格式的網表文件,他們從門級開始描述了最基本的門電路結構。 4.行為仿真和功能仿真。利用產生的網表文件進行功能仿真,以便了解設計描述與設計意圖的一致性。(該步驟可以略去) 5.適配。利用fpga/cpld布局布線適配器將綜合后的網表文件針對某一具體的目標器件進行邏輯映射操作,其中包括底層器件配置、邏輯分割、邏輯優化、布局布線。該操作完成后,eda軟件將產生針對此項設計的適配報告和jed下載文件等多項結果。適配報告指明了芯片內資源的分配與利用、引腳鎖定、設計的布爾方程描述情況。 6.功能仿真和時序仿真。該不妨真實接近真實器件運
6、行的方針,仿真過程已將器件的硬件特性考慮進去了,因此仿真精度要高的多。(該步驟也可略去) 7.下載。如果以上的所有過程都沒有發現問題,就可以將適配器產生的下載文件通過fpga/cpld下載電纜載入目標芯片fpga或cpld中。 8.硬件仿真與測試。2 數字頻率計的設計分析2.1 數字頻率計的工作原理數碼管顯示 計數器鎖存器譯碼驅動電路預測信號測頻控制信號發生器圖2-1 數字頻率計原理框圖眾所周知,頻率信號易于傳輸,抗干擾性強,可以獲得較好的測量精度。因此,頻率檢測是電子測量領域最基本的測量之一。頻率計的基本原理是用一個頻率穩定度高的頻率源作為基準時鐘,對比測量其他信號的頻率。通常情況下計算每秒
7、內待測信號的脈沖個數,即閘門時間為1s。閘門時間可以根據需要取值,大于或小于1s都可以。閘門時間越長,得到的頻率值就越準確,但閘門時間越長,則每測一次頻率的間隔就越長。閘門時間越短,測得的頻率值刷新就越快,但測得的頻率精度就受影響。一般取1s作為閘門時間。數字頻率計的關鍵組成部分包括測頻控制信號發生器、計數器、鎖存器、譯碼驅動電路和顯示電路,其原理框圖如圖2-1所示。2.2 設計分析2.2.1 測頻控制信號發生器測頻控制信號發生器產生測量頻率的控制時序,是設計頻率計的關鍵。這里控制信號clk取為1hz,2分頻后就是一個脈寬為1s的使能信號en,用來作為計數閘門信號。測頻控制信號發生器封裝圖如圖
8、2-2所示。圖2-2 測頻控制信號發生器封裝圖測頻控制信號發生器程序源代碼如下:library ieee;use ieee.std_logic_1164.all;entity shineng isport(clk,rst:in std_logic;en:buffer std_logic);end shineng;architecture bhv of shineng isbeginprocess(clk,rst)beginif rst=1 thenen=0;elsif clkevent and clk=1 thenen=not en;end if;end process;end bhv;圖2-
9、3 測頻控制信號發生器測頻控制信號發生器仿真圖如圖2-3所示。以上為測頻控制信號發生器仿真圖,仿真圖中clk為基準信號,rst為復位端。復位端有效時,en輸出為零。en為使能端,當clk為1hz輸入信號時,輸出en為0.5hz的信號即1s高電平信號。2.2.2 計數器計數器以使能信號en作為時鐘,當en為高電平時開始計數;在en的下降沿,產生一個鎖存信號,用來鎖存數據,鎖存數據后,還要在下次en上升沿到來之前產生清零信號,為下次計數做準備,清零信號是en為低電平時有效。在清零信號到來時,異步清零;en為高電平時再次開始計數。本文設計的計數器計數最大值是9999999。由于計數器和鎖存器共同由測
10、頻器控制模塊控制因此可以將計數器和鎖存器看成一個環節,因此計數器和鎖存器的仿真圖如圖2-5所示。2.2.3 鎖存器當鎖存信號即en下降沿到來時,將計數器的計數值鎖存,這樣可由外部的七段譯碼器譯碼并在數碼管上顯示。設置鎖存器的好處是使顯示的數據穩定,不會由于周期性的清零信號而不斷閃爍。鎖存器的位數應跟計數器完全一樣,均是28位。計數器模塊和鎖存器模塊封裝圖如圖2-4所示。圖2-4 計數器模塊和鎖存器模塊封裝圖計數器模塊和鎖存器模塊程序源代碼如下所示。library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;e
11、ntity count isport(rst,en,input:in std_logic;number1,number2,number3,number4,number5,number6,number7:out std_logic_vector(3 downto 0);ov:buffer std_logic);end count;architecture bhv of count isbeginprocess(input,rst,en)variable temp1,temp2,temp3,temp4,temp5,temp6,temp7:std_logic_vector(3 downto 0);b
12、eginif rst=1 then temp1:=0000;temp2:=0000;temp3:=0000;temp4:=0000;temp5:=0000;temp6:=0000;temp7:=0000;ov=0;elsif en=1 thenif inputevent and input=1 thentemp1:=temp1+1;if temp1=1010 thentemp1:=0000;temp2:=temp2+1;if temp2=1010 thentemp2:=0000;temp3:=temp3+1;if temp3=1010 thentemp3:=0000;temp4:=temp4+
13、1;if temp4=1010 thentemp4:=0000;temp5:=temp5+1;if temp5=1010 thentemp5:=0000;temp6:=temp6+1;if temp6=1010 thentemp6:=0000;temp7:=temp7+1;if temp7=1010 thentemp7:=0000;ov=1;end if;end if;end if;end if;end if;end if;end if;end if;else temp1:=0000;temp2:=0000;temp3:=0000;temp4:=0000;temp5:=0000;temp6:=
14、0000;temp7:=0000;ov=0;end if;number1=temp1;number2=temp2;number3=temp3;number4=temp4;number5=temp5;number6=temp6;number7=temp7;end process;end bhv;圖2-5 計數器模塊和鎖存器模塊仿真圖以上為計數器模塊和鎖存器模塊仿真圖。仿真圖中rst為復位端,當復位端有效時,計數值清零。input為輸入待測信號,en為使能端,當en=1且input上升沿時開始計數,en=0時清零計數值,進程結束前鎖存數據。2.2.4 譯碼驅動和數碼管顯示電路本次課程設計采用實驗箱
15、模式5,模式5自帶譯碼驅動電路,譯碼輸出接數碼管顯示,即每一個數碼管的輸入分別接到譯碼驅動電路的輸出。本次課程設計采用4個共陰極數碼管來顯示待測頻率的數值,其顯示范圍從09999999。數碼管顯示電路封裝圖如圖2-6所示。圖2-6 數碼管顯示電路封裝圖以下是數碼管顯示的程序源代碼: library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity show isport(en,rst:in std_logic;number1,number2,number3,number4,number5,number
16、6,number7:std_logic_vector(3 downto 0);show1,show2,show3,show4,flag:out std_logic_vector(3 downto 0);ov:buffer std_logic);end show;architecture bhv of show isbeginprocess(rst,en)beginif rst=1 thenshow1=0000;show2=0000;show3=0000;show4=0000;flag=0000;elsif enevent and en=0 thenif ov=1 thenshow1=1110;
17、show2=1010;show3=1010;show4=0000;flag0000thenshow1=number7;show2=number6;show3=number5;show4=number4;flag0000 thenshow1=number6;show2=number5;show3=number4;show4=number3;flag0000 thenshow1=number5;show2=number4;show3=number3;show4=number2;flag=0001;else show1=number4;show2=number3;show3=number2;show
18、4=number1;flag=0000;end if;end if;end process;end bhv;數碼管顯示模塊仿真圖如圖2-7所示。以下便是數碼管顯示模塊仿真圖,在仿真圖中number7number1為計數和鎖存環節的輸出。ov即作為輸入又作為輸出,當輸入待測信號的頻率足夠大,以至于超過測頻器的最大量程時,ov作為輸出且為1。當ov=1時,show4show1以及flag標志位共同顯示error。rst為復位端,當rst為1時,show輸出均為零。en為使能端,在前面幾個模塊中,en=1時開始計數,en=0時清零記錄數值,而在en下降沿時將記錄的數值,送到輸出show。以此做到不斷
19、記錄數據,保存數據,刷新數據等,反復循環測量待測信號頻率的目的。圖2-7 數碼管顯示模塊仿真圖鑒于篇幅問題,總體設計仿真圖分析將在本章分析,望讀者諒解。總體設計仿真圖中,clk是基準信號,其二分頻得到en使能信號,input為輸入待測信號,rst為復位端,當rst=1時,en=0,輸出show均為零。en=1時,當待測輸入信號為上升沿開始計數,倘若超過9999999,則ov=1,如果ov=1則show4show1以及flag標志位共同顯示error。計數進程結束前鎖存數據。將記錄數據鎖存到總體設計進程中的定義number1number7中,在en下降沿再將number1number7按照程序中
20、的要求,送到show4show1以及flag標志位。flag顯示自動調檔的檔次。綜上所述,本次eda設計利用vhdl語言詳盡準確的做到了測量待測信號頻率。本次設計可謂做到了,言簡意賅,程序流程簡明扼要,易于讀者分析,各個模塊化設計正是遵循了eda設計的自上而下,逐步細化的設計原理。并且本次設計的一大原理就是可以實時的根據現況,任意測量待測輸入信號的頻率,量程可以任意調整,鑒于本次要求,制作了最大量程為10mbhz的測頻器,稍加修改便可做到任意量程的測頻器。當然本次設計還有很多不足之處,望批評指正。3 總體設計以上模塊分別為測頻控制模塊,計數模塊,鎖存模塊,顯示模塊綜合以上模塊分析,予以分析綜合
21、如下,可得整體設計封裝圖如圖3-1所示。圖3-1 整體設計封裝圖總體設計程序源代碼如下所示:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity freq isport(clk,rst,input:in std_logic;show1,show2,show3,show4,flag:out std_logic_vector(3 downto 0);ov:buffer std_logic);end freq;architecture bhv of freq issignal en:std_lo
22、gic;signal number1,number2,number3,number4,number5,number6,number7:std_logic_vector(3 downto 0);beginshineng:process(clk,rst)beginif rst=1 thenen=0;elsif clkevent and clk=1 thenen=not en;end if;end process shineng;count:process(input,rst,en)variable temp1,temp2,temp3,temp4,temp5,temp6,temp7:std_logi
23、c_vector(3 downto 0);beginif rst=1 then temp1:=0000;temp2:=0000;temp3:=0000;temp4:=0000;temp5:=0000;temp6:=0000;temp7:=0000;ov=0;elsif en=1 thenif inputevent and input=1 thentemp1:=temp1+1;if temp1=1010 thentemp1:=0000;temp2:=temp2+1;if temp2=1010 thentemp2:=0000;temp3:=temp3+1;if temp3=1010 thentem
24、p3:=0000;temp4:=temp4+1;if temp4=1010 thentemp4:=0000;temp5:=temp5+1;if temp5=1010 thentemp5:=0000;temp6:=temp6+1;if temp6=1010 thentemp6:=0000;temp7:=temp7+1;if temp7=1010 thentemp7:=0000;ov=1;end if;end if;end if;end if;end if;end if;end if;end if;else temp1:=0000;temp2:=0000;temp3:=0000;temp4:=00
25、00;temp5:=0000;temp6:=0000;temp7:=0000;ov=0;end if;number1=temp1;number2=temp2;number3=temp3;number4=temp4;number5=temp5;number6=temp6;number7=temp7;end process count;show:process(rst,en)beginif rst=1 thenshow1=0000;show2=0000;show3=0000;show4=0000;flag=0000;elsif enevent and en=0 thenif ov=1 thensh
26、ow1=1110;show2=1010;show3=1010;show4=0000;flag0000thenshow1=number7;show2=number6;show3=number5;show4=number4;flag0000 thenshow1=number6;show2=number5;show3=number4;show4=number3;flag0000 thenshow1=number5;show2=number4;show3=number3;show4=number2;flag=0001;else show1=number4;show2=number3;show3=num
27、ber2;show4=number1;flag=0000;end if;end if;end process show;end bhv;圖3-2總體設計仿真圖總體設計仿真圖如圖3-2所示。經過了分析軟件,查詢相關資料,編寫程序,編譯,綜合,適配,仿真,下一步便是下載的關鍵步驟即引腳鎖定。引腳鎖定的好壞直接影響下載的成功與否,更應符合讀者的觀看習慣。已達到一目了然,清晰理解的目的。鑒于此,先將總體設計的引腳設計安排如下:本次課程設計的引腳圖如圖3-3所示。圖3-3 總體設計的引腳鎖定clk信號利用clock2產生1hz基準信號,同理輸入待測信號input接clock0即可產生實驗箱上的部分信號,
28、也可直外接信號發生器。以便達到測量任意輸入信號的目的。溢出信號ov接二極管,由二極管的亮滅,來判斷是否溢出。此外由show4show1以及flag標志位共同顯示error。以致告訴使用者應減少輸入信號頻率,或者修改程序以便更大的增大待測信號的量程。使得適應性更加的廣泛。4 設計總結本次課程設計采用eda設計方法,把數字頻率計系統組建分解成若干個功能模塊進行設計描述,選用altera公司生產的fpga產品acex1k系列ep1k30tc144-3芯片,下載適配后,便可以在數碼管上顯示出待測頻率的數值。經編譯,綜合,適配,下載到實驗箱,其軟件設計思想清晰,硬件電路簡單,具有一定的實用性。通過這次課程設計,我感受到了vhdl功能的強大,享受到了其中的樂趣。通過這次課程設計,使我感受到了什么是“紙上得來終覺淺,覺知此事要躬行”,平時不下一番苦功夫是學不好的。我們必須要養成嚴謹求學的
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 中國袋式包裝機行業市場發展前景及發展趨勢與投資戰略研究報告2025-2028版
- 農產品電商創新路徑試題及答案
- 中國箱型高溫爐行業市場發展前景及發展趨勢與投資戰略研究報告2025-2028版
- 2024年江蘇國瑞檢測技術有限公司招聘真題
- 創業扶持政策對社會企業的影響與支持研究試題及答案
- 和聲進行知識點試題及答案
- 中國玻璃鋼藝術茶幾行業市場發展前景及發展趨勢與投資戰略研究報告2025-2028版
- 2024年昆明市盤龍職業高級中學烹飪教師招聘筆試真題
- 中國漂精粉行業市場發展前景及發展趨勢與投資戰略研究報告2025-2028版
- 2024年北京首都師范大學實驗小學招聘真題
- JTJ-294-1998斜坡碼頭及浮碼頭設計與施工規范
- 急性肺栓塞的應急預案及流程
- 水土保持工程質量評定規程
- 醫用被服洗滌服務方案
- 蓄水池可行性方案
- 政務服務中心物業服務投標方案
- 小兒循環系統解剖生理特點
- 青島海爾納稅籌劃課程設計
- 小學動詞三單練習
- 【葛根素的藥理作用及臨床應用調研報告3000字】
- 居民自建樁安裝告知書回執
評論
0/150
提交評論