基于VHDL的數(shù)字跑表技術(shù)_第1頁
基于VHDL的數(shù)字跑表技術(shù)_第2頁
基于VHDL的數(shù)字跑表技術(shù)_第3頁
基于VHDL的數(shù)字跑表技術(shù)_第4頁
基于VHDL的數(shù)字跑表技術(shù)_第5頁
已閱讀5頁,還剩40頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、.PAGE 1基于VHDL的數(shù)字跑表技術(shù)摘 要跑表用于測量較短且較準(zhǔn)確的時(shí)間,在體育競賽中有著廣泛的應(yīng)用。本文分析了體育用跑表的設(shè)計(jì)原理及設(shè)計(jì)的具體過程。將跑表分為五個(gè)模塊:鍵輸入模塊、分頻模塊、控制模塊、計(jì)時(shí)模塊和顯示模塊。跑表由各個(gè)模塊通過合理的連接關(guān)系來實(shí)現(xiàn),各模塊及跑表功能最終都由VHDL語言來描述。借助Altera公司開發(fā)的EDA工具M(jìn)A*+plus 作為編譯、仿真平臺(tái),并利用EPF10K10LC84-4器件完成跑表的CPLD實(shí)現(xiàn)。關(guān)鍵詞:跑表;VHDL語言;MA*+plus ;CPLDABSTRACTStopwatch, which is used to measure short

2、er and more accurate time, has a wide application in sport game. This paper introduces the design principles and design process of the stopwatch.The stopwatch consists of five modules, that is, key input module, sub-frequency module, control module, timing module and display module. The stopwatch is

3、 achieved by connecting each module. The function of each module and the stopwatch is described through VHDL language.With the help of Alteras MA* + plus software simulation platform,an EDA developing tool usedto pile and simulate, EPF10K10LC84-4 device is used to plete the CPLD implementation of th

4、e stopwatch.Keywords: Stopwatch; VHDL language; MA* + plus ; CPLD目 錄 TOC o 1-3 h z HYPERLINK l _Toc2324141871. 緒論 PAGEREF _Toc232414187 h 4HYPERLINK l _Toc2324141881.1 引言 PAGEREF _Toc232414188 h 4HYPERLINK l _Toc2324141891.2 CPLD概述 PAGEREF _Toc232414189 h 4HYPERLINK l _Toc2324141902. 實(shí)驗(yàn)的軟件環(huán)境 PAGEREF

5、 _Toc232414190 h 5HYPERLINK l _Toc2324141912.1 MA*+plus軟件 PAGEREF _Toc232414191 h 5HYPERLINK l _Toc2324141922.1.2 MA*+plus簡介 PAGEREF _Toc232414192 h 5HYPERLINK l _Toc2324141932.1.2 MA*+plus的設(shè)計(jì)環(huán)境 PAGEREF _Toc232414193 h 6HYPERLINK l _Toc2324141942.1.3 MA*+plus設(shè)計(jì)流程 PAGEREF _Toc232414194 h 8HYPERLINK l

6、 _Toc2324141952.2 VHDL語言 PAGEREF _Toc232414195 h 8HYPERLINK l _Toc2324141962.2.1 VHDL語言概要 PAGEREF _Toc232414196 h 8HYPERLINK l _Toc2324141972.2.2 VHDL程序的構(gòu)造 PAGEREF _Toc232414197 h 10HYPERLINK l _Toc2324141983. 跑表的設(shè)計(jì) PAGEREF _Toc232414198 h 11HYPERLINK l _Toc2324141993.1跑表的功能描述 PAGEREF _Toc232414199

7、h 11HYPERLINK l _Toc2324142003.2頂層設(shè)計(jì)的VHDL源代碼 PAGEREF _Toc232414200 h 13HYPERLINK l _Toc232414201頂層實(shí)體設(shè)計(jì)及VHDL源代碼 PAGEREF _Toc232414201 h 13HYPERLINK l _Toc232414202頂層構(gòu)造體的設(shè)計(jì)及VHDL源代碼 PAGEREF _Toc232414202 h 14HYPERLINK l _Toc2324142033.3跑表各個(gè)模塊的分析及其VHDL源代碼 PAGEREF _Toc232414203 h 20HYPERLINK l _Toc232414

8、204鍵輸入模塊 PAGEREF _Toc232414204 h 20HYPERLINK l _Toc232414205時(shí)鐘分頻模塊 PAGEREF _Toc232414205 h 22HYPERLINK l _Toc232414206控制模塊 PAGEREF _Toc232414206 h 26HYPERLINK l _Toc232414207跑表計(jì)時(shí)模塊 PAGEREF _Toc232414207 h 28HYPERLINK l _Toc232414208跑表顯示模塊 PAGEREF _Toc232414208 h 34HYPERLINK l _Toc2324142093.4 仿真結(jié)果 P

9、AGEREF _Toc232414209 h 42HYPERLINK l _Toc2324142104. 結(jié)語 PAGEREF _Toc232414210 h 46HYPERLINK l _Toc232414211致 PAGEREF _Toc232414211 h 47HYPERLINK l _Toc232414212參考文獻(xiàn) PAGEREF _Toc232414212 h 48第一章 緒 論1.1 引 言20世紀(jì)末,電子技術(shù)獲得了飛速的開展,在其推動(dòng)下,現(xiàn)代電子產(chǎn)品幾乎滲透了社會(huì)的各個(gè)領(lǐng)域,有力地推動(dòng)了社會(huì)生產(chǎn)力的開展和社會(huì)信息化程度的提高,同時(shí)也使現(xiàn)代電子產(chǎn)品性能進(jìn)一步提高,產(chǎn)品更新?lián)Q代的

10、節(jié)奏也越來越快。 時(shí)間對(duì)人們來說總是則珍貴,工作的忙碌性和繁雜性容易使人忘記當(dāng)前的時(shí)間。忘記了要做的事情,當(dāng)事情不是很重要的時(shí)候,這種遺忘無傷大雅。但是,一旦重要事情,一時(shí)的耽誤可能釀成大禍。例如,許多火災(zāi)都是由于人們一時(shí)忘記了關(guān)閉煤氣或是忘記充電時(shí)間。尤其在醫(yī)院,每次護(hù)士都會(huì)給病人作皮試,測試病人是否對(duì)藥物過敏。注射后,一般等待5分鐘,一旦超時(shí),所作的皮試試驗(yàn)就會(huì)無效。手表當(dāng)然是一個(gè)好的選擇,但是,隨著承受皮試的人數(shù)增加,到底是哪個(gè)人的皮試到時(shí)間卻難以判斷。所以,要制作一個(gè)定時(shí)系統(tǒng)。隨時(shí)提醒這些容易忘記時(shí)間的人。 鐘表的數(shù)字化給人們生產(chǎn)生活帶來了極大的方便,而且大擴(kuò)展了鐘表原先的報(bào)時(shí)功能。諸

