FPGA – הבדלי גרסאות

תוכן שנמחק תוכן שנוסף
Adrory (שיחה | תרומות)
מ הגהה
Adrory (שיחה | תרומות)
מ הגהה
שורה 1:
[[File:Altera-StratixIIGX-FPGA.jpg|שמאל|ממוזער|250px|רכיב FPGA של חברת אלטרה]]
 
'''FPGA''' (ראשי תיבות של "'''Field-Programmable Gate Array'''") הוא סוג של [[רכיבמעגל אלקטרונימשולב]], אשר ניתן להגדיר ולשנות את תפקודו לאחר ה[[ייצור]], בתהליך הדומה ל[[תכנות]]. הגדרת תפקוד הרכיב מתבצעת על ידי הזנה של תרשים [[לוגיקה בוליאנית|לוגי]] או על ידי שפות לתיאור מעגלים (כדוגמת [[VHDL]] או [[Verilog]]).
 
היתרונות בשימוש ב-FPGA הם:
* בגלל שרכיבי FPGA הם ברי תכנות, ניתן לעדכן את התוכנה שלהם, גם לאחר שלב הייצור, ואפילו לאחר שהמוצר מגיע אל לקוח הקצה (כדוגמת עדכוני [[קושחה]]).
* שלב התכנון של [[מעגל אלקטרוני|המעגל האלקטרוני]] פשוט יותר, והוא כולל בעיקר [[תכן]] של שילוב רכיב ה-FPGA ב[[מעגל מודפס]] (בניגוד לתכנון פרטני של [[מעגל אלקטרוני דיגיטלי]] פיזי, העוסק את כל פרטי הלוגיקה הנדרשת)
* ניתן להתחיל בתהליך ייצור המעגלים המודפסים עוד לפני שהלוגיקה נכתבה/ או הושלמה
* ניתן לחלק את העבודה בין צוותים שונים, האחד עובד על תכנון המעגלים הפיזיים, והשני על המעגלים הלוגיים שיטענו לתוך ה-FPGA. לחלופין, ניתן לפזר את העומס מצוות תכנון בודד, שראשית מתכנן את המעגל המודפס, ובזמן שזה נמצא בתהליכי ייצור, הצוות יכתוב את הלוגיקה עבור ה-FPGA.
* תהליך הפיתוח הוא מהיר ביותר מאחר ואין צורך בתהליך ייצור כלשהו ולכן מתאים מאוד לפיתוח של אב טיפוס.
[[קובץ:Logic block2.svg|שמאל|ממוזער|250px|בלוק לוגי]]
ה-FPGA מורכב מיחידות לוגיות ברות תכנות, ומרשת של אמצעים לחיבור/ניתוק וניתוק בין היחידות השונות. בטעינת ה-FPGA מקבלות היחידות הגדרה לאופי פעולתן, והיחידות מתחברות ליחידות אחרות, בצורה שמממשת את המעגל הלוגי הכולל. רכיבי FPGA יכולים לממש מגוון פונקציות, החל מלוגיקות פשוטות כגון [[שער לוגי|שערים לוגיים]] וכלה ביכולות מורכבות כגון [[דלגלג]]ים ומרחבי [[זיכרון (מחשב)|זיכרון]].
 
==שימושים==
ה-FPGA התחיל את דרכו כמקביל ומתחרה ל-[[CPLD]], אך ככל שהגודל, היכולות, ומהירות הפעולה של ה-FPGA גדלו, גדל גם נתח השוק של רכיבים מסוג זה, וכיום מקובל למצוא רכיבי FPGA כ-[[system onמערכת-על-שבב]] chip([[:en:soc|SoC]]).
 
נהוג להשתמש ברכיבי FPGA עבור מעגלים שנועדו לבצע משימות בעלות אותו אופי, אך שונות אחת מהשנייה בלוגיקה הפנימית (ולא ב[[ממשק]]ים החיצוניים), ואשר מיוצרים בכמויות קטנות. במעגלים אלו, העלות של התכנון והייצור של כל דגם היא גבוהה יחסית, ולכן יש היגיון לשאוף לפיתוח של מעגל חשמלי בעל ממשקים משותפים שיתאימו למספר מוצרים שונים, ובכך להגדיל את כמות המעגלים שמיוצרים (ולהפחית את ה-NRE למעגל כפי שקיים ב [[ASIC]], וכתוצאה מכך את העלות למעגל).
 
בזכות המבנה הפנימי של רכיבי ה-FPGA, הם שימושיים במיוחד בתחומים הדורשים [[עיבוד מקבילי]], וניתן לבצע בהם כמות גדולה יחסית של פעולות וחישובים, אפילו כאשר קצב [[אות שעון|אות השעון]] נמוך יחסית. יכולת זו שימושית במיוחד בתחום פיצוח [[הצפנה|הצפנות]], ואף פתחה אפשרות לסוג חדש של עיבוד, שבו רכיבי ה-FPGA מסייעים למעבד הראשי בביצוע פעולות מסוימות, לפעמים על פי הגדרת תצורה ספציפית, שנטען לתוך ה-FPGA מיד לפני ביצוע החישוב ב-FPGA.
 
המגבלה העיקרית בשילוב רכיבי FPGA במחשבים היא מגבלתיכולת הביצועים מבחינת מהירות והספק בהשוואה למעגלי [[VLSI]] בתכנון מלא וב [[ASIC]] ומגבלת הסיבוכיות האפשרית הנמוכה ב-FPGA, בהשוואה לאפשרויות בתוכנה רגילה. אחת הדרכים להתמודד עם מגבלה זו היא להפחית את הדיוק היכן שניתן, ע"מ לנצל את המקביליות של ה-FPGA. מגבלה נוספת היא זמן ההכנה הארוך יחסית (בהשוואה לתוכנה רגיל) מרגע שהוגדר שינוי מסוים בתצורת הטעינה של ה-FPGA, עד לרגע שניתן להשתמש בתצורה הזו.
 
== ראו גם ==