|
上篇推文為大家介紹了創(chuàng)龍科技(Tronlong)最新推出的DSP + ZYNQ評(píng)估板TL6678ZH-EVM,由核心板和底板構(gòu)成,核心板(SOM-TL6678ZH)集成了C6678和Zynq-7045/7100兩款不同架構(gòu)的處理器。& ^. s5 \' G7 o! Z& j: ?" g' e
7 V+ v1 w5 Q+ m) B. ?
3 n7 X" y# O2 j+ b) ^那么這款DSP + ZYNQ核心板,是如何實(shí)現(xiàn)核間通訊呢?! F; m( d5 {! _$ ^5 W
! C0 {4 G! O3 F0 `
" V: s" F4 U; F% `, e# k​
1 @) `6 Y9 Y/ h s5 K9 { W h) u" Q; j' q
# B- ^' p# s. m3 `( L
核心板簡(jiǎn)介
/ p2 T6 W8 v$ W& G) m' {SOM-TL6678ZH是一款基于TIKeyStone架構(gòu)C6000系列TMS320C6678八核C66x定點(diǎn)/浮點(diǎn)DSP,以及Xilinx Zynq-7000系列XC7Z045/XC7Z100 SoC處理器設(shè)計(jì)的高端異構(gòu)多核工業(yè)級(jí)核心板。TMS320C6678每核心主頻可高達(dá)1.25GHz,XC7Z045/XC7Z100集成PS端雙核ARM Cortex-A9 + PL端Kintex-7架構(gòu)28nm可編程邏輯資源。核心板內(nèi)部DSP與ZYNQ通過SRIO通信總線連接,并通過工業(yè)級(jí)高速B2B連接器引出千兆網(wǎng)口、PCIe、HyperLink、EMIF16、USB、CAN、UART、GTX等通信接口。
* e# t% c/ o1 W* w/ a% y​
& _) j6 z5 j' j3 e) d​
, L. M, b' V: Y, p
3 g/ f3 O9 W; C3 \
9 P" e1 E( u" P7 k$ ]
- F2 P* u' ~4 \% p. ~+ ^0 l+ K b# [4 ~$ G1 u
本文主要介紹DSP + ZYNQ基于SRIO的通信案例。
4 q, D7 G3 L% t+ b) O* X案例源碼、產(chǎn)品資料(用戶手冊(cè)、核心板硬件資料、產(chǎn)品規(guī)格書)可點(diǎn)site.tronlong.com/pfdownload。+ O! S' n+ |# |& s* T; J u
) W$ [% u4 A3 |8 j9 j; c7 }* S, G5 l7 q
/ k; `/ d1 p6 _, n6 x6 Y
4 g% \) [0 u( H% z( r1 SRIO簡(jiǎn)介SRIO(Serial Rapid I/O)是高速串行RapidIO通信接口,常用于DSP與DSP、DSP與FPGA之間的數(shù)據(jù)高速傳輸。SRIO引腳占用數(shù)量少,支持多點(diǎn)傳輸,速率可配置為1.25Gbps、2.5Gbps、3.125Gbps和5Gbps。
G3 y5 W* Q/ O+ }2 [& P! { d7 V5 \SRIO包含三層結(jié)構(gòu)協(xié)議,即物理層、傳輸層、邏輯層。
- S. ?0 s7 O7 }; m5 v(1) 邏輯層:定義包的類型、大小、物理地址、傳輸協(xié)議等必要配置信息。 i. m5 i5 t4 d5 S0 v1 D
(2) 傳輸層:定義包交換、路由和尋址規(guī)則,以確保信息在系統(tǒng)內(nèi)正確傳輸。
8 b# J) l7 `7 k, g& c& v(3) 物理層:包含設(shè)備級(jí)接口信息,如電氣特性、錯(cuò)誤管理數(shù)據(jù)和基本流量控制數(shù)據(jù)等信息。6 M5 d6 L" f& i# S1 Q. V: F
RapidIO體系結(jié)構(gòu)如下:
& |7 ~ ?# }! n1 [% A$ S. B4 |# v3 T( a2 G* K
1 t' \. j$ n- l: J- T* Z1 E
% i: L# l+ l3 F% L
" K& e7 e3 g- a7 V​
; {1 x- r/ x* v7 L​2 @# \$ w# l. z6 Y
* B6 S& u$ R a r% I$ `
2 w# A$ L# D0 f1 J7 ]6 c2 SRIO通信案例" b1 x# P" C6 Z; U
' ~+ _; O! @6 n; {* I) ~. n! y4 C. b! X0 a3 f- o2 W
2 a. d% ^; `0 W" f2.1 關(guān)鍵代碼2.3.1 DSP工程(1) 程序配置說明。5 e* {+ m& j- s2 S: z! z
​
! V0 }& k: _/ ]+ l# _% N9 g
8 c$ Y* m% W$ r
* x/ Y& F2 Y! l7 Q! _! X
0 q$ _8 K% M+ P4 S6 L4 O& G! B8 z1 v6 g( y& D- l
1 H% p, B7 o: f8 Y6 y& L0 m2 A* m2 Z7 B7 z
(2) 使能SRIO PSC,初始化SRIO子系統(tǒng),SRIO通信測(cè)試。
9 x7 _9 M0 N! [7 ?# R# q* A
5 D# ~. \" m1 ?; C4 w( w6 @
K, Z g) K6 f8 F, s​- R! w8 n* h% `# B
! Y5 u6 d' u8 v7 @" B; X: l
! `2 N( G% c0 x+ j l4 u3 K' V/ r
$ [+ e4 H& D T2 Z& W
/ s$ j9 q' d( S [
* o w& ^/ j$ P3 s
8 g$ \. N7 R, ^' T2 X; Y​' N1 S0 F, X: H5 ~/ M/ C% l0 M
7 ?* N( w- d/ F% X
9 D3 w9 T: n( ~9 \- [
; V0 v& H6 n7 M+ U2 w. Q
0 S9 l' U( W+ _! o9 i) J* x​
0 n' ^% ?0 _0 _' v3 ^
& X) Z# ^+ N2 [) m; J/ k! _4 k
! `7 a4 H6 W- B! R$ |' R
2 N% y+ i( H& g0 X
. V: |0 r3 y* {' f) `
' r$ G7 S, i9 }: E: C5 t* F$ M
) P2 g. i: Z, J' M: T. p% j/ P4 a(3) 以NWRITE + NREAD和SWRITE + NREAD模式進(jìn)行SRIO通信測(cè)試,單次讀寫大小為transfer_size,單位為Byte。w_format_type寫格式類型在main函數(shù)中調(diào)用srio_test()傳入。% r5 \, ^* b, v1 Q8 R# B
+ v5 G9 ?+ E( A) ~6 j# S+ X* X
2 Z" i6 @& z- E( c( S
. s: Q7 h, H3 c" a% C1 L- ?
, C1 R0 [+ E2 C" e​
7 y# i- T4 G, U) V% S$ h
" o# j$ x) O* A4 G& o
/ m+ s; k; e1 d: z4 M) [. x- X6 F% N! X! W
% W5 U# ]$ S8 V2 Z* M& v; W
& W( H3 B7 P; T* ~1 i* t: z$ W& J- V! G
(4) SRIO寫測(cè)試流程。4 R7 P) A( a2 |% p3 p+ d
# D8 ^4 G! \8 W/ K0 e# f* X4 j- q" }' C2 h9 Z% |, B* _. s- H" c
( j, _/ D8 T9 j, @/ F
/ \1 L8 c% u; [9 R. Y7 I- g! U; C( }​ }4 }2 t4 a6 l m8 Y
​$ z4 M" K: Y& X+ r0 O
​, t5 E+ f3 l1 H# {. q- _4 D
/ d% z' u3 ^ y
# B1 t' `: j n8 Z5 C# O+ w6 F- _6 w5 t
- w, s/ g5 w! O# n! x8 r" ]
' h( W* j1 x' E) N
( p" P* ]) r2 H1 q2 Y+ U(5) SRIO讀測(cè)試流程。, @; h" }% p) u2 n i
$ G- V8 }! R7 Y% Z: I1 }3 y
9 |; S. u. {4 D- v; J7 D
1 p2 E% Y/ A2 P7 {" l$ u1 c! D& p5 O3 B' L2 o
​
) R/ t) j7 D7 v0 ?7 r​: d' A* \$ l7 V2 J+ d2 M
​
) M C& Z j8 y i: B1 N, U# ^
1 Q$ D) ?4 Y5 E% ]- t5 ?3 a
" I6 t( R3 m% I4 G ]1 H2 U
4 g* A/ A$ l( A8 H! U" m4 R6 \
2 M2 }7 \0 x$ P* j/ ~+ F7 O; g. r$ d! h8 C8 G# o- }% f
$ i1 p( o& G5 _
" b' K: w) A) T* ], k
/ r( M( C: q4 b
2.3.2 ZYNQ工程(1) 端口定義。 ^: Z/ t4 G4 L* S* H: l
3 s5 C2 V# c) G; I" Z+ g. }
# n* b* q) _0 x9 F9 k; L8 }9 @
, |& c0 \9 x# X9 r s0 _4 U9 g& J9 t3 d b w9 C8 P/ e) |
​/ V( D) |! Z! E. n# c
4 B% A) K. N) q; k5 o0 M1 U/ ]/ ~2 M( O& z; Q: B
, n( @, e3 i( h. Z3 B. W
! f- f" H9 }( V2 |2 g* L9 E
8 D& O- Q- H/ Z: O2 Y- Q
: w$ w5 Q" U; k2 N3 h e ~
(2) 使用STARTUPE2原語(yǔ)提供的EOS作為系統(tǒng)復(fù)位信號(hào),CFGMCLK(65MHz)作為系統(tǒng)時(shí)鐘。, \, I$ G# k& d0 `$ W
8 L" C5 u4 F5 D5 r0 T/ f3 N
! \, X6 B+ g4 E
: L% Z) i, k$ E3 u* L
1 Q! C$ b5 C7 K
​
1 g* |6 U& N! M2 p& T
* w; u2 ]8 G6 F7 k
/ T: u8 S9 h2 t% } j9 `' F* L0 `2 J% u" E' t
+ M5 c' C- D$ i* |; X4 q% l; g8 w) f: k3 j3 W+ y* c
! r2 E5 w, W, Z" K(3) 例化Serial RapidIO Gen2 IP核。
) J. Y+ z- ]# e( B
K+ S; {0 p1 @! W3 Q9 f8 @, t5 |! d @2 M
+ Z$ ]6 z4 N" z! `6 S9 I3 H" P6 @( D
* P! J$ I1 `: u5 \9 b; G; C​
' w9 i* x+ N+ e! W, b. r! `, u
" q5 z' s( n% l; J& e
# j0 H( C M9 p4 O" @+ ]" }/ g
9 E* X9 H: O# y, P5 P7 y
# ?) @+ r& r' _3 K7 @2 \. q- g
) J4 Q& x" _2 D- W/ ~4 s) j, Z% w5 g1 ?$ m! q% N1 Z' h
; ~2 ^1 B/ B. [4 e( A( R: k
! D) ?( T# c+ k​# o: H( H- q" [! Q3 B
1 Z' p8 E# ~ v7 T$ e2 Z
" j' U" b8 {+ q/ T9 N1 J) s
6 l; i k4 o4 s! z
9 M7 M- s5 c: y( C' ?3 X
|$ U6 W6 @" H" R& I' t, G) E9 ~
​2 D7 q% H4 z( L
# s9 Q6 ~0 |" p( a2 [& I% f {' A
$ u- ^; o- c4 x3 k& M1 S* W; U! s# Q' j0 |$ q" z5 D( d0 f
% Y1 b/ i3 m" s2 P+ e$ ^5 \
2 i; }9 j; R/ E8 g3 }( W# ~其中Serial RapidIO Gen2 IP核輸出的log_clk為125MHz。
$ z. @: t' t) A
) a% _( u$ b* i- P/ h1 t. Z6 {3 L( ]% |; Z; R5 X
# ?* d9 H8 @! R4 F* X
# }* G7 h# K7 A​
" Z$ C1 V6 t t
1 t. a& ^* P& \' P* O( d' ~: S# @/ P, [+ y* }! K, m
! M9 @2 t0 a3 a1 {& r7 \! Z
! `/ W; p/ ?3 j0 P
4 t! x3 n+ i# ]4 _+ L! o" x, R; r2 G$ B
(4) 調(diào)用srio_response_gen模塊,其接口與Serial RapidIO Gen2 IP核連接。
4 @" i6 H! t5 a* x- f; d
. t ^$ V+ q* K- X
: H+ w. x* T' e- l
% |# D: b7 B* @1 ?. I0 m+ ?* z
) B7 q. R" }" \& m* ?. C# a2 Y​/ V& W+ M: P( H% k1 `; o
6 N- h5 k* A) A6 }, }' {8 A9 f; m
2 g3 @9 Y1 Z2 F/ g" G3 w/ E4 l7 g5 a2 @. r5 N
​
# Z5 ?: t8 Q3 c. p​
. p2 O7 J+ K F( S! d3 ]' O. E! @: F) O: L
5 y4 U+ p& D# C$ R2 I5 hSRIO詳細(xì)開發(fā)說明請(qǐng)參考產(chǎn)品光盤“6-開發(fā)參考資料\TI官方參考文檔\”目錄下的《Serial Rapid IO (SRIO) User Guide.pdf》文檔。6 _0 h2 h$ U+ ]/ o& H
備注:關(guān)于本案例涉及的IP核、模塊的配置詳細(xì)說明,可下載產(chǎn)品資料進(jìn)行查看。& ?9 {$ U8 C: g' u) z1 r9 @- W! J
0 ~1 N/ e) g. `2 a6 _/ K6 H/ z* g2 d
: m& _- P: t+ e- z
. y, e0 W+ T' m- d% l; g2 V- @2.2 案例功能評(píng)估板DSP端和ZYNQ PL端進(jìn)行SRIO通信測(cè)試,并統(tǒng)計(jì)讀寫速率。評(píng)估板DSP端作為Initiator,評(píng)估板ZYNQ PL端作為Target。SRIO默認(rèn)配置為x4模式,每個(gè)通道速率5Gbps,并分別使用NWRITE + NREAD和SWRITE + NREAD模式進(jìn)行測(cè)試。ZYNQ PL端使用一個(gè)36Kbit的BRAM作為設(shè)備存儲(chǔ)空間,將DSP端發(fā)送的過來數(shù)據(jù)儲(chǔ)存至BRAM。
; N0 r& {2 C2 z7 T( z$ {" d/ w2.3 案例測(cè)試先加載運(yùn)行ZYNQ PL端程序,再運(yùn)行DSP端程序,CCS Console窗口將打印測(cè)試結(jié)果。
2 e/ G+ L0 ?/ H; y: q3 ` k4 W8 CNWRITE + NREAD模式:NWRITE= 12.50Gbps NREAD= 7.74Gbps4 D" o9 S8 U; U; p, F
SWRITE + NREAD模式:SWRITE= 12.49Gbps NREAD= 7.74Gbps- t, N& Z+ a6 Q6 Y+ d
備注:由于寫測(cè)試僅統(tǒng)計(jì)發(fā)送數(shù)據(jù)至SRIO FIFO的時(shí)間,讀測(cè)試統(tǒng)計(jì)發(fā)送讀請(qǐng)求并等待Target發(fā)送數(shù)據(jù)完成的時(shí)間,因此寫速率將比讀速率高。
! C5 C# w: r$ r( J( |7 N" U9 D; w+ ^) r2 u; i. l t: d* f1 Q
& V5 Y) z: p' x) {! B w+ G1 [, `4 [
& V- y! M0 _6 Y* }* W6 E
​. r+ l! u, Q7 a g& V9 y7 s
. g2 z- i( f- n( d) j' V( e4 ^) \2 d' g0 j" D
& ?, h* `! r! h ?6 W
" K' {4 U, L# c2 U, H4 _' K
3 E0 q" ^% e0 e' x( B9 a; z$ }- f+ F# J q( X
, X( f( N; ^0 `
​- b( ~9 V. R" y2 d7 F+ [
​- T: |3 \ j9 _! Y# |4 m0 z
+ J+ a: q& w# B6 F! M9 Z7 `& @: a/ s* a4 S8 y( I4 _
! K" R$ H+ _% i5 t% B+ ~
o) [8 O2 s! k. p7 Z# O# O1 O |
|