You are on page 1of 35

Milkyway

Anik Saha

Project Engineer

1 © 2012 WIPRO LTD | WWW.WIPRO.COM | CONFIDENTIAL


What is Milkyway
• The Milkyway database is the unifying design storage format for the Synopsys Galaxy™
Design Platform.

• The database provides persistent storage of physical design data that links Galaxy
platform tools together.

• This eliminates the need for large, intermediate exchange files and prevents loss of design
intent that could occur using other data exchange formats.

• It supports tool features such as signal integrity analysis, power reduction, and yield
enhancement.

• Following features and benefits:


• Production-proven database for all Galaxy Design Platform tools
• Capacity to support the largest designs
• Support for the latest technologies, including 32, 28, and 20 nm
• Third-party data input to the Galaxy Platform via LEF and DEF

• IC Compiler reads physical design information and library cell information from the
Milkyway database to perform placement, clock tree synthesis, and routing. It writes the
resulting chip design information back into the Milkyway database.

2 © 2012 WIPRO LTD | WWW.WIPRO.COM | CONFIDENTIAL


How is Milkyway useful
• For today’s large designs, tremendous volumes of data are generated as designs move
through the implementation phase.

• Without a common database, tools must communicate through ASCII design interchange
files that present a range of problems like:
• Excessive files sizes
• Very long transfer times
• Errors due to semantic mismatches
• Inconsistent revision of data formats between different tools.

• The Milkyway database solves these issues for the Galaxy Platform because all
implementation tools have direct, binary interfaces to the database.

• Direct database access eliminates the need for large, slow ASCII interchange files and
semantic gaps between different tool functions.

• Each tool is able to see the data in the same way, preventing costly errors and reducing
design iterations.

3 © 2012 WIPRO LTD | WWW.WIPRO.COM | CONFIDENTIAL


Synopsys tools using Milkyway database
• The following Synopsys tools use the Milkyway database:

• Design Compiler
• IC Compiler
• IC Validator
• PrimeRail
• StarRC
• The Milkyway Environment prepares new library cells from physical data in other
formats, including GDSII, OASIS, and LEF/DEF, and writes the new library cells to
the Milkyway database.
• Older tools such as JupiterXT™, Astro®, and Hercules™ use the Milkyway
database in a manner similar to the corresponding current tools.

4 © 2012 WIPRO LTD | WWW.WIPRO.COM | CONFIDENTIAL


Milkyway Database Usage in the Galaxy Design Platform

5 © 2012 WIPRO LTD | WWW.WIPRO.COM | CONFIDENTIAL


Milkyway Libraries and Cells

• The physical library information is maintained in the Milkyway database.

• The Milkyway database is organized as a hierarchy of data files.

• The database contains:


• leaf-level physical cell information
• technology information
• design-specific physical information such as the placement and routing of the design.

• A physical library contains information about:


• the geometry of the cells that are placed in the design and connected with power, ground,
clock, and signal routes.
• Includes the cell dimensions, border, pin locations.
• Mask layers info
• Technology information such as wire tracks, antenna rules, and electromigration data.
• Standard cells MW
• Macros MW
• Pad cells MW

• Only one Milkyway design library can be opened at a time.


• The design can contain references to cells contained in other Milkyway libraries, called reference
libraries.

6 © 2012 WIPRO LTD | WWW.WIPRO.COM | CONFIDENTIAL


Milkyway Libraries and Cells

• What is a cell?
• The basic unit of information in a Milkyway library is the cell.

• A cell is a representation of a physical structure in the chip layout, as simple as an I/O pad or as
large and complex as an entire chip.

• In IC Compiler or the Milkyway Environment, you open a cell for editing by using the open_mw_cel
command.

• The cell must be contained in the Milkyway library that is currently open.

• A chip design is typically built as a hierarchy of cells. The entire chip is a single cell built out of
lower-level blocks, which are also cells.

7 © 2012 WIPRO LTD | WWW.WIPRO.COM | CONFIDENTIAL


Cell Views

Cell Views
The Milkyway database can contain different representations of the same cell, called “views” of that
cell. These are the main types of views used in physical implementation tools:

CEL view: The full layout view of a physical structure such as a via, standard cell, macro, or whole
chip; contains placement, routing, pin, and netlist information for the cell

