1. 你所描述的聽起來不是 transistor 層模擬,而是邏輯閘層次的模擬。Transistor 模
擬是指像 spice 那樣模擬時間 vs 電流之類的類比計算,就像用工具幫你做 smith 電子
學習題這樣。
2. 你內文裡面比較「cpu 指令層」, 「cycle-accurate」,「邏輯閘層」模擬,提到哪些
運算量比較大,哪些比較準,這些都是 ic 設計常識。一般公司的設計流程,在設計晶片
架構時,用 c++ 寫 transaction accurate simulation,用 c++ 或是 systemC 寫 cycl
e accurate simulation,等架構設計確定後,開始寫 HDL,HDL 小部分用 EDA tool 看
波形圖做驗證,大範圍 HDL 用商業廠商買來的emulation設備,也就是 FPGA 做模擬,這
裡的 FPGA 並不是只有一塊 FPGA,有可能是很多塊 FPGA 湊在一起模擬一部分ASIC 的電
路行為。
3. 所以問題就是,為什麼 emualtion 要使用 FPGA 而不是 GPU?答案是 gate count 還
有開發時間。FPGA都裝不下現代稍微複雜一點的 IC,GPU 更不可能。HDL 要翻譯成 CUDA
也不切實際,除了驗證沒有其他價值。
※ 引述《erspicu (.)》之銘言:
: 不想走冤枉路.... 雖然有找過資料
: 但找到的資料似乎是一些大學教授和硬體大廠的研界成果發表 論文也有
: 感覺有很高的技術門檻 門檻高就算了 主要是怕結果實際上也沒如同想像中好
: 想問看看有沒有已經走過這條路了 不知道通不通或是值不值得
: 模擬器最傳統的做法是cpu指令層的模擬 這種模擬方式好實作
: 但正確度要拉高到一個水準 就需要很高代價
: 尤其是cycle accurate的模擬問題
: 要100%正確 就要層邏輯閘層去模擬運算結果
: 但邏輯閘層運算量遠大於指令模擬 主要是因為邏輯閘層運算都是同時間平行的
: 這種特性很適合GPU 如果像是紅白機MOS 6502的話邏輯閘數大概有4千5百多
: 目前看到用一般cpu去計算邏輯閘模擬計算 非常多秒才能算出一張frame
: 用指令集模擬的方式 每一秒可以算出好幾百張frame 差異非常巨大
: 不知道用gpu來模擬FPGA那種陣列 先不提有沒有商用價值
: 效率能不能提升到實用價值 不知道有沒有人公司剛好有做過這研究
: 之前移植專案做到一半 想研究一下改用GPU平行處理來處理邏輯閘模擬
: 寫一寫 還沒到改寫的部分 還在JS PORTING到C#的階段就丟著
: 如過是死路 就算了
: PS.我的理想是靠GPU模擬一張FPGA 拆晶片用放大鏡把內部邏輯描繪出來
: 然後燒到FPGA上 有一些骨灰迷是有在做這事情
: 像這網站 http://www.visual6502.org
: 但目前還沒看到靠GPU模擬FPGA 把電路燒進去的
: 現在還在移植 http://www.visual6502.org/JSSim/index.html 到C#版本