2010年3月20日 星期六

System Level - SystemC

System Level Design
在傳統的HW Design上,不外乎透過verilog 驗證. 跑跑RTL 的Function Check, 等Function 確定好後,用Design Compiler 轉出Gate Level, 在驗證Time 是否滿足 setup time and hold time, 如不符合就改Design 或者是 改變我們設定的 constrain. 就一直不斷的Try and Test.相對的會花很多時間在Debug上面. 因為硬體不像軟體一樣,可以藉由斷點分析,用software break 的方式,做Inside Register的 Debug. 除非在HW中加入JTAG的機制. 用ICE 來Emulator HW內部的flip-flop所暫存的值, 但在HW Design 初期, 根本不可能會把JTAG做進去,能祈禱不要每天加班就好了....呵呵.所以在初期只能用NC-SIM 來模擬,看看Waveform寫些TestBench去測.這樣一來一往就花費了不少時間,如果我們能夠用更快速的驗證方式,透過軟體來驗證硬體的結果,就可以減少我們在Design所花費的時間. SystemC 目前已走向SOC Design(System on Chip),以前是HW/SW分開測,相對的Coast 較高,也較沒效率.而SystemC 可以解決 HW/SW 間的Gate. 全部都用Software 模擬,且可以用 Eclipse 外掛.程式開發上也較方便. "SystemC", 是我研究所專題所用到最平凡的語言,想說記錄一下,說不定之後會派得上用場呢. SystemC 主要可分為 Communication, Computation 兩部分. communication : 為Protocl 的部分, 如PCIE, BUS, ...所要的Cycle or Delay... computation : 為Module內部自己運算所要的cycle, Delay. 像是 H.264, MPEG, PMU... 在藉由這兩個軸,去定義出我們現在所在的Position,如底下所示. 藉由A -> F的過程,可以快速的勾勒出整個系統的架構. SystemC 是以C++為基礎,並加入Hw synchronous/asynchronous/event trigger 的概念進去. TLM (Transaction Level Model 0) http://www.eettaiwan.com/ART_8800316267_480102_TA_5a6d92f3.HTM Module : Black Box Name Port : 接口 In/Out/InOut bit; Processes: 處理續, 可用 Clock/event trigger, 如加法運算... Interface: 介面, 可為Bus... Channel : 類似Package, 內部可定義 Header/Body ...的相關Class. Event : 事件,

沒有留言:

張貼留言