<<<<<<< HEAD ======= >>>>>>> 60a8f64d0414dcd5cb8612f64b46979443258e0b Spartan7入门学习FPGA开发板 - Seeed产品文档

Spartan7入门学习FPGA开发板

Spartan Edge Accelerator Board (也称为Spartan-7 FPGA开发板,简称SEA) 是轻量级的FPGA开发板,它基于Xilinx Spartan-7芯片并遵循Arduino扩展形态。它可以与Arduino一起用作Arduino扩展板形态或者独立的FPGA开发板。因此,您可以将其用作Arduino扩展来驱动LCD和摄像头,也可以用作独立的FPGA开发板。

FPGA

当谈到Ardunio FPGA时,总是提到第一个推动者Arduino MKR Vidor 4000。与官方的Arduino MKR Vidor 4000相比,Spartan Edge Accelerator Board具有类似的性能,但价格不到其一半!

Spartan-7 是Xilinx的FPGA系列中最新、最具成本效益的FPGA芯片,每瓦提供了同类最佳的性能。 Spartan Edge加速器板可以高达100Mhz的时钟速度运行,并提供12.8K逻辑单元和360Kb Block RAM。驱动相机或HDMI显示器只是小菜一碟。该开发板具有丰富的外围设备和接口,可玩性极强。 例如一个8位ADC,一个6轴加速度计,两个RGB LED,一个MINI HDMI接口,一个CSI摄像头接口,两个Grove接口等。总而言之,它将成为制造商和爱好者的理想FPGA板。

ESP32

此外,该板还具有用作无线核心的板载ESP32芯片。它支持802.11 b / g / n 2.4GHz WiFi以及具有BLE的Bluetooth 4.1。 只需一块板就可以使您的Arduino具有FPGA和无线功能,这并不令人惊奇吗?

Arduino FPGA应用程序界面(API)

最重要的是,即使您对FPGA理论一无所知,我们仍提供完整的Arduino FPGA API,可帮助您通过Arduino IDE来使用FPGA资源去控制FPGA I/O。 Spartan Edge Accelerator Board将为Arduino提供曾经无法想象的功能,例如边缘技术、图像识别、信号采样和处理等。

产品特性

高速图像处理

  • 集成的mipi, mini HDMI接口
  • 支持Raspberry Pi摄像头v1.0 (OV5640)
  • 最大支持30fps图像传输

加密物联网

  • 带有ESP32的IoT WiFi和蓝牙
  • 支持AWS、Azure和其他云服务
  • 支持软件加密算法

多个输入/输出端口扩展

  • 20个用户定义的扩展I/O端口(FPGA独立模式)
  • 10个用户定义的扩展I/O端口(Arduino扩展模式)
  • 针对Arduino的完整FPGA应用程序界面

板载功能模块

  • 8位 ADC & DAC
  • 6轴加速度计和陀螺仪
  • 2个用户RGB LEDs&按键

两种定制的开发模式

  • Arduino扩展模式(Shield Mode)
  • FPGA独立模式(Stand Alone Mode)

注意:用户可以根据不同的需求选择不同的排针,并根据自己的开发需求进行焊接。

目标用户

  • Arduino开发人员
  • 物联网开发人员
  • FPGA开发人员

适用场景

  • MIPI摄像机输入和HDMI输出Vivado工程
  • 板载LED,DIP开关,ADC和DAC参考示例
  • 机载陀螺仪
  • 为Arduino提供GPIO / UART / ADC / DAC / RGB-LED扩展
  • 信号发生器(需要Arduino配置)
  • ESP32控制信号发生器
  • 使用AWS GreenGrass IoT平台
  • 颜色识别和物体跟踪情况
  • 图形识别(三角形,圆形和正方形识别)
  • 数字字符识别
  • FPGA中的AES加密和解密算法实现
  • 在FPGA中实现PID算法

更多应用将被更新.............

更多信息请访问此Github页面

规格参数

参数 数值
FPGA
FPGA芯片 Spartan-7 XC7S15
逻辑单元 12,800
Slics 2000
CLB触发器 16,000
高大分散内存 (Kb) 150
模块内存/FIFO w / ECC (36 kb each) 10
总内存 (Kb) 360
时钟管理 (1 MMCM + 1 PLL) 2
DSP Slices 20
无线
无线芯片 Espressif ESP32-D0WDQ6
WiFi 802.11 b/g/n 2.4GHz
蓝牙 Bluetooth 4.1 with BLE
外围设备
视频 Mini HDMI x1
相机 CSI/MIPI接口 x1 (兼容Raspberry Pi相机 V1 - OV5640)
SD卡 Micro SD/TF卡槽 x1
FPGA GPIO 10针头 (IO9~IO0)
Arduino GPIO 32针头(Arduino form factor)
Grove Grove连接头 x2 (I2C/D2)
LED Monochrome LED x2
RGB LED x2
按钮 启动 x1
重置 x1
FPGA重置 x1
用户 x2
开关 电源模式开关x1
5通道DIP开关 x1
供电
工作电压 5V
输入输出电压 5V
供电模式 USB Type C 5V
VIN 8~17V
Arduino Micro USB 5V
其他
ADC 8位 ADC1173
加速度计和陀螺仪 6轴 LSM6DS3TR

Attention

SEA的IO电压为5V,而FPGA的IO电压为3.3V,因此我们制作了一个分压器以使IO电压兼容。分压后,SAMD21系列的3.3V IO电压将小于3.3V,不足以驱动FPGA的IO。因此,目前SEA开发板仅支持5V IO的Arduino板,例如Arduino UNOSeeeduino V4.2.

硬件概述

编号 细节
1. FPGA : XC7S15-1FTGB196C
2. WiFi/Bluetooth : ESP32-D0WDQ6
3. 6轴加速度计和陀螺仪: LSM6DS3TR
4. DAC : DAC7311IDCKR
5. Buck-DCDC : TPS62130
6. USB-to-UART : CP2102-GMR
7. USB : Type-C
8. Mini HDMI
9. CSI接口 :MIPI相机(兼容Raspberry Pi相机V1 - OV5640)
10. Arduino接头:与Arduino UNO兼容
11. DIP开关 :
K1-K4用户开关
K5开关FPGA编程模式
->>>> JTAG : 使用Xilinx官方编程工具
->>>> Slave : 使用ESP32对FPGA进行编程
12. ESP32按钮:Boot和RST
13. FPGA按钮:USER1 USER2 FPGA_RST
14. 用户定义LED: L1/L2/RGB1/RGB2
PWR : 打开
FPGA_DONE : 在对使用esp32的FPGA编程后亮起
15. P电源开关:
USB->由USB Type C供电(5V DC)
5V->由VIN引脚供电 (8~17V DC)
16. 电源模式:
OFF->隔离Arduino和Shield的电源
ON->连接Arduino和Shield的电源
17. DAC输出和ADC输入接头
18. FPGA IO : IO9~IO0
19. FPGA JTAG下载界面
20. Grove连接头 : 1x I2C; 1x D2&D3
21. 陶瓷贴片天线
22. ADC : ADC1173
23. SPI闪存: W25Q32JVZPIG
24. 模拟开关:DG2788A
25. LDO : XC6221B102MR
26. LDO : RT9013-18GB
27. LDO : CJ1117-3V3
28. SD卡槽: Micro SD/TF卡

入门教程

Spartan Edge Accelerator Board可以在两种模式下工作:

  • Arduino扩展模式
  • FPGA独立模式

简而言之,它可以充当Arduino的扩展板以实现Arduino FPGA和无线功能。它也可以充当没有Arduino的FPGA开发板。

Arduino扩展模式

在此Wiki中,我们使用Seeeduino V4.2,您也可以使用Arduino UNO,它们彼此完全兼容。

硬件

所需部件

硬件连接

  • 第一步. 将Micro SD卡或TF卡插入SD卡插槽
  • 第二步. 将SEA板插入Arduino
  • 第三步. 可使用以下三种方法之一为系统供电
电源端口 输入电压 电源开关位置 电源模式位置
由SEA板USB Type C端口供电 5V DC USB ON
由Seeeduino V4.2 micro USB端口供电 5V DC -- ON
由Seeeduino V4.2直流端口供电 8~17V DC 5V ON
Spartan Edge Accelerator Board Work with Arduino
Figure 2. SEA板与Arduino一起使用

Attention

