Git Product home page Git Product logo

ncverilog-error-messages's Introduction

I've found that most ncverilog messages are both obscure and ungoogle-able. Hopefully, writing these down will help someone somewhere.

Error message explanations

ncsim

ncsim: *E,MSSYSTF: User Defined system task or function registered during elaboration and used within the simulation has not been registered during simulation. -- this happens if the $function isn't defined. Any random typo will result in this error.

ncverilog

ncverilog: *E,ELBERR: Error during elaboration (status 1), exiting. -- ncelab's caching doesn't seem to be coherent. This commonly pops up if you use git and checkout different branches. Sometimes, checking out a different branch and the checking the original branch back out fixes it. Sometimes, not. A common problem is that you don't include something you should, but it's cached in some strage way that causes the build to incorrectly work. If you wipe out your INCA_libs directory and try again, the build will fail. So, the real error is that something wasn't included correctly, which will often fail as follows, once you wipe out INCA_libs:

ncvlog

ncvlog: *E,SVNIMP: SystemVerilog construct not yet implemented: nested module -- In addition to the obvious reason this occurs, this also occurs if you attempt to multiply two localpramams in a packed array to get the width of the array. Additionally, you get the following error, too, which is slightly more informative

ncvlog: *E,NOTSTT: expecting a statement [9(IEEE)] -- there are many reasons this can happen. If you get a ridiculously large number of these, it could be because you left off an 'end'. The first one has the location of the error.

ncvlog: *E,NOTTXX: Expecting a task name [10.2.2(IEEE)] -- this error occurs if you use a put a parameter in an executable block. Note that if you substitute an the integer value of the local param you then get the following error: ncvlog: *E,NOTSTT: expecting a statement [9(IEEE)]

ncvlog: *E,NULLLP: empty list of ports [A.1.4(IEEE-2001)] -- this error will be given if you have a comma after your last port entry.

ncvlog: *E,BADDCL: identify declaration while expecting a statement -- declaration occurs where it shouldn't, e.g., you have a declaration in a task that isn't at the top

ncvlog: *E,MEMDNI: You can't assign from a bitrange for some reason, use a generate for-loop instead. It's possible that you accidentally wrote wire a [3:0] instead of wire [3:0] a and it's having a horrible knock-on effect.

ncvlog: *E,NOPSOM: Similar problem to MEMDNI.

ncvlog: *E,SVNIMP: SystemVerilog construct not yet implemented: nested program -- I'm unsure what that mean by nested, since this error occurs even when you try to write a program block inside a module. This error message seems to be the one given any time write a program block where you shouldn't.

ncvlog: *E,PLMIUX: You probably have a trailing comma in your named port list.

ncvlog: *E,EXPENM: You might have a variable name/module name that begins with a number.

ncvlog: *E,EXPNDL: You accidentally wrote wire input a instead of input wire a.

ncelab

ncelab: *E,DLCSMD: Dependent checksum verilog_package worklib.sq:svh (VST) doesn't match with the checksum that's in the header of: module worklib.foo:v (VST).

ncelab: *E,CUVMUR (../rtl/foo,314|618): instance '[email protected][0][email protected]' of design unit 'baz' is unresolved in 'worklib.foo:sv'

halsynth

halsynth: *E,CLKENF: You should do a conditional check on whatever's in your sensitivity list before something else. Often this is just because you're checking sync_reset before async_reset even though negedge async_reset is in your sensitivity list.

Non-errors that cause problems:

X values in a multi-dimensional packed array: are you sure the array is large enough? If you index off the end, it is neither a compile time error nor a runtime error. It "works", but gives you Xs.

Connecting 'logic' to an enum. If you have something that should be an enum and change just the port type on the module to input logic, it still works! Well, for some definition of works. There's no warning or error.

ncverilog-error-messages's People

Contributors

crclayton avatar danluu avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.