|
这些天一直在尝试Xilinx方面的SOPC设计。ISE用起来不是特别困难,时序仿真,功能实现都能够拿下。但是在用EDK的时候,出现了一些问题。' n; q1 {; u" o0 S6 j c0 Y
5 T: m+ k( V2 v/ t1 z8 C. d9 k
在XPS6.1i上面,可以实现一个简单的跑马灯程序,能够在XPS开发环境中对.bit文件进行download,结果也完全符合我的要求。但是低版本的毕竟有很多弊端,就连地址分配也要我手动来做。利用ChipScope Pro 6.1来调试程序的时候,又不知道从何下手,关于这个版本的的文档我还没有找到合适的,也可能是我理解能力有限。于是我换做XPS8.1i来做,却连.bit文件都无法下载成功,出现如下提示信息:
$ K% |. g) d5 @( I
' y y9 S3 @9 Q J$ y. p6 J// *** BATCH CMD : program -p 1 4 p/ O5 c/ ^. _$ y
ERROR:iMPACT:583 - '1': The idcode read from the device does not match the
+ A8 s4 |( G& f! A+ b8 } idcode in the bsdl File.
# J! S8 ~6 q# Q' sINFO:iMPACT:1578 - '1': Device IDCODE : 000000000000000000000000000000008 Z2 b- V) M/ ^4 b/ z1 ?0 }
INFO:iMPACT:1579 - '1': Expected IDCODE: 00000001010000011100000010010011
; \9 Q5 `4 Y: b& X% }1 mElapsed time = 0 sec.% n) X2 v7 Z" X% Z# X! z
// *** BATCH CMD : quit
% `, k1 t' h& o/ j9 U
# b) N/ _6 i' f; z+ m5 M于是,我决定尝试在ISE8.1i中将生成好的.bit文件进行download。结果还真成功了,提示如下:* {8 F9 h. K& H
. ]4 A8 R4 D) M. S% E7 o
Command: Program -p 1 -defaultVersion 0
! h1 n- ?# Y! F3 P% b// *** BATCH CMD : Program -p 2 -defaultVersion 0
/ C/ |: S. K, {- o5 C5 C2 O: DPROGRESS_START - Starting Operation.
+ s& N8 r$ u2 q+ LChain TCK freq = 0.) s' C9 n' t! ]$ v# ]
Validating chain...
- E9 Y$ |" Z$ C- f: T4 v$ {Boundary-scan chain validated successfully.' o+ B) K7 x) L2 x+ d
'2'rogramming device...+ n+ X Q+ B& Q, \# p1 F# t
done. V0 H" l: n/ G. ` M# x
'2': Reading status register contents...( w! L* ^) \0 |" P; N3 {' ^$ `
[
& ]! O: G/ M( e: l( Q, 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
: t# I& b' c X2 G 1 1 0 1 1 0 0 ' w* `( p$ _5 k( b, O$ i. y- T
]' g3 [1 n7 L+ B- Q! n$ }4 ~
[
# M% i" ]2 \! e# x6 k7 Y) N 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
\4 G' o* y& t- l 1 1 0 1 1 0 0 * e' K( n) [* z+ v) s- ^. N0 Z
]6 X- L, P3 R: I) }, h% M% Y
CRC error : 0
8 B7 V% n5 \! L! a2 ~* z, T7 K& ]RESERVED : 0
6 d) m# ~3 m' u8 PDCM locked : 13 B' j) [# g5 }5 y3 _$ y' `
DCI Matched : 1
/ t+ [. w k- k4 O( Rlegacy input error : 0
- x0 `+ V! s, j' P) W* ~status of GTS_CFG_B : 1
) T! c- V8 z4 N% L% ustatus of GWE : 1
6 g0 {: f2 H1 v" c; i4 `; a2 ustatus of GHIGH : 1/ p0 {6 P. ? O9 [
value of MODE pin M0 : 1
3 s$ K4 j3 }9 K% wvalue of MODE pin M1 : 00 z2 H9 m$ M- B# e- p4 e/ c5 R
value of MODE pin M2 : 1
" E2 B4 T+ b9 d. Dvalue of CFG_RDY (INIT_B) : 1+ B0 y6 r+ b' ~% z# A
DONEIN input from DONE pin : 1
( F! m4 F( g; M; H4 X2 |ID_ERROR : 0
, w% ^2 i c$ V: t2 Q: SRESERVED : 05 N5 S) U) \) M2 F1 }' c
RESERVED : 0
9 G2 q; K2 k) f/ KINFO:iMPACT:2219 - Status register values:* r6 u4 U1 c3 w% o6 f, i& Y# g0 G3 h
INFO:iMPACT - 0011 0111 1011 1000 0000 0000 0000 0000
) a" F7 k0 {1 ]INFO:iMPACT:579 - '2': Completed downloading bit file to device.
7 J. H2 T% i/ V# xINFO:iMPACT:580 - '2':Checking done pin ....done.
3 J( e9 |( I6 I2 A'2': Programmed successfully.3 g% m# G9 v" _7 t: J" I) l
PROGRESS_END - End Operation., r6 d. z; t+ T1 f; g4 V# s6 s
Elapsed time = 21 sec.5 g; ]) Y. Y, Y7 C7 w7 U4 n
7 \9 K: a8 [% Q0 n M/ f( D但是程序仍然没有跑起来。
( z9 c, o' A0 k; E9 P2 W8 I6 S& ~6 f
不知道哪个环节出了问题……6 ?+ `% u% q: p/ `0 ^% `, q
, R% g; c$ `, l; [9 z5 x5 p/ m
+ c4 l9 c# _( o6 ]4 E
; B3 Z* k6 L" s9 R1 P3 b& n; D( @$ P下载了第三方板级定义文件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通过,然后又加了个跑马灯的测试,也通过。; U" \6 v; \6 Y H
! r ~( R- b& ]但是,还没有弄明白的是,为什么我建立Custom Board却怎么也不好使,肯能是那些细节还没有注意到。继续看文档。
& E, `- |5 K' g
: [( J# @9 Z5 m1 o9 L6 k$ J另外发现,在调试软件程序的时候,各个IP Core的DataSheet很有用!; [5 n: v" \0 ?7 I3 k' y$ y# f4 P
# h" A% w- d5 Q1 U0 ]( C
3 T' ~ T! p% e: D; X- `, G7 ?& M( L$ y( F
既然是自己建立Custom Board不好使,那么我就直接修改模板文件.xbd。嘿嘿……定制完全属于自己个板级设备。调试通过!!
I4 S: Y g3 W1 S% I2 n* r这么一来,以后的IP Core的增减过程就变得很复杂了,应该还有更好的办法!
, F5 w3 F& E/ ~5 ^" i
; C3 A; D( p/ L. H* [* W# w7 Z
% j0 V- C' y' j! V( J* `3 B以上是我调试的时候出现的问题,以及我自己的解决办法,肯定高手指点!! |
|