1.将接收信号,延迟一个clk,然后将接收信号与延迟信号进行操作得到边沿检测结果。
上升沿检测:
always@(posedge clk)
rx1 <= rx;
assign pos = rx &&~ rx1;
2.设一个两比特寄存器,将接收数据一次存入寄存器,判断第0比特为1,第1比特为0,则检测到下降沿。
reg [1:0] neg_r = 0;
always @(posedge clk)
if(rst) neg_r <= 2’b0;
else neg_r <= {neg_r[0],rx};
assign neg_flag =(neg_r == 2’b0) ? 1’b1 : 1’b0;