CMD 1
CMD 1
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 &
Power
setenv VERDI_HOME /p/hdk/cad/verdi3/R-2020.12-SP2-1
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:
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 $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
Fix Macro's
set_attribute [get_cells -physical_context -filter design_type==macro]
physical_status fixed
Output Script
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;
RV Fix :
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
realpath timing_summary