Skip to content

This repository is about worshop attended by on Advanced physical design

Notifications You must be signed in to change notification settings

Awadh123/awadhesh.chauhan

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Hi this is Awadhesh Chauhan sharing my github repsository of the workshop held between 3-7th August 2022 in online mode in collibration with efabless. First of all , I will try to brief about workshop.

First of all , I will try to brief about workshop.

This worskshop held between 3 to 7th August 2022 with the title "sky130-pd-workshop". It was basically about physical design. I get to learn the whole physical design flow with tool Openlane flow.

What is Openlane?

Openalane is automated RTL to GDSII flow, an tcl based complete flow for Physical design. It is the supeset of the tolls like OPenRoad, Yosys, Netgen, CVC, SPEF_Extractor, CU-GR, Klayout and a lot of custom scripting of python and tcl for optimization and exploration. This opensource floe is tasted for full ASIC implementation steps from RTL to GDSII.

alt text

this is the openlan flow block diagram ,it tells at what stage which tool is used along with the flow.

Introduction to openlab flow lab

In this we were given lab access with pre installed openlane flow. Actually openlane flow is installed using docker. Before running the flow we have to invoke docker using the docker command

alt text

RUN ./flow.tcl -interactive

after doing the above step : %package require openlane 0.9 it sync all the package required to the openlane specific version

alt text

prep -design picorv32a -->design setup stage

alt text

synthesis

Synthesis is the process of conversion of the program into the circuit linke interms of flops, gates ect. In this flow Yosys for synthesis and abc for technology mapping has been used.

to run synthesis below command is used

run_synthesis

after running this the synthesised rtl is saved at the location

awadhesh.chauhan@sky130-pd-workshop-02:~/Desktop/work/tools/openlane_working_dir/openlane/designs/picorv32a/runs/03-08_19-58/results/synthesis$

alt text

from the generated output report we get to know

The flop ratio = 1613/14876=0.1084

The buffer ratio = 1656/14876

Below are the reports that are generated after synthesis:

alt text

Floorplan

In physical design , floorplaning is the step of determining the size,shape and locations of modules in a chip and to estimate the total chip area,delay and interconnects

to run floorplaning below command is used :

run_floorplan

Magic view of floorplans:

alt text

alt text

This the zoomed view of the specific part:

alt text

if we to change any paprmeter we can use this way . In the above images pin placements are with equal spacing but we want to change it to random spacing of the pins

alt text

We updated the property and saw the result again.

alt text

In this image pin placement is random.

Placement

Placement is the way of determining the locations of the circuit devices on a die of the chip.It gives effect on routablity,performance,heat distribution and a little bit power consumption.

image

image

CMOS STANDARD CELL

We have to download the vsdstdcelldesign from the github below provided link:

clone https://github.com/nickson-jose/vsdstdcelldesign.git to clone std cell library at openlane folder and it will create folder name vsdstdcelldesign

copied sky130A.tech :

image

Below command is use dto run inverter in the magic to see layout:

awadhesh.chauhan@sky130-pd-workshop-02:~/Desktop/work/tools/openlane_working_dir/openlane/vsdstdcelldesign$ magic -T sky130A.tech sky130_inv.mag & The inverter Layout

image

Extract spice netlist

This generates teh sky130_inv.ext and sky130_inv.spice files.

extract all

ext2spice cthresh 0 rthresh 0

ext2spice

image

Spice file

image

the updated spice file

