基于VHDL的Mealy狀態(tài)機(jī)設(shè)計(jì)_第1頁(yè)
基于VHDL的Mealy狀態(tài)機(jī)設(shè)計(jì)_第2頁(yè)
基于VHDL的Mealy狀態(tài)機(jī)設(shè)計(jì)_第3頁(yè)
基于VHDL的Mealy狀態(tài)機(jī)設(shè)計(jì)_第4頁(yè)
基于VHDL的Mealy狀態(tài)機(jī)設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩14頁(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、基于VHDL的Mealy狀態(tài)機(jī)設(shè)計(jì) 物理與電子信息科學(xué)系 電子信息科學(xué)與技術(shù)專業(yè)姓名:xxx 學(xué)號(hào):指導(dǎo)教師:XXX摘 要: 伴隨著集成電路(IC)技術(shù)的發(fā)展,電子設(shè)計(jì)自動(dòng)化(EDA)逐漸成為重要的設(shè)計(jì)手段,已經(jīng)廣泛應(yīng)用于模擬與數(shù)字電路系統(tǒng)等許多領(lǐng)域。EDA的一個(gè)重要特征就是使用硬件描述語(yǔ)言(HDL)來(lái)完成的設(shè)計(jì)文件,誕生于1982年的VHDL語(yǔ)言是經(jīng)IEEE確認(rèn)的標(biāo)準(zhǔn)硬件描述語(yǔ)言,在電子設(shè)計(jì)領(lǐng)域受到了廣泛的接受。本文首先綜述了EDA技術(shù)的發(fā)展概況,VHDL語(yǔ)言的的歷史、開發(fā)步驟及其優(yōu)點(diǎn);著重介紹了使用EDA技術(shù),用VHDL語(yǔ)言完成了Moore狀態(tài)機(jī)的設(shè)計(jì)工作;通過(guò)開發(fā)工具M(jìn)ax+plus的編

2、譯和功能仿真,驗(yàn)證了方法的合理性和通用性;最后介紹了設(shè)計(jì)結(jié)果分析及狀態(tài)機(jī)設(shè)計(jì)的幾點(diǎn)體會(huì)。關(guān)鍵詞:EDA;VHDL;Mealy型;有限狀態(tài)機(jī)目錄1.引言(2)2.EDA技術(shù)概述(2)2.1什么是EDA (2)2.2 EDA的發(fā)展(3)3.硬件描述語(yǔ)言(HDL)(5)3.1 VHDL語(yǔ)言簡(jiǎn)介(5)3.2 VHDL語(yǔ)言的特點(diǎn)(5)4.MAX+PLUS軟件(8) 4.1 MAX+PLUS簡(jiǎn)介(6) 4.2 MAX+PLUS的特點(diǎn)(7)5.Mealy型狀態(tài)機(jī)的VHDL設(shè)計(jì) (8)5.1狀態(tài)機(jī)的定義(8)5.2狀態(tài)機(jī)的分類(8)5.3態(tài)機(jī)的設(shè)計(jì)步驟(9)5.4Mealy狀態(tài)機(jī)的設(shè)計(jì)(9)5.5 Mealy

3、狀態(tài)機(jī)優(yōu)化(12)6.狀態(tài)機(jī)設(shè)計(jì)的幾點(diǎn)體會(huì) (15)6.1把握整體與細(xì)節(jié)(15)6.2資料的重要性(15)6.3常用工具軟件的運(yùn)用(15)參考文獻(xiàn) (16)致謝 (18)1、引言20世紀(jì)末,電子技術(shù)得到了飛速發(fā)展,在其推動(dòng)下,現(xiàn)代電子技術(shù)幾乎滲透到了社會(huì)的各個(gè)領(lǐng)域,有力的推動(dòng)了社會(huì)生產(chǎn)力的發(fā)展和社會(huì)信息化程度的提高,同時(shí)也使現(xiàn)代電子產(chǎn)品性能進(jìn)一步提高,產(chǎn)品更新?lián)Q代的節(jié)奏也越來(lái)越快?,F(xiàn)代電子設(shè)計(jì)的核心是EDA(Electronic Design Automation)技術(shù)。EDA技術(shù)就是依賴功能強(qiáng)大的計(jì)算機(jī),在EDA工具軟件平臺(tái)上,對(duì)以硬件描述語(yǔ)言HDL(Hardware Description

4、 Languge)為系統(tǒng)邏輯描述手段完成的設(shè)計(jì)文件,自動(dòng)的完成邏輯編譯、邏輯簡(jiǎn)化、邏輯分割、邏輯綜合、結(jié)構(gòu)綜合(布局布線),以及邏輯優(yōu)化和仿真測(cè)試,直至實(shí)現(xiàn)即定的電子線路系統(tǒng)功能。EDA技術(shù)是微電子技術(shù)和現(xiàn)代電子設(shè)計(jì)技術(shù)的結(jié)合,是這兩個(gè)領(lǐng)域共同孕育的奇葩。EDA技術(shù)在硬件實(shí)現(xiàn)了方面融合了大規(guī)模集成電路制造技術(shù)、IC版圖設(shè)計(jì)技術(shù)、ASIC測(cè)試和封裝技術(shù)、FPGA/CPLD編程下載技術(shù)、自動(dòng)測(cè)試技術(shù)等;在計(jì)算機(jī)輔助工程方面融合了計(jì)算機(jī)輔助設(shè)計(jì)(CAD)、計(jì)算機(jī)輔助制造(CAM)、計(jì)算機(jī)輔助測(cè)試(CAT)、計(jì)算機(jī)輔助工程(CAE)技術(shù)以及多種計(jì)算機(jī)云煙的設(shè)計(jì)概念;而在現(xiàn)代電子學(xué)方面則容納了更多的內(nèi)容

