syedshan
Advanced Member level 1
- Joined
- Feb 27, 2012
- Messages
- 463
- Helped
- 27
- Reputation
- 54
- Reaction score
- 26
- Trophy points
- 1,308
- Location
- Jeonju, South Korea
- Activity points
- 5,134
Dear all,
I am aware of the iteration limit reach error (I guess).
I think that the state and its condition at which my simulator stops will pass by as the clocks proceed in real world...
Can this happen or the simulation error will also cause fatal effect in real circuits as well. As I cannot see any way to change since
in that case I think the state machine will not be same as I want it to be.
Well actually in first place I think this should at all occur, since please see the last line of the following code 'fetch_start <= '0' ;
and hence it should return to elsif condition in the next run of the combinational process,(see below)
process(pr_state, nxt_state, rd_en, fetch_start,empty_sig(0), empty_sig(1))
but since no element in the sensitivity list changes hence the simulation time does not proceed in this combinational block....
What to do, I have put all the relevant elements in the sensitivity list
NOTE: The whole code runs only 2 or three clock cycles after RESET is de-asserted...
Bests,
Shan
I am aware of the iteration limit reach error (I guess).
Usually it occurs when we have the combinational feedback, but I am actually implementing state machine whereIteration limit 10000 is reached
I think that the state and its condition at which my simulator stops will pass by as the clocks proceed in real world...
Can this happen or the simulation error will also cause fatal effect in real circuits as well. As I cannot see any way to change since
in that case I think the state machine will not be same as I want it to be.
Well actually in first place I think this should at all occur, since please see the last line of the following code 'fetch_start <= '0' ;
and hence it should return to elsif condition in the next run of the combinational process,(see below)
process(pr_state, nxt_state, rd_en, fetch_start,empty_sig(0), empty_sig(1))
but since no element in the sensitivity list changes hence the simulation time does not proceed in this combinational block....
What to do, I have put all the relevant elements in the sensitivity list
NOTE: The whole code runs only 2 or three clock cycles after RESET is de-asserted...
case pr_state is
when no_read =>
if(fetch_start /= '0' and fetch_start /= '1') then
fetch_start <= '0';
nxt_state <= read_0;
elsif(fetch_start = '0') then
if(empty_sig(0) = '0') then
rd_enf(0) <= rd_en; rd_enf(1) <= '0';
fetch_start <= '1';
nxt_state <= read_0;
else --if fifo1 empty
rd_enf(1) <= rd_en; rd_enf(0) <= '0' ;
nxt_state <= read_0;
end if;
else nxt_state <= no_read;
fetch_start <= '0';
end if;
Bests,
Shan
Last edited: