pretty code

2025年2月26日 星期三

netlist_treeview

沒想到我的 netlist_treeview 還有隱藏版功能?

顧名思義,我這支 tcl 程式主要目的是用來瀏覽 netlist 用,但 module 或是 instance 的 regex 語法不管是 RTL code or netlist 其實都是一樣,故他其實也是可以開啟 RTL code 無誤XD

目前只有一個問題,我的 instance regex 語法本來就會避開單行註解,故這部分沒有問題,不過當 instance 是在多行註解中,之前 parser 為了快速處理,連我另一支用 Python 寫的 netlist parser 處理單行的機制都沒有,故我沒辦法避開這樣的情形。

查了一下 Standard 2005,還好他不允許巢狀註解,故要快速處理就很方便了。


順便查了一下 Standard C11,同樣也是不允許巢狀註解。


剛好想到為什麼之前買的 C11 這麼便宜?原來有這樣的疑問不只我一個,我們可以在這個討論串找到解答。

簡單來說,INCITS/ISO/IEC 9899-2012 是美國內部採用的標準,所以賣得比較便宜,當初不知標準險惡,以為台幣兩千是正常的(我以為這樣已經很貴了XD),直到最近買了兩份 IEEE Standard 噴了兩萬,我才知道以前的我還是太嫩了XD

2025/02/26 更新

看似簡單的東西,沒想到也會犯下低級錯誤,還好只花了幾分鐘就想到了XD

set is_multi_comment 0

if {[string first "*/" $line] != -1} {
    set is_multi_comment 0
} elseif {[string first "/*" $line] != -1} {
    set is_multi_comment 1
} elseif {$is_multi_comment == 1} {
    # do nothing
}

不小心把最後一個 elseif 放在第一行,故永遠不會脫離。

另外,下午也開始嘗試處理 clock tracing,果然跟我想的一樣麻煩。

不先規劃好遞迴中止條件,也沒先歸納出 clock path 的一些態樣,真的很難把程式寫好。

還好我不趕時間XD

2025年2月23日 星期日

升降桌的隱藏用途

最近常在 IKEA 買椅子,好坐的大概都被我買回家了XD

除了 Aeron 沒買過,逛了那麼多家的椅子專賣店,感覺似乎背後都是差不多的台灣工廠製造?我覺得除了專業客製外,其實很難找到完全合身的電腦椅。

以前也曾在大安公園附近的一家專賣店試過 Aeron,可能那張椅子是老闆自己的,不是要拿來試坐的,故也不覺得好坐。

其實 IKEA 的椅子不算難組,最麻煩的地方就是坐墊跟椅背結合的時候,這時如果家裡有張升降桌,所有問題都可以迎刃而解,不論椅背高度都可以調整升降桌來配合組裝!


除了椅子之外,又買了個零錢包,記錄一下尺寸,以後才知道要買多大的。

12 x 9 x 2

2025年2月21日 星期五

2025 week 08 新玩意

01. bash script pointer to variable

有時候,我們就是需要變數的變數,原來只要像下面這樣,就可以達到此目的。

不論是一般變數或是陣列都可以用。


02. bash script in EDA world

今天在試 Tessent run_synthesis command 時,發現它產生出來的 script 居然也是 bash script 而不是 csh script。

這是否意味著,只能用 C Shell 跑 EDA 工具的都市傳說早就已經不復存在?

坦白說,bash script 還是比較好用!

2025年2月18日 星期二

gtkwave configuration

因為沒有 license 的關係,故最近都是用 iverilog + gtkwave 跑 simulation。

可能之前就是用這樣的 solution 來學習 Verilog,故我本身還蠻習慣的,我甚至覺得 gtkwave 還比 nWave 好用?

不過預設的 GUI 設定不是很好用,每次開啟都要重新指定一次,這些設定也不會儲存在 .gtkw 的波形訊號設定檔中。

我們可以用 man gtkwaverc 來看有哪些參數可以指定,並將想要的參數儲存在 ~/.gtkwaverc 的檔案中。


不過,Windows 下似乎不起作用?

改天再來看看 source code 好了。

2025/02/19 更新

Windows 檔名需用 gtkwave.ini

如果要指定字型,waves 一定要比 signals 大。

fontname_signals Monospace 12
fontname_waves Monospace 10

2025年2月17日 星期一

The pointer in EDA flow

EDA 世界中,一些 command 拿到的變數,我們可以把他想成是一個指向 object 的 pointer。

因此,如果直接用 puts command 印出該變數,我們只會得到一個類似指標的位置。

DC 可以使用 get_object_name 得到字串。

Tessent 則是使用 get_name_list 得到字串。

2025年2月16日 星期日

Lenovo TrackPoint II 小紅點鍵盤

因為暗黑 2 聖騎士已經升到 99,需要在書桌玩遊戲的機會也不多了,拿掉外接的 HDMI 線後,我的螢幕就只剩三條線了:

01. 電源線
02. DP 線連到筆電
03. 外接 Lenovo TrackPoint I 小紅點鍵盤(2021/06 購入,NT 2680)

看來還是只能購買 2 代藍芽版了XD

Amazon.com 價錢是 USD 107.1,如果要加快運送速度,大概要再噴個台幣 1500 多。

想想並沒有那麼急,就走一般運送方式就好。

這台已經是 4 年前多的產品了,好像也沒有出下一代了?

台灣也沒進口,露天看到有人賣 4000,坦白說也不貴,但已經下單了就懶得改。

後來又看到有人出機械鍵盤版,之後聯想不出後,我可能也只能選這個了。

不過真的走到這一步,我應該還是不會買,機械鍵盤根本是邪魔歪道,傷敵一千也會自傷八百。

2025/02/26 更新

昨天下班已經收到包裹了,還好沒多花錢加速運送,原來出貨賣家在日本也是有好處的,大概 9 天就收到貨了。

拿到的第一個感想就是好重,比我現在的有線鍵盤重了不少,改天開始用新鍵盤後再來更新。

2025/02/27 更新

這支鍵盤不知道為什麼中間整塊稍微有點浮?不影響打字就算了,看了一下背面是 2024/10 製造。

整體來說很明顯的比有線鍵盤大了一圈。


FN + DEL 應該是藍芽配對。

下午試用的結果,因為滑鼠左右鍵比較淺,沒有前一支的突出感,感覺不太好分辨是否有按下滑鼠左右鍵。

整體來說,目前無線鍵盤試用的感覺就只有無線這個優點而已。

2025/03/03 更新

今天把有線鍵盤拿去辦公室了,原本快 20 年前買的 SK-8835 就只能功成身退了!其實還很好用,但目前在 Windows 10 下會有個問題,如果從休眠狀態回來原本禁用的 touch panel 又會被啟用,每次都要自己手動關閉。