5、,如電子線路設(shè)計(jì)理論、數(shù)字信號(hào)處理技術(shù)、數(shù)字系統(tǒng)建模和優(yōu)化技術(shù)及長(zhǎng)線技術(shù)理論等。因此,EDA技術(shù)為現(xiàn)代電子理論和設(shè)計(jì)的表達(dá)與實(shí)現(xiàn)提供了可能性。在現(xiàn)代技術(shù)的所有領(lǐng)域中,得以飛速發(fā)展的科學(xué)技術(shù)多為計(jì)算機(jī)輔助設(shè)計(jì),而非自動(dòng)化設(shè)計(jì)。顯然,最早進(jìn)入設(shè)計(jì)自動(dòng)化的技術(shù)領(lǐng)域之一是電子技術(shù),這就是為什么電子技術(shù)始終處于所有科學(xué)技術(shù)發(fā)展最前列的原因之一。本文主要運(yùn)用EDA技術(shù),通過(guò)MAX+PLUS軟件對(duì)Mealy狀態(tài)機(jī)進(jìn)行設(shè)計(jì),并對(duì)程序及仿真結(jié)果進(jìn)行分析和概括。2. EDA技術(shù)概述2.1什么是EDA在電子設(shè)計(jì)技術(shù)領(lǐng)域,可編程邏輯器件(如PLD,GAL)的應(yīng)用,已有了很好的普及。隨著可編程邏輯器件集成規(guī)模不斷擴(kuò)大,

6、自身功能的不斷完善和計(jì)算機(jī)輔助設(shè)計(jì)技術(shù)的提高,在現(xiàn)代電子系統(tǒng)設(shè)計(jì)領(lǐng)域中的EDA便應(yīng)運(yùn)而生了。傳統(tǒng)的數(shù)字電路設(shè)計(jì)模式,如利用卡諾圖的邏輯化簡(jiǎn)手段以及難懂的布爾方程表達(dá)方式和相應(yīng)的TTL或4000系列小規(guī)模集成芯片的堆砌技術(shù)正在迅速地退出歷史舞臺(tái)。EDA是一種實(shí)現(xiàn)電子系統(tǒng)或電子產(chǎn)品自動(dòng)化設(shè)計(jì)的技術(shù),它與電子技術(shù)、微電子技術(shù)的發(fā)展密切相關(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ī)輔助測(cè)試)和CAE(計(jì)算機(jī)輔助工程)的概念發(fā)展而來(lái)的2。EDA技術(shù)就是以計(jì)算機(jī)為工具,在EDA軟件平臺(tái)上

7、,根據(jù)硬件描述語(yǔ)言HDL完成的設(shè)計(jì)文件,自動(dòng)地完成邏輯編譯、化簡(jiǎn)、分割、綜合及優(yōu)化、布局線、仿真,直至對(duì)于特定目標(biāo)芯片的適配編譯、邏輯映射和編程下載等工作。設(shè)計(jì)者的工作僅限于利用軟件的方式來(lái)完成對(duì)系統(tǒng)硬件功能的描述,在EDA工具的幫助下和應(yīng)用相應(yīng)的FPG/CPLD器件,就可以得到最后的設(shè)計(jì)結(jié)果。盡管目標(biāo)系統(tǒng)是硬件,但整個(gè)設(shè)計(jì)和修改過(guò)程如同完成軟件設(shè)計(jì)一樣方便和高效。當(dāng)然,這里的所謂EDA主要是指數(shù)字系統(tǒng)的自動(dòng)化設(shè)計(jì),因?yàn)檫@一領(lǐng)域的軟硬件方面的技術(shù)已比較成熟,應(yīng)用的普及程度也已比較大。而模擬電子系統(tǒng)的EDA正在進(jìn)入實(shí)用,其初期的EDA工具不一定需要硬件描述語(yǔ)言。此外,從應(yīng)用的廣度和深度來(lái)說(shuō),由于

8、電子信息領(lǐng)域的全面數(shù)字化,基于EDA的數(shù)字系統(tǒng)的設(shè)計(jì)技術(shù)具有更大的應(yīng)用市場(chǎng)和更緊迫的需求性。2.2 EDA的發(fā)展EDA(Electronics Design Automation 電子設(shè)計(jì)自動(dòng)化)技術(shù)伴隨著半導(dǎo)體技術(shù)、集成技術(shù)和計(jì)算機(jī)技術(shù)的發(fā)展,經(jīng)歷了計(jì)算機(jī)輔助設(shè)CAD(Computer Assist Design)、計(jì)算機(jī)輔助工程設(shè)計(jì)CAE(Computer AssistEngineering Design)和電子設(shè)計(jì)自動(dòng)化ESDA(Electronics Systems Design Automation)三個(gè)發(fā)展階段。90年代以來(lái),EDA技術(shù)的發(fā)展和普及給電子系統(tǒng)的設(shè)計(jì)帶來(lái)了革命性的變化

