EDA課程設(shè)計報告基于VHDL語言的數(shù)字電子鐘實現(xiàn)_第1頁
EDA課程設(shè)計報告基于VHDL語言的數(shù)字電子鐘實現(xiàn)_第2頁
EDA課程設(shè)計報告基于VHDL語言的數(shù)字電子鐘實現(xiàn)_第3頁
EDA課程設(shè)計報告基于VHDL語言的數(shù)字電子鐘實現(xiàn)_第4頁
EDA課程設(shè)計報告基于VHDL語言的數(shù)字電子鐘實現(xiàn)_第5頁
已閱讀5頁,還剩22頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、 基于 vhdl 語言的數(shù)字電子鐘實現(xiàn) 第1頁 共 26 頁 目目 錄錄 1 引 言.4 1.1 eda 概述.4 1.2 vhdl 語言概述.5 1.3 max+plus ii 概述.6 2 數(shù)字電子鐘設(shè)計.9 2.1 設(shè)計方案.9 2.2 設(shè)計思路.9 2.3 模塊設(shè)計.10 3 數(shù)字電子鐘的仿真.15 3.1 六進(jìn)制計數(shù)器的仿真.15 3.2 十進(jìn)制計數(shù)器的仿真.16 3.324 進(jìn)制計數(shù)器的仿真.17 3.4 顯示模塊的仿真.18 3.5 頂層模塊的仿真.18 4 小 結(jié).19 參考文獻(xiàn).20 附錄:設(shè)計源程序清單.21 基于 vhdl 語言的數(shù)字電子鐘實現(xiàn) 第2頁 共 26 頁 基于

2、基于 vhdl 的數(shù)字電子鐘設(shè)計的數(shù)字電子鐘設(shè)計 學(xué)生姓名:學(xué)生姓名: 指導(dǎo)老師:指導(dǎo)老師: 摘摘 要要 隨著eda技術(shù)的發(fā)展和應(yīng)用領(lǐng)域的擴(kuò)大與深入, eda技術(shù)在電子信息、通信、 自動控制及計算機(jī)應(yīng)用領(lǐng)域的重要性日益突出。eda技術(shù)就是依賴功能強(qiáng)大的計算機(jī), 在eda工具軟件平臺上,對以硬件描述語言vhdl為系統(tǒng)邏輯描述手段完成的設(shè)計文件, 自動地完成邏輯優(yōu)化和仿真測試,直至實現(xiàn)既定的電子線路系統(tǒng)功能。本文介紹了基于 vhdl硬件描述語言設(shè)計的多功能數(shù)字時鐘的思路和技巧。在max+plus ii開發(fā)環(huán)境中 編譯和仿真了所設(shè)計的程序,并逐一調(diào)試驗證程序的運行狀況。仿真和驗證的結(jié)果表明,該 設(shè)計

3、方法切實可行,該數(shù)字時鐘具有一定的實際應(yīng)用性。 關(guān)鍵詞關(guān)鍵詞 數(shù)字電子鐘;仿真調(diào)試;vhdl;max+plus ii 基于 vhdl 語言的數(shù)字電子鐘實現(xiàn) 第3頁 共 26 頁 design of digital electronic clock based on vhdl student name: chen ben teacher: chen yuantao abstract with the development of eda technology and expansion and deepen of application, eda technology has become mo

4、re and more important in electronic information, communications, automatic control and computer app lications. eda technology depends on powerful computers, complete logic optimization and simulation tests of design documents by means of making hardware description language vhdl as the system logic

5、description automatically in eda tools software platform, until it has achieved the function of established electronic circuits system. in this paper, we have introduced ideas and crafts manship of multi-function digital clock design based on vhdl hardware description language. compile and simulate

6、designed procedures in max+plus ii development environment and debug and verify each ofthe operation of program. simulation and verify results show that this design is workable and this digital clock is practical. key words digital electronic clock; emulator debugger; vhdl; max+plus ii 基于 vhdl 語言的數(shù)字

7、電子鐘實現(xiàn) 第4頁 共 26 頁 1 引引 言言 當(dāng)今社會是數(shù)字化的社會,也是數(shù)字集成電路廣泛應(yīng)用的社會,數(shù)字電路本身在 不斷地進(jìn)行更新?lián)Q代。它由早期的電子管、晶體管、小中規(guī)模集成電路發(fā)展到超大規(guī) 模集成電路(vlsic1)以及許多具有特定功能的專用集成電路。但是,隨著微電子技 術(shù)的發(fā)展,設(shè)計與制造集成電路的任務(wù)已不完全由半導(dǎo)體廠商來獨立承擔(dān)。系統(tǒng)設(shè)計 師們更愿意自己設(shè)計專用集成電路(asic)芯片,而且希望 asic 的設(shè)計周期盡可能 的短,最好是在實驗室里就能設(shè)計出合適的 asic 芯片,并且立即投入實際應(yīng)用之中, 因而出現(xiàn)了現(xiàn)場可編程邏輯器件(fpld),其中應(yīng)用最廣泛的當(dāng)屬現(xiàn)場可編程門

