2015年10月27日 星期二

格言

  • 愚昧無知是一切痛苦之源。8月23日名言
  • 受苦的人,沒有悲觀的權利。一個受苦的人,如果悲觀了,就沒有了面對現實的勇氣,沒有了與苦難抗爭的力量,結果是他將受到更大的苦。
  • 祇有經歷過地獄磨難的人,才有建造天堂的力量。
  • 一段不幸的婚姻不是缺乏愛,而是缺乏友誼。
  • 沒有事實,祇有詮釋。
  • 常常談論自己的人,往往祇是為了隱藏自己。(《善惡的彼岸》-169)
  • 完全不談自己是一種甚為高貴的虛偽。(《人性,太人性的》)
  • 當心!他一沉思,就立即準備好了一個謊言。(一譯「他自省:他隨時準備要說謊。」)(《歡悅的智慧》-157)
  • 那不能殺死我的,使我更堅強。Was mich nicht umbringt, macht mich stärker.4月1日名言(《偶像的黃昏》)
  • 一個人知道自己為什麼而活,就可以忍受任何一種生活。
  • 道德有兩種:有獨立心而勇敢者曰貴族道德;謙遜而服從者曰奴隸道德。
  • 道德使人愚昧。
  • 高貴的靈魂,是自己尊敬自己。
  • 生活是一面鏡子,我們努力追求的第一件事,就是從中辨認出自己。
  • 最危險的健忘-剛開始他們忘記去愛別人,最後在他身上再也找不到值得去愛的地方了。(《曙光》-401)
  • 頑固不化比謊言更是真理的敵人。
  • 要破壞一件事,最刁鑽的辦法是:故意用歪理為這事辯護。
  • 「你要到女人那裡去嗎?別忘記帶上鞭子。」(《查拉圖斯特拉如是說》由年老的婦人所說,並不是尼采所說,老女人對年輕女人是常常心存嫉妒,同性相斥的)
  • 所有的殘忍都源於軟弱
  • 善良的天性比機智更令人愉快-約瑟夫阿迪生
  • 一九二八年,英國經濟學家凱因斯(JohnMaynardKeynes)說︰「自創世紀以來,人類將首度面對一個真正、永恆的問題--如何利用工作以外的自由與閒暇,過著喜悅、智慧與美好的生活。」這位經濟大師預測,金錢問題將會消失,代之而起的是這項挑戰︰如何睿智的善用新發現的閒暇,追求美好生活。

2015年10月12日 星期一

deliver linux variable to TCL

C shell script:
### c2tcl.csh ###

#!/bin/csh -f
set names = "0 1"
foreach name ($names)
    echo $name
    echo
    setenv abc $name
    liberate t.tcl | tee t.log
    mv t.log t_$name.log
end

TCL script:
### t.tcl ###
reset_defaults -version 16.1.2
set_var write_verilog_without_err_primitives $env(abc)
puts "$env(abc)"
printvars

執行:
source c2tcl.csh




環境變數(environment variables)
 TCL提供了一個事先就定義好的全域環境變數陣列,這個陣列叫做env。讀者可以將環境變數的名稱當成元素名稱來使用。換句話說,讀者可以使用變數名稱當做索引存取讀者想要存取的變數。下面的命令會印出PATH環境變數的內容:

puts "$env(PATH)"

讀者可以操作一般的變數的方式來操作環境變數陣列。舉例來說,讀者可以使用下面的命令加入一個新的目錄到PATH中:

set env(PATH): "$env(PATH):/usr/sbin"

這裡需要注意的是,環境變數的任何修改都不會影響到原始行程(舉例來說,讀者用來啟動TCL script的shell就是TCL script原始行程)的環境變數的內容。任何使用exec命令所建立出來的script行程,將會繼承修改過後的所有環境變數。









source $::env(golden_area)/common_settings/common_settings.tcl

2015年10月11日 星期日

散戶勝經-書摘

1. 選擇一隻好股票: 有資產 產品是業界第一名  老闆專心本業的好公司
                                  在公司業績不好或市場超跌時買進
2. 投資大師巴菲特說:不要把雞蛋放在一個籃子裡
    馬克吐溫說:把所有的雞蛋放在同一個籃子裡  然後小心的看好它
3. 選擇股票的時候第一個考量不是會不會賺  而是這支股票應該不會讓我賠
4. 郭大俠選股:
1. 只選上市股票,數千支變900支

