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#版本