D触发器Verilog描述
时间:05-10
来源:互联网
点击:
//基本D触发器
module D_EF(Q,D,CLK)
input D,CLK;
output Q;
reg Q; //在always语句中被赋值的信号要声明为reg类型 寄存器定义
always @ (posedge CLK) //上升沿,下降沿用negedge表示,^_^ 需要记忆
begin Q 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 qD触发器
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触发器可以组合成多位寄存器。
module D_EF(Q,D,CLK)
input D,CLK;
output Q;
reg Q; //在always语句中被赋值的信号要声明为reg类型 寄存器定义
always @ (posedge CLK) //上升沿,下降沿用negedge表示,^_^ 需要记忆
begin Q 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 qD触发器
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触发器可以组合成多位寄存器。
- 基于FPGA的片上系统的无线保密通信终端(02-16)
- 基于Virtex-5 FPGA设计Gbps无线通信基站(05-12)
- IP存储让应用和存储走的“更近”(06-09)
- 基于FPGA的DVI/HDMI接口实现(05-13)
- 基于ARM的嵌入式系统中从串配置FPGA的实现(06-09)
- 采用EEPROM对大容量FPGA芯片数据实现串行加载(03-18)