




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、 目 錄目 錄01、EDA技術發展及介紹21.1 EDA技術的介紹21.2 EDA技術的發展21.3 EDA技術的發展趨勢32、總體方案設計42.1設計內容42.2設計方案比較42.3方案論證52.4方案選擇53、單元模塊設計63.1分頻模塊6分頻模塊波形仿真圖6分頻模邏輯綜合圖6分頻模塊verilog源代碼73.2計數模塊8計數模塊功能仿真波形8計數模塊邏輯綜合圖9計數模塊verilog源代碼93.3鎖存模塊10鎖存模塊功能仿真波形10鎖存模塊邏輯綜合圖11鎖存模塊verilog源代碼113.4七段譯碼模塊12七段一碼模塊功能仿真波形12七段譯碼模塊邏輯綜合圖13七段一碼模塊代碼源程序133
2、.5數碼管顯示模塊14數碼管顯示模塊功能仿真波形圖15數碼管顯示模塊綜合圖15數碼管顯示模塊源代碼164、軟件實現174.1軟件實現方法17軟件實現步驟框圖174.2軟件設計18頂層模塊程序如下:18頂層模塊結構圖195、系統仿真及調205.1頂層模塊仿真及調試206、總結216.1設計小結216.2設計收獲216.3設計改進226.4 致謝227 、參考文獻221、EDA技術發展及介紹1.1 EDA技術的介紹EDA是Electronic Design Automation的縮寫,中文譯為電子設計自動化,是現代電子設計技術的有力工具。迄今為止,EDA技術沒有精確的定義,我們可以這樣來認識,ED
3、A技術就是以計算機為工作平臺,以EDA軟件工具為開發環境,以PLD器件或者ASIC專用集成電路為目標器件設計實現電路系統的一種技術。而EDA技術的發展又以計算機科學、微電子技術的發展為基礎,并且融合了應用電子技術、智能技術以及計算機圖形學、拓撲學、計算數學等眾多最新成果發展而來的。1.2 EDA技術的發展從20世紀70年代,人們就已經開始基于計算機開發出一些軟件工具幫助設計者完成電路系統的設計任務,以替代傳統的手工設計的方法,隨著計算機軟件和硬件技術水平的提高,EDA技術也不斷進步,大致經歷了下面三個發展階段:(1)CAD階段:20世紀70年代至80年代初,由于電子技術軟件的功能較弱和個人計算
4、機的普及度不高,人們主要借助于計算機對所設計的電路的性能進行模擬和預測;完成簡單的版圖繪制和PCB布局。這是EDA技術發展的早起階段。(2)CAE階段:20世紀80年代至90年代初,由于人們在設計方法學、設計工具集成優化方面取得了長足的進步,使得集成電路規模逐漸擴大,電子系統設計也逐步復雜,與CAD相比,又增加了電路功能設計和結構設計、工程設計、原理圖輸入、邏輯仿真、電路分析、自動布局布線、PCB后分析等功能。由此EDA進入CAE階段。(3)EDA階段:20世紀90年代以來,由于微電子工藝的顯著發展,促進了電子設計工具的不斷改善。尤其是進入21世紀以后,EDA技術得到了更快的發展。使得EDA技
5、術廣泛應用于各個領域,IP核的SoC設計技術日趨成熟、SoPC技術步入實用化階段、高速DSP實現成為了可能、復雜電子系統的設計和驗證更加高效。 1.3 EDA技術的發展趨勢隨著人們對設備功能和成本要求的越來越苛刻,EDA技術也在不斷改進,就目前而言,EDA技術有以下三個大的發展趨勢。(1) 高性能的EDA工具將得到進一步發展隨著市場的需求增長,超大規模集成技術不斷提高,超深亞微米(VDSM)工藝已經走向成熟;IC生產線的投資更為巨大,可編程邏輯器件開始進入傳統的ASIC市場;電子系統成本降低,系統體積減小,設計效率提高,EDA工具盒IP核廣泛應用;自動化和智能化程度不斷提高,計算機硬件平臺性能
6、的不斷提高為SoC設計提供了物質基礎。(2) EDA技術將促使ASIC和FPGA逐步走向融合隨著系統開發對EDA技術的目標器件各種性能指標要求的提高,ASIC和FPGA將更大程度地相互融合。這是因為雖然標準邏輯ASIC芯片尺寸小、功能強、耗電省,膽設計復雜,并且有批量生產要求;可編程邏輯器件的開發費用低廉,能現場編程,膽體積大、功耗大。因此,FPGA和ASIC正在走到一起,兩者之間正在誕生一種“雜交”產品,互相融合,取長補短,以滿足成本和上市速度的要求。例如,將可編程邏輯器件嵌入到標準單元。(3)EDA技術的應用領域將越來越廣泛從目前的EDA技術來看,其特點就是使用普及、應用廣泛、工具多樣、軟
7、件功能強大。在ASIC和PLD器件方面,向高速度、高密度、低功耗、低電壓方向發展。EDA技術發展迅速,可以用日新月異來描述。EDA技術的廣泛應用,現已涉及各行各業。EDA水平不斷提高,設計工具不斷趨于完善。然而,目前人們對更低成本、更低功耗的無止境追求和越來越短的產品上市壓力為當代EDA工具和設計方法帶來了不少新的挑戰與機會。例如,如何在工藝上防止模擬電路與數字電路之間的干擾;現有的大部份EDA工具最多只能處理百萬門級設計規模,隨著IC設計向千萬門級以上規模發展,現有EDA工具和方法必須進行升級。 2、總體方案設計2.1設計內容要求設計一個八位十進制頻率計,該頻率計的測頻范圍為0到999999
8、99HZ,測頻的原理采用直接測頻法,利用計數器在單位時間(通常是1s)內對被測得脈沖進行計數,計數的結果就是被測脈沖的頻率,直接測頻法的好處是可以通過改變門控信號的周期,從而提高測量的精度和頻率的測量范圍。計數的結果通過鎖存器來鎖存并通過譯碼電路譯碼,然后用七段數碼管對被測頻率值進行動態顯示。2.2設計方案比較方案一:基于單片機實現八位十進制頻率計字功能利用AT89C51的內部定時計數器來對外部輸入信號進行計數,從而達到測頻的目的,這種方案,結構簡單容易掌握,各部分電路實現起來都非常容易。其原理框圖如圖2-1所示:AT89C51 鎖存器譯碼顯示電源供電電路時鐘電路被測信號 圖2-1單片原理實現
9、框圖方案二:基于CPLD技術實現八位十進制頻率計通過Verilog HDL硬件描述語言編寫代碼的方式來實現八位十進制頻率計數器功能。其框圖如圖2-2:CPLD芯片分頻器八位十進制計數器鎖存器 譯碼器動態顯示電路系統時鐘電源電路下載電路七段數碼管圖2-2基于CPLD實現頻率測量的框圖2.3方案論證(1)方案一:使用單片機設計成的系統外圍電路相對較少,硬件搭建相對容易。51單片機的價格低廉,性能可靠。但是,單片機的管腳十分有限,計算速度相對CPLD慢,內部數據存儲器為字節存儲,難以滿足八位十進制計數器的存儲需要。(2)方案二:采用CPLD來設計八位十進制計數器,測量精度高,運行速度快,采用veri
10、log語言模塊化編程,大大縮減了外圍的硬件電路,節約了硬件資源,而且方便進行軟件調試。2.4方案選擇由于本次課程設計題目為八位十進制頻率計,要求可測的頻率范圍為0到100MHZ,所以運算速度快、精度高、性能可靠、可將外圍器件通過編程來代替的CPLD芯片更符合要求。綜合比較結合各方面的優劣勢,并參考本次課程設計要求,我選擇了基于CPLD器件來實現八位十進制頻率計的設計方案。3、單元模塊設計本設計由復雜可編程邏輯器件(CPLD)作為控制芯片,通過Vreilog HDL硬件描述語言設計,運用自頂而下的設計思想,按功能逐層分割實現層次化的設計。總體設計方案為由晶振電路提供時鐘信號。然后對系統時鐘分頻產
11、生控制信號如秒脈沖tgate,鎖存信號ale,譯碼控制信號的dclk和顯示使能信號d_en,位選信號lclk。在控制信號作用下,被測脈沖mclk通過八位十進制bcd加法計數器計數,計數值通過鎖存器鎖存,然后經過七段顯示譯碼器譯碼后用數碼管實現動態顯示。下面介紹主要模塊的功能及作用。3.1分頻模塊在分頻模塊中,系統時鐘s_clk設定為2ms,經過1000分頻后便可以產生周期為2s的閘門信號tgate,鎖存信號ale,譯碼信號dclk,顯示使能信號d_en,同時對系統時鐘經過60分頻便可以得到周期為125ms的位選切換信號。分頻模塊波形仿真圖 圖3-1-1分頻模塊功能仿真圖分頻模邏輯綜合圖 圖3-
12、1-2分頻模塊邏輯綜合圖分頻模塊verilog源代碼module div(tgate,s_clk,ale,dclk,d_en,lclk,);input s_clk;output tgate,ale,dclk,d_en,lclk;reg tgate,ale,dclk,lclk,d_en;integer i,j;always (posedge s_clk)beginif(i=499)begin tgate=tgate;ale=ale;dclk=dclk;d_en=d_en;i=0;endelse i=i+1;endalways (posedge s_clk)if(j=30)begin lclk=l
13、clk;j=0;endelse j=j+1;endendmodule3.2計數模塊該計數模塊為十位八進制bcd加法計數器,clrn為清零信號,高電平有效,q為計數值,tgate為高電平為1s的門控信號,仿真中設定被測脈沖周期為40ms,對其在1s鐘內進行計數,計數結果q值顯示為25。符合理論計算結果。計數模塊功能仿真波形圖3-2-1計數模塊功能仿真圖3.2.2計數模塊邏輯綜合圖圖3-2-2分頻模塊邏輯綜合圖計數模塊verilog源代碼module counter(clrn,mclk,q,tgate,cunt);input clrn,mclk,tgate;output 15:0q,cunt;re
14、g 15:0q;always (posedge mclk ) beginif(!clrn) q15:0=0;else if(tgate)beginif(q15:0=16'H9999) q15:0=0;else if(q11:0=12'H999) q15:0=q15:0+12'H667;else if(q 7:0= 8'H99) q15:0=q15:0+8'H67;else if(q 3:0= 4'H9) q15:0=q15:0+4'H7; /十六進制轉換為十進制。else q15:0=q15:0+1; endelseq=0;endassi
15、gn cunt=q;endmodule3.3鎖存模塊在鎖存模塊locker中,采用ale信號的下降沿對計數模塊的計數結果進行鎖存,鎖存時間由ale的周期確定,在仿真中將輸入值din設定為隨機值,ale設定為周期為2s的方波,qout為鎖存結果輸出端,輸出端結果在ale下降沿到來時刻改變,其余時刻保持為鎖存狀態。鎖存模塊功能仿真波形圖3-3-1計數模塊功能仿真圖鎖存模塊邏輯綜合圖圖3-3-2計數模塊功能仿真圖鎖存模塊verilog源代碼module locker(ale,din,qout,qou);input ale;/鎖存脈沖,下降沿有效。input31:0 din; /鎖存值輸入。outpu
16、t31:0 qout;/鎖存值。output31:0 qou;reg31:0 qout;reg31:0 qou;always (negedge ale)beginif(!ale)beginqout=din;qou=qout;endelse qout=qout;qou=qout;endendmodule3.4七段譯碼模塊 七段譯碼模塊,譯碼脈沖來自dclk,上升沿由效,上升沿到來時,便根據輸入的4位bcd碼,輸出相應的七段顯示碼,比如輸入的為0001(十進制數1),在dclk下降沿到來時dout輸出七段碼11111001(即數碼管顯示1)。3.4.1七段一碼模塊功能仿真波形圖3-4-4計數模塊功
17、能仿真圖七段譯碼模塊邏輯綜合圖圖3-4-2計數模塊功能仿真圖3.4.3七段一碼模塊代碼源程序module decord(din,dout,dclk); input3:0 din; input dclk;output7:0 dout;reg7:0 dout;always (posedge dclk)case(din) 4'b0000:begin dout=8'b1100_0000;end4'b0001:begin dout=8'b1111_1001;end4'b0010:begin dout=8'b1010_0100;end4'b0011:
18、begin dout=8'b1011_0000;end4'b0100:begin dout=8'b1001_1001;end4'b0101:begin dout=8'b1001_0010;end4'b0110:begin dout=8'b1000_0010;end4'b0111:begin dout=8'b1111_1000;end4'b1000:begin dout=8'b1000_0000;end4'b1001:begin dout=8'b1001_1000;end4'b1010
19、:begin dout=8'b1000_1000;end4'b1011:begin dout=8'b1000_0011;end4'b1100:begin dout=8'b1100_0110;end4'b1101:begin dout=8'b1010_0001;end4'b1110:begin dout=8'b1000_0110;end4'b1111:begin dout=8'b1000_1110;end endcaseendmodule3.5數碼管顯示模塊該模塊將譯碼模塊譯碼結果作為輸入送到輸入端ledin
20、,然后再使能信號d_en(周期為2s)高電平有效,在d_en有效的情況下依次將輸入值送到輸出端口ledout,并改變位選輸出值switch,從而實現數碼管的動態顯示,比如ledin輸入值設定為隨機值8h904FDEF528BC8898,在d_en有效,并且lclk的第一個上升沿到來時,把98h送到ledout,并將switch賦值為FE,從而使第一個數碼管顯示98h 所代表的段碼值,第二個上升沿到來時把88h送到ledout,switch賦值為FD,從而使第二個數碼管顯示88h所代表的段碼值,依次類推,便可以對八個數碼管進行動態顯示了。數碼管顯示模塊功能仿真波形圖圖3-5-1顯示模塊功能仿真圖
21、數碼管顯示模塊綜合圖圖3-5-2顯示模塊邏輯綜合圖數碼管顯示模塊源代碼module display(ledin,ledout,lclk,switch,d_en);input lclk,d_en;input63:0 ledin;output7:0 ledout,switch;reg7:0 ledout,switch;integer num1,num2;always (posedge lclk)if(d_en)case (num1)0:begin num1<=1;switch=8'hfe;end1:begin num1<=2;switch=8'hfd;end2:begi
22、n num1<=3;switch=8'hfb;end3:begin num1<=4;switch=8'hf7;end4:begin num1<=5;switch=8'hef;end5:begin num1<=6;switch=8'hdf;end6:begin num1<=7;switch=8'hbf;end 7:begin num1<=0;switch=8'h7f;endendcaseelse begin switch=0;endalways (switch)case(switch)8'h00:ledo
23、ut=0;8'hfe:ledout=ledin7:0;8'hfd:ledout=ledin15:8;8'hfb:ledout=ledin23:16;8'hf7:ledout=ledin31:24;8'hef:ledout=ledin39:32;8'hdf:ledout=ledin47:40;8'hbf:ledout=ledin55:48;8'h7f:ledout=ledin63:56;endcaseendmodule4、軟件實現4.1軟件實現方法采用quartus 2軟件進行設計,使用verilog語言進行模塊化編程,自上而下按功
24、能模塊分層實現各個模塊的功能,在頂層模塊中調用子模塊,從而實現系統的整體功能。 軟件實現步驟框圖設計輸入編譯,鏈接仿真與定時分析編程在線調試修改設計圖4-1-1軟件實現步驟框圖4.2軟件設計 頂層模塊程序如下:module mainton(mclk,ledout,switch,qou,s_clk,clrn,tgate0);input mclk,s_clk,clrn;output7:0 ledout,switch;output tgate0;wire7:0 p0,p1,p2,p3,p4,p5,p6,p7;output31:0 qou;wire31:0 q;wire31:0 qout;wire a
25、le,dclk,tgate,d_en,lclk;div d(.tgate(tgate),.s_clk(s_clk),.ale(ale),.dclk(dclk),.d_en(d_en),.lclk(lclk),.tgate0(tgate0);counter c(.clrn(clrn),.mclk(mclk),.tgate(tgate),.q(q),.cunt(cunt);locker lck(.ale(ale),.din(q),.qout(qout),.qou(qou);decord d0(.din(qout3:0),.dout(p0),.dclk(dclk);decord d1(.din(qo
26、ut7:0),.dout(p1),.dclk(dclk);decord d2(.din(qout11:8),.dout(p2),.dclk(dclk);decord d3(.din(qout15:12),.dout(p3),.dclk(dclk);decord d4(.din(qout19:16),.dout(p4),.dclk(dclk);decord d5(.din(qout23:20),.dout(p5),.dclk(dclk);decord d6(.din(qout27:24),.dout(p6),.dclk(dclk);decord d7(.din(qout31:28),.dout(
27、p7),.dclk(dclk);display t(.ledin(p0,p1,p2,p3,p4,p5,p6,p7),.ledout(ledout),.lclk(lclk),.switch(switch),.d_en(d_en);endmodule 頂層模塊結構圖圖4-2-2頂層顯示模塊邏輯綜合圖5、系統仿真及調5.1頂層模塊仿真及調試通過QuartusII軟件,我們對頂層模塊進行了仿真,其仿真波形如圖5-1-1所示。圖5-1-1頂層模塊波形仿真圖由設計要求可知,由通過數碼管進行動態顯示。波形仿真圖中的switch代表位選信號,即選中哪一個數碼管亮,ledout代表顯示的七段碼,即數碼管顯示的什
28、么內容,比如在switch為0xfe時選中第一個數碼管,并將顯示碼11000000(代表顯示0)通過ledout送給第一個數碼管顯示。由波形圖分析可知,數碼管最終顯示的內容為00001000,與理論頻率值一致。在程序的調試過程中,我發現了自己存在很多問題,也收獲了不少的知識,主要有以下幾點:(1)由于先前對硬件描述語言代碼的編寫不夠熟悉,所以在使用過程中經常編譯報錯;經查找資料、和同學討論、詢問老師后了解到了錯誤的原因。(2)在設置頂層文件和建立工程時,必須要設置好相關的配置。并且選擇合適的芯片,還要設置好END TIME和GRID SIZE參數,更要注意仿真的文件設置成頂層文件和時鐘設置等等
29、。(3在程序調試過程中,由于不規范的編寫,總是編譯失敗。經逐條語句分析調試后發現往往只是其中一個數據的類型設置錯誤,修改以后解決了該錯誤,并對程序編寫有了更深刻的認識和理解。(4在波形文件仿真中,時鐘和輸入設置等信號一般不要設置成特殊的情況,有可能造成看不到正確的仿真波形和時序圖。在仿真狀態寄存器的波形圖時就出現了看不到正確時序圖的情況,經分析查找后發現是由于時鐘和輸入設置成了特殊情況,并沒有仿真出所有可能發生的情況。 (5)用硬件描述語言的方法和畫原理圖的方法都可實現同樣邏輯功能的電路出來,但是二者各有優缺點。原理圖直觀明了,但畫復雜的電路不易實現。用硬件語言描述復雜的邏輯功能電路則比較易于實現,但是不如原理圖直觀,編寫時容易出現邏輯混亂的情況。6、總結6.1設計小結本次設計中,我們成功完成本系統設計所要求的八位十進制頻率計的測頻功能。在設計開始前我們就系統整體框架和各個模塊功能進行了詳細的分析和設計準備工作,設計過
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 天津城市建設管理職業技術學院《環境工程安全生產》2023-2024學年第二學期期末試卷
- 河北司法警官職業學院《創新創業理論與實務》2023-2024學年第二學期期末試卷
- 江西師范大學科學技術學院《材料科學基礎應用研究》2023-2024學年第二學期期末試卷
- 伊犁師范大學《工程制圖II》2023-2024學年第二學期期末試卷
- 衡陽師范學院南岳學院《環境與化學》2023-2024學年第二學期期末試卷
- 西安醫學高等專科學校《會展概論》2023-2024學年第二學期期末試卷
- 中國傳媒大學《大眾傳播調查方法與寫作實訓》2023-2024學年第二學期期末試卷
- 2024年CO2氣體保護藥芯焊絲資金申請報告代可行性研究報告
- 勞動技術教育實施途徑
- 2024年玉米酒精糟回收蛋白飼料成套設備(DDGS)項目資金籌措計劃書代可行性研究報告
- 統編版 高中語文 必修上冊 《百合花》《哦香雪》群文閱讀
- 教學反思不足之處和改進措施簡短
- 露營地合伙人合同協議書范本
- 人人學點營銷學(請分別進入班級觀看視頻不要在默認班級觀看觀看無效)學習通超星期末考試答案章節答案2024年
- 高效能人士的七個習慣(課件)
- 2024年315消費者權益保護知識競賽題庫及答案(完整版)
- 2024年離婚不離家互不干涉的婚姻協議書范文
- 2024秋期國家開放大學《可編程控制器應用實訓》一平臺在線形考(形成任務1)試題及答案
- 保證不分手不離婚的協議書范文
- 水質監測服務投標方案(技術標)
- 內容質量評價體系
評論
0/150
提交評論