openlane_new_tutorial_2022

To lauch the openlane command prompt type in the terminal where the OpenLane folder is

cd OpenLane
make mount

To create the design type the following command in the terminal

./flow.tcl -design <design_name> -init_design_config -add_to_designs -config_file config.tcl

To run openlane interactively

You may run the flow interactively by using the -interactive option:

./flow.tcl -interactive

A tcl shell will be opened where the openlane package is automatically sourced:

Then type the follwoing

% package require openlane

Then, you should be able to run the following main commands:

Any tcl command.

prep -design <design> -tag <tag> -config <config> -init_design_config -overwrite

similar to the command line arguments, design is required and the rest is optional

run_synthesis
run_floorplan
run_placement
run_cts
run_routing
write_powered_verilog " followed by " set_netlist $::env(routing_logs)/$::env(DESIGN_NAME).powered.v

write_powered_verilog -output_def -output_nl -output_pnl

run_magic
run_magic_spice_export
run_magic_drc
run_lvs
run_antenna_check

The above commands can also be written in a file and passed to flow.tcl:

./flow.tcl -interactive -file <file>

If the design is too small. you try appending these to your configuration file (config.tcl):

set ::env(FP_CORE_UTIL) 5
set ::env(PL_TARGET_DENSITY) 0.5
(low utilization)

If these don't work, you may want to take a look at:

https://github.com/efabless/openlane/blob/master/regression_results/README.md
and explore different utilizations and densities.

To launch kalyout

XDG_SESSION_TYPE=x11 klayout

Updating OpenLane

If you already have the repo locally, then there is no need to re-clone it. You can run the following:

cd OpenLane/
git checkout master
git pull
make
make test # This is to test that the flow and the pdk were properly updated

Backend design

https://github.com/visionvlsi/be_design_using_openlane

Flow Configuration Variables

https://openlane.readthedocs.io/en/latest/reference/configuration.html

PDK Configuration Variables

https://openlane.readthedocs.io/en/latest/reference/pdk_configuration.html

Openlane commands

https://openlane.readthedocs.io/en/latest/reference/openlane_commands.html

Interactive Mode

https://openlane.readthedocs.io/en/latest/reference/interactive_mode.html

Others

OPENLANE_IMAGE_NAME=efabless/openlane:9dbd8b5ea2bd891bed4dcc97df5c7439083f0368

  1. In case of -tag tagName giving an error, do the following
    export OPENLANE_IMAGE_NAME=efabless/openlane:5ca48214640dcb9f88945a3861be47716ebe187d
    make mount

  2. To open DEF file either using magic or klayout

    • from (floorplan,placement, CTS, or routing directory> magic -T sky130A.tech read_lef /tmp/merged.lef read_def filename.def &
    • In case of klayout -> from tools -> manage technology -> import technology -> from sky130A -> libs.tch -> klayout -> sky130A.lyt
    • The following is older command


from (floorplan,placement, CTS, or routing directory> magic -T sky130A.tech lef read /tmp/merged.lef def read filename.def &

  1. NOTE pdks can be found in /root/.volare/
  2. Those with -overwrite
    OpenLane > git fetch --unshallow
    then, git config --global user.name "anyUserName"
    git config --global user.email ""
    then, git stash
    then, git revert 5ca48214640dcb9f88945a3861be47716ebe187d
    then, Ctrl+X
    then, press y
    then, export OPENLANE_IMAGE_NAME=efabless/openlane:9dbd8b5ea2bd891bed4dcc97df5c7439083f0368
    make mount