ما هو الفرق بين تصميم RTL لتصميم ASIC و RTL لـ FPGA؟


الاجابه 1:

تقنيات منصة الهدف

بنيت قبل

قبل السلكية

  1. الخطوة الأولى من تركيب نموذج RTL متشابهة جدا في كلتا الحالتين. كنت تأخذ نموذج RTL عالي المستوى وتوليفه إلى قائمة net مستقلة عن التكنولوجيا. والخطوة الثانية من التوليف تنطوي على رسم الخرائط التي تعتمد على التكنولوجيا. هذا هو المكان الذي يحدث فيه أول فرع رئيسي بين التدفق. على الرغم من أن تدفق ASIC مجاني في تنفيذ أي مجموعة من الخلايا ، فإن تدفق FPGA مقيد بالحاجة إلى تعيين قائمة net مستقلة عن التكنولوجيا على "بحر من البوابات" الحالي. ومن هذه النقطة فصاعدًا ، تكون التدفقات مختلفة تمامًا. التصميم المادي لـ ASIC هو عملية "تصاعدية" تتضمن إنشاء تصميم من البداية. لا يشمل عمل FPGA أي تصميم مادي. بدلاً من ذلك ، يتضمن تكوين تصميم موجود لتحقيق الوظيفة المطلوبة

الاجابه 2:

من المفترض أن يكون HDL بمثابة تجريد لهذه التقنية. كان هذا هو النية وما زال.

(مصدر الصورة: www.pixabay.com)

كل قاعدة ، كيف نواياها النبيلة ، سيكون لها استثناءات. وهذا هو الحال بسبب الاختلافات المحددة في بعض التقنيات.

HDL: لغة وصف الأجهزة

هي اللغة التي تحتوي على بناء جملة برنامج (مثل إذا ، ثم ، بيانات الحالة ، ...) ولكنها تصف الأجهزة. الوصف عام يعني أن هناك حاجة إلى برنامج أو أداة لترجمة هذا الوصف للأجهزة في قائمة net net عامة. تعد netlist (المبسطة) بمثابة ترابط أساسي بين البوابات المنطقية و flipflops التي تشكل دائرة تؤدي عملية أو وظيفة معينة. يمكن ترجمة netlist العامة بواسطة الأداة إلى مكتبة خاصة بخلايا الخلايا. على سبيل المثال ، تشتمل العقدة التقنية مثل 22nm على NAND2 (nand ثنائية الإدخال) مع بعض المعلمات (السرعة ، قوة محرك الأقراص ، ...) ، NAND4 ، A NOR3 ، NOT ، DFF ، .... تحتوي كل عقدة تقنية على العديد من المكتبات ، دائمًا ما تكون مفاضلة بين السرعة والمساحة والطاقة. الفكرة سليمة ، عن طريق تغيير مكتبة التقنية المستهدفة ، إنها أداة تأخذ نفس رمز الإدخال وتكتب قائمة تصميم الشبكة مع خلايا التقنية التي تريد استخدامها. التجريد التكنولوجيا. ولكن لا يوجد شيء مثل التجريد التام والكامل. نحن بحاجة إلى النظر بشكل أعمق في النوعين المختلفين من الرقائق: ASIC و FPGA.

أسيك: تطبيق الدوائر المتكاملة

تعتبر الأجهزة المخصصة أو الرقائق المخصصة للتطبيق طريقة لتنفيذ خوارزمية بأسرع طريقة ممكنة ، أو مع أقل مساحة أو بأقل استهلاك طاقة ممكن. ولكن هذا مرتبط دائمًا بعقدة تقنية ASIC معينة لمسبك محدد.

FPGA: صفيف بوابة للبرمجة الميدانية

و FPGA هو أسيك ولكن نوع خاص من أسيك. إنه مرتبط بعقدة تقنية ، والتي تحدد السرعة والمساحة واستهلاك الطاقة. يحتوي على بنية حيث يتم تجميع الترانزستورات في CLB (كتل منطق قابلة للتكوين) أو LE (عناصر منطقية) ، مبسطة ، وعدد من البوابات وعدد من flipflops مع عدة اتصالات على مدار الساعة وإعادة ضبطها والعديد من إمكانيات اتصال هذه العناصر أو الكتل. تسمح كتل البناء الصغيرة هذه بنوع من نهج LEGO حيث يتم ترجمة HDL التي تصف المنطق إلى واحد أو أكثر من لبنات البناء الصغيرة مع ربط متبادل مختار. هذا الاتصال الداخلي عبارة عن مجموعة من الأسلاك يمكنها توصيل عدة كتل ويمكن تكوين الاتصال وإعادة تكوينه عبر مفاتيح التوجيه على الأسلاك. هذا يعني أن هناك أكثر من الأسلاك اللازمة بشدة للسماح بمرونة في استخدام العناصر والتوجيه. لدى LE أو CLB في حد ذاته طريقة لاستخدام كل أو فقط بضع بوابات في الداخل واستخدام flipflops أو تجاوزها لإنشاء مسار مشترك (أطول غير متزامن منطقي). في التصميم المتزامن ، يتم إكمال وظيفة المنطق في دورة ساعة واحدة وتخزينها في عنصر ذاكرة يسمى flipflop. علاوة على أسلاك التوصيل البيني ، لديك توجيه خاص للساعة وإعادة التعيين لـ flipflops في التصميم. تحتوي الساعة التي تسير على مسافة عبر السلك على بعض التأخير (شبكة RC) ومن ثم يمكن أيضًا ربط (ساعة) الاتصال البيني ، لكنها نوع خاص من الأسلاك لأنها تحدد السرعة القصوى التي يمكن أن يحققها تصميمك والتأكد من وصول حواف الساعة في نفس الوقت في الوقت المناسب لجميع flipflops المتصلة بتلك الساعة.

