2014年12月16日 星期二

Get some specific items from .mt* of NCX

注意事項:
1. perl g.pl 49 <-- 帶入.mt*內重複的次數



2. 更改search_num/search_words
example 1:
$search_num = 1;
$search_words[0] = "t_en_trip_incap1";


example 2:
$search_num = 3;
$search_words[0] = "cin__din__hl_v0"; 
$search_words[1] = "cin__din__hl_v1";
$search_words[2] = "cin__din__hl_q";


 


程式主體:
#!/usr/local/bin/perl


#if ( $#ARGV < 0 ) {
# print "+=============================================+\n";
# print "| Usage : extract.pl file_type |\n";
# print "| file_type : 1 or 2 |\n";
# print "| 1 : Separated lines |\n";
# print "| 2 : Single line |\n";
# print "| |\n";
# print "+=============================================+\n";
# die "\n";
#}


## CQHLBNCLKX4_cE_nonprop_list CQHLBNCLKX4_cE_prop_list CQHLBNCLKX4_cT_nonprop_list CQHLBNCLKX4_cT_prop_list


$index_number = $ARGV[0];
$file_list_name = "2";
open(FILE_LIST, "$file_list_name") || die "Can not open the file : $file_list_name \n";
@file_name = <FILE_LIST>;
close(FILE_LIST);


$search_num = 1;
@search_words = ();
# $search_words[0] = "t_en_trip_incap1";
# $search_words[1] = "t_en_trip_incap2";
# $search_words[2] = "nc_incap_en";
#$search_words[0] = "cin__din__hl_v0";
#$search_words[1] = "cin__din__hl_v1";
#$search_words[2] = "cin__din__hl_q";
$search_words[0] = "nc_intg_i_din";


%search_result;


open(OUTPUT, ">CQHFD2MEQX1_pTI.txt") || die "Can not open the file : hash.db \n";


foreach $file (@file_name) {
open(TEMFILE, ">temp.txt") || die "Can not open the file : temp.txt \n";
chomp($file);
s/alter#/alter# /g;
open(MT0_FILE, "$file") || die "Can not open the file : $file \n";
@mt0_file = <MT0_FILE>;
close(MT0_FILE);
#print OUTPUT "$file \n";



####### create a new file from "index"
$write_new_file=0;
foreach $line (@mt0_file) {
chomp($line);
@array01=split(" ",$line);
if ($array01[0] eq "index") { $write_new_file=1;}
if ($write_new_file==1) { print TEMFILE $line ;}
}
close(TEMFILE);
rename ("temp.txt","searching.txt");


open(SearchFile,"<searching.txt");
while(<SearchFile>){
chop $_;
@ary=split(" ",$_);
for ($i=0; $i<1000; $i++) {
for ($k=0; $k<$search_num; $k++) {
if ($ary[$i] eq $search_words[$k]){ $search_words_location[$k]=$i;
print "$search_words[$k] is located in $i \n"}
}
if ($ary[$i] eq "alter#") {$end_of_para=$i; $end_of_loop=1;
print "end_of_para is located in $i \n"}
#if ($end_of_loop==1) {last;}
}
}
close (SearchFile);



## K loop for the number of searching items
for ($k=0; $k<$search_num; $k++) {
for ($j=0; $j<=$index_number; $j++) {
if ($j==0){$target_number= $search_words_location[$k]}
unless ($j==0) {$target_number= $search_words_location[$k] + ($j*$end_of_para+$j);}
print "$ary[$target_number]"." ";
print OUTPUT "$ary[$target_number]". " ";
}
print "\n";
print OUTPUT "\n";
}}
close(OUTPUT);


 


2014年11月19日 星期三

get specific item from deck.mt0

#!/usr/local/bin/perl


$dirname = "/remote/amscae35/chihwang/Toshiba2/SIS/C7LBPCLKX4H_hs/runtime/spice/C7LBPCLKX4H/hold_hbm__EN__hl__CP__lh__ACQ_1.sif_0/1";
opendir(DIR, $dirname) or die "can't opendir $dirname: $!";
while (defined($file = readdir(DIR))) {
$dut = $dirname."/".$file;
## print $dut."\n";
open(h1, "<$dut");
open(h2, ">temp.cir");
while(<h1>){
chop $_;
#print h2 $_;
#print h2 "\n";
@ary=split(" ",$_);
if($ary[0] eq "1.0000000000"){
print $dut."\n";
print $ary[24]."\n" ;}
}
}
closedir(DIR);


