|
上篇推文為大家介紹了創(chuàng)龍科技(Tronlong)最新推出的DSP + ZYNQ評估板TL6678ZH-EVM,由核心板和底板構(gòu)成,核心板(SOM-TL6678ZH)集成了C6678和Zynq-7045/7100兩款不同架構(gòu)的處理器。
7 }2 w: Z3 ?8 @* s W# v& m2 |
9 v$ j0 Y% X+ L+ E: X- c- f' ~" W' v. B0 d6 K. H" H. [6 K
那么這款DSP + ZYNQ核心板,是如何實(shí)現(xiàn)核間通訊呢?
! i: O" }' {2 d s2 B4 L' S$ Y# U) T* K+ i
2 t7 ` ]0 n6 M3 K; R
​
* [1 v' o& `) w- s! ]6 _
. U" O" ^" M& l1 d1 B! \3 T
1 B6 z' x" G; z) o: l. m" X核心板簡介
' v. i1 Y- v8 j; o2 \SOM-TL6678ZH是一款基于TIKeyStone架構(gòu)C6000系列TMS320C6678八核C66x定點(diǎn)/浮點(diǎn)DSP,以及Xilinx Zynq-7000系列XC7Z045/XC7Z100 SoC處理器設(shè)計(jì)的高端異構(gòu)多核工業(yè)級核心板。TMS320C6678每核心主頻可高達(dá)1.25GHz,XC7Z045/XC7Z100集成PS端雙核ARM Cortex-A9 + PL端Kintex-7架構(gòu)28nm可編程邏輯資源。核心板內(nèi)部DSP與ZYNQ通過SRIO通信總線連接,并通過工業(yè)級高速B2B連接器引出千兆網(wǎng)口、PCIe、HyperLink、EMIF16、USB、CAN、UART、GTX等通信接口。5 E+ T' T, R8 Y; }% e' f0 v
​
$ Q O+ R7 P/ C1 Y$ [+ H​& V6 C5 L7 Z! P/ Q, f: U4 Q
* D, T9 d+ s6 P$ T
. f1 n7 O4 ^( T* ?4 J; K4 W2 W n/ {5 P p# B
+ Z/ p) E3 M$ L本文主要介紹DSP + ZYNQ基于SRIO的通信案例。
4 T& w7 s+ Q& S案例源碼、產(chǎn)品資料(用戶手冊、核心板硬件資料、產(chǎn)品規(guī)格書)可點(diǎn)site.tronlong.com/pfdownload。- v7 Z+ Q+ m6 b# h H4 Q
$ Y1 }" b7 w1 p% `( d: A9 N/ @5 v, |4 F+ S* b: z
. ^ s* R; K' I0 k8 s7 S7 Y7 b
5 E) g* z& Z6 L+ K* L( s1 SRIO簡介SRIO(Serial Rapid I/O)是高速串行RapidIO通信接口,常用于DSP與DSP、DSP與FPGA之間的數(shù)據(jù)高速傳輸。SRIO引腳占用數(shù)量少,支持多點(diǎn)傳輸,速率可配置為1.25Gbps、2.5Gbps、3.125Gbps和5Gbps。
+ b \% c! F& D7 ^SRIO包含三層結(jié)構(gòu)協(xié)議,即物理層、傳輸層、邏輯層。6 |: g8 ]2 e' u. H# s
(1) 邏輯層:定義包的類型、大小、物理地址、傳輸協(xié)議等必要配置信息。
& N1 m8 ]- ~ A( s1 ?( j(2) 傳輸層:定義包交換、路由和尋址規(guī)則,以確保信息在系統(tǒng)內(nèi)正確傳輸。2 K Y0 C- B2 |4 }/ s; F. |! O9 Q
(3) 物理層:包含設(shè)備級接口信息,如電氣特性、錯誤管理數(shù)據(jù)和基本流量控制數(shù)據(jù)等信息。
! e) B& r5 C* v/ dRapidIO體系結(jié)構(gòu)如下:- L" G7 D0 @/ p. w( L1 \' }# G0 |0 h
2 F9 f3 o+ J% p. P; h1 T+ o5 J
5 j/ R# q, [3 A% U7 E
4 u. m: Y$ h4 r8 B8 {. A- Z- j |/ {
​7 T9 @! B3 t* |3 }# }
​0 Q5 \# t+ G9 J: Y0 k! p' U. Z6 K
) d) K9 l. v- S+ T9 L4 j2 e
& Q. ~6 \5 \+ F" m/ v$ G2 SRIO通信案例& z2 H4 ~/ C4 Q6 C
; T9 B) @* b, q: B1 B k
$ D1 O1 K6 _) b8 [* n2 U9 l% r" f
2.1 關(guān)鍵代碼2.3.1 DSP工程(1) 程序配置說明。- h0 }& w) V0 A7 ^$ M/ S+ F
​
5 {3 E8 A7 E+ }( k' q. c# |
0 p' y1 R2 \) ?1 p5 \
5 b4 |* \( z% |" e1 G j, G
, T- g: u2 V8 I: b% z4 l0 E: |! T, v; X+ S& f$ o/ d3 b1 s: V
# {( S' V! v$ g8 v9 I T
4 H2 w: u0 u7 c
(2) 使能SRIO PSC,初始化SRIO子系統(tǒng),SRIO通信測試。3 `9 c+ d' g8 s3 r! P( e+ o
" _( y; f5 ~! N( M9 y+ u4 r6 q7 v5 J6 `) Y" o
​: C# T% P7 H+ u, a* f" u( x
B2 N( M! H1 q5 a
0 U1 K5 M# P' c) f
! K- `# x9 }) t6 v4 i4 d1 ^2 t% Z3 h, Q
+ ]* ?/ @ l6 H; D: _% F+ p9 D8 P
' V: p- I2 B! ?2 t* J$ E1 D​
7 C, h4 N. n7 T* e! l% f( T" C* n, W
3 U# ^, f3 x0 q; x( w
4 t$ w; @( F; t" N" T8 y2 O; I- ~% x6 T$ l
​9 q7 k5 S9 b- S$ _
/ B3 w- J; o t9 ^7 l9 ]8 I
3 H+ l0 r; W6 T4 B& C
% f2 g# I3 Q/ }- J- Y; Z% V2 c3 H' d3 J4 c+ b2 `
' ?5 t: y% u9 a% G. _/ ^# r
4 p' X- a3 @, x0 {1 [4 q8 b(3) 以NWRITE + NREAD和SWRITE + NREAD模式進(jìn)行SRIO通信測試,單次讀寫大小為transfer_size,單位為Byte。w_format_type寫格式類型在main函數(shù)中調(diào)用srio_test()傳入。
9 l" f; r" G9 a! J! a/ n' I- X$ S$ Z$ w2 h; Z: N
4 h1 \. P: V: A3 Y5 j. z9 q* q5 l: z) g
+ n& F! x9 o0 C e7 ^+ a) D4 F​
7 j% F% [- y0 [- s/ F
3 E8 K$ m5 B# D' N* i) `( V
' D* W r" U8 Q5 Q% s
7 }! r& x, @! ~2 ~' `& N, b" y8 i% ], R' B5 k ?( c& v. \5 S. ]) q
+ o6 M( T5 `8 o/ g* ~- Q7 y' \
/ k9 u$ S! c* x: x
(4) SRIO寫測試流程。- R) _2 Y# E) k) y
; d: G7 h: f% l; Q) Y4 g: Q
: c4 Q& G, e& w
% g6 i! l. E9 ^, c
4 Y. U, H2 P. }​
3 C. w/ h0 c' A, s7 y​; X' i S5 a: R+ o
​
. [+ }, g0 C5 Z P) K# Z2 W
) Q7 _; U! W( ]6 }
) d4 l( m" ^, P# B* H& o, j0 M; ]* }% x! J: A1 V
* J1 ^4 Y# S+ G6 u2 w% T# D
/ p& Z$ p+ @ o3 Z& O, O/ u
! M3 N' v, w( S( u2 t. ?, X' p7 Z
(5) SRIO讀測試流程。7 n" B' h9 Y& c# e' u3 ^2 G0 c
1 d: ]* b8 E" X3 j5 d4 L
9 ]; H0 D! L" L% Y# c
. l6 q- Q$ `) e; A! c+ V# J0 z6 Y
6 @* ^' r" U8 w' S( i" |, Z' [; [
​
3 a, q- T9 P' d+ `) _' T​
2 [6 j" |" c8 `/ y a! _0 f​
# H4 K# n" x/ S! u6 _& @" x0 }0 g
' d4 X: S2 N. }( s
4 ?! Z8 H/ K' Y: e5 J }, [) q! C, a/ U; ~7 M3 c
8 }/ E1 t; i' f9 C( Y
8 A; s. z3 N; y& P% _ g/ ~
9 v* S7 j0 @1 q1 B) J# ?1 n. j
( ?! Z8 x7 D) m& b$ m
5 i1 ]+ U9 ?( ^# a" e2.3.2 ZYNQ工程(1) 端口定義。
1 j/ g, B! S- S% m# A8 x4 S/ x; O( X9 h, R
9 f' d& K2 @+ E3 q5 _" D) K
1 c& ]! m- [+ B( _& D
+ v3 f4 i: L1 B4 E
​; g2 x! ~9 S0 d6 Q) F; W. J. N
7 _4 p( E7 H0 O5 e
/ w. C3 u9 |7 G
9 E; H+ w8 L( a# E5 _2 t- U0 X0 Z& R% z( ?4 H# Y
h, t( \3 t2 _# l6 m/ q" D; C! R' z1 d7 ]
(2) 使用STARTUPE2原語提供的EOS作為系統(tǒng)復(fù)位信號,CFGMCLK(65MHz)作為系統(tǒng)時鐘。' M. Y/ c6 c1 R; {% p
4 L. A" e/ v s1 B- ~% T
, ?1 Y* o: c- h) i- A$ ^/ T0 A8 I# n+ t! i ^
0 @$ X% I1 y% P4 c* n8 B# T% G# t​
% o- a* B8 [! G1 n/ K+ p% B6 p/ U+ }5 ?" V- g8 M# n
0 u- v: p' R8 ]1 L' I
+ v. l5 x& w+ \8 Z
4 G( n) n. ?7 a, }% o' D; z
% ^% w0 @4 g+ ?; J6 f
2 e4 _' R/ L, X, L r& ~" O0 U! n+ ~(3) 例化Serial RapidIO Gen2 IP核。
/ K' m9 A0 ^ L: s }: M2 G( r% k7 X* `5 g$ G9 k# Z
8 c P1 o5 N9 \6 ?6 ~) z( B
. T X( r" n; s; h/ p+ \$ w
A3 o2 |0 @2 z; m0 @​9 h7 e. B F" A" }! O- m9 A
- O) |% E" j: W& T4 N
1 o p. ~8 Y( n( n: l7 \) @6 N( U8 d5 S; Y, S' N5 U
' a- ]! ?1 C; ^9 O
) E1 Z! j8 h2 f% z% \
/ D; E: q# G$ [( Y: ]: x( x1 {- I4 B% ~+ J ?3 h0 p( p/ d
' D. S( ~ G. |" a​; s3 K: I- @2 g7 H" B' @5 o
, h, i4 m! m& o( }8 G0 ?
( Z4 N& R7 U1 V3 O
5 i k# l7 k x3 [# A- y& s# C3 N3 a3 @
0 G1 g2 R" Z+ m6 \, ^! J
( `0 N0 l! x3 t/ o​! x5 ~1 J- y; Q: | N9 t
- S3 ]% x+ t/ k7 W" M2 Z: o: T$ i0 T
& F0 o; G) B# q M; v. Y2 `9 A4 D2 l! t
9 q% x/ N7 z" o- C8 [
7 T, Q" J7 w* m+ s" z# d" o# A# o7 P0 g
其中Serial RapidIO Gen2 IP核輸出的log_clk為125MHz。7 a8 F1 v+ Z; V7 i
+ S( w& m- a+ d( P0 |9 F% }. T6 j( f7 G& U: X1 S8 z" O8 O% x
' d& D$ l8 x( k: ~: v* H% ~
2 K$ ?- P' O) g% P& p) n0 o I. ~: x
​
6 N' p- b. F' g2 h$ Y( ]7 C. }3 T" E$ F7 n9 ]
: p( U \& M6 X8 ]
z8 _7 L6 A8 T% e+ l6 v) j) V6 w- Z6 i+ S$ ]0 _' I) [* n. S
, \% L% n$ G, ^, F3 `0 P* p9 {& _, l3 R V1 i* A% ]) s
(4) 調(diào)用srio_response_gen模塊,其接口與Serial RapidIO Gen2 IP核連接。
* x7 P$ V9 {% J0 o
* \# k0 b9 G" T; Q" |' `# I0 o% K# v0 p; j
# |. P( V j. i& O1 H3 y3 {/ B; S1 W, X4 _! N
​
`: O" s2 i# Q/ Q- d5 B' O( x/ _7 L( E8 L( v6 n7 E
+ x$ C2 X1 F, f$ o+ _5 H& c0 C8 ?: f0 `0 w5 k/ F z, d
! Z5 u. N8 X" e% p​
* o# u8 D3 s" [) K9 N) Y" ^​4 N _) \7 ]6 `7 g
& |5 d5 _1 ~- [4 P6 S
1 u9 t. `# O* m% _& C7 @SRIO詳細(xì)開發(fā)說明請參考產(chǎn)品光盤“6-開發(fā)參考資料\TI官方參考文檔\”目錄下的《Serial Rapid IO (SRIO) User Guide.pdf》文檔。+ z E8 M2 }3 a
備注:關(guān)于本案例涉及的IP核、模塊的配置詳細(xì)說明,可下載產(chǎn)品資料進(jìn)行查看。; ]- O4 |/ r6 H) @0 a7 f
' V& m$ U- O! o& U* t
C) O8 S O% y) p$ Q1 v
3 j; y# c5 Q5 Z+ k$ E
2.2 案例功能評估板DSP端和ZYNQ PL端進(jìn)行SRIO通信測試,并統(tǒng)計(jì)讀寫速率。評估板DSP端作為Initiator,評估板ZYNQ PL端作為Target。SRIO默認(rèn)配置為x4模式,每個通道速率5Gbps,并分別使用NWRITE + NREAD和SWRITE + NREAD模式進(jìn)行測試。ZYNQ PL端使用一個36Kbit的BRAM作為設(shè)備存儲空間,將DSP端發(fā)送的過來數(shù)據(jù)儲存至BRAM。) h% B! e$ o2 o; Z
2.3 案例測試先加載運(yùn)行ZYNQ PL端程序,再運(yùn)行DSP端程序,CCS Console窗口將打印測試結(jié)果。
. ?' k5 {, I% ?3 ^( A6 }6 _NWRITE + NREAD模式:NWRITE= 12.50Gbps NREAD= 7.74Gbps
1 z, N$ G7 B5 w3 J0 [/ ZSWRITE + NREAD模式:SWRITE= 12.49Gbps NREAD= 7.74Gbps
7 [2 U8 ]: {: _ U4 g備注:由于寫測試僅統(tǒng)計(jì)發(fā)送數(shù)據(jù)至SRIO FIFO的時間,讀測試統(tǒng)計(jì)發(fā)送讀請求并等待Target發(fā)送數(shù)據(jù)完成的時間,因此寫速率將比讀速率高。
6 d0 ?! f5 r, `! f9 c- e) k+ f; |# Y; J3 I0 E/ m, T
- N% P, F6 q; M' u5 p; S- `+ x" d: ?8 w2 M" f( s- h
! l, v/ z' I# S7 K8 G& M​/ e, ]0 h l* `
' t, A& i. I. k: k* M6 f0 ^) p- H
- V5 i' _1 J! x% Q2 C) G+ e4 T/ ?: [7 i1 F
/ }' e! ^) O( d3 s C# k
) D4 s- ^* l9 \: r8 f1 O( ~0 J: g8 w) C* R
# u, i. O6 ~: z$ r, W​
0 J% F& `1 a2 z g​8 |5 _' U3 I5 Y1 G, d
, I! G3 Y% `9 i' s
) r/ z+ c5 H8 r. m; L* Q8 U3 Q# N
1 y( E0 Y( i4 d
! l( K- w- r, }4 ^ |
|