Skip to content

ssbagi/NASSCOM-VSD-SoC-Design-Program

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

42 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

NASSCOM-VSD-SoC-Design-Program

As part of the Workshop VSD SoC Design Course.

DAY 1 : LAB Work

As part of the lab introduction :

In the Process Design Kits (PDKs) the sky130A folder contains the libs.refs and lib.techs.

libs.ref

The libs.ref contains the different process folders. In each of these process we have the library (timing corners) , lef files, spice files, mag has the cells shape, the technology lef, the verilog folder has custom defined cell definition using primitive verilog syntax.

image image

libs.tech

The libs.tech is the tools folder image

Openlane_Tools

Hands On

Step 1 :

Command Used :
- docker
- ./flow.tcl -interactive
- package require openlane 0.9

image

prep -design picorv32a

When above command is ran you can see the config.tcl used for configuration, PDK's root directory, Standard cell library, LEF files and Metal layers (Only 6 layers are avialble). Then Merging lef (Cell level lef and technology level lef).

image

Synthesis

The Synthesis stage generally takes input of the design files (Verilog files), Constraints and Standard cell library (.lib) to generate the Equivalent Logic Circuit.

Command used for yosys tool :

run_synthesis

image

Results after Synthesis Step is as follows :

image

The Chip area of the chip is 147712.918400.

image

FLOP RATIO

image

The count of D-FF is 1613. image

The synthesis netlist generated file as shown below : image

The synthesis reports directory : image

DAY 2 : LAB WORK

The variables defined for Floorplanning are as shown below :

image

Floorplan Tcl Script Configuration

The floorplan tcl script used for configuring the simulation. image

run_floorplan

image

Opening the Magic Tool. The cirrent directory is in /results/floorplan

magic -T /home/vsduser/Desktop/work/tools/openlane_working_dir/pdks/skylane130A/libs.tech/magic/sky130A.tech lef read ../../tmp/merged.lef def read picorv32a.floorplan.def

image

image

s    - Used to select the object.
v    - center the Die.
what - dispalys the details of the object.

In below section shows the object of pins are routed in metal2. image

All the logic blocks standard cells are placed in left side corner. image

run_placement

image

After the command ran :

image

image

magic -T /home/vsduser/Desktop/work/tools/openlane_working_dir/pdks/skylane130A/libs.tech/magic/sky130A.tech lef read ../../tmp/merged.lef def read picorv32a.placement.def

Opening the Chip after run_placement stage

image

After every run the screenshot of the result is takenand stored. The View of chip afer this step done is as follws :

/home/vsduser/Desktop/work/tools/openlane_working_dir/openlane/designs/picorv32a/runs/11-02_14-38/results/placement/picorv32a.placement.def.png

Placement of the Standard cells in Standard rows

image

DAY3 LAB WORK

Magic Layout and NGSPICE Characterziation

image

magic -T sky130A.tech sky130_inv.mag &

Now we see the Layout of the Inverter. We see the following layers :

p-well
n-well
Gate of pmos and nmos are connected to Input pin.
Drain of pmos connected and Drain of nmos are shorted and connected to Output pin.
Source of pmos connected to VDD
Source of nmos connected to VGND
Polysilicon : Red line

image

By selecting usin keyboard key s and typing what in the console we see selected one is polysilicon layer. Connecting Gate of both nmos and pmos. image

Similar for n-well. image

The Technology LEF - It contains information about avialable metal layer via information DRC's of paticular technology used by placer and router etc.

Standard Cell layout design in Magic

Extracting the details form the layout, parasitics from the cell.

extract all
ext2spice cthresh 0 rthresh 0
ext2spice

image

image

After opening the extracted spice file. image

Spice file sky130_inv.spice contents. Adding the pmos, nmos model files, Pulse and doing Transient analysis on the inverter. image

NGSPICE

Loading the skylane130_inv.spice file in ngspice tool. image

The Input and Output Waveforms of Inverter image

image

The basic tr Rise time calculation. 20% to 80% value changes. image

The basic tpd Propogation delay. 50% of Output to 50% of input. image