8、陣列 (fpga2)和復(fù)雜可編程邏輯器件(cpld)。比較典型的就是 xilinx 公司的 fpga 器件系列和 altera 公司的 cpld 器件系列,它們開發(fā)較早,占用較大的 pld 市場。目 前,altera 系列產(chǎn)品在我國使用較多。 1.1 eda 概述概述 20 世紀(jì) 90 年代,國際上電子和計算機(jī)技術(shù)較先進(jìn)的國家,一直在積極探索新的電 子電路設(shè)計方法,并在設(shè)計方法、工具等方面進(jìn)行了徹底的變革,取得了巨大成功。 在電子技術(shù)設(shè)計領(lǐng)域,可編程邏輯器件(如 cpld、fpga)的應(yīng)用,已得到廣泛的普 及,這些器件為數(shù)字系統(tǒng)的設(shè)計帶來了極大的靈活性。這些器件可以通過軟件編程而 對其硬件結(jié)構(gòu)

9、和工作方式進(jìn)行重構(gòu),從而使得硬件的設(shè)計可以如同軟件設(shè)計那樣方便 快捷。這一切極大地改變了傳統(tǒng)的數(shù)字系統(tǒng)設(shè)計方法、設(shè)計過程和設(shè)計觀念,促進(jìn)了 eda 技術(shù)的迅速發(fā)展。 eda 技術(shù)就是以計算機(jī)為工具,設(shè)計者在 eda 軟件平臺上,用硬件描述語言 hdl 完成設(shè)計文件,然后由計算機(jī)自動地完成邏輯編譯、化簡、分割、綜合、優(yōu)化、 布局、布線和仿真,直至對于特定目標(biāo)芯片的適配編譯、邏輯映射和編程下載等工作。 eda 技術(shù)的出現(xiàn),極大地提高了電路設(shè)計的效率和可操作性,減輕了設(shè)計者的勞動強(qiáng) 度。 利用 eda 工具,電子設(shè)計師可以從概念、算法、協(xié)議等開始設(shè)計電子系統(tǒng), 大量工作可以通過計算機(jī)完成,并可以將電

10、子產(chǎn)品從電路設(shè)計、性能分析到設(shè)計出 ic 版圖或 pcb 版圖的整個過程的計算機(jī)上自動處理完成。 現(xiàn)在對 eda 的概念或范疇用得很寬。包括在機(jī)械、電子、通信、航空航天、化工、 礦產(chǎn)、生物、醫(yī)學(xué)、軍事等各個領(lǐng)域,都有 eda 的應(yīng)用。目前 eda 技術(shù)已在各大公 基于 vhdl 語言的數(shù)字電子鐘實現(xiàn) 第5頁 共 26 頁 司、企事業(yè)單位和科研教學(xué)部門廣泛使用。例如在飛機(jī)制造過程中,從設(shè)計、性能測 試及特性分析直到飛行模擬,都可能涉及到 eda 技術(shù)。 1.2 vhdl 語言概述語言概述 硬件描述語言是 eda 技術(shù)的重要組成部分,vhdl3 是作為電子設(shè)計主流硬件 描述語言,vhdl(very

11、 high speed integrated circuit hardware description language) 于 1983 年由美國國防部發(fā)起創(chuàng)建,由 ieee 進(jìn)一步發(fā)展并在 1987 年作為 ieee 標(biāo)準(zhǔn) 10760 發(fā)布。因此,vhdl 成為硬件描述語言的業(yè)界標(biāo)準(zhǔn)之一。vhdl 作為 ieee 的工 業(yè)標(biāo)準(zhǔn)硬件描述語言,得到眾多 eda 公司的支持,在電子工程領(lǐng)域,已成為事實上的 通用硬件描述語言。vhdl 語言具有很強(qiáng)的電路描述和建模能力,能從多個層次對數(shù) 字系統(tǒng)進(jìn)行建模和描述,從而大大簡化了硬件設(shè)計任務(wù),提高了設(shè)計效率和可靠性, 使用 vhdl 語言,可以就系統(tǒng)的總體

12、要求出發(fā),自上而下地將設(shè)計內(nèi)容細(xì)化,最后完 成系統(tǒng)硬件的整體設(shè)計。一個完整的 vhdl 程序包括以下幾個基本組成部分:實體 (entity) ,結(jié)構(gòu)體(architecture) ,程序包(package) ,庫(library) 。其中,實體是一 個 vhdl 程序的基本單元,由實體說明和結(jié)構(gòu)體兩部分組成,實體說明用于描述設(shè)計 系統(tǒng)的外部接口信號;結(jié)構(gòu)體用于描述系統(tǒng)的行為,系統(tǒng)數(shù)據(jù)的流程或系統(tǒng)組織結(jié)構(gòu) 形式。程序包存放各設(shè)計模塊能共享的數(shù)據(jù)類型,常數(shù),子程序等。庫用于存放已編 譯的實體,機(jī)構(gòu)體,程序包及配置。 vhdl 語言的編譯環(huán)境有不同的版本,我們應(yīng)用的是 altera 公司的 maxp

13、lus 軟件, 它的操作順序如下:使用 texteditor 編寫 vhdl 程序使用 compiler 編譯 vhdl 程序;使用 wave2formeditor,simularot 仿真實驗;使用 timinganaltzer 進(jìn)行芯片的時序分析;用 floorplaneditor 鎖定芯片管腳位 置;使用 programmer 將編譯好的 vhdl 程序下載到芯片中。 vhdl 進(jìn)行工程設(shè)計的優(yōu)點是顯而易見的。 1與其他的硬件描述語言相比,vhdl 具有更強(qiáng)的行為描述能力,從而決定了他 成為系統(tǒng)設(shè)計領(lǐng)域最佳的硬件描述語言。 2vhdl 豐富的仿真語句和庫函數(shù),使得在任何大系統(tǒng)的設(shè)計早期就

