|
这些天一直在尝试Xilinx方面的SOPC设计。ISE用起来不是特别困难,时序仿真,功能实现都能够拿下。但是在用EDK的时候,出现了一些问题。
1 c5 u+ F" [' o
! R+ J7 P5 Z2 [* i, A在XPS6.1i上面,可以实现一个简单的跑马灯程序,能够在XPS开发环境中对.bit文件进行download,结果也完全符合我的要求。但是低版本的毕竟有很多弊端,就连地址分配也要我手动来做。利用ChipScope Pro 6.1来调试程序的时候,又不知道从何下手,关于这个版本的的文档我还没有找到合适的,也可能是我理解能力有限。于是我换做XPS8.1i来做,却连.bit文件都无法下载成功,出现如下提示信息:+ F6 l, Q1 [$ G9 A
: V/ P% B) _9 u* ^, r. R// *** BATCH CMD : program -p 1
- n! M: ]6 v: ^ t, }' DERROR:iMPACT:583 - '1': The idcode read from the device does not match the0 n5 ~6 n9 }. O" Z p/ I* W, ]& C: C
idcode in the bsdl File.: Y3 ^: u: v6 D) d }; Y0 L7 ^
INFO:iMPACT:1578 - '1': Device IDCODE : 00000000000000000000000000000000
8 g `# K3 x& h5 b& DINFO:iMPACT:1579 - '1': Expected IDCODE: 00000001010000011100000010010011
; g" Z6 s2 X' h/ lElapsed time = 0 sec.
) O9 d0 L0 e( H# y7 J- _8 w6 `2 l// *** BATCH CMD : quit
- H2 H% B$ I; Y+ n" t [" r9 A7 ]) Y
于是,我决定尝试在ISE8.1i中将生成好的.bit文件进行download。结果还真成功了,提示如下:2 r% p, P. f; N1 X! h: a" E2 \
7 s$ u6 U, O& `" [. X# b& f9 s" j
Command: Program -p 1 -defaultVersion 0
1 r! X5 L* D4 }/ e) \// *** BATCH CMD : Program -p 2 -defaultVersion 0 2 {, A! b% B% C* e2 W9 J+ a0 e* z
PROGRESS_START - Starting Operation.% ^$ E; v! d, d) x
Chain TCK freq = 0.
& R0 z: ?3 U xValidating chain...
3 Y/ h9 }( C+ ?7 M& a/ q9 Y; PBoundary-scan chain validated successfully.
. X* K7 j4 w8 a) v& f1 N/ A'2' rogramming device...
+ ^$ a6 {, O! ?! Z, edone.
6 b& z4 k- [' `+ D'2': Reading status register contents...
/ k3 Y% _6 E+ c/ z[
+ M) q; s( ]. d* J 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 0 P, S% ]+ i6 e& A* l& K
1 1 0 1 1 0 0
+ s) Z6 R/ M1 ^! n9 e* O# R]' u+ j9 W% h+ J* E& ^9 ?
[
+ _9 X0 i) Q K8 S& P! U. a1 P 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
. v4 }6 P+ {1 J0 |( z0 G 1 1 0 1 1 0 0 ( M- Z5 S' U1 |+ k4 @) Q/ g
]
2 K/ |# h+ G+ n" CCRC error : 0% {4 S8 W' X2 ?$ Z; z+ ]& J1 h
RESERVED : 0* S4 j0 O2 v$ K$ b' w. n
DCM locked : 15 O8 Z% A% d4 a6 c8 N
DCI Matched : 1
( k- q$ w2 X' R( ulegacy input error : 0: x1 E* g- d' C/ x6 c4 N2 D& B2 y
status of GTS_CFG_B : 1
2 B# d" c& H g! d1 f$ q& ?, qstatus of GWE : 1
: v6 i" O. \7 J, s7 u+ y$ R" jstatus of GHIGH : 17 o8 J; U. L3 s4 {* h5 G0 q: Q
value of MODE pin M0 : 1
6 @( X8 O2 c7 fvalue of MODE pin M1 : 0
6 N% F& [# k9 t2 A. {* A; Jvalue of MODE pin M2 : 1
! t7 N3 ^8 t5 N0 [value of CFG_RDY (INIT_B) : 1! D% Q# a! V5 e/ {
DONEIN input from DONE pin : 1' c4 M& R, F& h, S% }% A' z3 K4 p
ID_ERROR : 0
) R& r. K- F+ @3 }% o! a' E8 G4 `RESERVED : 0
! P L3 Z8 z+ p9 fRESERVED : 0
* G& N+ X! Y9 HINFO:iMPACT:2219 - Status register values:4 o; n9 J* V1 y3 @9 N
INFO:iMPACT - 0011 0111 1011 1000 0000 0000 0000 0000
; y5 H7 K8 ?7 dINFO:iMPACT:579 - '2': Completed downloading bit file to device.
, r/ v+ |! n/ }( EINFO:iMPACT:580 - '2':Checking done pin ....done.
' G8 w8 s8 B2 n4 Z. r9 u'2': Programmed successfully.$ j p" r# {7 k y+ T; b N
PROGRESS_END - End Operation.
5 S7 |, ] U% {2 ?6 z8 J& I2 RElapsed time = 21 sec., _0 k! N8 s& u8 q) h
! }. }, N$ Q* t8 ^" m
但是程序仍然没有跑起来。
: C$ s: n0 X# y2 \' G9 l/ Y, H' v* c2 U+ G, `
不知道哪个环节出了问题……% ^) E; e4 C% k5 b; G7 J
! a+ P i# n& i" I5 h, T
7 {" `- g& m1 Y0 S
/ |* ` V3 C- k# c6 o, t$ }' 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通过,然后又加了个跑马灯的测试,也通过。
8 d" j. A6 M# \% K7 r
$ ~: ?( |2 v8 {- ~0 Y" B但是,还没有弄明白的是,为什么我建立Custom Board却怎么也不好使,肯能是那些细节还没有注意到。继续看文档。
% m- l7 l# w0 t( t R
4 C0 u& @ a/ p" |7 a6 v. l) {另外发现,在调试软件程序的时候,各个IP Core的DataSheet很有用!. |9 Y% l8 P- \3 y
3 F W; B9 M5 y( g, x( ~6 T% b
) A6 c6 s- H% Z4 }+ V! b* L/ ^# F
7 Z5 Y: x q! O9 m" K/ A2 L) z既然是自己建立Custom Board不好使,那么我就直接修改模板文件.xbd。嘿嘿……定制完全属于自己个板级设备。调试通过!!
& L& S6 K( [. Y/ Q/ c: C7 ?, f这么一来,以后的IP Core的增减过程就变得很复杂了,应该还有更好的办法!5 h/ n2 \. I6 Z: G6 z
) C' Q9 H3 n! M
" R6 i2 q) V% A/ X! d9 |# k以上是我调试的时候出现的问题,以及我自己的解决办法,肯定高手指点!! |
|