FRAM view: An abstract representation of a cell used for placement and routing; contains only the
metal blockages, allowed via areas, and pins of the cell

FILL view: A view of metal fill, which is used for chip finishing and has no logical function, created by
the signoff_metal_fill command in IC Compiler.

CONN view: A representation of the power and ground networks of a cell, created by PrimeRail or IC
Compiler and used by PrimeRail for IR drop and electromigration analysis.

ERR view: A graphical view of physical design rule violations found by verification commands in IC
Compiler, such as verify_zrt_route or signoff_drc.

8 © 2012 WIPRO LTD | WWW.WIPRO.COM | CONFIDENTIAL


Information contained in Milkyway library

• A physical design stored in a Milkyway library must have at least a CEL view.

• It contains all of the cell information needed for placement, routing, and mask generation.

• Placement information
• tracks, site rows, and placement blockages

• routing information
• netlist, pin, route guide

• interconnect modeling information

• All mask layer geometries, which are used for final mask generation.

• Each macro cell typically has both a CEL view and a FRAM view.

• The process of creating a FRAM view from a CEL view is often called blockage, pin, and via (BPV)
extraction.

• The type of information like logic, timing, and power data are now usually stored in files maintained
outside the Milkyway database, such as .db files.

9 © 2012 WIPRO LTD | WWW.WIPRO.COM | CONFIDENTIAL


Design and Reference Libraries

• A Milkyway library that you open for editing is called a design library.

• Only one design library at a time.

• A cell can be built using instances of cells from other libraries that are not currently open. These other
libraries are called reference libraries.

• To open a library:
• open_mw_lib

• Open a cell in that library for editing.


• open_mw_cel

• A reference library contains data that you do not modify yourself.


• For example, a reference library contain:
• standard cells provided by an ASIC vendor,
• intellectual property provided by an IP block seller,
• lower-level blocks designed by another group at your company.

• Design information that you create or modify yourself must be stored in a design library.

10 © 2012 WIPRO LTD | WWW.WIPRO.COM | CONFIDENTIAL


Design and Reference Libraries

Each reference library definition is one level deep. In Figure 1-2, cells in mw_lib_C cannot be used directly in mw_lib_A
because the relationship is two levels deep. However, library mw_lib_C can also be explicitly defined as a reference library
of mw_lib_A, which would allow its cells to be used directly in mw_lib_A. See Figure 1-3.

11 © 2012 WIPRO LTD | WWW.WIPRO.COM | CONFIDENTIAL


Setting milkyway reference libraries

command: set_mw_lib_reference

To use the above command, If the design library is currently open, close it first with the close_mw_lib command.

For example, to define the Milkyway libraries mw_lib_B and mw_lib_C to be reference libraries of design library mw_lib_A,
prompt> set_mw_lib_reference \
         -mw_reference_library {/mw/LIBS/mw_lib_B /mw/LIBS/mw_lib_C} \
         /mw/LIBS/mw_lib_A

To define the reference libraries using an external file instead of an explicit list in the command:
prompt> set_mw_lib_reference \
         -reference_control_file my_refs_A /mw/LIBS/mw_lib_A

You specify an absolute or relative path to the reference control file as well as to the Milkyway design library.

To generate a report showing a list of the reference libraries defined for a particular design library.

prompt> report_mw_lib -mw_reference_library mw_lib_A


/mw/LIBS/mw_lib_B
/mw/LIBS/mw_lib_C

If you do not specify which Milkyway design library to report, the currently open Milkyway library is reported.

12 © 2012 WIPRO LTD | WWW.WIPRO.COM | CONFIDENTIAL


Logic Libraries
• Logic Libraries

• The cell logic, timing, and power information is contained in a set of Synopsys database (.db) files, which are maintained
separately from the Milkyway database.

• The .db files are produced by Library Compiler from a set of technology characterization files in Liberty (.lib) format.

• The Liberty (.lib) files are ASCII-format files that fully describe the cell logic, timing, and power characteristics of the leaf-
level logic cells.

• Library Compiler compiles the .lib files to produce .db files, which contain the same information as the .lib files, but in a
compiled binary format that is more efficient for Galaxy tools to use.

• In Design Compiler or IC Compiler, you specify the .db files to use by setting the search_path, target_library, and
link_library variables.

