NIOSII开发资料汇总_第1页
NIOSII开发资料汇总_第2页
NIOSII开发资料汇总_第3页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

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

文档简介

1、NIOS II 开发常见问题1. 怎样在TCL脚本分配管脚source <pin_assign>.tcl有点问题:# source stratix_pin_assign.tclcouldn't read file "stratix_pin_assign.tcl": no such file ordirectory答: From the Tools menu select Tcl s cripts, and then fromthe project folder choose the setup s cript for your particular de

2、velopment board, and click Run.2D:TEST ios_sst60 下载时出现错误:Error: Can't configure device. Expected JTAG ID code 0x020010DD fordevice 1, but found JTAG ID code 0x020B40DD. 答:SOP(所选器件和开发板上的不一致。3在 NOIS II 中 Bulid 例程 hello_world 都出现了错误,错误提示为: gdrive/c/altera/kits/nios2/components/altera_nios2/HAL/src/

3、alt_busy_s leep.c:68: error: parse error before '/' token等错误全部由alt_busy_sleep.c 引起,都是关于括号不匹配的问题,而 alt_busy_sleep.c 是 IDE 中的一个默认程序。这个错误同样出现在D:TESTDE2Projectsoftwareios2 ,培训用的一个简单实验。答:找到 system.h 文件,里面有个关于系统时钟频率的设置项,应该 是没有赋值,你手动赋值。比如你用50MHZ勺时钟,就设成50000000。如果总是出现上述问题,可能和软件有关系,建议重新安装软件。注意 quartu

4、s 和 NIOS安装版本一定要相同,不能混装。4这个错误是什么原因引起,把那个 sdk_arm 删除后,又提示另一个地方出 错。答:运行 NIOS II IDE ,点 Project->Clear ,重新 Builde, 应该可以解决问题。5. 在SOPC中 Gen erate出现如下错误是怎么回事 ? Error: Gen eratorprogram for module 'epcs_controller' did NOT run successfully.只要在SOPC中加入epcs_controller就会出现此错误,无法生成一个元件。答:可能和软件有关系,建议重新

5、安装软件 <这个问题是我刚学NIOS遇 到的最头痛的一个问题,问题的原因是 Quartus 和 Nios 安装的版本不一致)。6. 在 Nios II IDE 中,怎样打开一个已经存在的项目?每次新建项目比较麻 烦。答:指定一个 Nios II IDE 的工作目录,就打开了那个目录下存在的项 目。另外,在 Nios II 中是可以建立多个项目的。7. 在 Quartus II中编译出现如下错误怎么办?Error: Can't place pins assigned to pin location Pin_AE24 (IOC_X65_Y2_N2>答:按 F1 可以查看帮助,出

6、现这样的错误的原因是:CAUSE: You assigned two or more pins to the specified location, but the Fitter cannot place all the pins in that location. 删除这个管脚即 可。有一种比较简便的方法,就是在项目目录中找到一个后缀为QSF的管脚配置文件,查找 Pin_AE24 删除那行语句就行了。8. 如何在 NIOS II IDE 下跟踪查看变量的定义或者函数的定义 ?答:按住CTRL键,鼠标移动到变量或者函数名的地方,就可以发现这 些地方高亮显示,单击就可以进入到变量或者函数定义的地

