[libre-riscv-dev] [Bug 72] verilog to nmigen converter (full or partial) needed

bugzilla-daemon at libre-riscv.org bugzilla-daemon at libre-riscv.org
Wed Apr 24 08:06:15 BST 2019


--- Comment #4 from Luke Kenneth Casson Leighton <lkcl at lkcl.net> ---
hm good point, let's see...

yosys> read_verilog -sv fsm_expand.sv 
1. Executing Verilog-2005 frontend.
Parsing SystemVerilog input from `fsm_expand.sv' to AST representation.
fsm_expand.sv:59: ERROR: syntax error, unexpected TOK_TYPEDEF

line 59:

  typedef enum logic           {IDLE, WAIT} state_t;

so that would be information lost (iverilog supports the typedef keyword)

yosys> help read_verilog

        enable support for SystemVerilog features. (only a small subset
        of SystemVerilog is supported)

yosys> read_verilog -sv load_unit.sv 
1. Executing Verilog-2005 frontend.
Parsing SystemVerilog input from `load_unit.sv' to AST representation.
load_unit.sv:22: ERROR: syntax error, unexpected TOK_ID, expecting ',' or '='
or ')'

(there's a type there):
    input  lsu_ctrl_t                lsu_ctrl_i,

if i put the import back in (which iverilog barfs on) yosys still barfs:

import ariane_pkg::*; // <<----

module load_unit (

this is a known issue in icarus verilog... and i can *guarantee* it will
be easier to fix that in the python-ply BNF than it will be to try to
patch the (c-based) iverilog source code, first.


* yosys isn't up to the job and it would be months possibly years
  until any feature requested is added to support *Cadence* undocumented
  systemverilog features

* iverilog likewise would be months to add the same... and the developer
  would require to go in a different direction anyway

* yosys would destroy valuable information, performing hardware-suitable
  topological translations

* we need a language *translator* where yosys is a language *compiler*.

  a language translator's focus is to preserve as much of the original
  language's features (such as code comments, structure, order of
  the original code and so on)

* extracting the BNF syntax from iverilog is done already (automated)

* modifying the BNF syntax will be a heck of a lot easier without the
  primary purpose of either yosys or iverilog being in the way

You are receiving this mail because:
You are on the CC list for the bug.

More information about the libre-riscv-dev mailing list