SOPC开发流程和开发实例
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第1节SOPC开发流程和开发工具
SOPC设计包括硬件和软件两部分。
硬件设计:主要基于Quartus II和SOPC Builder。软件设计:基于Nios II IDE。
流程见图解析:
分析系统需求:在进行SOPC开发之前,首先必须确定系统的需求,如应用系统需求的计算性能、需要的带宽和吞吐量、需求的接口类型以及是否需求多线程的软件等。
建立Quartus II工程:每个开发过程开始时都应建立一个工程,Quartus II是以工程的方式对设计过程进行管理。在工程中建立顶层模块文件.bdf相当于传统电路设计中的电路板(PCB)。
定义和生成系统:在SOPC Builder中添加需要的功能模块(Nios II及其标准外设模块),完成后生成一个系统模块。
定制指令&定制外设逻辑:如果需要,用户可以定制指令和外设逻辑。(可参考第8章)
自定义的功能模块:当设计中现有模块不能满足设计要求时,可设计自己的功能模块。并在顶层模块中使用;
集成SOPC生成的系统到Quartus II工程 :在顶层模块中,分别将SOPC Builder 生成的系统模块、LPM功能模块以及用户自定义功能模块添加到顶层模块中; 连接各功能模块:然后将各个功能模块用连线连起来组成系统功能原理图。Altera的LPM模块 :在Quartus II软件中包含了大量的Altera公司提供的LPM 功能模块,相当与传统设计中除处理器以外的逻辑芯片(如74系列);
选择FPGA型号并进行管脚分配:为系统功能原理图选择芯片载体并为各个输入输出信号分配芯片的管脚;
进行编译选项设置:设置编译选项,从而让编译器按照用户设定来进行编译;编译硬件系统生成配置文件sof:编译系统生成硬件系统的配置文件*.sof和*.pof。编译系统是一个非常复杂的过程,包括优化逻辑的组合、综合逻辑、适配FPGA、布线以及时序分析等步骤。
下载配置文件到FPGA器件:将配置文件.sof下载到FPGA,将可执行文件.elf 下载到RAM。
设置软件运行硬件环境属性:设置好软件运行的硬件环境属性后,便可进行编译、链接和调试、运行程序。
编译软件:对用户程序进行编译,生成可执行文件*.elf。
ISS运行/调试:接下来在IDE的指令集仿真器(ISS)上仿真软件和运行/调试软件。
在目标板上运行/调试软件:在目标板上反复调试软件。
使用IDE编程工具烧写配置文件和软件代码:最后利用IDE的编程工具将配置文件烧写到FPGA的配置芯片或Flash,将可执行文件*.elf编程到Flash中。
(1)硬件开发
用SOPC Builder软件从NiosII处理器内核和NiosII开发套件提供的外设列表中选取合适的CPU、存储器以及各外围器件,并定制和配置它们的功能;分配外设地址及中断号;设定复位地址;用户也可以添加用户自身定制指令逻辑到NiosII内核以加速CPU性能;添加用户自己设计的IP模块。编译Quartus II工程,对HDL文件进行布局布线,从HDL源文件综合生成一个适合目标器件网表,生成FPGA配置文件(.sof);
用下载电缆(如 ByteBlaster II),将配置文件下载到目标板上。硬件校验完成后,可将新的硬件配置文件下载到目标板上的非易失存储器(如EPCS器件)。
2)软件开发
软件开发使用Nios II IDE,它是一个基于Eclipse IDE架构的集成开发环境,它包括:GNU开发工具(标准GCC编译器,连接器,汇编器和makefile工具等);
基于GDB的调试器,包括软件仿真和硬件调试;
提供用户一个硬件抽象层HAL;
提供嵌入式操作系统MicroC/OS-II和LwTCP/IP协议栈的支持;
提供帮助用户快速入门的软件模板;
提供Flash下载支持(Flash Progrmmer 和QuartusII Programmer)
使用SOPC Builder生成系统后,可以直接使用Nios II IDE开始设计C/C++应用程序代码。Altera提供外设驱动程序和硬件抽象层(HAL),使用户能够快速编写与低级硬件细节无关的Nios II程序;除了应用代码,用户还可以在Nios II IDE 工程中设计和重新使用定制库。
第2节SOPC硬件开发实例
SOPC Altera A V ALON SOPC硬件开发实例
第一步是要进行需求分析,根据这个要求来建立硬件系统。
电子钟的设计要求:
在液晶屏上显示日期、时间;
可以设置日期、时间;
根据系统要求实现的功能,电子钟的设计要用到的外围器件有:
LCD:电子钟显示屏幕;
按键:电子钟设置功能键;
Flash存储器:存储软、硬件程序;
SRAM存储器:程序运行时将其导入SRAM。
根据所要用到的外设、要实现的功能以及开发板的配置,在SOPC Builder中建立系统要添加的模块包括:Nios II CPU、定时器、按键PIO、LCD控制器、AVALON 三态桥、外部RAM接口、外部Flash接口。
使用的开发环境如下:
WinXP操作系统
Nios II 6.0嵌入式处理器
Quartus II 6.0
基于Cyclone II 的SOPC开发板
2.2.1 创建工程
进行完需求分析之后,进行硬件系统的创建。
首先必须建立一个Quartus II 的工程,
步骤如下:
Quartus II 6.1(32 bit),启动Quartus II软件;→Quartus II 6.1→Altera→程序→1. 开始
New Project Wizard,出现Introduction页面,该页面介绍所要完成的具体任务,点击next。→2.选择File菜单