517650971 发表于 2011-8-22 17:56:17

新手请教

reg rs232_rx0,rs232_rx1,rs232_rx2,rs232_rx3;
//接收数据寄存器,滤波用
wire neg_rs232_rx;
//表示数据线接收到下降沿


always @ (posedge clk or negedge rst_n) begin

      if(!rst_n) begin

            rs232_rx0 <= 1'b0;

            rs232_rx1 <= 1'b0;

            rs232_rx2 <= 1'b0;

            rs232_rx3 <= 1'b0;

end

      else begin

            rs232_rx0 <= rs232_rx;

            rs232_rx1 <= rs232_rx0;

            rs232_rx2 <= rs232_rx1;

            rs232_rx3 <= rs232_rx2;

end
end
//下面的下降沿检测可以滤掉<20ns-40ns的毛刺(包括高脉冲和低脉冲毛刺),

//这里就是用资源换稳定(前提是我们对时间要求不是那么苛刻,因为输入信号打了好几拍)

//(当然我们的有效低脉冲信号肯定是远远大于40ns的)


assign neg_rs232_rx = rs232_rx3 & rs232_rx2 & ~rs232_rx1 & ~rs232_rx0;
//接收到下降沿后neg_rs232_rx置高一个时钟周期


assign neg_rs232_rx = rs232_rx3 & rs232_rx2 & ~rs232_rx1 & ~rs232_rx0;这句话是什么意思啊?是不是rs232_rx0,rs232_rx1,rs232_rx2,rs232_rx3;这些寄存器都为1了neg_rs232_rx才为真啊?
页: [1]
查看完整版本: 新手请教