电子产业一站式赋能平台

PCB联盟网

搜索
查看: 3822|回复: 3
收起左侧

DSP + ZYNQ核心板,是如何实现核间通讯呢?|基于DSP + ZYNQ评估板TL6678ZH-EVM

[复制链接]

678

主题

902

帖子

8293

积分

高级会员

Rank: 5Rank: 5

积分
8293
发表于 2021-3-16 18:38:54 | 显示全部楼层 |阅读模式
上篇推文为大家介绍了创龙科技(Tronlong)最新推出的DSP + ZYNQ评估板TL6678ZH-EVM,由核心板和底板构成,核心板(SOM-TL6678ZH)集成了C6678和Zynq-7045/7100两款不同架构的处理器。, n% T# q6 H+ E- ^- _# @/ m; s/ S# N
0 Q9 g# d- K4 D1 U, Z

$ U+ U  D* {  J! @那么这款DSP + ZYNQ核心板,是如何实现核间通讯呢?
# N. ~7 |  m& R9 b2 O
& k8 u: {' n" T' q+ o
; t# R  H8 H/ z+ b: U% C3 Y
​
+ j. X3 b# Q# ]6 n- O' C" X5 N! h6 S

' c/ V6 U4 q0 V) p- Y; i- p核心板简介
7 U6 j& w8 @0 h3 R& rSOM-TL6678ZH是一款基于TIKeyStone架构C6000系列TMS320C6678八核C66x定点/浮点DSP,以及Xilinx Zynq-7000系列XC7Z045/XC7Z100 SoC处理器设计的高端异构多核工业级核心板。TMS320C6678每核心主频可高达1.25GHz,XC7Z045/XC7Z100集成PS端双核ARM Cortex-A9 + PL端Kintex-7架构28nm可编程逻辑资源。核心板内部DSP与ZYNQ通过SRIO通信总线连接,并通过工业级高速B2B连接器引出千兆网口、PCIe、HyperLink、EMIF16、USB、CAN、UART、GTX等通信接口。4 b! Z6 r8 C* R1 k  m0 i7 R
​: q# X* e1 J! i, K3 Y
​
; z3 ]; P) W7 Q8 U& _3 m3 M" o) Z8 \2 t/ i
* P, h3 i: E8 F$ u

6 r9 X7 v9 {  N1 Y
  v8 x1 L; y  i
本文主要介绍DSP + ZYNQ基于SRIO的通信案例。
* L9 u, i+ x8 Z3 h* K5 i4 L+ q  e案例源码、产品资料(用户手册、核心板硬件资料、产品规格书)可点site.tronlong.com/pfdownload, ^! C  t9 d2 ]$ a  l9 P: }: z5 g
6 p: g+ Z- r  J5 A  ^
2 d' J, C, F, h5 M: I$ h- m9 O9 K

  F: _  i$ \, m; a0 B2 p( k: d

5 n& a3 w5 c) ]4 H; {1 SRIO简介SRIO(Serial Rapid I/O)是高速串行RapidIO通信接口,常用于DSP与DSP、DSP与FPGA之间的数据高速传输。SRIO引脚占用数量少,支持多点传输,速率可配置为1.25Gbps、2.5Gbps、3.125Gbps和5Gbps。
1 Q3 j0 U% b3 [- S, ESRIO包含三层结构协议,即物理层传输层、逻辑层。
" i! S5 n: a1 M+ ^1 w: y+ p(1) 逻辑层:定义包的类型、大小、物理地址、传输协议等必要配置信息。
+ b0 y) y0 a: c* ]9 U! S$ ?) i' V(2) 传输层:定义包交换、路由和寻址规则,以确保信息在系统内正确传输。
3 s8 o$ U# V  R' e& q3 n' Q4 Q(3) 物理层:包含设备级接口信息,如电气特性、错误管理数据和基本流量控制数据等信息。
' x2 e+ d" B4 b' d- C, g- uRapidIO体系结构如下:
3 d0 n0 ~/ v, e' [/ h0 c5 y8 L: z3 w) g" x* `
0 m3 ]8 ], p% g4 O$ ^# }