9、,并已滲透到電子系統(tǒng)設(shè)計(jì)的各個(gè)領(lǐng)域。目前,EDA工具的應(yīng)用范圍涉及模擬、微波等各個(gè)領(lǐng)域,可以實(shí)現(xiàn)各個(gè)領(lǐng)域電子系統(tǒng)設(shè)計(jì)的測(cè)試、設(shè)計(jì)仿真和布局布線等。EDA技術(shù)是以計(jì)算機(jī)硬件和系統(tǒng)軟件為基本工作平臺(tái),在電路與系統(tǒng)、數(shù)據(jù)庫(kù)、圖形學(xué)、圖論、拓?fù)溥壿?、?jì)算數(shù)學(xué)、優(yōu)化理論等諸多學(xué)科基礎(chǔ)上研制成的、商品化的EDA通用支撐軟件和應(yīng)用軟件包。電子設(shè)計(jì)工程師只要完成對(duì)電子系統(tǒng)的功能描述,就可以利用計(jì)算機(jī)和EDA工具完成電路的功能設(shè)計(jì)、邏輯設(shè)計(jì)、性能分析、時(shí)序測(cè)試直至印刷電路板PCB(Printed Circuit Board)的自動(dòng)設(shè)計(jì)。近十年來(lái),微電子技術(shù)和計(jì)算機(jī)技術(shù)的進(jìn)步及電子產(chǎn)品市場(chǎng)運(yùn)作節(jié)奏的加快,涉及諸多

10、領(lǐng)域的現(xiàn)代電子設(shè)計(jì)技術(shù)已邁入一個(gè)全新的階段。應(yīng)用系統(tǒng)設(shè)計(jì)從單純的專用集成電路ASIC(Application SpecificIntegrated Circuit)設(shè)計(jì)走向了系統(tǒng)設(shè)計(jì)和單片系統(tǒng)SOC(System On a Chip)設(shè)計(jì),尤其是20 世紀(jì)90 年代初的系統(tǒng)編程技術(shù)ISP(In System Programmability),為電子產(chǎn)品的設(shè)計(jì)和生產(chǎn)帶來(lái)了革命性的變化。3.硬件描述語(yǔ)言(HDL)3.1VHDL語(yǔ)言 VHDL(Very2High2Speed Integrated CircuitHard2wareDescriptionLanguage)是用來(lái)描述從抽樣到具體級(jí)別硬件的

11、工業(yè)標(biāo)準(zhǔn)語(yǔ)言。80 年代初期,因?yàn)槊绹?guó)軍事工業(yè)需要描述電子系統(tǒng)的標(biāo)準(zhǔn)方法,美國(guó)開始進(jìn)行VHDL的開發(fā),它是美VHSIC(超高速集成電路)的一部分,并于1986年和1987年分別成為美國(guó)和IEEE的工業(yè)標(biāo)準(zhǔn)。此后,各EDA公司相繼推出了自己的VHDL設(shè)計(jì)環(huán)境,并迅速地被接納為一種通用的設(shè)計(jì)交換媒介。作為一種規(guī)范和建模語(yǔ)言,它不只是意味著編寫代碼,而且也便于建立層次結(jié)構(gòu)和用元件庫(kù)進(jìn)行設(shè)計(jì)。 VHDL翻譯成中文就是超高速集成電路硬件描述語(yǔ)言,是一種快速的電路設(shè)計(jì)工具,功能涵蓋了電路描述、電路合成、電路仿真等三大電路設(shè)計(jì)工作。VHDL 是用來(lái)描述從抽象到具體硬件級(jí)別的工業(yè)標(biāo)準(zhǔn)語(yǔ)言,并已成為一種通用的硬

12、件設(shè)計(jì)交換媒介。計(jì)算機(jī)輔助工程軟件的供應(yīng)商已把VHDL作為其CAD或EDA軟件輸入與輸出的標(biāo)準(zhǔn),例如SYNOPSYS、ALTERA、CA-DENCE、VIEWLOGIC 等EDA廠商均提供了VHDL的編輯器,并在其仿真工具、綜合工具和布圖工具中提供了對(duì)VHDL 的支持。特別值得一提的是ALTERA公司不僅提供大規(guī)模的CPLD 和EPGA器件,同時(shí)也提供一套十分有特色的綜合工具M(jìn)AXPLUS-,設(shè)計(jì)者既可以使用原理圖輸入,也可以使用文本輸入方式,更可以二者混合輸入。從編譯、綜合、布線到仿真、下載一氣呵成,十分方便。3.2 VHDL語(yǔ)言的特點(diǎn)VHDL是一種面向設(shè)計(jì)的標(biāo)準(zhǔn)硬件描述語(yǔ)言,主要用于描述數(shù)

13、字系統(tǒng)的結(jié)構(gòu)、行為、功能和接口。VHDL不僅保留了一般計(jì)算機(jī)高級(jí)語(yǔ)言簡(jiǎn)潔、高效的編程風(fēng)格和規(guī)范易讀的語(yǔ)言形式,而且還包含了許多獨(dú)特的具有硬件特性的語(yǔ)言。其主要特點(diǎn)如下。VHDL支持?jǐn)?shù)字電路的開發(fā)環(huán)境,并能抽象表示電路的結(jié)構(gòu)和行為,降低了硬件電路的設(shè)計(jì)難度,并能進(jìn)行系統(tǒng)的早期模擬以保證設(shè)計(jì)的正確性。VHDL支持多種設(shè)計(jì)方法:自頂向下、自底向上或混合的方法;支持邏輯設(shè)計(jì)中層次與領(lǐng)域的描述;支持行為描述、RTL方式描述、門級(jí)描述。VHDL設(shè)計(jì)與工藝無(wú)關(guān)。在傳統(tǒng)的硬件設(shè)計(jì)中,設(shè)計(jì)者必須手工檢查與工藝有關(guān)的因素,如時(shí)序、面積、驅(qū)動(dòng)強(qiáng)度等。用VHDL設(shè)計(jì)的最大優(yōu)點(diǎn)是在工藝上無(wú)需花費(fèi)過(guò)多的時(shí)間和精力。4.M

