L
lzh08
Guest
library ieee;
gamitin ieee.std_logic_1164.all;
Entity MCU AY
Port
(
nDataStrobe: SA Std_Logic;
nAddrStrobe: SA Std_Logic;
nWri: SA Std_Logic;
nReset: SA Std_Logic;
Data: INOUT Std_Logic_Vector (7 DOWNTO 0);
nWait: Out Std_Logic;
nAck: Out Std_Logic;
);
END MCU;
Architecture Action NG MCU AY
TYPE Estado IS (St0, St1, St2, St3, St4, St5);
Signal Cur_State, Next_State: Estado: = St0;
Signal RegDataTemp: std_logic_vector (7 downto 0);
Signal RegAddrTemp: std_logic_vector (7 downto 0);
Simulan
DataWrite: PROSESO (Cur_State, nDataStrobe, nWri)
Simulan
KASO AY Cur_State
KAPAG St0 => nWait <= '0 ';
kung (nWri = '1 ') at pagkatapos ay
Next_State <= St0;
kung hindi
Next_State <= St1;
kung ang dulo;
KAPAG St1 => RegDataTemp <= Data;
kung (nDataStrobe = '1 ') at pagkatapos ay
Next_State <= St1;
kung hindi
Next_State <= St2;
kung ang dulo;
KAPAG St2 => nWait <= '1 ';
Next_State <= St3;
KAPAG St3 => kung (nDataStrobe = '0 ') at pagkatapos ay
Next_State <= St3;
kung hindi
Next_State <= St4;
kung ang dulo;
KAPAG St4 => kung (nWri = '0 ')
Next_State <= St4;
kung hindi
Next_State <= St5;
kung ang dulo;
KAPAG St5 => nWait <= 1;
Next_State <= St0;
KAPAG iba => Next_State <= St0;
tapusin kaso;
END PROSESO;PROSESO (SysClk)
Simulan
KUNG Rising_Edge (SysClk) Pagkatapos
Cur_State <= Next_State;
END KUNG;
END PROSESO;
END Action;
gamitin ieee.std_logic_1164.all;
Entity MCU AY
Port
(
nDataStrobe: SA Std_Logic;
nAddrStrobe: SA Std_Logic;
nWri: SA Std_Logic;
nReset: SA Std_Logic;
Data: INOUT Std_Logic_Vector (7 DOWNTO 0);
nWait: Out Std_Logic;
nAck: Out Std_Logic;
);
END MCU;
Architecture Action NG MCU AY
TYPE Estado IS (St0, St1, St2, St3, St4, St5);
Signal Cur_State, Next_State: Estado: = St0;
Signal RegDataTemp: std_logic_vector (7 downto 0);
Signal RegAddrTemp: std_logic_vector (7 downto 0);
Simulan
DataWrite: PROSESO (Cur_State, nDataStrobe, nWri)
Simulan
KASO AY Cur_State
KAPAG St0 => nWait <= '0 ';
kung (nWri = '1 ') at pagkatapos ay
Next_State <= St0;
kung hindi
Next_State <= St1;
kung ang dulo;
KAPAG St1 => RegDataTemp <= Data;
kung (nDataStrobe = '1 ') at pagkatapos ay
Next_State <= St1;
kung hindi
Next_State <= St2;
kung ang dulo;
KAPAG St2 => nWait <= '1 ';
Next_State <= St3;
KAPAG St3 => kung (nDataStrobe = '0 ') at pagkatapos ay
Next_State <= St3;
kung hindi
Next_State <= St4;
kung ang dulo;
KAPAG St4 => kung (nWri = '0 ')
Next_State <= St4;
kung hindi
Next_State <= St5;
kung ang dulo;
KAPAG St5 => nWait <= 1;
Next_State <= St0;
KAPAG iba => Next_State <= St0;
tapusin kaso;
END PROSESO;PROSESO (SysClk)
Simulan
KUNG Rising_Edge (SysClk) Pagkatapos
Cur_State <= Next_State;
END KUNG;
END PROSESO;
END Action;