eda課程設(shè)計(jì)--數(shù)字電子鐘邏輯電路設(shè)計(jì)_第1頁(yè)
已閱讀1頁(yè),還剩19頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、<p>  序號(hào) </p><p>  《EDA技術(shù)》課程設(shè)計(jì)報(bào)告</p><p>  課題: 數(shù)字電子鐘邏輯電路設(shè)計(jì)</p><p>  院系 電子與電氣工程學(xué)院 </p><p>  專業(yè) 電氣工程及其自動(dòng)化 </p><p

2、> 綜合成績(jī)優(yōu)秀( )良好( )中等( )及格( )不及格( )</p><p> 教師(簽名)</p><p> 批改日期</p><p><b>  目錄</b></p><p>  一、課程設(shè)計(jì)任務(wù)及要求1</p><p><b>  1.1實(shí)驗(yàn)?zāi)康?

3、</b></p><p><b>  1.2功能設(shè)計(jì)1</b></p><p>  二、整體設(shè)計(jì)思想1</p><p>  2.1性能指標(biāo)及功能設(shè)計(jì)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)時(shí)、調(diào)分信號(hào)的產(chǎn)生3</p><p>  3.1.2計(jì)數(shù)顯示電路4</p><p><b>  3.2設(shè)計(jì)思路4</b></

5、p><p><b>  3.3設(shè)計(jì)步驟5</b></p><p>  3.3.1工程建立及存盤5</p><p>  3.3.2工程項(xiàng)目的編譯5</p><p>  3.3.3時(shí)序仿真6</p><p>  3.3.4引腳鎖定6</p><p>  3.3.5硬件測(cè)試

6、6</p><p>  3.3.6實(shí)驗(yàn)結(jié)果7</p><p><b>  四、程序設(shè)計(jì)8</b></p><p>  五、實(shí)驗(yàn)電路圖16</p><p>  5.1實(shí)驗(yàn)原理圖16</p><p>  5.2PCB圖16</p><p><b>  六

7、、心得體會(huì)17</b></p><p>  七、 參考文獻(xiàn)18</p><p>  一、課程設(shè)計(jì)任務(wù)及要求</p><p><b>  1.1實(shí)驗(yàn)?zāi)康?lt;/b></p><p>  1)掌握VHDL語(yǔ)言的基本運(yùn)用</p><p>  2)掌握QuartusII的簡(jiǎn)單操作并會(huì)使用EDA

8、實(shí)驗(yàn)箱</p><p>  3)掌握一個(gè)基本EDA課程設(shè)計(jì)的操作</p><p><b>  1.2功能設(shè)計(jì)</b></p><p>  要求顯示格式為小時(shí)-分鐘-秒鐘,整點(diǎn)報(bào)時(shí),報(bào)時(shí)時(shí)間為5 秒,即從整點(diǎn)前5 秒鐘開始進(jìn)行報(bào)時(shí)提示,LED 開始閃爍,過(guò)整點(diǎn)后,停止閃爍。調(diào)整時(shí)間的按鍵用按鍵模塊的S1 和S2,S1 調(diào)節(jié)小時(shí),每按下一次,小時(shí)增

9、加一個(gè)小時(shí),S2 調(diào)整分鐘,每按下一次,分鐘增加一分鐘。另外用S8 按鍵作為系統(tǒng)時(shí)鐘復(fù)位,復(fù)位后全部顯示00-00-00。</p><p><b>  二、整體設(shè)計(jì)思想</b></p><p>  2.1性能指標(biāo)及功能設(shè)計(jì) </p><p>  1)時(shí)、分、秒計(jì)時(shí)器</p><p>  時(shí)計(jì)時(shí)器為一個(gè)24進(jìn)制計(jì)數(shù)器,分、

10、秒計(jì)時(shí)器均為60進(jìn)制計(jì)數(shù)器。當(dāng)秒計(jì)時(shí)器接受到一個(gè)秒脈沖時(shí),秒計(jì)數(shù)器開始從00計(jì)數(shù)到59,此時(shí)秒顯示器將顯示00、01、02、...、59、00;每當(dāng)秒計(jì)數(shù)器數(shù)到00時(shí),就會(huì)產(chǎn)生一個(gè)脈沖輸出送至分計(jì)時(shí)器,此時(shí)分計(jì)數(shù)器數(shù)值在原有基礎(chǔ)上加1,其顯示器將顯示00、01、02、...、59、00;每當(dāng)分計(jì)數(shù)器數(shù)到00時(shí),就會(huì)產(chǎn)生一個(gè)脈沖輸出送至?xí)r計(jì)時(shí)器,此時(shí)時(shí)計(jì)數(shù)器數(shù)值在原有基礎(chǔ)上加1,其顯示器將顯示00、01、02、...、23、00。<

