Answers Database


VERILOG-XL: Buffer output does not follow transitions on its input (transport and inertial delays)


Record #648

Product Family: Software

Product Line: Cadence

Product Part: Verilog-XL

Problem Title:
VERILOG-XL: Buffer output does not follow transitions on its input (transport and inertial delays)



Problem Description:
Urgency: Standard

General Description:
clock buffer's output does not follow transitions on its input
during simulation. The buffer output ends up being stuck
at 0 or stuck at 1.

This is usually due to the user trying to clock the design at
a higher rate than allowed, based on the delay between the
I/O pin and the clock buffer output.

Verilog-XL runs in "pulse swallowing mode" by default, which
means that it will simulate distributed delays as *inertial
delays* unless told to do otherwise. With an inertial delay,
a delaying element does not pass a pulse through if its
duration is shorter than the element's delay to its output.

On the other hand, an element with *transport delay*
functionality *does* pass pulses of shorter duration than the
element's delay.
          




Solution 1:

To force Verilog-XL to enable transport delay functionality:
     
+transport_path_delays
Enables transport delay functionality and pulse control for
module path delays.

+transport_int_delays
This option enables transport delay functionality and pulse
control for inter-connect delay.

+multisource_int_delay
Enables transport delay functionality and pulse control for
interconnect delays plus unique source-load delays for multi-
source nets.

For pulse rejection, you may also need to specify these
additional pulse limit options:

+pulse_e/n

Example:

	     +pulse_e/0      sets the module output path to e
				(error state) and lets the
				module path output pulse pass
				through if the pulse width
				exceeds 0 time units)



           +pulse_r/m (sets the module output path to e
                     (error state) and lets the
                     module path output pulse pass
                     through if the pulse width
                     exceeds 0 time units)

Also in Verilog-XL v2.5, interconnect delays are controlled
with the following plus options on the command line:

          +pulse_int_e/n
          +pulse_int_r/m

You can determine whether routing and component delays are
the cause of the problem by using XDelay to run a static
timing analysis on the problem path to check the delay of the
buffer input signal against the delay through the buffer.
          





End of Record #648 - Last Modified: 10/14/99 15:40

For the latest news, design tips, and patch information on the Xilinx design environment, check out the Technical Tips!