看板 Soft_Job 關於我們 聯絡資訊
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#版本 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 61.224.62.188 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1609391714.A.720.html
locklose: 推 12/31 13:43
erspicu: 可能是稱呼有些翻譯上或是認知上落差 後來想想 12/31 13:51
erspicu: 更正確應該是稱呼Gate-Level Simulation 不過 12/31 13:51
erspicu: 查資料過程有些也是以transistor level simulation稱呼 12/31 13:52
erspicu: 另外FPGA主要是沒辦法普遍普及 然後早期處理及GATE數量 12/31 13:53
erspicu: 早期處理氣邏輯閘數量並沒有那麼多幾K到萬初而已 12/31 13:55
erspicu: 即使無法一次完成整個週期動作 靠著現在GPU速度快 12/31 13:56
erspicu: 多幾次動作去完成 可能也可行 但不確定效果好不好 12/31 13:56
erspicu: 主要希望目標是早期一些遊戲主機處理氣Z80 6502等等 12/31 14:01
hizuki: 沒,可以裝下,只是可能一萬鎂的裝個arm現代的core,十萬 12/31 14:48
hizuki: 鎂消費級AP,Intel他們可能是百萬鎂的跳。 12/31 14:48
mmonkeyboyy: https://www.analogue.co/pocket 01/01 00:29
mmonkeyboyy: 上面那個大概就是你要的東西吧 01/01 00:34
mmonkeyboyy: FPGA是真正把電路放進去 gpu又不能放電路 01/01 00:35
mmonkeyboyy: 連個接近都不是 所以沒有emu的意義 01/01 00:36
mmonkeyboyy: HDL跟cuda根本不是一回事 所以我也不懂這樣放意義 01/01 00:36
erspicu: 我並不是要啥現成模擬器商品或是程式 只是要探究一種 01/01 03:20
erspicu: 能夠在電腦上更正確模擬的方式 要知道早期很多CPU一些特 01/01 03:20
erspicu: 官方SPEC並不一定會寫出來還有一些硬體特性也是 BUG也是 01/01 03:21
erspicu: GPU能不能放電路都沒關係 只是藉著GPU去處理邏輯閘運算 01/01 03:23
mmonkeyboyy: 你現在連gpu為什麼連 gpu不太好做這事都不想理解了 01/01 03:51
mmonkeyboyy: 還不如拿來解transistor level實在多了 這裡有數值的 01/01 03:52
mmonkeyboyy: 解gate level除了timing 有得搞外 解邏輯 gpu不會比 01/01 03:53
mmonkeyboyy: 較快 我拿個ARM海可能更快點 (這個是有產品的哦) 01/01 03:53
bcew: to erspicu:要不要先去修一些ic設計的課程再來講電腦模擬的 01/01 16:39
bcew: 事,怕走冤枉路,背景知識不足也不聽勸,還能說什麼? 01/01 16:39
erspicu: 不聽勸 這帽子扣太大了吧 都只是交流一些想法 01/01 17:29
erspicu: 只是覺得沒必要把人家學者的研究描述成啥說幹話 不經思考 01/01 17:30
erspicu: 附帶一提的是 想當然也知道FPGA是花錢最快最棒的解法 01/01 17:39
erspicu: 問題是這回答跟 人家電腦上玩模擬器部分運作有問題 01/01 17:40
erspicu: 問人家玩模擬器的意義是啥 為啥不買實體機一樣 01/01 17:41
erspicu: 預設的情境就是電腦開啟執行去達成一個更高的模擬完成度 01/01 17:42
erspicu: 一直在那邊FPGA FPGA..我買FPGA 我乾脆買二手主機還便宜 01/01 17:42
Apache: 大概是原PO背景知識落差太大了吧 01/01 21:53
Apache: 這邊回你的很多都在豬屎屋/EDA/HPC業界有實務經驗 01/01 21:54
Apache: 很多前提對他們來說是理所當然 但是對原PO不是 01/01 21:56
Apache: 不過對個人這種需求真的是很怪 01/01 21:59
erspicu: 對於只是想玩玩遊戲主機模擬器玩遊戲 有更高模擬品質 01/01 22:56
erspicu: 你叫人家 不會去買塊FPGA喔 這才正解拉 這其實更奇怪 01/01 22:56
erspicu: 一個目的可能是商品雛型開發 一個是希望能在PC端找到一個 01/01 22:59
erspicu: 更精確模擬遊戲主機的方式 我一開始其實就講得很清楚了 01/01 23:00
erspicu: 你叫人家買FPGA 人家不如幾百元到網拍二手機主機更乾脆 01/01 23:00
erspicu: 既然都要走實體方案的話 二手主機也才多少錢 01/01 23:01
erspicu: 所謂有實務經驗 就是跟很多人一樣工作上用到FPGA 01/01 23:02
Apache: 因為你問的不可行所以人家建議你去用FPGA啊 01/01 23:02
erspicu: 因為一些開發需求有用過一些現成套裝軟體而已 01/01 23:02
erspicu: 我以為是有人親自嘗試用這構想真正實作過 01/01 23:03
erspicu: 不需要建議用FPGA阿 買台二手主機更快拉 01/01 23:03
Apache: 你不是要做雛型開發 01/01 23:04
Apache: 大廠做雛型開發就是用FPGA啊 更精確用CPU GPU就抱歉沒有 01/01 23:04
Apache: 而且GPU只是加速 通常不會更準確 反而是用精度換時間 01/01 23:05
erspicu: 從頭到尾 我第一篇文章和推文就有說過 在PC端使用的模擬 01/01 23:05
erspicu: 在PC端使用的遊戲主機模擬器 已經說過滿多次了 01/01 23:05
erspicu: 如果要用硬體的話 我乾脆去買二手主機不就得了 01/01 23:06
Apache: 你插張PCIe介面的不就在PC端了 01/01 23:06
erspicu: 我就是要放出程式給大家用啊 幹嘛一定硬體阿 01/01 23:06
erspicu: 說白了 根本沒有人有實際親自實作測試的經驗可以分享 01/01 23:07
erspicu: 有的是 阿 你看看那些論文學者發表成果有多早 01/01 23:08
erspicu: 現在還不是沒有普遍商業化 所以我估計都是說幹話拉 01/01 23:08
Apache: 這就是大家講你的不聽勸啊== 01/01 23:09
Apache: 你以為豬屎屋花錢買EDA tool是盤子是不是 01/01 23:09
erspicu: 沒有模擬器親自實作經驗的人 用自己以為說他的推測而已 01/01 23:10
erspicu: 工作會用到FPGA會需要買套裝軟體使用又如何? 01/01 23:10
erspicu: 這構想做法早就有JS版實作後來有人改寫C++版 01/01 23:14
Apache: 那就祝福你找到你想要的答案囉 01/01 23:17
erspicu: https://tinyurl.com/y9oyde25 C++的CODE 每秒可以算到 01/01 23:22
erspicu: 大概1萬HZ的速度 這是在沒做任何平行處理優化狀況下 01/01 23:22
erspicu: 如果能夠優化到3.58MHz 就能達到實機運作速度了 01/01 23:25
mmonkeyboyy: 好 你好棒 加油喔 01/01 23:34
enthos: www.udemy.com/course/design-a-cpu/ 教學用Logisim 01/02 00:14
mmonkeyboyy: 我沒做過new gb這種模擬器 做過rv arm mips x86? 01/02 08:18
mmonkeyboyy: cell模擬器的可以嗎 01/02 08:19
mmonkeyboyy: (z80 好像有做過就是了@_@" 幫一個教授做課程project 01/02 08:20