For a netlist vs. netlist LEC flow we have to solve the following problem:
- in the RTL code we replicate a large array of N x M all-identical hard-macros, let call those MACRO_A
- MACRO_A is pre-assembled in Innovus and contains digital parts and analog parts (bottom-up hierarchical flow)
- at top-level (full-chip) we instantiate this array of all-identical macros
- in the top-level place-and-route flow we perform ecoChangeCell to remaster the top row of this array with MACRO_B
- MACRO_B is just a copy of the original MACRO_A cell containing same pins position, same internal digital functionality and also same digital layout, only slight differences in one analog block inside the macro
- MACRO_A and MACRO_B have the same .lib file generated with the do_extract_model command at the end of the Innovus, they only differ in the name of the macro
- when performing post-synthesis netlist vs post-place-and-route we load .lib files of both macros in Conformal LEC
- the LEC flow fails because Conformal LEC sees only MACRO_A instantiated in the post-synthesis netlist and both MACRO_A and MACRO_B in the post-palce-and-route netlist
Since both digital functionality and STD cells layout are the same between MACRO_A and MACRO_B we don't want to keep track of this difference already at RTL stage, we just want to perform this ECO change in place-and-route and force Conformal to assume equivalence between MACRO_A and MACRO_B .
Basically what I'm searching for is something similar to the add_instance_equivalences Conformal command but that works between Golden and Revided designs on cell primitives/black-boxes .
Is this flow supported ?
Thanks in advance
Luca