NiOSIISOPC嵌入式系统基础教程课件.ppt

上传人:牧羊曲112 文档编号:4031738 上传时间:2023-04-01 格式:PPT 页数:76 大小:4.18MB
返回 下载 相关 举报
NiOSIISOPC嵌入式系统基础教程课件.ppt_第1页
第1页 / 共76页
NiOSIISOPC嵌入式系统基础教程课件.ppt_第2页
第2页 / 共76页
NiOSIISOPC嵌入式系统基础教程课件.ppt_第3页
第3页 / 共76页
NiOSIISOPC嵌入式系统基础教程课件.ppt_第4页
第4页 / 共76页
NiOSIISOPC嵌入式系统基础教程课件.ppt_第5页
第5页 / 共76页
点击查看更多>>
资源描述

《NiOSIISOPC嵌入式系统基础教程课件.ppt》由会员分享,可在线阅读,更多相关《NiOSIISOPC嵌入式系统基础教程课件.ppt(76页珍藏版)》请在三一办公上搜索。

1、第2章 SOPC硬件开发环境及流程,2.1 SOPC开发流程和开发工具,SOPC设计包括硬件和软件两部分。硬件设计:基于Quartus II和SOPC Builder 软件设计:基于Nios II IDE 仿真:ModelSim DSP的开发:Matlab和DSP Builder,开发环境:Quartus II 6.0(8.0)SOPC Builder 6.0(8.0)Nios II IDE 6.0(8.0)基于Cyclone II 的SOPC开发板,Quartus完成NiosII整个系统的设计、分析、综合、硬件优化和适配配置文件编程下载、硬件系统测试 SOPC BuilderNIOSII 系

2、统硬件开发环境实现Nios II系统配置和生成Nios II系统相关的监控和软件调试平台的生成 IDE完成基于Nios II系统的软件开发和调试将FPGA配置信息写入Flash或者EPCS,SOPC Builder,Nios II IDE,Quartus II 8.0,Altera,名词解释-与SOPC相关的名词,Quartus II:Altera公司的第四代可编程逻辑器件集成开发环境,提供从设计输入到器件编程的全部功能。,Quartus II?,Quartus II 5.0 软件界面,双击Quartus II图标,名词解释-与SOPC相关的名词,SOPC Builder:功能强大的基于图形界

3、面的片上系统定义和定制工具。SOPC Builder库中包括处理器和大量的IP核及外设。,SOPC Builder包含在Quartus II软件中,SOPCBuilder?,启动:Quartus II Tools SOPC Builder,名词解释-与SOPC相关的名词,Nios II:Nios II系列嵌入式处理器的基本软件开发工具。所有软件开发任务都可以Nios II IDE下完成,包括编辑、编译和调试程序。,Nios II IDE 软件界面,Nios II IDE?,双击Nios II IDE图标,ModelSim:HDL仿真软件,对设计的硬件系统进行RTL级的仿真。DSP Builde

4、r:Altera公司的数字信号处理软件,实现算法和硬件的无缝过渡,可以在Matlab的Simulink中完成算法的仿真、验证,后通过SignalCompiler将模型文件转换成硬件描述语言。,采用NIOS II处理器设计嵌入式系统的流程:1.分析系统需求说明,包括功能需求和性能要求等;2.建立Quartus II工程,建立顶层实体;3.SOPC Builder生成用户定制的系统模块(NIOS II+?)4.将NIOS II系统模块集成到硬件工程中,添加一些模块,可以是 Altera公司提供的LPM(logic programmable module)宏功能块或用户自己定制的模块;5.在顶层实体

5、中,将NIOS II系统模块、Altera的LPM或用户自定 义的逻辑模块连接起来;,2.1 SOPC开发流程和开发工具,6.分配引脚(Tcl脚本语言)和编译工程,编译生成系统的硬件配置文件.sof和.pof文件;(二者区别:SRAMEEPROM)7.下载工程,将配置文件下载到开发板上进行验证;(可选)8.使用IDE开发环境进行软件开发 9.编译软件工程,生成可执行文件.elf;10.调试程序,将硬件配置文件下载到开发板,将可执行文件 下载到RAM,软硬件协同工作。,每个开发过程开始时都应建立一个工程,Quartus II是以工程的方式对设计过程进行管理。在工程中建立顶层模块文件.bdf相当于

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

