pretty code

2026年3月28日 星期六

爛蘋果 x N

雖然已經將買了 300 多首的歌放到車子的隨身碟上,但不得不說,私心還是會有比較喜歡與比較不喜歡的。

前一陣子已經在手機播放軟體上建立了 《萬芳 Top 歌曲》,這樣我就可以隨心情切換藍牙或是 USB 裝置來聆聽。

雖說手機購買的 KMPlayer 不是很好用,但至少還是順利地建立起清單,沒想到想要在 iTunes 裡比照辦理,居然是如此地讓人心累!非常混亂的資料庫資訊,想要找首歌還真難,我需要視情況切換顯示方式好方便尋找。

好不容易建立起清單,回到清單列表一看傻眼,這是要我通靈嗎?真是顆爛蘋果無誤!


本想等到台灣可以購買 MacBook Neo 後,給蘋果一個機會,花個兩萬多塊嘗試一下蘋果系統也還可以接受,畢竟孩子的學習不能等XD

看到這樣的清單,瞬間沒了任何慾望,沒有底層的 FreeBSD 加持,蘋果跟屁沒啥兩樣,如果只是因為 FreeBSD,我去購買 Linux 電腦就好,要你蘋果作啥?

Today is not my day ...

天機一線牽

這麼說好了,我有 30 個 clock gating cell 要修改,我需要把 TE port 拉出到 block top 的某個 input。

不知道為啥,不論我是在 Synthesis 階段或是前面的 MBIST 階段,總是有 18 個無法順利 ECO 成功?

後來才發現原來 Tessent 對 bus 的訊號,只 assign bus[0] = scan_en。

至於 Synthesis 那段我就懶得回去確認 log 訊息了。

我能確定的是在這兩個階段,拉線都不會顯示錯誤,但我並沒有去檢查回傳值就是了。

我的 bus 是多 bit,且該段 RTL code 是在 for loop 的 generation block 裡面。

上面用語可能不精確,但我又不是 designer,意思到就好了。

總之,我也不知道是 EDA 的 bug 還是 Tessent 覺得這段 path 不應該被串成 scan chain,故這樣來改客戶的 RTL code?

詢問主管的結果,他也覺得應該都要被串起來才是!

這已經是我這個星期遇到的第 N 個 issue 了!

我也不想要在浮沙上築高塔,奈何這兩年多來,每天都已經很認真上班了,還是有看不完的文件!

我已經算是很會用多種方式與工具來加速我收斂問題了,但還是比不上問題產生的速度,偏偏這個時候就又需要回去慢慢翻閱文件並思考。

翻閱文件還算小事,但我家只有一個 license,很多時候,不是我想幹嘛就幹嘛!

這也造就了現在這座搖搖欲墬的象鼻塔,沒有王小石那座的可靠!

唉,我羨慕的生活應該要像是攜書彈劍走黃沙那般的自在!

一人,一書,一劍。

也許之後該考慮 send all 了。

這是只有我跟我老婆才知道的梗XD

2026年3月26日 星期四

槌丁扮盾丁

最近 PTT 有一篇文章在討論要讀電機還是資工系,看完之後才發現原來我還是太淺了,連寫電路跟線性代數有關都不知道!


現在的我,只敢說對暗黑2 重製版略懂略懂?

尤其是槌丁扮盾丁這塊。


上圖應該是舊畫面,衣服應該還是法甲謎團,就在一年多前也邊練邊吐來到 99 級

雖說以前的 NS 單機可以複製,但打不到的東西就是打不到!

紅門配裝

吉永之臉 + 15 攻速寶珠
龍皮甲謎團
馬拉的萬花筒
手工壓碎手套 + 偷命
無形 44 抗流亡渦漩盾
40 攻速 + 399 幻化悔恨
鴉霜 + 矮人
雷神腰
聖戰版 x 7
20 + 19 聖騎火炬
滿變毀符
7 % 高跑 + 全抗 5 x 8
+11 火炕 + 生命 x 2

