sopc课件第五章学习课程_第1页
sopc课件第五章学习课程_第2页
sopc课件第五章学习课程_第3页
sopc课件第五章学习课程_第4页
sopc课件第五章学习课程_第5页
已阅读5页,还剩85页未读 继续免费阅读

下载本文档

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

文档简介

1、第5章 主要内容1基于Nios II的SOPC硬件系统开发流程。2使用Quartus II和SOPC Builder软件创建 Nios II系统模块。3SOPC硬件系统工程的创建、引脚锁定及编译 下载。第1页/共90页第一页,编辑于星期六:二十一点 二十四分。概 述pSOPC设计包括以32位Nios II软核处理器为核心的嵌入式系统的硬件配置、硬件设计、硬件仿真、软件设计、软件调试等。p SOPC系统设计的基本工具软件: 1. Quartus II,用于完成Nios II系统的综合、 硬件优化、适配、编程下载和硬件系统测试; 2. SOPC Builder,是Altera Nios II嵌入式

2、处 理器开发软件包,用于实现Nios II系统的配 置、生成; 第2页/共90页第二页,编辑于星期六:二十一点 二十四分。概 述 3. Modelsim,用于对SOPC生成的Nios II系统 的HDL描述进行系统功能仿真; 4. Matlab/DSP Builder,可生成Nios II系统 的硬件加速器,进而为其定制新的指令; 5. Nios II IDE进行软件开发、调试及运行。 第3页/共90页第三页,编辑于星期六:二十一点 二十四分。概 述p与传统嵌入式系统设计不同,基于Nios II的SOPC系统开发分为两个过程 : 1.硬件开发:包括由用户定制系统硬件的构建, 然后由计算机完成硬

3、件系统的生成 ; 2.软件开发:和传统方式比较接近,在构建的硬 件系统之上建立软件设计。第4页/共90页第四页,编辑于星期六:二十一点 二十四分。分析系统需求在SOPC Builder中定义、生成系统集成SOPC Builder系统到Quartus II工程使用Nios II IDE开发软件引脚分配、时序需求和其它设计约束编译硬件设计硬件设计下载到FPGA在Nios II IDE中使用ISS调试/运行软件下载可执行软件到目标板上的NiosII系统在目标板上调试/运行软件精炼软件和硬件Nios II核和标准外设定制硬件模块定制指令和外设逻辑Altera硬件抽象层和外设驱动用户C/C+应用程序代码

4、和定制库图5-1 基于Nios II的SOPC系统开发整体设计流程第5页/共90页第五页,编辑于星期六:二十一点 二十四分。第5章 目录5.1 基于Nios II的SOPC硬件系统开发流程5.2 SOPC Builder硬件开发环境介绍5.3 简单SOPC实例开发系统需求及任务5.4 创建QuartusII工程5.5 使用SOPC创建NiosII系统模块5.6 集成NiosII系统到QuartusII工程5.7 QuatusII工程编译5.8 编程下载第6页/共90页第六页,编辑于星期六:二十一点 二十四分。5.1 基于Nios II的SOPC硬件系统开发流程n简介 Nios II嵌入式处理器

5、是FPGA生产厂商Altera公司推出的软核(Soft Core)CPU,是一种面向用户的,可以灵活定制的通用RISC(精简指令集构架)嵌入式CPU。Nios II以软核方式提供给用户,并专为Altera的FPGA上实现做了优化,用于SOPC(片上可编程系统)集成,最后在FPGA上实现。 Nios II系统的硬件设计流程就是为了定制合适的CPU和外设,然后在SOPC Builder和Quartus II中实现。 第7页/共90页第七页,编辑于星期六:二十一点 二十四分。5.1 基于Nios II的SOPC硬件系统开发流程 在硬件设计过程中,使用SOPC Builder工具可以灵活定制Nios

6、II CPU的许多特性,甚至指令。可以使用Altera公司提供的IP Core来加快设计者开发Nios II外设的速度,提高外设的性能,也可以使用第三方的IP Core,或者使用VHDL、Verilog来自己定制外设。 外设定义完成之后,即可对Nios II CPU和各外设模块的特性、大小及在系统中地址分配等进行设定。然后启动SOPC Builder中的Generate,使之生成用于综合和仿真的文件。接下去,使用QuartusII软件锁定端口引脚,对生成的Nios II系统进行仿真、综合、适配和下载。 第8页/共90页第八页,编辑于星期六:二十一点 二十四分。硬件系统设计规划自定义外设、指令(

7、SOPC Builder&Quartus II)定义Nios II系统模块(SOPC Builder)生成Nios II系统模块(SOPC Builder)集成Nios II系统模块到Quartus II工程引脚锁定、硬件编译(Quartus II)下载硬件到FPGA(Quartus II)图5-2 基于Nios II的SOPC硬件系统开发流程第9页/共90页第九页,编辑于星期六:二十一点 二十四分。5.2 SOPC Builder硬件开发环境介绍 SOPC Builder是Quartus II软件的一个组件,它为建立SOPC设计提供标准化的图形环境。SOPC Builder允许选择和

