برنامه نویسی توصیفی سخت افزار با استفاده از زبان VHDL

درباره ی VHDL:

با ورود FPGAها به بازار ادوات نيمه­هادي، استفاده از زبانهاي توصيف سخت­افزار به منظور برنامه­ريزي اين ادوات بيش از قبل مورد توجه قرار گرفت. روشهاي مختلفي براي پياده­سازي طرح مورد توصيف توسط تراشه­هاي FPGA در دسترس مي­باشد كه در اين ميان طراحي شماتيك، زبانهاي توصيف سخت افزار و هسته های اينترنتي از معمولترين شيوه­ها مي­باشند. زبانهاي توصيف سخت­افزار به دليل انعطاف­پذيري و قابليتهاي گسترده، بيشتر مورد استفاده واقع مي­شوند و در اين ميان دو زبان VHDL و Verilog بيشتر مورد توجه مي­باشند. زبان VHDL نخستين بار توسط وزارت دفاع امريكا به منظور طراحي و توصيف مدارت مجتمع سرعت بالا طراحي شد و مورد استفاده قرار گرفت. سپس در سال 1987 توسط انجمن IEEE در قالب استاندارد IEEE 1076-1987 در اختيار عموم قرار گرفت.

به طور كلي مي­توان مزاياي زير را در استفاده از زبان VHDL عنوان نمود :

  • با توجه به انكه VHDL يك زبان استاندارد مي­باشد، كد نوشته شده توسط آن را مي­توان به روي سنتزكننده­ها و تراشه­هاي توليدكنندگان
    مختلف پياده­سازي نمود و نيازي به تغيير كد وجود ندارد .
  • شبيه­سازها و كامپايلرهاي اين زبان در دسترس و ارزان قيمت مي­باشند .
  • با استفاده از اين زبان مي­توان سيستمها را به صورت ساختاري يا رفتاري مدلسازي نمود، توصيف رفتاري نشان­دهنده نحوه عملكرد سيستم
    و چگونگي تولید خروجيها بر اساس سيگنال­هاي ورودي مي­باشد. با استفاده از اين توصيف مي­توان عملكرد كلي سيستم را بيان كرد و از درگير شدن با جزئيات بلوكهاي سازنده سيستم كه در طرحهاي بزرگ به پيچيدگي توصيف سيستم منجر مي­شود اجتناب نمود. در مقابل مدل ساختاري نشان­دهنده نحوه ارتباط بلوكهاي سازنده سيستم است و بيانگر جزئيات بيشتري از ساختار سخت افزار مي­باشد . به اين ترتيب با استفاده از اين زبان امكان توصيف سخت افزار از سطح گيت تا سيستم فراهم مي­شود .
  • با استفاده از توصيف ساختاري مي­توان سيستمهاي پيچيده را توسط ارتباط بين بلوكهاي سازنده آنها مدلسازي نمود به اين ترتيب پياده­سازي
    اين سيستمها توسط زبان VHDL، ساده­تر از زبان­های برنامه­نويسي نرم­افزاري از قبيل C مي­باشد.
  • با بكارگيري كتابخانه­ها و component ها در زبان VHDL، مي­توان از المانهاي موجود نوشته شده در ساير طراحي هاي استفاده نمود . در واقع عملكرد انها شبيه DLL ها و توابع در زبانهاي برنامه نويسي نرم افزاري مي باشد .
  • سرعت طراحي و پياده سازي سيستمهاي پيچيده توسط اين زبان بسيار بيشتر از طراحي شماتيك است زيرا جزئيات چگونگي اتصال گيتها و
    بلوكها، توسط نرم­افزار سنتز كننده تعيين مي­شود، به اين ترتيب مي­توان سيستمهاي پيچيده را در مدت زمان كوتاهي پياده­سازي كرده تغييرات و اصلاحات مورد نياز را در برنامه اعمال نمود.
  • استفاده از اين زبان بستر مناسبي براي شبيه­سازي سيستم مورد توصيف ايجاد مي­كند و پس از اطمينان از صحت عملكرد كد نوشته شده در
    محيط شبيه­ساز، مي­توان توصيف سيستم را به روي تراشه مورد نظر پياده­سازي نمود.

 

نرم­افزار شبيه­سازي MODELSIM:

