我最近在学习FPGA。我曾尝试使用 sdram,有人建议我通过 nios ii 使用它。但是我看到一些在 nios ii(c/c++) 上使用 ip core 的文章可能比你通过 verilog 写的要慢?为什么?因为硬件(快速,并行)和软件?
1 回答
什么是软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,强化一个(就像许多流行的 I/O 接口一样)它会产生整体净增益。(如果您不需要 CPU,您可以简单地购买非 SoC FPGA。
至于使用 CPU 与纯逻辑/硬件,也有权衡。编写软件通常比 Verilog 更容易,并且您的 CPU 将被设置为管理诸如响应时间和其他内存怪癖之类的事情。但是,您将受到 CPU 速度(Nios 通常为 100-200MHz,具体取决于您的 FPGA)、需要与 CPU 接口的额外延迟以及 CPU 指令执行速度的限制。
与 FPGA 越来越受欢迎的原因类似,纯硬件电路具有专业性,可以使它们比更多用途的 CPU(软或硬)运行得更快。为提高速度而获得的权衡是编写时间精确的 Verilog 所涉及的额外工作。