14、AX+PLUS4.1 MAX+PLUS簡(jiǎn)介本次設(shè)計(jì)選用的開發(fā)環(huán)境為美國(guó)ALTERA公司自行設(shè)計(jì)開發(fā)的EDA工具M(jìn)AX+PLUS,其全稱為Mu1tiple Array Matrix and Programmable Logic User Systems。它具有運(yùn)行速度快,界面統(tǒng)一,功能集中,易學(xué)易用等特點(diǎn)。它的器件系列從最初的Max系列到最新的FLEX10K系列,從500門到10萬(wàn)門提供了滿足各種條件需要的一系列器件。其中最為先進(jìn)的FLEX系列采用獨(dú)特的快通道技術(shù),使得器件的可預(yù)測(cè)性大大增強(qiáng),速度也得到提高,資源利用率達(dá)70%左右時(shí),F(xiàn)LEX10K系列可以提供7OMHz左右的工作速度。MAX+P

15、LUS結(jié)合各種系列器件的物理結(jié)構(gòu),提供了各種的優(yōu)化措施,以在提高工作速度和資源利用率之間給以平衡。從而對(duì)大多數(shù)設(shè)計(jì)提供解決方案。MAX+PLUS提供了原理圖輸入、文本輸入(采用硬件描述語(yǔ)言)和波形輸入等多種輸入手段,并可以任意組合使用。利用該工具所配備的編輯、編譯、仿真、綜合、芯片編程等功能,可將設(shè)計(jì)電路圖或電路描述程序變成基本的邏輯單元寫入到可編程的芯片中(如即GA芯片),做成ASIC芯片。用戶首先對(duì)所做項(xiàng)目進(jìn)行設(shè)計(jì),明確設(shè)計(jì)目的、設(shè)計(jì)要求;然后利用原理圖輸入方式或文本輸入方式進(jìn)行設(shè)計(jì)輸入;輸入完成后,進(jìn)行編譯,若編譯過(guò)程中發(fā)現(xiàn)錯(cuò)誤,則檢查設(shè)計(jì)輸入,修改錯(cuò)誤,直至沒(méi)有錯(cuò)誤發(fā)生;編譯完成后,就

16、可以進(jìn)行仿真,檢查設(shè)計(jì)是否達(dá)到設(shè)計(jì)要求,否則的話,還需重新檢查設(shè)計(jì)輸入;仿真結(jié)果達(dá)到要求后,就可以進(jìn)行燒錄,把設(shè)計(jì)程序下載到目的芯片中;最后把芯片放到實(shí)際系統(tǒng)中進(jìn)行驗(yàn)證、測(cè)試。圖2給出了用MAX+PLUS進(jìn)行FP以開發(fā)的流程。AlteraMax+plus設(shè)計(jì)輸入編譯仿真燒錄驗(yàn)證圖2 用MAX+PLUS開發(fā)的FPGA的流程示意圖 MAX+PLUS借助EDIF網(wǎng)表文件,SRAM目標(biāo)文件(.sof)、LPM、VerilogHDL和VHDL能與Candence、Mentor Graphics、OrCAD、Synopsys、Synplicity和Viewlogic。等公司提供的其它多種EDA工具接口。M

17、AX+PLUS編譯器可以在PC機(jī)及各種工作站平臺(tái)上運(yùn)行,這使MAX+PLUS成為工業(yè)界中唯一與平境。42 MAX+PLUS的特點(diǎn)MAX+PLUS的特點(diǎn):(1)MAX+PLUS的編譯核心支持Altera公司的FLEX 10K、FLE 8K、MAX9000、MAX7000、FLASHHlogic、MAX5000、Classic系列可編程邏輯器件。(2)MAX+PLUS的設(shè)計(jì)輸入、處理與校驗(yàn)功能一起提供了全集成化的一套可編程邏輯開發(fā)工具,可加快動(dòng)態(tài)調(diào)試,縮短開發(fā)周期。(3)MAX+PLUS支持各種HDL設(shè)計(jì)輸入,包括VHDL、Verilog和Altera AHDL。(4)MAX+PLUS與其他工業(yè)標(biāo)

18、準(zhǔn)設(shè)計(jì)輸入、綜合與校驗(yàn)工具鏈接。與CAE工具的接口符合EDIF200和209、參數(shù)化模塊庫(kù)(LPM)、Verilog、VHDL及其他標(biāo)準(zhǔn)。設(shè)計(jì)者可使用Altera或標(biāo)準(zhǔn)CAE 設(shè)計(jì)工具去建立邏輯設(shè)計(jì),使用MAX+PLUS 編譯器對(duì)Altera器件設(shè)計(jì)進(jìn)行編譯,并使用Altera或其他CAE校驗(yàn)工具進(jìn)行器件或板級(jí)仿真。MAX+PLUS支持與Synopsys、Viewlogic、Mentor Graphics、Cadence、Exemplar、Data I/O、Intergraph、Minc、OrCAD等公司提供的工具接口。5.Mealy型狀態(tài)機(jī)的VHDL設(shè)計(jì)5.1狀態(tài)機(jī)的定義狀態(tài)機(jī)是由狀態(tài)寄存器

