O OpenRoad é o principal aplicativo fundamental de código aberto para design digital semicondutores. O fluxo OpenRoad oferece um fluxo autônomo e não humano em loop (NHIL), reviravolta 24 horas do RTL-GDSII para exploração rápida do design e implementação do projeto físico.
%% {
init: {
'tema': 'neutro',
'themevariables': {
'textColor': '#000000',
'NOTETEXTCOLOR': '#000000',
'Fontsize': '20px'
}
}
} %%
Fluxograma LR
b0 [] --- b2 [] --- b4 [] --- orflow --- b1 [] --- b3 [] --- b5 []
Estilo B0 Stroke-Width: 0px, preenchimento: #ffffff00, cor: #ffffff00
Estilo B1 com largura de golpe: 0px, preenchimento: #ffffff00
Estilo B2 Stroke-Width: 0px, preenchimento: #ffffff00
Estilo B3 com largura de golpe: 0px, preenchimento: #ffffff00
Estilo B4 Larga de AVC: 0px, preenchimento: #ffffff00
Estilo B5 Larga de AVC: 0px, preenchimento: #ffffff00, cor: #ffffff00
LinkStyle 0 SAT-LIMA: 0PX
LinkStyle 1 WASTWDTH: 0PX
LinkStyle 2 stroke-width: 0px
LinkStyle 3 Width: 0px
LinkStyle 4 Width: 0px
LinkStyle 5 stroke-width: 0px
Sub -Fluxo
direção tb
Estilo de preenchimento de orfluxo:#ffffff00, largura de derrame: 0px
A [Verilog
+ bibliotecas
+ restrições] -> fluxo
Estilo A preenchimento:#74C2B5, AVC:#000000, largura de golpe: 4px
fluxo de subgrafias
Fluxo de estilo Preenchimento:#ffffff00, largura de AVC: 4px
direção tb
B [síntese]
B -> C [planta do piso]
C -> D [posicionamento]
D -> e [síntese da árvore do relógio]
E -> f [roteamento]
F -> g [acabamento]
Estilo B preenchimento:#F8CECC, AVC:#000000, largura de golpe: 4px
Estilo C preenchimento:#fff2cc, AVC:#000000, largura de derrame: 4px
Estilo D preenchimento:#CCE5FF, AVC:#000000, largura de golpe: 4px
Estilo E preenchimento:#67AB9F, AVC:#000000, largura de derrame: 4px
Estilo F preenchimento:#FA6800, AVC:#000000, largura de golpe: 4px
Estilo G preenchimento:#FF6666, AVC:#000000, largura de derrame: 4px
fim
Fluxo -> h [gdsii
Layout final]
%% H --- H1 []
%% estilo h1 stroke width: 0px, preenchimento: #ffffff00
%% Linkstyle 11 largura de derrame: 0px
Estilo H Preencher:#FF0000, AVC:#000000, largura de traços: 4px
fim
O OpenRoad elimina as barreiras do custo, o risco de cronograma e a incerteza no design de hardware para promover o acesso aberto a software de design de IC de baixo custo e baixo custo e inovação do sistema. O aplicativo OpenRoad permite o controle de fluxo flexível através de uma API com ligações em TCL e Python.
O OpenRoad é usado em aplicações comerciais e de pesquisa, como, como,
O OpenRoad promove um ecossistema vibrante de usuários por meio de colaboração e parceria ativa por meio de desenvolvimento de software e alianças -chave. Nossa crescente comunidade de usuários inclui designers de hardware, engenheiros de software, colaboradores do setor, entusiastas da VLSI, estudantes e pesquisadores.
A OpenRoad defende fortemente e permite iniciativas de educação e força de trabalho baseadas em design de IC através de conteúdo e cursos de treinamento em várias universidades globais, os ônibus do Google-Skywater também incluem ônibus globais, concursos de design e workshops de design de IC. O fluxo OpenRoad foi usado com sucesso até agora em mais de 600 fitas prontas para silício para tecnologias de até 12 nm.
O OpenRoad fornece scripts de fluxo OpenRoad como um prototipagem nativa e pronta para uso e um fluxo de fita. No entanto, também permite a criação de quaisquer controladores de fluxo personalizados com base nas ferramentas subjacentes, no banco de dados e nos mecanismos de análise. Consulte a documentação do fluxo aqui.
O OpenRoad-Flow-Scripts (ORFs) é um fluxo RTL-GDSII totalmente autônomo para a arquitetura rápida e a exploração espacial de design, a previsão precoce do QOR e a implementação detalhada do projeto físico. No entanto, o ORFS também permite a intervenção manual para o controle mais refinado do usuário de estágios de fluxo individuais através de comandos TCL e APIs do Python.
A Figura abaixo mostra os principais estágios dos scripts do OpenRoad-Road:
%% {init: {'loglevel': 'debug', 'tema': 'escuro'
}} %%
linha do tempo
título rtl-gdsii usando scripts de fluxo Openroad
Síntese
: Entradas [rtl, sdc, .lib, .lef]
: Síntese lógica (YOSYS)
: Arquivos de saída [Netlist, SDC]
Piso
: Inicialização da planta
: Posicionamento de IO (aleatório)
: Posicionamento misto orientado por tempo
: Colocação de macro
: Tapcell e Welltie Inserção
: Geração PDN
Colocação
: Posicionamento global sem iOS colocado
: Posicionamento de IO (otimizado)
: Posicionamento global com iOS colocado
: Redimensionar e buffer
: Posicionamento detalhado
CTS: Síntese da árvore do relógio
: Otimização de tempo
: Inserção de células de enchimento
Roteamento
: Roteamento global
: Roteamento detalhado
Acabamento
: Inserção de preenchimento de metal
: Relatório de tempo de sinalização
: Gere GDSII (Klayout)
: DRC/LVS Check (Klayout)
Aqui estão as principais etapas para uma implementação de design físico usando o OpenRoad;
FloorplanningGlobal PlacementDetailed PlacementClock Tree SynthesisOptimize setup/hold timingGlobal RoutingDetailed RoutingChip FinishingA GUI OpenRoad é uma ferramenta poderosa de visualização, análise e depuração com uma interface TCL personalizável. As figuras abaixo mostram vistas da GUI para vários estágios de fluxo, incluindo planta baixa, congestionamento de colocação, CTS e design pós-roteado.





