




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、基于vhdl的mealy狀態(tài)機(jī)設(shè)計(jì) 物理與電子信息科學(xué)系 電子信息科學(xué)與技術(shù)專業(yè)姓名:xxx 學(xué)號(hào):05120126指導(dǎo)教師:xxx摘 要: 伴隨著集成電路(ic)技術(shù)的發(fā)展,電子設(shè)計(jì)自動(dòng)化(eda)逐漸成為重要的設(shè)計(jì)手段,已經(jīng)廣泛應(yīng)用于模擬與數(shù)字電路系統(tǒng)等許多領(lǐng)域。eda的一個(gè)重要特征就是使用硬件描述語言(hdl)來完成的設(shè)計(jì)文件,誕生于1982年的vhdl語言是經(jīng)ieee確認(rèn)的標(biāo)準(zhǔn)硬件描述語言,在電子設(shè)計(jì)領(lǐng)域受到了廣泛的接受。本文首先綜述了eda技術(shù)的發(fā)展概況,vhdl語言的的歷史、開發(fā)步驟及其優(yōu)點(diǎn);著重介紹了使用eda技術(shù),用vhdl語言完成了moore狀態(tài)機(jī)的設(shè)計(jì)工作;通過開發(fā)工具ma
2、x+plus的編譯和功能仿真,驗(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.硬件描述語言(hdl)(5)3.1 vhdl語言簡介(5)3.2 vhdl語言的特點(diǎn)(5)4.max+plus軟件(8) 4.1 max+plus簡介(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
3、.5 mealy狀態(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é)奏也越來越快。現(xiàn)代電子設(shè)計(jì)的核心是eda(electronic design automation)技術(shù)。eda技術(shù)就是依賴功能強(qiáng)大的計(jì)算機(jī),在eda工具軟件平臺(tái)上,對(duì)以硬件描述語言hdl(hardware des
4、cription languge)為系統(tǒng)邏輯描述手段完成的設(shè)計(jì)文件,自動(dòng)的完成邏輯編譯、邏輯簡化、邏輯分割、邏輯綜合、結(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é)方面則
5、容納了更多的內(nèi)容,如電子線路設(shè)計(jì)理論、數(shù)字信號(hào)處理技術(shù)、數(shù)字系統(tǒng)建模和優(yōu)化技術(shù)及長線技術(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ù),通過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)用,已有了很好的普及。隨著可編程邏輯器件集
6、成規(guī)模不斷擴(kuò)大,自身功能的不斷完善和計(jì)算機(jī)輔助設(shè)計(jì)技術(shù)的提高,在現(xiàn)代電子系統(tǒng)設(shè)計(jì)領(lǐng)域中的eda便應(yīng)運(yùn)而生了。傳統(tǒng)的數(shù)字電路設(shè)計(jì)模式,如利用卡諾圖的邏輯化簡手段以及難懂的布爾方程表達(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ā)展而來的2。eda技術(shù)就是以計(jì)算機(jī)為工具,在
7、eda軟件平臺(tái)上,根據(jù)硬件描述語言hdl完成的設(shè)計(jì)文件,自動(dòng)地完成邏輯編譯、化簡、分割、綜合及優(yōu)化、布局線、仿真,直至對(duì)于特定目標(biāo)芯片的適配編譯、邏輯映射和編程下載等工作。設(shè)計(jì)者的工作僅限于利用軟件的方式來完成對(duì)系統(tǒng)硬件功能的描述,在eda工具的幫助下和應(yīng)用相應(yīng)的fpg/cpld器件,就可以得到最后的設(shè)計(jì)結(jié)果。盡管目標(biāo)系統(tǒng)是硬件,但整個(gè)設(shè)計(jì)和修改過程如同完成軟件設(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īng)用的廣度
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年代以來,eda技術(shù)的發(fā)展和普及給電子系統(tǒng)的設(shè)計(jì)帶
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ù)庫、圖形學(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ì)。近十年來,微電子技術(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)帶來了革命性的變化。3.硬件描述語言(hdl)3.1vhdl語言 vhdl(very2high2speed integrated circuithard2waredescriptionlanguage)是用來描述從抽樣
11、到具體級(jí)別硬件的工業(yè)標(biāo)準(zhǔn)語言。80 年代初期,因?yàn)槊绹娛鹿I(yè)需要描述電子系統(tǒng)的標(biāo)準(zhǔn)方法,美國開始進(jìn)行vhdl的開發(fā),它是美vhsic(超高速集成電路)的一部分,并于1986年和1987年分別成為美國和ieee的工業(yè)標(biāo)準(zhǔn)。此后,各eda公司相繼推出了自己的vhdl設(shè)計(jì)環(huán)境,并迅速地被接納為一種通用的設(shè)計(jì)交換媒介。作為一種規(guī)范和建模語言,它不只是意味著編寫代碼,而且也便于建立層次結(jié)構(gòu)和用元件庫進(jìn)行設(shè)計(jì)。 vhdl翻譯成中文就是超高速集成電路硬件描述語言,是一種快速的電路設(shè)計(jì)工具,功能涵蓋了電路描述、電路合成、電路仿真等三大電路設(shè)計(jì)工作。vhdl 是用來描述從抽象到具體硬件級(jí)別的工業(yè)標(biāo)準(zhǔn)語言,并已
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í)也提供一套十分有特色的綜合工具maxplus-,設(shè)計(jì)者既可以使用原理圖輸入,也可以使用文本輸入方式,更可以二者混合輸入。從編譯、綜合、布線到仿真、下載一氣呵成,十分方便。3.2 vhdl語言的特點(diǎn)vhdl是一種面向設(shè)計(jì)的標(biāo)準(zhǔn)硬件描述語言
13、,主要用于描述數(shù)字系統(tǒng)的結(jié)構(gòu)、行為、功能和接口。vhdl不僅保留了一般計(jì)算機(jī)高級(jí)語言簡潔、高效的編程風(fēng)格和規(guī)范易讀的語言形式,而且還包含了許多獨(dú)特的具有硬件特性的語言。其主要特點(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ì)與工藝無關(guān)。在傳統(tǒng)的硬件設(shè)計(jì)中,設(shè)計(jì)者必須手工檢查與工藝有關(guān)的因素,如時(shí)序、面積、驅(qū)動(dòng)強(qiáng)度等。用vhdl設(shè)計(jì)的最大優(yōu)點(diǎn)是在工藝上無需花費(fèi)過多的時(shí)
14、間和精力。4.max+plus4.1 max+plus簡介本次設(shè)計(jì)選用的開發(fā)環(huán)境為美國altera公司自行設(shè)計(jì)開發(fā)的eda工具max+plus,其全稱為mu1tiple array matrix and programmable logic user systems。它具有運(yùn)行速度快,界面統(tǒng)一,功能集中,易學(xué)易用等特點(diǎn)。它的器件系列從最初的max系列到最新的flex10k系列,從500門到10萬門提供了滿足各種條件需要的一系列器件。其中最為先進(jìn)的flex系列采用獨(dú)特的快通道技術(shù),使得器件的可預(yù)測(cè)性大大增強(qiáng),速度也得到提高,資源利用率達(dá)70%左右時(shí),flex10k系列可以提供7omhz左右的工作
15、速度。max+plus結(jié)合各種系列器件的物理結(jié)構(gòu),提供了各種的優(yōu)化措施,以在提高工作速度和資源利用率之間給以平衡。從而對(duì)大多數(shù)設(shè)計(jì)提供解決方案。max+plus提供了原理圖輸入、文本輸入(采用硬件描述語言)和波形輸入等多種輸入手段,并可以任意組合使用。利用該工具所配備的編輯、編譯、仿真、綜合、芯片編程等功能,可將設(shè)計(jì)電路圖或電路描述程序變成基本的邏輯單元寫入到可編程的芯片中(如即ga芯片),做成asic芯片。用戶首先對(duì)所做項(xiàng)目進(jìn)行設(shè)計(jì),明確設(shè)計(jì)目的、設(shè)計(jì)要求;然后利用原理圖輸入方式或文本輸入方式進(jìn)行設(shè)計(jì)輸入;輸入完成后,進(jìn)行編譯,若編譯過程中發(fā)現(xiàn)錯(cuò)誤,則檢查設(shè)計(jì)輸入,修改錯(cuò)誤,直至沒有錯(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。等公司提供的其它多種e
17、da工具接口。max+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+pl
18、us與其他工業(yè)標(biāo)準(zhǔn)設(shè)計(jì)輸入、綜合與校驗(yàn)工具鏈接。與cae工具的接口符合edif200和209、參數(shù)化模塊庫(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)
19、機(jī)是由狀態(tài)寄存器和組合邏輯電路構(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))。moor
20、e型有限狀態(tài)機(jī)的輸出僅為當(dāng)前狀態(tài)的函數(shù), 這類狀態(tài)機(jī)在輸入發(fā)生變化后再等待時(shí)鐘的到來,時(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í)鐘周期。通過狀態(tài)機(jī)的工作時(shí)序圖比較容易區(qū)分這兩種類型的狀態(tài)機(jī),如果單純從vhdl代
21、碼來區(qū)分,就主要看他的輸出與輸入是否有關(guān)系,有關(guān)系的就是moore型狀態(tài)機(jī),無關(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語言設(shè)計(jì)狀態(tài)機(jī),所有的狀態(tài)可表示為case-when結(jié)構(gòu)中的一個(gè)when子句,而狀態(tài)的轉(zhuǎn)換則通過if-then-else語句實(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
22、:process(present_state,din) 狀態(tài)轉(zhuǎn)換進(jìn)程beginend process state_comb;73、在進(jìn)程中定義狀態(tài)的轉(zhuǎn)換在進(jìn)程中使用case-when語句,因狀態(tài)s0是狀態(tài)轉(zhuǎn)換的起點(diǎn),因此,把s0作為case語句中第一個(gè)when子句項(xiàng),然后利用if-then-else語句列出轉(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ī)的輸出變
23、化要領(lǐng)先一個(gè)周期,即一旦輸入信號(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è)流程圖畫出來,根據(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
24、 狀態(tài)轉(zhuǎn)換圖然后根據(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);b
25、egincomreg : 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
26、 datain=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;e
27、nd process com1;q=q1;end behav;程序分析:這段程序是2進(jìn)程mealy型狀態(tài)機(jī)。由entity語句引導(dǎo)的是主體,由architecture語句引導(dǎo)的是結(jié)構(gòu)體。在結(jié)構(gòu)體中,進(jìn)程comreg是時(shí)序與組合混合型進(jìn)程,它將狀態(tài)機(jī)的主控時(shí)序電路和主控狀態(tài)譯碼電路同時(shí)用一個(gè)進(jìn)程來表達(dá)。這個(gè)進(jìn)程也是狀態(tài)轉(zhuǎn)換過程。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)處
28、于上升延時(shí),將st3賦值給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)程是輸出過程。當(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
29、時(shí),datain為高電平,則輸出為“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語句產(chǎn)生一個(gè)鎖存器,將q2鎖存后再輸出。由于是同步鎖存的緣故,沒有發(fā)生鎖存后延時(shí)一個(gè)時(shí)鐘周期的現(xiàn)象。對(duì)程序進(jìn)行編譯仿真后得出幾幅仿真圖,如下所示:其中reset為復(fù)位信號(hào),高電平有效,datain為輸入信號(hào),clk是時(shí)鐘信號(hào),上升延有效,q為輸出信號(hào),q165為輸
30、出q的16進(jìn)值,stx為狀態(tài)。此圖的狀態(tài)由st0、st1、st2、st3和st4依次循環(huán)轉(zhuǎn)換下去。reset信號(hào)復(fù)位以后,狀態(tài)無條件轉(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到
31、st4。5.5mealy狀態(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ī)的描述方法來解決這個(gè)問題:把時(shí)鐘信號(hào)引入組合進(jìn)程,
32、用時(shí)鐘來同步狀態(tài)遷移和信號(hào)輸出,在電路上表現(xiàn)為先將輸出信號(hào)保存在觸發(fā)器中,當(dāng)時(shí)鐘有效邊沿到來的時(shí)候輸出;或者在電路設(shè)計(jì)時(shí),選用延遲時(shí)間較小的器件,且盡可能采用級(jí)數(shù)少的電路結(jié)構(gòu)。 對(duì)于第二種情況,需要重新調(diào)整狀態(tài)編碼。一般而言,編有順序編碼、one-hot編碼、格雷碼、隨機(jī)編碼等。如果vhdl描述中沒有對(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)分
33、配多個(gè)編碼;第二種方法是在狀態(tài)譯碼時(shí)采用分組譯碼,這樣就保證了狀態(tài)遷移時(shí)只有。位狀態(tài)線發(fā)生變化。在同步電路中,一般情況下“毛刺”不會(huì)產(chǎn)生重大影響。因?yàn)椤懊獭眱H發(fā)生在時(shí)鐘有效邊沿之后的一小段時(shí)間內(nèi),只要在下一個(gè)時(shí)鐘有效邊沿到來之前“毛刺”消失即可。但當(dāng)狀態(tài)機(jī)的輸出信號(hào)作為其他功能模塊的控制信號(hào),例如作為異步控制、態(tài)使能控制或時(shí)鐘信號(hào)使用時(shí),將會(huì)使受控模塊發(fā)生誤動(dòng)作,造成系統(tǒng)工作混亂。因此,在這種情況下必須通過改變?cè)O(shè)計(jì)消除毛刺。 消除狀態(tài)機(jī)輸出信號(hào)的“毛刺”一般可采用三種方案: (1)調(diào)整狀態(tài)編碼,使相鄰狀態(tài)間只有位信號(hào)改變,從而消除競(jì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)過附加的輸出寄存器,并由時(shí)鐘信號(hào)同步,因而保證了輸出信號(hào)沒有毛刺。這種方法存在一些弊端:由于增加了輸出寄存器,硬件開銷增大,這對(duì)于一些寄存器資源較少的目標(biāo)芯片是不利的;從狀態(tài)機(jī)的狀態(tài)位到達(dá)輸出需要經(jīng)過兩級(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ì)
35、出現(xiàn)競(jìng)爭冒險(xiǎn)。這種方案,占用芯片資源少,信號(hào)與狀態(tài)變化同步,因此速度快,是一種較優(yōu)方案。但在設(shè)計(jì)過程中對(duì)狀態(tài)編碼時(shí)可能增加狀態(tài)向量,出現(xiàn)多余狀態(tài)。雖然可用case語句中whenothers來安排多余狀態(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ù)流程圖才能一步一步的做下去。如果沒有一個(gè)大概的流程就很難著手做下去。其次在流程圖中的每一步都是一個(gè)細(xì)節(jié),有句話叫“細(xì)節(jié)決定成敗”,在結(jié)構(gòu)圖、狀態(tài)轉(zhuǎn)換圖、程序代碼、仿真等方面是都不
36、能出錯(cuò)。本次論文主要采用自頂而下的設(shè)計(jì)方法,把一個(gè)整體劃分為幾個(gè)子模塊,然后對(duì)各個(gè)模塊依次進(jìn)行設(shè)計(jì),劃分的好壞,將直接影響到整個(gè)的系統(tǒng)開發(fā)。因此要對(duì)認(rèn)真對(duì)待整體與細(xì)節(jié)。6.2 資料的重要性查找資料也是一個(gè)漫長而具體的過程,單純從教科書上很難編寫出一篇完整的論文。找資料就花掉了近一周的時(shí)間,而看懂資料與篩選資料又是一個(gè)更加漫長的過程。論文中的大部分內(nèi)容都源于所查找的資料,如果沒有網(wǎng)上查找的資料就很難寫出一篇完整的論文。6.3常用工具軟件的運(yùn)用以前總覺的對(duì)word軟件很熟悉,真正到了運(yùn)用起來的時(shí)候,發(fā)現(xiàn)很多東西都很生硬,很陌生。尤其是在繪圖等方面根本是一竅不通。通過這次論文的寫作,加深對(duì)常用工具軟
37、件的了解,同時(shí)也發(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語言設(shè)計(jì)技術(shù)m.北京:電子工業(yè)出版社,2004.3,786 萬莉莉.moore型和mealy型有限狀態(tài)機(jī)的vhdl設(shè)計(jì)j.科技信息,1
38、994,2202227 曾繁泰,陳美金.vhdl程序設(shè)計(jì)(第二版)m.北京:清華大學(xué)出版社,2542778 劉瑞新.vhdl語言與fpga設(shè)計(jì).基于protel dxp開發(fā)平臺(tái)m.北京:機(jī)械工業(yè)出版社,2004.4,3183349 朱小莉,陳迪平,王鎮(zhèn)道.vhdl設(shè)計(jì)moore型有限狀態(tài)機(jī)時(shí)速度問題的探討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 information science, electronic information science and technologynumber of student:05120126 name:sun jia fangtutor: hu xiang juanabstract :the electron
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 智慧環(huán)衛(wèi)信息管理平臺(tái)建設(shè)方案
- 基于云計(jì)算技術(shù)的智慧環(huán)衛(wèi)解決方案
- 展臺(tái)搭建合同范本
- 稅務(wù)系統(tǒng)納稅信用管理政策解讀
- 重型柴油車遠(yuǎn)程在線監(jiān)控系統(tǒng)項(xiàng)目 投標(biāo)方案(技術(shù)方案)
- 三農(nóng)村創(chuàng)業(yè)投資手冊(cè)
- 企業(yè)供應(yīng)鏈管理的數(shù)字化轉(zhuǎn)型及優(yōu)化策略研究
- 三農(nóng)產(chǎn)品質(zhì)量安全追溯系統(tǒng)建設(shè)手冊(cè)
- 新零售技術(shù)應(yīng)用與發(fā)展趨勢(shì)分析報(bào)告
- 停車場(chǎng)車輛出入智能管理系統(tǒng)
- 非新生兒破傷風(fēng)診療規(guī)范(2024年版)解讀
- 預(yù)防校園欺凌主題班會(huì)課件(共36張課件)
- 公務(wù)員2014年國考《申論》真題卷及答案(副省級(jí))
- 裝飾裝修施工人員安全知識(shí)培訓(xùn)考試試卷及答案
- 伸縮臂式22m高空作業(yè)車安全操作規(guī)程
- 嬰幼兒發(fā)展引導(dǎo)員(育嬰員)職業(yè)技能競(jìng)賽理論考試題庫(含答案)
- 全國國家版圖知識(shí)競(jìng)賽題庫及答案(中小學(xué)組)
- 湖北省武漢市實(shí)驗(yàn)外國語學(xué)校小學(xué)部小學(xué)六年級(jí)小升初期末語文試題(含答案)
- 高職生職業(yè)生涯規(guī)劃與就業(yè)指導(dǎo) 課件全套 崔麗娜 第1-8章 揭開生涯規(guī)劃面紗 走進(jìn)生涯規(guī)劃- 助力職業(yè)發(fā)展 職場(chǎng)適應(yīng)
- 小學(xué)一年級(jí)數(shù)學(xué)下冊(cè)綜合知識(shí)訓(xùn)練100題含答案
- 2024營運(yùn)純電動(dòng)汽車換電服務(wù)技術(shù)要求
評(píng)論
0/150
提交評(píng)論