SOPC技术基础教程第2章 Quartus II开发环境的使用课件_第1页
SOPC技术基础教程第2章 Quartus II开发环境的使用课件_第2页
SOPC技术基础教程第2章 Quartus II开发环境的使用课件_第3页
SOPC技术基础教程第2章 Quartus II开发环境的使用课件_第4页
SOPC技术基础教程第2章 Quartus II开发环境的使用课件_第5页
已阅读5页,还剩249页未读 继续免费阅读

下载本文档

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

文档简介

第2章

SOPC开发流程及 QuartusII的使用

第2章

SOPC开发流程及 QuartusII的使用12.1SOPC开发流程和开发工具SOPC设计包括硬件和软件两部分。硬件设计:主要基于QuartusII和 SOPCBuilder。软件设计:基于NiosIIIDE。2.1SOPC开发流程和开发工具SOPC设计包括硬件和软件2SOPC开发流程简图分析系统需求NiosII内核&标准外设定制指令&定制外设逻辑硬件抽象层(HAL)&外设驱动程序用户C/C++应用程序代码和定制的库自定义的功能模块建立QuartusII工程,建立顶层图*.bdf打开SOPCBuilder定义和生成系统集成SOPC生成的系统到QuartusII工程使用NiosIIIDE开发软件Altera的LPM模块连接各功能模块选择FPGA型号并进行管脚分配进行编译选项设置编译硬件系统生成配置文件sof编译软件生成可执行文件elf在目标板上下载可执行软件到NiosII系统下载配置文件到FPGA器件在目标板上运行/调试软件调试好的硬件和软件在IDE中使用ISS运行/调试软件设置软件运行硬件环境属性使用IDE编程工具烧写配置文件和软件代码在进行SOPC开发之前,首先必须确定系统的需求,如应用系统需求的计算性能、需要的带宽和吞吐量、需求的接口类型以及是否需求多线程的软件等。每个开发过程开始时都应建立一个工程,QuartusII是以工程的方式对设计过程进行管理。在工程中建立顶层模块文件.bdf相当于传统电路设计中的电路板(PCB)。在SOPCBuilder中添加需要的功能模块(NiosII及其标准外设模块),完成后生成一个系统模块。如果需要,用户可以定制指令和外设逻辑。(可参考第8章)SOPC开发流程简图分析系统需求NiosII内核&标准外设定3SOPC开发流程简图分析系统需求NiosII内核&标准外设定制指令&定制外设逻辑硬件抽象层(HAL)&外设驱动程序用户C/C++应用程序代码和定制的库自定义的功能模块建立QuartusII工程,建立顶层图*.bdf集成SOPC生成的系统到QuartusII工程使用NiosIIIDE开发软件Altera的LPM模块连接各功能模块选择FPGA型号并进行管脚分配进行编译选项设置编译硬件系统生成配置文件sof编译软件生成可执行文件elf在目标板上下载可执行软件到NiosII系统下载配置文件到FPGA器件在目标板上运行/调试软件调试好的硬件和软件在IDE中使用ISS运行/调试软件设置软件运行硬件环境属性在QuartusII软件中包含了大量的Altera公司提供的LPM功能模块,相当与传统设计中除处理器以外的逻辑芯片(如74系列);当设计中现有模块不能满足设计要求时,可设计自己的功能模块。并在顶层模块中使用;打开SOPCBuilder定义和生成系统在顶层模块中,分别将SOPCBuilder生成的系统模块、LPM功能模块以及用户自定义功能模块添加到顶层模块中;然后将各个功能模块用连线连起来组成系统功能原理图。这个两过程类似传统电路设计中,将所有要使用的芯片焊接到电路板上,然后通过PCB上的连线将各个芯片连接起来,组成电路系统。使用IDE编程工具烧写配置文件和软件代码SOPC开发流程简图分析系统需求NiosII内核&标准外设定4SOPC开发流程简图分析系统需求NiosII内核&标准外设定制指令&定制外设逻辑硬件抽象层(HAL)&外设驱动程序用户C/C++应用程序代码和定制的库自定义的功能模块建立QuartusII工程,建立顶层图*.bdf集成SOPC生成的系统到QuartusII工程使用NiosIIIDE开发软件Altera的LPM模块连接各功能模块选择FPGA型号并进行管脚分配进行编译选项设置编译硬件系统生成配置文件sof编译软件生成可执行文件elf在目标板上下载可执行软件到NiosII系统下载配置文件到FPGA器件在目标板上运行/调试软件调试好的硬件和软件在IDE中使用ISS运行/调试软件设置软件运行硬件环境属性打开SOPCBuilder定义和生成系统为系统功能原理图选择芯片载体并为各个输入输出信号分配芯片的管脚;设置编译选项,从而让编译器按照用户设定来进行编译;编译系统生成硬件系统的配置文件*.sof和*.pof。编译系统是一个非常复杂的过程,包括优化逻辑的组合、综合逻辑、适配FPGA、布线以及时序分析等步骤。使用IDE编程工具烧写配置文件和软件代码SOPC开发流程简图分析系统需求NiosII内核&标准外设定5SOPC开发流程简图分析系统需求NiosII内核&标准外设定制指令&定制外设逻辑硬件抽象层(HAL)&外设驱动程序用户C/C++应用程序代码和定制的库自定义的功能模块建立QuartusII工程,建立顶层图*.bdf集成SOPC生成的系统到QuartusII工程使用NiosIIIDE开发软件Altera的LPM模块连接各功能模块选择FPGA型号并进行管脚分配进行编译选项设置编译硬件系统生成配置文件sof编译软件生成可执行文件elf在目标板上下载可执行软件到NiosII系统下载配置文件到FPGA器件在目标板上运行/调试软件调试好的硬件和软件在IDE中使用ISS运行/调试软件设置软件运行硬件环境属性打开SOPCBuilder定义和生成系统软件开发也可以在SOPCBuilder生成系统模块后立即进行!与传统软件开发类似,唯一不同在于系统是自己定制的,所受局限小!使用IDE编程工具烧写配置文件和软件代码SOPC开发流程简图分析系统需求NiosII内核&标准外设定6SOPC开发流程简图分析系统需求NiosII内核&标准外设定制指令&定制外设逻辑硬件抽象层(HAL)&外设驱动程序用户C/C++应用程序代码和定制的库自定义的功能模块建立QuartusII工程,建立顶层图*.bdf集成SOPC生成的系统到QuartusII工程使用NiosIIIDE开发软件Altera的LPM模块连接各功能模块选择FPGA型号并进行管脚分配进行编译选项设置编译硬件系统生成配置文件sof编译软件生成可执行文件elf在目标板上下载可执行软件到NiosII系统下载配置文件到FPGA器件在目标板上运行/调试软件调试好的硬件和软件在IDE中使用ISS运行/调试软件设置软件运行硬件环境属性打开SOPCBuilder定义和生成系统

