|
这些天一直在尝试Xilinx方面的SOPC设计。ISE用起来不是特别困难,时序仿真,功能实现都能够拿下。但是在用EDK的时候,出现了一些问题。
. C2 s5 `" J) Z* X# y) d: t
& k* i2 Z+ h% E0 i3 Q3 W' d在XPS6.1i上面,可以实现一个简单的跑马灯程序,能够在XPS开发环境中对.bit文件进行download,结果也完全符合我的要求。但是低版本的毕竟有很多弊端,就连地址分配也要我手动来做。利用ChipScope Pro 6.1来调试程序的时候,又不知道从何下手,关于这个版本的的文档我还没有找到合适的,也可能是我理解能力有限。于是我换做XPS8.1i来做,却连.bit文件都无法下载成功,出现如下提示信息:
$ P7 P. l9 Z( ]) k2 ~# S E8 e/ k+ R- i- o, i0 N% [
// *** BATCH CMD : program -p 1 ( u u! b! W m. m/ @# O" ~
ERROR:iMPACT:583 - '1': The idcode read from the device does not match the+ ]" V3 I4 C; D7 V& E) g0 p, j7 q
idcode in the bsdl File.6 B/ M8 P0 A2 X/ h& |# f
INFO:iMPACT:1578 - '1': Device IDCODE : 00000000000000000000000000000000" ]4 ~! p6 r8 w5 u
INFO:iMPACT:1579 - '1': Expected IDCODE: 00000001010000011100000010010011
4 @- S: t: k! J5 i' rElapsed time = 0 sec.
, K, p* U" \8 e) E// *** BATCH CMD : quit8 ]. [: y- n5 s( t( m. M* G5 g
9 T* A* [! f! J) P* h a8 O7 C
于是,我决定尝试在ISE8.1i中将生成好的.bit文件进行download。结果还真成功了,提示如下:; `! o3 U) l+ F% f1 j' i
/ K5 k/ [+ v j6 C' mCommand: Program -p 1 -defaultVersion 0 + ~+ D9 J N# Y4 j' A; ?/ s
// *** BATCH CMD : Program -p 2 -defaultVersion 0
/ U/ f( w, r+ z7 r2 V# jPROGRESS_START - Starting Operation.
" D( N, z" M- q. q: s7 c3 nChain TCK freq = 0.
1 A8 m5 ^# a# \" J0 t, M5 RValidating chain...) F* ]+ u# ?, S& O+ B/ N: T' u u$ s
Boundary-scan chain validated successfully.
9 T9 H" ?' u! w* J& n'2' rogramming device...
0 Q1 A4 C2 h/ q4 m* E! Zdone.3 |) |# ]: R5 t% D, A" \. E+ k! a* b
'2': Reading status register contents...
4 m. f- R7 U- O7 W8 H8 @2 i[# ]; m& U; B- [/ T$ {
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 * M- h2 y3 Y$ E( u/ o, x- E/ d6 p
1 1 0 1 1 0 0
! d, v/ ]$ k1 a5 T]9 Q5 S% Y9 I* Y2 O; H/ y
[0 ~! Z9 G% e: }
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
8 @1 f# {: d2 ?; q9 V" A 1 1 0 1 1 0 0 2 }$ l0 N3 V4 I, E3 m
]
4 Y) d k+ c7 J+ O9 A6 GCRC error : 0
$ N, a3 z y0 a; E4 J$ K! `4 LRESERVED : 0
) y! {7 a. t( [ ZDCM locked : 1
3 q- u$ H! H: a1 ADCI Matched : 10 {$ {- |" q! W6 O, _% w; {% ~
legacy input error : 01 ?& j' ]0 Z6 @0 Q
status of GTS_CFG_B : 1
+ V/ q4 K" o/ s9 W/ M$ e: qstatus of GWE : 15 I3 P. ^2 v( \5 _
status of GHIGH : 12 ^3 a& U7 k. c) t% }; ]
value of MODE pin M0 : 1
/ q4 R2 ^7 O* ~3 r: X- D1 Jvalue of MODE pin M1 : 0
( ~0 O" P4 M: T0 `. tvalue of MODE pin M2 : 15 E9 A) u$ q6 }# F
value of CFG_RDY (INIT_B) : 1
% g X+ c/ }9 p( LDONEIN input from DONE pin : 11 U0 b) J5 l/ D
ID_ERROR : 02 C8 P5 o' R$ H! @
RESERVED : 0( K. W) ]9 x( u
RESERVED : 03 v( Q8 ~/ ?% R- W' Q- v5 u' K9 m
INFO:iMPACT:2219 - Status register values:
- I8 C$ v. J: ^' s F# pINFO:iMPACT - 0011 0111 1011 1000 0000 0000 0000 0000 8 Q/ K: g! w% a5 R6 w" q
INFO:iMPACT:579 - '2': Completed downloading bit file to device.
% R* X$ ]) X( _2 N- xINFO:iMPACT:580 - '2':Checking done pin ....done.2 W) U" O8 V6 ^' D+ k+ V
'2': Programmed successfully.' X: O3 y$ X0 n
PROGRESS_END - End Operation.2 _, ^9 \4 c# p
Elapsed time = 21 sec.7 E/ b2 ?* T9 q/ o5 A
9 K5 a! G. `' u7 D
但是程序仍然没有跑起来。
7 O# N" v& }9 M4 |( _% S) C/ u3 V' y9 ]3 u# F
不知道哪个环节出了问题……/ W: n8 W+ k' T$ ?* N
- q( b# F) T8 z- n$ `
7 w+ J S/ n \$ p
' U- |- n. `6 m2 I6 I0 B下载了第三方板级定义文件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通过,然后又加了个跑马灯的测试,也通过。
3 Y8 h+ m' o. N: ~5 d* {4 w: `# l, G
但是,还没有弄明白的是,为什么我建立Custom Board却怎么也不好使,肯能是那些细节还没有注意到。继续看文档。/ X) O! B1 ?) z
4 d7 B9 z4 d5 p+ N' T) ^另外发现,在调试软件程序的时候,各个IP Core的DataSheet很有用!" O# d. m7 v' _1 L
# I- Q. g. F7 w: s. c I
( g8 z) k5 j7 M; M
3 g+ C+ d, a3 Q, _/ E8 |既然是自己建立Custom Board不好使,那么我就直接修改模板文件.xbd。嘿嘿……定制完全属于自己个板级设备。调试通过!!
; d( D$ s O+ D4 T" {* h4 _这么一来,以后的IP Core的增减过程就变得很复杂了,应该还有更好的办法!
' T8 o4 j$ G; q9 e5 ^4 c& l
; d' `$ W$ k/ `9 W# J
- O; [0 E+ K; R) v! A以上是我调试的时候出现的问题,以及我自己的解决办法,肯定高手指点!! |
|