版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p> 序號 </p><p> 《EDA技術(shù)》課程設(shè)計報告</p><p> 課題: 數(shù)字電子鐘邏輯電路設(shè)計</p><p> 院系 電子與電氣工程學(xué)院 </p><p> 專業(yè) 電氣工程及其自動化 </p><p
2、> 綜合成績優(yōu)秀( )良好( )中等( )及格( )不及格( )</p><p> 教師(簽名)</p><p> 批改日期</p><p><b> 目錄</b></p><p> 一、課程設(shè)計任務(wù)及要求1</p><p><b> 1.1實驗?zāi)康?
3、</b></p><p><b> 1.2功能設(shè)計1</b></p><p> 二、整體設(shè)計思想1</p><p> 2.1性能指標及功能設(shè)計1</p><p><b> 2.2總體方框2</b></p><p> 2.3FPGA芯片介紹2&l
4、t;/p><p><b> 三、編譯與調(diào)試3</b></p><p> 3.1數(shù)字鐘的基本工作原理:3</p><p> 3.1.1調(diào)時、調(diào)分信號的產(chǎn)生3</p><p> 3.1.2計數(shù)顯示電路4</p><p><b> 3.2設(shè)計思路4</b></
5、p><p><b> 3.3設(shè)計步驟5</b></p><p> 3.3.1工程建立及存盤5</p><p> 3.3.2工程項目的編譯5</p><p> 3.3.3時序仿真6</p><p> 3.3.4引腳鎖定6</p><p> 3.3.5硬件測試
6、6</p><p> 3.3.6實驗結(jié)果7</p><p><b> 四、程序設(shè)計8</b></p><p> 五、實驗電路圖16</p><p> 5.1實驗原理圖16</p><p> 5.2PCB圖16</p><p><b> 六
7、、心得體會17</b></p><p> 七、 參考文獻18</p><p> 一、課程設(shè)計任務(wù)及要求</p><p><b> 1.1實驗?zāi)康?lt;/b></p><p> 1)掌握VHDL語言的基本運用</p><p> 2)掌握QuartusII的簡單操作并會使用EDA
8、實驗箱</p><p> 3)掌握一個基本EDA課程設(shè)計的操作</p><p><b> 1.2功能設(shè)計</b></p><p> 要求顯示格式為小時-分鐘-秒鐘,整點報時,報時時間為5 秒,即從整點前5 秒鐘開始進行報時提示,LED 開始閃爍,過整點后,停止閃爍。調(diào)整時間的按鍵用按鍵模塊的S1 和S2,S1 調(diào)節(jié)小時,每按下一次,小時增
9、加一個小時,S2 調(diào)整分鐘,每按下一次,分鐘增加一分鐘。另外用S8 按鍵作為系統(tǒng)時鐘復(fù)位,復(fù)位后全部顯示00-00-00。</p><p><b> 二、整體設(shè)計思想</b></p><p> 2.1性能指標及功能設(shè)計 </p><p> 1)時、分、秒計時器</p><p> 時計時器為一個24進制計數(shù)器,分、
10、秒計時器均為60進制計數(shù)器。當秒計時器接受到一個秒脈沖時,秒計數(shù)器開始從00計數(shù)到59,此時秒顯示器將顯示00、01、02、...、59、00;每當秒計數(shù)器數(shù)到00時,就會產(chǎn)生一個脈沖輸出送至分計時器,此時分計數(shù)器數(shù)值在原有基礎(chǔ)上加1,其顯示器將顯示00、01、02、...、59、00;每當分計數(shù)器數(shù)到00時,就會產(chǎn)生一個脈沖輸出送至?xí)r計時器,此時時計數(shù)器數(shù)值在原有基礎(chǔ)上加1,其顯示器將顯示00、01、02、...、23、00。<
11、/p><p><b> 2)校時電路</b></p><p> 當開關(guān)撥至校時檔時,電子鐘秒計時工作,通過時、分校時開關(guān)分別對時、分進行校對,開關(guān)每按1次,與開關(guān)對應(yīng)的時或分計數(shù)器加1,當調(diào)至需要的時與分時,撥動reset開關(guān),電子鐘從設(shè)置的時間開始往后計時。</p><p><b> 2.2總體方框</b></
12、p><p> 2.3FPGA芯片介紹</p><p> SOPC-NIOSII EDA/SOPC實驗開發(fā)系統(tǒng)是根據(jù)現(xiàn)代電子發(fā)展的方向,集EDA和SOPC系統(tǒng)開發(fā)為一體的綜合性實驗開發(fā)系統(tǒng),除了滿足高校專、本科生和研究生的SOPC教學(xué)實驗開發(fā)之外,也是電子設(shè)計和電子項目開發(fā)的理想工具。整個開發(fā)系統(tǒng)由核心板SOPC-NiosII-EP2C35、系統(tǒng)板和擴展板構(gòu)成,根據(jù)用戶不同的需求配置成不同的
13、開發(fā)系統(tǒng)。</p><p> SOPC-NiosII-EP2C35開發(fā)板是在經(jīng)過長期用戶需求考察后,結(jié)合目前市面上以及實際應(yīng)用需要,同時兼顧入門學(xué)生以及資深開發(fā)工程師的應(yīng)用需求而研發(fā)的。就資源而言,它已經(jīng)可以組成一個高性能的嵌入式系統(tǒng),可以運行目前流行的RTOS,如uC/OS、uClinux等。系統(tǒng)主芯片采用672引腳、BGA封裝的EP2C35 FPGA,它擁有33216個LE,105個M4K片上RAM(共計4
14、83840bits),35個18×18硬件乘法器、4個高性能PLL以及多達475個用戶自定義IO。板上提供了大容量的SRAM、SDRAM和Flash ROM等以及常用的RS-232、USB2.0、 RJ45接口和標準音頻接口等,除去板上已經(jīng)固定連接的IO,還有多達260個IO通過不同的接插件引出,供用戶使用。所以,不管從性能上而言,還是從系統(tǒng)靈活性上而言,無論您是初學(xué)者,還是資深硬件工程師,它都會成為您的好幫手。如圖2.3所示
15、:</p><p> 圖2.3FPGA系統(tǒng)功能框圖</p><p><b> 三、編譯與調(diào)試</b></p><p> 3.1數(shù)字鐘的基本工作原理:</p><p> 3.1.1調(diào)時、調(diào)分信號的產(chǎn)生</p><p> 由計數(shù)器的計數(shù)過程可知,正常計數(shù)時,當秒計數(shù)器(60進制)計數(shù)到59
16、時,再來一個脈沖,則秒計數(shù)器清零,重新開始新一輪的計數(shù),而進位則作為分計數(shù)器的計數(shù)脈沖,使分計數(shù)器計數(shù)加1。現(xiàn)在我們把電路稍做變動:把秒計數(shù)器的進位脈沖和一個頻率為2Hz的脈沖信號同時接到一個2選1數(shù)據(jù)選擇器的兩個數(shù)據(jù)輸入端,而位選信號則接一個脈沖按鍵開關(guān),當按鍵開關(guān)不按下去時(即為0),則數(shù)據(jù)選擇器將秒計數(shù)器的進位脈沖送到分計數(shù)器,此時,數(shù)字鐘正常工作;當按鍵開關(guān)按下去時(即為1),則數(shù)據(jù)選擇器將另外一個2Hz 的信號作為分計數(shù)器的計
17、數(shù)脈沖,使其計數(shù)頻率加快,當達到正確時間時,松開按鍵開關(guān),從而達到調(diào)時的目的。調(diào)節(jié)小時的時間也一樣的實現(xiàn)。</p><p> 3.1.2計數(shù)顯示電路</p><p> 由計數(shù)部分、數(shù)據(jù)選擇器、譯碼器組成,是時鐘的關(guān)鍵部分。</p><p> 1、計數(shù)部分:由兩個60進制計數(shù)器和一個24 進制計數(shù)器組成,其中60 進制計數(shù)器可用6 進制計數(shù)器和10 進制計數(shù)器構(gòu)
18、成;24 進制的小時計數(shù)同樣可用6 進制計數(shù)器和10 進制計數(shù)器得到:當計數(shù)器計數(shù)到24 時,“2”和“4”同時進行清零,則可實現(xiàn)24 進制計數(shù)。</p><p> 2、數(shù)據(jù)選擇器:84 輸入14 輸出的多路數(shù)據(jù)選擇器,因為本實驗用到了8個數(shù)碼管(有兩個用來產(chǎn)生隔離符號‘—’)。</p><p> 3、譯碼器:七段譯碼器。譯碼器必須能譯出‘—’,由實驗二中譯碼器真值表可得:字母F 的8
19、421BCD 碼為“1111”,譯碼后為“1000111”,現(xiàn)在如果只譯出‘—’,即字母F的中間一橫,則譯碼后應(yīng)為“0000001”,這樣,在數(shù)碼管上顯示的就為‘—’。</p><p><b> 3.2設(shè)計思路</b></p><p> 根據(jù)系統(tǒng)設(shè)計要求,系統(tǒng)設(shè)計采用自頂向下設(shè)計方法,由時鐘分頻部分、計時部分、按鍵部分調(diào)時部分和顯示部分五個部分組成。這些模塊都放在
20、一個頂層文件中。</p><p><b> 1)時鐘計數(shù):</b></p><p> 首先下載程序進行復(fù)位清零操作,電子鐘從00:00:00計時開始。setshi可以調(diào)整時鐘的小時部分, setfen可以調(diào)整分鐘,步進為1。</p><p> 用6位數(shù)碼管分別顯示“時”、“分”、“秒”,通過OUTPUT( 6 DOWNTO 0 )上的信號
21、來點亮指定的LED七段顯示數(shù)碼管。</p><p><b> 時間設(shè)置:</b></p><p> 手動調(diào)節(jié)分鐘、小時,可以對所設(shè)計的時鐘任意調(diào)時間,這樣使數(shù)字鐘真正具有使用功能。我們可以通過實驗板上的S2和S1進行任意的調(diào)整,因為我們用的時鐘信號均是1HZ的,所以每LED燈變化一次就來一個脈沖,即計數(shù)一次。</p><p><b&g
22、t; 3)清零功能:</b></p><p> S8為復(fù)位鍵,低電平時實現(xiàn)清零功能,高電平時正常計數(shù)。可以根據(jù)我們自己任意時間的復(fù)位。</p><p><b> 3.3設(shè)計步驟</b></p><p> 3.3.1工程建立及存盤</p><p> 1.打開 QuartusⅡ,單擊“File”菜單,選
23、擇 File→New Project Wizard,對話框如下:分別輸入項目的工作路徑、項目名和實體名,單擊Finish。</p><p> 2.單擊“File”菜單,選擇New,彈出小對話框,雙擊“VHDL File",即選中了文本編輯方式。在出現(xiàn)的“Vhdl1.vhd”文本編輯窗中鍵入VHDL程序,輸入完畢后,選擇File→Save As,即出現(xiàn)“Save As”對話框。選擇自己建立好的存放本文件
24、的目錄,然后在文件名框中鍵入文件名,按“Save”按鈕。</p><p> 3. 建立工程項目,在保存VHDL文件時會彈出是否建立項目的小窗口,點擊“Yes”確定。即出現(xiàn)建立工程項目的導(dǎo)航窗口,點擊“Next”,最后在出現(xiàn)的屏幕中分別鍵入新項目的工作路徑、項目名和實體名。注意,原理圖輸入設(shè)計方法中,存盤的原理圖文件名可以是任意的,但VHDL程序文本存盤的文件名必須與文件的實體名一致,輸入后,單擊“Finish”
25、按鈕。</p><p> 3.3.2工程項目的編譯</p><p> 單擊工具條上的編譯符號開始編譯,并隨著進度不斷變化屏幕,編譯完成后的屏幕如圖所示:</p><p><b> 3.3.3時序仿真</b></p><p> 建立波形文件:選擇 File→New,在New窗中選中“Other File”標簽。在出
26、現(xiàn)的屏幕中選擇“Vector Waveform File”項出現(xiàn)一新的屏幕。在出現(xiàn)的新屏幕中,雙擊“Name”下方的空白處,彈出“Insert Nod or Bus”對話框,單擊該對話框的“Node Finder……”。在屏幕中的 Filter 中選擇 Pins,單擊“List”。而后,單擊“>>”,所有輸入/輸出都被拷貝到右邊的一側(cè),這些正是我們希望的各個引腳,也可以只選其中的的一部分,根據(jù)實際情況決定。然后單擊屏幕右上腳
27、的 “OK”。在出現(xiàn)的小屏幕上單擊“OK”。 </p><p> 設(shè)定仿真時間寬度。選擇 Edit → End time…選項,在End time選擇窗中選擇適當?shù)姆抡鏁r間域,以便有足夠長的觀察時間。</p><p> 波形文件存盤。選擇File→Save as 選項,直接存盤即可。</p><p> 運行仿真器。在菜單中選擇項,直到出現(xiàn),仿真結(jié)束。</
28、p><p><b> 3.3.4引腳鎖定</b></p><p> 將設(shè)計編程下載進選定的目標器件中,如EPF10K10,作進一步的硬件測試,將設(shè)計的所有輸入輸出引腳分別與目標器件的EPF10K10的部分引腳相接,操作如下:</p><p> 1.選擇 Assignments → Assignments Editor ,即進入 Assignm
29、ents Editor編輯器。在Category 欄選擇 Pin,或直接單擊右上側(cè)的 Pin 按鈕。</p><p> 2.雙擊 TO 欄的《new》,在出現(xiàn)的的下拉欄中選擇對應(yīng)的端口信號名(如 D[0]);然后雙擊對應(yīng)的欄的《new》,在出現(xiàn)的下拉欄中選擇對應(yīng)的端口信號名的期間引腳號。</p><p> 3.最后存儲這些引腳鎖定信息后,必須再編譯(啟動 )一次,才能將引腳鎖定信息編譯
30、進編程下載文件中。此后就可以準備將編譯好的 SOF 文件下載到試驗系統(tǒng)的FPGA中去了。</p><p><b> 3.3.5硬件測試</b></p><p> 1.首先將下載線把計算機的打印機口與目標板(如開發(fā)板或?qū)嶒灠澹┻B接好,打開電源。</p><p> 2.打開編輯窗和配置文件。選擇,彈出一個編輯窗。在Mode欄中選擇JTAG,并
31、在選項下的小方框打勾。注意核對下載文件路徑與文件名。如果文件沒有出現(xiàn)或者出錯,單擊左Add file側(cè)按鈕,手動選擇配置文件 clock.sof。</p><p> 3.最后單擊下載標符Start,即進入對目標器件 FPGA 的配置下載操作。當 Progress 顯示100%,以及在底部的處理欄中出現(xiàn) Configuration Succeeded 時,表示編程成功,如圖所示。注意,如果必要時,可再次單擊 St
32、art ,直至編程成功。</p><p> 4.下載完成后,通過硬件測試進一步確定設(shè)計是否達到所有的技術(shù)指標,如未達到,可逐步檢查,哪部分出現(xiàn)問題。如果是代碼出現(xiàn)問題,須修改代碼;若是時序波形圖有問題,須重新設(shè)置。</p><p><b> 3.3.6實驗結(jié)果</b></p><p> 鍵s8為復(fù)位按鍵,鍵s1設(shè)置小時,鍵s2設(shè)置分鐘。下
33、載成功后,按下鍵s8,即使六個LED復(fù)位清零,顯示數(shù)秒的自動計時。當秒數(shù)滿59則進一位,分鐘數(shù)滿59進一位,當顯示為xx:59:55時,外接的LED小燈開始閃爍,過整點以后停止閃爍。調(diào)試實物圖如圖3.3.6所示:</p><p> 圖3.3.6調(diào)試實物圖</p><p><b> 四、程序設(shè)計</b></p><p> 1. (1)秒計數(shù)
34、器(miao)VHDL 程序描述</p><p> library ieee; </p><p> use ieee.std_logic_1164.all;</p><p> use ieee.std_logic_unsigned.all;</p><p> entity miao is</p><p><
35、;b> port( </b></p><p> clk,reset,setfen:in std_logic;</p><p> enfen:out std_logic;</p><p> countmiao:out std_logic_vector(7 downto 0)</p><p><b> );
36、</b></p><p><b> end miao;</b></p><p> architecture fun of miao is</p><p> signal count:std_logic_vector(7 downto 0);</p><p> signal enfen_1,enfen_
37、2:std_logic;</p><p><b> begin </b></p><p> countmiao<=count; </p><p> enfen_2<=(setfen and clk);</p><p> enfen<=(enfen_1 or enfen_2);</p>
38、<p> process(clk,reset,setfen)</p><p><b> begin</b></p><p> if(reset='0') </p><p> then count<="00000000"; </p><p> enfen_1
39、<='0';</p><p> elsif(clk'event and clk='1') </p><p> then if(count(3 downto 0)="1001")</p><p> then if(count<16#60#)</p><p> the
40、n if(count="01011001") </p><p> then count<="00000000";</p><p> enfen_1<='1'; </p><p> else count<=count+7;</p><p><b> en
41、d if;</b></p><p> else count<="00000000";</p><p> enfen_1<='0';</p><p><b> end if;</b></p><p> elsif(count<16#60#) <
42、/p><p> then count<=count+1; </p><p> enfen_1<='0';</p><p> else count<="00000000";</p><p> enfen_1<='1';</p><p><
43、;b> end if; </b></p><p><b> end if;</b></p><p> end process;</p><p><b> end fun;</b></p><p> ?。?)秒計數(shù)器(miao)仿真波形圖</p><p&g
44、t; (3)秒計數(shù)器(miao)仿真分析 </p><p> 1、隨著 clk 脈沖信號的不斷到來,countmiao 記錄出 clk 的脈沖個數(shù),計數(shù) 到 59 時,在下一個 clk 脈沖信號到來時,輸出端 enfen 輸出高定平,即向分進 位,同時 countmiao 清零。 2、 reset 為清零端, reset 低電平時, 當 countmiao 計數(shù)從零重新開始計數(shù)。 3、setfen 為分的手動
45、進位端,當 setfen 高定平時且 clk 脈沖到來時,輸出 enfen 高電平,向分進位。</p><p> 2. (1)分計數(shù)器(fen)VHDL 程序描述</p><p> library ieee;</p><p> use ieee.std_logic_1164.all; </p><p> use ieee.std_l
46、ogic_unsigned.all;</p><p> entity fen is port( </p><p> imiao,clk,reset,setshi:in std_logic;</p><p> enshi:out std_logic;</p><p> countfen:out std_logic_vector(7 do
47、wnto 0)</p><p><b> );</b></p><p><b> end fen; </b></p><p> architecture fun of fen is signal enshi_1,enshi_2:std_logic; signal count:std_logic_vector(7 do
48、wnto 0);</p><p><b> begin </b></p><p> countfen<=count; enshi_2<=(setshi and clk); </p><p> enshi<=(enshi_1 or enshi_2);</p><p> process(imiao,
49、reset,setshi) </p><p><b> begin</b></p><p> if(reset='0') then</p><p> count<="00000000";</p><p> elsif(imiao'event and imiao=&
50、#39;1') then</p><p> if(count(3 downto 0)="1001") then</p><p> if(count<16#60#) then </p><p> if(count="01011001") then </p><p> count<
51、;="00000000"; </p><p> enshi_1<='1';</p><p> else count<=count+7;</p><p> end if; else count<="00000000"; </p><p><b> end
52、 if; </b></p><p> elsif(count<16#60#) then</p><p> count<=count+1;</p><p> enshi_1<='0'; </p><p> else count<="00000000";</p&
53、gt;<p><b> end if; </b></p><p><b> end if; </b></p><p> end process; </p><p><b> end fun;</b></p><p> ?。?)分計數(shù)器(fen)仿真波形圖&
54、lt;/p><p> (3)分計數(shù)器(fen)仿真分析 </p><p> 1、imiao 為秒計數(shù)器的 enfen 進位輸出端,當 enfen(imiao)高電平到來 時, clk 高電平時, 且 countfen 開始計數(shù)。 countfen 計數(shù)到 59 時, 下一個 enfen (imiao)、clk 到來時,enshi 高電平,即向時進位,同時 countfen 清零。 2、re
55、set 為清零端,當 reset 低電平時,countfen 計數(shù)從零重新開始計數(shù)。 3、setshi 為時的手動進位端,當 setshi 高定平時且 clk 脈沖到來時,輸出 en 時高電平,向時進位。</p><p> 3.(1)時計數(shù)器(shi)VHDL 程序描述</p><p> library ieee; </p><p> use ieee.std
56、_logic_1164.all;</p><p> use ieee.std_logic_unsigned.all;</p><p> entity shi is</p><p><b> port(</b></p><p> ifen,reset:in std_logic;</p><p&g
57、t; countshi:out std_logic_vector(7 downto 0) );</p><p><b> end shi; </b></p><p> architecture fun of shi is </p><p> signal count:std_logic_vector(7 downto 0);</p
58、><p> begin countshi<=count;</p><p> process(ifen,reset)</p><p><b> begin </b></p><p> if(reset='0') then</p><p> count<="
59、00000000";</p><p> elsif(ifen'event and ifen='1') then</p><p> if(count(3 downto 0)="1001") then</p><p> if(count<16#23#) then count<=count+7;<
60、;/p><p> else count<="00000000"; </p><p><b> end if; </b></p><p> elsif(count<16#23#) then</p><p> count<=count+1;</p><p>
61、 else count<="00000000";</p><p><b> end if; </b></p><p><b> end if; </b></p><p> end process;</p><p><b> end fun;</b&g
62、t;</p><p> ?。?)時計數(shù)器(shi)仿真掃描顯示譯碼器(saomiao)仿真</p><p> (3)時計數(shù)器(shi)仿真分析 </p><p> 1、ifen 為分計數(shù)器的 enshi 進位輸出端,當 enshi(ifen)為高電平時, countshi 計數(shù)。countshi 計數(shù)到 23 時,當下一個 enshi(ifen)、clk 到來時
63、, countshi 會自動清零。 2、reset 為清零端,當 reset 低電平時,countfen 計數(shù)從零重新開始計數(shù)。</p><p><b> 4.整點報時</b></p><p> ?。?)整點報時器(baoshi)VHDL 程序描述 </p><p> library ieee; use ieee.std_logic_116
64、4.all; </p><p> use ieee.std_logic_unsigned.all; </p><p> Entity baoshi is </p><p> port( clk:in std_logic; inputmiao,inputfen:in std_logic_vector(6 downto 0); </p><p&
65、gt; output:out std_logic_vector(1 downto 0) ); </p><p> end baoshi; </p><p> architecture fun of baoshi is signal temp:std_logic_vector(1 downto 0); </p><p> signal nummiao,numf
66、en:std_logic_vector(7 downto 0); </p><p> begin nummiao<=inputmiao; numfen<=inputfen; </p><p> output<=temp; </p><p> process(clk,temp) begin </p><p> if(c
67、lk'event and clk='1') then </p><p> if(numfen="01011001") then </p><p> case nummiao is </p><p> when"01011000"=>temp<="01"; </
68、p><p> when"01011001"=>temp<="10"; </p><p> when others=>temp<="00"; </p><p> end case; </p><p><b> end if; </b>&
69、lt;/p><p> if(numfen="00000000") then </p><p> case nummiao is when"00000000"=>temp<="11"; </p><p> when others=>temp<="00"; <
70、/p><p> end case; end if;</p><p> end if; end process; </p><p> end fun; 11</p><p> (2)整點報時器(baoshi)仿真波形圖</p><p> ?。?)整點報時器(baoshi)仿真分析 </p><p&
71、gt; input 為分計數(shù)器的輸出端,當輸出 58、59 和 00(十六進制)時,整點報 時器(baoshi)的輸出端 output 為高電平,點亮 LED 燈。當 intput 為 58、59 時,點亮一個 LED 燈,當 input 為 00 時,點亮兩個 LED 燈。其他情況時,LED 燈均不發(fā)光。</p><p> 4. (1)分頻器(fenpin)設(shè)計</p><p>
72、library ieee;</p><p> use ieee.std_logic_1164.all;</p><p> use ieee.std_logic_unsigned.all; entity fenpin is</p><p> port( clk_5M:in std_logic;</p><p> clk:out std_
73、logic ); </p><p> end fenpin; </p><p> architecture fun of fenpin is signal count:std_logic_vector(22 downto 0); begin </p><p> process(clk_5M) </p><p><b> be
74、gin </b></p><p> if (clk_5M'event and clk_5M='1') then </p><p> if(count="10011000100101100111111") then </p><p> count<="00000000000000000000
75、000"; </p><p> clk<='1'; </p><p> else count<= count+1; </p><p> clk<='0'; </p><p><b> end if;</b></p><p><
76、;b> end if;</b></p><p> end process; </p><p><b> end fun;</b></p><p> 5. (1)掃描顯示譯碼器(saomiao))VHDL 程序描述</p><p> 掃描顯示譯碼器是用來顯示時鐘數(shù)值的裝置,將數(shù)字時鐘的高低電平信
77、號用 數(shù)碼管的數(shù)值顯示出來。八個數(shù)碼管中,用六個數(shù)碼管顯示時、分和秒,另外兩 個可做為時和分、分和秒之間的間隔,始終不顯示。 首先對八個數(shù)碼管進行掃描,每一時刻都只有一個數(shù)碼管處于掃描狀態(tài),并 將此時的數(shù)字時鐘的高低電平通過十六進制的 BCD 碼轉(zhuǎn)換為數(shù)碼管顯示數(shù)值。</p><p> library ieee; </p><p> use ieee.std_logic_1164.al
78、l; </p><p> use ieee.std_logic_unsigned.all; </p><p> entity saomiao is </p><p><b> port( </b></p><p> clk_smxs:in std_logic; </p><p> shi
79、:in std_logic_vector(7 downto 0);</p><p> fen:in std_logic_vector(7 downto 0); </p><p> miao:in std_logic_vector(7 downto 0);</p><p> selout:out std_logic_vector(7 downto 0); <
80、;/p><p> segout:out std_logic_vector(6 downto 0) ); </p><p> end saomiao;</p><p> architecture fun of saomiao is</p><p> signal temp:std_logic_vector(2 downto 0); <
81、/p><p> signal seg:std_logic_vector(6 downto 0); </p><p> signal sel:std_logic_vector(7 downto 0); </p><p><b> begin </b></p><p> selout<=sel;</p>
82、<p> segout<=seg;</p><p> process(clk_smxs) </p><p> variable num:std_logic_vector(3 downto 0); </p><p><b> begin </b></p><p> if (clk_smxs
83、39;event and clk_smxs='1' ) then if temp>="111" then temp<="000";</p><p> else temp<=temp+1; </p><p><b> end if; </b></p><p> cas
84、e temp is when "111" =>num:=shi(7 downto 4); </p><p> sel<="00000111"; </p><p> when "110" =>num:=shi(3 downto 0); sel<="00000110"; </p&g
85、t;<p> when "100" =>num:=fen(7 downto 4); </p><p> sel<="00000100"; </p><p> when "011" =>num:=fen(3 downto 0); sel<="00000011";<
86、/p><p> when "001" =>num:=miao(7 downto 4); </p><p> sel<="00000001";</p><p> when "000" =>num:=miao(3 downto 0); </p><p> sel&l
87、t;="00000000";</p><p> when others=>sel<="00000010";</p><p> end case; </p><p> case num is when"0000"=>seg<="0111111";</p&
88、gt;<p> when"0001"=>seg<="0000110";</p><p> when"0010"=>seg<="1011011";</p><p> when"0011"=>seg<="1001111"
89、;</p><p> when"0100"=>seg<="1100110"; </p><p> when"0101"=>seg<="1101101"; </p><p> when"0110"=>seg<="111
90、1101";</p><p> when"0111"=>seg<="0000111";</p><p> when"1000"=>seg<="1111111"; </p><p> when"1001"=>seg<=
91、"1101111"; </p><p> when others=>seg<="0000000"; </p><p> end case; </p><p><b> end if; </b></p><p> end process; </p>
92、<p><b> end fun;</b></p><p> ?。?)掃描顯示譯碼器(saomiao)仿真波形圖</p><p> 6.數(shù)字時鐘整體設(shè)計 、數(shù)字時鐘整體設(shè)計:</p><p> (1)數(shù)字時鐘的電路原理圖:</p><p> ?。?)數(shù)字時鐘的電路仿真波形</p><p
93、><b> 五、實驗電路圖</b></p><p><b> 5.1實驗原理圖</b></p><p><b> 5.2PCB圖</b></p><p><b> 心得體會</b></p><p><b> 參考文獻</b
94、></p><p> [1]蔣立平.數(shù)字電路. 北京:兵器工業(yè)出版社,2008</p><p> [2]南京理工大學(xué)電子技術(shù)中心.EDA設(shè)計實驗指導(dǎo)書.2010</p><p> [3] 侯伯亨,顧新.VHDL硬件描述語言與數(shù)字邏輯電路設(shè)計</p><p> 西安:西安電子科技大學(xué)出版社,1999</p><
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 數(shù)字電子鐘課程設(shè)計--數(shù)字電子鐘邏輯電路設(shè)計
- 數(shù)字邏輯電路設(shè)計課程設(shè)計---數(shù)字電子鐘
- 數(shù)字電路課程設(shè)計--數(shù)字電子鐘邏輯電路設(shè)計
- 數(shù)字電路課程設(shè)計---數(shù)字電子鐘邏輯電路設(shè)計
- 數(shù)字電路課程設(shè)計---數(shù)字電子鐘邏輯電路設(shè)計
- 數(shù)電課程設(shè)計---數(shù)字電子鐘邏輯電路設(shè)計
- 數(shù)電數(shù)字時鐘課程設(shè)計-- 數(shù)字電子鐘邏輯電路設(shè)計
- 電子時鐘數(shù)電課程設(shè)計--數(shù)字電子鐘邏輯電路設(shè)計
- 課程設(shè)計--數(shù)字電子鐘電路設(shè)計
- eda課程設(shè)計--數(shù)字電子鐘課程設(shè)計
- 數(shù)字電路eda課程設(shè)計--多功能數(shù)字電子鐘
- eda課程設(shè)計報告---數(shù)字電子鐘
- eda電子鐘課程設(shè)計----電子鐘的設(shè)計
- eda課程設(shè)計-電子鐘
- 數(shù)字邏輯課程設(shè)計--數(shù)字電子鐘的設(shè)計
- 數(shù)字電路課程設(shè)計--電子鐘
- 數(shù)字電路課程設(shè)計----數(shù)字電子鐘
- eda課程設(shè)計- 自動電子鐘
- 數(shù)字電路課程設(shè)計——電子鐘
- 數(shù)字電路課程設(shè)計---數(shù)字電子鐘
評論
0/150
提交評論