+ [( _. A1 ?3 n) k( K8 h
. n( o/ y) J: b( a' U3 t
​
  l0 y# b/ g" r8 Q3 [5 @; I  k​" v9 R/ i6 l+ N- x% _

5 e6 }' I9 v# Z) P# ^' h
* S0 f2 J3 ~& d) t  @7 E8 s4 I
2 SRIO通信案例
# x7 o5 u1 g- V8 d% j

6 E9 v. u4 @: [* U& d1 u0 s7 \
0 Z; _6 m) G$ T: O3 ~

* g& f6 k" h: L& a2.1 关键代码2.3.1 DSP工程(1) 程序配置说明。1 [8 f% w+ p$ C; H, Q
​4 e2 i) |- G# X/ u: ~  Z) m

: G" @9 @0 l1 O% v1 j

" \4 B" a/ l" @, P9 }
& ]2 X: E: c4 D! Z, r! ~$ b

9 x% N: P; c. G4 s9 y/ D2 ?7 c. j9 R, X3 j( s* q/ V. i$ @
# @6 c3 d2 s& Y5 \: i/ x2 [
(2) 使能SRIO PSC,初始化SRIO子系统,SRIO通信测试。  C9 r" }8 X7 w4 ]; @3 f8 S/ d% I

' F6 r/ f8 H9 ?

- l! J+ k0 O: i5 r9 }% g4 f6 h​1 c4 t- {% p& ?1 m/ k+ V2 D1 p

  |. d2 o; P4 v0 _% j% d- F8 |& @

. x- y) B0 d# ~, V4 q" M9 I* u( O3 {3 v0 k2 B; O, ?0 p& |

+ Z3 f& O( {% Q; W6 F
( b/ v7 Y' ]! ?( v

1 d1 C8 t( L) @! f* w" O( _7 ]​* N2 A1 I( p4 S

# F1 q4 W+ r" Y9 v( v) R9 D

- w) U; U9 P. y' {! z
+ g& l% V( e6 s* t
' b' o7 i: \( C1 m: E3 v. H9 ^# o" R
​
  Z; y) r, S* M" R' d! S/ \) n' I1 G$ v0 c
: Y% O( ~! f! F. A7 z

1 s) R8 u7 o" I7 N" H% w) R6 b

3 X$ f$ v' V4 Z( W  d- V# P2 A, ?! Q
$ u% r9 U2 Z# z7 C3 e6 w% V
& `/ f+ K7 V# d' M
(3) 以NWRITE + NREAD和SWRITE + NREAD模式进行SRIO通信测试,单次读写大小为transfer_size,单位为Byte。w_format_type写格式类型在main函数中调用srio_test()传入。
: Z( Z$ F2 v0 Y3 g3 Z& g+ X* U- |9 x1 [. m5 W  X" d/ L. @
( g. N' d* q3 O" i

) s: v* k, ]3 n/ V, U3 b

! p8 P1 _( s, C+ o​2 _4 `: n9 t7 V3 p
' V9 J5 R. X4 @- B2 u

1 X3 G  W! r' }- `4 Y; C( u* ^# e) `/ g# [8 U2 I+ F" ?" g
/ ^" z* W7 r6 y# Q5 t  z% b
) C) n7 {2 u6 V; x! I7 |- v7 I

4 Y& o7 t+ ~: `7 e+ }0 |+ W(4) SRIO写测试流程。! p4 e7 c% O, y4 E+ R( A
3 C0 F$ j; e- C
0 i. [5 l: W4 Q1 I& v' H* n

3 q2 \: u) S' k5 Z' T2 [+ {
) o4 T6 Z- b0 [. N' Z! s, }5 e% N
​
" I  |  Z. P! ?& y# S​% a' U6 x: K0 r4 [
​+ y! ]+ U' v/ m' k; n: C
" }* S/ D' X+ F9 ^# U, H

* J5 u/ M7 k: I" v( S
% u/ P8 d  U0 q9 F+ x" x" _6 d3 m
9 {6 F8 N8 i# n" s4 [

; H- c4 x, y6 s+ n
  ~! p) Q  h5 j, d; K5 |
(5) SRIO读测试流程。
% s# v1 t& b1 ]; @
: X0 r  a) e9 @) F% [# _) p( W/ i. n

) b7 N7 s% R5 K7 v" {2 ?* W
% x% n' o2 L. W1 `2 ?* \$ ]% ~

