1、边沿检测(实现对信号上升沿或下降沿进行检测)
//上升沿检测
`timescale 1ns/1ps
module edge_detect(
//system signals
input clk ,
input rst_n ,
input edge_signal ,
output pulse
);
reg edge_reg0;
reg edge_reg1;
always @(posedge clk or negedge rst_n) begin
if (!rst_n) begin
edge_reg0 <= 1'b0;
edge_reg1 <= 1'b0;
end
else begin
edge_reg0 <= edge_signal;
edge_reg1 <= edge_reg0;
end
end
assign pulse = ((~edge_reg1)&edge_reg0)?1'b1:1'b0;
endmodule
2、帧头检测(在通信中的帧同步中有应用)
题目描述:帧头frame_head来脉冲同时data_in会来数据,连续三次的数据都是8'h33时就输出一个脉冲。
`timescale 1ns/1ps
module frame_detect (
//system signals
input clk ,
input rst_n ,
input frame_head ,
input [7:0]data_in ,
output pulse
);
reg out;
reg [1:0] state;
reg pulse_f