|
这些天一直在尝试Xilinx方面的SOPC设计。ISE用起来不是特别困难,时序仿真,功能实现都能够拿下。但是在用EDK的时候,出现了一些问题。+ T$ G& P F2 f( W/ I( L
8 q* M& Y3 y# i! H1 ?) M
在XPS6.1i上面,可以实现一个简单的跑马灯程序,能够在XPS开发环境中对.bit文件进行download,结果也完全符合我的要求。但是低版本的毕竟有很多弊端,就连地址分配也要我手动来做。利用ChipScope Pro 6.1来调试程序的时候,又不知道从何下手,关于这个版本的的文档我还没有找到合适的,也可能是我理解能力有限。于是我换做XPS8.1i来做,却连.bit文件都无法下载成功,出现如下提示信息:! S7 h; a+ `4 X
1 j V" U+ i; v% R* E! f; i! n// *** BATCH CMD : program -p 1 1 h6 G7 l1 |+ s
ERROR:iMPACT:583 - '1': The idcode read from the device does not match the3 u, V+ ?8 b. [; u5 a
idcode in the bsdl File.: H& O* G; P+ x' @6 O+ D
INFO:iMPACT:1578 - '1': Device IDCODE : 00000000000000000000000000000000" V y% \, S: F" M `# u1 y$ |
INFO:iMPACT:1579 - '1': Expected IDCODE: 000000010100000111000000100100112 V- g8 W* F) |! M5 F. t$ C; K
Elapsed time = 0 sec.
% { [# V6 H2 c2 c( N// *** BATCH CMD : quit) _ N/ `( `- c
$ a- F4 o i8 t# i% J于是,我决定尝试在ISE8.1i中将生成好的.bit文件进行download。结果还真成功了,提示如下:
" ~. R+ l4 t3 l7 y& W8 U3 o0 `2 d( w. {& q7 @
Command: Program -p 1 -defaultVersion 0 & V, H$ w0 |$ ~$ ~' b
// *** BATCH CMD : Program -p 2 -defaultVersion 0 7 g3 O' {7 |. {3 H9 k! S
PROGRESS_START - Starting Operation.
/ A1 L* z$ _/ e' y+ WChain TCK freq = 0.
" p8 D# K0 e1 O6 Y2 XValidating chain...- S& T! U( H7 {& Q# u2 M
Boundary-scan chain validated successfully., ~0 `1 f3 j5 f
'2'rogramming device...: r+ f1 s# h* Z. B0 |& I) J/ c
done.
L: ~" q) L3 M0 o9 a6 ~- H'2': Reading status register contents...
1 _6 e2 d. v: C[
3 j6 A5 F) Q6 n, o 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 1 1
+ b! @+ f, p7 I) P9 \( r D( Z, O 1 1 0 1 1 0 0 , ^5 l9 `) k- m& G; t
]. Y9 H. d# i5 |+ `
[4 v* f+ z+ H+ S3 j0 C& f9 z
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 1 1
* g1 j5 v: q( v G* v1 F 1 1 0 1 1 0 0
- T4 @$ j' G9 O6 I8 }]: b- Y3 m* W$ z/ W! Z" N. i
CRC error : 0/ l/ ]) z& z. D4 E& ^
RESERVED : 0
* `5 }8 R* ?& ?! ~7 i t- MDCM locked : 1
1 A- p% F1 Z3 T0 ADCI Matched : 1- e C6 O* c7 Z1 Q
legacy input error : 09 @6 E. v) u! B! w3 q3 L3 |
status of GTS_CFG_B : 1, c6 R, l8 {! \; C( Q4 H' f
status of GWE : 1
& r/ S* y. s& u5 J6 {5 Wstatus of GHIGH : 1
1 N: V+ K7 l& p7 G2 fvalue of MODE pin M0 : 14 V9 @5 P) _6 T2 F- O5 M( V7 ]# b
value of MODE pin M1 : 0
' o0 P. E+ t4 G+ G5 i* q: cvalue of MODE pin M2 : 1
0 K v4 M7 J' W! m! r- Evalue of CFG_RDY (INIT_B) : 1
, f8 X. n( f& A9 Q( |9 s" J. `DONEIN input from DONE pin : 1
1 d( s$ V. T) N. K" q" CID_ERROR : 0
! R- p5 [ M2 F" hRESERVED : 03 q4 \: G8 Z! Q. D* e3 ^! J
RESERVED : 0
; g0 ?- y& A+ s# w0 F6 uINFO:iMPACT:2219 - Status register values:, d& D1 u$ N4 X1 A8 \
INFO:iMPACT - 0011 0111 1011 1000 0000 0000 0000 0000 1 }6 u# Y. ]4 t" I. f
INFO:iMPACT:579 - '2': Completed downloading bit file to device.5 @4 s0 Y: x; o$ O8 l
INFO:iMPACT:580 - '2':Checking done pin ....done.6 |0 ~) ^" n0 Q+ ?* `
'2': Programmed successfully.# e9 i* B! P1 `8 |/ O4 n+ Q' k+ a
PROGRESS_END - End Operation.
4 M8 m+ r# P& VElapsed time = 21 sec.2 I2 e4 S& R! o, |
7 X/ O2 x8 k2 _" h! s. b, ]
但是程序仍然没有跑起来。! W% {1 R: j* }) k4 H; A
3 ^, G. o. @$ I6 p+ u8 z; m不知道哪个环节出了问题……
7 A5 E- f2 c" g0 K- u8 m( W- r o$ [
6 q$ ?' f& q! O3 u
. h/ u; L2 {. d0 A2 Y5 i t( u q$ H& X J+ }' j
下载了第三方板级定义文件avnet_xbd_files,在利用BSB建立target board的时候,将use repositiry paths指定到avnet_xbd_files解压所在目录C:\Avnet_Repository,然后在Board Vendor 中选择 Memec,在Board name中选择适合我的开发板的器件Spartan-3 3S400,在Board revision 中选择2。接下来的任务就是裁剪掉我的板子上没有的外围接口模块。然后就轻车熟路了……。 MemoryTest通过,然后又加了个跑马灯的测试,也通过。- ]- o; c0 ~, H
1 H( W( i( C1 v5 G0 t
但是,还没有弄明白的是,为什么我建立Custom Board却怎么也不好使,肯能是那些细节还没有注意到。继续看文档。
% w ]4 v% E( M" z/ M8 R; j( I4 b1 p+ A) l2 o# v. s8 D- x0 ?
另外发现,在调试软件程序的时候,各个IP Core的DataSheet很有用! g; m; I6 `% {* D! W3 S
n* @( X8 L) w& s1 j! ~! e
9 m1 D+ w0 G9 b3 c1 R- ]' [
) _0 ? Z( x9 g" Q$ g既然是自己建立Custom Board不好使,那么我就直接修改模板文件.xbd。嘿嘿……定制完全属于自己个板级设备。调试通过!!/ j0 a) q: X, U) Z. B$ p" b, P5 C, a, M
这么一来,以后的IP Core的增减过程就变得很复杂了,应该还有更好的办法!
7 B! O% @, N+ `/ V# X5 n" w2 E. E1 J% n' L
: X4 z: I! ?) ^4 `+ O/ a+ g. A' y# u
以上是我调试的时候出现的问题,以及我自己的解决办法,肯定高手指点!! |
|