新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > D触发器Verilog描述

D触发器Verilog描述

作者:时间:2016-04-27来源:网络收藏

  //基本

本文引用地址:http://www.eepw.com.cn/article/201604/290366.htm

  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的

  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的

  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

评论


相关推荐

技术专区

关闭