设置好软件运行的硬件环境属性后,便可进行编译、链接和调试、运行程序。对用户程序进行编译,生成可执行文件*.elf。接下来在IDE的指令集仿真器(ISS)上仿真软件和运行/调试软件。

将配置文件.sof下载到FPGA,将可执行文件.elf下载到RAM。

在目标板上反复调试软件。

直到硬件和软件设计都达到设计要求。

最后利用IDE的编程工具将配置文件烧写到FPGA的配置芯片或Flash,将可执行文件*.elf编程到Flash中。使用IDE编程工具烧写配置文件和软件代码SOPC开发流程简图分析系统需求NiosII内核&标准外设定72.1SOPC开发流程和开发工具硬件开发硬件开发使用QuartusII和SOPCBuilder配置NiosII处理器选择并配置外设.IP连接各外设模块分配外设地址和中断生成系统SOPCBuilderGUI自定义命令IP模块处理器库外设模块库硬件开发NiosIIIDE软件开发QuartusIIGNUTools

用SOPCBuilder软件从NiosII处理器内核和NiosII开发套件提供的外设列表中选取合适的CPU、存储器以及各外围器件,并定制和配置它们的功能;

分配外设地址及中断号;设定复位地址;最后生成系统。用户也可以添加用户自身定制指令逻辑到NiosII内核以加速CPU性能;添加用户自己设计的IP模块。2.1SOPC开发流程和开发工具硬件开发硬件开发使用Qua82.1SOPC开发流程和开发工具硬件开发硬件开发使用QuartusII和SOPCBuilder配置NiosII处理器选择并配置外设.IP连接各外设模块分配外设地址和中断生成系统SOPCBuilderGUI自定义命令IP模块处理器库外设模块库硬件开发NiosIIIDE软件开发QuartusIIGNUTools编译QuartusII工程,对HDL文件进行布局布线,从HDL源文件综合生成一个适合目标器件网表,生成FPGA配置文件(.sof);HDL源文件测试台用户逻辑设计其它的IP模块SOPCBuilder的顶层.bdf文件管脚连接分配编译(分析与综合、布局布线、时序分析等)验证调试硬件配置文件JTAG串口、以太网片上调试(软件跟踪、硬件断点SignalTapII)AlteraGPGA用下载电缆(如ByteBlasterII),将配置文件下载到目标板上。硬件校验完成后,可将新的硬件配置文件下载到目标板上的非易失存储器(如EPCS器件)。2.1SOPC开发流程和开发工具硬件开发硬件开发使用Qua92.1SOPC开发流程和开发工具硬件开发配置NiosII处理器选择并配置外设.IP连接各外设模块分配外设地址和中断生成系统SOPCBuilderGUI自定义命令IP模块处理器库外设模块库硬件开发NiosIIIDE软件开发QuartusIIGNUTools编译QuartusII工程,对HDL文件进行布局布线,从HDL源文件综合生成一个适合目标器件网表,生成FPGA配置文件(.sof);HDL源文件测试台用户逻辑设计其它的IP模块SOPCBuilder的顶层.bdf文件管脚连接分配编译(分析与综合、布局布线、时序分析等)验证调试硬件配置文件JTAG串口、以太网片上调试(软件跟踪、硬件断点SignalTapII)AlteraGPGA用下载电缆(如ByteBlasterII),将配置文件下载到目标板上。硬件校验完成后,可将新的硬件配置文件下载到目标板上的非易失存储器(如EPCS器件)。2.1SOPC开发流程和开发工具硬件开发配置NiosII102.1SOPC开发流程和开发工具软件开发软件开发使用NiosIIIDE,它是一个基于EclipseIDE架构的集成开发环境,它包括:GNU开发工具(标准GCC编译器,连接器,汇编器和makefile工具等);基于GDB的调试器,包括软件仿真和硬件调试;提供用户一个硬件抽象层HAL;提供嵌入式操作系统MicroC/OS-II和LwTCP/IP协议栈的支持;提供帮助用户快速入门的软件模板;提供Flash下载支持(FlashProgrmmer和QuartusIIProgrammer)2.1SOPC开发流程和开发工具软件开发112.1SOPC开发流程和开发工具软件开发配置NiosII处理器选择并配置外设.IP连接各外设模块分配外设地址和中断生成系统SOPCBuilderGUI自定义命令IP模块处理器库外设模块库硬件开发NiosIIIDE软件开发QuartusIIGNUTools

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

除了应用代码,用户还可以在NiosIIIDE工程中设计和重新使用定制库。用户代码库函数操作系统(RTOS)硬件开发使用QuartusII和SOPCBuilder2.1SOPC开发流程和开发工具软件开发配置NiosII122.2SOPC硬件开发实例

第一步是要进行需求分析,根据这个要求来建立硬件系统。电子钟的设计要求:在液晶屏上显示日期、时间;可以设置日期、时间;

根据系统要求实现的功能,电子钟的设计要用到的外围器件有:LCD:电子钟显示屏幕;按键:电子钟设置功能键;Flash存储器:存储软、硬件程序;SRAM存储器:程序运行时将其导入SRAM。根据所要用到的外设、要实现的功能以及开发板的配置,在SOPCBuilder中建立系统要添加的模块包括:NiosIICPU、定时器、按键PIO、LCD控制器、AVALON三态桥、外部RAM接口、外部Flash接口。2.2SOPC硬件开发实例第一步是要进行需求分析132.2SOPC硬件开发实例使用的开发环境如下:WinXP操作系统NiosII6.0嵌入式处理器QuartusII6.0基于CycloneII的SOPC开发板2.2SOPC硬件开发实例使用的开发环境如下:142.2.1创建工程进行完需求分析之后,进行硬件系统的创建。首先必须建立一个QuartusII的工程,步骤如下:1.开始程序AlteraQuartusII6.1QuartusII 6.1(32 bit),启动QuartusII软件;