11、如定時(shí)自動(dòng)報(bào)警、按時(shí)自動(dòng)打鈴、時(shí)間程序自動(dòng)控制、定時(shí)播送、定時(shí)啟閉電路、定時(shí)開關(guān)烘箱、通斷動(dòng)力設(shè)備,甚至各種定時(shí)電氣的自動(dòng)啟用等,所有這些,都是以鐘表數(shù)字化為根底的。因此,研究數(shù)字跑表及擴(kuò)大其應(yīng)用,有著非?,F(xiàn)實(shí)的意義。 通過數(shù)字跑表的設(shè)計(jì),穩(wěn)固計(jì)算機(jī)組成原理課程,理論聯(lián)系實(shí)際,提高分析、解決計(jì)算機(jī)技術(shù)的實(shí)際問題的獨(dú)立工作能力;掌握用VHDL語言編制簡單的小型模塊,學(xué)會(huì)跑表的設(shè)計(jì)方法,熟悉集成電路的使用方法,初步掌握數(shù)字跑表的設(shè)計(jì)方法并實(shí)現(xiàn)時(shí)間的顯示和校對(duì),并能對(duì)數(shù)字跑表進(jìn)展擴(kuò)展。數(shù)字跑表是一種用數(shù)字電路技術(shù)實(shí)現(xiàn)時(shí)、分、秒計(jì)時(shí)的裝置,與機(jī)械式時(shí)鐘相比具有更高的準(zhǔn)確性和直觀性,且無機(jī)械裝置,具有更

12、更長的使用壽命,因此得到了廣泛的使用。 數(shù)字跑表從原理上講是一種典型的數(shù)字電路,其中包括了組合邏輯電路和時(shí)序電路。因此,此次設(shè)計(jì)與制作數(shù)字跑表就是為了了解跑表的原理,從而學(xué)會(huì)制作數(shù)字跑表.而且通過跑表的制作進(jìn)一步的了解各種在制作中用到的中小規(guī)模集成電路的作用及實(shí)用方法.且由于數(shù)字跑表包括組合邏輯電路和時(shí)敘電路.通過它可以進(jìn)一步學(xué)習(xí)與掌握各種組合邏輯電路與時(shí)序電路的原理與使用方法。1.2CPLD概述CPLD ( ple* Programmable Logic Device )復(fù)雜可編程邏輯器件,是從PAL和GAL器件開展出來的器件,相對(duì)而言規(guī)模大,構(gòu)造復(fù)雜,屬于大規(guī)模集成電路圍。是一種用戶根據(jù)各

13、自需要而自行構(gòu)造邏輯功能的數(shù)字集成電路。其根本設(shè)計(jì)方法是借助集成開發(fā)軟件平臺(tái),用原理圖、硬件描述語言等方法,生成相應(yīng)的目標(biāo)文件,通過下載電纜“在系統(tǒng)編程將代碼傳送到目標(biāo)芯片中,實(shí)現(xiàn)設(shè)計(jì)的數(shù)字系統(tǒng)。CPLD主要是由可編程邏輯宏單元(MC,Macro Cell)圍繞中心的可編程互連矩陣單元組成。其中MC構(gòu)造較復(fù)雜,并具有復(fù)雜的I/O單元互連構(gòu)造,可由用戶根據(jù)需要生成特定的電路構(gòu)造,完成一定的功能。由于CPLD部采用固定長度的金屬線進(jìn)展各邏輯塊的互連,所以設(shè)計(jì)的邏輯電路具有時(shí)間可預(yù)測性,防止了分段式互連構(gòu)造時(shí)序不完全預(yù)測的缺點(diǎn)。它具有編程靈活、集成度高、設(shè)計(jì)開發(fā)周期短、適用圍寬、開發(fā)工具先進(jìn)、設(shè)計(jì)制

14、造本錢低、對(duì)設(shè)計(jì)者的硬件經(jīng)歷要求低、標(biāo)準(zhǔn)產(chǎn)品無需測試、性強(qiáng)、價(jià)格群眾化等特點(diǎn),可實(shí)現(xiàn)較大規(guī)模的電路設(shè)計(jì),因此被廣泛應(yīng)用于產(chǎn)品的原型設(shè)計(jì)和產(chǎn)品生產(chǎn)(一般在10,000件以下)之中。幾乎所有應(yīng)用中小規(guī)模通用數(shù)字集成電路的場合均可應(yīng)用CPLD器件。CPLD器件已成為電子產(chǎn)品不可缺少的組成局部,它的設(shè)計(jì)和應(yīng)用成為電子工程師必備的一種技能。1.3 課題設(shè)計(jì)容應(yīng)用VHDL語言設(shè)計(jì)數(shù)字系統(tǒng),很多設(shè)計(jì)工作可以在計(jì)算機(jī)上完成,從而縮短了系統(tǒng)的開發(fā)時(shí)間,提高了工作效率。本文介紹一種以FPGA為核心,以VHDL為開發(fā)工具的數(shù)字秒表,并給出源程序和仿真結(jié)果。系統(tǒng)功能要求:(1) 具有時(shí)鐘秒表系統(tǒng)功能要求顯示功能,用4

15、 個(gè)數(shù)碼管分別顯示秒和百分秒;(2) 具有3 種功能狀態(tài):系統(tǒng)時(shí)間運(yùn)行狀態(tài),系統(tǒng)時(shí)間至零狀態(tài),時(shí)鐘正常顯示狀態(tài),通過輸入控制信號(hào)可以使系統(tǒng)在這3 個(gè)狀態(tài)之間切換,使數(shù)碼管顯示相應(yīng)狀態(tài)的時(shí)間;(3) 開啟時(shí)間設(shè)定、關(guān)閉時(shí)間設(shè)定可通過控制信號(hào)中的時(shí)間調(diào)節(jié)來設(shè)置,在秒設(shè)置方面每按一下,秒就會(huì)自動(dòng)加1 ,采用60 進(jìn)制計(jì)數(shù),當(dāng)計(jì)數(shù)到59 時(shí)又會(huì)恢復(fù)為00 ;百分秒設(shè)置方面每按一下,百分秒會(huì)自動(dòng)加1 ,采用100 進(jìn)制計(jì)數(shù),當(dāng)計(jì)數(shù)到99 時(shí),向上進(jìn)位并恢復(fù)00 。系統(tǒng)時(shí)間可以同單獨(dú)的至零信號(hào),將數(shù)碼管顯示時(shí)間直接恢復(fù)到00. 00狀態(tài)。本系統(tǒng)采用的FPGA 芯片為Altera 公司的EPF10K10LC

16、84-4,用VHDL 和MA*+plus 軟件工具開發(fā),設(shè)計(jì)輸入完成后,進(jìn)展整體的編譯和邏輯仿真,然后進(jìn)展轉(zhuǎn)換、延時(shí)仿真生成配置文件,最后下載至FPGA 器件,完成結(jié)果功能配置,實(shí)現(xiàn)其硬件功能。第二章 實(shí)驗(yàn)的軟件環(huán)境Altera的器件能到達(dá)最高的性能和集成度,不僅僅是因?yàn)樗捎昧讼冗M(jìn)的工藝和新的邏輯構(gòu)造,還在于它提供了現(xiàn)代化的設(shè)計(jì)工具。MA*+plus可編程邏輯開發(fā)軟件提供了一種與構(gòu)造無關(guān)的設(shè)計(jì)環(huán)境,它使Altera通用PLD系列設(shè)計(jì)者能方便地進(jìn)展設(shè)計(jì)輸入、快速處理和器件編程。2.1 EDA的介紹電子設(shè)計(jì)自動(dòng)化(EDA)是一種實(shí)現(xiàn)電子系統(tǒng)或電子產(chǎn)品自動(dòng)化設(shè)計(jì)的技術(shù),它與電子技術(shù)、微電子技術(shù)的開

