Openroad是半导体数字设计的主要开源,基础应用。 OpenRoad流提供了自动驾驶,无人间的(NHIL)流量,从RTL-GDSII进行了24小时的周转,以快速设计探索和物理设计实现。
%% {
init:{
“主题”:“中立”,
'themevariables':{
'TextColor':'#000000',
'noteTextColor':'#000000',
'fontsize':'20px'
}
}
} %%
流图LR
B0 [] --- B2 [] --- B4 [] --- ORFlow --- 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
子图
方向tb
样式ORFLOW填充:#ffffff00,卒中宽度:0px
一个[Verilog
+库
+约束] - >流动
样式A填充:#74C2B5,中风:#000000,中风宽度:4PX
子图流
样式流填充:#ffffff00,中风宽度:4px
方向tb
B [合成]
b-> c [平面图]
C-> D [位置]
D-> E [时钟树合成]
e-> f [路由]
f-> g [完成]
样式B填充:#f8cecc,中风:#000000,中风宽度:4px
样式C填充:#fff2cc,中风:#000000,中风宽度:4px
样式D填充:#cce5ff,中风:#000000,中风宽度:4px
样式E填充:#67ab9f,中风:#000000,卒中宽度:4px
样式F填充:#fa6800,中风:#000000,中风宽度:4px
样式G填充:#ff6666,中风:#000000,中风宽度:4px
结尾
流 - > h [GDSII
最终布局]
%% H --- H1 []
%%样式H1笔宽:0px,填充:#ffffff00
%% linkstyle 11笔宽度:0px
样式H填充:#ff0000,中风:#000000,中风宽度:4px
结尾
OpenRoad消除了硬件设计中的成本,时间表风险和不确定性的障碍,以促进开放访问快速,低成本的IC设计软件以及专业知识和系统创新。 OpenRoad应用程序可以通过TCL和Python中的绑定来通过API进行灵活的流量控制。
Openroad用于研究和商业应用,例如
Openroad通过软件开发和关键联盟通过积极的协作和合作伙伴关系来促进用户充满活力的生态系统。我们不断发展的用户社区包括硬件设计师,软件工程师,行业合作者,VLSI爱好者,学生和研究人员。
OpenRoad强烈提倡并通过在几所全球大学的培训内容和课程中启用基于IC设计的教育和劳动力开发计划,Google-Skywater Shuttles还包括GlobalFoundries Shuttles,Design竞赛和IC设计研讨会。露天流量已成功使用,迄今已在600多个硅磁带中用于12nm的技术。
Openroad提供了作为本机,即用的原型制作和磁带流的露天流程。但是,它还可以根据基础工具,数据库和分析引擎创建任何自定义流量控制器。请在此处参考流文档。
Openroad-Flow-Scripts(ORF)是一种完全自动的RTL-GDSII流,用于快速架构和设计空间探索,QOR的早期预测和详细的物理设计实现。但是,ORF还可以通过TCL命令和Python API来实现手动干预,以通过更精细的用户控制单个流阶段。
下图显示了OpenRoad-Flow-Scripts的主要阶段:
%% {init:{'loglevel':'debug','主题':'dark'
}} %%
时间表
标题RTL-GDSII使用OpenRoad-Flow-Scripts
合成
:输入[RTL,SDC,.lib,.lef]
:逻辑合成(Yosys)
:输出文件[NetList,SDC]
平面图
:平面图初始化
:IO放置(随机)
:计时驱动的混合尺寸放置
:宏位置
:Tapcell和Welltie插入
:PDN世代
放置
:没有放置iOS的全球放置
:IO放置(优化)
:带有iOS的全球放置
:调整大小和缓冲
:详细的位置
CTS:时钟树的合成
:定时优化
:填充细胞插入
路由
:全局路由
:详细的路由
精加工
:金属填充插入
:Signoff定时报告
:生成GDSII(klayout)
:drc/lvs检查(klayout)
以下是使用OpenRoad实施物理设计实现的主要步骤;
FloorplanningGlobal PlacementDetailed PlacementClock Tree SynthesisOptimize setup/hold timingGlobal RoutingDetailed RoutingChip FinishingOpenRoad GUI是具有可自定义的TCL接口的强大可视化,分析和调试工具。下图显示了各种流阶段的GUI景观,包括平面图,放置拥堵,CTS和路由后设计。





OpenRoad应用程序是PDK独立的。但是,在各种流量控制器的背景下,已对其进行了测试和验证。
OpenLane支持Skywater 130nm和Globalfouldries 180nm。
OpenRoad-Flow-Scripts支持几个公共和私人PDK,包括:
GF180SKY130Nangate45ASAP7预测性罚款7nm 这些PDK仅在OpenRoad-Flow-Scripts中得到支持。它们用于针对商业平台进行测试和校准,并确保QUR良好。由于NDA限制,无法提供这些套件的PDK和平台特定文件。但是,如果您能够独立访问这些平台,则可以自己创建必要的平台特定文件。
GF55GF12Intel22Intel16TSMC65 OpenRoad已通过Google赞助的,效果MPW Shuttle和Chipignite程序在Sky130和GF180的600多个磁带中进行了完整的物理实现。


OpenRoad项目积极地将成功的MPW班车设计添加到CI回归测试中。设计的示例包括开放处理器核心,基于RISC-V的SOC,加密货币矿工,机器人应用程序处理器,业余卫星无线电收发器,基于OpenPower的Microwatt等。
要在计算机中本地构建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条规定许可证。请参阅许可证文件。