7、载可执行,软件到,Nios II系统,下载配置文件到,FPGA器件,在目标板上运,行/调试软件,调试好的,硬件和软件,在IDE中使用,ISS运行/调试,软件,设置软件运行,硬件环境属性,使用IDE编程工具,烧写配置文件和,软件代码,在SOPC Builder中添加需要的功能模块(Nios II及其标准外设模块),完成后生成一个系统模块。,如果需要,用户可以定制指令和外设逻辑。(可参考第8章),在进行SOPC开发之前,首先必须确定系统的需求:如系统需求的性能、CPU软核类型(硬件乘法器?)外围器件和数量、需要的带宽和吞吐量、需求的接口类型以及DMA通道数量等。,SOPC开发流程简图,分析系统需求

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

9、,在IDE中使用,ISS运行/调试,软件,设置软件运行,硬件环境属性,在Quartus II软件中包含了大量的Altera公司提供的LPM功能模块,相当与传统设计中除处理器以外的逻辑芯片(如74系列);,打开SOPC Builder,定义和生成系统,在顶层模块中,分别将SOPC Builder生成的系统模块、LPM功能模块以及用户自定义功能模块添加到顶层模块中;,然后将各个功能模块用连线连起来组成系统功能原理图。,这个两过程类似传统电路设计中,将所有要使用的芯片焊接到电路板上,然后通过PCB上的连线将各个芯片连接起来,组成电路系统。,使用IDE编程工具,烧写配置文件和,软件代码,根据系统要求,

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

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

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

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

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

15、置文件.sof下载到FPGA,将可执行文件.elf下载到RAM。,在目标板上反复调试软件。,直到硬件和软件设计都达到设计要求。,最后利用IDE的编程工具将配置文件烧写到FPGA的配置芯片或Flash,将可执行文件*.elf编程到Flash中,使用IDE编程工具,烧写配置文件和,软件代码,SOPC硬件开发流程,从开发套件提供的外设列表 中选取合适的CPU、存储器及外围器件,定制和配置其功能;,分配外设地址及中断号;设定复位地址;,生成系统。,添加用户自身定制指令逻辑 到NiosII内核加速CPU性能,添加用户自己设计的IP模块。,编译,综合,布局布线,从 HDL源文件综合成一个适合 目标器件网表

16、,生成FPGA 配置文件(.sof);,用下载电缆将配置文件下载 到目标板。调试完成后,将 硬件配置文件下载到目标板 的非易失存储器(如flash)。,2.2 SOPC硬件开发实例,电子钟的设计第一步是要进行需求分析,建立系统 在液晶屏上显示日期、时间;可以设置日期、时间;根据系统要求,设计要用到的外围器件 LCD:电子钟显示屏幕;按键:电子钟设置功能键;Flash存储器:存储软、硬件程序;SRAM存储器:程序运行时将其导入SRAM。根据所用到的外设、功能以及开发板的配置,在SOPC Builder中建立系统要添加的模块包括 Nios II CPU、定时器、按键PIO、LCD控制器、AVALO

17、N三态桥、外部RAM接口、外部Flash接口。,2.2.1 创建工程,进行完需求分析之后,进行硬件系统的创建。首先必须建立一个Quartus II 的工程,步骤如下:1.启动Quartus II软件;2.选择File菜单New Project Wizard,出现Introduction页面,该页面介绍所要完成的具体任务,点击next。,2.2 SOPC硬件开发实例,2.2.1 创建工程,2.2.1 创建工程,注意1:工程名和顶层实体名字一致,注意2:路径、工程名、顶层实体名均为英文,3.目录、顶层实体名和工程名,2.2.1 创建工程,4.可以为工程添加先期已经输入的设计文件,指定用户自定义的元