2.选择File菜单NewProjectWizard,出现Introduction页面,该页面介绍所要完成的具体任务,点击next。2.2.1创建工程进行完需求分析之后,进行硬件系统的创建。152.2.1创建工程2.2.1创建工程162.2.1创建工程2.2.1创建工程172.2.1创建工程3.进行项目名称的设定、工作目录的选择。指定工程存放的目录,工程名和顶层实体名,工程名和顶层实体名要求相同,工程目录可以随意设置,但必须是英文的目录,工程名和顶层实体名也要求是英文名字,我们的工程名和顶层实体名为clock,选择Next。2.2.1创建工程3.进行项目名称的设定、工作目录的182.2.1创建工程2.2.1创建工程192.2.1创建工程4.可以为工程添加先期已经输入的设计文件,指定用户自定义的元件库的路径,这里我们没有事先输入好的文件,也没有自定义的元件库,点击Next进入下一步。2.2.1创建工程4.可以为工程添加先期已经输入的设计文件202.2.1创建工程2.2.1创建工程212.2.1创建工程5.用户指定目标器件,根据开发板的所使用的器件来选择,实际开发中,通过查看核心板的参考手册来获取所使用的器件具体型号,可以使用窗口右边的Filters来加快器件的选择,选择完毕点击Next。2.2.1创建工程5.用户指定目标器件,根据开发板的所使222.2.1创建工程2.2.1创建工程232.2.1创建工程6.指定在QuartusII之外的用于,设计输入、综合、仿真、时序分析的第三方EDA工具,QuartusII对第三方工具的支持比较完善。这里我们不做选择,直接点击Next。2.2.1创建工程6.指定在QuartusII之外242.2.1创建工程2.2.1创建工程252.2.1创建工程所见新工程的信息,确认所创建工程的主要信息,点击Finish完成工程的建立,在开发的过程中,还可以通过菜单assignmentSettings来对这些配置进行修改。点击Finish按钮,QuartusII自动会打开这个工程,可以看到顶层实体名出现在工程导航窗口中。2.2.1创建工程所见新工程的信息,确认所创建工程的主要信26SOPC技术基础教程第2章QuartusII开发环境的使用课件272.3创建NiosII系统模块创建完成工程之后,需要创建顶层实体。创建完顶层设计文件之后,使用SOPCBuilder创建NIOSII嵌入式处理器,添加、配置系统的外设IP,组成NiosII系统模块。NiosII系统模块设计完成之后要加入到该顶层实体中,然后进行其他片上逻辑的开发。2.3创建NiosII系统模块创建完成工程之后,需要创282.3.1创建顶层实体(1)新建的工程窗口中,选择FileNew;(2)在DeviceDesignFile页中,选择BlockDiagram/SchematicFile,即原理图文件,也可以选择硬件描述语言的文件形式。单击OK。(3)出现一个模块编辑窗口。2.3.1创建顶层实体(1)新建的工程窗口中,选择File292.3.1创建顶层实体2.3.1创建顶层实体302.3.1创建顶层实体(4)选择FileSaveAs,出现SaveAs对话框,显示的目录为之前设置的工程目录,文件名为之前设置的顶层实体名(由于这是工程的第一个文件,系统会默认为顶层设计实体的名字)。确定AddtoCurrentProject选项被选中,点击Save文件被保存并被加入到工程中。2.3.1创建顶层实体(4)选择FileSaveAs312.3.1创建顶层实体2.3.1创建顶层实体322.3.2创建NiosII系统模块

创建NIOSII系统模块需要使用SOPCBuilder,它是QuartusII中的一个工具,使用SOPCBuilder可以创建一个NiosII系统模块,或者创建多主设备SOPC模块。一个完整NiosII的系统模块包括NiosII处理器和相关的系统外设。所以创建系统模块的流程是先创建一个系统,然后添加NiosIICPU和外设IP,然后进行相应的设置,最后生成实例,然后将其加入到工程的顶层实体中去。2.3.2创建NiosII系统模块创建NIOSI332.3.2创建NiosII系统模块一、创建系统启动SOPCBuilder,选择ToolsSOPCBuilder,出现图2-10的CreateNewSystem对话框。键入系统的名字,选择硬件描述语言Verilog或者是VHDL。2.3.2创建NiosII系统模块一、创建系统342.3.2创建NiosII系统模块2.3.2创建NiosII系统模块35SOPC技术基础教程第2章QuartusII开发环境的使用课件362.3.2创建Nios系统模块二、设置系统主频和指定目标FPGA在Target栏中的Board部分指定我们这本书使用的核心开发板——CycloneII(EP2C35)。也可以在Board部分选择Unspecified,然后在DeviceFamily选择CycloneII。用户需要设置系统的时钟频率,该频率用于计算硬件和软件开发中的定时,比如时钟分频或波特率。这里我们设成85MHz,还可以选择是否选用流水线。2.3.2创建Nios系统模块二、设置系统主频和指定目标37三、加入NiosIICPU和IP模块首先加入NiosII软核,NiosII是软核CPU,共有三种类型的CPU可供选择:NiosII/e(经济型)、NiosII/s(标准型)和NiosII/f(快速型)。用户可以根据实际的情况进行选择。NiosII是一个用户可以自行进行定制的CPU,用户可以增加新的外设、新的指令等。三、加入NiosIICPU和IP模块38添加NiosIICPU的步骤如下:1.AvalonComponents下面选择NiosIIProcessor;2.点击Add,出现NiosIICPU的配置向导,共有三种类型的CPU可供选择;添加NiosIICPU的步骤如下:39SOPC技术基础教程第2章QuartusII开发环境的使用课件40根据需要选择相应的一种NiosII核,我们选择标准型的NiosII核,HardwareMultiply选择none,不选择HardwareDivide点击Next,进入Caches&TightlyCoupledMemories设置窗口;根据需要选择相应的一种NiosII核,我们选择标准型41SOPC技术基础教程第2章QuartusII开发环境的使用课件42设置NiosII的Cache和与CPU直接相连的存储器端口(不通过Avalon总线),选择InstructionCache为4Kbytes,不选中Includetightlycoupledinstructionmasterport(s),点击Next进入AdvancedFeatures设置页面。

设置NiosII的Cache和与CPU直接相连的存储43SOPC技术基础教程第2章QuartusII开发环境的使用课件44

