//**************************************************************
module detecedge(
clk,rst_n,
singalin,
singalout
);
input clk; //输入时钟
input rst_n; //复位信号
input singalin; //要检测的边沿信号
output pos_singalin; //上升沿标志位
output neg_singalin; //下升沿标志位
//***************************************************************
reg q1,q2,q3; //所检测边沿信号的状态寄存器
always @(posedge clk or negedge rst_n)
if(!rst_n) {q3,q2,q1} <= {1'b0,1'b0,1'b0}; //状态初值
else {q3,q2,q1} <= {q2,q1,singalin}; //状态锁存
//***************************************************************
assign pos_singalin = (~q3) & q2; //上升沿检测
assign neg_singalin= q3 & (~q2); //下降沿检测
endmodule
文章评论(0条评论)
登录后参与讨论