您也可以同时为SEA板和Arduino供电,但是请确保将Power Mode Position(电源模式位置)设置为**OFF**。 只有这样,系统电源才会被隔离,您才可以分别为Arduino和SEA板供电。


Spartan-7开发板ESP32启动

首先,要使用Arduino,我们应该将SD卡中的比特流(FPGA逻辑)加载到板载FPGA(xc7s15)中。以下库将向您展示如何通过板载ESP32做到这一点。

Spartan-7开发板的库

该库的目的是通过板载ESP32将SDCard中的比特流(FPGA逻辑)加载到板载FPGA(xc7s15)。

软件开发环境是Arduino IDEESP32板支持

从1.6.4版开始,Arduino允许使用Boards Manager安装第三方平台软件包。 我们提供了适用于Windows,Mac OS和Linux(32位和64位)的软件包。

  • 在1.8或更高版本上安装当前的新的Arduino IDE。请访问Arduino官网
  • 启动Arduino并打开“偏好设置(Preferences)”窗口。
  • Additional Board Manager URLs 部分输入https://dl.espressif.com/dl/package_esp32_index.json。您可以添加多个URL,并用逗号分隔。
  • 从 'Tools(工具) > Board(开发板)'菜单中打开并安装 esp32 平台(安装后不要忘记从 'Tools(工具) > Board(开发板)'菜单中选择ESP32主板)。
  • 选择 tool->board->DOIT ESP32 DEVKIT

发布链接: https://dl.espressif.com/dl/package_esp32_index.json
开发发布链接:https://dl.espressif.com/dl/package_esp32_dev_index.json
如需更多详细信息,请单击此处


使用库
  • 1.下载ESP32启动库

将这个库添加到Arduino IDE中。

如果您不知道如何安装该库,请访问:

安装其他Arduino库

您可以在该库中找到两个示例文件夹

示例 描述
01LoadDefaultBitstream 本示例将SDCard文件/overlay/default.bit加载到FPGA
02LoadConfigBitstream 本示例将读取SDCard中的ini格式文件/board_config.ini,然后将由 **overlay_on_boot**值指定的比特流加载到FPGA。
  • 2.准备SD卡
    2.1 将SD卡格式化为FAT16 / FAT32文件系统。

2.2 在SD卡中创造一个命名为 overlay 的顶级子文件夹。
2.3 将您的比特流或样品比特流文件放入文件 overlay 中(必须具有扩展名.bit)。

Tip

样本比特流:由SPI接口控制的GPIO扩展,支持ADC / DAC / RGB-LED,请参见源代码.

2.4 如果您运行示例 ‘01LoadDefaultBitstream’, 请将 overlay 中的比特流文件重命名为 default.bit

2.5 如果您运行示例 ‘02LoadConfigBitstream’,请将文件board_config.ini 置于SD卡根目录。
2.6 将SD卡插入SEA板。

  • 3.上传示例
    3.1 通过USB Type-C连接线将SEA板连接到电脑,然后安装USB232驱动程序 (芯片CP2102)。 3.2 将电源开关(靠近USB Type-C插槽)转到USB侧,以打开开发板的电源。 3.3 在Arduino IDE打开一个示例程序。 3.4 如上一节所述,在Arduino IDE中检查开发板和端口设置。
    3.5 在SEA板上按下 'BOOT'按钮 并持续一秒钟以上,以强制ESP32进入Bootloader模式。
    3.6 在Arduino IDE中点击 '上传' 按钮来上传示例(已编译的二进制文件)到ESP32。

  • 4.运行示例
    4.1 确保从机(ON)侧板上的板载DIP-switch K5能通过其他设备(MCU)进行FPGA编程。 4.2 在SEA板上按下 'RST' 按钮以运行示例。
    4.3 示例运行几秒钟后,板上的FPGA_DONE(红色)LED将点亮。


Spartan Edge加速器板IO示例

以下教程将向您展示如何使用Arduino控制Spartan Edge加速器板的GPIO / ADC / DAC / RGB-LED资源。

  • 下载IO示例库:
  • 将此库添加到您的Arduino IDE。 如果您不知道如何安装该库,请访问:

安装‘Additional Arduino Libraries’

  • examples 文件夹中,选择任意示例并双击 '.ino' 文件。

  • 上传示例程序。如果您不知道如何上传代码,请访问如何上传代码.

FPGA独立模式

硬件

