[مساعدة] [في إتش دي إل] حالة الانتقال

C

CyberBoy

Guest
أنا أكتب هذه الشفرة في لغة في إتش دي إل...أحتاج أن نفهم لماذا ، عندما كنت محاكاة هذا الرمز..."انتظار" الدولة هي بلدي وقفز محاكاة بدء من "تهيئة" الدولة

رمز :ieee المكتبة ؛

استخدام ieee.std_logic_1164.ALL ؛

استخدام ieee.std_logic_arith.ALL ؛

استخدام ieee.numeric_std.ALL ؛

استخدام ieee.std_logic_signed.ALL ؛-- سينوبسيس translate_off

-- مكتبة UNISIM ؛

-- استخدام UNISIM.Vcomponents.ALL ؛

-- سينوبسيس translate_onLCD_Driver الكيان

الميناء (clk : في std_logic ؛

clk_out : خارج std_logic ؛

D8_D0 : خارج std_logic_vector (8 downto 0) ؛ -- جمهورية صربسكا إشارة 8bit

count_ext : خارج std_logic_vector (31 downto 0) ؛

أون : خارج std_logic ؛

sel_ext : خارج std_logic ؛

address_ext : خارج std_logic_vector (31 downto 0)) ؛

LCD_Driver الغاية ؛العمارة السلوكية للهو LCD_Driverrom_array النوع هو مجموعة (0 إلى 15) من std_logic_vector (8 downto 0) ؛

مدمج ثابت : rom_array : = ( "000110000" ،

"000110000" ،

"000110000" ،

"000110000" ،

"000010000" ،

"000000001" ،

"000000110" ،

"000001111" ،

"100110110" ،

"000000000" ،

"000000000" ،

"000000000" ،

"000000000" ،

"000000000" ،

"000000000" ،

"000000000") ؛إشارة clock_int : std_logic ؛أركان بحر نوع (الانتظار ، تهيئة وتجهيز) ؛

إشارة sel : أركان بحر ؛

يبدأعملية (clk)

العد متغير : صحيح ؛

يبدأ

إذا كان (rising_edge (clk)) ثم

العد : العد = 1 ؛

إذا كان (العد> 100) ثم -- 20000

clock_int <= لا clock_int ؛ العد : = 0 ؛

إذا كانت الغاية ؛

إذا كانت الغاية ؛

عملية الغاية ؛عملية (clock_int)

عنوان المتغير : صحيح ؛

العد متغير : صحيح : = 0 ؛

متغير count2 : صحيح : = 0 ؛

-- sel متغير : صحيح : = 0 ؛يبدأ

إذا كان (rising_edge (clock_int)) ثم

sel القضية

عندما تنتظر =>

العد : 1 = العد ؛

إذا كان (العدد = 76) ثم

sel <= تهيئة ؛ العد : = 0 ؛

العنوان : = 0 ؛

إذا كانت الغاية ؛

عندما تهيئة =>

العد : 1 = العد ؛

إذا كان (العدد = 25) ثم

أون <= '1' ؛ العنوان : عنوان 1 = ؛

إذا كانت الغاية ؛إذا كان (العدد = 50) ثم

sel <= تجهيز ؛ العد : = 0 ؛ أون <= '0' ؛

إذا كانت الغاية ؛عند معالجة =>

count2 : = count2 1 ؛

إذا كان (count2 <9) ثم

إذا كان (عد = 0) ثم

أون <= '1' ؛

العنوان : عنوان 1 = ؛

العد : = 1 ؛

elsif (عد = 1) ، ثم

أون <= '0' ؛

العد : = 0 ؛

إذا كانت الغاية ؛

إذا كانت الغاية ؛

حالة الغاية ؛

إذا كانت الغاية ؛

D8_D0 <= المضغوط (عنوان) ؛

address_ext <= CONV_STD_LOGIC_VECTOR (عنوان ، 32) ؛

count_ext <= CONV_STD_LOGIC_VECTOR (العد ، 32) ؛

عملية الغاية ؛clk_out <= clock_int ؛نهاية السلوكية ؛
 
لديك لم يتم تعريف الحالة الأولية لل'sel'.باستخدام الرمز الفعلي ، فإن الدولة سوف تعتمد على الترميز الأولي الدولة والسلطة على قيمة السجلات.

هل هناك أي إشارة في إعادة النظام الخاص بك؟لماذا لا يتم استخدامه لتحديد الحالة الأولية للسجلات؟

ليس هناك من سبب لجهودكم 51mins السلوك.

 

Welcome to EDABoard.com

Sponsor

Back
Top