[ < Prev | Up | Next > ]   Node: Diagnostics

hexforge / error codes

Error and warning codes

The constructs the compiler rejects or warns on, with the code it prints and the reasoning behind each decision. This is the same data the tools emit (/api/rejected.json); the table filters in your browser, and reads in full without JavaScript. An E-code stops the build; a W-code does not.

The compiler rejects rather than ignores: an unsupported construct is a hard error with a line number, never silently dropped hardware. The two constructs that are ignored rather than rejected - system tasks (W302) and a delay inside an initial (W301) - are here too, marked as warnings.

16 of 16
CodeConstructCategoryPlannedReason
E118defparamlanguagenot plannedOrder-dependent and awkward to elaborate. Use parameter overrides in the instantiation.
E121hierarchical names in expressionslanguagenot plannedThe design is flattened early, so a cross-module reference has nothing to resolve against.
E130specify blocks, path delayslanguagenot plannedOnly meaningful for simulation and cell libraries.
E131user-defined primitiveslanguagenot plannedTable-driven primitives are a simulation feature.
E134wand, wor, trireg, tri0, tri1languagenot plannedNo resolved-net modelling exists in the netlist format.
E136gate primitives beyond and/or/not/xor/buflanguagenot plannednmos, pullup, rtran and relatives have no mapping on these devices.
E142real and time variableslanguagenot plannedFloating-point has no hardware here; use fixed-point integers.
E150delays in assignments (#n)languagenot plannedTiming comes from the delay table, not the source; a # delay is dropped only in an initial, see W301.
E156casexlanguagenot plannedThe don't-care matching of casex hides priority bugs in hardware. Use casez, which warns.
E161four-state literals (1'bx, 1'bz) outside tri-state IOsemanticsnot plannedThe netlist is two-state; x and z have no storage.
E170unpacked arrays deeper than one levelsynthesisplannedMulti-dimensional memories are not inferred yet; planned alongside BRAM cascades.
E181multiple drivers on a netsynthesisnot plannedA resolved wire needs tri-state modelling the format does not have.
W204unconstrained clock-domain crossingwarning-The path is reported but excluded from slack; constrain it with set_false_path or set_max_delay.
W214array not inferred as block RAMwarning-Names the array and the reason; usually an asynchronous read or an odd width.
W301delay in an initial blockwarning-The # delay is ignored rather than rejected; initial sets a power-on value only.
W302system task ignored ($display, $finish)warning-System tasks are accepted and dropped so testbench-flavoured code still elaborates.

error codes · from rejected.json · limitations in prose · tool reference

[ < Prev | Up | Next > ]   Next node: Data Files