|
这些天一直在尝试Xilinx方面的SOPC设计。ISE用起来不是特别困难,时序仿真,功能实现都能够拿下。但是在用EDK的时候,出现了一些问题。: } W- B+ N8 n$ M; V+ M# C
9 d5 v! N0 A) K# b# L y8 i
在XPS6.1i上面,可以实现一个简单的跑马灯程序,能够在XPS开发环境中对.bit文件进行download,结果也完全符合我的要求。但是低版本的毕竟有很多弊端,就连地址分配也要我手动来做。利用ChipScope Pro 6.1来调试程序的时候,又不知道从何下手,关于这个版本的的文档我还没有找到合适的,也可能是我理解能力有限。于是我换做XPS8.1i来做,却连.bit文件都无法下载成功,出现如下提示信息:
2 b. j, |- K; h1 B: n- X1 r
! W' I. H9 r: J9 ^8 h2 e# }, L( t// *** BATCH CMD : program -p 1 % r' W8 F2 Z4 D- s
ERROR:iMPACT:583 - '1': The idcode read from the device does not match the
) A2 Q3 E8 }( I) w idcode in the bsdl File.- A' h% `4 U b, n; u& _5 N5 n
INFO:iMPACT:1578 - '1': Device IDCODE : 00000000000000000000000000000000, d9 g1 [# x# g
INFO:iMPACT:1579 - '1': Expected IDCODE: 00000001010000011100000010010011
8 b, F% B9 G/ g: B' M( KElapsed time = 0 sec.
9 G1 k0 t1 f# b. n! x& a// *** BATCH CMD : quit
7 q/ N3 H5 |, |( ?1 R( u& G) \
' g& B9 p- Q/ @7 y. S于是,我决定尝试在ISE8.1i中将生成好的.bit文件进行download。结果还真成功了,提示如下:
, U y3 P) w/ x+ Z2 S ]+ v+ O, t) g% {4 r3 K0 S j' @
Command: Program -p 1 -defaultVersion 0
7 ^# B. w; }6 W* U* E) T5 G// *** BATCH CMD : Program -p 2 -defaultVersion 0 - s: N% e3 h) X \- p# k
PROGRESS_START - Starting Operation.
" o/ w( ^9 s4 ?( z2 }Chain TCK freq = 0.- `5 m) M4 q1 A8 t! g7 [1 S0 ?1 |
Validating chain...0 |" m% O- B: Y9 K$ }1 ?
Boundary-scan chain validated successfully.* g$ Q$ K1 }: z$ }! e
'2' rogramming device...7 r" a; e; N" [# l% G
done.
4 u2 x/ w' A: v* |- J$ k! V'2': Reading status register contents..." c7 `, ]. S0 B9 h: n/ o( H* n5 g
[
( |+ _ d8 C6 P7 h 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
; R: P* Q* ? p; W Q( d 1 1 0 1 1 0 0
. S3 c. o2 e, w3 Z3 B]
6 R' m0 S7 H3 p, W7 q* U* W[7 D) H7 m, S0 X$ G, P& J* y; Q
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
; M5 f# M3 y) W6 A 1 1 0 1 1 0 0
" @8 q/ V' G) }4 j$ N; p]- o) N* V$ B6 E9 J. e9 j# {
CRC error : 0# F# @: ~* O8 D: o ~
RESERVED : 0/ M5 { y7 u- F" Q
DCM locked : 1
+ |) n; b* b9 }! { I$ i5 _DCI Matched : 1% w6 i9 P1 G6 r& Z
legacy input error : 0
b0 s( g P, c- G" kstatus of GTS_CFG_B : 1
2 U, p6 S: r L4 ]status of GWE : 1 u5 s- [, S! b9 `4 Z3 c/ s" v- J
status of GHIGH : 1
+ i1 \" ^6 u3 A& H4 M6 Gvalue of MODE pin M0 : 1" W0 s. _* S; A( |" n5 k% @
value of MODE pin M1 : 0+ |! o2 Z* a. V, O' n- f- y' ?- \+ s
value of MODE pin M2 : 1& s) X6 b2 }) P6 R# ]) h) I8 }
value of CFG_RDY (INIT_B) : 1 w7 J* F" m% _( R( i# i# @
DONEIN input from DONE pin : 13 b% O9 v: N3 a8 K1 x @; H
ID_ERROR : 0# Z7 n. s& G8 U$ Y& b; S
RESERVED : 0
, Z" t( s4 r& jRESERVED : 0" B' H) I0 d2 y& Z7 B
INFO:iMPACT:2219 - Status register values:
9 A3 c3 j* \: E4 {$ O( s+ bINFO:iMPACT - 0011 0111 1011 1000 0000 0000 0000 0000
6 b' j9 L' _; S. Z2 FINFO:iMPACT:579 - '2': Completed downloading bit file to device.
9 Y$ Y' J+ P7 ^8 c; K% XINFO:iMPACT:580 - '2':Checking done pin ....done.
5 q, A3 A6 n# W'2': Programmed successfully.
6 |' Y, @- f; Z+ J$ V& N6 fPROGRESS_END - End Operation.! G* [ a/ m% \: G8 n# w2 P0 y
Elapsed time = 21 sec.
5 M; B: u& c$ N3 t
$ [5 e& b) X- W- G+ ?但是程序仍然没有跑起来。0 W% k7 W% W* g. {, S* {1 i/ }3 q
4 ~4 B; P: L4 T4 C0 E/ A p不知道哪个环节出了问题…… H1 d4 H1 K( C: [, d- L( V9 D
9 U- G: q) |, Q/ K
X$ O; F# |# K. C: D/ W7 q+ ?9 b! j: z! h
下载了第三方板级定义文件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通过,然后又加了个跑马灯的测试,也通过。5 [5 q! k/ q$ e/ L5 Q: _: o. B4 Z
0 v3 o* z( i, y
但是,还没有弄明白的是,为什么我建立Custom Board却怎么也不好使,肯能是那些细节还没有注意到。继续看文档。4 Q4 J# Z" n% }2 H% t' l
8 o6 x# X) L7 u& l2 s) V$ X另外发现,在调试软件程序的时候,各个IP Core的DataSheet很有用!
e; x8 [, o! I L" }" L
& H% J8 C) A$ n, Z( X$ u a" P6 l" u( T+ X
* E/ b6 E6 V6 Y q: U
既然是自己建立Custom Board不好使,那么我就直接修改模板文件.xbd。嘿嘿……定制完全属于自己个板级设备。调试通过!!, n- u8 ` v6 `* T
这么一来,以后的IP Core的增减过程就变得很复杂了,应该还有更好的办法!3 O7 Z, x1 P6 q* S/ h1 e
% ]* @. E' [+ A' ^4 b- f. v% ?1 X4 m
以上是我调试的时候出现的问题,以及我自己的解决办法,肯定高手指点!! |
|