我最近在学习FPGA。我曾尝试使用sdram,有人建议我通过nios ii使用它。但我看到一些在nios ii(c / c ++)上使用ip core的文章,它可能比你通过verilog写的速度慢?为什么?因为硬件(快速,并行)和软件?
答案 0 :(得分:0)
什么是软CPU? FPGA由可重构逻辑块(LUT),存储器和乘法器/ DSP等组成。软CPU是由FPGA可配置逻辑组成的CPU。 Nios II是Altera / Intel的软CPU风格。这与许多Altera/Intel和Xilinx SoC FPGA中包含的ARM内核等强化CPU不同。在这些情况下,ARM内核由固定晶体管而不是FPGA架构组成,并且不能为其他目的重新配置。
为什么有硬化的CPU?它们通常比软CPU更快,占用更少的空间,并且不消耗任何有价值的FPGA路由。由于许多设计使用某种类型的CPU,因此加强一个CPU(就像使用许多流行的I / O接口一样),它会产生整体净增益。 (如果您不需要CPU,您可以简单地购买非SoC FPGA。
至于使用CPU与纯逻辑/硬件,还有权衡。编写软件通常比Verilog更容易,并且您的CPU将被设置为管理诸如响应时间和其他内存怪癖之类的事情。但是,您将受到CPU速度的限制(Nios通常为100-200MHz,具体取决于您的FPGA),以及需要与CPU连接的额外延迟以及CPU指令执行速度。
与FPGA为何越来越受欢迎的情况类似,纯硬件电路具有专业化,可以使它们比更多用途的CPU(软件或硬件)更快地运行。你获得的速度提升的折衷是编写时序精确的Verilog所需的额外工作。