19、和組合邏輯電路構(gòu)成的,能夠根據(jù)控制信號(hào)按照預(yù)先設(shè)定的狀態(tài)進(jìn)行狀態(tài)轉(zhuǎn)移,是協(xié)調(diào)相關(guān)信號(hào)動(dòng)作,完成特定操作的控制中心,屬于種時(shí)序邏輯電路。常用的狀態(tài)機(jī)有三個(gè)部分組成,即當(dāng)前狀態(tài)寄存器(Current State,CS)、下一狀態(tài)組合邏輯(Next State,NS)和輸出組合邏輯(Output Logic,OL)。5.2狀態(tài)機(jī)的分類從信號(hào)輸出方式上,有限狀態(tài)機(jī)分為:Moore型和Mealy型兩類,從輸出時(shí)序上看前者屬于異步輸出狀態(tài)機(jī),后者屬于同步輸出狀態(tài)機(jī)(所謂同步或異步都是相對(duì)于時(shí)鐘信號(hào)而言的。不依賴于時(shí)鐘而有效的信號(hào)稱為異步信號(hào),而依賴于時(shí)鐘才有效的信號(hào)稱為同步信號(hào))。Moore型有限狀態(tài)機(jī)的

20、輸出僅為當(dāng)前狀態(tài)的函數(shù), 這類狀態(tài)機(jī)在輸入發(fā)生變化后再等待時(shí)鐘的到來(lái),時(shí)鐘使?fàn)顟B(tài)發(fā)生變化時(shí)才導(dǎo)致輸出的變化;Mealy型有限狀態(tài)機(jī)的輸出是當(dāng)前狀態(tài)和所有輸入信號(hào)的函數(shù),它的輸出在輸入變化后立即發(fā)生。從結(jié)構(gòu)圖上看它們的區(qū)別如圖3和圖4所示。PROCESSCOMcomb_outputscurrent_state圖3 Moore型狀態(tài)機(jī)PROCESSCOMinputcomb_outputscurrent_state圖4 Mealy型狀態(tài)機(jī)與Moore型狀態(tài)機(jī)相比較,Mealy狀態(tài)機(jī)的輸出變化要領(lǐng)先一個(gè)時(shí)鐘周期。通過(guò)狀態(tài)機(jī)的工作時(shí)序圖比較容易區(qū)分這兩種類型的狀態(tài)機(jī),如果單純從VHDL代碼來(lái)區(qū)分,就主要

21、看他的輸出與輸入是否有關(guān)系,有關(guān)系的就是Moore型狀態(tài)機(jī),無(wú)關(guān)的就是Mealy型狀態(tài)機(jī).正確的區(qū)別兩類狀態(tài)機(jī)是正確設(shè)計(jì)的前提,只有才能按照自己的意愿或者要求去設(shè)計(jì)不同類型的狀態(tài)機(jī)。5.3狀態(tài)機(jī)的設(shè)計(jì)步驟利用VHDL語(yǔ)言設(shè)計(jì)狀態(tài)機(jī),所有的狀態(tài)可表示為case-when結(jié)構(gòu)中的一個(gè)when子句,而狀態(tài)的轉(zhuǎn)換則通過(guò)if-then-else語(yǔ)句實(shí)現(xiàn)。1、利用枚舉型定義狀態(tài)信號(hào)type StateType is(s0,s1,s2); - 枚舉類型signal present_state,next_state:StateType; - 現(xiàn)態(tài)和次態(tài)信號(hào)2、建立狀態(tài)機(jī)進(jìn)程state_comb:process

22、(present_state,din) 狀態(tài)轉(zhuǎn)換進(jìn)程beginend process state_comb;73、在進(jìn)程中定義狀態(tài)的轉(zhuǎn)換在進(jìn)程中使用case-when語(yǔ)句,因狀態(tài)s0是狀態(tài)轉(zhuǎn)換的起點(diǎn),因此,把s0作為case語(yǔ)句中第一個(gè)when子句項(xiàng),然后利用if-then-else語(yǔ)句列出轉(zhuǎn)移到次態(tài)的條件,即可寫出狀態(tài)轉(zhuǎn)換流程:case present_state iswhen s0=z=0;if din=1then next_state=s1;else next_state=s0;end if;5.4 Mealy型狀態(tài)機(jī)的設(shè)計(jì)與Moore型狀態(tài)機(jī)相比較,Mealy機(jī)的輸出變化要領(lǐng)先一個(gè)周期

23、,即一旦輸入信號(hào)或狀態(tài)發(fā)生變化,輸出信號(hào)即刻發(fā)生變化。Mealy狀態(tài)機(jī)的結(jié)構(gòu)框圖如圖5所示:input組合邏輯寄存器reset當(dāng)前狀態(tài)outputclk圖5 Mealy狀態(tài)機(jī)結(jié)構(gòu)框圖對(duì)Mealy狀態(tài)機(jī)設(shè)計(jì)首先要把整個(gè)流程圖畫出來(lái),根據(jù)流程圖設(shè)計(jì)各個(gè)部分。下圖是流程圖:根據(jù)系統(tǒng)要求建立狀態(tài)轉(zhuǎn)換圖根據(jù)狀態(tài)轉(zhuǎn)移圖編寫VHDL設(shè)計(jì)程序利用EDA工具進(jìn)行仿真、驗(yàn)證 圖6 狀態(tài)機(jī)的VHDL設(shè)計(jì)流程圖根據(jù)流程圖的設(shè)計(jì)步驟畫出狀態(tài)轉(zhuǎn)換圖,如下圖所示:ST1ST2ST3ST4ST01/100000/101111/101010/110110/010101/101000/100111/01001圖7 狀態(tài)轉(zhuǎn)換圖然后

