### My_First_Niosii:FPGA入门详细示例
#### 一、硬件设计概述
本教程旨在通过一个详细的示例来帮助读者理解如何在FPGA开发板上创建一个基于软核处理器的SOPC(系统级芯片)系统,并在其上运行软件。
##### 重要特性
Nios II处理器核心是一种软核中央处理单元(CPU),可以被编程到Altera的现场可编程门阵列(FPGA)上。本教程涵盖了硬件创建和软件构建的基本流程。为了顺利完成本教程,假设读者已经安装了最新的Quartus II和Nios II EDS软件,并对Windows操作系统有相当的熟悉度。如果使用的是不同版本的Quartus II和Nios II EDS,操作过程中可能会有一些小差异。此外,还假设读者拥有一块DE2-115开发板(其他基于Altera FPGA芯片的开发板也支持)。
示例Nios II标准硬件系统提供了以下必要的组件:
- Nios II处理器核心:这是执行软件的地方。
- 片上存储器:用于存储和运行软件。
- JTAG接口:用于主机计算机与目标硬件之间的通信(通常使用USB-Blaster电缆)。
- LED外设输入/输出(PIO):用作指示器。
#### 二、硬件设计创建流程
本节描述了创建硬件系统的流程,包括SOPC功能的集成。
##### 1. 创建新项目
启动Quartus II,然后选择“文件”->“新建项目向导”,开始创建一个新的项目。如图1-1和图1-2所示。
- **图1-1**:开始创建新项目
- **图1-2**:新建项目向导
##### 2. 选择工作目录
接下来,选择一个工作目录来存放项目的文件。这可以通过点击“下一步”来完成,如图1-3所示。
- **图1-3**:选择工作目录
##### 3. 设置项目名称
设置项目名称为"My_First_Niosii",并确保选择正确的设备系列和具体型号。这里选择的设备是基于Altera DE2-115开发板上的FPGA。点击“下一步”继续。
##### 4. 添加文件
添加必要的硬件描述文件,这些文件描述了SOPC系统中的各个组成部分。通常,这些文件包括处理器核心、存储器和其他外设的定义。点击“下一步”继续。
##### 5. 配置设置
配置项目的高级设置,包括编译选项、综合设置等。根据具体需求调整这些设置,以确保生成最优化的硬件设计。点击“下一步”继续。
##### 6. 完成项目创建
完成项目创建后,点击“完成”按钮。此时,Quartus II将自动打开新项目,并准备好进行硬件设计。
#### 三、下载硬件设计至目标FPGA
完成硬件设计后,需要将其下载到目标FPGA中。这一过程通常涉及以下几个步骤:
1. **编译设计**:使用Quartus II进行编译,确保没有错误。
2. **生成比特流文件**:编译完成后,生成用于编程FPGA的比特流文件。
3. **使用编程工具**:使用USB-Blaster或其他合适的编程工具将比特流文件下载到FPGA中。
#### 四、Nios II IDE构建流程
Nios II IDE是专门用于编写、编译和调试Nios II处理器程序的集成开发环境。
##### 1. 创建hello_world示例项目
- 打开Nios II IDE,选择“文件”->“新建”->“项目”。
- 选择项目类型为“Nios II Application Project”,并指定项目名称和位置。
- 选择硬件平台为目标FPGA,并指定所需的处理器配置。
- 点击“完成”以创建项目。
##### 2. 构建并运行程序
- 在项目中编写简单的C或汇编代码。
- 使用IDE中的“构建”菜单选项来编译项目。
- 使用“运行”选项将程序下载到目标FPGA,并在Nios II处理器上运行。
##### 3. 编辑并重新运行程序
- 对程序进行修改。
- 重新编译项目。
- 重新运行程序以验证更改的效果。
##### 4. LED闪烁原理
- 理解LED闪烁的原理涉及到对PIO寄存器的操作。
- 通过编写代码来控制PIO寄存器,从而实现LED的开关操作。
##### 5. 应用程序调试
- 使用Nios II IDE提供的调试工具来定位和修复程序中的错误。
- 可以设置断点、查看变量值、单步执行代码等。
##### 6. 配置系统库
- 调整系统库的配置,以适应不同的应用需求。
- 这包括内存管理、中断处理等方面。
#### 五、编程CFI Flash
除了将程序加载到RAM中运行之外,还可以将程序永久存储在CFI Flash中,以便每次上电时自动运行。
##### 1. 修改SOPC项目
- 修改SOPC项目,使其包含CFI Flash控制器。
- 确保硬件设计支持从CFI Flash启动。
##### 2. 修改myfirst_niosii.v文件
- 编辑myfirst_niosii.v文件,以反映硬件设计中的更改。
##### 3. 重新分配引脚
- 根据硬件设计的需求,可能需要重新分配某些引脚。
##### 4. 重新配置系统库
- 根据新的硬件配置,可能需要对系统库进行相应的调整。
##### 5. 编程CFI Flash
- 使用适当的工具(如Quartus Programmer),将程序加载到CFI Flash中。
通过本教程,读者可以掌握在Altera DE2-115开发板上创建和运行基于Nios II处理器的SOPC系统的完整流程。这不仅包括硬件设计的创建和下载,还包括软件开发、调试以及CFI Flash的编程等关键环节。