资源描述
第第2章章 SOPC硬件开发环境及流程硬件开发环境及流程 2.1 SOPC开发流程和开发工具开发流程和开发工具 SOPC设计包括设计包括硬件和软件硬件和软件两部分。两部分。1.硬件设计:基于硬件设计:基于Quartus II和和SOPC Builder2.软件设计:基于软件设计:基于Nios II IDE3.仿真:仿真:ModelSim4.DSP的开发的开发:Matlab和和DSP Builder 开发环境:开发环境:1.Quartus II 6.0(8.0)2.SOPC Builder 6.0(8.0)3.Nios II IDE 6.0(8.0)4.基于基于Cyclone II 的的SOPC开发板开发板 Quartusn 完成完成NiosII整个系统的设计、分析、综合、硬件优化和适配整个系统的设计、分析、综合、硬件优化和适配n 配置文件编程下载、硬件系统测试配置文件编程下载、硬件系统测试 SOPC Buildern NIOSII 系统硬件开发环境系统硬件开发环境n 实现实现Nios II系统配置和生成系统配置和生成n Nios II系统相关的监控和软件调试平台的生成系统相关的监控和软件调试平台的生成 IDEn 完成基于完成基于Nios II系统的软件开发和调试系统的软件开发和调试n 将将FPGA配置信息写入配置信息写入Flash或者或者EPCSSOPC BuilderNios II IDEQuartus II 8.0 名词解释-与SOPC相关的名词Quartus II:Altera公司的第四公司的第四代可编程逻辑器件代可编程逻辑器件集成开发环境,提集成开发环境,提供从设计输入到器供从设计输入到器件编程的全部功能。件编程的全部功能。Quartus II 5.0 软件界面双击双击Quartus II图标图标 名词解释-与SOPC相关的名词SOPC Builder:功能强大的基于图功能强大的基于图形界面的片上系统形界面的片上系统定义和定制工具。定义和定制工具。SOPC Builder库库中包括处理器和大中包括处理器和大量的量的IP核及外设。核及外设。SOPC Builder包含在包含在Quartus II软件中软件中启动启动:Quartus II Tools SOPC Builder 名词解释-与SOPC相关的名词Nios II:Nios II系列嵌入式处理器的基本软件开发工具。所有软件开发任务都可以Nios II IDE下完成,包括编辑、编译和调试程序。双击双击Nios II IDE图标图标 ModelSim:HDL仿真软件,对设计的硬件系统进行仿真软件,对设计的硬件系统进行RTL级的级的仿真。仿真。DSP Builder:Altera公司的数字信号处理软件,实现算法和公司的数字信号处理软件,实现算法和硬件的无缝过渡,可以在硬件的无缝过渡,可以在Matlab的的Simulink中完成算法的仿中完成算法的仿真、验证,后通过真、验证,后通过SignalCompiler将模型文件转换成硬件描将模型文件转换成硬件描述语言。述语言。采用采用NIOS II处理器设计嵌入式系统的流程:处理器设计嵌入式系统的流程:1.分析系统需求说明,包括功能需求和性能要求等;分析系统需求说明,包括功能需求和性能要求等;2.建立建立Quartus II工程,建立顶层实体;工程,建立顶层实体;3.SOPC Builder生成用户定制的系统模块生成用户定制的系统模块(NIOS II+?)?)4.将将NIOS II系统模块集成到硬件工程中,添加一些模块,可以是系统模块集成到硬件工程中,添加一些模块,可以是 Altera公司提供的公司提供的LPM(logic programmable module)宏功能块或用户自己宏功能块或用户自己定制的模块;定制的模块;5.在顶层实体中,将在顶层实体中,将NIOS II系统模块、系统模块、Altera的的LPM或用户自定或用户自定 义的逻辑模块连接起来;义的逻辑模块连接起来;2.1 SOPC开发流程和开发工具开发流程和开发工具 6.分配引脚分配引脚(Tcl脚本语言脚本语言)和编译工程,编译生成系统的硬件配置文件和编译工程,编译生成系统的硬件配置文件.sof和和.pof文件;(二者区别:文件;(二者区别:SRAMEEPROM)7.下载工程,将配置文件下载到开发板上进行验证;(可选)下载工程,将配置文件下载到开发板上进行验证;(可选)8.使用使用IDE开发环境进行软件开发开发环境进行软件开发 9.编译软件工程,生成可执行文件编译软件工程,生成可执行文件.elf;10.调试程序,将硬件配置文件下载到开发板,将可执行文件调试程序,将硬件配置文件下载到开发板,将可执行文件 下载到下载到RAM,软硬件协同工作。,软硬件协同工作。每个开发过程开始时都应建立每个开发过程开始时都应建立一个工程,一个工程,Quartus II是以工是以工程的方式对设计过程进行管理。程的方式对设计过程进行管理。在工程中建立顶层模块文件在工程中建立顶层模块文件.bdf相当于传统电路设计中的电路板相当于传统电路设计中的电路板(PCB)。SOPC开发流程简图开发流程简图分析系统需求分析系统需求NiosIINiosII内核内核&标准外设标准外设定制指令定制指令&定定制外设逻辑制外设逻辑硬件抽象层硬件抽象层(HAL)&(HAL)&外设外设驱动程序驱动程序用户用户C/C+C/C+应应用程序代码用程序代码和定制的库和定制的库自定义的自定义的功能模块功能模块建立建立Quartus IIQuartus II工程,工程,建立顶层图建立顶层图*.bdf.bdf打开打开SOPC BuilderSOPC Builder定义和生成系统定义和生成系统集成集成SOPCSOPC生生成的系统到成的系统到Quartus IIQuartus II工程工程使用使用Nios IINios IIIDEIDE开发软件开发软件AlteraAltera的的LPMLPM模块模块连接各连接各功能模块功能模块选择选择FPGAFPGA型号型号并进行管脚分配并进行管脚分配进行编译进行编译选项设置选项设置编译硬件系统编译硬件系统生成配置文件生成配置文件sofsof编译软件编译软件生成可执生成可执行文件行文件elfelf在目标板上在目标板上下载可执行下载可执行软件到软件到Nios IINios II系统系统下载配置文件到下载配置文件到FPGAFPGA器件器件在目标板上运在目标板上运行行/调试软件调试软件调试好的调试好的硬件和软件硬件和软件在在IDEIDE中使用中使用ISSISS运行运行/调试调试软件软件设置软件运行设置软件运行硬件环境属性硬件环境属性使用使用IDEIDE编程工具编程工具烧写配置文件和烧写配置文件和软件代码软件代码在在SOPC Builder中添加需要的功能模中添加需要的功能模块(块(Nios II及其标及其标准外设模块),完成准外设模块),完成后生成一个系统模块。后生成一个系统模块。如果需要,用如果需要,用户可以定制指令户可以定制指令和 外 设 逻 辑。和 外 设 逻 辑。(可参考第可参考第8章章)在进行在进行SOPC开发之前,首开发之前,首先必须确定系统的需求先必须确定系统的需求:如系如系统需求的性能、统需求的性能、CPU软核类型软核类型(硬件乘法器?)外围器件和(硬件乘法器?)外围器件和数量、需要的带宽和吞吐量、数量、需要的带宽和吞吐量、需求的接口类型以及需求的接口类型以及DMA通通道数量等。道数量等。SOPC开发流程简图开发流程简图分析系统需求分析系统需求NiosIINiosII内核内核&标准外设标准外设定制指令定制指令&定定制外设逻辑制外设逻辑硬件抽象层硬件抽象层(HAL)&(HAL)&外设外设驱动程序驱动程序用户用户C/C+C/C+应应用程序代码用程序代码和定制的库和定制的库自定义的自定义的功能模块功能模块建立建立Quartus IIQuartus II工程,工程,建立顶层图建立顶层图*.bdf.bdf集成集成SOPCSOPC生生成的系统到成的系统到Quartus IIQuartus II工程工程使用使用Nios IINios IIIDEIDE开发软件开发软件AlteraAltera的的LPMLPM模块模块连接各连接各功能模块功能模块选择选择FPGAFPGA型号型号并进行管脚分配并进行管脚分配进行编译进行编译选项设置选项设置编译硬件系统编译硬件系统生成配置文件生成配置文件sofsof编译软件编译软件生成可执生成可执行文件行文件elfelf在目标板上在目标板上下载可执行下载可执行软件到软件到Nios IINios II系统系统下载配置文件到下载配置文件到FPGAFPGA器件器件在目标板上运在目标板上运行行/调试软件调试软件调试好的调试好的硬件和软件硬件和软件在在IDEIDE中使用中使用ISSISS运行运行/调试调试软件软件设置软件运行设置软件运行硬件环境属性硬件环境属性在在Quartus II软件中软件中包含了大量的包含了大量的Altera公公司提供的司提供的LPM功能模块,功能模块,相当与传统设计中除处相当与传统设计中除处理器以外的逻辑芯片理器以外的逻辑芯片(如如74系列系列);打开打开SOPC BuilderSOPC Builder定义和生成系统定义和生成系统在顶层模块中,分别在顶层模块中,分别将将SOPC Builder生生成的系统模块、成的系统模块、LPM功能模块以及用户自功能模块以及用户自定义功能模块添加到定义功能模块添加到顶层模块中顶层模块中;然 后 将 各然 后 将 各个功能模块个功能模块用连线连起用连线连起来组成系统来组成系统功能原理图。功能原理图。这个两过程类似传统电路设这个两过程类似传统电路设计中,将所有要使用的芯片计中,将所有要使用的芯片焊接到电路板上,然后通过焊接到电路板上,然后通过PCB上的连线将各个芯片连上的连线将各个芯片连接起来,组成电路系统。接起来,组成电路系统。使用使用IDEIDE编程工具编程工具烧写配置文件和烧写配置文件和软件代码软件代码根据系统要求,根据系统要求,设计自己的逻辑设计自己的逻辑功能模块。并在功能模块。并在顶层模块中使用;顶层模块中使用;SOPC开发流程简图开发流程简图分析系统需求分析系统需求NiosIINiosII内核内核&标准外设标准外设定制指令定制指令&定定制外设逻辑制外设逻辑硬件抽象层硬件抽象层(HAL)&(HAL)&外设外设驱动程序驱动程序用户用户C/C+C/C+应应用程序代码用程序代码和定制的库和定制的库自定义的自定义的功能模块功能模块建立建立Quartus IIQuartus II工程,工程,建立顶层图建立顶层图*.bdf.bdf集成集成SOPCSOPC生生成的系统到成的系统到Quartus IIQuartus II工程工程使用使用Nios IINios IIIDEIDE开发软件开发软件AlteraAltera的的LPMLPM模块模块连接各连接各功能模块功能模块选择选择FPGAFPGA型号型号并进行管脚分配并进行管脚分配进行编译进行编译选项设置选项设置编译硬件系统编译硬件系统生成配置文件生成配置文件sofsof编译软件编译软件生成可执生成可执行文件行文件elfelf在目标板上在目标板上下载可执行下载可执行软件到软件到Nios IINios II系统系统下载配置文件到下载配置文件到FPGAFPGA器件器件在目标板上运在目标板上运行行/调试软件调试软件调试好的调试好的硬件和软件硬件和软件在在IDEIDE中使用中使用ISSISS运行运行/调试调试软件软件设置软件运行设置软件运行硬件环境属性硬件环境属性打开打开SOPC BuilderSOPC Builder定义和生成系统定义和生成系统为系统原理图为系统原理图,选择载体并为各选择载体并为各个输入输出信号个输入输出信号分配管脚分配管脚;设置编译选项,设置编译选项,从而让编译器按照从而让编译器按照用户设定来进行编用户设定来进行编译;译;编译系统生成硬件系统的编译系统生成硬件系统的配置文件配置文件*.sof和和*.pof。编译系统是一个非常复杂的编译系统是一个非常复杂的过程,包括优化逻辑的组合、过程,包括优化逻辑的组合、综合逻辑、适配综合逻辑、适配FPGA、布、布线以及时序分析等步骤。线以及时序分析等步骤。使用使用IDEIDE编程工具编程工具烧写配置文件和烧写配置文件和软件代码软件代码SOPC开发流程简图开发流程简图分析系统需求分析系统需求NiosIINiosII内核内核&标准外设标准外设定制指令定制指令&定定制外设逻辑制外设逻辑硬件抽象层硬件抽象层(HAL)&(HAL)&外设外设驱动程序驱动程序用户用户C/C+C/C+应应用程序代码用程序代码和定制的库和定制的库自定义的自定义的功能模块功能模块建立建立Quartus IIQuartus II工程,工程,建立顶层图建立顶层图*.bdf.bdf集成集成SOPCSOPC生生成的系统到成的系统到Quartus IIQuartus II工程工程使用使用Nios IINios IIIDEIDE开发软件开发软件AlteraAltera的的LPMLPM模块模块连接各连接各功能模块功能模块选择选择FPGAFPGA型号型号并进行管脚分配并进行管脚分配进行编译进行编译选项设置选项设置编译硬件系统编译硬件系统生成配置文件生成配置文件sofsof编译软件编译软件生成可执生成可执行文件行文件elfelf在目标板上在目标板上下载可执行下载可执行软件到软件到Nios IINios II系统系统下载配置文件到下载配置文件到FPGAFPGA器件器件在目标板上运在目标板上运行行/调试软件调试软件调试好的调试好的硬件和软件硬件和软件在在IDEIDE中使用中使用ISSISS运行运行/调试调试软件软件设置软件运行设置软件运行硬件环境属性硬件环境属性打开打开SOPC BuilderSOPC Builder定义和生成系统定义和生成系统软件 开 发 也 可 以 在软件 开 发 也 可 以 在SOPC Builder 生成系统模块后立生成系统模块后立即进行!即进行!(。PTF文件:硬件文件:硬件系统配置系统配置)与传统软件开发类与传统软件开发类似,唯一不同在于系统是自己似,唯一不同在于系统是自己定制的,所受局限小!定制的,所受局限小!使用使用IDEIDE编程工具编程工具烧写配置文件和烧写配置文件和软件代码软件代码SOPC开发流程简图开发流程简图分析系统需求分析系统需求NiosIINiosII内核内核&标准外设标准外设定制指令定制指令&定定制外设逻辑制外设逻辑硬件抽象层硬件抽象层(HAL)&(HAL)&外设外设驱动程序驱动程序用户用户C/C+C/C+应应用程序代码用程序代码和定制的库和定制的库自定义的自定义的功能模块功能模块建立建立Quartus IIQuartus II工程,工程,建立顶层图建立顶层图*.bdf.bdf集成集成SOPCSOPC生生成的系统到成的系统到Quartus IIQuartus II工程工程使用使用Nios IINios IIIDEIDE开发软件开发软件AlteraAltera的的LPMLPM模块模块连接各连接各功能模块功能模块选择选择FPGAFPGA型号型号并进行管脚分配并进行管脚分配进行编译进行编译选项设置选项设置编译硬件系统编译硬件系统生成配置文件生成配置文件sofsof编译软件编译软件生成可执生成可执行文件行文件elfelf在目标板上在目标板上下载可执行下载可执行软件到软件到Nios IINios II系统系统下载配置文件到下载配置文件到FPGAFPGA器件器件在目标板上运在目标板上运行行/调试软件调试软件调试好的调试好的硬件和软件硬件和软件在在IDEIDE中使用中使用ISSISS运行运行/调试调试软件软件设置软件运行设置软件运行硬件环境属性硬件环境属性打开打开SOPC BuilderSOPC Builder定义和生成系统定义和生成系统 设置好软件运行设置好软件运行的硬件环境属性的硬件环境属性后,便可进行编后,便可进行编译、链接和调试、译、链接和调试、运行程序。运行程序。对用户程序进行对用户程序进行编译,生成可执编译,生成可执行文件行文件*.elf。在在IDE的指令集仿的指令集仿真器真器(ISS)上仿真软上仿真软件和运行件和运行/调试软件。调试软件。(可选可选)将配置文件将配置文件.sof下下载到载到FPGA,将可,将可执行文件执行文件.elf下载下载到到RAM。在目标板上反在目标板上反复调试软件。复调试软件。直到硬件和直到硬件和软件设计都达软件设计都达到设计要求。到设计要求。最后利用最后利用IDE的编程的编程工具将配置文件烧写到工具将配置文件烧写到FPGA的配置芯片或的配置芯片或Flash,将可执行文件,将可执行文件*.elf编程到编程到Flash中中使用使用IDEIDE编程工具编程工具烧写配置文件和烧写配置文件和软件代码软件代码SOPC硬件开发流程硬件开发流程 从开发套件提供的外设列表从开发套件提供的外设列表 中选取合适的中选取合适的CPU、存储器及、存储器及外围器件外围器件,定制和配置其功能;定制和配置其功能;分配外设地址及中断号;分配外设地址及中断号;设定复位地址;设定复位地址;生成系统。生成系统。添加用户自身定制指令逻辑添加用户自身定制指令逻辑 到到NiosII内核加速内核加速CPU性能性能 添加用户自己设计的添加用户自己设计的IP模块。模块。编译,综合,布局布线,从编译,综合,布局布线,从 HDL源文件综合成一个适合源文件综合成一个适合 目标器件网表,生成目标器件网表,生成FPGA 配置文件配置文件(.sof);用下载电缆将配置文件下载用下载电缆将配置文件下载 到目标板。调试完成后,将到目标板。调试完成后,将 硬件配置文件下载到目标板硬件配置文件下载到目标板 的非易失存储器的非易失存储器(如如flash)。2.2 SOPC硬件开发实例n 电子钟的设计电子钟的设计n 第一步是要进行需求分析,建立系统第一步是要进行需求分析,建立系统 在液晶屏上显示日期、时间;在液晶屏上显示日期、时间;可以设置日期、时间;可以设置日期、时间;n 根据系统要求,设计要用到的外围器件根据系统要求,设计要用到的外围器件 LCD:电子钟显示屏幕;:电子钟显示屏幕;按键:电子钟设置功能键;按键:电子钟设置功能键;Flash存储器:存储软、硬件程序;存储器:存储软、硬件程序;SRAM存储器:程序运行时将其导入存储器:程序运行时将其导入SRAM。n 根据所用到的外设、功能以及开发板的配置,在根据所用到的外设、功能以及开发板的配置,在SOPC Builder中建立中建立系统要添加的模块包括系统要添加的模块包括 Nios II CPU、定时器、按键、定时器、按键PIO、LCD控制器、控制器、AVALON三态桥、外部三态桥、外部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.可以为工程添加先期已经输入的设计文件,指定用户自定可以为工程添加先期已经输入的设计文件,指定用户自定义的元件库的路径。义的元件库的路径。2.2.1 创建工程5.指定目标器件,根据开发板使用的器件来选择。指定目标器件,根据开发板使用的器件来选择。注意注意3:器件型号器件型号CycloneIIEP2C35F672C82.2.1 创建工程6.指定在指定在Quartus II 之外的之外的用于设计输入、综合、仿真、时序分析的第三方用于设计输入、综合、仿真、时序分析的第三方EDA工具。工具。(Precision SynthesisSynplify等等)7.新工程的信息。在设计的过程中,还可以通过菜单新工程的信息。在设计的过程中,还可以通过菜单assignmentSettings来来对这些配置进行修改。对这些配置进行修改。8.点击点击Finish按钮,按钮,Quartus II自动会打开这个工程,可以看到顶层实体名自动会打开这个工程,可以看到顶层实体名出现在工程导航窗口中。出现在工程导航窗口中。2.3 创建创建Nios II 系统模块系统模块创建顶层实体创建顶层实体创建创建Nios 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系统模块n 使用工具使用工具:SOPC Builder n Nios II系统模块:系统模块:Nios II处理器处理器 和相关的系统外设。和相关的系统外设。n 创建系统模块的流程创建系统模块的流程:先创建一个系统,然后先创建一个系统,然后添加添加Nios II CPU和外设和外设IP,生成,生成实例或者模块实例或者模块,加入到加入到工程的顶层实体工程的顶层实体。SOPC Builder2.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模块模块 首先加入首先加入Nios II软核软核n 1.Avalon Components 下面选择下面选择Nios II Processor;n 2.双击或者右键双击或者右键 Add,出现,出现Nios II CPU的配置向导的配置向导n 根据需要选择根据需要选择Nios II核核n Hardware Multiply选择选择none,不选择,不选择Hardware Divide 注意注意6:Embedded Multipliers:使用专门的内嵌硬件乘法单元(乘法速:使用专门的内嵌硬件乘法单元(乘法速度最快)。度最快)。Logic Elements,使用逻辑单元也就是,使用逻辑单元也就是FPGA中的查找表中的查找表(速度较慢)。(速度较慢)。None:只能通过软件模拟乘法,速度最慢。:只能通过软件模拟乘法,速度最慢。n 点击点击Next,进入缓存设置窗口;,进入缓存设置窗口;n 可设可设Instruction Cache为为4Kbytes,Data Cache 2Kbytesn Advanced Features设置设置n 不选择不选择Include cpu_resetrequest and cpu_resettaken signals(注意(注意7:resetrequest该复位信号仅复位处理器。处理器在收到该信号后,先执行该复位信号仅复位处理器。处理器在收到该信号后,先执行完完 流水线的所有指令,然后进入复位状态。处理器在复位完成后会使流水线的所有指令,然后进入复位状态。处理器在复位完成后会使cpu_resettaken信号生效一个时钟周期)信号生效一个时钟周期)n 点击点击Next进入进入MMU and MPU设置。设置。(Quartus 8.0)(注意注意8:存储器管理单元存储器管理单元 MMU和存储器保护单元和存储器保护单元 MPU)n JTAG调试级别选择调试级别选择n 选择选择Level1:该级别支持软件的断点调试。:该级别支持软件的断点调试。n JTAG调试模块要占用较多的逻辑资源,系统调试完毕了可以选用调试模块要占用较多的逻辑资源,系统调试完毕了可以选用No Debuggern 自定义指令的设置,不作任何的设置。点击自定义指令的设置,不作任何的设置。点击Finish完成完成NIOS II处理器的添加处理器的添加n 处理器的编辑和修改处理器的编辑和修改添加其它外设添加其它外设IP模块模块除了除了Nios II CPU,电子钟设计需要添加的,电子钟设计需要添加的IP模块包括:模块包括:Timer Button PIO LCD控制器控制器 External SRAM 总线总线 External Flash 总线总线 External SRAM 接口接口 External Flash 接口接口 1.添加定时器添加定时器 (1)如图选)如图选Interval Timer并双击,向导窗口出现;并双击,向导窗口出现;(注意注意9)(2)配置定时器,点)配置定时器,点Finish,完成定时器的添加。可重命名。,完成定时器的添加。可重命名。2.添加添加Button PIO(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 Latency和和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)再添加一个再添加一个Avalon三态总线桥,重命名为三态总线桥,重命名为ext_flash_bus.7.Nios II系统的连接系统的连接 (注意注意11)所有添加的所有添加的IP连接是系统自动完成的。对于三态桥和外部存储连接是系统自动完成的。对于三态桥和外部存储器接口的连接,系统的自动连接可能和用户的开发板不匹配,器接口的连接,系统的自动连接可能和用户的开发板不匹配,用户需要进行手动的更改。用户需要进行手动的更改。主要是外部主要是外部RAM接口要和接口要和RAM的三态桥连接,外部的的三态桥连接,外部的Flash接口要和接口要和flash的三态桥连接。的三态桥连接。针对用的开发板的情况进行的设置,实验用的开发板针对用的开发板的情况进行的设置,实验用的开发板SRAM和和flash没有使用共用的数据线和地址线。没有使用共用的数据线和地址线。所以必须为它们分别添加一个三态桥。所以必须为它们分别添加一个三态桥。2.3.3分配IP模块的地址和中断号SOPC Builder为各个为各个IP模块分配了一个默认的基地址,用户可以改变这模块分配了一个默认的基地址,用户可以改变这些地址。如果分配的地址出现冲突,如下:些地址。如果分配的地址出现冲突,如下:(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在存在存储器中的偏移。储器中的偏移。选择选择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)在)在Symbol对话框中单击对话框中单击Project来展开工程目录,其下出现来展开工程目录,其下出现 NIOS2,选中它,右侧出现了系统的符号表示;,选中它,右侧出现了系统的符号表示;(3)点)点OK,NIOS2出现在出现在BDF窗口中,创建的系统加入到工程窗口中,创建的系统加入到工程 2.3.6 加入引脚和嵌入式锁相环加入引脚和嵌入式锁相环嵌入式锁相环嵌入式锁相环有两个时钟输出,一个输出有两个时钟输出,一个输出SSRAM提供时钟,另一个时提供时钟,另一个时钟的输出为钟的输出为NIOS II CPU提供时钟提供时钟.加嵌入式锁相环步骤如下:加嵌入式锁相环步骤如下:(1)点击点击ToolsMegaWizard Plug-In Manager,出现,出现MegaWizard Plug-In Manager向导窗口向导窗口,点击点击nextIO下面选择下面选择ALTPLL,器件选择,器件选择Cyclone II,输出文件类型选择,输出文件类型选择VHDL,文件名为文件名为ssram_pll引脚添加引脚添加(1)顶层实体的)顶层实体的bdf窗口的空白处双击鼠标,出现窗口的空白处双击鼠标,出现Symbol添加窗口,选择添加窗口,选择pin,选择相应类型的引脚,点击,选择相应类型的引脚,点击OK。(2)点击)点击bdf窗口的空白处,即将引脚加入到了工程中。窗口的空白处,即将引脚加入到了工程中。(3)重复上面的步骤添加为各个端口添加相应类型的引脚。)重复上面的步骤添加为各个端口添加相应类型的引脚。(4)命名引脚方法:双击引脚的)命名引脚方法:双击引脚的“pin_name“,对其编辑。对于总线型的,对其编辑。对于总线型的引脚,引脚名称引脚,引脚名称+总线位数:如总线位数:如ddr_a12.0 将嵌入式锁相环和系统模块等连接起来,将引脚连接到将嵌入式锁相环和系统模块等连接起来,将引脚连接到相应的端口上。相应的端口上。2.4设计优化设计优化 设计优化:节省占用设计优化:节省占用FPGA的面积和提高系统速度。的面积和提高系统速度。“面积面积”;“速度速度”是指设计的系统在目标芯片上稳定运行时能是指设计的系统在目标芯片上稳定运行时能够达到的最高频率够达到的最高频率1.面积与速度的优化面积与速度的优化选择选择Assignment菜单下的菜单下的Settings命令命令在在Analysis&Synthesis Settings:Optimization Techniques栏中,有栏中,有Speed、Balanced和和Area3种优化选择,种优化选择,Balanced是软件缺省的优化选择。是软件缺省的优化选择。2.时序约束与设置时序约束与设置 选择选择Settings下面的下面的Timing Analysis Settings 选择选择Classic Timing Analyzer Settings。可以根据目标芯片的特性及可以根据目标芯片的特性及PCB板走线的实际情况,给出设板走线的实际情况,给出设计计需要满足的时钟频率、建立时间、保持时间和传输延迟时需要满足的时钟频率、建立时间、保持时间和传输延迟时间等参数。间等参数。简单应用,不需要!简单应用,不需要!2.5 编译编译 Quartus II编译器由一系列处理模块组成编译器由一系列处理模块组成 包括包括:分析与综合、适配、汇编和时序分析等。分析与综合、适配、汇编和时序分析等。编译设置:合理编译的设置可以提高工程编译的速度,编译设置:合理编译的设置可以提高工程编译的速度,优化器件的资源利用,优化器件的资源利用,甚至降低系统的功耗!甚至降低系统的功耗!编译之前须对未使用的引脚做设置:将未使用的引脚设置成!编译之前须对未使用的引脚做设置:将未使用的引脚设置成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 引脚分配引脚分配引脚分配:引脚分配:使编译器能把设计的信号分配到目标器件上的特定引使编译器能把设计的信号分配到目标器件上的特定引脚上。脚上。两种引脚分配方法:两种引脚分配方法:第一种:使用第一种:使用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)打开标准工程(打开标准工程(.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)如何查看分配结果呢?)如何查看分配结果呢?注意:注意:u 如果管脚名字与如果管脚名字与standard工程的对应管脚名字不同,工程的对应管脚名字不同,不能使用该方法,或者需修改脚本。不能使用该方法,或者需修改脚本。u 该方法在有参照工程管脚定义的情况下,节省定义管该方法在有参照工程管脚定义的情况下,节省定义管脚的时间。脚的时间。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 启动软件开发环境启动软件开发环境
展开阅读全文