现代逻辑设计中,时序逻辑设计是核心,而寄存器又是时序逻辑的基础,下面将介绍几种常见的寄存器的Verilog设计代码供初学者进行学习理解。
1、简单寄存器
基本寄存器
module dff(clk, din, dout)
input clk;
input din;
output dout;
reg dout;
always @ (posedge clk)begin
dout <= din;
end
endmodule
2、异步复位寄存器
异步复位寄存器
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
3、带异步置位的寄存器
异步置位寄存器
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
4、既带异步复位又带异步置位的寄存器
异步复位和置位寄存器
异步复位和置位寄存器(复位优先级高)
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
5、同步使能功能的寄存器
带同步使能的寄存器
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
审核编辑:汤梓红
-
FPGA
+关注
关注
1630文章
21796浏览量
605527 -
寄存器
+关注
关注
31文章
5363浏览量
121027 -
Verilog
+关注
关注
28文章
1351浏览量
110310 -
时序逻辑
+关注
关注
0文章
39浏览量
9177 -
异步复位
+关注
关注
0文章
47浏览量
13338
发布评论请先 登录
相关推荐
评论