UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

AR# 2276

NC-Verilog, ncelab - "*F,CUMSTS: Timescale directive missing on one or more modules"

Description

General Description:

When simulating with NC-Verilog, what does the following error mean?

"ncelab: *F,CUMSTS: Timescale directive missing on one or more modules."

Solution

The `timescale can be declared in any file.

The UNISIMS has 100ps / 10ps.

The SIMPRIMS has 1ps / 1ps.

The glbl.v has 100ps / 10ps.

The smallest precision of all the timescale directives determines the time unit of the simulation. For example:

`timescale 1 ns / 10 ps

module1 ();

...

endmodule

`timescale 100 ns / 1 ns

module2 ();

...

endmodule

`timescale 1 ps / 100 fs

module3 ();

...

endmodule

The first timescale indicates that the time units for module1 are in multiples of 1 ns and it is precise to 10 ps. Thus, the smallest timestep for the simulator is 10 ps.

The second timescale is 100 ns / 1 ns. Because 1 ns is greater than 10 ps, the smallest timestep remains 10 ps.

The third timescale is 1 ps / 100 fs. Because 100 fs is smaller than 10 ps, the smallest simulator timestep now becomes 100 fs.

The `timescale compiler directive is optional. Designs that do not contain this require no modification, and the default of 1 ns / 1 ns is used. However, if the design includes a `timescale compiler directive for any module definition, then all other modules' definitions require this as well. Otherwise, NC-Verilog flags this as an error.

The -timescale option can be issued to ncelab rather than adding the `timescale directive to all the modules.

AR# 2276
Date Created 08/21/2007
Last Updated 12/15/2012
Status Active
Type General Article