|
上篇推文為大家介紹了創(chuàng)龍科技(Tronlong)最新推出的DSP + ZYNQ評估板TL6678ZH-EVM,由核心板和底板構(gòu)成,核心板(SOM-TL6678ZH)集成了C6678和Zynq-7045/7100兩款不同架構(gòu)的處理器。
; }1 P' M' a; E3 ]- G; b6 H( U& G4 d; W" H; t
; O+ ]# ~( f) M) d" E' a2 b
那么這款DSP + ZYNQ核心板,是如何實(shí)現(xiàn)核間通訊呢?
x9 V0 R7 c8 W
8 k9 j3 L. ~! a3 K& B- ~' r# c, l( p0 Y" B! o, F
​+ d; E1 ?3 x* D) t
1 g a$ f$ H' z- `! g: t5 H7 S& O7 S: W* D
核心板簡介
5 J) L# h& s! @$ J5 ISOM-TL6678ZH是一款基于TIKeyStone架構(gòu)C6000系列TMS320C6678八核C66x定點(diǎn)/浮點(diǎn)DSP,以及Xilinx Zynq-7000系列XC7Z045/XC7Z100 SoC處理器設(shè)計的高端異構(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等通信接口。
# @) ~$ F4 }$ L% M( z: l​
1 E4 e s5 F' _8 B& F( U​
" A) y/ a' @7 S: h; k. \% d/ h: O% N& T
* ]2 K7 j# ~( E3 R6 {
6 c6 _" V% W ~/ D9 | R! J
) V2 ?9 q2 a3 X: s; y- i R本文主要介紹DSP + ZYNQ基于SRIO的通信案例。
2 }5 m8 F4 f7 O* o案例源碼、產(chǎn)品資料(用戶手冊、核心板硬件資料、產(chǎn)品規(guī)格書)可點(diǎn)site.tronlong.com/pfdownload。
% S, R. ?* u. ]( n
9 k$ j2 }" z7 \/ T; X c
& ~+ F' e& z/ C1 `2 i2 C, m/ N2 J3 `- o1 q" i, B: w# R
* \& _: b9 u' m4 [# C1 SRIO簡介SRIO(Serial Rapid I/O)是高速串行RapidIO通信接口,常用于DSP與DSP、DSP與FPGA之間的數(shù)據(jù)高速傳輸。SRIO引腳占用數(shù)量少,支持多點(diǎn)傳輸,速率可配置為1.25Gbps、2.5Gbps、3.125Gbps和5Gbps。
/ G2 d! r, }( B; ySRIO包含三層結(jié)構(gòu)協(xié)議,即物理層、傳輸層、邏輯層。
' [2 S9 q5 B7 U" s(1) 邏輯層:定義包的類型、大小、物理地址、傳輸協(xié)議等必要配置信息。, c9 D# g# C2 w. K
(2) 傳輸層:定義包交換、路由和尋址規(guī)則,以確保信息在系統(tǒng)內(nèi)正確傳輸。
/ D6 b& H- _& l- K c(3) 物理層:包含設(shè)備級接口信息,如電氣特性、錯誤管理數(shù)據(jù)和基本流量控制數(shù)據(jù)等信息。
3 ^* u; `0 O V j# Y2 N$ QRapidIO體系結(jié)構(gòu)如下:
' k) R3 i* x5 a: n6 A: V) Y, n) `0 v- w. G* e+ J8 X
# W7 T4 ]) r5 z# [
) f9 c, M4 |! B- y1 w- d+ u& W# y6 i3 G9 e4 k5 D; [0 W
​" U# |& } d2 e ^
​, x* f7 I/ ^: C' ^0 m! c9 a
$ v, Q8 K% K1 v |% `& {+ N9 L4 R. p/ D. r
2 SRIO通信案例1 y$ @5 w# h' Q8 x( A0 S
1 @4 p) T; A, O! p$ t. G \9 D
3 q0 O6 \& X+ J7 j. v2 L; n
@# O. l- [; h5 [2.1 關(guān)鍵代碼2.3.1 DSP工程(1) 程序配置說明。
. V6 E2 S" x! w9 l$ \​+ @, D! U6 D* r' f- N
' G ^2 V. h# M$ x' `) l. |
& g/ f: B: C# t+ n$ z, t, p; r
( n# u6 P) k: J. I2 E4 s
T, p+ b5 t8 ~& l, n c$ ~$ `/ Q3 H1 f T2 |2 R" i w
6 i5 L) X) t$ r7 n, @# L) u(2) 使能SRIO PSC,初始化SRIO子系統(tǒng),SRIO通信測試。
8 r" z& E6 G& H( q9 m
0 V. r! B% Y- P$ [: G$ \) U& l: E Z
​3 w" Z1 b. @& {, l
0 t% S( A# Q& s8 ~# n/ v
7 y) R" k+ a# I! _( o" q" [6 W! |/ \! _
# J1 c: |6 }1 j! ^- V6 m
( S9 G% e3 e8 a& V
& ]" u( T0 i7 \% w4 A. ?; t​
0 g3 y" `( t& p$ t9 V) V$ X/ O5 a4 @9 ~
) ~& K' R9 L4 x" j( l0 }- N/ N
, O* Y h, v1 Y1 }' m
% ` s0 P5 Q) V; ~: L; `
​
2 ?, I, B+ @; T. z
" Z9 M- |/ q$ j/ B1 f
- V1 S- m! j# J# N5 ^
7 {; S) Z4 {8 V: i& c6 U" T% n9 g$ C- {2 k: L
2 P) M3 f# j. q0 p! R. ?/ U. N* \) J( l- z) t
(3) 以NWRITE + NREAD和SWRITE + NREAD模式進(jìn)行SRIO通信測試,單次讀寫大小為transfer_size,單位為Byte。w_format_type寫格式類型在main函數(shù)中調(diào)用srio_test()傳入。; g& Z* N; P( c0 C0 |! c/ c* k
& M$ p& ?7 |2 G3 s* R; B
6 r. O1 w: @& @. \1 g" Q! E& Y. q
7 \4 M" R z# P​" e! X9 Q1 l) [' `9 O
2 O' l7 T, ~* j/ P: F
: D( Q2 ?* K2 T, o# V" P5 X8 ~5 W$ U
, Z& @: C; h) o. F7 `- E
5 ^9 \4 F% I+ F8 ]5 I5 n E. q! Y
(4) SRIO寫測試流程。
, E2 W; g W4 H5 J5 O9 b6 ^% X ?
; L' [1 i2 n( X& X r# E3 g7 I k3 f( V8 l+ i! f7 y
5 ^) K) A0 \ Y. X
9 B' E5 P5 @; X% I# o2 v
​) t+ O- F* g4 p0 O7 I) x0 Z, e
​
5 b! V3 E, k# \* ]# T; x7 r' `​ s+ f- |( N; [$ a/ t! n
2 n! p% p6 R- K; i6 ] R
9 q4 m, w' w; h$ w- m' e# b* P6 u! Q- B( T G& X
3 n3 i c" G5 O9 T2 n9 ]. d0 [9 X5 c: Z! W
8 h5 ]& F! n% l* |* V6 k
(5) SRIO讀測試流程。9 S' V* [4 g" B1 d3 L
* J+ O# `! G8 x& Y- D9 j% \' I% Z- ]& s$ _
' w0 P$ \% Q& C# P. Q
9 H& K4 W5 i" u7 A​
9 u- y2 p& m% Z6 A; X​6 S/ R2 P- z3 C' S2 l [3 z
​* w( x1 }5 o# d8 y4 I/ l- x% D2 r+ Y
: ~. ]7 l/ L1 s; o7 A
! v. Y& F; w/ X6 _, K2 l$ g2 L
2 v" y @& ^/ D- X5 m( X# p- {/ @9 |1 U
7 {/ `( Y1 e4 k' e( H" F
( V9 R4 y0 _# I5 J. l) F- W8 ~7 N, {( U
P- K. I0 _# e9 J) U6 l3 M* t$ E& p. i
2.3.2 ZYNQ工程(1) 端口定義。
( b+ E" D$ l! e6 O; c/ F9 [8 E$ W2 Z/ v6 x. F H
5 q! V) T) \2 N1 B$ H2 ]/ t3 [3 V
3 H7 y5 p C* d, Y& w" D1 S9 ?, i5 s- V+ E1 r' H$ h. i
​7 G4 f5 ^6 h# r1 ]2 b3 x
; b' X. T& V2 M$ T) i1 J; ^
. ~! y/ e9 c9 Q& r- h' v
3 i" z. |. D# E% k
1 j- L9 K0 k0 E& b ~ C/ i7 T! {3 w' f5 N' J- Y
y( l4 ]. L7 d" B* e9 w' k$ _(2) 使用STARTUPE2原語提供的EOS作為系統(tǒng)復(fù)位信號,CFGMCLK(65MHz)作為系統(tǒng)時鐘。) o" p4 E' @* I/ g
1 A# E( ~; x: u
6 `) t( n: a+ e a
5 _& d# R& }2 u
$ k& y! Q d( o: a​
# s. q$ d0 o9 X- E4 {3 ^6 |7 t5 f( e& L+ S% v, w
7 \ K9 a4 k! x! @4 f
& G; y m& k, |. q
) U7 f% I6 J; w
& K* }& |8 y4 K8 L* W+ s
2 c- ~ P2 x, A9 ^(3) 例化Serial RapidIO Gen2 IP核。
L5 a$ F* Z$ k) n; Y
; y$ K7 `. [% y4 d7 u
/ \! r4 t% Y g# F/ r4 G R% c A1 e+ {$ u3 z2 U. P+ D
7 O$ l* `( E/ V+ Y# N* G {​- m W4 a# r" j, d \6 L$ [
( [2 Q0 u) _$ b g$ ? H* Z! U; [3 f) l0 Q! F
+ m3 S1 S& U: r9 q. y
' x& e7 Q, ?) ?( B* ]
4 |' p w* ^# m) m/ M* h
) P- N2 f" x4 @% u
j/ S& H3 F+ }& I9 g: n0 x) I5 Z" R; N( T! R
​
! J0 w8 P9 k2 @. u6 ^- F% s7 `7 R- n
l( v% w6 n5 ~+ M7 V+ }; q
1 \& {& E7 n9 W; y. d+ L
; r. F# V) C, w5 N# O" n- Q5 k$ c1 p6 C2 J1 }- A/ D- e# u
) v, _9 [. m; g# |
​* s9 A+ k: B6 _4 A& I* i+ g
+ {' v$ e- V7 _, r* i9 ~& X" Q( I' H7 G
+ T! h4 b5 x$ M! Y2 }' q
$ \7 `1 d) H+ V1 F* r4 F+ p4 \" _4 R
) h- p( Q% _; E* P% @2 c3 V% [其中Serial RapidIO Gen2 IP核輸出的log_clk為125MHz。
8 ~! O5 G% A/ }+ K9 ]" t. c
1 U' ]1 X$ {6 u& v/ A, P }9 V
2 `, }7 `: W+ G! [" x: t/ }% R0 Y+ d& _5 j& `: C
# v, I6 b, ]% d3 t& o, _​
& @% a: x' Q. k7 N+ m: U, @, W( @& k9 ], c
, h1 Y. M* s2 Y o, M
4 U |1 r& D: ^* H, y
% L8 R- `4 ] ^1 @7 o1 L
4 O8 `# m6 N; p" p* b3 g2 f( d* A2 D
(4) 調(diào)用srio_response_gen模塊,其接口與Serial RapidIO Gen2 IP核連接。
$ U- p2 t$ J) f: f% ~0 c1 r" o% `- S2 g+ l/ A( \
" t4 }; ? T# F
6 h3 K' A6 x) n6 q, ^6 } ?: B% |9 t: u7 j7 D C
​
/ |% E) h8 O8 z* C) ^* \# I- T! k% A# Y5 F( @0 i) K: G+ |; t
/ m" k( M2 u/ q% Q5 J: I+ T- D
/ x6 j7 y6 B' j9 u/ i3 a4 V5 W
/ f+ C( l, I$ g5 z- }" k( |​; a3 t" b) m! _, C! S7 ^; |4 b
​' S: u& w$ M5 x, n7 r
3 W/ }1 D* g1 {" U
* k. D3 @$ O$ j- B8 R7 M2 K k
SRIO詳細(xì)開發(fā)說明請參考產(chǎn)品光盤“6-開發(fā)參考資料\TI官方參考文檔\”目錄下的《Serial Rapid IO (SRIO) User Guide.pdf》文檔。6 X2 ~0 q3 |- R& B
備注:關(guān)于本案例涉及的IP核、模塊的配置詳細(xì)說明,可下載產(chǎn)品資料進(jìn)行查看。0 d+ t, i2 V9 s6 Y
# c7 ^* y) Q/ l2 H' d
6 Y. \" @8 V; _ Y$ c5 y
$ d7 {9 n( i, V- Q b) X2.2 案例功能評估板DSP端和ZYNQ PL端進(jìn)行SRIO通信測試,并統(tǒng)計讀寫速率。評估板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。
D$ a$ w: p4 w2.3 案例測試先加載運(yùn)行ZYNQ PL端程序,再運(yùn)行DSP端程序,CCS Console窗口將打印測試結(jié)果。" L& K; W- B3 U I7 w. n s0 o
NWRITE + NREAD模式:NWRITE= 12.50Gbps NREAD= 7.74Gbps j3 \) _1 I% K) G8 r
SWRITE + NREAD模式:SWRITE= 12.49Gbps NREAD= 7.74Gbps
5 H# k* I/ y' F: V) V備注:由于寫測試僅統(tǒng)計發(fā)送數(shù)據(jù)至SRIO FIFO的時間,讀測試統(tǒng)計發(fā)送讀請求并等待Target發(fā)送數(shù)據(jù)完成的時間,因此寫速率將比讀速率高。
( {# {$ \1 @: I, Z# W
3 c) _! p7 Y- m; N. R$ H
0 }2 ~" O( n$ }3 h
) p r3 v" g S
2 V, J x1 @) J7 l% F, s​
8 `$ E$ N- D1 v+ E& \4 q: n% G" e4 w: z) T8 n& j6 ~( V( @0 g' l
, X" B3 h2 U& U1 ^
( J' g3 R) _) I$ _( T
3 m6 Z# r9 K* H- F3 s
! X' p0 u0 y1 z9 [0 {/ E/ n" `& x! H% n8 p" [
+ I) m; r: j& m% R% N/ Q7 b​
& S7 e2 z: L" t! A, m$ x# x​* I! L! G6 C3 B* n- n+ g
8 |9 J3 G+ T9 N
3 s' J' O4 D% L$ }4 E2 o3 N
! W/ c. w- ?/ \4 ^7 i0 X3 w O/ ?* U+ i
|
|