In reply to kulua:
I can’t sample at the clock edge since it will slow down the system.
What do you mean by this? I assume that by “system” you mean the simulation. How does sampling at the data rate cause a slowdown? If there is only 1 bit per clock, the sampling code could gather multiple bits into a data word.