当前位置:首页 > 新闻资讯 > FPGA之家动态 >

2020年FPGA开发板详尽选型指南

时间:2024-07-27      来源:网络搜集 关于我们 0

FPGA开发板的特性非常多,让一般的专业人士在选型时都会感到头疼,不同的外设、接口、连接器、存储器选择让人眼花缭乱。如果你还在为FPGA开发板选型而左右为难,这篇文章将带给你一个清晰明确的选型指南!传统FPGA还是SoC FPGA?

   SoC(片上系统)是一个常见的概念,意思是多项技术共存于一个芯片上,其实,现代FPGA基本都已经SoC化了(集成了PLL,DSP,MEM等IP),但在这里SoC FPGA特指集成了处理器核的FPGA,在这类FPGA内部,可编程逻辑(PL部分)和处理系统(PS部分)通过接口进行片上通信。SoC FPGA内部结构示意   如果你是一个初学菜鸟,强烈建议选择一个SoC FPGA开发板开始学习,因为这种板子的潜力巨大,后续可以学到很多东西(但也要考虑价格因素)。即使如此,刚接触时还是建议不要使用PS部分以及软件编程,就把它当一块传统FPGA用就好随着学习的深入,再增加难度,逐渐熟悉整个SoC FPGA,并利用处理器核,对可编程逻辑进行读写。后续你也可以试着写些固件、驱动,Linux操作系统以及高层次抽象设计,来体验真正的嵌入式系统设计。即使最简单的SoC FPGA板子都能让你学习好长一阵子。    这类开发板也可以让那些对数字设计感兴趣的软件工程师乐在其中,因为Processor+FPGA的结构让他们可以接触到HLS,异构计算和部分算法加速等非常新潮的技术。   如果你是个只想学习下数字电路设计,弄块板子完成大学学业的新手,或者你的工程就是需要大量传统资源,不需要处理器,那么由于传统FPGA拥有比SoC FPGA更多的基本资源(LUT BRAM DSP等),因此买个传统FPGA性价比更高。   重要新手提示: SoC FPGA开发板中众多的处理器核可能会把你学习可编程逻辑的初心带偏。强烈推荐在你的工程中忽略所有的处理器核,有经验的FPGA工程师们会语重心长地告诉你任何形式的HLS在实际工程中都不太好用不要听信初学者上来就可以“写C++/Python来在FPGA上运行”的鬼话。

接口和IO:    FPGA是实现高速接口的绝佳工具,因此当你拿到一个开发板时,上面的接口和IO是你首先需要关注的。如果你的板子上有特殊接口,通常厂家都会配一个说明文档以及一系列使用例程,这可以节省你大量的时间。其他新接口也可以通过手动的方式加到板子上,但是就高速接口来说(Ethernet,HDMI,PCIe等),一般很难自己去添加。低速接口,比如UART,CAN,I2C,SPI等则可以通过GPIO来手动添加,因此买板子时不用担心这些。

    另外,一些模拟和传感器接口也很重要,例如ADC, DAC, 摄像头接口, 音频 CODEC等。如果你的工程需要依赖从外界获取的数据,这些接口将是决定项目成败的关键。如果你就想要一个没那么多外设的板子,也最好选一个带有业界标准PMOD 或者 FMC 连接器的,如果未来你想要添加更多的接口,会方便很多。这些标准连接器将FPGA板卡和IO引擎(作为daughter card即插即用)解耦,使得你的FPGA板卡可以灵活地具有多种IO设计。

按钮, LED, 和显示屏:调试FPGA设计是一件非常麻烦地事情,和MCU不一样。在MCU中,你可以将print语句和断点插在代码中任意地方,而在FPGA中,则不存在这种操作,这也是让FPGA开发者很抓狂的事情。如果你的板子上有开关和LED的话,将会在FPGA设计和现实世界之间建立起直观反馈,因为LED可以将状态寄存器的当前状态显示出来(就像CPU设计中的状态机的当前状态)。然而,这都不是什么购买开发板的决定性因素,因为LED、按钮、开关、LCD什么的通过GPIO连接器很好添加。

