欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    NiosⅡ嵌入式处理器设计.ppt

    • 资源ID:5441422       资源大小:2.09MB        全文页数:242页
    • 资源格式: PPT        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    NiosⅡ嵌入式处理器设计.ppt

    第5章 Nios嵌入式处理器设计,5.1 Nios嵌入式处理器简介 5.2 Nios嵌入式处理器软、硬件开发流程简介 5.3 Nios嵌入式处理器系统的开发 5.4 Nios处理器外围接口 5.5 HAL系统库 5.6 应用示例电子钟 思考题,5.1 Nios嵌入式处理器简介,5.1.1 第一代Nios嵌入式处理器20世纪90年代末,可编程逻辑器件(PLD)的复杂度已经能够在单个可编程器件内实现整个系统,即在一个芯片中实现用户定义的系统,它通常包括片内存储器和外设的微处理器。2000年,Altera发布了Nios处理器,这是Altera Excalibur嵌入式处理器计划中的第一个产品,是第一款用于可编程逻辑器件的可配置的软核处理器。,Altera公司的Nios是基于RISC技术的通用嵌入式处理器芯片软内核,它特别为可编程逻辑进行了优化设计,也为可编程单芯片系统(SOPC)设计了一套综合解决方案。第一代Nios嵌入式处理器性能高达50 MIPs,采用16位指令集,16/32位数据通道,5级流水线技术,可在一个时钟周期内完成一条指令的处理。它可以与各种各样的外设、定制指令和硬件加速单元相结合,构成一个定制的SOPC。Nios处理器还具有一种基于JTAG的OCI(片上仪器)芯核,使软件开发人员在实时调试方面具有更明显的优势。该处理器的软件支持可扩展到对APR、IP、ICMP、TCP、UDP和以太网的网络协议支持。,在Nios之后,Altera公司于2003年3月又推出了Nios的升级版Nios 3.0版,它有16位和32位两个版本。两个版本均使用16位的RISC指令集,其差别主要在于系统总线带宽。它能在高性能的Stratix或低成本的Cyclone芯片上实现。Nios 3.0的主要特性有:(1)更多的可配置的寄存器。用户根据需要可自行配置的内部寄存器数目多达512个。编译器可利用这些内部寄存器加快对子程序的调用和对变量的寻址。,(2)极大的灵活性和可扩展性。用户可在FPGA容量允许范围内自由配置处理器的Cache大小、指令集ROM大小、片内RAM和ROM大小、I/O引脚数目和类型、中断引脚数目、定时器数目、通用串口数目、扩展地址和数据引脚等处理器的性能指标。此外,用户还可以在处理器ALU中直接加入自定义的数字逻辑,并添加自定义的处理器指令。(3)功能强大的开发工具。使用SOPC Builder开发工具,开发者可以快速开发出满足设计需要的处理器。该开发工具支持C、C+语言,并提供了常用的功能类库。开发者可以直接使用C、C+语言进行系统软件开发,然后在线调试自行设计的Nios处理器和软件。当软件达到设计要求时,可通过该工具将执行代码转换成Flash文件格式或HEX文件下载到Flash或FPGA器件中,使所设计的系统独立运行。,第一代的Nios已经体现出了嵌入式软核的强大优势,但是还不够完善。它没有提供软件开发的集成环境,用户需要在Nios SDK Shell中以命令行的形式执行软件的编译、运行、调试,程序的编辑、编译、调试都是分离的,而且还不支持对项目的编译。这对用户来说不够方便,还需要功能更为强大的软核处理器和开发环境。,5.1.2 第二代Nios嵌入式处理器2004年6月,Altera公司在继全球范围内推出Cyclone和Stratix器件系列后又推出了支持这些新款FPGA系列的Nios嵌入式处理器。Nios嵌入式处理器和Cyclone FPGA组合,在器件中只占用0.35美元的逻辑资源。Nios嵌入式处理器在Cyclone FPGA中也具有超过100 DMIP的性能,允许设计者在很短的时间内构建一个完整的可编程芯片系统,风险和成本比中小规模的ASIC小。它与2000年上市的原产品Nios相比,最大处理性能提高3倍,CPU内核部分的面积最大可缩小1/2。,Nios系列嵌入式处理器使用32位的指令集结构(ISA),完全与二进制代码兼容,它是建立在第一代16位Nios处理器的基础上的,定位于广泛的嵌入式应用。Nios处理器系列包括了三种内核快速的(Nios/f)、经济的(Nios/e)和标准的(Nios/s)内核,每种都针对不同的性能范围和成本。使用Altera的Quartus软件、SOPC Builder工具以及Nios集成开发环境(IDE),用户可以轻松地将Nios处理器嵌入到他们的系统中。表5.1、表5.2和表5.3分别列出了Nios处理器的特性、Nios系列成员、Nios嵌入式处理器支持的FPGA。,表5.1 Nios嵌入式处理器的特性,表5.2 Nios系列处理器成员,表5.3 Nios嵌入式处理器支持的FPGA,5.1.3 可配置的软核嵌入式处理器的优势1合理的性能组合使用Altera Nios处理器和FPGA,用户可以实现在处理器、外设、存储器和I/O接口方面的合理组合。(1)三种处理器内核。Nios开发人员可以选择一个或任意以下三种内核的组合:快速的内核(Nios/f)具备高性能,经济的内核(Nios/e)具备低成本,标准的内核(Nios/s)用于性能和尺寸的平衡。,(2)超过60种SOPC Builder配备的内核。用户可以创建一组适合于自己应用的外设、存储器和I/O接口。现成的嵌入式处理器可以快速嵌入Altera的FPGA中。(3)无限的DMA通道组合。直接存储器存取(DMA)可以连接到任何外设从而提高系统的性能。(4)可配置的硬件及软件调试特性。软件开发人员具有多个调试选择,包括基本的JTAG的运行控制(运行、停止、单步、存储器等)、硬件断点、数据触发、片内和片外跟踪、嵌入式逻辑分析仪。这些调试工具可以在开发阶段使用,一旦调试通过后就可以去掉。,2提升系统的性能设计人员通常都会选择一个比实际所需的性能要高的处理器(意味着更高的成本),从而为设计保留一个安全的性能上的余量。Nios系统的性能是可以根据应用来裁减的,与固定的处理器相比,在较低的时钟速率下具备更高的性能。Nios的以下特性可以提升系统的性能。(1)多CPU内核。开发者可以选择最快的Nios内核(Nios/f)以获得高性能,还可以通过添加多个处理器来获得所需的系统性能。,(2)FPGA系列支持。Nios处理器可以工作在所有近来Altera推出的FPGA系列上。尤其是在Stratix器件上,Nios/f内核超过200 DMIPS的性能仅占用1800个逻辑单元。在更大的器件上,诸如Stratix EP2S180器件,一个Nios的内核只占用了1%的可用逻辑资源,这些微量的资源仅在Quratus设计软件资源使用的波动范围之内,可以说用户几乎是免费得到了一个200 DMIPS性能的处理器。(3)多处理器系统。许多开发人员使用Nios来扩充外部的处理器,为保持系统的性能并分担处理任务。另外,设计者也可以在一片FPGA内部实现多个处理器内核。通过将多个Nios/f内核集成到单个器件内以获得较高的性能,而不用重新设计印刷电路板(PCB)。Nios的IDE也可以支持这种多处理器在单一FPGA上的开发,或多个FPGA共享一条JTAG链。,(4)定制指令。用户定制指令是一个扩展处理器指令的方法,最多可以定制256个用户指令(见图5.1)。定制指令处理器还是处理复杂的算术运算和加速逻辑的最佳途径。例如,将一个在64 K字的缓冲区实现的循环冗余码校验(CRC)的逻辑块作为一个定制的指令,要比用软件实现快27倍。,图5.1 Nios的定制指令,(5)硬件加速。通过将专用的硬件加速器(见图5.2)添加到FPGA中作为CPU的协处理器,CPU就可以并发地处理大块的数据。例如上面提到的CRC例子,通过专用的硬件加速器处理一个64 K字的缓冲区,比用软件快530倍。SOPC Builder设计工具中包含一个引入向导,用户可以用这个向导将加速逻辑和DMA通道添加到系统中。,3降低系统成本嵌入式系统设计人员总是坚持不懈地寻找降低系统成本的方法。然而,选择一款处理器,在性能和特性上总是与成本存在着冲突,最终结果总是以增加系统成本为代价的。利用Nios处理器可以通过以下途径来降低成本:(1)更大规模的系统集成。将一个或更多的Nios处理器组合,选择合适的外设、存储器、I/O接口,利用这种方法可以减少电路板的成本、复杂程度以及功耗。,(2)优化FPGA/CPU的选择。经济型的内核(Nios/e)只占用不到35美分的Cyclone器件资源,保留了更多的逻辑资源给其他片外的器件;并仅仅占用600个逻辑单元,这样就可将软核处理器应用于低成本的、需要低处理性能的系统中。小的CPU还使得在单个的FPGA芯片上嵌入多个处理器成为可能。(3)更好的库存管理。嵌入式系统通常包含了来自多个生产商的多种处理器,以应付多变的系统任务。当某种处理器短缺时,管理这些处理器的库存也是个问题。但是使用标准化的Nios软核处理器,库存的管理将会大大简化,因为通过将处理器实现在标准的FPGA器件上减少了对处理器种类的需求。,4应付产品的生命周期开发人员希望快速将他们的产品推向市场,并保持一个较长的产品生命周期。基于Nios的系统在以下几个方面可以帮助用户实现此目标:(1)加快产品的上市时间。FPGA可编程的特性使其具有更快的产品上市时间。许多的设计向导通过简单的修改都可以被快速地实现到FPGA设计上。Nios系统的灵活性源于Altera所提供的完整的开发套件、众多的参考设计、强大的硬件开发工具(SOPC Builder)和软件开发工具(Nios IDE)。由于将Nios处理器放置于FPGA内部就可以验证外部的存储器和I/O组件,因而电路板设计速度得以显著增加。,(2)建立有竞争性的优势。维持一个基于通用硬件平台的产品的竞争优势是非常困难的。而带有一个或多个Nios处理器的SOPC系统则具备了硬件加速、定制指令、定制且可裁减的外设等配置,从而在竞争中占有一定的优势。(3)延长了产品的生存时间。使用Nios处理器的SOPC产品的一个独特优势就是能够对硬件进行升级,即使产品已经交付给客户,软件也可以定期升级。这些特性可以解决以下问题:延长产品的生存时间,随着时间的增加,可以不断有新的特性添加到硬件中。减少由于标准的制定和改变而带来的硬件上的风险。,简化了对硬件设计的修复和对错误的排除。避免处理器的过时。嵌入式处理器供应商通常提供一个很宽的配置选择范围以适应不同的客户群。不可避免的是,某个或多个处理器有可能会因为生产计划等原因而停止供应或很难寻找。设计人员可以拥有在Altera FPGA上使用和配置基于Nios设计的永久授权。一个基于Nios的设计可以很容易地移植到新系列的FPGA器件中,从而保护了对应用软件的投资。(4)在产品产量增加的情况下减少成本。一旦一个FPGA的设计被选定,并且打算大批量生产,就可以选择将它移植到Altera的HardCopy(一种结构化的ASIC系列)中,从而减少成本并提升性能。,Altera还可以提供Nios处理器的ASIC制造许可,可以将包含Nios处理器、外设、Avalon交换式总线的设计移植到基于单元的ASIC中。,5.2 Nios嵌入式处理器软、硬件开发流程简介,Nios和Nios的开发流程是一样的,只是在软件开发上Nios使用Nios SDK Shell对程序进行编译、下载;而Nios使用Nios IDE集成开发环境来完成整个软件工程的编辑、编译、调试和下载,大大提高了软件开发效率。图5.3所示为创建一个完整的Nios系统的全部开发流程,图中包括创建一个工作系统的软、硬件的各项设计任务。,图5.3 Nios系统软、硬件开发流程,在流程图中指示出了硬件和软件设计流程的交汇点,了解软件和硬件之间的相互关系对于完成一个完整的工作系统是非常重要的。开发流程图从“初期工作”开始(图5.3中的步骤),这些工作需要软、硬件工作人员的共同参与,它包括了对系统需求的分析,例如:对所设计的系统运行性能有什么要求?系统要处理的带宽有多大?,基于对这些问题的回答,用户可以确定具体的系统需求,例如:CPU是否需要一个硬件加速乘法器?设计中所需要的外围器件及其数量。是否需要DMA通道来释放CPU在进行数据拷贝时所占用的资源?,5.2.1 硬件开发流程系统设计所需的具体硬件设计工作如下:(1)用SOPC Builder系统综合软件来选取合适的CPU、存储器以及外围器件(如片内存储器、PIO、UART和片外存储器接口),并定制它们的功能(参见图5.3中的步骤)。(2)使用Quartus软件来选取具体的Altera可编程器件系列,并对SOPC Builder 生成的HDL 设计文件进行布局布线;再使用Quartus软件选取目标器件并对Nios系统上的各种I/O口分配管脚,另外还要根据要求进行硬件编译选项或时序约束的设置(参见图5.3中的步骤)。在编译的过程中,Quartus从HDL源文件综合生成一个适合目标器件的网表。最后,生成配置文件。,(3)使用Quartus编程器和Altera 下载电缆,将配置文件(用户定制的Nios处理器系统的硬件设计)下载到开发板上(参见图5.3中的步骤)。当校验完当前硬件设计后,还可再次将新的配置文件下载到开发板上的非易失存储器里。下载完硬件配置文件后,软件开发者就可以把此开发板作为软件开发的初期硬件平台进行软件功能的开发验证了。,5.2.2 软件设计流程系统设计所需的具体软件设计工作如下:(1)在用SOPC Builder 系统集成软件进行硬件设计的同时,就可以开始编写独立于器件的C/C+软件,比如算法或控制程序(参见图5.3中的步骤S)。用户可以使用现成的软件库和开放的操作系统内核来加快开发进程。(2)在NIOS IDE中建立新的软件工程时,IDE会根据SOPC Builder对系统的硬件配置自动生成一个定制HAL(硬件抽象层)系统库。这个库能为程序和底层硬件的通信提供接口驱动程序,它类似于创建Nios系统时SOPC Builder生成的SDK。,(3)使用NIOS IDE对软件工程进行编译、调试(参见图5.3中的步骤S)。(4)将硬件设计下载到开发板上后,就可以将软件下载到开发板上并在硬件上运行(参见图5.3中的步骤S)。,5.3 Nios嵌入式处理器系统的开发,5.3.1 开发工具及开发板简介1开发工具开发Nios嵌入式处理器系统所需的软、硬件开发工具有:Windos NT/2000/XP操作系统,SOPC Builder 软件,Quartus 4.0或更高版本,Nios IDE集成开发环境以及Nios开发板。,2开发板简介本书中的设计都是在Nios Cyclone开发板上进行设计开发的。图5.4所示即为Nios Cyclone 开发板。,图5.4 Nios Cyclone 开发板,1)开发板系统组成 Nios Cyclone开发板包括以下组成部分:一片Cyclone EP1C20F400C7器件,8 MB Flash存储器,1 MB静态RAM,16 MB SDRAM,一片EMP7128,EPCS4串行配置器件,以太网MAC/PHY控制器,两个扩展接头(每个有41个引脚与Cyclone器件的IO引脚连接,最高输入电压5 V),CF卡接口,软、硬件调试连接器,两个RS-232DB9 串口,四个连接Cyclone IO引脚的按钮,八个LED连接Cyclone IO引脚的按钮,两个七段数码管,JTAG接口,50 M晶振和电源复位电路。,Nios Cyclone 开发板为基于Altera Cyclone器件的嵌入式系统开发提供了一个开发平台。开发板上已经带有了一个32 bit Nios处理器的参考设计。软、硬件开发人员可以参照这个设计中的软、硬件,尽快开始设计自己的软、硬件。系统上电后,板子上的配置逻辑会引导Cyclone FPGA使用存储在Flash中的硬件配置。当器件配置好后,在FPGA 中设计的Nios处理器就执行从Flash存储器中导入的程序代码。参考设计为下载新的由用户定义的软、硬件配置数据提供了方便的下载工具。下载可以通过串口、JTAG下载电缆或以太网线进行。,2)器件配置(1)配置控制器。板子上的Altera EPM7128AE是配置控制器,它里面已经存在的逻辑被用来管理板子的复位并引导Flash存储器、EPCS4串行配置器件中的数据来配置Cyclone器件。当板子加电或复位时,复位控制器会按照以下顺序读取存储器来配置Cyclone器件:EPCS4串行配置器件;Flash存储器中的用户配置;Flash存储器中的安全配置。,首先,Cyclone FPGA读取来自EPCS4的配置数据,如果配置成功,就停止继续配置。否则,配置控制器控制Cyclone FPGA转入被动串行模式,读取Flash存储器中的用户配置。如果还不成功,就下载Flash存储器中的安全配置。开发板上的参考设计中就有Flash存储器的安全配置区,因此在用户没有加载其他设计的情况下,板子始终运行在安全模式下,运行参考程序代码。一般用户是不需要重新对配置控制器编程的,如果改变了EPM7128的逻辑,则要恢复到原来状态,可以在altera/kids/nios/examples/EPM7128_flash_config_controller中找到原程序文件config_controller.pof,将此文件通过JTAG(J5接口)重新下载到EPM7128器件中即可。,(2)配置数据。Quartus可以生成hexout配置文件,这个文件可以作为配置数据直接下载并存储在Flash中。CycloneEP1C20的配置文件小于1 MB,占用1/8的Flash存储单元。在Flash存储器中有两个配置,分别是用户配置和安全配置,这两个配置存储在Flash存储器中固定的位置。表5.4所示为Flash存储器的分配情况。,表5.4 Flash 存储器的分配,用户新设计的软、硬件程序应烧写在用户配置数据段中。板子在上电或复位情况下,对于Flash首先就从0 x60000处读取配置数据,成功后不再读取安全配置数据。建议用户一般情况下不要擦除安全配置数据。在有用户配置数据的情况下,如果要使板子使用安全配置数据,就按SW9按键,系统会自动转入读取安全配置数据。在开发板上有4个指示配置情况的指示灯,它们与EPM7128相连,如图5.5所示,从指示灯上可以看出当前的配置情况。如果有新的配置从JTAG(J24接口)向Cyclone器件下载,则所有的指示灯都会灭掉。用户在使用开发板开发时应该注意这几个指示灯的状态。表5.5是这几个指示灯的说明。,图5.5 开发板上的配置指示灯,表5.5 配 置 指 示 灯,(3)重新写入安全配置。当原先的安全配置被擦除,要恢复安全配置时,应执行以下步骤:配置Cyclone FPGA。使用Quartus的Programmer选项,将Nios开发工具包中的example目录下的recover_configuration_cyclone_1c20.sof下载到Cyclone中。配置结束后按下SW0按钮,再按下SW8按钮并放开,最后再放开SW0按钮。,重新下载程序到Flash。将Console RS-232和计算机相连,打开Nios SDK Shell(“开始”菜单程序Nios Development KitNios SDK Shell),执行如下命令:nios-run-x-r-p com1 default_board_image_cyclone_1c20.flash(回车)下载的过程要持续1020分钟,在这个过程中不要按复位键。完成后按Force Safe(SW9)按钮,就可进入到原来的安全配置模式了。,3)将开发板升级到NiosNios Cyclone开发板上已有的配置是第一代Nios处理器,如果用户要进行Nios的嵌入式系统开发,则首先要将开发板升级到Nios处理器。升级要执行的步骤如下:(1)下载flash程序。将JTAG电缆接到开发板的J24接口上连接开发板和PC机,并给板子加电。选择开始程序AlteraNios Development KitNios SDK Shell,打开Nios SDK Shell窗口。,默认情况下Nios SDK Shell 指向“alterakitsnios2examples”目录,将目录改为factory_recovery,输入下面的命令:cd factory_recovery/Nios_cyclone_1c20(回车)运行Flash修复文件,输入下面的命令:./restore_my_flash(回车)按照提示信息完成Flash程序的下载(见图5.6)。,图5.6 运行Flash修复文件,(2)向EPM7128配置控制器下载程序。将JTAG电缆接到J5接口,注意J5接口和J24接口方向相反,连接时将下载电缆转向180。启动Quartus,选择tools菜单下的Programmer选项,将/altera/kids/nios2/examples/factory_recovery/nios _cyclone_lc20 目录下的config_controller.pof文件下载到EPM7128中。按下开发板上的Force Safe(SW9)按钮,可以看到Safe灯点亮和LED从D0到D7连续点亮,这说明Nios处理器及其参考程序设计已经成功配置到开发板上了。,5.3.2 Nios集成开发环境(IDE)简介1工程管理器Nios IDE提供多个工程管理任务,加快了嵌入式应用程序的开发进度。(1)新工程向导。Nios IDE推出了一个新工程向导(如图5.7所示),用于自动建立C/C+应用程序工程和系统库工程。采用新工程向导,能够轻松地在Nios IDE中创建新工程。,图5.7 Nios IDE新工程向导,(2)软件工程模板。除了新工程向导,Nios IDE还以工程模板的形式提供了软件代码实例,帮助用户尽可能快速地推出可运行的系统。每个模板包括一系列软件文件和工程设置。通过覆盖工程目录下的代码或者导入工程文件的方式,开发人员能够将他们自己的源代码添加到工程中。图5.8描述了一些可用的软件工程模板。,图5.8 软件工程模板,(3)软件组件。Nios IDE使开发人员通过使用软件组件能够快速定制系统。软件组件(或者称为系统软件)为开发人员提供了一个简单的方式,可以轻松地为特定目标硬件配置其系统。这些组件包括:Nios运行库(或者称为硬件抽象层(HAL)、轻量级IP TCP/IP 库、MicroC/OS实时操作系统(RTOS)和Altera压缩文件系统。2编辑器和编译器Nios IDE提供了一个全功能的源代码编辑器和C/C+编译器。,1)文本编辑器Nios IDE文本编辑器是一个成熟的全功能源文件编辑器,其功能包括:语法高亮显示C/C+程序代码,代码辅助/代码协助完成,全面的搜索工具,文件管理,广泛的在线帮助主题和教程,引入辅助,快速定位及自动纠错,内置调试功能。图5.9显示的是Nios IDE文本编辑器高亮显示C源代码。,图5.9 高亮显示C源代码,2)C/C+编译器Nios IDE为GCC编译器提供了一个图形化用户界面,Nios IDE编译环境使设计Altera的Nios处理器软件更容易,它提供了一个易用的按钮式流程,同时允许开发人员手工设置高级编译选项。Nios IDE编译环境自动生成一个基于用户特定系统配置(SOPC Builder生成的PTF文件)的makefile。Nios IDE中编译/链接设置的任何改变都会自动映射到这个自动生成的makefile中。这些设置可包括生成存储器初始化文件(MIF)的选项、闪存内容、仿真器初始化文件(DAT/HEX)以及profile总结文件的相关选项。,3调试器The Nios IDE包含一个强大的、在GNU调试器基础之上的软件调试器GDB。该调试器提供许多基本调试功能以及一些在低成本处理器开发套件中不会经常用到的高级调试功能。1)基本调试功能Nios IDE调试器包含如下基本调试功能:运行控制,调用堆栈查看,软件断点,反汇编代码查看,调试信息查看,指令集仿真器。图5.10是Nios IDE调试器软件断点的屏幕抓图。,图5.10 Nios IDE调试器断点,2)高级调试功能除了上述基本调试功能之外,Nios IDE调试器还支持以下高级调试功能:硬件断点调试ROM或闪存中的代码,数据触发以及指令跟踪。Nios IDE调试器通过JTAG调试模块和目标硬件相连。另外,Nios IDE调试器支持片外跟踪功能,便于和第三方跟踪探测工具结合使用,如FS2公司提供的用于Nios处理器的in-target系统分析仪(ISA-NIOS)。,3)调试信息查看调试信息查看使用户可以访问本地变量、寄存器、存储器、断点以及表达式赋值函数。图5.11是调试信息查看的一个实例,显示的是一个寄存器应用实例。,图5.11 调试信息查看(寄存器显示),4)目标Nios IDE调试器能够连接多种目标。表5.6列出了Nios IDE中可用的目标连接。,表5.6 Nios IDE调试器目标,4闪存编程器许多使用Nios处理器的设计都在单板上采用了闪存,可以用来存储FPGA配置数据和/或Nios编程数据。Nios IDE提供了一个方便的闪存编程方法。任何连接到FPGA的兼容通用闪存接口(CFI)的闪存器件都可以通过Nios IDE闪存编程器来烧结。除CFI闪存之外,Nios IDE闪存编程器能够对连接到FPGA的任何Altera串行配置器件进行编程。闪存编程器管理多种数据,编程到内存中的通用内容类型见表5.7。,表5.7 编程到闪存中的通用内容类型,Nios IDE闪存编程器具有易用的接口,如图5.12所示。,图5.12 闪存编程器接口,5.3.3 设计实例1硬件部分设计1)创建一个Quartus工程在Quartus软件中,根据所用开发板的类型打开Altera/kids/nios2/tutorials/Nios2_HW_Tutorial目录下的一个建立好的工程文件。这里选取的是1C20中的nios2_quartus2_project.qpf工程文件,在此工程的.bdf文件中已经加入了开发板上Cyclone器件要输入、输出的管脚,如图5.13所示。,图5.13 打开nios2_quartus2_project.bdf工程文件,2)创建Nios 系统模块(1)启动SOPC Builder。在Quartus中选择SOPC Builder(Tools 菜单中),之后会出现Create New System 设置向导,如图5.14所示。在设置向导的System Name中输入系统名first_nios2_system,并选择Verilog或VHDL 硬件描述语言。点击OK按钮,显示出Altera SOPC Builder first_nios2_system窗口和系统元件表。,图5.14 Create New System 设置向导,在SOPC Builder中的Target Device Family对话框中选取Cyclone器件,在System Clock Frequency 中填入50。(2)添加CPU 和外围器件。建立当前要设计的nios2_quartus2_project 项目,需从SOPC Builder 的元件池中选择以下元件加入到当前设计的系统中:Nios 32 bit CPU、定时器、按键PIO、LCD PIO、LED PIO、七段数码管PIO、外部RAM 总线(Avalon 三态桥)、外部RAM 接口、外部Flash接口和新配置请求PIO。,添加Nios 32 bit CPU。在Avalon模块下选择Nios Processor-Altera Confidential。点击Add,会出现Nios的设置向导(名为Altera Nios-cpu_0)。在Nios Core栏中选择Nios/s选项,在Instruction Cache Size中选择4 Kbytes,如图5.15所示。,图5.15 NiosCore 项目栏,图5.16 JTAG Debug Module 项目栏,点击Finish按钮返回SOPC Builder窗口。将cpu_0重新命名为cpu(见图5.17)。,图5.17 在SOPC Builder 中添加cpu,名字最前面应该使用英文;能使用的字符只有英文字母、数字和“_”;不能连续使用“_”符号,在名字的最后也不能使用“_”。添加JTAG UART Interface。JTAG UART是Nios系统嵌入式处理器新添加的接口元件,通过内嵌在Altera FPGA内部的联合测试行动组(JTAG)电路,在PC主机和SOPC Builder系统之间进行串行字符流通信。,图5.18 JTAG UART设置向导,选择CommunicationJTAG UART 并点击Add,会出现JTAG UATT-jtag_uart_0的设置向导,如图5.18所示。保持系统默认的选项,点击Finish,返回SOPC Builder窗口。将jtag_uart_0重命名为jtag_uart。添加定时器。定时器对于HAL系统库中的器件驱动非常有用,比如JTAG UART驱动使用定时器来实现10秒钟的暂停。添加定时器的步骤如下:在元件池中选择Other项下的Interval timer 并点击Add,会出现Avalon Timer-timer_0设置向导。在此设置向导的Initial Period选项中选择1 msec,在Preset Configurations选项中选择Full-featured(v1.0-compatible),如图5.19所示。,图5.19 定时器设置向导,点击Finish按钮,返回SOPC Builder窗口。将timer_0重命名为system_timer。添加外部Flash存储器接口的步骤如下:在元件池中选取memory项下的Flash Memory(Common Flash Interface),点击Add,会出现Flash Memory(Common Flash Interface)-cfi_flash_0设置向导。根据所使用的开发板在Presets项中选择相应的Flash器件,本例中选择AMD29LV065D-120R。在Address Width中选择23 bits选项,在Data Width中选择8 bits选项,如图5.20所示。,图5.20 外部Flash设置向导,点击Finish按钮,返回Altera SOPC Builder-nios32窗口。将cfi_flash_0重命名为ext_flash。添加外部RAM接口的步骤如下:根据开发板类型在元件池中选择相应的SRAM,在本例中因使用的开发板为Cyclone(EP1C20),故选择EP1C20项下的IDT71V416 SRAM。点击Add,会出现SRAM(two IDT71V416 chips)-sram_0设置向导。在Attributes栏中,确定存储器大小为1024 KB,如图5.21所示。点击Finish按钮返回Altera SOPC Builder_nios32窗口。将sram_0重命名为ext_ram。,图5.21 添加SRAM设置向导,添加外部RAM 总线(Avalon Tri-State Bridge)。SOPC Builder是使用Avalon 接口来连接片上元件和Avalon 主从端口的。在Nios开发板上,要实现Nios系统与FPGA片外存储器通信,用户就必须在Avalon总线和连接外部存储器的总线之间添加一个桥。添加Avalon Tri-State Bridge的步骤如下:选取Bridge项下的Avalon Tri-State Bridge 并点击Add,会出现Avalon Tri-State Bridge-tri_state_bridge_0 设置向导,如图5.22所示,默认情况下Registered 选项是选中的。,点击Finish按钮,返回Altera SOPC Builder_nios32窗口。将tri_state_bridge_0重命名为ext_ram_Bus。添加Button PIO的步骤如下:选择Other项下的PIO(Parallel I/O),点击Add,会出现Avalon PIO-pio_0的设置向导。确定以下选项(如图5.23所示):Width为4 bits,Direction选中Input ports only。选择了Input ports only选项,就使能了Input Options栏。,点击Input Options 栏。在Edge Capture Register下选取Synchronously capture。选择Either Edge。在Interrupt 下选取Generate IRQ。选择Edge。返回Altera SOPC Builder_nios32窗口。将pio_0 重命名为button_pio。,图5.23 按键PIO 属性设置,添加重新配置请求PIO。重新配置请求PIO可使器件根据其他外围设备的输入自动进行重新配置。添加此PIO的过程同添加其他PIO的过程一样,其属性设置见图5.24:Width设为1 bit,在Direction中选择Bidirectional(tir-state)ports选项,并将Avalon PIO-pio_0重命名为reconfig_request_pio。,图5.24 重新配置请求PIO设置向导,添加其他PIO的步骤与添加按键PIO相同,各个 PIO属性设置如下:LCD PIO(如图5.25所示):Width设为11 bits,Direction选择Bidirectional(tir-state)ports选项。,图5.25 LCD PIO设置向导,LED PIO(如图5.26所示):Width设为8 bits,Direction选择Output ports only选项。七段数码管PIO:Width设为16 bits,Direction选择Output ports only选项。最后,将pio_0分别重命名为lcd_pio、led_pio、seven_seg_pio。,图5.26 LED PIO设置向导,(3)指定基地址。SOPC Builder会给用户的Nios系统模块分配默认的基地址,用户也可以更改这些默认值。本例中将Flash的基地址设置为0 x0000,以便于说明软、硬件在Flash存储器中存储的地址而不用考虑偏移地址值。设置Flash基地址的步骤如下:在SOPC Builder的模块表中点击Flash_8Mbyte的Base,输入0 x0并回车,此时会在SOPC Builder的信息栏中出现新的Flash基地址与另外一个外围器件的基地址冲突的错误。选择Module菜单中的Lock Base Address,会在Flash的基地址旁边出现一个锁子的图标。,选择System 菜单中的Auto Assign Base Adderss。Auto Assign Base Address 可以使SOPC Builder 给其他没有锁定的地址重新分配地址,从而解决地址映射冲突问题,刚才出现的错误就会消失。图5.27显示了完整的系统配置及其地址映射。,图5.27 最终的Nios系统配置及其地址映射,(4)系统设置。选择More cpu Settings选项,按照图5.28所示的系统设置对系统进行进一步设置。,图5.28 系统设置,(5)生成系统模块的步骤如下:选择System Generation 栏,如图5.29所示。在System Generation 中选中HDL选项;如果安装了ModelSim软件并需要仿真此设计,可以选择Simulation选项。,图5.29 SOPC Builder 生成页,点击Generate生成页。SOPC Builder 根据用户设定的选项不同,在生成的过程中所执行的操作不同。系统生成完成后点击Exit退出SOPC Builder。3)将图标添加到BDF文件中在生成的过程中,SOPC Builde

    注意事项

    本文(NiosⅡ嵌入式处理器设计.ppt)为本站会员(小飞机)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开