第六章Source Browser
概述
Source Browser 是 JasperGold 的 RTL 源码浏览器,支持层次浏览、信号搜索、宏展开查看等功能。
GUI 组件
- Design Hierarchy Tree:设计层次树,带图标表示模块类型
- Source Pane:源码显示区,带语法高亮
- Search/Filter:层次排序和过滤
Design Hierarchy Tree 图标
图标表示条目类型(Entry Type),共六种:Instance、Black-boxed instance、Liberty cell、Requirement、SystemVerilog checker、SystemVerilog interface。详见下文图例。
操作
- 排序和过滤:实例树右键 → Sort and Filter,打开 Instance Tree Settings 对话框。用 Verilog scopes 区域勾选/取消来过滤实例树,用 Sort by name 区域选择按字母数字顺序或 Original order(实例化的原始顺序)排序;Set As Default 可把当前选项设为所有实例树窗口的默认值
- Macro Expansion:展开宏定义查看展开后的代码
- Copy/Paste:支持代码复制
- Driver / Load:Driver 显示给所选信号赋值的那段源码;Load 列出该信号作为负载出现的所有 RTL 行
- 拖放:JasperGold 各 GUI 之间支持拖放,可以把信号名从一个窗口拖到另一个窗口
Source Browser 和 Visualize 都不支持调试 SystemVerilog Class。
源码导航实用技巧
最常用的操作
独立 Source Browser 可以从任意 GUI 的 Window 菜单打开,也可以从这些位置进入:
- 主窗口:例如 Property Table,或前端消息里的超链接
- Combo Loop Viewer:在 Loop Handling 标签页右键 → View Loop in Source Code Browser
- Clock Viewer:在 Clock Signals / Registers 标签页右键 → Show Driver
- Design Information 窗口:信号名右键 → Driver 或 Load
- Complexity Manager / ProofGrid Manager:实例树、Properties pane 的右键菜单
要同时开多个 Source Browser:Window 菜单 → Source Browser – New Window。
从 Schematic Viewer 过来时,可用的上下文菜单项和快捷键是:Go to Source(Ctrl+S)、Driver in Source Browser(Ctrl+D)、Load in Source Browser(Ctrl+L)、Declaration in Source Browser(Ctrl+E)、Instance in Source Browser(Ctrl+I)。
Source Browser 自身的 Tools 菜单提供:查找 driver 和 load、在代码中导航、以及从信号名跳到它的声明。工具栏还有 Back / Forward(在视图之间前后移动)和 Previous / Next(在当前视图的多个结果之间移动,例如查看多个 load 时逐个跳)。
Design Hierarchy Tree 图标含义
层次树中每个条目名称左边的图标表示条目类型(Entry Type),官方图例只有以下六种。鼠标悬停在图标上会有 tooltip 说明类型:
| Entry Type | 含义 |
|---|---|
| Instance | 实例 |
| Black-boxed instance | 被黑盒化的实例 |
| Liberty cell | Liberty 单元 |
| Requirement | 需求 |
| SystemVerilog checker | SystemVerilog checker |
| SystemVerilog interface | SystemVerilog 接口 |
注意:端口、wire、寄存器、断言并不是这棵树里的图标类型。层次树列出的是模块、entity、package 这一级的层次结构,不是信号级对象。
快速搜索:工具栏的搜索框是可配置、上下文相关的,有三种搜索范围——Design Hierarchy(在树节点中搜索显示的文本)、Full Instance Paths(搜索路径包含所输入文本的节点,支持 glob 和正则表达式)、Filenames(按模块/Architecture/Entity 定义所在的文件搜索实例)。在大型设计中比手动浏览层次高效得多。
来源文档
jaspergold_apps_userguide.pdf Ch.8