Chip123 科技應用創新平台

標題: 請問xc2v4000+(FPGA) [打印本頁]

作者: happpyend    時間: 2007-5-20 06:14 PM
標題: 請問xc2v4000+(FPGA)
請問燒錄到FPGA和FLASH有什麼要注意的分別嗎?都是用同一個bit檔嗎?; R+ g# S, N0 h9 ~
& z. f! I- d) @4 ?7 o$ s
還有就是說如果flash內已經有之前的燒錄檔了,納現再我要在灌一個新的怎麼辦?他會直接覆蓋過去嗎?
作者: masonchung    時間: 2007-5-20 06:32 PM
FPGA直接燒錄的話如果重開機, 就要再燒一次 : j# o6 P  o. j
如果是燒到flash的話 每次開機就會從flash讀到fpga
8 s7 V$ {9 ]8 _# `FPGA就不用重燒啦. ?: u0 _3 T' h9 s' {
) `* S, d) [& g, u
燒到flash 和FPGA的電路檔相同 ,但是要燒到flash必須先燒一個flash 載入的控制電路到FPGA- |/ b# F; r& C1 _9 \

# {7 Y) Y6 ^! z; o燒到flash的電路檔 只要位址沒有重複應該不會被蓋掉& T1 {5 [1 P3 ?9 r" v# u
. E& z6 i! u. {+ K" K
[ 本帖最後由 masonchung 於 2007-5-20 06:36 PM 編輯 ]
作者: happpyend    時間: 2007-5-20 07:32 PM
你說燒到flash必須先燒一個flash的載入的控制電路?" [" L% f2 K: }, F' }9 s: J: W3 ]
那我要去哪邊取得阿?  D- X- i! M' W4 a% `9 s# ~/ K

3 k) w5 D. Y3 W1 e+ M- y我ㄉ型號是xc2v6000(4000+)
作者: masonchung    時間: 2007-5-20 07:56 PM
這跟你版子上 Flash的型號有關係5 N3 r- `# V0 z+ S
2 x- v6 Q* V; A$ g7 ^! b- c3 }, i. z
一般有個default 檔 : LM_flash_load.bit
作者: happpyend    時間: 2007-5-20 08:28 PM
不好意思,請問可以幫我找那個所謂的default檔ㄇ?我怎麼也找不到
  c  P) ?; _2 Z( H! u( l) s$ N$ w& `5 G1 I9 u5 S- M1 g