AdvancedFeatures的设置页面是QuartusII6.1版本才有的设置,这里不选择Includecpu_resetrequestandcpu_resettakensignals点击Next进入JTAGDebugModule设置。AdvancedFeatures的设置页面是Quar45SOPC技术基础教程第2章QuartusII开发环境的使用课件46共有4个调试级别可供选择,这里选择Level1即可,该级别支持软件的断点调试。JTAG调试模块要占用较多的逻辑资源,如果整个系统调试完毕了可以选用NoDebugger以减少系统占用资源点击Next进入自定义指令的设置。共有4个调试级别可供选择,这里选择Level1即可,该47因为本例不用到任何的自定义指令,这里不作任何的设置,点击Finish完成CPU模块的添加。因为本例不用到任何的自定义指令,这里不作任何的设置,点48除了NiosIICPU,电子钟设计需要添加的IP模块包括:TimerButtonPIOLCD控制器ExternalRAMBusExternalFlashBusExternalRAMinterfaceExternalFlashInterface除了NiosIICPU,电子钟设计需要添加的IP模块包括491.添加定时器定时器和NiosIICPU一样,用户可以对其进行定制。添加定时器的步骤如下:(1)在Avaloncomponents下的other库中选 择IntervalTimer并单击Add,Avalon_Timer-timer_0的向导窗口出现;1.添加定时器50(2)配置定时器,点击Finish,完成定时器的添加。(3)可以对Timer进行重命名,我们这里取缺省的名字。(2)配置定时器,点击Finish,完成定时器的添加。(3512.添加ButtonPIO

(1)在Avaloncomponents下的other下选择PIO,单击Add,出现AvalonPIO-PIO_0的向导;(2)在BasicSettings页中,设置width=4bits,direction为InputPortsOnly;(3)在InputOptions页中,在EdgeCaptureRegister下选中SynchronouslyCapture,然后选择EitherEdge;2.添加ButtonPIO52SOPC技术基础教程第2章QuartusII开发环境的使用课件53(4)在Interrupt下选中GenerateIRQ,然后选择Edge;(5)点击Finish,返回到AlteraSOPCBuilderNIOS2的窗口;(6)右键单击ModuleName下的pio_0,从菜单选择rename,重命名为button_pio.(4)在Interrupt下选中GenerateIRQ,然543.添加LCD控制器(1)在图2-11的窗口中的左侧的Avaloncomponents下的display库中选择CharacterLCD(162,Optrex16027),单击Add;(2)ModuleName下出现,lcd_16027_0;(3)将其重命名lcd_display。3.添加LCD控制器554.添加外部RAM接口(1)Avaloncomponents下的Memory下面选择CypressCY7C1380CSSRAM,单击Add,出现SSRAM(CypressCY7C1380C)-ext_ssram的向导;(2)在TimingParameters下面设置ReadLatency为2clocks,在SSRAM下面设置MemorySize为2Mbytes(3)单击Finish,返回到AlteraSOPCBuilderNIOS2的窗口;(4)右键单击ModuleName下的ssram_0,从菜单选择rename,重命名为ext-ssram。4.添加外部RAM接口56SOPC技术基础教程第2章QuartusII开发环境的使用课件575.添加外部闪存接口(1)在Avaloncomponents下的Memory下面选择FlashMemory(CommonFlashInterface),单击Add,出现外部闪存接口向导;(2)在Attributes页中,可以在Presets列表中选择相应的闪存的接口,这些闪存的接口都是经过测试的,如果列表中没有,用户可以自己定义闪存的Size和DataWidth;5.添加外部闪存接口58SOPC技术基础教程第2章QuartusII开发环境的使用课件59(3)在timing页中,可以设置闪存的读写时序要求,可以设置Setup,Waite,hold时间等参数,通常保留缺省的设置;(4)如应用选择的闪存接口不在列表中,需要自己定义Size和DataWidth,和时序要求;(5)点击Finish,返回到AlteraSOPCBuilderNIOS2的窗口,ModuleName出现cfi_flash_0,对其重命名为ext_flash。(3)在timing页中,可以设置闪存的读写时序要求,可以设606.添加外部RAM总线和外部flash总线(Avalon三态总线桥)为了使NiosII系统能与开发板上的外部存储器通信,必须在Avalon总线和外部存储器之间加入Avalon三态桥。步骤如下:(1)在Bridge下,选择AvalonTri-StateBridge,点击Add,出现AvalonTri-StateBridge–tri_state_bridge_0向导;(2)Registered选项默认为选中;(3)单击Finish,返回到AlteraSOPCBuilderNIOS2的窗口;6.添加外部RAM总线和外部flash总线(Avalo61SOPC技术基础教程第2章QuartusII开发环境的使用课件62(4)将其重命名为ext_ssram_bus;(5)重复前三个步骤,在添加一个Avalon三态总线桥,并重命名为ext_flash_bus.(4)将其重命名为ext_ssram_bus;637.添加JTAGUART(1)在Avaloncomponents下的Communication下选择JTAGUART,点击ADD,出现添加向导。(2)按照缺省设置,点击Finish。(3)将其重命名为JTAG_UART.7.添加JTAGUART647.NiosII系统的连接主要是外部RAM接口要和RAM的三态桥连接,外部的Flash接口要和flash的三态桥连接。所有添加的IP连接都是系统自动完成的,除了上面提到的三态桥和外部存储器的接口的连接之外,其它的连接用户不用修改,但对于三态桥和外部存储器接口的连接,系统的自动连接可能和用户的开发板不匹配,用户需要进行手动的更改。针对我们所用的开发板的情况进行的设置,因为本书用到的开发板外部的SRAM和外部的Flash没有使用共用的数据线和地址线,所以必须为它们分别添加一个三态桥。7.NiosII系统的连接65SOPC技术基础教程第2章QuartusII开发环境的使用课件66Altera公司提供了丰富的外设IP可供用户加入到设计当中,如片内ROM,communicationUART、LEDPIO、SevenSegmentPIO、外部DDRSDRAM的接口等等。本设计没有用到上述的外设IP,所以不做讲述,读者可以通过QuartusII的帮助文件,或者通过Altera公司的技术资料来获得相应的信息。Altera公司提供了丰富的外设IP可供用户加入到设计672.3.3分配IP模块的地址和中断号在以上添加IP的过程中,SOPCBuilder为各个IP模块分配了一个默认的基地址,用户可以改变这些默认的分配。如果用户自己分配的地址出现冲突,SOPCBuilder会给出警告,用户可以按照下面的步骤来进行分配和解决地址冲突问题。2.3.3分配IP模块的地址和中断号在以上添加IP的过程中,68下面我们给出一种自定义的地址分配实例,将闪存的基地址设定为0x00000000,步骤如下:(1)单击Flash外设的Base栏,将地址改为0x0,然后回车,这时SOPCBuilder的消息框中出现错误的提示信息,这是因为闪存的地址和其它的外设地址发生了冲突。(2)选择Module菜单中的LockBaseAddress操作,一个挂锁的图标出现在闪存基地址的旁边。下面我们给出一种自定义的地址分配实例,将闪存的基地址设定为069(3)选择System菜单中的AutoAssignBaseAddress操作,来解决外设的地址分配冲突问题,SOPCBuilder调整其它外设的地址来避开与闪存地址的冲突,错误提示的消息就会消失了。(4)用户可以手动修改各个外设的中断号,中断号越低,中断优先级越高,用户也可以采用自动分配中断号,选择System菜单中的AutoAssignIRQs,但SOPCBuilder不处理软件操作,采用自动分配中断的策略不一定是最优的,用户最好是根据自己的应用来确定外设的中断优先级,采用手动的分配。(3)选择System菜单中的AutoAssignBas702.3.4配置NIOSII系统系统的IP模块添加完成之后,还需要对系统进行配置。点击NiosIIMore“cpu_0”Settings页,用户可以进行如下的设置:2.3.4配置NIOSII系统系统的IP模块添加完成之71ResetAddress:可以选择存放BootLoader的存储器和设置BootLoader在存储器中的偏移,我们这里选择ext_flash,偏移选择默认;ExceptionAddress:可以选择存放异常向量表的存放的存储器和设置异常向量表在存储器中的偏移,我们选择ext_ssram,偏移选择默认;BreakLocation:如果NIOSII包含有一个JTAGDebug模块,SOPCBuilder会显示这项内容。其MemoryModule总是JTAGDebugModule,Offset固定为0x20,地址由JTAGdebugmodule基地址决定。用户不能修改BreakLocation的各个域的内容。ResetAddress:可以选择存放BootLoade722.3.5生成NIOSII并加入到工程中NIOSII系统是工程的一部分,我们首先是生成它,然后加入到工程中去,然后将整个工程下载到FPGA芯片中去。单击SystemGeneration,在Option下进行如下的设置:选中HDL,会生成系统模块的硬件语言文件。选中Simulation,如果安装了ModelSim软件,会生成用于仿真的相应的文件。单击Generate,SOPCBuilder会提示生成体统的进程,系统生成完成时会提示”SUCCESS:SYSTEMGENERATIONCOMPLETED”。单击exit退出SOPCBuilder。2.3.5生成NIOSII并加入到工程中NIOSII系73SOPC技术基础教程第2章QuartusII开发环境的使用课件74系统生成完成之后,SOPCBuilder为这个定制的NIOSII系统模块创建了一个符号,要把NiosII系统加入到工程中去,遵循如下的步骤:(1)在QuartusII软件中,打开顶层实体(BDF格式),在BDF窗口中任意处双击,出现Symbol对话框;(2)在Symbol对话框中单击Project来展开工程目录,其下出现NIOS2(本例采用的系统名),选中它,右侧出现了系统的符号表示;(3)单击OK,Symbol对话框关闭,NIOS2的符号轮廓被附着在鼠标的指针上。(4)BDF窗口中任意空白处单击一下,NIOS2的符号出现在BDF窗口中,这样我们创建的系统已经被加入到工程中了。

系统生成完成之后,SOPCBuilder为这个定制的NIO75SOPC技术基础教程第2章QuartusII开发环境的使用课件762.3.6加入引脚和嵌入式锁相环除了NIOSII系统之外,可能还要有其它的硬件逻辑单元,我们这里加入一个嵌入式锁相环,嵌入式锁相环有两个时钟输出,一个输出SSRAM提供时钟,另一个时钟的输出为NIOSIICPU提供时钟,然后添加输入、输出、双向引脚,以实现和FPGA外部的外设进行通信。2.3.6加入引脚和嵌入式锁相环除了NIOSII系统之外77加入嵌入式锁相环的步骤如下:(1)点击ToolsMegaWizardPlug-InManager,出现MegaWizardPlug-InManager向导Page1窗口,点击next加入嵌入式锁相环的步骤如下:78SOPC技术基础教程第2章QuartusII开发环境的使用课件79在MegaWizardPlug-InManagerPage2窗口中的IO下面选择ALTPLL,器件选择CycloneII,输出文件类型选择VHDL,文件名为ssram_pll,选中Returntothispageforanothercreateoperation,然后点击Next,出现MegaWizardPlug-InManager-ALTPLL[Page3of9];在MegaWizardPlug-InManagerPa80SOPC技术基础教程第2章QuartusII开发环境的使用课件81在MegaWizardPlug-InManager-ALTPLL[Page4of10]窗口中,不做任何选择,点击next;在MegaWizardPlug-InManager-ALTPLL[Page5of10]窗口中,单击next;在MegaWizardPlug-InManager-AL82SOPC技术基础教程第2章QuartusII开发环境的使用课件83在MegaWizardPlug-InManager-ALTPLL[Page6of10]窗口中,设置c0输出时钟,首先选中Usethisclock选项,设置时钟频率为85MHz,占空比为50%。点击Next会进入c1输出时钟的设置;在MegaWizardPlug-InManager-AL84SOPC技术基础教程第2章QuartusII开发环境的使用课件85嵌入式PLL可提供3个输出时钟,我们使用其中的两个,MegaWizardPlug-InManager-ALTPLL[Page7of10]窗口中,在c1时钟的设置页面上,选中Usethisclock选项,设置时钟频率为85MHz,点击Next;嵌入式PLL可提供3个输出时钟,我们使用其中的两个,Mega86SOPC技术基础教程第2章QuartusII开发环境的使用课件87在MegaWizardPlug-InManager-ALTPLL[Page8of10]窗口中,不选中Usethisclock选项,即我们不使用c2时钟,点击Next;在MegaWizardPlug-InManager-ALTPLL[Page9of10]窗口中,给出了用于仿真必须要产生的文件,点击Next;在MegaWizardPlug-InManager-AL88在MegaWizardPlug-InManager-ALTPLL[Page10of10]窗口中,给出了用户选择要产生的文件,不做改变,采用默认配置,点击Finish完成PLL的生成。在顶层实体的bdf窗口中双击鼠标,出现Symbol添加窗口,在project下面选择刚才建立的ssram_pll,点击OK。ssram_pll的轮廓会附着在鼠标上,点击bdf窗口的空白处,将嵌入式锁相环加入到了工程中。在MegaWizardPlug-InManager-AL89引脚添加的步骤如下:(1)在顶层实体的bdf窗口的空白处双击鼠标,出现Symbol添加窗口,在altera/quartus/libraries下面选择primitives,再在其下选择pin,在其中有三种类型的引脚,有bidir,input,output,分别为双向、输入和输出引脚,选择相应类型的引脚,点击OK。(2)点击bdf窗口的空白处,即将引脚加入到了工程中。(3)重复上面的步骤添加为各个端口添加相应类型的引脚。引脚添加的步骤如下:90SOPC技术基础教程第2章QuartusII开发环境的使用课件91连接引脚和命名引脚第一个加入的引脚的名称缺省为pin_name,之后加入的引脚名称依次为pin_name1,pin_name2向上递增,为了便于理解和记忆,需要对引脚重新命名,使其和其传输的信号联系起来。命名引脚的方法如下:

(1)双击引脚的“pin_namen”部分,pin_namen的文字变成高亮,可以对其编辑。(2)对其他的引脚重复以上的操作,修改成具有意义的名字。连接引脚和命名引脚92(3)对于总线型的引脚,引脚名称之后要标识出总线的位数,如ddr_a[12..0],在引脚名称之后加上方括号,然后写上最高位和最低位,用两个..隔开。(4)将嵌入式锁相环和系统模块等连接起来,并将引脚连接到相应的端口上。(3)对于总线型的引脚,引脚名称之后要标识出总线的位数,如93SOPC技术基础教程第2章QuartusII开发环境的使用课件942.4设计优化设计优化主要包括节省占用FPGA的面积和提高设计系统运行速度两个方面。这里的“面积”是指一个设计所消耗的FPGA的逻辑资源的数量,一般以设计占用的等价逻辑门数来衡量。“速度”是指设计的系统在目标芯片上稳定运行时能够达到的最高频率,它与设计的时钟周期、时钟建立时间、时钟保持时间、时钟到输出端口的延迟时间等诸多因素有关。2.4设计优化设计优化主要包括节省占用FPGA的面积和提高设952..1面积与速度的优化打开我们刚才的工程——clock,然后选择Assignment菜单下的Settings命令,弹出设置窗口。在对话框的左边的Category栏下,列出了很多可设置的对象,包括EDAToolsSettings、CompilationProcessSettings、Analysis&SynthesisSettings、FitterSettings、TimingSettings、SimulationSettings等等,选中要设置的项目,窗口的右边显示供设置的选项和参数。在Analysis&SynthesisSettings页面,用于对设计在分析与综合时的优化设置。在该页面的OptimizationTechniques栏中,提供了Speed、Balanced和Area3种优化选择,其中Balanced是软件缺省的优化选择。如果对Speed或Area有特殊的要求,则选中相应的选项。2..1面积与速度的优化打开我们刚才的工程——clock,96SOPC技术基础教程第2章QuartusII开发环境的使用课件972.4.2时序约束与设置选择Settings下面的TimingAnalysisSettings,然后选择ClassicTimingAnalyzerSettings。在此页面中,可以对设计的延迟约束、时钟频率等做设置。延迟约束(DelayRequirements)设置包括tsu(建立时间)、tco(时钟到输出的延迟)、tpd(传输延迟)和th(保持时间)的设置。一般来说,用户要根据目标芯片的特性及PCB板走线的实际情况,给出设计需要满足的时钟频率、建立时间、保持时间和传输延迟时间等参数。对一些简单的应用,对时序要求不严格,可以不做设置。2.4.2时序约束与设置选择Settings下面的Timi98SOPC技术基础教程第2章QuartusII开发环境的使用课件992.4.3Fitter设置在Ssettings对话框中,用鼠标左键单击Category栏目中的FitterSettings项,出现FitterSettings设置页面。此页面用于布局布线器的控制。在这里需要设置的主要是布局布线的策略(FitterEffort),有三种模式可供选择:标准模式(StandardFit)、快速模式(FastFit)和自动模式(AutoFit)。标准模式需要的时间比较长,但可以实现较高的最高频率(fmax);快速模式可以节省50%的编译时间,但会使最高频率有所降低;自动模式在达到设计要求的条件下,自动平衡最高频率和编译时间。2.4.3Fitter设置在Ssettings对话框中,用100SOPC技术基础教程第2章QuartusII开发环境的使用课件1012.5编译QuartusII编译器由一系列处理模块组成,包括分析与综合、适配、汇编和时序分析等环节。通过QuartusII编译器,可以检查设计错误,综合逻辑,把设计配置到FPGA中去,并且为模拟、时序分析及器件配置生成输出文件。2.5编译QuartusII编译器由一系列处理模块组成,包1021.分析与综合在编译过程中,首先对设计文件进行分析和检查,如检查原理图的信号线有无漏接、信号有无双重来源、硬件描述语言文件中有无语法错误等,如存在错误,编译器会给出出错信息并标出出错位置,供设计者修改,如果设计文件不存在错误,接着进行综合,综合完成的是设计逻辑到器件资源的映射。1.分析与综合1032.适配适配完成的是设计逻辑在器件中的布局和布线、选择适当的内部互联路径、引脚分配、逻辑元件分配等操作。可以设置适配的多个选项,来采取不同的优化策略。3.汇编适配完成后,进入编程环节。在编程过程中,生成器件的编程映像文件,映像文件可以通过电缆下载到目标芯片中。2.适配1044.时序分析在适配完成之后,设计逻辑在器件中的布局和布线、内部互联路径已经确定,在时序分析中,会计算给定设计在器件中延时,完成时序分析和逻辑的性能分析。用户可以预先设置Timingrequirement,可以针对整个的工程、特定的设计实体、节点和引脚指定所需的速度性能。编译过程中会针对设置进行适配。4.时序分析1052.5.1编译设置在编译前,用户可以设置编译器,可以实现对编译过程控制的目的。编译器根据相应的设置进行编译。合理的设置可以提高工程编译的速度,优化器件的资源利用等。

单击Assignments菜单中的Settings,出现下图的窗口。2.5.1编译设置在编译前,用户可以设置编译器,可以实现对106SOPC技术基础教程第2章QuartusII开发环境的使用课件107在Device中,用户可以设置和器件有关的选项,FPGA的芯片通常在建立项目的时候就以经选择好了,所以通常不做修改。注意在编译之前必须要对未使用的引脚做设置,将未使用的引脚设置成Asinputs,tri-stated。如果不做此项配置设计可能无法在开发板上运行。在Device中,用户可以设置和器件有关的选项,FPGA的芯108设置未使用的引脚按照下面的步骤:(1)在Settings对话框中的Device页中,单击DeviceandPinOptions,出现DeviceandPinOptions对话框,缺省是General页。(2)单击UnusedPins标签,在Reserveallunusedpins下选择,Asinputs,tri-stated。(3)在Deviceandpinsoptions中,其他的设置可以选用默认的设置,不做修改,点击确定。设置未使用的引脚按照下面的步骤:109SOPC技术基础教程第2章QuartusII开发环境的使用课件110设计优化也是编译设置的一部分,但是为了强调设计优化的重要性,把它们单独提出来介绍了,除了这些设置之外,还有下面的一些设置根编译的过程有关:在EDATools中,用户可以指定在编译过程中用到的其他第三方的工具软件,通常不用设定。在CompilationProcessSettings中,用户可以设置编译过程的一些选项,如是否使用增量编译等。在TimingAnalyzer中,用户可以设置时序分析报告中显示的内容。在Assembler中,指定汇编的选项。设计优化也是编译设置的一部分,但是为了强调设计优化的重要性,1112.4.2引脚分配用户需要进行引脚分配,使得编译器能把用户设计中的信号分配到目标器件上的特定引脚上。QuartusII提供了两种引脚分配方法:一种是使用AssignmentsEditor来分配,方法为选择Assignments菜单中的pins或者AssignmentsEditor;第二种方法是使用TCL脚本一次性分配所有的引脚。2.4.2引脚分配用户需要进行引脚分配,使得编译器能把用户112采用第一种方法即使用AssignmentsEditor进行引脚分配步骤如下:(1)选择选择Assignments菜单中的pins或者AssignmentsEditor。(2)在NodeName下输入引脚名称,在Location选择相应的引脚。(3)选择FileSave保存分配。这种分配方法效率较低,且容易出错。推荐使用TCL脚本文件的方法来进行引脚分配。采用第一种方法即使用AssignmentsEditor进行113用TCL脚本文件分配引脚,按照如下步骤:(1)选择project下的generateTclfileforproject,在如下界面点击ok。(2)打开标准工程目录下的standard.tcl文件,把文件中带有set_location_assignment指令,并且-to后面的参数与现有工程中使用的管脚名相关的语句拷贝到test.tcl文件的下面位置(最后一条set_global_assignment语句后),然后保存。(这个过程需要万分的小心和仔细,请大家注意)用TCL脚本文件分配引脚,按照如下步骤:114(3)Tools菜单下,选择TCLscripts…,出现下图的窗口。SOPC技术基础教程第2章QuartusII开发环境的使用课件115(4)选择我们建立的引脚分配文件,本例中为pin.tcl,点击RUN即可完成引脚分配。如果管脚名字与standard工程的对应管脚名字不同,那么tcl文件的添加就没有效果了。这种方法可以节省定义管脚的时间,尤其是在有参照工程管脚定义的情况下,更为方便。(4)选择我们建立的引脚分配文件,本例中为pin.tcl,点1162.5.3编译用户设计选择Processing菜单中的StartCompilation,或者点击工具栏中的StartCompilation按钮进行全程编译,也可以在Processing菜单中选择Start子菜单中的分步编译操作。编译的时候,QuartusII会给出编译进度,CompilationReport窗口中给出编译结果,编译结果随着编译进度随时更新。Message窗口会给出编译过程的具体情况,包括info,warning,error等,information多是完成的多是一些编译的进展的描述,warning可能会出现很多但并不影响编译的进行,如果出现Error那么设计是不能成功编译的,用户需要改正这些错误,然后重新编译。可以对错误进行定位,选中错误信息,单击右键,在弹出的菜单中选择Locate来实现对错误的定位。2.5.3编译用户设计选择Processing菜单中的St117编译成功之后,会出现如图的提示编译成功之后,会出现如图的提示118编译成功之后,会出现CompileReport-FlowSummary窗口,FlowSummary只是CompileReport中的一项,用户可以点击CompilationReport下的其他内容来查看编译相应的编译信息和结果,如Analysis&synthesis、Fitter、TimingAnalyzer等。编译成功之后,会出现CompileReport-Flow119SOPC技术基础教程第2章QuartusII开发环境的使用课件1202.6编程下载编译成功之后,QuartusII编译器生成配置文件,有SRAM目标文件(.sof)和编程目标(.pof),.sof文件一般在调试时下载到FPGA的SRAM中,.pof文件是用于EPCS的编程文件。编程下载就是编程器将这些文件下载到可编程逻辑器件中去,用它们对器件编程和配置。用户要进行编程下载必须将开发设计的电脑与开发板来接起来,可以使用ByteBlaster电缆通过并行口或者使用USBBlaster线缆通过USB接口连接。本书采用的下载线为USBBlaster。2.6编程下载编译成功之后,QuartusII编译器生1212.6.1下载我们这里将生成的.sof文件下载到FPGA中去。下载的步骤如下:(1)同过USBBlaster电缆将目标板和计算机相连,接通目标板的电源。(2)在QuartusII软件中选择ToolsProgrammer,打开编程器的窗口,可以看到配置文件clock.sof。2.6.1下载我们这里将生成的.sof文件下载到FPGA中122SOPC技术基础教程第2章QuartusII开发环境的使用课件1233)点击编程器窗口中的HardwareSetup,出现硬件设置窗口,在Currentlyselectedhardware下拉框中选择NiosIIEvaluationBoard[USB-0]。然后点击close,返回编程器窗口。3)点击编程器窗口中的HardwareSetup,出现硬124(4)选中Program/Configure,然后点击start开始按钮,开始下载,可以从Progress栏看到下载进度。(4)选中Program/Configure,然后点击sta1252.6.2验证在硬件下载到开发板上的FPGA芯片之后,用户可以编写一些个简单的小程序来测试系统的功能。2.6.2验证在硬件下载到开发板上的FPGA芯片之后,用户126演讲完毕,谢谢观看!演讲完毕,谢谢观看!127第2章

