K述列 7.1一般有限状态机的设计 713一般有限状态机的设计 4.辅助进程 Name: Value: 500Ons 1.0H us 2.Ous 2.5us: 3.0us 35us 4.Ous 4.51 reset clk S state_inputs comb_outputs H5 B 5BCEX5BC 5 BCE 5 current state HO 图7-2例7-1状态机的工作时序图
KX 康芯科技 7.1.3 一般有限状态机的设计 7.1 一般有限状态机的设计 4. 辅助进程 图7-2 例7-1状态机的工作时序图
K述列 72 Moore型有限状态机的设计 721多进程有限状态机 ALE START ∏∏∏∏∏∏∏∏∏∏∏∏∏∏ 88对8可R EOC ADCO809 OE c的uoNo 99 D[7.0 ZZZZZZZZ DATA X 0= 要88889昙 图7-3ADC0809工作时序
KX 康芯科技 7.2.1 多进程有限状态机 7.2 Moore型有限状态机的设计 图7-3 ADC0809工作时序
K述列 72 Moore型有限状态机的设计 721多进程有限状态机 sto 对0809祈始化 LOCK:0→>1 s4LOcK信号锁存 抟换好的数据 st1 启动AD转换 OE=1 数据输出有效 采样周期中等待 st3 t2 EOC=转换结束 EOC=0正在转换 图7-4控制ADC0809采样状态图
KX 康芯科技 7.2.1 多进程有限状态机 7.2 Moore型有限状态机的设计 图7-4 控制ADC0809采样状态图
721多进程有限状态机 K述列 FPGA: EP1K30TC144 LOCK 状态机FSM PROCESS current state PROCESS PROCESS REG COM LATCH 时序进程 next state 组合进程 锁存器 ADC0809 CLK 状态机工作时钟 ALE START 模拟信号输入 OE Q[7..0] ADDA A/D工作时钟 clk EOC 采样数据输出 CIk=750KHZ DL7..0] 图75采样状态机结构框图
KX 康芯科技 7.2.1 多进程有限状态机 图7-5 采样状态机结构框图
721三进程有限状态机 K述列 【例72】 工工 BRARY工EEE; 工工 BRARY工EER; USE IEEE STD LOGIC 1164.ALL ENTITY ADCINT工S PORT (D IN STD LOGIC VECTOR(7 DOWNTO 0)i cLK,EoC:玉 N STD LOGIC; ALE START, OE ADDA, LOCKo: OUT STD LOGIC; Q OUT STD LOGIC VECTOR(7 DOWNTO 0))i ND ADO工NT; ARCHITECTURE behaV OF ADCINT IS TYPE states Is (sto, stl, st2, st3, st4 定义各状态子类型 SIGNAL current state next state: states =sto i SIGNAL REGL STD LOGIC VECTOR(7 DOWNTO 0) s工 GNAL LOCK STD LOGIC i 转换后数据输出锁存时钟信号 BEGIN ADDA<=11;--当ADDA<=0,模拟信号进入0809通道0;当ADDA<=11,则 进入通道1 Q < REGL; LOCKO < LOCK COM: PROCESS( current state,OC) BEGIN-规定各状态转换方式 接下页
KX 康芯科技 【例7-2】 LIBRARY IEEE; LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY ADCINT IS PORT (D : IN STD_LOGIC_VECTOR(7 DOWNTO 0); CLK ,EOC : IN STD_LOGIC; ALE, START, OE, ADDA,LOCK0 : OUT STD_LOGIC; Q : OUT STD_LOGIC_VECTOR(7 DOWNTO 0)); END ADCINT; ARCHITECTURE behav OF ADCINT IS TYPE states IS (st0, st1, st2, st3,st4) ; --定义各状态子类型 SIGNAL current_state, next_state: states :=st0 ; SIGNAL REGL : STD_LOGIC_VECTOR(7 DOWNTO 0); SIGNAL LOCK : STD_LOGIC; -- 转换后数据输出锁存时钟信号 BEGIN ADDA <= '1';--当ADDA<='0' ,模拟信号进入0809通道0;当ADDA<='1' ,则 进入通道1 Q <= REGL; LOCK0 <= LOCK ; COM: PROCESS(current_state,EOC) BEGIN --规定各状态转换方式 接下页 7.2.1 三进程有限状态机