We have Update the sky130_inv.spice file to use the correct scaling factor and models. From the tkcon the root cell box is 0.01 x 0.01 microns. The scale is change to `.option scale =0.01u'

image

Simulating the spice file

image

Plotting the result plot y vs time a

image

Inverter Cell

Going the the directroy and running magic by the below command

‌magic -d XR -T sky130A.tech sky130_inv.mag&

image

‌magic -d XR -T sky130A.tech sky130_inv.mag&

image

save the file

image

Location of the file where its is saved

Open the new file using magic -d XR -T sky130A.tech sky130_jayinv.mag&

image

image

image

SRC file setup

cd /home/awadhesh.chauhan/Desktop/work/tools/openlane_working_dir/openlane/vsdstdcelldesign/extras

cp my_base.sdc /home/awadhesh.chauhan/Desktop/work/tools/openlane_working_dir/openlane/designs/picorv32a/src/

cd /home/awadhesh.chauhan/Desktop/work/tools/openlane_working_dir/openlane/vsdstdcelldesign/

copy the sky130 libraries to the picorv32a/src

image

config.tcl

Modify the config.tcl to include the copied libraries at /home/p-brane/Desktop/work/tools/openlane_working_dir/openlane/designs/picorv32a/config.tcl The modified file is shown below. LIB_MIN was replaced with LIB_FASTEST, and LIB_MAX was replace with LIB_SLOWEST.

image

Now run openlane

docker ./flow.tcl interactive

package require openlane 0.9

prep -design picorv32a -tag 04-08_06-57 -overwrite

set lefs [glob $::env(DESIGN_DIR)/src/*.lef]

add_lefs -src $lefs

run_synthesis

image

Static time analysis

image

Floorplan

Now , We have to run the following commmands sequentially

init_floorplan

place_io

global_placement_or

detailed_placement

tap_decap_or

detailed_placement

gen_pdn

run_routing

Magic

Now we are going to view the placement on magic using the below command

magic -d XR -T /home/awadhesh.chauhan/Desktop/work/tools/openlane_working_dir/pdks/sky130A/libs.tech/magic/sky130A.tech lef read /home/awadhesh.chauhan/Desktop/work/tools/openlane_working_dir/openlane/designs/picorv32a/runs/03-08_19-58/tmp/merged.lef def read /home/awadhesh.chauhan/Desktop/work/tools/openlane_working_dir/openlane/designs/picorv32a/runs/03-08_19-58/results/placement/picorv32a.placement.def&

image

power Distribution Network

As placement gets all legality checks, we run the gen_pdn command to generate th PDN.

image

Routing Routing is the process of stablishing physical connections betweeen signal pins using metal layers is called routing.It is a stage after CTS and optimizing when exact paths for the interconnection of standard cells and macros and I/O pins are determined.

run_routing command is used for routing in openlane flow.

image

The 20-tritonRouting.drc log file can be found at /home/awadhesh.chauhan/Desktop/work/tools/openlane_working_dir/openlane/designs/picorv32a/runs/runs/03-08_19-58/reports/routing/ and shows the DRC violations. They are shown below:

image

Magic

below is the commmand to see routinng in the magic

magic -d XR -T /home/awadhesh.chauhan/Desktop/work/tools/openlane_working_dir/pdks/sky130A/libs.tech/magic/sky130A.tech lef read /home/awadhesh.chauhan/Desktop/work/tools/openlane_working_dir/openlane/designs/picorv32a/runs/03-08_19-58/tmp/merged.lef def read /home/awadhesh.chauhan/Desktop/work/tools/openlane_working_dir/openlane/designs/picorv32a/runs/03-08_19-58/results/routing/picorv32a.def&

image

SPEF FILE GENERATION Data from wires in a chip are represented in the ASCII format known as Standard Parasitic Exchange Format (SPEF).A programme called SPEF EXTRACTOR is part of OpenLANE and is used to create SPEF files. It is a Python-based parser that creates the SPEF file from the LEF and DEF files as input inputs.

Below is the command to invoke SPEF_EXTRACTOR

cd ../tools/SPEF_EXTRACTOR python3 main.py /home/awadhesh.chauhan/Desktop/work/tools/openlane_working_dir/openlane/designs/picorv32a/runs/03-08_19-58/tmp/merged.lef /home/awadhesh.chauhan/Desktop/work/tools/openlane_working_dir/openlane/designs/picorv32a/runs/03-08_19-58/results/floorplaning/picorv32a.def

below is trhe extracted .spef file short snop;

image

About

This repository is about worshop attended by on Advanced physical design

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published