@@ -340,6 +340,68 @@ def test_one_bit_adder_matches_expected(self):
340
340
341
341
htmlstring = pyrtl .trace_to_html (sim_trace ) # tests if it compiles or not
342
342
343
+ def test_trace_to_html (self ):
344
+ i = pyrtl .Input (1 , 'i' )
345
+ o = pyrtl .Output (2 , 'o' )
346
+ o <<= i + 1
347
+
348
+ sim = pyrtl .Simulation ()
349
+ sim .step_multiple ({'i' : '0100110' })
350
+ htmlstring = pyrtl .trace_to_html (sim .tracer )
351
+ expected = (
352
+ '<script type="WaveDrom">\n '
353
+ '{\n '
354
+ ' signal : [\n '
355
+ ' { name: "i", wave: "010.1.0" },\n '
356
+ ' { name: "o", wave: "===.=.=", data: ["0x1", "0x2", "0x1", "0x2", "0x1"] },\n '
357
+ ' ],\n '
358
+ ' config: { hscale: 1 }\n '
359
+ '}\n '
360
+ '</script>\n '
361
+ )
362
+ self .assertEqual (htmlstring , expected )
363
+
364
+ def test_trace_to_html_repr_func (self ):
365
+ i = pyrtl .Input (1 , 'i' )
366
+ o = pyrtl .Output (2 , 'o' )
367
+ o <<= i + 1
368
+
369
+ sim = pyrtl .Simulation ()
370
+ sim .step_multiple ({'i' : '0100110' })
371
+ htmlstring = pyrtl .trace_to_html (sim .tracer , repr_func = bin )
372
+ expected = (
373
+ '<script type="WaveDrom">\n '
374
+ '{\n '
375
+ ' signal : [\n '
376
+ ' { name: "i", wave: "010.1.0" },\n '
377
+ ' { name: "o", wave: "===.=.=", data: ["0b1", "0b10", "0b1", "0b10", "0b1"] },\n '
378
+ ' ],\n '
379
+ ' config: { hscale: 1 }\n '
380
+ '}\n '
381
+ '</script>\n '
382
+ )
383
+ self .assertEqual (htmlstring , expected )
384
+
385
+ def test_trace_to_html_repr_func_2 (self ):
386
+ i = pyrtl .Input (1 , 'i' )
387
+ o = pyrtl .Output (2 , 'o' )
388
+ o <<= i + 1
389
+
390
+ sim = pyrtl .Simulation ()
391
+ sim .step_multiple ({'i' : '0100110' })
392
+ htmlstring = pyrtl .trace_to_html (sim .tracer , repr_func = bin )
393
+ expected = (
394
+ '<script type="WaveDrom">\n '
395
+ '{\n '
396
+ ' signal : [\n '
397
+ ' { name: "i", wave: "010.1.0" },\n '
398
+ ' { name: "o", wave: "===.=.=", data: ["0b1", "0b10", "0b1", "0b10", "0b1"] },\n '
399
+ ' ],\n '
400
+ ' config: { hscale: 1 }\n '
401
+ '}\n '
402
+ '</script>\n '
403
+ )
404
+ self .assertEqual (htmlstring , expected )
343
405
344
406
if __name__ == "__main__" :
345
407
unittest .main ()
0 commit comments