管理越嚴格、資料越透明,這個企業的穩定性及安全性就越高,政府當局對上市公司有較嚴格的規定,即使規定嚴格,三不五時還發生倒閉掏空事件,管理不完善的上櫃或未上市公司,情況就更複雜。散戶投資股票,安全永遠是第一考量,所以我只選擇900家上市公司購買。

2. 只選擇明年有董監事改選的股票,900支變300支

董堅事三年一選,所以每年都有1/3的股票會改選,明年會改選,就表示改選前董監事不敢隨便賣股票,市場派也是虎視眈眈,股價當然易漲難跌。

3. 把不容易發生董監事改選行情的公司淘汰,300支變20支

下面這些公司,董監改選行情發生的機會比較低,不需要去傷腦筋研究。

* 曾經發生過經營權爭奪的公司,因為股權通常較穩定,故再發生的機會不大。

* 大股東是政府機關,民不與官鬥,故不易有改選行情。

* 家族企業,又用關係企業交叉持股,這種萬年公司最好少碰為妙。

* 公司資產欠佳,形象欠佳,本業獲利欠佳。

* 放棄五元以下的雞蛋水餃股。

* 景氣及股價正位於高檔,沒有被偷襲的空間。

4. 20支選5支

選 出來的20支都是不錯的公司,我們真正要做的功課,就是努力仔細的研究這20支股票。把他們過去的新聞及各種報表找出來,然後逐項分析,有疑慮的就放棄, 最後找出最佳的五家公司。這五家公司都必須是進可攻退可守,有漲100%的機會,萬一碰到不景氣,也有比定存好的現金股利可領,最重要的是當然也決不會倒 閉。

5. 最後的選擇不是由人決定。

5 支選2支就沒有什麼技術問題,當你下單買到其中的2支後,你就會自然特別關心他們,就好像我的老丈母娘看女婿一樣,越看是越中意。這時股價如果下跌,對你 來說不是損失,而是撿便宜的好機會。怕就怕你一買就漲,股價迅速一飛沖天,由於持股尚未建立,你也不願意追漲,今年的金雞母大概就飛掉了。

如 何選擇一支好股票,是股票投資由理論進入實務的開始,也是將來能否獲利的關鍵。雖然投資股票的獲利率通常較其他投資工具要高,但對於大部份不喜歡做功課的 散戶來說,虧損的風險相對反而更大。如果你已經盡了力,但還是選不出能獲利的好股票,不妨改以定存或債券來理財,也是一種不錯的投資方式,畢竟股票投資千 變萬化又風險難測,也不是所有人都適合的理財方法。






































5. 融卷大增時開始分批賣  融資斷頭時開始分批買

2015年10月7日 星期三

Analysis passed rate for comparison results (compare_liberty)

How to use: perl failed_analysis.pl cl_NCX_vs_SIS_cycle_1_timing.rpt

Perl Script:
#!/usr/local/bin/perl
$FILE_NAME = $ARGV[0];

$pass_count = 0;
$fail_count = 0;

open(SearchFile,"<$FILE_NAME");
while(<SearchFile>){
chop $_;
@ary=split(" ",$_);
        if ($ary[0] eq "Cell:") {
        }
        if ($ary[0] eq "Table:") {
                $type = $ary[1] ;}
        if ($ary[0] eq "Slew" && $ary[1] eq "Load") {
                $sweep_count = 0;
                }
## Count for Slew
if ($type eq "slew") {
        if ($sweep_count > 1 && $sweep_count < 51) {
                if ($ary[7] eq "pass") {
                        $slew_pass_count[$sweep_count-1] ++; }
                if ($ary[7] eq "fail") {
                        $slew_fail_count[$sweep_count-1] ++; }
                }
}
## Count for Delay
if ($type eq "delay") {
        if ($sweep_count > 1 && $sweep_count < 51) {
                if ($ary[7] eq "pass") {
                        $delay_pass_count[$sweep_count-1] ++; }
                if ($ary[7] eq "fail") {
                        $delay_fail_count[$sweep_count-1] ++; }
                }
}
## Count for slew + delay
        if ($sweep_count > 1 && $sweep_count < 51) {
                if ($ary[7] eq "pass") {
                        #print "sweep_count is $sweep_count";
                        $pass_count[$sweep_count-1] ++; }
                if ($ary[7] eq "fail") {
                        #print "sweep_count is $sweep_count";
                        $fail_count[$sweep_count-1] ++; }
}
$sweep_count ++ ;
}