14、能查驗設(shè)計 系統(tǒng)的功能可行性,隨時可對設(shè)計進(jìn)行仿真模擬。 3vhdl 語句的行為描述能力和程序結(jié)構(gòu)決定了他具有支持大規(guī)模設(shè)計的分解和 已有設(shè)計的再利用功能。符合市場需求的大規(guī)模系統(tǒng)高效、高速地完成必須有多人甚 至多個代發(fā)組共同并行工作才能實現(xiàn)。 基于 vhdl 語言的數(shù)字電子鐘實現(xiàn) 第6頁 共 26 頁 4對于用 vhdl 完成的一個確定的設(shè)計,可以利用 eda 工具進(jìn)行邏輯綜合和 優(yōu)化,并自動的將 vhdl 描述設(shè)計轉(zhuǎn)變成門級網(wǎng)表。 5vhdl 對設(shè)計的描述具有相對獨立性,設(shè)計者可以不懂硬件的結(jié)構(gòu),也不必管 理最終設(shè)計實現(xiàn)的目標(biāo)器件是什么,而進(jìn)行獨立的設(shè)計。 6用 vhdl 語言編寫的源程序

15、便于文檔管理,用源代碼描述來進(jìn)行復(fù)雜控制邏 輯的設(shè)計,既靈活方便,又便于設(shè)計結(jié)果的交流、保存和重用。 綜上所述,vhdl 語言的極強(qiáng)的行為描述能力和豐富的仿真語句及庫函數(shù),決定 了它具有支持大規(guī)模設(shè)計的分析和已有設(shè)計的再利用功能 5 和功能 6,用 vhdl 完成 一個確定的設(shè)計,可以利用 eda 工具進(jìn)行邏輯綜合和優(yōu)化,并自動把 vhdl 描述設(shè) 計轉(zhuǎn)變成門級網(wǎng)表。這種方式突破了門級設(shè)計的瓶頸,極大地減少了電路設(shè)計的時間 和可能發(fā)生的錯誤,降低了開發(fā)成本。 1.3 max+plus ii 概述概述 max+plus ii4是美國 altera 公司開發(fā)的軟件,它具有操作系統(tǒng)的程序界面,采用

16、全菜單操作和鼠標(biāo)操作方式,是一個完全集成化,易學(xué)易用的可編程邏輯設(shè)計環(huán)境。 它提供了功能強(qiáng)大,直觀便捷和操作靈活的原理圖輸入設(shè)計功能,同時還配備了適用 于各種需要的元件庫,其中包含基本邏輯元件庫(如與非門、反向器、觸發(fā)器等) ,宏 功能元件(包含了幾乎所有 74 系列的器件)以及功能強(qiáng)大、性能良好的類似于核的兆 功能塊庫,但更為重要的是它提供了使用方便,精度良好的時序仿真器,能夠?qū)ο到y(tǒng) 中任一元件的功能進(jìn)行精確的時序仿真,精度達(dá) 0.1ns,非常準(zhǔn)確。 max+plus ii 開發(fā)系統(tǒng)是一個完全集成化、易學(xué)易用的可編程邏輯器件設(shè)計和開發(fā) 系統(tǒng),它提供了一種真正與結(jié)構(gòu)無關(guān)的可編程邏輯設(shè)計環(huán)境。它

17、所提供的靈活性和高 效性是無可比擬的,其豐富的圖形界面,輔之以完整的、可即時訪問的在線文檔,使 設(shè)計人員能夠輕松、愉快地掌握和使用 max+plus ii 軟件。max+plus ii 支持靈活多樣 的輸入方式:原理圖輸入、硬件描述語言輸入、波形輸入,以及層次設(shè)計輸入。 max+plus ii 的設(shè)計輸入、處理和校驗功能全部集成在統(tǒng)一的開發(fā)環(huán)境下,這樣可 以加快動態(tài)調(diào)試進(jìn)程。它提供豐富的庫單元供設(shè)計者使用,包括 74 系列的全部器件、 多種特殊的邏輯宏功能(macro-function)和參數(shù)化功能模塊(lpm: library of parameterized modules) ,但更為重要

18、的是 max+plus ii 還提供了原理圖輸入多層次設(shè)計 功能,使得用戶能設(shè)計更大規(guī)模的電路系統(tǒng),以及使用方便、精度良好的時序仿真器。 與傳統(tǒng)的數(shù)字電路實驗相比,max+plus ii 提供靈活多樣的層次化輸入設(shè)計功能,具有 基于 vhdl 語言的數(shù)字電子鐘實現(xiàn) 第7頁 共 26 頁 顯著的優(yōu)勢: 1能進(jìn)行任意層次的數(shù)字系統(tǒng)設(shè)計。傳統(tǒng)的數(shù)字電路實驗只能完成單一層次的設(shè) 計,使設(shè)計者無法了解和實現(xiàn)多層次的硬件數(shù)字系統(tǒng)設(shè)計; 2對系統(tǒng)中的任一層次或任一元件的功能進(jìn)行精確的時序仿真,精度達(dá) 0.1ns, 因此能發(fā)現(xiàn)對系統(tǒng)可能產(chǎn)生不良影響的競爭冒險現(xiàn)象; 3通過時序仿真,能迅速定位電路系統(tǒng)的錯誤所在