The basic tf Fall time calculation. 80% to 20% value changes. image

DAY 4

In Day3 we designed our own Custom Cell from Circuit to Layout design of Inverter. In Magic tool the layout of Inverter was developed. We extracted the parasitics of the Inverter and dumped into spice file.

Why ?

The reason is sometimes we do custom cell or group the standard cell and make a logic out of it. During Technology Mapping stage i.e., mapping logic to Standard cells. That is Logic Synthesis and Physical Synthesis step we tend to include the custom designed cell and its layout (FRAM) into our design. Then we proceed further with our Physical Design flow.

LAB Work

When we open the pdks/sky130A/libs.tech/openlane/sky130_fd_sc_hd. We open the tracks.info file. For this skylane130A the technology node is 130nm and the Fab gives 6 Metal Layers i.e., li1, met1, met2, met3, met4 and met5. So, during routing stage the tool using these metal tracks for routing.

To explain or understand the concept for example :

  • met1 X 0.17 0.34
  • met1 Y 0.17 0.34

The Metal1 track has multiple lines in Horizontal and Vertical layers in chip. The pitch(distance between the two met1 layers in Horizontal and Vertical direction) is 0.34.

In below snippet it has offset and pitch values. Horizontal track is X and Vertical track Y. image

Now using the li1 information and chnaging the grid information. image

Dumping the lef file of the standard cell. image

Next step is to plug this lef file to our design. We copy the file and move to src directory. image

Now when we open anyone of our lib file. We see following table

image

For timing we have tr, tf and tpd. The chacterization table for each pin and the details. image

image

For doing STA analysis we generally use the concept of Multi Mode and Multi Corner (MMMC). In our case we have

  • skylane130_fd_sc_hd__typical.lib : skylane130_fd_sc_hd__tt_025C_1v80.
  • skylane130_fd_sc_hd__slow.lib : skylane130_fd_sc_hd__ss_100C_1v60
  • skylane130_fd_sc_hd__fast.lib : skylane130_fd_sc_hd__ff_n40C_1v95

For example the skylane130_fd_sc_hd__<nmos,pmos>.

Copying all the library files to design src folder. image

Now we have lef and timing definition library files included in this. image

Updated config.tcl file : image

Inclusion of Custom cell :

image

image

image

Synthesis of including custom cell :

image

image

Placement :

image

image

STA Fixes : Pre-layout Fixes

Round 1

image

Round 2

image

Round 3

image

Round 4

image

Example Sending Fixes

image

image

image

NOTE

Give feedback to Logic team to reduce as much as possible because once if you do floorplan, placement. Reduce the setup as much as possible. Next after CTS we will have setup and hold violation also. Make a note of all the fixes sent to folks and send in mail. Add commands also in the mail it becomes easy for them to take in fixes.

Again, after Routing. The Routing is iterative process again and again it will be done. The fixes can be same(repeated) or different. Sometimes fixes are taken in and some times they are missed. Check with previous reports to newly generated ones. Make a note of all the fixes sent to PnR folks and send in mail. Add commands also in mail it becomes easy for them to take in fixes.

image

Final Fixes

image

Next Dump Verilog file :

image

image

Placement

image

image

image

CTS

In the Clock path we have separate Clk Buffer or Clk Inverter cells placed. We have X or H tree from theory in practical or in projects this will be different a little bit. Now in CTS stage onwards will have to focus on Hold time as we did for Setup time. So, many times the fixes given for setup might help or worse the Hold time if path is common.

In below screenshot you can see the list of cell included are shown below :

image

Why clk cells ?

Because the clk path needs to have tr = tf. There needs not be any degradation of the signal on the clk path.

image

image

In CTS insertion of clock cells happen and new netlist is generated.

image

Day 5

Loading from CTS stage we read LEF, DEF, DB and Verilog file.

image

Hold Time and Setup time :

image

image

PDN GEN STEP

image

image

image

Routing

image

image

At the end of routing we have following def file creation :

image

About

As part of the Workshop VSD SoC Design Course

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors