← eetop.cn_数字IC设计工程师笔试面试经典100题(大部分有答案)

推荐答案 测试一下

数字电路设计当然必问Verilog/VHDL,如设计计数器。(未知)

编程题 中等 笔试真题

参考答案

设计一个模N计数器是数字电路面试的经典题目。以下以模8计数器为例,采用Verilog实现,使用同步复位和使能控制。代码: module counter_mod8 ( input clk, input rst_n, input en, output reg [2:0] count, output reg overflow ); always @(posedge clk or negedge rst_n) begin if (!rst_n) begin count <= 3'b0; overflow <= 1'b0; end else if (en) begin if (count == 3'd7) begin count <= 3'b0; overflow <= 1'b1; end else begin count <= count + 1'b1; overflow <= 1'b0; end end else begin overflow <= 1'b0; end end endmodule 解析:计数器是时序逻辑的基本单元,考察对时钟沿触发、复位(异步/同步)、计数使能、溢出标志的理解。本设计采用异步复位(低有效)使计数器在复位时归零;当使能信号en高电平时,每个时钟上升沿计数加1;到达最大值时下一周期归零并输出overflow脉冲。易错点:计数器的位宽需满足模数(2^3=8),溢出信号只维持一个时钟周期;若需要同步复位,应将复位信号敏感表去掉,仅在if内检测。更复杂的题目可能要求可预置数、加减控制、多个计数器级联等,但核心思想一致。

涉及知识点

  • 计数器模数与位宽关系
  • 同步复位与异步复位区别
  • 上升沿触发与敏感列表
  • 使能信号与边沿检测
  • 溢出标志的产生时序
← 上一题
登录后反馈错题
下一题 →