M
Marco
Guest
Hi,
I'm implementing a small entity capable of receiving serial spi-like
data at speeds up to 20MHz. The spi clock will be an input (being a
slave) at the same rate. I was thinking about reading each bit on each
rising edge of that clock. My concern is now that this way I'll not be
able to be sure about the stability of the bit value.
Is this approach (one clock -> one bit read) to completely avoid or is,
sometimes, used?
In UART-like snippet I saw the FPGA clock runs faster than the serial
one and each bit value is then acquired in the mid-point of the
serial-clock-period, even if the data shuold be presented on its line
with some advance on the clock rising front in order to be yet stable.
Sometimes, then, you may need to see that the reading bit keeps the
same value for at least n FPGA-clock cycles and this is like inserting
a filter.
Comments are welcome.
Thanks,
Marco
I'm implementing a small entity capable of receiving serial spi-like
data at speeds up to 20MHz. The spi clock will be an input (being a
slave) at the same rate. I was thinking about reading each bit on each
rising edge of that clock. My concern is now that this way I'll not be
able to be sure about the stability of the bit value.
Is this approach (one clock -> one bit read) to completely avoid or is,
sometimes, used?
In UART-like snippet I saw the FPGA clock runs faster than the serial
one and each bit value is then acquired in the mid-point of the
serial-clock-period, even if the data shuold be presented on its line
with some advance on the clock rising front in order to be yet stable.
Sometimes, then, you may need to see that the reading bit keeps the
same value for at least n FPGA-clock cycles and this is like inserting
a filter.
Comments are welcome.
Thanks,
Marco