18、件库的路径。,2.2.1 创建工程,5.指定目标器件,根据开发板使用的器件来选择。,注意3:器件型号CycloneIIEP2C35F672C8,2.2.1 创建工程,6.指定在Quartus II 之外的用于设计输入、综合、仿真、时序分析的第三方EDA工具。(Precision SynthesisSynplify等),7.新工程的信息。在设计的过程中,还可以通过菜单assignmentSettings来对这些配置进行修改。,8.点击Finish按钮,Quartus II自动会打开这个工程,可以看到顶层实体名出现在工程导航窗口中。,2.3 创建Nios II 系统模块,创建顶层实体创建Nios

19、II系统模块:NIOS II 嵌入式处理器,添加、配置系统的外设IPNios II 系统模块+其他片上逻辑+用户逻辑:加入顶层实体,2.3.1 创建顶层实体,(1)选择FileNew;在Device Design File页中,选择Block DiagramSchematic File,即原理图文件(也可以选择硬件描述语言的文件形式),单击OK。,2.3.1 创建顶层实体,(2)选择FileSave As,显示的目录为之前设置的工程目录,文件名为之前设置的顶层实体名.,2.3.2 创建Nios II系统模块,使用工具:SOPC Builder Nios II系统模块:Nios II处理器 和相

20、关的系统外设。创建系统模块的流程:先创建一个系统,然后添加Nios II CPU和外设IP,生成实例或者模块,加入到工程的顶层实体。,SOPC Builder,2.3.2 创建Nios II系统模块,一、创建系统 启动SOPC Builder(ToolsSOPC Builder),注意4:系统名称,二、设置系统主频和指定目标FPGA设置系统的时钟频率版本6.0:在Target栏中的Board部分指定核心开发板Cyclone II(EP2C35)。(IDE:flash 器件编程)版本8.0:在Device Family选择Cyclone II。(注意5!),三、加入Nios II CPU和 IP

21、模块 首先加入Nios II软核1.Avalon Components 下面选择Nios II Processor;2.双击或者右键 Add,出现Nios II CPU的配置向导,根据需要选择Nios II核Hardware Multiply选择none,不选择Hardware Divide 注意6:Embedded Multipliers:使用专门的内嵌硬件乘法单元(乘法速度最快)。Logic Elements,使用逻辑单元也就是FPGA中的查找表(速度较慢)。None:只能通过软件模拟乘法,速度最慢。,点击Next,进入缓存设置窗口;可设Instruction Cache为4Kbytes,

22、Data Cache 2Kbytes,Advanced Features设置不选择Include cpu_resetrequest and cpu_resettaken signals(注意7:resetrequest该复位信号仅复位处理器。处理器在收到该信号后,先执行完 流水线的所有指令,然后进入复位状态。处理器在复位完成后会使cpu_resettaken信号生效一个时钟周期)点击Next进入MMU and MPU设置。(Quartus 8.0)(注意8:存储器管理单元 MMU和存储器保护单元 MPU),JTAG调试级别选择 选择Level1:该级别支持软件的断点调试。JTAG调试模块要占用

23、较多的逻辑资源,系统调试完毕了可以选用No Debugger,自定义指令的设置,不作任何的设置。点击Finish完成NIOS II处理器的添加处理器的编辑和修改,添加其它外设IP模块,除了Nios II CPU,电子钟设计需要添加的IP模块包括:TimerButton PIOLCD控制器External SRAM 总线External Flash 总线External SRAM 接口External Flash 接口,1.添加定时器(1)如图选Interval Timer并双击,向导窗口出现;(注意9),(2)配置定时器,点Finish,完成定时器的添加。可重命名。,2.添加Button PI