19、,并隨時糾正; 4能對設(shè)計方案進(jìn)行隨時更改,并儲存設(shè)計過程中所有的電路和測試文件入檔; 5通過編譯和下載,能在 fpga 或 cpld 上對設(shè)計項目隨時進(jìn)行硬件測試驗證; 6如果使用 fpga 和配置編程方式,將不會有器件損壞和損耗問題; 7符合現(xiàn)代電子設(shè)計技術(shù)規(guī)范。傳統(tǒng)的數(shù)字電路實驗利用手工連線的方法完成元 件連接,容易對學(xué)習(xí)者產(chǎn)生誤導(dǎo),以為只要將元件間的引腳用引線按電路圖連上即可, 而不必顧及引線長短,粗細(xì)彎曲方式,可能產(chǎn)生的分布電感和電容效應(yīng),以及電磁兼 容性等等十分重要的問題。 max+plus ii 還提供設(shè)計校驗的仿真器,其中包括功能仿真和時序仿真。仿真器的 靈活性很強(qiáng)電路設(shè)計完成

20、后,需要驗證電路設(shè)計的邏輯功能是否正確。這是一項簡單 的邏輯檢查,可采用功能仿真,這對于初步的邏輯功能檢測非常方便。功能檢查完成 后,可進(jìn)行時序仿真。max+plus ii 的時序分析程序可以計算點到點的器件延時,確定 器件引腳上的建立時間和保持時間要求,還可計算最高時鐘頻率。 用 max+plus ii 軟件進(jìn)行邏輯設(shè)計的步驟包括: 1根據(jù)所選課題的任務(wù)和設(shè)計指標(biāo)要求,確定總體設(shè)計方案,畫出總體方案的系 統(tǒng)框圖(亦稱預(yù)設(shè)計階段) 2進(jìn)行底層單元電路分析及輸入設(shè)計、編譯、仿真; 3利用已編譯正確的底層單元電路模塊,畫出頂層電路的原理圖 ,進(jìn)行編譯調(diào) 試和仿真測試; 4撰寫設(shè)計報告。 max+p

21、lus ii 的設(shè)計流程可以用如下圖 1.1 給出。 基于 vhdl 語言的數(shù)字電子鐘實現(xiàn) 第8頁 共 26 頁 圖形成 vhdl 編 輯器 編譯 網(wǎng)表 提取 數(shù)據(jù) 庫建 立 邏輯 綜合 邏輯 分割 匹配延時 網(wǎng)表 提取 編輯 文件 匯編 編輯 器 圖圖 1.1 max+plus ii 設(shè)計流程設(shè)計流程 從圖 1.1 可清晰了解到 max+plus ii 提供了一種與結(jié)構(gòu)無關(guān)的設(shè)計環(huán)境,使設(shè)計者 能方便地進(jìn)行設(shè)計輸入、快速處理和器件編程。他包括設(shè)計輸入編輯、編譯網(wǎng)表提取、 數(shù)據(jù)庫建立、邏輯綜合、邏輯分割、適配、延時網(wǎng)表提取、編輯文件匯編以及編程下 載 9 個步驟。 基于 vhdl 語言的數(shù)字電

22、子鐘實現(xiàn) 第9頁 共 26 頁 2 數(shù)字電子鐘設(shè)計數(shù)字電子鐘設(shè)計 本設(shè)計采用自頂向下的設(shè)計方法5,將數(shù)字電子時鐘分11個子模塊和1個頂層模塊。 子模塊包括2個六進(jìn)制計數(shù)器,2個十進(jìn)制計數(shù)器,1個24進(jìn)制計數(shù)器和6個led七段數(shù) 碼顯示模塊。然后將各個子模塊再細(xì)分為更小的功能塊,直到最后能用 vhdl語言進(jìn) 行描述為止。當(dāng)各個模塊都描述完成并仿真確認(rèn)無誤后,再采用元件例化,將各個元 件一層一層的例化連接起來,直到最后完成系統(tǒng)設(shè)計。秒鐘和分鐘的高位只能計數(shù)到 5,低位可以計數(shù)到9,如59秒,59分,而小時最大計數(shù)到23。時、分、秒的計時結(jié)果 采用6個數(shù)碼管動態(tài)顯示。 2.1設(shè)計方案設(shè)計方案 基于可

23、編程邏輯器件 cpld/fpga 的芯片,使用硬件描述語言(vhdl)設(shè)計一 個數(shù)字電子鐘芯片5,并進(jìn)行計算機(jī)仿真和編程下載。要求該數(shù)字電子鐘芯片能夠?qū)崿F(xiàn) 如下功能: 1計數(shù)功能:完成 00 時 00 分 00 秒到 23 時 59 分 59 秒的計時功能。 2清零功能:到 23 時 59 分 59 秒時電路自動清零,并設(shè)有一個手動清零開關(guān), 通過它可以對電路實現(xiàn)隨時的手動的清零。 3定時功能:能夠隨意設(shè)定,精確到秒,由開關(guān)調(diào)節(jié)設(shè)定需要設(shè)定的時刻。 4動態(tài)顯示功能:能夠動態(tài)顯示電子中的時刻數(shù)。 2.2 設(shè)計思路設(shè)計思路 根據(jù)該數(shù)字電子鐘的功能要求,現(xiàn)劃分為以下 5 個模塊: 1秒計數(shù)模塊 2分

