22
ن ع عامة رة ك ف ة ج م ر لب ل لة اب ق ل ا ة ي ن رو كب للا ح ا$ ئ را ش ل ا( Programmable Logic Devices ) 1 - دمة ق م2 - - $ ا ى عل رف ع ت ل وا ة ج م ر لب ل لة اب ق ل ا ة ي ن رو كب للا ح ا$ ئ را ش ل ا ن ع عامة رة ك ف م ي د ق ت و ه ال ق م ل ا ا هد ن م رض لع ا ة ي ن رو كب للا ر ا$ ئ م الدوا ي م ص ت ى ف ها م دا خ ت س ا ة ي ف ت ك ى عل رف ع ت ن ى حت ها ت ج مر ئ ة ي ف ت ك و ى ل خ الدا ها تU كي ر ئ- ب ال؟ ق م ل ا ا هد راءة ق ن م د ي ف ت س م ل ا ن م دس ي ه م ل د ي ف م ال ق م ل ا ا هد ى ى ف ون ب عر ئ ن ي الد ة ي ن رو كب للا ر ا$ ئ م الدوا ي م ص ت واة ه لد و د خ ل ا اب ي ن رو كب للا ا ورة ط ت م و لة ه س ة ق رت ط ت اصة خ ل م ا ه ر$ ئ دوا د ي ف تr ن م و ي م ص ت- خ ال؟ ق م ل ا ا هد راءة ق ل ي ق ها ت ق ر مع v ب ج ئ ى لت ا ة ي س سا$ لا ا وماب ل ع م ل ا ى ه ما ا هد راءة ق ل ي ق ال ي ي خ ئ ر الد$ ئ م دوا ي م ص ت اب ي س سا$ وا ة ي ن رو كب للا ر ا$ ئ الدوا اب ي س سا$ ا ة رف مع ب ج ئ ال ق م ل ا2 - ال ي ي خ ئ ر الد$ ئ م دوا ي م ص ت و ة ي ن رو كب للا ر ا$ ئ م الدوا ي م ص ت ن ع هامة وماب ل ع م ن$ ا ى علv مد ت ع ت ال ي ي خ ئ ر الد$ ئ م دوا ي م ص ت-: ن م ل ك1 ) ( اب ي مل عBoolean Arithmetic ال ى ف ة ي س ي$ ئ ر ل ا اب ي مل ع ل وا) ( Boolean Arithmetic ( ى ه) And,Or,Not ة هد ن م اب ي مل ع ل ا ى ف ا ب ن ي و ك ب ن مك ي ب ي ح) . ة ي س ي$ ئ ر ل ا اب ي مل ع ل ا( ال ي م2 Bit Half Adder ) Sum = (x AND NOT y) OR (NOT x AND y) Carry =(x AND y) 2 ) ن ي ر خ ت ل ر ا$ ئ دوا( وب ل ف ب ي ل ق ل ر ا$ ئ ى دوا عل ال ي ي خ ئ ر الد$ ئ م دوا ي م ص ت مد ت ع ت ما كFlip Flop ( وال) Register اب اب ي لي ا ن ي ر خ ئ اب ي مل ع د ي ف تr ي ئ ح م س ت ر$ ئ دوا ى ه و)

Fpga Arabic

  • Upload
    sameh

  • View
    2.312

  • Download
    3

Embed Size (px)

Citation preview

Page 1: Fpga Arabic

عن عامة فكرةللبرمجة القابلة االلكترونية الشرائح

( 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()

Page 2: Fpga Arabic

أساسية دوائر تستخدم قديما كانت البدائية الديجيتال دوائردوائر ) مثل ( 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 من العديد على بداخلها تحتوي شرائح األول النوع االلكترونية

Page 3: Fpga Arabic

واحدة (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) التي االخرى الدوائر الشركة وبعض من كل حسب تختلف

Page 4: Fpga Arabic

تنتمي (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)

Page 5: Fpga Arabic

Xilinx's Virtex Slice (3الشكل)

Altera's Apex Logic Element( 4الشكل )

Page 6: Fpga Arabic

لشرائح - 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) . مجدية غير الطريقة وهذه الحاسوب ببرنامج

الحجم كبيرة للتصميمات

Page 7: Fpga Arabic

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 ما

Page 8: Fpga Arabic

بك الخاصة المتكاملة الدوائر تصميم الى نوع طريقك 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: االطراف .عدد

Page 9: Fpga Arabic

ال فان الميكروكنترولر الدقيقة المتحكمات مثل عدد CPLDمثلها لهانوع من ذاكرة على يكتب البرنامج ألن وذلك ، للبرمجة محدود مرات

من . flash memory فالش العائلة حالة مرات XC9500 وفي عدد فانهي .مرة10000الكتابةأحد من في وأخيرا وجوده اثناء كتابته اعادة يمكن أنه النوع هذا مميزات