• The names of the cells in the logical libraries must match the names of the corresponding cells in the physical libraries in
the Milkyway database. You can verify that the logical and physical libraries properly match by using the check_library
command in Design Compiler, IC Compiler, or the Milkyway Environment.

13 © 2012 WIPRO LTD | WWW.WIPRO.COM | CONFIDENTIAL


Library Data Preparation
• Logical Library: Synopsys .db files

• The cell logic, timing and power info is contained in a set of Synopsys database (.db) files produced by Library Compiler.

• Characterization tool produces set of files in Liberty format (.lib)

• .lib : Liberty files


• ASCII format files
• Describe the cell logic, timing, power characterization of the leaf-level logic cells.

• .lib files compiled by Library compiler .db files

• .db : Synopsys database files


• Contains same info as .lib files.
• In a compiled binary format (more efficient for Galaxy tools to use).

• IC Compiler uses .db files by setting:


• search_path, target_library, link_library variables.
• search_path : gives the directory path in which the .db file and other files used by the tool are found.
• target_library : gives the .db library files that contain the logic cells used for optimization.
• link_library : gives the .db libraries that contain all the logic cells used for resolving the hierarchial references in the
design during execution of the link command.
• An * is included that causes the link command to search through all designs already loaded into memory to find
referenced cells.
• local_link_library : it is a design attribute not variable (like the above 3).
• Specifies additional libraries used for for design linking.
• Cell names in logical libraries = Cell names in physical libraries in Milkyway database; use check_library command.

14 © 2012 WIPRO LTD | WWW.WIPRO.COM | CONFIDENTIAL


Specifying the logical libraries
link_library : Resolves all the instantiated components in a netlist. (The ICC tool should find the corresponding library cell of
the leaf cell instantiated in the design)

target_library : Specifies only the library with basic logic gates (std cells, not IO’s or macros). ICC uses this when cell sizing and
logic transformations are performed.

search_path : it is a variable, that shortens file specifications. ICC looks for that file in the specified list of search_path
directories. Without this the user needs to specify the relative path to each file.

15 © 2012 WIPRO LTD | WWW.WIPRO.COM | CONFIDENTIAL


Milkyway-Related Commands in IC Compiler and Milkyway Environment

check_library  Checks logical and physical libraries for quality and consistency 
close_mw_cel Closes one or more open cells in the open Milkyway library 
close_mw_lib  Closes the current Milkyway library 
convert_mw_lib Converts the design data in a Milkyway library to the current database model version or to the previous
version 
copy_mw_cel  Copies a cell to create a new cell in the current Milkyway library 
copy_mw_lib  Copies a Milkyway library  to another location.
create_mw_cel  Creates a new cell in the current Milkyway library 
create_mw_lib  Creates a new Milkyway library 
get_mw_cels  Creates a collection of cells in the current Milkyway library that meet specified criteria 
list_mw_cels  Lists the cells contained in the current Milkyway library 
open_mw_cel  Opens a cell in the current Milkyway library for viewing or editing 
open_mw_lib  Opens a Milkyway library for editing, making it the current Milkyway library 

remove_mw_cel  Removes cells from the current Milkyway library 


report_milkyway_version  Reports the data version number, database model version, and creation information for a cell 
rename_mw_cel  Renames a cell in the current Milkyway library 
rename_mw_lib  Renames a Milkyway library 
report_mw_lib  Reports the unit range or reference libraries of a Milkyway library 
save_mw_cel  Saves an edited cell into the current Milkyway library 

read_lib and write_lib Read and write library files of various types.
read_def and write_def Read and write DEF files. They are used only to read and write floorplanning and scan chain information in
the DEF file, not standard cell library information.

16 © 2012 WIPRO LTD | WWW.WIPRO.COM | CONFIDENTIAL


Commands and their examples

>> check_library [-mw_library_name phys_library_name_list] [-logic_library_name logic_library_name_list] [-


cells cell_list]
EX:
>> check_library -mw_library_name{phys_lib}\ -logic_library_name {lib1.dblib2.db}

>> close_mw_cel [-save] [-hierarchy] [-all_views] [-all_versions] [mw_cel_list]

