Openroad เป็นแอพพลิเคชั่นพื้นฐานโอเพ่นซอร์สชั้นนำสำหรับการออกแบบดิจิตอลเซมิคอนดักเตอร์ Openroad Flow มอบการไหลแบบอิสระแบบไม่เป็นอิสระและไม่มีมนุษย์ (NHIL) การพลิกกลับ 24 ชั่วโมงจาก RTL-GDSII สำหรับการสำรวจการออกแบบอย่างรวดเร็วและการใช้งานการออกแบบทางกายภาพ
-
init: {
'ธีม': 'เป็นกลาง',
'THEVARIABLES': {
'TextColor': '#000000'
'NotetextColor': '#000000'
'Fontsize': '20px'
-
-
-
ผังงาน LR
b0 [] --- b2 [] --- b4 [] --- ออร์ฟลอว์ --- b1 [] --- b3 [] --- b5 []
สไตล์ B0 จังหวะความกว้าง: 0px, เติม: #ffffff00, สี: #ffffff00
สไตล์ B1 จังหวะความกว้าง: 0px, เติม: #ffffff00
สไตล์ B2 จังหวะความกว้าง: 0px, เติม: #ffffff00
สไตล์ B3 จังหวะความกว้าง: 0px, เติม: #ffffff00
สไตล์ B4 จังหวะความกว้าง: 0px, เติม: #ffffff00
สไตล์ B5 จังหวะความกว้าง: 0px, เติม: #ffffff00, สี: #ffffff00
linkstyle 0 จังหวะความกว้าง: 0px
linkstyle 1 จังหวะความกว้าง: 0px
linkstyle 2 จังหวะความกว้าง: 0px
linkstyle 3 จังหวะความกว้าง: 0px
linkstyle 4 จังหวะความกว้าง: 0px
linkstyle 5 จังหวะความกว้าง: 0px
orflow กราฟย่อย
ทิศทางวัณโรค
สไตล์ Orflow Fill:#ffffff00, จังหวะความกว้าง: 0px
[Verilog
+ ห้องสมุด
+ ข้อ จำกัด ] -> การไหล
สไตล์ A Fill:#74C2B5, Stroke:#000000, จังหวะจังหวะ: 4px
การไหลของกราฟ
การเติมสไตล์การไหล:#ffffff00, จังหวะจังหวะ: 4px
ทิศทางวัณโรค
B [การสังเคราะห์]
B -> C [FloorPlan]
C -> D [ตำแหน่ง]
D -> E [การสังเคราะห์ต้นไม้นาฬิกา]
e -> f [เส้นทาง]
f -> g [finishing]
Style B Fill:#F8CECC, Stroke:#000000, จังหวะจังหวะ: 4px
Style C Fill:#fff2cc, stroke:#000000, จังหวะจังหวะ: 4px
Style D Fill:#cce5ff, stroke:#000000, จังหวะจังหวะ: 4px
Style E Fill:#67ab9f, Stroke:#000000, จังหวะจังหวะ: 4px
สไตล์ F Fill:#FA6800, Stroke:#000000, จังหวะจังหวะ: 4px
Style G Fill:#FF6666, Stroke:#000000, จังหวะจังหวะ: 4px
จบ
Flow -> H [GDSII
เค้าโครงสุดท้าย]
%% H --- H1 []
%% สไตล์ H1 จังหวะความกว้าง: 0px, เติม: #ffffff00
%% linkstyle 11 จังหวะความกว้าง: 0px
Style H Fill:#FF0000, Stroke:#000000, จังหวะจังหวะ: 4px
จบ
Openroad กำจัดอุปสรรคของค่าใช้จ่ายความเสี่ยงกำหนดเวลาและความไม่แน่นอนในการออกแบบฮาร์ดแวร์เพื่อส่งเสริมการเข้าถึงซอฟต์แวร์การออกแบบ IC ที่มีราคาต่ำและมีความเชี่ยวชาญและนวัตกรรมระบบอย่างรวดเร็ว แอปพลิเคชัน OpenRoad ช่วยให้สามารถควบคุมการไหลได้ที่ยืดหยุ่นผ่าน API ที่มีการเชื่อมโยงใน TCL และ Python
Openroad ใช้ในการวิจัยและการใช้งานเชิงพาณิชย์เช่น
Openroad ส่งเสริมระบบนิเวศที่มีชีวิตชีวาของผู้ใช้ผ่านการทำงานร่วมกันและการเป็นหุ้นส่วนที่ใช้งานผ่านการพัฒนาซอฟต์แวร์และพันธมิตรที่สำคัญ ชุมชนผู้ใช้ที่กำลังเติบโตของเรารวมถึงนักออกแบบฮาร์ดแวร์วิศวกรซอฟต์แวร์ผู้ทำงานร่วมกันในอุตสาหกรรมผู้ที่ชื่นชอบ VLSI นักเรียนและนักวิจัย
Openroad สนับสนุนอย่างยิ่งและช่วยให้การศึกษาด้านการศึกษาและการพัฒนาแรงงาน IC ออกแบบผ่านเนื้อหาการฝึกอบรมและหลักสูตรในมหาวิทยาลัยระดับโลกหลายแห่งการรับส่งของ Google-Skywater ยังรวมถึงรถรับส่งระดับโลกการแข่งขันการออกแบบและการประชุมเชิงปฏิบัติการการออกแบบ IC OpenRoad Flow ได้รับการใช้งานอย่างประสบความสำเร็จในวันที่ในเวลากว่า 600 tapeout silicon สำหรับเทคโนโลยีที่สูงถึง 12nm
OpenRoad ให้สคริปต์แบบโอเพนโรด-สคริปต์เป็นต้นแบบดั้งเดิมที่พร้อมใช้งานและการไหลของเทปเอาท์ อย่างไรก็ตามมันยังช่วยให้การสร้างตัวควบคุมการไหลแบบกำหนดเองใด ๆ ตามเครื่องมือพื้นฐานฐานข้อมูลและเอ็นจิ้นการวิเคราะห์ โปรดดูเอกสารการไหลที่นี่
OpenRoad-Flow-Scripts (ORFs) เป็นการไหลแบบอิสระอย่างเต็มที่ RTL-GDSII สำหรับสถาปัตยกรรมที่รวดเร็วและการสำรวจอวกาศการออกแบบการทำนายก่อนกำหนดของ QOR และการใช้งานการออกแบบทางกายภาพโดยละเอียด อย่างไรก็ตาม ORFs ยังช่วยให้การแทรกแซงด้วยตนเองสำหรับการควบคุมผู้ใช้ที่ละเอียดกว่าของแต่ละขั้นตอนการไหลผ่านคำสั่ง TCL และ Python APIs
รูปด้านล่างแสดงขั้นตอนหลักของสคริปต์การไหลแบบโอเพนโรด:
%% {init: {'loglevel': 'debug', 'Theme': 'Dark'
-
เส้นเวลา
ชื่อ RTL-GDSII โดยใช้ Openroad-Flow-Scripts
สังเคราะห์
: อินพุต [rtl, sdc, .lib, .lef]
: การสังเคราะห์ตรรกะ (Yosys)
: ไฟล์เอาต์พุต [Netlist, SDC]
ผืนผ้า
: การเริ่มต้นแบบปูพื้น
: ตำแหน่ง IO (สุ่ม)
: ตำแหน่งขนาดผสมที่ขับเคลื่อนด้วยเวลา
: ตำแหน่งแมโคร
: การแทรก Tapcell และ Welltie
: รุ่น PDN
การวางตำแหน่ง
: ตำแหน่งทั่วโลกโดยไม่ต้องวาง iOS
: ตำแหน่ง IO (ปรับให้เหมาะสม)
: ตำแหน่งทั่วโลกพร้อม iOS วาง
: การปรับขนาดและบัฟเฟอร์
: ตำแหน่งโดยละเอียด
CTS: การสังเคราะห์ต้นไม้นาฬิกา
: การเพิ่มประสิทธิภาพเวลา
: การแทรกเซลล์ฟิลเลอร์
การกำหนดเส้นทาง
: การกำหนดเส้นทางทั่วโลก
: การกำหนดเส้นทางโดยละเอียด
การจบ
: การแทรกการเติมโลหะ
: รายงานเวลาลงชื่อเข้าใช้
: สร้าง GDSII (Klayout)
: ตรวจสอบ DRC/LVS (Klayout)
นี่คือขั้นตอนหลักสำหรับการใช้งานการออกแบบทางกายภาพโดยใช้ OpenRoad
FloorplanningGlobal PlacementDetailed PlacementClock Tree SynthesisOptimize setup/hold timingGlobal RoutingDetailed RoutingChip FinishingOpenroad GUI เป็นเครื่องมือการสร้างภาพการวิเคราะห์และการดีบักที่มีประสิทธิภาพด้วยอินเทอร์เฟซ TCL ที่ปรับแต่งได้ ตัวเลขด้านล่างแสดงมุมมอง GUI สำหรับขั้นตอนการไหลต่างๆรวมถึงการวางแผนพื้นความแออัดของตำแหน่ง CTS และการออกแบบหลังเส้นทาง





แอปพลิเคชัน OpenRoad เป็นอิสระ PDK อย่างไรก็ตามมันได้รับการทดสอบและตรวจสอบด้วย PDK ที่เฉพาะเจาะจงในบริบทของตัวควบคุมการไหลต่างๆ
OpenLane รองรับ Skywater 130nm และ GlobalFoundries 180nm
Openroad-Flow-Scripts สนับสนุน PDK ของภาครัฐและเอกชนหลายแห่งรวมถึง:
GF180 - 180NmSKY130 - 130nmNangate45 - 45NMASAP7 - FINFET ที่คาดการณ์ได้ 7NM PDK เหล่านี้ได้รับการสนับสนุนในสคริปต์แบบโอเพนโรด พวกเขาใช้เพื่อทดสอบและปรับเทียบ Openroad กับแพลตฟอร์มเชิงพาณิชย์และตรวจสอบให้แน่ใจว่ามี QOR ที่ดี ไม่สามารถให้ไฟล์ PDKs และแพลตฟอร์มเฉพาะสำหรับชุดอุปกรณ์เหล่านี้ได้เนื่องจากข้อ จำกัด ของ NDA อย่างไรก็ตามหากคุณสามารถเข้าถึงแพลตฟอร์มเหล่านี้ได้อย่างอิสระคุณสามารถสร้างไฟล์เฉพาะแพลตฟอร์มที่จำเป็นด้วยตัวเอง
GF55 - 55NmGF12 - 12nmIntel22 - 22nmIntel16 - 16nmTSMC65 - 65Nm Openroad ใช้สำหรับการใช้งานทางกายภาพอย่างเต็มรูปแบบในกว่า 600 tapeouts ใน SKY130 และ GF180 ผ่านการสนับสนุนของ Google, Efabless MPW Shuttle และโปรแกรม Chipignite


โครงการ OpenRoad เพิ่มการออกแบบการออกแบบรถรับส่ง MPW ให้กับการทดสอบการถดถอย CI อย่างต่อเนื่อง ตัวอย่างของการออกแบบรวมถึงแกนโปรเซสเซอร์แบบเปิด, SOC ที่ใช้ RISC-V, นักขุด cryptocurrency, โปรเซสเซอร์แอพหุ่น
ในการสร้างเครื่องมือ 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 สำหรับการควบคุมเวอร์ชันและการมีส่วนร่วม ทำความคุ้นเคยกับการสอน QuickStart เพื่อสนับสนุนที่นี่
เห็นคำเตือนหรือข้อผิดพลาดของ Openroad ที่คุณไม่เข้าใจ? เราได้รวบรวมตารางข้อความทั้งหมดและคุณอาจพบคำตอบของคุณที่นี่
ใบอนุญาต BSD 3 ข้อ ดูไฟล์ใบอนุญาต