FPGA Tutorial

51
ﺧﻮﺩﺁﻣﻮﺯFPGA ﻛﻨﻨﺪﻩ ﺗﻬﻴﻪ: ﺻﻔﺮﻱ ﺳﻌﻴﺪ ﻣﻘﺪﻣﻪ ﺑﺮﻧﺎﻣﻪ ﺗﺮﺍﺷﻪ ﻳﻚ ﺗﺮﺍﺷﻪ ﭘﺬﻳﺮ ﻣﻲ ﺍﺟﺎﺯﻩ ﻃﺮﺍﺡ ﺑﻪ ﻛﻪ ﺍﺳﺖ، ﻣﻨﻈﻤﻲ ﻣﺪﺍﺭﻱ ﺳﺎﺧﺘﺎﺭ ﺩﺍﺭﺍﻱ ﻛﻪ ﺍﺳﺖ ﺍﻱ ﺑﺮﺩ ﺑﻜﺎﺭ ﺧﺎﺹ ﻛﺎﺭﺑﺮﺩ ﻳﻚ ﺑﺮﺍﻱ ﺁﻧﺮﺍ ﺩﻫﺪ. ﺑﺮﻧﺎﻣﻪ ﺗﺮﺍﺷﻪ ﻳﻚ ﻫﻨﮕﺎﻣﻲ ﺗﻮﻟﻴﺪ ﻛﺎﺭﺧﺎﻧﻪ ﺍﺯ ﭘﺬﻳﺮIC ﻣﻲ ﺧﺎﺭﺝ ﻧﻤـﻲ ﺍﻧﺠـﺎﻡ ﺭﺍ ﻣﺸﺨـﺼﻲ ﻋﻤﻞ ﻫﻴﭻ ﺷﻮﺩ، ﺩﻫـﺪ. ﺧﺮﻳـﺪﺍﺭ ﺑﻮﺳـﻴﻠﻪ ﻋـﻮﺽ ﺩﺭ ﺑﺮﻧﺎﻣ ﻣﻲ ﺭﻳﺰﻱ ﺩﻫﺪ ﺍﻧﺠﺎﻡ ﻣﺸﺨﺺ ﻛﺎﺭﺑﺮﺩ ﻳﻚ ﺑﺮﺍﻱ ﺭﺍ ﻧﻴﺎﺯ ﻣﻮﺭﺩ ﻋﻤﻠﻴﺎﺕ ﻳﻚ ﺗﺎ ﺷﻮﺩ. ﺯﻣﻴﻨـﻪ ﺍﻳـﻦ ﺩﺭ ﺯﻳـﺎﺩﻱ ﭘﻴﺸﺮﻓﺘﻬﺎﻱ ﺍﺧﻴﺮ ﺳﺎﻝ ﭼﻨﺪ ﺩﺭ ﺍﺯ ﻋﺒﺎﺭﺗﻨﺪ ﺁﻧﻬﺎ ﻣﻬﻤﺘﺮﻳﻦ ﻛﻪ ﺍﺳﺖ ﺷﺪﻩ ﺍﻧﺠﺎﻡ: ﻫﺰﻳﻨﻪ ﺷﺪﻥ ﻛﻢ ﺍﺳﺘﻔﺎﺩﻩ ﺭﺍﺣﺘﻲ ﺑﻴﺸﺘﺮ، ﺳﺮﻋﺖ ﺑﻴﺸﺘﺮ، ﮔﻨﺠﺎﻳﺶ. ﺩﺭ ﻣﻮﺟﻮﺩ ﺍﺻﻄﻼﺣﺎﺕ ﺍﺑﺘﺪﺍ ﮔﺰﺍﺭﺵ ﺍﻳﻦ ﺩﺭ ﺗﺮﺍﺷﻪ ﻣﻌﺮﻓﻲ ﺑﻪ ﺳﭙﺲ ﻛﺮﺩﻩ ﻣﻌﺮﻓﻲ ﺭﺍ ﺯﻣﻴﻨﻪ ﻳﻦ ﺑﺮﻧﺎﻣﻪ ﻫﺎﻱ ﻣﻲ ﭘﺬﻳﺮ ﭘﺮﺩﺍﺯﻳﻢ. ﺍﺻﻄﻼﺣﺎﺕ: Field Programmable Device (FPD) or Programmable Logic Device (PLD) ﺳﺨﺖ ﻃﺮﺍﺣﻲ ﺑﺮﺍﻱ ﻛﻪ ﻣﺠﺘﻤﻊ ﻣﺪﺍﺭ ﻳﻚ ﺑﻪ ﻛﻪ ﺍﺳﺖ ﻋﺒﺎﺭﺗﻲ ﻣﻲ ﺍﺳﺘﻔﺎﺩﻩ ﺍﻓﺰﺍﺭ ﻣﻲ ﺍﻃﻼﻕ ﺷﻮﺩ، ﮔﺮﺩﺩ. ﺑﺮﺍﻱ ﺗﺮﺍﺷﻪ ﺍﻳﻦ ﻣﺨﺘﻠﻒ ﻃﺮﺍﺣﻴﻬﺎﻱ ﺤﻘﻖ ﺑﺮﻧﺎﻣﻪ ﻗﺎﺑﻞ ﻛﻨﻨﺪﻩ ﺍﺳﺘﻔﺎﺩﻩ ﺗﻮﺳﻂ ﺍﺳﺖ ﺭﻳﺰﻱ. ﺑﺮﻧﺎﻣﻪ ﺧـﺎﺹ ﻭﺳـﻴﻠﻪ ﻳـﻚ ﺩﺭ ﺁﻥ ﺩﺍﺩﻥ ﻗﺮﺍﺭ ﻣﺪﺍﺭ ﺍﺯ ﺗﺮﺍﺷﻪ ﻛﺮﺩﻥ ﺧﺎﺭﺝ ﻣﺴﺘﻠﺰﻡ ﻣﻌﻤﻮﻻ ﺭﻳﺰﻱ ﺑﺮﻧﺎﻣﻪ ﺗﺮﺍﺷﻪ ﺍﺯ ﺑﺮﺧﻲ ﺍﻣﺎ ﺍﺳﺖ، ﺭﻳﺰﻱ ﻣﻲ ﻫﺎ ﺳﻴﺴﺘﻢ ﺩﺭﻭﻥ ﺗﻮﺍﻧﻨﺪ) ﻣﺪﺍﺭ ﺍﺯ ﺗﺮﺍﺷﻪ ﻛﺮﺩﻥ ﺧﺎﺭﺝ ﺑﺪﻭﻥ( ﺑﺮﻧﺎﻣﻪ ﺷﻮﻧﺪ ﺭﻳﺰﻱ. Programmable Logic Array (PLA) ﺍﺳﺖ ﻣﻨﻄﻘﻲ ﺳﻄﺤﻲ ﺩﻭ ﻣﺪﺍﺭ ﻳﻚ) ﺻﻔﺤﻪAND ﺻﻔﺤﻪOR ( ﺑﺮﻧﺎﻣﻪ ﻗﺎﺑﻞ ﺩﻭ ﻫﺮ ﻛﻪ ﻫﺴﺘﻨﺪ ﺭﻳﺰﻱ. Programmable Array Logic (PAL) ﺍﺳﺖ ﻣﻨﻄﻘﻲ ﺳﻄﺤﻲ ﺩﻭ ﻣﺪﺍﺭ ﻳﻚ) ﺻﻔﺤﻪAND ﺻﻔﺤﻪOR ( ﺻﻔﺤﻪ ﻓﻘﻂ ﻛﻪAND ﺑﺮﻧﺎﻣﻪ ﻗﺎﺑﻞ ﺍﺳﺖ ﺭﻳﺰﻱ. Simple PLD (SPLD) ﻫﺮ ﺑﻪ ﻧﻮﻉPLD ﻣﻲ ﺍﻃﻼﻕ ﺳﺎﺩﻩ ﺷﻮﺩ) ﻋﻤﻮﻣﺎPAL, PLA .( Complex PLD (SPLD) ﺷﺒﻴﻪ ﺑﻠﻮﻙ ﭼﻨﺪﻳﻦ ﺍﺯ ﺁﺭﺍﻳﺸﻲ ﺷﺎﻣﻞSPLD ﺍﺳﺖ ﺗﺮﺍﺷﻪ ﻳﻚ ﺭﻭﻱ. ﺁﻧﻬـﺎ ﺑـﻪ ﺍﻭﻗـﺎﺕ ﮔـﺎﻫﻲSuper PAL ﻳـﺎMega PAL ﮔﻔﺘـﻪ ﻧﻴـﺰ ﻣﻲ ﺷﻮﺩ. Erasable PLD (EPLD) ﻧﻮﻉ ﻳﻚPLD ﺑﺮﻧﺎﻣ ﻗﺎﺑﻠﻴﺖ ﻣﺮﺗﺒﻪ ﭼﻨﺪﻳﻦ ﻛﻪ ﺍﺳﺖ ﺷﺪﻥ ﭘﺎﻙ ﻗﺎﺑﻞ ﺑﺎﺷﺪ ﺩﺍﺷﺘﻪ ﺭﻳﺰﻱ. Field Programmable Gate Array (FPGA) ﻧﻮﻉ ﻳﻚPLD ﮔﻮﻧﻪ ﺑﻪ ﺁﻥ ﺳﺎﺧﺘﺎﺭ ﻛﻪ ﺍﺳﺖ ﭘﻴﺎﺩﻩ ﺑﺮﺍﻱ ﻛﻪ ﺷﺪﻩ ﻃﺮﺍﺣﻲ ﺍﻱ ﺍﺳﺖ ﻣﻨﺎﺳﺐ ﺑﺴﻴﺎﺭ ﺳﻄﺤﻲ ﭼﻨﺪ ﻣﻨﻄﻘﻲ ﻣﺪﺍﺭﻫﺎﻱ ﺳﺎﺯﻱ. Mask Programmable Gate Array (MPGA) ﺁﺭﺍﻳﻪ ﺷﺎﻣﻞ ﻛﻪ ﺍﺳﺖ ﻣﺠﺘﻤﻊ ﻣﺪﺍﺭ ﻳﻚ ﺗﺮﺍﻧﺰﻳﺴﺘﻮﺭﻫﺎ ﺍﺯ ﺍﻱ ﭘﻴﺎﺩﻩ ﺑﺮﺍﻱ ﻛﻪ ﺍﺳﺖ ﻣﻲ ﻣﺨﺘﻠﻒ ﻣﺪﺍﺭﻫﺎﻱ ﺳﺎﺯﻱ ﺷﻮﻧﺪ ﻣﺘﺼﻞ ﻳﻜﺪﻳﮕﺮ ﺑﻪ ﺗﻮﺍﻧﻨﺪ. ﻳﻚMPGA ﺑﺮﻧﺎﻣﻪ ﺳﺎﺧﺖ ﭘﺮﻭﺳﻪ ﻫﻨﮕﺎﻡ ﺑﻪ ﻛﺎﺭﺧﺎﻧﻪ ﺩﺭ ﻣﻲ ﺭﻳﺰﻱ ﻧﻤﻲ ﺭﻭ ﺍﻳﻦ ﺍﺯ ﺷﻮﺩ، ﺟﺰﺀ ﺭﺍ ﺁﻥ ﺗﻮﺍﻥFPD ﻧﻤﻮﺩ ﻣﺤﺴﻮﺏ ﻫﺎ. ﺑﻪMPGA ﺍﻭﻗﺎﺕ ﮔﺎﻫﻲGate Array ﻳﺎApplication Specific Integrated Circuit ﺍﺧﺘﺼﺎﺭ ﺑﻪ ﻳﺎASIC ﻣﻲ ﮔﻔﺘﻪ ﺷﻮﺩ. Interconnect ﺳﻴﻢ ﻣﻨﺎﺑﻊ ﺑﻪ ﻳﻚ ﺩﺭ ﺑﻨﺪﻱPLD ﻣﻲ ﮔﻔﺘﻪ ﺷﻮﺩ. Programmable Switch ﺑﺮﻧﺎﻣﻪ ﻗﺎﺑﻞ ﺳﻮﺋﻴﭻ ﻣﻲ ﻣﺘﺼﻞ ﻳﻜﺪﻳﮕﺮ ﺑﻪ ﺭﺍ ﺍﺻﺎﻝ ﺳﻴﻢ ﺩﻭ ﻳﺎ ﺍﺗﺼﺎﻝ، ﺳﻴﻢ ﺑﻪ ﺭﺍ ﻣﻨﻄﻘﻲ ﻭﺍﺣﺪ ﻳﻚ ﻛﻪ ﺭﻳﺰﻱ ﻛﻨﺪ.

Transcript of FPGA Tutorial

Page 1: FPGA Tutorial

FPGAخودآموز سعيد صفري: تهيه كننده

مقدمه. دهد آنرا براي يك كاربرد خاص بكار برد اي است كه داراي ساختار مداري منظمي است، كه به طراح اجازه مي پذير تراشه يك تراشه برنامه

در عـوض بوسـيله خريـدار . دهـد شود، هيچ عمل مشخـصي را انجـام نمـي خارج مي ICپذير از كارخانه توليد هنگامي يك تراشه برنامه در چند سال اخير پيشرفتهاي زيـادي در ايـن زمينـه . شود تا يك عمليات مورد نياز را براي يك كاربرد مشخص انجام دهد ريزي مي هبرنام

. گنجايش بيشتر، سرعت بيشتر، راحتي استفاده و كم شدن هزينه: انجام شده است كه مهمترين آنها عبارتند از .پردازيم پذير مي هاي برنامه ين زمينه را معرفي كرده سپس به معرفي تراشهدر اين گزارش ابتدا اصطالحات موجود در ا

:اصطالحات• Field Programmable Device (FPD) or Programmable Logic Device (PLD)

حقق طراحيهاي مختلف اين تراشه براي ت. گردد شود، اطالق مي افزار استفاده مي عبارتي است كه به يك مدار مجتمع كه براي طراحي سختريزي معموال مستلزم خارج كردن تراشه از مدار و قرار دادن آن در يـك وسـيله خـاص برنامه. ريزي است توسط استفاده كننده قابل برنامه

.ريزي شوند برنامه) بدون خارج كردن تراشه از مدار(توانند درون سيستم ها مي ريزي است، اما برخي از تراشه برنامه

• Programmable Logic Array (PLA) .ريزي هستند كه هر دو قابل برنامه) OR و صفحه ANDصفحه (يك مدار دو سطحي منطقي است

• Programmable Array Logic (PAL)

.ريزي است قابل برنامهANDكه فقط صفحه ) OR و صفحه ANDصفحه (يك مدار دو سطحي منطقي است

• Simple PLD (SPLD) ).PAL, PLAعموما (شود ساده اطالق ميPLDنوع به هر

• Complex PLD (SPLD)

نيـز گفتـه Mega PAL يـا Super PALگـاهي اوقـات بـه آنهـا . روي يك تراشه استSPLDشامل آرايشي از چندين بلوك شبيه .شود مي

• Erasable PLD (EPLD)

.ريزي داشته باشد ه قابل پاك شدن است كه چندين مرتبه قابليت برنامPLDيك نوع

• Field Programmable Gate Array (FPGA) .سازي مدارهاي منطقي چند سطحي بسيار مناسب است اي طراحي شده كه براي پياده است كه ساختار آن به گونهPLDيك نوع

• Mask Programmable Gate Array (MPGA) يك . توانند به يكديگر متصل شوند سازي مدارهاي مختلف مي است كه براي پياده اي از ترانزيستورها يك مدار مجتمع است كه شامل آرايه

MPGA توان آن را جزء شود، از اين رو نمي ريزي مي در كارخانه و به هنگام پروسه ساخت برنامهFPD به . ها محسوب نمودMPGA .شود گفته ميASIC يا به اختصار Application Specific Integrated Circuit و يا Gate Arrayگاهي اوقات

• Interconnect

.شود گفته ميPLDبندي در يك به منابع سيم

• Programmable Switch .كند ريزي كه يك واحد منطقي را به سيم اتصال، يا دو سيم اصال را به يكديگر متصل مي سوئيچ قابل برنامه

Page 2: FPGA Tutorial

FPGAخودآموز سعيد صفري: تهيه كننده

• Logic Cell شود، ابتدا به زير سازي مي پياده FPDوقتي مداري در يك . شود تكرار مي FPDايي در رت آرايه يك بلوك مداري كوچك است كه بصو

.شود مدارهاي كوچكتري تجزيه شده و هر يك از آنها روي يك سلول منطقي نگاشت مي

• Logic Capacity . شود تعداد گيتهاي پايه بيان مياين مقدار معموال بر حسب. نگاشت شودPLDتواند در يك مقدار مداري است كه مي

• Speed Performance

شود و در مدارهاي تركيبي به طوالنيترين مسير بستگي داشته و در سازي مي پيادهPLDماكزيموم سرعت كاري مداري كه در يك .مدارهاي ترتيبي به ماكزيموم فركانس پالس ساعت بستگي دارد

Page 3: FPGA Tutorial

FPGAخودآموز سعيد صفري: تهيه كننده

نكات مهم داراي FPDاين به اين معنـي اسـت كـه . سازي مدارهاي منطقي است شوند و آن پياده ها براي يك منظور ساخته مي PLD تمام •

سـازي پيادهFPDتوانند در يك تعداد توابع منطقي كه مي. كند دادي ورودي است و يك يا چند تابع منطقي را بعنوان خروجي توليد مي تع و نوع مـدار از FPDبسته به نوع ) تاخير از ورودي تا خروجي(تاخير انتشار . تا چند صد تابع متغير است ٤ از FPDشوند بسته به نوع

.انوثانيه متغير است ن٥٠ تا ٤ جديـد بـا PLDبايد و اين امر به علت پيشرفت تكنولوژي است كه تقريبا هر ماه يـك ها روزبروز افزايش مي FPD كاربردهاي •

.شود ظرفيت و سرعت بيشتر و قيمت كمتر به بازار عرضه مي

شكل ١

Field Programmable Devicesهدف از

F = X.Y + Z

PLDF

F1

FnZ

Y

X

... ...

LogicFunctions

Logic CircuitInputs

شد فقط براي منظورهاي خاصي استفاده مي- بود PROM استفاده شد PLDاي كه بصورت اولين وسيله •

Page 4: FPGA Tutorial

FPGAخودآموز سعيد صفري: تهيه كننده

نكات مهم • PROMي منطقي مورد استفاده قرار گرفتاي بود كه براي مدارها اولين نوع تراشه. • PROM شامل يك ديكودر و يك آرايه دوبعدي از سلولهاي حافظه است كه ديكودر يكي از سطرهاي حافظه را انتخاب كرده به

.كند خروجي منتقل مي .كند سازي مي پيادهسازي توابع منطقي، خطوط آدرس وروديهاي مدار بوده و هر خط داده يك تابع منطقي مجزا را براي پياده• ١ يـا ٠داراي مقـدار ) خطـوط آدرس (دهد كه براساس اينكه تابع مورد نظر براي هر الگوي ورودي جدول صحت فوق نشان مي •

. باشد١ يا ٠باشد، خط داده متناظر با آن نيز بايد داراي مقدار . كند ت ممكن ضرب خطوط آدرس را توليد مي ثابت در نظر گرفت كه تمام جمال ANDتوان بصورت يك صفحه ديكودر را مي •

را فقط براي خطوط آدرسي كه تـابع بـه ١ريزي در نظر گرفت، زيرا خروجي قابل برنامهORتوان بصورت يك صفحه آرايه حافظه را مي .كند باشد، توليد مي مي١ازاء آن داراي مقدار

شكل ٢

هاFPDسير تكاملي

كند ريزي را تغذيه مي قابل برنامهORت در نظر گرفت كه يك صفحه ثابAND را بصورت يك صفحه PROMتوان مي •• PROM فقط وقتي مناسب است كه :

مدار داراي تعداد وروديهاي زيادي باشد .١ . زيادي باشد( P-Term )مدار داراي جمالت ضرب .٢

A1

A0

A2

Am

Dec

oder

...

...

...

...

...

...

n

dn d 1 d0

Logic FunctionInputs

Logic Function(s)

Am A 1 A0 dm d 1 d0

0 0 0 0 0 1 0 1 0

1 1 1

X X X

X X X X X X X X X

X X X

Truth Table

Page 5: FPGA Tutorial

FPGAخودآموز سعيد صفري: تهيه كننده

نكات مهم • PLA سازي مدارهاي منطقي سـاخته شـد پذيري بود كه بطور خاص براي پياده برنامه اولين نوع تراشه .PLA داراي صـفحه AND و

.ريزي است قابل برنامهORصفحه بنـابراين . وليـد كنـد تواند مجموع ايـن ضـربها را ت مي ORتواند هر عبارت ضربي از وروديها را توليد كند و صفحه مي AND صفحه •

PLAآل است سازي توابع به شكل مجموع حاصل ضربها ايده براي پياده. بـراي . اسـت NOR ، و يا يك صفحه NAND يا يك صفحه NOR ، دو صفحه NAND ها شامل دو صفحه PLA انواع مختلف •

PLAاصطالحا سازيم، به اين حالت ها با يك صفحه منطقي با كمك فيدبك مجموع ضربها را مي Folded Logicشود گفته مي. • PLA ها در دو نسخه OTP و RPشوند ساخته مي.

شكل ٣

Programmable Logic Arrays (PLAs)

ANDPlane

ORPlane

F = X.Y + Z

...

...

...

Outputs

Inputs

ريزي قابل برنامهORريزي و صفحه قابل برنامهAND صفحه •

( Sum of Product )سازي مجموع ضربها مناسب براي پياده • :دو نوع از آن وجود دارد •

One Time Programmable (OTP)ريزي يا يكبار قابل برنامه .١ Re-Programmable (RP)ريزي مجدد يا قابل برنامه .٢

Page 6: FPGA Tutorial

FPGAخودآموز سعيد صفري: تهيه كننده

نكات مهم به مراتب كمتـر اسـت، بنـابراين PROMجيهاي ديكودر در از تعداد خرو ) ٣٢حدود (AND تعداد خروجيهاي صفحه PLA در •

. در عمل بسيار راحتتر استPLAساخت تراشه كـه هميـشه تمـام وروديهـا را ديكـود PROMشوند و اين از ديكود مي AND فقط وروديهاي مورد نياز توسط صفحه PLA در •

.كند به مراتب كاراتر است ميتوانـد شده است و مـي ١ توسط مقاومت ANDشود يعني هرخروجي صفحه مي ساختهWired AND به صورت ANDصفحه •

بـر اسـاس قـانون ( شـود سـاخته مـي Inverter نيز با استفاده از همـين روش و دو ORصفحه . شود٠توسط ورودي متصل به آن ). Invert-AND-Invert = OR: دمورگان

ريزي بـه دو صـورت تواند بوسيله سوئيچهاي قابل برنامه ر گرفته شده، مي براي اتصال در نظ OR و ANDسيمهايي كه در صفحات • .اند اين سيمها از فيوز يا ترانزيستور ساخته شده. متصل و قطع عمل كند

شكل ٤

PLAشكل مداري

+5V

...

...+5V

Inputs

ANDPlane

Outputs

ORPlane

شوند سازي مي پيادهWired-AND بصورت ساختار OR و AND صفحات •

Page 7: FPGA Tutorial

FPGAخودآموز سعيد صفري: تهيه كننده

نكات مهم : دو اثر منفي دارد PLAريزي در وجود دو صفحه قابل برنامه •

تاخير انتشار نسبتا زياد. ٢ پر هزينه بودن ساخت .١• PAL كامال شبيه PLA است با اين تفاوت كه صفحه ANDريـزي و صـفحه قابل برنامهOR صـفحه . ثابـت اسـتAND ماننـد

PLA شود ولي صفحه ساخته ميOR حاوي گيتهاي معمولي ORهر يك از گيتهـاي . است كه بوسيله ترانزيستور ساخته شده استOR به خروجيهاي مشخصي از صفحه ANDمتصل است .

بـراي . هزينه بوده و از لحاظ سرعت كاري داراي كـارايي خـوبي هـستند ها كم PALريزي، ساخت با وجود يك صفحه قابل برنامه • ORاند كه از لحاظ تعداد گيتهـاي را به بازار عرضه كرده PAL سازندگان انواع مختلفي از ORريزي ل برنامه جبراين صفحه غير قاب

است كه داراي PAL16R8 هاي موجود در بازار PALيكي از مشهورترين . با يكديگر متفاوتندORو نيز تعداد وروديهاي گيتهاي .خروجي است/ پايه ورودي١٦ و OR گيت ٨

شكل ٥

Programmable Array Logic ( PALs )

n

n

n

n

n

n

D

D

D

D

D

D

AND

Plane

Inputs & Flip-FlopFeedbacks

Outputs

ريزي كه بدنبال آن يك صـفحه قابل برنامه AND صفحه • آمده است) ريزي غير قابل برنامه ( ORبت ثا• PAL در مقايسه با PLAسريعتر است . موجود استRP و OTPبه هردو صورت • بوسـيله ايجـاد امكانـات ORريزي صفحه غير قابل برنامه •

.بيشتر جبران شده است• PAL سـازي ماشـين بـا تعـداد با فليپ فالپ براي پيـاده

.سب است بسيار منا(FSM)وضعيت محدود

Page 8: FPGA Tutorial

FPGAخودآموز سعيد صفري: تهيه كننده

نكات مهم • SPLD ها معموال از نوع PAL و ندرتا از نوع PLA ظرفيت بيش از آن معمـوال در ( گيت است ٢٠٠ظرفيت آنها حداكثر . هستند

).گيرد ها قرار ميCPLDدسته . نانو ثانيه است٤از لحاظ سرعت داراي كارايي بسيار خوبي هستند، تاخير انتشار پايه به پايه آنها كمتر از •• SPLDشوند افزاري در بازار يافت مي ها براي محدوده وسيعي از كاربردها مناسب هستند و امروزه تقريبا در هر سخت.

شكل ٦

ها SPLDمروري بر

n

n

n

n

n

n

......

...

PLAPAL

گيت است٢٠٠ تقريبا برابر Simple PLDبيشترين ظرفيت •• PLA قابل انعطاف ترين SPLD است اما وجود دو سطح اتـصال قابـل

.ريزي به معني كند بودن سرعت است برنامه• PALبهترين دوست يك طراح ( تر و سريعتر هستند ها كم هزينه( ! توان تعداد وروديها را بطـور نامحـدود زيـاد خاطر ساختار اتصاالت نمي ب •

استLogic Capacityكرد و اين به معني محدوديت در :گيرد معموال در كاربردهاي زير مورد استفاده قرار مي •

١. Control Circuitry ٢. Glue Logic ٣. FSM

:محصوالت موجود در بازار •AMD, Altera, Atmel, Cypress, ICT. Lattice, Philips

Page 9: FPGA Tutorial

FPGAخودآموز سعيد صفري: تهيه كننده

نكات مهم هاي تجـاري داراي ظرفيتـي در حـدود CPLDبرخي از . در روي يك تراشه است SPLD داراي چندين بلوك شبيه CPLDيك •

) گيـت ١٢٠٠٠حـدود ( ها داراي بيـشترين ظرفيـت CPLD در بين Altera MAX 9000خانواده . گيت هستند٥٠٠٠ تا ١٠٠٠ .است

. ها اين امـر صـحيح نيـست روند، اما با توجه به متفاوت بودن تراشه صورت مترادف بكار مي ب FPGA و CPLDدر برخي از كتابها • .شوند طراحي ميEEPROM و يا EPROMريزي بصورت سوئيچهاي قابل برنامه

نطور كـه هما. كنند را به يكديگر متصل ميCPLD موجود در SPLDدهد كه بلوكهاي شبيه شكل فوق ساختار اتصاالت را نشان مي •شود سيمهاي اتصال بلند از تمام تراشه عبور كرده است، اين سيمها از طريق يك مالتي پلكسر وارد بلـوك شـبيه در شكل مشاهده مي

SPLDاي از سيمهاي سراسري وارد صفحه دهد كه زير مجموعه پلكسر اجازه مي مالتي. شود ميWired ANDشود .

شكل ٧

Complex PLDs ( CPLDs )

WiredAND

WiredAND

WiredAND

WiredAND

Inte

rcon

nect

100

30

Product-Term (PT)Architecture

PAL-Like Block

استPALحاوي چندين بلوك شبيه •ــام • ــصورت CPLDتمــ ــا بــ RP هــ

(EPROM, EEPROM )هستند

Page 10: FPGA Tutorial

FPGAخودآموز سعيد صفري: تهيه كننده

نكات مهم • CPLD اي از چند بلوك ها را بصورت مجموعهSPLD شكل فوق معماريهـاي ممكـن . گيريم روي يك تراشه در نظر ميCPLD

.دهد هاي بزرگ و خيلي بزرگ را نشان مي گيت نيـز بـه بـازار ٥٠٠٠ هايي با ظرفيت CPLD گيت است، اما برخي توليد كنندگان ٢٠٠٠ ها كمتر از CPLDبيشترين ظرفيت •

.اند عرضه كرده• CPLD بيني هستند داراي زمانبندي قابل پيش ها بعلت ساختار منظم اتصاالت .CPLD ٤با تاخير پايـه بـه پايـه ( هاي بسيار سريع

. مگاهرتز را پشتيباني كند١٠٠ برابر Clock Rateموجود است، كه قادر است مدارهايي با ) نانو ثانيه

شكل ٨

هاCPLDمروري بر

InterconnectSPLD block

I/O Pads

• CPLD ها از چندين SPLDاند تشكيل شده گيت كمتر است٥٠٠٠معموال بيشترين ظرفيت آنها از • اند معموال اتصاالت بصورت كامل بر قرار شده • تاخير اتصاالت قابل پيش بيني است • از لحاظ سرعت داراي كارايي خوبي هستند • ) گيت است ٢٠٠٠ظرفيت آنها كمتر از بطور معمول ( داراي ظرفيت محدود هستند • :موارد استفاده •

SPLDكاربردهاي .١پلكسر، رجيستر، پريتي، ديكـودر و شامل شمارنده، مالتي ( سيستمهاي كوچك .٢

)غيره :محصوالت •

AMD, Altera, Atmel, Cypress, ICT, Lattice, Xilinx

Page 11: FPGA Tutorial

FPGAخودآموز سعيد صفري: تهيه كننده

نكات مهم سيمي محدود ANDاختار مبتني بر عبارات ضربي، توسط ساختار صفحه ها مشاهده شد بيشترين ظرفيت سCPLDهمانطور كه در •

. ها را افزايش دادFPDهاي ساير تكنولوژيها بايد ظرفيت بنابراين با استفاده از ايده. شود مي• MPGA كه براي سادگي Gate Arrayر زمان توليد ها فقط د اين تراشه. شود، تراشه قابل سفارش با ظرفيت باال است نيز ناميده مي

كننـد، امـا داراي هزينـه زيـادي ها داراي ساختار دوبعدي هستند كه ظرفيت باال را پشتيباني مي MPGA. تراشه قابل سفارش هستند ). دالر ٢٠٠٠٠٠ تا ٢٠٠٠٠بين ( هستند

. بسيار طوالني است، در حدود چند ماهMPGAمدت زمان توليد • FPGA يـا Field Programmable Gate Array شد، كـه آنـرا MPGAريزي نامهعيوب فوق باعث ايجاد يك نسخه قابل بر •

.ناميدند

شكل ٩

Mask Programmable Gate Arrays (MPGAs)

I/O Blocks

I/O Blocks

I/O

Blo

cks

I/O

Blo

cks

Group Of~ 4 or 6

TransistorsRouting

Channels

ايي از چندين ترانزيستور است طرهايي از سلولهاي منطقي، كه هر يك مجموعهس •

ساختار عمومي، كاربردهاي گسترده • كارايي باال از لحاظ سرعت، ظرفيت باال • شود ريزي، متاليزه كردن در كارخانه كامل مي غير قابل برنامه •

Page 12: FPGA Tutorial

FPGAخودآموز سعيد صفري: تهيه كننده

نكات مهم • FPGA داراي ساختار دوبعدي عمومي نظير MPGAاست . محتـواي سـلول . اي از سلولهاي منطقي و كانالهاي مسيريابي افقي و عمودي است آرايهFPGAدهد همانطور كه شكل فوق نشان مي •

يـا SRAMشود كـه از ريزي انجام مي ز سوئيچهاي قابل برنامه با استفاده ا FPGAريزي برنامه. بستگي دارد FPGAمنطقي به نوع .آنتي فيوز ساخته شده است

.شود گيت فراتر مي٢٠٠٠٠ها از ها از همه بيشتر است و در برخي از تراشهFPGA ها ظرفيت PLDدر •• FPGA ها مانند PAL را تغيير داد، بلكه خود طرح را يك انقالب در طراحي مدارهاي منطقي بوجود آورد، و نه فقط نحوه طراحي

.نيز دستخوش تغيير قرار داد

شكل ١٠

Field Programmable Gate Arrays (FPGAs)

I/O Cell

Interconnection

Logic Cell

PALريزي شبيه ، قابل برنامهMPGAساختار عمومي شبيه •

بسيار قابل انعطاف، محدوده وسيعي از كاربردها • موجود استRP و OTPمحصول هر دو نوع •

Page 13: FPGA Tutorial

FPGAخودآموز سعيد صفري: تهيه كننده

نكات مهم شود به نحوي كه هر يـك از ايـن قطعـات در يـك شود ابتدا به قطعات كوچكي تجزيه مي سازي مي پياده FPGAمداري كه در يك •

اسـت و يـا LUT مبتني بر بستگي دارد، ولي معموال يا FPGAمحتواي سلولهاي منطقي به نوع محصول . سلول منطقي جاي بگيرد .مبتني بر مالتي پلكسر

• LUT يك . شود سازي يك جدول صحت استفاده مي يك حافظه ديجيتال كوچك است كه براي پيادهLUT بـا n 2 ورودي دارايn .سازي كند بيتي را پيادهn تايي را نگهداري كند، يعني يك تابع nتواند يك جدول صحت سلول حافظه است، بدين معني كه مي

.سازي نمود توان هر تابع منطقي را فقط با مالتي پلكسر پياده اند كه مي پلكسر بر اين اساس ساخته شده سلولهاي مبتني بر مالتي •

شكل ١١

FPGAسلولهاي منطقي

LUT FunctionInputs

LUT - Based

MUX FunctionInputs

Multiplexer- Based

Select

شود، به قطعات كوچكتر تجزيه شـده، و سازي مي پياده FPGAمداري كه در • .شود سازي مي هر يك از اين قطعات در يك سلول منطقي پياده

:ي وجود دارد دو نوع سلول منطق •١. Look Up Table (LUT) مالتي پلكسر .٢

Page 14: FPGA Tutorial

FPGAخودآموز سعيد صفري: تهيه كننده

نكات مهم مورد استفاده در مثال فوق داراي سـه ورودي LUT. دهد را نشان مي LUT توسط سازي مدار شكل فوق يك مثال از چگونگي پياده •

LUT-3 داراي سه ورودي است بنابراين در يك f=xy+zبا توجه به شكل سمت چپ تابع . شود ناميده مي LUT-3است، بنابراين كنـد، جـدول ابع را در خود ذخيـره مـي است كه جدول صحت تSRAMهاي از سلولهاي داراي مجموع LUT. شود سازي مي پياده

.شود ذخيره ميLUT در FPGAريزي صحت به هنگام برنامهشكل باال سازمان استاندارد حافظـه را . كند بصورت فيزيكي چگونه تحقق پيدا مي LUTدهد كه يك دو شكل سمت راست نشان مي •

سـازمان ديگـر بـراي . كند كي از هشت سلول حافظه را انتخاب مي شود كه ي دهد كه سه خط آدرس به يك ديكودر وارد مي نشان مي LUT در اين حالت هشت سلول . در شكل پايين نشان داده شده استSRAMبـسته بـه . كند يك درخت مالتي پلكسر را تغذيه مي

.كند مناسب را به خروجي منتقل ميSRAMپلكسر محتواي درخت مالتيLUTمقدار وروديهاي

شكل ١٢

LUTمثالي از سلول منطقي مبتني بر

xy

z

f

3-LUTxyz

f

x y z f

0 0 0 0

1

0

1

0

1

1

1

0

0

0

0

0

0

0

0

0

1

1

1 1

1

1

1

1

1

1

1

1

3-8Decoder

x

y

z

01010111

SRAM01010111

f

z y x

SRAMEquivalent

Truth Table

Page 15: FPGA Tutorial

FPGAخودآموز سعيد صفري: تهيه كننده

نكات مهم

مثـال فـوق نحـوه . سـازي نمـود توان هر تابع منطقي را فقط با استفاده از مالتي پلكـسر پيـاده دانيم مي از تئوري مدارهاي منطقي مي • . دهد نشان ميFPGAپلكسر يك سازي يك مدار كوچك را در سلول منطقي مبتني بر مالتي پياده

Actسازي اين مدار را در ماجول منطقي مدار مثال در قسمت وسط شكل نشان داده شده است و شكل سمت راست يك روش پياده •

.دهد نشان مي1

شكل ١٣

مثالي از سلول منطقي مبتني بر مالتي پلكسر

z

y 0 x 0

f

z001

A0 A1 SA S1

f

S0SBB1B0

xy

f

Actel Logic Module Implementation

f = x.y + z

Page 16: FPGA Tutorial

FPGAخودآموز سعيد صفري: تهيه كننده

نكات مهم • FPGA ها بر دو نوع مبتني بر تكنولوژي SRAMو مبتني بر آنتي فيوز هستند . .رسد گيت نيز مي٢٠٠٠٠ ها داراي ظرفيت بسيار زيادي هستند كه به مرز PLDدر مقايسه با ساير •اي كاربردهاي خاص به سرعتي بـاالتر بر FPGA ها قابل پيش بيني نيست، اما برخي از توليد كنندگان CPLDتاخير اتصاالت مانند •

. مگاهرتز است٥٠ هاي معمولي در حدود FPGAمعموال ماكزيموم سرعت كاري . اند مگاهرتز رسيده١٠٠از

شكل ١٤

ها FPGAمروري بر

• FPGA ها مبتني بر SRAMيا آنتي فيوز هستند • FPGA ها بسيار قابل انعطاف هستند و ظرفيت آنها نيز بسيار بـاال اسـت )

) هزار گيت ٢٠ تا ٢بين تاخير آنها متغير است • :موارد استفاده •

١. DMA Controller ٢. Video Controller ٣. Multiprocessor Bus Arbiter ٤. Small CPU

:محصوالت •Actel, Altera, AT&T, Atmel, Cypress, QuickLogic, Xilinx

Page 17: FPGA Tutorial

FPGAخودآموز سعيد صفري: تهيه كننده

نكات مهم نامد، اما ايـن ميEPLDها را اين تراشهAltera. است Altera هاي كالسيك PLD ها ،PALبصورت تئوريك مهمترين رقيب •

هاي استاندارد صنعتي هستند كه تراشهAltera هاي كالسيك EPLD. ريزي مجدد است با قابليت برنامهPALبه معني وسيله شبيه .شوند ميبصورت گسترده توليد

تعـداد . EP330, EP610, EP910, EP1810: داراي اعـضاي زيـادي اسـت، ماننـد Altera هـاي كالسـيك PLDخـانواده •هـا بـر اسـاس تمام تراشـه . نانوثانيه تاخير پايه به پايه است ٢٠ تا ١٢ و كارايي سرعتي آنها بين ٤٨ تا ٨ها بين ماكروسلهاي اين تراشه

.ريزي شوند توانند از طريق پنجره كوارتز روي تراشه پاك شده و سپس مجددا برنامه و مي هستند،EPROMتكنولوژي

شكل ١٥

EPLD هاي كالسيك Altera

• EPLD : SPLD شبيه PALريزي قابل برنامه Altera EP610: مثال •

تر ، اما قابل انعطافPAL شبيه .١ EPROM تكنولوژي .٢ AND دو صفحه .٣ شانزده ماكروسل .٤ باشندRS و يا D ، JK ، Tتوانند از نوع فليپ فالپها مي .٥ باشند) يا مشترك ( جداگانه Clockتوانند داراي فليپ فالپها مي .٦ توانند ورودي و يا خروجي باشند تمام خطوط داده مي .٧ . كندتر استPAL برابر از سريعترين ٥ تا ٢ .٨

Page 18: FPGA Tutorial

FPGAخودآموز سعيد صفري: تهيه كننده

نكات مهم هـاي تمام پايه. شود جدا از هم تغذيه مي AND ماكروسل است كه بوسيله دو صفحه ١٦ داراي EP610دهد كه شكل فوق نشان مي •

EP610 دوسويه هستند، اين بدين معني است كه وروديهاي صفحه ANDيا بوسـيله پايـه ( شود هميشه بوسيله ماكروسل تغذيه مي ).شود متصل ميAND و يا بوسيله همان پايه كه خروجي است و بصورت فيدبك به صفحه EP610ورودي

پيكربنـدي JK و يا D ، T ، SRتوانند بصورت مي EP610پهاي فليپ فال . ورودي هستند ٨ همه داراي EP610 در ORگيتهاي • . به تمام ماكروسلها متصل استClockيك پايه خاص . شوند

شكل ١٦

Altera EP610

Macrocell#1

8

Macrocell#3

8

Macrocell#8

8

ANDPlane

Macrocell#2

8

Macrocell#9

8

ANDPlane

Macrocell#10

8

Macrocell#11

8

Macrocell#16

8

40

Clock

In/Output

40

In/Output

In/Output

In/Output

In/Output

In/Output

In/Output

Page 19: FPGA Tutorial

FPGAخودآموز سعيد صفري: تهيه كننده

نكات مهم فقـط T و Dبراي فليپ فالپهـاي . اين است كه نوع فليپ فالپهاي آن قابل پيكربندي است EP610مهمترين ويژگي ماكروسلهاي •

خروجي فليـپ فـالپ Clockا باشد ب١ OR اگر خروجي گيت Tدر مد ( گيرد ورودي مورد استفاده قرار مي ٨ با ORيك گيت Toggle كند و در صورتي كه خروجي گيت ميOR همانطور كه شكل ) . ماند باشد خروجي فليپ فالپ بدون تغيير باقي مي ٠

ايـن Alteraاگرچـه در . نياز داريـم OR به دو گيت JK و SRسازي فليپ فالپهاي دهد بصورت تئوري براي پياده فوق نشان مي .شود استفاده ميORگيرد، لذا در عمل فقط از يك گيت صورت ميTزودن منطق به فليپ فالپ عمل با اف

AND جداگانه كه بوسيله صـفحه Clockتوان براي هر فليپ فالپ از يك سراسري مي Clock عالوه بر وجود يك EP610در • .شود استفاده نمود توليد مي

شكل ١٧

EP610 ماكروسل

10

10y

x

C

/

/

/

N

8-N

8

1

Q

I/O pin

Global Clock

to AND - Plane

fromAND - Plane

جداگانه براي هر فليپ فالپ استClockداراي • جداگانه براي هر فليپ فالپ استResetداراي • قابل پيكربندي هستندJK و يا D ، T ، RSپها بصورتهاي فليپ فال •

Page 20: FPGA Tutorial

FPGAخودآموز سعيد صفري: تهيه كننده

نكات مهم

• EP1810 نسخه بزرگتر EP610 ماكزيموم ظرفيت . فالپها است است كه داراي همان نوع ماكروسلها و فليپEP1810 توان را مياگـر تعـداد ). بدسـت آورد EP1810تعداد كـل ماكروسـلهاي ( ٤٨يا محاسبه تعداد گيتهاي معادل يك ماكروسل و ضرب آن در

فـرض كنـيم، ) دو ورودي اسـت NANDيك گيت متناظر با عملكرد يك گيت ( گيت ٢٠ك ماكروسل را تقريبا گيتهاي معادل ي . گيت قابل استفاده است١٠٠٠ تقريبا برابر EP1810ظرفيت

شكل ١٨

Altera EP1810 SPLD/CPLD

استAltera EP610اي ماكروسلهايي شبيه دار •

مجموعه ماكروسل است٤داراي •

:داراي سلسله مراتب دو سطحي است •

براي ارتباط بين ماكروسلهاي يك بخش: اتصاالت محلي .١ براي ارتباط بين ماكروسلهاي بخشهاي مختلف: اتصاالت سراسري .٢

در نظر گرفت Complex PLD ( CPLD )توان آنرا بعنوان اولين مي •

Page 21: FPGA Tutorial

FPGAخودآموز سعيد صفري: تهيه كننده

نكات مهم • EP1810 دهد كه اين تراشه به چهار شكل فوق نشان مي. گيرد سله مراتبي است كه مورد بحث قرار مي داراي ساختار سل اولين تراشه

بخش بصورت ٤ است، بنابراين هريك از اين ماكروسل تشكيل شده ١٢ و ANDبخش تقسيم شده است كه هر كدام از يك صفحه را به يكديگر متصل SPLDست كه اين بلوكهاي شبيه اين تراشه داراي يك گذرگاه سراسري ا. كند عمل مي SPLDيك بلوك شبيه

توان مدارهاي حاوي چندين ماجول مجزا را درون يك تراشه نگاشت كرد و از گذرگاه سراسري براي ارتباط بـين بنابراين مي . كند مي .ماجولها استفاده نمود

ماكروسـل بـه ٤رود، و محلـي بكـار مـي AND ماكروسل موجود براي فيدبك بـه صـفحه ١٢ تا از ٨ SPLDدرون هر بلوك شبيه •. داراي قابليت انعطاف محدودي است SPLDاين ساختار عليرغم برقراري ارتباط بين بلوكهاي شبيه . گذرگاه سراسري متصل هستند

٦٨ اين تراشه با . تجاري دانست CPLD را اولين EP1810توان در روي يك تراشه، مي SPLDبا توجه به وجود چند بلوك شبيه . موجود است PLCC, PGAبنديهاي پايه و در بسته

شكل ١٩

Altera EP1810 SPLD/CPLD

Glo

bal B

us

Macrocell 1Macrocell 2Macrocell 3

Macrocell 12

In/Outputs

ANDPlane

12 4

32

8

Macrocell 13Macrocell 14Macrocell 15

Macrocell 24

In/Outputs

ANDPlane

12 4

32

8

16

Clock 1

Clock 2Inputs 16

Clock 14

Clock 3Inputs

Macrocell 48Macrocell 47Macrocell 46

Macrocell 37

In/Outputs

ANDPlane

124

32

8

Macrocell 36Macrocell 35Macrocell 34

Macrocell 25

In/Outputs

ANDPlane

124

32

8

......... ...

Page 22: FPGA Tutorial

FPGAخودآموز سعيد صفري: تهيه كننده

نكات مهم :، اما مهمترين آنها عيارتند از) پارامتر٣٠حدود (شود ها با پارامترهاي زيادي سنجيده ميSPLDكارايي سرعتي •

)شود ناميده مي tpdكه ( تاخير تركيبي از يك پايه ورودي تا يك پايه خروجي .١ )شود ناميده مي tsuكه ( فليپ فالپ Setup زمان .٢ )شود ناميده مي tcoكه (نتشار به خروجي دار براي اClock تاخير مورد نياز يك فليپ فالپ .٣

پارامترهاي زمانبندي ديگري كه براي برخي از كاربردها مهم هـستند تـاخير . هر يك از اين پارامترها در شكل فوق نشان داده شده اند • .است به صفحه منطقي ORداخلي براي انتشار سيگنال در يك صفحه منطقي و تاخير فيدبك از يك پايه خروجي يا گيت

tco نانوثانيـه و ٣ برابـر tsu نانوثانيـه، ٥/٤برابر tpd: هاي معمولي تقريبا به اين صورت است SPLDمقادير پارامترهاي فوق براي • .باشد ميEEPROMهاي مبتني بر و نيز تراشهBipolarهاي مبتني بر فيوزهاي اين سرعت براي تراشه. نانوثانيه٤برابر

شكل ٢٠

هاSPLDكارايي سرعتي

AND OR FFI/O

Buffer

CLK

OUTIN

tsu

tco

OUT

IN

CLK

tpd

سه عامل مهم مقايسه •١. tpd : تاخير تركيبي پايه به پايه ٢. tsu : زمانSetupفليپ فالپها ٣. tco : تاخير ازClockتا خروجي فليپ فالپ

Page 23: FPGA Tutorial

FPGAخودآموز سعيد صفري: تهيه كننده

نكات مهم CMOSستفاده از نـوع تكنولوژي مورد ا. دهد را نشان ميAltera MAX 5000 هاي سري CPLDشكل فوق ساختار برخي از •

EPROM اي از است و هر تراشه شـامل آرايـهLogic Array Block (LAB) اسـت كـه بـصورت SPLD در نظـر گرفتـه PIAتمـام سـيمها در . شوند به يكديگر متصل ميProgrammable Interconnect Array (PIA) ها بوسيله LAB. شوند مي

.شود ني شدن كارايي ميبي يكسان هستند و اين باعث قابل پيش نانوثانيه تاخير پايـه بـه ٢٥ گيت متغيير است، و كارايي سرعتي آنها حدود ٤٠٠٠ تا ٣٠٠ از Altera MAX 5000ظرفيت خانواده •

. موجود استQFP پايه ١٠٠ و نيز PLCC, PGA پايه ٨٤بندي در بستهMAX 5000خانواده . پايه است است MAX 7000اين خانواده نسل اوليه . دهد يت مناسبي را با هزينه كم در دسترس قرار مي كارايي و ظرفMAX 5000خانواده •

.كه كاراتر و پر ظرفيت تر هستند

شكل ٢١

Altera MAX 5000 CPLDsسري

EPM5064 EPM5128 EPM5192

Global Interconnect(PIA)

Logic Array Block(LAB)

Altera كارخانه CPLDهاي اولين سري تراشه • ) نانو ثانيه تاخير انتشار ٢٥ گيت و ٤٠٠٠ تا ٣٠٠( ظرفيت و كارايي سرعتي مناسب •

Page 24: FPGA Tutorial

FPGAخودآموز سعيد صفري: تهيه كننده

نكات مهم Expandeاي از ماكروسلها و يك آرايه اضافي از عبارات ضربي كـه آرايه: از دو بخش تشكيل شده MAX 5000 در LABيك •

Product Termآرايه ماكروسل به يك . شود ناميده ميSPLD نظير Altera EP610 شبيه است، با اين تفاوت كـه گيتهـاي OR ، در )بيشتر موارد توابع منطقي بـه گيتهـاي بيـشتري نيـاز ندارنـد علت اين امر اينست كه در ( ورودي هستند ٣در اينجا فقط داراي

٣٢ تـا ١٦ داراي LAB هـر MAX 5000در تراشه . بزرگتر توسعه دهنده عبارات ضربي موجود استORصورت نياز به گيتهاي .باشد توسعه دهنده عبارات ضربي مي١٦ماكروسل و تقريا

. شـود براي اتصال ماكروسلها و توسعه دهنده عبارات ضربي به يكديگر استفاده مـي داراي سيمهاي اتصال محلي است كه LABهر •تاخير انتشار سيگنال در سيمهاي اتصال محلي به . شوند ناميده ميPIAكنند را به يكديگر متصل ميLABسيمهاي سراسري كه چند

MAX 5000بنـابراين در . تمام سيمها يكسان هـستند PIAمراتب كمتر از سيمهاي سراسري است، اما در سيمهاي محلي و يا در .بيني نمود توان تاخير را پيش مي

شكل ٢٢

Altera MAX 5000 Logic Array Block (LAB)

Array ofMacrocells

ExpanderProduct Term

Array

PIA

I/O Pins

داراي سه ورودي هستندORهاي با اين تفاوت كه گيتAltera EP610 SPLDاي از ماكروسلها، شبيه آرايه • (Expander Product Term)رود توسعه دهنده عبارات ضربي، براي توليد گيتهاي بزرگتر در موقع نياز بكار مي • داراي اتصاالت محلي و سراسري است •

Page 25: FPGA Tutorial

FPGAخودآموز سعيد صفري: تهيه كننده

نكات مهم سـه ورودي را تغذيـه OR اسـت كـه يـك گيـت ANDهمانطور كه در شكل فوق مشخص است، هر ماكروسل داراي يك صفحه •

. شود و بصورت دلخواه توسط يك فليپ فالپ رجيستر شـود XOR ، NOTتواند بوسيله يك گيت مي ORخروجي گيت . كند ميهمچنين ماكروسل براي فليپ فالپ . كنند سراسري يا توسط يك جمله ضرب عمل مي Clock بوسيله يك LABالپهاي هر فليپ ف

. استReset و Setداراي جمله ضرب استفاده شود، و يـا بـصورت يـك گيـت ) مثال مقايسه كننده (XORسازي توابع داراي تواند براي پياده در ماكروسل مي XORگيت •

NOTريزي استفاده شود رنامه قابل ب. PIA متصل شود، و يا بـه سـيمهاي LABتواند به ساير ماكروسلهاي محلي و توسعه دهنده عبارت ضربي در همان هر ماكروسل مي •

شـود، كـه ايـن پايـه متصل مـي ) دوسويه(خروجي / به پايه ورودي Tri-Stateهر ماكروسل از طريق يك بافر . سراسري متصل شود . را نيز تغذيه كندPIAتواند مي

.شود ورودي نياز داشته باشند، از توسعه دهنده عبارت ضربي استفاده مي٣ با بيش از ORبراي توابعي كه به گيت •

شكل ٢٣

)LAB تا در هر ٣٢- ١٦ (Altera MAX 5000ماكروسل

LAB System Clock

State

D

R

SQ

Mux

Array Clock

Reset

Set

MacrocellProgrammableInterconnectArray Signals

LAB ExoanderProduct Terms

LABMacrocellFeedbacks

Note : x = Programmable EPROM switch

و فيدبك قابل انعطافXOR ورودي، گيت ٣ ORگيت • سراسري يا جداگانهClock ، و CLEAR, PRSET باشد، D, SR, T, JKتواند از نوع فالپ مي فليپ •

Page 26: FPGA Tutorial

FPGAخودآموز سعيد صفري: تهيه كننده

نكات مهم حاوي LABهر . تواند استفاده شود مي LAB اضافي است كه بوسيله ماكروسلهاي همان ANDتوسعه دهنده عبارت ضربي، شامل •

LAB ،Invertتوجه كنيد كه توسعه دهنده عبارت ضربي قبل از اتصال به سيم اتصال محلـي . ضربي است توسعه دهنده عبارت ٣٢توانـد كند، توسعه دهنده عبـارت ضـربي مـي آنرا فراهم مي NOT هم خود سيگنال ورودي و هم LABچون اتصاالت در . شود مي

.شود انجام ميinvert-AND-invert = ORز قانون دمورگان اين امر با استفاده ا. سازي كند بزرگ را پيادهORگيتهاي ورودي داراي ٣ ORبايد توجه داشت كه سيگنالهاي عبوري از توسعه دهنده عبارت ضربي، در مقايسه با سيگنالهاي عبوري از گيت •

يـر قابـل تـوجهي در مـدار داراي تاخير كمي است، توسعه دهنده عبارت ضـربي تـاخير متغ LABدر حاليكه . تاخير بيشتري هستند از توسـعه دهنـده عبـارت ضـربي CPLDهاي به همين دليل سريهاي بعدي تراشه. كند ايجاد ميMAX 5000سازي شده در پياده

.كنند استفاده نمي

شكل ٢٤

Altera MAX 5000توسعه دهنده عبارت ضربي

GlobalInterconnect

LABInterconnect

Note :x = Programmable EPROM switch

To LABInterconnect

......

Expander Product Terms

X1

X2

X3

X1.X2.X3 = X1+X2+x3( Very large OR is possible )

invert-AND-invert = ORطبق قانون دمورگان • ) ورودي كافي است٣ ORبطور متوسط گيت (كند فراهم ميLABتهاي اضافي را در هر در صورت نياز گي • توسعه دهنده موجود است٣٢ LABتقريبا در هر •

Page 27: FPGA Tutorial

FPGAخودآموز سعيد صفري: تهيه كننده

نكات مهم • MAX 7000 نسل بعدي CPLD هاي Altera پس از MAX 5000تراشه . استMAX 7000 ٥/٧ داراي كارايي سرعت بين

. گيت است٥٠٠٠ تا ٦٠٠ نانوثانيه و نيز معادل ٢٠و ، )MAX 5000درست مانند (اند به يكديگر متصل شدهPIAرايه از بلوكها است كه از طريق داراي يك آ MAX 7000هر تراشه •

بيني است، زيرا تمام سـيمها داراي كارايي سرعتي قابل پيش PIA. سريعتر شده است PIAتر و قابل انعطاف LABبا اين تفاوت كه .داراي طول يكساني هستند

شكل ٢٥

Altera MAX 7000سري

PIA

LABI/OBlock

گيت٥٠٠٠ تا ٥٠٠ظرفيت بسيار زياد، بين • نانوثانيه٦ي فوق العاده، تاخير انتشار تركيبي كارايي سرعت • EEPROM و EPROMدر دو نوع •

Page 28: FPGA Tutorial

FPGAخودآموز سعيد صفري: تهيه كننده

نكات مهم توانـد از هر ماكروسل مي. تايي از ماكروسلها است١٦دهد، كه شامل يك آرايه را نشان ميMAX 5000 LABشكل فوق ساختار •

نيـز متـصل PIA مستقيما به I/Oهاي ، پايه )در شكل نشان داده نشده است ( متصب سود I/Oطريق يك بافر سه حالته به يك پايه . است با اين تفاوت كه توسعه دهنده عبارت ضربي وجود نداردMAX 5000اين ساختار شبيه . هستند

هيچ يـك از ايـن . بنديهاي مخلف موجود است و در بستهEEPROM و EPROM در دو نوع MAX 7000از نظر تكنولوژي •ريـزي درون يك نسخه قابل برنامه ١٩٩٦، اما در سال )EEPROMحتي نوع ( ريزي درون سيستم نيستند انواع داراي قابليت برنامه

. ارائه شده است MAX 7000سيستم از تواند تا ميORگيت . كند با تعداد وروديهاي متغير را تغذيه ميORت عبارت ضربي است كه يك گي٥ داراي MAX 7000 ماكروسل

. شـود تـامين مـي LAB تا بقيـه از ماكروسـلهاي همـان ١٥ تا از آنها از جمله ضرب محلي ماكروسل و ٥ ورودي داشته باشد كه ٢٠ .شود وارد ميOR ضرب به گيتهاي شود جمالت ضرب از طريق يك ماتريس انتخاب همانطور كه در شكل صفحه بعدي مشاهده مي

شكل ٢٦

Altera MAX 7000 LAB

I/O

Con

trol

Blo

ck

PIA

Array of 16Macrocells

to I/O Cells

LAB

گذارند است، ماكروسلها عبارات ضربي را به اشتراك ميMAX 5000 LABبسيار كاراتر از • .تر است پيچيدهSPLD از يك LABهر •

Page 29: FPGA Tutorial

FPGAخودآموز سعيد صفري: تهيه كننده

نكات مهم داراي MAX 7000 LABالت ضربي بين ماكروسلها، شود، عالوه بر به اشتراك گذاشتن جم همانطور كه در شكل فوق مشاهده مي •

تواند با سـاير ، مي LABاين جمله ضربي از هر ماكروسل . به سيمهاي اتصال محلي است NOTيك جمله ضربي فيدبك از طريق منطقـي سازي مدارهاي ساختار مناسبي براي پيادهMAX 7000 LAB. اي را بسازد جمالت ضربي تركيب شده و منطقهاي گسترده

جمله ضربي نياز ندارند، و در ضمن توابع بزرگتر با به اشتراك گذاشتن جمالت ضربي پـشتيباني ٥است، زيرا بيشتر توابع به بيش از .شوند مي

و يك جملـه ضـربي PRESET قابل پيكربندي است و داراي يك جمله ضربي براي D,T,SR,JK بصورت LABفالپهاي فليپ • پالريته خروجي را قابـل XORيك گيت . راي همان ماكروسل محلي و يا براي كل تراشه سراسري است است كه ب RESETبراي بـراي اتـصال ( توجه كنيد كه بافر سه حالته . شود نياز دارند، استفاده مي XORسازي توابعي كه به كند و يا براي پياده ريزي مي برنامه

.در شكل نيامده است ) I/Oماكروسل به پايه

شكل ٢٧

Altera MAX 7000ماكروسل

PIA

D

R

SQ

State

to PIA

GlobalClock

Inputs from otherMacrocells in LAB

...

...

Clear (GlobalClear not shown)

Array Clock

Set

Local LABInterconnect Product Select

Matrix هستندLAB جمله ضربي از ماكروسلهاي همان ١٥ جمله ضربي از همان ماكروسل و ٥ داراي ORگيتهاي •

Page 30: FPGA Tutorial

FPGAخودآموز سعيد صفري: تهيه كننده

مهمنكات تواند با استفاده از اشتراك ورودي است كه مي٥ با OR بطور عادي داراي گيت MAX 7000همانطوركه قبال اشاره شد، ماكروسل •

.شود اين امر به دو صورت توسعه دهنده موازي و توسعه دهنده اشتراكي انجام مي.منابع مجموعهاي بزرگتر را نيز تحقق بخشدهمانطور كـه در . كند مي Cascade يك ماكروسل به ورودي ماكروسل ديگر آنها را ORتصال خروجي گيت دهنده موازي با ا توسعه •

دهنده موازي يك، دو و يا سه ماكروسل ديگر كه در همسايگي بـاالي آن هـستند را تواند توسعه شود، يك ماكروسل مي شكل ديده مي . كند نانوثانيه تاخير اضافه مي٣ تا ٨/٠كند كه بين ورودي ايجاد مي٢٠ با ORاين نوع به اشتراك گذاشتن يك گيت . قرض كند

بـا اسـتفاده از . متـصل اسـت LABكند كه بصورت فيدبك به اتصاالت محلي توسعه دهنده اشتراكي از يك جمله ضربي استفاده مي •شـوند و سـپس دهنده اشتراكي متـصل مـي شده به توسعهNOTشوند، بصورت ORقضيه دمورگان، سيگنالهايي كه بايد با يكديگر

.كند شود و يك جملع مجموع توليد مي ميNOTخروجي آن

شكل ٢٨

هاي موازي و اشتراكيتوسعه دهنده

......

...

...

Signals tobe ORed

Sum

Parallel ExpandersShared Expanders

) نانوثانيه٣-٨/٠( ، توسعه دهنده موازي سريعترين است ٢٠ تا ٥ با تعداد وروديهاي بين ORبراي • ) نانوثانيه٣بيش از ( ، توسعه دهنده اشتراكي سريعترين است ٢٠براي با تعداد وروديهاي بيش از •

Page 31: FPGA Tutorial

FPGAخودآموز سعيد صفري: تهيه كننده

نكات مهم گيت ١٢٠٠٠ گيت به ماكزيموم ٥٠٠٠ ها را از CPLD به بازار عرضه شد و ظرفيت ١٩٩٥ در سال Altera MAX 9000خانواده •

ري موارد برگرفته شده از معمـا . استMAX 7000 و Altera FLEX 8000 FPGA تركيبي از ساختار MAX 9000. رساندFLEX 8000 عبارتست از منابع اتصال (FastTrack) ١٢. كه از سيمهاي افقي و عمودي طوالني ولي سريع تشكيل شـده اسـت حاوي سيمهاي محلـي اسـت كـه ماكروسـلهاي درون يـك LAB يك FLEX 8000مانند . اند جمع شدهLABماكروسل در يك

LABورد برخالف توجه كنيد كه اين م. كند را به يكديگر متصل ميMAX 7000است كه تمام ماكروسلها از طريق PIA سراسري I/Oهـاي توانند يه يكـديگر متـصل شـوند، و تمـام پايـه در محل تقاطع مي FastTrackسطر و ستونهاي . به يكديگر متصل هستند

مستقيما به خروجي ماكروسلها I/Oهاي است كه پايهMAX 7000اين امر نيز متفاوت با . شوند متصل ميFastTrackمستقيما به .متصل بودند

• MAX 9000 از طريق پورت استاندارد صنعتي JTAGريزي است درون سيستم قابل برنامه.

شكل ٢٩

Altera MAX 9000 CPLDs ...

...

I/O

I/O

...

...

...

...

...

...

...

...I/O

I/O

...

...

...

...

...

Fast TrackRow

Fast TrackColumnLAB

گيت١٢٠٠٠ تا ٦٠٠٠ ، Altera هاي CPLDترين خانواده جديدترين و پرظرفيت • نانوثانيه١٥ تا ١٢كارايي سرعتي بين • JTAGريزي درون سيستم، از طريق پورت برنامهقابليت •

Page 32: FPGA Tutorial

FPGAخودآموز سعيد صفري: تهيه كننده

نكات مهم سـتون . متـصل اسـت FastTrack متصل اسـت و ورودي آن بـه سـطر FastTrack به ستون MAX 9000خروجي ماكروسل •

FastTrack هـر . شـوند تواننـد بـه سـتونها متـصل تواند مستقيما به سطرها متصل شود، اما سطرها فقط با عبور از ماكروسلها مي مي . سيم در ستون متصل شود٣تواند به ماكروسل مي

٣٣( سـيم محلـي وجـود دارد ١١٤بطور كلـي . ت عبور كرده اس LABشود سيمهاي محلي از كل همانطور كه در شكل مشاهده مي •توجـه كنيـد كـه دو ). توسعه دهنـده اشـتراكي ١٦ آنها و NOT فيدبك از ماكروسلها و ١٦ آنها ، NOT و FastTrackورودي از

Clock سراسري و يك Clear دركل تراشه( سراسري براي تمام ماكروسلها موجود است.(

شكل ٣٠

Altera MAX 9000 LAB

...LocalArray

GlobalClear

2 GlobalClocks

Array of 16Macrocells

SharedExpanders

Page 33: FPGA Tutorial

FPGAخودآموز سعيد صفري: تهيه كننده

نكات مهم است، با ايـن تفـاوت MAX 7000دهدكه بسيار شبيه به ماكروسل را نشان ميMAX 9000شكل فوق ساختار داخلي ماكروسل •

يكي از خروجيها به يـك سـتون . تواند تركيبي يا رجيستر شده باشد شود كه هر يك از آنها مي نجا دو خروجي مجزا توليد مي كه در اي FastTrack شود و خروجي ديگر بصورت فيدبك به اتصاالت محلي متصل ميLAB دهنـده توجه كنيد كه توسـعه . شود متصل مي

داراي MAX 9000. نيز وجـود دارنـد MAX 9000 شد، در توضيح دادهMAX 7000هاي موازي و اشتراكي كه قبال در مورد . سراسري استClock داراي يك سيگنال MAX 7000 سراسري براي ماكروسلها است، در حاليكه Clockدو سيگنال

شكل ٣١

Altera MAX 9000ماكروسل

D

R

SQ

State

to PIA

2 GlobalClock

Inputs from otherMacrocells in LAB

...

...

Clear (GlobalClear not shown)

Array Clock

Set

Product SelectMatrix

FastTrackInputs (33)

MacrocellFeedback (16)

SharedExpanders

(16)

to Row or ColFastTrack

، فقط داراي دو خروجي استMAX 7000بسيار شبيه ماكروسل • متصل استLAB و اتصال محلي FastTrackماكروسل به •

Page 34: FPGA Tutorial

FPGAخودآموز سعيد صفري: تهيه كننده

نكات مهم • Altera FLEXlogic CPLD ) 22حـاوي چنـدين بلـوك شـبيه ) توسط اينتل توليد شـد ١٩٩٤كه در سالV10 PAL اسـت .

FLEXlogic ريـزي مـورد تكنولـوژي برنامـه . نانوثانيه اسـت ١٠ گيت است و داراي تاخير پايه به پايه ٣٢٠٠ تا ٨٠٠ داراي ظرفيت .ريزي درون سيستمي وجود دارد قابليت برنامهEEPROMبراي انواع . استEEPROM FLASH يا EPROMفاده است

اما يك ويژگي . بسيار شبيه محصوالتي است كه تاكنون مورد بررسي قرار گرفته استFLEXlogic CPLDاز لحاظ عمليات اصلي • پيكربنـدي SRAMتوانـد بـصورت ميPAL، وآن اينستكه هر بلوك شبيه كند ها جدا مي اصلي است كه اين تراشه را از ساير تراشه

( را PALدهد بلـوك شـبيه همانطور كه شكل صفحه بعدي نشان مي . گيرد اين مفهوم در صفحات بعدي مورد بررسي قرار مي . شود. شـود استفاده مـي SRAMبار بصورت و يكPALيكبار بصورت ) ناميم ميCFBكه از اين به بعد آنرا بلوك تابعي قابل پيكربندي

. شود قابل نوشتن و خواندن مي١٢٨٠×١٠ يك حافظه PAL ، بلوك SRAMدر پيكربندي

شكل ٣٢

Altera (Intel) FLEXlogic CPLD

ولت ٥ يا ٣/٣ ، FLASH يا EPROMتكنولوژي مورد استفاده •

SRAM بيت حافظه ٢٠٤٨٠ تا ٥١٢٠ گيت قابل استفاده بعالوه ٣٢٠٠٠ تا ٨٠٠ظرفيت •

نانوثانيه١٠كارايي سرعتي باال ، حدود •

بهينه شده است22V10 PAL عدد ١٦ - ٤شامل •

پيكربندي شود) ROMيا (SRAMتواند بصورت يك بلوك ميPALهر بلوك •

JTAG boundary scan، قابليت تست ريزي درون سيستم قابليت برنامه •

Page 35: FPGA Tutorial

FPGAخودآموز سعيد صفري: تهيه كننده

نكات مهم طـوط آدرس، داده و كنترلـي حافظـه شـود، در ايـن حالـت خ وارد مـي AND بصورت عادي به صفحه PALوروديهايي كه در مد •

. وجـود نـدارد OR و ANDحالته در مد حافظه نيز وجود دارنـد، ولـي صـفحات فالپها و بافرهاي سه توجه كنيد كه فليپ . شود مي SRAM و يا حافظه AND-OR را بصورت حافظه پيكربندي نمود، بايد تمام بلوك بصورت PALتوان قسمتي از يك بلوك نمي . نانوثانيه است١٠ حدود SRAMزمان دستيابي . باشد

يــا EPROM يــك (Shadow) اســت كــه بــصورت ســايه SRAM از نــوع AND-ORبيتهــاي پيكربنــدي منطــق صــفحات •EEPROM سلولهاي . باشد ميSRAM با اعمال منبع تغذيه با يـك كپـي از سـلولهاي غيرفـرار EPROM يـا EEPROM بـار

كردن اطالعـات جديـد DownLoadتوان با مي. كنند است كه پيكربندي بلوك را مشخص مي SRAMشود، اما اين سلولهاي مي با قطع برق اطالعات پيكربندي جديد از EPROMبراي تراشه . تراشه را درون سيستم مجددا پيكربندي نمود SRAMدرون سلول

ريزي شود، بنابراين برنامه نوشته ميEEPROM مجددا درSRAM محتواي سلولهاي EEPROMهاي رود، اما براي نسخه بين مي .مجدد غير فرار مهيا شده است

شكل ٣٣

Altera (Intel) FLEXlogic CPLD

Global Interconnect Matrix

I/OI/OI/O

I/O I/O I/O I/O

InClk

10

128

SRA

M

10

Data In

Address

Control

ClkData Out

CFBin SRAMmode

CFBin PAL

mode

I/O

Page 36: FPGA Tutorial

FPGAخودآموز سعيد صفري: تهيه كننده

نكات مهم :كند كيب مي ها را با هم ترSPLD ها و MPGA ها مزاياي FPGAدهد كه شكل فوق نشان مي •

كند استفاده ميMPGA از ساختار دو بعدي .١ . استفاده شده استSPLDريزي از قابليت برنامه .٢

هـاي اوليـه FPGA. سـازي مـدارهاي منطقـي اسـت ريزي با ظرفيت باال براي پياده تهيه يك وسيله قابل برنامه FPGAايده اصلي •(Xilinx XC2000) ولي امروزه ظرفيت گيت بودند،١٠٠٠ داراي ظرفيت FPGA گيت رسيده است٢٠٠٠٠ ها به حدود .

هـا را داراسـت، امـا در عمـل چنـين نيـست، ظرفيـت CPLD ها و MPGA ها فقط مزاياي FPGAشود با وجود اينكه گفته مي •FPGA برابر كمتر از ٣ برابر و سرعت آنهاحدود ١٠ ها حدود MPGAها است .

. ها داراي سرعت كمتر و ظرفيت بيشتري هستندFPGA ها، بيشتر FPDدر مقايسه با •

شكل ٣٤

Field Programmable Gate Arrays (FPGAs)

MPGAs SPLDs

General Structure User Programmable

FPGAs

Drawbacks

Advantage

ها شگفت انگيز هستند؟FPGAچرا •

Page 37: FPGA Tutorial

FPGAخودآموز سعيد صفري: تهيه كننده

نكات مهم دهد كـه در شكل فوق نشان مي. ها نسبت به طراحيهاي تمام اختصاصي داراي هزينه كمتري است FPGAريزي، بعلت قابليت برنامه •

. ها براي استفاده مناسب هستند، اما هميشه بهترين انتخاب نيستندFPGAيعي از وضعيتها محدوده وس). بعلت هزينه كم و سـرعت نـسبتا بـاال ( ها مناسب هستندSPLD گيت ١٠٠با توجه به محور عمودي براي ظرفيت زير •

در شكل فـوق . ا مناسب هستند ه CPLD گيت تا چندهزار گيت ٢٠٠براي طرحهاي با اندازه متوسط، با ظرفيتي بيش از داراي MAX 9000نـسخه جديـد ( ها رو بـه افـزايش اسـت CPLDدهد كه ظرفيت گيت نشان مي٥٠٠٠پيكان در ). گيت است١٢٠٠٠ظرفيت

هـاي بر اساس تعداد تراشه (دهد با توجه به شكل، محور افقي بهترين انتخاب تكنولوژي را براي مدارهاي بزرگ نشان مي • مقرون به صرفه اسـت و در MPGAهنگاميكه چند هزار تراشه مورد نياز است، از لحاظ اقتصادي استفاده از ). ازمورد ني

. حالت نهايي فقط طراحي تمام اختصاصي عملي است

شكل ٣٥

FPGAs

ها درست است؟FPGAچه موقع استفاده از •

SPLDs

CPLDs

MFGAsFPGAs

Standard Cell, FullCustom

100 1000 10000 100000

100

1000

5000

10000

20000

Gates

Page 38: FPGA Tutorial

FPGAخودآموز سعيد صفري: تهيه كننده

نكات مهم • FPGA ها مبتني بر SRAM از يك سلول SRAM بعلت فرار بودن، يك . كنند ريزي استفاده مي براي كنترل سوئيچهاي قابل برنامه

ROM كوچك به FPGA گـاهي اوقـات يـك ( رود كه براي پيكربندي آن به هنگام اتصال منبـع تغذيـه بكـار مـي شود، متصل مي ). دهد كامپيوتر ميزبان با يك كابل سريال اين عمل را انجام مي

: داراي چندين مزيت است SRAMاستفاده از تكنولوژي • .ريزي مجدد است به هر تعداد كه مايل باشيم قابل برنامه .١ .ريزي شود تم برنامهتواند درون سيس مي .٢ .كامال در كارخانه قابل آزمايش است .٣ .كند فيوز ، ظرفيت با سرعت بيشتري رشد مي به نسبت تكنولوژي آنتي .٤

: عبارتند از SRAMمعايب استفاده از تكنولوژي • .شود ريزي استفاده مي براي نگهداري بيتهاي برنامهROMفرار بودن ، معموال از يك . ١ .كند سطح قابل توجهي از تراشه را اشغال ميSRAM سلولهاي. ٢

شكل ٣٦

FPGA هاي مبتني بر SRAM

Static RAMريزي مبتني بر تكنولوژي برنامه •

:مزايا •

ارريزي مجدد در مد قابل برنامه .١

در كارخانه كامال قابل آزمايش است .٢

:شركتها •١. Xilinx ٢. Altera ٣. AT&T ٤. Atmel

FPGA

ROM

Page 39: FPGA Tutorial

FPGAخودآموز سعيد صفري: تهيه كننده

نكات مهم ، سطح اول بجـاي بلوكهـاي شـبيه ) ها CPLDشبيه ( داراي ساختار سلسله مراتبي دو سطحي است Altera FLEX 8000سري •

SPLDاي از شامل مجموعهLUT ها است و به همين علت FLEX 8000 در دسته FPGAبايد توجـه داشـت . گيرد ها قرار مي . استCPLD و FPGAكه بعلت ساختار اين تراشه بصورت تركيبي از

• FLEX 8000 يك FPGA مبتني بر SRAM است كه سلول منطقي پايه آن يك LUT ورودي است٤ با . اراي بيشترين ظرفيـت اين تراشه د ١٩٩٤طبق آمار بدست آمده در سال . گيت متغير است ٢٠٠٠٠ گيت تا ٤٠٠٠ظرفيت اين تراشه از •

٤٠٠٠٠حـدود ( اسـت AT&Tامروزه بيشترين ظرفيت متعلق بـه شـركت . هاي موجود در آن سال بود FPGAدر مقايسه با ساير ).گيت

درصـد از ديگـر ٧٥ايـن سـري حـدود . در اسم خود است، يك زير خانواده سريعتر اسـت A كه داراي يك FLEX 8000تراشه • ). موجود استSRAM مبتني بر FPGAدر حقيقت اين تراشه سريعترين ( سريعتر است هاي اين خانواده تراشه

شكل ٣٧

Altera FLEX 8000 FPGAs ...

...

...

......

...

...

...

...

...

...

I/O

I/O

...

...

I/O

I/O

LAB( 8 Logic Elements &Local Interconnect )

FastTrackInterconnect

معماري •

آمار •

سيستمClockنرخ گيتهاي معادل FFتعداد I/Oتعداد هاLEتعداد خانوادهEPF 8000 مگاهرتز٥٠بيش از ١٦٠٠٠-٢٥٠٠ ١٥٠٠-٢٨٢ ٣٠٤-٨٤ ١٥٠٠-٢٨٢

EPF 8000A مگاهرتز٧٥بيش از ١٢٠٠٠-٤٠٠٠ ١١٨٨-٤٥٢ ٢٤٠-٨٠ ١١٨٨-٤٥٢

Page 40: FPGA Tutorial

FPGAخودآموز سعيد صفري: تهيه كننده

نكات مهم اين . است ورودي ٤ با LUTشود، در پايين ترين سطح سلسله مراتب يك ناميده ميLogic Element (LE)سلول منطقي پايه كه •

LEسازي كند ورودي را پياده٤تواند يك تابع منطقي با مي. هـا بـه LEدهد كـه بـا اتـصال اجازه مي Cascadeمدارهاي . خاص براي مدارهاي رياضي است Carry حاوي يك مدار LEيك •

ن دو تابع خـاص ايـن اسـت كـه يك عيب اي . سازي كنيم هاي بزرگتر بسازيم و توابع منطقي بزرگتر را پياده OR و ANDيكديگر CAD، و اين باعث محـدود شـدن ابـزار )Cascade يا Carryاز طريق حلقه ( كند ديگري متصل مي LE را به LEمستقيما يك

.براي نگاشت مدار روي تراشه است . رجيستر شودDتواند بصورت تركيبي بوده يا بوسيله يك فليپ فالپ نوع ميLEخروجي •

شكل ٣٨

Altera FLEX 8000 Logic Element (LE)

Look-UpTable

Cascade

Set/Clear

Clock

Carry

QDS

R

Data1

Cascade In

Data3Data2

Data4

Carry In

Cntrl1Cntrl1

Cntrl3Cntrl4

Cascade Out

LE Out(~ 4 ns )

Carry Out

Page 41: FPGA Tutorial

FPGAخودآموز سعيد صفري: تهيه كننده

نكات مهم • LEهاي هشت تايي تشكيل ها در مجموعهLogic Array Block (LAB)دهند را مي. .كند متصل ميLAB ديگري در همان LE را به LE حاوي يك اتصال محلي است و هر سيم محلي يك LABهر • .كند وروديهايي را دريافت ميFastTrack يعني FLEX 8000اتصال محلي همچنين از اتصال سراسري • . به يكديگر متصل شوندCascade يا Carryتوانند مستقيما از طريق مدار ها ميLEعالوه بر استفاده از اتصال محلي، •

شكل ٣٩

Altera FLEX 8000 Logic Array Block (LAB)

و يك اتصال محلي استLEحاوي هشت •

LE4

LE4

LE4Data

Cascade,Carry24

CntrlFrom FastTrackInterconnect

To FastTrackInterconnect

To FastTrackInterconnect

To FastTrackInterconnect

To Adjucent LAB

...0.5 ns

Page 42: FPGA Tutorial

FPGAخودآموز سعيد صفري: تهيه كننده

نكات مهم • FLEX 8000 فقط داراي يك نوع اتصال است كه FastTrackشود، و براي اتصال ناميده ميLABرود ها بكار مي .FastTrack

. كند يتمام طول يا عرض تراشه را طي م• FastTrack كند، چون هر اتصاالت زيادي را ايجاد ميLAB را بدون محدوديت به LAB ايـن امـر كـار . كنـد ديگـر متـصل مـي

يـك اسـتثناء بـراي . كند، و اين به معني ساده شدن كار طراح است آسان ميCAD را براي ابزار FLEX 8000پيكربندي اتوماتيك كنـد و رابشدت محـدود مـي CAD استفاده شود، اين امر ابزار Cascade يا Carryدهد كه از حلقه سادگي پيكربندي وقتي رخ مي

.شود مشكالتي را باعث مياين وضعيتي است كه . بيني است قابل پيشFLEX 8000 يكسان هستند، بنابراين تاخيرهاي اتصاالت در FastTrackتمام سيمهاي •

).اتصاالت ممكن است از قطعات كوچك يا بزرگ سيم تشكيل شود در آنها ( ها نداريم FPGAدر ساير

شكل ٤٠

Altera FLEX 8000 FastTrack Interconnect

كند هر سيم تمام عرض يا طول تراشه را طي مي •

...

...

...

...

I/O

I/O

...

...

...

I/O

I/O

5 ns

...

3 ns

اتصاالت زيادي فراهم شده است •

Page 43: FPGA Tutorial

FPGAخودآموز سعيد صفري: تهيه كننده

نكات مهم هـا CLBي دو بعـدي از كنند و ساختار آنها به صورت آرايه استفاده مي SRAM از تكنولوژي Xilinx شركت FPGAهاي تراشه •

.است

.هاي متفاوت هستند گنجايش و كارايي داراي سه نسل با FPGAهاي اين خانواده از تراشه •

شكل ۴۱

Xilinx FPGAs

I/O Block

VerticalRoutingChannel

HorizontalRoutingChannel

ConfigurableLogic Block

معماري •

آمار •

سيستمClockنرخ گيتهاي معادل FFتعداد I/Oتعداد هاCLBتعداد خانوادهXC2000 ۱۰۰-۶۴ ۷۴-۵۸ ۱۷۴-۱۲۲ ۱۸۰۰-۱۲۰۰ ۳۰ مگاهرتز XC3000 ۴۸۴-۶۴ ۱۷۶-۶۴ ۱۳۲۰-۲۵۶ ۹۰۰۰-۲۰۰۰ ۸۰ مگاهرتز XC4000 ۱۰۲۴-۶۴ ۲۵۶-۶۴ ۲۵۶۰-۲۵۶ ۲۵۰۰۰-۲۰۰۰ ۵۰ مگاهرتز

Page 44: FPGA Tutorial

FPGAخودآموز سعيد صفري: تهيه كننده

نكات مهم يـك تـابع سازي يادهتواند براي پ چهار ورودي است كه ميLUT داراي يك CLBهر . ها داراي ساختار يكساني هستند CLBتمام •

.منطقي چهار ورودي و يا دو تابع منطقي سه ورودي مورد استفاده قرار بگيرد

.تواند به صورت تركيبي يا ترتيبي باشد ميCLBخروجي •

شكل ۴۲

XC2000 CLB

.سازي كند را پيادههاي خود ورودي تواند هر تابعي از است كه مي LUT يكحاوي •

Look-UpTable D

Q

QS

R

ABCD

Inputs

Clock

Y

XOutput

s

User-ProgrammableMultiplexer

Note :

Page 45: FPGA Tutorial

FPGAخودآموز سعيد صفري: تهيه كننده

نكات مهم .نوع مسير ارتباطي سيمهاي مستقيم، همه منظوره و طوالني داريمسه •

.رود ي آن به كار مي همسايهCLB با سه CLBسيمهاي مستقيم براي ارتباط هر •

با اتصال سـيمهاي همـه منظـوره از .گيرد كانالهاي ارتباطي مورد استفاده قرار مي ها از طريق CLBسيمهاي همه منظوره براي ارتباط • .توان سيمهايي با طول بيشتر ساخت ميSwitch Matrixطريق

.گيرد مورد استفاده قرار ميClock باال مانند Fanoutسيمهاي طوالني براي سيمهاي با •

شكل ۴۳

XC2000 Interconnect

long و direct ،general-purpose: سه نوع ارتباط •

CLB CLB

SwitchMatrix

SwitchMatrix

CLB CLB

CLB CLB

DirectInterconnect

GeneralPurposeInterconnect

LongLines

GeneralPurposeInterconnect

Page 46: FPGA Tutorial

FPGAخودآموز سعيد صفري: تهيه كننده

نكات مهم سـازي يـك تـابع تواند براي پياده پنچ ورودي است كه مي LUT داراي يك CLBر ه. ها داراي ساختار يكساني هستند CLBتمام •

.منطقي پنچ ورودي و يا دو تابع منطقي چهار ورودي مورد استفاده قرار بگيرد

هـاي خـود را از تواننـد ورودي هـا مـي همچنـين فليـپ فـالپ . داراي دو فليپ فـالپ اسـت CLBسازي بهتر رجيسترها براي پياده • . استفاده نمودCLB داخل LUTشود كه بتوان از فليپ فالپ مستقل از اين امر باعث مي. دريافت كنندCLBي ها ورودي

شكل ۴۳

XC3000 CLB

• LUTبا پنج ورودي و دو فليپ فالپ

Look-UpTable

D

Q

QS

R

ABC

E

Inputs

Y

X

OutputsD

D

Q

QS

R

Vcc

GND(GlobalReset)

EnableClock

Clock

Reset

Data In

Page 47: FPGA Tutorial

FPGAخودآموز سعيد صفري: تهيه كننده

نكات مهم . و طوالني داريمسه نوع مسير ارتباطي سيمهاي مستقيم، همه منظوره •

.رود ي آن به كار مي همسايهCLB چهار با CLBسيمهاي مستقيم براي ارتباط هر •

توانـد هـر مـي Switch Matrix .گيـرد ها از طريق كانالهاي ارتباطي مورد استفاده قرار ميCLBسيمهاي همه منظوره براي ارتباط • .سيم ورودي را به چند سيم خروجي متصل كند

.گيرد مورد استفاده قرار ميClock باال مانند Fanoutبراي سيمهاي با وجود دارد كه سيمهاي طوالني از تعداد بيشتري •

شكل ۴۵

XC3000 Interconnect

XC200تعداد بيشتر مسيرهاي ارتباطي در مقايسه با •

SwitchMatrix

SwitchMatrix

DirectInterconnect

GeneralPurposeInterconnect

SwitchMatrix

SwitchMatrix

CLB CLB CLB

CLB CLB CLB

CLB CLB CLB

Long LinesRoutingSwitch

Page 48: FPGA Tutorial

FPGAخودآموز سعيد صفري: تهيه كننده

نكات مهم .كند سه ورودي را تغذيه ميLUT چهار ورودي يك LUT است، كه دو LUT داراي دو سطح CLB هر •

و يا يك تـابع منطقـي چهار ورودي با دو تابع منطقي ،پنچ ورودي ورودي وبا دو تابع منطقي دوسازي تواند براي پياده مي CLBهر • .مورد استفاده قرار بگيرد ورودي ۹با

. دريافت كنندCLBهاي هاي خود را از ورودي توانند ورودي ها مي فليپ فالپ •

شكل ۴۶

XC4000 CLB

خروجي۴ ورودي و ۱۲ و دو فليپ فالپ، كال LUTسه •

LookupTable

G4G3G2

Inputs

G1

LookupTable

F4F3F2F1

LookupTable

Selector

D

Q

QS

RE

D

Q

QS

REVcc

C1 C2 C3 C4

Q2

G (4-6 ns)

Q1

G (4-6 ns)

F (4-6 ns)Clock

Outputs

State

State

Page 49: FPGA Tutorial

FPGAخودآموز سعيد صفري: تهيه كننده

نكات مهم .اند جايگزين شدهdouble-length و single-lengthسيمهاي مستقيم و همه منظوره با سيمهاي •

كـه single-lengthهر سيم . است XC3000دهد كه متناظر سيمهاي مستقيم در را نسان مي single-lengthشكل باال سيمهاي • .تواند به يك سيم در خروجي متصل شود فقط ميSwitch Matrixوارد يك

شكل ۴۷

XC4000 Interconnect

اند اند و به جاي آنها تعداد مسيرهاي همه منظوره افزايش يافته مسيرهاي مستقيم حذف شده •

CLB

WiringSegment

RoutingSwitch

F4G1

F

F1

F2

F3

G4

G3

G2

C1

C4

C3

C2

G

Clock

Q2

Q1

SwitchMatrix

SwitchMatrix

SwitchMatrix

SwitchMatrix

Page 50: FPGA Tutorial

FPGAخودآموز سعيد صفري: تهيه كننده

نكات مهم . عبور كنند، كارايي بيشتري را به همراه داردSwitch Matrixتوانند از يك كه ميdouble-lengthسيمهاي •

شكل ۴۸

XC4000 Interconnect

CLB CLB

CLBCLB

Vertical LongLines

Six RoutingSwitches

DoubleLengthLines

Page 51: FPGA Tutorial

FPGAخودآموز سعيد صفري: تهيه كننده

نكات مهم Carry ورودي و Carry بيتي با ۲تواند يك جمع تواند در مد محاسباتي پيكربندي شود كه مي ميXC4000ي در تراشهCLBهر •

اي است كه مستقيما توسط كننده كننده به مراتب بيشتر از جمع كارايي سرعتي اين جمع . سازي كند اي پياده را به صورت بهينه خروجي LUTسازي شود ها پياده.

ي ا صورت حافظه هاي چهار ورودي به LUT پيكربندي شود كه در آن هر يك از RAMي صورت يك حافظه تواند به مي CLBهر • . آيد بيتي در مي۱ي كلمه۱۶با گنجايش

شكل ۴۹

XC4000 Arithmetic Circuitry and RAM

LUT

LUT

Cout

B1

A1

B0

A0

Cin

S1

S0

(5 ns)

(5.5ns)

(5 ns)

Carry Logic

Carry Logic

LUT

LUT

A3A2A1A0

A3A2A1A0

(4 ns)CellData

(4 ns)CellData

CLB Inputs

wed

wed

Address Lines

S1 S0 = A1 A0 + B1 B0 + Cin Each LUT = 16 x 1 RAM