The following example saves and closes all views and all versions of the specified
Milkyway design.
>> close_mw_cel -save-all_views-all_versionstest1
Information: Saveddesignnamedtest1.CEL;1.
Information: Saveddesignnamedtest1.FILL;1.
Information: Saveddesignnamedtest1.FILL;2.
1

>> close_mw_lib [-save]

>>convert_mw_lib mw_lib [-cell_name cell_name] [-all] [-check_only]

>>convert_mw_lib foo_library -cell_name top 1

17 © 2012 WIPRO LTD | WWW.WIPRO.COM | CONFIDENTIAL


Commands and their examples

>> copy_mw_cel -from source_mw_cel_name [-to target_mw_cel_name] [-from_library source_library_name] [-


to_library target_library_name] [-hierarchy] [-check_only] [-overwrite]

>> copy_mw_cel -hierarchy-to_librarylib1-fromORCA


Copied LibraryFiles
From: /orca/orca_lib
To: lib1

Copied Cells
From: /orca/orca_lib
To: lib1

Copying cell:ORCA.CEL;1
Copying cell:BLENDER_2;
1

>>copy_mw_lib [-from mw_lib] -to lib_name

The following example copies a Milkyway library design to another location:


prompt> copy_mw_lib -fromdesign-todesign.bak
1

18 © 2012 WIPRO LTD | WWW.WIPRO.COM | CONFIDENTIAL


Commands and their examples

>>create_mw_cel [-view CEL|FRAM|FILL|err|ILM] [-verbose] mw_cel_name

The following example creates a Milkyway design named top for err view.
>> create_mw_cel top-view CEL
{top}

>> current_mw_cel
{top}

>>create_mw_lib [-technology technology_file_name] [-plib plib_file_name] [-bus_naming_style style]


[-mw_reference_library lib_list] [-reference_control_file rc_file_name] [-open] libName

>>create_mw_lib design_lib_orca -open -technology abc_6m.tf -mw_reference_library “sc ram32 io”

>>get_mw_cels [-hierarchical] [-quiet] [-regexp |-exact] [-nocase] [-filter expression] patterns

The following example queries Milkyway designs that begin with mpu.
>> get_mw_cels mpu*
{mpu_0_0 mpu_0_1mpu_1_0mpu_1_1}

>>list_mw_cels [-all_views] [-all_versions] [-sort]

>t> list_mw_cels -all_views -all_versions -sort


AND.CEL;1
NOR.CEL;1
NOR.FRAM;1
top.CEL;1
top.CEL;2
1

19 © 2012 WIPRO LTD | WWW.WIPRO.COM | CONFIDENTIAL


Commands and their examples

>>open_mw_cel [-readonly] [-library library] [-version version] [-not_as_current] [-sync_port_names] mw_cel_name

The following example opens one Milkyway design:


>> open_mw_cel DUT
{DUT}

>>open_mw_lib [-readonly |-write_ref] mw_lib

The following example opens a Milkyway library named access05 for writing in the current session:
>> open_mw_lib access05
{access05}

>>remove_mw_cel [-hierarchy [-check_only]] [-version_kept count] [-verbose] [-all_versions] [-all_view] mw_cel_list

The following example removes version 1 of a design named test1. In this case, test1 has two versions. After
removing one version, you can still get a Milkyway design collection based on its remaining version.

>> remove_mw_cel "test1.CEL;1"-verbose


Removed mw_celtest1.CEL;1.
1
>> get_mw_cels *
{test1}

20 © 2012 WIPRO LTD | WWW.WIPRO.COM | CONFIDENTIAL


Commands and their examples

>>report_milkyway_version [-cell cell_name | -all]

21 © 2012 WIPRO LTD | WWW.WIPRO.COM | CONFIDENTIAL


Commands and their examples

>>rename_mw_cel old_name new_name [-all_version]

>> get_mw_cels *
{top test}
>> rename_mw_cel test bill
1
>> get_mw_cels *
{top bill}

>>rename_mw_lib -from lib_name -to lib_name

>> rename_mw_lib –from access05 -to access06

>>report_mw_lib [-unit_range] [-mw_reference_library] mw_lib


The following example displays unit information about a Milkyway library design:

22 © 2012 WIPRO LTD | WWW.WIPRO.COM | CONFIDENTIAL


