
██████╗ ██╗██████╗ ███████╗██╗ ██╗███╗ ██╗███████╗ ██████╗
██╔══██╗██║██╔══██╗██╔════╝██║ ██║████╗ ██║██╔════╝██╔════╝
██████╔╝██║██████╔╝█████╗ ██║ ██║██╔██╗ ██║█████╗ ██║
██╔═══╝ ██║██╔═══╝ ██╔══╝ ██║ ██║██║╚██╗██║██╔══╝ ██║
██║ ██║██║ ███████╗███████╗██║██║ ╚████║███████╗╚██████╗
╚═╝ ╚═╝╚═╝ ╚══════╝╚══════╝╚═╝╚═╝ ╚═══╝╚══════╝ ╚═════╝
لا تتردد في الرسائل - سعيدة جدًا لجعل Pipelinec تعمل من أجلك! تبحث دائما عن المساعدة كذلك. -جوليان
ابدء
ابدأ بقراءة الويكي.
ما هو pipelinec؟
لغة تشبه C (1) لغة الوصف (HDL) (2) إضافة تخليق عالي المستوى (HLS)-مثل الأنابيب التلقائية (3) كميزة بناء/مترجم لغة.
- ليس في الواقع C. العادي ولكن يمكن تجميعه جزئيًا بواسطة GCC/LLVM للقيام بالتحقق الوظيفي الأساسي/"المحاكاة". تواصل إذا كنت مهتمًا بتطوير بناء جملة لغة أكثر تعقيدًا!
- يمكن أن تحل محل Verilog/VHDL بشكل معقول. ينتج برنامج التحويل البرمجي القابل للتركيب والقابل للقراءة+VHDL القابلة للتصحيح. توجد خطافات لإدخال صناديق VHDL / IP / السوداء الموجودة.
- إذا كان يمكن كتابة حساب كدالة خالصة بدون آثار جانبية (أي لا توجد متغيرات عالمية/ثابتة) ، فسيتم تلقائياترية. تشبه من الناحية النظرية التقنيات مثل اختيارات Intel المتغيرة Hyper-Pipelining و Xilinx Retiming. مشاركة بعض أهداف تصميم الأنابيب التي تحركها البرمجة المترجمة لمشروع XLS من Google ، ولغة DFIANTHDL ، وبعض لهجات CIRCT أيضًا.
ما هو pipelinec لا؟
- تخليق عالي المستوى من رمز C التعسفي مع نموذج / مؤشرات الترابط / الخليج العالمية:
- لا يمكن أن تفعل "حلقات متداخلة إلى بنية الذاكرة" بالنسبة لك.
- محاكاة الأجهزة القائمة على C المترجمة:
- يمكن تجميع أجزاء من رمز Pipelinec فقط من قبل المترجمين C وتشغيلها (يتم تشجيعها).
- ولكن لا يمكن ببساطة تجميع التصميمات الكاملة متعددة الوحدات ، وما إلى ذلك ، وما إلى ذلك ، مثل برامج C العادية.
- مولد أجهزة برمجة Meta (على سبيل المثال ، يستخدم نظام C والمعالج المسبق).
- أداة الخياطة تتم أتمتة تدفق البناء من الكود/الوحدات النمطية إلى BitStream:
- تعمل الأداة على أتمتة تشغيل توليف جزئيًا ولكن يتم ترك الأتمتة إلى BitStream النهائية للمستخدم.
الميزات/الفوائد الأساسية
لغة سهلة الفهم للأجهزة مع مترجم AutopipeLining قوي ومجموعة متزايدة من الميزات المستوحاة من تصميم أجهزة الحياة الحقيقية.
- بناء جملة C المألوفة التي تلغي العديد من المراوغات HDL التي يمكن أن تقع المبتدئين (والخبراء) على ضحية (على سبيل المثال
- متوافق مع جميع أجهزة المحاكاة HDL. السابق. يمكن أن تبدأ النماذج في ثوانٍ ويستورد الإنسان القابل للقراءة+VHDL القابلة للتصحيح مع printf العمل. يمكن أيضًا صياغة "عمليات المحاكاة" المخصصة المخصصة للاتصالات C. يتم تضمين التحويل إلى Verilog أيضًا حسب الحاجة ، أي لـ Verilator.
- ملاحظات التوقيت المفيدة المستمدة من تقارير أداة التوليف للمساعدة في تحديد منطق المسار الحرج الذي لا يمكن أن يتم تحديد الأنابيب تلقائيًا - مفيد بشكل خاص لأولئك الجدد في تصميم المنطق الرقمي.
- يتكامل مع Software Side C بسهولة ؛ مفيد بنيت في توليد الكود. (على سبيل المثال ، لهياكل UN/Beabing من صفائف Byte DE/Serialized عند نقل البيانات من المضيف <-> FPGA).
- وضع كامل للأجهزة استبدال لغة. يمكن أن تبدأ من خلال استنساخ تصميمات VHDL/Verilog الحالية أو بما في ذلك VHDL الخام - لا يجبر على استخدام لغة كاملة في جميع الأوقات.
- تعد الأسلاك المرئية من نقطة إلى نقطة ، معابر المجال متعددة المعدلات/العرض ، و FSMs المشتقة المعقدة ، فقط بعضًا من قائمة ميزات التكلفة المستوحاة من متطلبات/مهام تصميم أجهزة الحياة الحقيقية.
- خط أنابيب تلقائي كميزة للمترجم. يمكن أن يكون الاستخدام الأساسي للأداة هو إنشاء خطوط أنابيب واحدة لإسقاط التصميمات الموجودة في مكان آخر. تخلص من ممارسة منطق خطوط الأنابيب باليد = غير محمول (يعتمد على تردد التشغيل والجزء).
عناصر التصميم الأساسية هي آلات الدولة/العناصر الحكومية (السجلات ، الكباش ، إلخ) ، وظائف نقية عديمة الجنسية تلقائيًا ، وترابطًا (الأسلاك ، CDC ، FIFOS Async ، إلخ). يمكن تنظيم التصميمات لتبدو مثل "توصيل العمليات/المواضيع المتسلسلة" حسب الحاجة.
من خلال عزل المنطق المعقد في وظائف Autopipelinining ، وفقط ساعة حرفية عن طريق وصف الأجهزة على مدار الساعة عندما يكون ذلك ضروريًا للغاية ، لا تحتاج إلى إعادة كتابة تصاميم PipelInec لكل جهاز مستهدف / تردد جديد. الأمل هو بناء تصميمات مشتركة وعالية الأداء ، والأجهزة ، وتصميمات الأجهزة الموصوفة في شكل لغة C مألوفة وقابلة للتكوين بقوة.
بالنسبة لأشخاص البرامج التي يجب أن يشعر بها Pipelinec أن حل لغز البرمجة في C - قواعد اللغز إخفاء/توضيح مفاهيم الأجهزة. بالنسبة للأجهزة ، تعتبر Pipelinec لعبة أفضل للأجهزة في محاولة لإيجاد أرض وسط بين RTL التقليدية و HLS. إنها لغتي المفضلة كمهندس FPGA :).