24、計數(shù)模塊 3時計數(shù)模塊 4顯示模塊 5頂層模塊 在計數(shù)模塊中,程序中的控制信號表示如下: clk 是脈沖控制輸入信號。 reset 是清零輸入信號,低電平有效。 基于 vhdl 語言的數(shù)字電子鐘實現(xiàn) 第10頁 共 26 頁 2.3 模塊設(shè)計模塊設(shè)計 秒計數(shù)模塊的功能是從 00 計數(shù)到 59,為六十進(jìn)制,所以可以由 1 個六進(jìn)制計數(shù)器 和 1 個十進(jìn)制計數(shù)器組成 1 個六十進(jìn)制的計數(shù)器。 六進(jìn)制計數(shù)器設(shè)計圖如圖 2.1 所示。 圖圖 2.1 六進(jìn)制計數(shù)器設(shè)計圖六進(jìn)制計數(shù)器設(shè)計圖 其中 reset 是六進(jìn)制計數(shù)器的清零輸入信號,低電平有效,clk 是脈沖控制輸 入信號。din2.0是秒計數(shù)模塊的十

25、位輸入信號,用來調(diào)整秒的十位的數(shù)值。 dout2.0是秒計數(shù)模塊的十位輸出信號。c 為秒計數(shù)器的進(jìn)位。 十進(jìn)制計數(shù)器設(shè)計圖如圖 2.2 所示。 圖圖 2.2 十進(jìn)制計數(shù)器設(shè)計圖十進(jìn)制計數(shù)器設(shè)計圖 其中 reset 是十進(jìn)制計數(shù)器的清零輸入信號,低電平有效,clk 是脈沖控制輸 入信號。din3.0是秒計數(shù)模塊的個位輸入信號,用來調(diào)整秒的個位的數(shù)值。 dout3.0是秒計數(shù)模塊的個位輸出信號。c 為秒計數(shù)器的個位的進(jìn)位。 秒計數(shù)模塊的原理圖如圖 2.3 所示。 圖圖 2.3 秒計數(shù)模塊原理圖秒計數(shù)模塊原理圖 基于 vhdl 語言的數(shù)字電子鐘實現(xiàn) 第11頁 共 26 頁 分計數(shù)模塊的功能同樣是從

26、00 計數(shù)到 59,所以分計數(shù)模塊的構(gòu)成和秒計數(shù)模塊的 構(gòu)成一樣。同樣由 1 個六進(jìn)制計數(shù)器和 1 個十進(jìn)制計數(shù)器組成。設(shè)計圖同秒計數(shù)模塊。 原理圖如圖 2.4 所示。其中需將秒的進(jìn)位輸出信號接到分計數(shù)模塊的個位的時鐘信號上。 圖圖 2.4 分計數(shù)模塊原理圖分計數(shù)模塊原理圖 時計數(shù)模塊的功能是從 00 計數(shù)到 23,為 24 進(jìn)制。所以該模塊只需 1 個 24 進(jìn)制計 數(shù)器構(gòu)成。 24 進(jìn)制計數(shù)器設(shè)計圖如圖 2.5 所示。其中需將分的進(jìn)位輸出信號接到時計數(shù)模塊 的時鐘信號上。 圖圖 2.5 24 進(jìn)制計數(shù)器設(shè)計圖進(jìn)制計數(shù)器設(shè)計圖 其中 reset 是 24 進(jìn)制計數(shù)器的清零輸入信號,低電平有效

27、,clk 是脈沖控制輸 入信號。din5.0是秒計數(shù)模塊的輸入信號,用來調(diào)整小時的數(shù)值。dout5.0是時 計數(shù)模塊的輸出信號。 時計數(shù)模塊原理圖如圖 2.6 所示。 基于 vhdl 語言的數(shù)字電子鐘實現(xiàn) 第12頁 共 26 頁 圖圖 2.6 時計數(shù)模塊原理圖時計數(shù)模塊原理圖 顯示模塊通過譯碼,將秒、分、時的高低位數(shù)字分別譯成led七段數(shù)碼管上對應(yīng) 的高低電平,然后輸出七段值。 7段數(shù)碼顯示器由7個顯示碼管組成,4個輸入信號d0,d1,d2,d3來表示0000到1111, 即 表示十六進(jìn)制中的0到f;同時它有7個輸出信號,分別用a,b,c,d,e,f,g來表示,決定可發(fā)光二 極管的狀態(tài)。圖2.

28、7表示的是七段數(shù)碼管的7個輸出信號a,b,c,d,e,f,g與可發(fā)光二極管的對 應(yīng)關(guān)系。 圖圖 2.7 七段數(shù)碼管輸入輸出示意圖七段數(shù)碼管輸入輸出示意圖 若該數(shù)碼管為共陽數(shù)碼管,當(dāng)某位為0時,表示這位所在的數(shù)碼管發(fā)光;如為1, 則表示不發(fā)光;共陰數(shù)碼管則正好相反。從7段數(shù)碼顯示器的原理可以知道,7段數(shù)碼 顯示器用4個輸入信號對應(yīng)16個輸出信號,并且一個輸入信號只能對應(yīng)一個唯一的輸出。 從這點出發(fā),很容易想到前面所學(xué)的譯碼器電路,事實上,7段數(shù)碼顯示器的顯示就是 調(diào)用了一個4-16線譯碼器。本設(shè)計采用的是共陽數(shù)碼管,共陽數(shù)碼管的真值表如圖2.8 所示。 基于 vhdl 語言的數(shù)字電子鐘實現(xiàn) 第1