Commands and their examples

save_mw_cel [-as name] [-overwrite |-increase_version] [-scenarios scenario_list] [-hierarchy] [-check_only]


design_name

>>read_lib [-format format_name] [-symbol intermediate_symbol_library_file] [-plibrary physical_library_output_file] [-pplibrary


pseudo_physical_file_name] file_name [-no_warnings] [-names_file file_list] [-test_model CTL_file_list] [-html]
[-lib_messages {predefined_lib_message_variables}]

In the following example, the library file tech_lib.lib, is read. This file contains technology information in Synopsys technology
library entry format,The -no_warnings flag causes all Library Compiler warning messages to be suppressed.

>> read_lib ~synopsys/libraries/tech_lib.lib -no_warnings

>>write_lib library_name [-format db|vhdl|verilog|datasheet] [-output file_name] [-macro_only] [-names_file file_list]

The following example shows how to write a technology library to a specified file.
>> write_lib my_lib -output ~synopsys/test/test.db

23 © 2012 WIPRO LTD | WWW.WIPRO.COM | CONFIDENTIAL


Commands and their examples

In the following example, the design is annotated with the physical data defined in the file named top.def.

>> read_def top.def

The following example writes out a file out.def from the existing design top.

>> write_def –output out.def

24 © 2012 WIPRO LTD | WWW.WIPRO.COM | CONFIDENTIAL


Physical Library Data Preparation

• An important task in the IC


design flow is the preparation of
standard cells and macro cells
from physical data obtained
from an external source.

• This information is provided in


one of the following standard
data interchange formats:
• GDSII stream format :
industry-standard data
exchange format for
integrated circuit layout
information
• OASIS, a newer data
stream format designed
as an improved
replacement for GDSII
• LEF/DEF, a set of
standard data exchange
formats for physical
libraries (Library
Exchange Format) and
design data (Design
Exchange Format)

25 © 2012 WIPRO LTD | WWW.WIPRO.COM | CONFIDENTIAL


Milkyway library
Creating a milkyway design library:
create_mw_lib design_lib_orca -open -technology abc_6m.tf -mw_reference_library “sc ram32 io”

libname : design_lib_orca – is the name of the milkyway library to be created.


-open : opens the library after creation
-technology : specifies the name of the technology file for the newly created Milkyway library. The technology file is unique to
each technology, it contains the metal layer technology parameters.
-mw_reference_library : specifies a list of reference libraries to be used for the new library.

26 © 2012 WIPRO LTD | WWW.WIPRO.COM | CONFIDENTIAL


Checking the milkyway library
set_check_library_options –all

-all option will check the library for :tech_consistency, view_comparison, same_name_cell, signal_em, antenna, rectilinear_cell,
physical_only_cell, phys_property {place route cell metal_density}, rail view_data, routeability, tech

command sets specific options for the check_library command for logic library versus logic library checking, logic library versus
physical library checking, and for checks between physical libraries. Run the set_check_library_options command before you
run the check_library command.

check_library

check_library [-mw_library_name phys_library_name_list] [-logic_library_name logic_library_name_list] [-cells cell_list]

Performs consistency checks between logic and physical libraries, across logic libraries, and within physical libraries.
• Physical Library Quality Checking
• Logic Versus Physical Library Consistency Checking
• Logic Versus Logic Library Consistency Checking

27 © 2012 WIPRO LTD | WWW.WIPRO.COM | CONFIDENTIAL


Data Setup

28 © 2012 WIPRO LTD | WWW.WIPRO.COM | CONFIDENTIAL


Milkyway tool tasks

The Milkyway tool allows you to perform the following tasks, which are essential for library data
preparation:

• Create standard cell libraries

• Import cell data in GDSII, OASIS, and LEF/DEF format

• Specify technology information

• Write technology information to a file

• Flatten cell hierarchy

• Specify power and ground port types

• Optimize the standard cell layout

• Extract blockage, pin, and via information to make FRAM views

• Set place and route boundaries

• Define wire tracks

29 © 2012 WIPRO LTD | WWW.WIPRO.COM | CONFIDENTIAL


Ques and Ans
STEP: MILKY WAY DB Creation:
----------------------------------------------------------------
What are the inputs needed for creation of MW DB ? How to create milkyway DB?
 
