美文网首页From Nand To Tetris 从与非门到俄罗斯方块
17、P1 W3 U3.2 触发器(Flip-Flops)(待完

17、P1 W3 U3.2 触发器(Flip-Flops)(待完

作者: shazizm | 来源:发表于2019-08-06 10:47 被阅读0次

    视频:
    如果本次课程对应的 Coursera 的视频打不开,可以点击下面链接
    P1W3U3.2 - Flip Flops

    从上节课了解到:
    out(t)由 In(t-1)在一个Clock周期内(从 t-1 到 t )得出。
    因为 对应的 输入 和 输出 差了一个Clock周期。
    所以需要引入一个东西,在一个周期内记住 这个输入,从而得出正确对应的输出。
    (注:这里解释的感觉有欠缺)

    那这个东西就是 Flip-Flops(触发器)
    它会把输入的状态,在一个Clock周期后,在输出端呈现。

    在 t 时刻的时候,我们需要一个东西来记住上一个 t-1 时刻的输入

    Flip-Flops 有很多种,在此需要的是叫DFF

    DFF(Data Flip Flop)
    如图 它会记住 t 时刻的 in。
    然后在一个Clock周期后 在out输出。

    逻辑电路 示意图里 的小三角 代表此电路是一个 时序电路。


    这个课程,只需要这一种时序逻辑电路DFF,就能完成存储,计数等电路

    在这个课程里, DFF 就像 NAND 一样,被假设成一个最基础的元件。

    课程里并不会去设计实现 DFF
    提到老师提供的硬件模拟器也不支持 实现DFF
    那真正的物理电路应该怎么设计呢?

    最后解释了一下在物理世界DFF,可以是由NAND组成的。
    概念复杂,大概分两步实现一下:
    第一步:(待完善)
    第二步:(待完善)

    课程遗憾,没有加入 时序电路的实现。

    课程里需要的时序电路,基本都是基于如下结构实现的。

    图里 有一串DFF,每一个DFF可以理解为一个位(bit)
    需要学生设计的是 左边蓝色色块(Combinatorial Logic),之前两周设计的那种逻辑电路。

    另外上一步输出的也可能会作为当前步的输入。

    全课时序电路的设计思路

    先来介绍一个可以一直记住 一位状态的东西(1位寄存器),这一位的状态经过多少Clock周期都不会变,直到请求记住新的状态。

    2个input:
    如果 load现在是 1,那么下一时间的 out = 现在的 in
    如果 load现在是 0,那么下一时间的 out = 现在的 out

    load是1的时候,就是请求1位寄存器记住当前输入。

    下图给出一个例子,看load 和 in 的变化,如何影响 out


    那么这样一个东西(1位寄存器),我们如何设计实现呢。
    如下图


    利用一个mux 和一个 dff

    下图 给出一个带时序的来分析一下:

    红圈框住的时序后,out 应该是什么呢?


    上图 红圈框住的时序后,out 应该是什么呢?答案:0

    这节课,知道了DFF在课程里是直接给出(就像NAND),不用学生设计和实现。

    并且用 DFF 和 Mux 实现了一个 1位的寄存器。

    下节课,就来看如何用DFF来做出一个巨大的存储器。

    相关文章

      网友评论

        本文标题:17、P1 W3 U3.2 触发器(Flip-Flops)(待完

        本文链接:https://www.haomeiwen.com/subject/eziqdctx.html