




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、1問題探討全成斌存在的問題nSignal vs variablen對LE認識n資源是有限的240個LEn狀態(tài)機23硬件描述與軟件不同之處n信號n硬件連線的抽象n連接電路中元件n并行語句n多個語句同時執(zhí)行n對應于電路中的不同部分ab4FPGA的基本單元Out D Q Clock Select 觸發(fā)器In1 In2 In3 LUT 組合邏輯塊組合邏輯塊5有限狀態(tài)機設計 61 一般有限狀態(tài)機1.1 類型定義語句TYPEnTYPE語句用法nTYPE 數(shù)據(jù)類型名 IS 數(shù)據(jù)類型定義 OF 基本數(shù)據(jù)類型 ;nTYPE 數(shù)據(jù)類型名 IS 數(shù)據(jù)類型定義 ;n舉例1. TYPE st1 IS ARRAY ( 0
2、 TO 15 ) OF STD_LOGIC ;2. TYPE week IS (sun,mon,tue,wed,thu,fri,sat) ; n子類型Subtype是原數(shù)據(jù)類型的一個子集 Subtype 子類型名 Is 基本數(shù)據(jù)類型 Range 約束范圍; Subtype Digits Is Integer Range 0 To 9 ; 7枚舉數(shù)據(jù)類型n屬于自定義數(shù)據(jù)類型n枚舉數(shù)據(jù)類型常用于狀態(tài)機描述type stats is (S0, S1, S2, S3); - 定義狀態(tài)機的四個狀態(tài)Signal current_state,next_state:stats81.2 為什么要使用狀態(tài)機 1、
3、狀態(tài)機克服了純硬件數(shù)字系統(tǒng)順序方式控制不靈活的缺點。、狀態(tài)機克服了純硬件數(shù)字系統(tǒng)順序方式控制不靈活的缺點。2、狀態(tài)機的結構相對簡單,設計方案相對固定。、狀態(tài)機的結構相對簡單,設計方案相對固定。3、狀態(tài)機容易構成性能良好的同步時序邏輯模塊。、狀態(tài)機容易構成性能良好的同步時序邏輯模塊。4、狀態(tài)機的、狀態(tài)機的VHDL表述豐富多樣、有其獨到的好處。表述豐富多樣、有其獨到的好處。5、在高速運算和控制方面,狀態(tài)機更有其巨大的優(yōu)勢。、在高速運算和控制方面,狀態(tài)機更有其巨大的優(yōu)勢。6、高可靠性。、高可靠性。9狀態(tài)機實例狀態(tài)機實例 ADC0809采樣狀態(tài)機采樣狀態(tài)機10簡單計算器狀態(tài)機111.3 一般狀態(tài)機的結
4、構 1. 說明部分說明部分 說明部分一般放在結構體的說明部分一般放在結構體的ARCHITECTURE 和和BEGIN之之間,例如:間,例如:ARCHITECTURE .IS TYPE FSM_ST IS (s0,s1,s2,s3); SIGNAL current_state, next_state: FSM_ST; . 一般用枚舉數(shù)據(jù)類型描述狀態(tài)機的狀態(tài);一般用枚舉數(shù)據(jù)類型描述狀態(tài)機的狀態(tài); 用一個信號存儲當前狀態(tài)。用一個信號存儲當前狀態(tài)。121.3 一般狀態(tài)機的結構2. 主控時序進程主控時序進程 描述在時鐘的驅動下,狀態(tài)轉換的進程描述在時鐘的驅動下,狀態(tài)轉換的進程comb_outputsst
5、ate_inputsresetclkFSM:s_machineCOMnext_statecurrent_statePROCESSREGPROCESS圖圖1 一般狀態(tài)機結構框圖一般狀態(tài)機結構框圖 131.3 一般狀態(tài)機的結構3. 主控組合進程主控組合進程n給出狀態(tài)機輸出給出狀態(tài)機輸出n確定下一狀態(tài)的走向確定下一狀態(tài)的走向4. 輔助進程輔助進程 輔助狀態(tài)機工作的進程,比如數(shù)據(jù)鎖存輔助狀態(tài)機工作的進程,比如數(shù)據(jù)鎖存14【例例1】LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY s_machine IS PORT ( clk,reset : IN STD_
6、LOGIC; state_inputs : IN STD_LOGIC_VECTOR (0 TO 1); comb_outputs : OUT INTEGER RANGE 0 TO 15 );END s_machine;ARCHITECTURE behv OF s_machine IS TYPE FSM_ST IS (s0, s1, s2, s3); -數(shù)據(jù)類型定義,狀態(tài)符號化數(shù)據(jù)類型定義,狀態(tài)符號化 SIGNAL current_state, next_state: FSM_ST;-將現(xiàn)態(tài)和次態(tài)定義為新的數(shù)據(jù)類型將現(xiàn)態(tài)和次態(tài)定義為新的數(shù)據(jù)類型接下頁接下頁BEGIN REG: PROCESS (
7、reset,clk) -主控時序進程主控時序進程 BEGIN IF reset = 1 THEN current_state = s0;-檢測異步復位信號檢測異步復位信號 ELSIF clk=1 AND clkEVENT THEN current_state comb_outputs= 5; IF state_inputs = 00 THEN next_state=s0; ELSE next_state comb_outputs= 8; IF state_inputs = 00 THEN next_state=s1; ELSE next_state comb_outputs= 12; IF s
8、tate_inputs = 11 THEN next_state = s0; ELSE next_state comb_outputs = 14; IF state_inputs = 11 THEN next_state = s3; ELSE next_state = s0; END IF; END case; END PROCESS; END behv; 16兩種狀態(tài)機nMoore型狀態(tài)機n輸出信號僅與當前狀態(tài)有關nMealy型狀態(tài)機n輸出信號由當前狀態(tài)與輸入共同決定。172 Moore2 Moore狀態(tài)機設計狀態(tài)機設計 2.1 MooreMoore狀態(tài)機設計狀態(tài)機設計 圖圖2 ADC080
9、9工作時序工作時序 182 Moore2 Moore狀態(tài)機設計狀態(tài)機設計 2.1 MooreMoore狀態(tài)機設計狀態(tài)機設計 圖圖3 控制控制ADC0809采樣狀態(tài)圖采樣狀態(tài)圖 【例例2】LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY ADCINT IS PORT(D : IN STD_LOGIC_VECTOR(7 DOWNTO 0); -來自來自0809轉換好的轉換好的8位數(shù)據(jù)位數(shù)據(jù)CLK : IN STD_LOGIC; -狀態(tài)機工作時鐘狀態(tài)機工作時鐘EOC : IN STD_LOGIC; -轉換狀態(tài)指示,低電平表示正在轉換轉換狀態(tài)指示,低電平表
10、示正在轉換ALE : OUT STD_LOGIC; -8個模擬信號通道地址鎖存信號個模擬信號通道地址鎖存信號START : OUT STD_LOGIC; -轉換開始信號轉換開始信號OE : OUT STD_LOGIC; -數(shù)據(jù)輸出數(shù)據(jù)輸出3態(tài)控制信號態(tài)控制信號ADDA : OUT STD_LOGIC; -信號通道最低位控制信號信號通道最低位控制信號LOCK0 : OUT STD_LOGIC; -觀察數(shù)據(jù)鎖存時鐘觀察數(shù)據(jù)鎖存時鐘Q : OUT STD_LOGIC_VECTOR(7 DOWNTO 0); -8位數(shù)據(jù)輸出位數(shù)據(jù)輸出END ADCINT;ARCHITECTURE behav OF AD
11、CINT ISTYPE states IS (st0, st1, st2, st3,st4) ; -定義各狀態(tài)子類型定義各狀態(tài)子類型 SIGNAL current_state, next_state: states :=st0 ; SIGNAL REGL : STD_LOGIC_VECTOR(7 DOWNTO 0); SIGNAL LOCK : STD_LOGIC; - 轉換后數(shù)據(jù)輸出鎖存時鐘信號轉換后數(shù)據(jù)輸出鎖存時鐘信號 接下頁接下頁20BEGINADDA = 1;-當當ADDA=0,模擬信號進入通道,模擬信號進入通道IN0;當;當ADDA=1,則進入通道,則進入通道IN1Q = REGL;
12、 LOCK0 ALE=0;START=0;LOCK=0;OE=0; next_state ALE=1;START=1;LOCK=0;OE=0; next_state ALE=0;START=0;LOCK=0;OE=0; IF (EOC=1) THEN next_state = st3; -EOC=1表明轉換結束表明轉換結束 ELSE next_state ALE=0;START=0;LOCK=0;OE=1; next_state ALE=0;START=0;LOCK=1;OE=1; next_state next_state = st0; END CASE ; END PROCESS COM
13、; REG: PROCESS (CLK) BEGIN IF (CLKEVENT AND CLK=1) THEN current_state=next_state; END IF; END PROCESS REG ; - 由信號由信號current_state將當前狀態(tài)值帶出此進程將當前狀態(tài)值帶出此進程:REG LATCH1: PROCESS (LOCK) - 此進程中,在此進程中,在LOCK的上升沿,將轉換好的數(shù)據(jù)鎖入的上升沿,將轉換好的數(shù)據(jù)鎖入 BEGIN IF LOCK=1 AND LOCKEVENT THEN REGL = D ; END IF; END PROCESS LATCH1 ;
14、 END behav; 212 Moore2 Moore狀態(tài)機設計狀態(tài)機設計 2.1 MooreMoore狀態(tài)機設計狀態(tài)機設計 圖圖4 ADC0809采樣狀態(tài)機工作時序采樣狀態(tài)機工作時序 【例例4】 Mealy狀態(tài)機設計狀態(tài)機設計 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL;ENTITY MEALY1 ISPORT ( CLK ,DATAIN,RESET : IN STD_LOGIC; Q : OUT STD_LOGIC_VECTOR(4 DOWNTO 0);END MEALY1;ARCHITECTURE behav OF MEALY1 IS TYPE
15、states IS (st0, st1, st2, st3,st4); SIGNAL STX : states ; BEGIN COMREG : PROCESS(CLK,RESET) BEGIN -決定轉換狀態(tài)的進程決定轉換狀態(tài)的進程 IF RESET =1 THEN STX IF DATAIN = 1 THEN STX IF DATAIN = 0 THEN STX IF DATAIN = 1 THEN STX IF DATAIN = 0 THEN STX IF DATAIN = 1 THEN STX STX IF DATAIN = 1 THEN Q = 10000 ; ELSE Q IF D
16、ATAIN = 0 THEN Q = 10111 ; ELSE Q IF DATAIN = 1 THEN Q = 10101 ; ELSE Q IF DATAIN = 0 THEN Q = 11011 ; ELSE Q IF DATAIN = 1 THEN Q = 11101 ; ELSE Q Q=00000 ; END CASE ; END PROCESS COM1 ;END behav; 3 Mealy狀態(tài)機設計狀態(tài)機設計 233 Mealy3 Mealy狀態(tài)機設計狀態(tài)機設計 圖圖5 例例4狀態(tài)機工作時序圖狀態(tài)機工作時序圖 24【例例5】將將Q鎖存后再輸出,改善毛刺現(xiàn)象。鎖存后再輸出,改善
17、毛刺現(xiàn)象。LIBRARY IEEE; -MEALY FSMUSE IEEE.STD_LOGIC_1164.ALL;ENTITY MEALY2 IS PORT ( CLK ,DATAIN,RESET : IN STD_LOGIC; Q : OUT STD_LOGIC_VECTOR(4 DOWNTO 0);END MEALY2;ARCHITECTURE behav OF MEALY2 IS TYPE states IS (st0, st1, st2, st3,st4); SIGNAL STX : states ; SIGNAL Q1 : STD_LOGIC_VECTOR(4 DOWNTO 0);
18、BEGIN COMREG : PROCESS(CLK,RESET) -決定轉換狀態(tài)的進程決定轉換狀態(tài)的進程 BEGIN IF RESET =1 THEN STX IF DATAIN = 1 THEN STX IF DATAIN = 0 THEN STX IF DATAIN = 1 THEN STX IF DATAIN = 0 THEN STX IF DATAIN = 1 THEN STX STX IF DATAIN=1 THEN Q2 :=10000; ELSE Q2:=01010; END IF; WHEN st1= IF 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 DATAI
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025授權加工生產(chǎn)合同模板
- 2025年嬰幼兒配方食品營養(yǎng)配方創(chuàng)新與嬰幼兒家庭營養(yǎng)市場潛力研究報告
- 中級會計實務考試核心知識復習與試題及答案
- 行政法學未來的問題與試題探討
- 貼心備考資料中級會計實務試題及答案
- 2025商業(yè)合作版合同范本
- 品牌代理合同協(xié)議書
- 制作安裝合同協(xié)議書
- 工程法規(guī)考試收藏試題及答案
- 財務管理考試技巧分享試題及答案2025
- 2025-2030年中國海岸監(jiān)視雷達行業(yè)市場現(xiàn)狀供需分析及投資評估規(guī)劃分析研究報告
- 2025-2030國內煙霧報警器行業(yè)市場發(fā)展現(xiàn)狀及競爭格局與投資發(fā)展研究報告
- 離婚協(xié)議中子女撫養(yǎng)費調整及監(jiān)護權變更公證申請書
- 物流倉儲行業(yè)智能化轉型政策解讀與市場趨勢報告(2025年)
- GA/T 2158-2024法庭科學資金數(shù)據(jù)獲取規(guī)程
- 2025屆高三押題信息卷(一)地理及答案
- 2025南京房屋租賃合同
- 新型傷口敷料應用于預防壓力性損傷的研究進展
- 生產(chǎn)線對外承包合同協(xié)議
- 2025年北京市朝陽區(qū)九年級初三一模英語試卷(含答案)
- 2022辦公建筑設計標準
評論
0/150
提交評論