https://mp.weixin.qq.com/s/uGxn-Xec0LkwdaSsCtQBvw

简单介绍Periphery的实现。

1. ExportDebugDMI/ExportDebugJTAG

这是两个参数,用于进行参数查找:

ExportDebugDMI表示导出DMI接口;

ExportDebugJTAG表示导出JTAG接口;

2. DebugIO

定义系统调试模块接口:

其中:clockeddmi和systemjtag只有一个存在:

3. HasPeripheryDebug

HasPeripheryDebug是一个trait,引入该trait,即添加一个调试模块:

1) debug

生成一个调试模块:

将其连接到cbus上:

cbus是外设控制总线:

cbus.coupleTo则是把cbus.outwardNode作为上游节点,连接到TLFragmenter节点上,再连接到debug.node节点上:

debug.node即是dmInner.tlNode:

核心通过这一个连接访问ROMBASE等地址空间,示意图如下:

2) debugCustomXbar

用于连接custom sink/source节点:

示意图如下:

目前debugCustomXbar没有连接上游节点。

3) sb2tl

把sb2tl.node连接到fbus上:

示意图如下:

4) getOMDebugModule

用于获取调试设备的描述信息:

4. HasPeripheryDebugModuleImp

用于实现与调试模块的接口连接逻辑。根据要导出的接口类型,有两种情况:

1) 导出DMI接口

直接导出DMI接口,DTM由外部自行实现:

示意图如下:

2) 导出JTAG接口

引入一个DTM模块,外部直接使用JTAG接口连接:

instantiateJtagDTM中创建一个DTM模块,并与调试模块进行相关连接:

示意图如下:

3) 其他连接

连接ndreset/dmactive/debugUnavail信号:

示意图如下:

5. SimDTM

如果导出的是DMI接口,则使用SimDTM模块仿真一个DTM模块,与DMI接口相连接:

6. SimJTAG

如果导出的是JTAG接口,则使用SimJTAG仿真一个JTAG接口。

1) io

定义SimJTAG模块的IO接口:

其中:jtag是标准的JTAG接口:

2) connect

把SimJTAG的IO接口与系统debug接口相连接:

其中主要的是连接jtag接口,时钟和复位信号:

注:这里tbclock/tbreset中的tb,应该是testbench的意思。

7. Debug

Debug对象用于辅助连接调试模块,或者关闭调试模块:

1) 连接调试模块

根据导出的两种不同的接口,调用不同的连接方法:

在TestHarness中调用:

2) 关闭调试模块

如果不需要调试模块,则可以选择将其关闭:

8. 总体结构图

BaseSubSystem中调试模块部分的总体结构图如下(可以单独打开图片查看):

参考链接:https://docs.qq.com/pdf/DUXVXcG54S3RHZExV

Rocket - debug - Periphery的更多相关文章

  1. Rocket - debug - TLDebugModuleInner - Hart Bus Access

    https://mp.weixin.qq.com/s/deNMEyJ1idJDVoZwwo0A1A 简单介绍TLDebugModuleInner中核心总线访问(Hart Bus Access). 参考 ...

  2. Rocket - debug - DebugTransport

    https://mp.weixin.qq.com/s/EcsuTjb4hFF9Ncig9Gfhew 简单介绍DebugTransport的实现. 1. JtagDTMConfig 1) JtagDTM ...

  3. Rocket - debug - TLDebugModule

    https://mp.weixin.qq.com/s/EhUb1z5oiIw6dJ-90ifDJA 简单介绍TLDebugModule中的实现. 1. device device是一个设备描述符,包含 ...

  4. Rocket - debug - TLDebugModuleInner - ROM Generation

    https://mp.weixin.qq.com/s/j_CgHU4PnY82NMwJzOqHYg 简单介绍Variable ROM Generation. 1. jalAbstract jalAbs ...

  5. Rocket - debug - Example: DMI

    https://mp.weixin.qq.com/s/7suuJ7m2BKCpsHk1K2FzJQ 介绍riscv-debug的使用实例:如何使用DMI. 1. dm Debug Module实现了调 ...

  6. Rocket - debug - Example: Triggers

    https://mp.weixin.qq.com/s/zPNyrBOhsytkRrZTDTEvpw 介绍riscv-debug的使用实例:配置Triggers功能. 1. Trigger Trigge ...

  7. Rocket - debug - Example: Accessing Registers Using Program Buffer

    https://mp.weixin.qq.com/s/8yYLVg-RXX3XX0T431lxeA 介绍riscv debug接口的使用实例:使用Program Buffer读取寄存器. 1. Wri ...

  8. Rocket - debug - Example: Accessing Registers Using Abstract Command

    https://mp.weixin.qq.com/s/RdJzE06mMkh2x__vVj_fEA 介绍riscv debug接口的使用实例:使用抽象命令读取寄存器. 1. Read s0 using ...

  9. Rocket - debug - TLDebugModuleInnerAsync

    https://mp.weixin.qq.com/s/Xf4VFTHIDFh1NHmfwlTX3w 简单介绍TLDebugModuleInnerAsync的实现. 1. dmInner dmInner ...

