|
上篇推文為大家介紹了創(chuàng)龍科技(Tronlong)最新推出的DSP + ZYNQ評估板TL6678ZH-EVM,由核心板和底板構(gòu)成,核心板(SOM-TL6678ZH)集成了C6678和Zynq-7045/7100兩款不同架構(gòu)的處理器。# V6 D, x) Y/ z0 j
" X& R( u* f+ e% }
7 y) s0 l8 i) z那么這款DSP + ZYNQ核心板,是如何實(shí)現(xiàn)核間通訊呢?8 T7 K) e7 r7 f
+ z+ i6 x' g1 M! R, g! g; Y( E' G, D5 |. }' K' y
​
2 u6 I4 Z* b- s0 s& F! {# U* W+ ]( Q
/ l, x& J, o: }( z+ p7 C/ W9 X3 W, K6 W- a2 c( A$ p
核心板簡介 l7 q3 ^$ m$ k* y$ E$ @
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等通信接口。- h4 m) h: E% [ f8 R
​
" Y" {+ @) v+ i5 K. Y0 b# d​, ~+ t; ] {3 z, @* l3 y5 C- J- L
, g# a4 ^: P' Z' K" l! h
0 J8 a' `3 X+ I* E5 m
$ c$ J9 A! N9 V( U" u, D l* \
* G, M: ^, T1 R5 r9 G本文主要介紹DSP + ZYNQ基于SRIO的通信案例。0 G: ?4 g6 A6 o. B$ k( W% c* Q8 {$ J
案例源碼、產(chǎn)品資料(用戶手冊、核心板硬件資料、產(chǎn)品規(guī)格書)可點(diǎn)site.tronlong.com/pfdownload。
& ?! a. Q2 ~( Z5 R4 ~9 v1 _+ t8 m3 T9 H) _/ d0 L
7 a0 k1 j7 C9 p |4 Q
1 |+ c: S+ [9 U7 J: _" Z* R3 T4 ~2 w8 d) D! D9 j
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。2 b! z! j2 ^' v# P1 ?+ A4 @$ h4 c
SRIO包含三層結(jié)構(gòu)協(xié)議,即物理層、傳輸層、邏輯層。- Y' m+ i5 T- Z8 G% X+ J9 p
(1) 邏輯層:定義包的類型、大小、物理地址、傳輸協(xié)議等必要配置信息。9 g2 M+ b6 {1 v, {* B
(2) 傳輸層:定義包交換、路由和尋址規(guī)則,以確保信息在系統(tǒng)內(nèi)正確傳輸。
$ G, {, v' f" T$ s. }- W(3) 物理層:包含設(shè)備級接口信息,如電氣特性、錯(cuò)誤管理數(shù)據(jù)和基本流量控制數(shù)據(jù)等信息。6 M' U+ Z4 {: I) X0 n W8 z# v1 m4 k4 q
RapidIO體系結(jié)構(gòu)如下:1 A, A1 @: J% v: a! E9 o
; Y2 `/ G: g) {2 U0 g( d
* z1 p' G! U& U1 U5 l% F' a
0 B0 b* E, M' N/ C& l4 Y9 w( K: z) y8 X# q6 U3 s9 K5 N
​) k, H: k; f v% `- g! p
​
/ j% Z" O7 p) T
5 q# l- Z7 _' l D, E, C
& u+ m' W; J, O# O# m2 SRIO通信案例
- ^( ]: \, H2 g2 e/ ~+ h8 S" w& O/ t7 i2 E
f! g2 g7 R+ \2 B
5 m% d' o3 M. H6 O
2.1 關(guān)鍵代碼2.3.1 DSP工程(1) 程序配置說明。8 R3 J9 P4 e" B1 Q% S: {
​" C0 o6 i4 }6 n( L' C0 R
$ b: K9 X1 w' ^% b! J" I( P, G/ Y' @8 ~
, K" B( ~( Y3 l, r
% t. h" u( M) A, K' G& |1 v
" {/ S3 F/ Q! w/ O1 E7 K) T
' s1 p! H0 d |2 m, j" q
(2) 使能SRIO PSC,初始化SRIO子系統(tǒng),SRIO通信測試。
F7 M, L( }$ P0 X, h3 n
, [( h& @9 U5 F% ~3 f1 ^0 i+ R' ?5 N1 v5 F5 k
​+ A6 L: j/ c z
4 Z- Z9 G8 U( I! [& t9 k
; L: n- {7 H$ `/ m( q
w8 Y0 \# y) Q6 Y1 a
* z- E7 G% s# [. ?- a/ z \" p$ \# S2 ~
5 G% {5 W z4 _6 D W​
+ O' `! I- I8 q3 ?+ k8 l
: A& z, H( O9 Q6 j# M2 w( G# }
% |& i+ F- t7 ]& r, L' V
1 u4 ` ]4 d6 {0 f+ J
- I: \" z2 H) D" N​; }1 j- L/ g* n/ m5 J! }) N$ H7 O; K; v
0 i0 G( o/ e) h# H: X
$ s7 Y* R& b. W9 V! x* n1 u) x5 }' Y' M& H9 r/ ?( i+ C, P' M
' c+ a8 p' V. X/ L3 n
* C5 f N. r: B0 q5 u% H
, |, w3 d+ O& [. K) ^(3) 以NWRITE + NREAD和SWRITE + NREAD模式進(jìn)行SRIO通信測試,單次讀寫大小為transfer_size,單位為Byte。w_format_type寫格式類型在main函數(shù)中調(diào)用srio_test()傳入。
% Z, W$ H' J' c0 I# m' A
6 p. A2 u4 D" e: W. U+ J
. p/ O, c+ K& L4 [5 J3 w7 i$ u( k- d
3 F0 `1 z( g e
​: u; ~2 D2 E# `3 t/ o, A1 N% _, F9 [2 M
* i- d% s3 [. A# q. a$ O S( X+ S1 G: l* T6 s# x
; o- s, a8 P' D& [ c
' h# b+ }) M8 o" J) z% D$ p2 N1 e6 g6 Q% |! V- n2 R2 x( B9 P# [
! ?1 r, B% W9 M2 e7 I
(4) SRIO寫測試流程。8 z5 K" [% p- W
9 v9 Z% @) L* k4 U3 b# W0 p/ p
& s' F# L/ W8 [+ J# A5 ^7 b/ A% K# h* T4 Z4 ] X6 r2 w C
0 o4 T2 u6 i$ j0 y4 f0 k* v- p( E h​6 ^2 C/ k# ~3 h$ @! i e2 U7 ?8 m
​
9 T0 f l3 q. s& P8 P​
5 |; R4 _/ |- z% l, P. o* G! ~6 }0 f
8 y# H6 l0 c# H& D- D' n$ v7 L
$ b6 @8 x$ G8 K3 D9 {+ k I8 W3 C' S5 S2 `! j
- m; `; N9 ~& C$ h* s6 e9 Q
* b3 P, b+ s$ F2 e, H/ [2 M! V$ _- ]
(5) SRIO讀測試流程。
6 F4 D. x) z0 ?( Q: l6 h$ }
8 K2 y* x, i6 p, j0 P# T
0 u4 o: H0 M& x3 L- v+ W1 n/ q. x1 B. A+ }; U6 c. `
% `( S7 f6 z* z7 x# T4 m+ W2 d​- t M, r3 x; g q0 V& x2 V2 T
​4 f- U; R* Y( Y) k
​
% L- D K" i" E+ e" s7 T8 ? m1 K1 e
2 i; b' q! l! @" C, s8 M; z
: ^9 k9 v9 U2 V B6 ~; g5 k" A4 {( k! F/ W$ G
1 p0 n. L& d" p* b2 A6 n2 R0 n( v; s' e; _
; s ~9 E8 w) E. O; s& ^2 {
. V( h w: `8 V
2.3.2 ZYNQ工程(1) 端口定義。
8 }8 ]- y* Z/ U. x8 R6 Q5 O1 _
, d( G* R' B/ y# x2 F; V
( D8 r8 \* \* ^- [% v: ~9 e/ b9 w- C: k
; F- x, H% V) f8 }/ V: U​
9 ^$ ~( \, Y: _ q; W. o$ h
3 i: D7 ` S9 |0 i
3 P- s8 l/ a8 C6 n
9 c! p2 f, L, ^6 j1 l0 ~* \2 @+ i% D! E. N+ g E! S
D v6 T: O2 y* v, T# G
& r/ m* w5 G2 l9 w6 p0 u: S(2) 使用STARTUPE2原語提供的EOS作為系統(tǒng)復(fù)位信號(hào),CFGMCLK(65MHz)作為系統(tǒng)時(shí)鐘。
0 }+ l, \2 O& X& `4 W( f* o
3 F5 Y2 q6 W+ F. F' x6 e9 }! m; N* |/ {9 Q6 T8 ^$ W6 t; ?
: y% ] u. l; e, J; K
# ]$ u+ E( r$ P% @4 P4 t2 T​
4 \# k5 Q! g# l- j; f" M; Q+ y
" L$ F" R7 h' |" j! n& f
+ z( C& q' C8 a" q& q
, _+ g8 E7 J# I3 T9 ?4 m9 K( J$ a3 x( E4 R& j
5 p; ~ C! M+ A8 ~- {! j: E
' W2 ]0 r! I& V( r: y- M* p(3) 例化Serial RapidIO Gen2 IP核。4 A2 f6 t3 T) C$ q& ~) p* m
: ?: y1 ~& @% A& }, ?/ w: |; e- C! M3 Q4 W5 A
* C* @* d a3 {* d( m1 p8 X% a8 ]( s. `7 c: F
​6 P7 W: ~. ^( A* {
6 y, x7 Z6 G" m9 l0 t# y3 ?: i% _, w/ b. I
3 s. Y# M1 p0 w+ s0 X B0 r+ s& k; G& `3 B
! @' Q) O& X7 k' e( a# S; R& S' I3 I+ u( f: b9 F) l5 S; v
! |0 `2 M$ ]- o
$ N. V! m/ @6 f! U' M3 h% M
( Z( [' z9 ?/ c( C: v" S​0 T, Q7 ]2 S/ E) G
1 F! s8 C% \2 T3 _
! s, T: ?( e% l. t
0 ^% y" ^- N) M
( L& r6 K7 L5 [, T! t" y
, _! o- @2 V: Y6 v h3 @$ w7 |* D; j4 L! N u! f# s+ d* g
​
8 n' O& `0 p0 _6 F9 H& K
6 b7 n- [8 I" z- ?
w3 K, f& f/ T1 K8 v3 k
; i4 o: y+ @- d* t- F/ [
( K. `1 D1 \2 ]5 h) ~% B# R. N$ h4 ~* u$ V8 \) ]2 @: }% W1 N
7 ~' F. @& s5 B5 c5 ? g: f0 o
其中Serial RapidIO Gen2 IP核輸出的log_clk為125MHz。
1 D4 w1 }# N% G# d( h H. A7 P& |$ ?. y
) J* h$ P9 U- W8 S' g- ~, T4 z% ]9 j: E( h4 K2 L
8 \5 w g/ N9 P$ r# I​
0 j7 o7 v: G3 s) J! h/ {5 j
; y: `9 r* D5 [! o+ v& Q d0 G& F) [1 E% \8 q
* s& V4 o; f7 v5 ]3 }: V. _4 j$ L; p" G
: s6 z4 m# x) p2 ]
9 ?. X/ K7 l; v7 _4 m, |( l; N(4) 調(diào)用srio_response_gen模塊,其接口與Serial RapidIO Gen2 IP核連接。0 R$ w6 C$ t( u' C ?8 g% c
2 k& j9 z, p$ o( ~% ~
: S3 K) B- N7 E; D, ~( H5 H. u2 v2 @
- u! h8 ~1 u$ ^, K7 U2 N8 J) M3 K2 a8 q4 e
​
3 m' v$ i9 T1 w! I; n5 |' f p$ Z& B. v% @% w
8 G/ O3 A# ?) h" O5 Q+ m% N
' e) }& P2 z% e C- c- {. \9 j7 A ~+ h: e
​
: M! R0 e" k+ n2 g X1 q* w. Q​
. K. O( T* X9 U, [$ Z8 t4 Q2 S! L* V; ~$ Y: _
; t, [/ u; G+ w( [% s
SRIO詳細(xì)開發(fā)說明請參考產(chǎn)品光盤“6-開發(fā)參考資料\TI官方參考文檔\”目錄下的《Serial Rapid IO (SRIO) User Guide.pdf》文檔。! ^! S8 _& l; r: [
備注:關(guān)于本案例涉及的IP核、模塊的配置詳細(xì)說明,可下載產(chǎn)品資料進(jìn)行查看。% ?- m' L9 P9 ?) U. ]" x
9 t0 t( }3 w; v, K0 Q7 q
! d) G6 ]8 S) ?( R/ ^, R( w3 p* P5 u! s5 S
2.2 案例功能評估板DSP端和ZYNQ PL端進(jìn)行SRIO通信測試,并統(tǒng)計(jì)讀寫速率。評估板DSP端作為Initiator,評估板ZYNQ PL端作為Target。SRIO默認(rèn)配置為x4模式,每個(gè)通道速率5Gbps,并分別使用NWRITE + NREAD和SWRITE + NREAD模式進(jìn)行測試。ZYNQ PL端使用一個(gè)36Kbit的BRAM作為設(shè)備存儲(chǔ)空間,將DSP端發(fā)送的過來數(shù)據(jù)儲(chǔ)存至BRAM。
0 K5 x( x7 s" Z7 f, ~! f. \2.3 案例測試先加載運(yùn)行ZYNQ PL端程序,再運(yùn)行DSP端程序,CCS Console窗口將打印測試結(jié)果。
, o, I7 D* m8 M9 `NWRITE + NREAD模式:NWRITE= 12.50Gbps NREAD= 7.74Gbps
! ~, ^" I# C l$ B. R: P3 p' `* wSWRITE + NREAD模式:SWRITE= 12.49Gbps NREAD= 7.74Gbps
E3 _% A3 _. ^3 G/ Y5 F; i2 w備注:由于寫測試僅統(tǒng)計(jì)發(fā)送數(shù)據(jù)至SRIO FIFO的時(shí)間,讀測試統(tǒng)計(jì)發(fā)送讀請求并等待Target發(fā)送數(shù)據(jù)完成的時(shí)間,因此寫速率將比讀速率高。: c& d/ `! l7 J% @- s2 C! i+ }
5 u* w$ Q4 G/ a" d% Y- J# r6 ~
4 E) L$ f6 B5 b4 v. Y9 h
- Y& M& E7 i, ` L8 w: v
1 o# |- q; |5 g​
; ~/ A8 k8 b1 L/ B4 w1 c/ B M' T* J( y N
_% F7 Z! }" N1 z; R2 f; Q6 i7 V' e$ Q4 c) W7 M# `
* ~2 Q1 a) B* `' R7 I# V
( [3 M7 d& m; y' Q% o- Q1 ]% z0 |3 G0 b' ^( |
4 K# ^/ J5 R) l# b
​; Y& \9 a+ M! f( W
​
2 d0 l- v1 q+ ~) Y6 j# R$ I4 o9 B
0 M4 T. V# {) J
& C: P2 i f: V6 q
. L2 p; Z9 V% G$ |* I6 n; h0 `, r1 p3 q) I8 Y
|
|