当前位置:   article > 正文

芯片DFX:Coresight-Soc 400套件_coresight soc 400

coresight soc 400

Perface

因为coresight属于ARM制定的标准,因此ARM针对coresight,设计出来soc-400套件。设计人员可以利用这个套件,快速的生成coresight系统,并且生成相应的case,对coresight系统进行验证。

coresight soc-400系统框图:

这个套件中,可以利用AMBA-designer来自动生成coresight的组件,只需要更改一些配置信息即可自动生成。

DAP组件

DAP的一般结构

  • SWJ-DP和外部的sw或jtag通信,然后和DAPBUS通信。实现对各个AP的访问。然后各个AP再对片内内部资源进行访问。

  • SWJ-DP包括两个DP,一个是SW-DP,一个是JTAG-DP。

    • SW-DP负责和外部的sw通信,
    • JTAG-DP负责与外部的jtag通信。

下图是DAP的内部结构,包含一个DP,5个AP

DAP将外部接口数据(external interface format),也就是SW协议数据或者JTAG协议数据,转化为内部的接口数据(internal interface),也就是AP访问数据。

SWJ-DP

将jtag或sw总线协议,转化为dap总线。


接收jtag或sw数据**,如果是对DP访问,直接在内部对DP的寄存器进行访问**。如果是对AP的访问,转化为dap总线,对后级所接的AP进行访问

组件,还提供了两个power域的上电请求(system power和debug power),以及debug域的复位请求。

对于两个power域的信号,每个信号都是1bit信号

信号作用
cdbgpwrupreqDAP向power控制器发送的debug power域的上电请求以及时钟使能信号
cdbgpwrupackpower控制器向DAP回应的debug power域的上电请求以及时钟使能响应信号
csyspwrupreqDAP向power控制器发送的system power域的上电请求以及时钟使能信号
csyspwrupackpower控制器向DAP回应的system power域的上电请求以及时钟使能响应信号

debugger通过控制这些信号,来实现对debug power域和system power域的上电以及时钟使能请求操作

而控制这些信号,是通过写DA的CRTL/STAT寄存器来实现。

该寄存器的31-28bit。

在实际中,可能power域是断电,或者时钟是关掉的。此时debugger要对这个power域中的组件进行访问,就需要将该power域给开启以及将时钟给开启。此时就需要这些信号。

两个power域的请求信号是独立的,因为两个power域都是独立的,互不干扰。

当REQ信号变高后,表示要power up,power控制器应该将ACK信号拉高,表示响应该请求。而REQ信号变低后,表示要power down,power控制器应该将ACK信号拉低。

对于debugger,可以访问该寄存器,读取ACK的值,即可知道该power域是否有上电

reset也是一样的。DAP可以请求复位debug域的寄存器。也是通过CTRL/STAT寄存器来控制

时序如下:会驱动PRESETDBGn信号为低,从而实现debug复位。

DAPBUS互联

连接DP和后续的所有AP。组件会根据DP的select寄存器,决定是对哪一个AP进行访问,从而生成对该AP访问的总线。

对于地址dapcaddrs[15:2]:

  • dapcaddrs[15:8]:是select寄存器的最高8位的值,也就是AP的选择

  • dapcaddrs[7:2]: 访问AP寄存器的地址

AXI-AP

AXI的master,访问该AP,可以发起AXI访问。输入DAP总线,输出AXI总线。

APB-AP

APB的master,访问该AP,可以发起APB访问。输入DAP总线,输出APB总线。

APB互联组件

APB互联组件,连接了众多的coresight组件,外部可以通过APB互联,实现对连接到APB互联上的coresight组件的访问。

以下是APB互联组件框图:

APB互联组件包括以下的一些互联组件。

rom table

每个APB互联组件,至少连接一个rom table组件,并且该组件的地址为0x0000_0000,这样外部通过rom table,在能知道连接到该APB互联组件上的所有coresight组件信息

APB异步桥

coresight组件,和APB互联的时钟,可能是异步的,因此需要一个异步桥,进行转换。

APB同步桥

coresight组件,和APB互联的时钟,可能是同步,但是不是同频,因此需要一个同步桥,进行转换。

ATB互联组件

