题解 | #边沿检测#

边沿检测

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

`timescale 1ns/1ns
module edge_detect(
	input clk,
	input rst_n,
	input a,
	
	output reg rise,
	output reg down
);
reg	signal_delay			;
wire	signal_pos_edge			;
wire	signal_nege_edge		;

assign		signal_nege_edge = (signal_delay & (~a))	;
assign		signal_pos_edge	 = ((~signal_delay) & a)	;

always@(posedge clk, negedge rst_n)begin
	if(!rst_n)
		signal_delay	<=		1'b0	;
	else
		signal_delay	<=		a		;
end

always@(posedge clk, negedge rst_n)begin
	if(!rst_n)begin
		rise		<=			1'b0		;
		down		<=			1'b0		;
	end
	else if(signal_nege_edge)
		down		<=			1'b1		;
	else if(signal_pos_edge)
		rise		<=			1'b1		;
	else begin
		rise		<=			1'b0		;
		down		<=			1'b0		;
	end

end

endmodule



全部评论

相关推荐

03-04 07:14
门头沟学院 C++
后测速成辅导一两个月...:老板:都给工作机会了还想要工资,哪来这么多好事
点赞 评论 收藏
分享
最喜欢秋天的火龙果很...:第一份工作一定要往大的去,工资低点没事。后面换工作会更好找,即使你去小公司,你也不可能不会换工作的。所以找大的去
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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