8、自定义系统模块的各个组件和接口。SOPC Builder将这些组件组合起来,生成对这些组件进行实例化的单个系统模块,并自动生成必要的总线逻辑,以将这些组件连接到一起。 SOPC Builder库组件包括:u 处理器u 知识产权(IP) 和外围设备u 存储器接口u 通信外设u 数字信号处理(DSP)内核u 软件u 标题文件u 操作系统内核第10页/共90页第十页,编辑于星期六:二十一点 二十四分。n建立系统5.2 SOPC Builder硬件开发环境介绍 SOPC Builder中构建系统时,可以选择用户自定义模块或模块集组件库中提供的模块。 SOPC Builder可以导入或提供到达用户自定义

9、逻辑块的接口。SOPC Builder系统与用户定义逻辑配合使用时具有以下四种机制:u 简单的PIO连接u 系统模块内实例化u 到达外部逻辑的总线接口u 发布局域SOPC Builder组件 第11页/共90页第十一页,编辑于星期六:二十一点 二十四分。n生成系统5.2 SOPC Builder硬件开发环境介绍 SOPC Builder中的每个工程包含系统描述文件(PTF 文件),它包含SOPC Builder中输入的所有设置、选项和参数。此外,每个模块具有相应的PTF 文件。在生成系统期间,SOPC Builder使用这些文件为系统生成源代码、软件组件和仿真文件 。 完成系统设计之后,可以使

10、用SOPC Builder的System Generation生成系统。 SOPC Builder软件自动生成所有必要逻辑,用以将处理器、外围设备、内存、总线、仲裁器、IP 内核及到达系统外逻辑和存储器的接口集成在一起,并建立将组件捆绑在一起的HDL 源代码。 第12页/共90页第十二页,编辑于星期六:二十一点 二十四分。5.2 SOPC Builder硬件开发环境介绍 SOPC Builder还提供了软件开发的接口,集成了Nios II IDE集成开发环境,加速了软件开发。 为了仿真,SOPC Builder 建立了ModelSim仿真目录,它包含ModelSim工程文件、所有存储器组件的仿

11、真数据文件、提供设置信息的宏文件、别名和最初的一组总线接口波形。它还建立仿真测试台,可以实例化系统模块、驱动时钟和复位输入,并可以实例化和连接仿真模型。还生成Tcl 脚本,用于在Quartus II 软件中设置系统编译所需的所有文件。 第13页/共90页第十三页,编辑于星期六:二十一点 二十四分。5.3 简单SOPC实例开发系统需求及任务 本章将以一个简单的基于Nios II的SOPC系统的硬件开发实例来详细介绍SOPC系统硬件开发的具体过程。 硬件和软件开发环境:u 运行Windows NT/2000/XP操作系统的PC机u Quartus II 5.1版本软件u Nios II嵌入式处理器

12、 3.1版本u SOPC Builder软件u Nios II IDE集成开发环境5.1版本u Modelsim 6.1版本软件u Altera的Nios II开发板,Cyclone II版本第14页/共90页第十四页,编辑于星期六:二十一点 二十四分。5.3 简单SOPC实例开发系统需求及任务 本章所设计的基于Nios II的SOPC硬件系统包括如下模块 :u Nios II/s处理器核u 片内存储器(On-Chip Memory)u JTAG UARTu 外部SSRAM(Cypress CY7C1380C SSRAM)u 三态桥Tri_State Bridgeu Timer定时器u 8位并

13、行I/O(PIO)引脚控制LEDu 4位并行I/O(PIO)引脚控制Buttonu PLL锁相环u 系统ID(System identification peripheral)u Flash第15页/共90页第十五页,编辑于星期六:二十一点 二十四分。5.4 创建QuartusII工程 利用New Project Wizard建立设计工程,在此过程中要设定有关的内容,如工程名、目标器件、选用的综合器和仿真器等。 建立的工程路径为:d:sopc_projecttest 注意:工程所在文件夹名称和工程名称的命名不能使用中文,SOPC Builder不能识别中文。另外,在QuartusII中进行SO

14、PC设计时,必须先打开或新建工程,否则SOPC的设计工具SOPC Builder不能开启。 第16页/共90页第十六页,编辑于星期六:二十一点 二十四分。5.4 创建QuartusII工程 (2)将设计文件添加到工程中 单击Next按钮,弹出Add Files对话框,如图5-4所示。在此可以将有关的文件加入到工程中,选择默认即可 。 (1)启动New Project Wizard 选择菜单FileNew Project Wizard命令,弹出图5-3所示对话框。单击该对话框最上一栏右侧的按钮“”,设置当前工作目录。在第二栏设置当前工程的名字,一般将顶层文件的名字作为工程名。 第17页/共90页

