代码改变世界

Nios II(一)

2015-10-19 21:42  乔伊  阅读(1005)  评论(0)    收藏  举报

Using cable "USB-Blaster [USB-0]", device 1, instance 0x00

Pausing target processor: not responding.
Resetting and trying again: FAILED
Leaving target processor paused

网上总结三点原因致使这个问题的发生:
1、复位键的管脚没有对应好,导致报错;
2、给sdram的clk,与cpu的clk没有滞后-75的相位;
3、如果用锁相环输出clk的话不要直接飞线到锁相环的输入端口,不然也会报错。
这种通信错误的情况基本上是由于PIN定义错误或者是复位错误。
 
我总结这主要看两方面:reset和clk:
(一)reset管脚绑定是否正确,以及芯片型号是否正确。
(二)clk对应的时钟频率是否正确,比较移植过来的是20M,倍频ration:5,相位滞后-75。实际用的是50M,倍频ration:2,相位滞后-73。
网上有说芯片修正版本为第4版,速度是7.5ns(PC133 CL=3)。50M时PLL偏移是-40。低速条件下不偏移也可以。
 
 
其次,Nios II在Win中开发有几个文件要设置兼容模式,不用的引脚要设置为三态也是经常引起错误的小原因。
 

Using cable "USB-Blaster [USB-0]", device 1, instance 0x00
Pausing target processor: OK
Reading System ID at address 0x00001800: verified
Initializing CPU cache (if present)
OK

Downloading 01000020 ( 0%)
Downloaded 57KB in 1.3s (43.8KB/s)

Verifying 01000020 ( 0%)
Verify failed between address 0x1000020 and 0x100E0CB
Leaving target processor paused

 

结果SOPC里面的器件型号没改过来,改完一些之后还是有版本不匹配的问题。

Pausing target processor: OK
Reading System ID at address 0x00001800:
ID value verified
Timestamp value does not match: image on board is older than expected
Read timestamp 13:51:51 2015/10/19; expected 20:23:41 2015/10/19
The software you are downloading may not run on the system which is currently
configured into the device. Please download the correct SOF or recompile.
Restarting target processor

本来我认为默认的Timestamp是1445258994,实际上要改为1445258956

其实:1445258994(13:51:51 2015/10/19),实际上要改为1445258956(23:44:34 2012/03/27)

 

 

Using cable "USB-Blaster [USB-0]", device 1, instance 0x00
Pausing target processor: OK
Reading System ID at address 0x00001800: verified
Initializing CPU cache (if present)
OK

Downloading 04000020 ( 0%)
Downloaded 57KB in 1.3s (43.8KB/s)

Verifying 04000020 ( 0%)
Verify failed between address 0x4000020 and 0x400E0CB
Leaving target processor paused

 网上说这是由于相移的原因。这个地址是属于sdaram的,重新编辑sdaram参数没有异常,判断那应该是osh.tcl文件分配地址有问题,打开osh.tcl发现分配地址没有重复问题。

网上解决方案:http://www.amobbs.com/thread-5476091-1-1.html

果然,由于osh.tcl中是S_NCAS,而工程中是S_nCAS,管脚没有绑定。然而这个问题并没有排除。

然后又搜了一些解决办法:

1,检查cpu地址是否设置的正确;

2,检查你的SDRAM(或SRAM)数据口确实用的是双向,而不是OUTPUT;(重要)

3,pll的相位差是否设置正确,一般会设在-45度---(-60度)。

http://blog.sina.com.cn/s/blog_875c3b2f010104x7.html

想起当初修改内核的时候一直是未更新。

 

 

 

Timestamp value does not match: image on board is older than expected
Read timestamp 23:44:34 2012/03/27; expected 21:30:36 2012/04/06

关于这个问题的解决办法:http://www.cnblogs.com/oomusou/archive/2008/10/19/nios_timestamp_not_match.html

Using cable "USB-Blaster [USB-0]", device 1, instance 0x00
Pausing target processor: OK
Reading System ID at address 0x00001800:
ID value verified
Timestamp value does not match: image on board is older than expected
Read timestamp 23:44:34 2012/03/27; expected 21:30:36 2012/04/06

The software you are downloading may not run on the system which is currently
configured into the device. Please download the correct SOF or recompile.
Restarting target processor

这是由于我直接在IDE下建工程烧进去造成的,重新再Quartus中编译一下,下载,然后Run As就成功了,出现以下代码:

nios2-terminal: connected to hardware target using JTAG UART on cable
nios2-terminal: "USB-Blaster [USB-0]", device 1, instance 0
nios2-terminal: (Use the IDE stop button or Ctrl-C to terminate)

Hello from Nios II!

这时候查阅到的Timestamp是1445308947。

总结:Timestamp时间戳不匹配,去Quartus II中重新编译一遍下载。