题解 | 脉冲同步电路

脉冲同步电路

https://www.nowcoder.com/practice/b7f37e6c55e24478aef4ec2d738bbf07

`timescale 1ns/1ns

module pulse_detect(
	input 				clk_fast	, 
	input 				clk_slow	,   
	input 				rst_n		,
	input				data_in		,

	output      		dataout
);

// 缺点: 若是两个脉冲隔的太近了,则检测不到

reg Q;
always@(posedge clk_fast or negedge rst_n)begin
	if(!rst_n)begin
		Q<=1'b0;
	end
	else if(data_in) begin
		Q<=~Q;
	end
	else begin
		Q<=Q;
	end
end

reg data_1;
reg data_2;
reg data_3;
always@(posedge clk_slow or negedge rst_n)begin
	if(!rst_n)begin
		data_1 <= 1'b0;
		data_2 <= 1'b0;
		data_3<=1'b0;
	end else begin
		data_1 <= Q;
		data_2 <= data_1;
		data_3<=data_2;
	end
end


assign dataout = data_2 ^ data_3;

endmodule

全部评论

相关推荐

02-28 01:18
已编辑
南昌大学 后端工程师
后测速成辅导一两个月...:把开源经历放个人项目上边应该更好,就像大部分人都把实习经历放个人项目上边
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务