A
Andrew Greensted
Guest
Hi All,
I'm hit a bit of a brick wall with a simulation problem I'm encountering.
When simulating my (VHDL) design, Modelsim's Wave window is showing a
'zero-width' (you can't zoom in on it) glitch on one of the signals.
If I study the List window I can see that the signal (pcwen) does indeed
toggle but during a delta cycle.
ps boardclk regfede_opa portaadd
delta regexwb_opa portawen
cu_regfilewen pcwen
cu_regfiledinselect
6250000 +1 1 0000010 0000010 1 0 0000010 1 0
6250000 +3 1 0000010 0100000 1 0 0000010 1 0
6250000 +4 1 0000010 0100000 0 1 0000010 0 0
6250000 +5 1 0000010 0100000 0 1 0100000 0 0
6500000 +1 0 0000010 0100000 0 1 0100000 0 0
6750000 +1 1 0000010 0100000 0 1 0100000 0 0
6750000 +4 1 0000010 0100000 1 0 0100000 1 0
6750000 +5 1 0000010 0100000 1 0 0000010 1 1 <---
6750000 +6 1 0000010 0100000 1 0 0000010 1 0
7000000 +1 0 0000010 0100000 1 0 0000010 1 0
7250000 +1 1 0000010 0100000 1 0 0000010 1 0
7250000 +3 1 0000010 0000000 1 0 0000010 1 0
7250000 +4 1 0000010 0000000 0 1 0000010 0 0
I'm guessing that this is due a race condition whilst the simulator
resolves the final signal values after the clock pulse. My design is
synchronous.
My question is, does this suggest badly written VHDL, or is this
something that happens with this type of simulator?
Many Thanks
Andy
I'm hit a bit of a brick wall with a simulation problem I'm encountering.
When simulating my (VHDL) design, Modelsim's Wave window is showing a
'zero-width' (you can't zoom in on it) glitch on one of the signals.
If I study the List window I can see that the signal (pcwen) does indeed
toggle but during a delta cycle.
ps boardclk regfede_opa portaadd
delta regexwb_opa portawen
cu_regfilewen pcwen
cu_regfiledinselect
6250000 +1 1 0000010 0000010 1 0 0000010 1 0
6250000 +3 1 0000010 0100000 1 0 0000010 1 0
6250000 +4 1 0000010 0100000 0 1 0000010 0 0
6250000 +5 1 0000010 0100000 0 1 0100000 0 0
6500000 +1 0 0000010 0100000 0 1 0100000 0 0
6750000 +1 1 0000010 0100000 0 1 0100000 0 0
6750000 +4 1 0000010 0100000 1 0 0100000 1 0
6750000 +5 1 0000010 0100000 1 0 0000010 1 1 <---
6750000 +6 1 0000010 0100000 1 0 0000010 1 0
7000000 +1 0 0000010 0100000 1 0 0000010 1 0
7250000 +1 1 0000010 0100000 1 0 0000010 1 0
7250000 +3 1 0000010 0000000 1 0 0000010 1 0
7250000 +4 1 0000010 0000000 0 1 0000010 0 0
I'm guessing that this is due a race condition whilst the simulator
resolves the final signal values after the clock pulse. My design is
synchronous.
My question is, does this suggest badly written VHDL, or is this
something that happens with this type of simulator?
Many Thanks
Andy