基于verilog HDL 數(shù)字計(jì)時(shí)器設(shè)計(jì)_第1頁
基于verilog HDL 數(shù)字計(jì)時(shí)器設(shè)計(jì)_第2頁
基于verilog HDL 數(shù)字計(jì)時(shí)器設(shè)計(jì)_第3頁
基于verilog HDL 數(shù)字計(jì)時(shí)器設(shè)計(jì)_第4頁
基于verilog HDL 數(shù)字計(jì)時(shí)器設(shè)計(jì)_第5頁
已閱讀5頁,還剩22頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、EDA設(shè)計(jì)基礎(chǔ)實(shí)驗(yàn)課程論文EDA設(shè)計(jì)基礎(chǔ)實(shí)驗(yàn)課程論文題 目 基于verilog HDL 的數(shù)字計(jì)時(shí)器的設(shè)計(jì) 學(xué) 院 通信與電子工程學(xué)院 專業(yè)班級 電子081班 學(xué)生姓名 大彬哥 指導(dǎo)教師 大力會 2013 年 6月 12 日VI摘 要當(dāng)前電子系統(tǒng)的設(shè)計(jì)正朝著速度快,容量大,體積小,質(zhì)量輕,用電省的方向發(fā)展。推動該潮流迅速發(fā)展的決定性因素就是使用了現(xiàn)代化的 EDA 設(shè)計(jì)工具。本論文先確定了系統(tǒng)的邏輯功能,建立算法流程,選擇電路結(jié)構(gòu),然后確定并設(shè)計(jì)電路所需的數(shù)據(jù)處理以及控制模塊,在 Quartus II 上以verilog HDL為系統(tǒng)邏輯描述方法完成了數(shù)字計(jì)時(shí)器所需的按鍵輸入消抖模塊,控制模塊,

2、分頻模塊,計(jì)數(shù)模塊,存儲器模塊,顯示譯碼模塊的設(shè)計(jì)與頂層設(shè)計(jì)和引腳分配,并討論了 FPGA 設(shè)計(jì)中的常見的毛刺及其消除方法以及系統(tǒng)資源優(yōu)化,利用計(jì)算機(jī)的強(qiáng)大運(yùn)算能力在 Quartus II 上對用 VHDL 建模的復(fù)雜數(shù)字邏輯進(jìn)行編譯,自動綜合地完成邏輯編譯、邏輯化簡、邏輯分割、邏輯綜合及優(yōu)化、邏輯行局布線、邏輯仿真,生成符合要求且在電路結(jié)構(gòu)上可以實(shí)現(xiàn)的數(shù)字邏輯網(wǎng)表(Netlist),根據(jù)網(wǎng)表和某種工藝的器件自動生成具體電路,然后生成該工藝條件下這種具體電路的延時(shí)模型,并下載到 FPGA板上實(shí)際驗(yàn)證,通過本設(shè)計(jì)對數(shù)字系統(tǒng)自動化的基本概念、基本原理、特性及實(shí)現(xiàn)方法都有了較好的了解和理解,同時(shí)鍛煉

3、了計(jì)算機(jī)應(yīng)用能力和 verilog HDL 語言的編程能力和 Quartus II 以及 MaxplusII 的使用能力,本設(shè)計(jì)圓滿完成了用 verilog HDL 語言設(shè)計(jì) 1/10秒數(shù)字計(jì)時(shí)器并仿真和實(shí)際下載到 ALTERA 公司的 Cyclone II 系列的 EP2C8Q208C 中實(shí)現(xiàn)。關(guān)鍵詞:電子設(shè)計(jì)自動化,現(xiàn)場可編程門陣列/復(fù)雜可編程邏輯器件,硬件描述語言,數(shù)字系統(tǒng)設(shè)計(jì)。AbstractThe current design of electronic systems is developing to fast speed, large capacity, small size,

4、light weight, Low power consumption. What decisively promote the rapid development of this trend is the use of modern EDA design tools. In this thesis, we firstly determine the system's logic functions, build the algorithm of system, and select the circuit, then Identify and design the data proc

5、essing and control module circuit requires. Complete the key input debounce module, controlmodule, frequency modules, counter modules, memory modules, display decoding module digital timer requires with verilog HDL in Quartus II, and finish the design of top-level entity and Pin assignment. Discuss

6、the reason of glitch and the elimination of glitch in FPGA.Automatically complete compile logic, logic simplification, logic partitioning, logic synthesis and logic optimization, logic board wiring, logic simulation, generate the digital logic netlist which meets the requirements and can be implemen

7、ted on the circuit, automatically generate a specific circuit according to the netlist and the device. and then build this specific delay model circuit under these conditions,then download to the FPGA board and actually verify the design. Through this design, we have better knowledge and understandi

8、ng for EDA's basic concepts, basic principles, characteristics and methods, also improve the ability of using computer and Quartus II and Maxplus II and Verilog HDL programming ability. The design of digital timer based on Verilog HDL is completed successfully and has been simulated and download

9、ed to ALTERA's EP2C8Q208C and works Successfully.Key Words:EDA, FPGA/CPLD, verilog HDL, Digital System Design.I目錄摘 要I第一章 引 言11.1 EDA 現(xiàn)狀11.2 硬件描述語言21.3 設(shè)計(jì)指標(biāo)4第 2 章 EDA設(shè)計(jì)方法及其應(yīng)用52.1 分析方法52.2 描述方法72.3 實(shí)現(xiàn)方法8第 3 章 設(shè)計(jì)思想與方案論證93.1 設(shè)計(jì)思想93.2 論證分析9第 4 章 系統(tǒng)設(shè)計(jì)114.1 頂層電路設(shè)計(jì)114.2 數(shù)字秒表的設(shè)計(jì)原理114.3 鍵輸入消抖模塊124.4 時(shí)鐘分頻電

10、路模塊134.5 控制電路模塊134.6 計(jì)時(shí)電路模塊144.7 模式選擇模塊154.8 存儲器模塊164.9 動態(tài)掃描譯碼顯示模塊16第5章 程序設(shè)計(jì)18第 6 章 仿真下載實(shí)現(xiàn)21參考文獻(xiàn)22第一章 引 言隨著人們生活水平的日益提高,社會體系的日益完善,人們對于各種應(yīng)用器材的要求也越來越高.秒表作為日常生活中,特別是體育運(yùn)動中應(yīng)用的特別廣泛,所以精確且方便使用的秒表就被越來越多的人所選擇.本秒表計(jì)時(shí)器用于體育競賽及各種要求有較精確時(shí)的各領(lǐng)域,以往常利用中小規(guī)模集成電路實(shí)現(xiàn),但一般體積大,使用攜帶不方便。利用 VHDL在 FPGA 或 CPLD 上實(shí)現(xiàn) 1/10 秒計(jì)時(shí)控制器,能充分發(fā)揮 V

11、HDL 與可編程器件靈活、高效,集成度高的特點(diǎn),基于 VHDL 實(shí)現(xiàn) 1/10 秒計(jì)時(shí)控制器具有重要的實(shí)際意義此計(jì)時(shí)器是用一塊專用的芯片,用 VHDL 語言描述的。它具有開關(guān)、時(shí)鐘和顯示功能,其體積小,攜帶方便。1.1 EDA 現(xiàn)狀當(dāng)前電子系統(tǒng)的設(shè)計(jì)正朝著速度快,容量大,體積小,質(zhì)量輕,用電省的方向發(fā)展。推動該潮流迅速發(fā)展的決定性因素就是使用了現(xiàn)代化的 EDA 設(shè)計(jì)工具。EDA 是電子設(shè)計(jì)自動化(Electronic Design Automation)的縮寫,是 90 年代初,從 CAD(計(jì)算機(jī)輔助沒計(jì))、CAM(算機(jī)輔助制造)、CAT(計(jì)算機(jī)輔助測試)和 CAE(計(jì)算機(jī)輔助工程)的概念發(fā)展

