MicroBlaze 等软处理器的典型用途是什么?

电器工程 FPGA 处理器 微光 色情书刊
2022-02-01 06:31:57

我知道 FPGA-DSP 组合通常用于高端电力电子/超声/MRI/等。即使在 Spartan 3/6 等低端 FPGA 上,软处理器是否有可能完全取代 DSP?

补充:在一个 FPGA 中拥有多个软核处理器的原因是什么?

2个回答

随意略读,或跳到最后。我意识到我确实走了一点!


通常,您不会使用软处理器来代替DSP 的东西。专用硬件通常可以更快地处理大量数据,因为您会将其设计为非常好地完成特定任务,而不是成为通用 CPU。

软处理器进入其元素的地方是控制和协调。

如果你要设计一个需要处理大量数据的系统,比如说高帧率图像采集,不可能使用软核处理器来处理所有数据,只会有太多的开销在 CPU 中。您要做的是设计专用固件来完成所需的特定采集任务(例如过滤数据、存储到内存等)。

但是,您仍然需要某种方式来指示它何时执行操作 - 您何时想要捕获,设备是否被指示卸载数据等。这些事情在专用硬件中不是很容易做到,如果有带有用户输入的事件序列,基本上是不一遍又一遍地做同样事情的任务。在这种情况下,您将使用软核处理器,因为为某些任务编写过程代码要容易得多。

另一个(真实)示例,我一直在研究通过 PCIe 流式传输数据的超声采集系统。它执行的任务是从用户那里传达的,并且系统的各个部分都需要配置。系统的协调不需要大量数据,而是需要灵活性,因此它非常适合在这种情况下使用 C 编程的软核 CPU。在物理硬件中做同样的事情需要大量资源其中大部分将不经常使用,因此与 CPU 相比没有任何好处。

值得注意的是,某些任务可能会因用户输入而异,但在专用硬件中仍然更好。事实上,代码的一部分(编程 DMA 控制器以在触发时存储数据)最初是在 CPU 中用大约 15 行代码完成的,但由于需要在触发发生的那一刻完成该位,因此使用的 CPU 可能是忙于其他事情并不理想。相反,该任务被编程到 Verilog 模块中,但在此过程中变成了一个庞大的 500 行状态机,具有大约 15 个状态和支持逻辑的整个堆负载 - 不是真的。但是,即使它消耗了更多的资源,它也是时间紧迫的,因此也是必要的。

同样,我需要时钟周期准确的触发生成,因此执行该任务的模块是系统的一部分,而不是在 CPU 中执行。这个内核和上面的内核都是如何使用 CPU 执行某些任务的示例,但对于其他关键任务,您可以开发硬件来补充CPU - 就像在微控制器中拥有计时器等一样。


所以总结一下:

FPGA 是非常灵活的工具,但大多数设计需要软核 CPU、可配置模块(例如定时器)和专用单任务硬件的组合。

CPU 非常适合用户交互、控制事件顺序、配置控制器。他们就像协调者,大脑。

一些设计可能需要执行一些相当重复的任务,这些任务可以配置为适合不同的输入 - 定时器模块、字符显示、按钮去抖动等。这些可以很容易地用 CPU 完成,但如果你想准确地完成其中的几个一旦变得更加棘手 - 他们正在共享相同的 CPU 资源。因此,您可以将它们移到与 CPU 紧密相连的专用硬件中 - 让 CPU 有机会执行其他任务。这些有助于 CPU 完成其工作并与周围环境(如感官)进行交互。

专用 DSP、数据传输 (DMA) - 基本上任何以高速一遍又一遍地做同样事情的任务 - 可以真正受益于速度和功率方面的专用逻辑这些就像设备的肌肉,可以完成所有繁重的工作。

您将不得不原谅我的漫无边际,但我确实喜欢 EE 的这个领域。希望以上内容是可以理解的,并让您对 FPGA 的精彩世界有一些额外的了解。

正如 Tom 所提到的,MicroBlaze 与其说是替换 DSP,不如说是替换可能在板上的传统微控制器。

这是因为 MicroBlaze 软处理器内核不是 DSP 的特别好的替代品,因为它缺乏特殊的 DSP 功能,例如 MAC(乘法和累加)指令、循环缓冲区、位反转寻址和饱和逻辑。

因此,单独的 DSP 软核(例如本文中针对 Xilinx Virtex-4 描述的软核)将是更好的选择。

许多 DSP 设计将受益于同时拥有两个软核,因为即使不是大多数包括 FPGA 的数字设计也需要某种通用微控制器。只要 FPGA 中有足够的可用资源(见下文),诸如 MicroBlaze 之类的软处理器不仅消除了 BOM 中的一部分(当然还有相关的成本),而且还释放了 FPGA 上的引脚,因为有FPGA和微控制器之间无需互连。两个部分之间的走线所需的空间也被释放。

MicroBlaze 可以在Virtex-5 上以 210 MHz 运行。带有 MMU 的版本可以运行 Linux。最小的 MicroBlaze 需要大约 600 个 LUT,如果添加 FPU、MMU、缓存和其他好东西,可以增长到 4000 个。上面提到的 DSP 软处理器使用了 1700 个 LUT。

由于Virtext-5 FPGA可以有 30,000 到超过 200,000 个 LUT,即使包括这两个软核也只占芯片的一小部分。如果需要,将两者结合起来允许传统操作和 DSP 操作并行进行,但代价是两者之间的同步会增加一些复杂性。

只要您在 Xilinx FPGA 上使用 MicroBlaze 的 IP 并获得 ISE 设计套件嵌入式版本(或同等产品)的许可,它就可以免费使用。