《課程設(shè)計_基于VHDL語言的簡易邏輯分析儀設(shè)計》_第1頁
《課程設(shè)計_基于VHDL語言的簡易邏輯分析儀設(shè)計》_第2頁
《課程設(shè)計_基于VHDL語言的簡易邏輯分析儀設(shè)計》_第3頁
《課程設(shè)計_基于VHDL語言的簡易邏輯分析儀設(shè)計》_第4頁
《課程設(shè)計_基于VHDL語言的簡易邏輯分析儀設(shè)計》_第5頁
已閱讀5頁,還剩18頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、1 前 言高校電氣類及相關(guān)專業(yè)教學(xué)中,實踐環(huán)節(jié)越來越被重視。在數(shù)字電路的實驗及數(shù)字系統(tǒng)的設(shè)計中,示波器已遠(yuǎn)遠(yuǎn)不能滿足教學(xué)要求。例如在一些數(shù)字電路的研究和實驗中,往往需要同時查看多路數(shù)字信號的時序關(guān)系,甚至有時因為信號不會重復(fù)出現(xiàn),因此只用示波器往往無法完整了解信號的相對關(guān)系,在這種場合有臺邏輯分析儀就顯得相當(dāng)必要。然而自1973年世界上第一臺邏輯分析儀至今,邏輯分析儀的普及率仍然很低,30%以上的數(shù)字設(shè)計師沒有使用邏輯分析儀,80%的高校實驗室沒有普及邏輯分析儀。最重要的原因在于其高昂的價格。邏輯分析儀昂貴的價格和越來越廣泛的應(yīng)用前景之間的矛盾使邏輯分析儀高精度智能化方向以展,同時也催生了很多

2、降低本錢和拓展功能的方案。 邏輯分析儀的主要功能就是分析測量數(shù)字系統(tǒng)的邏輯波形和邏輯關(guān)系。它利用時鐘脈沖采樣,在到達(dá)預(yù)設(shè)的觸發(fā)條件時,將觸發(fā)前后的狀態(tài)進(jìn)貯存、顯示和處理,展示數(shù)據(jù)流的內(nèi)容,從而發(fā)現(xiàn)和解決故障。本課程設(shè)計設(shè)想采用專用集成電路ASIC1,Application Specific Integrated Circuit實現(xiàn)簡易邏輯分析儀的功能。在本次計中,系統(tǒng)開發(fā)平臺為MAX+plus2 。MAX+plus是Altera公司提供的FPGA/CPLD開發(fā)集成環(huán)境,Altera是世界上最大可編程邏輯器件的供給商之一。Max+plus界面友好,使用便捷,被譽(yù)為業(yè)界最易用易學(xué)的EDA軟件。在M

3、ax+plus上可以完成設(shè)計輸入、元件適配、時序仿真和功能仿真、編程下載整個流程,它提供了一種與結(jié)構(gòu)無關(guān)的設(shè)計環(huán)境,是設(shè)計者能方便地進(jìn)行設(shè)計輸入、快速處理和器件編程。在本次設(shè)計中,采用的硬件描述語言是VHDL3Very-High-Speed Integrated Circuit Hardware Description Language。VHDL語言是一種用于電路設(shè)計的高級語言。VHDL主要用于描述數(shù)字系統(tǒng)的結(jié)構(gòu)、行為、功能和接口。除了含有許多具有硬件特征的語句外,VHDL的語言形式、描述風(fēng)格以及語法是十分類似于一般的計算機(jī)高級語言。2 設(shè)計方案總體設(shè)計方案圖2.1 簡易邏輯分析儀總系統(tǒng)實現(xiàn)框

