想用verilog做UART,看了网上的一些程序,发现对他们如何处理开始的第一个低电平还是很迷糊。我现在的想法是这样,大家帮看一下可行么?
input RX; //串口接收线
input RI; //串口忙信号指示
output start;//开始信号输出,指示串口数据即将到达,准备接收8位数据
RI是这样的,当串口处于空闲状态时,Ri为1;当串口开始接收数据时,RI为0,当接收到停止位时,RI置1,这样的话就保证了一帧的接收中start不会多次置1,而只在最开始到来的低电平置1,从而识别了串口传输的起始位。
但是这样的话RI相当于从后面的数据处理模块反馈到了start输出的这个模块,这2个模块都是时序逻辑的,这样会不会有问题?
或者根本就不需要这样处理,请高手指教 |