15、第十七页,编辑于星期六:二十一点 二十四分。5.4 创建QuartusII工程 图5-3 建立工程图5-4 添加设计文件到工程中第18页/共90页第十八页,编辑于星期六:二十一点 二十四分。5.4 创建QuartusII工程 (3)选择目标器件 单击Next按钮,出现选择目标器件的窗口,如图5-5所示。在Family选项中选择Cyclone II器件系列,并在Target device中选择第二项,在可选的设备列表中指定目标器件。可以通过右边的Filters窗口“过滤”选择。在此,选择EP2C35F672C6器件。用户可以根据自己开发板的情况进行不同的设置。 (4)选择综合器和仿真器 单击Ne

16、xt 按钮, 则弹出选择仿真器和综合器的对话框EDA Tools Settings,如图5-6所示。如果选择默认的None,则表示选择Quartus II 自带的仿真器和综合器,也可以选择其他第三方综合器和仿真器等专业的EDA工具。第19页/共90页第十九页,编辑于星期六:二十一点 二十四分。5.4 创建QuartusII工程 图5-5 选择目标器件图5-6 选择综合器与仿真器 第20页/共90页第二十页,编辑于星期六:二十一点 二十四分。5.4 创建QuartusII工程 (5)结束设置 单击Next按钮,出现工程设置信息显示窗口,如图5-7所示,对前面设置情况进行了汇总。单击Finish按

17、钮,即完成了当前工程的创建。在工程管理窗口中出现当前工程的层次结构显示,如图5-8所示。 图5-7 工程设置完成窗口 图5-8 工程管理窗口第21页/共90页第二十一页,编辑于星期六:二十一点 二十四分。5.5 使用SOPC Builder创建Nios II系统模块 SOPC Builder是一个软件工具,它允许设计者创建一个功能完整的定制的嵌入式微控制器,称为Nios II系统模块。 一个完整的Nios II系统模块包含Nios II嵌入式微处理器和与之相关的系统外设。Nios II系统外设允许连接到Nios II嵌入式处理器上,同时也可以和FPGA的内部逻辑或者Nios II开发板上的外部

18、器件通信。 第22页/共90页第二十二页,编辑于星期六:二十一点 二十四分。 选择QuartusII菜单ToolsSOPC Builder,或者单击QuartusII工具栏中的SOPC Builder工具图标,即可打开与QuartusII集成的SOPC开发工具SOPC Builder。 首次启动该软件时,会弹出Creat New SystemCreat New System(建立新系统)对话框,如图5-9所示。 在对话框中输入要建立的Nios II系统模块名称,选择SOPC Builder生成的HDL代码的类型,可根据不同的需求及熟悉程度进行VerilogVerilog、VHDLVHDL语言的

19、选择。QuartusII对生成的Verilog HDL和VHDL代码都能正常编译,也支持对Verilog HDL和VHDL的混合编译。 n5.5.1启动SOPC Builder进行Nios II系统硬件设计 第23页/共90页第二十三页,编辑于星期六:二十一点 二十四分。n5.5.1启动SOPC Builder进行Nios II系统硬件设计 由于针对的FPGA器件为CycloneII EP2C35,所以可以设定Nios系统模块的名称为std_2c35,选择语言为Verilog。 单击OK按钮后,进入SOPC Builder设计界面,显示System Contents标签,如图5-10所示。 第

20、24页/共90页第二十四页,编辑于星期六:二十一点 二十四分。n5.5.2 设置目标FPGA及时钟 在SOPC Builder窗口右边空白处上方,可以选择目标器选择目标器件系列、开发板和系统的工作频率。件系列、开发板和系统的工作频率。 在这里选择器件系列Device Family是Cyclone II,目标板Target Board为EP2C35。系统工作的外部时钟频率为50MHz,如图5-11所示。 图5-11 设置目标FPGA及时钟第25页/共90页第二十五页,编辑于星期六:二十一点 二十四分。n5.5.2 设置目标FPGA及时钟注意:当选择具体的目标板Target Board后,会在标签

21、栏增加Board Setting选项。可以在整个Nios II系统配置完成后进行具体的板级设置,如利用SOPC Builder提供的引脚映射器进行引脚映射。n设置FPGA与板级描述 设置目标FPGA的主要作用就是利用已做好的板级描述进行引脚映射,同时可以给Nios II闪存编程器提供板上Flash存储器的详细情况。第26页/共90页第二十六页,编辑于星期六:二十一点 二十四分。n5.5.2 设置目标FPGA及时钟 SOPC Builder板级描述包含了带有FPGA的印刷电路板(PCB)的细节。板级描述概述了电路板的底层信息。 板级描述编辑器是SOPC Builder的一个特色,提供了创建编辑描

22、述的图形用户界面(GUI)。板级描述编辑器包含网表标签,闪存标签等8个标签和一个信息窗口。用户可以通过下面两种方式启动板级描述编辑器: 在SOPC Builder窗口的File菜单中,单击New Board Description 来创建一个新的板级描述。 在SOPC Builder窗口的File菜单中,单击Edit Board Description 来编辑一个当前选择目标板的板级描述。第27页/共90页第二十七页,编辑于星期六:二十一点 二十四分。n设定时钟 n5.5.2 设置目标FPGA及时钟 Nios II处理器的工作频率与选择的器件相关,通过具体器件中的锁相环可以将外部时钟分频或倍频

