طی چند دهه اخیر ،مدارهای الکترونیکی پیشرفت قابل ملاحظهای داشتهاند . با پیچیدهتر شدن هرچه بیشتر این مدارها ،نیاز به یافتن روشهایی است که سیستمها را بتوان با مجتمع سازی و جزئیات بیشتر طراحی و پیادهسازی نمود . قطعات قابل برنامهریزی و FPGA ها ،آیسیهایی هستند که به تبع این پیشرفتها به بازار عرضه شدهاند . هزینه ساخت کم
و جزئیات زیاد این آیسیها نسبت به حجم آنها ،همچنین قابلیت برنامهریزی شدن این قطعات بوسیله برنامههای نرم افزاری معمول و یا نرمافزارهای طراحی شماتیک باعث افزایش کاربرد این قطعات شده است . چنین پیشبینی می شود که با وجود این پیشرفت ،اینده در تسخیر این قطعات قرار گیرد تا جائیکه بتوان وسیله آنها تمامی یک سیستم پیچیده را به سادگی طراحی
و اجرا نمود .
زبانهای توصیف سختافزاری
مروری بر HDL
HDL (زبان توصیف سختافزاری ) روش توسعه یافتهای از توصیف رفتار سیستمهای منطقی به وسیله روابط منطقی است . این زبانها بسیاری از مشخصههای روابط منطقی
و روابط حالت را در درون خود دارند . در این قسمت بیشتر تمرکز ما بر روی زبان VHDL است که امروزه به عنوان استاندارد صنعتی MIL STD 454L معرفی شده است و تمامی طرحهای ASIC مربوط به دپارتمان دفاع ایالت متحده آمریکا باید طبق این زبان استاندارد نوشته شوند .
این زبان به عنوان قسمتی از پروژه VHSIC (مدارهای مجتمع با سرعت خیلی بالا ) ارائه شده است و به وسیله آن می توان ASICهای پیچیده را بدون مراجعه به تکنولوژی مشخصی ،تعریف و شبیهسازی نمود . زمانی که یک مدار به وسیله این زبان تعریف می گردد . می توان آنرا به هر پروسه منطقی و یا بر روی ماژولهای طراحی شده توسط هریک از تولیدکنندههای ابزارهای منطقی انتقال داد .
زبان توصیف سخت افزاری VHDL
(VHSIC HDL) VHDL یک سیستم منطقی را بصورت ساختار بالا به پائین توصیف
می کند . برای بدست آوردن توصیفی از یک سیستم به صورت ساختار بالا به پایین ،سیستم را به صورت مجموعه ای از زیرسیستمها تقسیم می کنیم که بوسیله یک سری رابطه به هم متصل می گردند هریک از این زیرسیستمهای بالایی را می توان به توابع و زیرسیستمهای کوچکتر تقسیم کرد . این عمل همچنان ادامه می یابد تا به پائین ترین سطح را سیستم دست بیابیم که در این سطح هریک از سیستم ها را می توان بوسیله گیتها و ماژولهای آماده دیگر طراحی نمود .
به این ترتیب ، بدلیل آنکه هریک از طبقات این ساختار منطقی به صورت یکتا مشخص شدهاند ، هریک از آنها را میتوان به تنهایی شبیهسازی نمود و تابع منطقی اجرا شده بوسیله آنها را آزمایش کرده و خطاهای احتمالی را برطرف نمود . ابتدا صحت عملکرد پایین ترین طبقه این سیستم را آزمایش کرده و با ترکیب زیر سیستمهای پایین تر به زیرسیستمهای پیچیده تر می رسیم تا جائیکه به طرح سیستم موردنظر که در بالاترین طبقه این ساختار وجود دارد برسیم . پس از انجام این عمل ، به مرحله ترکیب می رسیم که در آن کل طرح را پیاده کرده وسپس برای بدست آوردن پارامترهای زمانی آن ،عمل شبیهسازی را انجام می دهیم .
این طرح سلسله مراتبی به طراح اجازه می دهد تا بدون مشخص کردن نوع تکنولوژی ابزارهای استفاده شونده و یا قسمت کردن طرح به ابزارهای مختلف ،بتوان سیستم را به طور کامل تعریف نمود . به این ترتیب ، می توان یک سیستم کامل را بدون مشخص کردن یک ابزار هدف خاص تعریف و آزمایش کرد . ماژولها به صورت جداگانه طراحی می شوند و می توان از آنها در طرحهای آینده نیز استفاده نمود ؛ به عبارت دیگر ، برای هر طرح کتابخانهای از توابع وجود دارد که می توان آنها را برای استفاده آینده ذخیره کرد . در این پروژه نیز از توابع و جداول و کتابخانههای مجتمع تحت عنوان basic-utility استفاده شده است .