电子产业一站式赋能平台

PCB联盟网

搜索
查看: 3944|回复: 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两款不同架构的处理器。8 N# w& G' ^2 T9 y

* G( v4 _, V; a- O6 |
5 b2 L# S! d6 l: p5 v8 |
那么这款DSP + ZYNQ核心板,是如何实现核间通讯呢?" b' m) y) L0 J7 [9 O$ X

2 r9 O, z5 I$ }! W* X: a' h
! G9 `; ]: \2 t
​
, o2 J; g! k, N( ^6 }
, T+ V/ S6 E  w  F

4 v' N+ |- T6 u! z' B核心板简介
: v8 j; i% V' u3 ]; YSOM-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等通信接口。
/ U7 x% `$ V5 c$ E. p( T  R​
3 W  e9 o, _: j. \9 I​  X0 r9 O' k; ?7 x8 [& O0 L+ [
( F; q8 _* Z5 G& ]5 F1 ^8 e$ g
$ d( M, s" ~: w: o: y; M& }

: |8 \4 E/ l$ U' Y7 a: _
, E# H; U; m7 T: j4 v
本文主要介绍DSP + ZYNQ基于SRIO的通信案例。3 w! a$ s' j5 s- [8 w
案例源码、产品资料(用户手册、核心板硬件资料、产品规格书)可点site.tronlong.com/pfdownload: L3 B* O7 x$ d8 d0 ~, ?

5 d, X2 E! @9 i7 g; N7 j, |/ k

, |6 o3 a! y- n" R6 e) S. E  _2 [% g8 b# P9 r3 m: D$ a  h  I

( K: M9 S' D; C7 j$ O$ [1 SRIO简介SRIO(Serial Rapid I/O)是高速串行RapidIO通信接口,常用于DSP与DSP、DSP与FPGA之间的数据高速传输。SRIO引脚占用数量少,支持多点传输,速率可配置为1.25Gbps、2.5Gbps、3.125Gbps和5Gbps。4 z& X4 _& v" |: K0 s
SRIO包含三层结构协议,即物理层传输层、逻辑层。
# I% `3 t( C+ n% p1 `(1) 逻辑层:定义包的类型、大小、物理地址、传输协议等必要配置信息。
9 V  R2 J& w/ t; Z: d$ F(2) 传输层:定义包交换、路由和寻址规则,以确保信息在系统内正确传输。' S) h. F' d( [" l5 w- n
(3) 物理层:包含设备级接口信息,如电气特性、错误管理数据和基本流量控制数据等信息。6 Q+ }8 Q7 O/ @1 s5 s
RapidIO体系结构如下:, w, W& E" ], c7 e8 U+ V) ?

2 T( K' h  x; g! O% j

7 f* S- [1 i$ e( Y6 Q& c3 Q4 l/ v* Q  F
, A6 ~; \7 g9 B! E% ~* o& a2 P+ e
​
7 X% J7 w! t( @1 {4 r! w. p# S8 P; u​
' A* ]9 k( G* ~1 H4 m+ Z& T$ C2 A' b& P
5 n2 U$ o$ O' i" m, ?: _, S# j
2 SRIO通信案例
  R# T+ c7 ?' a; q
5 e6 s& e2 w* [, o! l

! K. j0 b8 ~5 N5 k
* ]6 c0 K1 R$ d; M) r
2.1 关键代码2.3.1 DSP工程(1) 程序配置说明。& a9 v% L$ ?2 ?& i. ?
​* s% U: r4 b0 p5 q

  l7 L! |! ?) ?- Y, @% \) [) n% Q$ R
3 h- Z  X$ v, n3 h) _

/ t& X5 V3 u4 Q& k" v

* j1 Q& _* ~( t( l. K( c
) ~3 o  \& \; y: X+ x

7 u2 w* O. J- [) e' s- {3 g(2) 使能SRIO PSC,初始化SRIO子系统,SRIO通信测试。
" k5 h/ Q- M# ^" f/ K7 o# e6 s( a7 _: s7 S, M
! Y, F1 s  s) P' `
​
' M% Z4 T& g) {' g- i
0 c( l9 @7 }& d; i- d
- T: `2 w5 ]- R

% I* d/ P  n- i3 X) ]% S

+ c- {2 j( e. u& f) D# H. f
7 z( `6 S9 k, ]' S

9 P0 \: u  V. l/ u​
9 A- [8 Q" B2 P6 y+ _0 D0 Y5 b" R1 W$ B2 U& i

% z5 l( A( A, w% C5 ~) |1 q- C# z& s  R# h- B" x- J

# G: A  j5 {1 j. o! F3 N​
% `- Q; F# G+ G+ ~: `/ x3 h( X8 }/ i) Y- K# Q+ L

+ ~, K1 x! c' j/ z$ O3 _" O. R# _: r: ]9 c

+ ?2 C4 }& g  e4 ]' `- ?. T' Y# g+ d/ w! g* D0 q4 M
% m' }# V% j& _
(3) 以NWRITE + NREAD和SWRITE + NREAD模式进行SRIO通信测试,单次读写大小为transfer_size,单位为Byte。w_format_type写格式类型在main函数中调用srio_test()传入。) D& y* W8 W7 R  H9 A& T% Z

6 Q# a. Q) K( b" _% k, }6 `

8 G! ~: X0 c" k2 Y2 l# l
' `# v& X1 j6 A' g* b8 C/ u9 ^# E
' @8 Y' A. k8 J7 U6 O
​
5 F( ?2 `# |, l1 @6 ~* o& Q( F' V8 P- k9 Q" H$ n

# G: i# j8 `) l8 ^) w, ]! c' H+ ?6 f0 _8 I* F+ V9 X
! y0 M; P% t$ o% b& ?4 j

7 N' S2 J( ^) ^+ u7 _
, i, N0 i/ J1 n' ?& a' o
(4) SRIO写测试流程。
7 B- L/ b! E# m  o& q# Z9 d0 n
5 H1 j7 U3 G% t
% E$ N1 Q/ z0 i2 ^5 D, t8 K
4 r2 f! L5 X  S* v

4 r. r: A' g7 G- m, @​4 q! `6 A5 W! B( `* O" ^- u7 I
​
# R, S( q* ?5 g1 Q​
/ Q- i% m+ u1 C) p1 V$ p7 E; }- E
# k1 p' f, v. g/ L) g. _$ A
, J! g7 W7 p  t9 k5 S' _' ^

  }' _5 x: p* O- W$ h  T/ j, ~- k/ g