而且要燒到flash,brd檔我也不知道該怎麼寫ㄟ,我只會燒到fpga的,直接指定燒錄檔位置
; |" d: M% y7 j6 u
8 |. B+ _# b/ a0 i[General]5 h& _: C$ o0 `" j. H( u/ n
Name = register AHB XC2V6000 -> fpga0 I" P  z; {: P( k+ R3 R
Priority = 1
, H. S+ h# M1 \
8 |/ c& n% C* L3 A+ Y- y[ScanChain]6 X! v0 W% P) G
TAPs = 2
' h6 N' R" t" E3 T9 W2 cTAP0 = XC2V6000$ N! D/ V; @5 a3 o+ Z( J, N8 a
TAP1 = XC9572XL2 r. H2 H, [! e5 l* e0 H
) n3 C% V! w5 t) K! l4 j/ H
[Program]& z* @. x7 j! }# ]- }" Z2 p5 ~' w
SequenceLength =1
5 T% \: f1 E; h0 SStep1Method    = Virtex2
( E6 x( n$ {, O4 T  ^/ }5 pStep1TAP       = 0
  @" Y, @# W9 S* ~- O/ ]Step1File      =register1.bit( x8 ^" b) w- _1 m- _

% q; b  J& r; M) ^" E) l那請問燒到flash要怎麼加怎麼改?
作者: jason_lin    時間: 2007-5-20 09:12 PM
標題: 回復 #5 happpyend 的帖子
對於FPGA跟flash燒錄方式解釋.4 `+ O1 y! r5 ]; t1 Q. F
燒FPGA時,是Bit file,而大家把FPGA想像成RAM,燒完就工作,但電關掉,資料都不見了,所以重開機就要再燒一次,
3 r6 T4 x+ @2 ^0 H3 A( f- Q) C要把FPGA拿來量產,那就必須搭配一顆flash或ROM,
3 d; G) u2 o# A/ c6 \5 J( L而燒flash時,是mcs檔,原理就是一開機,硬體會去偵測download方式,然後自動download到FPGA,也就是說,每次重開機,
' @6 j4 C7 r: m7 T硬體會把flash裡的設計線路,自動download到FPGA去執行,所以設計時只要注意download的模式(ex:spi flash模式,BPI flash模式,串列模式....等).* s* y  `$ T) d) m
所以一般開發時,都只燒FPGA來驗證function,量產就只燒flash^__^
作者: masonchung    時間: 2007-5-20 09:23 PM
假設 flash 之 memory mapping 在 0x200000
6 ]9 e5 P6 z0 O- @* W; {/ R至於LM_flash_load.bit 請你找找 .brd 檔範例 有兩個以上SequenceLength的,用他的Step1 File* ^+ ], Q; U  @7 @6 j4 `
ltxc2v4000_102c_xc2v6000_via_build1.bit ==> 這個應該是
6 p/ ?& p- g) N% h5 I% Z2 D
7 {2 n' l4 b9 ], H6 F[General]. x( G) y' D1 f3 P
Name =  Download to flash (Addrress 0x200000); `8 b/ M0 `2 s; W# P) g
Priority = 1; I7 z, [7 d+ F1 U0 D6 v7 j
' c4 H9 V7 a( S! n7 D; L. B4 ^
[ScanChain]/ p( I+ Z  s/ Q3 L7 ?9 M
TAPs = 2
3 S( [% ^+ O+ J7 B: zTAP0 = XC2V60000 q) ^! ~4 F3 H1 Y
TAP1 = XC9572XL! Z4 I% h; l0 O
$ _: {* \3 ^( k" m( t/ d: [  U
[Program]
0 c8 \8 \6 R% e) g; sSequenceLength =3; ]* V2 O' p* o1 @" }
Step1Method    = Virtex2/ }& |) ]" |; Q) J7 ^5 C
Step1TAP       = 0* T3 V0 H3 P$ ?( M
Step1File      = ../LM_flash_load.bit, ]5 l) Z2 t9 @. p9 m7 B4 L, B
Step2Method    = IntelFlash& m0 ?/ [# E$ t! k2 m
Step2TAP       = 0x2000004 z- h! T, f& ^7 F4 D
Step2File      = register1.bit! J8 H' a, \+ [1 p
Step3Method    = IntelFlashVerify0 X4 l8 s  R' Y0 B6 v
Step3TAP       = 0x200000
/ v+ H( T4 W1 ?& R. @6 uStep3File      = register1.bit
8 p" U' p" i) X) m" R
! n. h  F# u! X. x# `( f[ 本帖最後由 masonchung 於 2007-5-20 09:28 PM 編輯 ]
作者: happpyend    時間: 2007-5-20 09:39 PM
ㄜ...不小心選到poor...不好意思..., y) C8 b& P3 Y. Y
( ]% W* ^3 q) @4 r/ s6 y' F
你剛剛說的方法我在試試看....
作者: happpyend    時間: 2007-5-20 09:48 PM
我試了還是不行ㄟ...錯誤訊息在附件中" z: N5 S, @% F5 k0 l. c$ f) d2 ]

6 C& f2 y. d- X, p" N$ g還是我哪邊還有沒設定之類的ㄇ?
作者: masonchung    時間: 2007-5-20 09:57 PM
應該是 flash 的 Memory mapping 不對
, h4 d2 _  {) n* C+ j, T+ E8 R0 W5 @1 t9 i
你這種設定是
# B! o' [; z+ J! S2 ~FPGA ==> 0x0000009 [; t1 m; }0 A  D
Flash  ==> 0x400000! }* c# m* ^, @' y

