أمثلة على تصميم مشاريع fpga الكبيرة. حول توثيق مشاريع plis. الذاكرة الترابطية. التنظيم ، طريقة أخذ العينات ، الاختلافات عن ذاكرة العنوان

💖 أحببته؟شارك الرابط مع أصدقائك

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

للبدء ، تحتاج إلى فهم القليل عن المنطق الرقمي لكيفية عمل ASIC ، ولكن من الصعب جدًا ومكلف البدء بها ، ومن الأفضل البدء بـ FPGAs بدلاً من ذلك.

ما هو FPGA؟

FPGAلتقف على مصفوفة البوابة القابلة للبرمجة الميدانية (مصفوفات البوابة القابلة للبرمجة من قبل المستخدم ، FPGA). في حالة أكثر عمومية ، يطلق عليهم FPGA - الدوائر المتكاملة المنطقية القابلة للبرمجة.

بمساعدة FPGA ، يمكنك ، بالمعنى الحقيقي للكلمة ، تصميم دوائر دقيقة رقمية أثناء الجلوس في المنزل مع لوحة تصحيح أخطاء ميسورة التكلفة على الطاولة وبرامج مطور لعدة آلاف من الروبل الأخضر. ولكن ، هناك أيضًا خيارات مجانية. ملاحظة: الغرض منه هو التصميم وليس البرمجة ، لأنه عند الإخراج سنحصل على دائرة رقمية فعلية تؤدي خوارزمية معينة على مستوى الأجهزة ، وليس بروغ للمعالج.

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

حتى نقوم بتكوين FPGA ، لا يوجد منطق داخل الشريحة لمعالجة البيانات من الواجهات ، وبالتالي ، بالطبع ، لن يعمل شيء. ولكن نتيجة للتصميم ، سيتم إنشاء البرامج الثابتة ، والتي ، بعد تحميلها في FPGA ، ستنشئ الدائرة الرقمية التي نحتاجها. بهذه الطريقة ، يمكنك إنشاء وحدة تحكم 100G Ethernet ستتلقى حزم الشبكة وتعالجها.

ميزة مهمة لـ FPGA هي القدرة على إعادة التكوين. لنفترض الآن أننا بحاجة إلى وحدة تحكم 100G Ethernet ، وفي غضون أسبوع يمكن استخدام نفس اللوحة لتنفيذ أربع واجهات مستقلة لشبكة 25G Ethernet.

هناك نوعان من الشركات الرائدة في تصنيع رقائق FPGA في السوق: Intel و Xilinx المشهوران. يسيطرون على 58 و 42٪ من السوق. اخترع مؤسسو Xilinx أول شريحة FPGA في عام 1985. دخلت Intel السوق مؤخرًا - في عام 2015 ، واستوعبت Altera ، التي تأسست في نفس الوقت مع Xilinx. تتشابه تقنيات Altera و Xilinx من نواح كثيرة ، مثل بيئات التطوير. في أغلب الأحيان ، عملت مع منتجات Xilinx ، لذلك لا تتفاجأ برؤيتها مذكورة باستمرار في المقالة.

تستخدم FPGAs على نطاق واسع في مختلف المجالات: الإلكترونيات الاستهلاكية ، ومعدات الاتصالات ، ولوحات التسريع للاستخدام في مراكز البيانات ، والروبوتات ، ونماذج ASIC. سأستعرض بعض الأمثلة أدناه.

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

كيف يعمل FPGA

شريحة FPGA هي نفس شريحة ASIC المخصصة ، وتتكون من نفس الترانزستورات المستخدمة لتجميع flip-flops ، والسجلات ، ومضاعفات الإرسال ، والعناصر المنطقية الأخرى للدوائر التقليدية. بالطبع ، من المستحيل تغيير ترتيب اتصال هذه الترانزستورات. لكن من الناحية المعمارية ، تم تصميم الدائرة الصغيرة بطريقة ماكرة بحيث يمكنك تغيير تبديل الإشارات بين الكتل الكبيرة: يطلق عليها CLBs - كتل منطقية قابلة للبرمجة.

يمكنك أيضًا تغيير الوظيفة المنطقية التي يؤديها CLB. يتم تحقيق ذلك بسبب حقيقة أن الشريحة بأكملها تتخللها خلايا ذاكرة التكوين ذاكرة الوصول العشوائي الثابتة. يتحكم كل جزء من هذه الذاكرة إما في نوع من مفاتيح تبديل الإشارة ، أو أنه جزء من جدول الحقيقة لوظيفة منطقية ينفذها CLB.

نظرًا لأن ذاكرة التكوين مبنية باستخدام تقنية ذاكرة الوصول العشوائي الثابتة ، أولاً ، عند تشغيل FPGA ، يجب تكوين الدائرة المصغرة ، وثانيًا ، يمكن إعادة تكوين الدائرة الدقيقة تقريبًا عدد لا حصر له من المرات.

هيكل رقاقة ثنائي الأبعاد مبسط للغاية بدون ذاكرة تكوين

توجد CLBs في مصفوفة تبديل تحدد التوصيلات لمدخلات ومخرجات CLBs.

تبديل مخطط المصفوفة

يوجد في كل تقاطع للموصلات ستة مفاتيح تبديل يتم التحكم فيها بواسطة خلايا ذاكرة التكوين الخاصة بها. من خلال فتح البعض وإغلاق البعض الآخر ، من الممكن توفير تبديل مختلف للإشارات بين CLBs.

CLB

يتكون CLB ببساطة شديدة من كتلة تحدد دالة منطقية للعديد من الوسائط (يطلق عليها جدول البحث - جدول البحث ، LUT) ومشغل (flip-flop ، FF). في FPGAs الحديثة ، يحتوي LUT على ستة مدخلات ، لكن الشكل يوضح ثلاثة من أجل البساطة. يتم تغذية خرج LUT إلى إخراج CLB إما بشكل غير متزامن (مباشرة) أو بشكل متزامن (عبر FF flip-flop يعمل على ساعة النظام).

مبدأ تنفيذ طرفية

من المثير للاهتمام إلقاء نظرة على مبدأ تنفيذ طرفية المستعملين المحليين. لنفترض أن لدينا بعض الدالة المنطقية y = (a & b) | ~ ج. يظهر التمثيل التخطيطي وجدول الحقيقة في الشكل. تحتوي الدالة على ثلاث وسيطات ، لذا فهي تأخذ 2 ^ 3 = 8 قيم. كل واحد منهم يتوافق مع مجموعته الخاصة من إشارات الإدخال. يتم حساب هذه القيم بواسطة برنامج تطوير البرامج الثابتة FPGA ويتم كتابتها في خلايا ذاكرة التكوين الخاصة.

يتم تغذية قيمة كل خلية إلى مدخلاتها من مُضاعِف إخراج LUT ، وتُستخدم وسائط الإدخال للدالة المنطقية لتحديد قيمة دالة أو أخرى. CLB هو أهم مورد أجهزة FPGA. يمكن أن تختلف كمية CLB في رقائق FPGA الحديثة وتعتمد على نوع وسعة الشريحة. يحتوي Xilinx على بلورات CLB تتراوح من حوالي أربعة آلاف إلى ثلاثة ملايين.

بالإضافة إلى CLB ، هناك عدد من موارد الأجهزة الهامة داخل FPGA. على سبيل المثال ، كتل تكاثر الأجهزة أو كتل DSP. يمكن لكل منهم القيام بضرب وإضافة أرقام 18 بت في كل دورة. في البلورات المتطورة ، يمكن أن يتجاوز عدد كتل DSP 6000.

مورد آخر هو كتل الذاكرة الداخلية (Block RAM ، BRAM). يمكن لكل كتلة تخزين 2 كيلوبايت. يمكن أن تصل السعة الإجمالية لهذه الذاكرة ، اعتمادًا على الكريستال ، من 20 كيلوبايت إلى 20 ميجابايت. مثل CLBs ، ترتبط كتل BRAM و DSP بمصفوفة تبديل وتتخلل الشريحة بأكملها. من خلال ربط كتل CLB و DSP و BRAM ، يمكن الحصول على مخططات معالجة بيانات فعالة للغاية.

