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

VHDL یک زبان توصیف سخت افزار است که برای توصیف سخت افزار از سطوح انتزاع تا پیاده سازی فیزیکی استفاده می شود.

VHDL حاصل کار وزارت دفاع آمریکا در دهه ۷۰ و اوایل دهه ۸۰ میلادی می باشد.

learning VHDL

 

انتساب سیگنال همزمان

در زبان های برنامه نوسی معمول مانند C و C++ دستورات انتساب یکی پس از دیگری و با ترتیبی مشخص اجرا می شوند. ترتیب اجرا توسط ترتیب دستورات در فایل منبع تعیین می شود. درون یک معماری VHDL ترتیب مشخصی برای دستورات انتساب وجود ندارد. ترتیب اجرا منحصرا با وقوع رویداد روی سیگنال هایی مشخص می شود که دستورات انتساب به آنها حساس می باشند.

نخستین دستور انتساب از معماری behave را بررسی کنیم:

Select <= 0 WHEN s0 = ‘0’ AND s1 = ‘0’ ELSE
	1 WHEN s0 = ‘1’ AND s1 = ‘0’ ELSE
	2 WHEN s0 = ‘0’ AND s1 = ‘1’ ELSE
	3;

انتساب سیگنال با نماد => مشخص می شود. بر اساس مقادیر s0 و s1 یک مقدار عادی به سیگنال select تخصیص می یابد. هرگاه سیگنال s0 و s1 رویدادی داشته باشد این دستور اجرا می شود.

منظور از رویداد روی یک سیگنال تغییر در مقدار آن است. هر دستور انتساب سیگنال به تمام سیگنال های سمت راست نماد => حساس است، پس از دستور انتساب سیگنال به s0  و s1 حساس می باشد. دستور انتساب سیگنال دیگر در معماری dataflow به سیگنال select  حساس است.

 

طرز کار دستور

فرض کنید شرایط پایداری داریم و s0 و s1 مقدارشان 0 و مقدار سیگنال های a و b و c و d نیز فعلا صفر است.

سیگنال x مقدارش 0 خواهد بود زیرا در جایی که s0 و s1 هر دو صفر می باشند مقدار سیگنال a به آن تخصیص می یابد.

حال فرض کنید باعث رویدادی روی سیگنال a می شویم که مقدار آن را به 1 تغییر دهد. پس از این اتفاق، نخستین دستور انتساب سیگنال اجرا نخواهد شد زیرا این دستور به تغییر سیگنال a حساس نیست. حساس نبودن آن به این دلیل است که سیگنال a در سمت راست عملگر وجود ندارد.

دومین دستور انتساب سیگنال اجرا می شود زیرا به رویدادهای سیگنال a حساس است. وقتی دومین دستور انتساب سیگنال اجرا می شود، مقدار جدید a به سیگنال x تخصیص می یابد. حال درگاه خروجی x مقدارش 1 می شود.

به همین ترتیب شرایط دیگر به وجود می آید.

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