既然是回去的第一天,不買罐咖啡給自己說不過去,但該解決的事還是得解決。
查了一個星期多的訊號後,個人猜測失敗原因是因為不能滿足文件要求,如果要一個一個訊號自己慢慢初始化不太實際,也不能一股腦用 force 和 release 給足訊號,於是這兩天便先往下一階段邁進。
坦白說要用人工重新拉線很容易寫錯,即使對 Vim 略懂略懂的我,還是覺得太花時間了!
昨天趁著中午及下午上班後,簡單寫個小程式,可以幫我宣告 wire、增加註解以及加上一個 MUX。
雖然可以做到上述的事,但一個下午試用的結果,我的函數參數增加到 9 個,即使我呼叫 add_mux 的程式也是使用 sed parse 出 initialize instance 的 pin 所組成,但還是覺得很辛苦。
加上加班時間,大概快 9 個小時只加完 95 組 wire,大部分時間都是一個一個人工比對參數是否合理,中間還有開過 3 次 Tessent 確認連線是否有問題,大概一個小時加完 10 組訊號又多一點。
今天因為要出去,出門前還是稍微修改了一下 add_mux 參數,讓他跟原本客戶的名字及 index 比較能 match 得上。
明天不出門應該可以把剩下的加完。
這樣的需求就是要寫 config 檔餵進程式,雖然還是要比對 config 檔,但應該是比人工 coding 快,只是這樣的流程如何設計還是需要好好規劃才會好用。
畢竟 9 個參數的函數扣掉 2 個 default value 也還是有 7 個參數要加,自己用無所謂,要給人用就有點麻煩,但我也不認為這些參數可以省略就是了。
另一個方式就是只複製 top module,這樣 pyverilog parsing 應該就不會太慢,不過還是少不了 config 檔就是。
順帶一提,我這裡的 config 檔就是產生呼叫 add_mux 的語法,也就是使用 sed 產生出 code。