


版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、可控脈沖發(fā)生器的設(shè)計一、設(shè)計目的1. 了解可控脈沖發(fā)生器的實現(xiàn)機理。2. 學(xué)會用示波器觀察 FPGA 產(chǎn)生的信號。3. 學(xué)習(xí)用 VHDL 編寫復(fù)雜功能的代碼。二、設(shè)計原理1. EDA 是電子設(shè)計自動化 (Electronic Design Automation)的縮寫。 EDA 技術(shù)就是依賴功能強大的計算機,在 EDA 工具軟件 平臺上,對 以硬件描述語言 HDL (Hardware Description Language) 為系統(tǒng)邏輯描述手 段完成的設(shè)計文件,自動地完成邏 輯編譯、化簡、分割、綜合、布局布線以及 邏輯優(yōu)化和仿真測試, 直至實現(xiàn)既定的電子線路系統(tǒng)功能。 EDA 技術(shù)使設(shè)計 者
2、的工作僅 局限于利用軟件的方式來完成對系統(tǒng)硬件功能的實現(xiàn), 可以說 EDA 技術(shù)的產(chǎn)生與開展是電子設(shè)計技術(shù)的一個巨大進步。 EDA 技 術(shù)融合了眾多電子設(shè)計技術(shù)和計算機輔助技術(shù), 使得它在現(xiàn)代電 子學(xué)方面的 應(yīng)用越來越廣泛, 也成為電子、電氣類大學(xué)生必須熟 練掌握的一種設(shè)計工具。2. VHDL 是英文全名是 VHSIC(Very High Speed IntegratedCircuit) Hardware Description Language, 是硬件描述語言的 業(yè)界標準之一。 VHDL 語言功能強大、設(shè)計靈活。 VHDL 語言可 以用簡潔明確的源代碼來描述復(fù)雜的邏輯控制, 它具有多層 次
3、的設(shè)計描述功能, 層層細化,最后可直接生成電路級描述。VHDL 支持同步電路、異步電路和隨機電路的設(shè)計,這是 其他硬件描述既支持自底向上的設(shè)計,又支持自頂向下的設(shè)計;既支持模 塊化設(shè)計,又支持 層次化設(shè)計。由于 VHDL 已經(jīng)成為 IEEE 標準所規(guī)定的硬件描述性語言, 目前大多數(shù) EDA 工具幾乎都支持 VHDL 因為 VHDL 易讀和結(jié) 構(gòu)化且易于修改設(shè)計所以在 硬件電路設(shè)計過程中, VHDL 語 言得到廣泛應(yīng)用。VHDL 語言易于共享和復(fù)用。 VHDL 采用基于庫 (Library )的設(shè)計方法, 可以建立各種可再次利用的模塊。這些模塊可 以預(yù)先設(shè)計或使用以前設(shè)計中的 存檔模塊,將這些模
4、塊存放 到庫中,就可以在以后的設(shè)計中進行復(fù)用,可以使 設(shè)計成果 在設(shè)計人員之間進行交流和共享,減少硬件電路設(shè)計。VHDL 豐富的仿真語句和庫函數(shù),使得在任何大系統(tǒng)的設(shè) 計早期就能查 驗設(shè)計系統(tǒng)的功能可行性,隨時可對設(shè)計進行 仿真模擬。 VHDL 語句的行為描 述能力和程序結(jié)構(gòu)決定了它具 有支持大規(guī)模設(shè)計的分解和已有設(shè)計的再利用功 能。這個特 點很好的符合了市場需求。 對于用 VHDL 完成的一個確定的設(shè) 計, 可以利用 EDA 工具進行邏輯綜合和優(yōu)化, 并自動的把 VHDL 描述的設(shè)計轉(zhuǎn)變 成門級網(wǎng)表??傊?,由于 VHDL 語言有的這些 優(yōu)良的特點,它被廣泛的應(yīng)用在電子線路和電子系統(tǒng)的設(shè)計 中
5、。3. Quartus II 是 Altera 公司的綜合性 PLD/FPGAT 發(fā)軟件, 支持原理圖、 VHDL 、 VerilogHDL 以及 AHDL ( Altera Hardware Description Language ) 等多種設(shè)計輸入形式,內(nèi)嵌自有的綜合 器以及仿真器,可以完成從 設(shè)計輸入到硬件配置的完整 PLD 設(shè)計 流程。Quartus II 可以在 XP、 Linux 以及 Unix 上使用,除了可以使用 Tcl 腳本完成設(shè)計流程外, 提供了完善的用戶圖形界面設(shè)計 方式。具有 運行速度快, 界面統(tǒng)一, 功能集中,易學(xué)易用等特點。Quartus II 支持 Altera
6、 的 IP 核,包含了 LPM/MegaFunction 宏功能模塊 庫, 使用戶可以充分利用成熟的模塊,簡化了設(shè)計的復(fù)雜性、加快了設(shè)計速度。對第三方 EDA 工具的良好支持也使用 戶可以在設(shè)計流程的各個階段使用 熟悉的第三方EDA 工具。此外, Quartus II 通過和 DSPBuilder 工具與 Matlab/Simulink 相結(jié)合,可以方便地實現(xiàn)各種 DSP 應(yīng)用系統(tǒng);支持 Altera 的片 上可編程系統(tǒng) (SOPC 開發(fā),集系統(tǒng)級設(shè)計、嵌入式軟件開發(fā)、 可編程邏輯設(shè)計于一體,是 一種綜合性的開發(fā)平臺。4. 脈沖發(fā)生器就是要產(chǎn)生一個脈沖波形,而可控脈沖發(fā)生器 那么是要產(chǎn)生一 個
7、周期和占空比可變的脈沖波形。 可控脈沖發(fā)生器 的實現(xiàn)原理比擬簡單, 可 以簡單的理解為一個計數(shù)器對輸入的時 鐘信號進行分頻的過程。 通過改變計 數(shù)器的上限值來到達改變周 期的目的,通過改變電平翻轉(zhuǎn)的閾值來到達改變占 空比的目的。 下面舉個簡單的例子來說明其工作原理。假設(shè)有一個計數(shù)器 T 對時鐘分頻,其計數(shù)的范圍是從0? N,另取一個M(0 M N),假設(shè)輸出為Q那么Q只要滿足條件0 ?。?M M T N時,通過改變 N 值,即可改變輸出的脈沖波的周期;改變M 值, 即可改變脈沖 波的占空比。這樣輸出的脈沖波的周期和占空比分別為:周期=(N 1)T CLOCK占空比 M 100%N +1二、設(shè)計
8、內(nèi)容編寫實現(xiàn)可控脈沖發(fā)生器程序,通過脈沖周期和占空比改變 實現(xiàn)不同脈沖的輸出。用Quartusll軟件對設(shè)計進行編譯、綜合、仿真,給出相應(yīng)的時序仿真波形和硬件電路圖。四、設(shè)計流程1. 程序LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY CC ISPORT( CLK: IN STD_LOGIC;- 時鐘輸入RST : IN STD_LOGIC;- 復(fù)位輸入NU,ND : IN STD_LOGIC; - 輸入:控制頻率的改 變MU
9、,MD : IN STD_LOGIC; - 輸入:控制占空比的 改變FOUT : OUT STD_LOGIC - 波形輸出);END CC;ARCHITECTURE BEHAVE OF CC ISSIGNAL N_BUFFER,M_BUFFER:STD_LOGIC_VECTOR(10 DOWNTO0);SIGNAL N_COUNT :STD_LOGIC_VECTOR(10 DOWNTO 0);SIGNAL CLKIN : STD_LOGIC;SIGNAL CLK_COUNT : STD_LOGIC_VECTOR(12 DOWNTO0); - 產(chǎn)生一個低速時鐘,用于按鍵判斷BEGINPROCES
10、S(CLK) - 計數(shù)器累加BEGINIF(CLKEVENT AND CLK=1) THENIF(N_COUNT=N_BUFFER)THENN_COUNT=00000000000;ELSEN_COUNT=N_COUNT+1;END IF;END IF;END PROCESS;PROCESS(CLK) - 波形判斷BEGINIF(CLKEVENT AND CLK=1) THEN IF(N_COUNTN_BUFFER)THEN FOUTM_BUFFER AND N_COUNTN_BUFFER) THENFOUT=0;END IF;END IF;END PROCESS;PROCESS(CLK)BEG
11、INIF(CLKEVENT AND CLKIN=1) THENCLK_COUNT=CLK_COUNT+1;END IF;CLKIN=CLK_COUNT(12);END PROCESS;PROCESS(CLKIN) - 頻率及占空比的改變 1BEGINIF(CLKEVENT AND CLKIN=0) THENIF(RST=0) THENM_BUFFER=01000000000;ELSIF(NU=0)THENN_BUFFER=N_BUFFER+1;ELSIF(ND=0) THENN_BUFFER=N_BUFFER-1;ELSIF(MU=0)THENM_BUFFER=M_BUFFER+1;ELSIF
12、(MD=0) THENM_BUFFER FourO/pc/tPINJBH411 MOIqxxPW.M1l4 MJtnpRZPIN/CIsl他p ;! jtPIN JLI1Z8&1 MJin putPINJJll871 RstErpdtP1N.B333. 時序仿真圖:1/1/rIfr-1-E-Iak a Dn ej1r皿訕恤幀恤皿i伽?! mmram?IIIIIIiIIIIIIIHnRo miJMj_LmMH I -HUFo o4.硬件電路圖:66軸C z 4卩 1 T . |迫* U M k=4i i H r3 A 7 L弁遼Jrt=siI t -H tdJ LT卜T也H-列|ta jta 卜
13、丄丄丄丘f * 14 1 二* 1 X 1 * 1 二1二1 11* 1VRT 15.現(xiàn)象:五、心得體會通過這次 EDA 課程設(shè)計,我對課堂上所學(xué)到的理論知識的理 解加深了許多,自己動腦、動手設(shè)計的能力也得到了較大提高。在這次課程設(shè)計的過程中,我對 VHDL 語言有了更深的認識。 通過 查閱相關(guān)資料和動手設(shè)計我發(fā)現(xiàn)我以前對 VHDL 語言的認識 太過淺薄, 認為 VHDL 語言只能用于設(shè)計小型的電路系統(tǒng)。 但有 了更深刻的認識之后 我發(fā)現(xiàn)學(xué)好 VHD 語言可以設(shè)計出大規(guī)模的、 功能復(fù)雜的電路系統(tǒng)。 以 前之所以會有錯誤的認識是因為自己對 VHDL 語言的了解和掌握還不夠。 現(xiàn)在仔細想想, 這次
14、課程設(shè)計使 得我對 VHDL 語言的理解與應(yīng)用能力得到 了較大的提升,也讓我 認識到只要升入學(xué)習(xí),提升的空間永遠的存在的。另一方面我也發(fā)現(xiàn)了動手實踐的重要性。 動手實踐是理論知 識得以 靈活運用的必要前提, 也是今后今后走上工作崗位之后能 夠很好的完成 設(shè)計工作的技術(shù)保證。 只有遇到實際問題并根據(jù)自 己對課堂上獲得的專 業(yè)知識的理解來解決它才能真正的提高自 己的能力。這也提醒我在平時的 學(xué)習(xí)生活中不能一味埋頭于課本 知識,當今社會競爭越來越劇烈, 社會 對人才的要求越來越全面, 只有理論知識是遠遠不夠的, 必須靠動手能 力做支撐。因此在學(xué) 習(xí)之余我們應(yīng)該積極參加各種與專業(yè)知識有關(guān)的實踐 活動和
15、知 識競賽,穩(wěn)固所學(xué)的理論知識,多注重培養(yǎng)實際動手能力和專業(yè) 技術(shù)能力,這樣才能在以后的工作崗位上有所作為。數(shù)字秒表設(shè)計一、設(shè)計目的本設(shè)計的任務(wù)就是設(shè)計一個數(shù)字鐘, 要求顯示格式為小時 分鐘 秒鐘。系統(tǒng)時鐘選擇時鐘模塊的 50MHz 要得到 1Hz 時鐘 信號,必須對 系統(tǒng)時鐘進行 50000000 次分頻。用 S1 按鍵作為系 統(tǒng)時鐘復(fù)位,復(fù)位后全部顯示 00 00 00 。二、設(shè)計原理數(shù)碼管的八個段 a,b,c,d,e,f,g,h h 是小數(shù)點都分別連 接到 SEG0SEG78 個數(shù)碼管分別由八個選通信號 DIG0DIG7 來 選擇,被選 通的數(shù)碼管顯示數(shù)據(jù),其余關(guān)閉。如果希望 8 個數(shù)碼
16、 管顯示希望的數(shù)據(jù), 就必須使得 8 個選通信號 DIG0DIG7 分別被 單獨選通,并在此同時,在 段信號輸入口 SEG0SEG 加上該對應(yīng) 數(shù)碼管上顯示的數(shù)據(jù), 于是隨著 選通信號的掃描就能實現(xiàn)動態(tài)掃 描顯示的目的。 雖然每次只有 1 個數(shù)碼 管顯示, 但只要掃描顯示 速率足夠快,利用人眼的視覺余輝效應(yīng),我們 仍會感覺所有的數(shù) 碼管都在同時顯示。三、設(shè)計主要內(nèi)容本設(shè)計要求掌握使用 QuartusII 設(shè)計數(shù)字系統(tǒng)的設(shè)計思路和 設(shè)計方法。 學(xué)習(xí) VHDL 根本邏輯電路的綜合設(shè)計應(yīng)用。 掌握 VHDL 語言的語法標準, 掌握時序電路描述方法。 掌握多個數(shù)碼管動態(tài) 掃描顯示的原理及設(shè)計方法。設(shè)計
17、一個由共陰八位數(shù)碼管作為顯示、按鍵作為控制系統(tǒng)的 數(shù)字鐘電 路,要求利用實驗室設(shè)備完成系統(tǒng)設(shè)計并運行調(diào)試四、設(shè)計流程1.程序:library ieee;use ieee.std_logic_1164.all;use ieee.stdo gic_arith.all;use ieee.stdo gic_ un sig ned.all; en tity stopwatch isport( Clk :inreset :instart,over :inledag:0);-七段碼管顯示輸出SELdownto 0)-七段碼管掃描驅(qū)動std_logic;-時鐘輸入std_logic;-復(fù)位輸入std_logi
18、c;-秒表控制輸入out stdo gic_vector(6 dow nto:bufferstd_logic_vector(2end stopwatch;sig nal Disp_Temp sig nalDisp_Decode sig nal mSEC1,mSEC10 sig nal SEC1,SEC10 sig nal MIN1,MIN10 sig nal HOUR1,HOUR10:std_logic;:std_logic; :std_logic;);architecture behave of stopwatch is in teger range 0 to 15;stdo gic_vec
19、tor(6 dow nto 0); : in teger range 0 to 9;in teger range 0 to 9;:in teger range 0 to 9;:in teger range 0 to 9;sig nal Clk1kHz sig nal Clk100Hz sig nal Start_Flagsig nal Music_C ount:stdo gic_vector(2 dow nto 0);beginPROCESS(clk) -ge nerate 100hz clock sig nalvariable ent : INTEGER RANGE 0 TO 499999;
20、- 產(chǎn)生 100Hz 時 鐘的分頻計數(shù)器BEGINIF clk=1 AND clkeve nt THENIF cn t=499999 THEN cn t:=0;ELSEIF cnt250000 THEN clk100hz=1;ELSE clk100hz=0;END IF;cnt:=cnt+1;END IF;END IF;END PROCESS;PROCESS(clk) -generate 1khz clock signal variable cnt1 : INTEGER RANGE 0 TO 49999;- 產(chǎn)生 1kHz 時 鐘的分頻計數(shù)器BEGINIF clk=1 AND clkevent
21、 THENIF cnt1=49999 THEN cnt1:=0;ELSEIF cnt125000 THEN clk1khz=1; ELSE clk1khz=0; END IF;cnt1:=cnt1+1;END IF;END IF;END PROCESS;process(Clk100Hz)beginif(reset=0) then - 系統(tǒng)復(fù)位 mSEC1=0; mSEC10=0; SEC1=0; SEC10=0; MIN1=0; MIN10=0; HOUR1=0;HOUR10=0;Start_Flag=0;elsif(start=0 and Start_Flag=0) thenStart_Fl
22、ag=1;elsif(over=0 and Start_Flag=1) thenStart_Flag=0;elsif(Clk100Hzevent and Clk100Hz=1) then - 正常運行 if(Start_Flag=1) then if(mSEC1=9) then mSEC1=0;if(mSEC10=9) thenmSEC10=0;if(SEC1=9) thenSEC1=0;if(SEC10=5) thenSEC10=0;if(MIN1=9) thenMIN1=0;if(MIN10=5) thenMIN10=0;if(HOUR1=9) thenHOUR1=0; if(HOUR10
23、=9) then HOUR10=0; elseHOUR10=HOUR10+1;end if;elseHOUR1=HOUR1+1; end if;elseMIN10=MIN10+1;end if;elseMIN1=MIN1+1; end if;elseSEC10=SEC10+1; end if;elseSEC1=SEC1+1; end if; else mSEC10=mSEC10+1; end if;else mSEC1Disp_TempDisp_TempDisp_TempDisp_TempDisp_TempDisp_TempDisp_TempDisp_TempDisp_TempDisp_Tem
24、pDisp_TempDisp_TempDisp_TempDisp_TempDisp_TempDisp_Temp=HOUR10; end case;end if;end process;process(Clk1khz)begin if(Clk1khzevent and Clk1khz=1) then - 掃描 累加 SEL=SEL+1;ledagDisp_DecodeDisp_DecodeDisp_DecodeDisp_DecodeDisp_DecodeDisp_DecodeDisp_DecodeDisp_DecodeDisp_DecodeDisp_DecodeDisp_DecodeDisp_DecodeH/TTi(defaJt)z尬edA 6OiAputmmTB2 N03.3-VLVTTL(dAait)3 OutputF1N.M52BZJfl3,AHVTTL(defdt)4*Ieddi40就卩止WN.H62B2.N03.3-lfLVTTL(defajt)5神窗OutputFN M2B2.N13.3-VLVTTLt)&4*兩 2OutputPRUB282.N13LVT(W4i*)7曲宓UOutputPJN.MS1B1.N03.3-HVTTL (drfait)8聊硼OutputF1N M6iELJU3.?-VLYTTL(def
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 醫(yī)療組長崗位職責(zé)解析
- 醫(yī)院設(shè)備維護人員崗位職責(zé)
- 部編版三年級下冊語文教學(xué)資源開發(fā)計劃
- 校內(nèi)體育聯(lián)誼賽事計劃
- 石油化工施工安全日志范文
- 基層醫(yī)療機構(gòu)醫(yī)囑查對核對流程方案
- 2025年幼兒園大班飲食營養(yǎng)指導(dǎo)計劃
- 裝配式建筑施工節(jié)點質(zhì)量管理措施及防治措施
- ??崎T診護士工作職責(zé)提升
- 基層干部培訓(xùn)學(xué)習(xí)心得體會
- 國家高中生物新課標解讀
- DLT 5434-2021 電力建設(shè)工程監(jiān)理規(guī)范表格
- 2024年中考語文名著閱讀重點梳理:《朝花夕拾》含中考練習(xí)題及參考答案
- SYT 6968-2021 油氣輸送管道工程水平定向鉆穿越設(shè)計規(guī)范-PDF解密
- (正式版)QBT 5998-2024 寵物尿墊(褲)
- 中小學(xué)智慧校園項目應(yīng)急預(yù)案
- 互聯(lián)網(wǎng)醫(yī)療項目計劃書
- 量子信息學(xué)導(dǎo)論 課件 第8章 量子度量學(xué)
- 勞動器材配備一覽表
- 火電廠危險化學(xué)品安全管理課件
- JB-T 4149-2022 臂式斗輪堆取料機
評論
0/150
提交評論