pretty code

2026年5月1日 星期五

萬惡的 X

從 1 月開始,只要有換 SRAM,每次跑模擬時都有可能要重新找出失敗的原因。

有時候可能只是 top port 要設值,有時候可能是途徑上的 MUX 要加 enable 訊號。

又或是這個 SRAM Model 要加些 define 才能跑到正確的 code。

但最多時候都是 SRAM 本身的訊號哪裡沒控制好!

這次這個問題是我解最久的一次,大概解了快四天有,中間一度有先處理別的事情。

最後才發現是裡面一組 register 因為沒有 reset,導致 X 值無法復原。

坦白說找到 root cause 帶有一點幸運的成分,雖然我早就使用 iverilog 處理前置處理器的語法得到一個乾淨的 Verilog 檔案,但關於 Q 一直為 X 這件事卻是看不出個所以然。

最後想到去跟上一版可以過的 waveform 比較,雖然因為這次關掉某些功能導致 hierarchy 不一樣,不能在同樣的時間點來做比較,但在人工對齊 waveform 之後,還是能倆倆互相比較。

假設大家的時間點都一樣,只要 dump VCD,寫個程式來比較差異處即可,可惜在這裡不適用!

最後才在這次被關掉功能上的某個 reset port 上,在接近 0 秒的位置,似乎看到有一條突刺?

將其放大一看,原來有個 pulse 的動作,但我們這一版因為關掉該功能,故被 tied 1'b0。

試著將其用 force reset 後,果然幾千個錯誤少掉好幾百個了!

再來就簡單了,只要將所有的 SRAM 都比照辦理即可。

說是這樣說,但要得到所有 SRAM 的 path 也是得花點工夫。

這時就是要請出 grep sed Vim 三兄弟。

但最關鍵的一點是,如果某 sram 長這樣:

u_wrapper.data.\genbus[0].u_ram

設值時要這樣寫

force {u_wrapper.data.\genbus[0].u_ram.reset} 1

搞定收工。

唉,如果我有時間,我也想好好看一下 simulation 文件,確認是否有更好的方式來 debug 萬惡的 X。

無奈我這達達的馬蹄,又要達達的去解下一個問題了,不如歸去呀?

2026年4月25日 星期六

遺珠之憾

原本以為張宇好聽的歌都買得差不多了,沒想到居然還有我沒聽過的歌?

今天應該又買了 4 ~ 5 首有吧?

雖然要經歷一個星期沒有書桌以致無法使用筆電的日子,但還是趁著記憶猶新,光速拿出筆電上網購買。

我想在我不知道的角落,應該還有不少合我脾胃的歌存在吧?

我的心想靠近

昨天一整個下午又在跟 waveform 奮戰,好不容易寫好一個小工具,雖然 GUI 是請 AI 幫忙完成的,但也是辛苦了幾天,一寫完小工具,又要馬不停蹄地繼續解下一個問題,真是 boring 的生活。

本想 loop 聽萬芳的《我願意》,但一直被同事打斷,每次把耳機拿下,一講完話後戴回去,耳機就給我自動跳下一首歌,一整個破壞我的工作節奏。

無奈之下只好放棄聽音樂,不知為啥,看著波形思考的時候,就一直響起這段旋律,雖然我也買了不少張宇的歌,但我還真的不知道這首歌是什麼?Google 了一下,居然找不到答案,真是太讓我失望了。

雖然我可以用 YouTube 的聽聲辨歌,但畢竟在辦公室不好意思哼唱出來XD

早上突然想到乾脆問一下 AI 好了,果然 Claude Code 還是最可靠,原本以為 Gemini 在亂掰,但後來想到,訓練資料會不會是 Google 在竊聽某人唱歌?還真的跟歌詞非常相似,看起來就是不記得歌詞亂唱出來的?

原始的歌詞如下

我的心 像口井
枯等回頭的身影
聽見的 竟是冷冷經過的足音

下面分別是兩個 AI 的回答