12、而來的。EDA 技術(shù)就是以計(jì)算機(jī)為工具,在 EDA 軟件平臺上,對以硬件描述語言 HDL 為統(tǒng)邏描述手段完成的設(shè)計(jì)文件自動地完成邏輯編譯、邏輯化簡、邏輯分割、邏輯綜合及優(yōu)化、邏輯行局布線、邏輯仿真,直至對于特定目標(biāo)芯片的適配編譯、邏輯映射和編程下載等工作。設(shè)計(jì)者的工作僅限于利用軟件的方式,即利用硬件描述語言來完成對系統(tǒng)硬件功能的描述,在 EDA 工具的幫助下就可以得到最后的設(shè)計(jì)結(jié)果。盡管目標(biāo)系統(tǒng)是硬件,但整個(gè)設(shè)計(jì)和修改過程如同完成軟件設(shè)計(jì)一樣方便和高效。EDA 技術(shù)中最為矚目的功能,即最具現(xiàn)代電子設(shè)計(jì)技術(shù)特征的功能就是日益強(qiáng)大的邏輯設(shè)計(jì)仿真測試技術(shù)。EDA 仿真測試技術(shù)只需通過計(jì)算機(jī)就能對所設(shè)

13、計(jì)的電子系統(tǒng)從各種不同層次的系統(tǒng)性能特點(diǎn)完成一系列準(zhǔn)確的測試與仿真操作,在完成實(shí)際系統(tǒng)的安裝后還能對系統(tǒng)上的目標(biāo)器件進(jìn)行所謂邊界掃錨測試。這一切都極大地提高了大規(guī)模系統(tǒng)電子設(shè)計(jì)的自動化程度。另一方面,高速發(fā)展的 CPLD/FPGA 器件又為 EDA 技術(shù)的不斷進(jìn)步奠定可堅(jiān)實(shí)的物質(zhì)基礎(chǔ)。CPLD/FPGA 器件更廣泛的應(yīng)用及廠商間的競爭,使得普通的設(shè)計(jì)人員獲得廉價(jià)的器件和 EDA 軟件成為可能?,F(xiàn)代的 EDA 工具軟件已突破了早期僅能進(jìn)行 PCB 版圖設(shè)計(jì),或類似某些僅限于電路功能模擬的、純軟件范圍的局限,以最終實(shí)現(xiàn)可靠的硬件系統(tǒng)為目標(biāo),配備了系統(tǒng)設(shè)計(jì)自動化的全部工具。如配置了各種常用的硬件描敘

14、平臺 VHDL、Verilog HDL、ABEL HDL 等;配置了多種能兼用和混合使用的邏輯描述輸入工具,如硬件描述語言文本輸入法(其中包括布爾方程描述方式、原理圖描述方式、狀態(tài)圖描述方式等)以及原理圖輸入法、波形輸入法等;同時(shí)還配置了高性能的邏輯綜合、優(yōu)化和仿真模擬工具。1.2 硬件描述語言硬件描述語言(Hardware Description Language )是硬件設(shè)計(jì)人員和電子設(shè)計(jì)自動化(EDA)工具之間的界面。其主要目的是用來編寫設(shè)計(jì)文件,建立電子系統(tǒng)行為級的仿真模型。即利用計(jì)算機(jī)的巨大能力對用verilog HDL 或 VHDL 建模的復(fù)雜數(shù)字邏輯進(jìn)行仿真,然后再自動綜合以生成

15、符合要求且在電路結(jié)構(gòu)上可以實(shí)現(xiàn)的數(shù)字邏輯網(wǎng)表(Netlist),根據(jù)網(wǎng)表和某種工藝的器件自動生成具體電路, 然后生成該工藝條件下這種具體電路的延時(shí)模型。仿真驗(yàn)證無誤后,用于制造 ASIC 芯片或?qū)懭?CPLD 和 FPGA 器件中。隨著 PC 平臺上的 EDA 工具的發(fā)展,PC 平臺上的 Verilog HDL 和 VHDL 仿真綜合性能已相當(dāng)優(yōu)越,這就為大規(guī)模普及這種新技術(shù)鋪平了道路。目前國內(nèi)只有少數(shù)重點(diǎn)設(shè)計(jì)單位和高校有一些工作站平臺上的 EDA 工具,而且大多數(shù)只是做一些線路圖和版圖級的仿真與設(shè)計(jì),只有個(gè)別單位展開了利用 Verilog HDL 和 VHDL 模型(包括可綜合和不可綜合)的

16、進(jìn)行復(fù)雜的數(shù)字邏輯系統(tǒng)的設(shè)計(jì)。隨著電子系統(tǒng)向集成化、大規(guī)模、高速度的方向發(fā)展,HDL 語言將成為電子系統(tǒng)硬件設(shè)計(jì)人員必須掌握的語言。1.2.1 Verilog HDL 語言Verilog HDL 是在 1983 年,由 GDA(Gate Way Design Automatio)公司的 Phil Moorby首創(chuàng)的。Phil Moorby 后來成為 VerilogXL 的主要設(shè)計(jì)者和(cadence Design System)的第一個(gè)合伙人。在 1984-1985 年 Moorby 設(shè)計(jì)出第一個(gè)關(guān)于 VerilogXL 的仿真器,1986年他對 Verilog HDL 的發(fā)展又作出另一個(gè)巨大

17、貢獻(xiàn),提出了用于快速門級仿真的 XL 算法。隨著 VerilogXL 算法的成功,Verilog HDL 語言得到迅速發(fā)展。1989 年cadence 公司收購了 GDA 公司,Verilog HDL 語言成為 Cadence 公司的私有財(cái)產(chǎn),1990 年,Cadence 公司公開了 Verilog HDL 語言,成立了 OVI(Open Verilog International)組織來負(fù)責(zé) Verilog HDL 的發(fā)展。IEEE 于 1995 年制定了 Verilog HDL 的 IEEE 標(biāo)準(zhǔn),即 Verilog HDL 1364-1995。1987 年,IEEE 接受 VHDL(VH

18、SIC Hadeware Description Language)為標(biāo)準(zhǔn) HDL,即 IEEE1076-87 標(biāo)準(zhǔn),1993 年進(jìn)一步修訂,定為 ANSI/IEEE1076-93 標(biāo)準(zhǔn)?,F(xiàn)在很多 EDA 供應(yīng)商把 Verilog HDL 作為其 EDA 軟件輸入/輸出的標(biāo)準(zhǔn)。例如,Cadence、Synopsys、View logic、Mentor Graphic 等廠商都提供了 VHDL 的支持。1.2.2 VHDL 語言VHDL(Very High Speed Integrated Circuit Hard are Description Language,超高集成電路硬件描敘語言)誕生

19、于 1982 年,是由美國國防部開發(fā)的一種快速設(shè)計(jì)電路的工具,目前已經(jīng)成為 IEEE(The Institute of Electrical and Electronics)的一種工業(yè)標(biāo)準(zhǔn)硬件描敘語言。VHDL 主要用于描述數(shù)字系統(tǒng)的結(jié)構(gòu)、行為、功能和接口,非常適合用于可編程邏輯芯片的應(yīng)用設(shè)計(jì)。除了含有許多具有硬件特征的語句外,VHDL 的語言形式和描述風(fēng)格與句法十分類似于一般的計(jì)算機(jī)高級語言。VHDL 的程序特點(diǎn)是將一項(xiàng)工程設(shè)計(jì),或稱為設(shè)計(jì)實(shí)體(可以是個(gè)元件、電路模塊或一個(gè)系統(tǒng))分成外部(或稱可示部分,即端口)和內(nèi)部(或稱為不可視部分,即結(jié)構(gòu)體)兩部分,外部負(fù)責(zé)對設(shè)計(jì)實(shí)體和端口引腳命名和說明

