WaveDrom test

A bare fence draws itself:

{ signal: [
  { name: "clk",  wave: "p......." },
  { name: "req",  wave: "0.1..0.." },
  { name: "data", wave: "x.345x..", data: ["A", "B", "C"] },
  { name: "ack",  wave: "0....10." }
]}

Fence options, unbraced:

{ signal: [
  { name: "sclk", wave: "l.hlhlhlhlhlhlhl" },
  { name: "mosi", wave: "x.2.2.2.2.2.2.2x", data: ["7","6","5","4","3","2","1"] },
  { name: "cs_n", wave: "10..............1" }
]}

The directive form with the picker's attributes:

{ signal: [
  { name: "clk", wave: "p...." },
  { name: "q",   wave: "0.1.0" }
]}

And a register map, which WaveDrom also draws:

{ reg: [
  { bits: 8, name: "IPO", attr: "RO" },
  { bits: 8, name: "BRK" }
], config: { bits: 16 } }