17、展密切相關(guān),吸收了計(jì)算機(jī)科學(xué)領(lǐng)域的大多數(shù)最新研究成果,以高性能的計(jì)算機(jī)作為工作平臺(tái),是20世紀(jì)90年代初從CAD(計(jì)算機(jī)輔助設(shè)計(jì))、CAM(計(jì)算機(jī)輔助制造)、CAT(計(jì)算機(jī)輔助測試)和CAE(計(jì)算機(jī)輔助工程)的概念開展而來的。EDA技術(shù)就是以計(jì)算機(jī)為工具,在EDA軟件平臺(tái)上,根據(jù)硬件描述語言VHDL完成的設(shè)計(jì)文件,自動(dòng)地完成邏輯編譯、化簡、分割、綜合及優(yōu)化、布局、仿真。直至對(duì)于特定目標(biāo)芯片的適配編譯、邏輯映射和編程下載等工作。隨著大規(guī)模集成電路技術(shù)和計(jì)算機(jī)技術(shù)的不斷開展,在涉及工業(yè)自動(dòng)化、計(jì)算機(jī)應(yīng)用、儀器儀表等領(lǐng)域的電子系統(tǒng)設(shè)計(jì)工作中,EDA技術(shù)的含量正以驚人的速度上升,電子類的高新技術(shù)工程的

18、開發(fā)也日益依賴于EDA技術(shù)的應(yīng)用。即使是普通的電子產(chǎn)品的開發(fā),EDA技術(shù)常常使一些原來的技術(shù)瓶頸得以輕松突破,從而使產(chǎn)品的開發(fā)周期大為縮短、性能價(jià)格比大幅度提高。所以EDA技術(shù)將成為電子設(shè)計(jì)領(lǐng)域中的極其重要的組成局部。EDA技術(shù)的開展始于70年代,至今經(jīng)歷了三個(gè)階段。電子線路的CAD(計(jì)算機(jī)輔助設(shè)計(jì))是EDA開展的初級(jí)階段,是高級(jí)EDA系統(tǒng)的重要組成局部。它利用計(jì)算機(jī)的圖形編輯、分析和存儲(chǔ)等能力,協(xié)助工程師設(shè)計(jì)電子系統(tǒng)的電路圖、印刷電路板圖:采用二維圖形編輯與分析,主要解決電子線路設(shè)計(jì)后期的大量重復(fù)性工作,可以減少設(shè)計(jì)人員的煩瑣重復(fù)勞動(dòng)但自動(dòng)化程度低,需要人工干預(yù)整個(gè)設(shè)計(jì)過程。這類專用軟件大多

19、數(shù)以機(jī)為工作平臺(tái),易于學(xué)用,設(shè)計(jì)中小規(guī)模電子系統(tǒng)可靠有效,現(xiàn)仍有很多這類專用軟件被廣泛應(yīng)用于工程設(shè)計(jì)。80年代初期,EDA技術(shù)開場設(shè)計(jì)過程的分析,推出了以仿真(邏輯模擬、定時(shí)分析和故障仿真)和自動(dòng)布局與布線為核心的EDA產(chǎn)品,這一階段的EDA己把一系列計(jì)算機(jī)學(xué)科的最新成果引入電子設(shè)計(jì),形成了CAE計(jì)算機(jī)輔工程。其主要特征是具備了自動(dòng)布局布線和電路的計(jì)算機(jī)仿真、分析和驗(yàn)證功能。其作用已不僅僅是輔助設(shè)計(jì),而且可以代替人進(jìn)展*種思維。CAE這種以原理圖為根底的EDA系統(tǒng),雖然直觀,且易于理解,但對(duì)復(fù)雜的電子設(shè)計(jì)很難到達(dá)要求,也不宜于設(shè)計(jì)的優(yōu)化。所以,90年代出現(xiàn)了以自動(dòng)綜合器和硬件描述語言為根底,全

20、面支持電子設(shè)計(jì)自動(dòng)化的ESDA(電子系統(tǒng)設(shè)計(jì)自動(dòng)化),既高級(jí)EDA階段,也就是目前所說的EDA。過去傳統(tǒng)的電子系統(tǒng)電子產(chǎn)品的設(shè)計(jì)方法是采用自底而上(Bottom Up)的方式,設(shè)計(jì)者先對(duì)系統(tǒng)構(gòu)造分塊,直接進(jìn)展電路級(jí)的設(shè)計(jì)。這種設(shè)計(jì)方法使設(shè)計(jì)者不能預(yù)測下一階段的問題,而且每一階段是否存在問題,往往在系統(tǒng)整機(jī)調(diào)試時(shí)才確定,也很難通過局部電路的調(diào)整使整個(gè)系統(tǒng)到達(dá)既定的功能和指標(biāo),不能保證一舉成功。EDA技術(shù)高級(jí)階段采用二種新的設(shè)計(jì)概念,自頂而下(Top Down)的設(shè)計(jì)方式和并行工程的設(shè)計(jì)方法,設(shè)計(jì)者的精力主要集中在所要電子產(chǎn)品的準(zhǔn)確定義上,EDA系統(tǒng)去完成電子產(chǎn)品的系統(tǒng)級(jí)至物理級(jí)的設(shè)計(jì)。此階段ED

21、A技術(shù)的主要特征是支持高級(jí)語言對(duì)系統(tǒng)進(jìn)展描述,高層次綜合理論得到了巨大的開展,進(jìn)展系統(tǒng)級(jí)的仿真和綜合。2.1.1 基于EDA工具的FPGA/CPLD開發(fā)流程FPGA/CPLD的開發(fā)流程:設(shè)計(jì)開場首先須利用EDA工具的文本或圖形編輯器將設(shè)計(jì)者的設(shè)計(jì)意圖用文本方式(如VHDL)或圖形方式(原理圖、狀態(tài)圖等)表達(dá)出來。完成設(shè)計(jì)描述后即可通過編譯器進(jìn)展排錯(cuò)編譯,變成特定的文本格式,為下一步的綜合做準(zhǔn)備。設(shè)計(jì)的第二步是綜合,將軟件設(shè)計(jì)與硬件的可實(shí)現(xiàn)性掛鉤,這是將軟件轉(zhuǎn)化為硬件電路的關(guān)鍵步驟。綜合器對(duì)源文件的綜合是針對(duì)*一FPGA/CPLD供應(yīng)商的產(chǎn)品系列的,因此,綜合后的結(jié)果具有硬件可實(shí)現(xiàn)性。綜合后,可

22、利用產(chǎn)生的網(wǎng)表文件進(jìn)展功能仿真,以便了解設(shè)計(jì)描述與設(shè)計(jì)意圖的一致性。功能仿真僅對(duì)設(shè)計(jì)描述的邏輯功能進(jìn)展測試模擬,以了解其實(shí)現(xiàn)的功能是否滿足原設(shè)計(jì)的要求,仿真過程不涉及具體器件的硬件特性,如延遲特性。綜合通過后必須利用FPGA/CPLD布局/布線適配器將綜合后的網(wǎng)表文件針對(duì)*一具體的目標(biāo)器件進(jìn)展邏輯映射操作,其中包括底層器件配置、邏輯分割、邏輯優(yōu)化、布局布線。適配完成后,EDA軟件將產(chǎn)生針對(duì)此項(xiàng)設(shè)計(jì)的多項(xiàng)結(jié)果;1適配報(bào)告:容包括芯片資源分配與利用、引腳鎖定、設(shè)計(jì)的布爾方程描述情況等;2時(shí)序仿真用網(wǎng)表文件;3下載文件,如JED或POF文件;4適配錯(cuò)誤報(bào)告等。時(shí)序仿真是接近真實(shí)器件運(yùn)行的仿真,仿真過