11、/p><p><b>  2)校時(shí)電路</b></p><p>  當(dāng)開關(guān)撥至校時(shí)檔時(shí),電子鐘秒計(jì)時(shí)工作,通過(guò)時(shí)、分校時(shí)開關(guān)分別對(duì)時(shí)、分進(jìn)行校對(duì),開關(guān)每按1次,與開關(guān)對(duì)應(yīng)的時(shí)或分計(jì)數(shù)器加1,當(dāng)調(diào)至需要的時(shí)與分時(shí),撥動(dòng)reset開關(guān),電子鐘從設(shè)置的時(shí)間開始往后計(jì)時(shí)。</p><p><b>  2.2總體方框</b></

12、p><p>  2.3FPGA芯片介紹</p><p>  SOPC-NIOSII EDA/SOPC實(shí)驗(yàn)開發(fā)系統(tǒng)是根據(jù)現(xiàn)代電子發(fā)展的方向,集EDA和SOPC系統(tǒng)開發(fā)為一體的綜合性實(shí)驗(yàn)開發(fā)系統(tǒng),除了滿足高校專、本科生和研究生的SOPC教學(xué)實(shí)驗(yàn)開發(fā)之外,也是電子設(shè)計(jì)和電子項(xiàng)目開發(fā)的理想工具。整個(gè)開發(fā)系統(tǒng)由核心板SOPC-NiosII-EP2C35、系統(tǒng)板和擴(kuò)展板構(gòu)成,根據(jù)用戶不同的需求配置成不同的

13、開發(fā)系統(tǒng)。</p><p>  SOPC-NiosII-EP2C35開發(fā)板是在經(jīng)過(guò)長(zhǎng)期用戶需求考察后,結(jié)合目前市面上以及實(shí)際應(yīng)用需要,同時(shí)兼顧入門學(xué)生以及資深開發(fā)工程師的應(yīng)用需求而研發(fā)的。就資源而言,它已經(jīng)可以組成一個(gè)高性能的嵌入式系統(tǒng),可以運(yùn)行目前流行的RTOS,如uC/OS、uClinux等。系統(tǒng)主芯片采用672引腳、BGA封裝的EP2C35 FPGA,它擁有33216個(gè)LE,105個(gè)M4K片上RAM(共計(jì)4

14、83840bits),35個(gè)18×18硬件乘法器、4個(gè)高性能PLL以及多達(dá)475個(gè)用戶自定義IO。板上提供了大容量的SRAM、SDRAM和Flash ROM等以及常用的RS-232、USB2.0、 RJ45接口和標(biāo)準(zhǔn)音頻接口等,除去板上已經(jīng)固定連接的IO,還有多達(dá)260個(gè)IO通過(guò)不同的接插件引出,供用戶使用。所以,不管從性能上而言,還是從系統(tǒng)靈活性上而言,無(wú)論您是初學(xué)者,還是資深硬件工程師,它都會(huì)成為您的好幫手。如圖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)時(shí)、調(diào)分信號(hào)的產(chǎn)生</p><p>  由計(jì)數(shù)器的計(jì)數(shù)過(guò)程可知,正常計(jì)數(shù)時(shí),當(dāng)秒計(jì)數(shù)器(60進(jìn)制)計(jì)數(shù)到59

