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

D 触发器异步复位

A 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));
    
    // Generate clock
    always #10 clk = ~clk;
                   
    // Testcase
    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

  

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

  
  
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));
    
    // Generate clock
    always #10 clk = ~clk;
                   
    // Testcase
    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. Verilog 简介
  2. 充电、重置、重新配置
  3. NAND Gate S-R 触发器
  4. J-K 人字拖
  5. IT/OT 融合:文化重置的机会
  6. Verilog 教程
  7. 4位计数器
  8. Verilog Mod-N 计数器
  9. Verilog 灰色计数器
  10. PID 错误:重置饱和
  11. 74LS74:双触发器全包指南
  12. CNC 操作面板上的 RESET 按钮是什么