Marek Materzok
Marek Materzok
If the input JSON has a connection between different-sized ports, DigitalJS will happily connect them, with disastrous results. For example, yosys2digitaljs currently generates such a bad JSON for: ```verilog module...
S5 desugars compound assignment (e1 += e2 etc.) to e1 = e1 + e2, which is invalid when the evaluation of e1 has side effects. Here is an example program...
The code in cases after the default case is duplicated, which can lead to exponential blowup. For example, in this code: ``` switch(1) { default: case 1: switch(1) { default:...
The following program returns 120 in S5, should throw an exception (because the f variable should shadow the recursive binding): ``` var x = function f (a) { var f;...
The following Javascript program returns 1 in S5, it should return 5. ``` a: for (var x = 1; x < 5; x+=1) { continue a }; x ``` For...
In the case corresponding to E-ShadowField in the semantics ("A Tested Semantics..."), the object is not checked for extensibility; the check is there in the semantics. The check is also...
Using Views instead of Records has an unfortunate consequence for debugging. In Record, each of the fields had a separate Signal, which made them available for VCD dumping. In contrast,...
Take the following Amaranth code: ```python class X(Elaboratable): def __init__(self): self.i = Signal(8) self.o = Signal(8) def elaborate(self, platform): m = Module() v = self.i + self.i m.d.comb += self.o.eq(v...
For debugging complex circuits, it's useful to have the signal traces grouped according to their function. The popular _gtkwave_ tool supports this, as does the `GTKWSave` class from the `vcd`...
I'm using Amaranth for university classes, where the students have access to DE1-SoC and DE2-115 boards. The board definition for DE1-SoC in `amaranth-boards` is very incomplete, and there is no...