推荐答案
测试一下
题目
画出DFF的结构图,用verilog实现之。(威盛)
参考答案与知识点
参考答案
DFF(D触发器)是时序逻辑电路基本单元,用于在时钟边沿捕获数据并保持。其典型结构包含:数据输入D、时钟clk、异步复位rst_n(低有效)、数据输出Q。内部由主从锁存器构成:主锁存器在时钟低电平透明,从锁存器在高电平透明;组合成边沿触发。结构图可表示为:D连接主锁存器输入,主锁存器输出连从锁存器输入,从锁存器输出为Q;时钟经反相后控制主锁存器,直接控制从锁存器。复位信号直接清零两个锁存器。
Verilog实现(异步复位、上升沿触发):
module dff (
input wire clk,
input wire rst_n,
input wire d,
output reg q
);
always @(posedge clk or negedge rst_n) begin
if (!rst_n)
q <= 1'b0;
else
q <= d;
end
endmodule
易错点:1. 敏感列表漏写复位信号或写错边沿(异步复位必须包含posedge/negedge rst_n);2. 使用阻塞赋值=导致仿真时竞争;3. 复位逻辑与数据逻辑顺序错误(应优先判断复位);4. 未考虑保持时间约束。若需同步复位,敏感列表只需posedge clk,内部if (!rst_n)包含在时钟内。注意时序仿真中复位信号需同步释放以避免亚稳态。
涉及知识点
- D触发器主从结构
- 边沿触发与电平触发区别
- Verilog always敏感列表写法
- 阻塞赋值与非阻塞赋值
- 同步复位与异步复位特性