2010年9月13日 星期一

c to Verilog .....

其實說穿了只是 C to Verilog 語法上的轉換再加入一些 Stages 跟 signal 的機制. 畢竟還是用 DFG(data flow graph) 的架構,在 pointer 跟 Memory malloc 上還是支援不足. 在control edge 跟 for loop上還是慣用 expand 的方式展開, 再加上一些 Operator/Pipe-line constrain, 雖然說這樣是很直覺的想法沒錯, 我在 c code 上定義了那麼多的 Operator 跟我想要的 Architecture (FPGA support). 但實際在 SOC上的設計卻不是如此,通常是要去 access 內部的cache 抓 Data 到 Register 之後再做運算. 而不是全部展開成 Register 的方式.這樣會造成 hardware cost 過大,且這些Register 不能被 Share.且光個 example code 才 15 行,轉出的 code 卻是 800 多行...,這也是為什麼現今來沒有套EDA tool公司能 Release 出最好的解決辦法. 因為10 成中有8成跟 coding style有關. 就像 garbage in = garbage out...一樣.但要讓個 high level designer 又要考慮那麼多東西.就有點倒退嚕的感覺.所以現在主流還是IP design.用現有的software/hardware IP 做 co-design.畢竟 coding 大家都會. Architecture 才是真正的核心價值. Ref c to Verilog

沒有留言:

張貼留言