SOPC开发流程及 QuartusII的使用

第2章

SOPC开发流程及 QuartusII的使用1282.1SOPC开发流程和开发工具SOPC设计包括硬件和软件两部分。硬件设计:主要基于QuartusII和 SOPCBuilder。软件设计:基于NiosIIIDE。2.1SOPC开发流程和开发工具SOPC设计包括硬件和软件129SOPC开发流程简图分析系统需求NiosII内核&标准外设定制指令&定制外设逻辑硬件抽象层(HAL)&外设驱动程序用户C/C++应用程序代码和定制的库自定义的功能模块建立QuartusII工程,建立顶层图*.bdf打开SOPCBuilder定义和生成系统集成SOPC生成的系统到QuartusII工程使用NiosIIIDE开发软件Altera的LPM模块连接各功能模块选择FPGA型号并进行管脚分配进行编译选项设置编译硬件系统生成配置文件sof编译软件生成可执行文件elf在目标板上下载可执行软件到NiosII系统下载配置文件到FPGA器件在目标板上运行/调试软件调试好的硬件和软件在IDE中使用ISS运行/调试软件设置软件运行硬件环境属性使用IDE编程工具烧写配置文件和软件代码在进行SOPC开发之前,首先必须确定系统的需求,如应用系统需求的计算性能、需要的带宽和吞吐量、需求的接口类型以及是否需求多线程的软件等。每个开发过程开始时都应建立一个工程,QuartusII是以工程的方式对设计过程进行管理。在工程中建立顶层模块文件.bdf相当于传统电路设计中的电路板(PCB)。在SOPCBuilder中添加需要的功能模块(NiosII及其标准外设模块),完成后生成一个系统模块。如果需要,用户可以定制指令和外设逻辑。(可参考第8章)SOPC开发流程简图分析系统需求NiosII内核&标准外设定130SOPC开发流程简图分析系统需求NiosII内核&标准外设定制指令&定制外设逻辑硬件抽象层(HAL)&外设驱动程序用户C/C++应用程序代码和定制的库自定义的功能模块建立QuartusII工程,建立顶层图*.bdf集成SOPC生成的系统到QuartusII工程使用NiosIIIDE开发软件Altera的LPM模块连接各功能模块选择FPGA型号并进行管脚分配进行编译选项设置编译硬件系统生成配置文件sof编译软件生成可执行文件elf在目标板上下载可执行软件到NiosII系统下载配置文件到FPGA器件在目标板上运行/调试软件调试好的硬件和软件在IDE中使用ISS运行/调试软件设置软件运行硬件环境属性在QuartusII软件中包含了大量的Altera公司提供的LPM功能模块,相当与传统设计中除处理器以外的逻辑芯片(如74系列);当设计中现有模块不能满足设计要求时,可设计自己的功能模块。并在顶层模块中使用;打开SOPCBuilder定义和生成系统在顶层模块中,分别将SOPCBuilder生成的系统模块、LPM功能模块以及用户自定义功能模块添加到顶层模块中;然后将各个功能模块用连线连起来组成系统功能原理图。这个两过程类似传统电路设计中,将所有要使用的芯片焊接到电路板上,然后通过PCB上的连线将各个芯片连接起来,组成电路系统。使用IDE编程工具烧写配置文件和软件代码SOPC开发流程简图分析系统需求NiosII内核&标准外设定131SOPC开发流程简图分析系统需求NiosII内核&标准外设定制指令&定制外设逻辑硬件抽象层(HAL)&外设驱动程序用户C/C++应用程序代码和定制的库自定义的功能模块建立QuartusII工程,建立顶层图*.bdf集成SOPC生成的系统到QuartusII工程使用NiosIIIDE开发软件Altera的LPM模块连接各功能模块选择FPGA型号并进行管脚分配进行编译选项设置编译硬件系统生成配置文件sof编译软件生成可执行文件elf在目标板上下载可执行软件到NiosII系统下载配置文件到FPGA器件在目标板上运行/调试软件调试好的硬件和软件在IDE中使用ISS运行/调试软件设置软件运行硬件环境属性打开SOPCBuilder定义和生成系统为系统功能原理图选择芯片载体并为各个输入输出信号分配芯片的管脚;设置编译选项,从而让编译器按照用户设定来进行编译;编译系统生成硬件系统的配置文件*.sof和*.pof。编译系统是一个非常复杂的过程,包括优化逻辑的组合、综合逻辑、适配FPGA、布线以及时序分析等步骤。使用IDE编程工具烧写配置文件和软件代码SOPC开发流程简图分析系统需求NiosII内核&标准外设定132SOPC开发流程简图分析系统需求NiosII内核&标准外设定制指令&定制外设逻辑硬件抽象层(HAL)&外设驱动程序用户C/C++应用程序代码和定制的库自定义的功能模块建立QuartusII工程,建立顶层图*.bdf集成SOPC生成的系统到QuartusII工程使用NiosIIIDE开发软件Altera的LPM模块连接各功能模块选择FPGA型号并进行管脚分配进行编译选项设置编译硬件系统生成配置文件sof编译软件生成可执行文件elf在目标板上下载可执行软件到NiosII系统下载配置文件到FPGA器件在目标板上运行/调试软件调试好的硬件和软件在IDE中使用ISS运行/调试软件设置软件运行硬件环境属性打开SOPCBuilder定义和生成系统软件开发也可以在SOPCBuilder生成系统模块后立即进行!与传统软件开发类似,唯一不同在于系统是自己定制的,所受局限小!使用IDE编程工具烧写配置文件和软件代码SOPC开发流程简图分析系统需求NiosII内核&标准外设定133SOPC开发流程简图分析系统需求NiosII内核&标准外设定制指令&定制外设逻辑硬件抽象层(HAL)&外设驱动程序用户C/C++应用程序代码和定制的库自定义的功能模块建立QuartusII工程,建立顶层图*.bdf集成SOPC生成的系统到QuartusII工程使用NiosIIIDE开发软件Altera的LPM模块连接各功能模块选择FPGA型号并进行管脚分配进行编译选项设置编译硬件系统生成配置文件sof编译软件生成可执行文件elf在目标板上下载可执行软件到NiosII系统下载配置文件到FPGA器件在目标板上运行/调试软件调试好的硬件和软件在IDE中使用ISS运行/调试软件设置软件运行硬件环境属性打开SOPCBuilder定义和生成系统