资源数量:    资源量是FPGA一个非常重要的指标,一般以可编程逻辑单元的数量表示。可编程逻辑单元可以是LUTS,BRAM,DSP或者是IOB等。更加复杂的器件(例如Xilinx Versal)还有像AI、视频、音频单元等。了解这些资源的数量非常重要,因为它决定了你的工程的大小上限。

对于同一个工程,由于各个厂家的芯片CLB结构的不同,在不同硬件平台上的资源使用数量也不尽相同。

    FPGA将配置数据(bitstream)存储在SRAM单元中,因为SRAM是易失性存储器,每当芯片掉电,程序就会丢失。为了解决上述问题,FLASH(老板子上还在用EEPROM)存储器可以在掉电情况下用来存储bitstream数据。每次上电,FPGA检查Flash中的码流,并自动进行配置。
   另一种重要的存储器则是板上的外部易失性存储,最常见的就是DDR SDRAM。这在你的工程需要本地存储数据时十分有用,因为片上BRAM资源一般非常有限,而快速的DDR读写数据形式很好的解决了这个问题。

Utrascale+器件的资源列表

EDA工具链:    EDA工具是大家决定选择哪家开发板的决定性因素,对于初学者来说,易用是第一要考虑的,厂商的Q&A论坛,相关whitepaper,userguide文档的齐备性,软件免费版本是否能方便地获取也十分重要    开源EDA作为学习使用,也可以考虑,像ICEStorm就对Lattice器件进行了逆向工程,整个软件大小只有300M(相对来说,Xilinx软件安装程序达30G),运行速度非常快。软件的一些使用限制也要搞清楚,比如Xilinx 7系列以下芯片只能用ISE来进行设计。

编程界面:    编程下载模块将编译好的码流从PC下载到FPGA中,最常见的标准有:

-JTAG

-USB

-SPI - Flash

-Micro SD card

    对于初学者,请确保你的板子上有USB接口,否则你就必须花钱买一个JTAG下载器,. Digilent的这篇文章

https://blog.digilentinc.com/how-to-program-your-fpga-there-are-four-ways/

就解释了所有这4种下载方式的细节。

PLLs, 时钟资源以及工作频率:    这部分可能就不是初学者所能理解的了,但对于有一些开发经验,想让自己的设计满足特定需求的人来说,依然十分重要。在进行网络相关的设计时(需要维持精确的数据率以及从数据中恢复时钟),需要特别注意时钟资源,工作频率和最大频率对功耗/热耗散特性影响明显。

特定应用需求:如果你是想买个FPGA开发板来评估手边的一个特定应用需求,则对需求的深度挖掘是必须要做的,例如:

- 机器学习, DSP, RF 相关项目需要大量LUT和DSP资源来进行MAC运算.

- 机器人, 仪器以及图像处理相关项目一般需要SoC系统来运行常规软件,并在使用RTOS时对工程进行动态调整。

- 数据采集, 实时视频处理以及基于包的通信相关项目需要大量存储数据,因此大容量DDR和更快速的存储器接口.

最后,对于大多数人来说,最大的决定性因素则是:预算:    FPGA还算是比较昂贵的器件了(相对于MCU或者软件来说),这给大家制造了一个比较大的入门障碍,因此找到一款买得起而且用起来不心疼的FPGA开发板十分重要。$100-200的价格范围是一个比较合适的预算区间,$50左右的也有,但就是要在上述特征中做一个艰难的取舍了。当然,以上是美国市场的情况,在中国,你可以在X宝买到便宜到难以置信的二手板子,具体可以参看之前的一篇推送 5块钱的ZYNQ开发板最佳推荐:   在考虑到上面所有因素之后,我们给出了综合性价比最好的一些建议,至于预算,$100-300是一个黄金区间SoC FPGA推荐    $200以内最佳的SoC FPGA一定是PYNQ - Z2 (/Z1)原因如下:PYNQ开发板外设齐全,核心芯片是一个Zynq Z7020 SoC,逻辑资源充沛.无缝集成了python环境,只需安装设置好 jupyter notebook就可以使用.Zynq拥有成熟的生态,相关教程和书籍网上都能找到.开源社区中有大量 PYNQ 工程实例官方网站有更详细的feature介绍 http://www.pynq.io/board.html

