viewof tmp = render({
type: 'object', title: 'AXI4 Lite Read',
properties: {
arh: {type: 'integer', title: 'AR handshake latency', minimum: 0, maximum: 6},
rdt: {type: 'integer', title: 'Read latency', minimum: 0, maximum: 6},
rh: {type: 'integer', title: 'R handshake latency', minimum: 0, maximum: 6},
}
},
{data: {arh: 1, rdt: 1, rh: 1}},
(p => {
const dd = (p, prefix) => ((prefix || '') + '.'.repeat(p)).slice(0, p);
return {
signal: [
{name: 'ACLK', wave: `p.${dd(p.arh)}P${dd(p.rdt + p.rh, 'p')}P`},
['AR',
{name: 'ARVALID', wave: `01${dd(p.arh)}0${dd(p.rdt)}${dd(p.rh)}.`},
{name: 'ARREADY', wave: `x${dd(p.arh, '0')}1x${dd(p.rdt)}${dd(p.rh)}.`},
{name: 'ARADDR', wave: `x3${dd(p.arh)}x${dd(p.rdt)}${dd(p.rh)}.`, data: 'A0'}
],
['R',
{name: 'RVALID', wave: `0.${dd(p.arh + p.rdt)}1${dd(p.rh)}0`},
{name: 'RREADY', wave: `x.${dd(p.arh + p.rdt)}${dd(p.rh, '0')}1x`},
{name: 'RDATA', wave: `x.${dd(p.arh + p.rdt)}3${dd(p.rh)}x`, data: 'D0'},
{name: 'RRESP', wave: `x.${dd(p.arh + p.rdt)}4${dd(p.rh)}x`, data: 'OK'}
]
]};
})
)