题解 | #边沿检测#

边沿检测

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也是不确定

全部评论

相关推荐

2025-12-30 14:09
已编辑
北京交通大学 算法工程师
字节跳动 训练框架研发 (N+2) * (12 + 3) 硕士211
Crinton:训练框架遥遥领先
点赞 评论 收藏
分享
牛客60022193...:大厂都招前端,他们觉得AI能替代前端,可能他们公司吊打btaj吧
点赞 评论 收藏
分享
2025-11-15 14:35
南京邮电大学 Java
程序员牛肉:你这简历有啥值得拷打的?在牛客你这种简历一抓一大把,也就是个人信息不一样而已。 关键要去找亮点,亮点啊,整个简历都跟流水线生产出来的一样。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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