23、,以获得不同的系统时钟。设置系统的工作频率有两个作用: 频率用于仿真。SOPC Builder在生成Nios II系统模块时,同时生成了一些用于仿真的文件,在对设计进行仿真时,采用给定的时钟频率进行系统仿真; 用于和Nios II处理器核相接的外设。如采用UART及Timer外设,UART需要用该频率进行波特率的计算,Timer需要使用该频率进行预置值的计算。 第28页/共90页第二十八页,编辑于星期六:二十一点 二十四分。n5.5.3 添加CPU和IP模块 此为设计Nios II系统的核心部分,所设计的基本的SOPC硬件系统包括FPGA、存储器和外设接口三个部分。具体结构如图5-12所示:

24、图5-12 SOPC 硬件系统结构图第29页/共90页第二十九页,编辑于星期六:二十一点 二十四分。n5.5.3 添加CPU和IP模块 FPGA部分 FPGA部分是建立在FPGA芯片内的,核心是Nios II嵌入式处理器Core,在SOPC Builder中需要设计的就是FPGA部分。 存储器部分 由片上存储器(On-Chip Memory)、外部SSRAM及Flash构成。在某些符合SDRAM接口电平规范的FPGA上,还可以使用SDRAM。通过使用建于FPGA中的SDRAM控制器(Altera提供的IP Core)与Nios II Core相接,代替SSRAM,可以提供更大容量的存储容量、更

25、快的访问速度、更高的性价比。 外部接口部分 是一些接口器件和电路模块,如用于输出显示的LED和用于输入的Button等。 第30页/共90页第三十页,编辑于星期六:二十一点 二十四分。n5.5.3 添加CPU和IP模块n添加Nios II CPU Core (1)选择SOPC Builder组件选择栏中的Avalon ComponentsNios II Processor-Altera Corporation,双击鼠标左键或者单击鼠标右键选择Add New Nios II Processor Altera Corporation,打开添加Altera Nios II对话框,如图5-13所示。图

26、5-13 添加NiosII Core第31页/共90页第三十一页,编辑于星期六:二十一点 二十四分。n5.5.3 添加CPU和IP模块 在Nios II Core配置选项中可以根据用户需要选择Nios II Core,具体有以下几种: 经济型CPU核(Nios II/e),最小逻辑占用的优化,占用的Les 最少,功能最少。 标准型CPU核(Nios II/s),平衡于性能和尺寸,具有Nios II CPU的一般功能。Nios II/s内核不仅比最快的第一代的Nios CPU(16比特ISA)更快,而且比最小的第一代的Nios CPU还 要小。 全功能型CPU核(Nios II/f),最高性能的

27、优化,具有Nios II CPU所有功能,包括一些高级特性,需要使用的LEs数目最多。第32页/共90页第三十二页,编辑于星期六:二十一点 二十四分。n5.5.3 添加CPU和IP模块 (2)单击next,进行Caches & Tightly Coupled Memories配置选项的设定,选择默认配置即可,如图5-14所示。 (3)单击Next,进行JTAG Debug Module配置选项的设定,如图5-15所示。 (4)单击Next,进行Custom Instructions配置选项的设定,在此可以定制用户指令,选择默认情况即可,如图5-16所示。 (5)选择Finish,则在用

28、户的项目中添加一个Nios II处理器,名字为cpu_0,包含Avalon总线的指令主控制器instruction_master、数据主控制器data_master和调试模块jtag_debug_module。而在下方提示栏中显示加入Nios II后的相关信息和下一步的操作提示。在标签栏中会增加Nios II More “CPU_0” Setting标签,如图5-17所示: 第33页/共90页第三十三页,编辑于星期六:二十一点 二十四分。n5.5.3 添加CPU和IP模块n添加片内存储器 在组件选择栏中选择Avalon ComponentsMemoryOn-Chip Memory,双击鼠标左键

29、进入添加片内存储器对话框,如图5-19所示。 片内存储器除了用作ROM外,也可以用作RAM,甚至可以被设置成双口存取。 片内存储器Memory Width可以被配置成为8位、16位、32位、64位及128位。通常将Nios II系统中的FPGA片内存储器配置成32位,以对应32位Nios II处理器的32位总线结构。 片内存储器Total Memory Size的设置一定要合理,要根据使用的目标器件型号来决定,如Cyclone II EP2C35有105个M4K存储块,而Cyclone II EP2C8则仅有36个M4K存储块。此外,设置时还要考虑到前面添加的Nios II CPU软核所占用的