16、時(shí),再來(lái)一個(gè)脈沖,則秒計(jì)數(shù)器清零,重新開始新一輪的計(jì)數(shù),而進(jìn)位則作為分計(jì)數(shù)器的計(jì)數(shù)脈沖,使分計(jì)數(shù)器計(jì)數(shù)加1。現(xiàn)在我們把電路稍做變動(dòng):把秒計(jì)數(shù)器的進(jìn)位脈沖和一個(gè)頻率為2Hz的脈沖信號(hào)同時(shí)接到一個(gè)2選1數(shù)據(jù)選擇器的兩個(gè)數(shù)據(jù)輸入端,而位選信號(hào)則接一個(gè)脈沖按鍵開關(guān),當(dāng)按鍵開關(guān)不按下去時(shí)(即為0),則數(shù)據(jù)選擇器將秒計(jì)數(shù)器的進(jìn)位脈沖送到分計(jì)數(shù)器,此時(shí),數(shù)字鐘正常工作;當(dāng)按鍵開關(guān)按下去時(shí)(即為1),則數(shù)據(jù)選擇器將另外一個(gè)2Hz 的信號(hào)作為分計(jì)數(shù)器的計(jì)

17、數(shù)脈沖,使其計(jì)數(shù)頻率加快,當(dāng)達(dá)到正確時(shí)間時(shí),松開按鍵開關(guān),從而達(dá)到調(diào)時(shí)的目的。調(diào)節(jié)小時(shí)的時(shí)間也一樣的實(shí)現(xiàn)。</p><p>  3.1.2計(jì)數(shù)顯示電路</p><p>  由計(jì)數(shù)部分、數(shù)據(jù)選擇器、譯碼器組成,是時(shí)鐘的關(guān)鍵部分。</p><p>  1、計(jì)數(shù)部分:由兩個(gè)60進(jìn)制計(jì)數(shù)器和一個(gè)24 進(jìn)制計(jì)數(shù)器組成,其中60 進(jìn)制計(jì)數(shù)器可用6 進(jìn)制計(jì)數(shù)器和10 進(jìn)制計(jì)數(shù)器構(gòu)

18、成;24 進(jìn)制的小時(shí)計(jì)數(shù)同樣可用6 進(jìn)制計(jì)數(shù)器和10 進(jìn)制計(jì)數(shù)器得到:當(dāng)計(jì)數(shù)器計(jì)數(shù)到24 時(shí),“2”和“4”同時(shí)進(jìn)行清零,則可實(shí)現(xiàn)24 進(jìn)制計(jì)數(shù)。</p><p>  2、數(shù)據(jù)選擇器:84 輸入14 輸出的多路數(shù)據(jù)選擇器,因?yàn)楸緦?shí)驗(yàn)用到了8個(gè)數(shù)碼管(有兩個(gè)用來(lái)產(chǎn)生隔離符號(hào)‘—’)。</p><p>  3、譯碼器:七段譯碼器。譯碼器必須能譯出‘—’,由實(shí)驗(yàn)二中譯碼器真值表可得:字母F 的8

19、421BCD 碼為“1111”,譯碼后為“1000111”,現(xiàn)在如果只譯出‘—’,即字母F的中間一橫,則譯碼后應(yīng)為“0000001”,這樣,在數(shù)碼管上顯示的就為‘—’。</p><p><b>  3.2設(shè)計(jì)思路</b></p><p>  根據(jù)系統(tǒng)設(shè)計(jì)要求,系統(tǒng)設(shè)計(jì)采用自頂向下設(shè)計(jì)方法,由時(shí)鐘分頻部分、計(jì)時(shí)部分、按鍵部分調(diào)時(shí)部分和顯示部分五個(gè)部分組成。這些模塊都放在

20、一個(gè)頂層文件中。</p><p><b>  1)時(shí)鐘計(jì)數(shù):</b></p><p>  首先下載程序進(jìn)行復(fù)位清零操作,電子鐘從00:00:00計(jì)時(shí)開始。setshi可以調(diào)整時(shí)鐘的小時(shí)部分, setfen可以調(diào)整分鐘,步進(jìn)為1。</p><p>  用6位數(shù)碼管分別顯示“時(shí)”、“分”、“秒”,通過(guò)OUTPUT( 6 DOWNTO 0 )上的信號(hào)

21、來(lái)點(diǎn)亮指定的LED七段顯示數(shù)碼管。</p><p><b>  時(shí)間設(shè)置:</b></p><p>  手動(dòng)調(diào)節(jié)分鐘、小時(shí),可以對(duì)所設(shè)計(jì)的時(shí)鐘任意調(diào)時(shí)間,這樣使數(shù)字鐘真正具有使用功能。我們可以通過(guò)實(shí)驗(yàn)板上的S2和S1進(jìn)行任意的調(diào)整,因?yàn)槲覀冇玫臅r(shí)鐘信號(hào)均是1HZ的,所以每LED燈變化一次就來(lái)一個(gè)脈沖,即計(jì)數(shù)一次。</p><p><b&g