29、3頁 共 26 頁 圖圖 2.8 七段共陽極數(shù)碼管真值表七段共陽極數(shù)碼管真值表 顯示模塊設(shè)計圖如圖 2.9 所示。 圖圖 2.9 顯示模塊設(shè)計圖顯示模塊設(shè)計圖 其中din3.0是數(shù)字電子鐘的時、分、秒的個位或者十位輸入信號,dout6.0 是顯示模塊的輸出信號。 顯示模塊原理圖如圖 2.10 所示。 圖圖 2.10 顯示模塊原理圖顯示模塊原理圖 各功能子模塊設(shè)計完成后,再設(shè)計頂層模塊,它主要是通過元件聲明和元件例化語句 對各子模塊進(jìn)行調(diào)用來完成的。 頂層模塊設(shè)計圖如圖2.11所示。 基于 vhdl 語言的數(shù)字電子鐘實現(xiàn) 第14頁 共 26 頁 圖圖 2.11 頂層模塊設(shè)計圖頂層模塊設(shè)計圖 其中

30、 reset 是頂層模塊的清零輸入信號,低電平有效,clk 是脈沖控制輸入信 號。dins6.0是頂層模塊的秒輸入信號,用來調(diào)整秒的數(shù)值。dinm6.0是頂層模塊 的分輸入信號,用來調(diào)整分的數(shù)值。dinh5.0是頂層模塊的時輸入信號,用來調(diào)整小 時的數(shù)值。輸出信號為時、分、秒的個位和十位的輸出,將此輸出分別接到 6 個七位 led 數(shù)碼管上便可顯示。 頂層模塊原理圖如圖 2.12 所示。 圖圖 2.12 頂層模塊原理圖頂層模塊原理圖 基于 vhdl 語言的數(shù)字電子鐘實現(xiàn) 第15頁 共 26 頁 3 數(shù)字電子鐘的仿真數(shù)字電子鐘的仿真 3.1 6 進(jìn)制計數(shù)器的仿真進(jìn)制計數(shù)器的仿真 將程序使用 ma

31、x+plus ii 進(jìn)行運行并仿真,得到 6 進(jìn)制計數(shù)器的計數(shù)狀態(tài)仿真圖如 圖 3.1 所示。 圖圖 3.1 6 進(jìn)制計數(shù)器計數(shù)狀態(tài)仿真圖進(jìn)制計數(shù)器計數(shù)狀態(tài)仿真圖 當(dāng)輸入信號 reset 為 1 時,在時鐘信號的上升沿來臨時,計數(shù)器加 1,加到 5 時, 在下一個時鐘信號的上升沿來臨時,計數(shù)器清零,進(jìn)位信號變?yōu)楦唠娖剑绱朔磸?fù)。 當(dāng)輸入信號 reset 為 0,且 din 為 0 時,得到 6 進(jìn)制計數(shù)器的清零狀態(tài),如圖 3.2 所 示。 圖圖 3.2 6 進(jìn)制計數(shù)器清零狀態(tài)仿真圖進(jìn)制計數(shù)器清零狀態(tài)仿真圖 當(dāng)輸入信號 reset 為 0,且 din 不為 0 時,得到 6 進(jìn)制計數(shù)器的置數(shù)狀態(tài)

32、,即將 din 的值賦給 dout,如圖 3.3 所示。 圖圖 3.3 6 進(jìn)制計數(shù)器置數(shù)狀態(tài)仿真圖進(jìn)制計數(shù)器置數(shù)狀態(tài)仿真圖 基于 vhdl 語言的數(shù)字電子鐘實現(xiàn) 第16頁 共 26 頁 3.2 10 進(jìn)制計數(shù)器的仿真進(jìn)制計數(shù)器的仿真 將程序使用 max+plus ii 進(jìn)行運行并仿真,得到 10 進(jìn)制計數(shù)器計數(shù)狀態(tài)仿真圖如 圖 3.4 所示。 圖圖 3.4 10 進(jìn)制計數(shù)器計數(shù)狀態(tài)仿真圖進(jìn)制計數(shù)器計數(shù)狀態(tài)仿真圖 當(dāng)輸入信號 reset 為 1 時,在時鐘信號的上升沿來臨時,計數(shù)器加 1,加到 9 時, 在下一個時鐘信號的上升沿來臨時,計數(shù)器清零,進(jìn)位信號變?yōu)楦唠娖?,如此反?fù)。 當(dāng)輸入信號 r

