The clk edge produces a txout when txclk is active while in the idle state. To see where all the delays are, you'd have to show how the tx_clk strobe and frame_end are generated since the shifter you describe has no more delays beyond what those signals cause. Is tx_clk a 5 MHz strobe (1 high in 10 periods) in the 50MHz time domain? If not, some assumptions here are invalid.
What can be done in order to minimize the delay? I can see delay of ~ 80 nsec, between the external clock and the output data. I have designed this register and synchonized the 5 MHz external trigger (pseudo clock txclk) to the 50 MHz clock.
The output serial data should be synchronized to the external clock (5 MHz). The external trigger and the board clock ( 50 MHz ) are not synchonized. My board clock is 50 MHz and I also have an external trigger ( ~ 5 MHz, pseudo clock).
Would like to design a parallel in serial out shift register.