Project

General

Profile

[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
  Voneline
  WFH
General Info
  Papers

Issue #1415

Verilator generates calls to an undefined function named: VL_SHIFTR_QQW

Added by Larry Lee 2 months ago. Updated about 1 month ago.

Status:
Closed
Priority:
Normal
Assignee:
Category:
TranslationError
% Done:

0%

Estimated time:
0.50 h

Description

Verilator is generating calls to a undefined function named VL_SHIFTR_QQW.

This bug is nearly identical to that reported in 1412-Verilator-Verilator-generates-calls-to-an-undefined-function-named-VL_SHIFTL_QQW

I've found that defining this function in include/verilated.h fixes this issue. To resolve, simply add the following definition to include/verilated.h after VL_SHIFTR_IIW:

static inline QData VL_SHIFTR_QQW(int obits,int,int rbits,QData lhs, WDataInP rwp) VL_MT_SAFE {
    for (int i=1; i < VL_WORDS_I(rbits); ++i) {
        if (VL_UNLIKELY(rwp[i])) {  // Huge shift 1>>32 or more
            return 0;
        }
    }
    return VL_CLEAN_QQ(obits,obits,lhs>>(static_cast<QData>(rwp[0])));
}

I've created a Git fork with the necessary changes that can be pulled into your Git repo: https://github.com/llee454/verilator

- Larry Lee

History

#1 Updated by Wilson Snyder 2 months ago

  • Category changed from WrongRuntimeResult to TranslationError
  • Status changed from New to Resolved
  • Assignee set to Larry Lee

Thanks again for the patch.

Pushed to git towards 4.014.

#2 Updated by Wilson Snyder about 1 month ago

  • Status changed from Resolved to Closed

In 4.014.

Also available in: Atom