O aplicativo OpenRoad é independente do PDK. No entanto, foi testado e validado com PDKs específicos no contexto de vários controladores de fluxo.
O Openlane suporta Skywater 130NM e GlobalFoundries 180Nm.
O OpenRoad-Flow-Scripts suporta vários PDKs públicos e privados, incluindo:
GF180 - 180NMSKY130 - 130NMNangate45 - 45nmASAP7 - Finfet preditivo 7nm Esses PDKs são suportados apenas em scripts de fluxo Openroad. Eles são usados para testar e calibrar o OpenRoad contra plataformas comerciais e garantir um bom qor. Os PDKs e arquivos específicos da plataforma para esses kits não podem ser fornecidos devido a restrições da NDA. No entanto, se você puder acessar essas plataformas de forma independente, poderá criar os arquivos específicos da plataforma necessários.
GF55 - 55nmGF12 - 12nmIntel22 - 22nmIntel16 - 16nmTSMC65 - 65NM O OpenRoad tem sido usado para implementação física completa em mais de 600 fitas em Sky130 e GF180 através dos programas de traslado e Chipignite efabless patrocinados pelo Google.


O projeto OpenRoad adiciona ativamente os designs de traslado MPW nos testes de regressão de CI. Exemplos de projetos incluem núcleos de processadores abertos, SoCs baseados em RISC-V, mineiros de criptomoeda, processadores de aplicativos robóticos, transceptores de rádio de satélite amadores, microwatt baseado em potência aberta etc.
Para construir ferramentas OpenRoad localmente em sua máquina, siga as etapas daqui.
Há um conjunto de scripts de teste de regressão executável em ./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 > Os testes de fluxo verifica os resultados, como o pior folga contra valores de referência. Use report_flow_metrics [test]... para ver todas as métricas.
% 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
Para atualizar uma regressão com falha, siga as instruções abaixo:
# 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 Fontes O arquivo de comando TCL ~/.openroad a menos que a opção de linha de comando -no_init seja especificada.
O OpenRoad obtém o arquivo de comando cmd_file se for especificado na linha de comando. A menos que o sinalizador da linha de comando -exit seja especificado, ele entra em um intérprete interativo de comando TCL.
Uma lista das ferramentas/módulos disponíveis incluídos no aplicativo OpenRoad e suas descrições estão disponíveis aqui.
O OpenRoad usa o Git para controle de versão e contribuições. Familiarize -se com um tutorial rápido para a contribuição aqui.
Vendo avisos ou erros do OpenRoad que você não entende? Compilamos uma tabela de todas as mensagens e você pode encontrar sua resposta aqui.
Licença de 3 cláusulas BSD. Consulte o arquivo de licença.