33、eset 為 0,且 din 為 0 時,得到 10 進(jìn)制計數(shù)器的清零狀態(tài),如圖 3.5 所示。 圖圖 3.5 10 進(jìn)制計數(shù)器清零狀態(tài)仿真圖進(jìn)制計數(shù)器清零狀態(tài)仿真圖 當(dāng)輸入信號 reset 為 0,且 din 不為 0 時,得到 10 進(jìn)制計數(shù)器的置數(shù)狀態(tài),即將 din 的值賦給 dout,如圖 3.6 所示。 圖圖 3.6 10 進(jìn)制計數(shù)器置數(shù)狀態(tài)仿真圖進(jìn)制計數(shù)器置數(shù)狀態(tài)仿真圖 3.3 24 進(jìn)制計數(shù)器的仿真進(jìn)制計數(shù)器的仿真 將程序使用 max+plus ii 進(jìn)行運行并仿真,得到 24 進(jìn)制計數(shù)狀態(tài)的仿真圖如圖 3.7 基于 vhdl 語言的數(shù)字電子鐘實現(xiàn) 第17頁 共 26 頁 所示。

34、 圖圖 3.7 24 進(jìn)制計數(shù)狀態(tài)仿真圖進(jìn)制計數(shù)狀態(tài)仿真圖 當(dāng)輸入信號 reset 為 1 時,在時鐘信號的上升沿來臨時,計數(shù)器加 1,加到 23 時, 在下一個時鐘信號的上升沿來臨時,計數(shù)器清零,如此反復(fù)。 當(dāng)輸入信號 reset 為 0,且 din 為 0 時,得到 24 進(jìn)制計數(shù)器的清零狀態(tài),如圖 3.8 所示。 圖圖 3.8 24 進(jìn)制清零狀態(tài)仿真圖進(jìn)制清零狀態(tài)仿真圖 當(dāng)輸入信號 reset 為 0,且 din 不為 0 時,得到 24 進(jìn)制計數(shù)器的置數(shù)狀態(tài),即將 din 的值賦給 dout,如圖 3.9 所示。 圖圖 3.9 24 進(jìn)制置數(shù)狀態(tài)仿真圖進(jìn)制置數(shù)狀態(tài)仿真圖 3.4 顯示模

35、塊的仿真顯示模塊的仿真 將程序使用 max+plus ii 進(jìn)行運行并仿真,得到顯示模塊仿真圖如圖 3.10 所示。 圖圖 3.10 顯示模塊仿真圖顯示模塊仿真圖 基于 vhdl 語言的數(shù)字電子鐘實現(xiàn) 第18頁 共 26 頁 此模塊是將 4 為二進(jìn)制輸入信號轉(zhuǎn)化成對應(yīng)的七段數(shù)碼管的 7 位二進(jìn)制輸出信號。 3.5 頂層模塊的仿真頂層模塊的仿真 將程序使用 max+plus ii 進(jìn)行運行并仿真,得到頂層模塊仿真圖如圖 3.11 所示。 圖圖 3.11 頂層模塊仿真圖頂層模塊仿真圖 此模塊是通過元件聲明和元件例化語句對各子模塊進(jìn)行調(diào)用,同時將時、分、秒 的個位和十位都轉(zhuǎn)換成 4 位二進(jìn)制數(shù),然后

36、將這六組數(shù)據(jù)傳給顯示模塊。頂層模塊的 輸出的數(shù)據(jù)是七段數(shù)碼管的 7 位二進(jìn)制輸出信號。 基于 vhdl 語言的數(shù)字電子鐘實現(xiàn) 第19頁 共 26 頁 4 小小 結(jié)結(jié) 本課題要求基于可編程邏輯器件,使用硬件描述語言 vhdl 編寫一個數(shù)字電子鐘 芯片,并用 max+plus ii 軟件進(jìn)行仿真。根據(jù)自己對數(shù)字電子鐘的理解我設(shè)計了四大功 能:一是計數(shù)功能,二是清零功能,三是定時功能,四是動態(tài)顯示功能。由此必需設(shè) 計出五個大的模塊:一是秒計數(shù)模塊,此模塊是由 1 個 6 進(jìn)制計數(shù)器和 1 個 10 進(jìn)制計 數(shù)器組成 1 個 60 進(jìn)制計數(shù)器;二是分計數(shù)模塊,此模塊也是是由 1 個 6 進(jìn)制計數(shù)器和

37、1 個 10 進(jìn)制計數(shù)器組成 1 個 60 進(jìn)制計數(shù)器;三是時計數(shù)模塊,此模塊由 1 個 24 進(jìn)制 計數(shù)器構(gòu)成;四是顯示模塊,主要功能是把輸入的 4 位二進(jìn)制信號轉(zhuǎn)換為對應(yīng)的七段 數(shù)碼管的 7 位二進(jìn)制信號。五是頂層模塊,此模塊是通過元件聲明和元件例化語句對 各子模塊進(jìn)行調(diào)用,將其余模塊整合成一塊芯片,避免的繁雜的連線。在設(shè)計剛開始, 我對 max+plus ii 很陌生,所以我花了不少時間來熟悉該軟件的使用方法。我一度比別 的同學(xué)落下不少,所以回到宿舍后我仔細(xì)研究了該軟件的使用,繪圖方法,連接快捷 鍵。這樣軟件的使用就不是大問題了,也使得我能夠在最后的幾個功能上趕上來,很 好的完成數(shù)字電子