20、,內(nèi)部負(fù)責(zé)對模塊功能和算法進(jìn)行描述。在對一個(gè)設(shè)計(jì)實(shí)體定義了外部界面后,一旦其內(nèi)部結(jié)構(gòu)、功能開發(fā)完成,即可生成共享功能模塊,這就意味著,在頂層綜合或其他設(shè)計(jì)中可以直接調(diào)用這個(gè)實(shí)體模塊。VHDL 具有較強(qiáng)的行為描述能力,可避開具體的器件結(jié)構(gòu),從邏輯功能和行為上進(jìn)行描述和設(shè)計(jì)。1.2.3 Verilog HDL 與 VHDL 的比較Verilog HDL 和 VHDL 作為描述硬件電路設(shè)計(jì)的語言,其共同的特點(diǎn)在于:能形式化地抽象表示電路的行為和結(jié)構(gòu);支持邏輯設(shè)計(jì)中層次與范圍的描述;可借用高級語言的精巧結(jié)構(gòu)來簡化電路行為的描述;具有電路仿真與驗(yàn)證機(jī)制以保證設(shè)計(jì)的正確性;支持電路描述由高層到低層的綜合轉(zhuǎn)

21、換;硬件描述與實(shí)現(xiàn)工藝無關(guān);便于文檔管理;易于理解和設(shè)計(jì)重用。目前版本的 Verilog HDL 與 VHDL 在行為級抽象建模的覆蓋范圍方面也有所不同。一般認(rèn)為 Verilog HDL 在系統(tǒng)抽象方面比 VHDL 強(qiáng)一些。Verilog HDL 較為適合算法級(Alogrithem)、寄存器傳輸級(RTL)、邏輯級(Logic)、門級(Gate)、設(shè)計(jì)。而 VHDL更為適合特大型的系統(tǒng)級(System)設(shè)計(jì)。1.2.4 Verilog HDL 和 Quartus II 在設(shè)計(jì)數(shù)字電路中的應(yīng)用以 Verilog HDL 為工具的 EDA 設(shè)計(jì)方法與傳統(tǒng)的人工設(shè)計(jì)方法相比,有以下幾個(gè)優(yōu)點(diǎn):1、縮

22、短了開發(fā)周期;2、提高了效率;3、產(chǎn)品的質(zhì)量得到了提高。使用 Quartus II 作為開發(fā)環(huán)境時(shí)應(yīng)該根據(jù)軟件支持的芯片資源情況選擇合適的設(shè)計(jì)層次。1.2.5 用 EDA 方法設(shè)計(jì)數(shù)字系統(tǒng)的靈活性用 EDA 方法設(shè)計(jì)數(shù)字系統(tǒng),就是以硬件描述語言為系統(tǒng)邏輯描述的主要手段完成計(jì)數(shù)器設(shè)計(jì)文件,再運(yùn)用 EDA 開發(fā)軟件,對設(shè)計(jì)文件自動地完成邏輯編譯、化間、分割、綜合及優(yōu)化邏輯仿真。直到對特定目標(biāo)芯片的適配編譯、邏輯映射和編程下載。在本文中是以 EDA 技術(shù)中的 ISP 軟件為開發(fā)平臺,來說明 EDA 方法設(shè)計(jì)數(shù)字系統(tǒng)的靈活性。1、設(shè)計(jì)輸入方式的靈活性,使用 EDA 方法設(shè)計(jì)數(shù)字系統(tǒng)可以按照設(shè)計(jì)要求和硬

23、件描述語言的語法規(guī)則編寫輸入文件,而把其余的大部分工作留給計(jì)算機(jī)完成,真正體現(xiàn)了 EDA 方法的優(yōu)點(diǎn)。尤其是設(shè)計(jì)復(fù)雜的數(shù)字系統(tǒng)或者需要改動系統(tǒng)功能時(shí),設(shè)計(jì)效率可成倍提高,EDA 方法的優(yōu)越性就會更加突出;2、功能仿真的靈活性,用 EDA 方法設(shè)計(jì)數(shù)字系統(tǒng)是同一個(gè)測試向量可以對任何一種設(shè)計(jì)輸入方式產(chǎn)生的源文件進(jìn)行仿真,而不許要單獨(dú)編寫測試文件;3、功能擴(kuò)展的靈活性,在數(shù)字系統(tǒng)設(shè)計(jì)輸入過程中,用 EDA 方法實(shí)現(xiàn)了硬件設(shè)計(jì)軟件化,所以改動源文件的內(nèi)容即可改變系統(tǒng)功能,使其擴(kuò)展為復(fù)雜度更高的數(shù)字系統(tǒng)。1.3 設(shè)計(jì)指標(biāo)(1)計(jì)時(shí)器能顯示 1/10s 的時(shí)間,故提供給計(jì)時(shí)器內(nèi)部定時(shí)的時(shí)鐘脈沖頻率應(yīng)大于1

24、0Hz。(2)計(jì)時(shí)器計(jì)時(shí)長度為 99.9 秒,在一般計(jì)時(shí)應(yīng)用中足夠了,設(shè)計(jì)一個(gè)4位LED數(shù)碼顯示“秒表”,顯示時(shí)間為99.900.0秒,每秒自動減一,精度為0.1。(3)設(shè)置復(fù)位和啟/停開關(guān),復(fù)位開關(guān)用來使計(jì)時(shí)器清 0,并作好清 0 準(zhǔn)備。啟/停開關(guān)的使用方法與傳統(tǒng)的機(jī)械計(jì)時(shí)器相同,即按一下啟/停開關(guān),啟動計(jì)時(shí)器開始計(jì)時(shí),數(shù)碼管顯示從99.9開始每秒自動減一,再按一下啟/停開關(guān)計(jì)時(shí)暫停。復(fù)位開關(guān)可以在任何情況下使用,在計(jì)時(shí)過程中,只要按一下復(fù)位開關(guān),計(jì)時(shí)進(jìn)程就終止,并對計(jì)時(shí)器清零。第 2 章 EDA設(shè)計(jì)方法及其應(yīng)用傳統(tǒng)的電路設(shè)計(jì)方法都是自底向上進(jìn)行設(shè)計(jì)的,也就是首先確定可用的元器件,然后根據(jù)這

25、些器件進(jìn)行邏輯設(shè)計(jì),完成個(gè)模塊后進(jìn)行連接,最后形成系統(tǒng)。而基于 EDA 技術(shù)的設(shè)計(jì)方法則是自頂向下進(jìn)行設(shè)計(jì)的,也就是首先采用可完全獨(dú)立于目標(biāo)器件芯片物理結(jié)構(gòu)的硬件描述語言,在系統(tǒng)的基本功能或行為級上對設(shè)計(jì)的產(chǎn)品進(jìn)行描述和定義,結(jié)合多層次的仿真技術(shù),在確保設(shè)計(jì)的可行性于正確的前提下,完成功能確認(rèn)。然后利用 EDA 工具的邏輯綜合功能,進(jìn)行邏輯映射及布局布線,在利用產(chǎn)生的仿真文件進(jìn)行包括功能和時(shí)序的驗(yàn)證,以確保實(shí)際系統(tǒng)的性能。2.1 分析方法在基于EDA技術(shù)的系統(tǒng)設(shè)計(jì)最重要的環(huán)節(jié)在系統(tǒng)的基本功能或行為級上對設(shè)計(jì)的產(chǎn)品進(jìn)行描述和定義時(shí),我們是采用自頂向下分析,自底向上設(shè)計(jì)。所謂“自頂向下分析”就是指

