pretty code

2026年2月3日 星期二

前人的 Code 沒事不要改它

雖然這只是江湖傳說,但今天居然是靠這招解決問題就是了。

起頭是我需要在客戶的工作站加上一個自動化功能,產生可以跑 simulation 的 file_list。

原本的 command 會因為加了自己的 design 後,產生不出本來的 file_list,雖然我可以很容易的用 find 等技巧產生所有的清單。

但不知是我對 SytemVerilog 不熟還是怎樣?當它有 include 別的檔案時,檔案的順序性就變得很重要,不然 xrun 不開心就會報錯。

本來的想法是分開兩個 file_list,至少 before 前的 file_list 的順序是 OK 的,後面重複的,我想讓他直接以第 2 個為主就好,但是 xrun 就會產生 E,DUPIDN 的錯誤,這個錯誤也不是 -allowredefinition 可以解決的?

問了一下同事,才知道他的客戶都是把所有的檔案都展開在一個 file_list 中。

說也奇怪,簡單寫個 Tcl 比照辦理,E,DUPIDN 的錯誤就這樣蒸發了XD

改天有空,我要來好好研究一下,不然我今晚會好奇的睡不著覺,Google 雖然可惡,但應該也有人有發生過這種問題,我應該可以找到網頁才是?

2026/02/03 更新

昨天沒有睡好,腦袋無法思考,不過還是找了幾個符合我預期的答案。

這個是 Quartus 的說明,看起來順序是重要的。


這個則是 Gemini 的回答。



如果 AI 的建議為 true,我想這也是為什麼 -v 參數存在的原因,但我印象中這招似乎不是萬用,改天再來試試?

我想答案應該還是在 SystemVerilog 的規格書中,不確定是否跟 Verilog 一樣要錢?當然我可以很容易的在外國大學教授的網頁中找到 PDF 檔案,但可以花錢的我還是會花錢,除了自己貧窮買不起外XD

但是之前不知道要錢的已經下載過的檔案就不管它了,誰叫科學界還是 ISO 界為什麼那麼死要錢,我想這很大程度的限制了資訊流通,又不是每個有興趣的人都是在學校或業界,可以擁有帳號免費下載。

這就是我為什麼喜歡 Linux 以及 Open Source 的原因,好東西不就是要讓人知道?

先了解到這裡就夠了,知識往往不是一蹴可及的事,不用急。

2026/02/03 晚上更新

還是用了些方式找到 Spec 來驗證,我想這應該可以解釋順序的重要性了吧!

沒有留言: