+ Post New Thread
Results 1 to 6 of 6
  1. #1
    Full Member level 3
    Points: 1,209, Level: 7

    Join Date
    Apr 2017
    Posts
    167
    Helped
    35 / 35
    Points
    1,209
    Level
    7

    Tracking 'X' in the gate lavel simulation

    I am trying to fix my design, it works in the ModelSim but doesn't work in the hardware. I ran gate level simulation (with the same test bench) but shortly after starting some debug at the output of the FPGA signals got 'X'. Is there any way to track where and when 'X' appears inside the design? All input data from memory are defined. I have an access to some Mentor's tools (QuestaSim, Precision Synthesis etc).

    •   AltAdvertisment

        
       

  2. #2
    Super Moderator
    Points: 255,159, Level: 100
    Awards:
    1st Helpful Member

    Join Date
    Jan 2008
    Location
    Bochum, Germany
    Posts
    44,463
    Helped
    13543 / 13543
    Points
    255,159
    Level
    100

    Re: Tracking 'X' in the gate lavel simulation

    Did you try Modelsim TraceX function?



    •   AltAdvertisment

        
       

  3. #3
    Advanced Member level 4
    Points: 8,214, Level: 21
    Achievements:
    7 years registered Created Blog entry
    dpaul's Avatar
    Join Date
    Jan 2008
    Location
    Germany
    Posts
    1,221
    Helped
    268 / 268
    Points
    8,214
    Level
    21
    Blog Entries
    1

    Re: Tracking 'X' in the gate lavel simulation

    but shortly after starting some debug at the output of the FPGA signals got 'X'.
    The manual way to find out why you see an X propagation is to go back in sim time and track down the FIRST source of X. Then find out the reason as to why that X is happening.
    FPGA enthusiast!



    •   AltAdvertisment

        
       

  4. #4
    Full Member level 3
    Points: 1,209, Level: 7

    Join Date
    Apr 2017
    Posts
    167
    Helped
    35 / 35
    Points
    1,209
    Level
    7

    Re: Tracking 'X' in the gate lavel simulation

    Ok, I found a source - a missing statement in a reset block.

    I see in my simulation (waveform preview in Modelsim) that the half of the rising edge is blue and half of it is green. The falling edge is half red and half green (the vertical bar which depicts edge of the digital waveform is red at the top and green at the bottom). How to interpret this result of the simulation? The value of the signal between edges is green (=has got a value).
    This piece of logic is interfaced to the model of the SRAM memory.



  5. #5
    Super Moderator
    Points: 30,484, Level: 42
    ads-ee's Avatar
    Join Date
    Sep 2013
    Location
    USA
    Posts
    7,013
    Helped
    1677 / 1677
    Points
    30,484
    Level
    42

    Re: Tracking 'X' in the gate lavel simulation

    You've been here more than long enough to know that...

    A picture is worth way more than all that verbiage you posted and posting the code along with the picture would likely be much more likely to get an answer.



    •   AltAdvertisment

        
       

  6. #6
    Advanced Member level 5
    Points: 38,807, Level: 48

    Join Date
    Mar 2008
    Location
    USA
    Posts
    6,279
    Helped
    1824 / 1824
    Points
    38,807
    Level
    48

    Re: Tracking 'X' in the gate lavel simulation

    I find the "missing statement in a reset block" kind of creepy.
    Reset should be pin-applied signal and nothing but, else you
    may have a simulation that works and a physical result that
    doesn't, or not consistently.

    The small delay is probably some marched-out initial condition
    (saying that reset wasn't happening as completely as it has
    to).



--[[ ]]--