اطلاعیه

Collapse
No announcement yet.

درخواست توضیح یک کد VHDL

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

    درخواست توضیح یک کد VHDL

    سلام.
    کد زیر برای پیدا کردن لبه پایین رونده یک سیگنال استفاده میشه.
    کد PHP:
    entity tst2 is
      Port 
    clk in STD_LOGIC;
          
    ia in STD_LOGIC;
          
    ob out STD_LOGIC;
          
    oc out STD_LOGIC);
    end tst2;

    architecture Behavioral of tst2 is
        signal sb
    ,sc std_logic;
    begin

        process
    (clkbegin
            
    if rising_edge(clkthen
                sb 
    <= ia;
                
    sc <= sb and not(ia);
            
    end if;
        
    end process;
        
        
    ob <= sb;
        
    oc <= sc;
        
    end Behavioral

    شکل شماتیکش هم این میشه:
    و شبیه سازی هم اینه:

    کسی میتونه دقیقاً توضیح بده که چرا خروجی این طوری میشه؟ یعنی فلیپ فلاپ که با لبه مثبت کلاک کار می کنه، منظور از لبه مثبت(بالا رونده) چه لحظه ایه؟ این زمان چقدر طول می کشه؟ قطعاً در عمل این زمان یک لحظه نیست و یه مقدار کم طول میکشه حالا چه تضمینی وجود داره که مجموع تأخیر فلیپ فلاپ بالا و گیت AND از کل زمانی که کلاک در لبه بالارونده هست و ورودی فلیپ فلاپ به خروجی منتقل میشه کمتر نباشه؟ (اگه مجموع زمان تأخیر از مدت زمانی که فلیپ فلاپ ورودی کلاک رو بالارونده میبینه کمتر باشه خروجی oc همیشه صفر میمونه)
    لطفاً برای انجام پروژه های دانشجویی پیام خصوصی نفرستید.
    لطفاً سؤالاتی که در انجمن قابل طرح شدن هستند پیام خصوصی نکنید.
    با تمام وجود گناه کرديم اما نه نعمتش را از ما گرفت نه گناهان ما را فاش کرد اطاعتش کنيم چه مي کند؟"دکتر شريعتي"
    اگر جايي که ايستاده ايد را نمي پسنديد، عوضش کنيد شما درخت نيستيد!! "پاسكال"
    يا به اندازه ي آرزوهايت تلاش کن يا به اندازه تلاشت آرزو کن. "شکسپير"

    #2
    پاسخ : درخواست توضیح یک کد VHDL

    من نتونستم دقیقا متوجه سوال شما بشم، ولی این مداری هست که با مقایسه مقدار یک سیگنال با مقدار قبلیش(مقداری که تو کلاک قبل داشته) تشخیص میده که سیگنال لبه پایین رونده داشته. برای اینکه همیشه هم درست کار کنه لازمه که مینیمم زمان فعال بودن سیگنال مورد نظر از یک پریود کلاک بیشتر باشه.

    زمانی که طول میکشه تا یک لبه پایین رونده گزارشبشه (از لبه پایین رونده سیگنال تا لحظه بالا رفتن سیگنال خروجی) برابر فاصله لبه پایین رونده سیگنال تا لبه بالارونده کلاک + تاخیر گیتها هستش. یعنی این زمان میتونه متغیر باشه وابسته به فاصله لبه پایین رونده سیگنال تا لبه کلاک
    یا علی.

    دیدگاه


      #3
      پاسخ : درخواست توضیح یک کد VHDL

      سلام
      برنامه شما درسته و لبه های پایین رونده رو تشخیص میده اما توی لبه های بالا رونده داره نشون میده و اینم بخاطر برنامتونه...
      اگه میخوای تاخیرهارو ببینی بجای شبیه سازی behavioral باید از شبیه سازی post route استفاده کنی..

      دیدگاه


        #4
        پاسخ : درخواست توضیح یک کد VHDL

        ممنون. نکته جالبی بود. نتیجه این شبیه سازی:


        بر اساس این نتیجه، تأخیر فلیپ فلاپ حدود 9 نانوثانیه و تأخیر گیت AND کمتر از 1 نانوثانیه است. اگه اینجا فرضاً فرکانس کلاک رو بیشتر از 100 مگاهرتز میگرفتم مشکل پیش میومد؟
        لازمه که هر کدی که نوشته میشه غیر از سنتز، شبیه سازی زمانی (تأخیر) هم بشه تا از صحت اجراش مطمئن بشیم؟
        لطفاً برای انجام پروژه های دانشجویی پیام خصوصی نفرستید.
        لطفاً سؤالاتی که در انجمن قابل طرح شدن هستند پیام خصوصی نکنید.
        با تمام وجود گناه کرديم اما نه نعمتش را از ما گرفت نه گناهان ما را فاش کرد اطاعتش کنيم چه مي کند؟"دکتر شريعتي"
        اگر جايي که ايستاده ايد را نمي پسنديد، عوضش کنيد شما درخت نيستيد!! "پاسكال"
        يا به اندازه ي آرزوهايت تلاش کن يا به اندازه تلاشت آرزو کن. "شکسپير"

        دیدگاه


          #5
          پاسخ : درخواست توضیح یک کد VHDL

          با سلام مجدد...
          برنامه تون رو که نوشتید یکبار سنتز کنید و نتیجه سنتز synthesis report رو ببینید بهتون میگه که حداکثر کلاک که برنامتون میتونه کار کنه چقدره ( دوستان اگه اشتباه میگم اصلاح کنن...) همینطور میگه چقدر گیت مصرف شده...

          در مورد شبیه سازی هم باید بگم من خودم همیشه روش post route رو انتخاب میکنم چون نتیجه شبیه سازی با اون چیزی که توی fpga اتفاق میفته خیلی خیلی شبیه(تقریبا خودشه) ...
          از روش behave زمانی استفاده میکنم که بخوام سیگنال های میانی رو ببینم و اینکه ظاهر برنامه رو برسی کنم ...
          پیشنهاد منم اینه که اگه میخوای طرحتو روی fpga پیاده کنی قبلش حتما شبیه سازی به روش اول رو انجام بدی...
          یا علی

          دیدگاه

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