22、t;  3)清零功能:</b></p><p>  S8為復(fù)位鍵,低電平時(shí)實(shí)現(xiàn)清零功能,高電平時(shí)正常計(jì)數(shù)??梢愿鶕?jù)我們自己任意時(shí)間的復(fù)位。</p><p><b>  3.3設(shè)計(jì)步驟</b></p><p>  3.3.1工程建立及存盤</p><p>  1.打開 QuartusⅡ,單擊“File”菜單,選

23、擇 File→New Project Wizard,對(duì)話框如下:分別輸入項(xiàng)目的工作路徑、項(xiàng)目名和實(shí)體名,單擊Finish。</p><p>  2.單擊“File”菜單,選擇New,彈出小對(duì)話框,雙擊“VHDL File",即選中了文本編輯方式。在出現(xiàn)的“Vhdl1.vhd”文本編輯窗中鍵入VHDL程序,輸入完畢后,選擇File→Save As,即出現(xiàn)“Save As”對(duì)話框。選擇自己建立好的存放本文件

24、的目錄,然后在文件名框中鍵入文件名,按“Save”按鈕。</p><p>  3. 建立工程項(xiàng)目,在保存VHDL文件時(shí)會(huì)彈出是否建立項(xiàng)目的小窗口,點(diǎn)擊“Yes”確定。即出現(xiàn)建立工程項(xiàng)目的導(dǎo)航窗口,點(diǎn)擊“Next”,最后在出現(xiàn)的屏幕中分別鍵入新項(xiàng)目的工作路徑、項(xiàng)目名和實(shí)體名。注意,原理圖輸入設(shè)計(jì)方法中,存盤的原理圖文件名可以是任意的,但VHDL程序文本存盤的文件名必須與文件的實(shí)體名一致,輸入后,單擊“Finish”

25、按鈕。</p><p>  3.3.2工程項(xiàng)目的編譯</p><p>  單擊工具條上的編譯符號(hào)開始編譯,并隨著進(jìn)度不斷變化屏幕,編譯完成后的屏幕如圖所示:</p><p><b>  3.3.3時(shí)序仿真</b></p><p>  建立波形文件:選擇 File→New,在New窗中選中“Other File”標(biāo)簽。在出

26、現(xiàn)的屏幕中選擇“Vector Waveform File”項(xiàng)出現(xiàn)一新的屏幕。在出現(xiàn)的新屏幕中,雙擊“Name”下方的空白處,彈出“Insert Nod or Bus”對(duì)話框,單擊該對(duì)話框的“Node Finder……”。在屏幕中的 Filter 中選擇 Pins,單擊“List”。而后,單擊“>>”,所有輸入/輸出都被拷貝到右邊的一側(cè),這些正是我們希望的各個(gè)引腳,也可以只選其中的的一部分,根據(jù)實(shí)際情況決定。然后單擊屏幕右上腳

27、的 “OK”。在出現(xiàn)的小屏幕上單擊“OK”。 </p><p>  設(shè)定仿真時(shí)間寬度。選擇 Edit → End time…選項(xiàng),在End time選擇窗中選擇適當(dāng)?shù)姆抡鏁r(shí)間域,以便有足夠長(zhǎng)的觀察時(shí)間。</p><p>  波形文件存盤。選擇File→Save as 選項(xiàng),直接存盤即可。</p><p>  運(yùn)行仿真器。在菜單中選擇項(xiàng),直到出現(xiàn),仿真結(jié)束。</

28、p><p><b>  3.3.4引腳鎖定</b></p><p>  將設(shè)計(jì)編程下載進(jìn)選定的目標(biāo)器件中,如EPF10K10,作進(jìn)一步的硬件測(cè)試,將設(shè)計(jì)的所有輸入輸出引腳分別與目標(biāo)器件的EPF10K10的部分引腳相接,操作如下:</p><p>  1.選擇 Assignments → Assignments Editor ,即進(jìn)入 Assignm