24、O(1)在Basic Settings,设width?direction?(2)在Input Options,Edge Capture Register选中 Synchronously Capture,选择Either Edge;(3)点击Finish完成,重命名,3.添加LCD控制器(1)如图选Character LCD(Optrex 16027),双击。(注意10)(2)Module Name下出现,lcd_16027_0;(3)将其重命名lcd_display。,4.添加外部RAM接口(1)如图单击Add,出现SSRAM(Cypress CY7C1380C)向导(2)设置Read Lat

25、ency和Memory Size(3)Finish完成,重命名为ext-ssram。,5.添加外部闪存接口(1)前图双击,外部flash接口;(2)在Attributes中,Presets列表中选择相应的flash。(3)若所使用Flash没有在列表中:自定义宽度和时序,6.添加外部RAM和flash总线(Avalon三态总线桥)Nios II 系统与外部存储器通信,要在Avalon总线和外部存储器之间加入Avalon三态桥。(1)如图选择Avalon Tri-State Bridge,点击Add,出现向导;(2)Registered选项默认为选中;重命名为ext_ssram_bus;(3)再

26、添加一个Avalon三态总线桥,重命名为ext_flash_bus.,7.Nios II系统的连接(注意11)所有添加的IP连接是系统自动完成的。对于三态桥和外部存储器接口的连接,系统的自动连接可能和用户的开发板不匹配,用户需要进行手动的更改。主要是外部RAM接口要和RAM的三态桥连接,外部的Flash接口要和flash的三态桥连接。针对用的开发板的情况进行的设置,实验用的开发板SRAM和flash没有使用共用的数据线和地址线。所以必须为它们分别添加一个三态桥。,2.3.3分配IP模块的地址和中断号,SOPC Builder为各个IP模块分配了一个默认的基地址,用户可以改变这些地址。如果分配的

27、地址出现冲突,如下:,(1)自动分配地址:System菜单的Auto Assign Base Address(2)手动分配地址:Flash外设的Base栏,将地址改为0 x0,如果 冲突SOPC Builder会出现错误的提示。(3)锁定地址:选择Module菜单中的Lock Base Address,(4)手动修改外设的中断号:号越小,优先级越高(5)自动分配中断号:选择System菜单中的Auto Assign IRQs。建议采用手动的分配。,注意:!,2.3.4 配置NIOS II 系统,Reset Address:选择存放Boot Loader的存储器和设置Boot Loader在存储

28、器中的偏移。选择ext_flash,偏移选择默认;Exception Address:选择存放异常向量表存放的存储器和异常向量表在存储器偏移,选择ext_ssram,偏移选择默认;,2.3.5 生成NIOS II并加入到工程中,单击System Generation若选中 Simulation,生成用于仿真的相应的文件。点 Generate,SOPC Builder提示生成系统的进程,需3-4分钟,系统生成完成后,SOPC Builder为这个定制的NIOS II系统模块创建了一个符号,Nios II系统再加入到工程中:(1)打开顶层实体(BDF),任意处双击,出现 Symbol对话框(2)在

29、Symbol对话框中单击Project来展开工程目录,其下出现 NIOS2,选中它,右侧出现了系统的符号表示;(3)点OK,NIOS2出现在BDF窗口中,创建的系统加入到工程,2.3.6 加入引脚和嵌入式锁相环,嵌入式锁相环有两个时钟输出,一个输出SSRAM提供时钟,另一个时钟的输出为NIOS II CPU提供时钟.,加嵌入式锁相环步骤如下:(1)点击ToolsMegaWizard Plug-In Manager,出现MegaWizard Plug-In Manager向导窗口,点击next,IO下面选择ALTPLL,器件选择Cyclone II,输出文件类型选择VHDL,文件名为ssram_

30、pll,引脚添加(1)顶层实体的bdf窗口的空白处双击鼠标,出现Symbol添加窗口,选择pin,选择相应类型的引脚,点击OK。(2)点击bdf窗口的空白处,即将引脚加入到了工程中。(3)重复上面的步骤添加为各个端口添加相应类型的引脚。(4)命名引脚方法:双击引脚的“pin_name“,对其编辑。对于总线型的引脚,引脚名称+总线位数:如ddr_a12.0,将嵌入式锁相环和系统模块等连接起来,将引脚连接到相应的端口上。,2.4设计优化,设计优化:节省占用FPGA的面积和提高系统速度。“面积”;“速度”是指设计的系统在目标芯片上稳定运行时能够达到的最高频率,1.面积与速度的优化,选择Assignm

