Project

General

Profile

[logo] 
 
Home
News
Activity
About/Contact
Major Tools
  Dinotrace
  Verilator
  Verilog-mode
  Verilog-Perl
Other Tools
  IPC::Locker
  Parallel::Forker
  Voneline
General Info
  Papers

Issue #1412

Verilator generates calls to an undefined function named: VL_SHIFTL_QQW

Added by Larry Lee 9 months ago. Updated 7 months ago.

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

0%

Estimated time:
0.50 h

Description

Verilator is generating calls to a 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_SHIFTL_IIW:
static inline QData VL_SHIFTL_QQW(int obits,int,int rbits,IData 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<<rwp[0]);                                                     
}   
I've created a Git fork with the necessary changes that can be pulled into your Git repo.

- Larry Lee

History

#1 Updated by Larry Lee 9 months ago

https://github.com/llee454/verilator

#2 Updated by Wilson Snyder 9 months ago

  • Status changed from New to Resolved
  • Assignee set to Larry Lee

Thanks for the patch, very close, just had to make a minor change in that it needs to be passed QData input to avoid truncating upper 32 bits.

Fixed in git towards 4.014.

#3 Updated by Wilson Snyder 7 months ago

  • Status changed from Resolved to Closed

In 4.014.

Also available in: Atom