, W8 e& }  `# f( K, O1 Y​1 O- D, N7 w& e' C9 Y5 |) y' y
​
& y' a/ m  ^1 W. |2 {4 ?/ Y​
/ s% w1 }# ?, o: b6 B4 D% k1 v4 @/ U8 Q9 F  ]9 V* N% C/ N8 y
0 @1 i& d6 H4 z. \" c! y
4 r$ u3 R0 j( E- P4 f7 p/ p
) k# c6 h0 D! ?* y

& ]+ _- E0 U- N, T5 v0 w- \

9 ?& U7 E5 @. b1 ^
% e' Y- t3 {* T. l
* S! w0 v% |2 l  E' b; w6 z3 E5 j# m
2.3.2 ZYNQ工程(1) 端口定义。  x0 R, U, b/ U* I% N9 x: V) q( F
% c: i$ s3 \% L* d# [: f3 b' ?

2 t4 g: F' z# q. ~/ N# L% a  a% C' P- l* I
: z3 L$ E0 d) w" F" k" d8 M
​
7 Y2 a7 J# @) I* ?# u. m9 x" ?# A
8 r( y  g) g4 ?1 z
- ~! b7 f" ]+ m* R- p+ c
' \2 N) h! q/ s! z0 N9 ^+ E. O' g' A5 ]% w
! z6 ?' b. a/ z! B1 [

: F6 t; [1 J) g& K+ w. v) D1 a(2) 使用STARTUPE2原语提供的EOS作为系统复位信号,CFGMCLK(65MHz)作为系统时钟。
! O* S4 y9 j% j" l) d) ~
( O& f6 U$ W/ W# H
0 g# A; G( l. l
1 i1 [, _# g3 I: @0 V/ e

5 @; c# F3 ]) T) }​( H  R8 S7 A8 {8 F* A5 l

7 z) W# @& w5 f) s& b  z
* j. V) ~9 N' R* `$ N+ u/ U0 r: E$ s

