Openroad es la aplicación principal de código abierto y fundamental para el diseño digital de semiconductores. El flujo de carretera abierta ofrece un flujo autónomo, sin humano (NHIL), cambio de 24 horas de RTL-GDSII para una exploración de diseño rápido e implementación de diseño físico.
%% {
Init: {
'Tema': 'Neutral',
'theovariables': {
'TextColor': '#000000',
'NotetextColor': '#000000',
'FontSize': '20px'
}
}
} %%
diagrama de flujo LR
B0 [] --- B2 [] --- B4 [] --- Orflow --- B1 [] --- B3 [] --- B5 []
Estilo B0 Accidentes de trazo: 0px, relleno: #ffffff00, color: #ffffff00
Estilo B1 Width: 0px, relleno: #ffffff00
Estilo B2 Width: 0px, relleno: #ffffff00
Estilo B3 Width: 0px, relleno: #ffffff00
Estilo B4 Width: 0px, relleno: #ffffff00
Estilo B5 Width: 0px, Relleno: #ffffff00, color: #ffffff00
LinkStyle 0 Stroke-width: 0px
LinkStyle 1 Width: 0px
LinkStyle 2 de accidente cerebrovascular: 0px
LinkStyle 3 accidente cerebrovascular: 0px
LinkStyle 4 Stroke-Width: 0px
LinkStyle 5-Width: 0px
subgraph orflow
Dirección TB
Estilo o llenado de flujo:#ffffff00, ancho de trazo: 0px
A [Verilog
+ bibliotecas
+ restricciones] -> flujo
Estilo un relleno:#74C2B5, trazo:#000000, ancho de trazo: 4px
flujo subgrafio
Estilos de flujo de flujo:#ffffff00, ancho de trazo: 4px
Dirección TB
B [Síntesis]
B -> C [Plan de piso]
C -> d [colocación]
D -> E [Síntesis de árbol del reloj]
E -> F [Enrutamiento]
F -> G [finalización]
Estilo B Llena:#F8CECC, trazo:#000000, Width de trazo: 4px
Estilo C Fill:#FFF2CC, Stroke:#000000, Width de trazo: 4px
Estilo D Llena:#CCE5FF, Stroke:#000000, Width-Width: 4px
Estilo E Fill:#67AB9F, Stroke:#000000, Width de trazo: 4px
Estilo F Llenado:#FA6800, Stroke:#000000, Width-Width: 4px
Estilo G Llena:#FF6666, Stroke:#000000, Width de trazo: 4px
fin
Flujo -> H [GDSII
Diseño final]
%% H --- H1 []
%% Style H1 Accidentes de trazo: 0px, relleno: #ffffff00
%% LinkStyle 11 Stroke-Width: 0px
Estilo H Llena:#FF0000, trazo:#000000, ancho de trazo: 4px
fin
Open Road elimina las barreras de costo, riesgo de programación e incertidumbre en el diseño de hardware para promover el acceso abierto al software de diseño IC rápido y de bajo costo y la experiencia y la innovación del sistema. La aplicación Openroad permite el control de flujo flexible a través de una API con enlaces en TCL y Python.
Open Road se utiliza en investigación y aplicaciones comerciales como, como,
Open Road fomenta un ecosistema vibrante de usuarios a través de la colaboración y asociación activa a través del desarrollo de software y las alianzas clave. Nuestra creciente comunidad de usuarios incluye diseñadores de hardware, ingenieros de software, colaboradores de la industria, entusiastas de VLSI, estudiantes e investigadores.
Open Road defiende firmemente y permite iniciativas de desarrollo de educación y fuerza laboral basadas en el diseño IC a través de contenido de capacitación y cursos en varias universidades globales, los transbordadores Google-Skywater también incluyen transbordadores globales, concursos de diseño y talleres de diseño de IC. El flujo de ruta abierta se ha utilizado con éxito hasta la fecha en más de 600 cintas listas para silicon para tecnologías de hasta 12 nm.
OpenRoad ofrece Scripts de flujo OpenRoad como prototipos nativos y listos para usar y flujo de cinta adhesiva. Sin embargo, también permite la creación de cualquier controlador de flujo personalizado basado en las herramientas subyacentes, la base de datos y los motores de análisis. Consulte la documentación de flujo aquí.
Openroad-Flow-Scripts (ORFS) es un flujo RTL-GDSII totalmente autónomo para una arquitectura rápida y exploración espacial de diseño, predicción temprana de QOR e implementación detallada del diseño físico. Sin embargo, ORFS también permite una intervención manual para el control de usuario más fino de las etapas de flujo individuales a través de los comandos TCL y las API de Python.
La figura a continuación muestra las etapas principales de las secuencias de flujo de ruta abierta:
%% {init: {'Loglevel': 'Debug', 'Tema': 'Dark'
}} %%
línea de tiempo
Título RTL-GDSII utilizando Scripts de flujo abierto
Síntesis
: Entradas [RTL, SDC, .lib, .lef]
: Síntesis lógica (YOSYS)
: Archivos de salida [NetList, SDC]
Plano
: Inicialización del plano de piso
: IO Colocación (aleatoria)
: Colocación de tamaño mixto impulsado por el tiempo
: Colocación macro
: Tapcell y Welltie Insertion
: Generación PDN
Colocación
: Colocación global sin iOS colocado
: IO Colocación (optimizado)
: Colocación global con iOS colocado
: Resultado y almacenamiento en búfer
: Colocación detallada
CTS: síntesis de árbol de reloj
: Optimización de tiempo
: Inserción de celda de relleno
Enrutamiento
: Enrutamiento global
: Enrutamiento detallado
Refinamiento
: Inserción de relleno de metal
: Informe de sincronización de firma
: Generar gdsii (kLayout)
: Cheque DRC/LVS (kLayout)
Estos son los pasos principales para una implementación de diseño físico utilizando Open Road;
FloorplanningGlobal PlacementDetailed PlacementClock Tree SynthesisOptimize setup/hold timingGlobal RoutingDetailed RoutingChip FinishingLa GUI Openroad es una poderosa herramienta de visualización, análisis y depuración con una interfaz TCL personalizable. Las cifras a continuación muestran vistas de GUI para varias etapas de flujo que incluyen planificación de piso, congestión de colocación, CTS y diseño posterior al ritmo.





