You are on page 1of 18

‫الفصل الثالث‬ ‫دوائر ‪FPGA/DSpace‬‬

‫الهدف‪:‬‬
‫الهدف من هذا الفصل قب ل أن نبل غ قلب األم ر ه و تق ديم ‪( FPGA‬حق ل مص فوفة البواب ة القاب ل للبرمج ة) لكي‬
‫نتعرف على هذا النوع من الدوائر وفي النهاية نقدم مساهمتهم في نمذجة المولدات الضوئية‪ ،‬ثم نقدم في الجزء الث اني من‬
‫هذا الفصل وصفا ً لدوائر ‪ ،DSpace‬وهنداتها‪ ،‬ومبادئ تشغيلها‪.‬‬

‫‪ III.1‬ما هو ‪FPGA‬؟‬

‫‪( FPGA‬مصفوفة البوابة القابلة للبرمجة ميدانياً) هي دائرة منطقية تحتوي على مجموعة من البواب ات المنطقي ة‬
‫ومقاييس ‪ D‬وشبكة من أسالك التوصيل‪ .‬في طريقة تصويرية ج داً‪ ،‬يمكنن ا أن نق ول إن ه ن وع من «لوح ة االختب ار م ع‬
‫الثقوب» التي وضعت على عدد كبير جداً من األبواب األولية (والذهب‪ ،XOR ،‬ليس) والهزازات د‪ .‬هذه األب واب غ ير‬
‫متصلة ببعضها البعض‪ ،‬وبالتالي‪ ،‬ال تؤدي الدائرة الكهربائية بأي وظيفة‪.‬‬
‫برمجة ‪ FPGA‬تتكون من إنشاء اتصاالت بين أبواب معينة ومعالم هزاز من أجل أداء وظيفة إلكترونية‬
‫(العداد‪ ،‬جهاز فك التشفير‪ ،‬إلخ)‪ .‬يتم توزيع األبواب المنطقية والمقاييس ‪ D‬بطريقة منظمة في مجموعات تسمى‬
‫‪( CLB‬كتل منطقية قابلة للتكوين)‪ .‬وبالتالي‪ ،‬فإن الوظيفة اإللكترونية‪ ،‬بن‪BB‬ا ًء على تعقي‪BB‬دها‪ ،‬س‪BB‬وف تس‪BB‬تخدم ع‪BB‬دد من‬
‫‪ ،CLBs‬و‪ CLBs‬التي سيتم توصيل كل منها سلكيًا داخليًا (تعيين)‪ ،‬ثم يتم توصيلها ببعضها البعض بواسطة أسالك‬
‫التوصيل (التوجيه)‪]31 [ .‬‬

‫ثالثا‪ 2-‬تاريخ المنظمة "صفائف البوابة القابلة للبرمجة ميدانياً"‬

‫يعود مبدأ المنطق القابل للبرمجة إلى أوائل الس تينات‪ ،‬وق د اق ترح اس ترين ه ذا المفه وم‪ .‬ولكن لم يتم تق ديم أول‬
‫إنجازات مادية في السوق حتى ثمانينيات القرن العشرين‪.‬‬
‫وق د ظه ر ه ذا الن وع من ال دوائر ألول م رة من خالل دوائ ر منطقي ة بس يطة قابل ة للبرمج ة من الن وع ‪( PAL‬منط ق‬
‫المص فوفة القابل ة للبرمج ة)‪ ،‬وال تي تمت برمجته ا ك ذاكرات من الن وع ‪ ROM‬وتس تخدم لتنفي ذ وظ ائف بس يطة قابل ة‬
‫للبرمجة مثل أجهزة فك تشفير العناوين أو وحدات التحكم في الناقل‪.‬‬
‫وم ع التط ورات في مج ال اإللكتروني ات الدقيق ة‪ ،‬ظه رت ع ائالت مختلف ة من ال دوائر القابل ة للبرمج ة‪ :‬الجه از القاب ل‬
‫للبرمجة المنطقي المعقد (‪ ،)CPLD‬ثم ‪( FPGA‬صفيفات البوابة القابلة للبرمج ة مي دانيًا)‪ ،‬ال تي ق دمتها ش ركة ‪Xilinx‬‬
‫في عام ‪ .1985‬ومع ظهور دوائر أكثر كفاءة‪ ،‬وإعادة برمجته ا كم ا ينبغي‪ ،‬تم تص نيع وتس ويق ه ذا الن وع من ال دوائر‬
‫على نطاق واسع‪ .‬في الوقت الحاضر‪،‬‬

‫‪37‬‬
‫الفصل الثالث‬ ‫دوائر ‪FPGA/DSpace‬‬

‫ومن الواضح أن السوق تهيمن عليها شركات مثل زيلينكس‪ ،‬ألترا (دوائر قابلة إلعادة البرمجة)‪ ،‬وأكتل (دوائر غير قابلة‬
‫إلعادة البرمجة)‪ .‬وتسوق هذه الشركات حاليا دوائر من نوع ‪ ،FPGA‬والتي ت وفر حالي ا م ا يع ادل عش رة ماليين ب اب‬
‫منطق قابل للبرمجة في ترددات التشغيل تصل إلى ‪ 200‬ميجا هرتز‪]31[ .‬‬

‫الثالث ‪ 3 -‬تصميم دائرة ‪( FPGA‬التصميم الذي تحتفظ به ‪)Xilinx‬‬

‫تحت وي دوائ ر ‪ FPGA‬على بني ة مص فوفة من ن وعين من الكت ل (أو الخالي ا)‪ .‬كت ل اإلدخ ال‪/‬اإلخ راج القابل ة‬
‫للبرمجة والكتل المنطقية‪ .‬يتم االنتقال من كتل ة منطقي ة إلى أخ رى بواس طة توجي ه قاب ل للبرمج ة‪ .‬كم ا تتض من بعض‬
‫دوائر ‪ FPGA‬ذاكرات ‪ RAM‬ومضاعفات وحتى تقنديل المعالج‪]32[]31[ .‬‬
‫الشكل الثالث ‪ 1 -‬الهيكل الداخلي لرابطة محترفي الجولف المحترفين‬
‫في ما يلي‪ ،‬سنصف البنية التي يستخدمها ‪ ،Xilinx‬ألنه في دوائر ‪ Xilinx‬سننفذ برنامجنا‪ .‬إن البنية التي‬
‫اختارها ‪ Xilinx‬هي في شكل طبقتين‪:‬‬
‫طبقة تسمى الدائرة القابلة للتكوين‪،‬‬ ‫‪‬‬
‫طبقة شبكة ذاكرة الوصول للقراءة الثابتة (‪.)SRAM‬‬ ‫‪‬‬
‫ثالثا‪ 1-3-‬دائرة قابلة للتهيئة‬

‫تتكون طبقة "الدائرة القابلة للتهيئة" المزعومة من‪:‬‬

‫مصفوفة من الكتل المنطقية القابلة للتهيئة (‪ )CLB‬ألداء وظائف وحدات التركيب والتتابع (الشكل الثالث ‪.)2 -‬‬ ‫‪‬‬
‫وفي كل ما يتعلق بهذه الكتل المنطقية القابلة للتكوين‪ ،‬توجد كتل إدخال‪/‬إخ راج (‪ )IOB‬تتمث ل دوره ا في إدارة‬ ‫‪‬‬
‫المدخالت‪-‬اإلخراج مما يجعل الواجهة مع الوحدات الخارجية (الشكل الثالث‪.)1-‬‬

‫‪38‬‬
‫الفصل الثالث‬ ‫دوائر ‪FPGA/DSpace‬‬

‫الشكل الثالث ‪ 2 -‬القوالب القابلة للبرمجة والتداخل‬

‫‪ III.3-2‬شبكة ذاكرة ‪SRAM‬‬

‫اف‬
‫ستتألف برمجة دائرة ‪ ،FPGA‬المعروفة أيضًا باسم ‪( LCA‬مصفوفات الخاليا المنطقية)‪ ،‬من تطبيق جه د ك ٍ‬
‫على شبكة ترانزستور تأثير مجال معين يُستخدم لتوصيل عناص ر ‪ CLB‬و‪ ،IOB‬ولتنفي ذ الوظ ائف المطلوب ة ولض مان‬
‫نشر اإلشارة‪ .‬ويتم تخزين هذه اإلمكانات ببساطة في شبكة ذاكرة ‪( SRAM‬الشكل الثالث ‪]32[ .)3 -‬‬
‫الشكل الثالث ‪ 3 -‬حالة شبكة ذاكرة الوصول العشوائي ( ‪)SRAM‬‬
‫برمجة دائرة ‪ FPGA‬متطايرة‪ ،‬لذا يتم تخزين تكوين الدائرة على طبق ة ش بكة ‪ SRAM‬ويتم تخزينه ا في ذاك رة‬
‫‪ ROM‬خارجي ة‪ .‬يس مح جه از داخلي لك ل تش غيل بتحمي ل ذاك رة ‪ SRAM‬الداخلي ة (الش كل الث الث ‪ )3 -‬من ذاك رة‬
‫‪ .ROM‬ومن ثم فمن السهل تصور الدائرة نفسها التي يمكن تشغيلها على التوالي باستخدام ذاكرة ق راءة فق ط مختلف ة الن‬
‫برمجتها الداخلية ليست نهائية أبدا‪ .‬وهنا نرى كل الفوائد التي يمكن جنيها من هذه المرونة‪ ،‬وخاصة عندما‬

‫‪39‬‬
‫الفصل الثالث‬ ‫دوائر ‪FPGA/DSpace‬‬

‫مرحلة التطوير‪ .‬إن الخطأ ليس قاتال‪ ،‬ولكن من الممكن إصالحه بسهولة‪.‬‬
‫يتم تطوير التكوين في خطوتين‪ :‬تتمثل الخطوة األولى من البرنامج المحض في الرسم ثم محاكاة ال دائرة المنتهي ة‬
‫بشكل منطقي‪ .‬في الخطوة الثانية‪ ،‬سيتم إجراء محاكاة لألجهزة عن طريق تك وين دائ رة حقيقي ة‪ .‬ومن الممكن بع د ذل ك‬
‫التحقق مما إذا كانت العملية الفعلية تتوافق مع توقعات المصمم‪ ،‬وإذا لزم األم ر تحدي د الح االت الش اذة المرتبط ة بش كل‬
‫عام بأوقات النقل الفعلية بشكل مختلف قليالً عن تلك المفترضة أثناء محاكاة البرنامج‪ ،‬فإن هذا قد يؤدي إلى ح االت غ ير‬
‫مستقرة أو حتى خاطئة‪.‬‬

‫الشكل الثالث‪ 4 -‬تركيب خلية ذاكرة ‪SRAM‬‬


‫تستخدم دوائر ‪ Xilinx‬في ‪ FPGA‬نوعين أساسيين من الخاليا‪ :‬خاليا اإلدخال‪/‬اإلخراج التي تس مى ‪( IOB‬كت ل‬
‫إخراج اإلدخال)‪ ،‬والخاليا المنطقية التي تسمى ‪( CLBs‬كتل منطقية قابلة للتك وين)‪ .‬يتم توص يل ه ذه الخالي ا المختلف ة‬
‫بواسطة شبكة قابلة للتكوين من االتصاالت البينية‪ .‬ويرد أدناه وصف لكل مكون من هذه المكونات‪]32[]31[ .‬‬

‫‪( III-1-CLB‬الكتلة المنطقية القابلة للتكوين)‬

‫وهي الوحدة األساسية للكتلة المنطقية التي توفر عناصر المنفعة للمنطق القتالي والمنطق المتزامن‪ ،‬بما في ذلك‬
‫عناصر التخزين األساسية‪ :‬المخازن المؤقتة المكونة من ‪ 3‬حاالت والتي يتم ربطها بكل ‪ .CLB‬تتضمن ‪ CLBs‬أربعة‬
‫أجزاء متطابقة تسمى ‪( Slice‬الشريحة) ومخازن التخزين المؤقت ثالثي الحالة (‪ .)buffer‬الشكل الثالث ‪ . 5 -‬كل‬
‫السيليكا مكافئة وتحتوي على‪:‬‬
‫عنصران للتخزين‪.‬‬ ‫•‬
‫أبواب المنطق الحسابي‪.‬‬ ‫•‬
‫مضاعفة اإلرسال الكبيرة‪.‬‬ ‫•‬
‫منطق ضبط النفس السريع‪.‬‬ ‫•‬
‫سلسلة شالل أفقية (باب أو)‪.‬‬ ‫•‬

‫‪40‬‬
‫الفصل الثالث‬ ‫دوائر ‪FPGA/DSpace‬‬

‫الشكل الثالث ‪ 5 -‬كتلة ‪CLB‬‬


‫الكتل المنطقية القابلة للتهيئة هي محددات أداء دائرة ‪( FPGA‬الشكل الثالث ‪ .)5 -‬ك ل ‪ CLB‬ه و كتل ة منطقي ة‬
‫قتالية تتكون من أربعة وحدات توليد وظ ائف (‪ )LUTs‬ووح دة تخ زين‪/‬مزامن ة تتك ون من مق اييس ‪ .D‬وتس مح أربع ة‬
‫مدخالت أخرى بإجراء اتصاالت داخلية بين العناصر المختلفة في ‪.CLB‬‬
‫= ‪ 16‬تركيبة مختلفة من هذه اإلدخاالت‪.‬‬
‫إن ‪( LUT‬جدول البحث) هو عنصر يحتوي على أربعة إدخاالت‪ ،‬لذا يوجد ‪24‬‬
‫والفكرة هي تخزين اإلخراج المطابق لكل مجموعة إدخ ال في ج دول ص غير ‪ 16‬بت‪ ،‬وبالت الي يص بح ‪ LUT‬كتل ة مول د وظيف ة ص غيرة‪ .‬يوض ح الش كل‬

‫الثالث‪ 6-‬المخطط المبسط لـ ‪ CLB‬لعائلة ‪.Xilinx XC4000‬‬


‫الشكل الثالث‪ 6 -‬مخطط خلية منطقية ( ‪)Xilinx XC4000‬‬

‫‪41‬‬
‫الفصل الثالث‬ ‫دوائر ‪FPGA/DSpace‬‬

‫ثالثا‪-2-2-‬باء (كتلة إخراج المدخالت)‬


‫وهي الواجهة بين أطراف الدائرة و‪ .CLBs‬يوفر جهاز التوجيه ‪ Versa Ring‬الموارد لتوصيل ‪ CLBs‬بـ‬
‫‪ .Boos‬وبهذا يصبح بوسعنا تعديل النظام الذي تم تنفيذه على رابطة محترفي الجولف المحترفين (‪ )FPGA‬من دون‬
‫التدخل في تخصيص الحدود‪ .‬تعتبر هذه الميزة مهمة إذا أردنا تطوير إصدارات جديدة من منتج مع الحفاظ على التوافق‬
‫على مستوى المبيت‪.‬‬

‫الشكل الثالث‪ 7 -‬مثال على المواد البيولوجية‬


‫وهي موجودة في جميع أنحاء دائرة ‪ .FPGA‬تتحكم كل مجموعة ‪ IOB‬في أحد أسنان المكون ويمكن تعيينها كإدخال أو‬
‫إخراج أو إشارة ثنائية االتجاه أو غير مستخدمة (حالة المعاوقة العالية)‪ .‬ويبين الشكل الثالث ‪ 7 -‬هيكل هذه الكتل‪.‬‬

‫الشكل الثالث‪ 8 -‬تخطيط كتلة اإلدخال‪/‬اإلخراج‪)IOB ( B‬‬

‫أ) تكوين اإلدخال‬