26、將數(shù)字系統(tǒng)的整體分解為各個(gè)系統(tǒng)和模塊,若子系統(tǒng)規(guī)模較大,則還需將子系統(tǒng)進(jìn)一步分解為更小的子系統(tǒng)和模塊,層層分解,直至整個(gè)系統(tǒng)中各個(gè)子系統(tǒng)關(guān)系合理、并便于邏輯電路級的設(shè)計(jì)和實(shí)現(xiàn)為止。圖 2.1 是一個(gè)自頂向下設(shè)計(jì)的結(jié)構(gòu)分解圖。所謂“自底向上設(shè)計(jì)”,就是在自頂向下分析建立各種設(shè)計(jì)模型的基礎(chǔ)上,先進(jìn)行低層模塊的設(shè)計(jì),完成低層模塊設(shè)計(jì)后再進(jìn)行高一層次的設(shè)計(jì),依次類推,直到完成頂層的設(shè)計(jì)為止。采用該方法進(jìn)行分析和設(shè)計(jì)時(shí),高層設(shè)計(jì)進(jìn)行功能和接口描述,說明模塊的功能和接口,模塊功能的更詳細(xì)的描述在下一層次說明,最底層的設(shè)計(jì)才涉及具體的寄存器和邏輯門電路等方式的描述。采用自頂向下的設(shè)計(jì)方法有如下優(yōu)點(diǎn):(1)自

27、頂向下設(shè)計(jì)方法是一種模塊化設(shè)計(jì)方法。對設(shè)計(jì)的描述從上到下逐步由粗略到詳細(xì),符合常規(guī)的邏輯思維習(xí)慣。(2)由于高層設(shè)計(jì)同器件無關(guān),可以完全獨(dú)立于目標(biāo)器件的結(jié)構(gòu),在設(shè)計(jì)的最初階段,設(shè)計(jì)人員可以不受芯片結(jié)構(gòu)的約束,集中精力對產(chǎn)品進(jìn)行最適應(yīng)市場需求的設(shè)計(jì),從而避免了傳統(tǒng)設(shè)計(jì)方法的再設(shè)計(jì)風(fēng)險(xiǎn),縮短了產(chǎn)品的上市周期。(3)由于系統(tǒng)采用硬件描述語言進(jìn)行設(shè)計(jì),可以完全對立于目標(biāo)器件的結(jié)構(gòu),因此設(shè)計(jì)易于在各種集成電路工藝或可編程器件之間移植。(4)適合多個(gè)設(shè)計(jì)同時(shí)進(jìn)行設(shè)計(jì)?,F(xiàn)在隨著技術(shù)的不斷進(jìn)步,許多設(shè)計(jì)由一個(gè)設(shè)計(jì)者已無法完成,必須經(jīng)過多個(gè)設(shè)計(jì)者分工協(xié)作完成一項(xiàng)設(shè)計(jì)的情況越來越多,在這種情況下,應(yīng)用自頂向下設(shè)計(jì)

28、方法便于由多個(gè)設(shè)計(jì)者同時(shí)進(jìn)行設(shè)計(jì),對設(shè)計(jì)任務(wù)進(jìn)行合理分配,用系統(tǒng)工程的方法對設(shè)計(jì)進(jìn)行管理。針對具體的設(shè)計(jì),實(shí)施自頂向下設(shè)計(jì)方法的形式會有所不同,但均需要遵循以下兩條原則:逐步分解功能,分層次進(jìn)行設(shè)計(jì)。在個(gè)設(shè)計(jì)層次上,考慮相應(yīng)的仿真驗(yàn)證問題。結(jié)構(gòu)分解行為建模完整數(shù)分支部分?jǐn)?shù)分支行為建模圖2.1 自頂而下結(jié)構(gòu)分解圖2.2 描述方法2.2.1 文本描述方法在 EDA 的設(shè)計(jì)中,最一般化、普遍性的設(shè)計(jì)表示方式就是文本描述方式,也就是利用硬件描述語言(HDL)用軟件編程方式來表達(dá)自己的設(shè)計(jì)。根據(jù)文本表示方式所使用的抽象層次,我們又可將文本描述方式分為:行為描述,結(jié)構(gòu)描述,數(shù)據(jù)流(寄存器傳輸級)描述。行為

29、描述就是設(shè)計(jì)一個(gè)部件是通過定義它的輸入/輸出響應(yīng)來描述,也就是說對一個(gè)部件的設(shè)計(jì),只描述了所希望電路的功能/行為,而沒有直接指明或涉及實(shí)現(xiàn)這些行為的硬件結(jié)構(gòu)。結(jié)構(gòu)描述就是設(shè)計(jì)一個(gè)部件是通過一些基本部件的互連來描述,也就是說對一個(gè)不見的設(shè)計(jì),是通過描述該設(shè)計(jì)部件的硬件結(jié)構(gòu)/硬件組成來表示的。數(shù)據(jù)流描述就是一個(gè)部件通過一些寄存器部件的互連并在寄存器之間插入組合邏輯來描述,這類積存器或者顯示地通過元件具體裝配,或者通過推論作隱含的描述。2.2.2 圖形描述方式在 EDA 的設(shè)計(jì)中,有時(shí)也用圖形描述方式來表示自己的設(shè)計(jì)。圖形描述方式常用的有原理圖、狀態(tài)圖、波形圖等。圖形表示方式的優(yōu)點(diǎn)是直觀、方便,但是

30、其存在以下缺點(diǎn):設(shè)計(jì)的可讀性差;(2)設(shè)計(jì)的復(fù)用性差;(3)設(shè)計(jì)的移植性差;(4)入檔、交流、交付不方便。2.2.3 文本、圖形混用方式在 EDA 的設(shè)計(jì)中,根據(jù)自己設(shè)計(jì)所使用的性能及如何使設(shè)計(jì)簡單易行,有時(shí)也經(jīng)常采用文本、圖形混用的形式。2.3 實(shí)現(xiàn)方法2.3.1 硬件描述語言編程實(shí)現(xiàn)法硬件描述語言編程實(shí)現(xiàn)法,就是用 VHDL、Verilog HDL 等硬件描述語言來表達(dá)自己的設(shè)計(jì)思想,并使用 EDA 工具提供的文本編輯器以文本的方式進(jìn)行設(shè)計(jì)輸入的一種實(shí)現(xiàn)方法。它是 EDA 的設(shè)計(jì)中最一般化、最具普遍性的實(shí)現(xiàn)方法,根據(jù)設(shè)計(jì)系統(tǒng)的實(shí)際情況,實(shí)際可從行為級、寄存器級、門電路級等不同層次進(jìn)行描述,

31、非常靈活,并且設(shè)計(jì)的移植性非常好。所有 EDA 工具都支持文本方式的編程和編譯。2.3.2 原理圖設(shè)計(jì)實(shí)現(xiàn)法原理圖設(shè)計(jì)實(shí)現(xiàn)法,就是利用原理圖表示自己的設(shè)計(jì)思想,并使用 EDA 工具提供的圖形編輯器以原理圖的方式進(jìn)行設(shè)計(jì)輸入的一種實(shí)現(xiàn)方法。原理圖輸入法的實(shí)現(xiàn)方式,簡單、直觀、方便,并且可利用許多現(xiàn)成的單元器件或根據(jù)需要設(shè)計(jì)的元器件。2.3.3 參數(shù)可設(shè)置兆功能塊實(shí)現(xiàn)法參數(shù)可設(shè)置兆功能塊實(shí)現(xiàn)法,就是設(shè)計(jì)者可以根據(jù)實(shí)際電路的設(shè)計(jì)需要,選擇 LPM(Library of Parameterized Moduels,參數(shù)可設(shè)置模塊庫,簡稱 LPM)庫中的適當(dāng)模塊,并為其設(shè)定適當(dāng)?shù)膮?shù)以滿足自己設(shè)計(jì)的需要

