اطلاعیه
Collapse
No announcement yet.
مشکل باwait for وloop در زبان vhdl
Collapse
X
-
پاسخ : مشکل باwait for وloop در زبان vhdl
خب الان اینجا چندتا مشکل هست،
اول اینکه آخر خط wait for 50 ms ";" نذاشتی. درستش میشه :
;wait for 50 ms
ومشکل دوم هم که به نظرم میاد ، محدود نکردن حلقه(loop) هست که اونو هم میتونی با دادن یه لیبل(label) به ابتدای حلقه استفاده از دستور"exit" در داخل حلقه برطرفش کنی.
البته باید توجه داشته باشی که کدت تنها بصورت behavioral هست و در test bench کاربرد داره!
چه خوب بود که کد رو به صورت text میذاشتی که بشه بردش تو محیط برنامه و تستش کرد :redface:
-
پاسخ : مشکل باwait for وloop در زبان vhdl
دوستان اینم فایلش
library ieee;
use ieee.std_logic_1164.all;
entity xxx is
port(a:in std_logic;
xut std_logic_vector (3 downto 0));
end xxx;
architecture xxxx of xxx is
begin
process(a)
begin
loop
x<="1000";
wait for 50 ms;
x<="1001";
end loop;
end process;
end;هرگاه زندگی را جهنم دیدی, سعی کن پخته بیرون آیی, سوختن رو همه بلدند
دیدگاه
-
پاسخ : مشکل باwait for وloop در زبان vhdl
ببین وقتی که برای پروسس لیست حساسیت قرار بدیم دیگه نمی تونیم از دستور wait استفاده کنیم!
چون اون لیست (process(a حساسیت معادل عبارت ;wait on a در انتهای پروسس(قبل از ;end process ) هست.
شما می تونید بجای (a) از ;wait on a استفاده کنین، مثل کد زیر: البته من برای راحتی کار خودم ms رو به ns تغییر دادم
library ieee;
use ieee.std_logic_1164.all;
entity xxx is
port(a:in std_logic;
xut std_logic_vector (3 downto 0));
end xxx;
architecture xxxx of xxx is
begin
process
begin
loop
x<="1000";
wait for 50 ns;
x<="1001";
end loop;
wait on a;
end process;
end;
دیدگاه
-
پاسخ : مشکل باwait for وloop در زبان vhdl
این هم عکس صفحه modelsim که نشون میده برنامه بدرستی کامپایل میشه.
لینک عکس رو هم میذارم واسه اطمینان:
http://www.irupload.ir/images/3qm5twp232jrkkbz1.jpg
http://www.irupload.ir/images/3qm5twp232jrkkbz1.jpg
دیدگاه
-
پاسخ : مشکل باwait for وloop در زبان vhdl
من با Quartus کار نکردم لی این کد رو هم با modelsim و هم با ise10.1 تست کردم و مشکلی نداشت.
احتمالا" مشکل از Quartus هست. چون بعضی از کامپایلرها با دستور wait مشکل دارن و همه حالت هاشون رو برای سنتز ساپورت نمی کنن.
خب بگو می خوای کدت چیکار کنه ، شاید بشه با یه سری دستورهای قابل سنتز به همون نتیجه رسید!
دیدگاه
-
پاسخ : مشکل باwait for وloop در زبان vhdl
نوشته اصلی توسط الهه.مکسی می دونه اگه بخوایم دو تا حلقه تو در تو داشته باشیم چه جوری می شه؟؟؟
دیدگاه
دیدگاه