Symbolic Netlist to Innovus-friendly Netlist
run_lc_dc.csh
\rm lc_shell*.log \rm dc_shell*.log ############################### # 1 gen *.db by *.lib # for example, AND_OR_INV.db. ############################### # get asap7nm/AND_OR_INV.db lc_shell -64bit -f gen_AND_OR_INV_db.tcl > lc_shell_AND_OR_INV_db.log ############################### # 2 syn symbolic netlist to Innovus-friendly *.v by *.db ############################### # test simple circuit (MAJ1-INV-MAJ2 symbolic expression) netlist by AND_OR_INV.db dc_shell -64bit -f MAJ1-INV-MAJ2_syn_AND_OR_INV_db.tcl > dc_shell_MAJ1-INV-MAJ2_syn_AND_OR_INV_db.log
gen_AND_OR_INV_db.tcl
read_lib asap7nm/asap7sc7p5t_24_INVBUF_LVT_FF_AND_OR_INV.lib write_lib -output asap7nm/AND_OR_INV.db asap7sc7p5t_22b_INVBUF_LVT_FF_191110 exit
MAJ1-INV-MAJ2_syn_AND_OR_INV_db.tcl
set link_library { * asap7nm/AND_OR_INV.db } set target_library asap7nm/AND_OR_INV.db read_verilog { test.v } current_design test_circuit link read_sdc aes.sdc #ezp1110 compile_ultra -gate_clock #ezp1110 report_timing -capacitance -significant_digits 6 > timing.report #ezp1110 report_power > power.report #ezp1110 report_area > area.report uniquify write -f verilog -o MAJ1-INV-MAJ2_syn_AND_OR_INV.v -hierarchy exit
test.v
module test_circuit (clk, in1, in2, in3, in4, in5, out1); input clk, in1, in2, in3, in4, in5; output out1; wire n0, n1; assign n0 = (in1 & in2) | (in1 & in3) | (in2 & in3) ; assign n1 = ~n0; assign out1 = (in4 & in5) | (in4 & n1) | (in5 & n1) ; endmodule
aes.sdc
create_clock [get_ports {clk}] -name clk -period 2000 set_ideal_network [get_ports clk]
MAJ1-INV-MAJ2_syn_AND_OR_INV.v
///////////////////////////////////////////////////////////// // Created by: Synopsys Design Compiler(R) // Version : O-2018.06-SP5-3 // Date : Sun Nov 10 20:21:12 2019 ///////////////////////////////////////////////////////////// module test_circuit ( clk, in1, in2, in3, in4, in5, out1 ); input clk, in1, in2, in3, in4, in5; output out1; wire n0, n1, N0, N1, N2, N3, N4, N5, N6, N7; GTECH_OR2 C9 ( .A(N2), .B(N3), .Z(n0) ); GTECH_OR2 C10 ( .A(N0), .B(N1), .Z(N2) ); GTECH_AND2 C11 ( .A(in1), .B(in2), .Z(N0) ); GTECH_AND2 C12 ( .A(in1), .B(in3), .Z(N1) ); GTECH_AND2 C13 ( .A(in2), .B(in3), .Z(N3) ); GTECH_NOT I_0 ( .A(n0), .Z(n1) ); GTECH_OR2 C15 ( .A(N6), .B(N7), .Z(out1) ); GTECH_OR2 C16 ( .A(N4), .B(N5), .Z(N6) ); GTECH_AND2 C17 ( .A(in4), .B(in5), .Z(N4) ); GTECH_AND2 C18 ( .A(in4), .B(n1), .Z(N5) ); GTECH_AND2 C19 ( .A(in5), .B(n1), .Z(N7) ); endmodule
lc_shell_AND_OR_INV_db.log
Library Compiler (TM) Version J-2014.09 for RHEL64 -- Aug 12, 2014 Copyright (c) 1988-2014 Synopsys, Inc. This software and the associated documentation are confidential and proprietary to Synopsys, Inc. Your use or disclosure of this software is subject to the terms and conditions of a written license agreement between you, or your company, and Synopsys, Inc. Initializing... #read_lib asap7nm/asap7sc7p5t_24_INVBUF_LVT_FF.lib read_lib asap7nm/asap7sc7p5t_24_INVBUF_LVT_FF_AND_OR_INV.lib Reading '/home/zpei/Majority-Gate/Innovus/innovus_sample/tech/asap7sc7p5t_24_INVBUF_LVT_FF_AND_OR_INV.lib' ... Warning: Line 1, The 'default_inout_pin_cap' attribute is not specified. Using 1.00. (LBDB-172) Warning: Line 1, The 'default_input_pin_cap' attribute is not specified. Using 1.00. (LBDB-172) Warning: Line 242, Cell 'INVx1_ASAP7_75t_L', pin 'A', The pin 'A' does not have a internal_power group. (LBDB-607) Warning: Line 77, Cell 'INVx1_ASAP7_75t_L', The cell_leakage_power attribute of the 'INVx1_ASAP7_75t_L' cell is redundant and not used in the leakage_power modeling. (LBDB-644) Warning: Line 255, Cell 'AND2x2_ASAP7_75t_L', The cell_leakage_power attribute of the 'AND2x2_ASAP7_75t_L' cell is redundant and not used in the leakage_power modeling. (LBDB-644) Warning: Line 646, Cell 'OR2x2_ASAP7_75t_L', The cell_leakage_power attribute of the 'OR2x2_ASAP7_75t_L' cell is redundant and not used in the leakage_power modeling. (LBDB-644) Warning: Line 1, The 'default_leakage_power_density' attribute is not specified. Using 0.00. (LBDB-172) Technology library 'asap7sc7p5t_22b_INVBUF_LVT_FF_191110' read successfully 1 write_lib -output asap7nm/AND_OR_INV.db asap7sc7p5t_22b_INVBUF_LVT_FF_191110 Wrote the 'asap7sc7p5t_22b_INVBUF_LVT_FF_191110' library to '/home/zpei/Majority-Gate/Innovus/innovus_sample/asap7nm/AND_OR_INV.db' successfully 1 exit Memory usage for this session 8 Mbytes. CPU usage for this session 0 seconds ( 0.00 hours ). Thank you...
dc_shell_MAJ1-INV-MAJ2_syn_AND_OR_INV_db.log
Design Compiler Graphical DC Ultra (TM) DFTMAX (TM) Power Compiler (TM) DesignWare (R) DC Expert (TM) Design Vision (TM) HDL Compiler (TM) VHDL Compiler (TM) DFT Compiler Design Compiler(R) Version O-2018.06-SP5-3 for linux64 - Jun 06, 2019 Copyright (c) 1988 - 2019 Synopsys, Inc. This software and the associated documentation are proprietary to Synopsys, Inc. This software may only be used in accordance with the terms and conditions of a written license agreement with Synopsys, Inc. All other use, reproduction, or distribution of this software is strictly prohibited. Initializing... set link_library { * asap7nm/AND_OR_INV.db } * asap7nm/AND_OR_INV.db set target_library asap7nm/AND_OR_INV.db asap7nm/AND_OR_INV.db #ezp1108 set link_library { * asap7nm/MAJFF_INVFF.db } #ezp1108 set target_library asap7nm/MAJFF_INVFF.db read_verilog { test.v } Loading db file '/home/zpei/Majority-Gate/Innovus/innovus_sample/asap7nm/AND_OR_INV.db' Loading db file '/usr/local/cad/synopsys/syn/O-2018.06-SP5-3/libraries/syn/gtech.db' Loading db file '/usr/local/cad/synopsys/syn/O-2018.06-SP5-3/libraries/syn/standard.sldb' Loading link library 'asap7sc7p5t_22b_INVBUF_LVT_FF_191110' Loading link library 'gtech' Loading verilog file '/home/zpei/Majority-Gate/Innovus/innovus_sample/test.v' Detecting input file type automatically (-rtl or -netlist). Reading with Presto HDL Compiler (equivalent to -rtl option). Running PRESTO HDLC Compiling source file /home/zpei/Majority-Gate/Innovus/innovus_sample/test.v Presto compilation completed successfully. Current design is now '/home/zpei/Majority-Gate/Innovus/innovus_sample/test_circuit.db:test_circuit' Loaded 1 design. Current design is 'test_circuit'. test_circuit current_design test_circuit Current design is 'test_circuit'. {test_circuit} link Linking design 'test_circuit' Using the following designs and libraries: -------------------------------------------------------------------------- test_circuit /home/zpei/Majority-Gate/Innovus/innovus_sample/test_circuit.db asap7sc7p5t_22b_INVBUF_LVT_FF_191110 (library) /home/zpei/Majority-Gate/Innovus/innovus_sample/asap7nm/AND_OR_INV.db 1 read_sdc aes.sdc Reading SDC version 2.1... 1 #ezp1110 compile_ultra -gate_clock #ezp1110 report_timing -capacitance -significant_digits 6 > timing.report #ezp1110 report_power > power.report #ezp1110 report_area > area.report uniquify 1 write -f verilog -o MAJ1-INV-MAJ2_syn_AND_OR_INV.v -hierarchy Writing verilog file '/home/zpei/Majority-Gate/Innovus/innovus_sample/MAJ1-INV-MAJ2_syn_AND_OR_INV.v'. 1 exit Thank you...