2026年4月23日 星期四

雖然沒有養龍蝦

今天臨時有事請假一天,快中午從台北回來,便去家裡附近的商城吃午餐。

吃完後順便逛了一下書店,看了老半天沒有想買的。

勉強挑了兩本書來看,雖然本人沒有要養龍蝦,但看一下人家都拿龍蝦來幹嘛也不錯。

至於另一本陳浩基的書,希望可以讓 borning 的日子帶來一點不一樣的感覺。


2026/04/25 更新

好奇問了一下 AI,看他是否能猜出我住哪裡?

下面是 AI 給出的回答。

說真的,AI 到底有沒有思考能力還真不好說,但管他的,能幫忙做事的就是我兄弟XD

2026年4月22日 星期三

我終於可以看新聞了

年紀大了,不喜歡看手機,前幾天購買的 Pubook Mobile 又不能看 PTT!

害我好一陣子不知道最近新聞了,我個人習慣從八卦版看最近發生啥事XD

今天早上終於比較有時間做自己的事了,原本是直接透過 Device Info 內建的功能將 APK 提取出來,沒想到會遇到 INSTALL_FAILED_MISSING_SPLIT 錯誤,網路上查了一下,那是因為我提取出來的 APK 只包含本體,未包含其他部分。

還好這篇文章有給出解決方式,嘗試了一下,果然順利安裝成功。

從下圖可以看出,Device Info 只提取出單一 APK,針對 BePTT 我還需要其他 3 個才行。


下圖則是所有使用的指令。


下班回家,終於可以把手機丟一邊了。

2026年4月19日 星期日

一瀉千里

幹,開始新專案後,問題是層出不窮,整天都在忙一堆雜事,害我沒有時間靜下心來好好看書,為了快速解決問題,我都拿我這兩年的 Vim 功力以及 18 年來 UltraEdit 養成的習慣來做事,雖然不至於按方向鍵來移動游標,但也只是改用 ijkl 罷了,那種遊刃有餘按下 W 或是其他快速定位鍵的高手風範已經蕩然無存,更別說好不容易累積兩年的 Vim 功力早已經一瀉千里,被埋沒在問題的洪流之中。

於是我昨天做了一個決定,那就是要好好敗家,以修補我脆弱的老老心靈XD

本想買 Kobo Elipsa 2,但看網路似乎沒有變快多少,想來想去,還是買個 Pubook Mobile 減少我下班回家滑 PTT 造成的眼睛傷害!


本來在誠品現場試用有點想放棄購買,整隻機子卡頓到不行,但有可能被眾人摧殘過所以做不得準,再加上我就是要敗家,故雖然沒黑色我還是把它敗下去XD

果然,回家使用的感覺一切正常,但大概也跟我原本的海信 A5 速度差不多,沒有特別驚艷的感覺!

之前查資料時我可能是看錯,CPU 應該不是聯發科的,而是 Rockchip RK3576,反正跟海信 A5 差不多就夠我用了。

握在手上的感覺也不錯,目前使用到現在有幾個缺點:

1. 不能裝我有贊助的 BePTT,有空詢問一下作者,要再贊助我也沒問題,畢竟我也沒時間從頭自己寫一個。

2. Kobo App 幾秒鐘就閃爍一次,有空可能要接 ADB 看 log 才知道 Kobo App 在發什麼神經?

3. EInkBro 在 Play 商店找不到?不過,開啟快速模式 + Chrome 就夠我上網了,我也懶得再去找 APK 安裝了。

我老老的心靈,經過敗家之後,果然有點被安慰了XD

2026年4月13日 星期一

SHOKZ S803

新玩意,不過看網路上也是不能一直戴,一樣會傷耳朵,就是多一個選擇罷了。



據實測,旁人確實聽不到,但自己已經覺得很大聲了。

不過,這個牌子跟有些家一樣,提示音喜歡用 beep 聲,聽起來就不舒服,這樣的設計確實很糟。