24、根據(jù)狀態(tài)轉(zhuǎn)換圖寫出程序代碼,程序如下面所示:library ieee;use ieee.std_logic_1164.all;entity mealy2 isport ( clk,datain,reset:in std_logic;q:out std_logic_vector(4 downto 0);end mealy2;architecture behav of mealy2 istype states is (st0,st1,st2,st3,st4);signal stx : states;signal q1 : std_logic_vector(4 downto 0);begincomr

25、eg : process(clk,reset)beginif reset=1 then stx if datain =1 then stx= st1;else stx if datain =0 then stx= st2;else stx if datain =1 then stx= st3;else stx if datain =0 then stx= st4;else stx if datain =1 then stx= st0;else stx stxif datain=1 then q2 :=10000;else q2:=01010;end if;when st1=if datain=

26、0 then q2 :=10111;else q2:=10100;end if;when st2=if datain=1 then q2 :=10101;else q2:=10011;end if;when st3=if datain=0 then q2 :=11011;else q2:=01001;end if;when st4=if datain=1 then q2 :=11101;else q2:=01101;end if;when others = q2:=00000;end case;if clkevent and clk =1 then q1=q2;end if;end proce

27、ss com1;q=q1;end behav;程序分析:這段程序是2進(jìn)程Mealy型狀態(tài)機(jī)。由entity語(yǔ)句引導(dǎo)的是主體,由architecture語(yǔ)句引導(dǎo)的是結(jié)構(gòu)體。在結(jié)構(gòu)體中,進(jìn)程comreg是時(shí)序與組合混合型進(jìn)程,它將狀態(tài)機(jī)的主控時(shí)序電路和主控狀態(tài)譯碼電路同時(shí)用一個(gè)進(jìn)程來(lái)表達(dá)。這個(gè)進(jìn)程也是狀態(tài)轉(zhuǎn)換過(guò)程。reset復(fù)位后初始狀態(tài)設(shè)置為st0,當(dāng)datain為高電平且clk信號(hào)處于上升延時(shí),將st1賦值給stx, 即狀態(tài)由st0轉(zhuǎn)換為st1;當(dāng)datain為底電平且clk信號(hào)處于上升延時(shí),將st2賦值給stx,即狀態(tài)由st1轉(zhuǎn)換為st2;當(dāng)datain為高電平且clk信號(hào)處于上升延時(shí),將s

28、t3賦值給stx, 即狀態(tài)由st2轉(zhuǎn)換為st3;當(dāng)datain為底電平且clk信號(hào)處于上升延時(shí),將st4賦值給stx, 即狀態(tài)由st3轉(zhuǎn)換為st4;當(dāng)datain為高電平且clk信號(hào)處于上升延時(shí),將st4賦值給stx, 即狀態(tài)由st4轉(zhuǎn)換為st0。其他情況狀態(tài)均轉(zhuǎn)換為st0。進(jìn)程com1負(fù)責(zé)根據(jù)狀態(tài)和輸入信號(hào)給出不同的輸出信號(hào)。這個(gè)進(jìn)程是輸出過(guò)程。當(dāng)為狀態(tài)st0時(shí),datain為高電平,則輸出為“10000”,datain為低電平,則輸出為“01010”;當(dāng)為狀態(tài)st1時(shí),datain為高電平,則輸出為“10100”,datain為低電平,則輸出為“10111”;當(dāng)為狀態(tài)st2時(shí),datain

29、為高電平,則輸出為“10101”,datain為低電平,則輸出為“10011”;當(dāng)為狀態(tài)st3時(shí),datain為高電平,則輸出為“01001”,datain為低電平,則輸出為“11011”;當(dāng)為狀態(tài)st4時(shí),datain為高電平,則輸出為“11101”,datain為低電平,則輸出為“01101”。此進(jìn)程最后用一個(gè)IF語(yǔ)句產(chǎn)生一個(gè)鎖存器,將q2鎖存后再輸出。由于是同步鎖存的緣故,沒(méi)有發(fā)生鎖存后延時(shí)一個(gè)時(shí)鐘周期的現(xiàn)象。對(duì)程序進(jìn)行編譯仿真后得出幾幅仿真圖,如下所示:其中reset為復(fù)位信號(hào),高電平有效,datain為輸入信號(hào),clk是時(shí)鐘信號(hào),上升延有效,q為輸出信號(hào),q165為輸出q的16進(jìn)值,

30、stx為狀態(tài)。此圖的狀態(tài)由st0、st1、st2、st3和st4依次循環(huán)轉(zhuǎn)換下去。reset信號(hào)復(fù)位以后,狀態(tài)無(wú)條件轉(zhuǎn)換為狀態(tài)st0。此后每一個(gè)clk上升延依照datain輸入信號(hào)的高低進(jìn)行狀態(tài)轉(zhuǎn)換。 此圖標(biāo)尺處體現(xiàn)了狀態(tài)由st1轉(zhuǎn)換到st0。當(dāng)狀態(tài)為st1,輸入datain為高電平時(shí),狀態(tài)由st1到st0,而不是st1到st2。此圖標(biāo)尺處體現(xiàn)了狀態(tài)由st2轉(zhuǎn)換到st0。當(dāng)狀態(tài)為st2,輸入datain為低電平時(shí),狀態(tài)由st2到st0,而不是st2到st3。此圖標(biāo)尺處體現(xiàn)了狀態(tài)由st3轉(zhuǎn)換到st0。當(dāng)狀態(tài)為st3,輸入datain為高電平時(shí),狀態(tài)由st3到st0,而不是st3到st4。5.5M

31、ealy狀態(tài)機(jī)優(yōu)化 毛刺的產(chǎn)生,一方面由于通常的狀態(tài)機(jī)中都包含有組合邏輯進(jìn)程,使得輸出信號(hào)在時(shí)鐘的有效邊沿產(chǎn)生毛刺;另一方面當(dāng)狀態(tài)信號(hào)是多位值的時(shí)候,在電路中就對(duì)應(yīng)了多條信號(hào)線,如果同時(shí)有幾條信號(hào)線跳變,由于存在傳輸延遲,各信號(hào)線上的值發(fā)生改變的時(shí)間會(huì)有先后,使得狀態(tài)遷移的時(shí)候在初始狀態(tài)和目的狀態(tài)間出現(xiàn)臨時(shí)狀態(tài),雖然它只存在了很短的時(shí)間,但仍然會(huì)影響電路的穩(wěn)定。對(duì)于第一種情況,在大多數(shù)條件下,毛刺對(duì)電路的影響可忽略不計(jì),但是當(dāng)狀態(tài)機(jī)的輸出信號(hào)作為三態(tài)使能控制或者時(shí)鐘信號(hào)使用的時(shí)候,就必須要消除毛刺。消除的方法可以用改進(jìn)有限狀態(tài)機(jī)的描述方法來(lái)解決這個(gè)問(wèn)題:把時(shí)鐘信號(hào)引入組合進(jìn)程,用時(shí)鐘來(lái)同步狀態(tài)

32、遷移和信號(hào)輸出,在電路上表現(xiàn)為先將輸出信號(hào)保存在觸發(fā)器中,當(dāng)時(shí)鐘有效邊沿到來(lái)的時(shí)候輸出;或者在電路設(shè)計(jì)時(shí),選用延遲時(shí)間較小的器件,且盡可能采用級(jí)數(shù)少的電路結(jié)構(gòu)。 對(duì)于第二種情況,需要重新調(diào)整狀態(tài)編碼。一般而言,編有順序編碼、One-Hot編碼、格雷碼、隨機(jī)編碼等。如果vhdl描述中沒(méi)有對(duì)各個(gè)狀態(tài)的編碼專門指定,模擬器和綜合器一般按照狀態(tài)的定義順序進(jìn)行編碼。為了消除傳輸延遲造成的毛刺,理想的解決方法是使相鄰狀態(tài)間只有1位信號(hào)改變,因此應(yīng)該按照格雷碼制進(jìn)行編碼。在某些情況下,狀態(tài)編碼不能保證只有一位發(fā)生變化時(shí),有2種編碼方法可以保證狀態(tài)機(jī)編碼仍然維持。位變化,第一種方法是一個(gè)狀態(tài)分配多個(gè)編碼;第二

33、種方法是在狀態(tài)譯碼時(shí)采用分組譯碼,這樣就保證了狀態(tài)遷移時(shí)只有。位狀態(tài)線發(fā)生變化。在同步電路中,一般情況下“毛刺”不會(huì)產(chǎn)生重大影響。因?yàn)椤懊獭眱H發(fā)生在時(shí)鐘有效邊沿之后的一小段時(shí)間內(nèi),只要在下一個(gè)時(shí)鐘有效邊沿到來(lái)之前“毛刺”消失即可。但當(dāng)狀態(tài)機(jī)的輸出信號(hào)作為其他功能模塊的控制信號(hào),例如作為異步控制、態(tài)使能控制或時(shí)鐘信號(hào)使用時(shí),將會(huì)使受控模塊發(fā)生誤動(dòng)作,造成系統(tǒng)工作混亂。因此,在這種情況下必須通過(guò)改變?cè)O(shè)計(jì)消除毛刺。 消除狀態(tài)機(jī)輸出信號(hào)的“毛刺”一般可采用三種方案: (1)調(diào)整狀態(tài)編碼,使相鄰狀態(tài)間只有位信號(hào)改變,從而消除競(jìng)爭(zhēng)冒險(xiǎn)的發(fā)生條件,避免了毛刺的產(chǎn)生。常采用的編碼方式為格雷碼。它適用于順序遷