A1. Done with the help of the command:
create_mw_lib
 
create_mw_lib design_lib_orca -open -technology abc_6m.tf -mw_reference_library “sc ram32 io”
Inputs :
Technology file in .tf format. It contains metal layer technology parameters
mw_reference_library : list of physical reference libraries to create the new MW library. These files must be in the milkyway
environment format.
 
Output:
Milkyway library (Milkyway Design Library)
 
Tool:
This library creation task can be performed by both: Milkyway tool or IC Compiler tool.
The command used in both the tools is the same.
 
 

 
 
 
 
 

30 © 2012 WIPRO LTD | WWW.WIPRO.COM | CONFIDENTIAL


Ques and Ans
How to create milkyway reference library (mw_reference_library )?
A2.
Library Preparation Using GDSII and OASIS
To prepare a Milkyway reference library from physical cell data:
Import data as GDSII or OASIS data stream into the Milkyway Environment
Translate that data into the Milkyway database format.
 
GDSII to Milkyway 
Milkyway to GDSII 
OASIS to Milkyway 
Milkyway to OASIS
 
Library Preparation Using LEF/DEF
To prepare a Milkyway reference library from cell data in LEF format:
Import the data into the Milkyway Environment.
Translate that data into the Milkyway database.
 
LEF and DEF Data 
LEF to Milkyway 
Milkyway to LEF 
DEF Input and Output
 
NOTE: IC Compiler uses the Milkyway database as the storage format for physical library cells and physical chip layout
information, including placement and routing results. The entire chip is a single cell built out of lower-level blocks, which are also
cells.
 
 
 

31 © 2012 WIPRO LTD | WWW.WIPRO.COM | CONFIDENTIAL


Ques and Ans
Can ICC work w/o MW DB ?
A2. Pending

 
How to verify MW DB is correctly created?
A3. Check_library command is used for this.
It performs consistency checks between logic and physical libraries, across logic libraries, and within physical libraries. The
following checks are included:
Physical Library Quality Checking
Logic Versus Physical Library Consistency Checking
Logic Versus Logic Library Consistency Checking
 
check_library [-mw_library_name phys_library_name_list] [-logic_library_name logic_library_name_list] [-cells cell_list]
 

32 © 2012 WIPRO LTD | WWW.WIPRO.COM | CONFIDENTIAL


Ques and Ans
Is MW DB needed for all steps in the flow?
A5. Pending
 
 
Opening and Closing Milkyway Libraries
In IC Compiler, you need to open a Milkyway design library before you can read in a cell for editing and save the edited cell.
Command: open_mw_lib
 
Example:
icc_shell> open_mw_lib /mw/LIBS/mw_lib_A
 
By default, the specified library is opened with read/write access, and any associated reference libraries are available for read
access only.

To open the MW design library for read access only, use the -readonly option:
icc_shell> open_mw_lib -readonly /mw/LIBS/mw_lib_A
 
To open the MW design library for read/write access and make the associated reference libraries also available with read/write
access, use the -write_ref option:
icc_shell> open_mw_lib -write_ref /mw/LIBS/mw_lib_A
 
 

33 © 2012 WIPRO LTD | WWW.WIPRO.COM | CONFIDENTIAL


Ques and Ans

Opening and Closing Milkyway Cells


Opening a cell displays a graphical view of the cell layout in a GUI window and makes the cell available for editing.
Any number of cells contained in the Milkyway design library that is currently open can be opened.
Examples:
 
To open the cell called system_controller_clock in the currently open Milkyway design library, use the following command:
icc_shell> open_mw_cel system_controller_clock
By default, the cell is opened with read/write access.
 
To open a cell for read access only, use the -readonly option:
icc_shell> open_mw_cel -readonly system_controller_clock
 
 
If the Milkyway design library containing the cell is not already open, you can open both the library and cell at the same time with a
single command:
icc_shell> open_mw_cel -library system_controller_mw system_controller_clock

34 © 2012 WIPRO LTD | WWW.WIPRO.COM | CONFIDENTIAL


Click here to add
Customer / Partner
Logo

Anik Saha

Project Engineer

anik.saha@wipro.com

35 © 2012 WIPRO LTD | WWW.WIPRO.COM | CONFIDENTIAL

You might also like