32、的一中實(shí)現(xiàn)方法。作為 EDIF 標(biāo)準(zhǔn)的一部分,LPM 形式得到了 EDA 工具的良好支持,LPM 中功能模塊的內(nèi)容豐富。在 EDA 的設(shè)計(jì)中,以圖形或硬件描述語言模塊形式調(diào)用兆功能塊進(jìn)行設(shè)計(jì),使得基于 EDA 技術(shù)的電子設(shè)計(jì)能夠有效地利用其他優(yōu)秀電子工程技術(shù)人員的硬件設(shè)計(jì)成果,使得設(shè)計(jì)效率和可靠性有了很大的提高。第 3 章 設(shè)計(jì)思想與方案論證實(shí)現(xiàn)數(shù)字秒表的方法有多種,可以用單片機(jī)作為控制芯片,采用單片機(jī),數(shù)字顯示采用共陽七段 LED 顯示器,P0 口輸出段碼數(shù)據(jù),P2.0-P2.5 口作為列掃描輸出,P1.0、P1.1、P1.3 口接三個(gè)開關(guān)按鈕,用以實(shí)現(xiàn)調(diào)時(shí)及秒表時(shí)鐘功能切換設(shè)置。也可以用

33、FPGA 作為控制芯片,采用 EDA 技術(shù)用 VHDL 語言實(shí)現(xiàn)硬件電路。當(dāng)然每一種方案都有其各自的優(yōu)點(diǎn)。本章說明了用 FPGA 作為控制芯片實(shí)現(xiàn)數(shù)字秒表的方案。3.1 設(shè)計(jì)思想基于 FPGA 的數(shù)字秒表的設(shè)計(jì)其設(shè)計(jì)思路為:采用Altera DE2上的50M時(shí)鐘信號,經(jīng)過分頻器產(chǎn)生秒表計(jì)時(shí)周期為0.01s的時(shí)鐘,再經(jīng)過計(jì)數(shù)器,分別對秒表的百分位、十分位、秒、秒十位、分、分十位進(jìn)行計(jì)數(shù)。On off為啟動/暫停控制信號,當(dāng)它為0時(shí),啟動計(jì)時(shí),當(dāng)它為1時(shí),計(jì)時(shí)暫停。clr為復(fù)位信號,當(dāng)該信號有效時(shí),計(jì)數(shù)器和譯碼清零,此時(shí)數(shù)碼管顯示輸出為00:00:00。在總體電路圖中,根據(jù)設(shè)計(jì)要求,需要兩個(gè)輸入控

34、制信號on off和clr。由于開發(fā)板上除了撥動開關(guān)就是瞬時(shí)的按鍵開關(guān),且按鍵開關(guān)平時(shí)都呈高電平,按一下為低電平。故在實(shí)際測試時(shí)采用了撥動開關(guān)SW0來控制秒表的啟動/暫停,通過KEY0來控制秒表的清零。設(shè)計(jì)要求(秒表的功能描述):(1)要求設(shè)置復(fù)位開關(guān)。當(dāng)按下復(fù)位開關(guān)時(shí),秒表清零并做好計(jì)時(shí)準(zhǔn)備。在任何情況下只要按下復(fù)位開關(guān),秒表都要無條件地進(jìn)行復(fù)位操作,即使是在計(jì)時(shí)過程中也要無條件地進(jìn)行清零操作。(2)要求設(shè)置啟/停開關(guān)。當(dāng)按下啟/停開關(guān)后,將啟動秒表并開始計(jì)時(shí),當(dāng)再按一下啟/停開關(guān)時(shí),將終止秒表的計(jì)時(shí)操作。(3)要求計(jì)時(shí)精確度大于 0.1 秒。要求設(shè)計(jì)的計(jì)時(shí)器能夠顯示秒(2位)、0.1 秒(

35、1位),的時(shí)間。(4)要求秒表的最長計(jì)時(shí)時(shí)間為秒表計(jì)時(shí)長度為 99.9 秒.3.2 論證分析課題要求選定 FPGA/CPLD 芯片作為系統(tǒng)的 MCU,F(xiàn)PGA 是英文 Field Programmable Gate Array 的縮寫,即現(xiàn)場可編程門陣列,它是在 PAL、GAL、EPLD 等可編程器件的基礎(chǔ)上進(jìn)一步發(fā)展的產(chǎn)物。它是作為專用集成電路(ASIC)領(lǐng)域中的一種半定制電路而出現(xiàn)的,既解決了定制電路的不足,又克服了原有可編程器件門電路數(shù)有限的缺點(diǎn)??稍谟鞋F(xiàn)成的條件下,F(xiàn)PGA 有其具大的優(yōu)勢比如它的高速性,讓我們更清楚地認(rèn)識到硬件的性能及硬件描述語言對硬件的驅(qū)動。FPGA 是 ASIC

36、電路中設(shè)計(jì)周期最短、開發(fā)費(fèi)用最低、風(fēng)險(xiǎn)最小的器件之一。本設(shè)計(jì)需要 PC 計(jì)算機(jī)一臺以及 FPGA 實(shí)驗(yàn)板一個(gè),這些條件都具備。第 4 章 系統(tǒng)設(shè)計(jì)整個(gè)系統(tǒng)設(shè)計(jì)是采用自頂向下分析,自底向上設(shè)計(jì)。將數(shù)字秒表系統(tǒng)的整體分解為各個(gè)模塊電路。本章詳細(xì)介紹了數(shù)字秒表系統(tǒng)的各個(gè)模塊的設(shè)計(jì),并對各個(gè)模塊的每一個(gè)部分進(jìn)行了分析,在第五章對系統(tǒng)模型進(jìn)行了訪真與程序調(diào)試。各模塊之間的每一個(gè)環(huán)節(jié)都是深思熟慮而成,各自完成相應(yīng)的功能并組成一個(gè)統(tǒng)一的整體。4.1 頂層電路設(shè)計(jì)數(shù)字秒表設(shè)計(jì)整體運(yùn)用自頂向下的設(shè)計(jì)思想,將系統(tǒng)按功能逐層分割的層次化設(shè)計(jì)方法。在頂層設(shè)計(jì)中,要對內(nèi)部各功能塊的連接關(guān)系和對外的接口關(guān)系進(jìn)行描述,而功

37、能塊實(shí)際的邏輯功能和具體的實(shí)現(xiàn)形式則由下一層模塊來描述。根據(jù)數(shù)字秒表的系統(tǒng)原理框圖圖 4.1 設(shè)計(jì)系統(tǒng)的頂層電路。按照自頂向下的設(shè)計(jì)思路, 編寫各個(gè)模塊的源程序, 最后再對各個(gè)模塊進(jìn)行組合, 編寫頂層描述的源程序。4.2 數(shù)字秒表的設(shè)計(jì)原理本設(shè)計(jì)可分為六個(gè)主要模塊:(1)鍵輸入消抖模塊(2)時(shí)鐘分頻電路模塊(3)控制電路模塊(4)計(jì)時(shí)電路模塊(5)存儲器模塊(6)動態(tài)掃描譯碼顯示模塊各個(gè)輸入/輸出端口的作用如下:(1)CLK 為外部時(shí)鐘信號,CLR 為復(fù)位信號。(2)K2 為啟/停開關(guān),用于開始/結(jié)束計(jì)時(shí)操作。(3)K1 為復(fù)位鍵,用于復(fù)位以及從觀看記錄模式切換回計(jì)時(shí)模式用。(4)K3 是記錄

38、數(shù)據(jù)鍵,K4 是讀取數(shù)據(jù)以及進(jìn)入觀看記錄模式的鍵。(5)DIGTAL7.0是數(shù)碼管段選信號輸出,SELDE3.0是數(shù)碼管位選信號輸出。4.3 鍵輸入消抖模塊秒表面板上有 4 個(gè)按鍵:K1(復(fù)位)鍵,K2(啟停)鍵,K3(記錄)鍵,K4(顯示)鍵。因?yàn)樵O(shè)計(jì)采用的是機(jī)械式的按鍵,由于存在機(jī)械觸動的彈性作用,一個(gè)按鍵開關(guān)在閉合時(shí)不會馬上穩(wěn)定地接通,在斷開時(shí)也不會馬上斷開。因而在閉合及斷開按鍵的瞬間均伴隨有一連串的抖動。抖動時(shí)間的長短由按鍵的機(jī)械特性決定,一般為 5-10ms。按鍵的閉合穩(wěn)定時(shí)間的長短由操作人員的按鍵動作決定,一般為零點(diǎn)幾秒至數(shù)秒。按鍵抖動會引起被誤讀多次。為確保 FPGA 對鍵的閉合