4、圖2.2 總系統(tǒng)控制工作流程圖從整個系統(tǒng)的框圖和功能要求可以看出,由VHDL語言組成的專用集成電路ASIC1,Application Specific Integrated Circuit主要完成輸入信號判斷、比擬、存儲、采集和處理。該系統(tǒng)組成主要主要對數(shù)據(jù)進(jìn)行采集、存儲、處理和輸出、輸入控制,其中START是對判斷、比擬電路使能,啟動觸發(fā)器全整運(yùn)行,EOC是整個觸電路最終產(chǎn)生的通知信號,反應(yīng)到控制器,把所需的信號輸入到電路中,進(jìn)行處理、存儲和輸出顯示。3 系統(tǒng)實現(xiàn)與理論分析 總體模塊圖3.1 模塊總圖總體模塊如下圖。D是信號輸入端,DATA是觸發(fā)信號輸入端,DATAOUT是信號輸出端,可接顯

5、示器件顯示8路采集信號。圖由三個模塊組成,分別是觸發(fā)電路模塊、數(shù)據(jù)采集和處理模塊、存儲器模塊。當(dāng)信號滿足觸發(fā)條件時,8路信號輸入數(shù)據(jù)采集和處理模塊,最后將采集處理后的信號儲存在存儲器中。 觸發(fā)電路1觸發(fā)電路軟件流程圖和組成框圖圖3.2 實現(xiàn)的軟件設(shè)計流程圖圖 觸發(fā)電路的邏輯框圖由于移位存放器一次只能處理一路信號,四路信號需要4個移位存放器,這就需要一個轉(zhuǎn)換電路將四路由移位存放器模塊輸出的信號進(jìn)行處理,轉(zhuǎn)換成可以和2個觸發(fā)字同時進(jìn)行比擬。該模塊的作用:檢測輸入序列是否與觸發(fā)字相同。四級的并行觸發(fā)是在設(shè)置了2個按預(yù)定次序排列的觸發(fā)字后,只有當(dāng)四路信號同時滿足所設(shè)的觸發(fā)條件時,才產(chǎn)生觸發(fā)信號。如圖可

6、知首先由上位機(jī)向16b鎖存器鎖存由單片機(jī)預(yù)置觸發(fā)字,分兩次鎖存2個8b觸發(fā)字。然后檢測待測四路信號,待測四路信號分別通過一個4b數(shù)據(jù)移位存放器同時與2個觸發(fā)字進(jìn)行比擬,當(dāng)兩者完全相同時產(chǎn)生一個觸發(fā)信號四路信號必須分別為1111,1111,1111,1010時電路才產(chǎn)生觸發(fā)信號,整個過由EN作為最終的使能,由控制器控制,PEQ是啟動控制器控制整個采集、處理等過程。2四位移位存放器的模塊及其仿真圖圖 四位移位存放器的模塊圖 四位移位存放器的仿真波形圖仿真波形如下圖。CLR是清零信號,低電平有效。當(dāng)CLR是高電平時,每次時鐘信號CLK的上升沿DATA_IN3.0的值賦給A,輸出信號DATA_OUT一

7、個時鐘周期變化一個,輸出A二進(jìn)制值的最低位。如3的二進(jìn)制最低位是1,2的二進(jìn)制最低位是0。3轉(zhuǎn)換接口電路模塊及其仿真圖圖 轉(zhuǎn)換接口電路模塊圖3.7 轉(zhuǎn)換接口的仿真波形圖仿真波形如圖3.7所示。輸入信號DIN_4.1是四位輸入,CQOUT是16位輸出。如輸入4、B、4、B,倒序是2、D、2、D,將四次輸入的數(shù)據(jù)連接起來就是2D2D。可知轉(zhuǎn)換器完成了將4位輸入轉(zhuǎn)換成16位輸出的功能。EN是使能信號,EN是低電平時,START始終是S0狀態(tài)。當(dāng)EN變高電平時,同時在每個時鐘CLK上升沿STATE從S0、S1、S2到S3狀態(tài)變化,每次DIN_4.1都變化一次,從S0到S3,輸入了四組數(shù)據(jù)。S0時,DI

