D触发器Verilog描述

时间:2016-04-27来源:网络

  //基本D触发器

  module D_EF(Q,D,CLK)

  input D,CLK;

  output Q;

  reg Q; //在always语句中被赋值的信号要声明为reg类型 寄存器定义

  always @ (posedge CLK) //上升沿,下降沿用negedge表示,^_^ 需要记忆

  begin Q <= D; end

  endmodule

  //带异步清0、异步置1的D触发器

  module D_EF(q,qn,d,clk,set,reset)

  input d,clk,set,reset;

  output q,qn;

  reg q,qn;//寄存器定义

  always @ (posedge clk or negedge set or negedge reset)

  begin

  if(!reset) begin q<=0;qn<=1;end//异步清0,低有效

  else if(!set) begin q<=1;qn<=1;end //异步置1,低有效

  else begin q<=~d;qn<=~d;end

  end

  endmodule

  //带同步清0、同步置1的D触发器

  module D_EF(q,qn,d,clk,set,reset)

  input d,clk,set,reset;

  output q,qn;

  reg q,qn;

  always @ (posedge clk)

  begin

  if(reset) begin q<=0;qn<=1;end//同步清0,高有效

  else if(set) begin q<=1;qn<=1;end //同步置1,高有效

  else begin q<=~d;qn<=~d;end

  end

  endmodule

  附:D触发器二分频

  module dff_2(clk,rst,clk_out);

  input clk,rst;

  output clk_out;

  wire clk,rst;

  reg clk_out;

  always @(posedge clk or negedge rst)

  if(!rst)

  begin

  clk_out<=0;

  end

  else

  begin

  clk_out<=~clk_out;

  end

  endmodule

  因为器件有时延所以可以这样,也因为时延所以多个D触发器可以组合成多位寄存器。

关键词: D触发器 Verilog

加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW

或用微信扫描左侧二维码

相关文章

查看电脑版