In the realm of Logic Equivalence Checking or Functional Netlist ECO, the primary purpose of utilizing the SVF file generated by Synopsys Design Compiler is to facilitate accurate mapping of key points. This is particularly crucial when dealing with designs that involve the utilization of multibit flops. The SVF file is instrumental in conveying how individual flops are combined into multibit flops, as well as elucidating any modifications in instance names.
Within the SVF file, two imperative directives are "guide_multibit" and "guide_change_names". The "guide_multibit" directives serve the function of elucidating the process by which single bit flops are combined into multibit flops. Figure 1 presents the fundamental syntax and methodology for this mapping. It's noteworthy that the initial single bit flop corresponds to the least significant bit within the multibit flop. The instance name for the merged multibit flop is denoted as "d_reg[2,3,4,5]". Furthermore, both the nomenclature of single bit flops and the instance name of multibit flops might be accompanied by associated "guide_change_names" instructions.
Figure 1: guide_multibit syntax and mapping method
The purpose of "guide_change_names" instructions is to specify the manner in which names within the netlist are associated with their original counterparts. Many design companies have a policy against including special characters like backslashes, square brackets, or commas in the netlist. The SVF file utilizes "change names" instructions to outline all these renaming operations.
Moreover, the "guide_change_names" instructions encompass an underlying multibit association when individual bit flops stem from distinct original base names. For instance, if single bit flops have distinct base names like dd, cc, bb, and aa, the "guide_change_names" mechanism accommodates this mapping. Conversely, in the scenario depicted in Figure 1, the individual flops share the same base name 'd_reg'.
Figure 2: Hidden multibit flop mapping in guide_change_names
GOF ECO includes the support for employing the "read_svf" function to incorporate SVF files within the context of functional ECO. This facilitates the effective mapping of multibit flops during the process of key points mapping.
read_library("art.5nm.lib"); # Read in standard library
read_svf("-ref", "reference.svf.txt"); # For REF
read_svf("-imp", "implementation.svf.txt"); # For IMP
read_design("-ref", "reference.gv"); # Read in REF Netlist
read_design("-imp", "implementation.gv"); # Read in IMP Netlist
set_top("topmod"); # Set the top module
fix_design;
To access detailed information about GOF ECO, the automatic netlist ECO tool, please visit the website https://nandigits.com