Openroad هو التطبيق الرئيسي المفتوح المصدر للتصميم الرقمي أشباه الموصلات. يوفر تدفق Openroad Flow تدفقًا مستقلًا غير إنساني (NHIL) (NHIL) ، وتحول على مدار 24 ساعة من RTL-GDSII لاستكشاف التصميم السريع وتنفيذ التصميم المادي.
٪٪ {
init: {
"الموضوع": "محايد" ،
'themevariables': {
'TextColor': '#000000' ،
"NotetextColor": "#000000" ،
'Fontsize': '20px'
}
}
} ٪٪
مخطط انسيابي LR
B0 [] --- B2 [] --- B4 [] --- Orflow --- B1 [] --- B3 [] --- B5 []
نمط B0 السكتة الدماغية: 0px ، fill: #ffffff00 ، اللون: #ffffff00
نمط B1 السكتة الدماغية: 0px ، fill: #ffffff00
نمط B2 عرض السكتة الدماغية: 0px ، fill: #ffffff00
النمط B3 عرض السكتة الدماغية: 0px ، fill: #ffffff00
نمط B4 السكتة الدماغية: 0px ، fill: #ffffff00
نمط B5 Width: 0px ، Fill: #fffff00 ، اللون: #ffffff00
LinkStyle 0 عرض السكتة الدماغية: 0px
Linkstyle 1 عرض السكتة الدماغية: 0px
LinkStyle 2 عرض السكتة الدماغية: 0px
Linkstyle 3 عرض السكتة الدماغية: 0px
LinkStyle 4 عرض السكتة الدماغية: 0px
LinkStyle 5 عرض السكتة الدماغية: 0px
الفرع orflow
اتجاه السل
ملء orflow النمط:#ffffff00 ، عرض السكتة الدماغية: 0px
A [Verilog
+ مكتبات
+ قيود] -> التدفق
نمط ملء:#74C2B5 ، السكتة الدماغية:#000000 ، عرض السكتة الدماغية: 4px
تدفق الفرع
ملء تدفق النمط:#ffffff00 ، عرض السكتة الدماغية: 4px
اتجاه السل
ب [التوليف]
ب -> ج [Floorplan]
ج -> د [التنسيب]
D -> E [تخليق شجرة الساعة]
e -> f [التوجيه]
F -> G [الانتهاء]
Style B Fill:#F8CECC ، السكتة الدماغية:#000000 ، عرض السكتة الدماغية: 4px
Style C Fill:#FFF2CC ، السكتة الدماغية:#000000 ، عرض السكتة الدماغية: 4px
Style D Fill:#CCE5FF ، السكتة الدماغية:#000000 ، عرض السكتة الدماغية: 4px
Style E Fill:#67ab9f ، السكتة الدماغية:#000000 ، عرض السكتة الدماغية: 4px
Style F Fill:#FA6800 ، السكتة الدماغية:#000000 ، عرض السكتة الدماغية: 4px
Style G Fill:#FF6666 ، السكتة الدماغية:#000000 ، عرض السكتة الدماغية: 4px
نهاية
التدفق -> H [GDSII
التصميم النهائي]
٪٪ H --- H1 []
٪٪ النمط H1 السكتة الدماغية: 0px ، fill: #ffffff00
٪٪ LinkStyle 11 عرض السكتة الدماغية: 0px
Style H Fill:#FF0000 ، السكتة الدماغية:#000000 ، عرض السكتة الدماغية: 4px
نهاية
يلغي OpenRoad حواجز التكلفة والجدولة المخاطر وعدم اليقين في تصميم الأجهزة لتعزيز الوصول المفتوح إلى برامج تصميم IC السريعة والمنخفضة التكلفة والابتكار في النظام. يمكّن تطبيق Openroad التحكم في التدفق المرن من خلال واجهة برمجة تطبيقات مع روابط في TCL و Python.
يتم استخدام Openroad في التطبيقات البحثية والتطبيقات التجارية مثل ،
يعزز Openroad نظامًا بيئيًا نابضًا بالحياة من المستخدمين من خلال التعاون النشط والشراكة من خلال تطوير البرمجيات والتحالفات الرئيسية. يشمل مجتمع المستخدمين المتناميين مصممي الأجهزة ومهندسي البرمجيات والمتعاونين مع الصناعة وعشاق VLSI والطلاب والباحثين.
يدعو Openroad بقوة ويمكّن مبادرات تطوير القوى العاملة القائمة على التصميم IC من خلال محتوى التدريب والدورات في العديد من الجامعات العالمية ، وتشمل عمليات نقل Google-Skywater أيضًا مكوكات GlobalFoundries ومسابقات التصميم وورش عمل تصميم IC. تم استخدام تدفق Openroad بنجاح حتى الآن في أكثر من 600 شريط جاهز للسيليكون للتقنيات التي تصل إلى 12nm.
يوفر Openroad Openroad-Flow-Scripts كنماذج أولية محلية وجاهزة للاستخدام وتدفق Tapeout. ومع ذلك ، فإنه يتيح أيضًا إنشاء أي وحدات تحكم تدفق مخصصة استنادًا إلى الأدوات الأساسية وقاعدة البيانات والمحركات التحليل. يرجى الرجوع إلى وثائق التدفق هنا.
Openroad-Flow-Scripts (ORFS) عبارة عن تدفق مستقل تمامًا ، RTL-GDSII للعمارة السريعة واستكشاف مساحة التصميم ، والتنبؤ المبكر بتنفيذ التصميم المادي المفصل. ومع ذلك ، يتيح ORFS أيضًا التدخل اليدوي للتحكم في المستخدم الدقيق لمراحل التدفق الفردية من خلال أوامر TCL و APIs Python.
يوضح الشكل أدناه المراحل الرئيسية لنشر Openroad-Flow-Scripts:
٪٪ {init: {'loglevel': 'debug' ، 'السمة': 'Dark'
}} ٪٪
الجدول الزمني
العنوان RTL-GDSII باستخدام Openroad-Flow-Scripts
توليف
: المدخلات [RTL ، SDC ، .LIB ، .LEF]
: تخليق المنطق (Yosys)
: ملفات الإخراج [NetList ، SDC]
خطة الأرضية
: تهيئة Floorplan
: IO وضع (عشوائي)
: وضع مختلط الحجم الذي يحركه التوقيت
: وضع الماكرو
: Tapcell و Welltie الإدراج
: جيل PDN
الموضع
: وضع عالمي بدون وضع iOS
: IO وضع (محسّن)
: وضع عالمي مع iOS الموضوعة
: تغيير الحجم والتخزين المؤقت
: وضع مفصل
CTS: توليف شجرة الساعة
: توقيت تحسين
: إدخال خلية الحشو
التوجيه
: التوجيه العالمي
: توجيه مفصل
الانتهاء
: إدراج ملء المعادن
: تقرير توقيت تسجيل الدخول
: توليد GDSII (Klayout)
: فحص DRC/LVS (Klayout)
فيما يلي الخطوات الرئيسية لتنفيذ التصميم المادي باستخدام OpenRad ؛
FloorplanningGlobal PlacementDetailed PlacementClock Tree SynthesisOptimize setup/hold timingGlobal RoutingDetailed RoutingChip Finishingإن واجهة المستخدم الرسومية Openroad هي أداة تصور ، وتحليل ، وتصحيح الأخطاء مع واجهة TCL قابلة للتخصيص. تُظهر الأرقام أدناه إطلالات واجهة المستخدم الرسومية على مراحل التدفق المختلفة بما في ذلك خطة الأرضيات ، وازدحام المواضع ، و CTS والتصميم بعد المدار.





