( ESNUG 295 Item 5 ) ----------------------------------------------- [7/8/98]

Subject: How To Translate Cadence Symbols Into A Synopsys Symbol Library

> I have Cadence symbols.  I hope I can translate them to Synopsys symbol
> library.  Can some tools or utilities do that for me?
> 
>  - Yung Hsiang Lai
>    ALI                                Taiwan


From: chenmin <chenm@163.net>

You can put all the cadence symbols in a schematic, then edifout a edif
file xx.edif.  You use the following synopsys command:

   read_lib -format edif xx.edif -symbol xx.slib
   write_lib xx -output xx.sdb

xx.sdb is what you want.

  - Chenmin
    Beijing Telegraph Administration               Beijing, China

         ----    ----    ----    ----    ----    ----   ----

From: Igor Orlovsky <oia@javad.ru>

This procedure is described in Synopsys' "EDIF Interface User's Guide":

1. Make a schematic in Cadence with all the symbols you need to translate.

2. Run edifout to make graphical EDIF with the symbols:

                   % edifout edifout.il

where edifout.il is:

  edifOutKeys = list(nil

	'searchPath		". ~ /user/cds/etc/cdslib /user/cds/etc/cdslib/sheets"
	'outputFile		"cadence.edif"
	'library		"DESIGNS"
	'cell			"test"
	'viewName		"schematic"
	'externalLibList	"basic"
	'netlistOption		"TRUE"
	'hierarchyFile		""
	'ILFile			""
	'design			""
	'techFile		"/user/cds/samples/techfile/default.tf"
	'ripperLibraryName	"ripper"
	'ripperCellName		"ripper"
	'ripperViewName		"symbol"
	'version		""
  )

  You can take mentioned "ripper" library from Synopsys' interface to
  Cadence examples.

3. Create a Synopsys ASCII symbol library:

   dc_shell> read_lib Your_EDIF_File -format edif -symbol Your_Library.slib

   Your had better also use Cadence-compatible libraries from Synopsys
   interface with Cadence examples directory. Put these commands in your
   .synopsys_dc.setup file:

      symbol_library    = symbol_library +
                          { basic.sdb ripper.sdb US.8ths.sdb } ; 	
      search_path = search_path + " <path_to_cadence_libraries>" ;

      /* EDIF read symbol library variables */

      edifin_lib_in_port_symbol = "ipin"
      edifin_lib_out_port_symbol = "opin"
      edifin_lib_inout_port_symbol = "iopin"
      edifin_lib_in_osc_symbol = "iosc"
      edifin_lib_out_osc_symbol = "oosc"
      edifin_lib_logic_1_symbol = "vdd"
      edifin_lib_logic_0_symbol = "gnd"
      edifin_lib_ripper_bits_property = "schPatchExpr"
      edifin_lib_ripper_bus_end = "bus_end"
      edifin_lib_ripper_cell_end = "ripper"
      edifin_lib_ripper_view_name = "symbol"
      edifin_lib_route_grid = 1024
      edifin_lib_templates = {{A,landscape,Asize},{A,portrait,Asize.book}, \
      {B,landscape,Bsize},{C,landscape,Csize},{D,landscape,Dsize}, \
      {E,landscape,Esize},{F,landscape,Fsize}}

      /* Bus Naming variables */

      bus_naming_style = "%s<%d>"
      bus_dimension_separator_style = "><"
      bus_range_separator_style = ":" 
      bus_extraction_style = "%s<%d:%d>"
      bus_minus_style = "-%d"
      edifout_no_array = "false"

      /* Read design variagles */

      edifin_autoconnect_offPageConnectors = "true"
      edifin_delete_empty_cells = "true"
      edifin_delete_ripper_cells = "true"

      /* Power and Ground variables */

      edifin_ground_net_name = "gnd!"
      edifin_ground_net_property_name = ""
      edifin_ground_net_property_value = ""
      edifout_ground_name = "gnd"
      edifout_ground_net_name = "gnd!"
      edifout_ground_net_property_name = ""
      edifout_ground_net_property_value = ""
      edifout_ground_pin_name = "gnd!"
      edifin_power_net_name = "vdd!"
      edifin_power_net_property_name = ""
      edifin_power_net_property_value = ""
      edifout_power_name = "vdd"
      edifout_power_net_name = "vdd!"
      edifout_power_net_property_name = ""
      edifout_power_net_property_value = ""
      edifout_power_pin_name = "vdd!"
      edifout_power_and_ground_representation = "net"

      /* Net to Port Connection variables */

      edifin_autoconnect_ports = "true"
      compile_fix_multiple_port_nets = "true"
      gen_match_ripper_wire_widths = "true"
      edifout_name_rippers_same_as_wires = "false"
      link_force_case = "case_insensitive"
      single_group_per_sheet = "true"
      use_port_name_for_oscs = "false"
      write_name_nets_same_as_ports = "true"

      /* Output variables */

      edifout_netlist_only = "false"
      edifout_external = "true"
      edifout_translate_origin = "center"
      edifout_display_instance_names = "false"
      edifout_display_net_name = "false"
      edifout_target_system = "cadence"
      edifout_instantiate_ports = "true"
      edifout_pin_name_property_name = "pinName"
      edifout_designs_library_name = "SYNOPSYS"


4. Change scale in the header of your SLIB file and the name of the
   library:

   library("DESIGNS") {

     SCALE = 1.0 / 10.0;
     ROUTE_GRID = 1024;
     set_route_grid(ROUTE_GRID);
     set_meter_scale(0.0254 / (160 * SCALE * ROUTE_GRID));


5. Re-read symbol library in dc_shell with changed scale:

   dc_shell> read_lib Your_Library.slib

6. Save symbols database:

   dc_shell> write_lib Your_library -o Your_Library.sdb


7. Do not forget to add this library in your symbol library list in
   .synopsys_dc.setup.

You can read these steps more detaily in "EDIF Interface User's Guide"

NOTE: These steps worked in older Synopsys release, they could differ in
the latest ones.

  - Igor Orlovsky
    JAVAD Positioning Systems                      Moscow, Russia



 Sign up for the DeepChip newsletter.
Email
 Read what EDA tool users really think.


Feedback About Wiretaps ESNUGs SIGN UP! Downloads Trip Reports Advertise

"Relax. This is a discussion. Anything said here is just one engineer's opinion. Email in your dissenting letter and it'll be published, too."
This Web Site Is Modified Every 2-3 Days
Copyright 1991-2024 John Cooley.  All Rights Reserved.
| Contact John Cooley | Webmaster | Legal | Feedback Form |

   !!!     "It's not a BUG,
  /o o\  /  it's a FEATURE!"
 (  >  )
  \ - / 
  _] [_     (jcooley 1991)