所需部件

只需使用USB Type-C数据线为SEA开发板供电。

软件

SEA开发板也可以用作传统的FPGA开发板。以下内容将向您展示如何在独立模式下使用它。

在本节中,您将学习用于项目创建、源文件管理、设计分析、约束定义以及综合和实现运行管理的项目模式功能。这可以用作快速参考。

首先,您应该下载vivado教程库,我们将需要一些存储文件。

  • 第一步:创建项目

启动Vivado

创建新项目

  1. 打开Vivada后,在入门页面选择 创建项目

  2. 在新建项目向导中选择 下一步

  3. S指定项目名称和位置(选择“创建项目子目录”为您的项目创建一个文件夹)

  4. 选择 下一步

  5. 选择 RTL Project 作为 Project Type 然后点击 下一步。(选择 此时不指定来源,然后不久后添加文件)

(根据您的源文件类型和设计任务,Vivado设计套件允许使用不同的设计入口点。 您可以选择合适的项目类型。)

  1. 选择项目的 xc7s15ftgb196-1 部分,然后单击Next,如图1所示。

  2. 点击 完成

图1.

Vivado IDE以默认布局打开project_tutorial,如图2所示。

图2.

流导航器 清晰地显示了基本设计过程。

来源**由**约束模拟资源**和**实用资源 组成。

设计运行 默认情况下会创建synth_1和impl_1。

Vivado的**运行状态** 在右上角显示。

  • 第二步:添加和创建文件

在这一步中,我们在项目中添加**test.v*test_pin.xdctest_sim.v。这些文件位于**vivado_tutorial/vivado_tutorial.srcs**的不同文件夹。*

  1. 在**流导航器**的**项目管理中**单击**添加资源**以添加**RTL 文件**。

  2. 选择 **添加或创建设计源**并点击下一步。

  3. 点击按钮img )并选择选项或单击 选项直接添加或创建文件,如图3所示。

图 3.
  1. 在这里,我们直接添加RTL文件。选择**Add Files**并在目录中添加文件**test.v**,如图4所示。
图 4.
  1. 点击 完成

  2. 在**流导航器**的**项目管理中**单击**添加资源**以添加**约束文件**。

  3. 选择 **添加或创建约束**然后点击下一步。

  4. 选择 添加文件**并添加您的约束文件 **test_pin.xdc,如图五所示。

    图 5.

  5. 点击 完成

  6. 在**流导航器**的**项目管理中**单击**添加资源**以添加**仿真文件**。

  7. 选择**添加或创建仿真源**,然后单击“下一步”。

  8. 单击**添加文件**,然后添加仿真文件** test_sim.v **,如图6所示。

    图 6.

  9. 点击 完成

    最后,我们添加的文件将出现在**Sources**中,如图7所示。

图 7.
  • 第三步:完善RTL设计

Vivado IDE包括RTL分析和IP自定义环境。它也具有几种RTL设计规则检查(DRC),用于研究提高RTL设计性能或功耗的方法。

  1. 在“流导航器”中选择“打开详细设计”以详细设计。

  2. 确保主工具栏中的布局选择器下拉菜单选择了默认布局。 精巧的设计支持各种分析视图,包括RTL网表,示意图和图形层次结构。 视图具有交叉选择功能,可帮助您调试和优化RTL。

  3. 在“ RTL网表”窗口中浏览逻辑层次结构,并检查原理图。您可以通过双击单元格以推入层次结构来遍历逻辑示意图,或者使用“逻辑示意图”弹出菜单中的“展开圆锥体”或“展开/折叠”之类的命令来遍历逻辑示意图。

  4. 在“示意图”中选择任何逻辑实例,然后单击鼠标右键以选择**转到源**或**转到定义**命令。

  5. 单击Vivado IDE底部的“消息”窗口,然后检查消息。

  6. 单击“消息”工具栏中的**全部折叠**按钮。

  7. 展开精致设计( Elaborated Design )和消息,如图8所示。

图 8.
  1. 单击链接之一,文本编辑器将打开RTL源文件,并突出显示相关行。
  2. 关闭编辑器界面。
  3. 通过单击“精制设计 (Elaborated Design )”窗口标题右侧的** X **,关闭精制设计,然后单击“确定”确认

  4. 第四步:使用IP目录

