vhdl quartus ii 01

26
١ اﻟﺠﻤﮭﻮرﯾﺔ اﻟﻌﺮﺑﯿﺔ اﻟﺴﻮرﯾﺔ وزارة اﻟﺘﻌﻠﯿﻢ اﻟﻌﺎﻟﻲ ﺟﺎﻣﻌﺔ ﺣﻠﺐ ﻛﻠﯿﺔ اﻟﮭﻨﺪﺳﺔ اﻟﻜﮭﺮﺑﺎﺋﯿﺔ واﻻﻟﻜﺘﺮوﻧﯿﺔ ﻗﺴﻢ ھﻨﺪﺳﺔ اﻟﺤﻮاﺳﯿﺐ ﻣﺨﺒﺮ اﻟﺤﺎﺳﺒﺎت إﻋﺪاد اﻟﻤﮭﻨﺪس: أﺳﺎﻣﺔ ﻋﺰﯾﺰ ﻣﺪﺧﻞ إﻟﻰ اﺳﺘﺨﺪام اﻟﺒﺮﻣﺠﯿﺔQuartus II - اﻟﺠﺰء اﻷولIntroduction to Quartus II – Part 1 اﻟﺴﻨﺔ اﻟﺜﺎﻟﺜﺔ- ﻗﺴﻢ ھﻨﺪﺳﺔ اﻟﺤﻮاﺳﯿﺐ اﻟﻔﺼﻞ اﻟﺪراﺳﻲ اﻷول٢٠١٠ - ٢٠١١

Upload: oussama-aziz

Post on 26-Mar-2016

252 views

Category:

Documents


0 download

DESCRIPTION

Tutorial about Quartus II in Arabic

TRANSCRIPT

Page 1: VHDL Quartus II 01

١

الجمھوریة العربیة السوریة وزارة التعلیم العالي

كلیة الھندسة الكھربائیة وااللكترونیة–جامعة حلب مخبر الحاسبات–قسم ھندسة الحواسیب

أسامة عزیز: إعداد المھندس

األول الجزء - Quartus IIمدخل إلى استخدام البرمجیة Introduction to Quartus II – Part 1

قسم ھندسة الحواسیب-السنة الثالثة

الفصل الدراسي األول٢٠١١ - ٢٠١٠

Page 2: VHDL Quartus II 01

١

VHDL باستخدام لغة Quartus IIمن خالل البرمجیة الدارات تصمیممدخل إلى

كنظ�ام تص�میم باس�تخدام الحاس�ب أو م�ا Quartus IIسوف نتعرف في ھذه الجلسة على كیفیة استخدام البرمجیة ) . اختصارا Computer-Aided Design System ) CAD Systemیعرف باسم

رض صورة عامة عن الخط�وات الت�ي تش�كل منھجی�ة التص�میم لل�دارات م�ن خ�الل نظ�ام سوف نقوم في البدایة بع CAD یعتم��د عل��ى تنجی��ز Implementation ال��دارات باس��تخدام أجھ��زة FPGA . كم��ا س��نبین كیفی��ة تطبی��ق

عملی�ة التص�میم س�تعرض م�ن خ�الل ش�رح التعلیم�ات . Quartus IIخط�وات ھ�ذه المنھجی�ة باس�تخدام البرمجی�ة مص�نعة م�ن قب�ل ش�ركة FPGAتنفیذھا خطوة خطوة من أجل تنجیز دارة بسیطة ج�دا باس�تخدام ش�ریحة الواجب Altera.

دعما كامال لكافة الطرق الشائعة إلدخال توصیف الدارة المطل�وب تص�میمھا إل�ى Quartus IIتتضمن البرمجیة

بتحدی�د خص�ائص التصمیم بحیث نقوم كأداة إلدخال VHDLبالطبع سنستخدم لغة في ھذه الجلسة . CADنظام ف��ي الحقیق��ة یمك��ن اس��تخدام لغ��ة توص��یف عت��ادي . VHDLالمطلوب��ة م��ن خ��الل لغ��ة التوص��یف العت��ادي ال��دارة

.Schematic Diagram أو ببساطة إدخال الدارة من خالل رسم مخطط الدارة Verilogأخرى تدعى

المت��وافر FPGA جھ��از ال��ـ Configuration ض��بط /الخط��وة األخی��رة ف��ي عملی��ة التص��میم تتمث��ل ف��ي برمج��ة م�ن أج�ل تطبی�ق م�ا س�یرد ف�ي ھ�ذه الجلس�ة فإن�ھ یفت�رض ت�وافر الل�وح . لیتحول إلى الدارة المراد الحصول علیھ�ا

بالتع�اون م�ع Terasic المصمم من قبل شركة DE2 ( Development and Education )البورد / التدریبي إل�ى حاس�ب یتض�من البرمجی�ة USBیجب أن یكون موصوال أیض�ا م�ن خ�الل كاب�ل ھذا البورد . Alteraشركة

Quartus II . على كل حال ، فإن الطالب الذي ال یمتلك ھذا البورد یستطیع تطبی�ق القس�م األكب�ر مم�ا س�یرد ف�ي !!! في حاسبھ الخاص Quartus IIھذه الجلسة من خالل تنصیب واستخدام البرمجیة

جھ�از Configuration و ض�بط Programmingیة ھذه الجلسة سیتعلم الطالب كیفیة برمج�ة باختصار، في نھا

.VHDL ولغة Quartus II من خالل استخدام البرمجیة DE2 المركب على البورد FPGAالـ م�ن SP1 9.1 الواردة في ھذه النوطة تم الحصول علیھا باستخدام النس�خة Screen Capturesأشكال الشاشات

إص�دارات أخ�رى ف�إن الص�ور ق�د تك�ون مختلف�ة / وبالتالي إذا كان الطال�ب یس�تخدم نس�خا Quartus IIجیة البرم .بشكل طفیف

:النقاط المدروسة في الجلسة

.CAD : Typical CAD Flow منھجیة نموذجیة لنظام -١ .Getting Started: تمھید -٢ .Starting a New Project: بدء مشروع جدید -٣ .VHDL : VHDL Design Entry إدخال التصمیم بلغة -٤ .Compiling The Design: ترجمة التصمیم -٥ .Pin Assignment: تخصیص أقطاب الشریحة -٦ .Simulating The Designed Circuit: محاكاة الدارة المصممة -٧ .FPGA : Programming And Configuring The FPGA Device برمجة وضبط جھاز الـ -٨ .Testing The Designed Circuit: اختبار الدارة المصممة -٩

Page 3: VHDL Quartus II 01

٢

CAD : Typical CAD Flow منھجیة نموذجیة لنظام -١

تس�ھل عملی�ة تنجی�ز ال�دارات Computer Aided Design Softwareإن ب�رامج التص�میم باس�تخدام الحاس�ب كش��رائح Programmable Logic Devicesقابل��ة للبرمج��ة المنطقی��ة المطلوب��ة باس��تخدام أجھ��زة المنط��ق ال