29、ents Editor編輯器。在Category 欄選擇 Pin,或直接單擊右上側(cè)的 Pin 按鈕。</p><p>  2.雙擊 TO 欄的《new》,在出現(xiàn)的的下拉欄中選擇對(duì)應(yīng)的端口信號(hào)名(如 D[0]);然后雙擊對(duì)應(yīng)的欄的《new》,在出現(xiàn)的下拉欄中選擇對(duì)應(yīng)的端口信號(hào)名的期間引腳號(hào)。</p><p>  3.最后存儲(chǔ)這些引腳鎖定信息后,必須再編譯(啟動(dòng) )一次,才能將引腳鎖定信息編譯

30、進(jìn)編程下載文件中。此后就可以準(zhǔn)備將編譯好的 SOF 文件下載到試驗(yàn)系統(tǒng)的FPGA中去了。</p><p><b>  3.3.5硬件測(cè)試</b></p><p>  1.首先將下載線把計(jì)算機(jī)的打印機(jī)口與目標(biāo)板(如開發(fā)板或?qū)嶒?yàn)板)連接好,打開電源。</p><p>  2.打開編輯窗和配置文件。選擇,彈出一個(gè)編輯窗。在Mode欄中選擇JTAG,并

31、在選項(xiàng)下的小方框打勾。注意核對(duì)下載文件路徑與文件名。如果文件沒有出現(xiàn)或者出錯(cuò),單擊左Add file側(cè)按鈕,手動(dòng)選擇配置文件 clock.sof。</p><p>  3.最后單擊下載標(biāo)符Start,即進(jìn)入對(duì)目標(biāo)器件 FPGA 的配置下載操作。當(dāng) Progress 顯示100%,以及在底部的處理欄中出現(xiàn) Configuration Succeeded 時(shí),表示編程成功,如圖所示。注意,如果必要時(shí),可再次單擊 St

32、art ,直至編程成功。</p><p>  4.下載完成后,通過(guò)硬件測(cè)試進(jìn)一步確定設(shè)計(jì)是否達(dá)到所有的技術(shù)指標(biāo),如未達(dá)到,可逐步檢查,哪部分出現(xiàn)問題。如果是代碼出現(xiàn)問題,須修改代碼;若是時(shí)序波形圖有問題,須重新設(shè)置。</p><p><b>  3.3.6實(shí)驗(yàn)結(jié)果</b></p><p>  鍵s8為復(fù)位按鍵,鍵s1設(shè)置小時(shí),鍵s2設(shè)置分鐘。下

33、載成功后,按下鍵s8,即使六個(gè)LED復(fù)位清零,顯示數(shù)秒的自動(dòng)計(jì)時(shí)。當(dāng)秒數(shù)滿59則進(jìn)一位,分鐘數(shù)滿59進(jìn)一位,當(dāng)顯示為xx:59:55時(shí),外接的LED小燈開始閃爍,過(guò)整點(diǎn)以后停止閃爍。調(diào)試實(shí)物圖如圖3.3.6所示:</p><p>  圖3.3.6調(diào)試實(shí)物圖</p><p><b>  四、程序設(shè)計(jì)</b></p><p>  1. (1)秒計(jì)數(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>  (2)秒計(jì)數(shù)器(miao)仿真波形圖</p><p&g

44、t;  (3)秒計(jì)數(shù)器(miao)仿真分析 </p><p>  1、隨著 clk 脈沖信號(hào)的不斷到來(lái),countmiao 記錄出 clk 的脈沖個(gè)數(shù),計(jì)數(shù) 到 59 時(shí),在下一個(gè) clk 脈沖信號(hào)到來(lái)時(shí),輸出端 enfen 輸出高定平,即向分進(jìn) 位,同時(shí) countmiao 清零。 2、 reset 為清零端, reset 低電平時(shí), 當(dāng) countmiao 計(jì)數(shù)從零重新開始計(jì)數(shù)。 3、setfen 為分的手動(dòng)

45、進(jìn)位端,當(dāng) setfen 高定平時(shí)且 clk 脈沖到來(lái)時(shí),輸出 enfen 高電平,向分進(jìn)位。</p><p>  2. (1)分計(jì)數(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> ?。?)分計(jì)數(shù)器(fen)仿真波形圖&

54、lt;/p><p>  (3)分計(jì)數(shù)器(fen)仿真分析 </p><p>  1、imiao 為秒計(jì)數(shù)器的 enfen 進(jìn)位輸出端,當(dāng) enfen(imiao)高電平到來(lái) 時(shí), clk 高電平時(shí), 且 countfen 開始計(jì)數(shù)。 countfen 計(jì)數(shù)到 59 時(shí), 下一個(gè) enfen (imiao)、clk 到來(lái)時(shí),enshi 高電平,即向時(shí)進(jìn)位,同時(shí) countfen 清零。 2、re

55、set 為清零端,當(dāng) reset 低電平時(shí),countfen 計(jì)數(shù)從零重新開始計(jì)數(shù)。 3、setshi 為時(shí)的手動(dòng)進(jìn)位端,當(dāng) setshi 高定平時(shí)且 clk 脈沖到來(lái)時(shí),輸出 en 時(shí)高電平,向時(shí)進(jìn)位。</p><p>  3.(1)時(shí)計(jì)數(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í)計(jì)數(shù)器(shi)仿真掃描顯示譯碼器(saomiao)仿真</p><p> ?。?)時(shí)計(jì)數(shù)器(shi)仿真分析 </p><p>  1、ifen 為分計(jì)數(shù)器的 enshi 進(jìn)位輸出端,當(dāng) enshi(ifen)為高電平時(shí), countshi 計(jì)數(shù)。countshi 計(jì)數(shù)到 23 時(shí),當(dāng)下一個(gè) enshi(ifen)、clk 到來(lái)時(shí)

