實驗六VHDL有限狀態(tài)機設(shè)計ADC_第1頁
實驗六VHDL有限狀態(tài)機設(shè)計ADC_第2頁
實驗六VHDL有限狀態(tài)機設(shè)計ADC_第3頁
實驗六VHDL有限狀態(tài)機設(shè)計ADC_第4頁
實驗六VHDL有限狀態(tài)機設(shè)計ADC_第5頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、 本科學生綜合性實驗報告學號 114090315 姓名 李開斌 學院 物電學院 專業(yè)、班級 11電子 實驗課程名稱 電子設(shè)計自動化(EDA實驗) 教師及職稱 羅永道 副教授 開課學期 2013 至 2014 學年 下 學期 填報時間 2014 年 5 月 30 日云南師范大學教務(wù)處編印實驗序號 6實驗名稱VHDL有限狀態(tài)機設(shè)計實驗時間2014年5月30日實驗室同析樓114一實驗預習1. 實驗?zāi)康?學習用狀態(tài)機對A/D轉(zhuǎn)換器ADC0809的采樣控制電路的實現(xiàn)。2 實驗原理、實驗流程或裝置示意圖:ADC0809是CMOS的8位A/D轉(zhuǎn)換器,片內(nèi)有8路模擬開關(guān),可控制8個模擬量中的一個進入轉(zhuǎn)換器中。

2、ADC0809的分辨率為8位,轉(zhuǎn)換時間約100us,含鎖存控制的8路多路開關(guān),輸出有三態(tài)緩沖器控制,單5V電源供電。主要控制信號說明:如圖1所示,START是轉(zhuǎn)換啟動信號,高電平有效;ALE是3位通道選擇地址(ADDC、ADDB、ADDA)信號的鎖存信號。當模擬量送至某一輸入端(如IN1或IN2等),由3位地址信號選擇,而地址信號由ALE鎖存;EOC是轉(zhuǎn)換情況狀態(tài)信號(類似于AD574的STATUS),當啟動轉(zhuǎn)換約100us后,EOC產(chǎn)生一個負脈沖,以示轉(zhuǎn)換結(jié)束;在EOC的上升沿后,若使輸出使能信號OE為高電平,則控制打開三態(tài)緩沖器,把轉(zhuǎn)換好的8位數(shù)據(jù)結(jié)果輸至數(shù)據(jù)總線。至此ADC0809的一次

3、轉(zhuǎn)換結(jié)束了。圖13 實驗設(shè)備及材料 電腦一臺,QuartusII 實驗平臺,EDA實驗箱4 實驗方法步驟及注意事項用VHDL 設(shè)計的狀態(tài)機的一般結(jié)構(gòu)有以下幾部分組成:1.    說明部分說明部分中有新數(shù)據(jù)類型TYPE 的定義及其狀態(tài)類型(狀態(tài)名)和在此新數(shù)據(jù)類型下定義的狀態(tài)變量。狀態(tài)類型一般用枚舉類型,其中每一個狀態(tài)名可任意選取。但為了便于辨認和含義明確,狀態(tài)名最好有明顯的解釋性意義。狀態(tài)變量應(yīng)定義為信號,便于信息傳遞。說明部分一般放在ARCHITECTURE 和BEGIN之間。2.   

4、60;主控時序進程:狀態(tài)機是隨外部時鐘信號以同步時序方式工作的,因此狀態(tài)機中必須包含一個對工作時鐘信號敏感的進程作為狀態(tài)機的“驅(qū)動泵”。當時鐘發(fā)生有效跳變時,狀態(tài)機的狀態(tài)才發(fā)生變化。狀態(tài)機的下一狀態(tài)(包括再次進入本狀態(tài))僅僅取決于時鐘信號的到來。一般地,主控時序進程不負責進入的下一狀態(tài)的具體狀態(tài)取值。當時鐘的有效跳變到來時,時序進程只是機械地將代表下一狀態(tài)的信號next_state 中的內(nèi)容送入代表本狀態(tài)的信current_state 中,而信號next_state 中的內(nèi)容完全由其它的進程根據(jù)實際情況來決定。當然此進程中也可以放置一些同步或異步清零、置位方面的控

5、制信號??傮w來說,主控時序進程的設(shè)計比較固定、單一和簡單。3.    主控組合進程:主控組合進程的任務(wù)是根據(jù)外部輸入的控制信號(包括來自狀態(tài)機外部的信號和來自狀態(tài)機內(nèi)部其它非主控的組合或時序進程的信號),或(和)當前狀態(tài)的狀態(tài)值確定下一狀態(tài)(next_state)的取向,即next_state的取值內(nèi)容,以及確定對外輸出或?qū)?nèi)部其它組合或時序進程輸出控制信號的內(nèi)容。4.    普通組合進程用于配合狀態(tài)機工作的其它組合進程,如為了完成某種算法的進程。5.    普通時序進程用于