2014年11月5日 星期三

VI 技巧

http://linux.vbird.org/linux_basic/0310vi.php#vim

1.提高搜尋效率

/欲搜尋字串

:set hlsearch

========================================================

2.重複輸入字串

在輸入模式中(INSERT mode)

如果你已經輸入了1234567

下一行也一樣的

當你輸入123時,按下Ctrl+N

vim會幫你完成剩下的

========================================================

3.重複動作

關鍵字:記錄宏

一般模式中按qa (a為紀錄器變號)

此時你會進入recording mode

當你完成動作後,再按一次q

紀錄的動作就完成

欲重複動作只要按@a

如果要重複100次

在一般模式下輸入 100@a

4. copy整個區塊
v or V 圈住要拷貝的區塊
y : yank住此區塊
p : 貼上

4. 區塊選擇(Visual Block)
區塊選擇的按鍵意義
v 字元選擇,會將游標經過的地方反白選擇!
V 列選擇,會將游標經過的列反白選擇!
[Ctrl]+v 區塊選擇,可以用長方形的方式選擇資料
y 將反白的地方複製起來
d 將反白的地方刪除掉
p 將剛剛複製的區塊,在游標所在處貼上!

5.檢查是否有特殊字元隱藏在內文
: set list

Help to check if there has space in lines

6. 『分割視窗』或者是『凍結視窗』
在指令列模式輸入『:sp {filename}』

多視窗情況下的按鍵功能
:sp [filename]開啟一個新視窗,如果有加 filename, 表示在新視窗開啟一個新檔案,否則表示兩個視窗為同一個檔案內容(同步顯示)。
[ctrl]+w+ j
[ctrl]+w+↓
按鍵的按法是:先按下 [ctrl] 不放, 再按下 w 後放開所有的按鍵,然後再按下 j (或向下方向鍵),則游標可移動到下方的視窗。
[ctrl]+w+ k
[ctrl]+w+↑
同上,不過游標移動到上面的視窗。
[ctrl]+w+ q其實就是 :q 結束離開啦! 舉例來說,如果我想要結束下方的視窗,那麼利用 [ctrl]+w+↓ 移動到下方視窗後,按下 :q 即可離開, 也可以按下 [ctrl]+w+q 啊!
7. 指令/參數/檔名的補全功能
組合按鈕補齊的內容
[ctrl]+x -> [ctrl]+n透過目前正在編輯的這個『檔案的內容文字』作為關鍵字,予以補齊
[ctrl]+x -> [ctrl]+f以當前目錄內的『檔名』作為關鍵字,予以補齊
[ctrl]+x -> [ctrl]+o以副檔名作為語法補充,以 vim 內建的關鍵字,予以補齊

8.編輯多個檔案
方法1:
先 vim file1 第一個檔案   再下 :sp file2 開啟第二個檔案
可以用 ctrl+w 來切換

方法2:
vim -p file1 file2
:tabn 或 :tabp 切換

方法3:
用 vim -O file1 file2 垂直打開
用 ctrl+w 來切換

方法4:
用 vim -o file1 file2 水平打開
用 ctrl+w 來切換


2014年10月28日 星期二

Zero out negative internal power

#===============================================================================
# Zero out negative internal power
#===============================================================================


enable_api pub


proc sis_proc_zero_out_negative_power {LIB} {


log_info "Zero out negative power"

foreach cellid [pub::get_obj_list $LIB type cell] {
set no_def_pins {}
log_info "Working on cell [pub::get_obj_name $cellid]"
foreach pinid [pub::get_obj_list $cellid type pin] {
set pintype [pub::get_obj_attr $pinid direction]
log_info "Working on $pintype pin [pub::get_obj_name $pinid]"
set flag 0
foreach power_block [pub::get_obj_list $pinid type internal_power] {
set when_cond [pub::get_obj_attr $power_block when foobar]
foreach p_type {rise_power fall_power} {
foreach power_arc [pub::get_obj_list $power_block type $p_type] {
set target_values_id [pub::get_obj_list $power_arc type values]
set target_values [pub::get_obj_attr $power_arc values]
set complete_new_vector ""
foreach check_values $target_values {
set new_vector ""
foreach check_single_values $check_values {
#log_info "check_single_values is $check_single_values"
if {$check_single_values < 0} {
set check_single_values "0.0000000"
}
lappend new_vector $check_single_values
}
lappend complete_new_vector $new_vector
}
pub::set_obj_attr $power_arc [list values $complete_new_vector]
}}
}
}
}
}


