SOPC嵌入式系统基础教程:第2章 SOPC开发流程及开发平台简介_第1页
SOPC嵌入式系统基础教程:第2章 SOPC开发流程及开发平台简介_第2页
SOPC嵌入式系统基础教程:第2章 SOPC开发流程及开发平台简介_第3页
SOPC嵌入式系统基础教程:第2章 SOPC开发流程及开发平台简介_第4页
SOPC嵌入式系统基础教程:第2章 SOPC开发流程及开发平台简介_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第2章 SOPC开发流程及开发平台简介-SOPC嵌入式系统基础教程北京航空航天大学出版社出版周立功 等编著主要内容 本章首先详细介绍了SOPC开发的基本流程,然后通过实际操作的视频,生动详细的讲述了一个简单的SOPC系统的设计过程,包括使用Quartus II、SOPC Builder定制Nios II系统以及利用Nios II IDE进行应用程序开发.本章力求以实例的途径让读者以最快的方式了解SOPC开发以及各软件的使用,从而激起读者对SOPC的兴趣.第2章 目录2.1 SOPC开发流程2.2 简单SOPC实例开发任务及步骤2.3 分析系统需求2.4 使用Quartus II建立工程2.5

2、使用SOPC Builder创建Nios II系统2.6 集成Nios II系统到Quartus II顶层模块2.7 设置编译选项并编译硬件系统2.8 下载硬件设计到目标FPGA2.9 使用Nios II IDE建立用户程序2.10 调试/运行程序第2章 目录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 下载硬件设计到目标FPGA2.9 使用Nios II ID

3、E建立用户程序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,三者之间关系如下所示: 2.1 SOPC开发流程QuartusII:用

4、于完成Nios II系统的分析综合、硬件优化、适配、配置文件编程下载以及硬件系统测试等; SOPC Builder:它是Nios II软核处理器的开发包,用于实现Nios II系统配置、生成以及与Nios II系统相关的监控和软件调试平台的生成;Nios II IDE:用于完成基于Nios II系统的软件开发和调试,并可借助其自带的Flash编程器完成对Flash以及EPCS的编程操作。Quartus II、SOPC Builder以及Nios II IDE三者之间关系SOPC Builder GUIQuartus II GNU ToolsNios II IDE2.1 SOPC开发流程硬件开发

5、硬件开发使用Quartus II和SOPC Builder配置Nios II处理器选择并配置外设.IP连接各外设模块分配外设地址和中断生成系统SOPC Builder GUI自定义命令IP 模块处理器库外设模块库硬件开发Nios II IDE软件开发Quartus IIGNU Tools 用SOPC Builder软件从NiosII处理器内核和NiosII开发套件提供的外设列表中选取合适的CPU、存储器以及各外围器件,并定制和配置它们的功能; 分配外设地址及中断号; 设定复位地址; 最后生成系统。 用户也可以添加用户自身定制指令逻辑到NiosII内核以加速CPU性能; 添加用户自己设计的IP模

6、块。 2.1 SOPC开发流程硬件开发硬件开发使用Quartus II和SOPC Builder配置Nios II处理器选择并配置外设.IP连接各外设模块分配外设地址和中断生成系统SOPC Builder GUI自定义命令IP 模块处理器库外设模块库硬件开发Nios II IDE软件开发Quartus IIGNU Tools 将生成的Nios II系统集成到之前建立的Quartus II工程; Quartus II工程中可加入Nios II系统以外的逻辑。其可以是自身定制的硬件模块,也可以是从Altera或第3方IP供应商中得到的其它现成的知识产权设计模块。 Quartus II软件用来选取具

7、体的Altera FPGA器件型号,然后为Nios II系统上的各I/O口分配管脚。 HDL 源文件 测试台 用户逻辑设计 其它的IP模块 SOPC Builder的 顶层.bdf文件管脚连接分配2.1 SOPC开发流程硬件开发硬件开发使用Quartus II和SOPC Builder配置Nios II处理器选择并配置外设.IP连接各外设模块分配外设地址和中断生成系统SOPC Builder GUI自定义命令IP 模块处理器库外设模块库硬件开发Nios II IDE软件开发Quartus IIGNU Tools 编译Quartus II工程,对HDL文件进行布局布线,从HDL源文件综合生成一个