39、僅作一次處理,必須去除按鍵抖動。通常在按鍵較少時(shí)可用硬件方法消除抖動,一般采用 RS 觸發(fā)器作為常用的消抖電路,如果按鍵較多時(shí),常用軟件消除抖動。在 EDA 的設(shè)計(jì)應(yīng)用中,軟件消抖的方法即可使用 RS 觸發(fā)器進(jìn)行消抖,也可通過檢測按鍵按下的時(shí)間進(jìn)行消抖。工作原理本模塊描述的防抖動電路屬于計(jì)數(shù)器型防抖動電路。其工作原理是,輸入一個(gè) 500HZ的時(shí)鐘信號,設(shè)置一個(gè)模值為 4 的控制計(jì)數(shù)器,在人工按鍵 KEY=0時(shí),執(zhí)行加 1 計(jì)數(shù),如連續(xù) 4 次檢測到低電平則 JSQ=3,即當(dāng) JSQ=3 時(shí)輸出低電平,4 次以上檢測到低電平,JSQ 依然等于 3,也一直輸出低電平,這就確保了當(dāng)按鍵信號持續(xù)低電平

40、 6MS 以上按鍵信號才有效,抖動期間的低電平持續(xù)時(shí)間不足以輸出低電平。如沒有連續(xù) 4 次以上檢測到低電平,則 JSQ 清零。如檢測到高電平,JSQ 也清零,這就導(dǎo)致了在抖動期間不可能輸出低電平,唯有在穩(wěn)定期間才可能輸出低電平,因此防抖動得以實(shí)現(xiàn)。因?yàn)橄峨娐泛蠼拥氖峭皆O(shè)計(jì)的控制模塊,故需要將輸出信號的長度變?yōu)閮蓚€(gè)周期的控制模塊同步時(shí)鐘的長度,因此在輸出電路后,再接入一個(gè) 20MHZ 的 CLK2 信號,當(dāng)輸出從 1 變?yōu)?0 時(shí),在時(shí)鐘跳變沿,輸出低電平 0,在下一個(gè)時(shí)鐘跳變沿則變?yōu)?1,在當(dāng)輸出為 1 時(shí),則一直輸出 1,也就是不論輸出為多長的低電平,經(jīng)過此部分同步變化后,只會輸出兩個(gè)周

41、期 CLK2 的低電平輸出,以供控制模塊使用。4.4 時(shí)鐘分頻電路模塊在基于 EDA 技術(shù)的數(shù)字電路系統(tǒng)設(shè)計(jì)中,分頻電路應(yīng)用十分廣泛。常常使用分頻電路來得到數(shù)字系統(tǒng)中各種不同頻率的控制信號。所謂分頻電路,就是將一個(gè)給定的頻率較高的數(shù)字輸入信號經(jīng)過適當(dāng)處理后,產(chǎn)生一個(gè)或數(shù)個(gè)頻率較低的數(shù)字輸出信號。分頻電路本質(zhì)上是加法計(jì)數(shù)器的變種,其計(jì)數(shù)值由 N=FIN(輸入頻率)/FOUT(輸出頻率)決定,其輸出不是一般計(jì)數(shù)器的計(jì)數(shù)結(jié)果,而是根據(jù)分頻常數(shù)對輸出信號的高,低電平控制。本設(shè)計(jì)需要一個(gè)計(jì)時(shí)范圍為 0.01s59.99 秒的秒表,首先需要獲得一個(gè)比較精確的計(jì)時(shí)基準(zhǔn)信號,這里時(shí)周期為 1/100 s 的計(jì)

42、時(shí)脈沖,采用一個(gè)時(shí)鐘信號源 20MHZ 經(jīng) 20 萬倍分頻后獲得一個(gè)精確的 100HZ 的脈沖來作為計(jì)數(shù)器的時(shí)鐘信號 CLK_OUT,數(shù)碼管的掃描頻率采用經(jīng) 2000 倍分頻后的 10000HZ 的脈沖 CLK_OUT2,按鍵消抖電路部分需要采用經(jīng) 4 萬倍分頻后產(chǎn)生的 500HZ 的脈沖 CLK_OUT3 作為檢測信號。4.5 控制電路模塊為了實(shí)現(xiàn)數(shù)字秒表的各種相應(yīng)功能,主控電路對各種輸入控制信號進(jìn)行處理。作出相應(yīng)的調(diào)整,發(fā)出一系列的控制輸出信號。如對數(shù)字秒表實(shí)現(xiàn)復(fù)位操作,啟、??刂?,以及記錄讀取控制,控制模塊為同步電路設(shè)計(jì),在時(shí)鐘上升沿才變化,主控電路的功能:(1)實(shí)現(xiàn)系統(tǒng)復(fù)位:當(dāng) K1

43、鍵按下時(shí),輸出 CLR=0以及 Q=0信號,實(shí)現(xiàn)計(jì)時(shí)清零并停止功能,當(dāng)系統(tǒng)處于觀看記錄模式式,按下 K1 則不清零,而是輸出 RD=0切換回計(jì)時(shí)模式。啟/??刂疲河糜陂_始/結(jié)束計(jì)時(shí)操作。數(shù)字秒表的啟/停是通過控制送給計(jì)數(shù)器的使能端來實(shí)現(xiàn)的。當(dāng)按下 K2 鍵后,輸出端 Q 的狀態(tài)發(fā)生反轉(zhuǎn)。Q=1,秒表處于計(jì)時(shí)狀態(tài),當(dāng) Q=0 時(shí),計(jì)數(shù)器暫停計(jì)時(shí)。(3)記錄功能:通過在計(jì)時(shí)時(shí)按下記錄鍵 K3 實(shí)現(xiàn)對數(shù)據(jù)的記錄,每按一下記錄一組數(shù)據(jù),按下時(shí)輸出寫信號 WR=1以及地址信號至存儲器在寫時(shí)序內(nèi)將此刻的時(shí)間數(shù)據(jù)記入存儲器的相應(yīng)地址中,釋放后寫信號 WR=0。(4)讀取功能:通過按下讀取功能鍵 K4 進(jìn)入觀

44、看記錄模式,按下時(shí)輸出讀信號 RD=1以及地址信號至存儲器,在讀時(shí)序內(nèi)從存儲器的相應(yīng)地址讀出數(shù)據(jù)傳到模式選擇模塊,RD=1時(shí)為觀看記錄模式,在此模式下按下復(fù)位鍵 K1 可使 RD=0,回到計(jì)時(shí)模式。主控電路各端口作用:輸入端:(1)CLK 為外部時(shí)鐘信號。(2)K2 為啟/停信號輸入端。(3)K1 為復(fù)位輸入端。(4)K3 為記錄寫信號輸入端。(5)K4 為讀取信號輸入端。輸出端:(1)Q:為啟/??刂戚敵鲂盘?。(2)CLR:清零復(fù)位輸出信號。(3)WR:記錄寫控制輸出信號。(4)RD:讀取加模式切換控制輸出信號。(5)Adrw1.0:寫地址輸出信號。(6)Adrr1.0:讀地址輸出信號。4.

