تُظهر الصورة إحدى الكتل الـ64 لرقاقة XC2064. تتم إزالة طبقات المعدنة ، يمكننا أن نرى ترانزستورات السيليكون والبوليسيليكون تحت المعدنة. يمكنك أن ترى صورة أكبر حجمًا هنا: siliconpr0n .
تم اختراع FPGA بواسطة Ross Freeman ، المؤسس المشارك لشركة Xilinx في عام 1984 ، وكان أول FPGA هو XC2064. كانت أبسط بكثير من FPGAs الحديثة ، حيث احتوت فقط على 64 كتلة منطقية ، مقارنة بالآلاف والملايين في FPGAs الحديثة ، وأدى إنشائها إلى ظهور صناعة تبلغ قيمتها مليارات الدولارات. يعد الطراز XC2064 مهمًا جدًا لدرجة أنه دخل قاعة المشاهير في Chips. لقد أجريت هندسة عكسية لـ XC2064 وفي هذا المنشور أشرح هيكله الداخلي بعبارات عامة وكيف تمت برمجته باستخدام تيار بتات.
زيلينكس
Xilinx -. , , Xilinx , . Xilinx Seiko Epson Semiconductor Division ( Seiko Epson).
XC2064
: ( ) . — (Programmable Logic Devices, PLD), , , 1967 . , , , . , PROM, , , EPROM, . , , Programmable Logic Array, Programmable Array Logic (1978), Generic Array Logic Uncommitted Logic Array. , , « », . , , , , , . , . "Three Ages of FPGAs: A Retrospective on the First Thirty Years of FPGA Technology." "A Brief History of FPGAs".
Xilinx XC2064 هي أول شريحة FPGA. مأخوذة من هنا: siliconpr0n .
تتم برمجة FPGAs حاليًا بلغات وصف الأجهزة مثل Verilog أو VHDL ، ولكن في ذلك الوقت ، قدمت Xilinx برنامج التطوير الخاص بها ، وهو تطبيق MS-DOS يسمى XACT ، مقابل 12000 دولار. عملت XACT بمستوى أقل من الأدوات الحديثة: حدد المستخدم وظيفة كل كتلة منطقية ، كما هو موضح في لقطة الشاشة أدناه ، والصلات بين الكتل المنطقية.
قام XACT بتوجيه الاتصالات وإنشاء ملف تكوين (bitstream) تم تحميله في FPGA.
لقطة شاشة لـ XACT. يطبق الجدولان F و G المعادلات الموضحة أسفل الشاشة مع خريطة Karnaugh الموضحة أعلاه.
تم تكوين FPGA باستخدام تدفق بتات ، وهو سلسلة من البتات بتنسيق خاص. إذا نظرت إلى تيار البتات XC2064 (أدناه) ، فسترى مزيجًا غامضًا من الأنماط التي تكرر نفسها بطريقة غير منتظمة وتنتشر في جميع أنحاء تدفق البتات. ومع ذلك ، تكشف دراسة الدوائر الفيزيائية لـ FPGA عن بنية بيانات تدفق البتات ويمكن دراستها.
جزء من تدفق البتات الذي تم إنشاؤه بواسطة XACT.
كيف يعمل FPGA؟
يوضح الشكل أدناه ، المأخوذ من براءة اختراع FPGA الأصلية ، الهيكل الأساسي لـ FPGA. يحتوي FPGA المبسط هذا على إجمالي 9 كتل منطقية (مميزة باللون الأزرق) ، و 12 منفذ إدخال / إخراج. تربط شبكة الاتصال البيني المكونات معًا. من خلال ضبط المفاتيح (الخطوط القطرية) على التوصيلات ، يمكن توصيل الكتل المنطقية ببعضها البعض وبمنافذ الإدخال / الإخراج. يمكن برمجة كل عنصر منطقي للوظيفة المنطقية المطلوبة. نتيجة لذلك ، يمكن لهذه الشريحة القابلة للبرمجة تنفيذ أي جهاز يناسب المساحة المتاحة.
براءة اختراع FPGA ، الكتل المنطقية (LE) مترابطة.
كتلة المنطق شكلي (CLB)
على الرغم من أن الصورة أعلاه تظهر 9 CLBs ، فإن XC2064 بها 64 CLBs. يوضح الشكل أدناه هيكل CLB. يحتوي CLB على 4 مدخلات (A ، B ، C ، D) ومخرجين (X و Y). في ما بينهما المنطق التوافقي ، والذي يمكن برمجته لأي وظيفة منطقية مطلوبة. يحتوي CLB أيضًا على مشغل يتيح لك وجوده تنفيذ العدادات وسجلات التحول وآلات الحالة والدوائر الأخرى ذات الحالة. تشير شبه المنحرف إلى معددات إرسال يمكن برمجتها لتمرير إشارة من أي من المدخلات. تسمح معددات الإرسال بتكوين CLB لمهمة محددة عن طريق اختيار إشارات محددة للتحكم في المشغل والمخرجات.
كتلة المنطق القابلة للتكوين في XC2064 ، مأخوذة من هنا: ورقة البيانات .
قد تتساءل كيف ينفذ المنطق التوافقي وظائف المنطق التعسفي. هل هناك خيار بين مجموعة AND و OR و XOR وما إلى ذلك؟ لا ، هناك خدعة ذكية تسمى جدول البحث (LUT) ، وهي في الواقع جدول الحقيقة للوظيفة. على سبيل المثال ، يتم تحديد دالة من ثلاثة متغيرات بواسطة جدول مكون من 8 صفوف. يحتوي جدول البحث على 8 بتات من الذاكرة. يمكننا تنفيذ أي دالة منطقية ثلاثية المدخلات مع الاحتفاظ بهذه البتات الثلاث.
عرض الجداول
XC2064 — , . CLB . XC2064 , 4 . , .
XC2064 . .
XC2064 . .
روابط
الجانب الرئيسي التالي من FPGAs هو الاتصالات ، والتي يمكن برمجتها لتبديل CLB بعدة طرق. الوصلات معقدة ، لكن الوصف التقريبي هو أن هناك مقاطع من الوصلات الرأسية والأفقية بين جميع CLBs. يمكنك توصيل CLB بخطوط أفقية ورأسية ، وإنشاء اتصالات عشوائية. نوع الاتصال الأكثر تعقيدًا هو "مصفوفة التبديل". تحتوي كل مصفوفة على 8 دبابيس يمكن توصيلها ببعضها البعض (تقريبًا) بأي طريقة.
يوضح الشكل أدناه بنية روابط XC2064 التي توفر اتصالات بين الكتل المنطقية (الزرقاء) وخطوط الإدخال / الإخراج (الأصفر). يوضح الشكل الداخلي تفاصيل آلية الاقتران. المستطيلات الخضراء عبارة عن مصفوفات مفاتيح ذات 8 أسنان والمربعات الصغيرة هي نقاط اتصال قابلة للبرمجة.
يحتوي XC2064 FPGA على مصفوفة 8x8 CLB. كل CLB له اسم من AA إلى HH.
يمكن أن يبدل الاتصال ، على سبيل المثال ، إخراج كتلة DC إلى إدخال كتلة DE ، كما هو موضح أدناه. يُظهر الخط الأحمر مسار الإشارة وتوضح المربعات الحمراء الصغيرة نقاط الاتصال النشطة. عند الخروج من كتلة التيار المستمر ، يتم توجيه الإشارة إلى نقطة الاتصال الأولى على مفتاح ذي 8 سنون (أخضر) ، والذي يوجهها عبر نقطتي اتصال ومفتاح آخر ذي 8 اتجاهات (لا تظهر الخطوط الرأسية والأفقية غير المستخدمة). لاحظ أن الاتصال معقد للغاية ، حتى هذا المسار القصير يستخدم أربع نقاط اتصال ومفتاحين.
مثال على توجيه الإشارة من خرج كتلة DC إلى كتلة DE.
توضح لقطة الشاشة أدناه كيفية إجراء التتبع في XACT. تظهر الخطوط الصفراء الاتصالات بين الكتل المنطقية. مع زيادة عدد الإشارات ، يصبح من الصعب إجراء اتصالات دون تعارض بين المسارات. يتتبع XACT تلقائيًا ، ولكن يمكن أيضًا تحرير التتبع يدويًا.
لقطة شاشة لبرنامج XACT. إنه برنامج MS-DOS ويتم التحكم فيه بواسطة لوحة المفاتيح والماوس.
التنفيذ
بعد ذلك ، سنلقي نظرة على الدوائر الداخلية لـ XC2064 عن طريق الهندسة العكسية من صورة الكريستال. أحذرك من أن هذا يتطلب بعض الإلمام بـ XC2064.
صور كريستال
XC2064 XC20186, XC2064 XC2018 siliconpr0n. , . John McMaster , , . , .
XC2064 , John McMaster.
XC2064 , John McMaster.
XC2018
Xilinx XC2018 ( ) 100 , , XC2064. , XC2064 64 , 1010, 88. XC2018 , .
XC2018. , . .
XC2064 XC2018. , , .
XC2064 XC2018. , , , . siliconpr0n.
XC2018. , . .
XC2064 XC2018. , , .
XC2064 XC2018. , , , . siliconpr0n.
يوجد أدناه صورة لبلورة XC2064. الجزء الرئيسي من FPGA هو مصفوفة من 8x8 كتل ، كل منها يحتوي على كتلة منطقية والدوائر المحيطة. على الرغم من أن الرسم التخطيطي FPGA يُظهر الكتل المنطقية (CLBs) منفصلة عن الرسوم البيانية لأسلاك الكيان ، فإن هذا ليس هو الحال في الواقع. في الواقع ، يتم تنفيذ كل كتلة منطقية وبيئتها كعقدة واحدة ، بلاطة. (على وجه الدقة ، يتضمن البلاط وصلات في أعلى ويسار كل CLB.)
تخطيط كتلة XC2064. مأخوذة من هنا: siliconpr0n .
توفر كتل الإدخال / الإخراج ، الواقعة على طول جوانب الدائرة المتكاملة ، الاتصال بالعالم الخارجي. وهي متصلة بدبابيس الكريستال ، والتي تظهر على شكل مربعات خضراء صغيرة ، ومتصلة بدبابيس علبة الدائرة المصغرة. توجد مخازن على القالب (أخضر): اثنان عموديان واثنان أفقيان. تعمل هذه المخازن المؤقتة على تضخيم الإشارة التي تنتقل لمسافة طويلة عبر الشريحة وتقليل زمن الوصول. يتم استخدام سجل الإزاحة العمودي (الوردي) وسلسلة جلب العمود الأفقي لتحميل تيار البتات في الشريحة ، كما هو موضح أدناه.
داخل البلاط
توضح الصورة أدناه هيكل بلاطة واحدة XC2064 ، تحتوي الشريحة على 64 قطعة معبأة في قالب واحد. حوالي 40٪ من كل بلاطة مشغولة بخلايا ذاكرة (تظهر باللون الأخضر) تخزن بتات التكوين. يحتوي الثلث العلوي (تقريبًا) من التجانب على مخططات التوصيل: مصفوفتا مفاتيح وعدد من مفاتيح تبديل الارتباط الفردية. يوجد أدناه الكتلة المنطقية. الجزء الرئيسي من الكتلة المنطقية هو مُضاعِف الإدخال ، و flip-flop ، وجدول البحث. يتم توصيل البلاط بالجيران من خلال خطوط اتصال أفقية ورأسية ، كما أنه متصل أيضًا بقضبان الطاقة والأرض. تدخل بتات بيانات التكوين مواقع الذاكرة أفقيًا ، وتحدد الإشارات الرأسية عمودًا معينًا للتحميل.
يظهر بلاط FPGA واحد عقد وظيفية مهمة
الترانزستورات
يتم تنفيذ FPGA على منطق CMOS (CMOS) ، المبني من ترانزستورات NMOS و PMOS. تلعب الترانزستورات دورين رئيسيين في FPGAs. أولاً ، تتكون العناصر المنطقية من مجموعاتها. ثانيًا ، تُستخدم الترانزستورات كمفاتيح تمر عبرها إشارة ، على سبيل المثال ، لتكوين وصلات بين الكتل. يُطلق على الترانزستور الذي يؤدي هذا الدور اسم من خلال الترانزستور. يوضح الشكل أدناه الهيكل الأساسي للـ MOSFET. قسمان من السيليكون مخدران بالشوائب لإنشاء مصرف ومصدر. بينهما بوابة تقوم بتشغيل وإيقاف الترانزستور وتتحكم في التيار بين الصرف والمصدر. المصراع مصنوع من نوع خاص من السيليكون يسمى بولي سيليكون ، معزول عن السيليكون تحته بطبقة رقيقة من الأكسيد. وفوقها طبقتان من المعدنة توفران توصيلات دارة.
هيكل MOSFET
في صورة البلورة ، يمكننا أن نلاحظ كيف يبدو الترانزستور تحت المجهر. بوابة البولي سيليكون هي خط سربنتين بين منطقتين مخدرتين من السيليكون. الدوائر عبارة عن قطع تربط بين السيليكون والطبقة المعدنية (التي تمت إزالتها في هذه الصورة).
FPGA MOSFET
دفق البت وذاكرة التكوين
يتم تخزين معلومات التكوين في XC2064 في مواقع ذاكرة التكوين. لا تستخدم FPGA ذاكرة الكتلة لهذا ، بدلاً من ذلك ، يتم توزيع ذاكرة التكوين في جميع أنحاء البلورة على شكل شعرية 160 × 71 ، وتقع كل بت بجوار الدائرة التي تتحكم فيها. يوضح الشكل أدناه تدفق بتات التكوين الذي تم تحميله في FPGA. يتم تحميل تدفق البتات في سجل الإزاحة الذي يمر في منتصف الشريحة (وردي). بمجرد تحميل 71 بتًا في سجل الإزاحة ، تحدد دائرة جلب العمود (باللون الأزرق) عمود الذاكرة المطلوب ويتم تحميل البتات في العمود بالتوازي. ثم يتم تحميل 71 بت التالية في سجل الإزاحة ويتم تحديد العمود التالي على اليسار. تتكرر العملية لجميع أعمدة FPGA البالغ عددها 160 ، ويتم تحميل تدفق البتات بأكمله في FPGA. يؤدي استخدام سجل الإزاحة إلى التخلص من الحاجة إلى دوائر معالجة ذاكرة كبيرة.
كيف يتم تحميل دفق البت في FPGA. يتم عرض البتات بشكل تقليدي ، ويكون التخزين الفعلي للبتات أكثر كثافة. تم بالفعل تحميل الأعمدة الثلاثة الموجودة على اليمين ويتم تحميل الرابع. التقطت صورة الكريستال من هنا: siliconpr0n .
الشيء المهم هو أن تدفق البتات يتم توزيعه عبر الشريحة بالترتيب الذي تظهر به البتات في الملف بالضبط: حيث تتوافق تعبئة البتات في تدفق البتات مع وضعها المادي على الشريحة. كما هو موضح أدناه ، يتم تخزين كل بت في FPGA بجوار الدائرة التي تتحكم فيها. وبالتالي ، يتم تحديد تنسيق ملف bitstream بشكل مباشر من خلال وضع دوائر الأجهزة. على سبيل المثال ، إذا كانت هناك فجوة بين المربعات ، وكان هناك مخزن مؤقت بداخلها ، فستكون نفس الفجوة في تدفق البتات. لا تعتمد بنية تدفق البتات على تجريدات البرامج مثل الحقول في جداول البيانات أو كتل التكوين. يتطلب فهم دفق البت التفكير في مصطلحات الأجهزة وليس البرامج
دفق البت
, (.RBT) , .
, .
, .
يتم تنفيذ كل بت من ذاكرة التكوين كما هو موضح أدناه. تتكون كل خلية ذاكرة من محولين متصلين في حلقة. تحتوي هذه الدائرة على حالتين مستقرتين ، ويمكنها تخزين بت واحد: إما أن يكون العاكس العلوي في الحالة 1 ، والعاكس السفلي في الحالة 0 ، أو العكس. للكتابة إلى الخلية ، يتم تنشيط ترانزستور المرور على اليسار ، ويمرر الإشارة. تسحب الإشارة الموجودة على خط البيانات العاكس ببساطة عن طريق كتابة البت المطلوب. (يمكنك أيضًا قراءة بيانات التكوين باستخدام نفس الدرجة.) يتحكم الإخراج Q و Q المعكوس في وظيفة معينة في FPGA ، مثل إغلاق شبكة الاتصال البيني ، أو استرداد بعض الشيء من جدول البحث ، أو التحكم في المشغل. في معظم الحالات ، يتم استخدام إخراج Q فقط.
خلية SRAM
(SRAM). , RAM, , , SRAM. , 5T SRAM.
, . , . , 1818 , 27 . , , , , . 9 .
, , . siliconpr0n.
, . , . , 1818 , 27 . , , , , . 9 .
, , . siliconpr0n.
رسم تخطيطي لجزء واحد من ذاكرة التكوين ، من الوثائق.
يوضح الشكل أدناه التركيب المادي لخلايا الذاكرة. تُظهر الصورة الموجودة على اليسار 8 خلايا ذاكرة ، واحدة منها مظللة. يتم توصيل كل خط بيانات أفقي بجميع مواقع الذاكرة في الصف. يحدد كل سطر جلب عمود جميع مواقع الذاكرة في العمود ، مما يسمح بالكتابة. تُظهر الصورة الوسطى أقسامًا من السيليكون والبولي سيليكون لخلية ذاكرة واحدة. تمت إزالة طبقات المعدن لكشف الترانزستورات تحتها. تربط طبقات المعدن الترانزستورات ، الدوائر في الصورة ، هذه وصلات ، فتحات ، بين السيليكون أو البولي سيليكون والمعدن. يوضح الرسم البياني كيفية توصيل خمسة ترانزستورات ، ويتوافق وضع العناصر على الرسم البياني مع وضعها في الصورة. زوجان من الترانزستورات يشكلان محولات CMOS ، مع ترانزستور يمر في الجزء السفلي الأيسر يوفر الوصول إلى الخلية.
, . — . , . . : siliconpr0n.
كما أوضحنا سابقًا ، تنفذ FPGA وظائف منطقية عشوائية باستخدام جداول البحث. يوضح الشكل أدناه كيفية تنفيذ جدول البحث في XC2064. القيم الثمانية الموجودة على اليسار مخزنة في ثمانية مواقع ذاكرة. تحدد أربعة معددات إرسال واحدة من كل زوج من القيم ، اعتمادًا على القيمة عند الإدخال A ، إذا كانت A = 0 ، يتم تحديد الجزء العلوي من القيم ، إذا كان A = 1 ، ثم الأدنى. بعد ذلك ، يختار مُضاعِف الإرسال الكبير إحدى القيم الأربع بناءً على الإشارات B و C. ستكون النتيجة قيمة محددة ، في هذه الحالة A XOR B XOR C. يمكننا القيام بأي دالة منطقية إذا استبدلنا قيمًا مختلفة في الجدول.
تنفيذ XOR في جدول البحث.
يتم تنفيذ كل معدد إرسال باستخدام ترانزستورات تمريرة. اعتمادًا على إشارات التحكم ، يتم تنشيط أحد الترانزستورات المارة لتمرير البيانات من الإدخال إلى الإخراج. يوضح الشكل أدناه جزءًا من سلسلة LUT ، مع تعدد إرسال بتاتين. على اليمين موقعان للذاكرة. تمر كل بتة عبر العاكس ، ويتم تضخيمها ، وتمر عبر الترانزستورات التمريرية لمضاعف الإرسال في المنتصف ، واختيار واحدة من هذه البتات.
منظر للشبكات التي تنفذ طرفية المستعملين المحليين. مأخوذة من siliconpr0n.
اثار
يحتوي كل CLB على flip-flop الذي يسمح لـ FPGA بتنفيذ المزالج وآلات الحالة والشبكات الأخرى ذات الحالة. يوضح الشكل أدناه تنفيذ مشغل (غير عادي إلى حد ما). إنها تستخدم المخطط التالي. عندما تكون إشارة الساعة صفرية ، يمرر mux الأول البيانات إلى المزلاج الأول ، الذي يخزن القيمة. يتم قلب البتة مرتين ، حيث تمر عبر بوابات OR و NAND والعاكس ، وتبقى كما هي نتيجة لذلك. علاوة على ذلك ، يتلقى مُضاعِف المزلاج الثاني البت من المزلاج الأول عندما ترتفع الساعة إلى 1 (لاحظ أن الساعة مقلوبة). هذه القيمة هي ناتج flip-flop. عندما يتم ضبط إشارة الساعة على 0 ، يغلق mux الثانوي الحلقة بإغلاق البت. وبالتالي ، فإن الزناد حساس لحافة الإشارة ،تثبيت القيمة على الحافة الأمامية لإشارة الساعة. تعيين وإعادة تعيين الخطوط وإعادة تعيين flip-flop.
. OR-NAND : siliconpr0n.
تعتبر مصفوفة التبديل عنصرًا مهمًا للتوصيل البيني. يحتوي كل مفتاح على 8 دبابيس (اثنان على كل جانب) ويمكن توصيلها بأي طريقة تقريبًا. يمكن فك الإشارات وتقسيمها وتقاطعها بمرونة أكثر من تلك الموجودة في عقد التوصيل البيني الفردية. يوضح الشكل أدناه جزءًا من شبكة التوصيل البيني بين CLBs الأربعة (الأزرق). يمكن توصيل مصفوفات التحويل (الخضراء) بأي مجموعة من الوصلات على الجانب الأيمن. لاحظ أنه يمكن توصيل كل دبوس بمسامير أخرى بمقدار 5 إلى 7 قطع. على سبيل المثال ، يمكن توصيل السن 1 بالدبوس 3 ، ولكن ليس بالدبابيس 2 و 4. وهذا يجعل المصفوفة مكتملة تقريبًا ، مع 20 وصلة محتملة بدلاً من 28.
مأخوذة من هنا: Xilinx Programmable Gate Array Data Book ، fig. 7 ب.
تتكون مصفوفة التبديل من صفوف من الترانزستورات العابرة التي تتحكم فيها خلايا الذاكرة فوقها وتحتها. وجهان الترانزستور هما دبابيس في مصفوفة التبديل يمكن توصيلهما بواسطة الترانزستور. إذن كل مصفوفة بها 20 بت تحكم ، مصفوفتان لكل بلاطة تعطينا 40 بت لكل بلاطة. تُظهر الصورة أدناه خلية ذاكرة واحدة متصلة بالبوابة المتموجة للترانزستور تحتها. يوفر هذا الترانزستور الاتصال بين الدبوس 5 والدبوس 1. وبالتالي ، فإن البت في تدفق البتات المقابل لموقع الذاكرة هذا يتحكم في الاتصال بين الدبابيس 5 و 1. وبالمثل ، تتحكم خلايا الذاكرة الأخرى والترانزستورات المرتبطة بها في الاتصالات الأخرى. لاحظ أيضًا أن ترتيب هذه الاتصالات لا يتبع أي نمط معين ، ونتيجة لذلك ،تبدو المراسلات بين البتات في تدفق البتات ودبابيس التبديل عشوائية.
مصفوفة التبديل
20 . 18 , .
تنفيذ مصفوفة من 8 وصلات. يتم تحديد مناطق السيليكون بواسطة أرقام المسامير المقابلة لها. تمت إزالة الطبقات المعدنية التي تربط الخيوط المقابلة بالترانزستورات. مأخوذة من siliconpr0n.
وصلات الإدخال
تستخدم مدخلات CLB نظام تشفير مختلف لتيار البت ، وهو ما يفسره تنفيذ الأجهزة. في الصورة أدناه ، فإن العقد الثمانية ذات القطع الناقص هي مدخلات محتملة لـ CLB تسمى DD. يمكن تكوين عقدة واحدة فقط (كحد أقصى) كمدخل ، لأن توصيل إشارتين بمدخل واحد يمكن أن يقصرهما معًا.
اختيار المدخلات. المدخلات الثمانية المحاطة بدائرة باللون الأخضر هي مدخلات DD محتملة ، ويمكن تحديد واحد منها فقط.
يتم تحديد المدخلات المطلوبة بواسطة معدد الإرسال. سيكون الحل المباشر هو استخدام مُضاعِف 8 مدخلات مع ثلاث بتات تحكم باختيار واحدة من 8 إشارات. هناك حل مباشر آخر يتمثل في استخدام 8 ترانزستورات تمرير ، لكل منها إشارة تحكم خاصة بها ، حيث يختار أحدها الإشارة المطلوبة. ومع ذلك ، يستخدم FPGA نهجًا هجينًا يلغي الحاجة إلى وحدة فك ترميز في الحالة الأولى ، ولكنه يتطلب 5 إشارات تحكم بدلاً من 8 المطلوبة في النهج الثاني.
يستخدم FPGA معددات الإرسال لاختيار واحد من ثمانية مدخلات.
يوضح الرسم البياني في الشكل أعلاه معدد الإرسال ثنائي الطبقة المستخدم في FPGA. في المرحلة الأولى ، يتم تنشيط إحدى إشارات التحكم. في المرحلة الثانية ، يتم تحديد الإشارة العالية أو المنخفضة وتطبيقها على الإخراج. على سبيل المثال ، افترض أن إشارة التحكم B / F مطبقة على المرحلة الأولى ، و ABCD على المرحلة الثانية ، سيكون الإدخال B هو الوحيد الذي يذهب إلى المخرج. أي أن اختيار أحد المدخلات الثمانية يتطلب 5 بتات في تدفق البتات ويستخدم 5 مواقع للذاكرة.
معدد الإدخال CLB
CLB. EFGH ABCD, . -, CLB 6 10 , , . , , , , . , , 6 , . , , .
خاتمة
يستخدم XC2064 مجموعة متنوعة من الشبكات المُحسّنة للغاية لتنفيذ الكتل المنطقية وشبكات الترابط. يجب أن تكون هذه السلاسل معبأة بإحكام حتى تتناسب مع الكريستال. ومع ذلك ، كان XC2064 شريحة كبيرة جدًا ، أكبر من المعالج الدقيق في ذلك الوقت ، وكان من الصعب تصنيعه ، حيث تكلف مئات الدولارات. مقارنةً بـ FPGAs الحديثة ، يحتوي XC2064 على عدد صغير من الخلايا بشكل سخيف ، ولكن حتى هذا كان بداية لخط إنتاج جديد ثوري.
هناك مفهومان أساسيان لفهم تدفق البتات XC2064. أولاً ، يتم تنفيذ FPGA على أساس 64 قطعة ، مكررة الكتل التي تجمع بين الكتل المنطقية والوصلات. على الرغم من وصف FPGA على أنه يحتوي على كتل منطقية محاطة بوصلات بينية ، إلا أنه لا يتم تنفيذه بهذه الطريقة. المفهوم الثاني هو أن تدفق البتات لا يعتمد على أي تجريدات ، بل يرسم مباشرة التعبئة ثنائية الأبعاد لخلايا ذاكرة FPGA. وبالتالي ، فإن تدفق البتات يكون منطقيًا فقط إذا كنت تفكر في البنية المادية لـ FPGA.
ملحوظة
, XC2064 (. 11), CLB . , , 20% , . — -, . , . .
, 8×18. , , . .
. , #1 () #2 () . 8 #1 1 8 . #2 , . , "#2: 1-3" , 1 3 #2. «ND», , . ND ND.
, . , PIP , , . () (1, 2, 3), Y (). (-) -. , , . (), D (), A () . CLB, . , . X Y (LUT) F G. LUT. LUT F LUT G, . , 8 LUT , .
, 8×18. , , . .
. , #1 () #2 () . 8 #1 1 8 . #2 , . , "#2: 1-3" , 1 3 #2. «ND», , . ND ND.
, . , PIP , , . () (1, 2, 3), Y (). (-) -. , , . (), D (), A () . CLB, . , . X Y (LUT) F G. LUT. LUT F LUT G, . , 8 LUT , .
لقد أعلنت عن آخر مشاركة لي على تويتر ، لذا تابع kenshirriff . لدي أيضًا موجز RSS . شكرًا لجون ماكماستر وتيم أنسيل وفيليب فريدين على المناقشات.