wavedrom

笔记来源于Hitchhiker's Guide to the WaveDrom

1.从一个简单示例开始

{signal:[
  {name:"Alfa",wave:"01.zx=23.456789"}
]}

Alfa的每个字符都代表一个时间段,‘.’可以表示状态保持不变。

2.添加时钟

数字时钟是一种特殊类型的信号,每个时间周期可以变化两次并且有正负极性。同时可以选择性的编辑在有效边沿。时钟块还可以和其他信号状态相混合来产生时钟门控的效果。

{signal:[
  {name:"pclk",wave:'p.......'},
  {name:"Pclk",wave:'P.......'},
  {name:"nclk",wave:'n.......'},
  {name:"Nclk",wave:'N.......'},
  {},
  {name:'clk0',wave:'phnlPHNL'},
  {name:'clk1',wave:'xhlhLHl.'},
  {name:'clk2',wave:'hpHplnLn'},
  {name:'clk3',wave:'nhNhplPl'},
  {name:'clk4',wave:'xlh.L.Hx'},
]}

 3.整合内容

典型的时序图包含了时钟和信号,多比特信号会从数据数组中得到标签。

{signal:[
  {name:"clk",wave:"P......"},
  {name:"bus",wave:"x.==.=x",data:["head","body","tail","data"]},
  {name:"wire",wave:"0.1..0."}
]}

 4.间隔

{signal:[
  {name:"clk",		wave:"p.....|..."},
  {name:"Data",		wave:"x.345x|=.x",data:["head","body","tail","data"]},
  {name:"Request",	wave:"0.1..0|1.0"},
  {},
  {name:"Acknowledge",wave:"1.....|01."}
]}

5.分组

WaveLanes可以统一在以数组形式表示的命名组中。数字第一个条目是组名,且组间可以相互嵌套。

{signal: [
  {name: 'clk',   wave: 'p..Pp..P'},
  ['Master',
    ['ctrl',
      {name: 'write', wave: '01.0....'},
      {name: 'read',  wave: '0...1..0'}
    ],
    {name: 'addr',  wave: 'x3.x4..x', data: 'A1 A2'},
    {name: 'wdata', wave: 'x3.x....', data: 'D1'   },
  ],
  {},
  ['Slave',
    ['ctrl',
      {name: 'ack',   wave: 'x01x0.1x'},
    ],
    {name: 'rdata', wave: 'x.....4x', data: 'Q2'},
  ]
]}

 6.Period和Phase

period:时钟周期

phase:信号从第n个时钟周期开始

{signal: [
  {name: "CK",   wave: "P.......",                                              period:2},
  {name: "CMD",  wave: "x.3x=x4x=x=x=x=x", data: "RAS NOP CAS NOP NOP NOP NOP", phase:0.5},
  {name: "ADDR", wave: "x.=x..=x........", data: "ROW COL",                     phase:0.5},
  {name: "DQS",  wave: "z.......0.1010z." },
  {name: "DQ",   wave: "z.........5555z.", data: "D0 D1 D2 D3" }
]}

7. config:{...}

config:{hscale:?}

# ?代表水平刻度,和观看效果有关

{signal:[
  {name:"clk",     wave:"p...." },
  {name:"Data",    wave:"x345x",  data: ["head", "body", "tail"] },
  {name:"Request", wave:"01..0" }
  ],
  config: {hscale:1}
}

其他设置参照:wavedrom

8.Arrows

# ~     见名知意
# -~ ~- 微平滑?
# <~>
# <-~>
# ~>
# -~>
# ~->
# -      直线
{signal:[
  {name:'A', wave: '01........0....',  node: '.a........j' },
  {name:'B', wave: '0.1.......0.1..',  node: '..b.......i' },
  {name:'C', wave: '0..1....0...1..',  node: '...c....h..' },
  {name:'D', wave: '0...1..0.....1.',  node: '....d..g...' },
  {name:'E', wave: '0....10.......1',  node: '.....ef....' }
  ],
  edge:[
    'a~b t1', 'c-~a t2', 'c-~>d time 3', 'd~-e',
    'e~>f', 'f->g', 'g-~>h', 'h~>i some text', 'h~->j'
  ]
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值