亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Industrial programming >> Verilog

设计带异步低电平有效复位的 D 触发器

D 触发器 是一种时序单元,在时钟的指定沿跟随输入引脚 d 的值。

设计 #1:异步低电平有效复位

module dff ( 
  input d, 
  input rstn, 
  input clk, 
  output reg q
); 
  always @ (posedge clk or negedge rstn) 
    if (!rstn) q <= 0; 
    else q <= d; 
endmodule 

硬件原理图

测试平台

module tb_dff; 
  reg clk; 
  reg d; 
  reg rstn; 
  reg [2:0] delay; 
  dff dff0 ( 
    .d(d), 
    .rsnt (rstn), 
    .clk (clk), 
    .q (q)
  ); 
  // 生成时钟
  always #10 clk = ~clk; 
  // 测试用例
  initial begin 
    clk <= 0; 
    d <= 0; 
    rstn <= 0; 
    #15 d <= 1; 
    #10 rstn <= 1; 
    for (int i = 0; i < 5; i=i+1) begin 
      delay = $random; 
      #(delay) d <= i; 
    end 
  end 
endmodule 

设计 #2:同步低电平有效复位

module dff ( 
  input d, 
  input rstn, 
  input clk, 
  output reg q
); 
  always @ (posedge clk) 
    if (!rstn) q <= 0; 
    else q <= d; 
endmodule 

硬件原理图

测试平台

module tb_dff; 
  reg clk; 
  reg d; 
  reg rstn; 
  reg [2:0] delay; 
  dff dff0 ( 
    .d(d), 
    .rsnt (rstn), 
    .clk (clk), 
    .q (q)
  ); 
  // 生成时钟
  always #10 clk = ~clk; 
  // 测试用例
  initial begin 
    clk <= 0; 
    d <= 0; 
    rstn <= 0; 
    #15 d <= 1; 
    #10 rstn <= 1; 
    for (int i = 0; i < 5; i=i+1) begin 
      delay = $random; 
      #(delay) d <= i; 
    end 
  end 
endmodule 

Verilog

  1. 防止PID积分饱和:可靠过程控制策略
  2. 构建基于NAND门的置位-复位触发器电路
  3. 理解 J-K 触发器:设计、逻辑与应用
  4. 74LS74 双 D 触发器:引脚、时序、特性与应用全参考
  5. 理解 CNC 操作面板 RESET 键:功能与使用规范
  6. 夏季来临:为 IT 战略充电、重置、重构
  7. IT/OT融合:可持续数字化转型的文化重塑
  8. Verilog基础:设计你的第一个与门
  9. Verilog 入门:数字电路设计完整教程
  10. 4 位计数器:从 0 到 15 的高效二进制计数
  11. Verilog 模 N 计数器设计:参数化模块与测试平台
  12. Verilog 格雷码计数器模块:4 位格雷码生成器