34、移的狀態(tài)機(jī)。 (2)在有限狀態(tài)機(jī)的基礎(chǔ)上采用時(shí)鐘同步信號(hào),即把時(shí)鐘信號(hào)引入組合進(jìn)程。狀態(tài)機(jī)每一個(gè)輸出信號(hào)都經(jīng)過(guò)附加的輸出寄存器,并由時(shí)鐘信號(hào)同步,因而保證了輸出信號(hào)沒(méi)有毛刺。這種方法存在一些弊端:由于增加了輸出寄存器,硬件開銷增大,這對(duì)于一些寄存器資源較少的目標(biāo)芯片是不利的;從狀態(tài)機(jī)的狀態(tài)位到達(dá)輸出需要經(jīng)過(guò)兩級(jí)組合邏輯,這就限制了系統(tǒng)時(shí)鐘的最高工作頻率;由于時(shí)鐘信號(hào)將輸出加載到附加的寄存器上,所以在輸出端得到信號(hào)值的時(shí)間要比狀態(tài)的變化延時(shí)一個(gè)時(shí)鐘周期。(3)直接把狀態(tài)機(jī)的狀態(tài)碼作為輸出信號(hào),即采用狀態(tài)碼直接輸出型狀態(tài)機(jī),使?fàn)顟B(tài)和輸出信號(hào)一致,使得輸出譯碼電路被優(yōu)化掉了,因此不會(huì)出現(xiàn)競(jìng)爭(zhēng)冒險(xiǎn)。這

