如何选择FPGA?

电器工程 套件 发展 FPGA 赛灵思
2022-01-15 03:05:24

我需要在 8 条 10 kHz 的模拟线路上进行数字信号处理。这是一项艰巨的任务,我认为 FPGA 可能是正确的方法。我目前正在研究 Xilinx 的开发套件,由于我没有使用 FPGA 的经验,我发现很难知道如何选择合适的芯片。我想象使用开发套件并使​​用 I/O 引脚对其进行扩展,以连接到 8 通道 A/D 芯片和 8 通道 D/A 芯片。

使用 Spartan、Virtex、Altera 等有什么区别?我什至不知道如何估计我需要多少门。有什么经验法则吗?如何确保时钟速度足够(作为加法和乘法次数的函数)。在 FPGA 上进行浮点处理很难,我应该坚持定点数学吗?最好的开始方式是什么?

我需要一个可以使用 Linux 进行编程的解决方案。Xilinx 提供了这个,但我不确定有什么限制。

4个回答

我不会使用 FPGA。

您提到您没有使用 FPGA 的经验,但您有兴趣在 FPGA 上进行数字信号处理......数字操作 + 信号处理很难在计算机/DSP/微处理器上正确使用,其中编程工具是传统的编程。在我看来,将数字信号处理项目用于第一个 FPGA 项目可能会导致挫败感。

如果您想学习 FPGA,请尝试做一些更适合开发工具的事情,例如状态机或通信数据包处理。

对于您所描述的 DSP 项目,我建议使用 DSP 或Cypress PSOCAnalog Devices 微转换器(=内置 ADC+DAC 的微控制器)。

(完全披露,这为我的建议提供了一些背景信息:我自己不使用 FPGA。我在极少数情况下使用可编程逻辑 = PLD。我的同事确实经常使用 FPGA,而且我已经看过足够多的 VHDL/Verilog 代码来查看他的肩知道它非常适合位操作。他是一位经验丰富的工程师,在 FPGA 方面拥有丰富的经验;在最近与他的一次谈话中,他正在对不同位宽的整数进行一些相当简单的数学运算,我告诉他他需要对较短的位宽数字进行符号扩展以正确地减去它,他脸上的表情就像“哦,伙计,我不想做符号扩展......”加减法在 FPGA 中不是很难。除了加减法之外,您确实需要了解工具和库。和浮点处理??!?!!??!?!!?)

他们都很好。你不需要太多的 FPGA 来做这样简单的事情,所以任何初学者 FPGA(如 Spartan-3 系列)就足够了。

不过,只是一个警告,对 FPGA 进行编程是一个 LOOOOTTTTTT 与 C++、C、perl 等不同的东西......我建议从 verilog 开始,因为它可能更容易过渡到...... VHDL 非常像 COBOL,但是verilog 更类似于现代编程语言。

关于时钟速度:不用担心。使用 FPGA 的优势在于它们是大规模并行的,因此虽然 50MHz 时钟按照今天的标准可能看起来慢得离谱,但请记住,它们一次可以做数百件事情,而 3GHz 的“普通”CPU 必须排队处理事情一次上一个。这就是使用 FPGA 的优势:并行性。所以对于专门的东西,你不需要太担心速度。

但就像其他评论一样,这是一个完全不同的范式。学习曲线很陡峭,但一旦你掌握了语言,一切都会变得有意义(只要确保你理解了构建块)。

快乐的 FPGA :)

不久前,我整理了一张来自两家 FPGA 供应商 Xilinx 和 Altera的入门级 FPGA 板的比较图。他们是 FPGA 的两个主要参与者,有点像 PIC vs AVR 或 Sony vs Nintendo。他们提供了最好的性价比。还有其他供应商提供特定功能,但您通常最终要么支付更多费用,要么失去功能/处理能力。

我知道这并不能直接回答您的具体问题,但它应该对任何想要开始使用 FPGA 板的人有所帮助。

这么多的问题; 让我们尝试按顺序回答它们:

  1. 信号处理的资源要求:为了确定需要使用/构建的硬件,您需要了解要对相关信号进行的处理量。8 通道 @ 10 kHz 不是很高的数据速率,因此除非您的要求非常特殊,否则大多数 FPGA 和 DSP 应该能够处理数据。
  2. 如何选择合适的设备?根据信号处理的要求,您应该能够确定您的应用程序需要哪个设备。关键点是内存要求、是否需要硬乘法器、特殊 IO 考虑等。大多数 FPGA 供应商都有工具(基于 Web),可让您根据这些因素搜索他们的产品组合。
  3. 如何开始使用 DSP?DSP只是普通的计算机,通常具有与信号处理相关的SIMD[单指令多数据]指令。要开始,您只需要了解“嵌入式”硬件和 C 编译器的限制,以便您可以在普通 PC 上测试您的代码。
  4. 如何开始使用 FPGA?FPGA 采用硬件描述语言进行编程。这些与 C 或 Java 等顺序语言有很大不同。为了开发 FPGA,您需要了解真实硬件的并发特性。入门所需的工具是 HDL 仿真器,例如 Simili(小型设计免费)或 Modelsim。这使您可以在 PC 上模拟您的代码。之后,您需要一个供应商特定的综合工具,它将您的 HDL 代码编译成用于配置 FPGA 的位文件。如果您从 Altera、Actel 或 Xilinx 获得入门套件,您需要的所有工具都是套件的一部分。
  5. Linux 支持:大多数供应商的 FPGA 工具在 Linux 上运行,但在 DSP 领域,您通常被迫使用仅限 Windows 的编译,除非您的 DSP 受 GCC 支持(Analog 的 Blackfin 和德州仪器的几种型号都支持)。