+ }$ q8 q8 D" b, j: N8 e8 v
3 J7 d1 e. Q: H" w7 `- U7 e- o4 z: m

; z  Q6 Z: }) w* i2 `1 j. y(5) SRIO读测试流程。
/ ^' I# B) f0 N8 y+ V+ }' K8 k0 x
( m: T# R, A4 C9 r+ o% O1 u

4 i! w7 r3 C! ?. t' L
8 |; Z- Y5 X& x- r! @

/ l8 n5 c# j6 p9 b* m- }​
6 z1 E) F  Y$ ?( }  z​
* G% [( _. E: E4 n  ^  T​
+ x' z  A2 `+ e
( Z7 [2 n) x) X; Z4 A& \
/ G9 D+ m# P0 G' _$ _4 I

) a9 `* |+ W# B! r. }, i
& Q* {2 A/ x0 a' u) ?- c, U

3 y1 ~0 O1 C, F
0 V# o% b( n8 l: U
* O+ W/ B2 A$ Y7 ~0 w$ r  W- Q& o
* Y! E, Y5 A+ w, u
2.3.2 ZYNQ工程(1) 端口定义。# I6 f. F2 L) \; u0 T

$ K1 _& c: P4 G6 n) G! x9 B

, N6 _* w) l2 J0 W- d8 ?5 f$ j3 Z3 |6 T7 I1 \  j

; a; ?0 \; F" a4 m  t* `/ E3 n: d​: k4 ?" U" ]# x. H; [& e4 X1 E
; a% z& U* X  K1 r
8 u' h1 d# m9 v4 D6 N" ^
* }. R: I) L$ e
! J% P2 N% h! \# U; }

3 ?1 @) t, A3 M  F4 C
9 E: o1 e7 p1 h, R7 _
(2) 使用STARTUPE2原语提供的EOS作为系统复位信号,CFGMCLK(65MHz)作为系统时钟。. U( p* d4 i( g, e- N
5 `% W0 T! T0 ]+ j$ {

! T  F, X8 v% p# c5 P4 }, Y
- q) r$ n2 |4 H) r: X% c# B

6 g1 l' W2 t& H: v) U( i​) n; l' B3 {0 M2 k4 k: E

$ \# J. b: D1 T

: y+ T' L0 l& g% e, C, G/ O# X+ f+ s; ]% i) G
3 [, g% x0 v' }3 f- O9 N  g0 }3 s
) c8 `: G0 ?( ^' k( E

* J9 Z, |5 |- e  B(3) 例化Serial RapidIO Gen2 IP核。$ `) c3 B1 U( B8 a+ M

  Z# }6 U  X$ i- M& g

& N$ U! W' z% @9 ~& D9 `. r( S- i, ?
' R, l; I/ a$ A2 R5 U
​# m3 G4 b( _" g; T/ q
5 y9 U; n) k5 @+ h$ ]+ C8 L
9 V% K* x/ V7 O2 z1 J& ]- w

/ o7 Q2 y; E; k  s, F2 k) U1 F5 O7 ~

