[logo] 
 
Home
News
Activity
About/Contact
Major Tools
  Dinotrace
  Verilator
  Verilog-mode
  Verilog-Perl
Other Tools
  BugVise
  CovVise
  Force-Gate-Sim
  Gspice
  IPC::Locker
  Rsvn
  SVN::S4
  SystemPerl
  Voneline
  WFH
General Info
  Papers

Issue #83

Inserting two symbols with same name

Added by J Baxter about 4 years ago. Updated about 4 years ago.

Status:Closed Start date:05/06/2009
Priority:Normal Due date:
Assignee:Wilson Snyder % Done:

0%

Category:TranslationError
Target version:-

Description

Hi,

I've got a netlist from a synthesis tool, and I think it's confusing Verilator.

This is the output I'm seeing from a little test case I've put together, but it's doing the exact same thing in a larger design:

verilator -language 1364-2001 -Wno-lint --top-module intercon -sc intercon.vm -v ./sim_lib.v
%Error: intercon.vm:1802: Internal Error: ../V3SymTable.h:53: Inserting two symbols with same name: v__DOT__wb4m1s2__DOT__N_15
%Error: Command Failed /home/orsoc1/Documents/julius/scratch/verilator-3.702/verilator_bin -language 1364-2001 -Wno-lint --top-module intercon -sc intercon.vm -v ./sim_lib.v
make: *** [all] Error 10

The signal in question, wbm1s2.N_15, is declared as a wire, like so: wire \wb4m1s2.N_15 ;

And is used to hook up two modules inside the intercon module.

Attached is a test case.

verilator_intercon_prob.tar.bz2 (26.3 kB) J Baxter, 05/06/2009 08:32 pm

History

Updated by Wilson Snyder about 4 years ago

  • Category set to TranslationError
  • Status changed from New to Assigned
  • Assignee set to Wilson Snyder

Indeed, it's because the . in the name conflicts with the internal flattened signal name. Verilator needs to consider "user's" \. different from it's own dot.

For now, please just globally eliminate the dots on the input side, in perl this would be approximately

s!\\([a-zA-Z0-9_]+)\.!\1dot!g;

I did that myself and it compiles ok.

Updated by J Baxter about 4 years ago

Thanks very much.

I found that the carte blanche replacement of the \. in each case was breaking defparams, so I used sed like so:
sed '/defparam/!s/\([a-zA-Z0-9_]\)\.//g'
Cheers.

Updated by Wilson Snyder about 4 years ago

  • Status changed from Assigned to Resolved

This is fixed in the git version.

There's still an issue that the signals get traced into the wrong scope. That'll need a SystemPerl fix.

Updated by Wilson Snyder about 4 years ago

  • Status changed from Resolved to Closed

In 3.710

Also available in: Atom