errors · bitdewfpga bit, yosys-slang
design.sv:5: ERROR [enum-method-next-prev]: s.next() is an enum method that steps through the values (next/prev): yosys does not build enum methods, and yosys-slang builds first()/last() only; Vivado builds next/prev (UG901 Ch.10 Table 27). Fix: write the step out as a case on s, in the order the enum lists its values (with IDLE, RUN, DONE: case (s) IDLE: s <= RUN; RUN: s <= DONE; DONE: s <= IDLE; endcase).
yosys' reader:
design.sv:5: ERROR: Can't resolve function name `\s.first'.
design.sv:5: ERROR [enum-method-next-prev]: s.next() is an enum method that steps through the values (next/prev): yosys does not build enum methods, and yosys-slang builds first()/last() only; Vivado builds next/prev (UG901 Ch.10 Table 27). Fix: write the step out as a case on s, in the order the enum lists its values (with IDLE, RUN, DONE: case (s) IDLE: s <= RUN; RUN: s <= DONE; DONE: s <= IDLE; endcase). https://nosey-dewdrop.github.io/dewfpga/errors/enum-method-next-prev/
Why does it happen?
yosys' own reader has no enum methods; yosys-slang implements first() and last() and stops at next()/prev(). A known gap of the chain.
What is the fix?
case (s) IDLE: s <= RUN; RUN: s <= DONE; DONE: s <= IDLE; endcase
Which command prints it?
Which probes in test/sv print this code?
Every probe, with what Vivado does and what each stage does here: the probes, stage by stage.