اطلاعیه

Collapse
No announcement yet.

مشکل با دستور wait for در vhdl

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

    مشکل با دستور wait for در vhdl

    سلام دوستان
    من میخوام یه برنامه واسه epm7128 توی quartus 7.1 بنویسم که یه led چشمک بزنه ولی کامپایلر همش به دستور wait for گیر میده که اینه
    Error (10533): VHDL Wait Statement error at p1.vhd(25): Wait Statement must contain condition clause with UNTIL keyword

    برنامه خودم هم اینه

    library IEEE;
    use IEEE.std_logic_1164.all;

    entity p1 is
    port (
    clk: in bit;
    b: buffer bit
    );
    end p1;

    architecture led of p1 is
    begin
    process
    variable clktime:bit:='0';

    begin
    for i in 0 to 100 loop
    clktime:= NOT clktime;
    b<=clktime;
    wait for 500 ms;
    end loop;
    end process;
    end led;

    اگه کسی میتونه کمک کنه که برنامه چه مشکلی داره و یا یه برنامه با vhdl یا verilog واسه همین led چشمک زن بذارید ممنون میشم.

    ” تا سگ نشوی کوچه و بازار نگردی هرگز نشوی گرگ بیابان حقیقت”

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

    سلام دوستان
    من یه جایی خوندم که دستور wait قابل سنتز نیست و فقط برای شبیه سازیه. چنین چیزی درسته؟ و اگه اینطوره برای ایجاد تاخیرهای بزرگ در حد ثانیه باید چه کار کرد؟ مثلا بخایم یه پالس ساعت با فرکانس دلخواه ایجاد کنیم چه باید کرد؟.
    اگه کسی میتونه با یه مثال اونو بگه. با تشکر
    ” تا سگ نشوی کوچه و بازار نگردی هرگز نشوی گرگ بیابان حقیقت”

    دیدگاه


      #3
      پاسخ : مشکل با دستور wait for در vhdl

      با سلام
      البته من با VHDL آشنا نیستم ولی درسته دستورات wait و یا کلا بقیه دستورات زمانآ‌بندی قابل سنتز نیست و یا حتی مقدار دهیآ‌های اولیه رجیسترها (مگر اینکه به کمک سیگنالی مانند ریست انجام شود) ... قابل سنتز نیست.
      شما برای اینکه بتوانید یک تاخیر ایجاد کنید باید از شمارنده استفاده کنید و فرکانس ورودی رو تقسیم کنید تا به اندازه کافی کند بشه.
      من دوست دارم آزاد فکر کنم، نرمآ‌افزارآ‌ و سختآ‌افزارهای آزاد را به کار ببرم و اگر توانستم نرمآ‌افزار، سختآ‌افزار و محتوای آزاد درست کنم!

      دیدگاه


        #4
        پاسخ : مشکل با دستور wait for در vhdl

        دسته ابزارهای سنتر ( و نه شبیه سازی) از این فرم دستور wait پشتیبانی نمیکنند اما شما میتونید ازون واسه شبیه سازی استفاده کنید.
        ضمنا میتونین برین سراغ فرمهای دیگر دستور wait مثلا wait on Sig و همونطوری که گفتن اون سیگنال هم یه تقسیمی از فرکانس باشه اینجوره احتمالا سنتز هم میشه..........ضمنا وقتی لیست حساسیت دارین از دستور wait نمیتونین استفاده کنین البته اینکار رو توی کدتون انجام دادین..........

        دیدگاه


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

          دستوراتی که با واحد های زمانی کار می کنند مثل wait و غیره، جزو زیر مجموعه قابل سنتز VHDL ( و هر زبان HDL دیگری ) نیستند. آخه اون FPGA بدبخت از کجا بفهمه که 500ms گذشته؟
          اگر واقعا یک delay می خوای باید تویه یک process حساس به لبه، یک counter بزرگ ( مثلا 16 بیتی یا 32 بیتی ) بگذاری و شروع به شمردن کنی.بسته به اینکه clk مدارت چقدره ببین counter تا کجا باید بشماره.

          پی.نوشت: تو کدی که زده بودی، اینطوری نوشتن تو vhdl خیلی بده ها! شدیدا ماکز کلاک مدارت رو پایین میاره.

          دیدگاه

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