اطلاعیه

Collapse
No announcement yet.

مشکل باwait for وloop در زبان vhdl

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    مشکل باwait for وloop در زبان vhdl

    سلام
    دوستان می شه درمورد wait for وloop در زبان vhdl یکم توضیح بدید...؟؟؟
    آخه من برنامه ای که نوشتم error می ده...
    هرگاه زندگی را جهنم دیدی, سعی کن پخته بیرون آیی, سوختن رو همه بلدند

    #2
    پاسخ : مشکل باwait for وloop در زبان vhdl

    خب الان اینجا چندتا مشکل هست،
    اول اینکه آخر خط wait for 50 ms ";" نذاشتی. درستش میشه :
    ;wait for 50 ms
    ومشکل دوم هم که به نظرم میاد ، محدود نکردن حلقه(loop) هست که اونو هم میتونی با دادن یه لیبل(label) به ابتدای حلقه استفاده از دستور"exit" در داخل حلقه برطرفش کنی.
    البته باید توجه داشته باشی که کدت تنها بصورت behavioral هست و در test bench کاربرد داره!
    چه خوب بود که کد رو به صورت text میذاشتی که بشه بردش تو محیط برنامه و تستش کرد :redface:

    دیدگاه


      #3
      پاسخ : مشکل با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;
      هرگاه زندگی را جهنم دیدی, سعی کن پخته بیرون آیی, سوختن رو همه بلدند

      دیدگاه


        #4
        پاسخ : مشکل با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;

        دیدگاه


          #5
          پاسخ : مشکل باwait for وloop در زبان vhdl

          دوست عزیز این برنامه ای که نوشتی error می ده و کامپایل نمی شه...
          هرگاه زندگی را جهنم دیدی, سعی کن پخته بیرون آیی, سوختن رو همه بلدند

          دیدگاه


            #6
            پاسخ : مشکل باwait for وloop در زبان vhdl


            این هم عکس صفحه modelsim که نشون میده برنامه بدرستی کامپایل میشه.
            لینک عکس رو هم میذارم واسه اطمینان:
            http://www.irupload.ir/images/3qm5twp232jrkkbz1.jpg
            http://www.irupload.ir/images/3qm5twp232jrkkbz1.jpg

            دیدگاه


              #7
              پاسخ : مشکل باwait for وloop در زبان vhdl

              دوست عزیز من با Quartus II 9.0 تست کردم اما error می ده...؟؟؟
              هرگاه زندگی را جهنم دیدی, سعی کن پخته بیرون آیی, سوختن رو همه بلدند

              دیدگاه


                #8
                پاسخ : مشکل باwait for وloop در زبان vhdl

                من با Quartus کار نکردم لی این کد رو هم با modelsim و هم با ise10.1 تست کردم و مشکلی نداشت.
                احتمالا" مشکل از Quartus هست. چون بعضی از کامپایلرها با دستور wait مشکل دارن و همه حالت هاشون رو برای سنتز ساپورت نمی کنن.
                خب بگو می خوای کدت چیکار کنه ، شاید بشه با یه سری دستورهای قابل سنتز به همون نتیجه رسید!

                دیدگاه


                  #9
                  پاسخ : مشکل باwait for وloop در زبان vhdl

                  سلام
                  یعنی توی این انجمن کسی با QUARTUS کار نکرده... که راهنماییمون کنه..؟؟؟؟؟؟؟؟؟؟
                  هرگاه زندگی را جهنم دیدی, سعی کن پخته بیرون آیی, سوختن رو همه بلدند

                  دیدگاه


                    #10
                    پاسخ : مشکل باwait for وloop در زبان vhdl

                    سلام
                    کسی می دونه اگه بخوایم دو تا حلقه تو در تو داشته باشیم چه جوری می شه؟؟؟

                    دیدگاه


                      #11
                      پاسخ : مشکل باwait for وloop در زبان vhdl

                      نوشته اصلی توسط الهه.م
                      کسی می دونه اگه بخوایم دو تا حلقه تو در تو داشته باشیم چه جوری می شه؟؟؟
                      این کارا میشه، ولی دیگه کد VHDL نمیشه! بهتره همه کارهارو فقط و فقط با if else , case, rising_edge انجام بدین. بهترین و قویترین برنامه ها با این ساختار نوشته می شن.

                      دیدگاه

                      لطفا صبر کنید...
                      X