现代逻辑设计中,时序逻辑设计是核心,而寄存器又是时序逻辑的基础,下面将介绍几种常见的寄存器的Verilog设计代码供初学者进行学习理解。
基本寄存器
module dff(clk, din, dout)
input clk;
input din;
output dout;
reg dout;
always @ (posedge clk)begin
dout <= din;
end
endmodule
异步复位寄存器
module dff(clk, rst_n, din, dout);
input clk;
input rst_n;
input din;
output dout;
reg dout;
always @ (posedge clk or negedge rst_n)begin
if(! rst_n)dout <= 1'b0;
else dout <= din;
end
endmodule
异步置位寄存器
module dff(clk, set, din, dout);
input clk;
input din;
input set;
output dout;
reg dout;
always @ (posedge clk or posedge set)begin
if(set) dout <= 1'b1;
else dout <= din;
end
endmodule
异步复位和置位寄存器
异步复位和置位寄存器(复位优先级高)
module dff(clk, rst_n, set, din, dout);
input clk;
input din;
input rst_n;
input set;
output dout;
reg dout;
always @ (posedge clk or negedge rst_n posedge set)begin
if(! rst_n) dout <= 1'b0;
else if(set) dout <= 1'b1;
else dout <= din;
end
endmodule
带同步使能的寄存器
module dff(clk, ena, din, dout);
input clk;
input din;
input ena;
output dout;
reg dout;
always @ (posedge clk) begin
if(ena) dout <= din;
end
endmodule
审核编辑:汤梓红
全部0条评论
快来发表一下你的评论吧 !