|
上篇推文為大家介紹了創(chuàng)龍科技(Tronlong)最新推出的DSP + ZYNQ評(píng)估板TL6678ZH-EVM,由核心板和底板構(gòu)成,核心板(SOM-TL6678ZH)集成了C6678和Zynq-7045/7100兩款不同架構(gòu)的處理器。! S$ \2 x4 u; n
4 r1 \4 [. I0 _2 G. X
3 i2 t8 ~! q! ?+ m% h( x那么這款DSP + ZYNQ核心板,是如何實(shí)現(xiàn)核間通訊呢?# i- x1 X) \2 ?2 o A# P% f1 {
% j6 B; {; v ]4 }: G
: U3 R, n/ {: w* |, X4 k​& w% x5 O7 H% b1 o: Q
% W8 g1 r. E3 V1 }. r3 G/ y
; c3 Y" u! W# y; v+ i h
核心板簡(jiǎn)介' Z1 y/ q c0 ~
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通過(guò)SRIO通信總線連接,并通過(guò)工業(yè)級(jí)高速B2B連接器引出千兆網(wǎng)口、PCIe、HyperLink、EMIF16、USB、CAN、UART、GTX等通信接口。; e8 {9 G" M% W0 x$ r
​3 } z z& J, r" ?; L
​
" ], T, v0 B- }* X; z9 N2 J+ f- s
- d' I# p% k, t5 N H6 e& _4 E g) _. I5 K- E' S$ \
% W% N: S/ V; E/ [# [/ r本文主要介紹DSP + ZYNQ基于SRIO的通信案例。
, i0 H" j: `1 m- U7 A9 Y5 i7 k案例源碼、產(chǎn)品資料(用戶手冊(cè)、核心板硬件資料、產(chǎn)品規(guī)格書)可點(diǎn)site.tronlong.com/pfdownload。' }* Y+ Z+ B! O5 P
) A9 J" V* o5 ^& [, V$ l% G5 m; L; s9 ~% D7 A s
( U/ r1 j% G# K% z8 O
1 R% e0 I/ @! b' i* [1 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。
+ J: E( @! E7 J: h0 B( qSRIO包含三層結(jié)構(gòu)協(xié)議,即物理層、傳輸層、邏輯層。
' N. C# ^ J: V(1) 邏輯層:定義包的類型、大小、物理地址、傳輸協(xié)議等必要配置信息。$ d. a3 {" j% O4 Q2 Q7 m
(2) 傳輸層:定義包交換、路由和尋址規(guī)則,以確保信息在系統(tǒng)內(nèi)正確傳輸。
" F$ h( @8 R) ^( }(3) 物理層:包含設(shè)備級(jí)接口信息,如電氣特性、錯(cuò)誤管理數(shù)據(jù)和基本流量控制數(shù)據(jù)等信息。
9 Q" i) J3 |1 E: D0 d. c: VRapidIO體系結(jié)構(gòu)如下:
: {% v& S. y# Y! B+ Q1 R
! p# I+ D& q5 l a; |8 V
8 J0 B" J- ^" C) O4 F& _
% Q# b1 x; o- [! s
. N6 U+ D( f$ a* r( E2 t​
8 C. p0 K+ `/ @* @/ e( A2 G; S& P+ E​! u% R5 j9 T/ v9 P8 A
% w2 t3 k7 f# r& f/ |, H5 T
}7 `" S7 J* X$ f, Q2 j4 `2 SRIO通信案例
: @; N& C% J/ s B+ A5 C! _) q/ x3 _5 G2 H; ]
' m6 ]8 j2 O9 r! Q+ N8 k m: M& H6 R2 V
2.1 關(guān)鍵代碼2.3.1 DSP工程(1) 程序配置說(shuō)明。% ?* @+ R4 O* Z" g: b4 h4 S' h
​* i) x6 [4 {8 s' B `
! ~; M, z, F! P% |) O1 g; r5 m2 }2 b
2 A2 x: {7 Q& r* x4 n9 L+ ]% q4 I7 f+ a' S5 y, A
v; v8 D2 N5 A% G
% j0 ]0 u5 ^7 c% d" m
(2) 使能SRIO PSC,初始化SRIO子系統(tǒng),SRIO通信測(cè)試。
# C& `# y. z+ l+ |+ X0 M# n& Y8 s* B3 E- D1 ]9 t$ V
4 J4 {% o. J0 S. [1 G4 x# l​
: Q) b& u% s, B- z" M3 b g/ P+ {' y
7 B8 W9 b5 p$ C5 O" U# ^" B6 m/ u7 ~4 O( m) u
( B/ P Q3 f) m
8 \. E2 ?7 j. ]5 R$ R! _9 e. z1 ]
1 j2 v9 h: i. F7 r, z$ U! Q, p
# o2 s% j0 D: i​" C* [8 a. R& |4 X5 m
. c d u5 ?. t2 O1 y4 {2 A
9 [8 W$ ~8 }5 d1 b6 E( {; Q! g) w l5 z
, G7 E, G: u" O% O. Q' k% ~​+ f% u( _' G- ]3 J P a0 ~% b6 t+ H
4 |; j8 A. k# J: X/ g2 a( W/ S$ z' l( H! t" l0 j7 D
- e- n! X Z3 f* O3 c
! G8 A) U3 d, u0 ?/ N
' E# [5 O" `' k* y
6 `' P" e( ]1 u8 d
(3) 以NWRITE + NREAD和SWRITE + NREAD模式進(jìn)行SRIO通信測(cè)試,單次讀寫大小為transfer_size,單位為Byte。w_format_type寫格式類型在main函數(shù)中調(diào)用srio_test()傳入。
% h. N; v5 i" }- x7 s4 n. M
$ k2 H3 ?( U( T9 o! D$ t( p2 u9 O. ^, j m& `2 S4 w! |; B
5 x0 I! z) r8 f9 R. _
! [# T# Y$ Z* W) N​$ y0 H. c9 ~/ \, N
9 O7 f* C! {! e0 |
$ g" M, Y# B1 _& t6 r: S3 I) k* ~
% f) c, v' ?4 ~3 [' v: \ e7 q
! x& f# ^8 k+ k' f; C) K2 g
. r# d; x; g1 R3 b" a" j! _
! i2 O7 H# w0 Y% x1 j* B(4) SRIO寫測(cè)試流程。
3 e+ m; E0 Y; R: T/ o4 m6 u
& X% X, v- p% ~- O4 X1 F, G" @ n/ f/ a ? C# T
( O% N e* H& x. _. S9 J" B8 X
* v4 o P* J$ R! B8 x​0 `; ~! l9 V! A3 u7 R
​4 Q4 ? n; i( \7 ~4 C6 C5 G
​
* ]5 E7 E+ x( B5 K& ~. X# N8 r
' d: E6 O2 t) x3 @2 E3 S
( ]* r7 w: w0 Q7 Q6 a( i* T8 F* i6 x
0 ~ }! e: P4 t4 w, q x
1 `( i& q8 y$ B$ Q" B# s
" S n- E+ a7 x(5) SRIO讀測(cè)試流程。" h) w" c( W9 t9 i8 L' O& `
& n+ V' n* y; o
2 J8 [6 S4 W! a
4 g- O! I9 ^4 W; _1 n6 ^; H: j: t9 O" A0 b X- y1 G' O, H
​) K: e h# x7 Q9 a( V
​
! B/ r" V) U2 `' a" c3 B3 D​
& g" ?/ ~3 B4 h% x- V1 K1 v
0 j2 A8 y# `0 \+ k
( d/ L3 x; K. ?2 H" |+ t. w0 C; L- L- p' r6 @9 `2 r
% j% c: ~+ L, s
6 q8 K g+ W @! e% S7 d
. c" N6 |/ R. K* ^' B3 P7 o; l& x! K8 R' r/ H6 ~& X {# ^
9 L5 R& @9 A) o( `7 A
2.3.2 ZYNQ工程(1) 端口定義。6 X0 Z. p* E# D1 T
6 Z/ Q! P* d5 o3 s8 m- M6 s3 w- ^" ] l6 ?: Y
$ n8 s/ f8 K1 `% P! M% R! }9 M
/ S' L1 H# D* i3 g. q7 C- w​" n7 {' y1 B2 a" J
7 w# M- S7 }( S
3 Z) }6 a! S6 ~* ]+ N& T! f
9 X( r: H6 M$ J* L) o7 A! _
5 {: ]& \) E. r8 k% [9 x0 ]
8 @- K5 B0 \1 p2 i; p
. \& ?$ u/ g% i) _+ R6 {! I(2) 使用STARTUPE2原語(yǔ)提供的EOS作為系統(tǒng)復(fù)位信號(hào),CFGMCLK(65MHz)作為系統(tǒng)時(shí)鐘。
# a+ d2 z2 J# B$ N2 m' j% P6 j7 n/ k; C
1 o# f+ N4 f+ S0 b2 O$ ?
0 t7 z: Q! E* n" Q
% f* V! p! T5 w0 w0 u* U​
2 q7 j0 P9 m8 Z- O- A
8 k. J* n7 ]0 g1 R
2 ?9 @! W! [3 ~8 ?' X# {5 u6 a
G; q! j0 C" {7 {& q. X. ~9 ~; e0 Z' q2 ~# S! M
0 b/ |! S7 T. z8 d, }
' b% n Y# R% R2 c& c(3) 例化Serial RapidIO Gen2 IP核。
' ^( V9 G R7 K9 O
. A" R: {. l8 B6 h, }- w' V% F' e: e# c) z
5 V* _7 [% L9 s* r" @0 E6 X2 A
0 e T6 f& y0 `; d% F​! }3 o; J1 {; n
0 \9 I) ]6 d: X3 s
$ E* _6 j% O$ s0 v2 y
8 {) h) N1 g1 ^: x0 }5 n' D- o b. O( j5 w4 b
8 v- ~& J! o; S% j5 P% v8 E T' m3 l) W
! ?4 j+ U9 S& p4 o: J) M
/ v. h- ^; _% b: k7 U4 ]. N5 V
​- b2 m' Z7 ?, i
7 L5 T. d. G5 D/ c
' v, i5 C3 V+ I7 Z* Q% L
+ t+ F: z6 J! }+ \# V9 O
8 t% y: z: v1 h( `3 w3 c, ~7 ]. A! C O- u, ?, `; R- F4 a; s' {) Z
! n& y8 p7 J. p+ D; m* e​
! w$ W- M3 i& `1 C, Z9 v. A( ]; a
% F: y' g, j( v9 X2 Z. K7 G0 w
" b( r1 Y D M- X- p0 ?) b) W1 B- l8 Y, p V+ s) d
9 i1 P8 d! C- V! {8 J0 M. E: f" e8 Y+ j
其中Serial RapidIO Gen2 IP核輸出的log_clk為125MHz。' E5 a' h( ^! D, {
" }! H& y( ]( P5 T- B/ R
9 i8 e% v. ^% p; P2 \3 g. G' b; v7 t" W$ Q5 H2 m6 t: ]# j
9 n w- \8 o' c) u$ i- Y1 H​
9 F7 p8 m4 G- ]) @& d. x" e
; k7 B) Q+ J5 V1 l$ R L" b/ E
: U5 U* I0 |: a1 ?8 a; c% e
1 t* z# A4 O2 ]7 f& t5 ]4 E
( Z" s% e! P) Y" m
$ C5 i7 X. `: q0 g) d* A
4 j L3 R* E8 v& K(4) 調(diào)用srio_response_gen模塊,其接口與Serial RapidIO Gen2 IP核連接。
. L" B' |- p* v2 H; I' C5 x" ?8 ~; q+ k% t+ ^3 s7 b& K, e
7 G8 S( F! _2 ~1 \
& T2 a9 {; s- |& M) j" V
4 I1 z, W& y. [1 ` d2 J​4 S" ?) _( b7 w
4 ?2 n; B6 ]/ t3 j" n2 E5 |% [( K% q4 S7 m, _ u! B
2 ^& L9 \7 p6 [1 [, v+ g5 Y, X4 m5 X9 c3 a6 n9 H
​
: P$ r& B0 \4 M# R% k​
6 Z6 A$ @# \; i/ P# C7 I/ P+ ?, `4 h0 `
* ?0 g, T$ C L# q- [7 u
. r" s' \+ ?5 n+ bSRIO詳細(xì)開(kāi)發(fā)說(shuō)明請(qǐng)參考產(chǎn)品光盤“6-開(kāi)發(fā)參考資料\TI官方參考文檔\”目錄下的《Serial Rapid IO (SRIO) User Guide.pdf》文檔。. G i6 F- U! M$ M5 v
備注:關(guān)于本案例涉及的IP核、模塊的配置詳細(xì)說(shuō)明,可下載產(chǎn)品資料進(jìn)行查看。; P! R4 W5 J. m4 u% ]
' W. f# O* @" S$ c! K# j( E
# W$ k" D, e+ N- y
4 U- G6 Q0 H# g7 h3 v" L2.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ā)送的過(guò)來(lái)數(shù)據(jù)儲(chǔ)存至BRAM。4 J5 |8 n) a" N7 w: @* Y
2.3 案例測(cè)試先加載運(yùn)行ZYNQ PL端程序,再運(yùn)行DSP端程序,CCS Console窗口將打印測(cè)試結(jié)果。
- {, F+ ?: s% n _4 l) \NWRITE + NREAD模式:NWRITE= 12.50Gbps NREAD= 7.74Gbps: @! m7 W( I$ H' u) ?) T
SWRITE + NREAD模式:SWRITE= 12.49Gbps NREAD= 7.74Gbps0 N9 O& o: Y& _7 C: ^
備注:由于寫測(cè)試僅統(tǒng)計(jì)發(fā)送數(shù)據(jù)至SRIO FIFO的時(shí)間,讀測(cè)試統(tǒng)計(jì)發(fā)送讀請(qǐng)求并等待Target發(fā)送數(shù)據(jù)完成的時(shí)間,因此寫速率將比讀速率高。# h; U' n& A5 X6 ~( h9 Q
( ^1 z8 w% m/ l. x1 n# ~) h4 j# E3 C/ t* y
( p. n3 q: l2 ?% |- x- z) p& f; z7 |
​# p- m) G$ n. y% @
' v2 u: m( W4 {4 X" f
/ r* m" S! A7 i! a! F ]
5 o# U0 B' x. s& d+ N) q) p8 m5 U# P5 Q- Y# V; _8 J* A$ T
/ u8 t# [( y7 j6 _; `
% `; R0 `! Q) c3 n: I+ D) l! u Y
' k8 z5 w9 I8 y
​" j# {- W/ J8 [- X
​" x1 z. U2 S9 B: C4 t- A8 B
& ^- |9 n- D) r4 x! ^" I5 f5 o
& k) S2 ?& w+ f$ k1 N
$ z/ @& Y9 @ ^9 ~7 D% U/ t" j3 H% R* M5 ^5 N
|
|