Unix - &shell Commands
Unix - &shell Commands
(B) innovus
(C) lic
(D) encounter –log log/nov15
(II) df –kh
(III) du -sk
Alias
Link for Unix commands
http://www.folkstalk.com/p/unix-commands-list.html
(i) if ::: awk ‘{if ( $1 ~ ”design”) print }’ or awk ‘{ if ($(NF-1) ~ “design”) print }’
(ii)if else ::: awk ‘{ if ($1 ~ “Beginpoint”) print $0 > file1 ; if ($1 ~ “Endpoint”) print $0 > file2 ;
(8)Get three lines into one line::-> sed 'N;N;s/\n/ <space> /g'
(9) print the line immediately before(B) and after(A) a match and
howmany lines
Grep - A 2 “match” grep -B 2 “mat ch”
(10)if a file open through less then to check numbers in file is as follows :: – N (ENTER)
EX:: input
AFUSE_MASTERCNT/AFUSE_MASTERCNT_AFW/MASTERCNT_SCANWP/AFUSE_MASTERCNT_OBSREG/OBSOUT_B
WE_reg_1_/SMC
AFUSE_MASTERCNT/AFUSE_MASTERCNT_AFW/MASTERCNT_SCANWP/AFUSE_MASTERCNT_OBSREG/OBSOUT_B
WE_reg_2_/SMC
::output
AFUSE_MASTERCNT/AFUSE_MASTERCNT_AFW/MASTERCNT_SCANWP/AFUSE_MASTERCNT_OBSREG/OBSOUT_B
WE_reg_1_
AFUSE_MASTERCNT/AFUSE_MASTERCNT_AFW/MASTERCNT_SCANWP/AFUSE_MASTERCNT_OBSREG/OBSOUT_B
WE_reg_2_
(13) delete log files ::: ls -lrt | grep "Apr 15" | awk '{print " rm -rf " , $NF}' | sh
(16) less tran.rpt | sed -e '/*\|#/ {N;d;}' | egrep -A 1 '^\S' | grep -v '^--' | sed 'N;s/\n//g' | awk '{if ($NF ~
"R") print $0}' | less
(16) trim/remove the match ::::::::::: less all_macros|tr -d '{ }' |less
http://www.theunixschool.com/2014/08/sed-examples-remove-delete-chars-from-
line-file.html
MMMC CREATION
# Creating rc corners
-cap_table
/hyd_disk/proj4/RENESAS/pilot/fromRenesas/TIMING_LIBS/ALL_LIBS/UX8L_7LM_typ_Tx
.captbl\
-preRoute_res 1.01\
-postRoute_res 1.0037\
-preRoute_cap 1.0403\
-postRoute_xcap 1.0071\
-preRoute_clkres 1.01\
-preRoute_clkcap 1.0403\
-postRoute_clkres 1.0037\
-T 125\
-qx_tech_file
-sdc_files\
[list /hyd_disk/proj4/RENESAS/pilot/fromRenesas/SDC/DFT/ACSCAN/ACSCAN.sdc]
-sdc_files\
[list /hyd_disk/proj4/RENESAS/pilot/fromRenesas/SDC/FUNC/cpx3_func.sdc]
set setupViews { \
MAX_HT_FUNC MAX_LT_FUNC MAX_HT_ACBIST MAX_LT_ACBIST
MAX_HT_ACSCAN MAX_LT_ACSCAN \
set holdViews { \
PLACEMENT
(I)placeDesign
From a user perspective, these are the things important in placement.
7. Timing
Your clock is not propagated, hence you have a zero skew at this point. Your timing
reports should look pretty good. Make sure fanout constraints are met.
After placement, verify that all cells are placed on rows without any overlaps. You might find the
following commands useful depending on your design.
check_legality
report_placement_utilization
report_level_shifters -verbose
Pre-placement optimization
After placement we need to check the design and few other commands:
timeDesign -prects
(iv) do the following to check your hold violations and setup margins on the branch.
CAP-FIX
Cadence wiki
http://edi.truevue.org/edi/14.17/fetxtcmdref/fetxtcmdrefTOC.html
SETUP FIXING
HOLD
DRV FIXING
Better to add catch for continue run , even if occur any error in one line
So to get Endpoint write as below…I wrote this cmnd w.r.t my file.you may change it.
*then we need setup margin for that endpoint.grep only endpoint from file1.then proceed as below.
(B )write all endpoints ln one file and give loop for that in same file.
| all endpoints
Foreach x $endpoint {
Puts “$x,$margin”
}
****source file > file2
In file 3 we have
In file if we have ^M ,then open that file in gvim and %s/ctrlvctrlm/ /g in sed:::
sed ‘s/\r/ /g
***here we need to check that design timing units is in ns/ps..my design is in ps.***
less s_h_margin | awk '{print $1,$2,int(((-$2)/0.02)+1),$NF}' | awk '{if($1>=($3*0.04)) print }' |awk
'{for(i=1; i<=$3;i++) print “catch { ecoAddRepeater -cell",bufname,”-term” ,$NF,”}”}’ > file5
explanation::if we have -100ps vio in hold. Then if buff giving 20ps delay (from report).then
(100/20=5buff) required.but in setup same cell give almost double delay 40ps.so in setup case that pin
should have(40*5 > 200ps) margin.
*****source file5.
(F)refinePlace
(E) checkPlace
(F)checkFiller –reportGap 0.14 (value not sure)
(G) addFiller -cell FILL64 FILL16 FILL4 FILL2 FILL1 -prefix FILLER
FOR REPORTS
SETUP FIXING
EX:: report_timing -format {timing_point edge cell delay arrival net load
pinload fanout} -net
EX::
(i) ->Here input tran violated with 85ps and output with 15ps.
-> then add buff on net of ZN –I
(ii) Once you get that net then add buffer on that net
report_clock_tree
FOR db COMMANDS
http://www.edaboard.com/thread219064.html
dbGet head.?
head: allCells
dbUnits
layers
mfgGrid
objType
props
EX: (I) dbGet head.dbUnits --> it just give the value(1000).i.e each micron is 1000units.
(iii) dbGet head.layers.? --> layer: extName name objType props type
dbGet top.?
topCell: fPlan hInst insts name nets numBidirs numInputs numInsts numNets
numPhysInsts numPhysNets numTerms objType pgTerms physInsts physNets props
statusClockSynthesized statusGRouted statusIoPlaced statusPlaced statusPowerAnalyzed
statusRCExtracted statusRouted statusScanOpted terms
Cool, lots of stuff to play with here! Try out various attributes and start thinking about how you can
use the results in scripts, or just to poke around your design and check out a few things.
Finally, select one of the instances in your design (I selected a RAM), then:
> dbGet selected.?
> inst: box cell instTerms isDontTouch isHaloBlock isJtagElem isPhysOnly isSpareGate name
objType orient pStatus pgCellTerms pgTermNets pt
This is a quick way to get information for just the things you've selected. (Try selecting more than
one thing and see how the results look.)
This has been a VERY brief introduction to playing with dbGet. (We didn't even get to dbSet yet!) I'd
love to hear in the comments if you are already using dbGet, if you know about it but haven't used it
yet, or if you didn't even know about it but think you might use it now. Have fun playing around and
finding some useful dbGet combinations - then save those for a future post, where I'll ask everyone
for their favorites.
(iv) To get all insTerm names which are tied to tieLo cells:
dbGet [dbGet -p [dbGet -p2 top.insts.cell.subClass
coreTieLo].instTerms.net.allTerms.isInput 1].name
(ix) To get physical only cells like filler cell, end cap cell etc:
dbGet [dbGet -p top.insts.isPhysOnly 1].name
(x) To find out the instname/cellname of the driver driving a specific net.
set netName <netName>
set inst [dbGet [dbGet -p [dbGet -p top.nets.name $netName].allTerms.isOutput
1].inst]
Puts "Net: $netName, driving inst name: [dbGet $inst.name], driving cell name:
[dbGet $inst.cell.name]"
deleteHaloFromBlock -allmacro
addHaloToBlock {1 1 1 1} XXXXXXXXXXXXX
/hyd_disk/proj4/RENESAS/pilot/flow/rel_4.9/
.
POWER ISSUES ::: MIN STEP VIOLATIONS
So before you going to fix it, off the visability of violations (Miscellaneours.)
CMD:: (A) editSelect -net {VDD VSS} -layers {M1 M2 M3 M4 M5 M6 M7 M8} -shape {RING STRIPE
FOLLOWPIN IOWIRE COREWIRE BLOCKWIRE PADRING BLOCKRING FILLWIRE FILLWIREOPC DRCFILL} -
status ROUTED
(B) editDelete -selected -wires_only 1 -net {VDD VSS} -layers {M1 M2 M3 M4 M5 M6 M7 M8} -shape
{RING STRIPE FOLLOWPIN IOWIRE COREWIRE BLOCKWIRE PADRING BLOCKRING FILLWIRE FILLWIREOPC
DRCFILL} -status ROUTED
CMD: (A) editSelectVia -net {VSS VDD} -shape {FOLLOWPIN STRIPE} -status ROUTED
(B)editDelete -selected
CTSOPT-HOLD::
ROUTEOPT -setup::
ROUTEOPT-HOLD::
REPORT ANALYSIS
ROUTE OPT::SETUP
We can clearly observe that TNS/ALL VIO PATHS of both before and after changes.
[I] 1ST need to check reports, in that I have data path is too small. Just one buff only b/w
reg2reg.
i.e from ending of 1st table (arrival time). Where we get the CLK->Q from that it is data path.here
SLACK = -1.6925
placeopt_nov23 [Only soft for all macros in left side]
Feplace_blockagechange_nov25
In this block I use partial blockage 35% for all macros of left side..
placeopt_blkchng2small_dec6 enc
Inthis block I use to superate all macros of left side by 3parts and apply partial blockage for
35%.so 3 partial blockages in left side with 35%...and soft blockage b/w gap of top side 2 &3
rows.
set_interactive_constraint_modes [all_constraint_modes -active]
set_propagated_clock [all_clocks ]
report_timing
Icc2 command file http://icc.truevue.org/icc2/cmd
https://solvnet.synopsys.com/dow_retrieve/latest/icc2olh/Default.htm#ni/manpages/icc2n/NDM.html#NDM-029
A nice thing about get_property is that you can specify which MMMC view you want