副手 +2 祝槌戰召 + 45抗精神神聖小盾
日常打寶時是正手,只湊 75 高施,傷害 12 K

槌丁扮盾丁

開啟神聖之盾

敲敲敲

打完收工XD

2026年3月25日 星期三

回憶過去

人老了,總是會突然想起一些以前的事!

還好以前沒有什麼豐功偉業可回味?


剛剛無意間在硬碟隨便翻翻看到的,真懷念那一段每天寫自己的工具幫助日常工作的日子呀。

其實是快被客戶的 make sanity 搞瘋了,好幾天了都還沒修復是怎樣,害我到現在還不能自己推 code。

想要自己嘗試去修復它,坦白說最新 make build 的錯誤也是我自己修掉的,但針對這個 simulation 錯誤我還看不出來錯在哪裡?

不過以 Log 莫名奇妙的就斷在某行來看,系統應該是 crash 了?

配合他的 verilog 行為來看,感覺像是去讀 AI 模型然後在 memory 想要做些事?

嗯,然後我也不知道要怎麼修復了?

我要是那麼厲害,我就去 Google 了XD

雖然現在我也不喜歡 Google 就是了,Don't be evil 呀!

2026年3月24日 星期二

原來 EDA 大部分都是使用 C++ 開發

沒想到在 tinlans 大神的網站看到關於 EDA 的一些資訊。


這種需要速度以及 Linux 下的 GUI 應用,除了 Qt 還能用啥呢?

這樣想想使用 C++ 開發也很合理!

珍惜生命,遠離 C++?

2026年3月20日 星期五

Makefile

最近需要更改客戶的 Makefile,我才發現我以前真的不太懂 Makefile!

第一個我不知道的點是 receipe

receipe 指的就是在某 target 下,要執行的 shell command,也就是由 tabe 字元縮排的那些列。

all:
    @echo make all
    - do something

上面每一列都是單獨的指令,換句話說,每一列都會新起一個 shell 來執行(預設行為)。

我有一個需求類似下面這樣

all:
  ifeq ($(FLAG), xxx)
       $(eval FOLDER = 001)
       @cd $(FOLDER)
       ......
  else ifeq ($(FLAG), yyy)
       $(eval FOLDER = 002)
       @cd $(FOLDER)
       ......
  end

這段 code 是原本客戶的,我不太想大改它,只是把會變動的部分提取出來成為變數,剩下每段要做的 receipe 都一樣,雖然重複太多,但客戶應該比較喜歡這樣的修改。

為了讓每個 receipe 都能看到這個變數,就需要用 eval 的方式來設變數。

第二個我不知道的點是變數展開與環境變數間的優先性關係

FLAG ?= 0

ifneq ($(FLAG), 0)
    BUILD_OPTS += XXXX
endif 

上面這句其實有隱含假設環境變數 FLAG 也存在,就使用環境變數的值。

好死不死我的 bashrc 也宣告了一個同名的環境變數 FLAG。

於是便導致我 git push 後的檢查觸發行為跟別人不一樣,因為我的 FLAG 不等於 0。

不得不說,這些東西跟 AI 對話後,整個脈絡變得更清楚了。

 
我現在開始有點體會他說的話了。

下面是我跟 Claude Web 對話的一部分結果。


2026/03/20 洗完澡更新

剛剛才突然想到,如果跟 AI 討論《傷寒雜病論》會如何?


也許是時候跟他討論九陰真經了XD

2026年3月12日 星期四

Don't be evil

我實在不知道,申請 Android 開發人員為什麼要我上傳身分證或駕照?

想要申請刪除帳號,翻遍了整個網站,卻找不到申請的地方。

Google 在我心中快跟 Microsoft 劃上等號。

也許這個世界就只剩下 Linux 這塊淨土了?

以下圖片出自 Gemini Web