8、N_4.1倒序賦給THR_0; S1時,DIN_4.1倒序賦給THR_1; S2時,DIN_4.1倒序賦給THR_2; S3時,DIN_4.1倒序賦給THR_3。最后在STATE是S0時,將THR_0、THR_1、THR_2、THR_3連接起來賦給CQOUT。4鎖存器的電路模塊及其仿真圖圖 鎖存器的電路模塊圖 鎖存器的仿真波形圖仿真波形如圖3.9所示。CLR是異步清零信號,高電平有效。當(dāng)CLR低電平時,每次時鐘信號上升沿鎖存輸入數(shù)據(jù)到R16S中,再賦給輸出信號Q;當(dāng)CLR高電平時,清零輸出信號Q。5比擬器的電路模塊及其仿真圖圖 比擬器的電路模塊圖 比擬器的仿真波形圖仿真波形如圖3.11所示。G

9、BAR是使能信號,低電平有效。當(dāng)GBAR低電平時,只有輸入信號Q、P相同時,PEQ輸出低電平,否那么輸出高電平。即在觸發(fā)模塊中,只有輸入信號和觸發(fā)信號完全相同時才輸出觸發(fā)使能信號。數(shù)據(jù)采集和處理1數(shù)據(jù)采集和處理的軟件流程圖和組成框圖圖 數(shù)據(jù)采集控制系統(tǒng)的組成框圖上圖中工作速率由時鐘信號CLK的速率決定。圖 系統(tǒng)控制器工作流程圖從系統(tǒng)示意圖和功能要求可能性看出,該系統(tǒng)屬于數(shù)據(jù)處理類型,其控制和數(shù)據(jù)處理器均可構(gòu)造于一片單元型CPLD或FPGA系列芯片中,輸入信號和RAM均在控制器下控制運(yùn)行。因此有如下圖控制器工作流程圖。根據(jù)上述功能和控制器工作流程圖,配置相應(yīng)的控制器和數(shù)據(jù)處理器CODP的硬件結(jié)構(gòu)

10、圖如所示。CODP由存儲器REGN,數(shù)據(jù)處理電路CALC和狀態(tài)控制器CONTROL三個局部組成。圖給出了它們各自輸入、輸出和互聯(lián)關(guān)系,以及整個CODP與外部的聯(lián)系。圖是CODP的最高層次的邏輯框圖。圖中,存儲器REGN實現(xiàn)8路采集數(shù)據(jù)的綬沖,由控制器送出的EN作為存儲器使能信號。數(shù)據(jù)處理電路CALC實現(xiàn)采樣值和標(biāo)準(zhǔn)值假設(shè)任意選擇標(biāo)準(zhǔn)值為1810的相減運(yùn)算,并完成極性位的判斷別0為正極性,1為負(fù)極性。狀態(tài)控制器CONTROL是系統(tǒng)正確有交工作的指揮樞紐,它發(fā)出對輸入信號、DAC、REGN和CALC的控制信號,并接收它們的反應(yīng)應(yīng)答信號,做出判斷和決策。圖 CODP的邏輯框圖2存儲器REGN的電路模

11、塊及其仿真圖圖 存儲器REGN的電路模塊圖 存儲器REGN的仿真波形圖仿真波形如圖3.16所示。EN是使能信號,低電平有效。當(dāng)EN低電平時,無輸出信號;當(dāng)EN高電平時,每次時鐘信號上升沿輸入信號DATA7.0的數(shù)據(jù)賦給輸出信號Q。3系統(tǒng)控制器CONTROL的電路模塊及其仿真圖圖 系統(tǒng)控制器CONTROL的電路模塊圖 系統(tǒng)控制器CONTROL的仿真波形圖仿真波形如圖3.18所示。輸入信號EOC是控制信號,和觸發(fā)模塊的觸發(fā)使能信號PEQ連接。輸出信號START是觸發(fā)模塊的啟動信號,OE是輸入信號的控制信號,NWR是隨機(jī)存儲器RAM的控制信號,EN1是存儲器REGN的使能信號。狀態(tài)信號STATE起初