مزايا FPGAs

احتوت أول شريحة FPGA تم إنشاؤها بواسطة Xilinx في عام 1985 على 64 CLBs فقط. في ذلك الوقت ، كان تكامل الترانزستورات على الرقائق أقل بكثير مما هو عليه الآن ، وغالبًا ما كانت الرقائق "المنفصلة" تُستخدم في الأجهزة الرقمية. كانت هناك شرائح منفصلة للسجلات والعدادات ومضاعفات الإرسال. بالنسبة لجهاز معين ، تم إنشاء لوحة الدوائر المطبوعة الخاصة به ، والتي تم تركيب هذه الدوائر الدقيقة منخفضة التكامل عليها.

جعل استخدام FPGA من الممكن التخلي عن هذا النهج. حتى 64 CLB FPGA يوفر مساحة على لوحة الدوائر المطبوعة ، كما أن توفر إعادة التكوين أضاف القدرة على تحديث وظائف الأجهزة بعد التصنيع أثناء التشغيل ، كما يقولون "في الميدان" (ومن هنا جاء الاسم - مصفوفة بوابة قابلة للبرمجة بالميدان ).

نظرًا لحقيقة أنه يمكن إنشاء أي دائرة رقمية للأجهزة داخل FPGA (الشيء الرئيسي هو وجود موارد كافية) ، فإن أحد التطبيقات المهمة لـ FPGAs هو النماذج الأولية لرقائق ASIC.

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

لتطوير ASIC ، يتم إصدار لوحات خاصة تحتوي على العديد من FPGAs المترابطة. يعمل النموذج الأولي للشريحة الدقيقة بترددات أقل بكثير (ربما عشرات الميجاهرتز) ، لكنه يوفر المال في تحديد المشكلات والأخطاء.

ومع ذلك ، في رأيي ، هناك تطبيقات أكثر إثارة للاهتمام من FPGAs. يسمح الهيكل المرن لـ FPGA بتنفيذ دوائر الأجهزة لمعالجة البيانات عالية السرعة والمتوازية مع القدرة على تغيير الخوارزمية.


مقارنة بين منصات الأجهزة

دعنا نفكر في الاختلاف الأساسي بين CPU و GPU و FPGA و ASIC. وحدة المعالجة المركزية عالمية ، يمكنك تشغيل أي خوارزمية عليها ، فهي الأكثر مرونة ، وهي الأسهل في الاستخدام نظرًا للعدد الهائل من لغات البرمجة وبيئات التطوير.

في الوقت نفسه ، نظرًا لتعدد الاستخدامات والتنفيذ المتسلسل لتعليمات وحدة المعالجة المركزية ، ينخفض ​​الأداء ويزيد استهلاك الدائرة للطاقة. يحدث هذا لأنه لكل عملية حسابية مفيدة ، تقوم وحدة المعالجة المركزية بإجراء العديد من العمليات الإضافية المتعلقة بقراءة التعليمات ، ونقل البيانات بين السجلات وذاكرة التخزين المؤقت ، والإيماءات الأخرى.

على الجانب الآخر هو ASIC. على هذا النظام الأساسي ، يتم تنفيذ الخوارزمية المطلوبة في الأجهزة بسبب الاتصال المباشر للترانزستورات ، وجميع العمليات مرتبطة فقط بتنفيذ الخوارزمية ولا توجد طريقة لتغييرها. ومن هنا يأتي أقصى أداء وأقل استهلاك للطاقة للمنصة. لكن من المستحيل إعادة برمجة ASIC.

على يمين وحدة المعالجة المركزية توجد وحدة معالجة الرسومات. في البداية ، تم تصميم هذه الشرائح لمعالجة الرسومات ، ولكنها تستخدم الآن في التعدين الحوسبي للأغراض العامة. وهي تتكون من آلاف النوى الحاسوبية الصغيرة وتؤدي عمليات متوازية على مجموعة من البيانات.

إذا كان من الممكن موازنة الخوارزمية ، فسيكون من الممكن في وحدة معالجة الرسومات تحقيق تسارع كبير مقارنة بوحدة المعالجة المركزية. من ناحية أخرى ، سيتم تنفيذ الخوارزميات المتسلسلة بشكل أسوأ ، وبالتالي فإن النظام الأساسي أقل مرونة من وحدة المعالجة المركزية. أيضًا ، لتطوير GPU ، يجب أن تكون لديك مهارات خاصة ، تعرف على OpenCL أو CUDA.

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

الميزة الحاسمة لـ FPGA هي القدرة على معالجة البيانات بمعدل وصولها بأقل تأخير في الاستجابة. على سبيل المثال ، تخيل جهاز توجيه شبكة ذكيًا يحتوي على عدد كبير من المنافذ: عندما تصل حزمة Ethernet إلى أحد منافذها ، يجب التحقق من العديد من القواعد قبل اختيار منفذ الإخراج. قد تحتاج إلى تغيير بعض الحقول في الحزمة أو إضافة حقول جديدة.

يتيح لك استخدام FPGA حل هذه المشكلة على الفور: لقد بدأت وحدات بايت الحزمة للتو في الوصول إلى الدائرة المصغرة من واجهة الشبكة ، ويتم تحليل رأسها بالفعل. يمكن أن يؤدي استخدام المعالجات هنا إلى إبطاء سرعة معالجة حركة مرور الشبكة بشكل كبير. من الواضح أنه يمكنك إنشاء شريحة ASIC مخصصة لأجهزة التوجيه التي ستعمل بكفاءة أكبر ، ولكن ماذا لو تغيرت قواعد معالجة الحزم؟ يمكن لـ FPGA فقط مساعدتك في تحقيق المرونة المطلوبة جنبًا إلى جنب مع الأداء العالي.

وبالتالي ، يتم استخدام FPGAs حيث تكون هناك حاجة إلى أداء معالجة عالي وأسرع وقت استجابة واستهلاك منخفض للطاقة.

FPGA في السحابة

في الحوسبة السحابية ، تُستخدم FPGA للعد السريع وتسريع حركة مرور الشبكة والوصول إلى صفائف البيانات. يتضمن هذا أيضًا استخدام FPGA للتداول عالي التردد في البورصات. يتم إدخال لوحات FPGA المزودة بـ PCI Express وواجهة الشبكة الضوئية المصنعة بواسطة Intel (Altera) أو Xilinx في الخوادم.

تعتبر FPGAs رائعة لخوارزميات التشفير ومقارنة تسلسل الحمض النووي والمهام العلمية مثل الديناميات الجزيئية. استخدمت Microsoft منذ فترة طويلة FPGAs لتسريع خدمة بحث Bing ، وكذلك لتنظيم الشبكات المعرفة بالبرمجيات داخل سحابة Azure.

لم تتجاوز طفرة التعلم الآلي FPGA أيضًا. تقدم Xilinx و Intel أدوات قائمة على FPGA للعمل مع الشبكات العصبية العميقة. أنها تسمح لك بالحصول على البرامج الثابتة FPGA التي تنفذ شبكة معينة مباشرة من أطر مثل Caffe و TensorFlow.

علاوة على ذلك ، يمكنك تجربة كل هذا دون مغادرة منزلك واستخدام الخدمات السحابية. على سبيل المثال ، في Amazon ، يمكنك استئجار آلة افتراضية مع إمكانية الوصول إلى لوحة FPGA وأي أدوات تطوير ، بما في ذلك التعلم الآلي.

FPGA على الحافة

ما هو الشيء المثير للاهتمام القيام به على FPGA؟ لماذا لا يفعلون ذلك فقط! الروبوتات والمركبات غير المأهولة والطائرات بدون طيار والأدوات العلمية والمعدات الطبية وأجهزة المستخدم المحمولة والكاميرات الأمنية الذكية وما إلى ذلك.

