عکس پیش‌فرض نوشته

در VHDL از دو نوع تاخیر برای مدل سازی رفتارها استفاده می شود. تاخیر اینرسی متداول ترین کاربرد را دارد، و از تاخیر انتقال از جایی استفاده می شود که مدل تاخیر سیم نیاز نباشد.
learning VHDL

تاخیر اینرسی

تاخیر پیش فرض در VHDL تاخیر اینرسی می باشد. اگر نوع تاخیر مشخص نشود، از تاخیر اینرسی استفاده می شود. علت پیش فرض بودن تاخیر اینرسی این است که در اغلب موارد مشابه یک قطعه واقعی عمل می کند.

در یک مدل تاخیر اینرسی، سیگنال خروجی قطعه اینرسی دارد که برای تغییر مقدار سیگنال باید بر آن فائق آمد. مقدار این اینرسی برابر با تاخیر قطعه است.

اگر پریود ولتاژهای گذرای کوتاه مدت (apikes)، پالس ها و غیره چنان باشد که مقدار سیگنال کمتر از تاخیر قطعه نگهداشته شود، مقدار سیگنال خروجی تغییر نمی کند.

اگر سیگنال بیش از زمان تاخیر عبور از قطعه در مقدار خاصی نگهداشته شود، بر اینرسی غلبه شده و حالت قطعه تغییر می کند.

 

شکل زیر یک نماد بافر بسیار ساده را نشان می دهد. بافر یک ورودی A و یک خروجی B دارد. شکل موج های ورودی A و خروجی B نشان داده شده اند. سیگنال A پس از 10 نانوثانیه از ‘0’ به ‘1’ و در 20 نانوثانیه از ‘1’ به ‘0’ تغییر کرده، یک ولتاژ گذرا یا یک پالس ایجاد می کند که 10 نانوثانیه طول دارد. تاخیر عبور سیگنال از بافر 20 نانوثانیه است.

 

Learning VHDL
گذر ‘0’ به ‘1’ سیگنال A مدل بافر را اجرا کرده و رویدادی با مقدار ‘1’ برای وقوع در زمان 30 نانوثانیه زمانبندی می کند. در بیستمین نانو ثانیه، رویداد بعدی روی سیگنال A رخ می دهد. این رویداد دوباره مدل بافر را اجرا می کند. مدل بافر رویداد جدیدی روی B با مقدار ‘0’ در چهلمین نانوثانیه پیش بینی می کند.

رویدادی که برای سی امین نانوثانیه روی خروجی B زمان بندی شده بود هنوز رخ نداده است. رویداد جدید پیش بینی شده توسط مدل بافر با رویداد زمانبندی شده ی فعلی برخورد می کند و شبیه ساز، رویداد در سی امین نانوثانیه را تقدم می بخشد.

تاثیر این تقدم حذف ولتاژ گذرا است. درلیل حذف این است که مطابق با مدل تاخیر اینرسی، نخستین رویداد در سی امین نانوثانیه زمان کافی برای غلبه بر اینرسی سیگنال خروجی را ندارد.

مدل تاخیر در شبیه سازهای موجود کاربرد به مراتب بیشتری دارد زیرا در اغلب موارد، مدل تاخیر اینرسی برای نیازهای طراح به اندازه کافی دقیق است. دلیل دیگر استفاده گسترده از تاخیر اینرسی این است که مانع انتشار ولتاژهای گذرا در مدار می شود. در بیشتر موارد، این رفتار مطلوب طراح است.

 

تاخیر انتقال

در VHDL تاخیر انتقال به طور پیش فرض در نظر گرفته نمی شود. تاخیر انتقال نشان دهنده تاخیر سیمی است که هر پالس، هرچقدر هم کوچک باشد، از طریق آن به سیگنال خروجی به تعویق افتاده با مقدار تاخیر مشخص انتشار می یابد.

تاخیر انتقال به خصوص برای مدل سازی تاخیر خطوط قطعه، تاخیر سیم های بورد مدار چاپی و تاخیرهای مسیر یک ASIC سودمند است.

اگر در مدار بافر شکل بالا، شکل موج های تاخیر اینرسی را با شکل موج های تاخیر انتقال جایگزین کنیم شکل زیر بدست می آید:
Learning VHDL
شکل موج ورودی سیگنال A همان است، اما خروجی سیگنال B کاملا متفاوت است. با تاخیر انتقال، ولتاژهای گذرا حذف نمی شوند، اما رویدادهای قبل از انتشار مرتب می شوند.

در زمان 10 نانوثانیه، مدل بافر اجرا شده و یک رویداد برای 1 شدن خروجی در لحظه 30 نانوثانیه زمانبندی می کند. در زمان 20 نانوثانیه مدل بافر دوباره احضار می شود و مقدار جدید برای خروجی در 40 نانوثانیه پیش بینی می کند.

با الگوریتم تاخیر انتقال، رویدادها پشت سر هم قرار می گیرند. رویداد زمان 40 نانوثانیه در لیست رویدادها پس از رویداد زمان 30 نانوثانیه قرار می گیرد. ولتاژهای گذرا حذف نشده و پس از زمان تاخیر قطعه بدون تغییر منتشر می شوند.

 

مدل تاخیر اینرسی

مدل زیر نحوه نوشتن یک مدل تاخیر اینرسی را نشان می دهد. نوع تاخیر پیش فرض اینرسی است، بنابراین، نیازی نیست نوع تاخیر را اینرسی مشخص کنیم:

 

LIBRARY IEEE;
USE IEEE.std_logic_1164.ALL;

ENTITY buf IS
PORT ( a : IN std_logic;
       B : OUT std_logic);
END buf;

ARCHITECTURE buf OF buf IS
BEGIN
       b <= a AFTER 20 ns;
END buf;

 

مدل تاخیر انتقال

این مدل، جز در کلید واژه TRANSPORT در دستور انتساب به b ، از هر حیث مشابه مدل تاخیر اینرسی می باشد. با وجود این کلید واژه، از سازوکار تاخیر انتقال در دستور استفاده می شود:

 

LIBRARY IEEE;
USE IEEE.std_logic_1164.ALL;

ENTITY delay_line IS
PORT ( a : IN std_logic;
       B : OUT std_logic);
END delay_line;

ARCHITECTURE delay_line OF delay_line IS
BEGIN
       b <= TRANSPORT a AFTER 20 ns;
END delay_line;

 

 

این آموزش بیش از ۳ سال قبل ارسال شده و اکنون در لیست به‌روزرسانی‌های سایت قرار دارد. اگر پیشنهاد یا انتقادی برای بهبود آموزش دارید، خوشحال می‌شیم به ما اطلاع بدهید.