8、适合目标器件网表,生成FPGA配置文件(.sof); HDL 源文件 测试台 用户逻辑设计 其它的IP模块 SOPC Builder的 顶层.bdf文件管脚连接分配编译(分析与综合、布局布线、时序分析等)验证调试硬件配置文件JTAG串口、以太网片上调试(软件跟踪、硬件断点 SignalTap II)Altera GPGA 用下载电缆(如 ByteBlaster II),将配置文件下载到目标板上。硬件校验完成后,可将新的硬件配置文件下载到目标板上的非易失存储器(如EPCS器件)。2.1 SOPC开发流程软件开发软件开发使用Nios II IDE,它是一个基于Eclipse IDE架构的集成开发环

9、境,它包括:GNU开发工具(标准GCC编译器,连接器,汇编器和makefile工具等);基于GDB的调试器,包括软件仿真和硬件调试;提供用户一个硬件抽象层HAL;提供嵌入式操作系统MicroC/OS-II和LwTCP/IP协议栈的支持;提供帮助用户快速入门的软件模板;提供Flash下载支持(Flash Progrmmer 和QuartusII Programmer)2.1 SOPC开发流程软件开发配置Nios II处理器选择并配置外设.IP连接各外设模块分配外设地址和中断生成系统SOPC Builder GUI自定义命令IP 模块处理器库外设模块库硬件开发Nios II IDE软件开发Quar

10、tus IIGNU Tools 使用SOPC Builder生成系统后,可以直接使用Nios II IDE开始设计C/C+应用程序代码。Altera提供外设驱动程序和硬件抽象层(HAL),使用户能够快速编写与低级硬件细节无关的Nios II程序; HDL 源文件 测试台 用户逻辑设计 其它的IP模块 SOPC Builder的 顶层.bdf文件管脚连接分配编译(分析与综合、布局布线、时序分析等)验证调试硬件配置文件JTAG串口、以太网片上调试(软件跟踪、硬件断点 SignalTap II)Altera GPGA C头文件 用户库函数 外设驱动 除了应用代码,用户还可以在Nios II IDE

11、工程中设计和重新使用定制库。 用户代码 库函数 操作系统(RTOS)硬件开发使用Quartus II和SOPC Builder2.1 SOPC开发流程软件开发硬件开发使用Quartus II和SOPC Builder配置Nios II处理器选择并配置外设.IP连接各外设模块分配外设地址和中断生成系统SOPC Builder GUI自定义命令IP 模块处理器库外设模块库硬件开发Nios II IDE软件开发Quartus IIGNU Tools HDL 源文件 测试台 用户逻辑设计 其它的IP模块 SOPC Builder的 顶层.bdf文件管脚连接分配编译(分析与综合、布局布线、时序分析等)验

12、证调试硬件配置文件JTAG串口、以太网片上调试(软件跟踪、硬件断点 SignalTap II)Altera GPGA C头文件 用户库函数 外设驱动 用户代码 库函数 操作系统(RTOS) 即使在没有软件开发的目标板的情况下,也可以经过编译、连接后通过Nios II指令仿真器(ISS)运行和调试代码。编译、连接、调试可执行代码 一旦有一个目标板,用户救可以使用下载电缆下载软件到目标板进行调试/运行。2.1 SOPC开发流程SOPC基本开发流程简介从“硬件开发”与“软件开发”两小节中,在我们的脑海里一定已经形成了一个大致的开发流程,下面我们仔细的对其进行梳理和理解。见SOPC开发流程简图。SOP

13、C开发流程简图分析系统需求NiosII内核&标准外设定制指令&定制外设逻辑硬件抽象层(HAL)&外设驱动程序用户C/C+应用程序代码和定制的库自定义的功能模块建立Quartus II工程,建立顶层图*.bdf打开SOPC Builder定义和生成系统集成SOPC生成的系统到Quartus II工程使用Nios IIIDE开发软件Altera的LPM模块连接各功能模块选择FPGA型号并进行管脚分配进行编译选项设置编译硬件系统生成配置文件sof编译软件生成可执行文件elf在目标板上下载可执行软件到Nios II系统下载配置文件到FPGA器件在目标板上运行/调试软件调试好的硬件和软件在IDE中使用I

