FPGA作为从机通过SPI接收ARM传来的数据,回传的数据发生跳变。

在FPGA接收ARM端传过来的数据时,片选拉低时,直接通过SPI上的时钟SCLK的上升沿进行寄存数据,然后在SCLK的下降沿输出寄存的数据,这样在输出时会导致传给ARM的数据发生跳变,然后我改了下代码,在FPGA的内部时钟(sys_clk)的上升沿对SPI上的时钟和数据进行操作,回读的数据正常了。请问前者和后者的区别是啥?是因为要经过内部的时钟进行同步操作吗?