← 2022 · 禾赛科技 笔试

推荐答案 测试一下

使用verilog实现下图电路,并简述其用途和优势。

编程题 中等 笔试真题

参考答案

由于题目未提供电路图,假设为常见的边沿检测电路(上升沿检测)。实现方法:利用两级触发器对输入信号同步并延迟一拍,通过组合逻辑判断当前寄存值与前一拍寄存值的差异。Verilog代码: module edge_detect( input clk, input rst_n, input din, output reg pos_edge ); reg dly1, dly2; always @(posedge clk or negedge rst_n) begin if(!rst_n) begin dly1 <= 0; dly2 <= 0; end else begin dly1 <= din; dly2 <= dly1; end end always @(posedge clk or negedge rst_n) begin if(!rst_n) pos_edge <= 0; else pos_edge <= dly1 & ~dly2; // 上升沿:当前为1,前一拍为0 end endmodule 用途:检测输入信号的上升沿,常用于触发中断、捕获数据、启动状态机等时序控制场景。优势:①结构简单,仅需3个触发器(包括输出寄存器);②两级触发器可消除输入信号的短时毛刺(当毛刺宽度小于一个时钟周期时,被同步后不会产生有效边沿),增强抗干扰能力;③通过增加触发器级数可以跨时钟域同步,降低亚稳态传播概率。注意:若输入信号与时钟域不同,需先进行同步处理(如三级触发器链)再进行边沿检测。下降沿或双边沿检测只需修改组合逻辑表达式(下降沿:~dly1 & dly2;双边沿:dly1 ^ dly2)。

涉及知识点

  • 边沿检测原理:前后两拍值比较
  • 两级触发器同步消除亚稳态与毛刺
  • Verilog时序逻辑与组合逻辑混合设计
  • 触发器的建立时间和保持时间概念
  • 跨时钟域同步的基本方法
← 上一题
登录后反馈错题
下一题 →