steadyeddie
Programmer
Hi folks. I've been struggling with a problem with synchronous circuits in VHDL. Let's say that I have a clock feeding into two logic blocks that operate in parallel. The two blocks are mealey state machines.
The first block generates output that is used as input for the second block.
There are no modeled delays, therefore, this should work properly.
The problem I have is this: When the inputs change in value, they do so at the exact same time as the next rising clock edge. On the next rising clock edge, the second block needs to read that input, but since the signal changes value at the exact same time as the clock rises, the second block doesn't register the change in value!!
The solution I can think of is this:
1) Either delay the clock that goes into the second state machine.
2) Or change the output of the signal on the first state machine faster.
So which one do I choose, and I how do I do this? The real problem I have with the first method is that I can't use wait blocks in process statements with sensitivity lists.
please help. I know the solution must be simple, but it's puzzling me to no end.
The first block generates output that is used as input for the second block.
There are no modeled delays, therefore, this should work properly.
The problem I have is this: When the inputs change in value, they do so at the exact same time as the next rising clock edge. On the next rising clock edge, the second block needs to read that input, but since the signal changes value at the exact same time as the clock rises, the second block doesn't register the change in value!!
The solution I can think of is this:
1) Either delay the clock that goes into the second state machine.
2) Or change the output of the signal on the first state machine faster.
So which one do I choose, and I how do I do this? The real problem I have with the first method is that I can't use wait blocks in process statements with sensitivity lists.
please help. I know the solution must be simple, but it's puzzling me to no end.