مخطط�ا ت�دفقیا نموذجی�ا ) ١(یب�ین الش�كل . اختص�ارا FPGAsمصفوفات البوابات القابل�ة للبرمج�ة ف�ي الحق�ل أو .FPGA وباالعتماد على شریحة CADلعملیة تنجیز دارة رقمیة ما بواسطة نظام

.CADمخطط تدفقي لمراحل التصمیم باستخدام نظام : )١(الشكل

:فإن المخطط التدفقي یتكون من المراحل التالیة ) ١(كما ھو واضح في الشكل

ف�ي ھ�ذه المرحل�ة ی�تم تحدی�د خص�ائص ال�دارة م�ن خ�الل مخط�ط : ( Design Entry )إدخ�ال التص�میم - Hardware Descriptionیف عتادي أو باستخدام لغة توص Schematic Diagramرسومي للدارة

Language كلغة VHDL على سبیل المثال . یتم في ھ�ذه المرحل�ة تركی�ب ال�دارة الت�ي ت�م إدخ�ال التص�میم الخ�اص بھ�ا ف�ي : ( Synthesis )التركیب -

الموج�ودة داخ�ل ش�ریحة Logic Elements ( LEs )المرحلة السابقة اعتمادا عل�ى العناص�ر المنطقی�ة . FPGAالـ

ف�ي المرحل�ة الس�ابقة یتم ھنا اختب�ار ال�دارة المركب�ة : ( Functional Simulation )المحاكاة الوظائفیة -للتحقق من ص�حة أدائھ�ا لوظائفھ�ا ولك�ن ھ�ذه المحاك�اة ال تأخ�ذ بع�ین االعتب�ار الت�أخیرات الزمنی�ة الفعلی�ة

.الناتجة عن أزمنة االستجابة للعناصر المنطقیة المكونة للدارة

Page 4: VHDL Quartus II 01

٣

ف�ي ھ�ذه المرحل�ة بتحدی�د أم�اكن توض�ع CADیقوم الموض�ع الخ�اص بنظ�ام ال�ـ : ( Fitting )لتوضیع ا -أي كیفی��ة اس��تخدام العناص��ر المنطقی��ة Netlistالمح��ددة ف��ي الئح��ة التوص��یل LEsالعناص��ر المنطقی��ة Routing Wiresفي ھذه المرحلة أیضا یتم اختیار أسالك التوجی�ھ . الھدف FPGAالفعلیة في شریحة

ضمن الشریحة من أجل تحقیق الوصالت المطلوبة بین العناص�ر المنطقی�ة الفعلی�ة الت�ي ت�م اختیارھ�ا م�ن .قبل الموضع

ف��ي ھ��ذه المرحل��ة ی��تم تحلی��ل أزمن��ة الت��أخیر الناجم��ة ع��ن : ( Timing Analysis )التحلی��ل الزمن��ي -المختلف�ة ف�ي ال�دارة الفعلی�ة الناجم�ة عب�ر المس�ارات Propagation Delaysعملیات انتش�ار اإلش�ارات

Expectedلل���دارة ) المنتظ���ر ( بھ���دف إعط���اء دالالت ع���ن األداء المتوق���ع ع���ن المرحل���ة الس���ابقة Performance of the Circuit.

ی�تم Fittingال�دارة الفعلی�ة الناجم�ة ع�ن مرحل�ة التوض�یع : ( Timing Simulation )المحاكاة الزمنیة - .أجل التحقق من صحة عملھا و أدائھا الزمني اختبارھا ھنا من

ف�ي ھ�ذه المرحل�ة األخی�رة ف�إن ال�دارة : ( Programming And Configuration )البرمجة والض�بط - فعلی����ة وذل����ك م����ن خ����الل برمج����ة مف����اتیح الض����بط FPGAالمص����ممة ی����تم تنجیزھ����ا ف����ي ش����ریحة

Configuration Switches الت��ي تض��بط إع��دادات العناص��ر المنطقی��ة LEsبإنش��اء وص��الت وتق��وم .Required Wiring Connectionsاالرتباط الالزمة

وذلك من خ�الل توض�یح كیفی�ة اس�تخدام ھ�ذه Quartus IIالممیزات الرئیسیة للبرمجیة فیما یلي ، سنقوم بعرض

عتم�د عل�ى س�وف ن . VHDLالبرمجیة من أجل تصمیم وتنجیز دارة معینة ما انطالقا من لغة التوصیف العت�ادي لتنفی��ذ التعلیم��ات ) اختص��ارا GUIأو ( Graphical User Interfaceاس��تخدام واجھ��ة المس��تخدم الرس��ومیة

:في نھایة الجلسة سوف نكون قد غطینا المواضیع التالیة بالتفصیل . Quartus IIواألوامر ضمن البرمجیة

.Creating a Project - إنشاء مشروع - .VHDL - Design Entry Using VHDL Codeدام كود باستخ ماتصمیمإدخال - VHDL – Synthesis the Circuit Specified in VHDLتركی�ب دارة موص�فة بواس�طة ك�ود -

Code. Altera - Fitting a Synthesized Circuit م�ن ش�ركة FPGAش�ریحة توض�یع دارة مركب�ة ف�ي -

Into an Altera FPGA. FPGA - Assigning The Circuitا إل�ى أقط�اب مح�ددة لش�ریحة ال�ـ إسناد م�داخل ال�دارة ومخارجھ� -

Inputs And Outputs to Specific Pins on The FPGA. .Simulating The Designed Circuit -محاكاة الدارة المصممة - DE2 - Programming And الموج����ودة عل����ى الب���ورد FPGAبرمج���ة وض����بط ش����ریحة ال���ـ -

Configuring The FPGA Chip on Altera's DE2 Board. Getting Started: تمھید -٢

ت�دعى مش�روعا Quartus IIیراد تصمیمھا باستخدام البرمجی�ة Subcircuitإن أیة دارة منطقیة أو دارة جزئیة Project . المتعلقة بھ�ذا المش�روع ف�ي إن البرمجیة تعمل في وقت ما على مشروع واحد وتحفظ كافة المعلومات

لب�دء تص�میم جدی�د ل�دارة . File System ف�ي نظ�ام الملف�ات Single Directory ( or Folder )جل�د وحی�د ملتخ�زین ملف�ات التص�میم . منطقیة ما فإن الخطوة األولى ھي إنشاء مجلد خاص بھذا المشروع لحفظ ملفاتھ داخل�ھ

م��ن Dل المث��ال ض��من الس��واقة عل��ى س��بیMyFirstProjectف��ي ھ��ذه الجلس��ة س��وف ننش��ئ مجل��دا جدی��دا اس��مھ .D:\MyFirstProject: القرص الصلب وبالتالي سیكون مسار مجلد المشروع ھو

ع��ن طری��ق المث��ال التطبیق��ي ال��ذي سنس��تخدمھ خ��الل مراح��ل التص��میم ھ��و دارة بس��یطة لل��تحكم بإض��اءة مص��باح ) .TWLCباسم أو ما یعرف اختصارا ( Two-Way Light Controller Circuitمفتاحین اثنین

: ف�ي ش�ریط المھ�ام وم�ن ث�م اختی�ار المس�ار Start من خالل النقر عل�ى زر Quartus IIنقوم بتشغیل البرمجیة All Programs - Altera - Quartus II 9.1 SP1 Web Edition - Quartus II 9.1 SP1 Web

Page 5: VHDL Quartus II 01

٤

Edition اف���ذة الرئیس���یة للبرمجی���ة وتظھ���ر عن���دھا الن) تب���دأ العم���ل ( عن���دھا س���وف تقل���ع البرمجی���ةQuartus ) .٢(الموضحة في الشكل

. )SP1 9.1اإلصدار ( Quartus IIالنافذة الرئیسیة للبرمجیة ) : ٢(الشكل Viewوالتي یمكن إخفاؤھا أو إظھارھا من خالل الذھاب إلى القائم�ة ( تحتوي النافذة الرئیسیة عدة نوافذ ضمنیة

تت�یح ھ�ذه النواف�ذ الض�منیة الوص�ول إل�ى مزای�ا و إمكانی�ات ) . Utility Windowsلق�وائم وم�ن ث�م ف�ي ش�ریط ا ) أو األیمن للف�أرة ( اعتمادا على التحدید والنقر بشكل منفرد أو مزدوج على الزر األیسر Quartus IIالبرمجیة

یمك�ن الوص�ول إلیھ�ا م�ن خ�الل Quartus II المتاح�ة ف�ي البرمجی�ة Commandsأغلب األوامر والتعلیمات إن ) ٢(ف�ي الش�كل على س�بیل المث�ال ، . مجموعة من القوائم المتوضعة مباشرة تحت شریط العنوان للنافذة الرئیسیة

،) ٣( یفتح القائمة المبینة في الشكل Fileالنقر بالزر األیسر على القائمة المسماة

.Fileة مثال على القائم) : ٣(الشكل

Page 6: VHDL Quartus II 01

٥

من ھذه القائم�ة بواس�طة ال�زر األیس�ر للف�أرة یك�افئ تمام�ا الض�غط بش�كل مت�زامن عل�ى Exitإن النقر على األمر أي الخ�روج ( Quartus II بحیث أن أیا من الخیارین س�یؤدي إل�ى إیق�اف تش�غیل البرمجی�ة F4 و Altالمفتاحین

) !!!من البرنامج بشكل نھائي ام الف�أرة لتحدی��د ش�يء م�ا ف��إن ال�زر األیس�ر غالب��ا ھ�و المس�تخدم وبالت��الي فإنن�ا ل�ن نح��دد بش�كل ع�ام ، عن��د اس�تخد

في بضعة حاالت وعندما یكون من الضروري استخدام الزر األیمن . بالضرورة أي زر من الفأرة سوف نضغط .للفأرة فإننا سنوضح ذلك بشكل صریح وواضح

قائم�ة رئیس�یة ( لضروري الولوج إلى قائمتین أو أكثر عل�ى التت�ابع التعلیمات یكون من ا / من أجل بعض األوامر Menu1 > Menu2 > Itemفي حالة كھ�ذه س�وف نس�تخدم االص�طالح ) . ومن ثم ضمنھا قائمة فرعیة أخرى

وم��ن ث��م Menu1لتوض��یح أن عل��ى المس��تخدم أن ینق��ر أوال باس��تخدام ال��زر األیس��ر للف��أرة عل��ى القائم��ة المس��ماة Menu2 وأخیرا وض�من القائم�ة الفرعی�ة Menu2 القائمة علیھ أن ینقر على القائمة الفرعیة المسماة وداخل ھذه

عل�ى س�بیل المث�ال وكم�ا . وذل�ك م�ن أج�ل طل�ب تنفی�ذ التعلیم�ة المرغوب�ة Itemعلیھ أن ینق�ر عل�ى البن�د المس�مى .Quartus II من البرمجیة بواسطة الفأرة یؤدي إلى الخروجFile > Exitنوھنا قبل قلیل فإن اختیار

إن ع��دة تعلیم��ات یمك��ن طل��ب تنفی��ذھا م��ن خ��الل النق��ر بواس��طة ال��زر األیس��ر للف��أرة عل��ى أیقون��ات خاص��ة بھ��ذه لرؤیة ومعرفة التعلیمة المقرونة بأیقون�ة م�ا یمك�ن توض�یع مؤش�ر . التعلیمات ومتوضعة في أحد أشرطة األدوات

م�ا ( تلم�یح ع�ن األداة أو وظیف�ة األیقون�ة نتظ�ار للحظ�ة لیظھ�ر عن�دھا على األیقونة واالMouse Cursorالفأرة ) .Tooltipیعرف عادة باسم

Quartus II : Quartus II Online Help المساعدة عن طریق اإلنترنیت ضمن البرمجیة -١-٢

Comprehensive Online وثائق ومراج�ع مفص�لة ع�ن طری�ق ش�بكة اإلنترنی�ت Quartus IIتقدم البرمجیة Documentation . ھذه الوثائق تتضمن اإلجابة على عدد كبیر من األسئلة التي یمكن أن تتبادر إلى الذھن عن�دلتك�وین فك�رة عام�ة . Helpم�ن خ�الل القائم�ة یمكن الوصول إلى ھ�ذه الوث�ائق . Quartus IIاستخدام البرمجیة

ھا عن طریق ھذه الوثائق من المفید للطالب استعراض عن مدى اتساع وغزارة المعلومات التي یمكن الرجوع إلی یمك�ن se HelpUHelp > How toعل�ى س�بیل المث�ال ، باختی�ار . Helpھ�ذه الوث�ائق ع�ن طری�ق القائم�ة

. Helpاالطالع على نوع المساعدة والدعم المقدمان من خالل القائمة األمر ال�ذي < earchSHelp باختیار Helpیمكن للمستخدم بالطبع البحث بسرعة ضمن موضوعات المساعدة

وبداخلھا أداة بحث ع�ن Default Internet Explorerاالفتراضي یؤدي إلى ظھور نافذة مستعرض اإلنترنیت أو الض�غط عل�ى Goمنھ�ا وم�ن ث�م النق�ر عل�ى ال�زر التي یمكن إدخال كلم�ة م�ا Key Wordsالكلمات المفتاحیة

. الموضوعات ذات الصلة بالكلمة المفتاحیة التي تم إدخالھا للحصول على كافةEnterالمفتاح وھي المساعدة المتحسسة للس�یاق Quartus IIھناك طریقة أخرى مزودة للحصول على المساعدة في البرمجیة

Context-Sensitive Help عن��د . وذل��ك م��ن أج��ل العث��ور بس�رعة عل��ى معلوم��ات تتعل��ق بموض��وعات معین��ة عل�ى لوح�ة مف�اتیح الحاس�ب یف�تح ناف�ذة المس�اعدة F1بیقات فإن الضغط على المفتاح الوظیفي استخدام أغلب التط

.التي تعرض التعلیمات المتاحة ضمن ھذا التطبیق Starting a New Project: بدء مشروع جدید -٣

إن . New Design Projectللبدء بالعم�ل عل�ى تص�میم جدی�د یتوج�ب علین�ا أوال تحدی�د مش�روع تص�میم جدی�د یمكننا إنشاء مشروع . Wizard تجعل مھمة المصمم سھلة بتقدیم الدعم على شكل معالج Quartus IIالبرمجیة

:جدید كما یلي الت�ي توض�ح ) ٤(للحص�ول عل�ى الناف�ذة الموض�حة ف�ي الش�كل izard WFile > New Project…نخت�ار -١

ف�ي √اف�ذة ف�ي المش�اریع الالحق�ة األخ�رى م�ن خ�الل وض�ع إش�ارة بإمكاننا تج�اوز ھ�ذه الن . إمكانیات ھذا المعالج ننق�ر اآلن عل�ى . Don't show me this introduction again: الص�ندوق الص�غیر الف�ارغ بجان�ب العب�ارة

) .٥( لالنتقال إلى النافذة الموضحة في الشكل Nextالزر

Page 7: VHDL Quartus II 01

٦

.لج مشروع جدیدالمھام المنجزة بواسطة معا) : ٤(الشكل

.إنشاء مشروع جدید) : ٥(الشكل وفق المس�ار Working Directoryسوف نقوم بضبط مجلد العمل للمشروع ) ٥( كما ھو واضح في الشكل -٢

م�ن الق�رص الص�لب ھ�و مجل�د D ض�من الس�واقة introtutorial أي س�یكون المجل�د D:\introtutorial: التالي إن المشروع . یمكننا بالطبع اختیار اسم آخر لمجلد المشروع أو مسار آخر لمجلد العمل دون أیة قیود . المشروع

Top-Level Designیجب أن یمتلك اسما والذي یكون عادة مطابقا السم كیان التص�میم ذي المس�توى األعل�ى Entity س�نختار االس�م . الذي سوف ی�تم إض�افتھ إل�ى المش�روعlight للمش�روع ولكی�ان المس�توى األعل�ى كاس�م

Top-Level Entity ٥( كما ھو مبین في الشكل. (

Quartus II ف��إن البرمجی��ة introtutorialبم��ا أنن��ا ل��م نخل��ق بع��د المجل��د . < Nextنض��غط اآلن عل��ى ال��زر ا المجل�د والذي یطلب تأكید رغبتن�ا ف�ي خل�ق ھ�ذ ) ٦( المبین في الشكل Pop-Up Boxستظھر الصندوق المنبثق

) .٧( األمر الذي یقودنا إلى النافذة المبینة في الشكل Yesنضغط على الزر . المطلوب

Page 8: VHDL Quartus II 01

٧

. إنشاء مجلد جدید من أجل المشروعQuartus IIتستطیع البرمجیة ) : ٦(الشكل

.مستخدمبإمكان المعالج أن یقوم بإضافة ملفات تصمیم محددة من قبل ال) : ٧(الشكل یس��ھل مع��الج إنش��اء مش��روع تص��میم جدی��د مھم��ة تحدی��د الملف��ات الموج��ودة س��لفا والت��ي ی��راد إض��افتھا إل��ى -٣

في حالتنا ھذه و باعتبار أنھ ال توجد ل�دینا أی�ة ملف�ات موج�ودة س�لفا فإنن�ا س�نتابع العم�ل بالض�غط عل�ى . المشروع .) ٨(ة في الشكل األمر الذي یقودنا إلى النافذة المبین< Nextالزر

.EP2C35F672C6 وھو والجھاز المطلوبFPGAاختیار عائلة جھاز الـ ) : ٨(الشكل

Page 9: VHDL Quartus II 01

٨

ل�ذلك . ال�ذي س�وف تنج�ز ال�دارة المطل�وب تص�میمھا داخل�ھ FPGAیتوجب علین�ا اآلن تحدی�د ن�وع جھ�از ال�ـ -٤

م��ن خ��الل القائم��ة ( DE2از المرك��ب عل��ى الب��ورد ألنھ��ا تمث��ل عائل��ة الجھ�� Cyclone™ IIنخت��ار أوال العائل��ة تختار جھازا محددا ضمن ھذه العائل�ة أو أن Quartus IIمن ثم یمكننا أن نجعل البرمجیة ) . Familyالمنسدلة

ف�ي حالتن�ا ھ�ذه ب�الطبع یج�ب اختی�ار الجھ�از . نق�وم نح�ن بأنفس�نا باختی�ار الجھ�از المطل�وب بأنفس�نا بش�كل ص�ریح Targetلیك��ون الجھ��از الھ��دف ) EP2C35F672C6وھ��و الجھ��از ذي االس��م ( DE2الب��ورد المرك��ب عل��ى

Device . ل��ذلك م��ن القائم��ةAvailable Devices نخت��ار الجھ��ازEP2C35F672C6 ب��النقر علی��ھ وم��ن ث��م ) .٩( األمر الذي یقودنا إلى النافذة المبینة في الشكل < Nextنضغط على الزر

. أخرى یمكن تحدیدھاEDA ( Electronic Design Automation )أدوات ) : ٩(الشكل ھ��ذا المص��طلح ھ��و تعبی��ر ) . Third-Party Tools( أخ��رى EDAبإمك��ان المس��تخدم ھن��ا تحدی��د أدوات -٥

م���ن أج���ل ال���دارات االلكترونی���ة CAD Softwareمختص���ر ش���ائع لبرمجی���ات التص���میم باس���تخدام الحاس���ب Electronic Circuits إذ یطل��ق عل��ى ھ��ذه البرمجی��ات اس��م EDA Tools. واالختص��ار EDA نفس��ھ یعن��ي

ھذا المصطلح مس�تخدم ف�ي رس�ائل البرمجی�ة . Electronic Design Automationأتمتة التصمیم االلكتروني Quartus II ف ثال�ث أو ما یس�مى أدوات ط�ر ( والتي تشیر إلى أدوات برمجیة مطورة من قبل شركات أخرى /

والتي تمث�ل أدوات برمجی�ة مط�ورة ومس�وقة م�ن قب�ل ش�ركات أخ�رى غی�ر ش�ركة ) Third-Party Toolsآخر Altera . بم��ا أنن��ا س��نعتمد فق��ط عل��ى أدوات البرمجی��ةQuartus II فإنن��ا ل��ن نق��وم باختی��ار أي أدوات خارجی��ة .< Nextاآلن یكفي الضغط ببساطة على الزر . أخرى

نض�غط حالی�ا . یبین النافذة التي تعرض خالصة اإلعدادات الت�ي قمن�ا بھ�ا ف�ي الخط�وات الس�ابقة ) ١٠(الشكل -٦

م��ع مالحظ��ة أن المش��روع الجدی��د Quartus II مم��ا یعی��دنا إل��ى الناف��ذة الرئیس��یة للبرمجی��ة Finishعل��ى ال��زر Quartus IIھ حالی�ا البرمجی�ة ھ�و المش�روع ال�ذي تعم�ل علی� lightالح�الي ال�ذي ت�م إنش�اؤه وال�ذي یحم�ل االس�م

ض�من ش�ریط ) D:\introtutorial\lightوھ�و المس�ار ( lightویمكن التأكد من ذلك بمالحظة مس�ار المش�روع ) .١١(العنوان في النافذة الموضحة في الشكل

Page 10: VHDL Quartus II 01

٩

.خالصة عن إعدادات المشروع) : ١٠(الشكل

. الذي تم إنشاؤهlight مع المشروع الجدید Quartus IIالنافذة الرئیسیة للبرمجیة ) : ١١(ل الشك

Page 11: VHDL Quartus II 01

١٠

VHDL : Design Entry Using VHDL Codeإدخال التصمیم باستخدام كود -٤

) . ١٢(كمثال تص�میمي ، س�وف نس�تخدم دارة الم�تحكم بإض�اءة مص�باح ع�ن طری�ق مفت�احین المبین�ة ف�ي الش�كل حی�ث أن المفت�اح x2 و x1ستخدام ھذه الدارة للتحكم بإضاءة مصباح وحید انطالقا م�ن أي م�ن المفت�احین یمكننا ا

نالح�ظ ھن�ا أن ھ�ذه ) . ١٢(ج�دول الحقیق�ة لھ�ذه ال�دارة مب�ین أیض�ا ف�ي الش�كل . '1'المغلق یوافق القیمة المنطقی�ة ولكنن��ا س��نقوم x2 و x1 للم��دخلین Exclusive-OR Functionت��ابع الجم��ع المقص��ور الحال��ة تط��ابق تمام��ا

) .١٢(بتعریفھ باستخدام البوابات المنطقیة الموضحة في الشكل

.دارة التحكم بإضاءة مصباح عن طریق مفتاحین) : ١٢(الشكل Entityنالح�ظ ھن�ا أن الكی�ان ) . ١٣( المبین في الشكل VHDLإن الدارة المطلوبة قد تم توصیفھا بواسطة كود

والذي كان قد تم اختی�اره عن�د إنش�اء ) ٥(المعطى في الشكل لیطابق االسم light قد أعطي اسم VHDLفي كود ق�ادر Text Editor باستخدام أي مح�رر نص�وص Fileھذا الكود ضمن ملف ) كتابة ( یمكن تنضید . المشروع

.Quartus IIجیة ، أو باستخدام محرر النصوص المضمن في البرمASCIIعلى تخزین ملفات إن . VHDL ف�ي ك�ود Top-Level Entity اسم كی�ان المس�توى األعل�ى نذكر ھنا بضرورة تسمیة الملف بنفس

VHDL ال�ذي ی�دل عل�ى أن المل�ف یحت�وي ش�یفرة بلغ�ة ( vhd. ) ھ�و VHDLامتداد الملف ال�ذي یتض�من ك�ود .لمطلوب لتسمیة ملفنا اlight.vhdوبالتالي فإننا سنستخدم ھنا االسم

------------------------------------------------------------------------------- LIBRARY ieee ; USE ieee.std_logic_1164.all ; ------------------------------------------------------------------------------- ENTITY light IS PORT ( x1, x2 : IN STD_LOGIC ; f : OUT STD_LOGIC ) ; END light ; ------------------------------------------------------------------------------- ARCHITECTURE LogicFunction OF light IS BEGIN f <= ( x1 AND NOT x2 ) OR ( NOT x1 AND x2 ); END LogicFunction ; -------------------------------------------------------------------------------

.)١٢( للدارة المبینة في الشكل VHDLكود ) : ١٣(الشكل Quartus II : Using The Quartus II Text Editor استخدام محرر النصوص في البرمجیة -١-٣

. light.vhd إلنش�اء المل�ف Quartus IIفي ھذه الفقرة سنعرض كیفیة استخدام محرر النص�وص ف�ي البرمجی�ة وم��ن ث��م نخت��ار الخی��ار ) ١٤( للحص��ول عل��ى الناف��ذة المبین��ة ف��ي الش��كل …Newر نخت��ار األم�� Fileم��ن قائم��ة

VHDL File وننقر على الزر OK . ر النصوص ا سوف تفتح نافذة محرعندھ.

Page 12: VHDL Quartus II 01

١١

.النافذة التي تسمح باختیار نوع الملف الجدید المراد إنشاؤه) : ١٤(الشكل وم�ن ث�م نخت�ار األم�ر Fileلھذا نختار القائم�ة . الملف الذي سوف یتم إنشاؤه تتمثل الخطوة األولى في تحدید اسم

Save As…لفتح الصندوق المنبثق Pop-Up Box ١٥( المبین في الشكل. (

.الصندوق المنبثق الذي یسمح بإعطاء اسم الملف الجدید) : ١٥(الشكل وض��من VHDL File یج��ب التأك��د م��ن اختی��ار Save as typeف��ي ھ��ذا الص��ندوق وض��من القائم��ة المنس��دلة

أخی�را یج�ب االنتب�اه إل�ى ض�رورة وض�ع عالم�ة . light یجب التأكد من كتابة االسم File nameصندوق النص األم�ر ال�ذي Saveننقر اآلن على الزر . Add file ti current project في المربع الصغیر المجاور لعبارة √

م�ن الق�رص الص�لب وظھ�ور D ف�ي الس�واقة introtutorial داخ�ل المجل�د light.vhdف سیؤدي إلى إنش�اء المل� ) .١٦(نافذة محرر النصوص المبینة في الشكل

.Quartus IIنافذة محرر النصوص في البرمجیة ) : ١٦(الشكل

Page 13: VHDL Quartus II 01

١٢

ض�من ھ�ذه الناف�ذة ) ١٣( المب�ین ف�ي الش�كل VHDL نافذة محرر النصوص ثم قم بإدخ�ال ك�ود Maximizeكبر ق�م بع�د االنتھ�اء م�ن إدخ�ال الك�ود بتخزین�ھ . Copy and Pasteسواء بتنضید الكود أو من خالل نسخھ ولص�قھ

.Ctrl-s أو بالضغط على االختصار المفتاحي File > Saveمن خالل القائمة ال ال�نص عن�د نقط�ة الحش�ر یتم إدخ. إن أغلب األوامر المتاحة في محرر النصوص ال تحتاج إلى شرح لبساطتھا

Insertion Point إم�ا ) تغیی�ر موض�عھا ( یمك�ن تحری�ك نقط�ة الحش�ر . الت�ي تك�ون مح�ددة بخ�ط ش�اقولي رفی�ع .باستخدام مفاتیح األسھم على لوحة المفاتیح أو باستخدام الفأرة

:VHDLھناك میزتان لمحرر النصوص مالئمتان بشكل خاص لتنضید كود بألوان مختلف�ة وھ�ذه المی�زة ھ�ي VHDLالمحرر یمكنھ عرض األنواع المختلفة لتعلیمات أن : األولى - .Default Choice) التلقائي ( الخیار االفتراضي أن المحرر یمكنھ بشكل آلي أن یسمح عند االنتقال إلى سطر جدید بالحفاظ على المسافة البادئ�ة : الثانیة - .أن السطر الجدید یطابق من حیث موضع بدایتھ السطر السابق لھ المعتمدة في السطر السابق بحیث

Text Editor المتعلق��ة بمح��رر النص��وص Settingsخی��ارات كھ��ذه یمك��ن ال��تحكم بھ��ا ع��ن طری��ق اإلع��دادات .Tools > Options > Text Editor: والمتاحة من خالل المسار

VHDL : Using VHDL Templates استخدام قوالب -١-١-٣

للمس�اعدة ف�ي ح�ل ھ�ذه . تكون أحیانا صعبة التذكر بالنسبة للمص�مم VHDL لكود Syntaxإن الصیغ القواعدیة تق��دم Templatesھ��ذه القوال��ب . الج��اھزة VHDLالمش��كلة ف��إن مح��رر النص��وص ی��زود مجموع��ة م��ن قوال��ب

CASE أو تعلیم�ة Entity Declaration كالتص�ریح ع�ن كی�ان م�ا VHDLأمثلة على أنواع مختلف�ة لتعلیم�ات ل�ذلك م�ن المفی�د اس�تعراض ھ�ذه القوال�ب م�ن خ�الل المس�ار . Assignment Statementsأو تعلیم�ات اإلس�ناد

. لتصبح ھذه الموارد مألوفة بالنسبة للمستخدم Edit > Insert Template > VHDL: التالي Adding Design Files to a Project: إضافة ملفات تصمیم إلى مشروع ما -٢-٣

برغبتن�ا ف�ي إض�افة ملف�ات تص�میم Quartus IIفإن�ھ باإلمك�ان إع�الم البرمجی�ة ) ٧(كما بین�ا عن�د مناقش�ة الش�كل لرؤی�ة الئح�ة الملف�ات المض�منة مس�بقا ف�ي المش�روع . لتصبح جزءا من المشروع الح�الي Design Filesمعینة light یمك�ن اختی�ار :Assignments > Settings… األم�ر ال�ذي ی�ؤدي إل�ى ظھ�ور الناف�ذة المبین�ة ف�ي الش�كل

س�نرى Filesفإننا ومن خالل النقر عل�ى البن�د ) ١٧(اآلن وكما ھو موضح في الجانب األیسر من الشكل ) . ١٧( :ھناك طریقة بدیلة للحصول على نفس النتیجة وتتمثل في اختیار . كافة ملفات التصمیم في المشروع الحالي

Project > Add/Remove Files in Project…. Add وفعل�ت الخی�ار light.vhd إلنش�اء المل�ف Quartus IIإذا كنت ق�د اس�تخدمت مح�رر نص�وص البرمجی�ة

file to current project ف�إن ) ١٥( في المربع الص�غیر المج�اور ل�ھ كم�ا م�ر معن�ا ف�ي الش�كل √ بوضع إشارة م��ن المش�روع وس�وف یظھ��ر ف�ي الئح�ة الملف��ات التص�میمیة للمش��روع ھ�ذا المل�ف ق��د أص�بح بش�كل مس��بق ج�زءا

) .١٧(والمبینة في الشكل ق��د أض��یف بش��كل مس��بق إل��ى المش��روع فإن��ھ یتوج��ب إض��افتھ لیص��بح ج��زءا م��ن light.vhdإذا ل��م یك��ن المل��ف

یتوج�ب عن�دھا فQuartus IIوبالتالي إذا كنت على سبیل المثال لم تستخدم محرر نصوص البرمجیة . المشروع introtutorial ال��ذي أنش��أتھ باس��تخدام مح��رر نص��وص آخ��ر داخ��ل المجل��د light.vhdوض��ع نس��خة م��ن المل��ف

المج�اور إلض�افة ھ�ذا المل�ف إل�ى المش�روع ننق�ر عل�ى زر االس�تعراض . الذي یمثل مجلد المشروع الحالي المبین��ة ف�ي الش��كل Pop-Up Windowللحص��ول عل�ى الناف�ذة المنبثق��ة ) ١٧( ف��ي الش�كل :File nameللحق�ل

Fileالمل�ف المخت�ار اآلن مب�ین ف�ي الحق�ل . Open روم�ن ث�م ننق�ر عل�ى ال�ز light.vhdنح�دد المل�ف ) . ١٨(name: وبالتالي بالنقر على الزر ) ١٧( ضمن الشكلAdd ومن ثم على الزر Ok یص�بح ھ�ذا المل�ف ج�زءا م�ن

.المشروع ق�ادرة بش�كل آل�ي عل�ى إیج�اد الملف�ات Quartus IIع�دة ح�االت تك�ون البرمجی�ة م�ن الج�دیر بال�ذكر ھن�ا أن�ھ ف�ي

) Main Code( الرئیس�ي VHDL تم االعتماد علی�ھ ف�ي ك�ود Entityالضروریة لالستخدام من أجل كل كیان

Page 14: VHDL Quartus II 01

١٣

ة ولك�ن طبع�ا ش�ریط ( حتى ولو كان الملف الذي یتضمن ھذا الكی�ان ل�م ت�تم إض�افتھ بش�كل ص�ریح إل�ى المش�روع الت�ي Complex Projectsعلى كل ح�ال ، م�ن أج�ل المش�اریع المعق�دة ) . وجود ھذا الملف في مجلد المشروع

تس��تخدم ع��دة ملف��ات ف��إن إض��افة الملف��ات الض��روریة بش��كل ص��ریح إل��ى المش��روع كم��ا بین��ا أع��اله یعتب��ر منھج��ا .تصمیمیا عملیا جیدا

.Settings Windowات نافذة اإلعداد) : ١٧(الشكل

.اختیار الملف الذي سیضاف إلى المشروع) : ١٨(الشكل Compiling The Designed Circuit: ترجمة الدارة المصممة -٤

والت�ي تحل�ل Quartus II تتم معالجتھ من قبل ع�دة أدوات ف�ي البرمجی�ة light.vhd في الملف VHDLإن كود Implementation وتول�د تنجی�زا Synthesize The Circuit وترك�ب ال�دارة Analyze The Codeالك�ود

ض�من Software Toolsھ�ذه األدوات البرمجی�ة . The Target Chipموافق�ا لھ�ا م�ن أج�ل الش�ریحة الھ�دف .The Compilerالمترجم : مقادة بالبرنامج التطبیقي المدعو Quartus IIبیئة التطویر

أو ببس�اطة الض�غط ( Start Compilation واختی�ار األم�ر Processingمترجم م�ن خ�الل القائم�ة یتم تشغیل ال

في شریط األدوات والتي تش�بھ ص�ورة أو من خالل النقر على األیقونة ) Ctrl+Lعلى االختصار المفتاحي تلیھ�ا عملی�ة Analysis & Synthesisتبدأ بعملیة التحلی�ل والتركی�ب ( تمر عملیة الترجمة بعدة مراحل . معمل

عملی�ة وأخیرا Assembler ومن ثم عملیة التجمیع التي یقوم بھا المجمع Fitterالتوضیع التي یقوم بھا الموضع إن تق��دم عملی��ة الترجم��ة یظھ��ر ض��من الناف��ذة الص��غیرة ذات العن��وان . )Timing Analysisالتحلی��ل الزمن��ي

Statusن خالل األمر والتي یمكن إظھارھا أو إخفاؤھا مStatus ف�ي القائم�ة الفرعی�ة Utility Windows م�ن

Page 15: VHDL Quartus II 01

١٤

عن��د انتھ��اء عملی��ة ) . Alt+4أو ببس��اطة م��ن خ��الل الض��غط عل��ى التراك��ب المفت��احي ( Viewالقائم��ة الرئیس��یة الترجمة بنجاح دون وجود أخطاء تظھر نافذة صغیرة مع رسالة انتھاء الترجمة بنجاح كما ھو واضح ف�ي الش�كل

)١٩(.

.رسالة انتھاء عملیة الترجمة بنجاح ) : ١٩(الشكل آنف�ة Statusوفیھ�ا تظھ�ر الناف�ذة ) ٢٠(نحصل على النافذة المبینة في الشكل ) أو موافق ( OKبالنقر على الزر

.الذكر مع مؤشرات النسبة المئویة التي تدل على انتھاء المترجم من عملھ

. بعد االنتھاء من عملیة الترجمة Quartus IIالنافذة الرئیسیة للبرمجیة ) : ٢٠(الشكل كم�ا ھ�و واض�ح Messages ض�من الناف�ذة ذات العن�وان Errorفي حالة وجود أخطاء یمكننا النقر على اللویح�ة

لتفحص رسائل الخطأ وتصحیح األخطاء ومن ثم إعادة عملی�ة الترجم�ة حت�ى ال�تخلص م�ن كاف�ة ) ٢١(في الشكل .األخطاء الموجودة ضمن الكود

.Quartus II في البرمجیة Messages داخل النافذة Errorرسائل الخطأ ضمن اللویحة ) : ٢١(الشكل

Page 16: VHDL Quartus II 01

١٥

واختی��ار Processingیمك�ن ع��رض تقری�ر الترجم��ة بع�د االنتھ��اء م�ن عملی��ة الترجم�ة بنج��اح م�ن خ��الل القائم�ة األمر الذي یؤدي إل�ى ) Ctrl+R أو الضغط ببساطة على االختصار المفتاحي (Compilation Reportاألمر

كم�ا ھ�و واض�ح ف�ي Quartus IIع�رض خالص�ة تقری�ر عملی�ة الترجم�ة ف�ي الج�زء األیم�ن م�ن ناف�ذة البرمجی�ة ) .٢٢(الشكل

.Compilation Reportخالصة تقریر عملیة الترجمة ) ٢٢(الشكل لن�رى معلوم�ات تتعل�ق بالمش�روع الح�الي والش�ریحة Flow Summaryذة یمكننا النقر على البند ضمن ھذه الناف

المس��تخدمة لتنجی��ز دارة Logic Elementsالمخت��ارة باإلض��افة إل��ى معلوم��ات ع��ن ع��دد العناص��ر المنطقی��ة وي الص�فر ألن المشروع وع�دد أقط�اب ال�دخل والخ�رج لل�دارة كم�ا نالح�ظ أن ع�دد القالب�ات المس�تخدمة ھن�ا یس�ا

FPGAالدارة تركیبیة صرفة باإلضافة إلى عدم استخدام أیة خلیة ذاكریة من الخالیا المتوافرة ضمن شریحة ال�ـ ) . ألف خلیة أو خانة 480والبالغ عددھا حوالى ( المختارة

Errors: األخطاء -١-٤

اء عملی��ة الترجم��ة ف��ي ناف��ذة الرس��ائل بع��رض الرس��ائل الت��ي یول��دھا المت��رجم أثن�� Quartus IIتق��وم البرمجی��ة Messages Window . إذا كان مل�ف التص�میم بلغ�ةVHDL ص�حیحا ف�إن إح�دى ھ�ذه الرس�ائل تش�یر إل�ى أن

إذا ل�م یع�رض المت�رجم رس�الة الخل�و م�ن األخط�اء فھ�ذا . عملیة الترجمة قد تمت بنجاح وأنھ ال توجد أی�ة أخط�اء سوف یتم عرض رسالة مالئم�ة لك�ل في ھذه الحالة ، . VHDLمن كود یعني أنھ یوجد خطأ واحد على األقل ض

كم�ا ھ�و واض�ح Error Tabخطأ موجود في الكود ضمن نافذة الرسائل وتحدیدا ف�ي اللویح�ة الخاص�ة باألخط�اء مباش��رة بتل��وین Quartus IIعن��د النق��ر بش��كل م��زدوج عل��ى رس�الة خط��أ م��ا تق��وم البرمجی��ة ) . ٢١(ف�ي الش��كل األم�ر ال�ذي یس�ھل Text Editorي حدث عنده الخط�أ أثن�اء كتاب�ة الك�ود ض�من ناف�ذة المح�رر النص�ي السطر الذ

ض�من Warning Messagesبشكل مشابھ ، فإن المترجم یعرض بضعة رسائل تح�ذیر . عملیة تصحیح الخطأ أی�ة Warningعموم�ا ال تش�كل رس�ائل التح�ذیر ض�من اللویح�ة . Critical Warning و Warningاللویحتین

عل�ى . كم�ا س�نرى بع�د قلی�ل Critical Warningمشكلة ولكن یجب دوما تفحص رسائل التحذیر ضمن اللویحة كل حال ، یمكن دوما استكشاف تفاصیل حول رسالة تحذیر ما من خالل تحدید الرسالة المطلوبة ومن ثم الض�غط

. على لوحة المفاتیح F1على المفتاح الوظیفي ( fخط��أ م��ا س��نقوم بح��ذف الفاص��لة المنقوط��ة الموج��ودة ف��ي نھای��ة الس��طر ال��ذي یق��وم بتحدی��د الت��ابع لرؤی��ة ت��أثیر . وذلك یمكن أن یحدث ع�ن طری�ق الص�دفة كخط�أ غی�ر مقص�ود أحیان�ا ) من الكود السابق أعاله 12السطر رقم

والتي تفی�د ب�أن ) ٢٣(ي الشكل نعید عملیة الترجمة بعد تخزین ملف الكود المغلوط فنحصل على الرسالة المبینة ف وم�ن ث�م إلغ�الق ھ�ذه الناف�ذة ) أو مواف�ق ( OKننقر على ال�زر . عملیة الترجمة لم تنجح وأن ھناك ثالثة أخطاء

) .٢٤( لنرى رسائل الخطأ الثالثة كما ھو واضح في الشكل Messages ضمن النافذة Errorننقر على اللویحة

Page 17: VHDL Quartus II 01

١٦

. عملیة الترجمة ووجود أخطاء ضمن الكود رسالة فشل) : ٢٣(الشكل

.Quartus II في نافذة الرسائل للبرمجیة Errorرسائل الخطأ ضمن اللویحة ) : ٢٤(الشكل . نبدأ بالنقر بشكل مزدوج على رسالة الخطأ األولى فیقوم المحرر النص�ي بتحدی�د الس�طر ال�ذي ح�دث فی�ھ الخط�أ

وتفی�د ) حذف الفاصلة المنقوطة في نھایة السطر ( 12 حالتنا ھذه قد وقع في السطر رقم في الحقیقة إن الخطأ في وبالت��الي یمكنن��ا إع��ادة ENDرس��الة الخط��أ ب��أن المت��رجم یتوق��ع وج��ود الفاص��لة المنقوط��ة قب��ل الكلم��ة المحج��وزة . أخرى الفاصلة المنقوطة إلى مكانھا وتخزین ھذا التغییر ومن ثم إعادة عملیة الترجمة مرة

Pin Assignment: إسناد األقطاب -٥

ح�را ف�ي اختی�ار أی�ة أقط�اب م�ن Quartus IIأثن�اء عملی�ة الترجم�ة الس�ابقة أع�اله ، ك�ان المت�رجم ف�ي البرمجی�ة لتك�ون م�داخل أو مخ�ارج ) Cyclone II م�ن العائل�ة EP2C35F672C6الش�ریحة ( أقطاب الشریحة المح�ددة

ھ�ي DE2ا ھ�ذه ، وباعتب�ار أن التوص�یالت ب�ین أقط�اب الش�ریحة وب�اقي مكون�ات الب�ورد ولكن في حالتن� . للدارة وھم�ا مفتاح�ان م�ن الن�وع ( SW1 و SW0توصیالت ثابتة وال یمكن تغییرھا من جھة وأننا سنستخدم المفتاحین

ON/OFF وموصوالن إلى القطبین N25 و N26 من أقط�اب ش�ریحة ال�ـ FPGA ( وثن�ائي اإلص�دار الض�وئي LEDG0 ) وھو اللید الموصول إلى القطبAE22 فإنن�ا ملزم�ون ب�إعالم المت�رجم بھ�ذه القی�ود ) من الشریحة ،

:األقطاب كما ھو موضح فیما یلي ) تخصیص ( الثالثة قبل إطالق عملیة الترجمة من خالل القیام بعملیة إسناد ) .٢٥(ھر النافذة المبینة في الشكل فتظPins نقوم بالنقر على األمر Assignmentsمن خالل القائمة

و x1ف�ي حالتن�ا ھ�ذه ( نالحظ في القسم السفلي من ھذه النافذة وجود جدول یتضمن كافة م�داخل ومخ�ارج ال�دارة x2 و f ( ف��ي العم��ود األول من��ھ وال��ذي یحم��ل العن��وانNode Name . یل��ي ذل��ك العم��ود عم��ود آخ��ر عنوان��ھ

Direction وأخی�را ف�إن العم�ود الثال�ث ذي العن�وان ) دخل أو خرج ( ذ للداللة على نمط المنفLocation یس�مح نب�دأ ب�النقر بش�كل . لنا بإسناد القطب المناسب من أقطاب الشریحة إلى ك�ل منف�ذ م�ن مناف�ذ ال�دارة الم�راد تنجیزھ�ا

لمناس�ب وھ�و ومن ثم نكتب اسم القطب اf وتحدیدا في السطر الموافق للمخرج Locationمزدوج ضمن العمود AE22 كما نوھنا قبل قلیل ونضغط على المفتاح Enter . ننتق�ل اآلن إل�ى الس�طر المواف�ق للم�دخلx1 وبطریق�ة

فنحص�ل عل�ى x2 إلى المدخل N26 وأخیرا نقوم بإسناد القطب x1 إلى المدخل N25مشابھة نقوم بإسناد القطب .ه النافذة ومن ثم نعید عملیة الترجمة مرة أخیرة نقوم اآلن بإغالق ھذ) .٢٦(النافذة المبینة في الشكل

Page 18: VHDL Quartus II 01

١٧

.DE2النافذة التي تسمح بتخصیص األقطاب بالشكل المالئم لحالة البورد ) : ٢٥(الشكل

.نافذة إسناد األقطاب بعد القیام بعملیة تخصیص األقطاب لكل من منافذ الدارة ) : ٢٦(الشكل المبین�ة Compiler Toolفذة انتھاء عملیة الترجم�ة بنج�اح نق�وم بإغالقھ�ا فن�رى ناف�ذة أداة المت�رجم بعد ظھور نا

) .٢٧(في الشكل

.نافذة أداة المترجم وتظھر فیھا أیقونات ملفات تقاریر مراحل عملیة الترجمة ) : ٢٧(الشكل

Page 19: VHDL Quartus II 01

١٨

. قون�ات تمث�ل ملف�ات تق�اریر مراح�ل عملی�ة الترجم�ة ، فإن ھذه الناف�ذة تتض�من أی ) ٢٧(كما ھو واضح في الشكل

فی�تم ع�رض مل�ف نص�ي یمث�ل تقری�ر عملی�ة التوض�یع Fitterننقر بشكل مزدوج على أیقونة ملف الموض�ع .والذي یمكن من خاللھ التأكد من أن عملیة تخصیص األقطاب قد تمت كما سبق أن نوھنا أعاله

Simulating The Designed Circuit: محاكاة الدارة المصممة -٦

م��ن الحكم�ة القی��ام بعملی�ة المحاك��اة DE2 عل��ى الب�ورد FPGAقب�ل تنجی��ز ال�دارة المص��ممة بواس�طة ش��ریحة ال�ـ ھ��ذا الك��الم ال ( Simulation Tool أداة محاك��اة Quartus IIتتض��من البرمجی��ة . للتحق��ق م��ن ص��حة أدائھ��ا

قب�ل . ال�دارة المص�ممة ) أداء ( ي یمكن استخدامھا لمحاكاة س�لوك والت!!! ) وما بعده 10.0ینطبق على اإلصدار Desired Waveformsأن ن�تمكن م��ن محاك�اة أداء ال��دارة م�ن الض��روري إنش��اء األش�كال الموجی��ة المرغوب�ة

كم�ا یتوج�ب عل�ى المص�مم تحدی�د أی�ة . لتمثی�ل إش�ارات ال�دخل Test Vectorsوالتي تس�مى ھن�ا أش�عة االختب�ار إن المح�اكي یطب�ق أش�عة االختب�ار عل�ى . أو أیة إشارات داخلیة یود مراقبتھا أثناء عملی�ة المحاك�اة إشارات خرج

.نموذج للدارة المنجزة ویقوم بتحدید قیم االستجابات المتوقعة بالنسبة إلشارات الخرج واإلشارات الداخلیة

لرس��م أش��عة Quartus II ض��من البرمجی��ةWaveform Editorس��وف نق��وم باس��تخدام مح��رر ش��كل الموج��ة :االختبار وذلك كما یلي

فنحص�ل عل�ى New حی�ث نخت�ار األم�ر Fileمن خالل القائم�ة الرئیس�یة یمكن فتح نافذة محرر شكل الموجة -١ ض��من Vector Waveform File ض��من ھ��ذه الناف��ذة ننق��ر عل��ى الن��وع ) .٢٨(الناف��ذة المبین��ة ف��ي الش��كل

فتظھر لنا الناف�ذة الص�غیرة المبین�ة ف�ي .OK ثم ننقر على الزر Verification/Debugging Filesالمجموعة ل���ن تحت���وي عل���ى المح���اكي Quartus IIوالت���ي تعلمن���ا ب���أن اإلص���دارات التالی���ة م���ن البرمجی���ة ) ٢٩(الش���كل

Simulator وأن ش���ركةAltera توص���ي باس���تخدام البرمجی���ة ModelSim م���ن أج���ل القی���ام بعملی���ة محاك���اة .Ok ثم ننقر على الزر Don't show this againنقوم اآلن بوضع إشارة اختیار قرب العبارة . التصامیم

.نافذة اختیار نوع الملف الجدید المراد إنشاؤه ) : ٢٨(الشكل

!!! لن تتضمن أداة المحاكاة Quartus IIاإلصدارات التالیة للبرمجیة ) : ٢٩(الشكل

Page 20: VHDL Quartus II 01

١٩

األم�ر ال�ذي ی�ؤدي light.vwfنق�وم اآلن بتخ�زین المل�ف باس�م . نافذة محرر ش�كل الموج�ة ) ٣٠ ( یبین الشكل -٢لتص�بح ناف�ذة بالمناس�بة ، یمكنن�ا ھن�ا فص�ل ناف�ذة مح�رر ش�كل الموج�ة . إلى ظھور اسم الملف في شریط العن�وان

الش��كل . ع��رض وذل��ك بھ��دف كس�ب المس��احة لل Detach Window مس�تقلة م��ن خ��الل النق�ر عل��ى األیقون��ة .Quartus IIیبین نافذة محرر شكل الموجة بعد فصلھا عن النافذة الرئیسیة للبرمجیة ) ٣١(

.Quartus IIنافذة محرر شكل الموجة ضمن البرمجیة ) : ٣٠(الشكل

.ا عن النافذة الرئیسیة وفصلھlight.vwfنافذة محرر شكل الموجة بعد تخزین الملف ) : ٣١(الشكل وحت�ى اللحظ�ة t = 0 nsولیكن مثال من اللحظ�ة الزمنی�ة ( نقوم اآلن بتحدید الزمن المرغوب لعملیة المحاكاة -٣

فنحص�ل عل�ى الناف�ذة المبین�ة …End Time واختیار األمر Editوذلك من خالل القائمة ) t = 200 nsالزمنیة یمك�ن اآلن م�ن .OK ث�م ننق�ر عل�ى ال�زر ns والواح�دة 200نض�بط القیم�ة ض�من ھ�ذه الناف�ذة ) .٣٢(في الشكل

إلظھ��ار ) Ctrl+Wأو الض��غط عل��ى االختص��ار المفت��احي ( Fit in Window اختی��ار األم��ر Viewالقائم��ة .كامل محور الزمن ضمن نافذة محرر شكل الموجة

Editم��ن القائم��ة . م��ن م��داخل ومخ��ارج ) ة أو مناف��ذ ال��دار( عق��د ال��دارة ) إحض��ار ( اآلن ، س��نقوم بتض��مین -٤فنحص�ل عل�ى الناف�ذة المبین�ة ف�ي …Insert Node or Bus ومن�ھ نخت�ار األم�ر Insertنخت�ار األم�ر المتف�رع

) .٣٣(الشكل

Page 21: VHDL Quartus II 01

٢٠

.End Timeنافذة تحدید قیمة نھایة محور الزمن ) : ٣٢(الشكل

.Bus أو ممر Nodeنافذة إدراج عقدة ) : ٣٣(الشكل ) .٣٤( فنحصل على النافذة الموضحة في الشكل …Node Finderضمن النافذة الحالیة ننقر على الزر -٥

.Node Finderنافذة ) : ٣٤(الشكل Pins: all ضمن النافذة الحالی�ة یمك�ن اختی�ار ن�وع العق�د الت�ي نری�د إدراجھ�ا وف�ي حالتن�ا ھ�ذه س�نختار الخی�ار -٦

فتظھ�ر كاف�ة مناف�ذ ال�دارة ف�ي الج�زء األیس�ر م�ن الناف�ذة List ثم ننقر على ال�زر Filterضمن الحقل ذي العنوان فتظھر كافة المنافذ في الج�زء األیم�ن ننقر عندھا على الزر . :Nodes Foundتحت المنطقة ذات العنوان

ننق�ر اآلن عل�ى ال�زر ) .٣٥(كما ھو مبین في الش�كل :Selected Nodesمن النافذة تحت المنطقة ذات العنوان OK فنعود إلى النافذة ذات العنوان Insert Node or Bus والتي نختار فیھا نظ�ام الع�د ) ٣٦( المبینة في الشكل

فنع�ود ب�ذلك إل�ى ناف�ذة مح�رر ش�كل الموج�ة والت�ي OK ثم ننقر عل�ى ال�زر Radix ضمن الحقل Binaryالثنائي ) .٣٧(ن كافة إشارات الدخل والخرج للدارة كما ھو مبین في الشكل نشاھد فیھا اآل

Page 22: VHDL Quartus II 01

٢١

. بعد تحدید منافذ الدارة التي نرید مراقبتھا أثناء عملیة المحاكاة Node Finderنافذة ) : ٣٥(الشكل

.Radixحقل ضمن الBinaryنافذة إدراج عقدة أو ممر مع تحدید االنظام الثنائي ) : ٣٦(الشكل

.نافذة محرر شكل الموجة بعد إحضار إشارات الدخل والخرج ) : ٣٧(الشكل إن ھ�ذا یمك�ن أن ی�تم م�ن خ�الل القائم�ة . ns 50 بحی�ث تس�اوي Grid Sizeسنضبط اآلن قیمة خطوة الزمن -٧

Edit حیث نختار األمر Grid Size…ت�ي تس�مح بتغیی�ر قیم�ة خط�وة وال) ٣٨( النافذة المبین�ة ف�ي الش�كل فتظھر .OKبعد االنتھاء من ضبط القیمة الجدیدة ننقر على الزر . ns 50الزمن إلى القیمة

. في محرر شكل الموجة Grid Sizeنافذة ضبط قیمة خطوة الزمن ) : ٣٨(الشكل

Page 23: VHDL Quartus II 01

٢٢

تسلس�ل ظھ�ور إش�ارات فإن�ھ م�ن المفض�ل ترتی�ب MAX PLUS IIكما رأینا سابقا أثن�اء اس�تخدام البرمجی�ة -٨ إل�ى األس�فل fفي حالتنا ھذه سنزلق إش�ارة الخ�رج . منافذ الدارة بحیث نضع في البدایة المداخل ومن ثم المخارج

وم�ن ث�م تحریك�ھ إل�ى األس�فل لیتوض�ع تح�ت إش�ارة ال�دخل f اإلش�ارة Handleوذلك من خالل النقر على ممسك x2 ٣٩( كما ھو مبین في الشكل. (

.نافذة محرر شكل الموجة بعد ضبط قیمة خطوة الزمن و إعادة ترتیب أماكن منافذ الدارة ) : ٣٩(الشكل إن ھ�ذه الق�یم یمك�ن أن تح�دد بش�كل كیف�ي . x2 و x1یتوجب اآلن الب�دء بإعط�اء ق�یم لك�ل م�ن إش�ارتي ال�دخل -٩

تغطی��ة كاف��ة الح��االت الممكن��ة لج��دول الحقیق��ة ولك��ن باعتب��ار أن ال��دارة المص��ممة تركیبی��ة تمام��ا فم��ن المفض��ل خ�الل المج�ال الزمن�ي المحص�ور ب�ین '0' القیم�ة x1أي سوف نعطي إشارة ال�دخل ) . ١٢(المعروض في الشكل

t = 100 ns خالل المجال الزمني المحص�ور ب�ین اللحظت�ین '1' والقیمة t = 100 ns و t = 0 nsاللحظتین [ ns – 50 ns 0 ] المج�الین ال�زمنیین ك�ل م�ن خالل'0' القیمة x2 سنعطي إشارة الدخل كما أنناt = 200 nsو خالل ك�ل م�ن المج�الین ال�زمنیین x2 ستعطى إلى إشارة الدخل '1' في حین أن القیمة [ ns – 150 ns 100 ]و

[ 50 ns – 100 ns ] و [ 150 ns – 200 ns ] ٤٠( كما ھو مبین في الشكل. (

. بشكل موافق لجدول الحقیقة للدارة x2 و x1إعطاء القیم لإلشارتین ) : ٤٠(الشكل إن الدارة المص�ممة یمك�ن . استعدادا لبدء عملیة المحاكاة light.vwf نقوم بتخزین ھذه التغییرات في الملف -١٠

Logic Elementsاص�ر المنطقی�ة الطریقة األبس�ط تعتم�د عل�ى افت�راض أن العن . أن تحاكى بطریقتین مختلفتین ھ��ي مثالی��ة وال تس��بب أي ت��أخیر أثن��اء انتش��ار اإلش��ارات خ��الل Interconnection Wiresوأس��الك التوص��یل

Page 24: VHDL Quartus II 01

٢٣

الطریق��ة األخ��رى . Functional Simulationھ��ذه الطریق��ة م��ن المحاك��اة ت��دعى المحاك��اة الوظائفی��ة . ال��دارة سبان كافة التأخیرات الناجمة عن انتشار اإلشارات خ�الل ال�دارة وت�دعى والتي تكون عموما أكثر تعقیدا تأخذ بالح

عموما ، تستخدم المحاكاة الوظائفیة للتحقق م�ن ص�حة وظ�ائف ال�دارة . Timing Simulationالمحاكاة الزمنیة تع�ابیر المنطقی�ة إن ذلك بالطبع یتطلب زمنا أقل ألن المحاكاة یمكن أن تنجز ببساطة باس�تخدام ال . كما تم تصمیمھا

.التي تحدد وظائف الدارة Functional Simulation: المحاكاة الوظائفیة -١-٦

فنحصل عل�ى ناف�ذة اإلع�دادات …Settings األمر Assignmentsإلجراء المحاكاة الوظائفیة نختار من القائمة Settings ٤١( المبینة في الشكل. (

.Settingsإلعدادات نافذة ا) : ٤١(الشكل ف��ي الج��زء األیس��ر م��ن ھ��ذه الناف��ذة فنحص��ل عل��ى الناف��ذة Simulator Settingsننق��ر عل��ى إع��دادات المح��اكي

) .٤٢(المبینة في الشكل

.Simulator Settings Windowنافذة إعدادات المحاكي ) : ٤٢(الشكل ث�م ننق�ر Functional بحیث یكون من الن�وع Simulation Modeضمن ھذه النافذة نقوم باختیار نمط المحاكاة

س�یأخذ ق�یم إش�ارت ال�دخل بالحس�بان Quartus II إن المحاكي في البرمجیة . إلغالق ھذه النافذة OKعلى الزر قبل إطالق المحاك�اة الوظائفی�ة یتوج�ب علین�ا إنش�اء . light.vwfویولد قیم إشارات الخرج الموافقة ضمن الملف

واختی��ار Processing والت��ي یمك��ن تولی��دھا م��ن خ��الل القائم��ة Required Netlistة التوص��یل المطلوب��ة الئح��بع�د ع�دة ث�وان م�ن النق�ر عل�ى األم�ر األخی�ر نحص�ل . Generate Functional Simulation Netlistاألم�ر

Page 25: VHDL Quartus II 01

٢٤

ننق�ر عل�ى .ت ج�اھزة اآلن والتي ت�دل عل�ى أن الالئح�ة المطلوب�ة ق�د أص�بح ) ٤٣(على الرسالة المبینة في الشكل ) .OKأو ( الزر موافق

.رسالة انتھاء عملیة تولید الئحة التوصیل من أجل المحاكاة الوظائفیة بنجاح ) : ٤٣(الشكل ب�النقر Processing من خالل القائم�ة Quartus II ضمن البرمجیة اآلن إطالق عملیة المحاكاة الوظائفیةنایمكن

بع��د فت��رة قص��یرة وف��ي حال��ة انتھ��اء عملی��ة . )Ctrl+Iاالختص��ار المفت��احي ( Start Simulationعل�ى األم��ر ) .٤٤(المحاكاة الوظائفیة بنجاح نحصل على الرسالة القصیرة المبینة في الشكل

.رسالة انتھاء عملیة المحاكاة الوظائفیة بنجاح ) : ٤٤(الشكل ) .٤٥(ثم نغلق نافذة المحاكي فتظھر لنا الرسالة المبینة في الشكل ) OKأو ( ننقر اآلن على الزر موافق

!!! قد تغیر light.vwfعند االنتھاء من عملیة المحاكاة وإغالق نافذة المحاكي یكون الملف ) : ٤٥(الشكل light.vwfمل�ف تغیر من قیم إشارات الخ�رج ف�ي ال الوظائفیةكما ھو واضح في ھذه الرسالة فإن عملیة المحاكاة

ل�ذلك ننق�ر ببس�اطة ) عرض�ھ بع�د التغیی�رات ( تس�تأذن بإع�ادة تحمی�ل المل�ف Quartus IIوبالتالي فإن البرمجیة فنحصل على نتائج المحاكاة الوظائفیة ضمن نافذة مح�رر ش�كل الموج�ة كم�ا ھ�و مب�ین ) Yesأو ( فوق الزر نعم

) .٤٦(في الشكل

. المحاكاة الوظائفیة للدارة المصممة نتائج) : ٤٦(الشكل

Page 26: VHDL Quartus II 01

٢٥

الذي یمث�ل fفإن نتائج المحاكاة الوظائفیة مطابقة تماما لما ھو منتظر إذ أن التابع ) ٤٦(كما ھو واضح في الشكل ) .١٢(إشارة الخرج مطابق تماما لما ورد في جدول الحقیقة المبین في الشكل

Timing Simulation: المحاكاة الزمنیة -٢-٦

بعد التأكد من صحة وظائف الدارة المص�ممة اعتم�ادا عل�ى نت�ائج المحاك�اة الوظائفی�ة یمكنن�ا اآلن القی�ام بالمحاك�اة إلج�راء . المختارة FPGAالزمنیة وذلك لكي نرى كیفیة أداء الدارة عندما یتم تنجیزھا فعلیا باستخدام شریحة الـ

فنحص�ل عل��ى الناف�ذة المبین��ة ف�ي الش��كل ..Settings األم��ر Assignmentsالمحاك�اة الزمنی��ة نخت�ار م��ن القائم�ة ف��ي الج��زء األیس�ر م��ن ھ��ذه الناف�ذة فنحص��ل عل��ى Simulator Settingsننق�ر عل��ى إع�دادات المح��اكي . ) ٤١(

بحی�ث یك�ون Simulation Modeضمن ھذه النافذة نقوم باختیار نمط المحاك�اة ) . ٤٢(النافذة المبینة في الشكل یمكنن��ا اآلن إط��الق عملی��ة المحاك��اة الزمنی��ة . إلغ��الق ھ��ذه الناف��ذة OK ث��م ننق��ر عل��ى ال��زر Timingن��وع م��ن ال

( Start Simulation ب���النقر عل���ى األم���ر Processing م���ن خ���الل القائم��ة Quartus IIض��من البرمجی���ة لزمنی�ة بنج�اح نحص�ل عل�ى بعد فت�رة قص�یرة وف�ي حال�ة انتھ�اء عملی�ة المحاك�اة ا ) . Ctrl+Iاالختصار المفتاحي

) .٤٧(الرسالة القصیرة المبینة في الشكل

.رسالة انتھاء عملیة المحاكاة الزمنیة بنجاح ) : ٤٧(الشكل كم�ا ) .٤٥(ثم نغلق نافذة المحاكي فتظھ�ر لن�ا الرس�الة المبین�ة ف�ي الش�كل ) OKأو ( ننقر اآلن على الزر موافق

light.vwf عملیة المحاكاة الزمنیة تغیر أیضا من قیم إش�ارات الخ�رج ف�ي المل�ف ھو واضح في ھذه الرسالة فإن ل�ذلك ننق�ر ببس�اطة ) عرض�ھ بع�د التغیی�رات ( تس�تأذن بإع�ادة تحمی�ل المل�ف Quartus IIوبالتالي فإن البرمجیة

كما ھو مب�ین ف�ي فنحصل على نتائج المحاكاة الزمنیة ضمن نافذة محرر شكل الموجة ) Yesأو ( فوق الزر نعم ) .٤٨(الشكل

.نتائج المحاكاة الزمنیة للدارة المصممة ) : ٤٨(الشكل وإنم�ا بع�د ت�أخیر x2 و x1 ال یتغی�ر آنی�ا عن�د تغی�ر ق�یم إش�ارات ال�دخل fأن الخرج ) ٤٨(نالحظ اآلن في الشكل

وف�ي Logic Elementي العنصر المنطقي إن ھذا التأخیر ناجم عن تأخیر االنتشار ف . ns 6زمني قدره حوالى .FPGAأسالك التوصیل داخل شریحة الـ

الموج��ودة عل��ى ھ��ذا الب��ورد FPGA ونق��وم ببرمج��ة ش��ریحة ال��ـ DE2ف��ي الجلس��ة القادم��ة س��نتعرف إل��ى الب��ورد . بشكل فعلي DE2لتتحول إلى الدارة المصممة ومن ثم نقوم باختبار أداء الدارة ضمن البورد