软处理器(例如MicroBlaze)的典型用途是什么?


8

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

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


基本上,这取决于您的应用程序对DSP的密集程度。
Fizz

讨厌的瘟猫浮现在脑海中,虽然你有一个通用的CPU做DSPing。
Fizz,2015年

显然,您可以Virtex 5以及Altera Stratix进行软件定义的广播。
Fizz

显然,有人在Spartan 6 LX45上进行了尝试。您打算使用什么应用程序?
Fizz

我在该线程中看到的主要问题是有用的(基于PC的)Vivado软件,该软件可为Virtex生成过滤器等,但不能让您瞄准Spartan。我不确定这只是市场决定还是Spartan硬件价格太低。
Fizz

Answers:


11

随意略读,或跳到最后。我知道我确实继续了!


通常,您不会使用软处理器来代替 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的美好世界有更多的了解。


@tcrosley我同意您的观点,但是如果您说要在32位处理器上添加两个128位数字,则将需要几个周期。重点是威力。但实际上,这完全取决于您整体上的工作。如果您只想加法,那么在FPGA中拥有整个CPU将毫无意义-只需实例化加法器即可。所以我想我会删除那一点。
汤姆·卡彭特

1

正如汤姆(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 Design Suite嵌入式版(或等效版本)的许可,该IP是免费的。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.