ATB互联组件包括以下的一些互联组件

replicator

replicator用来将上级的master发送的ATB数据,传输给下级的两个ATB slave组件。

结构如下图所示:

总共有4个port:

  • ATB slave port:接收上一级的ATB master的ATB数据

  • optional APB port:配置replicator的APB总线端口,外部通过该APB总线设置replicator。

  • ATB master port0:输出给master0的ATB总线

  • ATB master port1:输出给master1的ATB总线

funnel

将多个ATB输入,合并成一个ATB输出。

结构如下图所示:

3个port:

  • ATB slave port:接收上级的ATB总线,至少有两组

  • optional APB port:配置funnel的APB总线端口,外部通过该APB总线设置funnel。

  • ATB master port:输出给master的ATB总线

upsizer

将输入的数据位宽为SBW+1的ATB总线,转换为数据为数据位宽为MDW+1的ATB总线。MDW >= SBW。

  • ATB_DATA_WIDTH_SLAVE: 8,16,32,64

  • ATB_DATA_WIDTH_MASTER: 8,16,32,64

downsizer

将输入的数据位宽为SBW+1的ATB总线,转换为数据为数据位宽为MDW+1的ATB总线。MDW <= SBW。

  • ATB_DATA_WIDTH_SLAVE: 8,16,32,64

  • ATB_DATA_WIDTH_MASTER: 8,16,32,64

asynchronous bridge

  • 跨时钟域(异步时钟)的数据转换桥。

  • 将时钟为clks的ATB总线,转换为时钟为clkm的ATB总线。

synchronous bridge

  • 跨时钟域(同步时钟)的数据转换桥。

  • 将时钟为clks的ATB总线,转换为时钟为clknm的ATB总线。

timestamp组件

timestamp组件,用来生成时间信息的。

组件,根据SCLK,产生计数值,然后发送给各个coresight组件,这样各个组件就有了时间信息。

ECT组件

ECT包括CTI和CTM。

CTI

CTI用来接收和发送trigger,channel信号用。

  • trigger interface:连接需要发送trigger,接收trigger的组件

  • channel interface:连接CTM,接收CTM发送的channel,以及发送channel到CTM上

  • APB interface: 配置CTI的APB总线,外部通过该APB总线,设置CTI

CTM

CTM,连接各个CTI。

trace sink组件

TPIU

trace port interface ,接收trace信息,发送trace信息到片外。

  • debug apb port:配置TPIU的APB接口,外部通过APB总线,设置TPIU。

  • ATB slave port: 接收trace source或trace link的trace数据

  • trace port:芯片的输出管教,输出信息给外界

  • trigger port: 连接CTI。

内部结构如下图:

接收ATB发送的trace信息,通过formatter,将数据转化,得到真正的数据信息,保存在FIFO中。

因为有2个时钟域,一个是片内的时钟域,一个是片外的时钟域,因此该FIFO是异步FIFO,写是在atclk时钟域写入,读是在traceclkin时钟域读取。读取之后,通过trace out,将数据以串行方式,从接口发送出去。

APB接口,是TPIU向外部提供了配置TPIU寄存器的APB接口。

ETB

embedded trace buffer。存储trace信息的buffer。

内部结构如下:

接收ATB发送的trace信息,通过formatter,将数据转化,得到真正的数据信息,然后通过trace RAM interface,将数据,保存到trace RAM中。

APB接口,是ETB向外部提供了配置ETB寄存器的APB接口。

power requestor

power requestor可以让外部通过APB总线控制指定power domain的上电和断电。从而控制指定的coresight组件的power。

总结

coresight-400,其实就是ARM实现coresight系统的套件,包含了coresight的各个组件,我们利用这个套件,就不再需要自己单独去设计以及验证这些coresight组件,直接拿过来,搭建soc环境。并且coresight-400组件,还提供了一些测试case,可以用来验证搭建的coresight系统,是否正确。

更多的信息,查看ARM提供的coresight-400组件文档。

自此,ARM的coresight介绍到此完毕,附件是整合的文档。

参考资料

感谢骏哥Coresight的分享,获益匪浅!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/码创造者/article/detail/902838
推荐阅读
相关标签
  

闽ICP备14008679号