Xilinx IP目录提供对Vivado IP配置和生成功能的访问。 您可以通过多种方式对目录进行排序和搜索。 IP可以自定义,生成和实例化。

  1. 在**流导航器**的**项目管理中**单击**IP 目录(Catalog)**按钮

  2. 浏览IP目录以检查各种类别和IP过滤功能。

  3. 选择相应的IP,并在工具内执行IP的本机定制和配置,然后选择**OK**

  4. .单击窗口选项卡上的‘X’,关闭IP目录选项卡。

  5. 第五步:运行行为模拟

Vivado IDE集成了Vivado Simulator,使您可以在项目中添加和管理仿真源。 您可以配置模拟选项,以及创建和管理模拟源集。 在综合之前,您可以在RTL源上运行行为模拟。

  1. 在“流导航器”的“项目管理器”下,单击“设置”命令。将打开设置对话框,“项目设置”位于顶部,“工具设置”位于其下方,如图9所示。
图 9.
  1. 检查 Simulation(仿真) 页面上的可用设置,然后单击**Cancel** 以关闭对话框。
  2. 在“流导航器”中单击 运行仿真(Run Simulation) 命令,然后在自菜单中单击 运行行为仿真(Run Behaviora Simulation) ,如图10所示。
图 10.
  1. 将栏拖动到左侧,然后使用这些工具放大或缩小以查看适当的图像,如图11和图12所示。

图 11.

图 12.

  1. 单击图13右上角的**X**,然后单击**ok**以结束仿真。

图 13.

  • 第六步:查看设计运行设置

设计运行是一种配置和存储在综合和实施过程的不同步骤中可用的许多选项的方法。 您可以配置这些选项,并将配置另存为将来运行时要使用的策略。

  1. 在“流导航器”的“项目管理器”下,单击“设置”命令。

  2. 在项目设置中选择 Synthesis 界面。有关选项的完整说明,请参见*Vivado Design Suite User Guide: Synthesis*UG901).

  3. 在项目设置中选择 Implementation 界面。有关选项的完整说明,请参见 Vivado Design Suite User Guide: Implementation(UG904).

  4. 第七步:合成和实现设计

配置合成和实现运行选项后,您可以在 Design Runsrun synthesisrun implementation 或者单击按钮 img,或在 Flow Navigator 中单击相应的按钮以执行此操作。合成和实现设计时,vivado的 running status 显示在右上角。

​ 对于本教程,我们将在“设计运行”中运行这些步骤。

  1. 如图14所示,右键单击syth_1,然后选择 Launch Runs
图 14.
  1. 单击“确定”,运行状态显示在右上角,如图15所示。
图 15.
  1. 单击 Open Synthesized Design 以进行进一步的设计和分析。如图16所示,您可以看到 Report Timing SummaryReport Utilization 等。
图 16.
  1. 以相同的方式运行实现,如图17所示。
图 17.
  1. 点击 Open implemented Design 以查看实施后的报告

  2. 第八步:生成比特流文件

**Implementing the Design**之后,我们可以在**Design Runs**中看到综合并完成实现,如图18所示。

图 18.

在流导航器中单击**Generate Bitstream(生成比特流)** 。

  • 第九步:下载文件

在**Generate Bitstream(生成比特流)**之后,您可以通过两种方式将文件加载到FPGA。

您可以使用JTAG接口(在图19的右上角)将比特文件加载到vivado中的FPGA,或使用ESP32(在图19的右下角)将比特文件加载到FPGA。

图 19.

请遵循以下步骤,通过JTAG接口将比特流加载到FPGA

  1. 为开发板通电并连接Platform Cable USB II (或其他兼容传输线)。

  2. 在流导航器中点击 Open Target(打开目标)Auto Connect(自动连接)

  3. 成功连接到开发板后,单击**Program Device** 并选择比特文件,然后单击 Program,如图20所示。

图 20.
  1. 下载比特文件后,FPGA_DONE led 指示灯将点亮。

在此项目中,如果您按任意一个键或同时按下两个键('USER1'和'USER2'),'LED L1'会熄灭

原理图在线查看器

资源

技术支持

如果您有任何技术问题,请提交到我们的论坛

<<<<<<< HEAD ======= >>>>>>> 60a8f64d0414dcd5cb8612f64b46979443258e0b