La aplicación Openroad es independiente de PDK. Sin embargo, ha sido probado y validado con PDK específicos en el contexto de varios controladores de flujo.
Openlane admite Skywater 130nm y GlobalFoundries 180nm.
Open Road-Flow-Scripts admite varios PDK públicos y privados que incluyen:
GF180 - 180 nmSKY130 - 130 nmNangate45 - 45 nmASAP7 - Predictivo Finfet 7nm Estos PDK son compatibles con las secuencias de flujo de ruta abierta solamente. Se utilizan para probar y calibrar a Open Road contra plataformas comerciales y garantizar un buen QOR. Los PDK y los archivos específicos de la plataforma para estos kits no se pueden proporcionar debido a las restricciones NDA. Sin embargo, si puede acceder a estas plataformas de forma independiente, puede crear los archivos específicos de la plataforma necesarios usted mismo.
GF55 - 55 nmGF12 - 12 nmIntel22 - 22 nmIntel16 - 16 nmTSMC65 - 65 nm OpenRoad se ha utilizado para la implementación física completa en más de 600 cintas en Sky130 y GF180 a través de los programas MPW MPW y Chipignite patrocinados por Google.


El proyecto Openroad agrega activamente los diseños de transporte MPW con éxito a las pruebas de regresión de CI. Ejemplos de diseños incluyen núcleos de procesadores abiertos, SOC basados en RISC-V, mineros de criptomonedas, procesadores de aplicaciones robóticas, transceptores de radio satelitales aficionados, microwatt basado en OpenPower, etc.
Para construir herramientas abiertas localmente en su máquina, siga los pasos desde aquí.
Hay un conjunto de scripts de prueba de regresión ejecutable en ./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 > Las pruebas de flujo verifican los resultados como el peor holgura contra los valores de referencia. Use report_flow_metrics [test]... para ver todas las 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 actualizar una regresión fallida, siga las instrucciones a continuación:
# 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
Fuentes de OpenRoad el archivo de comando tcl ~/.openroad a menos que se especifique la opción de línea de comando -no_init .
OpenRoad luego obtiene el archivo de comando cmd_file si se especifica en la línea de comando. A menos que se especifique el indicador de línea de comandos -exit , ingresa a un intérprete de comando TCL interactivo.
Una lista de las herramientas/módulos disponibles incluidos en la aplicación Openroad y sus descripciones están disponibles aquí.
Openroad utiliza GIT para el control de versiones y las contribuciones. Familiarícese con un tutorial rápido a la contribución aquí.
¿Ves advertencias o errores de Openroad que no entiendes? Hemos compilado una tabla de todos los mensajes y puede encontrar su respuesta aquí.
Licencia BSD 3 Cláusula. Ver archivo de licencia.