找回密码
 注册
关于网站域名变更的通知
查看: 380|回复: 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的配置,相关片内设备的初始化等。! f  m2 J" u* P
  1C6678及其结构
5 w" b9 W% o+ g/ N' q  C6678是ti公司多核处理器中的一款8核浮点型DSP,最高工作频率达到1.25GHz,单核可以提供40GMAC定点计算或者20GFLOP浮点计算能力,单个芯片可以提供320GMAC或者160GFLOP计算能力。C6678的片内结构如图1所示。5 \8 Y9 x1 @- v5 Z4 q6 d7 d
2 @3 ]- }; b! Q) o

8 A8 N! k. l3 t
- K  U5 N( n; l2 @. J# G+ [C6678的每个核具有32KB的程序、32KB的数据以及512KB的2级Cache存储空间,芯片片内具有一个4MB的共享SRAM。C6678具有DDR3控制器接口,可以外接DDR3,直接寻址范围达到8GB。C6678的片内外设有RapidIO、PCIe、EMIF以及SPI、I2C总线等接口。这些接口通过片内的高速互联总线和各个处理器交互数据。
; N4 P; a* k' t% c6 N' q. _4 l( @  和网络相关的片内设备如图1右下角灰色模块所示,主要包括两个对外的SGMII接口、以太交换和网络交换模块,以及用于数据管理的安全加速器和包加速器,是为了快速检测数据的校验以及协议是否遵循网络标准,对于错误的数据直接丢弃.降低CPU的负担。为了加快网络和CPU的数据交换,片内的队列管理器用于管理网络包或者网络帧的缓存,分发等功能。这些数据都采用数据包DMA读/写,不需要CPU参与。
  K) h1 ~9 A' [* C) C! J, m! p  C6678的其他片内设备包括PLL、仿真口、信号量、电源管理和复位管理等模块。其中PLL配置CPU和外设的工作时钟;仿真口用于连接仿真器,实现对软件运行的监控;信号量实现对DSP/BIOS操作系统中信号量的控制;电源管理实现整个芯片电流电压的控制;复位管理配% P. T: y1 U4 y/ @/ c
  置启动的方式,硬复位进行全启动,软复位进行部分启动。  h0 N' u, {+ G
  2CDCM6208及其结构4 P, w# C% u6 W1 G+ w4 L7 f$ J
  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接口写入就完成整个芯片的配置。+ |) e0 F6 o2 G/ u$ F3 n! T& @
  CDCM6208的内部结构如图2所示。从图中可以看出,可选两路时钟输入后,首先经过一个14倍频器,作为参考时钟驱动片内VCO产生时钟信号。为了提高时钟相位噪声,倍频后信号经过一个片内的滤波器,该滤波器可以由片内提供阻容电路设置。VCO时钟功分到两路预分频器,预分频器只能4、5或者6分频。预分频后时钟再次进入后期的分频器。每个预分频器功分到两个小数分频器和一个整数分频器。分频后信号驱动后输出。从图2右边输出可以看出,整数分频器输出的Y0和Y1两路时钟频率一样,Y2和Y3时钟频率一样。小数分频的Y4~Y7可以各自设置CDCM6208的这种时钟配置限制了其应用,但好处是降低了功耗,目前这种配置满足绝大部分多核处理器的要求,尤其是TI公司的C66系列以及AK2系列多核DSP可以实现无缝连接。
" {+ a- z  ^5 [! S8 ~6 v! t
3 s! S* ^  a) n1 D4 I* A3 i9 q
: d) R# m5 O/ O( |/ w5 j3 j& u- y