30、M4K存储器数量。 第34页/共90页第三十四页,编辑于星期六:二十一点 二十四分。n5.5.3 添加CPU和IP模块注意:若SOPC系统的应用程序和需要的存储容量要求不大或者FPGA中剩余的片内存储器较多,完全可以不需要外部的SSRAM和Flash,直接使用On-Chip Memory作为Nios II系统程序存储器和数据存储器。 在此选择默认设置,完成后会在S O P C系 统 中 加 入onchip_memory_0,更改其名字为onchip_memory 。图5-19 On-Chip Memory设置第35页/共90页第三十五页,编辑于星期六:二十一点 二十四分。n5.5.3 添加CP

31、U和IP模块n加入JTAG UART JTAG通用异步接收器/发送器(UART)核是在PC主机和FPGA上的SOPC Builder 系统间进行串行通信的一种实现方式。在许多设计中,JTAG URAT核替代RS-232,完成与PC主机的字符I/O。此外,JTAG UART也用于Nios II系统的仿真调试。 在组件选择栏中选择Avalon ComponentsCommunicationJTAG UART,进行JTAG UART的设置,如下图5-20所示。 Configuration配置标签中的选项控制JTAG UART核的硬件配置。缺省设置是预定义配置的,它可使设备驱动程序和JTAG终端软件性

32、能最优 。 Simulation配置标签定义JTAG UART的仿真特性,如图5-21所示。当采用Sopc Builder为JTAG URAT创建逻辑时,一个仿真模型同时被构建。 第36页/共90页第三十六页,编辑于星期六:二十一点 二十四分。n5.5.3 添加CPU和IP模块 图5-20 JTAG UART中Configuration设置 图5-21 JTAG UART中Simulation设置第37页/共90页第三十七页,编辑于星期六:二十一点 二十四分。n5.5.3 添加CPU和IP模块n加入Avalon三态总线桥 SSRAM和Flash的数据总线是三态的,Nios II CPU与SSR

33、AM、Flash相接时需要Avalon三态总线桥。 在组件选择栏中选择Avalon ComponentsBridgeAvalon Tri-State Bridge,加入Avalon三态总线桥,如图5-22所示。图5-22 Avalon三态总线桥设置第38页/共90页第三十八页,编辑于星期六:二十一点 二十四分。n5.5.3 添加CPU和IP模块n添加SSRAM 通过Avalon三态总线桥,外部的SSRAM、Flash就可以接入到Nios II系统中。SSRAM的作用类似于PC机的内存,用于存放正在运行的程序和数据。 注意:用户要根据开发板上提供的存储芯片来选择外部存储器,由于选用的Nios I

34、I开发板(Cyclone II 2C35版本)上提供Cypress CY7C1380C-167AC SSRAM芯片,所以在此选择了上面的组件。如果使用的SSRAM的操作时序完全和Cypress CY7C1380C-167AC SSRAM兼容,也可以使用该组件,但是如果时序要求不一致,直接使用该组件,将使Nios II不能工作或者工作不稳定。这时可以通过定制组件来解决问题。 第39页/共90页第三十九页,编辑于星期六:二十一点 二十四分。n5.5.3 添加CPU和IP模块 在组件选择栏中选择Avalon ComponentsMemoryCypress CY7C1380C SSRAM,双击鼠标左键

35、,对弹出的如图5-23所示的对话框选择默认设置。单击Finish按钮完成加入。图5-23 Cypress CY7C1380C SSRAM设置 第40页/共90页第四十页,编辑于星期六:二十一点 二十四分。n5.5.3 添加CPU和IP模块n添加Timer定时器 在一个嵌入式系统应用中,定时器往往是必不可少的。SOPC Builder中提供了一个功能强大的定时器组件Interval Timer。Interval Timer定时器提供了几个预设的配置需要在逻辑单元(LE)的使用和可配置性之间进行协调 。 例如,一个简单的时间间隔定时器(interval timer)用到很少的LE,但是它是不可配置

36、的。相反的,一个全特征的定时器(full-featured timer)是可以配置的,但是用到更多的LE。用户可以使用一种预设的配置,也可自定义用户设置。 在默认配置的情况下,预设配置Preset Configuration为full-featured,这个配置模式下定时器功能最全。 第41页/共90页第四十一页,编辑于星期六:二十一点 二十四分。n5.5.3 添加CPU和IP模块 在组件选择栏中选择Avalon Components-thersInterval Timer,加入SOPC系统内部定时器,如图5-24所示。图5-24 Interval Timer定时器设置第42页/共90页第四十

37、二页,编辑于星期六:二十一点 二十四分。n5.5.3 添加CPU和IP模块n添加LED PIO 并行输入输出(PIO)模块在Avalon从端口和通用I/O端口之间提供了一个存贮器映像接口。I/O端口与片上用户逻辑或者FPGA的I/O引脚相连,I/O引脚连接片外设备。 通过在在组件选择栏中选择Avalon ComponentsOthersPIO来加入发光二极管LED PIO,如图5-25所示。 图5-25 LED PIO设置第43页/共90页第四十三页,编辑于星期六:二十一点 二十四分。n5.5.3 添加CPU和IP模块 PIO配置包含3项标签:Basic Setting、Input Optio

