0% found this document useful (0 votes)
49 views7 pages

CMD 1

Uploaded by

khaleel
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
49 views7 pages

CMD 1

Uploaded by

khaleel
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 7

Cmd:

Ifc_shellcmd : nbjob run --tar zsc14_express --qslot /XNE/gnrd/be --class


"SLES12SP5&&8C&&180G" --container-platform singularity --container-image
$SINGULARITY_CONTAINER --container-options "-B $SINGULARITY_BINDPATH" xterm -bg
black -fg yellow -e Ifc_shell -B $block -F apr_fc -I

Signoff cmdsto run in ZSC14:

Xor2spec
nbjob run --tar zsc14_express --qslot /XNE/gnrd/be --class "SLES12SP5&&4C&&100G" --
container-platform singularity --container-image $SINGULARITY_CONTAINER --
container-options "-B $SINGULARITY_BINDPATH" $ward/global/common/xor2spec.pl -
spec_lib $ward/tip_ss.nlib-block $block -skip_timing 1 -nets 0 -impl_lib
$ward/runs/$block/1276.31/apr_fc/outputs/finish/$block.ndm -generate_eco

fev_rtl2syn
nbjob run --tar zsc14_express --qslot /XNE/gnrd/be --class "SLES12SP5&&4C&&64G" --
container-platform singularity --container-image $SINGULARITY_CONTAINER --
container-options "-B $SINGULARITY_BINDPATH" Ifev_shell -B $block -T fev_rtl2syn

fev_syn2apr
nbjob run --tar zsc14_express --qslot /XNE/gnrd/be --class "SLES12SP5&&4C&&64G" --
container-platform singularity --container-image $SINGULARITY_CONTAINER --
container-options "-B $SINGULARITY_BINDPATH" Ifev_shell -B $block -T fev_syn2apr

vclp_syn
nbjob run --tar zsc14_express --qslot /XNE/gnrd/be --class "SLES12SP5&&4C&&64G" --
container-platform singularity --container-image $SINGULARITY_CONTAINER --
container-options "-B $SINGULARITY_BINDPATH" Ivc_static_shell -B $block -S
compile_initial_opto -R vclp_syn_fc

vclp
nbjob run --tar zsc14_express --qslot /XNE/gnrd/be --class "SLES12SP5&&4C&&180G" --
container-platform singularity --container-image $SINGULARITY_CONTAINER --
container-options "-B $SINGULARITY_BINDPATH" Ivc_static_shell -B $block

extraction
nbjob run --tar zsc14_express --qslot /XNE/gnrd/be --class "SLES12SP5&&4C&&180G" --
container-platform singularity --container-image $SINGULARITY_CONTAINER --
container-options "-B $SINGULARITY_BINDPATH" IStarXtract -F extraction -B $block -S
finish -AP

Sta_pt
Setup:
$ward/global/snps/sta_pt/sta_setup.tcl -B $block -O
"func.nom.TT_100.tttt,func6.high.TM_m40.tttt,func2.med.TT_m40.tttt,func7.low.TT_100
.tttt,func3.low.TM_100.tttt,func4.high.TM_100.tttt,func5.low2.TM_m40.tttt"

Promote:
$ward/global/snps/sta_pt/promote.tcl -B $block -O
"func.nom.TT_100.tttt,func6.high.TM_m40.tttt,func2.med.TT_m40.tttt,func7.low.TT_100
.tttt,func3.low.TM_100.tttt,func4.high.TM_100.tttt,func5.low2.TM_m40.tttt" -F

Intel_caliber
nbjob run --tar zsc14_express --qslot /XNE/gnrd/be --class "SLES12SP5&&4C&&180G" --
container-platform singularity --container-image $SINGULARITY_CONTAINER --
container-options "-B $SINGULARITY_BINDPATH"
$ward/global/snps/intel_caliber/intel_caliber.csh -B $block -F intel_caliber -O
func.nom.TT_100.tttt

LV
Igen_lvs_netlist_icv -B $block -S finish -F gen_lvs_netlist
eouMGR --block $block --flow one_lv_icv.socallf --gui --reset &

RV
nbjob run --tar zsc14_express --qslot /XNE/gnrd/be --class "SLES12SP5&&4C&&200G" --
container-platform singularity --container-image $SINGULARITY_CONTAINER --
container-options "-B $SINGULARITY_BINDPATH" $ward/global/ansys/rv/run_rv_netbatch
-B $block -T full_flow