## print out analysis distribution results ##
## Slew
for ($i=1; $i<50; $i++) {
        $slew_pass_rate[$i] = (($slew_pass_count[$i] / ($slew_pass_count[$i] + $slew_fail_count[$i])) * 100) ;
                        }
print "Slew passed rate table \n ******************** \n";

for ($j=1; $j<8; $j++) {
        for ($k=1; $k<8; $k++) {
                $slew_dig_0=sprintf("%.2f",$slew_pass_rate[($j-1)*7+$k]);
                $slew_dig=$slew_dig_0.'%';
                printf "%-10s" , $slew_dig;}
                print "\n";}
## Delay
for ($i=1; $i<50; $i++) {
        $delay_pass_rate[$i] = (($delay_pass_count[$i] / ($delay_pass_count[$i] + $delay_fail_count[$i])) * 100) ;
                        }
print "\n \n Delay passed rate table \n ******************** \n";
for ($j=1; $j<8; $j++) {
        for ($k=1; $k<8; $k++) {
                $delay_dig_0=sprintf("%.2f",$delay_pass_rate[($j-1)*7+$k]);
                $delay_dig=$delay_dig_0.'%';
                printf "%-10s" , $delay_dig;}
                print "\n";}
## Total
for ($i=1; $i<50; $i++) {
        $pass_rate[$i] = (($pass_count[$i] / ($pass_count[$i] + $fail_count[$i])) * 100) ;
                        }
print "\n \n Slew+Delay passed rate table \n ******************** \n";
for ($j=1; $j<8; $j++) {
        for ($k=1; $k<8; $k++) {
                $total_dig_0=sprintf("%.2f",$pass_rate[($j-1)*7+$k]);
                $total_dig=$total_dig_0.'%';
                printf "%-10s" , $total_dig;}
                print "\n";}


Results:
amsoptr24:/remote/amscae35/chihwang/MTK>perl failed_analysis.pl cl_NCX_vs_SIS_cycle_1_timing.rpt
Slew passed rate table
 ********************
100.00%   100.00%   100.00%   100.00%   100.00%   100.00%   100.00%
100.00%   100.00%   100.00%   100.00%   100.00%   100.00%   100.00%
100.00%   100.00%   100.00%   100.00%   98.76%    97.72%    100.00%
100.00%   100.00%   100.00%   100.00%   100.00%   99.17%    98.96%  
100.00%   100.00%   100.00%   100.00%   100.00%   99.79%    97.52%  
100.00%   100.00%   100.00%   100.00%   100.00%   100.00%   98.34%  
99.59%    99.79%    100.00%   100.00%   100.00%   100.00%   99.17%  


 Delay passed rate table
 ********************
99.59%    99.59%    99.59%    99.59%    99.59%    99.59%    86.54%  
99.59%    99.59%    99.59%    99.59%    99.59%    99.59%    86.54%  
99.59%    99.59%    99.59%    99.59%    97.93%    99.59%    86.54%  
99.59%    99.59%    99.59%    99.59%    99.59%    99.59%    85.30%  
99.59%    99.59%    99.59%    99.59%    99.59%    100.00%   85.71%  
100.00%   100.00%   100.00%   100.00%   100.00%   100.00%   84.89%  
100.00%   98.34%    100.00%   100.00%   100.00%   100.00%   85.06%  


 Slew+Delay passed rate table
 ********************
99.79%    99.79%    99.79%    99.79%    99.79%    99.79%    93.27%  
99.79%    99.79%    99.79%    99.79%    99.79%    99.79%    93.27%  
99.79%    99.79%    99.79%    99.79%    98.34%    98.65%    93.27%  
99.79%    99.79%    99.79%    99.79%    99.79%    99.38%    92.13%  
99.79%    99.79%    99.79%    99.79%    99.79%    99.90%    91.61%  
100.00%   100.00%   100.00%   100.00%   100.00%   100.00%   91.61%  
99.79%    99.07%    100.00%   100.00%   100.00%   100.00%   92.12%    

2015年10月2日 星期五

grep and sum up SIS+ChildTime of report_sim_stat by awk

grep ' statistical_setup__' timing_report.txt | awk -f cal.awk

cal.awk:
BEGIN {
sum = 0;
}
{
printf("%f\n", $2+$3);
sum = sum + $2 + $3;
}
END {
printf("\nSum = %f\n", sum);
}

標籤