14、SS运行/调试软件设置软件运行硬件环境属性使用IDE编程工具烧写配置文件和软件代码在进行SOPC开发之前,首先必须确定系统的需求,如应用系统需求的计算性能、需要的带宽和吞吐量、需求的接口类型以及是否需求多线程的软件等。每个开发过程开始时都应建立一个工程,Quartus II是以工程的方式对设计过程进行管理。在工程中建立顶层模块文件.bdf相当于传统电路设计中的电路板(PCB)。在SOPC Builder中添加需要的功能模块(Nios II及其标准外设模块),完成后生成一个系统模块。如果需要,用户可以定制指令和外设逻辑。(可参考第8章)SOPC开发流程简图分析系统需求NiosII内核&标准外设定

15、制指令&定制外设逻辑硬件抽象层(HAL)&外设驱动程序用户C/C+应用程序代码和定制的库自定义的功能模块建立Quartus II工程,建立顶层图*.bdf集成SOPC生成的系统到Quartus II工程使用Nios IIIDE开发软件Altera的LPM模块连接各功能模块选择FPGA型号并进行管脚分配进行编译选项设置编译硬件系统生成配置文件sof编译软件生成可执行文件elf在目标板上下载可执行软件到Nios II系统下载配置文件到FPGA器件在目标板上运行/调试软件调试好的硬件和软件在IDE中使用ISS运行/调试软件设置软件运行硬件环境属性在Quartus II软件中包含了大量的Altera公

16、司提供的LPM功能模块,相当与传统设计中除处理器以外的逻辑芯片(如74系列);当设计中现有模块不能满足设计要求时,可设计自己的功能模块。并在顶层模块中使用;打开SOPC Builder定义和生成系统在顶层模块中,分别将SOPC Builder生成的系统模块、LPM功能模块以及用户自定义功能模块添加到顶层模块中;然后将各个功能模块用连线连起来组成系统功能原理图。这个两过程类似传统电路设计中,将所有要使用的芯片焊接到电路板上,然后通过PCB上的连线将各个芯片连接起来,组成电路系统。 使用IDE编程工具烧写配置文件和软件代码SOPC开发流程简图分析系统需求NiosII内核&标准外设定制指令&定制外设

17、逻辑硬件抽象层(HAL)&外设驱动程序用户C/C+应用程序代码和定制的库自定义的功能模块建立Quartus II工程,建立顶层图*.bdf集成SOPC生成的系统到Quartus II工程使用Nios IIIDE开发软件Altera的LPM模块连接各功能模块选择FPGA型号并进行管脚分配进行编译选项设置编译硬件系统生成配置文件sof编译软件生成可执行文件elf在目标板上下载可执行软件到Nios II系统下载配置文件到FPGA器件在目标板上运行/调试软件调试好的硬件和软件在IDE中使用ISS运行/调试软件设置软件运行硬件环境属性打开SOPC Builder定义和生成系统为系统功能原理图选择芯片载体

18、并为各个输入输出信号分配芯片的管脚;设置编译选项,从而让编译器按照用户设定来进行编译;编译系统生成硬件系统的配置文件*.sof和*.pof。编译系统是一个非常复杂的过程,包括优化逻辑的组合、综合逻辑、适配FPGA、布线以及时序分析等步骤。使用IDE编程工具烧写配置文件和软件代码SOPC开发流程简图分析系统需求NiosII内核&标准外设定制指令&定制外设逻辑硬件抽象层(HAL)&外设驱动程序用户C/C+应用程序代码和定制的库自定义的功能模块建立Quartus II工程,建立顶层图*.bdf集成SOPC生成的系统到Quartus II工程使用Nios IIIDE开发软件Altera的LPM模块连接