Pt_eco
nbjob run --tar zsc14_express --qslot /XNE/gnrd/be --class "SLES12SP5&&4C&&100G" --
container-platform singularity --container-image $SINGULARITY_CONTAINER --
container-options "-B $SINGULARITY_BINDPATH" Ipt_shell -B $block -F pt_eco -L
pt_eco.log -R pt_eco_run0 -multi -file $ward/global/snps/pt_eco/pt_eco.tcl -P &

$ward/global/snps/pt_eco/promote.tcl -B $block --tech $tech -F -R pt_eco_run0

nbjob run --tar zsc14_express --qslot /XNE/gnrd/be --class "SLES12SP5&&8C&&250G" --


container-platform singularity --container-image $SINGULARITY_CONTAINER --
container-options "-B $SINGULARITY_BINDPATH" xterm -bg black -fg white -e Ifc_shell
-B $block -F apr_fc -output_log_file logs/fc.icc2_eco_implementation.log -f
$ward/global/snps/apr_fc/apr_eco.tcl --promote -T eco_implementation1

nbjob run --tar zsc14_express --qslot /XNE/gnrd/be --class "SLES12SP5&&4C&&180G" --


container-platform singularity --container-image $SINGULARITY_CONTAINER --
container-options "-B $SINGULARITY_BINDPATH" IStarXtract -B $block -AP -S
eco_implementation -R extraction_pteco

Power
setenv VERDI_HOME /p/hdk/cad/verdi3/R-2020.12-SP2-1

nbjob run --tar zsc14_express --qslot /XNE/gnrd/be --class "SLES12SP5&&4C&&100G" --


container-platform singularity --container-image $SINGULARITY_CONTAINER --
container-options "-B $SINGULARITY_BINDPATH" /usr/intel/bin/tcsh -c
'$ward/global/snps/power/power.csh -B par_tip_s2g0 -R power'

tclsh
/nfs/site/cproj/gnrd/zsc14.xne_00018/mohitm/scripts/apr_scripts/power_scoring.tcl -
W $ward -B $block -F apr_fc -T route_opt -C
/nfs/site/cproj/gnrd/zsc14.xne_00018/mohitm/scripts/apr_scripts/power_score_config.
csv -O power_score -tech $tech

perl
/nfs/site/cproj/gnrd/zsc14.xne_00018/mohitm/scripts/apr_scripts/indicator_rpt_rev2.
pl_bck input.txt

/nfs/site/cproj/gnrd/zsc14.xne_00018/mohitm/WW25.5_1p0_rtl_cfg_24d_clock_fsdb_mtl/
input.txt

Fixes

Placement:

Macro Fix reports.


get_attribute [get_cells -physical_context -filter design_type==macro] is fixed
set_attribute [get_cells -physical_context -filter design_type==macro]
physical_status fixed
set_fixed_objects [get_cells -physical_context -filter design_type==macro] -unfix
set_fixed_objects [get_cells -physical_context -filter design_type==macro]
physical_status fixed

Number of Macros
sizeof_collections [get_cells -physical_context -filter design_type==macro]

Lego Fix
source $ward/global/snps/common/step_health_check.tcl
hc_check_macr

source $ward/global/snps/common/hc_procs.tcl
/nfs/site/disks/ncsg_00284/kudaribx/gnr/par_tip_fft/block_related_scripts/
hc_procs.tcl

Macro On Lego
/nfs/site/disks/ncsg_00162/shubh11x/scripts/macro_lego_placement.tcl

Source the below script:-


proc snap_macro {} {
set macro_cells [get_flat_cells * -filter "is_hard_macro==true"]
set x_div 0.9
set y_div 0.96
foreach_in_collection m $macro_cells {
scan [get_attribute $m origin] "%f %f" x y
set cellname [get_attr $m full_name]
set tx [expr $x / $x_div]
set ty [expr $y / $y_div]
set int_x [expr round($tx)]
set int_y [expr round($ty)]
if {[expr $int_x != $tx] || [expr $int_y != $ty]} {
# Calculate new ebb location
set x_new [expr $int_x * $x_div]
set y_new [expr $int_y * $y_div]
puts "Cell $cellname is snapped to placement grid, from ($x $y) to
($x_new $y_new)"
set_attribute -quiet $m origin [list $x_new $y_new]
} else {
puts "$cellname is on grid. Skip snapping"
}
}
}
snap_macro