‫أوالً‪ ،‬تمر إشارة اإلدخال ع بر مخ زن م ؤقت‪ ،‬وال ذي يمكن ه اكتش اف ح دود ‪ TTL‬أو ‪ CMOS‬وفقً ا لبرمجت ه‪.‬‬
‫يمكن توجيهها مباشرة إلى‬
‫‪42‬‬
‫الفصل الثالث‬ ‫دوائر ‪FPGA/DSpace‬‬

‫مدخل مباشر لمنطق ‪ FPGA‬أو مدخل مسور‪ .‬يتم إجراء هذه المزامنة باستخدام تبديل النوع د‪ ،‬يمكن تغيير الحال ة على‬
‫جبهة صاعدة أو تنازلية‪ .‬باإلضافة إلى ذلك‪ ،‬يمكن تأخير هذا اإلدخال بضع نانوثانية لتعويض التأخير الذي تأخذه إش ارة‬
‫الساعة عند مرورها عبر مضخم الصوت‪ .‬يتم اختيار تكوين اإلدخ ال من خالل مض اعفة اإلرس ال (مض اعفة اإلرس ال‬
‫الذي يتم التحكم فيه بواسطة البرنامج)‪ .‬تتحكم وحدة البت الموجودة في صندوق الذاكرة في الثانية‪]31[ .‬‬

‫ب) تكوين اإلخراج‬

