L
lzh08
Guest
ieee المكتبة ؛
ieee.std_logic_1164.all استخدام ؛
هو كيان مكو
بورت
(
nDataStrobe : في std_logic ؛
nAddrStrobe : في std_logic ؛
nWri : في std_logic ؛
nReset : في std_logic ؛
بيانات : INOUT std_logic_vector (7 DOWNTO 0) ؛
nWait : نفاد std_logic ؛
nAck : نفاد std_logic ؛
(؛)
انتهى مكو ؛
بنية عمل هو مكو
الدولة هو نوع (St0 ، St1 ، St2 ، St3 ، St4 ، St5) ؛
إشارة Cur_State ، Next_State : الدولة : = St0 ؛
إشارة RegDataTemp : std_logic_vector (7 downto 0) ؛
إشارة RegAddrTemp : std_logic_vector (7 downto 0) ؛
ستبدأ
DataWrite : عملية (Cur_State ، nDataStrobe ، nWri)
ستبدأ
هو كيس Cur_State
متى St0 => nWait <= '0' ؛
إذا كان (nWri = '1') ثم
Next_State <= St0 ؛
أيضا
Next_State <= St1 ؛
إذا كانت الغاية ؛
متى St1 => RegDataTemp <= البيانات ؛
إذا كان (nDataStrobe = '1') ثم
Next_State <= St1 ؛
أيضا
Next_State <= St2 ؛
إذا كانت الغاية ؛
متى St2 => nWait <= '1' ؛
Next_State <= St3 ؛
متى St3 => إذا (nDataStrobe = '0') ثم
Next_State <= St3 ؛
أيضا
Next_State <= St4 ؛
إذا كانت الغاية ؛
متى St4 => إذا (nWri = '0')
Next_State <= St4 ؛
أيضا
Next_State <= St5 ؛
إذا كانت الغاية ؛
متى St5 => nWait <= 1 ؛
Next_State <= St0 ؛
عند الآخرين => Next_State <= St0 ؛
حالة الغاية ؛
إنهاء عملية ؛عملية (SysClk)
ستبدأ
إذا Rising_Edge (SysClk) ثم
Cur_State <= Next_State ؛
النهاية إذا ؛
إنهاء عملية ؛
انتهى العمل ؛
ieee.std_logic_1164.all استخدام ؛
هو كيان مكو
بورت
(
nDataStrobe : في std_logic ؛
nAddrStrobe : في std_logic ؛
nWri : في std_logic ؛
nReset : في std_logic ؛
بيانات : INOUT std_logic_vector (7 DOWNTO 0) ؛
nWait : نفاد std_logic ؛
nAck : نفاد std_logic ؛
(؛)
انتهى مكو ؛
بنية عمل هو مكو
الدولة هو نوع (St0 ، St1 ، St2 ، St3 ، St4 ، St5) ؛
إشارة Cur_State ، Next_State : الدولة : = St0 ؛
إشارة RegDataTemp : std_logic_vector (7 downto 0) ؛
إشارة RegAddrTemp : std_logic_vector (7 downto 0) ؛
ستبدأ
DataWrite : عملية (Cur_State ، nDataStrobe ، nWri)
ستبدأ
هو كيس Cur_State
متى St0 => nWait <= '0' ؛
إذا كان (nWri = '1') ثم
Next_State <= St0 ؛
أيضا
Next_State <= St1 ؛
إذا كانت الغاية ؛
متى St1 => RegDataTemp <= البيانات ؛
إذا كان (nDataStrobe = '1') ثم
Next_State <= St1 ؛
أيضا
Next_State <= St2 ؛
إذا كانت الغاية ؛
متى St2 => nWait <= '1' ؛
Next_State <= St3 ؛
متى St3 => إذا (nDataStrobe = '0') ثم
Next_State <= St3 ؛
أيضا
Next_State <= St4 ؛
إذا كانت الغاية ؛
متى St4 => إذا (nWri = '0')
Next_State <= St4 ؛
أيضا
Next_State <= St5 ؛
إذا كانت الغاية ؛
متى St5 => nWait <= 1 ؛
Next_State <= St0 ؛
عند الآخرين => Next_State <= St0 ؛
حالة الغاية ؛
إنهاء عملية ؛عملية (SysClk)
ستبدأ
إذا Rising_Edge (SysClk) ثم
Cur_State <= Next_State ؛
النهاية إذا ؛
إنهاء عملية ؛
انتهى العمل ؛