OPEN IC EDA · VECTOR TOOL

Vector Scope:把存储器编译器的向量文件直接变成数字波形

单文件、零后端、离线可用。把 .vec 文件拖进浏览器,即可查看总线、时钟、控制信号与测试阶段,并可一键导出标准 VCD。

Vector Scope 数字时序波形分析示意图

存储器编译器输出的测试向量文件,例如 Vector_X8Y4D2_..Vector_X264Y32D32_..,往往是几十 KB 到几十 MB 的表格文本。过去要理解其中的时序,通常只能逐行检查,或者先转换成 VCD,再打开 GTKWave、Surfer 等桌面工具。Vector Scope 把这段流程压缩成一次拖拽:文件进入页面后,波形立即出现。

从向量文本到可交互波形

页面支持文件拖放、按钮选择和直接粘贴文本三种入口。解析完成后,信号会按表头中的 vnameradixioTunit 信息自动组织。总线可随时切换为十六进制、十进制、二进制或有符号显示,未知态 x 与高阻态 z 则使用独立颜色突出。

像示波器一样操作

缩放、平移、单击或 Shift 点选双光标,直接测量 Δt 与频率。按 F 回到全局视图,按 Esc 清除光标。

测试阶段自动分区

诸如 ;Initial write address 的注释段落会转化为时间轴标记,点击即可跳到对应测试阶段。

快速管理信号

通过搜索过滤与批量多选,从大量总线、时钟和控制信号中迅速聚焦关键信号。

一键导出 VCD

缩放后默认导出可见区间,全局视图则导出全部;阶段标记还能按需写入注释,并支持下载与剪贴板交付。

为什么大文件仍然流畅

Vector Scope 把大文件解析交给 Web Worker,主线程只接收进度,因此解析过程中界面仍可操作,也能随时取消。渲染阶段只处理当前可见时间窗口,并按屏幕像素进行分桶聚合,避免把数十万条跳变逐条描边。项目给出的基准中,32 MB、约 78 万条跳变的文件解析约需 1.3 秒,之后的缩放和平移仍保持流畅。

传统流程的痛点Vector Scope 的处理方式
先转 VCD,再安装波形工具拖入 .vec 后直接显示波形
大文件容易卡住浏览器Worker 解析 + 可视窗口裁剪 + 像素分桶
远程或移动环境缺少 EDA 软件触屏手势、抽屉式信号栏与深色模式
损坏或不完整文件直接失败按位宽推断缺失字段,不齐的行补 x
关闭页面后视图状态丢失同一文件再次载入时恢复缩放、光标与选择

面向异常输入的韧性设计

浏览器工具最怕输入规模不可控。Vector Scope 对文件大小、单行长度、总跳变数、信号数和标记数都设置硬上限;触发限制时,会提供“只解析前 N 行”等明确的降级选项,而不是继续消耗内存直至页面崩溃。

  • Worker 崩溃后自动重启,并可回退到主线程解析
  • 渲染异常按帧捕获并重试,避免整页白屏
  • localStorage 不可用时静默降级到纯内存状态
  • 格式不完整时尽量保留可解析部分,并明确标出未知值

如何使用

在线体验

  1. 打开 Vector Scope 页面
  2. 拖入 .vec 文件,或先点击“载入示例”查看效果
  3. 搜索并选择需要观察的信号,缩放到目标时间区间
  4. 放置双光标测量时差与频率,必要时导出 VCD
打开在线 Artifact

实现要点与测试

整个应用使用原生前端技术实现,波形由 Canvas 2D 绘制,不依赖第三方库。解析与渲染之间通过精简的数据结构通信,既减少主线程压力,也为取消、进度展示和错误恢复保留空间。项目还覆盖了正常路径与攻击、异常路径的 E2E 测试矩阵:核心功能、PWA 离线能力和 VCD 导出分别完成 70、93、137 项验证。

总结

让向量文件回到“打开就能看”的状态

Vector Scope 不是要替代完整的桌面 EDA 波形工具,而是消除查看存储器测试向量前最繁琐的准备步骤。无需转换、无需安装、无需上传文件,尤其适合快速检查、远程协作、移动环境和轻量工具链集成。