目录
第1 章 我的第一个FPGA 工程 ............................................................................................................................. 3
1.1. 概述...................................................................................................................................................................... 3
1.2. 准备工作 ............................................................................................................................................................ 3
1.3. 创建 FPGA 工程 ............................................................................................................................................. 4
1.4. 拓展实验 .......................................................................................................................................................... 22
1.5. 解释.................................................................................................................................................................... 24
第2 章 我的第一个Qsys 系统 ............................................................................................................................. 27
2.1. 概述.................................................................................................................................................................... 27
2.2. 准备工作 .......................................................................................................................................................... 27
2.3. 创建 Qsys 系统 .............................................................................................................................................. 27
2.4. 将 Qsys 系统整合到 Intel Quartus 软件工程中 ................................................................................. 36
第3 章 使用System Console 与FPGA 设计交互 ........................................................................................... 41
3.1. 概述.................................................................................................................................................................... 41
3.2. 准备工作 .......................................................................................................................................................... 41
3.3. 准备 DE10-Nano 开发板 ........................................................................................................................... 41
3.4. 开启 System Console 之旅 ........................................................................................................................ 42
第4 章 我的第一个HPS 系统 .............................................................................................................................. 50
4.1. 概述.................................................................................................................................................................... 50
4.2. 准备工作 .......................................................................................................................................................... 50
4.3. 实例化硬核处理器系统 ............................................................................................................................. 50
4.4. 在 Quartus 工程中集成 Qsys 系统 ......................................................................................................... 64
第5 章 使用U-Boot 与FPGA 设计交互 ........................................................................................................... 77
5.1. 概述.................................................................................................................................................................... 77
5.2. 准备工作 .......................................................................................................................................................... 77
5.3. 准备 Terasic DE10-Nano 开发板 ............................................................................................................ 78
5.4. 使用 U-Boot 指令与 FPGA 设计交互 .................................................................................................. 82
5.5. 使用 U-Boot 应用与 FPGA 设计交互 .................................................................................................. 85
第6 章 使用Linux 与FPGA 设计进行交互 ..................................................................................................... 91
6.1. 概述.................................................................................................................................................................... 91
6.2. 准备工作 .......................................................................................................................................................... 91
6.3. 准备 DE10-Nano 开发板 ........................................................................................................................... 92
6.4. 准备 Linux 示例的材料 .............................................................................................................................. 97
1
6.5. 构建两个 devmem 程序来与 FPGA 设计进行交互 ........................................................................ 97
6.6. 构建一个 Linux 应用程序来与 FPGA 设计进行交互 ................................................................. 101
6.7. 加载设备树覆盖与 FPGA 设计进行交互 ........................................................................................ 111
附录 .................................................................................................................................................................................. 118
联系友晶 ..................................................................................................................................................................... 118
2
第1章 我的第一个FPGA 工程
1.1.概述
本教程将向您演示如何创建Hello World的硬件工程:LED闪烁程序。这是一个简单的练习,
可以帮助您开始了解如何使用Intel Quartus软件进行FPGA开发。
在本章节中,您将学习如何编译Verilog代码,进行引脚分配,创建时序约束,然后对FPGA
进行编程,驱动开发板上8个绿色LED的其中一个。您将使用一个50MHz的时钟输入(来自
板载晶振)来驱动计数器,并将LED指定给其中一个计数器的输出位。
教程级别:初学者
1.2.准备工作
◼ 硬件
⚫ Terasic DE10-Nano套件
基于 Cyclone V SoC FPGA 芯片,Terasic DE10-Nano 开发板为创客、loT 开发人员和教
育工作者提供可重配置的硬件设计平台。
◼ 软件
⚫ Intel Quartus Prime软件套件Lite版
此版本 FPGA 设计软件非常适合初学者,因为它可以免费下载而且不需要任何许可文
件。您可以通过链接:https://fpgasoftware.intel.com/?edition=lite 下载。
注:安装文件较大(几千兆字节),而且需要花费很长时间才能下载和安装。为了最大
限度减少下载时间和所需的磁盘空间,我们建议您只下载本练习中所需的项目。取消选
中的“Select All”, 仅选择 Quartus Prime 和 Cyclone V device support。如下图。
当下载并安装完 Intel Quartus 软件,您可以开始准备创建工程。
? 为什么Intel Quartus 软件下载如此之大(请参考1.5 章节的解释)
注:本文档中的截图基于 v17.0。使用较早版本或更高版本的 Intel Quartus 软件时,用
户体验可能有所差异。
3
图 1-1 Intel Quartus Prime 安装选项
1.3.创建 FPGA 工程
步骤 1. 创建 Intel Quartus 软件工程
1a. 打开 Intel Quartus Prime 软件套件 Lite 版本
图 1-2 Intel Quartus Prime 软件窗口
4
1b. 打开 New Project Wizard
图 1-3 点击 New Project Wizard 按钮
1c. 在 Introduction 对话框下点击 Next
图 1-4 Introduction 对话框
5
1d. Directory,Name,Top-Level Entity
选择目录,用于存放工程。命名工程为“blink”,并保存在 IntelFPGA_lite 文件
夹。点击 Next。
当提示创建目录时,选择 Yes。
图 1-5 工程位置明细
图 1-6 创建目录对话框
此工程目录用于本示例教程,但对于以后创建新的工程我们不做推荐。
? 以后的工程文件放在哪里 (请参考1.5 章节的解释)
6
1e. 工程类型
选择 Empty Project,然后点击 Next。
图 1-7 Project Type 对话框
1f. 添加文件
此处不必添加任何文件。点击 Next。
图 1-8 Add Files 对话框
7
1g. Family, Device & Board Settings
注:您可能需要展开窗口查看更多器件名称。
选择以下器件:
• Family : Cyclone V
• Device : Cyclone V SE Base
• Device name : 5CSEBA6U23I7
注:为了选择指定的器件,您需要点击向上/向下箭头,滚动器件支持清单直到
发现 5CSEBA6U23I7。或者您可以在 Name filter 框中输入器件名称,以缩小器
件清单。您也可能要展开 Name 区域查看整个器件名称。
图 1-9 Family 和 Device 对话框
点击 Next。
1h. EDA Tool Settings
我们将使用默认的 EDA 工具和设置,所以不需要改变。点击 Next。
8