有关SPI-Slave模式的时序问题,急!求助!在线等!
时间:10-02
整理:3721RD
点击:
最近在弄一个SPI-Slave模块,写的比较简单。但跑仿真send data模式时序没问题,receive data模式问题却很奇怪。下图是receive data模式的代码[attach]525894[/attach],写的比较简单,用一个2位的移位寄存器存放MOSI,然后在SCK上升沿把MOSI的高位顺次移位给到rx_fifo[7:0]的低位,当1个字节传完,byte_rcved标志位使能,把rx_fifo中数据输出给byte_data_rcved,完成一次receive data操作。
这个是testbench,[attach]525899[/attach]
下面的问题就比较蛋疼了,看这张receive dat5a的波形图,[attach]525898[/attach]。如tb中,MOSI的输入数据 data[7:0] 赋值为35h,但显示到波形就变成了6Ah(也就是data[7:0]左移一位后的数值),反复试验多次都是这个问题(比如输入FF,显示为FE;输入55,显示为AA;输入77,显示为EE)。反复查看过模块代码和tb代码,还是没有头绪,蛋疼!然后MOSI信号线上输出的数据也不对(对的话应该是data[7]的从高位开始顺次输出),rx_fifo和byte_data_rcved的值也是时对时不对。
这是send data的波形图,是对的,各位可以比较下[attach]525897[/attach](上面一半是rx,是错的;下面一半是tx,是对的)
小弟反复研究还是没有发现关键问题所在,望各位大虾帮忙看看,在线等,急!
这个是testbench,[attach]525899[/attach]
下面的问题就比较蛋疼了,看这张receive dat5a的波形图,[attach]525898[/attach]。如tb中,MOSI的输入数据 data[7:0] 赋值为35h,但显示到波形就变成了6Ah(也就是data[7:0]左移一位后的数值),反复试验多次都是这个问题(比如输入FF,显示为FE;输入55,显示为AA;输入77,显示为EE)。反复查看过模块代码和tb代码,还是没有头绪,蛋疼!然后MOSI信号线上输出的数据也不对(对的话应该是data[7]的从高位开始顺次输出),rx_fifo和byte_data_rcved的值也是时对时不对。
这是send data的波形图,是对的,各位可以比较下[attach]525897[/attach](上面一半是rx,是错的;下面一半是tx,是对的)
小弟反复研究还是没有发现关键问题所在,望各位大虾帮忙看看,在线等,急!
时序不同步吧!接收时可能你丢数据了!
看不到图啊。也看不到代码啊。
