- ADC0809
-在-
- CLK1:模數轉換器
- IN(0~7):模擬輸入
- ALE:地址鎖定使能
- START:模數轉換開始
- OE: Out使能
- ADDA~C:模擬輸入通道
出去
- EOC:轉換結束
- D[7..0]:數據輸出
圖書館ieee
使用IEEE . STD _ logic _ 1164 . all;
實體狀態機是
端口(
clk:在std_logic中;
eoc:在std_logic中;
ale:out STD _ logic;
start:out STD _ logic;
OE:out STD _ logic;
addr:out STD _ logic _ vector(2 down to 0);
d:在std_logic_vector中(7下降到0);
q:out STD _ logic _ vector(7 down to 0);
lock0:out std_logic
);
結束狀態機;
狀態機的架構行為是
類型狀態為(st0,st1,st2,st3,st4);
信號current_state,next _ state:States:= st0;
signal regl:STD _ logic _ vector(7 down to 0);
信號鎖:std _ logic
開始
addr & lt="000";
q & lt= regl
lock0 & lt=鎖定;
COM:process(當前狀態,eoc)
開始
案例當前狀態為
當st0 = & gtale & lt='0';開始& lt='0';鎖定& lt='0';oe & lt='0';
next _ state & lt= ST 1;
當st1 = >ale & lt='1';開始& lt='1';鎖定& lt='0';oe & lt='0';
next _ state & lt= st2
當st2 = & gtale & lt='0';開始& lt='0';鎖定& lt='0';oe & lt='0';
如果eoc='1 ',則
next _ state & lt= st3
其他
next _ state & lt= st2
結束if;
當st3 = & gtale & lt='0';開始& lt='0';鎖定& lt='0';oe & lt='1';
next _ state & lt= st4
當st4 = >ale & lt='0';開始& lt='0';鎖定& lt='1';oe & lt='1';
next _ state & lt= st0
當別人= & gtnext _ state & lt= st0
結束案例;
結束進程COM
寄存器:進程(時鐘)
開始
如果clk事件和clk='1 '則
當前狀態& lt= next _ state
結束if;
結束進程註冊;
LATCH1:進程(鎖定)
開始
如果lock事件和lock='1 '則
regl & lt= d;
結束if;
結束進程latch 1;
結束行為;