12、是S0,變?yōu)镾1時,START變高電平,否那么為低電平。時鐘上升沿START變?yōu)镾2時,判斷EOC的值,如果EOC是高電平START那么轉(zhuǎn)為S3,否那么維持S2狀態(tài)。如果START是S3,那么在每次時鐘上升沿變化一次狀態(tài),直到S6時,又變回狀態(tài)S0。狀態(tài)S3時,OE為高電平,否那么為低電平。狀態(tài)S4時,EN1為高電平,否那么為高電平。狀態(tài)S6時,NWR為低電平,否那么為高電平??刂破鞯墓δ芗丛诓煌瑫r段產(chǎn)生不同的控制信號來控制其他模塊,以實現(xiàn)整體功能。4數(shù)據(jù)處理器CALC的電路模塊及其仿真圖圖 數(shù)據(jù)處理器CALC的電路模塊圖 數(shù)據(jù)處理器CALC的仿真波形圖仿真波形如圖3.20所示。數(shù)據(jù)處理模塊是

13、將輸入信號和一個設(shè)定的標(biāo)準(zhǔn)值18十進(jìn)制相減,大于標(biāo)準(zhǔn)值時產(chǎn)生一個極性位1,小于標(biāo)準(zhǔn)值時產(chǎn)生極性位0。如輸入信號為0二進(jìn)制補(bǔ)碼位為256時,輸出信號為274即為-18的二進(jìn)制的補(bǔ)碼;輸入100時,輸出82。5數(shù)據(jù)采集和處理CODP的頂層模塊及其仿真圖圖 數(shù)據(jù)采集和處理CODP的頂層模塊圖 數(shù)據(jù)采集和處理CODP的仿真波形圖。CODP是頂層模塊,輸出信號OE高電平是控制模塊COUNTROL中S4狀態(tài),下一個即為狀態(tài)S5,此時內(nèi)部信號EN為高電平,在時鐘信號上升沿輸出信號DOUT變化為270-14的二進(jìn)制補(bǔ)碼,即4-18=-14。將輸出信號DOUT展開,第一位是極性位,其他八位即8路信號的輸出信號。

14、、存儲器RAM該模塊的作用:當(dāng)使能信號有及時,對脈沖信號進(jìn)行采樣存儲,存入RAM中,存儲20bit每一路,然后結(jié)束存儲,接著讀出RAM中存儲的數(shù)據(jù)。根據(jù)題目中對存儲深度的要求,每次觸發(fā)存儲4頁的數(shù)據(jù),觸發(fā)位置前后各存儲2頁數(shù)據(jù),這樣可滿足根本和擴(kuò)展要求。FLEX 10K中的嵌入式陣列由一系列具有實現(xiàn)邏輯功能和存貯功能的FAB組成。EAB是在輸入、輸出口上帶有存放器的RAM塊,利用它可以非常方便地實現(xiàn)一些規(guī)模不太大的ROM、RAM、雙端口RAM和FIFO等功能。數(shù)據(jù)存儲讀寫的模塊和仿真波形圖圖 數(shù)據(jù)存儲讀寫的模塊圖 數(shù)據(jù)存儲讀寫的仿真波形圖仿真波形如圖3.24所示。輸入信號oe是功能選擇信號,高

15、電平時是寫數(shù)據(jù),低電平時是讀數(shù)據(jù)。輸入信號cs是片選信號。ram1可看作是儲存器,原先有數(shù)據(jù)在里面。前5單元里都是0,第6個單元開始是數(shù)據(jù)02、00、07、00、04、00等。所以當(dāng)oe是低電平時,在每次時鐘信號上升沿輸出信號data_o是地址8、A和C中的數(shù)據(jù)07、04、00。4 結(jié)束語經(jīng)過三周的努力,本次課程設(shè)計已經(jīng)接近尾聲。在這期間,我學(xué)到了很多不懂的知識,受益匪淺。雖然這次設(shè)計不是個人完全獨(dú)立完成的,但是它讓我認(rèn)識到了實踐給我們帶來了無窮的理解,讓我的想象和創(chuàng)造能力到了激發(fā)。在第一個星期里,我自學(xué)了VHDL硬件描述語言。在這期間還學(xué)習(xí)了關(guān)于EDA技術(shù)的一些知識和MAX-plusII的使