7、方。9. 在 count_binary.c 有这样一段程序,它是如何操作的? unsigned int data = segmentshex & 15 | (segments(hex >> 4> & 15 << 8>答:segmentshex & 15显示个位 0F; (segments(hex >> 4> & 15 << 8>显示十位数0F,个位0F,然后十位加一。10这个错误是由什么引起? 提示LED_PIO_BAS没有声明答:这是因为名字不一致引起的比如,N生成SOPC系统时,双击PI

8、O(Parallel I/O>( 在 Avalon Modules -> Other 下),为系统添加输出接口 你没有把该组件改名成LED_PIO而是保留了原始的名字:PIO_0;但你又通过 IOWR_ALTERA_AVALON_PIO_DATA(LED_PIO_BASE,来d向该组件写入数据, 就会导致上述错误。解决办法:1.可以修改sopc系统,为该PIO改名为LED_PIO。2.在 hello_led.c 的前面给 LED_PIO_BAS赋值,女口 #define LED_PIO_BASE 0x00001800后面的这个地址要与 SOPC中的地址对应。11. 如何在 NIOS

9、 II 中驱动外部芯片或设备 ?答:在开发过程中,我们经常会使用外接一些芯片,或外接一些实用电 路,比如AD芯片、串并转换芯片等等,那么如何在 NIOS II中去使用这些芯片 呢? 我们在开发中会有多个选择:1 如果这个芯片是使用数据和地址总线的,并且补线时没有足够的单 独引脚,那么这个芯片必须挂接在 tri_stat 总线上,这种用法和我们以往单片 机或 MCU 类似,在 SOPC Builder 中直接定义用户逻辑,如果有额外的控制引 脚,就需要用PIO来驱动,虽然公用数据地址线节省了引脚,但做控制时序费 劲了。2 如果这个芯片单独使用数据和地址,那么我们会直接做成 Avalone 总线的

10、Slave设备,在Sopc Builder 中自己定义component。需要写HDL模 块,自己定控制、状态、数据寄存器和控制位定义,这种方式控制灵活,易于 实现复杂的控制时序。3 在Quartus II 项目中画电路模块 <或用HDL写电路模块),这种方 式是独立于SOP(定义的模块之外的,做一个纯电路的处理模块,有时候会比较 容易实现某些灵活的处理。12. 在SOP(添力卩Avalon Trisatate Bridge时,提示有如下错误,该如何解决?Tri state bridge/tristate master requires a slave of type Avalon tr

11、istate.Please add a slave of type Avalon tristate.Generate 按钮为灰色,无法 Generate需要一个专门接三台桥的设备, 把 flash 添加到 sopc 中就可以13. 在做 count_binary 这个例子时,出现一个错误: error:'BUTTON_PIO_IRQ' un declared (first use in this fun ctio n>BUTTON_PIO_IR的值如何给他定义?答:这个错误可能是在 sopc builder 中定制的 pio 端口名称是否与程 序中用的不一致,要和程序里的

12、一致,把 pio 组件的名称就改为 button_pio 。14. 在 Quartus II 中编译时出现如下错误:Error: Node instance "cpu_bht" instantiates undefined entity "cpu_bht_module"点击错误的地方弹出一个对话框这个错误是怎么回事?怎样解决?答:可能是在SOPC中所选的CPU型号不正确,换一个试试。15. 怎样自动分配管脚?答:在 Quartus II 自动分配管脚有一个方法,点击 Assignments- >Import Assginments, 导入一个管脚分

13、配文件,后缀为 .csv .txt 等,前提是 在顶层原理图中各个输入输出的名称要和这个文件中的名称一致。16. 在NIOS II中编译时出现如下错误怎么解决?错误是不是由SOP(中的RAM引起?region ram is full (count_binary.elf section .text>. Region needs to be 24672 bytes larger.address 0x80c1f8 of count_binary.elf section .rwdata is not within region ramUnable to reach edge_capture (a

14、t 0x00800024> from the global pointer (at 0x0081419c> because the offset (-82296> is out of the allowed range, -32678 to 32767.答:可能时RAM勺大小不够,也有可能是中断地址(exception address> 的偏余量不够,设置大些就可以了。如果还是出现这个问题,加一个 SDRA试试。17在 Quartus II 中,为什么编译一些样板项目都会出错?Error: DDR timing cannot be verified until proj

15、ect has been successfully compiled.Error: Evaluation of Tcl s cript auto_verify_ddr_timing.tcl unsuccessfulError: Quartus II Shell was unsuccessful. 2 errors, 1 warning 答:在做样板项目时要注意一个问题: Due to the library paths that are coded into the Quartus settings for this project, if a user wishes to modify th

16、e hardware design they must first strip out any old paths from within the project settings file (qsf>在 qsf 文件中找到类似语句set_global_assignment-nameVHDL_FILE C:/MegaCore/ddr_ddr2_sdram- v3.2.0/lib/auk_ddr_tb_functions.vhd" 这里的目录是初始的目录,把它改为 正确的目录。18. 在 NIOS II IDE 编译时出现如下错误是怎么回事?system_des criptio

17、n/alt_sys_i ni t.c:75: error: 'ONCHIP_MEMORY_BASE' undeclared here (not in a function>system_des cription/alt_sys_init.c:75: error: initializer element is not constantsystem_des cription/alt_sys_init.c:75: error: (near initialization for 'ext_flash.dev.write'>system_des criptio

18、n/alt_sys_init.c:75: error: initializer element is not constantsystem_des cription/alt_sys_init.c:75: error: (near initialization for 'ext_flash.dev.read'>答:ONCHIP_MEMORY_B没有武值,在alt_sys_init.c 程序的开头加 上 #defi ne ONCHIP_MEMORY_BASE 0x00000(后面的这个地址要与 SOP(中 的对 应。19. 在 NIOS II IDE 编译时出现如下错误是怎么

19、回事?Pausing target processor: not responding.Resetting and trying again: FAILEDLeaving target processor paused答:以下是一位FAE的回答:1. 关于 USB-Blaster 在 Nios II IDE 下载时会发生偶发性错误,这种 现象主要是IDE software 与Nios II CPU 透过USB-Blaster在做通讯时发生错 误,若是确认FPG上配置没有错误,连续发生错误的机率应该是相当的低,您 只需要重新下载即可。2. 若您使用 Nios II IDE 6.0 ,请尽量配合

20、SOPC Builder 6.0 重新 build 您的 system,并且使用 Quartus II 6.0 重新 compile 您的 project,以 减少CPL与 IDE software 不兼容的情形。20. 在 NIOS II IDE 中项目的 System Library 选项中的这几个选项代表什么意 思? .text .rodata .rwdata 与reset .exception 这几个地址之间的关系是 什么?答: .text :代码区 .rodata: 只读数据区,一般存放静态全局变量 .rwdata: 可读写变量数据区另外还有 .bss: 存放未被初始化的变量。 .t

21、ext the actual executable code .rodata any read only data used in the execution of the code .rwdata where read/write variables and pointers arestored heap where dynamically allocated memory is located stack where function call parameters and other temporary data is stored21. 怎样在NIOS II中操作PIO,提供一种参考方

22、法。答:hello_led.c 是这样写IO 口的:IOWR_ALTERA_AVALON_PIO_DATA(LED_PIO_BASE,led>首先在 altera_avalon_pio_regs.h 找到定义i nclude <io.h>#define IORD_ALTERA_AVALON_PIO_DATA(base> IORD(base, 0> #define IOWR_ALTERA_AVALON_PIO_DATA(base, data> IOWR(base, 0, data> 因此在NIOSII中可以调用# i nclude <io.h>

23、; 库函数IORD/IOW眯操作PIO。 在 smallsoftwarehello_led_0_syslibDebugsystem_des cription下的system.h中,有以下内容:#define LED_PIO_TYPE "altera_avalon_pio"#define LED_PIO_BASE 0x00004000 其中 LED_PIO_BASE<I寄存器地址?)为 0x00004000 同 SopcBuilder 中设置一 致!(其实在 SopcBuilder 中有关 NiosII 的配置, 就是通过 system.h 来传送给 IDE 的 !&g

24、t;最后用 IOWR(0x00004000, 0, led> 。替代 IOWR_ALTERA_AVALON_PIO_DATA(LED_PIO_BASE,编译,下载到开发板上, 运行成功 !22. 怎样让SDRAI和 FLASH SRAM勺地址公用?答: sdram 可以和 sram,flash 共用数据总线和地址总线 . 在 sopc builder中添加SDRAI控制器时,在其 share pins via tristate 选择项上勾 上 Controller shares dq/dqm/addr IO pins 选项,这样 sdram 可以和 sram,flash共用数据总线和地址

25、总线但是ATERA不推荐这样做,因为这样会 降低SDRAI控制器的性能,在FPGA芯片管脚资源比较紧张的时候迫不得已才这 样做。23. 怎样使用DE2板上的数码管,绑定管脚时需要注意什么?请举一个例子说 明。答:DE2板上的数码管只用了 7位,小数点位默认为高电平。例如, 在做例程count_binary时,需要用到两个数码管,以实现 00到FF的计数,在 SOP(添加一个16位的PIO SEVEN_SEG15.0,绑定管脚时注意:使 SEVEN_SEG0.6帮定到数码管 HEX06.0 位, SEVEN_SEG8. 14绑定到数码 管 HEX16.0位,SEVEN_SEG和 SEVEN_SE

26、G1直接接 VCQ 这样才能让两 个数码管正常显示并计数。24. 在 NIOS II IDE 中调试,编译通过的软件时,出现了下面的提示,是什么 原因?Using cable "ByteBlasterII LPT1", device 1, instance 0x00Processor is already pausedDownloading 00000000 ( 0%> Downloaded 57KB in 1.2s (47.5KB/s> Verifying 00000000 ( 0%>Verify failedLeaving target process

27、or paused答: Verify failed 这个问题说明板子的复位电路可能有问题,或装 载程序的外部SRAME SDRAMS CPU的连接或时序有问题,也有可能是软件偶尔 的错误。若是软件偶尔的错误,可以先复位一下CPU然后再下载程序。或者断 电后重新下载 .sof 和 NIOS II 程序25. 在练习 C:alterakits ios2_51examplesverilog niosII_cycloneII_2c35 的项目时,里面有很多元件一 DE2板上都没有对应的管脚,比如网络元件Ian91c111,使用的IP核,还有24位的ext_flash ,而DE2板上的FLASH只 有2

28、2位。是不是SOP(中只能让DE2板上有对应管脚的元件存在,其它的只能 删除?答:这个目录下的example是针对altera自己的板子的,和DE2硬件 不能对应,只能作为参考,或者做一些修改后用。26. 在 SOPC中加了一个 200KB的 onchip_memory ,为什么在 Quartus II 编译 时出现这个错误?Error: Selected device has 105 RAM location(s> of type M4K RAM.However, the current design needs more than 105 to successfully fit答:S

29、OP(中的onchip_memory和M4K RAMS本就不是一个概念。Quartus II 中编译出现这个错误,是因为设计中用到了太多的M4K。27. 关于 sopc-builder 中 reset address 的设置,一直搞得不是很明白。答:SOP(中的reset address指定的是最终全部软件程序代码下载到的地方,并且程序从 reset address 启动。SOPC中的exception address指定的是系统异常处理代码存放的地方。如果exception address 和 reset address 不一样,那么程序从 reset address 启 动后将把放在 re

30、set address 处的系统异常处理代码拷贝到 exception address 。NIOS II 软件中的 text address 指定的是程序运行的地方。如果 text address 和 reset address 不一样,那么程序从 reset address 启动后将把放在 reset address 处的普通只读程序代码拷贝到 text address 。 NIOS II 软件中的 rodata address 指定的是只读数据的存放地方。如果 rodata address 和 reset address 不一样,那么程序从 reset address 启动后将把放在 re

31、set address 处的只读数据拷贝到 rodata address 。NIOS II 软件中的 rwdata address 指定的是可读写数据的存放地方。如果 rwdata address 和 reset address 不一样,那么程序从 reset address 启动 后将初始化 rwdata address 处的可读写数据。28. 如何提高 NIOS II 系统的性能?答:主要可以从这几个方面入手:1 、使用 fast CPU 类型。2 、提高系统主频。3、优先在SRAM中运行程序,SDRAMC之,最后选择FLASH中运行。4、使用片内RAM乍为数据缓冲,片外SRAM次之,最后

32、选SDRAM5 、IO 数据传输尽可能采用 DMA。6、对能并行处理的数据考虑使用多 CPU协同处理。7 、典型算法做成用户指令,有 256条可以做,足够你用的。8、能用HDL模块来完成工作吗?能,就用 HDL模块做成外设来完成吧 9 、采用 C2H。29. 如何优化 NIOS II 里的应用项目? 答: Optimize your Nios II application design!1. Creat an Blank Project:Select Altera Nios II " C/C+Application"2. In main.cyour main fuction

33、al c/c+ file : i nclude "system.h" i nclude "alt_types.h"#int main (void> _attribute_ (weak, alias ("alt_main">>>。int alt_main (void>return 0 。3. "System Library Properties" OptionsSelect "Clean EXIT"Select "Small C Library"S

34、elect "Reduced Device Drivers"Spicify linker s cript position, to ext_flash, ext_ram or on-chip-ram30. 关于 verify failed 的总结1. SDRAM的时序不对有时候不正确的 pll clock phase shift for sdram_clk_out就会导致SDRA不能正常工作:2. SDRAM的连线不对,物理板子的连线问题3. 在调试的时候 , 程序下载的空间不是非易丢失存储器 <non-volatile memory或者存储器的空间不够也会导致这个错

35、误4. QuartusII 的默认设置导致的错误QuartusII 默认将所有没有使用的 IO 口接地, 这种时候可能导致某些元 器件工作不正常。最好将不用的 IO 口设置为三态5. USB-blaster 坏了,或者JTAG通信的信号噪声太大JTAG的端口需要一个弱上拉电阻来抗干扰6. 确保你的sdram既连接到CPU的指令总线也连接到CPU的数据总线31. 关于DMA专输的几点说明:1 memory 到 外设的传输,调用 alt_dma_txchan_ioctl(> 时,有一个 参数为 alt_dma_tx_only_on 等2调用 alt_dma_txchan_send 函数时,在

36、专输结束前就返回一个值, 如果此值为负的话,说明发送请求失败。正确传输结束后,调用done函数。3 接收函数 alt_dma_rxthan_prepare 类似上面的 1 和 24 传输结束,有两种可能:数据传完或者 end of packet< 要预先使 能)5 . Sopc builder中例化时要制定哪些可以访问 DMA勺主端口,DMA勺 avalon slave 端口要接cpu。实际传输的最大数可以帮助确定设置的位数6 . alt_dma_txchanoctl用于控制dma的一些工作性质,使用多的话可以用信号量等来“抢占”7 . dma传输最小应该传4字或者其倍数。32. 1.

37、建立CPU时,下面的那个 Hardware Multiply 里面可以选EmbeddedMultipliers,Logic Elements,None这三个选项有什么区别呀?答:Embedded Multipliers ,使用专门的内嵌硬件乘法单元 < 不可编 程,仅能做乘法,且乘法速度最快),不是 RAM Logic Elements,使用逻 辑单元也就是FPGA中的查找表 <速度较慢)。None,那就是不要声长硬件乘法 器了,这是只能通过软件模拟乘法,速度最慢。33. 下载是出现“ not responding ”错误的又一点发现:答:在设计的过程中,经常使用板子上内部的两个晶

38、振作为CPU或者有些信号的时钟,而且习惯用osc_27和osc_50命名。在绑定管脚时又经常导入 一个CSV文件,没有手动一一绑定,而在那个CSV文件中晶振管脚名分别为CLOCK_27,CLOCK_5&样系统的CPU根本就没有绑定管脚,不出错才怪。把名 称改为CLOCK_27,CLOCK_5(重新编译下载就可以了。34. 安装了 nios2linux-1.4 之后,为什么在 New->Project 时并没有出现 Microtronx NIOS II 选项呢?答:这个问题好像难倒过很多人,其实在运行 nios2linux-1.4 安装的 第一步,里面有个提示:Informatio

39、n Regarding the Installation ProcedureIMPORTANT: Please ensure that you specify the correct path for the Altera Nios II Kit installation directory and the Cygwin root directory. The typical Altera Nios II Kit directory is:c:alterakits ios2The typical Cygwin root directory is: c:alteraquartus50 incyg

40、win 问题的关键就是上面的路径不正确。对于 Nios 5.1 和6.0 的路径分别为 nios_51 和 nios_60, 都不是 nios2 ,所以安装后找不到模板项目很正常。但它 的一些必要文件又确实是安装在了 nios_51 或 nios_60 中。我也遇到了过同样 的问题,想到了一个简单的方法可以解决:1. 把文件夹 nios_51 或 nios_60 改为 nios2 ,启动 Nios II ,就可以看 到所需模板项目。2. 退出 Nios II ,把文件夹名还原。3. 再次启动 Nios II ,你会发现模板项目依然还在。35Nios II 汉化解决方案答: NIOS II ID

41、E 实际上是在 eclipse 平台上的一个应用插件,而Eclipse是一个开放源代码的软件开发项目,专注于为高度集成的工具开发提 供一个全功能的、具有商业品质的工业平台。可访问如下网站:I.Eclipse 官方网站2.中国Eclipse社区下面介绍如何汉化NIOS 11实际上只是汉化了 eclipse )1. 打开 NIOS II,点 help-about NIOS II IDE, 会看到有关 NIOS的版权信息。可以看到NIOS II 5.1的版本上的Eclipse版本是2. 在Eclipse官方网站上找到Eclipse 3.0.1多国语言包NLpack-eclipse-SDK-3.0.x

42、-wi n32.zip3. 在NIOS II的安装目录中,你可以找到一个 eclipse目录,如:C:alterakits ios2 in eclipse,在这个目录下新建 2个文件夹Ian guage和links4. 将 NLpack1-eclipse-SDK-3.1.1a-win32.zip解压到 Ianguage 目录下5. 在links文件夹下用记事本新建一个文件,取名为link.link(必须是此扩展名6. 在Ianguage.link里输入代码如下:path=c:/altera/kits/nios2/bi n/eclipse/la nguage保存此文件。7. 汉化完成。说明,这种

43、方法只是汉化了 eclipse,对NIOS II没有汉化,但这个软 件已经大部分为中文了,因为 NIOS II只是eclipse 一个插件。对于我们新手 来说这还是必要的。Nios II编辑2004年,Altera正式推出了 Nios II系列32位RISC嵌入式处理器。Nios II系列软核处 理器是Altera的第二代FPGA嵌入式处理器,其性能超过200DMIPS,在Altera FPGA中 实现仅需 35美分。Altera 的 Stratix、Stratix GX、Stratix II 和 Cyclone 系列 FPGA 全面支 持Nios II处理器,以后推出的 FPGA器件也将支持

44、 Nios II。1 自 Altera2Nios U分类3Nios U系列4嵌入式处理器特性5特性说明6构架及特性7设计资源8处理器系列9启动方案的软件设计10结语11实现复杂的状态机12全面的SOPC解决方案13嵌入式软件工具自 Altera 编辑于2000年推出第一代16位Nios处理器以来,已经交付了 13000多套Nios开发套件, Nios成为最流行的 软核处理器。于2004年6月推出的Nios n系列采用全新的架构,比第一 代Nios具有更高水平的效率和性能。和第一代相比,Nios n核平均占用不到50%的FPGA资源,而计算性能增长了 1倍。Nios n分类辑Nios n系列包括

45、3种产品,分别是:Nios n /f快速)一一最高的系统性能,中等FPGA使用量;Nios n /s标准)一一高性能,低FPGA使用量;Nios n /e经济)一一低性能,最低的FPGA使用量。这3种产品具有32位处理器 的基本结构单元一一 32位指令大小,32位数据 和地址路径,32位通用寄存器 和32个外部中断源;使用同样的 指令集架构ISA ), 100% 二进制代码兼容,设计者可以根据系统需求的变化更改CPU,选择满足性能和成本的最佳方案,而不会影响已有的 软件投入。特别是,Nios n系列支持使用专用指令。专用指令是用户增加的硬件模块,它增加了 算术逻辑单元ALU )。用户能为系统中

46、使用的每个Nios n处理器创建多达256个专用指令,这使得设计者能够细致地调整系统硬件以满足性能目标。专用指令逻辑和本身Nios n指令相同,能够从多达两个源寄存器取值,可选择将结果写回目标寄存器。同时,Nios n 系列支持60多个外设选项,开发者能够选择合适的外设,获得最合适的处理器、外设和接 口组合,而不必支付根本不使用的硅片功能。Nios U系列辑能够满足任何应用32位嵌入式微处理器 的需要,客户可以将第一代 Nios处理器设计 移植到某种 Nios n处理器上,Altera将长期支持现有 FPGA系列上的第一代 Nios处理 器。另外,Altera提供了一键式移植选项,可以升级至N

47、ios n系列。Nios n处理器也能够在HardCopy器件中实现,Altera还为基于 Nios n处理器的系统提供 ASIC的移植方 式。Nios n处理器具有完善的软件开发套件,包括编译器、集成开发环境IDE )、JTAG 调试器、实时操作系统RTOS )和TCP/IP协议栈。设计者能够用 Altera Quartus n开发 软件中的SOPC Builder系统开发工具很容易地创建专用的处理器系统,并能够根据系统 的需求添加Nios n处理器核的数量。使用Nios n软件开发工具 能够为Nios n系统构建软件,即一键式自动生成适用于系 统硬件的专用 C/C+运行环境。Nios n集

48、成开发环境IDE )提供了许多 软件模板,简化 了项目设置。此外,Nios n开发套件包括 两个第 三方实时操 作系 统RTOS ) MicroC/OS- n Micrium ), Nucleus Plus(ATI/Mentor )以及供网络应用使用的TCP/IP 协议栈。长期以来,Altera 一直推行 嵌入式处理器 战略的原因是,随着应用的ASIC开发日益受到成本的困扰,OEM日渐转向FPGA来构建自己的系统。这些系统中绝大多数需要一 个处理器,而 Altera正是为设计者提供了为FPGA优化的灵活的嵌入式处理器方案,可以满足16位和32位嵌入式处理器市场的需求。估计到2007年,该市场价

49、值将到达110亿美丿元。在FPGA中使用软核处理器比硬核的优势在于,硬核实现没有灵活性,通常无法使用 最新的技术。随着系统日益先进,基于标准处理器的方案会被淘汰,而基于Nios n处理器的方案是基于 HDL源码构建的,能够修改以满足新的系统需求,避免了被淘汰的命运。将 处理器实现为 HDL的IP核,开发者能够完全定制 CPU和外设,获得恰好满足需求的处理 器。嵌入式处理器特性编辑嵌入式处理器 Nios n系列为 Altera FPGA和可编程片上系统(SOPC )的集成应用专门做了优化。表1详细描述了 Nios n软核嵌入式处理器系列的特性,更多通用信息请参阅Nios n简介页面。表1. Ni

50、os n嵌入处理器系列特性特性说明编辑设计流程及工具硬件开发工具 本页面详列了搭建 Nios n处理器硬件系统所用到的开发工具。软件开发工具本页面提供了 Nios n集成开发环境IDE )的相关信息,这是一种开发 人员广泛应用的,包含编辑、编译和调试应用软件 等功能的集成开发环境。开发套件Altera及其合作伙伴提供了大量应用了Nios n系列嵌入式处理器的开发板套件。系统级设计流程 Altera的SOPC Builder工具提供了快速搭建SOPC系统的能力,这种架构可以是包含一个或几个CPU,提供存储器接口,外围设备和系统互连逻辑的复杂系统。构架及特性编辑Nios n处理器核 Nios n处

51、理器系列由三个不同的内核组成,可以灵活地控制成本和 性能,从而拥有广泛的应用空间。JTAG调试模块JTAG调试模块提供了通过远端PC主机实现Nios n处理器的在芯片控制、调试和通讯功能,这是Nios n处理器的一个极具竞争力的特性。用户指令开发人员可以在 Nios n CPU核内增加硬件,用以执行复杂运算任务,为时 序要求紧张的 软件提供加速算法。外围设备及接口 Nios n开发套件包括一套标准外围设备库,在Altera的FPGA中可以免费使用。Avalon?交换式总线Avalon交换式总线在处理器、外围设备和接口电路之间实现网络 连接,并提供高带宽数据路径、多路和实时处理能力。Aval o

52、n交换式总线可以通过调用SOPC Builder设计软件自动生成。设计资源编辑Nios n处理器支持 Nios n处理器支持页面提供了对Nios n设计者有帮助的多种信息,其中包括使用许可、下载、参考设计、文档资料、在线展示及常见问题。嵌入式处理器 方案中心 嵌入式处理器 方案中心提供了大量的信息以帮助开发人员应用Altera的嵌入式处理器实现系统设计。可获取的信息有器件支持、软件开发工具,外围设备及接口、培训、技术支持和资料。Nios续订信息Nios n开发套件包括一年期的CPU、外设和嵌入式软件开发工具的升级许可。<其中不包括 Quartus n软件的升级。)客户可以通过 Nios续

53、订程序每年订购包 括Nios n处理器的升级等额外信息。Nios n嵌入式处理器问与答页面此页提供Altera Nios n系列嵌入式处理器的常见问 题及解答。Stratix n器件及Nios n处理器系列Stratix n器件结构的优异特性和 Nios n嵌入式处 理器系列相结合,提供了无与伦比的处理能力,满足网络、通信、数据信号处理<DSP )应用、海量存储及其他高带宽系统的应用需求。处理器系列编辑Stratix FPGA结构的优异特性和Nios n嵌入式处理器相结合,提供了很高的处理能力,满足高带宽系统应用需求。Cyclone ?器件及Nios n处理器系列 在Cyclone器件中

54、应用 Nios n嵌入式处理器系 列,降低了成本,提高了灵活性,在价格敏感应用环境中给低成本分立式微处理器提供了 一个理想的替代品。核心器件:Nios n.clock (s1_clk>,为来自Avalon总线模块上的S1端口的时钟信号.aclr (s1_reset>,为来自Avalon总线模块上的 S1端口的复位信号.q (s1_readdata>,为流向Avalon总线模块的 S1端口的32位数据.address (s1_address> 为来自于 Avalon总线模块的 S1端口的地址);file:/控制寄存器读写端口 <S2 ):con trol_regis

55、ter the con trol_register<elk (s2_clk>,为来自Avalon总线模块上的S2端口的时钟信号.reset (s2_reset>,为来自Avalon总线模块上的 S2端口的复位信号.read (s2_read>,为来自Avalon总线模块上的 S2端口的读使能信号.write (s2_write>,为来自Avalon总线模块上的S2端口的写使能信号.schipselect (s2_chipselect>, 为来自Avalon总线模块上的 S2端口的片选信号.address (s2_address>, 为来自Avalon总

56、线模块上的 S2端口的地址.readdata (s_readdata>, 为流向 Avalon总线模块上的 S2端口的32位读数据.writedata (s2_writedata> 为来自Avalon总线模块上的 S2端口的32位写数据);启动方案的软件设计编辑启动方案的软件设计目标是当系统复位后,在外部处理器向Nios n程序存储器和数据存储器传输数据的过程中,Nios n处理器运行要受到外部处理器的控制。当一切就绪后,外部处理器发出一条释放Nios n处理器的命令,接下来Nios n处理器就可以正常运行了。软件部分主要就是存放在启动延迟模块中ROM的代码,此代码主要是检测启动延

57、迟模块中控制寄存器2的第0位是否为1。若为1,则跳转到 控制寄存器1中所存储的地址处执 行。若设控制寄存器的基址为CONTROL_REG_BASE,为了减少代码量,这段代码容易用Nios n的汇编指令来实现,代码部分在此从略。最后本方案在我们自己设计的一块开发板上经过测试,能够正确完成Nios n处理器的启动。结语编辑采用多处理器的系统虽然可以提高系统的性能,但传统的多处理器系统 一般只出现在工作站及高端PC上,在嵌入式系统 中因为其设计代价太高很少采用。本文设计了一种在 多处理器系统 中的Nios n软核处理器的启动方案,这个方案在外部处理器向Nios n的程序存储器和数据存储器加载数据时,

58、可以控制Nios n处理器的启动。在HardCopy n结构化ASIC中实现Nios n处理器Nios n系列嵌入式处理器具有三个处理器内核,可实现较大范围的嵌入式处理应用。这些软IP处理器内核可以工作在任何最新一代Altera FPGA以及HardCopy&reg ;系列结构化ASIC上。设计人员可以选择使用高性能内核、低成本内核或者性价比合适的内核。Nios n系列处理器可实现如下任务:做为系统处理器运行实时操作系统实现复杂的状态机编辑分担现有处理器载荷执行I/O和数据处理任务加速数字信号处理(DSP )算法在HardCopy n结构化ASIC中运行时,Nios n嵌入式处理器 出众的处理能力满足了 高性能片上系统SOC )的要求。Nios n嵌入式处理器 能够提供系统级处理器性能,实现 处理器和系统功能以及逻辑在单个器件中的集成。HardCopy n结构化ASIC和Nios n嵌入式处理器 结合使用能够满足计算、大容量存储、电信和网络应用的要

温馨提示

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

评论

0/150

提交评论