rsz: no regression test reaches hierarchicalConnect through gate cloning (moved loads in another module) — would a test PR be welcome?
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 3/5
- Tiempo estimado
- 1-2 días
- Aptitud para principiantes
- 70/100
- Tipo de issue
- Nueva funcionalidad
- Claridad
- Bien especificado
- Estado de actividad
- Activo
- Stack tecnológico
- cmake, cpp
- Área
- testing-qa
Línea de trabajo
Start from src/rsz/test/clone_hier.tcl and the other _hier tests for harness style, then read CloneCandidate::moveLoads() in src/rsz and dbNetwork::hierarchicalConnect() in src/dbSta. Reproduce by adding a top-level BUF_X1 between r1/Q and u1's loads in a copy of repair_setup4_hier.v/.def, link with -hier, and run repair_timing -setup -sequence clone -skip_last_gasp at debug level ORD hierarchicalConnect 1. Done means clone_hier_cross.tcl/.v/.def give write_verilog output matching clone_hier_cross_out.vok plus the .ok log, registered in CMakeLists.txt and the Bazel list.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
While reading CloneCandidate::moveLoads() we noticed that the branch for a moved load in a different module than the driver — load_parent != parent_ → dbNetwork::hierarchicalConnect() — does not seem to be reached by any test in src/rsz/test.
What we measured on a recent master, running each test with set_debug_level ORD hierarchicalConnect 1:
- The gate-cloning tests (
clone_flat,clone_hier,repair_setup_clone_high_fanout,repair_setup_clone_legacy_flat) all build a flat database —clone_hier.tclreads its design fromclone_hier.defwithoutlink_design -hier— sogetOwningInstanceParent()is always the top and the cross-module branch is never taken. - None of the 25 tests linked with
-hieraccepts a CloneMove.hierarchicalConnect()is called only inrepair_tie10_hier…repair_tie13_hier(throughrepair_tie_fanout). dbSta/test/cpp/TestHconn.cppexerciseshierarchicalConnect()directly, not through a repair.
A small case does reach it: repair_setup4_hier.v/.def with one extra top-level BUF_X1 (b0) between r1/Q and the eleven loads inside u1, linked with -hier, slow library, then repair_timing -setup -sequence clone -skip_last_gasp. b0/Z is cloned to clone1 at the top and hierarchicalConnect() runs five times: the first builds the destination side (ModBTerm/ModNet net_i in submodule, the u1/net_i ModITerm, a top ModNet, cleanup), the other four reuse it through connectionToModuleExists(); the flat net ends up renamed net1 → net1_2 by renameWithModNetInHighestHier().
The test we have in mind, in the style of the existing _hier tests:
src/rsz/test/clone_hier_cross.tcl+clone_hier_cross.v+clone_hier_cross.def(the case above)write_verilog+diff_filesagainstclone_hier_cross_out.vok, which records the new port onsubmodule, theu1instance's connection through it andclone1at the top — so a regression in the cross-module path changes the netlist; plus the.oklog- registered in
src/rsz/test/CMakeLists.txtand the Bazel test list next to the other_hiertests
Two questions:
- Is the cross-module branch of
moveLoads()meant to be covered by a regression test, or isTestHconnconsidered sufficient for it? - If a test like the one above would be useful, would you be interested in a PR adding it?
- Lenguaje dominante
- Verilog
- Estrellas
- 3.2k
- Forks
- 1.1k
- Merge medio
- 2 d 7 h
- PR fusionados (30 d)
- 270
Preparar el entorno
- Incluye un Dockerfile o un archivo de Docker Compose
- Tiene una plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de The-OpenROAD-Project/OpenROAD
-
odb: Bazel build fails on linux/aarch64 — char fc compared to EOF in def/lef lexersPosiblemente ocupada @shivarammysore la tomó hace 1 día. Abiertobazel bug odb
Dificultad 1/5 Menos de una hora Aptitud para principiantes 80/100
The-OpenROAD-Project/OpenROAD#12095 · 2 comentarios ·
Los mantenedores suelen responder en 1 día
-
OpenRCX: extMeasure::calcRes0 segfaults on a null getRes() result when a rules file has sparse per-layer tablesPosiblemente ocupada @AcKoucher la tomó hace 2 días. Abiertobug rcx
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
The-OpenROAD-Project/OpenROAD#12052 · 2 comentarios · 1 asignado ·
Los mantenedores suelen responder en 1 día
-
syn: acd_resynth -apply segfaults on a database resynthesized in an earlier processPosiblemente ocupada @povik la tomó hoy. Abiertobug syn
Dificultad 2/5 1-3 horas Aptitud para principiantes 77/100
The-OpenROAD-Project/OpenROAD#12046 · 2 comentarios · 1 asignado ·
Los mantenedores suelen responder en 1 día
-
check_placement: padding check flags a legal cell above a fixed block whose bottom is in the upper half of a rowPosiblemente ocupada @gudeh la tomó hace 2 días. Abiertobug dpl
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
The-OpenROAD-Project/OpenROAD#12038 · 1 comentario · 1 asignado ·
Los mantenedores suelen responder en 1 día
-
dft: ScanStitch::Stitch dereferences std::deque::end() on chains of 3+ cellsPosiblemente ocupada @mmporong la tomó hace 9 días. Abiertodft
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
The-OpenROAD-Project/OpenROAD#11985 · 1 comentario ·
Los mantenedores suelen responder en 1 día
Todos los issues de The-OpenROAD-Project/OpenROAD
Issues similares
-
enhancement good first issue
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
Official-Space-AI/OpenPhysGraspGen#114 ·
Los mantenedores suelen responder en 2 días
-
backend bug ready-for-agent
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
geolens-io/geolens#3639 ·
Los mantenedores suelen responder en 1 día
-
component:obi contribfest go test
Dificultad 2/5 Menos de una hora Aptitud para principiantes 83/100
open-telemetry/opentelemetry-ebpf-instrumentation#4143 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Automattic/data-liberation-agent#1304 · 1 comentario ·
Los mantenedores suelen responder en 1 día