数字电路波形图绘制工具WaveDrom简介

最近写东西的时候,需要画波形图,无意中找到了一蛮好用的工具:WaveDrom

WaveDrom 是一个 JavaScript 应用程序。WaveJSON 是一种描述数字时序图的格式。WaveDrom 直接在浏览器内部渲染这些时序图。元素 “signal” 是一个 WaveLane 数组。每个 WaveLane 包含两个必填字段:“name”(名称)和 “wave”(波形)。

本文简要介绍WaveDrom的使用方法.

简介

WaveDrom是一个免费和开放源代码的在线数字时序图(波形)渲染引擎,使用javascript,HTML5和SVG将WaveJSON输入文本描述转换为SVG矢量图形。

WaveJSON是JSON格式的应用程序。 WaveJSON的目的是为数字硬件/ IC工程师使用的数字时序图提供一种紧凑的交换格式。

  • WaveDrom可以支持在线使用https://wavedrom.com/editor.html
  • 也有跨平台的离线工具https://github.com/wavedrom/wavedrom.github.io/releases

使用

WaveDrom是编程语言式画图,通过撰写json文件说明要如何绘图,WaveDrom再将其转换为图形。看一个官方示例

{signal: [
  {name: 'clk', wave: 'p.....|...'},
  {name: 'dat', wave: 'x.345x|=.x', data: ['head', 'body', 'tail', 'data']},
  {name: 'req', wave: '0.1..0|1.0'},
  {},
  {name: 'ack', wave: '1.....|01.'}
]}

渲染出来如下图
sample

效果看起来还不错,对吧!
再来看josn文件,不要看json里面写得复杂,其实拆分起来很简单,动手做一做,半个小时内轻松上手。

基础信号

信号都是以一个周期为单位绘制,一个周期的信号使用一个符号(数字/字符)表示, . 符号表示延续上一个符号

无意义信号

x: 表示无意义信息,例如

{signal: [
  {name: 'inv-a', wave: 'xxx'},
  {name: 'inv-b', wave: 'x..'},
],
}

x

时钟信号

时钟信号用4种字符表示

  • p: positive ,正极性clock, 前半周为高电平,后半周为低电平
  • n: negative,负极性clock, 前半周为低电平,后半周为高电平
  • h:high, 一个周期高电平
  • l:low, 一个周期低电平
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

TrustZone_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值