set LIB [pub::read_model -liberty ss_0.945v_0.945v_1.65v_1.65v_-30c_cmax_-30c.lib]
sis_proc_zero_out_negative_power $LIB
set tmp [pub::write_model $LIB ss_0.945v_0.945v_1.65v_1.65v_-30c_cmax_-30c.lib_zero]


 


2014年10月23日 星期四

Adding contents into file

exec mv my_library/control/R_LATS_PARAM2_SET.inst my_library/control/R_LATS_PARAM2_SET.inst.org

exec sed "/add_function Q IQ/ r R_LATS_PARAM2_SET.add" my_library/control/R_LATS_PARAM2_SET.inst.org > my_library/control/R_LATS_PARAM2_SET.inst



R_LATS_PARAM2_SET.add

# add
add_switching_set {CLK CLKn}
add_switching_set {G Gn}
add_forbidden_state {!(CLK^CLKn)}
add_forbidden_state {!(G^Gn)}

2014年9月5日 星期五

麥卡錫教我的思考武器

If all you have is a hammer, everything looks like a nail.


不要煩惱:有時間煩惱不如花時間思考
煩惱:已找不出答案為前提的假裝思考
思考:以能找出答案為前提有建設性的真正思考


2014年8月31日 星期日

選股

1=台股有2600支股,上市股,上櫃股,
新手應先碰觸台灣100大權值成份股的股票
http://justdj.fbs.com.tw/z/zm/zmd/zmdb.djhtm

2=想了解個股的股價的投資價值,請善用
(台灣證券交易所)查詢個股(股價的價值)的網站
http://www.twse.com.tw/ch/trading/exchange/BWIBBU/BWIBBU.php
..套入年月與股票代碼,點查詢,出現(本益比)(殖利率)(股價淨值比)
..收盤價天天變,季報1年變4次,股利年年變,So,3個指標就天天變
..配股/股利>30%不碰,股價難填權,股數膨脹惡化'本益比'殖利率數據
便宜的股價=(本益比<15)+(殖利率>6.6%)+(淨值比<1.5 ),
合理的股價=(本益比<20)+(殖利率>5.0%)+(淨值比<2.0 ),
昂貴的股價=(本益比<30)+(殖利率>3.3%)+(淨值比<3.5 ),

3=想了解個股的股性與基本面
小型飆股=大賺大虧=股本小=成交量少,股價暴漲暴跌,1周見漲停跌停
中型飆股=中賺中虧=股本>百億=成交量ok,股價漲跌適度,半年見漲停跌停
大型飆股=小賺小虧=股本>2百億=成交量大,股價走勢牛皮,少見漲停跌停
請善用含五個指標的捷徑網站(在網址上更換股票代碼即可)
http://jsjustweb.jihsun.com.tw/z/zc/zca/zca_2412.djhtm
--它連接證交所的3個指標: (本益比) (殖利率) (股價淨值比)
--有指標:(股本)大小,當日收盤價,成交量,(股利)這7年的配息+配股資訊,

4=投資的配置可考慮與台股組合同步
電子55%+傳產40%+金融15%
買3支股=電子1+傳產1+金融1
買5支股=電子2+傳產2+金融1
買8支股=電子3+傳產3+金融2

5=F股問題多,
A.勞保、勞退基金禁買小型股和F開頭的股票
B.購買F股的投資人需填寫<風險預告書><買賣同意書>
C.台灣上市櫃公司財報是毎股票面10元,計算每股純益
F股毎股票面幾元? 它以多少股數來發行股票? 每股純益不同於台灣
D.財報審查監理部分, 財報及每股純益的可信度??
台灣上市上櫃公司的財報是(季報=實地核閱)(年報=實地查核簽證)
F股財報原來是(形式財報)>現在是抽樣F股公司作(實地訪談財報)
http://www.appledaily.com.tw/realtimenews/article/new/20140424/385586/
http://money.chinatimes.com/news/news-content.aspx?id=20140424003640&cid=1204
http://www.cmoney.tw/notes/note-detail.aspx?nid=11416


2014年3月23日 星期日

License issue skill

清空home目錄下.flexlm的內容


lmutil lmstat -a > lic.txt  列出所有license servers 的資訊


lmstat -a 列出license features


Sun Grid




%> qconf -sql   列出所有的queue






 
%> qsub -cwd -q as5u7_i192.q run_script.sh   透過queue丟jobs




標籤