38、ns及Simulation。Basic Setting标签的位宽Width设置可以为132bits,传送方向Direction可以有以下四种模式: 双向口(Bidirectional(tri_state)ports),也就是三态口。 输入口(Input ports only) 输入输出口(Both input and output ports),但输入口和输出口 不是同一个引脚。 输出口(Output ports only) 如果PIO选择是输出模式,则对应的输入标签Input Options及仿真标签Simulation是不可设置的。如果PIO选择为其他模式,则输入标签和仿真标签都根据需要进

39、行相应的设置。 对于LED,显然应该是输出端口,在此传送方向选择Output ports only输出模式,位宽选择8位,以对应外部8只发光二极管。 第44页/共90页第四十四页,编辑于星期六:二十一点 二十四分。n5.5.3 添加CPU和IP模块n添加Button PIO 在组件选择栏中选择Avalon ComponentsOthersPIO,加入按键PIO,如图5-26 所示。 显示的配置向导Basic Setting设置可以选择位宽为4位,以对应外部的4个按键。传送方向为Input ports only输入模式。 输入选项Input Options标签的设置,如图5-27所示。该标签允许

40、用户指定边沿捕捉和产生IRQ。边沿捕获寄存器的同步捕获选项打开后会出现3种捕获模式:上升沿(Rising Edge)、下降沿(Falling Edge)和双边沿(Either Edge)。中断的Generate IRQ选项打开后会出现2种模式的中断请求:电平(Level)和边沿(Edge)。 在此选择产生中断请求(IRQ),为双边沿触发(Either Edge),边沿(Edge)模式。 如果需要仿真,要进行Simulation标签的设置。该标签允许用户指定测试台硬连线PIO输入。 第45页/共90页第四十五页,编辑于星期六:二十一点 二十四分。n5.5.3 添加CPU和IP模块图5-26 Bu

41、tton PIO Basic Setting标签设置 图5-27 Button PIO Input Options标签设置 第46页/共90页第四十六页,编辑于星期六:二十一点 二十四分。n5.5.3 添加CPU和IP模块n添加PLL锁相环 PLL锁相环可以将外部时钟倍频后输送给CPU。在Quartus II 5.1版本前,PLL从QuartusII的库中添加,Quartus II 5.1版本则在SOPC Builder组件栏中添加PLL模块。Cyclone II EP2C35器件包含4个PLL,每个锁项环均有3个输出,分别为c0、c1、c2。 加入PLL锁相环步骤如下: (1 1)在组件选择

42、栏中选择)在组件选择栏中选择Avalon ComponentsOthersPLLAvalon ComponentsOthersPLL(Phase-Located LoopPhase-Located Loop),打开锁相环配置向导,如图),打开锁相环配置向导,如图5-295-29所示。所示。 (2 2)单击)单击Launch AlteraLaunch Alteras ALTPLL MegaWizards ALTPLL MegaWizard,进入,进入ALTPLL ALTPLL General/ModesGeneral/Modes页,如图页,如图5-305-30所示。在这个窗口可以设置所选择的器所

43、示。在这个窗口可以设置所选择的器件类型及输入频率。件类型及输入频率。第47页/共90页第四十七页,编辑于星期六:二十一点 二十四分。n5.5.3 添加CPU和IP模块(3 3)单击)单击NextNext,进入,进入ALTPLL Scan/LockALTPLL Scan/Lock页,这些选项均采用默认。页,这些选项均采用默认。(4 4)单击)单击NextNext,进入,进入ALTPLL Clock switchoverALTPLL Clock switchover页,采用默认配置。页,采用默认配置。(5 5)单击)单击NextNext,进入,进入ALTPLL Clock c0ALTPLL Clo

44、ck c0页,进行页,进行c0c0输出设置,如图输出设置,如图 5-315-31所示。所示。 将Use this clock复选框选中,就可以设定Clock c0。选择Enter output clock parameters,填入合适的时钟倍频因子Clock multiplication factor与时钟分频因子Clock division factor,同时,可以选择时钟相移Clock phase shift及时钟占空比Clock duty cycle。 在此定义CPU的时钟为85MHz,因此如果外部时钟的实际输入频率为50MHz,则可以选择倍频因子为17,分频因子为10。第48页/共9

45、0页第四十八页,编辑于星期六:二十一点 二十四分。n5.5.3 添加CPU和IP模块 (6 6)采用同样的方法可以设置)采用同样的方法可以设置Clock c1Clock c1及及Clock c2Clock c2。由于没有用到。由于没有用到Clock c2Clock c2,所以可以不对它进行设置。,所以可以不对它进行设置。 (7 7)单击)单击FinishFinish按钮,会显示完成界面。加入按钮,会显示完成界面。加入PLLPLL后更改组件名称为后更改组件名称为pllpll。 同时,可以看到在同时,可以看到在SOPC BuilderSOPC Builder界面的界面的clockclock选项处增