2 `. F! L$ H* n! c" ]3硬件设计
  D8 p% n( f4 l* E& f! {1 O  根据TMS320C6678的应用,所需要的时钟如图3所示。
! S( [' C, C! I' [: H6 _9 S  其主要时钟包括:①内核运行时钟,该时钟输入是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。: n) T' Z$ |. A
  ③PCIe接口时钟和PA_SS网络加速器时钟,这两路时钟都是输入100MHz,内部倍频后相应的工作时钟,满足各自接口传输时钟要求。④DDR3时钟,该时钟输入为66.667MHz,倍频20或者25倍,工作在1333.33MHz或者1666.7MHz。这些时钟在DSP片内都各有独立的PLL电路设置,其工作原理和设置方法基本一致。图3中的单独25MHz是专门为千兆网提供的工作时钟,由一个单独的晶体提供。C6678还提供一路时钟输出信号,默认输出为核时钟的1/6,图中为16.667MHz,输出时钟可以检测C6678是否正常工作。' {( E8 h- k3 j4 q
( t2 ^' s" W" L
' k2 k2 t  q+ ~6 M+ t0 D0 u" k( m
  b  a* }$ X6 K% ~
+ W! v0 ]8 [1 Z) v
由于C6678的核时钟由CDCM6208提供,所以对CDCM6208的设置只能由另外一个处理器完成,只要该处理器具有SPI或者I2S接口即可。本文使用低功耗的DSP芯片C6747来实现多CDCM6208的设置。C6747和CDCM6208的接口如图4所示,采用标准4线制SPI接口控制,为了避免干扰提高传输可靠性,在SPI的片选信号的写信号分别上拉和下拉,这样在空闲下其引脚状态不会被干扰。在控制CDCM6208之前,需要对其进行复位,图中使用一个通用GPIO引脚控制,当CDCM6208配置成功后,会提供一个状态检测信号,该信号连接到C6747的GPIO引脚,用来判断是否正确配置。图中C6747还使用一个引脚控制CDCM6208的低功耗设置,当该引脚为高时,CDCM6208进入低功耗模式。, A9 ^8 H+ X! X) L4 [
  4软件设计
+ \' W' L2 L, h! a" U) ?5 [  由于系统采用C6747控制CDCM6208时钟信号,所以C6747的软件是系统整个初始化的关键,C6747的初始化软件主要包括对CDCM6208的复位、配置和检测以及对C6678的复位、C6678外挂Flash的复位等工作。整个系统的软件流程如图5所示。: e) d3 @: Q' l" D1 _. I3 Z7 t1 P

  I4 c  a* e+ ^& B上电启动后,C6747软件加载成功后,复位CDCM6208,为确保复位成功,C6747要等待10ms才能通过SPI接口配置CDCM6208。配置完成后,C6747可以查询CDCM6208的状态输出引脚,检测是否配置成功。如果配置失败,重复复位、配置、检测这几个步骤。配置成功后,表明CDCM6208已经输出准备时钟到C6678,但在此之前,C6678仍然处于复位状态。由于C6678的程序保存在片外Flash中。所以,C6747要首先复位Flash,等待其复位后,再复位C6678,查询C6678的输出状态,确定C6678是否正常下作。如果输出不正常,仍然重复复位Flash、复位C6678和检测这几个步骤,直到初始化成功。
5 c4 |7 N0 E& C  结语. U1 t1 S1 q6 q/ n8 p
  多核处理器由于其接口丰富,运行频率较高,对时钟设计要求较高,一般要求一个高精度的时钟通过分频/倍频方式产生多路时钟到相应的接口。本文以多核数字信号处理器C6678为应用对象,通过CDCM6208产生多路时钟,提供到多核DSP的核时钟、DDR3、RapidIO等时钟信号。通过单核低功耗小成本处理器C6747实现对整个时钟电路的复位、设置和检测。本文介绍的时钟配置方法具有通用性,对同类产品的时钟设计方案具有一定的参考价值。0 r5 j  P$ C; [& Q' H; D' J# ]
; e! s$ }! F7 `

0 O' J4 x- c/ z) F
7 p$ w5 Q' f& \5 W! T0 S
) Z4 H+ A# H: m6 {" ]3 L
  {& H. @" R& X' a

) R& n* m! q: _! m. d
6 J6 s  _! [& W7 v. G( }) w" _

该用户从未签到

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-11-24 00:09 , Processed in 0.171875 second(s), 23 queries , Gzip On.

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

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

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