⏱ زمانبندی و تأخیرها در VHDL
در طراحی دیجیتال، زمانبندی یکی از مفاهیم مهم برای مدلسازی صحیح رفتار سختافزار است. VHDL به ما امکان میدهد تا تأخیرهای زمانی را در شبیهسازی مدلسازی کنیم.
۱. سیگنالها و تأخیر در اعمال مقدار
هنگام اختصاص مقدار به سیگنال، تغییر آن بلافاصله اعمال نمیشود. این موضوع باعث تفاوت در نتایج هنگام استفاده از سیگنالها میشود.
signal a, b : std_logic;
a <= '1';
b <= not a; -- مقدار قبلی a در اینجا استفاده میشود
۲. انواع تأخیر در VHDL
الف. inertial delay (تأخیر لختی)
در این نوع تأخیر، پالسهایی که مدت زمان آنها کمتر از تأخیر تعیین شده باشد، حذف میشوند.
y <= a after 5 ns; -- پیشفرض inertial delay است
ب. transport delay (تأخیر انتقالی)
در این حالت، تمام پالسها (حتی خیلی کوتاه) منتقل میشوند.
y <= transport a after 5 ns;
۳. کاربرد تأخیرها
- inertial delay: حذف پالسهای نویزی یا کوتاه
- transport delay: مدلسازی دقیق انتقال در مسیرهای سیم
۴. شبیهسازی دقیق با تأخیر
این تأخیرها تنها در شبیهسازی کاربرد دارند و در هنگام سنتز برای FPGA معمولاً نادیده گرفته میشوند.
۵. مثال: ایجاد سیگنال کلاک
signal clk : std_logic := '0';
clk <= not clk after 10 ns; -- سیگنال کلاک با دوره ۲۰ns
جمعبندی
- سیگنالها دارای تأخیر زمانی در تغییر مقدار هستند.
- تأخیر inertial پالسهای کوتاه را فیلتر میکند.
- تأخیر transport تمام پالسها را منتقل میکند.
- این مفاهیم بیشتر در شبیهسازی کاربرد دارند.