تقليديا ، تم استخدام FPGAs للمعالجة الرقمية للإشارات أحادية البعد (وتنافس مع معالجات DSP) في أجهزة الرادار وأجهزة الإرسال والاستقبال للإشارات الراديوية. مع زيادة تكامل الرقائق وزيادة الأداء ، أصبحت منصات FPGA مستخدمة بشكل متزايد للحوسبة عالية الأداء ، على سبيل المثال ، لمعالجة الإشارات ثنائية الأبعاد "على حافة السحابة" (حوسبة الحافة).

يسهل فهم هذا المفهوم باستخدام مثال كاميرا تحليل حركة المرور مع التعرف على لوحة الترخيص. يمكنك التقاط كاميرا لها القدرة على نقل الفيديو عبر إيثرنت ومعالجة البث على خادم بعيد. مع زيادة عدد الكاميرات ، سيزداد الحمل على الشبكة أيضًا ، مما قد يؤدي إلى فشل النظام.

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

بالنسبة إلى الروبوتات والطائرات بدون طيار ، من المهم بشكل خاص في هذا المجال تحقيق شرطين - الأداء العالي واستهلاك الطاقة المنخفض. تناسب منصة FPGA تمامًا ويمكن استخدامها ، على وجه الخصوص ، لإنشاء وحدات تحكم طيران للطائرات بدون طيار. يتم بالفعل صنع الطائرات بدون طيار التي يمكنها اتخاذ القرارات بسرعة.

تطوير مشروع FPGA

هناك مستويات مختلفة من التصميم: منخفضة ، وكتلة ، وعالية. يتضمن المستوى المنخفض استخدام لغات مثل Verilog أو VHDL ، حيث يمكنك التحكم في التطوير على مستوى نقل السجل (RTL). في هذه الحالة ، تقوم بتكوين السجلات ، كما هو الحال في المعالج ، وتحدد الوظائف المنطقية التي تغير البيانات فيما بينها.

تعمل دارات FPGA دائمًا بسرعات معينة على مدار الساعة (عادةً 100-300 ميجاهرتز) ، وعلى مستوى RTL ، يمكنك تحديد سلوك الدائرة داخل ساعة النظام. ينتج عن هذا العمل المضني أكثر الدوائر كفاءة من حيث الأداء ، واستهلاك موارد قوالب FPGA ، واستهلاك الطاقة. ولكن هنا مطلوب مهارات جادة في الدوائر ، والعملية ليست سريعة معهم.

على مستوى الكتلة ، فأنت تقوم بشكل أساسي بتوصيل الكتل الكبيرة الجاهزة التي تؤدي وظائف معينة للحصول على وظائف النظام على الرقاقة (النظام على الرقاقة) التي تحتاجها.

عند مستوى عالٍ من التصميم ، لن تكون متحكمًا في البيانات في كل دورة ساعة ، وبدلاً من ذلك ستركز على الخوارزمية. يوجد مترجمون أو مترجمون من C و C ++ إلى مستوى RTL ، مثل Vivado HLS. إنه ذكي تمامًا ويسمح لك بترجمة فئة واسعة من الخوارزميات إلى مستوى الأجهزة.

الميزة الرئيسية لهذا النهج على لغات RTL هي سرعة التطوير وخاصة اختبار الخوارزمية: يمكن تشغيل كود C ++ والتحقق منه على جهاز كمبيوتر ، وسيكون أسرع بكثير من اختبار تغييرات الخوارزمية على مستوى RTL. بالطبع ، سيتعين عليك الدفع مقابل الراحة - قد يتضح أن الدائرة ليست سريعة جدًا وتستهلك المزيد من موارد الأجهزة.

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

غالبًا ما يلزم دمج جميع أنماط التطوير الثلاثة في تصميم واحد. لنفترض أننا بحاجة إلى صنع جهاز يمكننا بناءه في روبوت ومنحه القدرة على التعرف على الأشياء في دفق فيديو - على سبيل المثال ، إشارات الطريق. لنأخذ شريحة مستشعر الفيديو ونوصلها مباشرة بـ FPGA. لتصحيح الأخطاء ، يمكننا استخدام شاشة HDMI ، متصلة أيضًا بـ FPGA.

سيتم نقل الإطارات من الكاميرا إلى FPGA عبر واجهة تم تحديدها مسبقًا من قبل الشركة المصنعة للحساس (USB لا يعمل هنا) ، ومعالجتها وعرضها على الشاشة. لمعالجة الإطارات ، ستحتاج إلى حافظة إطارات ، والتي توجد عادةً في ذاكرة DDR خارجية مثبتة على لوحة دوائر مطبوعة بجوار شريحة FPGA.


مخطط كتلة تصميم نموذجي FPGA

إذا لم توفر الشركة المصنعة لمستشعر الفيديو واجهة IP لشريحة FPGA الخاصة بنا ، فسنضطر إلى كتابتها بأنفسنا بلغة RTL ، مع حساب الساعات والبت والبايت وفقًا لمواصفات بروتوكول نقل البيانات. المعالجة المسبقة ، وحدة التحكم DDR وكتل HDMI IP ، من المرجح أن نأخذ الكتل الجاهزة ونقوم ببساطة بتوصيل واجهاتهم. وكتلة HLS ، التي تقوم بالبحث عن البيانات الواردة ومعالجتها ، يمكننا الكتابة بلغة C ++ والبث باستخدام Vivado HLS.

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

ضع في اعتبارك مسار التصميم من كتابة كود RTL إلى تحميل ملف التكوين في FPGA.

مسار التصميم

لذلك ، تكتب رمز RTL الذي ينفذ المخطط الذي تحتاجه. قبل اختباره على جهاز حقيقي ، تحتاج إلى التأكد من صحته وأنه يحل المشكلة المطلوبة بشكل صحيح. لهذا الغرض ، يتم استخدام نمذجة RTL في جهاز محاكاة على الكمبيوتر.

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

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

تتطلب هذه القيود أيضًا تحديد سرعات الساعة التي يجب أن تعمل بها الدائرة. يتم إعطاء ناتج آلة النطق وملف القيد لمعالج التنفيذ ، والذي يتعامل مع Place and Route ، من بين أشياء أخرى.

تربط عملية Place كل عنصر غير شخصي حتى الآن من netlist إلى عنصر معين داخل شريحة FPGA. بعد ذلك ، تبدأ عملية المسار في العمل ، والتي تحاول العثور على الاتصال الأمثل لهذه العناصر للتكوين المقابل لمصفوفة تبديل FPGA.

يعمل المكان والطريق على أساس القيود التي فرضناها على الدائرة: دبابيس الإدخال / الإخراج وسرعة الساعة. فترة الساعة لها تأثير قوي للغاية على التنفيذ: يجب ألا تقل عن التأخير الزمني على البوابات المنطقية في الدائرة الحرجة بين قلابين متتاليين.

غالبًا لا يمكن تلبية هذا المطلب على الفور ، ومن ثم من الضروري العودة إلى المرحلة الأولية وتغيير رمز RTL: على سبيل المثال ، حاول تقليل المنطق في السلسلة الحرجة. بعد اكتمال التنفيذ بنجاح ، نعرف العناصر التي توجد في مكانها وكيف يتم توصيلها.

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

يمكنك العودة إلى مرحلة المحاكاة ومحاكاة موقف غير طبيعي ، وإذا لم ينجح ذلك ، في الحالات القصوى ، يتم توفير آلية تصحيح الأخطاء مباشرة في الأجهزة قيد التشغيل. يمكنك تحديد الإشارات التي تريد تتبعها بمرور الوقت ، وستقوم بيئة التطوير بإنشاء دائرة محلل منطقي إضافية يتم وضعها على الشريحة بجوار دائرة التصميم الخاصة بك ، وتتصل بالإشارات المهمة وتخزن قيمها بمرور الوقت. يمكن تنزيل مخططات التوقيت المحفوظة للإشارات المرغوبة على جهاز كمبيوتر وتحليلها.

أثناء وجود العطلات ، قمت بعمل مشروع صغير في Verilog ، والذي أردت تجربته لفترة طويلة.