随机推荐

  1. mui指南

    转自https://www.cnblogs.com/koleyang/p/5146623.html http://dev.dcloud.net.cn/mui/ui/index.html#mask ht ...

  2. 手把手教你进行Scrapy中item类的实例化操作

    接下来我们将在爬虫主体文件中对Item的值进行填充. 1.首先在爬虫主体文件中将Item模块导入进来,如下图所示. 2.第一步的意思是说将items.py中的ArticleItem类导入到爬虫主体文件 ...

  3. Alink漫谈(二) : 从源码看机器学习平台Alink设计和架构

    Alink漫谈(二) : 从源码看机器学习平台Alink设计和架构 目录 Alink漫谈(二) : 从源码看机器学习平台Alink设计和架构 0x00 摘要 0x01 Alink设计原则 0x02 A ...

  4. Python-SHA256加密算法接口测试

    前言 小伙伴们在做接口测试的时候,是否遇到一些需要加密的接口,但是不知如何进行测试呢?今天我们来学习一下SHA256加密算法接口如何进行测试的. SHA256加密算法介绍: 比特币挖矿的御用算法 SH ...

  5. Linux Charger IC 驱动移植总结

    Linux Charger IC 驱动移植总结 文章目录 Linux Charger IC 驱动移植总结 1 设备树的基本知识 设备树的概念 设备树的基本结构 compatible属性 举个栗子 2 ...

  6. ubuntu上lib-ace库安装编译

    描述下本人电脑情况: 虚拟机版本:VMware-workstation-full-v7.1.4: ACE版本:ACE6.0.0 虚拟机[Linux](http://lib.csdn.net/base/ ...

  7. [hdu3644 A Chocolate Manufacturer's Problem]模拟退火,简单多边形内最大圆

    题意:判断简单多边形内是否可以放一个半径为R的圆 思路:如果这个多边形是正多边形,令r(x,y)为圆心在(x,y)处多边形内最大圆的半径,不难发现,f(x,y)越靠近正多边形的中心,r越大,所以可以利 ...

  8. [BC冠军赛(online)]小结

    A Movie 题意:给你n个区间,判断能否选出3个不相交的区间. 思路:令f(i)表示能否选出两个不相交区间并且以区间i为右区间的值,g(i)表示能否选出两个不相交区间并且以区间i为左区间的值,如果 ...

  9. 帝国cms列表页内容简介字段smalltext去除里面html格式代码 设置方法

    帝国cms列表页内容简介字段smalltext去除里面html格式代码帝国cms列表页调用内容简介出现html代码怎么办 近来在用帝国cms的时候,发现一个问题,在列表页调用产品简介的时候出现了这种h ...

  10. python爬虫-直播吧

    概述 这是一个我很喜欢的小网站,想了解这个网站先从爬虫开始,爬取直播吧所有的栏目及内容,再存入数据库.先写个简单点的,后期再不断的优化下. 准备阶段 直播吧网址https://www.zhibo8.c ...