6、配合狀態(tài)機工作的其它時序進程,如為了穩(wěn)定輸出設(shè)置的數(shù)據(jù)鎖存器等。一個狀態(tài)機的最簡結(jié)構(gòu)應(yīng)至少由兩個進程構(gòu)成(也有單進程狀態(tài)機,但并不常用)即一個主控時序進程和一個主控組合進程,一個進程作“驅(qū)動泵”,描述時序邏輯,包括狀態(tài)寄存器的工作和寄存器狀態(tài)的輸出;另一個進程描述組合邏輯,包括進程間狀態(tài)值的傳遞邏輯以及狀態(tài)轉(zhuǎn)換值的輸出。當然必要時還可以引入第3 個和第4 個進程,以完成其它的邏輯功能。圖2為一般狀態(tài)機結(jié)構(gòu)圖。圖2   一般狀態(tài)機結(jié)構(gòu)框圖工作示意圖圖3和圖4為控制ADC0809采樣狀態(tài)機結(jié)構(gòu)圖和狀態(tài)轉(zhuǎn)換圖圖3  采樣狀態(tài)機結(jié)構(gòu)

7、框圖設(shè)計提示:設(shè)目標器件是EP1C6Q240C8,建議選擇實驗電路結(jié)構(gòu)圖No.5(即結(jié)構(gòu)圖No.5A,附圖1-14,由該圖可見,ADC0809的轉(zhuǎn)換時鐘CLK已經(jīng)事先接有750KHz的頻率),將實驗系統(tǒng)左下角選擇插針處的“轉(zhuǎn)換結(jié)束”和“A/D使能”用跳線帽短接。下載目標文件后,可用螺絲刀旋轉(zhuǎn)實驗系統(tǒng)左下角的電位器,以便為ADC0809提供變化的待測模擬信號,這時數(shù)碼管8和7將顯示ADC0809采樣輸出并被鎖存的數(shù)字值(16進制)。圖4  控制ADC0809采樣狀態(tài)圖圖5  控制ADC0809采樣時序圖二實驗內(nèi)容1 實驗現(xiàn)象與結(jié)果(1)ADC0809 VH

8、DL語言程序如下:LIBRARY ieee;USE ieee.std_logic_1164.all;ENTITY adc IS PORT ( CLK : IN STD_LOGIC; RESET : IN STD_LOGIC := '0' EOC : IN STD_LOGIC := '0' DATA : IN STD_LOGIC_VECTOR(7 DOWNTO 0) := "00000000" ALE : OUT STD_LOGIC; START : OUT STD_LOGIC; OE : OUT STD_LOGIC; Q : OUT STD_

9、LOGIC_VECTOR(7 DOWNTO 0) );END adc;ARCHITECTURE BEHAVIOR OF adc IS TYPE type_fstate IS (S0,S1,S2,S3,S4); SIGNAL fstate : type_fstate; SIGNAL reg_fstate : type_fstate; SIGNAL reg_ALE : STD_LOGIC := '0' SIGNAL reg_START : STD_LOGIC := '0' SIGNAL reg_OE : STD_LOGIC := '0' SIGNAL

10、 reg_Q : STD_LOGIC_VECTOR(7 DOWNTO 0) := "00000000"BEGIN PROCESS (CLK,reg_fstate,reg_START,reg_OE,reg_Q) BEGIN IF (CLK='1' AND CLK'event) THEN fstate <= reg_fstate; START <= reg_START; OE <= reg_OE; Q <= reg_Q; END IF; END PROCESS; PROCESS (fstate,RESET,EOC,DATA,reg

11、_ALE) BEGIN IF (RESET='1') THEN reg_fstate <= S0; reg_ALE <= '0' reg_START <= '0' reg_OE <= '0' reg_Q <= "00000000" ALE <= '0' ELSE reg_ALE <= '0' reg_START <= '0' reg_OE <= '0' reg_Q <= "000

12、00000" ALE <= '0' CASE fstate IS WHEN S0 => reg_fstate <= S1; WHEN S1 => reg_fstate <= S2; reg_ALE <= '1' reg_START <= '1' WHEN S2 => IF (EOC = '1') THEN reg_fstate <= S3; ELSE reg_fstate <= S2; END IF; WHEN S3 => reg_fstate <=

13、 S4; reg_OE <= '1' WHEN S4 => reg_fstate <= S0; reg_Q <= DATA(7 DOWNTO 0); WHEN OTHERS => reg_ALE <= 'X' reg_START <= 'X' reg_OE <= 'X' reg_Q <= "XXXXXXXX" report "Reach undefined state" END CASE; ALE <= reg_ALE; END IF; END PROCESS;END BEHAVIOR;2.        仿真分析圖

溫馨提示

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

評論

0/150

提交評論