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

    Join Date
    Apr 2017
    Posts
    158
    Helped
    33 / 33
    Points
    1,086
    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: 249,762, Level: 100
    Awards:
    1st Helpful Member

    Join Date
    Jan 2008
    Location
    Bochum, Germany
    Posts
    43,481
    Helped
    13214 / 13214
    Points
    249,762
    Level
    100

    Re: Tracking 'X' in the gate lavel simulation

    Did you try Modelsim TraceX function?



    •   AltAdvertisment

        
       

  3. #3
    Advanced Member level 4
    Points: 7,862, Level: 21
    Achievements:
    7 years registered Created Blog entry
    dpaul's Avatar
    Join Date
    Jan 2008
    Location
    Germay
    Posts
    1,170
    Helped
    254 / 254
    Points
    7,862
    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,086, Level: 7

    Join Date
    Apr 2017
    Posts
    158
    Helped
    33 / 33
    Points
    1,086
    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: 29,664, Level: 42
    ads-ee's Avatar
    Join Date
    Sep 2013
    Location
    USA
    Posts
    6,843
    Helped
    1628 / 1628
    Points
    29,664
    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: 37,575, Level: 47

    Join Date
    Mar 2008
    Location
    USA
    Posts
    6,071
    Helped
    1758 / 1758
    Points
    37,575
    Level
    47

    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).



--[[ ]]--