pretty code

2026年10月12日 星期一

X3 國際版使用一天心得

在知道正確的字型設定後,目前用起來沒啥大問題。

昨天因為 X4 沒貨才退而求其次購買 X3,沒想到整體感覺還不錯,比我想像的好。

這也是我第一台白色的閱讀器,同樣尺寸下,黑色看起來有點像玩具?

除了字型外,我只把左右按鍵對調,電源鍵選擇短按,還有看書的字距與段距,其他都使用原始設定。

至少對我來說,應該沒有刷其他韌體的必要了。

另外,我從 Kindle 拿出來的圓體,試了兩個線上轉檔軟體都會失敗,一樣的字型直接丟到 Kobo 機器閱讀是沒有問題的。

2026/10/13 更新

羅技 R500 翻頁器,雖然 X3 可以認得,但無法連接成功。

2026年10月11日 星期日

水清魚讀月

記得剛入伍時,我們的內衣後面都會用黑色簽字筆寫些字做記號。

一開始,因為大四才組電腦,於是便用 K6-266 這樣的 CPU 名稱當標記,當時 AMD K6 只有 233 頻率,266 是超頻上去的,故應該不會有人跟我一樣?畢竟那時的主流是購買 Intel CPU。

後來看久了也覺得無聊,於是便用起了【水清魚讀月】這個名字,靈感應該是來自於當初天宇布袋戲的一個反派角色名稱,但因為這個原出處的詩句我很喜歡,故也顧不上壞人不壞人。

唸起來感覺就很有先天人的氣勢,但又不像一頁書那樣的霸氣外漏?

就像如果要幫我的書房取個名字,我應該會毫不猶豫使用【詩海石硯台】這個名字!

原來我也是個儒家門生呀?


2026/11/11 晚上更新

中午去了一趟三創,可惜的是熊老闆沒有 X4 國際版現貨!

有鑑於我就是要敗家,故還是購買了 X3 國際版與 Kobo Libra Colour。

也不知道是太久沒 Google 還是怎樣?沒有看到有哪一篇文章有清楚說明字型尺寸各自代表的意義?

最後終於在網友分享的字型中,知道了 3 個數字的代表意義。

比如說 48 48x64,就是對應這個線上轉檔軟體的這裡。


如果是用原生系統,行距 2.0,段距 1.50。

對應 IBM 鍵盤的小紅點,大概是這樣,我覺得是最適合老年人的閱讀字型大小。


跟今天購買的 Kobo Libra Colour 對比。


真搞不懂,到底是我沒認真找還是怎樣?幾行字加個圖片就能說清楚的事,居然一個也找不到?

2026/11/12 更新

昨天之所以要購買 Libra,不只是想要敗家而已,2023/06 購買的 Clara 2,10 次點擊翻頁中約莫有 3 ~ 4 次會觸發最近閱讀書籍,不然就是變選取,實在是很破壞讀書節奏。

當然還是可以再撐一下,但我就是要敗家呀XD

2026年10月7日 星期三

牽一髮而動全身

感覺沒完沒了?

客戶改 RTL,影響我原本 constraint,視情況我也可能會有問題!

我同事的項目更糟糕,跟 designer 彼此之間還會互相影響!

難怪 PD 同事快抓狂,工作時間都被壓縮了。

有比較好的方式來解決嗎?

坦白說我也不知道!

我只是個浪跡天涯的工程師呀XD

2026年10月3日 星期六

做人不要手賤

我可能有潔癖?

剛才在跟 Claude 討論一些問題,覺得 AI 講得很好,於是便想把它釘選起來。

後來又看到一個 project 的設定,感覺可以拿來歸類,於是便把它連結起來。

想想還是不要,想要把它刪掉,又怕會一起連動,故有先選擇 unpin。

沒想到刪了 project 後,還是被一起刪掉了。

辛苦了半小時的討論,現在都沒了。

先不論 AI 說得對不對,感覺現在工作很多東西,可以跟 Claude 討論了?至少也可以給我一些啟發。

2026/10/07 更新

詢問 Claude 的結果,原來正解要移出專案,我英文果然差呀,當初都沒注意到這個選項?

另外,目前已經可以從設定看到使用量,可惜的是只有百分比。

2026年9月24日 星期四

氣泡排序法

規矩,規矩,得以成方圓。

雖然已經快接近專案尾聲,但復盤自己的缺失還是很不錯的。

理論上在工作站應該要用 tmux 之類的工具,好讓自己工作方便,但因為自家工作站沒有這個工具,導致雖然客戶工作站有,但怕影響專案順暢度,故也未貿然改變自己的工作流程。

Q1. 當初真的用 tmux 會比較好嗎?

取而代之的是使用多個 Workspace,數了一下,我大概開了 12 個有。

應該要使用氣泡排序法概念,比如將重要已經跑起來的工作往右邊放,左邊放目前人正在執行的終端機,這樣比較清楚,甚麼時候可以驗收工作結果,還有哪些工作未完成。

總之,工作也要像進入心流一樣,假設可以如雲朵般絲滑,工作也會更輕鬆。

2026/10/03 更新

使用氣泡排序法還有個好處,將工作分左右歸類後,中間一定還會剩下幾個 Workspace 可用,當跟客戶開會時,臨時需要 review script,便可以清楚知道剛才開的終端機在哪個 Workspace,才不會一時找不到。

2026年9月19日 星期六

simulation 備忘

最近應該可以專心在這一塊,記錄一下避免忘記。

01. netlist simulation 時,除非 cell 有 power port,不然不要誤用帶 power port 的 Verilog,因為需要有電,buf 的 output 才不會 x,不確定是特殊 cell 還是通例,也許之後可以看有無 define 可以設定。

02. simulation 時,如果吐出一堆 ASSERT,比如說 IEEE package,xrun 可以在 dump Tcl 檔案裡面加上 assertion -off -vhdl -all 便可以關掉 ASSERT,simulation 速度也會加快。

03. top simulation 時,如果 file_list 檔案過多時,可能只是更改幾個檔案,比如將 memory 檔案從 fast_func 改成正常版本,有可能會發生 unresolved object,此時砍掉編譯暫存檔整個重來即可。

上面不確定是 xrun 參數有問題還是怎樣?也有可能跟之前 liborder 等問題類似?

2026/09/25 更新

現在都是使用 force 來 gen clock,因為我是全部打開開關,故在某個 clock 打開後,會印出一堆錯誤訊息增加測試時間,(正常在此階段不能使用 force,但客戶更改測試架構,故請我先用此方法驗證)。

雖然我已寫成 testarg 可以傳參數決定何時開啟關閉,但我的 script 可以一次跑全部 pattern 或依使用者輸入決定測試哪支 pattern,為了這個問題,我要將 script 大幅改寫才能動態改變開關。

不是做不到,但不值得在這裡投入過多心力,故我改將 pattern 一樣用類似 testarg 傳進我的 force Verilog 中,然後利用字串比對決定是否要開啟該 clock,沒想到就這樣引入臭蟲。

剛在測試這個星期第一次有機會跑的 pattern,沒想到 clock 不符預期,感覺就是我的 pattern 名稱有錯誤,因為懶得查 display 參數就直接印出,故得到一個很大的數字,原本以為這是 16 進位數字,於是便請 AI 直接幫我解析,沒想到 AI 居然還知道我講的是錯的?真是太意外了。

當初沒有想到 pattern 名稱會有哪麼多字,只宣告 256 bit,難怪會不符預期。


2026/09/27 更新

不常寫 Verilog 有時會反應不過來,今天在計算記憶體修復資訊,直接問 AI 比較快。


所以當我注入錯誤是 bit 5 時,我的 TCD 如下:

PinMap {
    SpareElement {
           RepairEnable : repair_en ;
           FuseMap[0] : repair_info[0];
           FuseMap[1] : repair_info[1];
           FuseMap[2] : repair_info[2];
           FuseMap[3] : repair_info[3];
           FuseMap[4] : repair_info[4];
    }
}

FuseMap[4:0] {
    ShiftedIO(Q[5]) : 5'b00101;
}

回到上面的 SpareElement,對應到那一段 bisr chain 就會是 001011,
也就是 bit0, bit1, bit3。 

2026/10/09 更新

真是受不了某家的 memory,每次一跑模擬就會吐出一堆 ERR,之所以會有這些 ERR,都是因為出現在已經不在 BIST 測試階段的訊號 unknown 導致,每次看了就是心累,還得多檢查第一個發生點是否發生在 BIST 之後。

雖然他有 define 可以關掉,但應該有另一個 define 決定你是為了 MBIST 還是 Function 做測試,這樣 Verilog Model 也好判斷。

2026/10/10 更新

翻了一下客戶工作站 Simvision 的文件,沒看到有什麼可以快速得到 instance 的方法。

雖然我可以用 Tessent 打開 netlist 下 command 得到我要的記憶體列表,但是兩邊 EDA 工具顯示的方式不同,再加上客戶使用 escaped identifier 的命名方式亦或是 generate 語法的鍋?

導致我無法無腦的將 Tessen 的斜線替換成點!

目前只有折衷的方式,先從 log 挑出錯誤行數中的字串,再用 sed 切出我要的 instance name,再補上我要的訊號名稱,再丟進我的 Tcl 檔案產生一個 add.tcl,最後在 Simvision 的 console  視窗 source 該檔案,我才能在 waveform 視窗看到我要觀察的訊號。


另外,之前在 Design Windows 直接打關鍵字搜尋貌似都不成功?但最近似乎又沒問題了?

馬的,需要花錢的 EDA 工具,比 GTKWave 還難用是怎樣?

2026年9月13日 星期日

top simulation

雖說沒辦法全心全意的準備 top simulation 環境,中間又一直去處理別的問題,但是從開始準備到最後完成,也花了我兩個星期時間。

找到相關 cell 或是 IP 或是需要 define macro 的都還算是小事。

真正困擾我的還是又遇到 primitive cell 找不到的問題!

這個專案一開始是使用 liborder 的方式解決,後來各個 block 也都可以比照辦理。

沒想到來到 top 問題又出來了?

後來同時做了三件事才算勉強解決這個問題:

1. 改用這個 project 的檔案。
2. 將這個有問題相關的 Verilog 檔案全部移到 file_list 的最上方。
3. 將先前編譯好的暫存檔全砍光重來。

第一個動作暫且不論,至少剛剛檢查的結果,兩邊檔案內容是一樣的。

我私心認為是第三個動作修復問題的,但我需要回朔第二個動作才能確認。

山河瘡痍,百廢待舉,孤臣無力,輾轉江湖。

我這天涯落魄客,又如何抽出時間確認呢?