وال عملها وأثناء للبرمجة الدائرة الدائرة من ازالته الى .يحتاجعلى األن لنتعرف المقدمة هذه بعد العائلة واألن هذه منXC9500 تركيب

.الداخلرقم: المتكاملة الدائرة على التي XC9572 ملحوظة و 1600تحتوي 84بوابة

بالسوق متوفرة $ طرفبسعر )75المصري حوالي مصري 12.5جنيه

: FPGA ال تركيبال دوائر من نوعان FPGAهناك

الحبيبات " -1 الخشنة : coarse-grained " الدوائرفكل ، والقوية الكبيرة المنطقية الوحدات من قليل عدد من تتكون وهى

ئان عنصر لكل ويمكن ، منطقية بوابات عدة من مكونة دائرة تعتبر وحدةعلى قادرا كاملين يكون عددين مقارنة أو .جمع

الحبيبات " -2 الناعمة : fine-grained " الدوائريكون البسيطة المنطقية الوحدات من كبير عدد من تتكون عنصر وهى كل

بوابة فعال اعتباره يمكن أى ثنائيين رقمين مقارنة على فقط قادرا. واحدة منطقية

: FPGA إستخداماتالفيديوى -1 : البث

بث نظام بناء تشكيل تم اعادة على قادرة واحدة متكاملة دائرة من فيديوىصورة لكل مرات أربع فقط frame نفسها تتطلب فإنها لذا ، واحدة فيديوية

اليها نحتاج أن يمكن التى الدوائر ال ربع بدوائر لنظام هذا مثل .ASICلبناء

Page 10: Fpga Arabic

الدائرة تقوم االشارة FPGA فأوال تقوم يتخزين ثم ن الذاكرة فى الفيديويةالنهاية وفى ، الصورة لمعالجة مختلفين موديم بتحويلين الى تحول

التالية الىالمرحلة االشارة . الرسالالصور -2 على : التعرف

لشريحة بمجرد FPGA يمكن نفسها تهيئ أن الصور على بالتعرف الخاصة ، اليه تنظر الذى الشئ سيارة رؤية على تحتوى الصورة فإذاكانت

لتتبع أصال المصممة الدائرة أجزاء ،فإن أو أوشاحنة السريعة الطائراتتركز بحيث نفسها تشكيل تعيد أن يمكن ، الحركة البطيئى بدال االشخاص

البرية االليات على ذلك . منمقارنة مثل االخرى التطبيقات من العديد على ويوجد والتعرف الخطوط

جدا المعقد والتشفير الرسائل المحيطةوتعمية واالشياء وتعرف االشخاصواالتصاالت الحربية . االهداف

التشكلية مستقبل : FPGA الحوسبةال دوائر فى FPGAتبشر واعدة فقط بتطبيقات ليس ستجعلك المستقبلالبرامج فى شكل soft ware تتحكم فى تتحكم سوف أيضا ووظيفة ولكنكالصلبة الذى hard ware المكونات بالتطبيق الخاص البرنامج بتحميل وذلك

أجهزة تريده فإن ، االنترنت منشبكة برامج بتحميل اليوم تقوم فكما ، تحميل يمكنها ذلك المستقبل االمر استدعى كلما للدوائر جديدة ( تشكيالت

ان االن جميعا نرجو نعرف حتى واضحة الصورة ايصال فى وفقنا قد نكونمقبلون نحن الذى المشروع المرة ماهية فى وسنبدأ ، دراسته على

وكيفية وإنشاءه الجهاز فكرة شرح الله بإذن انشاء القادمة بالتتابع عمله.الله

بوابات أربع لدينا أن لو النطاط موصلين NAND مثال دائرتهم تكون لكيFILP_FLOP بوابة إلى نحوله أن مداخل AND ونريد أربع فتحدث ذات

التالية الخطواتللبرنامج أمر إعطاء أوال بالـ فيتم عن FPGA الخاص البوابات كل بفصل

اآلتي فيحدث بعضهاإلى البوابات جميع بتحويل أمر يعطى إلى AND ثم AND فتتحول

البوابة وإهمال أخرى بوابة بدخلي بوابتين خرجي بتوصيل أمر يعطى ثم الرابعة

التركيب عن أما ، أخرى إلى دائرة من تتحول على وهكذا نمثلها أن فيمكنمثل الكترونية بمفاتيح ببعضها تتصل بوابات مجموعة 4066 رقم IC أنها

المثال سبيل على

Page 11: Fpga Arabic

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; 

المكتبات على التصريح طريقة عن :وكمثال

Page 12: Fpga Arabic

 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 قمنا اجراء تقبل منطقية المنطقية كمداخل

Page 13: Fpga Arabic

متسلسلة 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)

Page 14: Fpga Arabic

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";

Page 15: Fpga Arabic

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;