نرم­افزار MODELSIM ابزاري براي شبيه­سازي سخت­افزار است كه زبانهاي VHDL و Verilog را به صورت مجزا و همزمان پشتيباني مي­كند. اين ابزار در ايتدا توسط شركت Modeltech تهيه شد، سپس توسط شركت Avanti  خريداري گرديد و پس آز آن بدليل موفقيت آن در بازار توسط شركت MentorGraphic خريداري  شد. اين ابزار يكي از رايجترين ابزارهاي شبيه­سازي كد VHDL در سطح جهان است.

 

 

نرم­افزار طراحي و پياده­سازي سخت­افزار ISE:
اين نرم­افزار يكي از محصولات شركت Xilinx است و به منظور اجراي پرو‍ژه­هاي طراحي سخت­افزاري مرتبط با تراشه­هاي اين شركت مورد استفاده قرار مي­گيرد. از جمله FPGA­هايي كه اين شركت سازنده آن است مي­توان به تراشه­هاي سري SPARTAN و Virtex اشاره نمود.

 

 

 

نرم­افزار طراحي و پياده­سازي سخت­افزار Quartus:

اين نرم­افزار يكي از محصولات شركت Altera است و به منظور اجراي پرو‍ژه­هاي طراحي سخت­افزاري مرتبط با تراشه­هاي اين شركت مورد استفاده قرار مي­گيرد. از جمله FPGA­هايي كه اين شركت سازنده آن است مي­توان به تراشه­هاي سري Cyclone و CPLDهايي مانند FLEX و MAX اشاره نمود.

 

 

نرم افزار VHDL با سرفصل های زیر در شرکت پارس پژوهان برگزار می شود(مدت دوره 40 ساعت):

 

  • مقدمات و آشنایی با مفاهیم اصلی برنامه­نویسی سخت­افزار (زبان VHDL) و آشنایی با تراشه­های قابل پیکربندی
  • آشنایی با محیطهای برنامه­نویسی ISE و MODELSIM و Quartus و مفاهیم مرتبط با پروگرم کردن و نکات مرتبط با آن و مفاهیم مرتبط با برنامه­نویسی بلوکهای ترکیبی و دستورات همزمان (انواع دروازه­های منطقی – مالتی­پلکسر- دکدر- مقایسه­کننده-انکدر-بافر-یک پردازنده ساده)
  • آشنایی با مفاهیم مرتبط با تست سخت­افزار و کدهای نوشته شده (مفاهیم مرتبط با رعایت تاخیرها به منظور شبیه­سازی برنامه­ها در سطح رفتاری)
  • آشنایی با مفاهیم مرتبط با بلوکهای ترتیبی و دستورات ترتیبی (انواع فلیپ فلاپها-جمع کننده- شمارنده­های سنکرون و آسنکرون-انواع شیفت رجیسترها- حافظه­های ROM)
  • آشنایی با مفاهیم مرتبط با ماشینهای حالت (برنامه آشکارساز رشته­بیت- برنامه راه­انداز پورت USBتوسط تراشه FT245- برنامه ارتباط سریال- برنامه ارتباط با حافظه خارجی)
  • آشنایی با ساختارهای داخلی تراشه­های برنامه­پذیر و نحوه کشیدن PCB مرتبط با این تراشه­ها (ملاحظات مرتبط با پروگرم کردن- سیستم توزیع کلاک- ولتاژ پایه­ها- انواع پایه­های IO و …)
  • آشنایی با مفاهیم مرتبط با سنتز سخت­افزاری و نکته­های مورد استفاده در پیاده­سازیهای عملی (مفاهیم مرتبط با بهینه­سازی برنامه­ها از لحاظ سرعت- حجم مصرفی-توان مصرفی و …) و ابزارهای پیشرفته در محیط XST
  • آشنایی با Coreها (Coreهای مرتبط با مدیریت سیگنال کلاک- بلوکهای ضرب­کننده- بلوکهای حافظه RAM و FIFO- بلوکهای پردازشی ریاضیاتی CORDIC)
  • آشنایی با بخشهای مختلف نرم­افزارهای مرتبط با نرم­افزار ISE و آشنایی با این بخشها به طور بسیار مختصر (محیطهای floorplaning- انواع محیطهای شبیه­سازی-محیط RTL viewer- محیط Power Analyzer- محیط Timing Analyzer) و برنامه­هایی مانند System Generator
    و … .

 

پاسخ دهید