63、, countshi 會(huì)自動(dòng)清零。 2、reset 為清零端,當(dāng) reset 低電平時(shí),countfen 計(jì)數(shù)從零重新開始計(jì)數(shù)。</p><p><b>  4.整點(diǎn)報(bào)時(shí)</b></p><p>  (1)整點(diǎn)報(bào)時(shí)器(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> ?。?)整點(diǎn)報(bào)時(shí)器(baoshi)仿真波形圖</p><p> ?。?)整點(diǎn)報(bào)時(shí)器(baoshi)仿真分析 </p><p&

71、gt;  input 為分計(jì)數(shù)器的輸出端,當(dāng)輸出 58、59 和 00(十六進(jìn)制)時(shí),整點(diǎn)報(bào) 時(shí)器(baoshi)的輸出端 output 為高電平,點(diǎn)亮 LED 燈。當(dāng) intput 為 58、59 時(shí),點(diǎn)亮一個(gè) LED 燈,當(dāng) input 為 00 時(shí),點(diǎn)亮兩個(gè) LED 燈。其他情況時(shí),LED 燈均不發(fā)光。</p><p>  4. (1)分頻器(fenpin)設(shè)計(jì)</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>  掃描顯示譯碼器是用來(lái)顯示時(shí)鐘數(shù)值的裝置,將數(shù)字時(shí)鐘的高低電平信

77、號(hào)用 數(shù)碼管的數(shù)值顯示出來(lái)。八個(gè)數(shù)碼管中,用六個(gè)數(shù)碼管顯示時(shí)、分和秒,另外兩 個(gè)可做為時(shí)和分、分和秒之間的間隔,始終不顯示。 首先對(duì)八個(gè)數(shù)碼管進(jìn)行掃描,每一時(shí)刻都只有一個(gè)數(shù)碼管處于掃描狀態(tài),并 將此時(shí)的數(shù)字時(shí)鐘的高低電平通過(guò)十六進(jìn)制的 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è)計(jì) 、數(shù)字時(shí)鐘整體設(shè)計(jì):</p><p> ?。?)數(shù)字時(shí)鐘的電路原理圖:</p><p> ?。?)數(shù)字時(shí)鐘的電路仿真波形</p><p

93、><b>  五、實(shí)驗(yàn)電路圖</b></p><p><b>  5.1實(shí)驗(yàn)原理圖</b></p><p><b>  5.2PCB圖</b></p><p><b>  心得體會(huì)</b></p><p><b>  參考文獻(xiàn)</b

94、></p><p>  [1]蔣立平.數(shù)字電路. 北京:兵器工業(yè)出版社,2008</p><p>  [2]南京理工大學(xué)電子技術(shù)中心.EDA設(shè)計(jì)實(shí)驗(yàn)指導(dǎo)書.2010</p><p>  [3] 侯伯亨,顧新.VHDL硬件描述語(yǔ)言與數(shù)字邏輯電路設(shè)計(jì)</p><p>  西安:西安電子科技大學(xué)出版社,1999</p><

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫(kù)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論