K
kristoff
Guest
Hi,
Last weekend, I was continueing on my small project to use a FPGA as
DAC. I now use a hardware DAC (tlc5615).
So I have two modules, a top-level module for the DDS and an additional
module to drive the TLC. I have two signal for handshacking ("load" and
"done").
At a certain point, I had the problem that one of the signals wasn't
dropped fast enough, which resulted in a weird timing-issue.
In the end, I managed to fix my particular by adding a state with a
small delay in my FSM, but -looking back- it is probably also possible
to have done this with some additional checks in the state-machine.
Question: are there known "best practices" when designing a
handshacking-protocol between different modules in a FPGA design?
Is there documentation about this? Or text-books?
My question is not about this particular bug but a generic question on
"do-s" and "do not-s" in general.
Kristoff
Last weekend, I was continueing on my small project to use a FPGA as
DAC. I now use a hardware DAC (tlc5615).
So I have two modules, a top-level module for the DDS and an additional
module to drive the TLC. I have two signal for handshacking ("load" and
"done").
At a certain point, I had the problem that one of the signals wasn't
dropped fast enough, which resulted in a weird timing-issue.
In the end, I managed to fix my particular by adding a state with a
small delay in my FSM, but -looking back- it is probably also possible
to have done this with some additional checks in the state-machine.
Question: are there known "best practices" when designing a
handshacking-protocol between different modules in a FPGA design?
Is there documentation about this? Or text-books?
My question is not about this particular bug but a generic question on
"do-s" and "do not-s" in general.
Kristoff