‫ونميز بين االحتماالت التالية‪:‬‬


‫ما إذا كانت اإلشارة معكوسة أم ال قبل تطبيقها على ‪IOB‬؛‬ ‫‪‬‬
‫تزامن اإلشارة على جبهات الساعة الصاعدة أو المنحدرين؛‬ ‫‪‬‬
‫إعداد "سحب" أو "سحب" للحد من استهالك مدخالت اإلنتاج غير المستخدمة؛‬ ‫‪‬‬
‫اإلشارات في منطق ثالثي الواليات أو الدولتين‪ .‬التحكم في المعاوقة العالية‬ ‫‪‬‬
‫ويتم التحكم في تحقيق الخطوط ثنائية االتجاه بواسطة إشارة األمر "‪( "Out enable‬تمكين الخروج)‪ ،‬والتي‬
‫يمكن عكسها أو عدم عكسها‪.‬‬
‫يمكن لكل إخراج أن يوفر التيار الذي يبلغ ‪ 12‬مللي أمبير‪ .‬وبالتالي‪ ،‬تسمح ك ل ه ذه االحتم االت للمص مم بتوص يل بني ة‬
‫بأجهزة خارجية على أفضل نحو‪.‬‬

‫ثالثا‪ 5-‬برمجة وتكوين دوائر ‪FPGA‬‬