PYNQ开发板的横向比较,板子都是粉色(PINK)的

    可以看到,PYNQ-Z1 和 PYNQ-Z2唯一的区别就是音频codec和header,Z2稍好但其实和Z1没有太大本质区别。   另一个推荐是Terasic DE-10 Nano,价格 $130 ($110 for academic) ,基本上性价比算非常高了,除此之外,如今非常流行的MiSTer project(使用现代FPGA实现的怀旧小游戏模拟器)就是完全基于DE10-Nano开发板,这个工程在狂热的游戏玩家和电脑工程师圈里备受推崇。DE10-Nano开发板使用了110K LE的CycloneV作为核心FPGA,其参数如下:

DE10-Nano开发板的详细参数

   这个板子需要用Intel的EDA工具进行设计,因为有MiSTer project的存在,板子的相关教程和社区资料也相对完善。

DE10-Nano开发板的正面   第三个推荐则是Zturn开发板,这板子什么都好,就是没有 USB-JTAG编程接口。唯一的编程方式是使用micro SD卡或者JTAG下载器。如果你不介意或是已经有了JTAG下载器,可以考虑一下。介绍:http://www.myirtech.com/list.asp?id=502

Zturn开发板参数   如果你不想要开发板上那么多外设,只是把所有的GPIO留出来,那么第4个选择则是Ultra96 这个大家伙。这个开发板基于Zynq ultrascale+ FPGA,售价$249,功能十分强大,初学者用有点浪费...

Ultra96开发板架构

传统FPGA推荐:   Digilent Arty A7可入选最佳,理由如下:大量外设和接口.

可编程逻辑资源丰富

支持Xilinx免费EDA工具的最新版本(Vivado Webpack)保证外设可以通过安捷伦PMOD connector进行连接.详尽的支持文档和参考设计以及丰富的社区. 两个版本分别是Arty A7-35T 以及Arty A7-100T . 根据预算选择即可,外设都是一样的。

Digilent Arty A7开发板参数

Digilent Arty A7售价为$129起,板子颜值还不错

   另一个推荐则是Basys 3开发板,核心FPGA为XC7A35T-1CPG236C(看来A7-35T是开发板的一个香饽饽), 唯一的不足是其没有ethernet接口。.

Digilent Basys 3售价为$170左右起

付不起$100怎么办?    不用担心,这个价位依然有非常不错的FPGA推荐...比如Digilent Cmod A7 以及Sparkfun Alchitry Cu。

Cmod A7 $75就能搞定Alchitry Cu 基于Lattice iCE40 HX, 并且支持全开源的ICEStorm工具进行开发.

Alchitry Cu售价$50左右

    如果你真的打算买一个很便宜的开发板,也请看看下面这篇介绍,里面的廉价开发板会让你挑花眼的:https://www.joelw.id.au/FPGA/CheapFPGADevelopmentBoards(改天再把这篇介绍介绍,很多宝藏在里面)

当然,所有的这些开发板,都离不开学习资源和社区支持:

   FPGA和MCU开发很不一样,没有stackoverflow, 开源资料少。一但开发中遇到问题,可能只能论坛上发发贴子,期待有人遇到同样的问题并告诉你解决方法,作为初学者,板子的参考设计、原理图以及用户手册非常重要。

  - 推荐一个很好的学习资源,相信很多人都知道-The Zynq Book by Xilinx.

  - 另外,一些板子还有自己的粉丝群,比如DE10-Nano开发板围绕 MiSTer project 有相当多的死忠.

看到这里,各位对这些开发板有什么看法,或者有什么更好的开发板选择建议么?可以留言回复 : )
注明:本内容来源网络,不用于商业使用,禁止转载,如有侵权,请来信到邮箱:429562386ⓐqq.com 或联系本站客服处理,感谢配合!

用户登陆

    未注册用户登录后会自动为您创建账号

提交留言