今天给大侠带来今天带来FPGA 之 SOPC 系列第二篇,SOPC开发流程及开发平台简介相关内容,希望对各位大侠的学习有参考价值,话不多说,上货。
本篇首先详细介绍了SOPC开发的基本流程,然后通过实际操作的视频,生动详细的讲述了一个简单的SOPC系统的设计过程,包括使用Quartus II、SOPC Builder定制Nios II系统以及利用Nios II IDE进行应用程序开发。本篇力求以实例的途径让读者以最快的方式了解SOPC开发以及各软件的使用,从而激起读者对SOPC的兴趣。
以下为本篇的目录简介:
- 2.1 SOPC开发流程
- 2.2 简单SOPC实例开发任务及步骤
- 2.3 分析系统需求
- 2.4 使用Quartus II建立工程
- 2.5 使用SOPC Builder创建Nios II系统
- 2.6 集成Nios II系统到Quartus II顶层模块
- 2.7 设置编译选项并编译硬件系统
- 2.8 使用Nios II IDE建立用户程序
- 2.9 下载硬件设计到目标FPGA
- 2.10 调试/运行程序
2.1 SOPC开发流程
SOPC设计包括以Nios II软核处理器为核心的嵌入式系统的硬件配置、硬件设计、硬件仿真、IDE环境的软件设计、软件调试等。
SOPC的开发流程通常包括2个方面:基于Quartus II、SOPC Builder的硬件设计、基于NiosII IDE的软件设计。对于比较简单的NiosII系统,一个人便可执行所有设计。对于比较复杂的系统,硬件和软件设计可以分开进行。
SOPC的开发过程中要使用到Quartus II、SOPC Builder以及Nios II IDE,三者之间关系如下所示:
- SOPC Builder:
它是Nios II软核处理器的开发包,用于实现Nios II系统配置、生成以及与Nios II系统相关的监控和软件调试平台的生成; - Quartus II:
用于完成Nios II系统的分析综合、硬件优化、适配、配置文件编程下载以及硬件系统测试等; - Nios II IDE:
用于完成基于Nios II系统的软件开发和调试,并可借助其自带的Flash编程器完成对Flash以及EPCS的编程操作。
硬件开发(1):
- 用SOPC Builder软件从NiosII处理器内核和NiosII开发套件提供的外设列表中选取合适的CPU、存储器以及各外围器件,并定制和配置它们的功能;
- 分配外设地址及中断号;
- 设定复位地址;
- 用户也可以添加用户自身定制指令逻辑到NiosII内核以加速CPU性能;
- 添加用户自己设计的IP模块。
硬件开发(2):
- 将生成的Nios II系统集成到之前建立的Quartus II工程;
- Quartus II工程中可加入Nios II系统以外的逻辑。其可以是自身定制的硬件模块,也可以是从Altera或第3方IP供应商中得到的其它现成的知识产权设计模块。
- Quartus II软件用来选取具体的Altera FPGA器件型号,然后为Nios II系统上的各I/O口分配管脚。
硬件开发(3):
- 编译Quartus II工程,对HDL文件进行布局布线,从HDL源文件综合生成一个适合目标器件网表,生成FPGA配置文件(.sof);
- 用下载电缆(如 ByteBlaster II),将配置文件下载到目标板上。硬件校验完成后,可将新的硬件配置文件下载到目标板上的非易失存储器(如EPCS器件)。
软件开发:
软件开发使用Nios II IDE,它是一个基于Eclipse IDE架构的集成开发环境,它包括:
- GNU开发工具(标准GCC编译器,连接器,汇编器和makefile工具等);
- 基于GDB的调试器,包括软件仿真和硬件调试;
- 提供用户一个硬件抽象层HAL;
- 提供嵌入式操作系统MicroC/OS-II和LwTCP/IP协议栈的支持;
- 提供帮助用户快速入门的软件模板;
- 提供Flash下载支持(Flash Progrmmer 和QuartusII Programmer)。
软件开发(1):
- 使用SOPC Builder生成系统后,可以直接使用Nios II IDE开始设计C/C++应用程序代码。Altera提供外设驱动程序和硬件抽象层(HAL),使用户能够快速编写与低级硬件细节无关的Nios II程序;
- 除了应用代码,用户还可以在Nios II IDE 工程中设计和重新使用定制库。
软件开发(2):
- 即使在没有软件开发的目标板的情况下,也可以经过编译、连接后通过Nios II指令仿真器(ISS)运行和调试代码。
- 一旦有一个目标板,用户就可以使用下载电缆下载软件到