45、6 計(jì)時(shí)電路模塊計(jì)數(shù)是一種最簡單基本的運(yùn)算,計(jì)數(shù)器就是實(shí)現(xiàn)這種運(yùn)算的邏輯電路,計(jì)數(shù)器在數(shù)字系統(tǒng)中主要是對脈沖的個(gè)數(shù)進(jìn)行計(jì)數(shù),以實(shí)現(xiàn)測量、計(jì)數(shù)和控制的功能,同時(shí)兼有分頻功能,計(jì)數(shù)器是由基本的計(jì)數(shù)單元和一些控制門所組成,計(jì)數(shù)單 元則由一系列具有存儲信息功能的各類觸發(fā)器構(gòu)成,這些觸發(fā)器有 RS 觸發(fā)器、T 觸發(fā)器、D 觸發(fā)器及 JK 觸發(fā)器等。計(jì)數(shù)器在數(shù)字系統(tǒng)中應(yīng)用廣泛,如在電子計(jì)算 機(jī)的控制器中對指令地址進(jìn)行計(jì)數(shù),以便順序取出下一條指令,在運(yùn)算器中作乘法、除法運(yùn)算時(shí)記下加法、減法次數(shù),又如在數(shù)字儀器中對脈沖的計(jì)數(shù)等等。計(jì)數(shù)器有很多作用,在數(shù)字電子技術(shù)中應(yīng)用的最多的時(shí)序邏輯電路。計(jì)數(shù)器不僅能用于對時(shí)

46、鐘脈沖計(jì)數(shù),還可以用于分頻、定時(shí)、產(chǎn)生節(jié)拍脈沖和脈沖序列以及進(jìn)行數(shù)字運(yùn)算等。但是并無法顯示計(jì)算結(jié)果,一般都是要通過外接 LCD 或 LED 屏才能顯示。計(jì)數(shù)器的種類:如果按照計(jì)數(shù)器中的觸發(fā)器是否同時(shí)翻轉(zhuǎn)分類,可將計(jì)數(shù)器分為同步計(jì)數(shù)器和異步計(jì)數(shù)器兩種。常見的同步計(jì)數(shù)器有 74160 系列,74LS190 系列,常見的異步計(jì)數(shù)器有 74LS290 系列。(2)如果按照技術(shù)過程中數(shù)字增減分類,又可將計(jì)數(shù)器分為加法計(jì)數(shù)器、減法計(jì)數(shù)器和可逆計(jì)數(shù)器,隨時(shí)鐘信號不斷增加的為加法計(jì)數(shù)器,不斷減少的為減法計(jì)數(shù)器,可增可減的叫做可逆計(jì)數(shù)器。另外還有很多種分類不一一列舉,但是最常用的是第一種分類,因?yàn)檫@種分類可以使

47、人一目了然,知道這個(gè)計(jì)數(shù)器到底是什么觸發(fā)方式,以便于設(shè)計(jì)者進(jìn)行電路的設(shè)計(jì)。計(jì)數(shù)器的原理是將幾個(gè)觸發(fā)器按照一定的順序連接起來,然后根據(jù)觸發(fā)器的狀態(tài)按照一定的規(guī)律隨時(shí)鐘的變化來記憶時(shí)鐘的個(gè)數(shù)。掌握了計(jì)數(shù)器的這個(gè)原理后,就很容易采用 VHDL 語言來對計(jì)數(shù)器進(jìn)行描述了。在本次設(shè)計(jì)中,因?yàn)橛?jì)數(shù)器電路非常容易產(chǎn)生毛刺,為了系統(tǒng)精度和穩(wěn)定可靠性著想,采用了同步計(jì)數(shù)器設(shè)計(jì)以及格雷碼計(jì)數(shù)器設(shè)計(jì),來最大限度的消除毛刺,系統(tǒng)需要 3個(gè)模 10 格雷碼計(jì)數(shù)器以及一個(gè)模 6 格雷碼計(jì)數(shù)器,其中 0.01S 位計(jì)時(shí)器由 100HZ 脈沖作為輸入時(shí)鐘,1S 計(jì)時(shí)器的時(shí)鐘由0.1S 的進(jìn)位輸出作為時(shí)鐘信號,10S 計(jì)時(shí)器的

48、時(shí)鐘由 1S 的進(jìn)位輸出作為時(shí)鐘信號。毛刺是因?yàn)閭鬏斝盘柕竭_(dá)終點(diǎn)時(shí)間不一致,電路里的延時(shí)不一致所導(dǎo)致的信號跳變時(shí)間不一致而出現(xiàn)的一些誤差,這些誤差會影響系統(tǒng)穩(wěn)定可靠性,對于對毛刺敏感的控制端可能會出現(xiàn)很嚴(yán)重的錯(cuò)誤,毛刺的消除是有必要的。普通計(jì)數(shù)器因?yàn)槊看螏茁沸盘柾瑫r(shí)多位跳變,必然會產(chǎn)生計(jì)數(shù)器型的毛刺,消除的該種毛刺的最好辦法就是改用每次只跳變一位信號的格雷碼來做計(jì)數(shù),普通 4 位格雷碼是到 15 回 0 的,但是我們需要到 9 回 0 的,所以要在原有格雷碼的基礎(chǔ)上做些修改,對應(yīng)的 0 到 9 數(shù)字。在設(shè)計(jì)格雷碼計(jì)數(shù)器的時(shí)候可以使用狀態(tài)機(jī),給每個(gè)碼設(shè)定一個(gè)狀態(tài)然后用時(shí)鐘來控制它在狀態(tài)間轉(zhuǎn)換,這

49、樣就完成了我們需要的功能, 但是若是狀態(tài)比較多,如 n=6,這時(shí)就會有 64 個(gè)狀態(tài),顯然再用狀態(tài)機(jī)非常不方便,當(dāng)然理論上是可以的?;蛘呤窃O(shè)計(jì)一個(gè)二進(jìn)制計(jì)數(shù)器,通過它來計(jì)數(shù),然后利用編碼轉(zhuǎn)換就可以得到對應(yīng)的格雷碼計(jì)數(shù)器。我們采用算好哪一位下次時(shí)鐘沿跳變時(shí)需要變化來實(shí)現(xiàn)格雷碼計(jì)數(shù)器。計(jì)時(shí)電路模塊輸入端有使能端 EN,100HZ 時(shí)鐘輸入 CLK,清零輸入 CLR,輸出端有0.1S 位 1S 位 10S 位和 CO 進(jìn)位端,在 10HZ 時(shí)鐘輸入給 0.1S 位并在控制模塊輸出 Q=1時(shí)開始計(jì)時(shí),Q=0時(shí)暫停計(jì)時(shí),控制端按下清零鍵則 Q=0,CLR=0,使計(jì)時(shí)器停止計(jì)時(shí)并全部清零。4.7 模式選擇

50、模塊本次設(shè)計(jì)計(jì)時(shí)器因?yàn)橛杏涗浌δ?,故需要切換計(jì)時(shí)模式和觀看記錄數(shù)據(jù)模式,該模塊的作用為在 RD 信號為 1 時(shí)切換為從存儲器里讀取相應(yīng)地址的數(shù)據(jù) I015.0傳輸?shù)絼討B(tài)掃描譯碼顯示模塊顯示記錄的數(shù)據(jù),在 RD 信號為 0 時(shí)為普通計(jì)時(shí)狀態(tài),輸入 I115.0傳輸?shù)絼討B(tài)掃描譯碼顯示模塊顯示計(jì)時(shí)。4.8 存儲器模塊本設(shè)計(jì)添加了記錄數(shù)據(jù)功能,因此需要存儲器來存儲數(shù)據(jù),ROM 和 RAM 屬于通用大規(guī)模器件,一般不需要自行設(shè)計(jì),但是在數(shù)字系統(tǒng)中,有時(shí)也需要設(shè)計(jì)一些小型的存儲器件,用于特定的用途:例如臨時(shí)存放數(shù)據(jù),構(gòu)成查表運(yùn)算等。設(shè)計(jì)時(shí)需要注意器件的大小,一個(gè) 16x8 位的 RAM 大約占用 200

