第2章+SOPC开发流程及开发平台简介.ppt_第1页
第2章+SOPC开发流程及开发平台简介.ppt_第2页
第2章+SOPC开发流程及开发平台简介.ppt_第3页
第2章+SOPC开发流程及开发平台简介.ppt_第4页
第2章+SOPC开发流程及开发平台简介.ppt_第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 I

2、I建立工程 2.5 使用SOPC Builder创建Nios II系统 2.6 集成Nios II系统到Quartus II顶层模块 2.7 设置编译选项并编译硬件系统 2.8 下载硬件设计到目标FPGA 2.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 下载硬件设

3、计到目标FPGA 2.9 使用Nios II IDE建立用户程序 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,三者之间关系

4、如下所示:,2.1 SOPC开发流程,QuartusII: 用于完成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 GUI,Quartus II

5、,GNU Tools,Nios II IDE,2.1 SOPC开发流程,硬件开发,硬件开发使用Quartus II和SOPC Builder,配置Nios II处理器,选择并配置外设.IP,连接各外设模块,分配外设地址和中断,生成系统,SOPC Builder GUI,自定义命令,IP,模块,处理器库,外设模块库,硬件开发,Nios II IDE,软件开发,Quartus II,GNU Tools,用SOPC Builder软件从NiosII处理器内核和NiosII开发套件提供的外设列表中选取合适的CPU、存储器以及各外围器件,并定制和配置它们的功能;,分配外设地址及中断号; 设定复位地址;,

6、最后生成系统。,用户也可以添加用户自身定制指令逻辑到NiosII内核以加速CPU性能;,添加用户自己设计的IP模块。,2.1 SOPC开发流程,硬件开发,硬件开发使用Quartus II和SOPC Builder,配置Nios II处理器,选择并配置外设.IP,连接各外设模块,分配外设地址和中断,生成系统,SOPC Builder GUI,自定义命令,IP,模块,处理器库,外设模块库,硬件开发,Nios II IDE,软件开发,Quartus II,GNU Tools,将生成的Nios II系统集成到之前建立的Quartus II工程;,Quartus II工程中可加入Nios II系统以外的

7、逻辑。其可以是自身定制的硬件模块,也可以是从Altera或第3方IP供应商中得到的其它现成的知识产权设计模块。,Quartus II软件用来选取具体的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,模块,处理器

8、库,外设模块库,硬件开发,Nios II IDE,软件开发,Quartus II,GNU Tools,编译Quartus II工程,对HDL文件进行布局布线,从HDL源文件综合生成一个适合目标器件网表,生成FPGA配置文件(.sof);,HDL 源文件 测试台,用户逻辑设计 其它的IP模块 SOPC Builder的 顶层.bdf文件,管脚连接分配,编译(分析与综合、布局布线、时序分析等),验证调试,硬件配置 文件,JTAG,串口、以太网,片上调试 (软件跟踪、硬件断点 SignalTap II),Altera GPGA,用下载电缆(如 ByteBlaster II),将配置文件下载到目标板上

9、。硬件校验完成后,可将新的硬件配置文件下载到目标板上的非易失存储器(如EPCS器件)。,2.1 SOPC开发流程,软件开发 软件开发使用Nios II IDE,它是一个基于Eclipse IDE架构的集成开发环境,它包括: GNU开发工具(标准GCC编译器,连接器,汇编器和makefile工具等); 基于GDB的调试器,包括软件仿真和硬件调试; 提供用户一个硬件抽象层HAL; 提供嵌入式操作系统MicroC/OS-II和LwTCP/IP协议栈的支持; 提供帮助用户快速入门的软件模板; 提供Flash下载支持(Flash Progrmmer 和QuartusII Programmer),2.1

10、SOPC开发流程,软件开发,配置Nios II处理器,选择并配置外设.IP,连接各外设模块,分配外设地址和中断,生成系统,SOPC Builder GUI,自定义命令,IP,模块,处理器库,外设模块库,硬件开发,Nios II IDE,软件开发,Quartus II,GNU Tools,使用SOPC Builder生成系统后,可以直接使用Nios II IDE开始设计C/C+应用程序代码。Altera提供外设驱动程序和硬件抽象层(HAL),使用户能够快速编写与低级硬件细节无关的Nios II程序;,HDL 源文件 测试台,用户逻辑设计 其它的IP模块 SOPC Builder的 顶层.bdf文