4 k) ?1 f  X  G( F+ M

' x% @0 c1 y, Q6 |
' c6 b$ `: i+ x7 b" Z5 b1 G

% D5 B3 ?9 h5 k+ T" S/ B! X(3) 例化Serial RapidIO Gen2 IP核。
& i! `* I+ @1 |, c' ~' y, H6 A# G7 I9 G5 ^4 T/ x! O

0 e) E# O$ ^; ~) \9 u# H
. F8 j% Y: g% ~$ `* z6 U. ^
0 {  g9 r* x6 _" h- I' X- O
​
9 L7 P& N3 k% T; c  t- w) X% h1 l7 O6 I' h& H; O

, s# h& h) f( p# b5 r
) e2 ]1 o( u7 Z( n, _
. Q* t' L# o. C4 L# e1 }. R  v

2 l# B6 P4 k( c5 c* _  Z) a

, `6 T* I* O4 \2 L' G0 S
' p6 U" i, N0 V! V6 {' t
" l1 o! w) G/ g+ c
​
. u" [) O2 h& @( w* h+ m/ m" |% b* U/ ?8 v9 P
/ S7 b+ \" ~; K" C1 N

8 U8 l- x4 K6 R, m

( R- |, X9 D  _# j  @9 m* e  G! z% p/ L6 i0 l% c- v
/ i# ^4 U- Q; N6 s- g5 d- g; W) d) P1 |
​
; ~( u8 S0 f3 K8 c
" M* E7 r/ a- l! e( P

& V& ^% {# I! d  U7 l0 Q) ~* T$ e# C! s- Q& r
1 \/ P+ H: f# L7 U% V. F: R

. e* t+ S( a$ k: E: \8 E& W
7 N* G" z$ C8 D  j
其中Serial RapidIO Gen2 IP核输出的log_clk为125MHz。, c* n  k4 F) _
& e( `' [/ X& A
5 M, X1 I9 I( l/ y5 i# Z
* F! U& Q' j( s" p! |

  P  K" @! u8 p6 k+ n​
2 ^! n  S  T! j- ]! a. ^/ B1 b( D; Y+ m8 P

( u  d4 ?8 P1 |9 D1 g: n$ c
& ?3 V3 v1 s  D! `4 j8 ]/ P9 `% ?
/ t3 i5 d& m# n4 x' ^

# v  c6 b! H8 `$ K+ f
0 ]/ u- w& E- K- l
(4) 调用srio_response_gen模块,其接口与Serial RapidIO Gen2 IP核连接。
  S) j4 q# J0 }! O' {9 @" h( P  E0 b  ~+ d2 I% b
6 I+ e6 [1 P6 v4 ]
6 ^; P. F1 y1 C( E: @

) g" p$ H2 x" V" ]: d( q* Z/ s​
$ U  Z* y  o$ Z5 y
+ j" Z9 r3 x( e* W$ x- Y6 K. h

4 p* t8 M/ ]( a5 [& r" ~6 j" x) f4 C/ O8 S# I8 m
- t3 c9 b! O/ I) z2 z
​
7 B- `5 q: `) x/ g4 f% @- r, @​
1 Q, [4 Q3 H2 U9 j1 v7 a4 P! m& \2 \  ^

+ u( E# x- ]6 m. F7 J, r1 ]* `SRIO详细开发说明请参考产品光盘“6-开发参考资料\TI官方参考文档\”目录下的《Serial Rapid IO (SRIO) User Guide.pdf》文档。
' Y7 N/ B/ W# H; m, w, R7 f: i$ R备注:关于本案例涉及的IP核、模块的配置详细说明,可下载产品资料进行查看。" @4 p$ b( \, b5 D$ X- L) ]
! u& N! ?" z# w

/ {+ W0 O" b$ ?1 y8 L% _
) k: k4 A' o' a; ^. m2.2 案例功能评估板DSP端和ZYNQ PL端进行SRIO通信测试,并统计读写速率。评估板DSP端作为Initiator,评估板ZYNQ PL端作为Target。SRIO默认配置为x4模式,每个通道速率5Gbps,并分别使用NWRITE + NREAD和SWRITE + NREAD模式进行测试。ZYNQ PL端使用一个36Kbit的BRAM作为设备存储空间,将DSP端发送的过来数据储存至BRAM。
7 U9 {- M2 _# }/ l! r9 w3 o% C2.3 案例测试先加载运行ZYNQ PL端程序,再运行DSP端程序,CCS Console窗口将打印测试结果。/ T4 w# j0 v5 |6 j
NWRITE + NREAD模式:NWRITE= 12.50Gbps  NREAD= 7.74Gbps
% m" M+ C7 s$ Q/ ^SWRITE + NREAD模式:SWRITE= 12.49Gbps   NREAD= 7.74Gbps3 Q' y  g- W0 ?# z, G# `
备注:由于写测试仅统计发送数据至SRIO FIFO的时间,读测试统计发送读请求并等待Target发送数据完成的时间,因此写速率将比读速率高。. d* h7 R/ @' R8 H! N( M; H; z

$ _$ A8 d2 q1 T' f6 H" S; D

  G0 I3 i% Q, b" L2 B- Q$ J+ U" a2 f) I
; x" l/ z( G0 }0 z  S1 E/ `
​- X+ L( [% V: k
, M% L7 S- d' `( \6 p3 }5 Y
" K4 W6 |' S* r3 }1 D' B

8 y# N% R& o" D) l3 c
: r% ^' `4 m9 b; v4 y
1 x0 H6 M7 `) [$ p
9 C; ^! n$ f% @! N& E

: J& K; g; n0 v) W) ~0 f​
. Y% G! M1 x0 L. B6 H0 y& ^​
- z( L( o( |  n; N9 N) N# l+ k5 ]$ P- y. b+ ?2 `! L- B
" ]( e. e! {# o

) T* I) @8 g* O3 u4 Y
4 }5 y9 o+ ~6 X1 L* k3 S
嵌入式DSP、ARM、FPGA多核技术开发,学习资料下载:http://site.tronlong.com/pfdownload
回复

使用道具 举报

0

主题

13

帖子

34

积分

一级会员

Rank: 1

积分
34
发表于 2021-11-4 23:36:35 | 显示全部楼层
功能能性替代6678的国产多核定点和浮点数字处理器,国产替代是趋势,需要的联系QQ:191321088
回复 支持 反对

使用道具 举报

0

主题

12

帖子

52

积分

一级会员

Rank: 1

积分
52
发表于 2021-11-9 10:53:05 | 显示全部楼层
感谢分享。
回复 支持 反对

使用道具 举报

0

主题

15

帖子

44

积分

一级会员

Rank: 1

积分
44
发表于 2022-1-12 09:23:57 来自手机 | 显示全部楼层
6666666666
回复 支持 反对

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


联系客服 关注微信 下载APP 返回顶部 返回列表