Synopsys-IC Compiler--This page still under construction
Prepared by Travis Schulze and Prateek, Updated by Yin Sun
You will need the following files and folders for this basic step.
These files are found in the .zip file found at the bottom of THIS PAGE!
Folders
m35sm330s_4lm
cb35io122d_4lm
Preliminary Steps-
Normally The fist step is to create a verilog netlist and sdc contrainst file using Cadence Encounter RTL Compiler.
Using the VHDL code that describes the design to generate the netlist and .sdc file according to the Cadence Standard Cell based tutorials.
You would then need to add the pad description to the netlist and edit the .sdc file.
However, this has already been done for you and the netlist and .sdc files are found in the .zip file on this page.
Begin Synopsys Place and Route-
Create a directory for your synopsys design, example; synopsys.
This must be created outside of the SDRIVE. This is the opposite of the Cadence tutorials which require you to work inside the SDRIVE.
Extract all of the files in the .zip to the synopsys directory.
Navigate to the synopsys directory
Ø Open the IC compiler GUI using the following in the command prompt
icc_shell -64bit -gui
Ø Set the target library by typing in the following command in the icc gui shell. The first library contains all of the standard cells. The second contains the I/O pads.
set_app_var target_library "m35sm330s_typ.db cb35io122d_typ.db"
set_app_var target_library "m35sm330s_max.db cb35io122d_typ.db"
This is the ICC GUI window
Ø Link in the target by using the following command
set_app_var link_library "* $target_library"
Ø Then enter the following two commands
set mw_logic0_net vss
set mw_logic1_net vdd
Ø Now go to FILE> Create Library
Add the following files and folders to the window using your file and directory paths
In the "Technology file" space use the Astro_HL35SM14_130412.tf found in the HL35S3350M1X_9track_astroteck_130415/4LM/STD folder
In the "Input Reference Libraries" add the m35sm330s_4lm folder
Found in m35sm330s_HL35s_astrofram_130412/STD/
cb35io122d_4lm
Found in Astro_DK_cb35io122_fram_080306/
use the whole folder do not open the folder.
Check in the "Open library" check box and press OK
Ø Now Go to FILE>SET TLU+
Fill in the window as shown, again using your own file path
HL35S3350M1X_9track_astroteck_130415/4LM/STD
The mapping file is found
HL35S3350M1X_9track_astroteck_130415/4LM/
Press OK
Ø In the icc gui command type in
check_tlu_plus_files
Ø Ensure that in the files show “passed ” in the command window
Ø Now go to FILE> Import> Read Verilog
Choose the verilog netlist 8051_chip.v.
Press OK
Ø Successful reading of the netlist file will open up a layout window. This may take a while.
Troubleshooting READ Verilog step
The read Verilog step may fail on the first attempt.
If you see this error, Close IC_Compiler. Then re-open it and Open the library you created.
You will also need to re-link the libraries just as you did before and re-input the TLU+ files.
Then try to read in the Verilog file again.
Ø Now in the IC Compiler main window, Go to FILE> Import > Read SDC
Choose the .sdc file 8051_chip.sdc.
Ø Choose the .sdc file, and change the version to match your file. It should be 1.7 but make sure. Press OK
Ø Successful reading of the sdc file should show a “1” in the command window
Ø Now we will set up the pad ring. This file tells Synopsys to create power, ground and corner pads with a script file.
Take a moment to read this file.
From the ICC shell go to FILE>Execute Script
Input the "create_phy_Cell.tcl" file
Ø Now we will create the rest of the pads and tell Synopsys where we want them placed with another script file.
Take some time to read and understand this file.
From the Layout Window select Floorplan> read_pin_pad_physical_constraints
Select the 8051_io.tdf file, Press OK
Ø Now in the IC Compiler Layout Window Go to, FLOORPLAN> Create Floorplan
Fill in the options as shown below. We will do this twice. The first time we will check the Pad Limit box. then click Apply.
Then unclick the Pad Limit box and click OK. By doing this twice we will create a minimum size design limited by the number of pads.
Ø A floorplan should appear with the standard cells besides it as shown in the figure below
To confirm the pads are lined up properly without any spaces inbetween enter the following command into the ICC Shell
There should not be any filler added.
insert_pad_filler -cell "iofiller"
Ø Now in the IC Compiler layout window go to, PREROUTE> Derive PG Connections
Ø Check in the Manual Connection option and fill the details as shown below , then press OK
Ø In the IC Compiler Layout Window go to, PREROUTE> Create Rings
Ø Select the Rectangular option
Ø Type in vdd vss in the Nets option and fill in the rest as shown below and click OK
Ø The power ground rings should appear in the layout
ØFrom the layout window select PREROUTE> Preroute Instances, accept the defaults and click OK.
The power and ground rings should now be connected the the VDD and VSS pads as shown below. Confirm this.
Ø In the IC Compiler layout window go to, PREROUTE> Preroute Standard Cells
Ø Go to the Routing Options and check in the boxes as shown below and click OK
Ø Now in the IC Compiler main window , type in
create_fp_placement in the icc_shell command prompt
Ø All the standard cells should get placed in the floorplan as shown in the figure below
Ø Now type in
legalize_fp_placement in the icc_shell command prompt
It should show “1” in the command window
Ø Now type in
place_opt in the icc_shell command prompt
Ø Again It should show “1” in the command window for successful execution
Ø Now type in
set_fix_hold [all_clocks ] in the icc_shell command prompt
Ø Now type in
clock_opt in the icc_shell command prompt
Ø You should see the clock tree synthesis routing in the layout as below
Ø Now type in
route_opt in the icc_shell command prompt
Ø You should now get a routed layout in the layout window as shown below.
We must now confirm that the layout and netlist match. Go to Verification>LVS. Accept the defaults and click OK.
An error window will appear. Most likely it will have erros the first time. Click on the errors to see what each means.
If you have a short between VDD and VSS, re-run the Derive PG connections step.
If you still have further errors you will need to re-run the placement and routing steps.
Pre-route Instances
Pre-route Standard Cells
Route
If you still have errors run them all again.
When LVS generates zero errors then you can proceed.
The next step is to fill in the extra space in the layout with a standard cell.
In the layout window, select Finishing- Insert Standard Cell Filler
Fill out the window as shown.
The layout is now completely full.
Ø Now in the ICC Shell we will set up the GDS file export.
Input the following command
set_write_stream_options -map_layer HL35S.layerMap -child_depth 20 -flatten_via
Again check for successful execution shown by '1' in the window
Then go to
FILE> Export> Write Stream
Ø Check in the GDSII option and write the name with which you want to save the file in the Stream file name to write option and click OK
Ø The command window should show the following message for successful write
Ø Save the design before exiting.