1. 简介
我们在SOC设计中,经常用到JTAG以实现scan-chain 扫描, 还可以实现对SOC每个block的RAM、Memory以及每个IP block的寄存器实现读写操作。由于实现JTAG调试,PCB需要10根线的接口连接,于是有的SOC 是以USB转JTAG实现在线调试功能,这样可以减少PCB板子上的BOM及空间,节省设计成本,由于USB的缺陷性,只能在电脑面前调试,不能远程登录,或远程调试。因此本文介绍一种更为新进的在现调试功能。ETHERNET转JTAG, 这样可以实现远程程序升级,远程程序调试。在线调试的更新,可以节省员工的出差费用,更节省大量的出差调试时间。因此ETHERNET转JTAG调试功能就显得非常必要性与新进性。
2. 系统构架
基于LX9开发板的现有条件, 采用gate counter比较小的CPU,因为CPU连接总线的接口是AXI的接口, 因此总线采用BUS MATRIX协议。以太网的物理端只有100Mbps,所以我们采用带AXI接口的EMAC IP。并且采用了带AXI接口的interrupter 模块。这样系统就可以初步搭成, 如图1所示,中间是AXI Matrix支持3个master,6个slaver。
图表 1 系统构架
根据图表1,我们分配各个AXI Master、AXI Slave如图表2所示
No |
AXI Master 分配 |
AXI Slave 分配 |
1 |
Dump_master |
|
2 |
CPU |
|
3 |
EMAC_JTAG |
|
4 |
|
EMAC_JTAG |
5 |
|
RAM |
6 |
|
ROM |
7 |
|
INT |
8 |
|
Default_slave |
图表 2 主从AXI元素分配
在确定好主AXI元素,现在需要确定主AXI元素的优先级,如图表3所示Dump_AXI 具有最高优先级,DMA最低优先级,优先级次序由图表3中的数序号确定。
NO |
AXI 主元素 |
优先级次序 |
1 |
Dump master |
1 |
2 |
CPU |
2 |
3 |
EMAC_JTAG |
3 |
图表 3 主AXI元素优先级分配
确定好主AXI元素的优先级后,我们现在需要确定每个从AXI模块所占用的地址空间。每个主AXI元素可以访问的几个从AXI元素。如图表4所示,其确定了每个主AXI元素可以访问的从AXI元素的个数。
No |
主AXI元素 |
从AXI元素 |
||||
1 |
Dump_Master |
|
||||
2 |
CPU |
|
||||
|
||||||
3 |
||||||
|
EMAC_JTAG |
|
|
图表 4 主AXI元素访问从AXI元素的分配