FPGA学习笔记06——数电基础知识

参考:《数字电子技术基础简明教程》(第三版)

《正点原子逻辑设计指南 V1.8》

目录

锁存器与触发器

RS锁存器

逻辑门控RS锁存器

D锁存器

D触发器

边沿检测电路

同步复位与异步复位

同步复位

异步复位


锁存器与触发器

RS锁存器

锁存器(俗称 Latch)是数字电路中的一种具有记忆功能的逻辑元件。锁存器对脉冲电平敏感的存储单元电路,它只在输入脉冲的高电平(或低电平)期间对输入信号敏感并改变状态。在数字电路中可以记录二进制数字信号“0”和“1”。

真值表:

 

R(Reset)S(Set)

Qn+1

0

0Qn
011
100
11不使用

逻辑门控RS锁存器

在RS锁存器的基础上增加了使能信号

D锁存器

真值表:

CDQnQn+1
0X00
0X11
1000
1010
1101
1111

 

D触发器

工作原理:

D触发器具有主从结构的D锁存器,主锁存器受/CLK控制,从锁存器受CLK控制。

  1. CLK=1时的情况,门G7、G8被封锁,门G3、G4打开,从锁存器的状态决定与主锁存器,Q=Qm,Q'=Qm'。输入信号D被拒之门外。
  2. CLK=0时的情况,门G7、G8打开,门G3、G4被封锁,从锁存器保持原来的状态不变,D信号进入主锁存器。但是要特别注意,这是主锁存器只跟随而不锁存,即Qm跟随D的变化,D怎么变Qm也随之怎么变。
  3. CLK上升沿时刻情况,CLK上升沿到来时,将封锁门G7、G8,打开门G3、G4,主锁存器CLK上升时刻D的值即Qm=D,随后将该值送入从锁存器,时Q=D,Q'=D'。
  4. CLK上升沿过后情况,主锁存器锁存CLK上升沿时刻D的值显然将保持不变,从而从锁存器的状态当然也不会发生变化。

综上所述,可得 Qn+1 = D   CLK上升沿时刻有效

边沿检测电路

y1 是上升沿检测输出, y2 是下降沿检测输出,y3 是双沿检测输出(异或门)

reg a_dly1 ;

always @ (posedge clk or negedge rst_n ) begin
    if (rst_n == 1'b0)
        a_dly1 <= 1'b0 ;
    else
        a_dly1 <= a ;
    end

assign y1 = a & ( ~a_dly1 ) ;
assign y2 = ~a & a_dly1 ;
assign y3 = a ^ a_dly1 ;

 

同步复位与异步复位

同步复位

always @ (posedge clk) begin
    if (rst_n == 1'b0)
        y <= 1'b0 ;
    else
        y <= b ;
end

同步复位的优点如下:
a、有利于仿真器的仿真;
b、可以使所设计的系统成为 100%的同步时序电路,有利于时序分析,而且可综合出较高的 Fmax;
c、由于只在时钟有效电平到来时才有效,所以可以滤除高于时钟频率的复位毛刺。
同步复位也有一些缺点, 缺点如下:
a、复位信号的有效时长必须大于时钟周期,才能真正被系统识别并完成复位任务。同时还要考虑诸如
时钟偏移、组合逻辑路径延时、复位延时等因素(所以复位信号有时需要脉冲展宽,用以保证时钟有效期间
有足够的复位宽度);
b、由于大多数的逻辑器件的目标库内的 DFF 都只有异步复位端口,所以,倘若采用同步复位的话,综
合器就会在寄存器的数据输入端口插入组合逻辑,这样就会一方面额外增加 FPGA 内部的逻辑资源,另一
方面也增加了相应的组合逻辑门时延。
 

异步复位

always @ (posedge clk or negedge rst_n) begin
    if (rst_n == 1'b0)
        y <= 1'b0 ;
    else
        y <= b ;
end

优点:
a、大多数目标器件库的 DFF 都有异步复位端口,那么该触发器的复位端口就不需要额外的组合逻辑,
这样就可以节省资源;
b、设计相对简单;
c、异步复位信号产生和响应都很方便(电路在任何情况下都能复位而不管是否有时钟出现)。
异步复位也有一些缺点, 缺点如下:
a、最大的问题在于它属于异步逻辑,问题出现在复位释放时,而不是有效时,如果复位释放接近时钟
有效沿,则触发器的输出可能进入亚稳态(此时 clk 检测到的 rst_n 的状态就会是一个亚稳态,即是 0 是 1
是不确定的),从而导致复位失败。
b、可能因为噪声或者毛刺造成虚假复位信号(比如系统正常工作时突然复位)(注意:时钟端口、清
零和置位端口对毛刺信号十分敏感,任何一点毛刺都可能会使系统出错,因此判断逻辑电路中是否存在冒
险以及如何避免冒险是设计人员必须要考虑的问题);
c、静态定时分析比较困难,静态时序分析一般是针对同步设计的,都是基于时钟周期来分析时序的。
d、对于 DFT(DesignForTest 可测性设计) 设计,如果复位信号不是直接来自于 I/O 引脚,在 DFT 扫描
和测试时,复位信号必须被禁止,因此需要额外的同步电路。
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值