Search This Blog

Saturday, March 9, 2024

What is the sanity checks you have done for STA?

 Sanity checks for STA:

  • Linking Checks:
    • We need to check., is there any missing modules or missing pins in a library. this is done by link command.
  • Constraint checks:
    • In constraint checks we need to check the SDC, i.e. if there are any no-clock, no-input delay, or unconstrained endpoints. this can be done by the check_timing command.
  • Parasitic checks:
    • In parasitic check we need to check the not annotated nets

How to fix DRV violations

 Max transition violations

  • Upsize the cell.
  • Insert a buffer when the net is dominant.
  • Buffer can be replaced with inverter pair.
  • Move the cells nearer.
  • Vt swapping from HVT cells to LVT cells
  • Metal width increases 
  • Metal jogging from lower to higher metals
Max cap/Fanout
  • Upsize the cell
  • Load splitting.
  • Cloning
  • Swapping

Friday, October 6, 2023

TCL Script 10

Question:
Write a proc to get the collaterals from  different dir

#!/usr/bin/tclsh

proc getPtpxInputs {hm_name run_tag} {

        set comman_path "/home/kalam/pnr_inputs/"

        set run_area    "$comman_path/$hm_name/$run_tag"

        set ptpx_inputs [list ${hm_name}.v ${hm_name}.map ${hm_name}.sdc]

        set upf_path    [list ${hm_name}.upf]

        foreach input $ptpx_inputs {

               set file_path [file join $run_area $input]

               set upf_path  [file join $comman_path/power_intent $upf_path]

               if {[file exists $file_path] && [file exists $upf_path]} {

                        puts "$file_path"

             }

       }

       puts "$upf_path"

   }

  set hm_name top

  set run_tag run1

getPtpxInputs $hm_name $run_tag

Usage of the script <proc_name> <hm_name> <run_tag>

output:

kalam@DESKTOP-OSJTLNE:~/pnr_inputs$ tclsh  getptpx_inputs.tcl

/home/kalam/pnr_inputs/top/run1/top.v

/home/kalam/pnr_inputs/top/run1/top.map

/home/kalam/pnr_inputs/top/run1/top.sdc

/home/kalam/pnr_inputs/power_intent/top.upf

Monday, October 2, 2023

Shell script 20

Question: Get the files from different directories by using case  statement

Answer:

#!/usr/bin/bash

if [ $# -eq 0 ]

then

        echo "Usage: $0 <case_number>"

        exit 1

fi

case_number="$1"

case "$case_number" in

        1)

                dir="/home/kalam/pnr_inputs/"

                files=("top.spef" "top.vi") ;;

        2)

                dir="/home/kalam/synth_inputs/"

                files="leaf_inst.rpt" ;;

        *)

                echo "Invalid case_number, Please choose 1 or 2"

                exit 1 ;;

esac

if [ ! -d "$dir" ]

then

        echo "Directory $dir does not exist"

        exit 1

else

        for file in "${files[@]}"

        do

        file_path="${dir}${file}"

        if [ -f "$file_path" ]

        then

                echo "$file_path"

        else

                        echo "File $file_path not found"

        fi

done

fi


Shell script 19

Question: write a script to print your lucky number

Answer:

#!/usr/bin/bash

read -p "What is your lucky number?" num

case  $num in

        1)

                echo "your lucky number is one";;

        2)

                echo "Your lucky number is two";;

        *)

                echo "None"

esac

Output:

kalam@DESKTOP-OSJTLNE:~$ sh  case_statement.sh

What is your lucky number? 1

your lucky number is one

Shell script 18

Question: Usage of  $*,$1,$#,$0,$@,$?

 #!/usr/bin/bash

present_working_dir=`pwd`

echo "script name $present_working_dir/$0"

echo "1st argument $1"

echo "2nd argument $2"

echo "Previous command is success or not if yes it will give 0: $?"

echo "$*"

echo "total number of arguments $#"

echo "Arguments names $@"


Shell script 17

 CUT command usage

Question:

Usage of the cut command 

cut -d "," -f 1 cut_examples.sh

cut -d "," -f 2 cut_examples.sh

cut -d "," -f 3 cut_examples.sh

cut -c 1-4 cut_examples.sh

What is the sanity checks you have done for STA?

 Sanity checks for STA: Linking Checks: We need to check., is there any missing modules or missing pins in a library. this is done by link c...