51、個(gè)門,而 256x16 的 RAM 則需要 6200 門以上,因此大規(guī)模 RAM 不適合于采用 PLD 設(shè)計(jì),最好采用通用器件,本次設(shè)計(jì)只需要記錄幾組數(shù)據(jù)即可,只需設(shè)計(jì) Nx16 的 RAM,N 為需要記錄的數(shù)據(jù)組數(shù)。RAM的指標(biāo)為存儲容量和字長,其內(nèi)部可以分為地址譯碼和存儲單元兩部分,外部端口為:讀寫端 WR/RD,時(shí)鐘端 CLK,2 位地址端 ADRW/ADRR,16 位數(shù)據(jù)端 DI/DO,可存儲 4 組 16 位數(shù)據(jù),即 4 組時(shí)間數(shù)據(jù),讀寫控制信號和地址信號由控制模塊產(chǎn)生。4.9 動態(tài)掃描譯碼顯示模塊在數(shù)字電路系統(tǒng)中,人們常常需要將數(shù)字電路中表示數(shù)字、文字、符號的二進(jìn)制代碼翻譯成人們習(xí)

52、慣的形式,并且使其直觀地顯示出來以便直接讀數(shù)。為了能夠直觀地顯示數(shù)字電路系統(tǒng)中的有關(guān)數(shù)據(jù),人們常常使用七段數(shù)碼管和八段數(shù)碼管,八段數(shù)碼管比七段數(shù)碼管多一個(gè)發(fā)光二極管單元多一個(gè)小數(shù)點(diǎn)顯示。七段數(shù)碼管的的基本原理是將所要顯示的數(shù)字翻譯成構(gòu)成該電路中可發(fā)光二極管的驅(qū)動信號,分別用 A、B、C、D、E、F、G 來表示不同位置的二極管,驅(qū)動信號會驅(qū)動不同位置的的發(fā)光二極管發(fā)光來顯示出 0 到 9 的數(shù)字,因此要將二進(jìn)制數(shù)據(jù)信號轉(zhuǎn)換為可顯示的數(shù)字的驅(qū)動信號需要特定的譯碼電路。數(shù)碼管分共陽和共陰型,共陽數(shù)碼管是指將所有發(fā)光二極管的陽極接到一起形成公共陽極(COM)的數(shù)碼管,在應(yīng)用時(shí)應(yīng)將公共極 COM 接到+

53、5V,當(dāng)某一字段發(fā)光二極管的陰極為電平時(shí),相應(yīng)字段就點(diǎn)亮。當(dāng)某一字段的陰極為高電平時(shí),相應(yīng)字段就不亮。共陰數(shù)碼管是指將所有發(fā)光二極管的陰極接到一起形成公共陰極 COM 的數(shù)碼管,在應(yīng)用時(shí)應(yīng)將公共極 COM 接到地線 GND 上,當(dāng)某一字段發(fā)光二極管的陽極為高電平時(shí),相應(yīng)字段就點(diǎn)亮。當(dāng)某一字段的陽極為低電平時(shí),相應(yīng)字段就不亮,本次設(shè)計(jì)使用共陽數(shù)碼管。數(shù)碼管要正常顯示,就要用驅(qū)動電路來驅(qū)動數(shù)碼管的各個(gè)段碼,從而顯示出我們要的數(shù)字,因此根據(jù)數(shù)碼管的驅(qū)動方式的不同,可以分為靜態(tài)式和動態(tài)式兩類。靜態(tài)驅(qū)動也稱直流驅(qū)動。靜態(tài)驅(qū)動是指每個(gè)數(shù)碼管的每一個(gè)段碼都由一個(gè) I/O 端口進(jìn)行驅(qū)動,或者使用如 BCD 碼

54、二-十進(jìn)制譯碼器譯碼進(jìn)行驅(qū)動。靜態(tài)驅(qū)動的優(yōu)點(diǎn)是編程簡單,顯示亮度高,缺點(diǎn)是占用 I/O 端口多,如驅(qū)動 5 個(gè)數(shù)碼管靜態(tài)顯示則需要 5×8=40 根 I/O端口來驅(qū)動,實(shí)際應(yīng)用時(shí)必須增加譯碼驅(qū)動器進(jìn)行驅(qū)動,增加了硬件電路的復(fù)雜性。數(shù)碼管動態(tài)顯示接口是應(yīng)用最為廣泛的一種顯示方式之一,動態(tài)驅(qū)動是將所有數(shù)碼管的 8 個(gè)顯示筆劃"a,b,c,d,e,f,g,d,p"的同名端連在一起,另外為每個(gè)數(shù)碼管的公共極增加位選通控制電路,位選通由各自獨(dú)立的 I/O 線控制,當(dāng)系統(tǒng)輸出顯示碼時(shí),所有數(shù)碼管都接收到相同的顯示碼,但究竟是那個(gè)數(shù)碼管會顯示出數(shù)字,取決于系統(tǒng)對位選端電路的控制

55、,所以我們只要將需要顯示的數(shù)碼管的選通控制打開,該位就顯示出字形,沒有選通的數(shù)碼管就不會亮。通過分時(shí)輪流控制各個(gè)數(shù)碼管的的選通端,就使各個(gè)數(shù)碼管輪流受控顯示,這就是動態(tài)驅(qū)動。在輪流顯示過程中,每位數(shù)碼管的點(diǎn)亮?xí)r間為 12ms,由于人的視覺暫留現(xiàn)象及發(fā)光二極管的余輝效應(yīng),盡管實(shí)際上各位數(shù)碼管并非同時(shí)點(diǎn)亮,但只要掃描的速度足夠快,給人的印象就是一組穩(wěn)定的顯示數(shù)據(jù),不會有閃爍感,動態(tài)顯示的效果和靜態(tài)顯示是一樣的,能夠節(jié)省大量的 I/O 端口,而且功功耗更低。在本次設(shè)計(jì)中將采用八段共陽型數(shù)碼管動態(tài)顯示電路的來設(shè)計(jì),動態(tài)顯示需要段選信號和位選信號,位選信號通過格雷碼計(jì)數(shù)器生成,為了最終實(shí)際驅(qū)動數(shù)碼管,還

56、需要將其轉(zhuǎn)換成標(biāo)準(zhǔn)的位選信號 selout5.0,因?yàn)橛?jì)時(shí)器精度要 0.1s,為了保持足夠的掃描頻率,設(shè)定輸入時(shí)鐘為 10000HZ。前級會送來各位的計(jì)時(shí)信號,并且是格雷碼,要將它們譯碼轉(zhuǎn)換為數(shù)碼管發(fā)光的段選信號 digout7.0,當(dāng)位選信號變化時(shí),段選信號會隨著位選信號變換成各位對應(yīng)的信號,此間為了消除前級的送來信號的毛刺,加上了 D 觸發(fā)器配合 CLK 的上升沿變化來消除輸入信號的毛刺。譯碼器必然會產(chǎn)生很多毛刺,為了消除毛刺,在考量了各信號的相對延遲時(shí)間后,在輸出端加上了 D 觸發(fā)器與特定的延遲時(shí)鐘 clk 的下降沿輸入來消除毛刺,當(dāng)延遲時(shí)鐘跳變時(shí),D 觸發(fā)器輸入端的毛刺已經(jīng)過去,輸出的則是穩(wěn)定后的信號。最后將 selout5.0與 digout7.0分配到連接數(shù)碼管的各個(gè)引腳就可動態(tài)顯示相應(yīng)數(shù)字了。第5章 程序設(shè)計(jì)module clock(clk,key,dig,seg);input clk;input 1:0 key;output7:0 dig;output7:0seg;reg7:0seg_r;reg7:0dig_r;reg3:0disp_dat;reg24:0cou

溫馨提示

  • 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論