HDL الاستدلال مقابل مثيل

العالم المثالي لـ HDL هو أن ما تكتبه يترجم إلى دارة رقمية تلقائيًا باستخدام ما يسمى بأداة تركيب. بالنسبة لبيان الحالة ، فإن المضاعف هو ترجمة سهلة. لا يعد وجود مضاعف واحد إلى واحد بين حدين على مدار الساعة مسارًا طويلًا وسيلبي متطلبات فترة الساعة. ولكن عند النظر إلى الإضافات والمضاعفات ، تصبح عروض المتجهات للإدخالات مهمة. على سبيل المثال ، ستقوم أداة التوليف بتنفيذ المضاعف 16 × 16 بت ولكن من المحتمل ألا تفي مطلقًا بمتطلبات التوقيت التي تحتاجها. أو شرط المنطقة لهذه المسألة. المضاعفات يمكن أن تكون سريعة الانابيب أو صغيرة ومتعددة الدورات. وفقًا للقيود الخاصة بك وتفاصيل هدف التكنولوجيا الخاص بك ، يمكنك تضمين مُضاعِف تكنولوجي محدد. يمكنك إنشاء وحدة نمطية محددة للغاية لتلك التكنولوجيا التي لم تعد مستقلة عن التكنولوجيا ، فكل تقنية تستهدفها ستحتاج إلى إصدار محدد من تلك الوحدة لتكون قادرة على العمل على السيليكون. الاستدلال هو كتابة "a * b" ودع الأداة تقرر ما دامت تفي بالقيود ، فأنت لا تهتم. هذا الكود محمول على التقنيات الأخرى طالما أن الأداة قادرة على مواجهة القيود. لم يعد إنشاء مثيل لمكونات تقنية معينة قابلاً للنقل لتقنية أخرى.

أمثلة محددة من الاختلافات

لدى مصممي ASIC قواعد تشفير للتأكد من أن الشفرة التي يكتبونها مناسبة للمهام الأمامية الأخرى لاحقًا في دورة التصميم. يتطلب تصميم الاختبار (DFT) أن يكون لجميع flipflops تجاوز في ساعاتهم وإعادة ضبط ساعة المسح وإعادة ضبط المسح. وبهذه الطريقة ، يمكن للسيليكون الموجود في جهاز الاختبار إزالة الرقائق السيئة قبل دخولها إلى السوق. أسيك لديه إعادة تعيين غير متزامن إدخال والخروج متزامن. إذا فشلت ساعتك على PCB ، فلا يزال بإمكان IO قيادة المسامير وتدمير الرقاقة أو الرقائق الأخرى على PCB. يمكن أن تؤدي عملية إعادة التعيين التي تدخل غير عصبي (لا تعتمد على مدار الساعة) إلى جعل الرقاقة في حالة آمنة ، وليس قيادة المخرجات. لكن الخروج من إعادة التعيين يجب أن يكون آمنًا أيضًا. في حالة خروج جهاز الحالة الذي يتكون من حالة 8 بت من إعادة التعيين غير متزامن ، يمكن إعادة تعيين بعض flipflops قبل حافة الساعة مباشرة وبعضها بعد ذلك ، اعتمادًا على التأخير في خطوط إعادة التعيين وخطوط الساعة التي تختلف عن 8 يتخبط. وبالتالي ، للتأكد من أن جميع أجزاء الحالة يتم إصدارها في نفس دورة الساعة ، يتم إدخال إعادة التعيين بشكل غير متزامن ولكن تم إنهاء الخروج.