جوهر المشروع هو كما يلي: يتم توصيل ADC سريع (نسبيًا ، بالطبع) بقناتين وواجهة متوازية (14-16 بت لكل قناة) بـ FPGA. يقرأ FPGA البيانات من ADC ويخزنها في مخزن مؤقت (ذاكرة BRAM الداخلية). عندما يمتلئ المخزن المؤقت ، تتوقف القراءة ويمكن للجهاز الخارجي (متحكم دقيق) قراءة البيانات من المخزن المؤقت عبر واجهة SPI. يمكنك أيضًا تكوين بعض المعلمات عبر SPI (سيتم مناقشة ذلك في المنشور التالي).

اختبار المشروع (صورة قابلة للنقر).

نتيجة توليف لـ Cyclone IVE

لقد صنعت النتيجة في Quartus II ، لـ FPGA لعائلة Cyclone IVE (EP4CE6E22A7). هذا هو واحد من أبسط وأرخص FPGAs في حزمة QFP144 لعناصر منطقية 6272. تبلغ سعة ذاكرة الرقاقة 30K * 9 بت. دبابيس المستخدم - 92.

رقاقة EP4CE6E22A7
العناصر المنطقية - 301 (5٪)
دبابيس - 41 (45٪)
الذاكرة - 65536 بت (24٪)
تردد أسوأ حالة (125 درجة مئوية) - 151 ميغا هرتز.

ذاكرة 8 كيلو بايت ، هذا هو في الواقع المخزن المؤقت حيث تتم كتابة البيانات. مع قناتين من 16 بت ، يتحول إلى 32 بت لكل عينة ، و 2048 عينة. قررت أن هذا سيكون كافيًا ، على الرغم من أنه يمكن توسيع المخزن المؤقت حتى ليشمل وحدة التخزين بأكملها.

التردد مُرضٍ تمامًا ، توقعت أنه سيكون هناك تردد على مدار الساعة يبلغ 50 ميجاهرتز و ADC عند 25 ميجاهرتز. أي ، يتم الحصول على هامش ثلاثي في ​​التردد.

عدد العناصر المنطقية ضئيل تمامًا لمثل FPGA ، أي يمكنك ، إذا كنت ترغب في ذلك ، إرفاق الكثير من الأشياء الأخرى هناك ، خاصة وأن هناك ما يصل إلى 51 دبوسًا متبقيًا.

توجد عائلة Cyclone 10 أحدث.

نتيجة توليف الإعصار 10

نختار الشريحة 10CL006YE144C8G. لديها نفس عدد البوابات (6272) مثل إصدار Cyclone 4 ونفس المقدار من الذاكرة (30K × 9). الحالة هي نفسها QFP144 ، وهناك عدد أقل من دبابيس المستخدم - 89.

رقاقة 10CL006YE144C8G
عناصر المنطق - 289 (5٪)
دبابيس - 41 (46٪)
الذاكرة - 65536 بت (24٪)
تردد أسوأ حالة (85 درجة مئوية) هو 145.5 ميجا هرتز.

من الغريب أن يكون المشروع أكثر إحكاما من حيث العناصر المنطقية. وهذا يعني ، مع نفس القدرة المنطقية ، أن مشروعًا أكثر تعقيدًا سيتناسب مع Cyclone 10. كل شيء آخر على نفس المستوى.

يطرح سؤال معقول: هل من الممكن توفير المال عن طريق تثبيت FPGA أو CPLD آخر؟

لنجرب FPGA MAX10.

نتيجة التركيب لـ MAX 10

هنا قد يصيح القارئ (إذا كان في الموضوع): لا ، ليس الأمر كذلك! عائلة MAX هي CPLD ، وليس FPGA ، والخلط بين هذه المفاهيم هو سلوك غير احترافي صارخ!

ومع ذلك ، بفضل جهود المسوقين من Intel (هل يعلم الجميع أننا نتحدث عن رقائق Intel؟) ، تحولت عائلة MAX10 إلى FPGA ، على الرغم من أنها تحتوي على ذاكرة تكوين داخلية غير متقلبة ، مثل أي CPLD.

لذلك ، اخترنا شريحة ، على سبيل المثال ، 10M02SCE144A7G (2304 جنيه ، 101 GPIO ، 12Kx9 BRAM) ، حزمة QFP144.

رقاقة 10M02SCE144A7G.
عناصر المنطق - 298 (13٪)
دبابيس - 41 (41٪)
الذاكرة - 65536 بت (59٪)
تردد أسوأ حالة (125 درجة مئوية) - 153 ميغا هرتز.

نرى أن المؤشرات المطلقة بقيت عمليا كما هي ، فقط درجة ملء الكريستال زادت ، وهو أمر مفهوم - 2304 جنيه مقابل 6272 جنيه.

هل يمكن استخدام MAX II؟

السؤال الآن هو: هل من الممكن استخدام بعض CPLD الرخيصة للغاية ، مثل MAX II؟ كل شيء هنا أكثر تعقيدًا. ليس لديهم ذاكرة BRAM ، أي. ستحتاج أيضًا إلى ذاكرة SRAM خارجية سريعة.

لتوصيل SRAM ، ستكون هناك حاجة بالطبع إلى منطق إضافي. إذا استخدمنا ذاكرة 4K x 16 ، فسنحتاج إلى 16 دبوسًا إضافيًا للبيانات ، و 12 للعنوان و 3 للتحكم (/ cs ، / نحن ، / oe) ، ليصبح المجموع 31 دبوسًا إضافيًا.

المنطق سيزداد أيضا في الحجم. من الصعب تحديد المبلغ بالضبط ، لكنه لن يتناسب مع CPLD بسعر 240 جنيهًا في البداية ، ولكن ربما يتناسب مع 570 جنيهًا مصريًا.

نختار CPLD EPM570 في حزمة QFP100. نحتاج فقط إلى 72 دبوسًا ، تحتوي العلبة على 76 دبوسًا لـ GPIO ، أي يجب أن يكون كافياً لكل شيء ، ولكن هناك بالفعل مجال ضئيل للغاية للتوسع.

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

سعر الإصدار

هذا ما وجدته باستخدام efind. تختلف الدوائر الدقيقة قليلاً ، لكن الرقم والحرف في النهاية هما مؤشر الأداء ومدى درجة الحرارة (تجاري). نظرًا لأن لدينا هامشًا ثلاثي الأبعاد في التكرار ، فإن هذه الأرقام ليست مهمة على الإطلاق بالنسبة لنا.

