asciiwave
asciiwave copied to clipboard
Example `step5.json` fails
Example step5.json works fine in the official wavedrom editor, but does not work in asciiwave. $ ./asciiwave example/step5.json
produces:
Traceback (most recent call last):
File "/home/nates/github/asciiwave/./asciiwave", line 305, in <module>
render_json(ifile.read(), sys.stdout, graphics, force_hscale=args.hscale)
File "/home/nates/github/asciiwave/./asciiwave", line 226, in render_json
jsonschema.Draft6Validator(wavejson_schema).validate(obj)
File "/home/nates/.local/lib/python3.10/site-packages/jsonschema/validators.py", line 438, in validate
raise error
jsonschema.exceptions.ValidationError: ['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'}] is not of type 'object'
Failed validating 'type' in schema['properties']['signal']['items']:
{'additionalProperties': False,
'properties': {'data': {'items': {'type': 'string'},
'type': ['array', 'string']},
'name': {'type': 'string'},
'period': {'type': 'number'},
'phase': {'type': 'number'},
'wave': {'type': 'string'}},
'type': 'object'}
On instance['signal'][1]:
['Master',
['ctrl',
{'name': 'write', 'wave': '01.0....'},
{'name': 'read', 'wave': '0...1..0'}],
{'data': 'A1 A2', 'name': 'addr', 'wave': 'x3.x4..x'},
{'data': 'D1', 'name': 'wdata', 'wave': 'x3.x....'}]
Example step5.json
:
{ 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'},
]
]}