|
这些天一直在尝试Xilinx方面的SOPC设计。ISE用起来不是特别困难,时序仿真,功能实现都能够拿下。但是在用EDK的时候,出现了一些问题。% v9 {/ f0 x- C/ A8 v; ~3 D" [& t
, V. d- v; G- _) z% K! ^ {- S在XPS6.1i上面,可以实现一个简单的跑马灯程序,能够在XPS开发环境中对.bit文件进行download,结果也完全符合我的要求。但是低版本的毕竟有很多弊端,就连地址分配也要我手动来做。利用ChipScope Pro 6.1来调试程序的时候,又不知道从何下手,关于这个版本的的文档我还没有找到合适的,也可能是我理解能力有限。于是我换做XPS8.1i来做,却连.bit文件都无法下载成功,出现如下提示信息:
6 E/ H" \* p* S' B) v- Z8 I3 u. H( \ V3 l! X1 ^+ s! d1 S
// *** BATCH CMD : program -p 1
6 f, n0 i+ u$ E8 `- hERROR:iMPACT:583 - '1': The idcode read from the device does not match the; ^6 Y* o1 ]) d$ R k
idcode in the bsdl File.. ], |0 E4 J% G2 P" ~
INFO:iMPACT:1578 - '1': Device IDCODE : 00000000000000000000000000000000- r/ U1 s2 j. J8 U- l* Y/ ^8 J
INFO:iMPACT:1579 - '1': Expected IDCODE: 00000001010000011100000010010011& K/ W1 m# T( r4 r& L/ ]
Elapsed time = 0 sec.
- ^9 G8 R5 K" g, h" E" h6 n: ~7 B# m// *** BATCH CMD : quit
6 E" }8 W5 I% K" L6 n$ Y2 ?6 O; ]
. H/ v/ a4 k; H/ X* d+ {) L于是,我决定尝试在ISE8.1i中将生成好的.bit文件进行download。结果还真成功了,提示如下:
- r% Z. ~5 @: g" s2 Z/ P8 C* D8 |; c- L. n0 ^% E5 M L- X
Command: Program -p 1 -defaultVersion 0 7 I6 b {1 V7 q) n' W8 G2 G
// *** BATCH CMD : Program -p 2 -defaultVersion 0
* m1 J; j7 ^, e% Q9 p5 B3 ^& p6 EPROGRESS_START - Starting Operation.
& `1 x, X3 G! w/ b9 e5 H( m5 |: y7 _Chain TCK freq = 0.* ~$ x: b* c# E: s+ D' W5 A; ^1 d
Validating chain...' s$ i, K; g+ Z/ q9 C4 m
Boundary-scan chain validated successfully.
7 S& X% b9 }$ d1 [( I$ G) S+ F. Y'2'rogramming device..., j) x5 D w# u1 l. T
done.7 m. s# W& H9 q- n0 b4 ?5 p) J
'2': Reading status register contents...+ ~* e/ d- Q* i! Z( K! y) B
[+ A- r% c% q( e) \4 O5 y8 Q6 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
' [- U% k0 O. W5 {, B 1 1 0 1 1 0 0 ' Z: N+ |" S$ H( ]
]
% U6 A6 E8 B* W7 {( U) J[
6 v+ q5 H9 X$ g: c9 f1 K0 D 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
X( @: q2 }3 K/ D' R3 {7 Q; ^; i 1 1 0 1 1 0 0
8 z- ^- Y# `0 c p* p2 d/ r]
4 G& F0 w0 S! T4 q, }6 mCRC error : 02 Y, N: g: m2 T* ]$ q
RESERVED : 0
) Z4 K p+ Z9 gDCM locked : 1% C5 ^8 }( f( d& _' [( O
DCI Matched : 1/ L+ x6 s" F0 `
legacy input error : 05 { ?" y# z( i9 b- c# m
status of GTS_CFG_B : 1+ C. M# a% c: Y9 M" I
status of GWE : 1
& r7 ^( A2 \) V, dstatus of GHIGH : 19 D, V/ b( B: [( H. p2 {9 w
value of MODE pin M0 : 1
/ s5 a& I9 ^' H2 D# N0 Yvalue of MODE pin M1 : 0
: N% w0 {; `; @4 o7 zvalue of MODE pin M2 : 1
! m# ?/ X: q5 Jvalue of CFG_RDY (INIT_B) : 1' Y5 J* D, D; @4 |7 ?) ?
DONEIN input from DONE pin : 1
& n! E5 ^$ R: `ID_ERROR : 04 `! z" D6 c6 ?, A
RESERVED : 0
5 R# n9 N c$ }RESERVED : 0
. `- X% `! [. F, U$ w2 ~* XINFO:iMPACT:2219 - Status register values:
' X! ]3 q7 m" b8 MINFO:iMPACT - 0011 0111 1011 1000 0000 0000 0000 0000 4 G( e e" L8 ~4 P
INFO:iMPACT:579 - '2': Completed downloading bit file to device." [& d2 B( f/ x# s3 h4 f9 z/ l
INFO:iMPACT:580 - '2':Checking done pin ....done.' }0 n; r4 `, @) ?5 C8 C; i6 W
'2': Programmed successfully.3 T ~! X4 h& S
PROGRESS_END - End Operation.
; B$ S6 Q9 w1 |& L# i9 h& x% r$ BElapsed time = 21 sec.
) ?! |3 b" q, W0 G# f* g' |. ^: s4 i1 K0 P
但是程序仍然没有跑起来。) S8 z0 \* i5 W2 a1 ]6 `$ s- `4 o
. G! M# Q4 p C: h5 l
不知道哪个环节出了问题……: M8 @# r$ _' ?. N7 g
" H$ \6 X$ w. q6 U. |, [! O& C; y S$ u* K( j$ v7 N' g
# a& d$ j6 J( r6 Y+ y3 a4 Z
下载了第三方板级定义文件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通过,然后又加了个跑马灯的测试,也通过。0 `0 Y" n$ @2 V f7 F
4 C# R6 [- O! q% J& K% r3 b+ K但是,还没有弄明白的是,为什么我建立Custom Board却怎么也不好使,肯能是那些细节还没有注意到。继续看文档。
/ p3 [" E( l8 @6 |- F U6 w- i& i, a7 H* }
另外发现,在调试软件程序的时候,各个IP Core的DataSheet很有用!9 r3 v* H+ u# c8 L% D: {2 \( g0 B
A) s' `7 v9 C' D& }/ |
$ K% _2 o# f- ?& q
0 Y5 c8 Y2 |0 w# U& v4 U既然是自己建立Custom Board不好使,那么我就直接修改模板文件.xbd。嘿嘿……定制完全属于自己个板级设备。调试通过!!
* p% Y' I8 v8 K0 F9 M这么一来,以后的IP Core的增减过程就变得很复杂了,应该还有更好的办法!# ]6 X7 W: ~7 w2 f$ l
! H4 [! N2 R4 s/ ~( h* M, L+ w+ i1 i
以上是我调试的时候出现的问题,以及我自己的解决办法,肯定高手指点!! |
|