版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
1、<p> 東 北 石 油 大 學</p><p> 課 程 設 計</p><p> 2009年 7 月 10 日</p><p> 東北石油大學課程設計任務書</p><p> 課程 電子系統(tǒng)設計與實踐計</p><p> 題目
2、 數(shù)字電壓表設計</p><p> 專業(yè) 計算機科學與技術 姓名 學號 </p><p> 主要內(nèi)容、基本要求等</p><p><b> 一、主要內(nèi)容:</b></p><p> 利用EL教學實驗箱、微機和QuartusⅡ軟件系統(tǒng)
3、,使用VHDL語言輸入方法設計數(shù)字鐘??梢岳脤哟卧O計方法和VHDL語言,完成硬件設計設計和仿真。最后在EL教學實驗箱中實現(xiàn)。</p><p><b> 二、基本要求:</b></p><p> 1、A/D轉(zhuǎn)換接口電路的設計,負責對ADC0809的控制。</p><p> 2、編碼轉(zhuǎn)換電路設計,負責把從ADC0809數(shù)據(jù)總線中讀出的電壓轉(zhuǎn)
4、換成BCD碼。</p><p> 3、輸出七段顯示電路的設計,負責將BCD碼用7段顯示器顯示出來。</p><p><b> 三、擴展要求</b></p><p> 1. 當測量結(jié)束后,蜂鳴器鳴響10聲。 </p><p> 按照規(guī)范寫出論文,要求字數(shù)在4000字以上,并進行答辯。論文內(nèi)容包括概述(學習、調(diào)研、分
5、析、設計的內(nèi)容摘要)、EDA技術的現(xiàn)狀和發(fā)展趨勢、對EL教學實驗箱和QuartusⅡ軟件的掌握程度、數(shù)字鐘的設計過程(包括原理圖或程序設計、編譯、仿真分析、硬件測試的全過程),論文中含有原理圖、程序、仿真波形圖及其分析報告。</p><p> 完成期限 2周 </p><p> 指導教師 </p><p>
6、; 專業(yè)負責人 </p><p> 年 月 日東北石油大學課程設計成績評價表</p><p> 指導教師: 年 月 日</p><p><b> 摘 要</b></p><p> Quartus II 是Altera
7、公司的綜合性PLD開發(fā)軟件,支持原理圖、VHDL、VerilogHDL以及AHDL(Altera Hardware Description Language)等多種設計輸入形式,內(nèi)嵌自有的綜合器以及仿真器,可以完成從設計輸入到硬件配置的完整PLD設計流程。</p><p> Quartus II可以在XP、Linux以及Unix上使用,除了可以使用Tcl腳本完成設計流程外,提供了完善的用戶圖形界面設計方式。具有
8、運行速度快,界面統(tǒng)一,功能集中,易學易用等特點。</p><p> 本文設計主要利用VHDL語言在EDA平臺上設計一個數(shù)字電壓表,它的顯示位數(shù)為4位,由三大部分組成,每一部分又包含了若干子電路,將各電路組合起來,就構(gòu)成了一個整體。??偟某绦蛴蓭讉€各具不同功能的部分組成,其中包括循環(huán)控制P1、復位和狀態(tài)轉(zhuǎn)換P2、編碼轉(zhuǎn)換data、BCD碼加法do、輸出七段顯示dout。并且使用Quartus7.2-II軟件進行電
9、路波形仿真,下載到EDA實驗箱進行驗證。</p><p> 關鍵詞: EDA(電子設計自動化);VHDL(硬件描述語言);ADC0809;數(shù)字電壓表。</p><p><b> 目 錄</b></p><p><b> 第1章 概 述1</b></p><p> 1.1 EDA的概念1
10、</p><p> 1.2 VHDL語言的概念2</p><p> 1.3 EDA的開發(fā)環(huán)境3</p><p> 第2章 數(shù)字電壓表的系統(tǒng)分析4</p><p><b> 2.1設計目的4</b></p><p><b> 2.2功能說明4</b><
11、/p><p><b> 2.3實驗原理4</b></p><p><b> 2.4系統(tǒng)硬件4</b></p><p> 第3章 數(shù)字電壓表的底層電路設計5</p><p><b> 3.1設計規(guī)劃5</b></p><p><b>
12、 3.2設計說明5</b></p><p><b> 3.3電路程序5</b></p><p> 第4章 數(shù)字電壓表的測試與運行13</p><p> 4.1數(shù)字電壓表的編譯與仿真13</p><p> 4.2數(shù)字電壓表的適配與測試16</p><p><b&
13、gt; 結(jié) 論17</b></p><p><b> 參考文獻18</b></p><p><b> 第1章 概 述</b></p><p> 1.1 EDA的概念</p><p> EDA在通信行業(yè)(電信)里的另一個解釋是企業(yè)數(shù)據(jù)架構(gòu),EDA給出了一個企業(yè)級的數(shù)據(jù)架構(gòu)的總
14、體視圖,并按照電信企業(yè)的特征,進行了框架和層級的劃分。 EDA是電子設計自動化(Electronic Design Automation)的縮寫,在20世紀60年代中期從計算機輔助設計(CAD)、計算機輔助制造(CAM)、計算機輔助測試(CAT)和計算機輔助工程(CAE)的概念發(fā)展而來的。</p><p> 20世紀90年代,國際上電子和計算機技術較先進的國家,一直在積極探索新的電子電路設計方法,并在設計方法、
15、工具等方面進行了徹底的變革,取得了巨大成功。在電子技術設計領域,可編程邏輯器件(如CPLD、FPGA)的應用,已得到廣泛的普及,這些器件為數(shù)字系統(tǒng)的設計帶來了極大的靈活性。這些器件可以通過軟件編程而對其硬件結(jié)構(gòu)和工作方式進行重構(gòu),從而使得硬件的設計可以如同軟件設計那樣方便快捷。這一切極大地改變了傳統(tǒng)的數(shù)字系統(tǒng)設計方法、設計過程和設計觀念,促進了EDA技術的迅速發(fā)展。</p><p> EDA技術就是以計算機為工
16、具,設計者在EDA軟件平臺上,用硬件描述語言VHDL完成設計文件,然后由計算機自動地完成邏輯編譯、化簡、分割、綜合、優(yōu)化、布局、布線和仿真,直至對于特定目標芯片的適配編譯、邏輯映射和編程下載等工作。EDA技術的出現(xiàn),極大地提高了電路設計的效率和可操作性,減輕了設計者的勞動強度。</p><p> 利用EDA工具,電子設計師可以從概念、算法、協(xié)議等開始設計電子系統(tǒng),大量工作可以通過計算機完成,并可以將電子產(chǎn)品從電
17、路設計、性能分析到設計出IC版圖或PCB版圖的整個過程的計算機上自動處理完成。</p><p> 現(xiàn)在對EDA的概念或范疇用得很寬。包括在機械、電子、通信、航空航天、化工、礦產(chǎn)、生物、醫(yī)學、軍事等各個領域,都有EDA的應用。目前EDA技術已在各大公司、企事業(yè)單位和科研教學部門廣泛使用。例如在飛機制造過程中,從設計、性能測試及特性分析直到飛行模擬,都可能涉及到EDA技術。</p><p>
18、 1.2 VHDL語言的概念</p><p> VHDL 的英文全名是 Very-High-Speed Integrated Circuit Hardware Description Language,誕生于 1982 年。1987 年底,VHDL被 IEEE 和美國國防部確認為標準硬件描述語言。</p><p> VHDL主要用于描述數(shù)字系統(tǒng)的結(jié)構(gòu),行為,功能和接口。除了含有許多具
19、有硬件特征的語句外,VHDL的語言形式和描述風格與句法是十分類似于一般的計算機高級語言。VHDL的程序結(jié)構(gòu)特點是將一項工程設計,或稱設計實體(可以是一個元件,一個電路模塊或一個系統(tǒng))分成外部(或稱可視部分,及端口)和內(nèi)部(或稱不可視部分),既涉及實體的內(nèi)部功能和算法完成部分。在對一個設計實體定義了外部界面后,一旦其內(nèi)部開發(fā)完成后,其他的設計就可以直接調(diào)用這個實體。這種將設計實體分成內(nèi)外部分的概念是VHDL系統(tǒng)設計的基本點。</p&
20、gt;<p> VHDL 語言能夠成為標準化的硬件描述語言并獲得廣泛應用 , 它自身必然具有很多其他硬件描述語言所不具備的優(yōu)點。歸納起來 ,VHDL 語言主要具有以下優(yōu)點:</p><p> (1) VHDL 語言功能強大 , 設計方式多樣</p><p> VHDL 語言具有強大的語言結(jié)構(gòu), 只需采用簡單明確的VHDL語言程序就可以描述十分復雜的硬件電路。同時, 它還
21、具有多層次的電路設計描述功能。此外 ,VHDL 語言能夠同時支持同步電路、異步電路和隨機電路的設計實現(xiàn), 這是其他硬件描述語言所不能比擬的。VHDL 語言設計方法靈活多樣 , 既支持自頂向下的設計方式, 也支持自底向上的設計方法; 既支持模塊化設計方法, 也支持層次化設計方法。</p><p> (2) VHDL 語言具有強大的硬件描述能力</p><p> VHDL 語言具有多層次的
22、電路設計描述功能,既可描述系統(tǒng)級電路 , 也可以描述門級電路;描述方式既可以采用行為描述、寄存器傳輸描述或者結(jié)構(gòu)描述,也可以采用三者的混合描述方式。同時,VHDL 語言也支持慣性延遲和傳輸延遲,這樣可以準確地建立硬件電路的模型。VHDL 語言的強大描述能力還體現(xiàn)在它具有豐富的數(shù)據(jù)類型。VHDL 語言既支持標準定義的數(shù)據(jù)類型,也支持用戶定義的數(shù)據(jù)類型,這樣便會給硬件描述帶來較大的自由度。</p><p> (3)
23、 VHDL 語言具有很強的移植能力</p><p> VHDL 語言很強的移植能力主要體現(xiàn)在: 對于同一個硬件電路的 VHDL 語言描述 , 它可以從一個模擬器移植到另一個模擬器上、從一個綜合器移植到另一個綜合器上或者從一個工作平臺移植到另一個工作平臺上去執(zhí)行。</p><p> (4) VHDL 語言的設計描述與器件無關</p><p> 采用 VHDL 語
24、言描述硬件電路時, 設計人員并不需要首先考慮選擇進行設計的器件。這樣做的好處是可以使設計人員集中精力進行電路設計的優(yōu)化, 而不需要考慮其他的問題。當硬件電路的設計描述完成以后 ,VHDL 語言允許采用多種不同的器件結(jié)構(gòu)來實現(xiàn)?! ?lt;/p><p> (5) VHDL 語言程序易于共享和復用</p><p> VHDL 語言采用基于庫 ( library) 的設計方法。在設計過程中 ,
25、設計人員可以建立各種可再次利用的模塊 , 一個大規(guī)模的硬件電路的設計不可能從門級電路開始一步步地進行設計 , 而是一些模塊的累加。這些模塊可以預先設計或者使用以前設計中的存檔模塊, 將這些模塊存放在庫中 , 就可以在以后的設計中進行復用。</p><p> 由于 VHDL 語言是一種描述、模擬、綜合、優(yōu)化和布線的標準硬件描述語言 , 因此它可以使設計成果在設計人員之間方便地進行交流和共享, 從而減小硬件電路設計
26、的工作量, 縮短開發(fā)周期。</p><p> 1.3 EDA的開發(fā)環(huán)境</p><p> EDA工具軟件可大致可分為芯片設計輔助軟件、可編程芯片輔助設計軟件、系統(tǒng)設計輔助軟件等三類。</p><p> 目前進入我國并具有廣泛影響的EDA軟件是系統(tǒng)設計軟件輔助類和可編程芯片輔助設計軟件:Protel、Altium Designer、PSPICE、multiSIM
27、10(原EWB的最新版本)、OrCAD、PCAD、LSIIogic、MicroSim、ISE、modelsim、Matlab等等。這些工具都有較強的功能,一般可用于幾個方面,例如很多軟件都可以進行電路設計與仿真,同進還可以進行PCB自動布局布線,可輸出多種網(wǎng)表文件與第三方軟件接口。</p><p> 第2章 數(shù)字電壓表的系統(tǒng)分析</p><p><b> 2.1設計目的<
28、;/b></p><p> 1.掌握負責對ADC0809進行控制的A/D轉(zhuǎn)換接口電路的設計。</p><p> 2.掌握負責把從ADC0809數(shù)據(jù)總線中讀出的電壓轉(zhuǎn)換成BCD碼的編碼轉(zhuǎn)換電路的設計。</p><p> 3.掌握十六進制轉(zhuǎn)十進制的運算方法。</p><p> 4.理解輸出七段顯示電路的設計。</p>
29、<p><b> 2.2功能說明</b></p><p> 1.具有輸出模擬電壓的功能。</p><p><b> 2.具有復位。</b></p><p><b> 2.3實驗原理</b></p><p> 在同一EPLD芯片EPF10K10上集成了如下電路
30、模塊:</p><p> 1.控制ADC0809對模擬電壓的轉(zhuǎn)換。</p><p> 2.通過編碼設計電路,將ADC0809中的電壓轉(zhuǎn)換為BCD碼。</p><p> 3.通過對7段顯示電路的設計,將讀出的電壓通過7段顯示器顯示出來。</p><p><b> 2.4系統(tǒng)硬件</b></p><
31、;p> 1.EPF10K10LC84-4適配器。 </p><p> 2. 可變直流電平輸出電路。</p><p> 3. ADC0809。</p><p><b> 4. 7段顯示器。</b></p><p> 第3章 數(shù)字電壓表的底層電路設計</p><p><b>
32、 3.1設計規(guī)劃</b></p><p> 數(shù)字電壓表因為只實現(xiàn)一個功能,附帶一個重置的控制功能。因此可以將數(shù)字電壓表設計分為以下模塊:</p><p> 1.控制信號模塊:利用狀態(tài)機來實現(xiàn)控制器對ADC0809進行模/數(shù)信號的轉(zhuǎn)換的控制。</p><p> 2.電壓轉(zhuǎn)換BCD碼模塊:找出模擬輸入電壓與輸出電壓的對應關系,設計一個12位的BCD碼
33、加法器。</p><p> 3.電壓顯示模塊:對轉(zhuǎn)換后的電壓數(shù)進行顯示,將數(shù)字分為7個部分,另外還有小數(shù)點,通過vhdl程序?qū)M行相應電壓數(shù)的轉(zhuǎn)換。</p><p><b> 3.2設計說明</b></p><p> 首先從整體分析數(shù)字電壓表,然后對其進行細化,將其大致分為三大模塊,然后專攻一個部分,再將其融合在一起。</p>
34、<p><b> 3.3電路程序</b></p><p> 3.3.1 實體部分(VHDL語言編譯)</p><p> 其代碼如下:(VHDL語言):</p><p> library IEEE;</p><p> use IEEE.STD_LOGIC_1164.ALL;</p>
35、<p> use IEEE.STD_LOGIC_UNSIGNED.ALL;</p><p> entity voltmeter is</p><p> port (D: in std_logic_vector(7 downto 0);</p><p> CLK,INT,RESET: in std_logic;</p><p>
36、; CS,RD,WR: out std_logic;</p><p> DATOUT: out std_logic_vector(11 downto 0)</p><p><b> );</b></p><p> end voltmeter;</p><p> architecture doit of volt
37、meter is</p><p> signal datain : std_logic_vector(7 downto 0);</p><p> signal data1,data2 : std_logic_vector(15 downto 0);</p><p> signal dout1,dout2,dout3,dout4 : std_logic_vect
38、or(11 downto 0);</p><p> signal do1,do2,do3,do4,c1,c2,c3,doo1,doo2,doo3,doo4 :std_logic_vector(4 downto 0);</p><p> type statetype is(idle,write,swait,read,disp1,disp2,disp3,disp4);</p>
39、<p> signal present_state,next_state: statetype;</p><p> 這段VHDL語言聲明實體voltmeter并定義其信號。</p><p> 3.3.2產(chǎn)生控制信號</p><p> 對于ADC0809芯片的各種介紹請參閱其數(shù)據(jù)手冊。芯片ADC0809的控制時序圖如圖3-3所示。實驗儀器中ADC0
40、809接口電路原理圖如圖3-1所示。</p><p> 圖3-1 ADC0809接口電路原理圖</p><p> 由圖3-1和圖3-2可知,當CS 和WR同時為高電平時,ADC0809開始轉(zhuǎn)換,當轉(zhuǎn)換完成后,在INT腳輸出高電平,等待讀數(shù)據(jù);當CS和RD同時為電平時,通過數(shù)據(jù)總線D[7..0]從ADC0809是讀出數(shù)據(jù),如圖51-2所示。</p><p>
41、圖3-2 控制器控制信號時序圖</p><p> 從圖3-2我們可以將整個控制器分成4個步驟狀態(tài):S0、S1、S2、S3,第個狀態(tài)的動作方式如下:</p><p> 狀態(tài)S0:CS=1、WR=1、RD=0(由控制器發(fā)出信號要求ADC0809開始進行模/數(shù)信號的轉(zhuǎn)換)。</p><p> 狀態(tài)S1:CS=0、WR=0、RD=0(ADC0809進行轉(zhuǎn)換動作,轉(zhuǎn)換
42、完畢后INT將低電位升至高電位)。</p><p> 狀態(tài)S2:CS=1、WR=0、RD=1(由控制器發(fā)出信號以讀取ADC0809的轉(zhuǎn)換資料)。</p><p> 狀態(tài)S3:CS=0、WR=0、RD=0(由控制器讀取數(shù)據(jù)總線上的數(shù)字轉(zhuǎn)換資料)。</p><p> 由上述的四個狀態(tài)可以歸納出整個控制器的動作功能有:</p><p> 負
43、責在每個步驟送出所需的CS、WR、RD控制信號。</p><p> 在狀態(tài)S1時,監(jiān)控INT信號是否由低變高,如此以便了解轉(zhuǎn)換動作結(jié)束與否。</p><p> 在狀態(tài)S3,讀取轉(zhuǎn)換的數(shù)字資料。</p><p> 其代碼如下:(VHDL語言):</p><p> P1: process(present_state,next_state,
44、INT)</p><p><b> begin</b></p><p> case present_state is</p><p> when idle => CS<='1'; WR<='0'; RD<='0';</p><p> next
45、_state<=write;</p><p> when write => CS<='1'; WR<='1'; RD<='0';</p><p> next_state<=swait;</p><p> when swait => CS<='0';
46、WR<='0'; RD<='0';</p><p> if ( INT='1') then</p><p> next_state<=read;</p><p><b> else</b></p><p> next_state<=swait
47、;</p><p><b> end if;</b></p><p> when read => CS<='1'; WR<='0'; RD<='1';</p><p> next_state<=disp1;</p><p> when
48、disp1 => CS<='0'; WR<='0'; RD<='0';</p><p> DATOUT<=dout1;</p><p> next_state<=disp2;</p><p> when disp2 => CS<='0'; WR<
49、;='0'; RD<='0';</p><p> DATOUT<=dout2;</p><p> next_state<=disp3;</p><p> when disp3 => CS<='0'; WR<='0'; RD<='0';<
50、;/p><p> DATOUT<=dout3;</p><p> next_state<=disp4;</p><p> when disp4 => CS<='0'; WR<='0'; RD<='0';</p><p> DATOUT<=dout4;
51、</p><p> next_state<=write;</p><p><b> end case;</b></p><p> end process P1; </p><p> 這段代碼實現(xiàn)了狀態(tài)S1,S2,S3的控制。</p><p> 3.3.3 BCD碼表示數(shù)字電壓信號(
52、VHDL語言)</p><p> 計算轉(zhuǎn)換后的數(shù)字電壓信號,最終以BCD碼表示。</p><p> 當參考電壓(Vref)為2.56V時,模擬輸入電壓與輸出電壓的對應關系如表3-1所示。</p><p> 表3-1 模擬輸入電壓與輸出電壓的</p><p> 這樣由ADC0809收到的信號是01110110(76H),則對照表52-1
53、時,高4位0111的電壓為2.24V,而低4位0110是0.12V,所以最后的電壓輸出結(jié)果為2.24+0.12=2.36V。</p><p> 對于數(shù)據(jù)轉(zhuǎn)換成BCD碼,我們必須設計一個12位的BCD碼加法器,如上述的2.24V的二進制表示為:001000100100、0.12V是000000010010,所以其相加結(jié)果為001000110110,為2.36V。</p><p> 其代碼
54、如下:(VHDL語言):</p><p> P2: process(CLK, RESET)</p><p><b> begin</b></p><p> if(RESET='0') then</p><p> present_state<=idle;</p><p>
55、; datain<="00000000";</p><p> elsif(CLK'event and CLK='1') then</p><p> present_state<=next_state;</p><p> if(present_state=read) then</p><
56、;p> datain<=D;</p><p><b> end if;</b></p><p><b> end if;</b></p><p> end process P2;</p><p> data1<="0000000000000000" w
57、hen datain(7 downto 4)="0000" else</p><p> "0000001100010011" when datain(7 downto 4)="0001" else</p><p> "0000011000100101" when datain(7 downto 4)=&qu
58、ot;0010" else</p><p> "0000100100111000" when datain(7 downto 4)="0011" else</p><p> "0001001001010000" when datain(7 downto 4)="0100" else</p&g
59、t;<p> "0001010101100011" when datain(7 downto 4)="0101" else</p><p> "0001100001110101" when datain(7 downto 4)="0110" else</p><p> "00100
60、00110001000" when datain(7 downto 4)="0111" else</p><p> "0010010100000000" when datain(7 downto 4)="1000" else</p><p> "0010100000010011" when dat
61、ain(7 downto 4)="1001" else</p><p> "0011000100100101" when datain(7 downto 4)="1010" else</p><p> "0011010000111000" when datain(7 downto 4)="1011
62、" else</p><p> "0011011101010000" when datain(7 downto 4)="1100" else</p><p> "0100000001100011" when datain(7 downto 4)="1101" else</p><
63、;p> "0100001101110101" when datain(7 downto 4)="1110" else</p><p> "0100011010001000" when datain(7 downto 4)="1111" else</p><p> "000000000000
64、0000";</p><p> data2<="0000000000000000" when datain(3 downto 0)="0000" else</p><p> "0000000000100000" when datain(3 downto 0)="0001" else</
65、p><p> "0000000000111001" when datain(3 downto 0)="0010" else</p><p> "0000000001011001" when datain(3 downto 0)="0011" else</p><p> "00
66、00000001111000" when datain(3 downto 0)="0100" else</p><p> "0000000010011000" when datain(3 downto 0)="0101" else</p><p> "0000000100010111" when
67、datain(3 downto 0)="0110" else</p><p> "0000000100110111" when datain(3 downto 0)="0111" else</p><p> "0000000101010110" when datain(3 downto 0)="1
68、000" else</p><p> "0000000101110110" when datain(3 downto 0)="1001" else</p><p> "0000000110010101" when datain(3 downto 0)="1010" else</p>
69、<p> "0000001000010101" when datain(3 downto 0)="1011" else</p><p> "0000001000110100" when datain(3 downto 0)="1100" else</p><p> "000000100
70、1010100" when datain(3 downto 0)="1101" else</p><p> "0000001001110011" when datain(3 downto 0)="1110" else</p><p> "0000001010010011" when datain(
71、3 downto 0)="1111" else</p><p> "0000000000000000";</p><p> 3.3.4 BCD碼進位(VHDL語言)</p><p> 在讀取到轉(zhuǎn)換數(shù)據(jù)后,先用查表的指令算出高、低4位的兩個電壓值,并分別用12位的BCD碼表示。接著設計12位的BCD碼加法。相加從最低4位開
72、始,且每4位相加結(jié)果超過10時需作進位動作。</p><p> 其代碼如下(VHDL語言):</p><p> do1<=('0' & data1(3 downto 0))+('0' & data2(3 downto 0));</p><p> c1<="00000" when d
73、o1<"01010" else</p><p><b> "00001";</b></p><p> do2<=('0' & data1(7 downto 4))+('0' & data2(7 downto 4))+c1;</p><p>
74、 c2<="00000" when do2<"01010" else</p><p><b> "00001";</b></p><p> do3<=('0' & data1(11 downto 8))+('0' & data2(11 do
75、wnto 8))+c2;</p><p> c3<="00000" when do3<"01010" else</p><p><b> "00001";</b></p><p> do4<=('0' & data1(15 downto
76、12))+('0' & data2(15 downto 12))+c3;</p><p> doo1<=do1 when do1<"01010" else</p><p> do1-"01010";</p><p> doo2<=do2 when do2<"010
77、10" else</p><p> do2-"01010";</p><p> doo3<=do3 when do3<"01010" else</p><p> do3-"01010";</p><p> doo4<=do4 when do4<
78、;"01010" else</p><p> do4-"01010";</p><p> 3.3.5 7段顯示器顯示BCD碼(VHDL語言編譯)</p><p> 其代碼如下:(VHDL語言):</p><p> dout1<="111111000100" when d
79、oo1="0000" else --a,b,c,d,e,f,g,dp,sel3,sel2,sel1,sel0;</p><p> "011000000100" when doo1="0001" else</p><p> "110110100100" when doo1="001
80、0" else</p><p> "111100100100" when doo1="0011" else</p><p> "011001100100" when doo1="0100" else</p><p> "101101100100" wh
81、en doo1="0101" else</p><p> "101111100100" when doo1="0110" else</p><p> "111000000100" when doo1="0111" else</p><p> "1111
82、11100100" when doo1="1000" else</p><p> "111101100100" when doo1="1001" else</p><p> "000000001111";</p><p> dout2<="11111100
83、0101" when doo2="0000" else --a,b,c,d,e,f,g,dp,sel3,sel2,sel1,sel0;</p><p> "011000000101" when doo2="0001" else</p><p> "110110100101" wh
84、en doo2="0010" else</p><p> "111100100101" when doo2="0011" else</p><p> "011001100101" when doo2="0100" else</p><p> "1011
85、01100101" when doo2="0101" else</p><p> "101111100101" when doo2="0110" else</p><p> "111000000101" when doo2="0111" else</p><
86、p> "111111100101" when doo2="1000" else</p><p> "111101100101" when doo2="1001" else</p><p> "000000001111";</p><p> dout3&l
87、t;="111111000110" when doo3="0000" else --a,b,c,d,e,f,g,dp,sel3,sel2,sel1,sel0;</p><p> "011000000110" when doo3="0001" else</p><p> "1101
88、10100110" when doo3="0010" else</p><p> "111100100110" when doo3="0011" else</p><p> "011001100110" when doo3="0100" else</p><
89、p> "101101100110" when doo3="0101" else</p><p> "101111100110" when doo3="0110" else</p><p> "111000000110" when doo3="0111" els
90、e</p><p> "111111100110" when doo3="1000" else</p><p> "111101100110" when doo3="1001" else</p><p> "000000001111";</p>&
91、lt;p> dout4<="111111010111"whendoo4="0000"else --a,b,c,d,e,f,g,dp,sel3,sel2,sel1,sel0;</p><p> "011000010111" when doo4="0001" else</p><p&g
92、t; "110110110111" when doo4="0010" else</p><p> "111100110111" when doo4="0011" else</p><p> "011001110111" when doo4="0100" else&l
93、t;/p><p> "101101110111" when doo4="0101" else</p><p> "101111110111" when doo4="0110" else</p><p> "111000010111" when doo4="
94、0111" else</p><p> "111111110111" when doo4="1000" else</p><p> "111101110111" when doo4="1001" else</p><p> "000000001111"
95、;</p><p> end doit; </p><p> 以上代碼實現(xiàn)了BCD碼的加法。</p><p> 第4章 數(shù)字電壓表的測試與運行</p><p> 4.1數(shù)字電壓表的編譯與仿真</p><p> 4.1.1數(shù)字電壓表的編譯</p><p> 數(shù)字電壓表編譯完成后,所顯示
96、的設計器件,引腳利用率,文件名,工程名等。</p><p><b> 圖4-1 綜合完成</b></p><p> 4.1.2數(shù)字電壓表的邏輯電路圖</p><p> 圖4-2 RTL Viewer</p><p> 通過RTL Viewer我們可以清楚的看到電路的內(nèi)部構(gòu)造</p><p>
97、; 4.1.3數(shù)字電壓表的功能仿真 </p><p> 仿真前對各個引腳進行周期設置。通過對電壓表的功能仿真,讓我們清楚的看到實體的功能及運行狀況。便于我們修改程序,及時作出調(diào)整。</p><p> 圖4-4 仿真結(jié)果</p><p> 4.2數(shù)字電壓表的適配與測試</p><p> 選擇
98、Assign中 Dvice 選擇FLEX10K中的EPF10K10LC84-4 選擇configure.下載到試驗箱,將引腳圖調(diào)出來。 按引腳連線,如下圖4-6,連線后測試成功 電壓顯示正常。</p><p> 圖4-5 引腳連線</p><p> 轉(zhuǎn)動可調(diào)電阻??梢郧逦吹?段數(shù)碼管上顯示電壓的變化。</p><p><b> 結(jié) 論&l
99、t;/b></p><p> 設計數(shù)字電壓表,鞏固了使用VHDL語言輸入方法。熟悉了Quartus-II的使用。</p><p> 通過這次設計,進一步加深了對EDA的了解,并且了解到日常生活中的小器件都與EDA有著密切的聯(lián)系,讓我對它有了更加濃厚的興趣。當然在這過程中會遇到各種各樣的困惑與不解,特別是在讀整個程序時,頭特別大,不知從何處招手,當我靜下心來,一步步的分析它的子模塊
100、時,并編譯出來時,心里是特別的高興。在編譯A/D轉(zhuǎn)換接口時,遇到了很到的麻煩,因為不是特別清晰它的工作原理,幸好書上有關于狀態(tài)機的詳細介紹,并且回想起了老師上課時對狀態(tài)機的講解,所以也慢慢的克服了,也認識到上課認真聽講的重要性,讓我更加了解到平時的積累是重要的,有了這些小知識的積累才會成為一個合格的計算機工作者。在編寫編碼轉(zhuǎn)換電路設計時,第一次成功并且親自地完成了模擬信號轉(zhuǎn)換為數(shù)字信號,并且當電壓值在數(shù)碼管上顯示時,感覺特別的神奇,特別
101、的自豪,原來很多看起來秘密以前不可想象的真的是就這么做出來了,經(jīng)過不斷的修改,總結(jié)并在成功的完成調(diào)試,編譯,仿真之后,才真正的意識到程序員工作的辛苦和他們對社會的貢獻,但同時也有著一種從未有過的成就感縈繞在心中。</p><p> 總的來說,這次設計讓我學會了很多,通過理論與實際相結(jié)合,不僅增強了自己的邏輯思維能力還增強了自己的動手能力,并且通過與同學的探討與分析,增強了同學間的團結(jié)合作能力,意識到合作的重要性
102、。最重要的是,這次設計加深了我對EDA的學習興趣,在日后的學習中我會更加努力的。</p><p><b> 參考文獻</b></p><p> [1] 潘松,王國棟,VHDL實用教程[M].成都:電子科技大學出版社,2000.(1)</p><p> [2] VHDL語言及其應用,《計算機工程》1998年10期</p>&l
103、t;p> [3] 朱正偉.EDA技術及應用[M].北京:清華大學出版社,2005</p><p> [4] 李國麗,朱維勇.電子技術實驗指導書.合肥:中國科技大學出版社,2000 </p><p> [5] 于楓,張麗英.ALTERA可編程邏輯器件應用技術[M].北京:科學出版社,2004</p><p> [6] 梁祥.基于PC/104總線與CPLD
104、的SPI接口設計[J].嵌入式計算機應用,2006,25(1):532-535</p><p> [7] 孫富明,李笑盈.基于多種EDA工具的FPGA設計,電子技術應用,2002年12月,第1期 </p><p> [8] 盧杰,賴毅.VHDL與數(shù)字電路設計.北京:科學出版社,2001</p><p> [9] 鄭家龍,王小海,章安元.集成電子技術基礎教程.北
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 電子系統(tǒng)設計與實踐
- 電子系統(tǒng)設計
- 電子系統(tǒng)課程設計論文
- 電子系統(tǒng)級設計課程設計--電子系統(tǒng)級(esl)設計
- 電子系統(tǒng)
- 溫室恒溫電子系統(tǒng)設計畢業(yè)論文
- 電子系統(tǒng)設計 韓勇
- 電子系統(tǒng)課程設計
- 電子系統(tǒng)設計(實驗二)
- 1電子系統(tǒng)設計基礎
- 電子系統(tǒng)設計EDA工具.pdf
- 電子系統(tǒng)設計習題四答案
- 現(xiàn)代電子系統(tǒng)設計與實踐課程設計--紅外遙控器
- 簡析電子系統(tǒng)綜合設計能力培養(yǎng)的創(chuàng)新與實踐
- 基于fpga的車載電子系統(tǒng)設計畢業(yè)論文
- 微型衛(wèi)星綜合電子系統(tǒng)設計與實現(xiàn).pdf
- 電子系統(tǒng)設計課程總結(jié)報告
- 數(shù)字電子系統(tǒng)抗干擾分析與設計.pdf
- 互動書寫電子系統(tǒng)參數(shù)
- 互動書寫電子系統(tǒng)參數(shù)
評論
0/150
提交評論