46、加了选项处增加了PLLPLL输出时钟,输出时钟,如图如图5-345-34所示,用户可以更改时钟的名称以用于不同的外部设备,更改后的时钟所示,用户可以更改时钟的名称以用于不同的外部设备,更改后的时钟名称如图名称如图5-355-35所示。所示。 图5-34 PLL产生的时钟 图5-35 更改名称后PLL时钟第49页/共90页第四十九页,编辑于星期六:二十一点 二十四分。n5.5.3 添加CPU和IP模块n添加系统ID 系统ID是一个简单的只读设备,它为SOPC Builder系统提供唯一的标识符。Nios II处理器系统使用系统ID去验证一个可执行程序被编译到实际的硬件映像,该硬件映像在FPGA中

47、被配置。若可执行程序中期望的ID与FPGA中系统ID不相匹配,软件可能不能正确执行。 在组件选择栏中选择Avalon ComponentsOthersSystem ID Peripheral,双击即可添加系统ID。 系统ID没有任何用户设定属性,id和timestamp寄存器值在系统创建时产生,它建立在SOPC Builder配置和当前时间的基础上。在一个SOPC Builder系统中仅能添加一个系统ID,名字总是sysid。 系统创建后,可通过打开系统ID配置向导检查存贮在id和timestamp寄存器中的值。 第50页/共90页第五十页,编辑于星期六:二十一点 二十四分。n5.5.3 添加

48、CPU和IP模块n添加Flash 具有Avalon接口的通用flash接口控制器核(CFI)很容易与SOPC Builder系统外的符合CFI参数要求的外部Flash相连,CFI控制器是SOPC Builder内部集成的,可以很轻松地集成到SOPC Builder创建的系统中。 Flash的加入类似于PC机接入了硬盘,用于存放程序与数据,并在掉电时仍然保持数据。 添加Flash前先添加Avalon三态总线桥,改组件名字为flash_bus。 在组件选择栏中选择Avalon ComponentsMemoryFlash Memory(Common Flash Interface),加入Flash,

49、如图5-36所示。第51页/共90页第五十一页,编辑于星期六:二十一点 二十四分。n5.5.3 添加CPU和IP模块图5-36 Flash中Attributes标签设置 图5-37 Flash中Timing标签设置第52页/共90页第五十二页,编辑于星期六:二十一点 二十四分。n5.5.3 添加CPU和IP模块 Flash配置向导包含2个标签:属性(Attributes)标签和时序(Timing)标签。属性标签下的选项控制CFI控制器的基本硬件配置,时序标签指明flash读和写传送的时序要求。 Attributes标签中预定义设置(Presets)要根据具体开发板进行设置。可以在CFI控制器的

50、flash芯片的下拉菜单中选择合适的芯片,选择完成后,Flash配置向导将根据所设定的芯片自动更改2个标签中该芯片相匹配的所有的设定值。 在此,选择Flash为AM29LV128M-123R(BYTE Mode),这样Size的地址宽度与数据宽度自动更改为24位和8位,时序也随之进行相应的改动,如图5-37所示。单击Finish按钮完成加入,更改组件名称为flash。 这样,整个基本的NiosII系统的CPU软核及IP模块添加完成,如图5-38所示。用户还可以根据自己的需求添加其他的外设。 第53页/共90页第五十三页,编辑于星期六:二十一点 二十四分。n5.5.3 添加CPU和IP模块图5-

51、38 构建完成的Nios II 系统模块第54页/共90页第五十四页,编辑于星期六:二十一点 二十四分。n锁定闪存基地址 SOPC Builder为用户系统中的每一个IP模块指定默认的基地址,地址是一个32位的值,用户可以手动改变这些默认地址,也可以让SOPC Builder自动分配地址。 n5.5.4 指定基地址和中断 锁定闪存基地址即确定Flash中存放程序的首地址,步骤如下: 单击flash外设的Base,输入0 x00000000,然后回车。 用鼠标右键单击flash外设,选择Lock Base Address,或者在Module 菜单中选择Lock Base Address,就可以锁

52、定flash外设的基地址。可 以看到一个挂锁图标出现在闪存基地址旁边。第55页/共90页第五十五页,编辑于星期六:二十一点 二十四分。n自动调整基地址及中断 选择SystemAuto-Assign Base Addresses命令自动分配基地址。同样选择SystemAuto-Assign IRQs命令自动分配中断,当然中断申请号IRQ也可以手动设定,设定完成后如图5-39所示。n5.5.4 指定基地址和中断图5-39 指定基地址及中断第56页/共90页第五十六页,编辑于星期六:二十一点 二十四分。nNios II More “cpu” Settings设置 n5.5.5 配置NiosII系统

53、在添加Nios II CPU后,会在标签栏上增加一项Nios II More “cpu” Settings标签,点击这个标签,可以进行更进一步的CPU设置,设置的情况如图5-40所示。 图中列出所选用的Nios II CPU软核的类型,Instruction Cache的大小及Level调试等级。同时,用户可以对处理器功能(Processor Function)下的Reset Address、Exception Address进行存储模块选择与地址修改。第57页/共90页第五十七页,编辑于星期六:二十一点 二十四分。nBoard Settings设置 n5.5.5 配置NiosII系统 该标签

