概念(sequential logic)
时序逻辑:任意时刻输出不仅与当前时刻的输入,而且还取决于电路原来的状态。
与组合逻辑不同,时序逻辑有时钟信号,复位信号
类型
①触发器
![1dc08e4876238d9b36bd6a414aa47f45.png](https://img-blog.csdnimg.cn/img_convert/1dc08e4876238d9b36bd6a414aa47f45.png)
always @(posedge clk) begin // 通过时钟的上升沿进行赋值
q<=d;
end
![625b216fdea030bf1aae70d095b77ca9.png](https://img-blog.csdnimg.cn/img_convert/625b216fdea030bf1aae70d095b77ca9.png)
②两级触发器
![86e14f374ee3bc6481a4d1bc647df6b6.png](https://img-blog.csdnimg.cn/img_convert/86e14f374ee3bc6481a4d1bc647df6b6.png)
always @(posedge clk) begin
q<=d;
end
always @(posedge clk)begin
q1<=q;
end
![652a7bffeca926e903810a6e3c92dd5b.png](https://img-blog.csdnimg.cn/img_convert/652a7bffeca926e903810a6e3c92dd5b.png)
![b59a15b3528d3add7e48a7534fde355c.png](https://img-blog.csdnimg.cn/img_convert/b59a15b3528d3add7e48a7534fde355c.png)
③带异步复位的D触发器 独立于时钟,异步复位信号有效,就会触发复位操作。 用于给信号复位,初始化
![4e686354bf59e64572b53188434d1231.png](https://img-blog.csdnimg.cn/img_convert/4e686354bf59e64572b53188434d1231.png)
module test(d,q,clk,rst);
input d;
input clk;
input rst;
output reg q;
//时钟上升沿,复位下降沿为敏感列表,low active reset
always@(posedge clk or negedge rst)begin
if(rst==0)
q<=0;
else
q<=d;
end
endmodule
仿真代码
module vtf_test_tb();
reg d;
reg clk;
reg rst;
wire q;
initial begin
d=0;
clk=0;
forever begin
#({$random}%100) d=~d;
end
end
initial begin
rst=0;
#150
rst=1;
end
always #10 clk=~clk;
test t0(
.d(d),
.clk(clk),
.rst(rst),
.q(q)
);
endmodule
![f89d89ae98132a09e5119b6a64e719ab.png](https://img-blog.csdnimg.cn/img_convert/f89d89ae98132a09e5119b6a64e719ab.png)