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# 21398

ModelSim (MXE, SE, PE) - During a behavioral simulation, it seems that the synchronous elements do not work correctly when Data and Clock change at the same time (delta delays)

Description

General Description:

During a behaviorial simulation, it seems that the synchronous elements do not work correctly when Data and Clock change at the same time.

Solution

This is not an issue with the simulation models. When using event-based simulators such as ModelSim, care must be taken to ensure that delta delays are not causing problems. When two events occur at the same time, the simulator will resort to a scheduling scheme to determine which event should happen first. When viewing the waveform, it appears as if the two events are happening simultaneously. In reality, one event happens and then the next event happens at the same time plus a delta delay. Certain coding styles can cause the data to happen prior to the clock edge, when the two events occur at the same time. This is when it would seem as if the simulation model is not working correctly. In reality, the model is working correctly. The model is seeing the data appear prior to the clock edge; hence, it will output the data at the next clock edge (plus 100 ps of intrinsic delay).

This is a well-documented issue, and there are ways in which the coding styles can be adjusted to work around this issue.

More information on this can be found in the Delta Delay section of the ModelSim Documentation.

AR# 21398
Date Created 09/04/2007
Last Updated 02/20/2013
Status Active
Type General Article