题解 | #边沿检测#

边沿检测

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 a1;
always@(posedge clk or negedge rst_n)
if(!rst_n)
    a1<=0;
else
    a1<=a;
 
always@(posedge clk or negedge rst_n)
if(!rst_n)
    begin rise<=0;down<=0; end
else if((a==1)&&(a1==0))
	begin rise<=1;down<=0; end
else if((a==0)&&(a1==1))
	begin rise<=0;down<=1; end
else
	begin rise<=0;down<=0; end  //让rise和down为0,而不是不确定态
 
endmodule

如果不用ifelse语句,而用组合逻辑的话,就没有最后一个else,那么a为不确定的时候,rise和down也是不确定

全部评论

相关推荐

MScoding:你这个实习有一个是当辅导老师,这个和找技术岗没有关系吧?
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务