google / xls

XLS: Accelerated HW Synthesis
http://google.github.io/xls/
Apache License 2.0
1.21k stars 178 forks source link

Unsupported character: '_' Error in Netlist Interpreter (may be related to VAST) #418

Open vincent-mirian-google opened 3 years ago

vincent-mirian-google commented 3 years ago

When using the verilog file:

module __a__a(
  input wire clk,
  output wire [31:0] out
);
  // ===== Pipe stage 0:
  wire [31:0] p0_literal_1_comb;
  assign p0_literal_1_comb = 32'h0000_0001;

  // Registers for pipe stage 0:
  reg [31:0] p0_literal_1;
  always_ff @ (posedge clk) begin
    p0_literal_1 <= p0_literal_1_comb;
  end
  assign out = p0_literal_1;
endmodule

I receive the following error.

F0502 19:43:27.783431 1020326 netlist_interpreter_main.cc:170] Check failed: ::absl::OkStatus() == (xls::RealMain(netlist_path, cell_library_path, cell_library_proto_path, module_name, inputs, output_type, dump_cells)) (OK vs. UNIMPLEMENTED: Unsupported character: '_' (0x5f) @ 1:8) 

It is referring to the '_' in the module name: aa in the verilog file.

The commandline is:

bazel run //xls/tools:netlist_interpreter_main -- --cell_library=$PWD/cells.lib    --netlist=$PWD/a.v --module_name=__a__a --input="high"

The contents of cells.lib does not seem relevant to the error.

On a side note: The verilog was generated using the IR converter, IR Optimizer and Codegen tools. The DSLX function is:

fn a() -> u32 {
  u32: 1
}

Regardless, the verilog seems correct.

cdleary commented 3 years ago

I think this has the same root cause as https://github.com/google/xls/issues/419#issuecomment-832930648 (the netlist interpreter is not usable for behavioral Verilog modules).