لدى مصممي FPGA قواعد تشفير مختلفة. لا يحتاجون إلى إعادة تعيين جميع flipflops لأن DFT ليس جزءًا من دورة تصميم FPGA. يجب إعادة تعيين معلومات الحالة ، لكن يمكن أن تكون البيانات هي القيمة التي يجب البدء بها نظرًا لأنها دائمًا نتيجة عملية حسابية أو شيء ما. إن flipflop الذي لا يحتاج إلى خط إعادة التعيين (لا توجد مفاتيح على شبكة إعادة التعيين إلى ذلك التقليب المعين) قادر على التشغيل في freqeuncies على مدار الساعة أعلى من التقليب الذي يحتاج إلى إعادة التعيين. علاوة على ذلك ، إذا كان يحتاج إلى إعادة ضبط ، يتم تحقيق أسرع سرعة على مدار الساعة من خلال إعادة التعيين المتزامن وليس مع عدم التزامن.

أهمية

يمكن تصميم نموذج مرمز لقواعد ASIC على FPGA ، حيث يمكن استخدام إعادة تعيين غير متزامن على FPGA على الرغم من أنه مع عقوبة السرعة. العكس هو غير ممكن sicne جميع flipflops تحتاج إلى إعادة تعيين وجزء من التصميم لا يوجد لديه إعادة تعيين. بالطبع ، هذا تبسيط ، فهناك الكثير الذي يمكن قوله حول هذا الموضوع. ولكن بصفة عامة ، من الممكن أن يكون ASIC to FPGA ممكنًا بينما تتطلب FPGA to ASIC تغييرات في التعليمات البرمجية (إلا إذا كنت تستخدم نوعًا من الحلول الوسيطة التي يوفرها بائعو ASIC للقرص الثابت الخاص بك ، FPGA ، وهو شيء يقع بين ASIC المخصص بالكامل و FPGA).


الاجابه 3:

هناك الكثير من الأشياء المختلفة التي يجب وضعها في الاعتبار. هناك بعض الأشياء التي لا تستطيع FPGA أن تفعلها.

لا يمكن أن تفعل FPGAs المخازن المؤقتة ثلاثي الحالة. لذلك إذا كتبت تصميمًا يحتوي على حافلة بها عدة برامج تشغيل مزودة بمخازن مؤقتة ثلاثية الحالة ، فسيتم تغيير التصميم إلى منطق مكافئ (اقرأ: أكبر) يستخدم MUXes بدلاً من ذلك.

تصميم آخر أن FPGAs لديك مشكلة مع ذاكرة الوصول العشوائي متعددة المنافذ. إذا كتبت ذاكرة وصول عشوائي بحجم ٨ كيلوبايت مع منفذين ، فستكون على ما يرام ، ولكن إذا أضفت منفذًا واحدًا آخر (ذاكرة وصول عشوائي سعة ٨ كيلوبايت) ، فلن يمكن تنفيذ التصميم بأي طريقة معقولة. (على الرغم من ذلك ، إذا بحثت عبر الإنترنت ، فستجد طرقًا ذكية للحصول على ذكريات متعددة المنافذ تعمل على FPGAs.)

لاحظ أنه يمكن بناء FPGA باستخدام هذه الميزات ، لكن بشكل عام لا يتم ذلك.

أما بالنسبة للسلطة ، فهذا ليس مجالي. أفترض أن ASICs لديها قدرة أكبر على تناول قدر أكبر بكثير من الطاقة من FPGA بسبب ترددات الساعة الأعلى التي يمكن تشغيلها بها.


الاجابه 4:

هناك الكثير من الأشياء المختلفة التي يجب وضعها في الاعتبار. هناك بعض الأشياء التي لا تستطيع FPGA أن تفعلها.

لا يمكن أن تفعل FPGAs المخازن المؤقتة ثلاثي الحالة. لذلك إذا كتبت تصميمًا يحتوي على حافلة بها عدة برامج تشغيل مزودة بمخازن مؤقتة ثلاثية الحالة ، فسيتم تغيير التصميم إلى منطق مكافئ (اقرأ: أكبر) يستخدم MUXes بدلاً من ذلك.

تصميم آخر أن FPGAs لديك مشكلة مع ذاكرة الوصول العشوائي متعددة المنافذ. إذا كتبت ذاكرة وصول عشوائي بحجم ٨ كيلوبايت مع منفذين ، فستكون على ما يرام ، ولكن إذا أضفت منفذًا واحدًا آخر (ذاكرة وصول عشوائي سعة ٨ كيلوبايت) ، فلن يمكن تنفيذ التصميم بأي طريقة معقولة. (على الرغم من ذلك ، إذا بحثت عبر الإنترنت ، فستجد طرقًا ذكية للحصول على ذكريات متعددة المنافذ تعمل على FPGAs.)

لاحظ أنه يمكن بناء FPGA باستخدام هذه الميزات ، لكن بشكل عام لا يتم ذلك.

أما بالنسبة للسلطة ، فهذا ليس مجالي. أفترض أن ASICs لديها قدرة أكبر على تناول قدر أكبر بكثير من الطاقة من FPGA بسبب ترددات الساعة الأعلى التي يمكن تشغيلها بها.