关于IR 接收数据的上升沿和下降沿的判断, 其实可以画图来理解:
手动把电路画出来, 并且进行了推算:
上面输入的1010 是 IR 的那种 特殊传输方式, 560us低+560us高代表传输的是0 ,560us低+560us x3 高代表传输的是1 。
如果就拿普通的0101传输,推算如下:
边沿检测其实用得很广泛的,比如FPGA 串口uart通信的设计里, 当我们要判断接收端口的起始位,也就是下降沿的时候就可以这样设计:
//捕获接收端口下降沿(起始位),得到一个时钟周期的脉冲信号 assign start_flag = uart_rxd_d1 & (~uart_rxd_d0); //对 UART 接收端口的数据延迟两个时钟周期 always @(posedge sys_clk or negedge sys_rst_n) begin if (!sys_rst_n) begin uart_rxd_d0 <= 1'b0; uart_rxd_d1 <= 1'b0; end else begin uart_rxd_d0 <= uart_rxd; uart_rxd_d1 <= uart_rxd_d0; end end
无