54、主要利用SOPC Builder提供的引脚映射器进行引脚映射。用户可将创建的Nios II系统模块的引脚映射到PCB板上的目标设备,当生成系统时,SOPC Builder软件将为Quartus II工程分配引脚。 注意,如果要进行Board Settings设置,则在Quartus II工程中的顶层引脚的名称一定要和系统模块中的源信号相同。用户可以使用Board Settings设置进行引脚映射,也可以在Quartus II中利用Assignment Editor或编写TCL脚本来分配引脚 。第58页/共90页第五十八页,编辑于星期六:二十一点 二十四分。单击System Generation

55、标签,在Options下如下设置,如图5-41 所示。n5.5.6 生成NiosII系统图5-41 System Generation标签设置启动Nios II IDE集成开发软件进行系统上的软件设计、调试及运行 产生HDL系统描述文件 创建仿真工程文件 第59页/共90页第五十九页,编辑于星期六:二十一点 二十四分。单击Generate按钮,启动系统生成,如图5-42所示。在这个过程中同时生成了用于Quartus II编译的HDL文件及原理图模块,原理图模块可作为一个元件来调用。n5.5.6 生成NiosII系统图5-42 启动生成Nios II系统第60页/共90页第六十页,编辑于星期六:

56、二十一点 二十四分。5.6 集成Nios II系统到Quartus II工程 在上节使用SOPC Builder创建了Nios II系统,Nios II系统的表述已自动地转换为HDL表述和原理图模块,前者可以在HDL顶层文件中直接调用,后者可以在原理图中作为一个元件来调用。 本节将介绍使用原理图编辑输入原理图编辑输入的方法来完成示例。 第61页/共90页第六十一页,编辑于星期六:二十一点 二十四分。 在Quartus II主控制窗口,选择主菜单FileNew,打开如图5-43所示窗口,在Device Design Files标签中选择Block Diagram/Schematic File,建

57、立BDF文件,打开原理图编辑窗。n5.6.1 创建顶层模块 创建顶层模块就是在Quartus II中新建一个原理图文件,把SOPC Builder生成的名称为std_2c35的SOPC硬件系统作为一个元件模块调入,然后添加到当前的工程中。 图5-43 创建原理图文件第62页/共90页第六十二页,编辑于星期六:二十一点 二十四分。n5.6.2 添加Nios II系统模块到Quartus II顶层模块 在BDF编辑窗口中单击鼠标右键,选择InsertSymbol.,或者双 击鼠标左键,打开Symbol对话框。 在Symbol对话框中单击Project展开工程目录,选择std_2c35,出现 一个大

58、的符号。代表了前面创建的Nios II系统,如图5-44所示。 单击OK,Symbol对话框关闭,std_2c35符号的轮廓被附在鼠标的 指针上。 在模块编辑窗口中的任意空白处单击一下放置符号,std_2c35的符 号在BDF中被实例化了。 选择主菜单FileSave进行保存。第63页/共90页第六十三页,编辑于星期六:二十一点 二十四分。n5.6.2 添加Nios II系统模块到Quartus II顶层模块图5-44 调入已生成的Nios II系统模块第64页/共90页第六十四页,编辑于星期六:二十一点 二十四分。n5.6.3 添加引脚和其他基本单元 系统模块添加到编辑窗口后,可以看到模块的

59、外围有很多连接线,需要添加引脚进行连接。如果有其他设计单元,也可以在此添加进去,完成整体原理图设计。添加引脚及其他基本单元可以从Quartus II的Libraries库中添加。 下面步骤为工程添加输入、输出、双向引脚及其他基本单元:(1)如添加输入,可以右键点击BDF编辑窗口,选择InsertSymbol.,或者双击鼠标左键,打开Symbol对话框。(2)在Symbol对话框的Libraries列表中,单击+展开c:/altera/quartus51/libraries/树型显示目录。(3)展开primitives文件夹和pin文件夹,选择input组件,或直接在Name处键入input,这

60、样可以看到右面窗口显示INPUT输入引脚,如图5-45所示。 第65页/共90页第六十五页,编辑于星期六:二十一点 二十四分。n5.6.3 添加引脚和其他基本单元 (4)单击OK,将输入引脚添加到编辑窗口中。(5)单击添加的输入引脚,按ctrl键,拖动输入引脚到空白位置,这样又添加一个输入引脚。采用同样的方式,根据原理图中需要的输入情况,可以相应的添加输入引脚。(6)将每一个插入的INPUT引脚符号与对应的Nios II输入引脚放置在同一水平位置,以便后面进行连线。(7)重复第(1)步到第(4)步,插入并定位OUTPUT引脚和BIDIR引脚。(8)在Symbol对话框Libraries列表中,单击+展开c:/

温馨提示

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

评论

0/150

提交评论