DFF、Dlatch、JK flip-flop
对于verilog的学习,这里推荐一个比较好的实践网站HDLBits:
https://hdlbits.01xz.net/wiki/Main_Page
本系列记录一些我觉得有价值的题目,希望通过这些题目可以对verilog更加熟练。
D flip-flops D触发器根据复位的不一样可以分为同步复位DFF和异步复位DFF,之间的区别就是复位信号是否在敏感列表中。同步复位DFFmodule top_module ( input clk, input reset, // Synchronous reset input [7:0] d, output [7:0] q); always@(posedge clk)begin if(reset) q=0; else q=d; endendmodule异步复位DFFmodule top_module( input clk, input [7:0] d, input areset, output reg [7:0] q); always @(posedge clk or posedge areset) if (areset) q <= 0; else q <= d; endmodule
D Latch
锁存器是电平触发,高电平跟随,低电平保持。
module top_module ( input d, input ena, output q); always@(ena)begin if(ena)q=d; end endmodule
JK flip-flop
J | K | Q |
0 | 0 | Qold |
0 | 1 | 0 |
1 | 0 | 1 |
1 | 1 | ~Qold |
module top_module ( input clk, input j, input k, output Q); always@(posedge clk) begin if(~j & ~k) Q <= Q; else if(j&k) Q <= ~Q; else if(~j & k) Q <= 0; else Q <= 1; endendmodule
总结
一、锁存器
锁存器(latch)—对脉冲电平敏感,在时钟脉冲的电平作用下改变状态 锁存器是电平触发的存储单元,数据存储的动作取决于输入时钟(或者使能)信号的电平值,仅当锁存器处于使能状态时,输出才会随着数据输入发生变化。锁存器不同于触发器,它不在锁存数据时,输出端的信号随输入信号变化,就像信号通过一个缓冲器一样;一旦锁存信号起锁存作用,则数据被锁住,输入信号不起作用。锁存器也称为透明锁存器,指的是不锁存时输出对于输入是透明的。
锁存器(latch):我听过的最多的就是它是电平触发的,更具体一点应该是:锁存器是电平触发的存储单元,数据存储的动作取决于输入时钟(或者使能)信号的电平值,当锁存器处于使能状态时,输出才会随着数据输入发生变化。(简单地说,它有两个输入,分别是一个有效信号EN,一个输入数据信号DATA_IN,它有一个输出Q,它的功能就是在EN有效的时候把DATA_IN的值传给Q,也就是锁存的过程)。
应用场合:数据有效迟后于时钟信号有效。这意味着时钟信号先到,数据信号后到。在某些运算器电路中有时采用锁存器作为数据暂存器。
缺点:时序分析较困难。不要锁存器的原因有二:1、锁存器容易产生毛刺,2、锁存器在ASIC设计中应该说比ff要简单,但是在FPGA的资源中,大部分器件没有锁存器这个东西,所以需要用一个逻辑门和ff来组成锁存器,这样就浪费了资源。
优点:面积小。锁存器比FF快,所以用在地址锁存是很合适的,不过一定要保证所有的latch信号源的质量,锁存器在CPU设计中很常见,正是由于它的应用使得CPU的速度比外部IO部件逻辑快许多。latch完成同一个功能所需要的门较触发器要少,所以在asic中用的较多。
二、触发器
触发器(Flip-Flop,简写为 FF),也叫双稳态门,又称双稳态触发器。是一种可以在两种状态下运行的数字逻辑电路。触发器一直保持它们的状态,直到它们收到输入脉冲,又称为触发。当收到输入脉冲时,触发器输出就会根据规则改变状态,然后保持这种状态直到收到另一个触发。
触发器(flip-flop)是对脉冲边沿敏感,其状态只在时钟脉冲的上升沿或下降沿的瞬间改变。
触发器(flip-flops)电路相互关联,从而为使用内存芯片和微处理器的数字集成电路(IC)形成逻辑门。它们可用来存储一比特的数据。该数据可表示音序器的状态、计数器的价值、在计算机内存的ASCII字符或任何其他的信息。有几种不同类型的触发器(flip-flops)电路具有指示器,如T(切换)、S-R(设置/重置)J-K(也可能称为Jack Kilby)和D(延迟)。典型的触发器包括零个、一个或两个输入信号,以及时钟信号和输出信号。一些触发器还包括一个重置当前输出的明确输入信号。
应用场合:时钟有效迟后于数据有效。这意味着数据信号先建立,时钟信号后建立。在CP上升沿时刻打入到寄存器。