Volatge Area on Lego

source $ward/global/snps/common/step_health_check.tcl
hc_check_voltage_area_lego_compliance
create_grid EVEN_GRID -type user -x_step 5.4 -y_step 5.76

Floorplan

Placing Macros:

Grid
create_grid EVEN_GRID -type user -x_step 5.4 -y_step 5.76

Super Lego Grid


create_grid {grid_1} -type user -x_step 0.9 -y_step 0.96 -x_offset 0.00000 -
y_offset 0.00000

CBC Placement Check


source /nfs/site/disks/ncsg_00162/shubh11x/scripts/macro_lego_placement.tcl
hc_check_cbc_placement

BKM for Min Channel :


source /nfs/site/disks/ncsg_00227/jainpune/scripts/min_ivars.tcl
hc_check_min_channel

Fix Macro's
set_attribute [get_cells -physical_context -filter design_type==macro]
physical_status fixed

Adding hard Blockage in Marco Channel

Output Script

write_floorplan -objects [get_cells -hier -filter "is_hard_macro == true"] -output


macro1
write_floorplan -objects [get_cells -physical_context -filter design_type==macro] -
output macro1

Rip & Route ( To Fix Shorts )

If there is any congestion try to spread and give below cmd, or give directly
set error_data par_tip_mld_lvs.err
set type [get_drc_error_types -error_data $error_data {Short}]
set signal_nets [get_flat_nets [get_attribute [get_drc_errors -error_data
$error_data -of_objects $type] objects] -filter "net_type!~power && net_type!
~ground"]
remove_vias [get_vias -of $signal_nets] -force
remove_shapes [get_shapes -of $signal_nets] -force
route_eco -open_net_driven true -max_detail_route_iterations 5 -
reuse_existing_global_route false -utilize_dangling_wires true -nets $a ;check_lvs
-max_errors 0;

set error_data par_tip_mld_lvs.err


set type [get_drc_error_types -error_data $error_data {Open}]
set signal_nets [get_flat_nets [get_attribute [get_drc_errors -error_data
$error_data -of_objects $type] objects] -filter "net_type!~power && net_type!
~ground"]
remove_vias [get_vias -of $signal_nets] -force
remove_shapes [get_shapes -of $signal_nets] -force
route_eco -open_net_driven true -max_detail_route_iterations 5 -
reuse_existing_global_route false -utilize_dangling_wires true -nets [get_nets
$signal_nets];check_legality;

Fixing Timing in Route_opt By taking high slack endpoints

report_timing -max_paths 100 -path_type end > end_points


awk '{print $1}' end_points | awk 'NR > 13 { print }' | sed -e '/^[0-9]/d' >
func_target_endpoints_file
set_route_opt_target_endpoints -setup_endpoints <realpath of
func_target_endpoints_file>
route_opt

RV Fix :

Static: Spreading cells reduced static vio

Dynamic : By downsize power was less consumed.


fc_shell_cmd :
get_attribute [ get_cells <cell_name>] ref_name
get_lib_cells <>
size_cell <cell_name> <ref_name>

Calibre fix :

Timing script:
#! /usr/bin/perl
#use strict;
#use warnings;
#use Excel::writer::XLSX;
############ package #####################
use Spreadsheet::WriteExcel;
#################creating XLSX############################################
$workbook = Spreadsheet::WriteExcel->new('sample.xlsx');
$worksheet = $workbook->add_worksheet('Timing report');
$format = $workbook->add_format(
border => 4 ,
bold => 1,
align => center
);
$format_2 = $workbook->add_format(
border => 1 ,
bold => 1,
align => center
);
#$format=$workbook->add_format(border => 1 ,bold => 1,align => center);
$format_1 = $workbook->add_format(
border => 1,
align => center
);
$i=1;$j=6;$k=1;
#my @values=qw(reg->reg In->reg reg->out In->out)
@stages=("import_design", "read_upf", "redefine","init_floorplan","setup_timing","
initial_map"," floorplan","logic_opto","
insert_dft","compile_initial_opto","compile_final_opto","cts","clock_route_opt","ro
ute_auto","route_opt","fill","finish");
#@stages=("clock_route_opt");
foreach $ele (@stages) {
$worksheet->merge_range(0,$i,0,$j,$ele,$format_2);
$worksheet->merge_range(1,$i,1,$j-3,'setup',$format_2);
foreach $var2 ("WNS"," TNS"," NVP"," WNS"," TNS"," NVP") {
$worksheet->write(2,$k,$var2,$format);
$k++;
}
$i=$i+6;
$j=$j+6;
$worksheet->merge_range(1,$i-3,1,$j-6,'hold',$format_2);
}
################## importing data #########################
%var="";
foreach $stage (@stages) {
#
open(FH,"$ward/runs/$block/$tech/apr_fc/reports/$stage/fc.report_global_timing")or
die "STAGE DOES NOT EXISTS";

open(FH,"/nfs/site/disks/ncsg_00151/gsahoox/cha_tip/cha_tip_jun27_24a__override_new
io/runs/parihcta_cha_tip/1276.31/apr_fc/reports/$stage/fc.report_global_timing");
while(<FH>)
{
if ($_ =~ /^Setup violations/) {
$setup=1;
}
if ($_ =~ /^Hold violation/) {
$hold=1;
}
if ($setup==1) {
if ($_ =~ /Total/) {
@paths=split(' ',$_);
}
if ($_ =~ /WNS/) {
@{$var{$stage}{WNS_setup}}= split(' ',$_);
}
if ($_ =~ /TNS/) {
@{$var{$stage}{TNS_setup}}= split(' ',$_);
}
if ($_ =~ /NVP/) {
@{$var{$stage}{NVP_setup}}= split(' ',$_);
$setup=0;
}
}
if ($hold==1) {
if ($_ =~ /WNS/) {
@{$var{$stage}{WNS_hold}}=split(' ',$_);
}
if ($_ =~ /TNS/) {
@{$var{$stage}{TNS_hold}}=split(' ',$_);
}
if ($_ =~ /NVP/) {
@{$var{$stage}{NVP_hold}}=split(' ',$_);
$hold=0;
}
}
}
close FH;
}
####################END of importing data ###########################
##############writing data to xlsx#####################
$i=2;
foreach $path (@paths) {
$worksheet->write($i,0,$path,$format);
$i++;
}
$j=1;$i=3;
@values=qw(WNS_setup TNS_setup NVP_setup WNS_hold TNS_hold NVP_hold);
foreach $val (@stages) {
foreach $value (@values) {
if (defined @{$var{$val}{$value}} ) {
for ($k=2;$k <= $#{$var{$val}{$value}}; $k++) {
$worksheet->write($i,$j,${$var{$val}{$value}}[$k],$format_1);
$i++;
}
} else {
for ($i=3;$i<=6;$i++) { $worksheet->write($i,$j,NA,$format_1)};
}
$j++;$i=3;
}
}
$workbook->close;

#Timing

#!/bin/tcsh
#set ward=$1
set stage=$1
echo 'Timing Summary' > timing_summary
echo "\n" >> timing_summary

echo 'FC - Timing Summary' >> timing_summary


realpath $ward/runs/*/1276.31/apr_fc/reports/$stage/*.report_global_timing >>
timing_summary
echo "\n" >> timing_summary
zgrep -B4 -A2 WNS
$ward/runs/*/1276.31/apr_fc/reports/$stage/*.report_global_timing >> timing_summary
echo "\n" >> timing_summary

echo 'PT - Setup Timing Summary' >> timing_summary


realpath
$ward/runs/*/1276.31/sta_pt/func.nom.TT_100.tttt/reports/*.report_global_timing.gz
>> timing_summary
echo "\n" >> timing_summary
zgrep -B4 -A2 WNS
$ward/runs/*/1276.31/sta_pt/func.nom.TT_100.tttt/reports/*.report_global_timing.gz
| head -8 >> timing_summary
echo "\n" >> timing_summary

echo 'PT - Hold Timing Summary' >> timing_summary


realpath
$ward/runs/*/1276.31/sta_pt/func6.high.TM_m40.tttt/reports/*.report_global_timing.g
z >> timing_summary
echo "\n" >> timing_summary
zgrep -B4 -A2 WNS
$ward/runs/*/1276.31/sta_pt/func6.high.TM_m40.tttt/reports/*.report_global_timing.g
z | tail -7 >> timing_summary

realpath timing_summary

You might also like