23、程中已將器件硬件特性考慮進(jìn)去了,因此仿真精度要高得多。時(shí)序仿真的網(wǎng)表文件中包含了較為準(zhǔn)確的延遲信息。如果以上的所有過程,包括編譯、綜合、布線/適配和行為仿真、功能仿真、時(shí)序仿真都沒有發(fā)現(xiàn)問題,即滿足原設(shè)計(jì)的要求,就可以將適配器產(chǎn)生的配置/下載文件通過FPGA/CPLD編程器或下載電纜載入目標(biāo)芯片F(xiàn)PGA或CPLD中,然后進(jìn)入最后一個(gè)步驟:硬件仿真或測試,以便在更真實(shí)的環(huán)境中檢驗(yàn)設(shè)計(jì)的運(yùn)行情況。這里所謂的硬件仿真,是針對(duì)ASIC設(shè)計(jì)而言的。在ASIC設(shè)計(jì)中,比較常用的方法是利用FPGA對(duì)系統(tǒng)的設(shè)計(jì)進(jìn)展功能測試,通過后在將其VHDL設(shè)計(jì)以ASIC形式實(shí)現(xiàn);而硬件測試則是針對(duì)FPGA/CPLD直接用

24、于電路系統(tǒng)的檢測而言的。基于EDA工具的FPGA/CPLD開發(fā)流程圖2-1如下:圖2.1 基于EDA工具的FPGA/CPLD開發(fā)流程圖2.1.2 EDA的應(yīng)用EDA在教學(xué)、科研、產(chǎn)品設(shè)計(jì)與制造等各方面都發(fā)揮著巨大的作用。在教學(xué)方面,幾乎所有理工科特別是電子信息類的高校都開設(shè)了EDA課程。主要是讓學(xué)生了解EDA的根本概念和根本原理、掌握用HDL語言編寫規(guī)、掌握邏輯綜合的理論和算法、使用EDA工具進(jìn)展電子電路課程的實(shí)驗(yàn)并從事簡單系統(tǒng)的設(shè)計(jì)。一般學(xué)習(xí)電路仿真工具如EWB、PSPICE和PLD開發(fā)工具如Altera/*ilin*的器件構(gòu)造及開發(fā)系統(tǒng),為今后工作打下根底??蒲蟹矫嬷饕秒娐贩抡婀ぞ逧W

25、B或PSPICE進(jìn)展電路設(shè)計(jì)與仿真;利用虛擬儀器進(jìn)展產(chǎn)品測試;將CPLD/FPGA器件實(shí)際應(yīng)用到儀器設(shè)備中;從事PCB設(shè)計(jì)和ASIC設(shè)計(jì)等。2.1.3 EDA技術(shù)的開展趨勢(shì)從目前的EDA技術(shù)來看,其開展趨勢(shì)是政府重視、使用普及、應(yīng)用文泛、工具多樣、軟件功能強(qiáng)大。中國EDA市場已漸趨成熟,不過大局部設(shè)計(jì)工程師面向的是PC主板和小型ASIC領(lǐng)域,僅有小局部約11%的設(shè)計(jì)人員研發(fā)復(fù)雜的片上系統(tǒng)器件。為了與和美國的設(shè)計(jì)工程師形成更有力的競爭,中國的設(shè)計(jì)隊(duì)伍有必要購入一些最新的EDA技術(shù)。在信息通信領(lǐng)域,要優(yōu)先開展高速寬帶信息網(wǎng)、深亞微米集成電路、新型元器件、計(jì)算機(jī)及軟件技術(shù)、第三代移動(dòng)通信技術(shù)、信息管

26、理、信息平安技術(shù),積極開拓以數(shù)字技術(shù)、網(wǎng)絡(luò)技術(shù)為根底的新一代信息產(chǎn)品,開展新興產(chǎn)業(yè),培育新的經(jīng)濟(jì)增長點(diǎn)。要大力推進(jìn)制造業(yè)信息化,積極開展計(jì)算機(jī)輔助設(shè)計(jì)CAD、計(jì)算機(jī)輔助工程CAE、計(jì)算機(jī)輔助工藝CAPP、計(jì)算機(jī)機(jī)輔助制造CAM、產(chǎn)品數(shù)據(jù)管理PDM、制造資源方案MRPII及企業(yè)資源管理ERP等。有條件的企業(yè)可開展“網(wǎng)絡(luò)制造,便于合作設(shè)計(jì)、合作制造,參與國和國際競爭。開展“數(shù)控化工程和“數(shù)字化工程。自動(dòng)化儀表的技術(shù)開展趨勢(shì)的測試技術(shù)、控制技術(shù)與計(jì)算機(jī)技術(shù)、通信技術(shù)進(jìn)一步融合,形成測量、控制、通信與計(jì)算機(jī)M3C構(gòu)造。在ASIC和PLD設(shè)計(jì)方面,向超高速、高密度、低功耗、低電壓方向開展。在EDA軟件開

27、發(fā)方面,目前主要集中在美國。但各國也正在努力開發(fā)相應(yīng)的工具。日本、國都有ASIC設(shè)計(jì)工具,但不對(duì)外開放 。集成電路設(shè)計(jì)中心,也提供IC設(shè)計(jì)軟件,但性能不是很強(qiáng)。相信在不久的將來會(huì)有更多更好的設(shè)計(jì)工具有各地開花并結(jié)果。據(jù)最新統(tǒng)計(jì)顯示,中國和印度正在成為電子設(shè)計(jì)自動(dòng)化領(lǐng)域開展最快的兩個(gè)市場,年復(fù)合增長率分別到達(dá)了50%和30%。EDA技術(shù)開展迅猛,完全可以用日新月異來描述。EDA技術(shù)的應(yīng)用廣泛,現(xiàn)在已涉及到各行各業(yè)。EDA水平不斷提高,設(shè)計(jì)工具趨于完美的地步。EDA市場日趨成熟,但我國的研發(fā)水平沿很有限,需迎頭趕上。2.2 MA*+plus軟件2.2.2 MA*+plus簡介MA*+plus全稱為

28、Multiple Array Matri* AND Programmable Logic User System,是美國Altera公司開發(fā)的EDA軟件平臺(tái),用于該公司可編程邏輯器件的設(shè)計(jì)開發(fā),與用戶特定的設(shè)計(jì)要求極易適配,目前已有10.0版本。MA*+plus軟件主要由層次顯示器、信息處理器、設(shè)計(jì)輸入編輯器、設(shè)計(jì)編譯器、設(shè)計(jì)校驗(yàn)器和器件編程器構(gòu)成了一個(gè)完整獨(dú)立的EDA設(shè)計(jì)平臺(tái)見圖2.2所示。MA*+plus軟件支持Altera公司除APE*20K系列之外所有系列的FPGA/CPLD的開發(fā),設(shè)計(jì)文件輸入靈活方便,處理迅速,可直接校驗(yàn)和器件編程,是一個(gè)真正與構(gòu)造無關(guān)的全集成化的設(shè)計(jì)環(huán)境。設(shè)計(jì)輸入

29、編輯器設(shè)計(jì)編輯器設(shè)計(jì)校驗(yàn)器器件編程器MA*+plus信息處理和層次顯示圖2.2 MA*+plus組成MA*+plus軟件平臺(tái)提供了強(qiáng)大的庫功能,有豐富的根本符號(hào)庫和已建好的宏庫供用戶調(diào)用。MA*+plus軟件支持硬件描述語言VHDL、Verilog HDL和Altera公司自己的硬件描述語言AHDL。MA*+plus有3種版本:商業(yè)版、根底版和學(xué)生版。推薦使用PC機(jī)配置:奔騰以上微機(jī),256MB以上存,500M以上硬盤空間。2.2.2 MA*+plus的設(shè)計(jì)環(huán)境圖2.3所示為MA*+plus的激活的管理器界面,工程設(shè)計(jì)的各項(xiàng)操作都是在MA*+plus管理器中進(jìn)展的,所有的設(shè)計(jì)都是從此界面開場的

30、。圖2.3 MA*+plus管理器窗口MA*+plus層次顯示器用來顯示當(dāng)前工程使用和產(chǎn)生的所有文件,并以層次構(gòu)造的方式展現(xiàn)出來,如圖2.4所示,用鼠標(biāo)點(diǎn)擊層次顯示器窗口中的任何一項(xiàng),則可看到相應(yīng)的詳細(xì)信息。MA*+plus的信息處理器用來提示當(dāng)前工程編譯或仿真后的錯(cuò)誤和信息。如圖2.54所示。MA*+plus的圖形編輯器、符號(hào)編輯器、文本編輯器、波形編輯器是用來輸入或編輯用戶的設(shè)計(jì)文件。MA*+plus的編譯器是MA*+plus軟件的核心,功能非常強(qiáng)大,從網(wǎng)表提取到產(chǎn)生編程文件直至芯片下載一氣呵成,并能產(chǎn)生MA*+plus或第3方EDA工具需要的一系列文件和報(bào)告,如圖2.6所示。圖2.4 M

31、A*+plus層次顯示器窗口MA*+plus的仿真器可以對(duì)編譯完成后的工程進(jìn)展功能仿真和時(shí)序仿真。圖2.5 MA*+plus信息處理窗口MA*+plus定時(shí)分析器,提供了3種分析模式:(1)延遲矩陣分析模式。分析多個(gè)源節(jié)點(diǎn)和目標(biāo)節(jié)點(diǎn)之間的傳播延遲路徑。(2)建立/保持時(shí)間分析模式。計(jì)算從輸入引腳到觸發(fā)器、存放器和異步RAM的信號(hào)輸入所需的最小建立時(shí)間和保持時(shí)間。(3)時(shí)序邏輯電路性能分析模式。分析時(shí)序電路的性能,包括限制性能上有限制的延遲,最小的時(shí)鐘周期和最高的電路工作頻率。MA*+plus編譯器第三方EDA設(shè)計(jì)文件(.edf,.sch,.*nf)映射文件(.imf)MA*+plus設(shè)計(jì)文件.

32、gdf,.tdf,.vhd)指定和配置信息 (.acf)第三方EDA仿真和定時(shí)文件(.edo,vo,vho,sdo)功能仿真網(wǎng)表文件(.snf)定時(shí)仿真網(wǎng)表文件(.snf)編程文件(.pof,.sof,.jed)圖2.6 MA*+plus編譯器MA*+plus的編程器可以將編譯器生成的目標(biāo)文件*.pof,*.sof,編程下載到可編程邏輯器件中去,還可以對(duì)器件進(jìn)展校驗(yàn)、檢查、空白片檢查和功能測試。2.2.3 MA*+plus設(shè)計(jì)流程MA*+plus的設(shè)計(jì)流程如圖2.7所示,主要由設(shè)計(jì)輸入、設(shè)計(jì)編譯、設(shè)計(jì)驗(yàn)證包括功能仿真和時(shí)序仿真、器件編程等步驟完成。2.3 VHDL語言2.3.1 VHDL語言概

33、要VHDL是Very High-Speed Integrated Circuit Hardware Description Language的縮寫,即超高速集成電路VHSIC硬件描述語言。它是美國國防部在80年代初研究VHSIC方案時(shí)組織開發(fā)的。由于當(dāng)時(shí)工業(yè)界的迫切需要,IEEE標(biāo)準(zhǔn)化委員會(huì)于1987年將其確定為標(biāo)準(zhǔn)硬件描述語言,即IEEE 10761987標(biāo)準(zhǔn)。1993年,又對(duì)此標(biāo)準(zhǔn)作了進(jìn)一步修定,推出新標(biāo)準(zhǔn),即IEEE 10761993標(biāo)準(zhǔn)。設(shè)計(jì)要求設(shè)計(jì)編譯功能仿真驗(yàn)證 時(shí)序仿真驗(yàn)證設(shè)計(jì)輸入器件編程 在線測試投產(chǎn)設(shè)計(jì)修改圖2.7 MA*+plus軟件工作流程VHDL的主要優(yōu)點(diǎn)是:(1) 覆

34、蓋面廣,描述能力強(qiáng),是一個(gè)多層次的硬件描述語言。(2) VHDL有良好的可讀性,它可以被計(jì)算機(jī)承受,也容易被讀者理解。(3) VHDL本身的生命周期長,因?yàn)閂HDL的硬件描述與工藝技術(shù)無關(guān),不會(huì)因工藝變化而使描述過時(shí)。(4) 支持大規(guī)模設(shè)計(jì)的分解和已有設(shè)計(jì)的再利用。(5) VHDL已成為IEEE成認(rèn)的一個(gè)工業(yè)標(biāo)準(zhǔn),事實(shí)上已成為通用硬件描述語言。(6) 以硬件描述語言VHDL從事設(shè)計(jì)工作,不必考慮線路布局問題,降低設(shè)計(jì)的復(fù)雜度。(7) VHDL更接近于算法的推演,而不必關(guān)系如何用邏輯電路實(shí)現(xiàn)這種算法的過程(8) 硬件描述語言VHDL沒有固定的目標(biāo)器件,從而能在多種廠商的器件之間相互通用,具備很好

35、的彈性和可移植性。2.3.2 VHDL程序的構(gòu)造一、VHDL程序的根本單元VHDL程序的構(gòu)造由構(gòu)造體、實(shí)體、配置CONFIGURATION、程序包PACKAGES和庫LIBRARIES組成。在一個(gè)具體的應(yīng)用程序中,最根本的局部為實(shí)體和構(gòu)造體。在應(yīng)用程序中,實(shí)體是唯一的,構(gòu)造體可以具有多個(gè)。在具有多個(gè)構(gòu)造體的情況下,具體使用哪一個(gè)構(gòu)造體需要指定。配置可以用于描述實(shí)體與構(gòu)造體的連接關(guān)系,設(shè)計(jì)者可以利用配置為實(shí)體選擇不同的構(gòu)造體。二、VHDL程序的構(gòu)造體VHDL語言構(gòu)造體的完整格式如下:ARCHITECTURE 構(gòu)造體 OF 實(shí)體名 IS定義語句BEGIN并行語句1;并行語句2;END ARCHIT

36、ECTURE 構(gòu)造體名;三、VHDL程序的實(shí)體VHDL中實(shí)體的完整格式如下:ENTITY 實(shí)體名 ISGENERIC (類屬表);PORT (端口表);BEGIN 實(shí)體語句局部;END ENTITY 實(shí)體名; 實(shí)體可以用來給所設(shè)計(jì)的系統(tǒng)或者電路命名,該所設(shè)計(jì)的系統(tǒng)或者電路定義一個(gè)與其他模塊進(jìn)展通信的接口。它描述了一個(gè)系統(tǒng)或者電路的外觀圖。實(shí)體中的類屬GENERIC和端口說明PORT用來說明所設(shè)計(jì)的系統(tǒng)或者電路與其它模塊通信的對(duì)象。類屬說明提供靜態(tài)信息通道,適用于規(guī)定端口的大小、實(shí)體中包括元件的多少以及時(shí)間特性等。端口說明是對(duì)外引腳的描述,它包括引腳的名稱、信號(hào)的傳輸方向和傳輸?shù)臄?shù)據(jù)類型。實(shí)體語

37、句局部定義實(shí)體接口中的公共信息。第三章 跑表的設(shè)計(jì)3.1跑表的功能描述這里將要討論的跑表經(jīng)常應(yīng)用在體育競賽中和一些要求準(zhǔn)確計(jì)時(shí)的領(lǐng)域。它的主要功能描述如下:(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)。實(shí)際上啟/停開關(guān)的使用方法與傳統(tǒng)的機(jī)械式計(jì)時(shí)器完全一樣:當(dāng)按下啟/停開關(guān)后,將啟動(dòng)跑表并開場計(jì)時(shí);當(dāng)再按一下啟/停開關(guān)時(shí),將終止跑表的計(jì)時(shí)操作。(3) 要求計(jì)時(shí)精度大于0.01秒。在體育競賽中運(yùn)發(fā)動(dòng)的成績計(jì)時(shí)是以0.01秒為最小單位的,因此要求

38、設(shè)計(jì)的計(jì)時(shí)器能夠顯示0.01秒的時(shí)間。(4) 要求跑表的最長計(jì)時(shí)時(shí)間為24小時(shí)。在現(xiàn)今的各項(xiàng)體育競賽中,最長時(shí)間為12小時(shí)的跑表已經(jīng)足夠了。(5) 要求有系統(tǒng)電源復(fù)位電路的電源復(fù)位信號(hào)。根據(jù)上面跑表的功能描述,不難給出該跑表的輸入和輸出電路。首先來描述一下跑表的輸入電路:(1) 首先要按下復(fù)位開關(guān)reset進(jìn)展跑表的效勞清零操作,使跑表做好計(jì)時(shí)準(zhǔn)備。(2) 當(dāng)做好計(jì)時(shí)準(zhǔn)備后按下跑表的啟/停開關(guān)on_off,跑表開場計(jì)時(shí),跑表的最小計(jì)時(shí)單位是0.01秒;計(jì)時(shí)完畢后再按一下跑表的啟/停開關(guān)on_off,將終止跑表的計(jì)時(shí)操作。(3) 由于跑表的計(jì)時(shí)精度為0.01秒,所以提供應(yīng)跑表部定時(shí)的時(shí)鐘信號(hào)頻率

39、應(yīng)該大于100Hz。這里取1000Hz的時(shí)鐘輸入信號(hào)clk。(4) 當(dāng)對(duì)跑表進(jìn)展更換電源操作時(shí),由系統(tǒng)電源復(fù)位電路提供應(yīng)該系統(tǒng)一個(gè)電源復(fù)位信號(hào)sysreset。對(duì)于該跑表的設(shè)計(jì)中,系統(tǒng)電源的復(fù)位電路是外加的,并不包含在設(shè)計(jì)當(dāng)中。接下來來描述跑表的輸出電路:(1) 由于跑表的最長計(jì)時(shí)時(shí)間為24小時(shí),因此需要一個(gè)8位的顯示器。這樣,在設(shè)計(jì)中就需要一個(gè)八條輸出線,用來選通指定的一位LED七段顯示數(shù)碼管。(2) 顯示器的每一位都采用LED七段顯示數(shù)碼管進(jìn)展顯示,因此輸出電路要有一個(gè)七條輸出線連接在LED七段顯示數(shù)碼管。綜上所述,可以確定跑表的根本方案如下:(1)當(dāng)對(duì)跑表進(jìn)展更換電源操作時(shí),由系統(tǒng)電源復(fù)

40、位電路提供應(yīng)跑表的電源復(fù)位信號(hào)sysreset來控制對(duì)跑表的復(fù)位操作,即使跑表清零。(2) 計(jì)時(shí)操作過程如下:首先按下復(fù)位開關(guān)reset進(jìn)展跑表的復(fù)位清零操作,使跑表做好計(jì)時(shí)準(zhǔn)備。按下跑表的啟/停開關(guān)on_off,跑表計(jì)時(shí)開場。這時(shí),通過輸出線choose7 downto 0來選擇指定的一位LED七段顯示數(shù)碼管。其中,choose7 downto 0以100Hz的頻率使8個(gè)LED七段顯示數(shù)碼管按次序依次點(diǎn)亮,由于頻率很高,所以可以得到一個(gè)無閃爍的穩(wěn)定的跑表計(jì)時(shí)輸出。計(jì)時(shí)完畢后,按下跑表的啟/停開關(guān)on_off,將終止跑表的計(jì)時(shí)操作。然后再次按下復(fù)位開關(guān)reset進(jìn)展跑表的復(fù)位清零操作,為跑表的

41、下次計(jì)時(shí)做準(zhǔn)備。(3) 跑表進(jìn)展計(jì)時(shí)操作的計(jì)時(shí)時(shí)鐘是由外部時(shí)鐘信號(hào)clk提供的。根據(jù)上述考慮,可以畫出跑表系統(tǒng)的構(gòu)造框圖,如圖3-1所示,它說明了整個(gè)系統(tǒng)的外部輸入和輸出情況。圖3.1 跑表系統(tǒng)的構(gòu)造框圖3.2頂層設(shè)計(jì)的VHDL源代碼3.2.1頂層實(shí)體設(shè)計(jì)及VHDL源代碼在任何自頂向下的VHDL設(shè)計(jì)描述中,首先要做的第一步就是描述頂層信號(hào)的接口,正如圖3-1所示。系統(tǒng)的接口包括輸入信號(hào)、輸出信號(hào)、一些輸入輸出雙向信號(hào)以及需要傳輸?shù)?些參數(shù)。需要描述的不僅是信號(hào)的方向,還包括信號(hào)的類型。在上面的描述中,實(shí)際上已經(jīng)規(guī)定了跑表的輸入輸出信號(hào):(1) 輸入信號(hào) 復(fù)位開關(guān)信號(hào)reset; 啟停開關(guān)信號(hào)o

42、n_off; 系統(tǒng)電源復(fù)位信號(hào)sysreset; 外部時(shí)鐘信號(hào)clk。(2) 輸出信號(hào) LED七段顯示數(shù)碼管的選通信號(hào)choose7 downto 0; LED七段顯示數(shù)碼管的輸出信號(hào)segment6 downto 0。我們知道,VHDL的系統(tǒng)接口是由實(shí)體說明來描述的。下面是用圖3-1所示的構(gòu)造框圖生成的跑表頂層實(shí)體說明的VHDL源代碼。源代碼1library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity stopwatch is port

43、 ( reset1 : in std_logic; on_off : in std_logic; sysreset : in std_logic; clk : in std_logic; choose : out std_logic_vector(7 downto 0); segment : out std_logic_vector(6 downto 0);end stopwatch;頂層構(gòu)造體的設(shè)計(jì)及VHDL源代碼在任何自頂向下的VHDL設(shè)計(jì)描述中,設(shè)計(jì)人員常常將整個(gè)設(shè)計(jì)的系統(tǒng)劃分為幾個(gè)模塊,然后采用構(gòu)造描述方式對(duì)整個(gè)系統(tǒng)進(jìn)展描述?,F(xiàn)在我們就來根據(jù)前面描述的構(gòu)造功能,確定使用哪些模塊以及這些

44、模塊之間的關(guān)系。由于跑表的復(fù)位開關(guān)和啟/停開關(guān)采用按鍵的輸入方式,其產(chǎn)生時(shí)刻和持續(xù)時(shí)間的長短是隨機(jī)不定的,且存在因開關(guān)簧片反彈引起的電平抖動(dòng)現(xiàn)象,因此必須在每個(gè)開關(guān)后面安排一個(gè)消抖和同步化電路模塊,以保證系統(tǒng)能捕捉到輸入脈沖,并保證每按一鍵,只形成一個(gè)寬度為系統(tǒng)時(shí)鐘周期的脈沖。同步電路的方案很多,圖3-2是一種既有消抖功能又有同步功能的電路,應(yīng)用的非常廣泛。圖3.2 一種常用的消抖同步電路由于外部時(shí)鐘信號(hào)clk的頻率為1000Hz,而實(shí)際需要的部計(jì)時(shí)時(shí)鐘頻率為100Hz和提供應(yīng)消抖同步電路的頻率為25Hz,因此需要一個(gè)時(shí)鐘分頻電路。通過分頻電路,由外部時(shí)鐘信號(hào)clk產(chǎn)生頻率分別為100Hz和2

45、5Hz的時(shí)鐘信號(hào)。跑表的計(jì)時(shí)操作是在復(fù)位開關(guān)信號(hào)無效并且兩次啟/停開關(guān)信號(hào)有效之間才能夠進(jìn)展,因此需要一個(gè)電路來產(chǎn)生一個(gè)使能信號(hào)。只有當(dāng)使能信號(hào)有效時(shí),才能夠進(jìn)展跑表的定時(shí)計(jì)數(shù)操作。當(dāng)跑表開場正常計(jì)時(shí)的時(shí)候,需要進(jìn)展定時(shí)計(jì)數(shù)操作,由于時(shí)間顯示器是由8個(gè)LED七段顯示數(shù)碼管組成的,因此需要產(chǎn)生8位的計(jì)時(shí)信息:小時(shí)十位信號(hào)、小時(shí)個(gè)位信號(hào)、分十位信號(hào)、分個(gè)位信號(hào)、秒十位信號(hào)、秒個(gè)位信號(hào)、0.1秒位信號(hào)和0.01秒位信號(hào)。這個(gè)定時(shí)計(jì)數(shù)操作可以有一個(gè)定時(shí)計(jì)數(shù)器來完成,定時(shí)計(jì)數(shù)器的功能就是用來產(chǎn)生8位計(jì)時(shí)信息。跑表還要將定時(shí)計(jì)數(shù)的結(jié)果顯示出來,為了節(jié)省資源,我們采用循環(huán)點(diǎn)亮LED七段顯示數(shù)碼管的方法來顯示

46、跑表的計(jì)時(shí)輸出。我們通過信號(hào)choose7 downtown 0來進(jìn)展8個(gè)LED七段顯示數(shù)碼管的選擇,從而將輸出信號(hào)segment6 downtown 0送到相應(yīng)的LED七段顯示數(shù)碼管上以完成跑表計(jì)時(shí)的顯示。跑表顯示的功能可以通過一個(gè)單獨(dú)的電路來實(shí)現(xiàn)。通過上面的說明,不難看出我們可以將跑表系統(tǒng)劃分為5個(gè)模塊:鍵輸入模塊、時(shí)鐘分頻模塊、控制模塊、跑表計(jì)時(shí)模塊、和顯示模塊。這5個(gè)模塊的連接關(guān)系如圖3-3所示。圖3.3 跑表各個(gè)模塊之間的連接關(guān)系下面我們就根據(jù)圖3-3所示的各個(gè)模塊的連接關(guān)系來確定各個(gè)模塊的輸入信號(hào)和輸出信號(hào)。(1) 鍵輸入模塊輸入信號(hào)復(fù)位開關(guān)信號(hào)reset;啟/停開關(guān)信號(hào)on_of

47、f;外部時(shí)鐘信號(hào)clk;來消除抖動(dòng)的時(shí)鐘信號(hào)clk1,由時(shí)鐘分頻模塊提供。輸出信號(hào)去除抖動(dòng)后的復(fù)位信號(hào)reset0;去除抖動(dòng)后的啟/停信號(hào)on_off0。(2) 時(shí)鐘分頻模塊輸入信號(hào)系統(tǒng)電源復(fù)位信號(hào)sysreset;外部時(shí)鐘信號(hào)clk。輸出信號(hào)用來消除抖動(dòng)的時(shí)鐘信號(hào)clk1;跑表的部計(jì)時(shí)時(shí)鐘信號(hào)clk0。(3) 控制模塊輸入信號(hào) 去除抖動(dòng)后的復(fù)位信號(hào)reset0;去除抖動(dòng)后的啟/停信號(hào)on_off0;系統(tǒng)電源復(fù)位信號(hào)sysreset;跑表的部計(jì)時(shí)時(shí)鐘信號(hào)clk0。輸出信號(hào)跑表定時(shí)計(jì)數(shù)的使能信號(hào)enable。(4) 跑表計(jì)時(shí)模塊輸入信號(hào)去除抖動(dòng)后的復(fù)位信號(hào)reset0;系統(tǒng)電源復(fù)位信號(hào)sysre

48、set;跑表的部計(jì)時(shí)時(shí)鐘信號(hào)clk0;跑表定時(shí)計(jì)數(shù)的使能信號(hào)enable。輸出信號(hào)小時(shí)十位信號(hào)hr10;小時(shí)個(gè)位信號(hào)hr;分十位信號(hào)min10;分個(gè)位信號(hào)min;秒十位信號(hào)sec10;秒個(gè)位信號(hào)sec;0.1秒位信號(hào)sec01;0.01秒位信號(hào)sec001。(5) 跑表顯示模塊輸入信號(hào)系統(tǒng)電源復(fù)位信號(hào)sysreset;外部時(shí)鐘信號(hào)clk;小時(shí)十位信號(hào)hr10;小時(shí)個(gè)位信號(hào)hr;分十位信號(hào)min10;分個(gè)位信號(hào)min;秒十位信號(hào)sec10;秒個(gè)位信號(hào)sec;0.1秒位信號(hào)sec01;0.01秒位信號(hào)sec001。輸出信號(hào)LED七段顯示數(shù)碼管的選通信號(hào)choose;LED七段顯示數(shù)碼管的輸出信號(hào)s

49、egment。下面根據(jù)圖3-3所示的各個(gè)模塊的連接關(guān)系,給出頂層構(gòu)造體的VHDL源代碼。其中5個(gè)模塊以元件的形式給出,首先在構(gòu)造體的說明局部進(jìn)展元件說明,然后在構(gòu)造體中進(jìn)展例化調(diào)用。同時(shí)在構(gòu)造體的說明局部還定義了許多中間信號(hào),主要用來在模塊之間傳遞信息。源代碼2 architecture structure of stopwatch is ponent keyin port ( reset : in std_logic; on_off : in std_logic; clk : in std_logic; clk1 : in std_logic; reset0 : out std_logic;

50、on_off0 : out std_logic);end ponent;ponent clk_div port ( sysreset : in std_logic; clk : in std_logic; clk0 :out std_logic; clk1 : out std_logic); end ponent; ponent control port ( sysreset : in std_logic; reset0 : in std_logic; on_off0 : in std_logic; clk0 : in std_logic; enable : out std_logic); e

51、nd ponent; ponent time_counter port ( sysreset : in std_logic; reset0 : in std_logic; enable : in std_logic; clk0 : in std_logic; hr10 : out std_logic_vector(1 downto 0); hr : out std_logic_vector(3 downto 0); min10 : out std_logic_vector(2 downto 0); min : out std_logic_vector(3 downto 0); sec10 :

52、out std_logic_vector(2 downto 0); sec : out std_logic_vector(3 downto 0); sec01 : out std_logic_vector(3 downto 0); sec001 : out std_logic_vector(3 downto 0); end ponent; ponent display port ( sysreset : in std_logic;clk : in std_logic;hr10 : out std_logic_vector(1 downto 0); hr : out std_logic_vect

53、or(3 downto 0); min10 : out std_logic_vector(2 downto 0); min : out std_logic_vector(3 downto 0); sec10 : out std_logic_vector(2 downto 0); sec : out std_logic_vector(3 downto 0); sec01 : out std_logic_vector(3 downto 0); sec001 : out std_logic_vector(3 downto 0);choose : out std_logic_vector(7 down

54、to 0); segment : out std_logic_vector(6 downto 0); end ponent;signal reset0 : std_logic;signal on_off0 : std_logic;signal clk0 : std_logic;signal clk1 : std_logic;signal enable : std_logic;signal reset0 : std_logic;signal hr10 : std_logic_vector(1 downto 0);signal hr : std_logic_vector(3 downto 0);s

55、ignal min10 : std_logic_vector(2 downto 0);signal min : std_logic_vector(3 downto 0);signal sec10 : std_logic_vector(2 downto 0);signal sec : std_logic_vector(3 downto 0);signal sec01 : std_logic_vector(3 downto 0);signal sec001 : std_logic_vector(3 downto 0);begin U0: keyin port mapreset1,on_off,cl

56、k,clk1,reset0,on_off0; U1: clk_div port mapsysreset,clk,clk0,clk1; U2: control port mapsysreset,reset0,on_off0,clk0,enable; U3: time_counter port mapsysreset,reset0,enable,clk0,hr10,hr,min10,min,sec10,sec,sec01,sec001; U4: display port mapsysreset,clk,hr10,hr,min10,min,sec10,sec,sec01,sec001,choose,

57、segment;end structure;3.3跑表各個(gè)模塊的分析及其VHDL源代碼前面已經(jīng)詳細(xì)地討論了跑表系統(tǒng)頂層的設(shè)計(jì)及其VHDL源代碼,這里將重點(diǎn)介紹各個(gè)模塊的實(shí)現(xiàn)及其VHDL源代碼。跑表系統(tǒng)被劃分為5個(gè)模塊,而在頂層設(shè)計(jì)中是將各個(gè)模塊作為元件來引用的,因此需要將各個(gè)模塊設(shè)計(jì)成為獨(dú)立實(shí)體的形式,這樣它們就能作為元件被引用了。3.3.1鍵輸入模塊前面已經(jīng)提到過,由于跑表的復(fù)位開關(guān)和啟/停開關(guān)采用按鍵的輸入方式,其產(chǎn)生時(shí)刻和持續(xù)時(shí)間的長短是隨機(jī)不定的,且存在因開關(guān)簧片反彈引起的電平抖動(dòng)現(xiàn)象,因此必須在每個(gè)開關(guān)后面加一個(gè)鍵輸入模塊。鍵輸入模塊的作用是保證系統(tǒng)能捕捉到輸入脈沖,并保證每按一鍵,

58、只形成一個(gè)寬度為模塊時(shí)鐘周期的脈沖。在數(shù)字系統(tǒng)中同步消抖電路的形式很多,應(yīng)用的也十分廣泛。前面已經(jīng)介紹了一種既有消抖功能又有同步功能的電路,但是這個(gè)電路只適用于得到一個(gè)寬度較大的鍵輸入脈沖。在跑表系統(tǒng)中,要求得到寬度為一個(gè)外部時(shí)鐘信號(hào)clk的周期的鍵入脈沖,因此采用另一種同步消抖電路的形式。該同步消抖電路的功能是:每按一下復(fù)位開關(guān)reset,鍵輸入模塊將輸出一個(gè)寬度為1ms的復(fù)位脈沖reset0;每按一下啟/停開關(guān)on_off,鍵輸入模塊將輸出一個(gè)寬度為1ms的啟/停脈沖on_off0。下面就是鍵輸入模塊中輸入信號(hào)和輸出信號(hào)之間應(yīng)該保持的定時(shí)關(guān)系。由于復(fù)位脈沖reset0和啟/停脈沖on_of

59、f0的定時(shí)關(guān)系是完全相似的,所以在圖3-4中只給出了開關(guān)脈沖on_off0的定時(shí)關(guān)系。圖3.4 鍵輸入模塊中輸入信號(hào)和輸出信號(hào)之間的關(guān)系從圖3.4 可以看出:狀態(tài)控制信號(hào)on_off_tmp1是開關(guān)信號(hào)on_off在時(shí)鐘信號(hào)clk1的下降沿進(jìn)展鎖存的鎖存信號(hào);狀態(tài)控制信號(hào)on_off_tmp2是狀態(tài)控制信號(hào)on_off_tmp1在時(shí)鐘信號(hào)clk1的下降沿進(jìn)展鎖存的鎖存信號(hào);控制信號(hào)on_off_tmp3是狀態(tài)控制信號(hào)on_off_tmp2的反相信號(hào);開關(guān)脈沖就是時(shí)鐘信號(hào)clk1、控制信號(hào)on_off_tmp1、控制信號(hào)on_off_tmp3的邏輯與。根據(jù)圖3-4 所示的定時(shí)關(guān)系對(duì)該鍵輸入模塊進(jìn)

60、展VHDL描述,功能描述如下面源代碼所示。源代碼3.1library ieee;use ieee.std_logic_1164.all;entity keyin is port ( reset : in std_logic;on_off : in std_logic;clk : in std_logic;clk1 : in std_logic;reset0 : out std_logic;on_off0 : out std_logic);end keyin;architecture rtl of keyin issignal on_off_tmp1 :std_logic;signal on_o

溫馨提示

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