تطبيق Openroad هو PDK مستقل. ومع ذلك ، فقد تم اختباره والتحقق من صحته مع PDKs محددة في سياق وحدات تحكم التدفق المختلفة.
يدعم OpenLane Skywater 130nm و GlobalFoundries 180nm.
يدعم Openroad-Flow-Scripts العديد من PDKs العامة والخاصة بما في ذلك:
GF180 - 180nmSKY130 - 130nmNangate45 - 45nmASAP7 - finfet التنبؤية 7nm يتم دعم هذه PDKs في Openroad-Flow-Scripts فقط. يتم استخدامها لاختبار ومعايرة Openroad ضد المنصات التجارية وضمان QOR جيد. لا يمكن توفير PDKs والملفات الخاصة بالمنصة لهذه المجموعات بسبب قيود NDA. ومع ذلك ، إذا كنت قادرًا على الوصول إلى هذه المنصات بشكل مستقل ، فيمكنك إنشاء الملفات الخاصة بالمنصة الخاصة بنفسك.
GF55 - 55nmGF12 - 12nmIntel22 - 22nmIntel16 - 16nmTSMC65 - 65NM تم استخدام Openroad للتنفيذ الفعلي الكامل في أكثر من 600 Tapeouts في Sky130 و GF180 من خلال برامج مكوك MPW MPW التي ترعاها Google.


