( 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
|
|