38、鐘的設(shè)計。對于一些提高的要求,我們也可以通過學(xué)過的數(shù)電知識 進(jìn)行分析設(shè)計,所以整個實驗過程不但是對我們所學(xué)數(shù)電知識的一個回顧,更是對數(shù) 電知識的應(yīng)用。 通過本學(xué)期課程設(shè)計的學(xué)習(xí),我從中學(xué)習(xí)到了很多東西,對可編程邏輯器件, vhdl 語言,max+plus ii 軟件有了一定的了解,尤其是用 vhdl 語言編程和仿真。在 本次設(shè)計中最大的收獲是在不斷地發(fā)現(xiàn)問題,分析問題,解決問題的過程中培養(yǎng)了自 己的科研能力,為今后的學(xué)習(xí)工作做了一個良好的鋪墊。eda 軟件的應(yīng)用簡化了像通 信電路實習(xí)那樣插線的繁瑣,使我們的時間多花在實驗的原理上,基本的東西由軟件 來完成,這樣的實驗不但可以少花時間,也使得我們

39、了解了現(xiàn)在做一些數(shù)字系統(tǒng)的基 本流程。受益匪淺。 基于 vhdl 語言的數(shù)字電子鐘實現(xiàn) 第20頁 共 26 頁 參考文獻(xiàn)參考文獻(xiàn) 1王道憲vhdl 電路設(shè)計技術(shù)m北京:國防工業(yè)出版社 2004.1 2劉瑞vhdl 語言與 fpga 設(shè)計m北京:機(jī)械工業(yè)出版社 2004.4 3王振紅vhdl 數(shù)字電路設(shè)計與應(yīng)用實踐教程m 北京:機(jī)械工業(yè)出版社 2004 4潘松,王國棟vhdl 實用教程m 西安:電子科技大學(xué)出版社 2000.3 5王毓銀數(shù)字電路邏輯設(shè)計m北京:高等教育出版社,1999.9 6王道憲,賀名臣,劉偉vhdl 電路設(shè)計技術(shù)m北京:國防工業(yè)出版社, 2004.1 基于 vhdl 語言的數(shù)

40、字電子鐘實現(xiàn) 第21頁 共 26 頁 附錄:設(shè)計源程序清單 / 程序名稱:基于 vhdl 語言的數(shù)字電子鐘實現(xiàn) / 程序作者: / 最后修改日期:2010-12-29 六進(jìn)制計數(shù)器的程序 library ieee; -庫說明 use ieee.std_logic_1164.all; -調(diào)用庫文件 use ieee.std_logic_arith.all; use ieee.std_logic_unsigned.all; entity counter6 is port(clk:in std_logic; reset:in std_logic; din:in std_logic_vector(2

41、downto 0); dout:out std_logic_vector(2 downto 0); c:out std_logic); end counter6; architecture behavioral of counter6 is signal count:std_logic_vector(2 downto 0); begin dout=count; process(clk, reset,din) begin if reset=0then count=din; c=0; elsif rising_edge(clk) then if count=101 then count=000;

42、c=1; else 基于 vhdl 語言的數(shù)字電子鐘實現(xiàn) 第22頁 共 26 頁 count=count+1; c=0; end if; end if; end process; end behavioral; 十進(jìn)制計數(shù)器的程序 library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_arith.all; use ieee.std_logic_unsigned.all; entity counter10 is port(clk:in std_logic; reset:in std_logic; din:in std_logi

43、c_vector(3 downto 0); dout:out std_logic_vector(3 downto 0); c:out std_logic) ; end counter10; architecture behavioral of counter10 is signal count:std_logic_vector(3 downto 0); begin dout=count; process(clk,reset,din) begin if reset=0 then count=din; c=0; elsif rising_edge(clk) then if count=1001 t

44、hen count=0000; 基于 vhdl 語言的數(shù)字電子鐘實現(xiàn) 第23頁 共 26 頁 c=1; else count=count+1; c=0; end if; end if; end process; end behavioral; 24進(jìn)制計數(shù)器的程序 library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_arith.all; use ieee.std_logic_unsigned.all; entity counter24 is port(clk:in std_logic; reset:in std_logic

45、; din:in std_logic_vector(5 downto 0); dout:out std_logic_vector(5 downto 0); end counter24; architecture behavioral of counter24 is signal count:std_logic_vector(5 downto 0); begin dout=count; process(clk,reset,din) begin if reset=0 then count=din; elsif rising_edge(clk) then if (count(3 downto 0)=

46、3 and count(5 downto 4)=2) or count(3 downto 0)=9 then count(3 downto 0)=0000; 基于 vhdl 語言的數(shù)字電子鐘實現(xiàn) 第24頁 共 26 頁 if count(5 downto 4)=2 then count(5 downto 4)=00; else count(5 downto 4)= count(5 downto 4)+1; end if; else count(3 downto 0) dout dout dout dout dout dout dout dout dout dout dout = 1111111

47、; end case; end process; end behavioral; 頂層模塊的程序 library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_arith.all; use ieee.std_logic_unsigned.all; entity clock is port(clk,reset:in std_logic; dins:in std_logic_vector(6 downto 0); dinm:in std_logic_vector(6 downto 0); dinh:in std_logic_vector

48、(5 downto 0); secondl:out std_logic_vector(6 downto 0); secondh:out std_logic_vector(6 downto 0); minutel:out std_logic_vector(6 downto 0); minuteh:out std_logic_vector(6 downto 0); hourl:out std_logic_vector(6 downto 0); hourh:out std_logic_vector(6 downto 0); end clock; architecture behavioral of clock is component counter10 is port(clk:in std_logic; reset:in std_logic; din:

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論