16、用方法,還有在網(wǎng)上搜索了一些關(guān)于自己設(shè)計課題的資料,了解了一下邏輯分析儀的根本原理,并對設(shè)計方案有了初步的想法。第二個星期里,我主要就自己的設(shè)計課題設(shè)計詳細(xì)的實現(xiàn)方案,并用VHDL語言編程在MAX-plusII軟件上編譯仿真,觀察分析仿真波形圖是否符合要求。并不斷改良設(shè)計方案,使其到達(dá)理想的效果。經(jīng)過大概兩周的時間,根本完成了設(shè)計局部。在第三星期主要是就前幾周的設(shè)計寫課程設(shè)計報告。用VISIO軟件將設(shè)計時的原理草圖轉(zhuǎn)換成標(biāo)準(zhǔn)的原理圖,按照標(biāo)準(zhǔn)課程設(shè)計模版寫自己的報告。在這三周時間里,得到了老師和同學(xué)的幫助,根本圓滿完成了課程設(shè)計。通過本次課程設(shè)計,讓我對EDA技術(shù)有了一定的認(rèn)識, VHDL語言

17、設(shè)計的出現(xiàn)從根本上改變了以往數(shù)字電路的設(shè)計模式,使電路設(shè)計由硬件設(shè)計轉(zhuǎn)變?yōu)檐浖O(shè)計,這樣提高了設(shè)計的靈活性,降低了電路的復(fù)雜程度,同時也降低了設(shè)計的本錢。5 參考文獻(xiàn)1王道憲CPLD/FPGA可編程邏輯器件應(yīng)用與開發(fā)北京:國防工業(yè)出版社.2004.12張秀娟,陳新華.EDA設(shè)計與仿真實踐.北京:機(jī)械工業(yè)出版社.3潘松,黃繼業(yè).EDA技術(shù)與VHDL.第二版.北京:清華大學(xué)出版社.2007.天津工程師范學(xué)院報.2005.6.5曾繁秦,孫剛見,李冰,王強(qiáng).EDA工程實踐.北京:清華大學(xué)出版社.2004.7.附錄:VHDL源程序清單-轉(zhuǎn)換接口模塊:LIBRARY IEEE;USE IEEE.STD_L

