FPGA 对于这样的项目是否可行?

电器工程 FPGA 图片 微控制器
2022-01-14 13:25:02

我目前正在研究 Super OSD - 一个屏幕显示项目。http://code.google.com/p/super-osd有所有细节。

目前我正在使用 dsPIC MCU 来完成这项工作。这是一个非常强大的 DSP(40 MIPS @ 80 MHz,三寄存器单周期操作和一个 MAC 单元),重要的是,它采用 DIP 封装(因为我正在使用面包板对其进行原型设计。)我真的从运行 OSD 中获得了最后一点性能——芯片在输出级上每个像素大约有 200ns 或 10 个周期,因此在这部分代码必须非常优化(因此它总是被写入集会。)

现在我正在考虑为此使用 FPGA,因为由于这种芯片的并行架构,可以让一个简单的逻辑程序运行 OSD。诸如画线和算法代码之类的事情将由 MCU 处理,但实际输出将由 FPGA 完成。还有一些简单的事情,例如设置像素或绘制水平和垂直线,我想将其集成到 FPGA 上,以提高速度。

我有一些疑问:

  1. 它会花费更多吗?我发现的最便宜的 FPGA 大约是 5 英镑,dsPIC 是 3 英镑。所以它会花更多的钱,但要花多少钱?
  2. dsPIC 适合 SO28 封装。我不想比 SO28 或 TQFP44 更大。我见过的大多数 FPGA 都采用 BGA 或 TQFP>100 封装,由于剪切尺寸以及自己焊接它们的难度,目前还不能选择。
  3. FPGA使用多少电流?dsPIC 解决方案目前消耗大约 55mA +/- 10mA,目前还可以。FPGA会消耗更多还是更少?它是可变的,还是像 dsPIC 一样几乎是静态的?
  4. 我需要至少 12KB 的图形内存来存储 OSD 图形。FPGA 的芯片上是否有这种存储器,还是只能在外部芯片上使用?
4个回答

原则上,这是基于 FPGA 设计的良好候选者。关于您的要求:

广告 1. FPGA 很可能会更贵,具体价格取决于您选择的设备。乍一看,来自 Xilinx (XC3S50AN) 的最小 Spartan 3 将足以完成这项任务(来自 Farnell 的约 10 英镑)。我想你可以假设这是成本的上限(它内部有 56kB RAM,所以它比你需要的要多)。您可能会从 Xilinx 产品或其竞争对手 Altera 和 Lattice 找到更便宜的器件。

ad 2. 封装是个棘手的问题,我也没有看到占用空间更小的 FPGA。但是,也许您可​​以使用可能采用较小封装(PLCC 或 QFN)的 CPLD 设备(为了争论,CPLD 是小型 FPGA)。从好的方面来说,它们会更便宜(甚至是单美元),在消极方面很可能不会有内存。使用 CPLD,您可能需要外部 SRAM 芯片。

ad 3. FPGA 和 CPLD 电流消耗高度依赖于编程设计。然而,FPGA 尤其是 CPLD 设计很有可能会比您当前的解决方案消耗更少的资源。

ad 4. FPGA内部确实有那种内存,CPLD肯定没有。这可以通过外部 sram 芯片(或两个)来解决。例如:

|SRAM 1| <--> |CPLD| <--> |uC|
|SRAM 2| <-->

在这样的安排中,当 uC 写入 SRAM 1 时,CPLD 将显示来自 SRAM 2 的数据。CPLD 应该能够同时处理这两个任务。

当然你也可以通过其他方式解决这个问题:
1)使用更快的 uController(例如 ARM)
2)使用内部带有一些可编程结构和 uC 的设备(例如 Atmel 的 FPSLIC,但是我从未使用过此类设备,我非常了解关于那些很少)

标准免责声明->因为设计是开放性问题,有许多约束和可能的解决方案,无论我在上面写什么,可能不适用于您的情况。不过,我相信值得检查这些选项。

您可以使用 CPLD 而不是 FPGA,例如 Altera MAX II 部件之一。与 FPGA 不同,它们采用 QFP44 封装。它们实际上是小型 FPGA,但 Altera 淡化了这一点。CPLD 与大多数 FPGA 相比的优势在于它们具有片上配置存储器,FPGA 通常需要外部闪存芯片。当然,还有其他 CPLD,但我喜欢 MAX II。

不可能说电流消耗是多少,因为它取决于时钟速度和实际使用的逻辑量。

FPGA 通常可以使用的片上存储器数量有限,但您需要带有 CPLD 的外部存储器。

另一种选择是XMOS芯片,但最小的一个(XS1-L1)采用 QFP64 封装。它有大量的片上 RAM - 64k。

1) 是的,FPGA 会更贵。不仅芯片本身更昂贵,而且您还需要闪存来存储编程。FPGA + Flash 的成本可能是 dsPIC 的 3 倍……小型 FPGA 大约 10 美元,小型 Flash 大约 3 美元。

2)它们可能存在,但我真的不知道任何不是表面贴装的FPGA。其中大多数可能是QFP或BGA。

3) FPGA 可能会拉出大约 3 倍于 dsPIC 的电流,但这可能会上升或下降,具体取决于您使用的功能。FPGA 具有许多可以增加功耗的特性。但预计至少 150 mA。

4) FPGA 内部通常有块 RAM。除了最小的 FPGA 之外,所有的 FPGA 都应该有这么多内存。

其他人提到CPLD。如果您仔细划分您的设计,您可能会将一些小而昂贵的操作移到 CPLD 中。它就像一个迷你协处理器。

学习曲线最低的最便宜的解决方案是转向功率更高的处理器,最有可能的是 ARM。

用 VHDL/Verilog 编程 FPGA/CPLD 对许多人来说是一个非常陡峭的学习曲线。它们也不是过于便宜的零件。

使用性能不错的 ARM 可能是 LPC1769?(cortex-M3) 您也可以在您的设计中替换 PIC18。

至于通孔问题,只要您可以在裸露引脚 QFP 类型封装中获得 SoC,只需获取其中一些适配器即可为您的原型设计提供所需的引脚。