4 m# y3 i1 W1 q8 O8 ?" e6 A$ {; Y) d  U
$ [, y; d) H+ Q/ Z+ D5 \% Z
2 |: G+ O5 v/ g2 J% L* s5 O7 e7 J$ _
3 ^% ]' Y  c! j% s% i* M
​5 _" U1 F) t- B2 Q- j0 [* T
( c: B7 D4 |4 A4 j# h6 g

' _- R2 P. J$ X4 Y6 F" g1 Z- `# o9 }
6 g/ h6 E" k) M
( V* d* `: H1 L5 V# U4 F$ m% w3 H3 ]
* o# |( e3 Z3 {# H+ x' B
​! h+ t! e3 N" C0 b! F, q; S
: D1 O, ~8 X/ r+ z7 B% J" M

" n, W0 a, q0 E: L* \
% j$ M! M9 M; u6 L

) T. e/ A& W3 X0 D- n- H- [3 f7 V, h, ~+ q

/ V8 a/ n0 }" t: w6 q其中Serial RapidIO Gen2 IP核输出的log_clk为125MHz。3 Z7 y) ]4 m! ~$ E( {1 D
6 p0 a7 G) O+ n

# h$ W' h' _* L3 }, w. [4 _; `$ B, G5 \* L

. m, U$ N5 P4 P( x​  G* ?# x% @/ F, x8 [

7 n. t' ^# P5 o5 g; l2 s% V- R- J
* |( Q( l: M% F8 |9 g
5 \/ n# N( d. s4 _
0 j# e" L% [6 [- `1 R# C/ Q
4 O' e; ?* Z0 I2 ~% @& V
4 k" K0 E* ~) h
(4) 调用srio_response_gen模块,其接口与Serial RapidIO Gen2 IP核连接。
0 `# _5 @2 ^$ i- R- n) D2 W( p; W
' G$ M5 i# q% Q+ _1 [

5 V$ v: o1 H2 }$ J0 b& \
$ ^  ]* p, V2 q2 W- Z
4 S+ g3 I) ~* o% A1 P
​
/ ~3 E8 a9 H% e# V2 P. l7 k( c- |4 B0 q# j( u5 D
' {. I: X8 `3 l3 r' i
- a( U2 {$ O; x

& |8 n7 e& k2 J+ }​
" D) f1 }8 J* Q7 e​
: V3 o7 k* }& O0 ^! \  s1 \( A( D+ q  s( |8 t+ T* g$ g

+ w  Z3 [& n, |6 b1 m; u4 {: ESRIO详细开发说明请参考产品光盘“6-开发参考资料\TI官方参考文档\”目录下的《Serial Rapid IO (SRIO) User Guide.pdf》文档。) t1 P6 ]! Z0 K! ?5 [
备注:关于本案例涉及的IP核、模块的配置详细说明,可下载产品资料进行查看。
" x" g$ c+ l9 V
2 ?1 V4 C0 r* q/ Q, K9 |, y
4 F6 ]3 x/ }  k% j, ^, U0 t

$ i; E! M5 t$ O- u3 U2.2 案例功能评估板DSP端和ZYNQ PL端进行SRIO通信测试,并统计读写速率。评估板DSP端作为Initiator,评估板ZYNQ PL端作为Target。SRIO默认配置为x4模式,每个通道速率5Gbps,并分别使用NWRITE + NREAD和SWRITE + NREAD模式进行测试。ZYNQ PL端使用一个36Kbit的BRAM作为设备存储空间,将DSP端发送的过来数据储存至BRAM。! _% J; b$ S( O5 p+ `1 d3 W  N
2.3 案例测试先加载运行ZYNQ PL端程序,再运行DSP端程序,CCS Console窗口将打印测试结果。
1 u4 q" W: T; F' M- d, NNWRITE + NREAD模式:NWRITE= 12.50Gbps  NREAD= 7.74Gbps$ l, ?8 ^# @: d$ O  [
SWRITE + NREAD模式:SWRITE= 12.49Gbps   NREAD= 7.74Gbps
5 K5 K" D) i! n* Y2 T备注:由于写测试仅统计发送数据至SRIO FIFO的时间,读测试统计发送读请求并等待Target发送数据完成的时间,因此写速率将比读速率高。
: R: d8 L3 [2 m3 N
) P# b! {1 _; }+ @, x

- z0 [' f# n4 Y* [  U
4 x: e1 H6 @, w! @: N6 Y5 y
* ?& H1 ~* E; e; b; t1 y0 \
​- ^8 H5 a- K' X; Q& ^* j/ {
8 ^: }, v$ \8 g; v5 t

) t3 W0 L5 P* p! \* z- d& R
4 c$ M/ \, t. S0 B, C  N7 O, S
' x* X$ d" o5 ?1 W

+ e' u/ M  ~, R/ N# C+ S. Z5 X# _7 t

5 _6 i. ^: V) e/ g5 v
2 d% |7 f/ }, x- I) N- m# X8 y
​
* l- f! h5 u' P/ S+ k​4 @# K4 m# F  D( D# u, `* t1 P2 M
' C2 X. H4 \& I0 d3 b6 [. U4 s

) k4 a9 C  g; e* @# ?" @, V
5 |1 o4 {# M  ?7 u" f0 @/ Y
* i( |. v0 N, m% d8 s" v
嵌入式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 返回顶部 返回列表