版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p> 課 程 設(shè) 計(jì)</p><p><b> 課程設(shè)計(jì)任務(wù)書</b></p><p> 課程 硬件課程設(shè)計(jì)</p><p> 題目 數(shù)字電壓表設(shè)計(jì)</p><p><b> 專業(yè) &
2、lt;/b></p><p> 主要內(nèi)容、基本要求等</p><p><b> 一、主要內(nèi)容:</b></p><p> 利用EL教學(xué)實(shí)驗(yàn)箱、微機(jī)和QuartusⅡ軟件系統(tǒng),使用VHDL語言輸入方法設(shè)計(jì)數(shù)字鐘??梢岳脤哟卧O(shè)計(jì)方法和VHDL語言,完成硬件設(shè)計(jì)設(shè)計(jì)和仿真。最后在EL教學(xué)實(shí)驗(yàn)箱中實(shí)現(xiàn)。</p><p&
3、gt;<b> 二、基本要求:</b></p><p> 1、A/D轉(zhuǎn)換接口電路的設(shè)計(jì),負(fù)責(zé)對(duì)ADC0809的控制。</p><p> 2、編碼轉(zhuǎn)換電路設(shè)計(jì),負(fù)責(zé)把從ADC0809數(shù)據(jù)總線中讀出的電壓轉(zhuǎn)換成BCD碼。3、輸出七段顯示電路的設(shè)計(jì),負(fù)責(zé)將BCD碼用7段顯示器顯示出來。</p><p><b> 三、參考文獻(xiàn)&
4、lt;/b></p><p> [1] 潘松.EDA技術(shù)實(shí)用教程[M].北京:科學(xué)出版社, 2003.11-13.</p><p> [2] 包明.《EDA技術(shù)與數(shù)字系統(tǒng)設(shè)計(jì)》.北京航天航空大學(xué)出版社. 2002.</p><p> [3] EDA先鋒工作室.Altera FPGA/CPLD設(shè)計(jì)[M].北京:人民郵電出版社2005.32-33.</
5、p><p> [4] 潘松.SOPC技術(shù)實(shí)用教程[M] .清華大學(xué)出版社.2005.1-15.</p><p> 完成期限 第18-19周 </p><p> 指導(dǎo)教師 </p><p> 專業(yè)負(fù)責(zé)人 </p><p> 摘要
6、 </p><p> 本文介紹了基于EDA技術(shù)的8位數(shù)字電壓表。系統(tǒng)采用CPLD為控制核心,采用VHDL語言實(shí)現(xiàn),論述了基于VHDL語言和CPLD芯片的數(shù)字系統(tǒng)設(shè)計(jì)思想和實(shí)現(xiàn)過程。在硬件電子電路設(shè)計(jì)領(lǐng)域中,電子設(shè)計(jì)自動(dòng)化(EDA)工具已成為主要的設(shè)計(jì)手段,而VHDL語言則是EDA的關(guān)鍵技術(shù)之一,。VHDL的英文全名是Very-High-Speed Integrated Circuit HardwareDesc
7、ription Language,它采用自頂向下的設(shè)計(jì)方法,即從系統(tǒng)總體要求出發(fā),自上至下地將設(shè)計(jì)任務(wù)分解為不同的功能模塊,最后將各功能模塊連接形成頂層模塊,完成系統(tǒng)硬件的整體設(shè)計(jì)。 電子設(shè)計(jì)自動(dòng)化技術(shù)EDA的發(fā)展給電子系統(tǒng)的設(shè)計(jì)帶來了革命性的變化,EDA軟件設(shè)計(jì)工具,硬件描述語言,可編程邏輯器件(PLD)使得EDA技術(shù)的應(yīng)用走向普及。CPLD是新型的可編程邏輯器件,采用CPLD進(jìn)行產(chǎn)品開發(fā)可以靈活地進(jìn)行模塊配置,大大縮短了產(chǎn)品
8、開發(fā)周期,也有利于產(chǎn)品向小型化,集成化的方向發(fā)展。而 VHDL語言是EDA的關(guān)鍵技術(shù)之一,它采用自頂向下的設(shè)計(jì)方法,完成系統(tǒng)的整體設(shè)計(jì)。</p><p> 本文用CPLD芯片和VHDL語言設(shè)計(jì)了一個(gè)八位的數(shù)字電壓表。 它的計(jì)時(shí)周期為24小時(shí),顯示滿刻度為23時(shí)59分59秒,另外還具有校時(shí)功能和鬧鐘功能??偟某绦蛴蓭讉€(gè)各具不同功能的單元模塊程序拼接而成,其中包括分頻程序模塊、時(shí)分秒計(jì)數(shù)和設(shè)置程序模塊、比
9、較器程序模塊、三輸入數(shù)據(jù)選擇器程序模塊、譯碼顯示程序模塊和拼接程序模塊。 關(guān)鍵詞:數(shù)字電壓表;QuartusⅡ軟件;EDA(電子設(shè)計(jì)自動(dòng)化)</p><p><b> 目 錄</b></p><p><b> 第1章 概 述1</b></p><p> 1.1 EDA的概念1</p>
10、<p> 1.2 EDA技術(shù)及應(yīng)用2</p><p> 1.3 EDA硬件工作平臺(tái)2</p><p> 1.4 EDA的軟件工作平臺(tái)2</p><p> 第2章 數(shù)字電壓表的設(shè)計(jì)實(shí)現(xiàn)3</p><p><b> 2.1狀態(tài)機(jī)3</b></p><p> 2.2
11、狀態(tài)機(jī)的設(shè)計(jì)3</p><p> 2.3 BCD碼的轉(zhuǎn)換5</p><p> 2.4七段電路顯示7</p><p> 第3章 數(shù)字電壓表的測試與運(yùn)行10</p><p> 3.1數(shù)字電壓表的編譯與仿真10</p><p> 3.2數(shù)字電壓表的仿真與燒寫12</p><p>
12、<b> 結(jié)論15</b></p><p><b> 參考文獻(xiàn)16</b></p><p><b> 第1章 概 述</b></p><p> 1.1 EDA的概念</p><p> EDA是電子設(shè)計(jì)自動(dòng)化(Electronic Design Automation
13、)的縮寫。由于它是一門剛剛發(fā)展起來的新技術(shù),涉及面廣,內(nèi)容豐富,理解各異,所以目前尚無一個(gè)確切的定義[1]。但從EDA技術(shù)的幾個(gè)主要方面的內(nèi)容來看,可以理解為:EDA技術(shù)是以大規(guī)??删幊踢壿嬈骷樵O(shè)計(jì)載體,以硬件描述語言為系統(tǒng)邏輯描述的主要表達(dá)方式,以計(jì)算機(jī)、大規(guī)??删幊踢壿嬈骷拈_發(fā)軟件及實(shí)驗(yàn)開發(fā)系統(tǒng)為設(shè)計(jì)工具,通過有關(guān)的開發(fā)軟件,自動(dòng)完成用軟件的方式設(shè)計(jì)電子系統(tǒng)到硬件系統(tǒng)的一門新技術(shù)??梢詫?shí)現(xiàn)邏輯編譯、邏輯化簡、邏輯分割、邏輯綜合及
14、優(yōu)化,邏輯布局布線、邏輯仿真[2]。</p><p> EDA技術(shù)是伴隨著計(jì)算機(jī)、集成電路、電子系統(tǒng)的設(shè)計(jì)發(fā)展起來的,至今已有30多年的歷程。大致可以分為三個(gè)發(fā)展階段。20世紀(jì)70年代的CAD(計(jì)算機(jī)輔助設(shè)計(jì))階段:這一階段的主要特征是利用計(jì)算機(jī)輔助進(jìn)行電路原理圖編輯,PCB不同布線,使得設(shè)計(jì)師從傳統(tǒng)高度重復(fù)繁雜的繪圖勞動(dòng)中解脫出來。[3]20世紀(jì)80年代的QAE(計(jì)算機(jī)輔助工程設(shè)計(jì))階段:這一階段的主要特征是
15、以邏輯摸擬、定時(shí)分析、故障仿真、自動(dòng)布局布線為核心,重點(diǎn)解決電路設(shè)計(jì)的功能檢測等問題,使設(shè)計(jì)能在產(chǎn)品制作之前預(yù)知產(chǎn)品的功能與性能[4]。20世紀(jì)90年代是EDA(電子設(shè)計(jì)自動(dòng)化)階段:這一階段的主要特征是以高級(jí)描述語言,系統(tǒng)級(jí)仿真和綜合技術(shù)為特點(diǎn),采用“自頂向下”的設(shè)計(jì)理念,將設(shè)計(jì)前期的許多高層次設(shè)計(jì)由EDA工具來完成。</p><p> EDA是電子技術(shù)設(shè)計(jì)自動(dòng)化,也就是能夠幫助人們?cè)O(shè)計(jì)電子電路或系統(tǒng)的軟件工
16、具。該工具可以在電子產(chǎn)品的各個(gè)設(shè)計(jì)階段發(fā)揮作用,使設(shè)計(jì)更復(fù)雜的電路和系統(tǒng)成為可能。在原理圖設(shè)計(jì)階段,可以使用EDA中的仿真工具論證設(shè)計(jì)的正確性;在芯片設(shè)計(jì)階段,可以使用EDA中的芯片設(shè)計(jì)工具設(shè)計(jì)制作芯片的版圖;在電路板設(shè)計(jì)階段,可以使用EDA中電路板設(shè)計(jì)工具設(shè)計(jì)多層電路板。特別是支持硬件描述語言的EDA工具的出現(xiàn),使復(fù)雜數(shù)字系統(tǒng)設(shè)計(jì)自動(dòng)化成為可能,只要用硬件描述語言將數(shù)字系統(tǒng)的行為描述正確,就可以進(jìn)行該數(shù)字系統(tǒng)的芯片設(shè)計(jì)與制造[5]。2
17、1世紀(jì)將是EDA技術(shù)的高速發(fā)展期,EDA技術(shù)將是對(duì)21世紀(jì)產(chǎn)生重大影響的十大技術(shù)之一?! ∮布枋稣Z言:硬件描述語言(HDL)是一種用于進(jìn)行電子系統(tǒng)硬件設(shè)計(jì)的計(jì)算機(jī)高級(jí)語言,它采用軟件的設(shè)計(jì)方法來描述電子系統(tǒng)的邏輯功能、電路結(jié)構(gòu)和連接形式。 常用硬件描述語言有HDL、Verilog和VHDL語言。</p><p> 1.2 EDA技術(shù)及應(yīng)用</p><p> 電子EDA技術(shù)
18、發(fā)展迅猛,逐漸在教學(xué)、科研、產(chǎn)品設(shè)計(jì)與制造等各方面都發(fā)揮著巨大的作用。在教學(xué)方面:幾乎所有理工科(特別是電子信息)類的高校都開設(shè)了EDA課程。主要是讓學(xué)生了解EDA的基本原理和基本概念、硬件描述系統(tǒng)邏輯的方法、使用EDA工具進(jìn)行電子電路課程的模擬仿真實(shí)驗(yàn)并在作畢業(yè)設(shè)計(jì)時(shí)從事簡單電子系統(tǒng)的設(shè)計(jì),為今后工作打下基礎(chǔ)。[6]具有代表性的是全國每兩年舉辦一次的大學(xué)生電子設(shè)計(jì)競賽活動(dòng)。在科研方面:主要利用電路仿真工具進(jìn)行電路設(shè)計(jì)與仿真;利用虛擬儀
19、器進(jìn)行產(chǎn)品調(diào)試;將FPGA器件的開發(fā)應(yīng)用到儀器設(shè)備中[7]。在產(chǎn)品設(shè)計(jì)與制造方面:從高性能的微處理器、數(shù)字信號(hào)處理器一直到彩電、音響和電子玩具電路等,EDA技術(shù)不單是應(yīng)用于前期的計(jì)算機(jī)模擬仿真、產(chǎn)品調(diào)試,而且也在后期的制作、電子設(shè)備的研制與生產(chǎn)、電路板的焊接、器件的制作過程等有重要作用[8]??梢哉f電子EDA技術(shù)已經(jīng)成為電子工業(yè)領(lǐng)域不可缺少的技術(shù)支持。</p><p> 1.3 EDA硬件工作平臺(tái)</p&
20、gt;<p><b> 1.計(jì)算機(jī)</b></p><p> 2.EDA實(shí)驗(yàn)開發(fā)系統(tǒng):EL教學(xué)實(shí)驗(yàn)箱。</p><p> 1.4 EDA的軟件工作平臺(tái)</p><p> PLD(Programmable Logic Device)是一種由用戶根據(jù)需要而自行構(gòu)造邏輯功能的數(shù)字集成電路。目前主要有兩大類型:CPLD(Compl
21、ex PLD)和FPGA(Field Programmable Gate Array)[9]。它們的基本設(shè)計(jì)方法是借助于EDA軟件,用原理圖、狀態(tài)機(jī)、布爾表達(dá)式、硬件描述語言等方法,生成相應(yīng)的目標(biāo)文件,最后用編程器或下載電纜,由目標(biāo)器件實(shí)現(xiàn)[10]。生產(chǎn)PLD的廠家很多,但最有代表性的PLD廠家為Altera、Xilinx和Lattice 公司。</p><p> 第2章 數(shù)字電壓表的設(shè)計(jì)實(shí)現(xiàn)</p&g
22、t;<p><b> 2.1狀態(tài)機(jī)</b></p><p> 用狀態(tài)機(jī)對(duì)ADC0809進(jìn)行采樣控制首先必須了解其工作時(shí)序, 然后據(jù)此作出狀態(tài)圖, 最后寫出相應(yīng)的VHDL 代碼。ADC0809 是CMOS 的8 位A /D轉(zhuǎn)換器, 片內(nèi)有8路模擬開關(guān), 可控制8個(gè)模擬量中的一個(gè)進(jìn)入轉(zhuǎn)換器中。ADC0809 的分辨率為8位, 轉(zhuǎn)換時(shí)間約100μs, 輸出由三態(tài)緩沖器控制, 單5
23、 V 電源供電。如圖2-1所示:</p><p> 圖2-1 ADC0809接口電路原理圖</p><p><b> 2.2狀態(tài)機(jī)的設(shè)計(jì)</b></p><p> 狀態(tài)機(jī)就是控制ADC0809轉(zhuǎn)換過程的控制器。根據(jù)ADC0809的工作時(shí)序,就可以設(shè)計(jì)出狀態(tài)機(jī)。該組狀態(tài)機(jī)由以下幾個(gè)部分組成,其VHDL語言描述如下。</p>&
24、lt;p> P1: process(present_state,next_state,INT)</p><p><b> begin</b></p><p> case present_state is</p><p> when idle => CS<='1'; WR<='1';
25、 RD<='1';</p><p> next_state<=write;</p><p> when write => CS<='1'; WR<='0'; RD<='1';</p><p> next_state<=swait;</p>&
26、lt;p> when swait => CS<='1'; WR<='1'; RD<='1';</p><p> if ( INT='0') then</p><p> next_state<=read;</p><p><b> else</b
27、></p><p> next_state<=swait;</p><p><b> end if;</b></p><p> when read => CS<='1'; WR<='1'; RD<='0';</p><p> ne
28、xt_state<=disp1;</p><p> when disp1 => CS<='1'; WR<='1'; RD<='1';</p><p> DATOUT<=dout1;</p><p> next_state<=disp2;</p><p&
29、gt; when disp2 => CS<='1'; WR<='1'; RD<='1';</p><p> DATOUT<=dout2;</p><p> next_state<=disp3;</p><p> when disp3 => CS<='1
30、39;; WR<='1'; RD<='1';</p><p> DATOUT<=dout3;</p><p> next_state<=disp4;</p><p> when disp4 => CS<='1'; WR<='1'; RD<='
31、1';</p><p> DATOUT<=dout4;</p><p> next_state<=write;</p><p><b> end case;</b></p><p> end process P1;</p><p> 當(dāng)CS<='1
32、9;; WR<='0'; RD<='0'時(shí),ADC0809被設(shè)為空位,由控制器發(fā)出信號(hào)要求ADC0809開始進(jìn)行模/數(shù)信號(hào)的轉(zhuǎn)換。當(dāng)CS<='1'; WR<='1'; RD<='0'時(shí),往ADC0809里寫數(shù)據(jù)ADC0809進(jìn)行轉(zhuǎn)換動(dòng)作,轉(zhuǎn)換完畢后INT將低電位。當(dāng)CS<='0'; WR<='
33、0'; RD<='0'時(shí),如果此時(shí)INT=1,說明轉(zhuǎn)換結(jié)束,由控制器發(fā)出信號(hào)以讀取ADC0809的轉(zhuǎn)換資料,如果此時(shí)INT=0,說明轉(zhuǎn)換沒結(jié)束,繼續(xù)轉(zhuǎn)換。當(dāng)CS<='1'; WR<='0'; RD<='1'時(shí),由控制器讀取數(shù)據(jù)總線上的數(shù)字轉(zhuǎn)換資料。當(dāng)接下來的幾個(gè)狀態(tài)(disp1,disp2,disp3,disp4)是控制輸出的。</p&
34、gt;<p><b> begin</b></p><p> if(RESET='0') then</p><p> present_state<=idle;</p><p> datain<="00000000";</p><p> elsif(C
35、LK'event and CLK='1') then</p><p> present_state<=next_state;</p><p> if(present_state=read) then</p><p> datain<=D;</p><p><b> end if;</
36、b></p><p><b> end if;</b></p><p> end process P2;</p><p> 進(jìn)程2是時(shí)序進(jìn)程,當(dāng)RESET='0'時(shí), datain<="00000000"(數(shù)據(jù)信號(hào)轉(zhuǎn)化為模擬信號(hào))當(dāng)時(shí)鐘上升沿一來時(shí),如果此時(shí)present_state=rea
37、d,說明轉(zhuǎn)換結(jié)束,datain<=D(數(shù)據(jù)信號(hào)轉(zhuǎn)化為模擬信號(hào))。</p><p> 2.3 BCD碼的轉(zhuǎn)換</p><p> 其中表2-1為把數(shù)據(jù)轉(zhuǎn)化為BCD碼,模擬輸入電壓與輸出電壓的對(duì)應(yīng)關(guān)系。</p><p> 表2-1 數(shù)據(jù)轉(zhuǎn)化為BCD碼 </p><p> 這樣由ADC0809收到的信號(hào)是01110110(76H),則對(duì)
38、照表時(shí),高4位0111的電壓為2.24V,而低4位0110是0.12V,所以最后的電壓輸出結(jié)果為2.24+0.12=2.36V。</p><p> LIBRARY IEEE;</p><p> USE IEEE.STD_LOGIC_1164.ALL;</p><p> USE IEEE.STD_LOGIC_ARITH.ALL;</p><p
39、> USE IEEE.STD_LOGIC_UNSIGNED.ALL;</p><p> ENTITY BCD IS</p><p> PORT (V:IN STD_LOGIC_VECTOR(7 DOWNTO 0);</p><p> HB,LB:BUFFER STD_LOGIC_VECTOR(11 DOWNTO 0);</p><p
40、> BVALUE:BUFFER STD_LOGIC_VECTOR(11 DOWNTO 0);</p><p> BCD_L,BCD_M,BCD_H:OUT STD_LOGIC_VECTOR(3 DOWNTO 0));</p><p><b> END BCD;</b></p><p> ARCHITECTURE A OF BCD
41、IS</p><p><b> BEGIN</b></p><p> P1:PROCESS(V(7 DOWNTO 4)) </p><p> BEGIN --A/D輸出高4位轉(zhuǎn)換 分辨率0.32V</p><p> IF V(7 DOWNTO 4)="1111"
42、; THEN HB<="010010000000"; --4.80V</p><p> ELSIF V(7 DOWNTO 4)= "1110" THEN HB<="010001001000";--4.48V</p><p> ELSIF V(7 DOWNTO 4)= "1101" TH
43、EN HB<="010000010110";--4.16V</p><p> ELSIF V(7 DOWNTO 4)= "1100" THEN HB<="001110000100";--3.84V</p><p> ELSIF V(7 DOWNTO 4)= "1011" THEN HB<=
44、"001101010010";--3.52V</p><p> ELSIF V(7 DOWNTO 4)= "1010" THEN HB<="001100100000";--3.20V</p><p> ELSIF V(7 DOWNTO 4)= "1001" THEN HB<="0010
45、10001000";--2.88V</p><p> ELSIF V(7 DOWNTO 4)= "1000" THEN HB<="001001010110";--2.56V</p><p> ELSIF V(7 DOWNTO 4)= "0111" THEN HB<="001000100100&q
46、uot;;--2.24V</p><p> ELSIF V(7 DOWNTO 4)= "0110" THEN HB<="000110010010";--1.92V</p><p> ELSIF V(7 DOWNTO 4)= "0101" THEN HB<="000101100000";--1.6
47、0V</p><p> ELSIF V(7 DOWNTO 4)= "0100" THEN HB<="000100101000";--1.28V</p><p> ELSIF V(7 DOWNTO 4)= "0011" THEN HB<="000010010110";--0.96V</p&g
48、t;<p> ELSIF V(7 DOWNTO 4)= "0010" THEN HB<="000001100100";--0.64V</p><p> ELSIF V(7 DOWNTO 4)= "0001" THEN HB<="000000110010";--0.32V</p><p&
49、gt; ELSIF V(7 DOWNTO 4)= "0000" THEN HB<="000000000000";--0.00V</p><p> ELSE HB<="000000000000"; --0.00V</p><p><b> END I
50、F; </b></p><p> END PROCESS P1;</p><p> P2:PROCESS(V(3 DOWNTO 0)) </p><p> BEGIN --A/D輸出低4位轉(zhuǎn)換 分辨率0.02V</p><p>
51、 IF V(3 DOWNTO 0)= "1111" THEN LB<="000000110000"; --0.30V</p><p> ELSIF V(3 DOWNTO 0)= "1110" THEN LB<="000000101000";--0.28V</p><p> ELSIF
52、V(3DOWNTO0)="1101" THEN LB<="000000100110";--0.26V</p><p> ELSIF V(3DOWNTO0)="1100" THEN LB<="000000100100";--0.24V</p><p> ELSIF V(3DOWNTO0)=&quo
53、t;1011" THEN LB<="000000100010";--0.22V</p><p> ELSIF V(3DOWNTO0)="1010" THEN LB<="000000100000";--0.20V</p><p> ELSIF V(3DOWNTO0)="1001" THE
54、N LB<="000000011000";--0.18V</p><p> ELSIF V(3DOWNTO0)="1000" THEN LB<="000000010110";--0.16V</p><p> ELSIF V(3DOWNTO0)="0111" THEN LB<="0
55、00000010100";--0.14V</p><p> ELSIF V(3DOWNTO0)="0110" THEN LB<="000000010010";--0.12V</p><p> ELSIF V(3DOWNTO0)="0101" THEN LB<="000000010000"
56、;;--0.10V</p><p> ELSIF V(3DOWNTO0)="0100" THEN LB<="000000001000";--0.08V</p><p> ELSIF V(3DOWNTO0)="0011" THEN LB<="000000000110";--0.06V</p&
57、gt;<p> ELSIF V(3DOWNTO0)="0010" THEN LB<="000000000100";--0.04V</p><p> ELSIF V(3DOWNTO0)="0001" THEN LB<="000000000010";--0.02V</p><p>
58、ELSIF V(3DOWNTO0)="0000" THEN LB<="000000000000";--0.00V</p><p> ELSE LB<="000000000000"; --0V </p><p><b> END IF;</b></p><
59、;p> END PROCESS P2;</p><p> BVALUE<=HB+LB;</p><p> P3:PROCESS(BVALUE)</p><p> VARIABLE JJ:STD_LOGIC_VECTOR(11 DOWNTO 0);</p><p><b> BEGIN </b><
60、;/p><p> JJ:=BVALUE;</p><p> IF (JJ(3 DOWNTO 0)>"1001") THEN ――如果12位結(jié)果中,低4位</p><p> JJ:=JJ+"000000000110"; ――大于9 則低4位加6</p><p><b&g
61、t; END IF;</b></p><p> IF(JJ(7 DOWNTO 4)>"1001") THEN ――如果中間的4位大于9</p><p> JJ:=JJ+"000001100000"; ――則中4位加6</p><p><b> END IF;</
62、b></p><p> BCD_L<=JJ(3 DOWNTO 0); </p><p> BCD_M<=JJ(7 DOWNTO 4);</p><p> BCD_H<=JJ(11 DOWNTO 8);</p><p> END PROCESS P3;</p><p><b>
63、; END A;</b></p><p><b> 2.4七段電路顯示</b></p><p> LIBRARY ieee;</p><p> use ieee.std_logic_1164.all;</p><p> use ieee.std_logic_arith.all;</p>
64、<p> use ieee.std_logic_unsigned.all;</p><p> entity mux3_1 is</p><p> port(sel:in std_logic_vector(1 downto 0);</p><p> A,B,C:in std_logic_vector(3 downto 0);</p>
65、<p> Mselout:out std_logic_vector(3 downto 0));</p><p> end mux3_1;</p><p> architecture a of mux3_1 is</p><p><b> begin </b></p><p> process(sel)
66、</p><p><b> begin</b></p><p> if sel="10" then Mselout<=A; </p><p> elsif sel="01" then Mselout<=B; </p><p> elsif
67、 sel="00" then Mselout<=C; </p><p> else null;</p><p><b> end if;</b></p><p> end process;</p><p><b> end a;</b></p>&
68、lt;p> ――位選信號(hào)產(chǎn)生器(3進(jìn)制計(jì)數(shù)器)</p><p> library ieee;</p><p> use ieee.std_logic_1164.all;</p><p> use ieee.std_logic_unsigned.all;</p><p> entity c3 is </p><
69、;p> port(clk,clr:in std_logic;</p><p> qout:buffer std_logic_vector(1 downto 0)</p><p><b> );</b></p><p><b> end c3;</b></p><p> archite
70、cture behave of c3 is</p><p><b> begin </b></p><p> process(clk,clr)</p><p><b> begin</b></p><p> if(clr='0')then qout<="00&
71、quot;;</p><p> elsif(clk'event and clk='1')then </p><p> qout<=qout+1;</p><p> if(qout=2)then qout<="00";</p><p><b> end if;</b
72、></p><p><b> end if;</b></p><p> end process;</p><p> end behave;</p><p> LIBRARY ieee;</p><p> USE ieee.std_logic_1164.all;</p>
73、<p> USE ieee.std_logic_unsigned.all;</p><p> ENTITY del7 IS</p><p><b> PORT</b></p><p> ( input : IN STD_LOGIC_vector(3 downto 0);</p><p> outpu
74、t : OUT STD_LOGIC_vector(6 downto 0)</p><p><b> );</b></p><p><b> END del7;</b></p><p> ARCHITECTURE a OF del7 IS </p><p><b> BEGI
75、N</b></p><p> PROCESS (input)</p><p><b> BEGIN</b></p><p> CASE input IS</p><p> WHEN "0000" =>output<="1111110";</p&
76、gt;<p> WHEN "0001" =>output<="0110000";</p><p> WHEN "0010" =>output<="1101101";</p><p> WHEN "0011" =>output<=&quo
77、t;1111001";</p><p> WHEN "0100" =>output<="0110011";</p><p> WHEN "0101" =>output<="1011011";</p><p> WHEN "0110&quo
78、t; =>output<="1011111";</p><p> WHEN "0111" =>output<="1110000";</p><p> WHEN "1000" =>output<="1111111";</p><p&g
79、t; WHEN "1001" =>output<="1111011";</p><p> WHEN OTHERS=>NULL;</p><p><b> END CASE;</b></p><p> end process; </p><p><
80、b> END a;</b></p><p><b> ――小數(shù)點(diǎn)產(chǎn)生器 </b></p><p> LIBRARY ieee;</p><p> use ieee.std_logic_1164.all;</p><p> use ieee.std_logic_arith.all;</p&
81、gt;<p> use ieee.std_logic_unsigned.all;</p><p> entity DP is</p><p> port(SELDP:in std_logic_vector(1 downto 0);</p><p> DPout:out std_logic);</p><p><b&
82、gt; end DP;</b></p><p> architecture a of DP is</p><p><b> begin </b></p><p> process(selDP)</p><p><b> begin</b></p><p>
83、; if selDP="10" then DPout<='0';</p><p> elsif selDP="01" then DPout<='0'; </p><p> elsif selDP="00" then DPout<='1'
84、; ――在高4位整數(shù)輸出時(shí),輸出</p><p> else null; ――小數(shù)點(diǎn)DP</p><p><b> end if;</b></p><p> end process;</p><p><b> end a;</b></
85、p><p> 第3章 數(shù)字電壓表的測試與運(yùn)行</p><p> 3.1數(shù)字電壓表的編譯與仿真</p><p> 3.1.1數(shù)字電壓表的編譯</p><p> 在 【Processing 】菜單下,點(diǎn)擊【Start Compilation】命令,或直接點(diǎn)擊常用工具欄上的 按鈕 ,開始編譯我們的項(xiàng)目。編譯成功后,點(diǎn)擊 確定
86、 按鈕。</p><p> 數(shù)字電壓表的編譯如圖3-1所示:</p><p> 圖3-1數(shù)字電壓表的編譯</p><p> 3.1.2數(shù)字電壓表的邏輯電路圖</p><p> 數(shù)字電壓表的邏輯電路如圖3-2所示:</p><p> 圖3-2數(shù)字電壓表的邏輯電路</p><p> 3.
87、1.3數(shù)字電壓表的功能仿真圖 </p><p> 在【File】菜單下,點(diǎn)擊【New】命令。在隨后彈出的對(duì)話框中,切換到【Other Files】頁。選中【Vector Waveform File】選項(xiàng),點(diǎn)擊 OK 按鈕。隨后把clk的周期設(shè)置為300.0ns,D的周期設(shè)置為20.0,再把INT的周期設(shè)置為30.0,最后再把RESET的置為高電平</p><p> 數(shù)字電壓表的功能仿
88、真如圖3-3所示:</p><p> 圖3-3數(shù)字電壓表的功能仿真</p><p> 3.2數(shù)字電壓表的仿真與燒寫</p><p> 3.2.1 引腳適配</p><p><b> 圖 3-4引腳配置</b></p><p> 配置好引腳后,在編譯一次,然后開始下載。</p>
89、<p> 圖3-5數(shù)字電壓表下載圖</p><p> 3.2.2實(shí)驗(yàn)連接 </p><p> 實(shí)驗(yàn)連接如圖3-6所示:</p><p><b> 圖3-6實(shí)驗(yàn)連線圖</b></p><p> 實(shí)驗(yàn)結(jié)果,可以改變電阻的值來改變電壓。</p><p> 圖3-7數(shù)字電壓表實(shí)驗(yàn)
90、結(jié)果圖</p><p> 在此實(shí)驗(yàn)中10K10上時(shí)鐘CLK0(1)接305.2Hz,RESET(83)接K1,CS(5)、RD(6)、WR(7)分別接0809的控制輸入端,INT(8)接0809的INTD[7-0](16-23)接0809的D0-D7(注意0809數(shù)據(jù)線標(biāo)識(shí)反),DATDOUT(73-60)接a-dp,SLE3-SLE0; 0809的A0、A1、A2接d0-d2(置低),VREF+接VCC,VR
91、EF-接GND,CLK接MCU的ALE,IN0接模擬輸出OUT。時(shí)鐘CLK接時(shí)鐘模塊輸出,使頻率為4~5MHZ左右;INT接ADC0809中斷輸出INT;D[7..0]接ADC0809數(shù)據(jù)輸出D[7..0];CS、RD、WR分別接ADC0809的控制輸入CS、RD、WR;BCDOUT接12個(gè)發(fā)光二極管。</p><p><b> 結(jié)論</b></p><p> 通
92、過對(duì)FPGA芯片進(jìn)行VHDL語言編程,我已經(jīng)基本了解QuartusⅡ軟件的使用, 并通過學(xué)習(xí)實(shí)現(xiàn)了數(shù)字電壓表的功能。這兩周的學(xué)習(xí)讓我感受到了學(xué)習(xí)過程中的開心與喜悅. 并且通過多次的認(rèn)證,確認(rèn)數(shù)字電壓表實(shí)驗(yàn)結(jié)果與理論相一致,實(shí)驗(yàn)的設(shè)計(jì)和結(jié)果均為正確。</p><p> 經(jīng)過這次的學(xué)習(xí)我發(fā)現(xiàn), VHDL具有很強(qiáng)的電路描述和建模能力, 能從多個(gè)層次對(duì)數(shù)字系統(tǒng)進(jìn)行建模和描述, 從而大大簡化了硬件設(shè)計(jì)任務(wù), 提高了設(shè)計(jì)效
93、率和可靠性。這種設(shè)計(jì)方法必將在未來的數(shù)字系統(tǒng)設(shè)計(jì)中發(fā)揮越來越重要的作用。</p><p><b> 參考文獻(xiàn)</b></p><p> [1] 潘松.EDA技術(shù)實(shí)用教程[M].北京:科學(xué)出版社, 2003,11-13.</p><p> [2] 包明.《EDA技術(shù)與數(shù)字系統(tǒng)設(shè)計(jì)》[M].北京:航天航空大學(xué)出版2002.10-18.<
94、/p><p> [3] EDA先鋒工作室.Altera FPGA/CPLD設(shè)計(jì)[M].北京:人民郵電出2005.32-33.</p><p> [4] 潘松.SOPC技術(shù)實(shí)用教程[M] .清華大學(xué)出版社.2005.1-15.</p><p> [5] 楊恒.FPGA/CPLD最新實(shí)用技術(shù)指南[M].北京:清華大學(xué)出版社2005.20-22.</p>
95、<p> [6] EDA先鋒工作室.Altera FPGA/CPLD設(shè)計(jì) [M].北京:人民郵電出2005.32-33.</p><p> [7]宋嘉玉、孫麗霞.EDA實(shí)用技術(shù)[M].北京:人民郵電出版社,2006.12-20.</p><p> [8]張彬宏.EDA應(yīng)用技術(shù)[M].北京:北京理工大學(xué)出版社,2007.7-06.</p><p>
96、[9]漢澤西.EDA技術(shù)及應(yīng)用[M].北京:北京航空航天大學(xué)出版社,2004.5-22.</p><p> [10]譚會(huì)生.EDA技術(shù)基礎(chǔ)[M].長沙:湖南大學(xué)出版社,2004.8-23.</p><p> 東北石油大學(xué)課程設(shè)計(jì)成績?cè)u(píng)價(jià)表</p><p> 指導(dǎo)教師: 年 月 日</p&g
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 數(shù)字電壓表課程設(shè)計(jì)
- 數(shù)字電壓表課程設(shè)計(jì)
- 數(shù)字電壓表課程設(shè)計(jì)
- 數(shù)字電壓表課程設(shè)計(jì)
- 數(shù)字電壓表課程設(shè)計(jì)
- 數(shù)字電壓表課程設(shè)計(jì)
- 數(shù)字電壓表課程設(shè)計(jì)
- 數(shù)字電壓表課程設(shè)計(jì)
- 數(shù)字電壓表課程設(shè)計(jì)
- 數(shù)字電壓表設(shè)計(jì)-課程設(shè)計(jì)
- 課程設(shè)計(jì)---數(shù)字電壓表設(shè)計(jì)
- 數(shù)字電壓表設(shè)計(jì)課程設(shè)計(jì)
- 數(shù)字電壓表設(shè)計(jì)-課程設(shè)計(jì)
- 簡易數(shù)字電壓表課程設(shè)計(jì)
- 數(shù)字電壓表課程設(shè)計(jì) (2)
- 數(shù)字電壓表課程設(shè)計(jì).doc
- 數(shù)字電壓表課程設(shè)計(jì)報(bào)告
- 數(shù)字電壓表的課程設(shè)計(jì)
- 數(shù)字電壓表課程設(shè)計(jì).doc
- 數(shù)字電壓表設(shè)計(jì)-硬件課程設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論