دستور ترتیبی WAIT در VHDL

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

انتظار روی تغییرات سیگنال (WAIT ON)

انتظار تا درست ارزیابی شدن یک عبارت (WAIT UNTIL)

انتظار برای زمانی مشخص (WAIT FOR)

 
learning VHDL

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

کاربرد دیگر آن به تاخیر انداختن اجرای پروسس برای مدت زمانی مشخص یا اصلاح پویای لیست حساسیت پروسس است.

حال می خواهیم دستور پروسس با یک دستور WAIT تعبیه شده در آن را بررسی کنیم که برای تولید منطق ترتیبی استفاده می شود:

 

 

این پروسس فلیپ فلاپ تولید می کند که در لبه بالارونده ورودی ساعت، مقدار d را به q منتقل می کند.

خصوصیت ‘EVENT اضافه شده به ورودی clock زمانی درست است که ورودی ساعت در دلتای زمانی فعلی یک رویداد داشته باشد.

ترکیب جستجو برای یک مقدار ‘۱’ و تغییر clock ، عملکرد مورد نیاز برای جستجو یک لبه بالارونده روی ورودی clock را ایجاد می کند. در نتیجه ، پروسس تا یک لبه بالارونده ی ساعت در دستور WAIT نگه داشته می شود. سپس مقدار فعلی d به q تخصیص می یابد.

سنتز این توصیف یک فلیپ فلاپ D فاقد ورودی set یا reset ایجاد می کند. Reset همگام را می توان به صورت زیر اجرا کرد:

 

 

هنگام وقوع رویدادی روی ساعت، ابتدا سیگنال reset امتحان می شود. اگر فعال باشد مقدار reset (‘۰’) و در غیر این صورت مقدار d به q تخصیص می یابد.

Reset نا همگام را به صورت زیر می توان اضافه کرد:

 

 

این دستور پروسس یک دستور WAIT ON دارد که تا وقوع یک رویداد روی reset یا clock اجرای پروسس را متوقف می کند. پس از آن دستور IF اجرا می شود و در صورت فعال بودن reset ، فلیپ فلاپ به صورت ناهمگام ریست می شود، در غیر این صورت لبه بالا رونده ساعت برای انتقال ورودی d به خروجی q فلیپ فلاپ امتحان می شود.

در هر مرحله از اجرا می توان سیگنال هایی را که پروسس یا زیربرنامه به آنها حساس می باشند با استفاده از دستور WAIT کنترل کرد.

 

 

در قطعه کد VHDL نشان داده شده در فوق، اجرای دستورات تا نقطه ۱ ادامه می یابد. دستور WAIT باعث توقف اجرا در آن نقطه می شود. اجرای پروسس ادامه نمی یابد تا رویدادی روی سیگنال a رخ دهد.

بنابراین در این مرحله از اجرا، پروسس به تغییرات سیگنال a حساس است. با وقوع رویدادی روی سیگنال a ، با دستور بعد از WAIT اول اجرای دوباره از سر گرفته می شود. اجرا ادامه می یابد تا به دستور WAIT دوم برسد. باز هم اجرا متوقف می شود و اکنون پروسس به رویداد روی سیگنال b حساس است.

بنابراین می توان با اضافه کردن دو دستور WAIT لیست حساسیت پروسس را به طور پویا تغییر داد.



[ برچسب ها ] : , , , , , ,
ارسال شده در : بخش الکترونیک
نظر شما در مورد اين پست چيست ؟

دیدگاه خود را به ما بگویید.

 
 
  دکتری تخصصی برق الکترونیک
طراح مدارهای الکترونیکی
برنامه نویس انواع میکروها
مشاوره و اجرای لینک های وایرلس
پیاده سازی سیستم های مبتنی بر شبکه
E_mail: electronic@sabzelco.ir
Tel: 09150462401
توسعه دهنده برنامه های سمت سرور

طراحی و برنامه نویسی سایت و پرتال های حرفه ای

E_mail: computer@sabzelco.ir
Tel: 09371974233