找回密码
 注册
关于网站域名变更的通知
查看: 352|回复: 3
打印 上一主题 下一主题

多核DSP的多路同步时钟信号设计

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2021-10-22 11:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
多核处理器是最近快速发展的电子器件,单个芯片内集成了多个同构或者异构的处理器,使得其计算处理能力得到较大幅度的提高。DSP处理器由于其具有较高的数字处理能力,得到较广泛的应用。多核DSP芯片以目前性能较高的TMS320C66系列为例,其中TMS320C6678(以下简称C6678)含有8个处理器。这些处理器可以独立工作,也可以并行联合工作。当它们联合工作时,相互之间通信和握手就非常重要,尤其是在对时间要求较高的场合,时钟的稳定和同步就非常关键。时钟的稳定和同步对系统设计、时钟源、时钟分配、电路布线、时钟线屏蔽等都提出较高的要求。  本文利用CDCM6208时钟分配芯片,以此输出多路时钟,提供到8核DSP芯片C6678,提供出DSP核工作时钟、ddr3数据读写时钟、RapidIO和PCIe数据传输时钟、千兆网络加速器等时钟信号。文中介绍了详细的电路设计、时钟芯片配置以及多核DSP的配置,相关片内设备的初始化等。
$ x2 A6 R' z& Q  ^4 _  }4 Z  1C6678及其结构/ b5 X$ L6 e- ]. I
  C6678是ti公司多核处理器中的一款8核浮点型DSP,最高工作频率达到1.25GHz,单核可以提供40GMAC定点计算或者20GFLOP浮点计算能力,单个芯片可以提供320GMAC或者160GFLOP计算能力。C6678的片内结构如图1所示。6 q. l1 I3 M! h4 T9 [% M( t/ `

) _3 p# m$ g) g  y) R! u1 s
- R" X2 o3 c: p
7 H& h$ i6 I- P; ?  j7 ^9 s- R% r* X
C6678的每个核具有32KB的程序、32KB的数据以及512KB的2级Cache存储空间,芯片片内具有一个4MB的共享SRAM。C6678具有DDR3控制器接口,可以外接DDR3,直接寻址范围达到8GB。C6678的片内外设有RapidIO、PCIe、EMIF以及SPI、I2C总线等接口。这些接口通过片内的高速互联总线和各个处理器交互数据。
6 m! c) d5 a" e% B$ o  和网络相关的片内设备如图1右下角灰色模块所示,主要包括两个对外的SGMII接口、以太交换和网络交换模块,以及用于数据管理的安全加速器和包加速器,是为了快速检测数据的校验以及协议是否遵循网络标准,对于错误的数据直接丢弃.降低CPU的负担。为了加快网络和CPU的数据交换,片内的队列管理器用于管理网络包或者网络帧的缓存,分发等功能。这些数据都采用数据包DMA读/写,不需要CPU参与。! a( }$ r2 w3 z9 l
  C6678的其他片内设备包括PLL、仿真口、信号量、电源管理和复位管理等模块。其中PLL配置CPU和外设的工作时钟;仿真口用于连接仿真器,实现对软件运行的监控;信号量实现对DSP/BIOS操作系统中信号量的控制;电源管理实现整个芯片电流电压的控制;复位管理配, {0 E. B8 P& }9 g6 n: ]
  置启动的方式,硬复位进行全启动,软复位进行部分启动。1 r9 H  l9 ]& L% Q. W+ {
  2CDCM6208及其结构
" s# ^/ D$ n  |! Z9 K0 ]) r9 @  CDCM62xx系列芯片是TI公司针对多核处理器专门开发的时钟产生、驱动和分配芯片。CDCM6208是该系列的第二代产品,相比于第一代CDCM6208的最大优点就是功耗大幅度降低,从第一代的2~3W降低到0.5W左右。而其功能、指标和体积没有弱化。CDCM6208有两路可选时钟输入,8路时钟输出。8路输出中的4路只能做整数倍分频,另外4路可以做小数倍分频,满足多核芯片的各种不同的时钟需求。8路时钟支持LVPECL、CML、HCSL以及LVDS信号电平,最大支持800MHz的时钟频率,满足RapidIO和PCIe这些高速接口需求。时钟抖动小于265fs。其控制可以通过标准的SPI或者I2S接口实现,非常方便灵活。TI公司提供针对该芯片专门开发的图形化控制软件,用户选择所要设置的时钟工作方式、输出频率等参数,该软件生成其内部寄存器的值,通过SPI或I2S接口写入就完成整个芯片的配置。
! C: h3 S8 t8 Q: N8 O  CDCM6208的内部结构如图2所示。从图中可以看出,可选两路时钟输入后,首先经过一个14倍频器,作为参考时钟驱动片内VCO产生时钟信号。为了提高时钟相位噪声,倍频后信号经过一个片内的滤波器,该滤波器可以由片内提供阻容电路设置。VCO时钟功分到两路预分频器,预分频器只能4、5或者6分频。预分频后时钟再次进入后期的分频器。每个预分频器功分到两个小数分频器和一个整数分频器。分频后信号驱动后输出。从图2右边输出可以看出,整数分频器输出的Y0和Y1两路时钟频率一样,Y2和Y3时钟频率一样。小数分频的Y4~Y7可以各自设置CDCM6208的这种时钟配置限制了其应用,但好处是降低了功耗,目前这种配置满足绝大部分多核处理器的要求,尤其是TI公司的C66系列以及AK2系列多核DSP可以实现无缝连接。& a: x& R! f; E. q6 a& u1 {4 m

! f( Y: F4 L. \! r6 w

2 Q! h) V1 c7 Q
3 L+ u, z( ]$ P3硬件设计
8 T; @  W- ?2 Z# L6 _. q  根据TMS320C6678的应用,所需要的时钟如图3所示。4 E! Y! O0 F; n( ]1 d7 J, g
  其主要时钟包括:①内核运行时钟,该时钟输入是100MHz,DSP片内PLL将其锁定到工作频率,最高为1GHz,最低为700MHz。②RapioIO接口和HyperLink超级连接接口工作时钟,这两路时钟输入都为312.5MHz,RapioIO倍频4、8、10、16,工作在1.25GHz、2.5GHz、3.125GHz和5GHz。HyperLink倍频到40、80、100、160,工作在12.5GHz、25GHz、31.25GHz和50GHz。  L1 u2 Y9 {  L$ g# d3 `, f6 @+ P
  ③PCIe接口时钟和PA_SS网络加速器时钟,这两路时钟都是输入100MHz,内部倍频后相应的工作时钟,满足各自接口传输时钟要求。④DDR3时钟,该时钟输入为66.667MHz,倍频20或者25倍,工作在1333.33MHz或者1666.7MHz。这些时钟在DSP片内都各有独立的PLL电路设置,其工作原理和设置方法基本一致。图3中的单独25MHz是专门为千兆网提供的工作时钟,由一个单独的晶体提供。C6678还提供一路时钟输出信号,默认输出为核时钟的1/6,图中为16.667MHz,输出时钟可以检测C6678是否正常工作。! C8 }0 L. C4 i* N

( D6 o' c9 i( V: D, Y( B/ t8 s

- W2 o( E; p; m4 r, c" q* Y
# Q' R/ @/ _) q! z
# k$ L9 V7 {* ?5 S6 d
由于C6678的核时钟由CDCM6208提供,所以对CDCM6208的设置只能由另外一个处理器完成,只要该处理器具有SPI或者I2S接口即可。本文使用低功耗的DSP芯片C6747来实现多CDCM6208的设置。C6747和CDCM6208的接口如图4所示,采用标准4线制SPI接口控制,为了避免干扰提高传输可靠性,在SPI的片选信号的写信号分别上拉和下拉,这样在空闲下其引脚状态不会被干扰。在控制CDCM6208之前,需要对其进行复位,图中使用一个通用GPIO引脚控制,当CDCM6208配置成功后,会提供一个状态检测信号,该信号连接到C6747的GPIO引脚,用来判断是否正确配置。图中C6747还使用一个引脚控制CDCM6208的低功耗设置,当该引脚为高时,CDCM6208进入低功耗模式。4 ^: A/ [! c1 _; j, n  G
  4软件设计* K0 i) B, k7 F
  由于系统采用C6747控制CDCM6208时钟信号,所以C6747的软件是系统整个初始化的关键,C6747的初始化软件主要包括对CDCM6208的复位、配置和检测以及对C6678的复位、C6678外挂Flash的复位等工作。整个系统的软件流程如图5所示。
  O5 o9 z' F5 g: |/ |7 P9 w8 w5 G; b* K. K2 g/ _* l9 a
上电启动后,C6747软件加载成功后,复位CDCM6208,为确保复位成功,C6747要等待10ms才能通过SPI接口配置CDCM6208。配置完成后,C6747可以查询CDCM6208的状态输出引脚,检测是否配置成功。如果配置失败,重复复位、配置、检测这几个步骤。配置成功后,表明CDCM6208已经输出准备时钟到C6678,但在此之前,C6678仍然处于复位状态。由于C6678的程序保存在片外Flash中。所以,C6747要首先复位Flash,等待其复位后,再复位C6678,查询C6678的输出状态,确定C6678是否正常下作。如果输出不正常,仍然重复复位Flash、复位C6678和检测这几个步骤,直到初始化成功。
% \6 G7 _6 m# E% W% X  结语9 ]) h$ Z, b, `) k& ~3 T' V7 D
  多核处理器由于其接口丰富,运行频率较高,对时钟设计要求较高,一般要求一个高精度的时钟通过分频/倍频方式产生多路时钟到相应的接口。本文以多核数字信号处理器C6678为应用对象,通过CDCM6208产生多路时钟,提供到多核DSP的核时钟、DDR3、RapidIO等时钟信号。通过单核低功耗小成本处理器C6747实现对整个时钟电路的复位、设置和检测。本文介绍的时钟配置方法具有通用性,对同类产品的时钟设计方案具有一定的参考价值。
  P7 B! t5 ^& r5 N8 S) M' R. K* D

* b5 @' a: {0 H2 e, K) p

$ _1 j7 v8 ~2 Q/ Y+ `
# S8 O) b0 f5 z8 ^
, {! ]" R' N0 ~3 @! d

4 _5 ?6 A1 |$ l. ^9 j
0 _2 Y, J, L. L" C- A! ~& a/ l

- Q0 d2 R. Z+ H6 R- K

该用户从未签到

2#
发表于 2021-10-22 11:29 | 只看该作者
为了避免干扰提高传输可靠性,在SPI的片选信号的写信号分别上拉和下拉,这样在空闲下其引脚状态不会被干扰

该用户从未签到

3#
发表于 2021-10-22 13:07 | 只看该作者
allegro 丝印大小

该用户从未签到

4#
发表于 2021-10-22 16:33 | 只看该作者
多核处理器由于其接口丰富,运行频率较高,对时钟设计要求较高
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-8-11 13:34 , Processed in 0.125000 second(s), 23 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表