gravatar

IC Contest - Cell-based

很久沒作整個從 front-end 到 back-end 全部流程. 這次 IC 設計競賽又到了, 花了點時間準備. Verilog 有點生疏, coding style 和寫法有點陌生, 不過經過練習有點回復記憶, 大概知道有合成上面的限制和寫法. 至於 CAD/EDA Tools, front-end 感覺比較簡單, scripts 和指令方面常用也還沒忘光. 不過感覺新版的 synopsys synthesis tool 好像加了很多東西, 有些原本的指令用起來怪怪的. 比如說 set_fix_multiple_port_nets -all -buffer_constants, 從以前到現在都這樣用, 現在卻有問題, 在 write out 成 netlist verilog 一定會出現 assign, 這種東西沒辦法做後段APR, 後來發現改成 -buffer_constant 就不會. 可是連 help 都寫 -buffer_constants, 到底是改了哪些東西還是 bug? 然後 back-end 的 tools, Synopsys Astro, 也從以前收購來的 Avanti! Apollo 改了很多東西, 現在作個 script 又臭又長. 但 in-consistancy 的地方也不少, 比如說讀 Synopsys Design Constraints 讀進來是 dc shell 格式, 但是最後 write out place&route 完成後的 design constraints 卻是 TCL script. 然後 back-annonate script 卻也是 dc shell 格式, 不是跟輸出 design constraints 一樣是 TCL, 且這個選項沒放在 menu 只能用 command, 明明是 back-annoate 很重要的東西卻沒出現, 且剛才提到輸出格式的問題. 實在是很懷疑這種 release 到底是好還不好的版本, 還是甚至是 beta.

另外一提, 先前也到不少 IC Design House 找過工作, 都是直接丟到 EDA/CAD tools 部門面試. 當然不是不喜歡, 也不反對, 畢竟現在的 design 那麼複雜, 除了 IC Designers, 沒有 EDA/CAD 這些 tools 和部門, 沒有一個 design 是搞得出來. 有位在公司學長的說 tools 的當然目標就是讓 designers 可以按 button 就出來一個 design, 但是事情不可能那麼完美, 所以也才需要那麼多 EDA/CAD engineers 的工作及幫忙, 所以這些 engineers 也佔很重要的地位. 但是前面提到, 很多時候 engineers 在作的卻是寫 shell/perl script 來跑 EDA/CAD tools, 解決前面提到的 tools 間 in-consistancy 問題. 這也是很繁雜卻也很需要人力的地方, 當然這種東西做得來沒問題, 只是覺得這樣作三四年下來, 所謂的年資跟成就是什麼? tools 每年在變, input/output 格式永遠是 CAD tools programmers 決定. 作這種東西需要碩士畢業來作? 當產業榮景不再或是換公司, 你能拿出去換工作的年資跟經驗又是什麼?