18、OGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY CONVERSION IS -定義實體局部PORT (CLK ,EN:IN STD_LOGIC; DIN_1: IN STD_LOGIC; DIN_2: IN STD_LOGIC;DIN_3:IN STD_LOGIC;DIN_4:IN STD_LOGIC;CQOUT: OUT STD_LOGIC_VECTOR(15 DOWNTO 0);END CONVERSION ;ARCHITECTURE BEHAV OF CONVERSION ISTYPE S IS (S0,S1,S2,S3);-定義

19、四種狀態(tài)SIGNAL STATE: S:=S0;SIGNAL READ:STD_LOGIC;SIGNAL THR_0,THR_1,THR_2,THR_3:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINPROCESS(CLK)-一個進(jìn)程,時鐘信號是其敏感信號BEGINIF RISING_EDGE(CLK) THEN-如果時鐘上升沿IF EN=1THENCASE STATE IS WHEN S0=>THR_0<=DIN_1&DIN_2&DIN_3&DIN_4;STATE<=S1; WHEN S1=>THR_1<=DIN_1

20、&DIN_2&DIN_3&DIN_4;STATE<=S2;WHEN S2=>THR_2<=DIN_1&DIN_2&DIN_3&DIN_4;STATE<=S3;WHEN S3=>THR_3<=DIN_1&DIN_2&DIN_3&DIN_4;STATE<=S0;READ<=1;WHEN OTHERS=>STATE<=S0;END CASE ;END IF;END IF;END PROCESS;PROCESS(CLK)-另一個進(jìn)程BEGIN IF RISING_EDGE

21、(CLK) THEN IF READ=1 THENCQOUT<=THR_0&THR_1&THR_2&THR_3; -&是連接符END IF;END IF;END PROCESS;END BEHAV;-四位移位存放器VHDL源程序:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY SHIFTER_4 ISPORT(CLK,CE,CLR: IN BIT;-定義輸入為位變量 DATA_IN:IN

22、STD_LOGIC_VECTOR(3 DOWNTO 0); DATA_OUT:OUT STD_LOGIC);END SHIFTER_4;ARCHITECTURE DENG OF SHIFTER_4 ISSIGNAL A: STD_LOGIC_VECTOR(3 DOWNTO 0); BEGINPROCESS(CLR,CLK,CE,DATA_IN)BEGINIF CLR='0' THEN A <= "0000" -CLR低電平,那么異步清零AELSIF CLK'EVENT AND CLK='1' THEN IF CE='0&

23、#39; THEN A<=DATA_IN; ELSE A(3 DOWNTO 1)<=A(2 DOWNTO 0);-向左移位 A(0)<=A(3);-實現(xiàn)循環(huán)移位 END IF; END IF; DATA_OUT<=A(0); END PROCESS; END DENG ;-比擬器的VHDL的源程序:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY HCT688 IS PORT(Q, P : IN STD_LOGIC_VECTOR(15 DOWNTO 0); GBAR : IN STD_LOGIC; PEQ : OUT STD

24、_LOGIC);END HCT688;ARCHITECTURE VER1 OF HCT688 ISBEGIN PEQ <='0' WHEN (Q(15 DOWNTO 0)=P(15 DOWNTO 0)AND(GBAR='0') ELSE '1';-只有當(dāng)GBAR為低電平,同時P和Q相等時輸出低電平,否那么高電平END VER1;-鎖存儲器VHDL源程序:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY REG16B IS PORT( CLK:IN STD_LOGIC; CLR:IN STD_LO

25、GIC; D :IN STD_LOGIC_VECTOR(15 DOWNTO 0); Q :OUT STD_LOGIC_VECTOR(15 DOWNTO 0);END REG16B;ARCHITECTURE BEHAV OF REG16B IS SIGNAL R16S : STD_LOGIC_VECTOR(15 DOWNTO 0);BEGIN PROCESS(CLK,CLR) BEGIN IF CLR='1' THEN-CLR是異步清零信號,高電平有效 R16S<="0000000000000000" ELSIF CLK'EVENT AND CL

26、K='1' THEN R16S(15 DOWNTO 0)<=D; END IF; END PROCESS; Q<=R16S; END BEHAV;-數(shù)據(jù)采集和處理CODP的頂層VHDL的源程序:-CODP的頂層VHDL語言描述源程序文件如下LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;PACKAGE CODP_LIB IS -程序包說明,CODP_LIB是程序包名 COMPONENT REGN -REGN單元說明 PORT( CLK,EN :IN STD_LOGIC; DATA :IN STD_LOGIC_VECTOR(7 DOW

27、NTO 0); Q :OUT STD_LOGIC_VECTOR(7 DOWNTO 0) ); END COMPONENT; COMPONENT CALC -CALC單元說明 PORT( DATA :IN STD_LOGIC_VECTOR(7 DOWNTO 0); Q :OUT STD_LOGIC_VECTOR(8 DOWNTO 0) ); END COMPONENT; COMPONENT CONTROL -CONTROL單元說明 PORT( CLK,EOC :IN STD_LOGIC; START,OE,NWR,EN1 :OUT STD_LOGIC ); END COMPONENT; END

28、CODP_LIB; -程序包CODP_LIB說明結(jié)束 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE WORK.CODP_LIB.ALL; -用戶自定義的CODP_LIB庫 ENTITY CODP IS -實體CODP說明局部 PORT( CLK,EOC :IN STD_LOGIC; DATA :IN STD_LOGIC_VECTOR(7 DOWNTO 0); DOUT :OUT STD_LOGIC_VECTOR(8 DOWNTO 0); START,NWR,OE :OUT STD_LOGIC ); END CODP; ARCHITECTURE A

29、 OF CODP IS -CODP實體內(nèi)結(jié)構(gòu)A說明 SIGNAL EN:STD_LOGIC; -內(nèi)部信號EN說明 SIGNAL REGIOUT:STD_LOGIC_VECTOR(7 DOWNTO 0); BEGIN -內(nèi)部信號REGIOUT說明 REG8_1:REGNPORT MAP(CLK,EN,DATA,REGIOUT); -端口映射,PORTMAP是關(guān)鍵詞, -各端口名稱相同時為同一信號 CONTR:CONTROL PORT MAP(CLK,EOC,START,OE,NWR,EN); -端口映射 C1:CALC PORT MAP(REGIOUT,DOUT); -端口映射 END A;-在

30、以上頂層的VHDL描述文件中,用元件例化語句定義了三個單元REGN、CALC和CONTROL,這三個單元的邏輯功能可用下述VHDL文件述-存儲器REGN的VHDL程序:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY REGN IS -實體REGN說明 PORT( CLK,EN :IN STD_LOGIC; DATA :IN STD_LOGIC_VECTOR(7 DOWNTO 0); Q :OUT STD_LOGIC_VECTOR(7 DOWNTO 0) );END REGN;ARCHITECTURE A OF REGN IS BEGIN PROC

31、ESS(CLK) BEGIN IF (CLK' EVENT AND CLK='1') THEN-如果CLK有效 IF EN='1' THEN -如果使能端EN有效 Q<=DATA; -DATA值賦于Q END IF; END IF; END PROCESS;END A;-系統(tǒng)控制器CONTROL的VHDL程序:LIBRARY IEEE;USE    IEEE.STD_LOGIC_1164.ALL;ENTITY CONTROL IS      

32、;             -實體CONTROL說明PORT(CLK,EOC             :IN    STD_LOGIC;START,OE,NWR,EN1  :OUT   STD_LOGIC);END  CONTROL;ARCHITECTURE  A  O

33、F  CONTROL   ISTYPE    STATE_SPACE  IS(S0,S1,S2,S3,S4,S5,S6);SIGNAL  STATE:STATE_SPACE;BEGINPROCESS(CLK)BEGINIF(CLK' EVENT  AND  CLK='1') THEN   -如果時鐘有效作用沿發(fā)生CASE STATE IS       &

34、#160;           -狀態(tài)分支WHEN S0=> STATE<=S1;              -S0無條件轉(zhuǎn)向S1WHEN  S1=>STATE<=S2;WHEN  S2=>IF  EOC='1' THEN      

35、    -如果ECO='1',狀態(tài)轉(zhuǎn)向S3STATE<=S3;            -否那么保持為S2END IF;WHEN  S3=>STATE<=S4;WHEN  S4=>STATE<=S5;WHEN  S5=>STATE<=S6;WHEN  S6=>STATE<=S0;END  CASE;    &#

36、160;                   -狀態(tài)分支結(jié)束END IF;END PROCESS;START<='1'   WHEN  STATE=S1  ELSE  '0'OE<='1'      WHEN  STATE=S3  ELSE

37、  '0' -輸出信號賦值語句,例如-狀態(tài)S1時,START=1,EN1<='1'     WHEN  STATE=S4 ELSE  '0' -否那么START=0NWR<='0' WHEN  STATE=S6 ELSE  '1'END A;-數(shù)據(jù)處理器CALC的VHDL程序:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_

38、UNSIGNED.ALL; -使用IEEE標(biāo)準(zhǔn)中的UNSIGNED庫ENTITY CALC IS -實體CALC說明 PORT( DATA :IN STD_LOGIC_VECTOR(7 DOWNTO 0); Q :OUT STD_LOGIC_VECTOR(8 DOWNTO 0) );CONSTANT STAND:STD_LOGIC_VECTOR(8 DOWNTO 0):="111101110"END CALC; -標(biāo)準(zhǔn)值補(bǔ)碼賦值負(fù)數(shù)ARCHITECTURE A OF CALC IS BEGINPROCESS (DATA)VARIABLE INTER1,INTER2,INTER3:STD_LOGIC_VECTOR(8 DOWNTO 0); -3個中間變量說明VARIABLE C:STD_LOGIC; -極性位變量說明 BEGIN FOR I IN 0 TO 8 LOOP INTER1(I):='0' -循環(huán)語句 INTER2(I):='0' -3個中間

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論