nios - 2常见问题解答 联系客服

发布时间 : 星期六 文章nios - 2常见问题解答更新完毕开始阅读c91544d726fff705cc170a38

tristate.Please add a slave of type Avalon tristate. Generate按钮为灰色,无法Generate

答:需要一个专门接三台桥的设备, 把flash添加到sopc中就可以了。

19. 在做count_binary这个例子时,出现一个错误: error: `BUTTON_PIO_IRQ' undeclared (first use in this function) BUTTON_PIO_IRQ的值如何给他定义? 答:这个错误可能是在sopc builder中定制的pio端口名称是否与程序中用的不一致,要和程序里的一致,把pio组件的名称就改为button_pio,如下图: 如果已经这样设置,还有可能是没有设置中断号,具体应该这样设置:

20.在Quartus II中编译时出现如下错误:

Error: Node instance \\点击错误的地方弹出一个对话框 这个错误是怎么回事?怎样解决?

答:可能是在SOPC中所选的CPU型号不正确,换一个试试。

21.怎样自动分配管脚?

答:在Quartus II自动分配管脚有一个方法,点击Assignments->Import Assginments,导入一个管脚分配文件,后缀为.csv .txt等,前提是在顶层原理图中各个输入输出的名称要和这个文件中的名称一致。

22.在NIOS II中编译时出现如下错误怎么解决?错误是不是由SOPC中的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 ram

Unable to reach edge_capture (at 0x00800024) from the global pointer (at 0x0081419c) because the offset (-82296) is out of the allowed range, -32678 to 32767.

答:可能时RAM的大小不够,也有可能是中断地址(exception address) 的偏余量不够,设置大些就可以了。如果还是出现这个问题,加一个SDRAM试试。

23.在Quartus II中,为什么编译一些样板工程都会出错?

Error: DDR timing cannot be verified until project has been successfully

compiled.

Error: Evaluation of Tcl script auto_verify_ddr_timing.tcl unsuccessful Error: 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 the 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\这里的目录是初始的目录,把它改为正确的目录。

24.在NIOS II IDE编译时出现如下错误是怎么回事?

system_description/alt_sys_init.c:75: error: `ONCHIP_MEMORY_BASE' undeclared here (not in a function)

system_description/alt_sys_init.c:75: error: initializer element is not constant

system_description/alt_sys_init.c:75: error: (near initialization for `ext_flash.dev.write')

system_description/alt_sys_init.c:75: error: initializer element is not constant

system_description/alt_sys_init.c:75: error: (near initialization for `ext_flash.dev.read')

答:ONCHIP_MEMORY_BASE没有赋值,在alt_sys_init.c 程序的开头加上#define ONCHIP_MEMORY_BASE 0x00000000后面的这个地址要与SOPC中的对应。

25. 在NIOS II IDE编译时出现如下错误是怎么回事? Pausing target processor: not responding. Resetting and trying again: FAILED Leaving target processor paused 答:以下是一位FAE的回答:

1. 关于USB-Blaster在Nios II IDE下载时会发生偶发性错误,这种现象主要是IDE software与Nios II CPU透过USB-Blaster在做通讯时发生错误,若是确认FPG上配置没有错误,连续发生错误的机率应该是相当的低,您只需要重新下载即可。

2. 若您使用Nios II IDE 6.0,请尽量配合SOPC Builder 6.0重新build您的system,并且使用Quartus II 6.0重新compile您的project,以减少CPU与IDE software不兼容的情形。

26.在NIOS II IDE中工程的System Library选项中的这几个选项代表什么意思?.text .rodata .rwdata 与reset .exception这几个地址之间的关系是什么? 答:.text : 代码区 .rodata:只读数据区,一般存放静态全局变量 .rwdata:可读写变量数据区另外还有.bss:存放未被初始化的变量。 .text — the actual executable code

.rodata — any read only data used in the execution of the code .rwdata — where read/write variables and pointers are stored heap — where dynamically allocated memory is located

stack — where function call parameters and other temporary data is stored

27.怎样让SDRAM和FLASH,SRAM的地址公用?

答: sdram可以和sram,flash共用数据总线和地址总线.在sopc builder中添加SDRAM控制器时,在其share pins via tristate选择项上勾上Controller shares dq/dqm/addr IO pins选项,这样sdram可以和sram,flash共用数据总线和地址总线.但是ATERA不推荐这样做,因为这样会降低SDRAM控制器的性能,在FPGA芯片管脚资源比较紧张的时候迫不得已才这样做。

28.怎样使用DE2板上的数码管,绑定管脚时需要注意什么?请举一个例子说明。

答: DE2板上的数码管只用了7位,小数点位默认为高电平。例如,在做例程count_binary时,需要用到两个数码管,以实现00到FF的计数,在 SOPC添加一个16位的PIO SEVEN_SEG[15..0],绑定管脚时注意:使SEVEN_SEG[0..6]帮定到数码管HEX0[6..0]位,SEVEN_SEG[8.. 14]绑定到数码管HEX1[6..0]位,SEVEN_SEG[7]和SEVEN_SEG[15]直接接VCC,这样才能让两个数码管正常显示并计数。

29. 在NIOS II IDE 中调试,编译通过的软件时,出现了下面的提示,是什么原因? Using cable \Processor is already paused Downloading 00000000 ( 0%)

Downloaded 57KB in 1.2s (47.5KB/s) Verifying 00000000 ( 0%) Verify failed

Leaving target processor paused

答: Verify failed这个问题说明板子的复位电路可能有问题,或装载程序的外部SRAM或SDRAM和CPU 的连接或时序有问题,也有可能是软件偶尔的错误。若是软件偶尔的错误,可以先复位一下CPU,然后再下载程序;或者断电后重新下载.sof和NIOS II 程序

30.在练习C:\\altera\\kits\\nios2_51\\examples\\verilog\\

niosII_cycloneII_2c35的工程时,里面有很多元件DE2板上都没有对应的管脚,比如网络元件lan91c111,使用的IP核,还有 24位的ext_flash,而DE2板上的FLASH只有22位。是不是SOPC中只能让DE2板上有对应管脚的元件存在,其它的只能删除? 答:这个目录下的example是针对altera自己的板子的,和DE2硬件不能对应,只能作为参考,或者做一些修改后用。

31.在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

答:SOPC中的onchip_memory和M4K RAM根本就不是一个概念。Quartus II中编译出现这个错误,是由于设计中用到了太多的M4K。

32. 关于sopc-builder 中reset address 的设置,一直搞得不是很明白。

答:SOPC中的reset address 指定的是最终全部软件程序代码下载到的地方,并且程序从reset address 启动。

SOPC 中的exception address 指定的是系统异常处理代码存放的地方。如果exception address 和reset address 不一样,那么程序从reset address 启动后将把放在reset 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 启动后将把放在reset address 处的只读数据拷贝到rodata address 。

NIOS II软件中的rwdata address指定的是可读写数据的存放地方。如果rwdata address和reset address 不一样,那么程序从reset address 启动后将初始化rwdata address 处的可读写数据。

33. 如何提高NIOS II系统的性能? 答:主要可以从这几个方面入手: 1、使用fast CPU类型。 2、提高系统主频。

3、优先在SRAM中运行程序,SDRAM次之,最后选择FLASH中运行。 4、使用片内RAM作为数据缓冲,片外SRAM次之,最后选SDRAM。