يضيف مشروع Openroad بنشاط مسجّل تصاميم مكوك MPW بنشاط إلى اختبار انحدار CI. تشمل أمثلة التصميمات النوى المفتوحة معالجات ، SOCs مقرها RISC-V ، عمال مناجم العملة المشفرة ، معالجات التطبيقات الآلية ، مستجيبات راديو الأقمار الصناعية الهواة ، الميكرووات القائم على القوة المفتوحة ، إلخ.
لبناء أدوات Openroad محليًا في جهازك ، اتبع الخطوات من هنا.
هناك مجموعة من البرامج النصية اختبار الانحدار القابلة للتنفيذ في ./test/ .
# run tests for all tools
./test/regression
# run all flow tests
./test/regression flow
# run <tool> tests
./test/regression < tool >
# run all <tool>-specific unit tests
cd src/ < tool >
./test/regression
# run only <TEST_NAME> for <tool>
cd src/ < tool >
./test/regression < TEST_NAME > فحص اختبارات التدفق نتائج مثل أسوأ الركود مقابل القيم المرجعية. استخدم report_flow_metrics [test]... لرؤية جميع المقاييس.
% report_flow_metrics gcd_nangate45
insts area util slack_min slack_max tns_max clk_skew max_slew max_cap max_fanout DPL ANT drv
gcd_nangate45 368 564 8.8 0.112 -0.015 -0.1 0.004 0 0 0 0 0 0
لتحديث الانحدار الفاشل ، اتبع التعليمات أدناه:
# update log files (i.e. *ok)
save_ok <TEST_NAME>
# update "*.metrics" for tests that use flow test
save_flow_metrics <TEST_NAME>
# update "*.metrics_limits" files
save_flow_metrics_limits <TEST_NAME> openroad [-help] [-version] [-no_init] [-exit] [-gui]
[-threads count|max] [-log file_name] cmd_file
-help show help and exit
-version show version and exit
-no_init do not read .openroad init file
-threads count|max use count threads
-no_splash do not show the license splash at startup
-exit exit after reading cmd_file
-gui start in gui mode
-python start with python interpreter [limited to db operations]
-log <file_name> write a log in <file_name>
cmd_file source cmd_file
مصادر Openroad مصادر ملف TCL ~/.openroad ما لم يتم تحديد خيار سطر الأوامر -no_init .
Openroad ثم مصادر ملف الأمر cmd_file إذا تم تحديده على سطر الأوامر. ما لم يتم تحديد علامة سطر الأوامر -exit ، فإنه يدخل مترجم أوامر TCL تفاعلي.
قائمة بالأدوات/الوحدات النمطية المتوفرة في تطبيق Openroad وأوصافها متوفرة هنا.
يستخدم Openroad GIT للتحكم في الإصدار والمساهمات. التعرف على البرنامج التعليمي السريع للمساهمة هنا.
رؤية تحذيرات Openroad أو الأخطاء التي لا تفهمها؟ قمنا بتجميع جدول من جميع الرسائل وقد تجد إجابتك هنا.
ترخيص BSD 3-طبقة. انظر ملف الترخيص.