‫ويلخص الشكل الثالث ‪ 9 -‬مختلف خطوات البرمجة في المنظمة‪ .‬يقوم برنامج ت ركيب أدوات ‪ CAD‬في البداي ة‬
‫بإنشاء ‪ Netlist‬الذي يصف توصيل البنية‪ .‬ثم تق وم أداة توجي ه الموض ع بوض ع كاف ة المكون ات بش كل مث الي وإج راء‬
‫التوجيه بين الخاليا المنطقية المختلف ة‪ .‬تق وم هات ان الخطوت ان بإنش اء مل ف تك وين لتنزيل ه إلى ذاك رة تك وين ‪.FPGA‬‬
‫يسمى هذا الملف بـ ‪ .bitstream‬يمكن تحميله مباشرة إلى ‪ FPGA‬من كمبيوتر مضيف‪]32[ .‬‬

‫‪43‬‬
‫الفصل الثالث‬ ‫دوائر ‪FPGA/DSpace‬‬
‫الشكل الثالث ‪ 9 -‬خطوات مختلفة في برمجة رابطة محترفي الجولف المحترفين ( ‪)FPGA‬‬

‫ثالثا‪ 6-‬مختلف مجاالت تطبيق الرابطة‬

‫لقد أحدثت رابطة محترفي الجولف (‪ )FPGA‬ثورة في مجاالت معينة من التحكم الرقمي واستخدمت بشكل‬
‫متزايد لدمج البنى الرقمية المعقدة‪ .‬وأصبحت أكثر الدوائر شعبية في مجال إنشاء الدوائر الرقمية وكتابتها بعد ظهورها‬
‫في السوق في عام ‪ . 1984‬والمفتاح إلى نجاح هذه البرامج يتلخص في الجانب البرنامجي‪ .‬وتشمل استخداماتهم الحالية‬
‫كال من المجالين المدني والعسكري‪ .‬وتشمل هذه التطبيقات‪ :‬الكمبيوتر‪ :‬األجهزة المتخصصة‪.‬‬
‫الماكينات الصناعية‪ :‬التحكم في الماكينات‪.‬‬
‫االتصاالت السلكية والالسلكية‪ :‬معالجة الصور‪ ،‬التصفية‪.‬‬
‫أجهزة القياس‪ :‬المعدات الطبية‪ ،‬تغيير خطوط طوطم‪.‬‬
‫النقل‪ :‬السيطرة على الطائرات والمترو‪.‬‬
‫الفضاء الجوي‪ :‬السواتل‪.‬‬
‫الجيش ‪ :‬الرادار أو االتصاالت المحمية أو االكتشاف أو المراقبة‪ .‬غير ذلك‬

‫‪ III.7‬لغة وصف ‪VHDL‬‬

‫‪ III.. 7.1‬نبذة تاريخية‬

‫لغة وصف األجهزة ‪( VHDL - HSIC‬دائرة متكاملة عالية السرعة للغاية)‪ ،‬طلبت وزارة ال دفاع األمريكي ة (‬
‫‪ )DOD‬وصف الدوائر المعقدة‪ ،‬من أجل تأسيس لغة مشتركة مع مورديه ا‪ .‬وهي لغ ة‪ ،‬معي ار ‪ IEEE 1076‬من ذ ع ام‬
‫‪ ،1987‬والتي كان من المفترض أن تضمن إمكانية النقل‬

‫‪44‬‬
‫الفصل الثالث‬ ‫دوائر ‪FPGA/DSpace‬‬

‫كود ألدوات العمل المختلفة (محاكاة‪ ،‬تركيب لجميع الدوائر والشركات المصنعة)‪.‬‬
‫ولكن من المؤسف أن هذه ليست الحال في الوقت الحالي‪ ،‬على الرغم من أن العديد من البائعين يميلون إلى‬
‫االقتراب من ‪ VHDL‬التي يستخدمها ‪.Synopsis‬‬
‫وقد تم تحديث لغة ‪ VHDL‬في عام ‪ )IEEE 1164( 1993‬وفي عام ‪ 1996‬تم توحيد توليف ‪ VHDL‬بمعايير‬
‫‪]34[]33[ .1606.3‬‬

‫ثالثا ‪ 2 -‬هيكل وصف ‪ VHDL‬بسيط‬

‫يتكون الهيكل النموذجي لوصف ‪ VHDL‬من جزأين ال ينفصالن هما‪ :‬الكيان والبنية‪.‬‬

‫الكيان‬ ‫‪‬‬
‫ويُنظر إلى الكيان (الكيان) على أنه صندوق أسود يحتوي على مدخالت ومخرجات تتميز بالمعلمات‪ .‬وهو يمثل طريقة‬
‫عرض خارجية للوصف‪.‬‬

‫المعمار‬ ‫‪‬‬
‫تحتوي البنية (البنية) على تعليمات ‪ VHDL‬لوصف وتنفيذ العملية المتوقعة‪ .‬وهو يمثل الهيكل الداخلي للوصف‪.‬‬
‫وتُسمى الكيانات والبنى بوحدات التصميم األساسية والثانوية‪.‬‬
‫يقدم زوج الكيان‪/‬الهيكل وصفا ً كامالً لعنصر ما؛ ويطلق على هذا الثنائي اسم الطراز‪.‬‬

‫ثالثا‪ 3-7-‬إعالن المكتبة‬

‫أي وصف ‪ VHDL‬يُستخدم في مكتبات االحتياجات التوليفية‪ .‬معهد ‪IEEE‬‬


‫وقد وضعت معايير موحدة لها‪ ،‬وبشكل أكثر تحديدا مكتبة ‪ .IEEE1164‬فهي تحتوي على‬
‫و أقل من البرامج‬ ‫الوظائف‬ ‫من‬ ‫األنواع من اإلشارات إلكتروني‪،‬‬ ‫من‬ ‫التعريفات‬
‫إلجراء العمليات الحسابية والمنطقية‪ ،‬وما إلى ذلك‪ .‬يسمح توجيه االستخدام‬
‫حدد المكتبات التي تريد استخدامها‪.‬‬
‫مثال‪Library IEEE :‬؛‬
‫استخدم ‪IEEE.STD_POCLE_1164.ALL‬؛‬
‫استخدم ‪IEEE.numeric_STD.ALL‬؛‬
‫استخدم ‪IEEE.STD_POCUAL_uns‬الموقعة‪ALL.‬؛‬

‫ثالثا ‪ -‬تقرير مكتب تقديم التقارير عن الكيانات وعن المدخالت‪/‬النواتج‬

‫تحدد هذه العملية اسم وصف ‪ VHDL‬باإلضافة إلى المدخالت والمخرجات المستخدمة‪ ،‬والتعليمات التي تعرّف هذه‬
‫المدخالت هي المنفذ‪:‬‬
‫‪45‬‬
‫الفصل الثالث‬ ‫دوائر ‪FPGA/DSpace‬‬

‫مثال‪ :‬الكيان آنا هو‬


‫المنفذ (‪ :DEC‬في )‪std_logic_vector(3 downto 0‬؛‬
‫)‪seg: out std_logic_vector(6 downto 0‬؛‬
‫إنهاء آنا؛‬
‫يتكون اسم اإلشارة من سلسلة‪ ،‬يكون الحرف األول منها حرفً ا‪ .‬ال يتحس س ‪ VHDL‬حال ة األح رف‪ ،‬مم ا يع ني أن ه ال‬
‫يميز بين األحرف الكبيرة واألحرف الصغيرة‪.‬‬
‫يمكن تعيين اإلشارة كإدخال (‪ )in‬أو إخراج (‪ )out‬أو إدخال‪/‬إخراج (‪ )inout‬أو مخزن م ؤقت‪ ،‬أي أنه‪BB‬ا إخ‪BB‬راج ولكن‬
‫يمكن استخدامها كإدخال داخل الوص‪BB‬ف‪ .‬يتم تع‪BB‬يين رم‪BB‬وز ‪( I/O‬اإلدخ‪BB‬ال‪/‬اإلخ‪BB‬راج) من خالل تعري‪BB‬ف س‪BB‬مات إض‪BB‬افية‬
‫تعتمد على برنامج التطوير المستخدم‪.‬‬

‫ثالثا‪-----------------------‬‬

‫يستخدم ‪ VHDL‬نمطين للتشغيل‪ :‬وضع ال تركيب (أو الم تزامن) والوض ع التسلس لي‪ .‬يتم اس تخدام ك ل وض ع من ه ذه‬
‫األوضاع في حاالت معينة‪]34[]33[ .‬‬

‫ثالثا‪ 1-5-‬طريقة القتال‬


‫ وت ؤثر على إش ارات اإلخ راج في نفس‬VHDL ‫ يتم تق ييم كاف ة التعليم ات في وص ف‬،)‫في النمط القتالي (أو الم تزامن‬
‫ وه ذا ه و الف ارق‬،‫ والواقع أن الوصف يولد هياكل إلكتروني ة‬.‫ لذا فإن الترتيب الذي يتم كتابة التعليمات به ال يهم‬،‫الوقت‬
.‫ ولغة الكمبيوتر الكالسيكية‬VHDL ‫الكبير بين وصف‬
Dans un système à microprocesseur, les instructions sont exécutées les unes à la suite des
autres. Avec VHDL il faut essayer de penser à la structure qui va être générée par le
.synthétiseur pour écrire une bonne description, cela n’est pas toujours évident

III.7.5.2 Le mode séquentiel

Le mode séquentiel utilise les process dans lesquels le temps est une variable
essentielle. Un process est une partie de la description d’un circuit dans laquelle les
instructions sont exécutées séquentiellement, c’est-à-dire les unes à la suite des autres. Il
permet d’effectuer des opérations sur les signaux en utilisant les instructions standard de la
programmation structurée comme dans les systèmes à microprocesseurs. Dans le mode
: séquentiel, on distingue

46
Chapitre III Les circuits FPGA/DSPACE

Le mode séquentiel asynchrone, dans lequel les changements d'état des sorties 
peuvent se produire à des instants difficilement prédictibles (retards formés par le
,basculement d'un nombre souvent inconnu de fonctions)

Le mode séquentiel synchrone, dans lequel les changements d'état des sorties se 
produisent tous à des instants quasiment connus (un temps de retard après un front actif de
.l'horloge)

III.8. Etapes nécessaires au développement d’un projet sur FPGA

Le développement en VHDL nécessite l’utilisation de deux outils : le simulateur et le


synthétiseur. Le premier va nous permettre de simuler notre description VHDL avec un
fichier de simulation appelé « test-bench » ; cet outil interprète directement le langage
VHDL et il comprend l'ensemble du langage. L’objectif du synthétiseur est très différent : il
doit traduire le comportement décrit en VHDL en fonctions logiques de bases, celles-ci
dépendent de la technologie choisie ; cette étape est nommée « synthèse ». L'intégration
finale dans le circuit cible est réalisée par l'outil de placement et routage. Celui-ci est fourni
.par le fabricant de la technologie choisie
.Avec les outils actuels, il est possible de disposer de fichiers VHDL à chaque étape
Le même fichier de simulation (test-bench) est ainsi utilisable pour vérifier le
fonctionnement de la description à chaque étape de la procédure de développement. La
figure III.10 donne les différentes étapes nécessaires au développement d’un projet sur
circuit FPGA [35]
Diagramme Entrée Entrée
d’états syntaxique schématiqu

Vérification des Simulation


erreurs comportementale

Synthèse Simulation après


synthèse

Optimisation Simulation
placement et routage temporelle

Circuit
FPGA cible

Figure III.10 Les étapes de développement d’un projet sur circuit FPGA

47
Chapitre III Les circuits FPGA/DSPACE

III.8.1 Saisie du texte VHDL

La saisie du texte VHDL se fait sur le logiciel « ISE Xilinx Project Navigator ». Ce
logiciel propose une palette d’outils permettant d’effectuer toutes les étapes nécessaires au
développement d’un projet sur circuit FPGA. Il possède également des outils permettant de
mettre au point une entrée schématique ou de créer des diagrammes d’état, qui peuvent être
.utilisés comme entrée au lieu du texte VHDL

III.8.2 Vérification des erreurs

Cette étape est effectuée en appuyant sur le bouton « check syntax ». Elle permet de
vérifier les erreurs (errors) de syntaxe du texte VHDL et d’afficher les différentes alarmes «
warnings » liées au programme, par exemple des signaux déclarés mais non utilisés dans le
programme. S’il y’a des erreurs dans le programme, il ne peut pas être synthétisé, mais la
présence d’alarmes n’empêche pas de poursuivre normalement les autres étapes du
.développement
Cette étape permet donc de valider la syntaxe du programme et de générer la « netlist », qui
.est un fichier contenant la description de l’application sous forme d’équations logiques

III.8.3 Synthèse

La synthèse permet de réaliser l’implémentation physique d’un projet. Le synthétiseur


a pour rôle de convertir le projet, en fonction du type du circuit FPGA cible utilisé, en
portes logiques et bascules de base. L’outil « View RTL Schematic » permet de visualiser
.les schémas électroniques équivalents générés par le synthétiseur
De plus, le synthétiseur permet à l’utilisateur d’imposer des contraintes de
technologie (User constraints) : par exemple fixer la vitesse de fonctionnement (Create
Timing Constraints), délimiter la zone du circuit FPGA dans laquelle le routage doit se
faire (Create Area constraints) ou affecter les broches d’entrées/sorties (Assign Package
.Pins)

III.8.4 Simulation

Le simulateur utilisé est le « ModelSim Simulator ». La simulation permet de vérifier


.le comportement d’un design avant ou après implémentation dans le composant cible
Elle représente une étape essentielle qui nous fera gagner du temps lors de la mise au point
sur la carte. Il faut juste noter qu’un projet peut être simulé même s’il n’est pas
.synthétisable

48
Chapitre III Les circuits FPGA/DSPACE

III.9 Modélisation d’un générateur photovoltaïque dans un


: environnement ISE
Comme nous avons vue que Le VHDL est un langage de description matérielle des
circuits ou des systèmes numériques avec un tel langage la modélisation mathématique
d’un générateur photovoltaïque qui comporte une fonction exponentiel la programmation
de cette fonction est très difficile et complexe avec une bibliothèque de composant qui
contient sauf des éléments permettant de réaliser des opérations arithmétique et logique
(porte logique OU, ET des bascule D, accumulateurs, compteur, registre…..) même la
modélisation analogique avec des composant électronique (diode , résistance,…..) n’est pas
possible. Pour cette raison nous avons opté comme solution l’utilisation d’un autre logiciel
qui permet la modélisation mathématique et analogique du générateur photovoltaïque tel
.que le MATLAB
Les outils logiciels tels que MATLAB cherchent à avancer leur cycle de conception
jusqu’au niveau RTL. Le langage VHDL (VHSIC Hardware Description Language) étant
incontournable, des travaux de recherche ont été développés pour que les outils de
MATLAB et Simulink [35] permettent de générer des fichiers VHDL. La première
application apparue pour répondre à cet objectif est la conception de filtres numériques. A
partir des coefficients simulés et optimisés sous MATLAB, une netlist VHDL est générée.
Cette démarche consistant à fournir des fichiers VHDL à partir des modèles simulink (.mdl)
. est généralisée grâce à la routine de conversion présentée Figure III.11
La base de conversion correspond aux éléments du système défini en . mdl sous
Simulink. Seuls les éléments numériques seront pris en compte pour la conversion. Ces

49
Chapitre III Les circuits FPGA/DSPACE

fichiers sont créés en terme de code VHDL c'est-à-dire avec des architectures et des entités.
Le code est alors optimisé pour prédéfinir une architecture. Cette architecture choisie, est
.alors vérifiée par une simulation numérique
Lorsque la phase vérification a donné les résultats escomptés, nous pouvons synthétiser le
code VHDL. La synthèse permettra d’avoir une netlist pour le placement/routage. C’est à
partir de cette étape que l’on peut choisir la cible de production (FPGA ou ASIC). [35]

III.10 Exemple d’utilisation de filtre pour la création d’un fichier VHDL


d’une caractéristique I(V)

L’utilisation du filtre numérique permet de numériser la caractéristique I(V) d’un


générateur photovoltaïque simulé sous Matlab/Simulink et de crée un fichier .vhdl qu’on
l’utilise pour la création d’une base de donné enregistrée dans une mémoire du FPGA ; et
.‫״‬ModelSim‫ ״‬utiliser pour la simulation sous l’environnement ‫״‬testbench‫ ״‬un fichier
Impulse Response

3.5

2.5
Filter #1: Quantized
Filter #1: Reference
2

1.5

50 40 30 20 10 0
Samples

III.11 Fichier .vhdl d’une caractéristique I(V)


La figure suivante représente le fichier .vhdl d’une caractéristique I(V) traité sous
l’environnement Xilinx ISE 8.1

50
Chapitre III Les circuits FPGA/DSPACE

Après la vérification des erreurs on passe à l’étape de synthèse. Le synthétiseur interprète le


langage vhdl en fonction logique de base (RTL). La figure suivante représente la vue
externe et interne (RTL) du bloc mémoire

III.12 Simulation sous l’environnement ModelSim


Le fichier testbench permet la simulation sous l’environnement ModelSim de la
caractéristique I(V) et P(V) d’un générateur photovoltaïque pour une température et
: ensoleillement fixe. La simulation de ce fichier est donnée sur la figure suivante
51
Chapitre III Les circuits FPGA/DSPACE

Après les étapes de vérifications des erreurs, La synthèse et la simulation on valide


notre application sur le circuit FPGA qui sert à la création d’une base de donné contient les
différents points de fonctionnement d’un GPV sous des conditions de fonctionnement
.climatique prédéfinis
L’objectif de génération de la base de donné est de disposé des points de référence
(Modèle de référence) qui doit être exploitée par la suite pour la génération d’un signale de
commande par FPGA pour contrôlé le convertisseur DC/DC sous le principe de la
.modulation de largeur d’impulsion PWM
Donc le simulateur photovoltaïque développe est composé d’un convertisseur DC/DC
de type buck commandé par une carte FPGA qui va générer des impulsions de commande
d’un interrupteur (MOSFET ou IGBT) après une comparaison entre la valeur de courant
.mésusé est celle qui est enregistré
.Figure III.12 résume le principe simulateur photovoltaïque développé
Vérification

FPGA
D/A
LUT

D/A Ic
PWM

Vin Vc Charge

L’inconvénient major de cette méthode est que le simulateur développé n’est pas
flexible aux changements des conditions de fonctionnement climatique (changement de
température et l’irradiation solaire). les bases de donné enregistré sont des points de
fonctionnement d’un générateur photovoltaïque simuler pour des valeurs de température et
ensoleillement fixé au paravent par l’opérateur donc toute variation en temps de
température ou de gisement solaire par l’utilisateur est n’est pas possible est ce la ne fait pas
objet de notre étude pour cet raison nous avons préféré d’exploité un autre moyen pour
réaliser le simulateur tel que le dSPACE vu sa disponibilité au niveau de labo LAS, et la
possibilité de modélisation des générateur photovoltaïque sous MATLAB

52
Chapitre III Les circuits FPGA/DSPACE

III.13 Les Circuits dSPACE


Plusieurs compagnies des domaines de la robotique de l’énergie électrique utilisent
les techniques de simulation et de prototypage afin de développer leurs produits plus
.rapidement et plus efficacement en évitant le processus couteux du prototypage physique
Les systèmes de dSPACE constituent une plate-forme matérielle et logicielle très
répandu dans les domaines cités ci-dessus. Une caractéristique intéressante de ces systèmes
est qu’ils permettent de développer un schéma de simulation ou de commande dans
l’environnement Simulink, de compiler le schéma pour l’exécuter sur des cartes qui
contiennent des processeur DSP, et d’exécuter les schémas de commande en temps réel en
.interagissant avec un système physique
III.13.1 Historique
Dspace est une société crée en 1988 à Paderborn en Allemagne. Elle produit et
commercialise des solutions de développement, de test et de mises au point pour systèmes
de contrôle et système embarqués. Son but est de proposer des solutions combinant des
.composants matériels et logiciels, simples à utiliser
L’entreprise fonde en 1991 près de détroit, Michigan, sa filiale dSPACE Inc, qui
couvre les Etats-Unis et la Canada. En 1999 et 2001, dSPACE ouvre deux centre
d’ingénierie à Stuttgart et Munich afin d’accompagner ses client dans l’utilisation de ses
outils. Depuis novembre 2001, dSPACE a ouvert deux filiales européennes au Royaume-
Uni et en France. [36]
.Ses solutions sont utilisées au Japon, en Australie, en Chine aux Etats –Uni….etc

: III.13.2 L’Offre dSPACE : dSPACE propose des systèmes matériels et des logiciels

a) Carte et systèmes
Cette société développe des systèmes mono- carte et des systèmes modulaires, ainsi
.qu’un système de développement embarquable sur véhicule

Les systèmes mono-cartes possèdent des processeurs rapides, et s’intègrent 


directement dans un PC via les ports ISA ou PCI
Les systèmes modulaires offrent une plate –forme haute performance pour répondre 
toutes les exigences. Ces systèmes peuvent s’intégrer dans un PC ou dans des à
.boitiers externes
b) Logiciels
: Ce qui concerne la partie Software, dSPACE propose six logiciels principaux

53
Chapitre III Les circuits FPGA/DSPACE

Les logiciels d’expérimentation, tel que ControlDesk qui permet la gestion, 


l’instrumentation et l’automatisation des expériences et applications qui tournent sur son
.matériel ou le pilotage des modèle Simulink

Les logiciels d’implémentation : Real-Time Interface (RTI) qui est une interface 
entre un système développé sous Simulink et la carte dSPACE. Il se charge de toutes les
.taches d’implémentation

Les logiciels de génération de code C : TargetLink génèrent le code C à partir d’une 


.description graphique faite sous Simulink
.Le logiciel de visualisation et d’animation en temps réel : MotionDesk 
Le logiciel de test AutomationDesk : Ce nouvel outil permet de faciliter les tests 
.automatisés

Le logiciel de calibration CalDesk : Ce logiciel permet de réaliser l’étape finale du 


développement de calculateur. Il permet d’acquérir des données depuis un calculateur ou des
systèmes de mesures externes, et de modifier les paramètres du calculateur pendant les
.périodes de mise au point

III.13.3 Composition de la carte DS1104

DS 1104 est un système mono-carte contenant deux processeurs (maitre, esclave) des
contrôleurs d’interruption, des mémoires, des temporisateur et des interfaces. L’illustration
suivante donne une vue générale de l’architecture du DS1104. [36]
PC
PCI Bus

PWM
PCI Interface
1x 3 phase
-MB SD 32 Intrrupt Controller TMS320 F 4x1 phase
RAM Timers DSP 240
Capture 4
Memory Contoller Inputs
MD flash
Dual Port
memory Power Pc
RAM Serial
Peripheral
Interface
bit I/O Bus -24
Digital I/O
bits 14
AD C DA C Incr.Encoder Digital I/O Serial Interface
Slave DSP I/O
4ch. 16-bit ‫ قنوات‬8 channels 2 bits 20 /RS232/RS485
features
4ch. 12-bit ‫ بت‬16 RS422
DS 1104
Master PPC I/O features
Figure III.11 Vue générale de l’architecture du DS1104

54
Chapitre III Les circuits FPGA/DSPACE

III.14 Processeur maitre PPC(Master)


: L’unité principale de traitement de DS1104, Motorola MPC8240 se compose de
Un noyau PowerPC 603e (maitre PPC) 
.Un controleur d’interruption 
.Controleur synchrone de la mémoire DRAM 
.Plusieurs temporisateurs 
.Une interface PCI (5V, 32bits, 33MHz) 
III.14.1 Dispositifs d’entrées/sorties du maitre PPC

Le maitre PPC contrôle les unités entrée/sortie suivantes


Unité de ADC (Analog Digital Converter) )a
Unité DAC (Digital Analog Converter) )b
.Unité d’entrée/ sortie numérique )c
Interface d’encodeur incrémental )d
Interface serie )e

III.15 Sous ensemble du processeur DSP

: Les sous ensemble de DSP se compose de


.Un DSP (Digital Signal Processor) processeur TMS320F240 de texas Instruments 
: Des dispositifs d’entrée /sorties de l’esclave DSP qui sont 
Unité d’entrée/sortie numérique de synchronisation qui permet de générer et 
.mesurer des signaux PWM et des signaux carrés
.Unité d’entée/sortie numérique 
.Interface Périphérique Série (SPI : Serial Peripheral Interface) 
: Conclusion
Dans la première partie de ce chapitre nous avons exposé les circuits FPGA leurs
architecture, leurs principe de fonctionnement, leurs contribution à la modélisation des
générateur photovoltaïque qui limité à la mémorisation de quelque caractéristique utilisé
pour le contrôle, puis dans la seconde partie nous avons présenté un autre type des circuits
numérique qui est le dSPACE qui facilite la tache de la modélisation des GPV grâce à son
logiciel, et a base de ce circuit nous avons contrôlé et réalisé notre simulateur utilisant un
convertisseur DC/DC qui est l’objectif du prochain chapitre suivant

55

You might also like