fpga arabic
TRANSCRIPT
عن عامة فكرةللبرمجة القابلة االلكترونية الشرائح
( Programmable Logic Devices ) مقدمة-1الشرائح أ- -2 عن عامة فكرة تقديم هو المقال هذا من الغرض
وكيفية الداخلي تركيبها على والتعرف للبرمجة القابلة االلكترونيةالدوائر تصميم في استخدامها كيفية على نتعرف حتى برمجتها
االلكترونية المقال؟ ب- هذا قراءة من المستفيد من
لمهندس مفيد المقال تصميم يهذا ولهواة الجدد االلكترونياتدوائرهم وتنفيذ تصميم في يرغبون الذين االلكترونية الدوائر
ومتطورة سهلة بطريقة الخاصةهذا جـ - قراءة قبل معرفتها يجب التي األساسية المعلومات ماهي
المقال؟دوائر تصميم وأساسيات االلكترونية الدوائر أساسيات معرفة يجب
المقال هذا قراءة قبل الديجيتالدوائر - 2 وتصميم االلكترونية الدوائر تصميم عن هامة معلومات
الديجيتالعلى أن يعتمد الديجيتال دوائر من :-تصميم كل
ال( Boolean Arithmeticعمليات )(1 في الرئيسية )ـوالعملياتBoolean Arithmetic( )هيAnd,Or,Not )باقي تكوين يمكن حيث
الرئيسية . العمليات هذه من العمليات ( Bit Half Adder 2 مثال )
Sum = (x AND NOT y) OR (NOT x AND y)Carry =(x AND y)
التخزين (2 دوائرفلوب ) الفليب دوائر على الديجيتال دوائر تصميم يعتمد كما
Flip Flop( )والـRegister )عمليات بتنفيذ تسمح دوائر وهيالبيانات تخزين
(هـ( التزامن ) حيث من الديجيتال دوائر :أنواعمتزامنة )(1 (Synchronousدوائر
تزامن ) اشارة وجود على عملها في تعتمد دوائر وهيClocked)
متزامنة )(2 غير (:Asynchronousدوائرتزامن ) اشارة وجود على عملها في التعتمد دوائر -Nonوهي
Clocked)الديجيتال و( دوائر تصميم مزايا
التنفيذ (1 في والبساطة السهولةعن معقدة ديجيتال دائرة وتنفيذ تصميم بسهولة يمكن حيث
أنالوج دائرة وتنفيذ بتصميم تقوم (Analog)انواصالحها (2 االعطال اكتشاف في والبساطة السهولة
والتوصيل الفصل فكرة على تعتمد الديجيتال دوائر الن نظرافيها خرج وكل واصالحها األعطال اكتشاف السهل من فانه
واحد او صفر اما يكون ان ينبغيالمتكاملة )- 3 الدوائر والشرائح( Integrated Circuits تطور
( Chips االلكترونية )الترانزستورات أ(
ال ب( وتكنولوجيا البدائية الديجيتال Large Scale(LSI )ـدوائرIntegration()
أساسية دوائر تستخدم قديما كانت البدائية الديجيتال دوائردوائر ) مثل ( AND, OR, NOTبسيطة
تكنولوجيا ) بعد فيما ظهر دوائر( LSIثم بتجميع تقوم والتيأمثلتها ) ومن صغيرة الكترونية شريحة داخل و( Decoderمعقدة
(Adder( )وMultiplier)(VLSI( )Very Large Scale Integrationتكنولوجيا )جـ(
شريحة ) من تعقيدا اكثر الكترونية شريحة تقوم( LSIوهيومن واحدة شريحة في والدوائر المكونات من العديد بتجميع
( CPUو( )Processorأمثلتها )تكنولوجيا( ) ظهرت (Programmable Logic Devices( )PLDد
الدوائر من العديد تجميع فيها يتم الكترونية شريحة وهيفيوزات بواسطة الدوائر هذه توصيل ويتم المتكاملة
عملية على تعتمد النهائة الشريحة بها تقوم التي والوظيقةالشريحة لهذه تتم التي البرمجة
التي الفيوزات بعض حرق عن عبارة هذه البرمجة وعمليةالشريحة في الموجودة الداخلية الدوائر تربط
الدوائر بين الفيوزات بعض فصل الى تؤدي هذه الحرق عمليةشرائح ) أمثلة ومن متصلة االخرى الفيوزات (PLDوترك
والفرق( PLAsوشريحة( )PALوشريحة( )ROMشريحة )يمكن التي الفيوزات مكان هو الشرائح هذه بين الرئيسي
حرقها اليمكن التي الثابتة والتوصيالت حرقهاملحوظة
شريحة ) في الداخلية الدوائر هذه الن بواسطة( PLDنظرا متصلةشريحة ) برمجة اليمكن فانه البرمجة عند حرقها يتم مرة( PLDفيوزات اال
فقط واحدةلشريحة ) الداخلي (PALالتركيب
شريحة( : )1الشكل ) (PALتركيبمحدد )هـ( لغرض المصنعة االلكترونية ( ASICالشرائح
وهناك محدد غرض لتنفيذ بناؤها يتم الكترونية شرائح وهي-: منها نوعان
الدوائر (1 من العديد على بداخلها تحتوي شرائح األول النوع االلكترونية
واحدة (2 دائرة على بداخلها تحتوي شرائح الثاني النوع
للبرمجة( القابلة المعقدة االلكترونية الشرائح (CPLD)و
شرائح من تعقيدا أكثر الكترونية شرائح وتحتوي (PLD)هيشرائح من بلوكات على كبير( PLD) بداخلها حد الى تشبه وهي
شرائح تعقيدها شرائح( PAL) في ولكن شرحها سبق )) التيCPLD أكثر بها الدوائر عدد
االلكترونية( الشرائح )Field Programmable Gate Arrays )FPGA ز
كبير عدد باستيعاب يسمح العام تركيبها الكترونية شرائح هيمن ) جدا شرائح ان حين وفي االلكترونية بها( CPLDالشرائح
فان بداخلها االلكترونية الشرائح من كبير عدد تواجد امكانيةولكنها( FPGA) شرائح بداخلها الدوائر من محدود بعدد تسمح
فلوب الفليب دوائر من اكبر عدد بها (Flip-Flop) يتوافرشرائح في بها المسموح الدوائر عدد الى (CPLD) نسبة
شريحة( : )2الشكل ) (FPGAتركيب
4-
لشرائح االداخلي FPGA ) التركيب
شرائح أ( االلكترونيةوكل ( FPGA)تتكون الدوائر من بلوكات من داخلياالخاليا بلوك من مجموعة هيئة على موزعة صغيرة دوائر من )يتكون
LOGIC CELLS )عادة تتكونو خلية فلوب مكل فليب دائرة -Flip )نFlop) التي االخرى الدوائر الشركة وبعض من كل حسب تختلف
تنتمي (Family )ـوال(Vendor )المصنعة ال التي شريحة (FPGA )ـلهاملحوظة
لشرائح مصنعة شركة اسم FPGA كل وكيفية تستخدم الخاليا لوصف خاصبنائها
األسماء هذه أمثلة (Logic Element)و(Logic Block )ومنيتو ب( الخاليا اكما داخل LUT )Look up دائرة(Logic Cells )جد
Tables( ا تشبه أنواع (ROMs)لـوهي بها FPGA شرائح بعض يتواجدمثل أخرى ذاكرة وهي(CAM)و (Dual Port Memory)وSRAM دوائر
خاص بشكل استخدامها يتم لغة إدوائر في باستخدام (HDL )ما اوفي خاصة الخاصة دوائر بالبرامج الدوائر رسم schematicعملية
entryالربط جـ( شريحة (Routing Resources)والتوصيل وسائل دوائر )بين
FPGA)الربط شريحة وسائل في توصيل (FPGA )والتوصيل قنوات هيدوائر ومفاتيح وأسالك مثل الداخلية الدوائر بين ,Memoryتربط
LUT & Logic Cellsالخارجية pinsد( التوصيل أطراف
الشريحة في الداخلية الدوائر بين الربط يمكن الوسائل وبهذهالخارجية أطراف (FPGA) لشرائح (PINs) التوصيل
توزيعها كيفية في توزيع وترتيبها تختلف يتم الشرائح فبعضبطريقة ترتيبها
(TTL)أو(CMOS) أو(PCI) وأ (AGP) طريقة اي فان . اخرى او لذلكتكنولوجيات (FPGA )شرائح بين للربط تستخدم ان مختلفة يمكن
الدوائر تكنولوجيات منالخارجية pins هـ( التوصيل ) (Clock)أطراف شرائح (PLLو )بعض
FPGA) سرعة ذات توصيل أطراف لل تخصص (Resetو ) (Clockـ )عاليةشرائح ال (FPGA) وبعض في للتحكم بلوكات لها يكون ان )يمكن
Clock)( وPLL) ( مثلClockMultiplier) ( وDivider)
Xilinx's Virtex Slice (3الشكل)
Altera's Apex Logic Element( 4الشكل )
لشرائح - 6 المخصصة االلكترونية ( FPGA ) اللوحاتلشرائح المخصصة االلكترونية اللوحات من العديد ومنها (FPGA)هناك
للشرائح( Demo ) عرضلوحات ا.لتطبيقات ب. اخرى (Applications)معينة ولوحات
من تتراوح اللوحات :-هذهمخ ا. لشرائح لوحات ب غيرةالص (FPGA) صصة مزودة تكون ان ـيمكن
(External Headers) توصيالت ومجموعةأخرى )ب. ربط بشرائح مزودة ومعقدة كبيرة لوحات Interfaceوحتى
Chips) ( بشرائح (FPGAوكذلكللبرمجة؟ - 11 القابلة االلكترونية الشرائح نستخدم لماذا
االلكترونية ا. الدوائر لتنفيذ معقدة تصنيع لعملية حاجة هناك ليس( شرائح أصال (FPGAباتخدام موجودة االلكترونية الدائة كانت اذا
شريحة ) مكونات (FPGAضمنشرائح )ب. في وتعديلها العيوب واكتشاف االسهل بالنسبة ) (FPGAمن
ASIC)خاص - 12 لغرض مركزية معالجة وحدة بناءالقابلة - 13 االلكترونية تشغيلها لتغيير الدوائر أثناء وظائفها
تغيير اعادة يمكن انها للبرمجة القابلة االلكترونية الشرائح مزايا أحد( االلكترونية الشريحة وظيفة أن يعني وهذا عملها، أثناء وظيفتها
FPGA) أنه هي الخاصية هذه ميزة ، تشغيلها خالل تغييرها يتم ان يمكن( شريحة داخل التصميمات من العديد وضع ما لشخص (FPGAيمكن
( شريحة في التعمل التصميمات ولكن (FPGAوهذه الوقت نفس فييمكننا الحالة هذه وفي اليهم الحاجة يتم عندما فقط بعضها تشغيل يتم
( شريحة في التصميمات من العديد من (FPGAوضع بكثير أكثر واحدةلها الحقيقي الحجم
فقط تنفيذها يتم ان تحتاج التصميمات بعض هناك المثال سبيل علىاما ذلك بعد استخدامها اليتم ثم االلكتروني النظام تشغيل بداية عند
منها المستخدم يحتاج عندما فقط تعمل أن فيمكنها التصميمات باقي( شريحة على معا التصميمات هذه كل بوضع قمنا اذا لذلك تعمل أن
FPGA) ( شريحة سنحتاج خاصية (FPGAفاننا بفضل ولكن جدا كبيرةمن العديد وضع يمكننا فاننا تشغيلها اثناء الشريحة وظيفة تغيير امكانية
شريحة ) على الذي واحدة (FPGAالتصميمات التصميم بتشغيل نقوم ثمموضع له طبقا الشريحة تعمل أن هذا نرغب بفصل نقوم ثم التنفيذ
الذي الحجم نقلل وبذلك الحتياجاتنا آخرطبقا تصميم وتشغيل التصميمشريحة ) (FPGAتحتاجه
مجاني - 14 بشكل المعروضة االلكترونية الشرائح تصميمات( لشرائح الهاردوير تصميمات مجاني (FPGAان بشكل عرضها يتم( شرائح برمجة في )FPGAالستخدامها المصممون (HDLولغات( ،
( كود كتابة يمكنهم شرائح (HDLوالهواة على الكود هذا نبرمج ) ثم FPGA
ج.شريحة )- 7 برنامج تصميم :- ( FPGA أساليب هي التصميم عملية
الشريحة - من الغرض تحديد أومانحتاج الشريحة من والغرض حلها المراد المشكلة تحديد
لتنفيذه التصميم - وضع ب
1)) الكهرية ) للدائرة البنائي الهيكل رسم األولى التصميم طريقة(schematic Entry) . مجدية غير الطريقة وهذه الحاسوب ببرنامج
الحجم كبيرة للتصميمات
2)( كتابة الثانية التصميم لغات طريقة احدى باستخدام برنامجHDL)
باستخدام االلكترونية الدوائر تركيب يصف الذي األسلوب هولغات ) كمبيوترواحدى VHDL & Verilogمثل (HDLبرنامج
تعني ..VHDL ماذاعالية هي المتكاملة للدارات الصلب الكيان توصيف .السرعة لغة
البرمجية بالطريقة بدأت لم و المحاكاة روعته على الحل هذا k كافيا دارة يكن من جزء نصنع kأحيانا أن ضخمة ألننا وعلينا
الدارة باقي مع الجزء هذا أداء الدارة نختبر باقي التكون وقدلها متوفر أو صنعنا الطريقة محاكاة من هذه فإن كذلك
في .التصميم التساعدناخالل من الورق على الدراة نصمم الزلنا جداول فنحن
الحاسب على نطبقها ثم المنطقية والعلميات k. الحقيقة إذاللبرمجة قابلة دارات من k البد بنيويا
المحاكاة - ) (Simulationجـالتصميم - تحليل (Synthesis)د
لغة بواسطة تصميمها تم التي الدائرة مكونات استنباط عملية هي(HDL) الخطوة وهذه الكترونية دوائر الى الوصف لتحويل
للدائرة البنائي الهيكل رسم اسلوب استخدام حالة في التستخدمschematic Entry
بينها- والربط أماكنها في المكونات وضع (Place and route)هـوالموارد بالدوائر المصممة الدوائر لمقابلة تستخدم الخطوة هذه
بال وبعد FPGAالمتاحة بالشريحة المناسبة باالماكن الدوائر ووضعقنوات باستخدام سويا ربطهم يتم أماكانها في المكونات وضع . أطراف بين كذلك تربط الخطوة هذه الداخلية واألسالك التوصيل
للشريحة الخارجية الداخلية ( pins)التوصيل الدائرة أجزاء باقي معبها الشريحة توصيل سيتم التي
( الـ- توليد (Bit Streamو( الـ توليد ) (Bit Streamعملية البرمجة ملف (Programming Fileأو
يتم وكيف الدائرة تصميم عن المعلومات كل على يحتوي الذي( بال بالمواردالموجودة التصميم ان( FPGAمقابلة ينبغي وكيف
( للـ الداخلية المفاتيح يستعمل(. FPGAتتصل الذي الملف وهو . الشريحة لبرمجة
( الـ ملف Bitوبرمجة Stream) والشركة الشريحة على يعتمدتزويدها ويتم محددة برمجة طريقة لها شريحة وكل لها المصنعة
لبرمجتها خاص ببرنامج( الهاردوير لتصميم Hardwareطريقة Design) لوصف طريقة وهي
الهاردوير تصميملغات من العديد تصف HDL)وهناك ان يمكن اللغات هذه ومعظم
( مثل أساسية ديجيتال األكثر (AND,OR,NOTعمليات األخرى واللغاتيتم ان يمكن بطريقة التصميم يصف ان للمستخدم تقدما واألكثر تعقيداان للمستخدم تسمح فانها المثال سبيل علي البشر بواسطة قراءتها
( أوامر نفسه (Loops,Case,Ifيستخدم التصميم على يركز تجعله والتي( ) لغات) معظم و الهاردوير على وليس أطراف (HDLكبرنامج تعرف
( أمثلتها ومن الداخلية ووظائفها للشريحة والخرج )Verilogالدخل و( VHDL( )وAHDL )
هو ؟CPLD ما
بك الخاصة المتكاملة الدوائر تصميم الى نوع طريقك LSI )Large Scale منIntegration(
CPLDاختصار(Complex Programmable Logic Device )( الدوائر ومعناهاالقابلة المعقدة المنطقية (.للبرمجة المتكاملة
نوع من المتكاملة من CPLD الدوائر مصغر نوع تحتوي FPGA هي وهيفي متوفرة وهي المنطقية البوابات من أقل عدد وبسعر على االسواق
عمل طريقها عن ويمكنك تعقيدا وأقل بسهولة استخدامها ويمكنك أقلفي المنطقية المتكاملة الدوائر من فقط IC العديد .واحد
في : المثال سبيل على رقم مثال المتكاملة الدائرة والتي 7400حالةنوع من منطقية بوابات أربع على من ، NAND تحتوي المتكاملة والدائرة
نوع 7404نوع من بوابات ستة على تحتوي NOT والتيمنهما البعض وكل ببعضهما توصيلهما اردنا فاذا ، منفصلة متكاملة دائرة
الى نحتاج خارجية فاننا بتوصيالت مطبوعة لوحة على .توصيلهماال حالة في بين CPLDأما نوصل عن فاننا المتكاملة الدائرة داخل البوابات
التوصيالت كثيرا تقل وبذلك خاص برنامج اللوحة طريق في الخارجيةالمصبوعة
بسيطا مثاال قدمنا هنا نحن في وطبعا ولكن ، فقط متكاملتين لدائرتينمئات وربما عشرات محل تحل التقنية هذه فان ، الواقع المتكاملة الدوائر
تصل المنطقية البوابات من كبير عدد على الحتوائها نظرا مئات وذلك الىعند تقف بالطبع ولكن ، والخرج الدخل أطراف من كبير عدد وبها أالف أو
واالطراف حدود البوابات عدد حسب .معينةعائلة من الشرائح سندرس هذا تدريبنا شركة XC9500 في تنتجها والتي
XILINIX شكل في مغلفة عائلة وهي تعني PLCC زيلينيكس Plastic)وهيLeaded Chip Carrier) المدعم بالبالستيك المغلفة الشريحة بالعربية ومعناها
.بالرصاصالعائلة أنواع بعض نعرض سوف التالي الجدول XC9500 وفي
PLCC : بالرصاص المدعم بالبالستيك المغلفة Plastic Leaded Chip الشريحةCarrier
FB : بها تقوم أن يمكن التي الوظائف عدد تعني فمثال Function Block وهييكتب نفس 2FBعندما في بوظيفتين القيام يمكن أنه يعني ذلك غان
.الوقتGates : الشريحة في الموجودة البوابات عدد .تعني
Macrocells :كاملة الماكرو منطقية بعملية تقوم ان يمكن متكاملة وحدة هوالكامل الجامع .registers المسجالت أو full adder مثل
Pin: االطراف .عدد
ال فان الميكروكنترولر الدقيقة المتحكمات مثل عدد CPLDمثلها لهانوع من ذاكرة على يكتب البرنامج ألن وذلك ، للبرمجة محدود مرات
من . flash memory فالش العائلة حالة مرات XC9500 وفي عدد فانهي .مرة10000الكتابةأحد من في وأخيرا وجوده اثناء كتابته اعادة يمكن أنه النوع هذا مميزات
وال عملها وأثناء للبرمجة الدائرة الدائرة من ازالته الى .يحتاجعلى األن لنتعرف المقدمة هذه بعد العائلة واألن هذه منXC9500 تركيب
.الداخلرقم: المتكاملة الدائرة على التي XC9572 ملحوظة و 1600تحتوي 84بوابة
بالسوق متوفرة $ طرفبسعر )75المصري حوالي مصري 12.5جنيه
: FPGA ال تركيبال دوائر من نوعان FPGAهناك
الحبيبات " -1 الخشنة : coarse-grained " الدوائرفكل ، والقوية الكبيرة المنطقية الوحدات من قليل عدد من تتكون وهى
ئان عنصر لكل ويمكن ، منطقية بوابات عدة من مكونة دائرة تعتبر وحدةعلى قادرا كاملين يكون عددين مقارنة أو .جمع
الحبيبات " -2 الناعمة : fine-grained " الدوائريكون البسيطة المنطقية الوحدات من كبير عدد من تتكون عنصر وهى كل
بوابة فعال اعتباره يمكن أى ثنائيين رقمين مقارنة على فقط قادرا. واحدة منطقية
: FPGA إستخداماتالفيديوى -1 : البث
بث نظام بناء تشكيل تم اعادة على قادرة واحدة متكاملة دائرة من فيديوىصورة لكل مرات أربع فقط frame نفسها تتطلب فإنها لذا ، واحدة فيديوية
اليها نحتاج أن يمكن التى الدوائر ال ربع بدوائر لنظام هذا مثل .ASICلبناء
الدائرة تقوم االشارة FPGA فأوال تقوم يتخزين ثم ن الذاكرة فى الفيديويةالنهاية وفى ، الصورة لمعالجة مختلفين موديم بتحويلين الى تحول
التالية الىالمرحلة االشارة . الرسالالصور -2 على : التعرف
لشريحة بمجرد FPGA يمكن نفسها تهيئ أن الصور على بالتعرف الخاصة ، اليه تنظر الذى الشئ سيارة رؤية على تحتوى الصورة فإذاكانت
لتتبع أصال المصممة الدائرة أجزاء ،فإن أو أوشاحنة السريعة الطائراتتركز بحيث نفسها تشكيل تعيد أن يمكن ، الحركة البطيئى بدال االشخاص
البرية االليات على ذلك . منمقارنة مثل االخرى التطبيقات من العديد على ويوجد والتعرف الخطوط
جدا المعقد والتشفير الرسائل المحيطةوتعمية واالشياء وتعرف االشخاصواالتصاالت الحربية . االهداف
التشكلية مستقبل : FPGA الحوسبةال دوائر فى FPGAتبشر واعدة فقط بتطبيقات ليس ستجعلك المستقبلالبرامج فى شكل soft ware تتحكم فى تتحكم سوف أيضا ووظيفة ولكنكالصلبة الذى hard ware المكونات بالتطبيق الخاص البرنامج بتحميل وذلك
أجهزة تريده فإن ، االنترنت منشبكة برامج بتحميل اليوم تقوم فكما ، تحميل يمكنها ذلك المستقبل االمر استدعى كلما للدوائر جديدة ( تشكيالت
ان االن جميعا نرجو نعرف حتى واضحة الصورة ايصال فى وفقنا قد نكونمقبلون نحن الذى المشروع المرة ماهية فى وسنبدأ ، دراسته على
وكيفية وإنشاءه الجهاز فكرة شرح الله بإذن انشاء القادمة بالتتابع عمله.الله
بوابات أربع لدينا أن لو النطاط موصلين NAND مثال دائرتهم تكون لكيFILP_FLOP بوابة إلى نحوله أن مداخل AND ونريد أربع فتحدث ذات
التالية الخطواتللبرنامج أمر إعطاء أوال بالـ فيتم عن FPGA الخاص البوابات كل بفصل
اآلتي فيحدث بعضهاإلى البوابات جميع بتحويل أمر يعطى إلى AND ثم AND فتتحول
البوابة وإهمال أخرى بوابة بدخلي بوابتين خرجي بتوصيل أمر يعطى ثم الرابعة
التركيب عن أما ، أخرى إلى دائرة من تتحول على وهكذا نمثلها أن فيمكنمثل الكترونية بمفاتيح ببعضها تتصل بوابات مجموعة 4066 رقم IC أنها
المثال سبيل على
VHDL
Very high speed integrated circuits Hardware Description Language
للبرمجة ) قابلة الغير محددة لمهام المصممة الدوائر باسم ( إن والمعروفالتطبيقات) المحددة المتكاملة application-specific integrated( )الدوائر
circuits ) ASIC فقط معينة لمهمة الالزم الوظيفى األداء بدقة .تؤمنمعالجات إنتاج الحاسبات مصممو فيستطيع
وتستهلك سرعة واكثر تكلفة وأقل المعالجات أصغرحجما من أقل طاقةرسومات فمعالج ، للبرمجة نوع graphics القابلة يستطيع VGA من
وحدة معالج من اسرع الشاشة على صورا يلون أو خطوطا يرسم أنعامة مركزية ضعف معالجة مائة أو أضعاف بعشرة . االستخدام
بلغة المكتوب البرنامج VHDL بنيةناحيتين من إنشاءها نريد التي الدارة بتوصيف اللغة هذه أساسيتين تهتم
الخارجية مخارج )الناحية (مداخلالدخل والناحية مع الدارة تتعامل كيف أو الدارة وظيفة وهي الداخلية
الخرج يتغير وكيفمن البرنامج يتألف عام وبشكل
Header-1Interface )Entity(-2
Functions)Architecture(-3الترويسة وهو األول Header القسم
في سنستخدمها التي المكتبات عن فيه التصريح برنامجنا يتملهذا العام :القسم الشكل
LIBRARY library_name; USE library_name.package_name.ALL;
المكتبات على التصريح طريقة عن :وكمثال
LIBRARY ieee; USE ieee.std_logic_1164.ALL;
مكتبة استخدمنا الحزمة IEEE حيث ومنها وهي std_logic_1164 القياسيةأنواع تعريف على والعمليات تحوي والحسابية المنطقية المعطيات
المكتبات. أكثر من وتعد k عليها استخداماجاهز برنامجنا نجريها اآلن حسابية أو منطقية عمليات أي منا يقبل ألن
متحوالتنا .علىالثاني الدرسالثاني )Interface )Entity: القسم
سنعرف القسم هذا المداخل في تعريف عبر وذلك للدارة الخارجي الشكلوطبيعتها والمخارج
لهذا العام :الجزء الشكل
ENTITY entity_name IS PORT )in1,in2,…… :attribute data_type ;out1,out2,….:attribute data_type(; END entity_name ;
نعرف , ثم تعريفه نريد الذي للكيان اسم باعطاء نقوم هذا حيث أرجلالكيانIn1,in2 …, تعريف يمكننا kطبعا المتحوالت من هي مؤلف نشاء متحول أي
مسافات وبدون وأرقام احرفAttribute نوع عن عبارة فقط هي ومخارج مداخل ليس ..األرجل
VHDL لنا الدارة تؤمن ألرجل الخيارات من العديدتكون أن فقط IN يمكن دخل فقط OUTأي وخرج INOUTخرج دخلBUFFER أي ) أو ) ذاكرة العكسية التغذية امكانية مع
Data_type: التي البيانات نوع وبالتالي هي االرجل هذه معها تتعاملتطبيقها يمكن التي عليها العمليات
البيانات أنواع بها ماهي تسمح !!؟ VHDL التيثالثة هناك عام أساسية بشكل أنواع
1-std_logic ( واحد متحول واحد خط عن عبارة منطقية ( وهي قيمة )1-0يأخذon-off)
2-std_logic_vector: مجموعة عن عبارة متحوالت ( bus)خطوط وهي عدة اومنطقية قيم تاخذ (on-off )1-0متسلسلة
3-integer: خطوط مجموعة عن عبارة متسلسلة (bus )وهي متحوالت عدة أوالتعامل على قادرة عشري عدد ألعلى الالزم الثنائي بالتمثيل يحدد عددها
من bitأو .معه std_logicبدالتعريف طريقة على التالي كمثال المثال لنأخذ القسم :هذا
ENTITY my_first IS PORT ) x1,x2,x3 : IN STD_LOGIC ; y: OUT STD_LOGIC_VECTOR )1 TO 5(; c:BUFFER INTEGER RANGE 0 TO 4(; END my_first ;
بتعريف العمليات x1,x2,x3 قمنا اجراء تقبل منطقية المنطقية كمداخل
متسلسلة yأما-…( and-or-not )عليها مخارج مجموعة )5إلى 1من فهيy1,y2,y3,y4,y5 ) المنطقية العمليات kايضا تقبل
C يمكن ذاكرة ذات مخارج مجموعة عن عبارة قيمة هي أكبر تقبل أنمن 4عشرية تتألف (ثنائي100 =عشري 4 )أرجل 3وبالتالي
الحسابية العمليات عليها تطبيق يمكن أي عشري نوع من وليس وهي.المنطقية
هامة باحرف: مالحظة الكلمات بعض بكتابة الدرس هذا في قمنا لقد kجدا صغيرة بأحرف واألخرى االسلوب كبيرة نفس اتباع علينا أن اليعني هذامحاكاة برنامج في كتابتنا كبيرة ولكن VHDL حين بأحرف المكتوبة الكلمات
اللغة في المحجوزة أو المفتاحية الكلمات عن .تعبر
للـ ) - 10 التصميم VHDL ) Half adder أمثلةLIBRARY ieee;USE ieee.std_logic_1164.ALL;
ENTITY Adder_ent IS
PORT ( Op1 : IN std_logic; -- Operand 1 op2 : IN std_logic; -- Operand 2 carry : OUT std_logic; -- Output carry Result : OUT std_logic); -- Result
END Adder_ent;
ARCHITECTURE behavior OF Adder_ent IS
BEGIN -- behavior
Result <= (Op1 AND NOT Op2) OR (NOT Op1 AND Op2); Carry <= Op1 AND Op2;
END behavior;
- 8 bit Adder LIBRARY ieee;USE ieee.std_logic_1164.ALL;USE ieee.std_logic_unsigned.ALL;
ENTITY Adder_ent IS PORT ( clk : IN std_logic; -- System clock rst_n : IN std_logic; -- System reset Op1 : IN std_logic_vector(7 DOWNTO 0); -- Operand 1 op2 : IN std_logic_vector(7 DOWNTO 0); -- Operand 2 Result : OUT std_logic_vector(7 DOWNTO 0)); -- Result
END Adder_ent;
ARCHITECTURE behavior OF Adder_ent IS
BEGIN -- behavior
PROCESS (clk, rst_n)
BEGIN -- PROCESS IF rst_n = '0' THEN -- asynchronous reset (active low) Result <= (OTHERS => '0'); ELSIF clk'event AND clk = '1' THEN -- rising clock edge Result <= Op1 + op2; END IF; END PROCESS;
END behavior;
- CounterLIBRARY ieee;USE ieee.std_logic_1164.ALL;USE ieee.std_logic_unsigned.ALL;
ENTITY Adder_ent IS
PORT ( clk : IN std_logic; -- System clock rst_n : IN std_logic; -- System reset Count : OUT std_logic_vector(7 DOWNTO 0)); -- Count
END Adder_ent;
ARCHITECTURE behavior OF Adder_ent IS SIGNAL counter : std_logic_vector(7 DOWNTO 0); -- internal counterBEGIN -- behavior
PROCESS (clk, rst_n) BEGIN -- PROCESS IF rst_n = '0' THEN -- asynchronous reset (active low) Counter <= (OTHERS => '0'); ELSIF clk'event AND clk = '1' THEN -- rising clock edge Counter <= counter + 1; END IF; END PROCESS;
count <= counter;
END behavior;
- 7-Segment decoderLIBRARY ieee;USE ieee.std_logic_1164.ALL;
ENTITY Decoder IS PORT ( InBin : IN std_logic_vector (3 DOWNTO 0); Display : OUT std_logic_vector (6 DOWNTO 0));END Decoder;
ARCHITECTURE rtl OF decoder IS SIGNAL t : std_logic_vector (6 DOWNTO 0);BEGIN
seg_process : PROCESS (InBin) BEGIN
CASE InBin IS WHEN "0000" => t <= "1111110";
WHEN "0001" => t <= "0110000"; WHEN "0010" => t <= "1101101"; WHEN "0011" => t <= "1111001"; WHEN "0100" => t <= "0110011"; WHEN "0101" => t <= "1011011"; WHEN "0110" => t <= "0011111"; WHEN "0111" => t <= "1110000"; WHEN "1000" => t <= "1111111"; WHEN "1001" => t <= "1110011"; WHEN "1010" => t <= "1110111"; WHEN "1011" => t <= "0011111"; WHEN "1100" => t <= "1001110"; WHEN "1101" => t <= "0111101"; WHEN "1110" => t <= "1001111"; WHEN OTHERS => t <= "1000111"; END CASE; Display <= NOT t; END PROCESS seg_process;END rtl;