EP4CE6E22C8N - 456.55 R (Promelectronics ، EKB ، بيع بالتجزئة)
10CL006YE144C - 754.71 (العنصر الخامس ، سانت بطرسبرغ ، البيع بالجملة)
10M02SCE144C8G - 456 R (إليتان ، إيكب ، بالجملة)
EPM570F100C5N - 368 R (Hitech، St.

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

يمكن ملاحظة أن خيار CPLD لا يفوز بأي شكل من الأشكال من حيث السعر ، مع وجود العديد من العيوب. الخيارات المتبقية متكافئة تقريبًا ، باستثناء أن Cyclone 10 لا يزال أغلى قليلاً وقليل من الناس لديهم في المخزون. ومع ذلك ، فهذه عائلة جديدة تمامًا ، ولم يحضرها جميع الموزعين حتى الآن.

أنا شخصياً أحب خيار MAX 10. فهو يتمتع بميزة واحدة: لا حاجة لتحميل تهيئة FPGA عند بدء التشغيل. في متغير Cyclone 4 ، ستحتاج إلى تحميل تهيئة FPGA ، والتي يمكن إجراؤها إما باستخدام شريحة ذاكرة تكوين إضافية أو باستخدام متحكم دقيق. هناك خيار ثالث: الفلاش عبر JTAG وعدم إزالة الطاقة من الشريحة أبدًا. سمعت أن شخصًا ما فعل هذا ، ولا أعرف ما إذا كانت مزحة أم لا ، لكنني بالتأكيد لن أفعلها.

ومع ذلك ، فإن المتغير مع البرامج الثابتة Cyclone 4 من خلال وحدة التحكم الدقيقة له ميزة: القدرة على تحديث البرامج الثابتة FPGA من خلال واجهات المستخدم: USB ، Ethernet ، إلخ.

هناك خيار آخر غير تافه ممكن: لا تقم بتثبيت متحكم دقيق على الإطلاق ، ولكن قم بوميض بعض المعالج المدمج في FPGA. لكن هذا ليس خيارًا جيدًا للغاية ، ربما ، لأنه. سيتطلب هذا بالتأكيد ذاكرة ROM وذاكرة RAM خارجية ، بالإضافة إلى جسر USB على الأقل. ليس من الضروري بالطبع رفض هذا الخيار عمدًا ، لكن يبدو لي أن تنفيذه أكثر صعوبة من استخدام متحكم دقيق.

حول الوظائف التي يؤديها هذا البرنامج الثابت ، سأكتب في المنشور التالي.

استخدام FPGA في الأجهزة الحديثة

توبيكوف بافل أندريفيتش

طالب في السنة الخامسة ، قسم الفنون OmSTU ، الاتحاد الروسي ، أومسك

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

· تحسين أداء المنتج.

· انخفاض سعر المنتج.

أبعاد المنتج مخفضة.

تزداد موثوقية المنتج (ينخفض ​​عدد الدوائر الدقيقة المنفصلة)

تزداد مرونة المنتج (يمكن دائمًا إعادة برمجة FPGA)

بنية FPGA لها هيكل معقد (الشكل 1)

الشكل 1. الهيكل الداخلي لـ FPGA

كما يتضح من الشكل 1 ، يتكون الجزء الرئيسي من FPGA من كتل منطقية قابلة للبرمجة ووصلات داخلية قابلة للبرمجة.

تتكون عملية البرمجة (البرامج الثابتة) FPGA في تكوين الاتصالات الضرورية بين مدخلات ومخرجات الجهاز.

حتى الآن ، هناك اثنان من رواد العالم في إنتاج FPGAs في العالم. هذه هي الشركات الأمريكية Xilinx و Altera.

تقدم كل شركة CAD الخاصة بها للعمل مع FPGAs. تقدم Xilinx مجموعة تطوير برامج Xilinx (SDK). تقدم Altera Max + Plus II و Quartus II ، بالإضافة إلى نظام محاكاة ModelSim.

لإنشاء برامج ثابتة ، عادةً ما يتم استخدام لغات لوصف تشغيل المعدات ، واللغات التالية هي الأكثر شيوعًا اليوم:

فيريلوج HDL.

تعد لغة VHDL هي الأكثر صعوبة في التعلم ، ولكنها في نفس الوقت تتمتع بأكبر إمكانات على المستويات الوظيفية والسلوكية للتجريد ، ومع ذلك ، فهي تتمتع بقدرات أقل على المستوى الهيكلي للتجريد مقارنةً بـ Verilog HDL ، وكانت مكتبة VITAL تم تطويره لتوسيع قدرات لغة VHDL (الشكل 2).


الشكل 2. طبقات التجريد فيريلوج و VHDL

مثال على تشغيل لغة Verilog HDL هو برنامج تم تنفيذه على CYCLONE III EP3C5E1444C8N FPGA من حامل Mini-DiLab ، والذي يظهر منظره العام في الشكل. 3.


الشكل 3. منظر عام للوحة ميني - ديلاب

يقوم هذا البرنامج بتنفيذ التبديل المتسلسل لمصابيح LED0-led7 ، مع اختيار إضافة حركة "الضوء" باستخدام زري pba و pbb ، بالإضافة إلى التحكم في سرعة التبديل باستخدام المفتاحين sw0 و sw1.

// نص البرنامج

وحدةمشروع( انتاجقاد، مدخل clk_25 ميجا هرتز ، مدخل pba مدخل pbb

مدخلجنوب غرب)؛

// وجهة التوصيلات الداخلية للمشروع

الأسلاكق 1 ؛

الأسلاك s2 ؛

الأسلاك s3 ؛

// استدعاء الملفات الأخرى (الإجراءات الفرعية) المتصلة بالمشروع

tr tr_1 (.out (s2) ، .set (pba) ، .res (pbb)) ؛

Counter_1 (.q (s1) ، .clk (clk_25mhz) ، .up (s2)) ؛

Mx mx_1 (.a (s3) ، .in (s1) ، .load (sw)) ؛

Dc3_8 dc3_8_1 (.out (led) ، .in (s3)) ؛

الوحدة النهائية// نهاية البرنامج

آر الروتين الفرعي

وحدة tr (خارج ، ضبط ، الدقة) ؛ // إنشاء برنامج

// إحالة I / O

انتاجريجخارج؛

مدخلتعيين؛

مدخلالدقة ؛

// التهيئة

أولي

يبدأ

خارج<= 1"d0;

// كود البرنامج الرئيسي

دائماً @(نجيدجمجموعة أو نجيدجالدقة)

يبدأ

لو(~ (مجموعة))

خارج<= 1"d1;

آخر

خارج<= 1"d0;

الوحدة النهائية //نهاية البرنامج

عداد روتين فرعي

وحدةالعداد (con ، q ، clk ، up) ؛ // بدء البرنامج

انتاجريجيخدع

انتاجف = يخدع ؛

مدخلفوق ، clk ؛

// كود البرنامج الرئيسي

دائماً @(يطرح clk)

يبدأ

لو(clk)

لو(أعلى)

يخدع<= con - 1"d1;

آخر

يخدع<= con + 1"d1;

الوحدة النهائية// نهاية البرنامج

روتين مكس (معدد)

وحدةم س ( الإخراجأ، مدخلفي، مدخلحمولة)؛

// كود البرنامج الرئيسي

دائماً @*

يبدأ

قضية(حمولة)

2 "b00: أ = في ؛

2 "b01: أ = في ؛

2 "ب 10: أ = في ؛

2 "ب 11: أ = في ؛

النهاية

الوحدة النهائية // نهاية البرنامج

روتين فرعي dc3_8 (معدد)

وحدة dc3_8 (خارج ، في) ؛ // بدء البرنامج

// إحالة I / O

الإخراجخارج؛

سلك الإدخالفي؛

// كود البرنامج الرئيسي

دائماً @*

يبدأ

قضية(في)

3 "d0: out = 8" b11111110 ؛

3 "d1: out = 8" b11111101 ؛

3 "d2: out = 8" b11111011 ؛

3 "d3: out = 8" b11110111 ؛

3 "d4: out = 8" b11101111 ؛

3 "d5: out = 8" b11011111 ؛

3 "d6: out = 8" b10111111 ؛

3 "d7: out = 8" b01111111 ؛

النهاية

الوحدة النهائية // نهاية البرنامج

تم تنفيذ البرنامج في CAD Quartus II.

بعد تجميع البرنامج ، لم يولد المترجم أي أخطاء أو ملاحظات في البرنامج تتعلق بتحليل وصياغة البرنامج (الشكل 4).


الشكل 4. نافذة رسالة المشروع

تشير الملاحظات التي أدلى بها المترجم إلى عدم وجود ترخيص لـ Quartus II (تم استخدام النسخة المجانية من البرنامج للتدريب) وغياب الملفات اللازمة لنمذجة المشروع.

RTL هيكل هذا المشروع مبين في الشكل. 5.


الشكل 5. تنفيذ المشروع ( RTL بناء)

كما يظهر في الشكل. 6 في هذا البرنامج ، يتم استخدام جزء صغير فقط من قدرات FPGA.

الشكل 6. جزء من FPGA المشاركة في المشروع

الاستنتاجات:تُستخدم الدوائر المتكاملة المنطقية القابلة للبرمجة في العديد من الأجهزة. لمعرفة كيفية العمل معهم ، من الضروري إدخال التخصصات المتعلقة بتصميم وبناء المعدات الإلكترونية الراديوية على دراية بلغات وصف الأجهزة (Verilog HDL و VHDL) في البرنامج التعليمي.

فهرس:

1. Grushevitzky R.I. تصميم الأنظمة على أساس الدوائر الدقيقة لمنطق البرنامج / R.I. Grushevitzky ، A.X. مرساييف ، إ. كئيب. سانت بطرسبرغ: BHV Petersburg ، 2002. - 608 ص.

2. Kolomov D.A. أنظمة التصميم بمساعدة الكمبيوتر من Altra MAX + plus II و Quartus II. وصف موجز وبرنامج تعليمي / د. كولوموف ، ر. مايالك ، أ. زوبينكو ، أ. فيليبوف. م: IP RadioSoft، 2002. - 126 ص.

3. تصميم Maxfield K. FPGA. مسار مقاتل شاب / ك. ماكسفيلد. م: دار النشر "Dodeka-XXI" 2007. - 408 ص. (ترجمة من اللغة الإنجليزية).

65 نانومتر هو الهدف التالي لمصنع Zelenograd Angstrem-T ، والذي سيكلف 300-350 مليون يورو. ذكرت فيدوموستي هذا الأسبوع نقلاً عن ليونيد ريمان ، رئيس مجلس إدارة المصنع ، أن الشركة قدمت بالفعل طلبًا للحصول على قرض ميسر لتحديث تقنيات الإنتاج إلى Vnesheconombank (VEB). تستعد Angstrem-T الآن لإطلاق خط إنتاج رقائق بطوبولوجيا 90 نانومتر. ستبدأ مدفوعات قرض VEB السابق ، الذي تم شراؤه من أجله ، في منتصف عام 2017.

انهارت بكين وول ستريت

شهدت المؤشرات الأمريكية الرئيسية الأيام الأولى من العام الجديد بانخفاض قياسي ، وقد حذر الملياردير جورج سوروس بالفعل من أن العالم ينتظر تكرار أزمة عام 2008.

تم إطلاق أول معالج استهلاكي روسي Baikal-T1 بسعر 60 دولارًا في الإنتاج الضخم

تعد شركة Baikal Electronics في بداية عام 2016 بإطلاق معالج Baikal-T1 الروسي بقيمة 60 دولارًا تقريبًا في الإنتاج الصناعي. يقول المشاركون في السوق إن الأجهزة ستكون مطلوبة إذا تم إنشاء هذا الطلب من قبل الدولة.

ستقوم MTS و Ericsson بتطوير وتنفيذ 5G بشكل مشترك في روسيا

وقعت PJSC "Mobile TeleSystems" و Ericsson اتفاقيات للتعاون في تطوير وتنفيذ تكنولوجيا 5G في روسيا. في المشاريع التجريبية ، بما في ذلك خلال كأس العالم 2018 ، تعتزم MTS اختبار تطورات البائع السويدي. في بداية العام المقبل ، سيبدأ المشغل حوارًا مع وزارة الاتصالات والإعلام حول تشكيل المتطلبات الفنية للجيل الخامس من الاتصالات المتنقلة.

سيرجي تشيميزوف: Rostec هي بالفعل واحدة من أكبر عشر شركات هندسية في العالم

في مقابلة مع RBC ، أجاب رئيس Rostec ، سيرجي تشيميزوف ، على أسئلة ملحة: حول نظام Platon ، وتحدث عن مشاكل وآفاق AVTOVAZ ، ومصالح شركة State Corporation في صناعة الأدوية ، عن التعاون الدولي تحت ضغط العقوبات ، والاستيراد. الاستبدال وإعادة التنظيم واستراتيجيات التنمية والفرص الجديدة في الأوقات الصعبة.

Rostec "محمية" وتتعدى على أمجاد Samsung و General Electric

وافق مجلس الإشراف على Rostec على "استراتيجية التنمية حتى عام 2025". وتتمثل المهام الرئيسية في زيادة حصة المنتجات المدنية عالية التقنية واللحاق بركب جنرال إلكتريك وسامسونج في المؤشرات المالية الرئيسية.

تحاول المقالة تحديد تكوين الوثائق المصاحبة للوحدات الرقمية المطورة للدوائر المتكاملة المنطقية القابلة للبرمجة (FPGAs). يجب توفير هذه الوثائق المصاحبة من قبل المطورين للمستهلك / العميل من أجل الاستخدام الإضافي الناجح للوحدة الرقمية المطورة في مشاريعهم في مرحلة تصميم الأجهزة الرقمية على FPGA.

مقدمة

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

  • GOST 2.102-68 ESKD. أنواع واكتمال وثائق التصميم.
  • GOST 15.101-98. نظام لتطوير وإنتاج المنتجات. الإجراء الخاص بأداء العمل البحثي.
  • GOST R 15.201-20-00. نظام لتطوير وإنتاج المنتجات. منتجات للأغراض الصناعية والتقنية. إجراءات تطوير وإنتاج المنتجات.

كقاعدة عامة ، كانت هذه عبارة عن ملف برنامج ثابت وبرنامج (وصف لجهاز رقمي في VHDL / Verilog أو مجموعة من الدوائر الرقمية المطورة في محرر دائرة باستخدام عناصر مكتبة المنطق الرقمي ، مثل flip-flops ، والسجلات ، والعدادات ، أجهزة فك التشفير ، وما إلى ذلك) على قرص مضغوط أو قرص DVD وتعليمات البرمجة. و هذا كل شيء.

المؤلف ، على سبيل المثال ، واجه المشكلة التالية. طور أحد الموظفين جهازًا رقميًا معقدًا متعدد الوحدات. لقد وصفت جميع الوحدات في VHDL ، ونظرت في المخططات الدوامية لتشغيل هذه الوحدات والجهاز الرقمي ككل على راسم تذبذب جيد ومكلف. لم يكن يعرف عن ملفات Test Bench وعن إمكانية إجراء عمليات محاكاة أو لم يكن يعرف كيفية كتابتها ، بالمناسبة ، لم تكن هناك أيضًا تعليقات على المشروع وعلى أوصاف الوحدات. يمكن أن يكون الموقف أسوأ إذا تم تمثيل الوحدات بدوائر رقمية مصممة في محرر تخطيطي باستخدام عناصر المكتبة. هذا هو المكان الذي يكمن فيه أحد العوائق الرئيسية: بصرف النظر عن المطور نفسه ، من غير المحتمل أن يفهم أي شخص آخر هذا الجهاز الرقمي ، خاصةً إذا كان المشروع متعدد الوحدات ، وكان وصف كل وحدة أكثر من 100 سطر أو أكثر من شاشة عرض واحدة. لذلك ، إذا أراد مطور آخر إدخال مثل هذا الجهاز الرقمي المطور بالفعل لـ FPGA في تطوير أو مشروع جديد ، فإنه يحتاج مرة أخرى إلى قضاء بعض الوقت في تطوير هذا الجهاز الرقمي.

تاريخ قضية تصميم FPGAs

حاليًا ، يعد سوق FPGA واحدًا من أكثر الأسواق تطورًا ديناميكيًا. تستخدم FPGAs في العديد من فروع التكنولوجيا. في الوقت الحالي ، لا توجد منهجية واضحة ترضي جميع مطوري الأجهزة للحصول على تكوين FPGA من النموذج الوظيفي للجهاز على مستوى النظام. النهج الأكثر شيوعًا لحل هذه المشكلة هو استخدام تكنولوجيا جوهر الملكية الفكرية (نواة الملكية الفكرية). نوى IP عبارة عن مكونات جاهزة تتيح لك تضمينها بسهولة في مشروعك الخاص لإنشاء نظام أكثر تعقيدًا. هذا النهج له عيب واحد كبير - ربط نوى IP بالأساس الأولي. تم تحسين كل نواة IP لسلسلة معينة من الرقائق من جهة تصنيع معينة ، مما يضعف بشكل كبير من إمكانية نقل الأجهزة التي تم إنشاؤها بالفعل من أساس عنصر إلى آخر. تجعل الطبيعة المغلقة لبنى CAD التجارية من المستحيل إضافة نماذج الأجهزة الوظيفية الخاصة بك على مستوى النظام للحصول على طرازات الأجهزة على مستوى نقل السجل (RTL) على أساسها. يتم تطوير الوحدة الرقمية في شكل دائرة رقمية مرسومة في محرر دائرة باستخدام مكتبة CAD المدمجة الخاصة بالشركة المصنعة لعناصر الدائرة الأساسية ، مثل flip-flops ، وأجهزة فك التشفير ، والعدادات ، والعدادات ، إلخ.

هناك نهج شائع آخر يسمح بالانتقال من نموذج وظيفي على مستوى النظام إلى نموذج جهاز على مستوى عمليات نقل السجل وهو استخدام لغات التصميم على مستوى النظام (SLDLs). تتضمن هذه اللغات SystemC و Handel-C و VHDL و Verilog و System Verilog. الميزة الرئيسية هي الاستقلال عن أساس الأجهزة التي سيتم تنفيذ الجهاز فيها.

وبالتالي ، من ناحية ، عند استخدام تقنية IP-core ، يتلقى مطور الأجهزة حلاً عالي الجودة ، ولكنه مرتبط بشكل صارم بأساس الأجهزة التي يتم تنفيذ الجهاز من خلالها. من ناحية أخرى ، عند استخدام لغات وصف الأجهزة على مستوى النظام ، يكون تنفيذ الجهاز مستقلًا عن الأجهزة. مما سبق ، يترتب على ذلك أنه في الوقت الحالي ، من المهم استخدام الاستخدام المشترك للوحدات الرقمية في لغة وصف الأجهزة ونواة IP الخاصة بالشركة المصنعة (Xilinx ، Altera ، Actel ، إلخ) والمطورين الخارجيين للإسراع عملية تصميم الوحدات الرقمية. عند استخدام وحدات رقمية من جهات تصنيع خارجية ، في بعض الأحيان يكون هناك نقص في المعلومات في الوثائق المصاحبة.

توفير معلومات حول الوحدة الرقمية المطورة لـ FPGA

اعتمادًا على منهجية الحصول على تكوين FPGA وفقًا للطراز الوظيفي للجهاز على مستوى النظام ، يمكن للمطور التمييز بين الأنواع التالية من الوحدات الرقمية لـ FPGA:

  • برمجة - وحدة رقمية مطورة ، يتم إرسالها إلى المستهلك في شكل وصف بلغة وصف الأجهزة (VHDL ، Verilog) أو / وتم تطويرها في محرر التخطيط لمزيد من الاستخدام في برامج التوليف الآلي للدوائر المنطقية وتحسينها من حيث المعلمات الوظيفية.
  • البرامج الثابتة - وحدة رقمية طورتها شركة مطورة تابعة لجهة خارجية ، تسمى IP core ، يتم نقلها إلى المستهلك في شكل دائرة منطقية (netlist) بناءً على مكتبة العناصر المنطقية الخاصة بالشركة المصنعة FPGA ومُحسَّنة من حيث الوظائف والمعلمات الكهربائية.

في مرحلة تطوير الوثائق ، بناءً على الخبرة الشخصية ، من الضروري إصدار وثائق لجميع أنواع الطرز ، بالإضافة إلى وثائق التصميم والمواصفات المعتادة ، والتي يتم إجراؤها وفقًا لـ GOST 15.101 و GOST 15.201 و GOST 2.102 و GOST 2.114 (النظام ، المنطق ، الدوائر) التي تم إنشاؤها في مراحل تصميم الأجهزة الرقمية على FPGAs.

بمعنى آخر ، يجب أن تتضمن مجموعة وثائق التصميم لجهاز رقمي لـ FPGA ، بالإضافة إلى ملف البرنامج الثابت ، وتعليمات البرمجة والمشروع المسجل على قرص مضغوط / قرص DVD ، الوثائق المصاحبة.

طاولة.قائمة أقسام التوثيق الداعمة

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

فيما يلي قائمة بالأقسام (الجدول) التي يجب تضمينها في الوثائق المصاحبة لمشروع الوحدة الرقمية لـ FPGAs. لكل قسم تظهر علامات الحاجة لتضمين القسم في مجموعة الوثائق:

  • "O" - قسم إلزامي مزود ؛
  • "R" - قسم موصى به للتسليم.

تنسيقات الملفات الموصى بها لتقديم الوثائق الداعمة هي MS Word و PDF (أفضل تنسيق) و HTML. يتم توفير ملفات الوصف بلغة وصف الأجهزة (VHDL ، Verilog) و / أو تلك التي تم تطويرها في محرر التخطيط كما هو مطلوب بواسطة برنامج تصميم CAD. قد يكون الاستثناء هو الحكم الإضافي في تنسيق الرسوم (JPEG ، BMP) لملفات الدوائر الرقمية التي تم تطويرها في محرر التخطيط.

معلومات عامة

يصف هذا القسم المعلومات العامة حول الوحدة الرقمية المطورة في شكل وصف:

  • مخطط وظيفي والكتل / الأجزاء المكونة له ؛
  • إعادة تعيين الإشارات والتزامن ؛
  • واجهات مطبقة
  • سجلات التحكم
  • الرسم البياني توقيت؛
  • برمجة.

الغرض والنطاق

الغرض من الوحدة الرقمية ، يتم تحديد نطاق تطبيقها.

تحديد

يتم تقديم وصف لخصائصها التقنية الرئيسية ، مثل الأداء ، واستهلاك الطاقة لشريحة FPGA معينة ، وعدد البوابات المشغولة ، ونوع شريحة FPGA المستخدمة. بالإضافة إلى ذلك ، يشار إلى الشركة المصنعة FPGA المستخدمة في تطوير وحدة CAD الرقمية والبرامج المستخدمة للنمذجة والتحقق. بالنسبة لجميع البرامج المستخدمة ، يشار إلى الإصدار والتحديثات المثبتة. يتم تقديم تمثيل رسومي للوحدة الرقمية في شكل "صندوق أسود" مع تعيين المدخلات / المخرجات الخارجية ووصف موجز للغرض منها.

وصف إشارات إعادة التعيين

يتم تقديم معلومات مفصلة حول إشارات إعادة التعيين:

  • قائمة بإشارات إعادة التعيين الخارجية والداخلية.
  • معلمات التوقيت ومخططات التوقيت لإشارات إعادة الضبط.
  • دارات لتوليد إشارات إعادة الضبط الداخلية ، إن وجدت ، مضمنة في الوحدة الرقمية.
  • العلاقات مع الإشارات الأخرى (خاصة إشارات التزامن).

وصف إشارات التزامن

يتم توفير معلومات مفصلة حول إشارات التزامن:

  • وصف إشارات التزامن الخارجية ؛
  • معلمات توقيت إشارات التزامن ؛
  • وصف إشارات التزامن الداخلية ومخططات تكوينها ؛
  • علاقات التوقيت بين إشارات التزامن من مصادر مختلفة ؛

وصف الواجهات

يتم إعطاء ميزات استخدام جميع الواجهات التي تشكل جزءًا من الوحدة الرقمية المطورة ، ويفضل أن تكون موحدة لتنظيم التفاعل مع العقد الأخرى للنظام على شريحة. بالإضافة إلى ذلك ، يتم توفير ارتباط إنترنت لوصف كامل للواجهة القياسية ، أو يتم توفير وصف للواجهة نفسها. في الوقت الحالي ، يتم قبول واجهات ناقل AMBA و PLB و Wishbone كواجهات موحدة للوحدات الرقمية.

مخططات التوقيت

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

وصف سجلات التحكم

تم تقديم وصف لجميع سجلات التحكم بالوحدة الرقمية. يحتوي الوصف النموذجي لسجل التحكم على اسم السجل ، وعنوان السجل في مساحة العنوان الداخلية ، والقيمة الأولية بعد إزالة إشارة إعادة التعيين ، ونوع الوصول (قراءة / كتابة) ، ووصف داخلي مجالات.

مخطط هيكلي (وظيفي)

يتم تقديم صورة للهيكل الداخلي لوصلات العقد / الكتل الداخلية الرئيسية للوحدة الرقمية ، بالإضافة إلى وصفها النصي المختصر. بالإضافة إلى ذلك ، تم تقديم وصف للكتل الداخلية الرئيسية للوحدة الرقمية. الغرض من هذه الوثيقة هو تزويد المستهلك بالمعلومات اللازمة لفهم مبادئ تشغيل الوحدة الرقمية.

يتم تحديد عدد الكتل الموصوفة ونطاق الوصف من قبل مطور الوحدة الرقمية. على نحو مفضل ، يتوافق الحد الأدنى لعدد الوحدات الموصوفة مع عدد عناصر المخطط الهيكلي (الوظيفي) للوحدة الرقمية.

يحتوي الوصف النموذجي للوحدة الداخلية على:

  • احالة كتلة
  • مخطط كتلة هيكلي (وظيفي) (إذا لزم الأمر) ؛
  • أوضاع التشغيل والخوارزميات ؛
  • المخططات الزمنية للعمل.
  • تنظيم إدارة الوحدة.
  • تنظيم التواصل مع الكتل الأخرى ؛
  • أي معلومات أخرى.

دليل البرمجة

يوفر جميع المعلومات اللازمة حول عملية البرمجة باستخدام CAD الخاصة بالشركة المصنعة للوحدة الرقمية في FPGA ، والأدوات المطلوبة لتطوير البرامج وتصحيح الأخطاء ، ومكتبات البرامج.

نموذج FPGA أو عائلة ، الشركة المصنعة

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

تمثيل وحدة رقمية للتصميم المنطقي

ناقش المقال الصعوبات في استخدام مشروع "أجنبي" على VHDL - عدم وجود مبادئ توجيهية مناسبة لتسمية وكتابة البرامج. كما تم إعطاء تعليمات عامة بشأن الأسماء ، والأخلاق الحميدة في كتابة البرامج ، وإرشادات التركيب. يجب مناقشة هذه المشكلات بأكبر قدر ممكن من التفاصيل مع المطور إذا كنت تخطط في المستقبل لمواصلة التطوير أو الترقية بنفسك قبل أن يبدأ في تطوير نموذج RTL للوحدة الرقمية على FPGA. هذا ينطبق بشكل خاص على نوع وحدة البرامج الرقمية على FPGA. يصف نفس الجزء من المقالة المتطلبات العامة للمشروع الكامل للوحدة الرقمية المطورة على FPGA. فيما يلي القضايا التي يجب الانتباه إليها عند وضع الشروط المرجعية لتطوير وحدة رقمية على FPGA ، وهذا يتعلق بشكل خاص بنقل نتائج العمل.

نموذج RTL

تم تصميم الوحدة الرقمية الموصوفة في مجموعة فرعية مركبة من لغة Verilog أو VHDL أو تم تطويرها في محرر التخطيط للاستخدام في مرحلة التوليف المنطقي FPGA. يتم توفيره للبرامج على شكل مشروع مجمع لوحدة رقمية في نظام CAD لمُصنِّع FPGA. بالنسبة للوحدة الرقمية للبرامج الثابتة ، يتم توفير نموذج RTL بموجب اتفاقية منفصلة.

بالإضافة إلى ملفات نموذج RTL ، يتم نقل ما يلي:

  • تعليمات استخدام النموذج.
  • وصف كتل الذاكرة المضمنة في النموذج ، بما في ذلك نوع الذاكرة وحجمها وعدد كتل الذاكرة والاسم الهرمي لكتلة الذاكرة.
  • يصف كيفية إنشاء نواة مسبقة الصنع عند استخدام البرامج لإنشائها (على سبيل المثال ، CoreGenerator لـ Xilinx ISE). في حالة عدم وجود أوصاف ، قد تكون هناك قيود على إعادة التصميم والتطبيق بسبب اعتماد التكنولوجيا والشركة المصنعة.
  • في حالة استخدام معالج دقيق من الشركة المصنعة (على سبيل المثال ، من معالج Altera - Nios ؛ من معالجات Xilinx - Microblaze ، PowerPC) ، يلزم وصف عملية تكوين قلب المعالج ومحيطه.
  • مجموعة من الاختبارات (ملفات Test Bench) للتحقق ومحاكاة وحدة رقمية مكتوبة بلغة Verilog و / و VHDL و / و System Verilog.
  • أي معلومات إضافية أخرى.

نموذج المنطق

النموذج عبارة عن قائمة netlist موصوفة باستخدام لغات Verilog أو VHDL على أساس مكتبة الشركة المصنعة FPGA ويتم توفيره للبرامج الثابتة للوحدة الرقمية.

بالإضافة إلى ملفات النموذج المنطقي ، يتم نقل ما يلي:

  • تعليمات لاستخدام هذا النموذج.
  • مجموعة من الاختبارات (ملفات Test Bench) للتحقق ومحاكاة وحدة رقمية مكتوبة بلغة Verilog و / و VHDL و / و System Verilog.
  • دليل للعمل مع مجموعة من الاختبارات لنمذجة وحدة رقمية والتحقق منها.
  • أي معلومات إضافية أخرى.

حدود التصميم

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

مثال على قائمة القيود المفروضة على إشارات التزامن:

  • مخطط التوقيت (شكل موجة الساعة) ؛
  • عدم استقرار تردد الساعة (الرجفان) ؛
  • تغيير طور الساعة
  • مدة التبديل (أوقات الانتقال) ؛
  • مخططات توقيت إشارات الساعة المشتقة (أشكال موجة الساعة المتولدة) ؛
  • أي معلومات إضافية أخرى.

تعد مجموعة القيود المفروضة على إشارات المزامنة إلزامية للبرامج والبرامج الثابتة للوحدات النمطية الرقمية.

نموذج قائمة بالحدود الزمنية:

  • وقت حدوث الإشارات عند المدخلات (أوقات الوصول عند المدخلات) ؛
  • وقت ظهور الإشارات عند النواتج (الأوقات المطلوبة عند النواتج) ؛
  • مسارات متعددة الدورات
  • مسارات خاطئة (مسارات خاطئة) ؛
  • مدة أوقات انتقال إشارة البيانات ؛
  • أي معلومات إضافية أخرى.

خاتمة

يتم توفير التكوين المعطى للوثائق المصاحبة للوحدات النمطية الرقمية المطورة لـ FPGAs بالاتفاق بين المستهلك والمطور. في أغلب الأحيان ، يوفر المطور وحدة رقمية فقط ، موصوفة في VHDL و Verilog و System Verilog و / أو تم تطويرها في محرر تخطيطي. فيما يتعلق بالوثائق الإضافية ، غالبًا ما تكون إجابة المطور هي التالية: "الوحدة الرقمية تعمل ، لذا خذها واستخدمها. لا يوجد شيء صعب في وصف الدائرة بلغة الأجهزة: سوف تكتشفها بنفسك ".

في رأي المؤلف ، يمكنك فهم أي شيء ، كل هذا يتوقف على الرغبة والوقت الذي تقضيه ، والوقت الذي يقضيه في فهم مشروع "أجنبي" على وحدة رقمية مطورة بالفعل يتناسب بشكل مباشر مع تجربة وصف المعدات في VHDL ، Verilog والمعرفة الدوائر الرقمية والمعالجات الدقيقة. يمكن تجنب ذلك إذا وافقت مبدئيًا مع المطور على تكوين الوثائق المصاحبة ، فسيصبح استخدام الوحدة الرقمية في مشروعك أسهل ، وسيكون تنفيذها أسرع.

بإيجاز ، يود المؤلف أن يلاحظ أنه عند صياغة مهمة لتطوير جهاز رقمي على FPGA ، يجب على المرء الالتزام بالتوصيات الواردة في المقالة ، فلن تكون هناك مشاكل عند إعادة استخدام أو ترقية جهاز رقمي تم تطويره مسبقًا جهاز.

الأدب

  1. Denisov A. عدة نصائح لتصميم الأجهزة الرقمية على VHDL لـ FPGA // المكونات والتقنيات. 2009. رقم 12.
  2. GOST 2.102-68 ESKD. أنواع واكتمال وثائق التصميم.
  3. GOST 2.114-95 ESKD. تحديد.
  4. GOST 15.101-98. نظام لتطوير وإنتاج المنتجات. إجراءات أداء عمل البحث العلمي.
  5. GOST R 15.201-20-00. نظام لتطوير وإنتاج المنتجات. منتجات للأغراض الصناعية والتقنية. إجراءات تطوير وإنتاج المنتجات.
أخبر الأصدقاء