|
上篇推文為大家介紹了創(chuàng)龍科技(Tronlong)最新推出的DSP + ZYNQ評(píng)估板TL6678ZH-EVM,由核心板和底板構(gòu)成,核心板(SOM-TL6678ZH)集成了C6678和Zynq-7045/7100兩款不同架構(gòu)的處理器。
, e" t! U: B8 Z( i |
2 J* `- T$ ~8 H0 U6 w- K6 B6 K5 n+ f4 h% V
那么這款DSP + ZYNQ核心板,是如何實(shí)現(xiàn)核間通訊呢?) U. k8 X! o! x/ I8 H2 U' `
/ a2 O8 r# p& ]& x0 O/ K) n- `# R* l8 Q7 {
​9 i0 A7 G, Q4 e* G, X+ O
9 d# g0 {8 q- }7 _% N" Y( J3 Q) N+ H5 _+ A. t& d) l
核心板簡介( k6 Q% j- Q8 I, M, g
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等通信接口。3 s$ m1 X& I! [* M% l
​7 H8 b$ @5 V# E5 ?, i) Q
​5 ]: j r* D2 N& K: }
: h; B4 l7 _- J7 C
, h" k# @0 w7 M6 l* ~ w
) j+ n- C/ ], N0 R' d# t1 o& c5 ?) ^7 p$ Z/ {
本文主要介紹DSP + ZYNQ基于SRIO的通信案例。$ w: L9 D7 K+ a, a
案例源碼、產(chǎn)品資料(用戶手冊(cè)、核心板硬件資料、產(chǎn)品規(guī)格書)可點(diǎn)site.tronlong.com/pfdownload。
! O& V8 z. J- h) s. r/ q7 q0 d& G$ }5 g" s
" \& r! a& r1 Z2 Y" e- u
4 {3 T- ?8 N) _' r2 d/ x" V( b( @1 ]! r8 q
1 SRIO簡介SRIO(Serial Rapid I/O)是高速串行RapidIO通信接口,常用于DSP與DSP、DSP與FPGA之間的數(shù)據(jù)高速傳輸。SRIO引腳占用數(shù)量少,支持多點(diǎn)傳輸,速率可配置為1.25Gbps、2.5Gbps、3.125Gbps和5Gbps。
7 w& F# V! J; H% O0 OSRIO包含三層結(jié)構(gòu)協(xié)議,即物理層、傳輸層、邏輯層。: Z" b( g6 \6 }5 Z v; d
(1) 邏輯層:定義包的類型、大小、物理地址、傳輸協(xié)議等必要配置信息。/ J/ s6 C' o e& g' E
(2) 傳輸層:定義包交換、路由和尋址規(guī)則,以確保信息在系統(tǒng)內(nèi)正確傳輸。
9 `6 Q. n$ [4 F4 `5 m(3) 物理層:包含設(shè)備級(jí)接口信息,如電氣特性、錯(cuò)誤管理數(shù)據(jù)和基本流量控制數(shù)據(jù)等信息。& X7 o5 v# p2 O# ~9 n; U+ T& r# I) r4 _
RapidIO體系結(jié)構(gòu)如下:- H2 j M2 T' s% N
; r; q; Q% Q0 p6 `! q7 L
: I8 \' [# W4 T b
8 U% ^: {0 S0 F0 g
$ e& V' D8 u( G% r$ T; h​) w5 b8 T6 p# D$ G) [/ {
​' H; n9 l" Z0 y) R9 }
0 ]: J6 H$ Q; M1 k! x# d
1 g/ A; p+ y4 V9 \2 SRIO通信案例
' g! \+ f& `' D' [( J
/ I2 q# Z5 q0 A3 w& U8 F0 t+ P: c0 _/ O1 b1 G4 S
% Y' n; P U; {6 i9 j5 R7 Y, S4 k
2.1 關(guān)鍵代碼2.3.1 DSP工程(1) 程序配置說明。
5 [- i4 o" K8 C2 z​# |% y8 T) \8 a! F9 f
3 o- d2 T3 j8 r( G! B3 J' O; B* i/ I/ L
3 X6 ^6 ]" B: B% R; t+ k9 v0 {/ @
* T' g3 b: Y# ]5 A0 v
+ u# o9 E% R r+ u m0 R; m+ p6 l0 r5 }
(2) 使能SRIO PSC,初始化SRIO子系統(tǒng),SRIO通信測(cè)試。& ?6 {4 \% @- A, i: g
! t9 g r/ d( k$ Q' _1 }- L
( j: }, J3 c- Y- j! |​+ j3 r, D' D8 z2 o4 T5 o o
" r' P# ^+ G4 _0 e; |- R$ C% _, L6 n# \$ {, l% w0 U) a
2 _! @# p+ l" S* F, K' I
; v& l4 O/ E) C2 N& u4 n$ A4 K. H6 k1 Z+ B6 x" S, o/ t
9 n& F- I2 v( n& d1 P
​
8 p T! {. A. k, n. C& B" O6 |: Y( A7 T1 S
- k M& Z; h1 Q; U
- R S" H* ~& }7 c5 T$ {) A& ^" N1 v
8 G- k7 {& W& v L7 A8 H" |
​; ]1 @2 s; b. m7 _
& \+ p+ [$ h' z& a+ z. {1 U
$ V3 o3 j+ `0 R
( `) b& Z' }8 e2 z. Z
) M3 X0 W4 F# t* R" x: I
5 K* t; @# f% g9 ~4 c } c1 U, c5 a' f4 j( F
(3) 以NWRITE + NREAD和SWRITE + NREAD模式進(jìn)行SRIO通信測(cè)試,單次讀寫大小為transfer_size,單位為Byte。w_format_type寫格式類型在main函數(shù)中調(diào)用srio_test()傳入。
, K2 c' N) c2 E
) v! q$ D; }( J' I- M
7 I6 Q$ t& F: R" c; l+ e4 v1 q3 a+ q2 k
: O* s5 y9 t. a​2 G( o3 W5 p% L; i
$ O8 e. b9 l, c5 b
0 }/ _4 p' t. ]" W' C) ~, i8 A6 T0 b4 D4 l2 B: s1 L" d
, q& p3 P# r/ O8 Z. B2 j7 t
! h! [$ ?" W# x- O/ X# D6 |
2 L) I5 ]) L; ?/ e( c, b# M! I(4) SRIO寫測(cè)試流程。1 ?- |9 s4 Y7 V
6 t# l6 p9 T% G9 f+ f1 {
# {! S5 J% q8 G6 C% A* N* S
) s, Q4 G" ?: S8 W% \: v4 o# [+ Q8 Z$ H, j A0 V) _
​
9 I, ^# V5 ?% g2 O8 n​+ E# v, `! ]: e0 |9 z" n p3 {
​
+ @+ Y( x9 J+ D. V$ c8 m* b! M8 J9 H5 q4 c* Q
+ i1 e) m' d( @9 Q7 x$ [/ Q0 s
' m' v; f% L k% G/ L! V) K- B
( G4 Z9 C1 C, B) U+ G9 b# H
' { Z6 F$ J9 `& k( w' |(5) SRIO讀測(cè)試流程。
_/ y+ }+ u$ W! ]' T( w' F3 [- Q) C1 g
, T% g$ {6 \# n. r4 V# t* B7 W* g6 M5 o# ]' }
2 z; p: H6 {+ }6 K+ F​ }1 L- O0 E6 N6 k! \ w# w
​; o5 N8 q. e$ V
​ i8 q+ x* }% L7 ^
6 J/ u, }- \+ q
1 K" b9 K( f+ S; ~" Z6 y, _
1 _' H; F7 X5 A9 Z+ v, a( T& V. l/ j4 z2 X- W
' M$ n% {7 p. j8 y4 n
8 D4 R* a- r+ |# l, D7 a; I0 S: J; q/ G$ Z& W0 |
, e+ h+ N) ^& U5 l% i* e8 B+ {8 F
2.3.2 ZYNQ工程(1) 端口定義。
) Y2 B8 w' w4 Q, |0 m. g: K0 d! C
% [, Z, c1 H# \$ G( \
2 X, h& x% O/ p6 m, i7 ~5 B8 ^0 s$ H7 C2 s/ h; P+ K
4 ^9 c C; e% Z( j​
1 k5 y! r; z0 S( e1 Z$ J
+ s( C) r; L4 s1 V L9 z1 Q4 `: Y" W6 F+ ~" N1 E+ V
& `7 n o8 H' a, p4 G9 b
8 h+ d6 a Q2 e# Y& l8 y
+ _& a2 t3 p4 j- ?. y( F. {+ w7 ], ^7 D6 k5 z/ O+ y$ v
(2) 使用STARTUPE2原語提供的EOS作為系統(tǒng)復(fù)位信號(hào),CFGMCLK(65MHz)作為系統(tǒng)時(shí)鐘。
. v- D+ M, r @0 H2 I. A' _8 K1 K% K# [2 N7 C' ~& |
) p( H6 P3 |0 l$ o) X' O5 i; @5 k% t% O
9 w. O& K( V% M​( ]# J6 A* R: F) ^
4 q y2 w0 a. F( ?; K! e0 r
; S h. l: @/ a. j: o+ F' y+ s
* P) C+ a% y" r! Y# k& J7 L8 @, X; ]/ n" O* [9 R6 E- S
3 H" h% O; I/ G: J
8 I4 }5 N% j4 U5 v* \(3) 例化Serial RapidIO Gen2 IP核。3 F: I6 Q3 f) R" u+ q
" c7 \$ O+ A! @: v3 k+ {
! [; t. m' W1 e. m- U
4 O$ O. R+ i) r; I3 d1 S# O# X, N5 H0 |* @1 e& u8 p! E3 F
​) l7 `9 {% b( C0 O5 X
8 @, U B. T% ?6 P. L
( [" ]+ [% y6 z8 r6 {. f) @% {5 K
) h0 v) @* B- a7 D
9 P9 A5 u. I ]& B8 g" o |6 h
+ g% p- M9 G0 {7 U0 {8 ?4 P: J b' M$ D3 r. G& M
' ^1 e# o5 m( `* X' U
2 ?5 R( l# @+ w​
. G1 V; U# W2 V3 S0 Q/ I/ A5 F7 z' @+ k. |, w9 ^) l; x( u# Y
# Z* K) g1 e/ Q% i) N
1 A0 D) V" D* Y( G l4 D0 b
1 g$ [- v, d& _4 [6 T2 L& @0 V; R+ P
% e: E" S! e( Q h f- f V2 ^& d( z& @1 I0 w; X
​ i m6 z% y/ ]& E7 u
! i$ ~9 L% B7 u% o
- Y; v' l! G1 ^. u, o' C8 E/ E
6 [5 ~/ u# h' m1 C* i' X7 |
' i1 N4 \! p+ b
% \, m$ W) j5 Z c/ {
4 @1 W. ]) w/ J- A. R* j" G# Q其中Serial RapidIO Gen2 IP核輸出的log_clk為125MHz。
2 F. s* w) d* }# h2 a* @
9 m8 A$ T9 y5 u5 h. Y/ E5 p
0 V4 j: I8 y; n: h2 J9 n# Q2 F: Y% w" k0 H
' g* d( y2 d9 E- n2 r​
+ T! V+ d' q! }+ R. T
@. O8 r4 e! E7 ~* C. s1 i( {: b( p& a3 E2 L/ x5 F
3 [" ^2 ?) f7 d' u. K& |6 H& `9 U
2 a+ `+ b: D+ u ~7 y; C& i9 w4 m
4 D; A0 e1 b- V& B! q(4) 調(diào)用srio_response_gen模塊,其接口與Serial RapidIO Gen2 IP核連接。
0 I9 ~% q% G% H9 V! U% T# I) S( c
# [, J U7 k) C1 K, [2 y& j6 x/ n x, M# z1 U: I1 o7 I
* q5 R( K* Q! _. V: ]
7 o& x3 F, x8 _​
& D7 x* M/ P* x3 l* [
2 s0 r( z. n5 G* n$ ^' ?( M6 \, R {1 @9 t
8 G6 B3 i1 i, m5 }
/ K' [+ b, y: A3 p8 O) N​2 j( A! U* ^0 F) o
​
. ~+ N, `* B! M. R
9 R1 _( \" J J/ C# W) r* j7 @) G2 g4 i1 v( G, d7 B$ O
SRIO詳細(xì)開發(fā)說明請(qǐng)參考產(chǎn)品光盤“6-開發(fā)參考資料\TI官方參考文檔\”目錄下的《Serial Rapid IO (SRIO) User Guide.pdf》文檔。
. r- G* }! {) K) y r3 ~% G備注:關(guān)于本案例涉及的IP核、模塊的配置詳細(xì)說明,可下載產(chǎn)品資料進(jìn)行查看。( U6 m! |! s7 c3 u0 z& w
5 ^. }/ {7 {. w0 {6 X0 N+ g. S+ [" W' I! F% N+ S8 S
/ T$ S! k( a' L
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。
& y6 e' J2 \$ _2.3 案例測(cè)試先加載運(yùn)行ZYNQ PL端程序,再運(yùn)行DSP端程序,CCS Console窗口將打印測(cè)試結(jié)果。9 H1 {5 N% F9 W$ q! w
NWRITE + NREAD模式:NWRITE= 12.50Gbps NREAD= 7.74Gbps
i2 y, h$ {$ T% t5 s+ P5 `SWRITE + NREAD模式:SWRITE= 12.49Gbps NREAD= 7.74Gbps
* [0 [& u* r" t, @5 K備注:由于寫測(cè)試僅統(tǒng)計(jì)發(fā)送數(shù)據(jù)至SRIO FIFO的時(shí)間,讀測(cè)試統(tǒng)計(jì)發(fā)送讀請(qǐng)求并等待Target發(fā)送數(shù)據(jù)完成的時(shí)間,因此寫速率將比讀速率高。! I, y6 _) [, u
1 x3 R# f' s, k8 U$ j5 N" s, E
" | |- G" ?. B5 p6 Z3 X: ?
" `: l( h1 i; N9 I& K! k
* v( M4 ~' t2 O% l* }7 d0 G​/ k" E* I/ V/ K9 u$ G- i0 Z! D- ?( r
; S# G5 ]& h; t; l/ [( j" d @- P# R
; w; X4 e( Q8 Z* Q0 V0 a& X) f- N, E8 r4 M8 N3 I& f
, Z& S B/ @$ n# i6 e* l( R" i! V$ N0 D* I% s2 Z! G8 v' E- |
0 [, _: f" H$ r) @2 ]8 d
& |7 Y# A% ^4 x& ]8 N( c- d​- d! q( }+ V+ R
​
9 L" F9 d. O. E$ d
+ M) @; w. [+ U, P& N9 A) q' h* Q9 {3 \& M3 s
/ ]6 B# @8 K& J4 G) ?& P% x
2 N# q3 I" K. _* x/ z |
|