11、件,管脚连接分配,编译(分析与综合、布局布线、时序分析等),验证调试,硬件配置 文件,JTAG,串口、以太网,片上调试 (软件跟踪、硬件断点 SignalTap II),Altera GPGA,C头文件 用户库函数 外设驱动,除了应用代码,用户还可以在Nios II IDE 工程中设计和重新使用定制库。,用户代码 库函数 操作系统(RTOS),硬件开发使用Quartus II和SOPC Builder,2.1 SOPC开发流程,软件开发,硬件开发使用Quartus II和SOPC Builder,配置Nios II处理器,选择并配置外设.IP,连接各外设模块,分配外设地址和中断,生成系统,SO

12、PC Builder GUI,自定义命令,IP,模块,处理器库,外设模块库,硬件开发,Nios II IDE,软件开发,Quartus II,GNU Tools,HDL 源文件 测试台,用户逻辑设计 其它的IP模块 SOPC Builder的 顶层.bdf文件,管脚连接分配,编译(分析与综合、布局布线、时序分析等),验证调试,硬件配置 文件,JTAG,串口、以太网,片上调试 (软件跟踪、硬件断点 SignalTap II),Altera GPGA,C头文件 用户库函数 外设驱动,用户代码 库函数 操作系统(RTOS),即使在没有软件开发的目标板的情况下,也可以经过编译、连接后通过Nios II

13、指令仿真器(ISS)运行和调试代码。,编译、连接、调试,可执行代码,一旦有一个目标板,用户救可以使用下载电缆下载软件到目标板进行调试/运行。,2.1 SOPC开发流程,SOPC基本开发流程简介 从“硬件开发”与“软件开发”两小节中,在我们的脑海里一定已经形成了一个大致的开发流程,下面我们仔细的对其进行梳理和理解。见SOPC开发流程简图。,SOPC开发流程简图,分析系统需求,NiosII内核,然后将各个功能模块用连线连起来组成系统功能原理图。,这个两过程类似传统电路设计中,将所有要使用的芯片焊接到电路板上,然后通过PCB上的连线将各个芯片连接起来,组成电路系统。,使用IDE编程工具,烧写配置文件

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

15、在目标板上运,行/调试软件,调试好的,硬件和软件,在IDE中使用,ISS运行/调试,软件,设置软件运行,硬件环境属性,打开SOPC Builder,定义和生成系统,为系统功能原理图选择芯片载体并为各个输入输出信号分配芯片的管脚;,设置编译选项,从而让编译器按照用户设定来进行编译;,编译系统生成硬件系统的配置文件*.sof和*.pof。编译系统是一个非常复杂的过程,包括优化逻辑的组合、综合逻辑、适配FPGA、布线以及时序分析等步骤。,使用IDE编程工具,烧写配置文件和,软件代码,SOPC开发流程简图,分析系统需求,NiosII内核,&标准外设,定制指令&定,制外设逻辑,硬件抽象层,(HAL)&外

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

17、Builder,定义和生成系统,软件开发也可以在SOPC Builder 生成系统模块后立即进行!与传统软件开发类似,唯一不同在于系统是自己定制的,所受局限小!,使用IDE编程工具,烧写配置文件和,软件代码,SOPC开发流程简图,分析系统需求,NiosII内核,&标准外设,定制指令&定,制外设逻辑,硬件抽象层,(HAL)&外设,驱动程序,用户C/C+应,用程序代码,和定制的库,自定义的,功能模块,建立Quartus II工程,,建立顶层图*.bdf,集成SOPC生,成的系统到,Quartus II工程,使用Nios II,IDE开发软件,Altera的,LPM模块,连接各,功能模块,选择FPG

18、A型号,并进行管脚分配,进行编译,选项设置,编译硬件系统,生成配置文件sof,编译软件,生成可执,行文件elf,在目标板上,下载可执行,软件到,Nios II系统,下载配置文件到,FPGA器件,在目标板上运,行/调试软件,调试好的,硬件和软件,在IDE中使用,ISS运行/调试,软件,设置软件运行,硬件环境属性,打开SOPC Builder,定义和生成系统,设置好软件运行的硬件环境属性后,便可进行编译、链接和调试、运行程序。,对用户程序进行编译,生成可执行文件*.elf。,接下来在IDE的指令集仿真器(ISS)上仿真软件和运行/调试软件。,将配置文件.sof下载到FPGA,将可执行文件.elf下

19、载到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 II系统 2.6 集成Nios II系统到Quartus II顶层模块 2.7 设置编译选项并编译硬件系统 2.8 下载硬件设计到目标FPGA 2.9 使用Nios I

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

21、 运行程序。,第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 下载硬件设计到目标FPGA 2.9 使用Nios II IDE建立用户程序 2.10 调试/运行程序,2.3 分析系统要求,每一个SOPC系统开发之前,都应该仔细分析系统需求,例如:,对所设计的系统运行性能有什么要求?,系统要处理的带宽有多大?,应用需求哪种类型的接口?,应用

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

温馨提示

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

评论

0/150

提交评论