19、各功能模块选择FPGA型号并进行管脚分配进行编译选项设置编译硬件系统生成配置文件sof编译软件生成可执行文件elf在目标板上下载可执行软件到Nios II系统下载配置文件到FPGA器件在目标板上运行/调试软件调试好的硬件和软件在IDE中使用ISS运行/调试软件设置软件运行硬件环境属性打开SOPC Builder定义和生成系统软件开发也可以在SOPC Builder 生成系统模块后立即进行!与传统软件开发类似,唯一不同在于系统是自己定制的,所受局限小!使用IDE编程工具烧写配置文件和软件代码SOPC开发流程简图分析系统需求NiosII内核&标准外设定制指令&定制外设逻辑硬件抽象层(HAL)&外设

20、驱动程序用户C/C+应用程序代码和定制的库自定义的功能模块建立Quartus II工程,建立顶层图*.bdf集成SOPC生成的系统到Quartus II工程使用Nios IIIDE开发软件Altera的LPM模块连接各功能模块选择FPGA型号并进行管脚分配进行编译选项设置编译硬件系统生成配置文件sof编译软件生成可执行文件elf在目标板上下载可执行软件到Nios II系统下载配置文件到FPGA器件在目标板上运行/调试软件调试好的硬件和软件在IDE中使用ISS运行/调试软件设置软件运行硬件环境属性打开SOPC Builder定义和生成系统 设置好软件运行的硬件环境属性后,便可进行编译、链接和调试

21、、运行程序。对用户程序进行编译,生成可执行文件*.elf。 接下来在IDE的指令集仿真器(ISS)上仿真软件和运行/调试软件。 将配置文件.sof下载到FPGA,将可执行文件.elf下载到RAM。 在目标板上反复调试软件。 直到硬件和软件设计都达到设计要求。 最后利用IDE的编程工具将配置文件烧写到FPGA的配置芯片或Flash,将可执行文件*.elf编程到Flash中。使用IDE编程工具烧写配置文件和软件代码第2章 目录2.1 SOPC开发流程2.2 简单SOPC实例开发任务及步骤2.3 分析系统需求2.4 使用Quartus II建立工程2.5 使用SOPC Builder创建Nios I

22、I系统2.6 集成Nios II系统到Quartus II顶层模块2.7 设置编译选项并编译硬件系统2.8 下载硬件设计到目标FPGA2.9 使用Nios II IDE建立用户程序2.10 调试/运行程序2.2 简单SOPC实例开发任务及步骤在这一节中,我们通过实际操作的视频教程来体验一个简单的SOPC开发的整个过程。任务步骤建立一个基于Nios II处理器的系统来控制一个LED灯闪烁。分析系统需求。启动QuartusII软件和新建实例设计工程。启动新的SOPC Builder系统。在SOPC Builder中定义并生成系统。集成SOPC Builder系统到QuartusII工程。选择芯片型

23、号并进行管脚分配。设置编译选项并编译硬件系统。下载硬件设计到目标FPGA。使用NiosII IDE开发用户程序。调试用户程序。运行程序。第2章 目录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 下载硬件设计到目标FPGA2.9 使用Nios II IDE建立用户程序2.10 调试/运行程序2.3 分析系统要求每一个SOPC系统开发之前,都应该仔细分析系统需求,例

24、如:对所设计的系统运行性能有什么要求?系统要处理的带宽有多大?应用需求哪种类型的接口?应用需求多线程的软件吗??2.3 分析系统要求每一个SOPC系统开发之前,都应该仔细分析系统需求,基于这些问题,用户可确定具体的系统要求,例如:使用哪种NiosII处理器内核:比较小的还是比较快的?设计要求什么外设及其数量?功耗要求?使用哪种实时操作系统(RTOS)?硬件加速逻辑在哪些方面可大大提高系统性能?例如:增加一个DMA外设能释放CPU在进行数据拷贝时所占用的资源?定制的指令能取代DSP算法吗?对所设计的系统运行性能有什么要求?系统要处理的带宽有多大?应用需求哪种类型的接口?应用需求多线程的软件吗??2.3 分析系统要求本章实例的开发任务是:展示可用于控制LED闪烁的简单NiosII处理器系统。利用最通用和有效的方法来建立实际的定制NiosII系统。整个系统仅使用片内资源,且不依赖于目标板。分析任务可以知道FPGA内硬件系统组成应包含:带有2kBytes指令高速缓存的NiosII/s处理器核;2kBytes片内ROM存储器(O

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论