0 l7 |# A- m/ w8 QCheck 一下你的 Memory mapping 設定檔...
作者: happpyend    時間: 2007-5-20 10:10 PM
SequenceLength = 30 L$ u% e" h) S7 J/ ]
Step1Method    = Virtex2- Y4 y& U0 p- R) e, L1 @
Step1TAP       = 0
# j6 D" w: Q1 I9 I- S/ iStep1File      = ltxc2v4000_102cd_xc2v6000_via_build1.bit  (清空flash的檔案?), K% F! Q- d) ^$ t& d9 N( O
Step2Method    = INTELFLASH  (??)+ W1 Z2 G+ z/ w- Z; v
Step2TAP       = 0x400000    (這邊是要填誰的位置阿?flash?fpga?)' [3 B8 a: _: h  h0 W1 y9 l
Step2File      = register1.bit   (怎麼跟下面的重複?燒兩次?)
, f7 @& M2 Y1 D" {$ \* t& T5 pStep3Method    = IntelFlashVerify  (??)$ K7 Q, p+ M+ W
Step3TAP       = 0x400000   (這邊是要填誰的位置阿?flash?fpga?)2 |7 j/ @: W5 t5 E: e: |
Step3File      = register1.bit. I% ^! u2 P$ p0 O/ G& s; A
$ ]# n$ v' n  \1 f, O2 i0 l
這幾行是什麼意思阿?
7 h$ C: }5 T2 k  P9 ^
6 s4 a( ], o& X2 p  ~3 S4 L. I8 ~我的附檔是memory mappingㄇ?
作者: masonchung    時間: 2007-5-20 11:05 PM
[General]
6 R8 N9 `6 o! h4 kName =  Download to flash (Addrress 0x400000)
8 Q; b" F: x$ {) q+ b: C9 MPriority = 1) W) p% T; K- o0 Z, ]
& m* H1 L( x# T
[ScanChain]* ]. y; w+ C) K/ K* o
TAPs = 2
) V8 W. y- U0 H2 T7 V! i. p, FTAP0 = XC2V6000. j, y9 ]. E4 y
TAP1 = XC9572XL
3 b; t0 C2 B' j5 n1 x# s6 D+ V0 l& p  n# n
[Program]( ^6 ?7 X3 _, q9 L
SequenceLength =3
$ t9 i+ u# g" Y4 A+ a/ d! `8 gStep1Method    = Virtex2
5 o) N8 O6 |* V0 r: I( SStep1TAP       = 0                x6 ]8 S; \. w/ a1 M1 d
Step1File      = ../LM_flash_load.bit <==控制Flash開機後載入電路到FPGA (Logic Module)
0 W9 j6 M( V' Z5 f% x$ D! g, J/ yStep2Method    = IntelFlash <== 只是Flash廠牌代號5 K: q9 R4 a8 a$ ?$ I8 k' k4 P
Step2TAP       = 0x400000  <== Flash位置
# h" z% @( F, f8 sStep2File      = register1.bit
4 p; K* O2 ]7 G# n7 ?Step3Method    = IntelFlashVerify <== 檢查電路有無燒好用, H# r! {7 Y. R) s/ t' I
Step3TAP       = 0x400000 <== Flash位置; T2 u1 T0 U6 a6 ]/ Q% N
Step3File      = register1.bit9 v3 J4 s0 G2 C$ z7 ~
+ b2 k+ \0 q. g; M
看來你要改S2成第二種設定 [1] OFF  [2] ON
3 ]* [6 m* @6 H( `( C6 q% d
9 b9 C8 ?1 a, c! I0 L+ M[ 本帖最後由 masonchung 於 2007-5-20 11:12 PM 編輯 ]
作者: happpyend    時間: 2007-5-20 11:17 PM
標題: 回復 #12 masonchung 的帖子
一樣顯示; U8 p# h0 U& w, M* m# _
error in board description file<step device/TAP>
% I4 g: u! m8 c1 }+ [  y! w0 H7 E9 e7 @& O' J' O
.....難道是flash廠牌代號打錯??! H( f+ A% t! Y+ R) S& x4 \

) U- e& j% v- o4 I6 |0 D3 \還是燒錄flash的時候,有哪些特別要注意要設定或要條jumper的
作者: masonchung    時間: 2007-5-20 11:59 PM
我記得有個Memory Mapping 的設定檔 和你的版子有關係
! \, k  ^, G' R1 R0 u+ M  Q8 {" k但是一時想不起來啥名稱 好像是.arm 還是啥的...
作者: happpyend    時間: 2007-5-21 12:21 AM
請看依下附檔. o8 }- x, P4 v6 a- u5 g

, J, \* i' O( m, _為什麼我按照LAB的流程/ C$ g, c+ v% ?& f1 L) j
: z, Q# u" i$ `$ [. C; o
他把brd檔分開寫成兩組' C( f9 f/ Y, J; ?) J- f6 u$ A
0 [+ ~4 Z& M/ I2 }/ W; l5 k
一組寫入FPGA
& C( h: T5 H+ g. R& C, {3 W8 _/ V+ l4 y/ ?' k% T5 v0 F8 P" h: v
一組寫入FLASH9 c& P( [5 C$ @- C8 r& D
" S( Y' I- v0 l' e7 Y$ p
然後先燒入一再燒錄二,而且他也沒有定義address的位子ㄟ
6 w" g7 A+ C4 A& Z; z' I; M$ o7 `; ?9 D% l5 \: ]8 j$ l% {* U
請問這樣真的也可以嗎?布過我想應該可以八,他都已經編成講義了(2003年的很久之前的)
作者: happpyend    時間: 2007-5-21 01:24 AM
請問附檔說的是什麼意思
- g% h7 ~' [; M0 q9 \' h  \5 x
& s4 P# @0 s- T9 o就是要燒錄到fpga一定要設定成jtag嗎?那cclk又是幹麻的?為什麼為起始設定
% B# L! g1 e- D6 e' p3 s: F* u3 V  R# X9 N+ b; Q& p6 b
用cclk就沒辦法燒錄了嗎?
作者: happpyend    時間: 2007-5-21 01:30 AM
剛剛連結錯檔案...這個才是對的..% T. J/ l5 s1 n3 f, G  @( h
9 s5 B) q6 u- O" p# g
希望大大可以給我解答- {  c  e8 y0 D' `! O

4 C( c, f- A% g9 q8 q; E- o感謝賜教
作者: tommywgt    時間: 2007-5-22 10:29 AM
你說講義的日期是2003年...) K3 B( {' ], h3 f8 Q
編著者是誰啊???能說一下嗎?
作者: happpyend    時間: 2007-5-22 12:26 PM
標題: 回復 #18 tommywgt 的帖子
http://access.ee.ntu.edu.tw/course/SOC_LAB/index.html
0 V7 \& B! w1 {& A/ I7 l" G& Y6 i2 j+ b; K
這邊有連結~~你就可以看的到了
作者: tommywgt    時間: 2007-5-22 02:18 PM
......+ n1 ~: a0 J# X8 q& r
哈...哈...我笑了2 g3 Z; Q2 D! z8 R
主啊, 請原諒我
作者: tommywgt    時間: 2007-5-22 02:39 PM
我只能說這份教材有經過好多人repeat過, 按步就班的做都可以完成的, {  b9 @9 B: Z# K7 m  b5 ~' @
至於tool的版本我就不敢打包票了....以上...Orz
作者: happpyend    時間: 2007-5-22 06:51 PM
?????????* b& _+ _: {: B& F
( X2 i/ w* D; x: |1 m3 F: K
笑什麼?
0 z: k; l( S5 r9 L) j  s, Y
/ n* J3 e; l& B' k$ {4 b" X* e我答非所問了嗎??
作者: masonchung    時間: 2007-5-22 07:05 PM
你找到原創了,就是醬子~~~
作者: tommywgt    時間: 2007-5-22 10:01 PM
噓...噓...不承認...哈
作者: sieg70    時間: 2007-5-23 01:44 PM
標題: 回復 #17 happpyend 的帖子

  A0 _, e0 u5 S" H; ~3 _0 {(1): h. p' P0 |, C% @% p3 e% r
ERROR: Error in board description file (step device/TAP)
& U1 m8 |  N' h/ F5 K+ R* J" }- c
指你的board file .brd寫錯了, 無法對映到硬體實際JTAG scan chain架構9 {% v$ K* `) e2 l; D
; o. d+ }6 ]6 b) \
(2)1 }" C9 i9 w0 Z0 V
利用procards utility燒image到JATG與memory mapping無關
) }5 U# H3 a- F( \6 F2 A# c0 x5 c( Z6 `# M1 F
(3)
8 k& E% W2 p3 k# X# ?0 O1 A0 M* l" u5 V4.3 Configuring the FPGA from flash的資料是利用switch S2來決定兩件事* n1 I, o# R) |7 m' W; n
a. boot時FPGA從PROM中load那一塊image
* F/ L7 {3 \5 t, `! G6 q7 X* kb. FPGA在memory中的address配置
- {9 t& Q3 c4 U' y. o4 Y$ ^* a9 r. v9 N( ?( M
(4)1 J) _0 ^7 x' s8 ?
Step3TAP = 後面填的是這個scan chain中, 現在所看的device所對應的TAP controller編號# Q. X5 @* y- J( R
Procards utility的pdf多kk就懂了1 F, B: C  O7 U; w% l
; g" c  x/ d: q- Q! h! e2 z
(5) FPGA start clock設定是利用ISE在implement出FPGA image的一項設定, default是cclk
/ U4 h; ?* F$ K9 Q# E* u8 U! P, k: ]6 H當你產生的image是要直接寫進FPGA中的configuration sram中的話, 設為JTAG, 因為現在是透過multi-ice/realview-ice的JTAG clock作為寫入動作的clock參考.
4 E/ {; P! L0 \$ `$ f當你產生的image是先寫到PROM中, 在開機時才由FPGA去PROM中抓時, 設為CCLK, 因為這時從PROM
- c, |! _* O8 t8 M" y% @' O中抓, 不論是Master serial或Slave serial機制, 都會用系統中的clock作寫入的依據
1 W2 N& C* n1 E! N4 z. S, ]5 Z3 m
(6)
0 `( L: e  v. T你的癥結點在於brd file寫錯了, 另外, 有些基本功看來欠缺的有點嚴重, 建議你基本功先練好.6 W; w0 W* P$ g4 u- K8 j

# X" w+ P' a5 H9 jboard file的寫法去找有到cic上過MP-SoC Prototyping and Verification的同學借講義看, 裡面有寫到




歡迎光臨 Chip123 科技應用創新平台 (http://chip123.com/) Powered by Discuz! X3.2