设置好软件运行的硬件环境属性后,便可进行编译、链接和调试、运行程序。对用户程序进行编译,生成可执行文件*.elf。接下来在IDE的指令集仿真器(ISS)上仿真软件和运行/调试软件。

将配置文件.sof下载到FPGA,将可执行文件.elf下载到RAM。

在目标板上反复调试软件。

直到硬件和软件设计都达到设计要求。

最后利用IDE的编程工具将配置文件烧写到FPGA的配置芯片或Flash,将可执行文件*.elf编程到Flash中。使用IDE编程工具烧写配置文件和软件代码SOPC开发流程简图分析系统需求NiosII内核&标准外设定1342.1SOPC开发流程和开发工具硬件开发硬件开发使用QuartusII和SOPCBuilder配置NiosII处理器选择并配置外设.IP连接各外设模块分配外设地址和中断生成系统SOPCBuilderGUI自定义命令IP模块处理器库外设模块库硬件开发NiosIIIDE软件开发QuartusIIGNUTools

用SOPCBuilder软件从NiosII处理器内核和NiosII开发套件提供的外设列表中选取合适的CPU、存储器以及各外围器件,并定制和配置它们的功能;

分配外设地址及中断号;设定复位地址;最后生成系统。用户也可以添加用户自身定制指令逻辑到NiosII内核以加速CPU性能;添加用户自己设计的IP模块。2.1SOPC开发流程和开发工具硬件开发硬件开发使用Qua1352.1SOPC开发流程和开发工具硬件开发硬件开发使用QuartusII和SOPCBuilder配置NiosII处理器选择并配置外设.IP连接各外设模块分配外设地址和中断生成系统SOPCBuilderGUI自定义命令IP模块处理器库外设模块库硬件开发NiosIIIDE软件开发QuartusIIGNUTools编译QuartusII工程,对HDL文件进行布局布线,从HDL源文件综合生成一个适合目标器件网表,生成FPGA配置文件(.sof);HDL源文件测试台用户逻辑设计其它的IP模块SOPCBuilder的顶层.bdf文件管脚连接分配编译(分析与综合、布局布线、时序分析等)验证调试硬件配置文件JTAG串口、以太网片上调试(软件跟踪、硬件断点SignalTapII)AlteraGPGA用下载电缆(如ByteBlasterII),将配置文件下载到目标板上。硬件校验完成后,可将新的硬件配置文件下载到目标板上的非易失存储器(如EPCS器件)。2.1SOPC开发流程和开发工具硬件开发硬件开发使用Qua1362.1SOPC开发流程和开发工具硬件开发配置NiosII处理器选择并配置外设.IP连接各外设模块分配外设地址和中断生成系统SOPCBuilderGUI自定义命令IP模块处理器库外设模块库硬件开发NiosIIIDE软件开发QuartusIIGNUTools编译QuartusII工程,对HDL文件进行布局布线,从HDL源文件综合生成

温馨提示

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

评论

0/150

提交评论