FPGA 是一种芯片,可以通过硬件编程语言进行配置,以制作几乎任何数字电路。硬件工程师可以使用它们,而 Python 开发人员则不能。但是有一组独特的基于 Xilinx FPGA 的设备可供软件开发人员和数据工程师使用,甚至可以使用Python。这要归功于Xilinx Zynq芯片的PYNQ 。在本文中,我将展示这个平台及其功能。
FPGA 由 HDL 配置——硬件描述语言,如 Verilog。例如,当在微控制器上给定的引脚是 FPGA 上的 SPI 时,它可以是任何被编程为的引脚——无论是 SPI、I2C 还是 USB、HDMI、以太网等。除了此类 I/O,FPGA 还可以执行各种类型的处理和逻辑。
FPGA 不是我们可以像 Raspberry Pi、Micro:bit 和类似的板子那样容易使用的东西。但是可以选择使用包含 FPGA 的基于 Xilinx Zynq 的芯片。
Xilinx 创建了一个名为Zynq的架构。它将带有 ARM 内核和 I/O 的 FPGA 组合到一个产品中。ARM 部分称为处理系统( PS ),而 FPGA 称为可编程逻辑( PL )。这样的概念不仅限于这家公司,Xilinx 更进一步,创造了PYNQ(粉红色)。
PYNQ是一个硬件-软件堆栈,允许通过在芯片本身上运行的Python和Jupyter notebooks使用 FPGA 。它不会取代 Verilog,它不允许您为 FPGA 创建设计,但它允许连接和使用由硬件工程师(或者您自己,如果您知道 Voodoo 魔术)制作的设计。
PYNQ来自软件开发者端,主要针对边缘数据处理和分析(视频、图像)、数据处理功能加速和机器学习。根据设计,它可以与边缘 NPU 芯片或 Nvidia Jetson 等 CPU/GPU 平台竞争(在能效和/或灵活性方面。示例用例之一是