31、ent菜单下的Settings命令在Analysis&Synthesis Settings:Optimization Techniques栏中,有Speed、Balanced和Area3种优化选择,Balanced是软件缺省的优化选择。,2.时序约束与设置,选择Settings下面的Timing Analysis Settings选择Classic Timing Analyzer Settings。可以根据目标芯片的特性及PCB板走线的实际情况,给出设计需要满足的时钟频率、建立时间、保持时间和传输延迟时间等参数。简单应用,不需要!,2.5 编译,Quartus II编译器由一系列处理模块组成包

32、括:分析与综合、适配、汇编和时序分析等。编译设置:合理编译的设置可以提高工程编译的速度,优化器件的资源利用,甚至降低系统的功耗!,!编译之前须对未使用的引脚做设置:将未使用的引脚设置成As inputs,tri-stated。,步骤(注意):(1)在Settings对话框中的Device中,单击Device and Pin Options,出现Device and Pin Options。(2)单击Unused Pins,在Reserve all unused pins下选择,As inputs,tri-stated。,2.5.1 引脚分配,引脚分配:使编译器能把设计的信号分配到目标器件上的特

33、定引脚上。两种引脚分配方法:第一种:使用Assignments Editor或pins 或 pin planner第二种:使用TCL脚本一次性分配所有的引脚,(1)选Assignments菜单中的 pins 或 pin planner或 Assignments Editor。(2)在Node Name下输入引脚名称,在Location选择 相应的引脚。(3)选择FileSave保存分配。这种分配方法效率较低,适合较少管脚的分配。,1.Assignments Editor,(1)选择project下的generate Tcl file for project.名字:pin.tcl(2)打开标准工

34、程(.80.),下的standard.tcl文件(3)把standard.tcl文件中带set_location_assignment指令,并且-to后面的参数与现有工程中使用的管脚名相同的语句 拷贝到pin.tcl文件的下面位置(最后一条set_global_assignment语句后),后保存。,2.TCL脚本文件分配引脚,(4)Tools菜单下,选TCL scripts,出现下图(5)选择建立的引脚分配文件pin.tcl,点RUN即可完成引脚分配。(6)如何查看分配结果呢?,注意:如果管脚名字与standard工程的对应管脚名字不同,不能使用该方法,或者需修改脚本。该方法在有参照工程管脚

35、定义的情况下,节省定义管脚的时间。,2.5.2 编译用户设计,选择Processing菜单中的Start Compilation或点击工具栏中的Start Compilation 按钮进行编译,编译成功之后,出现Compile Report.点击相关内容查看相应的编译信息,如Analysis&synthesis、Fitter、Timing Analyzer等。,注意:NIOS系统发生改动后需重新编译,注意:NIOS系统有变化后需重新编译,2.6 编程下载,编译成功之后,Quartus II 编译器生成配置 两个文件:.sof和.pof.sof文件一般在调试时下载到FPGA的SRAM中.pof文件是用于EPCS的编程文件。实验平台采用的下载线为USB Blaster。,2.6.1下载,如何将生成的.sof文件下载到FPGA中:(1)同过USB Blaster电缆将目标板和计算机相连,接通目标板的电源。(2)在Quartus II软件中选择ToolsProgrammer,打开编程器的窗口,可以看到配置文件clock.sof。,(4)选中Program/Configure,然后点击start开始按钮,开始下载,可以从Progress栏看到下载进度。,说明:USB驱动的安装方法(补充文件),2.6.2验证,硬件下载到FPGA芯片后,可编程测试系统的功能。,2.6.3 启动软件开发环境,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号