35、種方案,占用芯片資源少,信號(hào)與狀態(tài)變化同步,因此速度快,是一種較優(yōu)方案。但在設(shè)計(jì)過(guò)程中對(duì)狀態(tài)編碼時(shí)可能增加狀態(tài)向量,出現(xiàn)多余狀態(tài)。雖然可用case語(yǔ)句中whenothers來(lái)安排多余狀態(tài),但有時(shí)難以有效控制多余狀態(tài),運(yùn)行時(shí)可能會(huì)出現(xiàn)難以預(yù)料的情況。因此它適用于狀態(tài)機(jī)輸出信號(hào)較少的場(chǎng)合。6、本次論文設(shè)計(jì)的幾點(diǎn)體會(huì)6.1把握整體跟細(xì)節(jié)設(shè)計(jì)狀態(tài)機(jī)首先要有個(gè)系統(tǒng)的把握,要從整體上去概述,畫出一個(gè)流程圖,然后根據(jù)流程圖才能一步一步的做下去。如果沒(méi)有一個(gè)大概的流程就很難著手做下去。其次在流程圖中的每一步都是一個(gè)細(xì)節(jié),有句話叫“細(xì)節(jié)決定成敗”,在結(jié)構(gòu)圖、狀態(tài)轉(zhuǎn)換圖、程序代碼、仿真等方面是都不能出錯(cuò)。本次論文

36、主要采用自頂而下的設(shè)計(jì)方法,把一個(gè)整體劃分為幾個(gè)子模塊,然后對(duì)各個(gè)模塊依次進(jìn)行設(shè)計(jì),劃分的好壞,將直接影響到整個(gè)的系統(tǒng)開發(fā)。因此要對(duì)認(rèn)真對(duì)待整體與細(xì)節(jié)。6.2 資料的重要性查找資料也是一個(gè)漫長(zhǎng)而具體的過(guò)程,單純從教科書上很難編寫出一篇完整的論文。找資料就花掉了近一周的時(shí)間,而看懂資料與篩選資料又是一個(gè)更加漫長(zhǎng)的過(guò)程。論文中的大部分內(nèi)容都源于所查找的資料,如果沒(méi)有網(wǎng)上查找的資料就很難寫出一篇完整的論文。6.3常用工具軟件的運(yùn)用以前總覺(jué)的對(duì)word軟件很熟悉,真正到了運(yùn)用起來(lái)的時(shí)候,發(fā)現(xiàn)很多東西都很生硬,很陌生。尤其是在繪圖等方面根本是一竅不通。通過(guò)這次論文的寫作,加深對(duì)常用工具軟件的了解,同時(shí)也

37、發(fā)現(xiàn)了自己的不足,在以后的學(xué)習(xí)生活中要繼續(xù)加強(qiáng)對(duì)常用軟件的學(xué)習(xí)與使用。參考文獻(xiàn):1 康華光.電子技術(shù)基礎(chǔ).數(shù)字部分(第四版)M.北京:高等教育出版社,2000.7,4284572 潘松,黃繼業(yè).EDA技術(shù)實(shí)用教程(第二版)M.北京:科學(xué)出版社,2005,1293 劉力,胡博.關(guān)于VHDL與EDAJ.電大理工,2007.6,71724 趙鑫,蔣亮,齊兆群,李曉凱.VHDL與數(shù)字電路設(shè)計(jì)M.北京:機(jī)械工業(yè)出版社,2005.4,175 陳耀和.VHDL語(yǔ)言設(shè)計(jì)技術(shù)M.北京:電子工業(yè)出版社,2004.3,786 萬(wàn)莉莉.Moore型和Mealy型有限狀態(tài)機(jī)的VHDL設(shè)計(jì)J.科技信息,1994,2202

38、227 曾繁泰,陳美金.VHDL程序設(shè)計(jì)(第二版)M.北京:清華大學(xué)出版社,2542778 劉瑞新.VHDL語(yǔ)言與FPGA設(shè)計(jì).基于Protel DXP開發(fā)平臺(tái)M.北京:機(jī)械工業(yè)出版社,2004.4,3183349 朱小莉,陳迪平,王鎮(zhèn)道.VHDL設(shè)計(jì)MOORE型有限狀態(tài)機(jī)時(shí)速度問(wèn)題的探討J.半導(dǎo)體技術(shù),2002.4,485110 吳蓉.Moore型有限狀態(tài)機(jī)的VHDL設(shè)計(jì)與資源利用研究J. 蘭州鐵道學(xué)院學(xué)報(bào),2003.2,9093 Ground on Moore Type FSMS VHDL Design MethodDepartment of Physics and Electronic

39、Information Science, Electronic Information Science and TechnologyNumber of student: Name:Sun Jia FangTutor: Hu Xiang JuanAbstract :The Electronic Design Automation(EDA) technology has become an important design method of analog and digital circuit system as the integrated circuits growing. One impo

40、rtant characteristic of the EDA is that the design documents should be completed by the HDL.The VHDL is one of the standard hardware description languages validated by IEEE,which was firstly introduced in 1982.And it was widely used by electronic designer now. We firstly presenit some background inf

41、ormation of EDA and VHDL in this thesis. The design of mealy type FSM,which more attention is fulfilled by the VHDL,is also be discussed. A practical example tests that the way is retional and general by compiler and simulation of Max+plus.Finally the analyse of the designing result was introduced and my several experiences about the designing of mealy type FSM.Keywords:Electronic Design Automation(EDA),VHDL,Mealy type,F(xiàn)inite State Machine (FSM)致 謝這次論文的寫作是在我的導(dǎo)師胡湘娟老師的精心指導(dǎo)下完成的。自始至終,胡老師在我

溫馨提示

  • 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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論