zoukankan      html  css  js  c++  java
  • Rocket

    https://mp.weixin.qq.com/s/xyEq3DgYuf2QuNjssv8pkA

     
    简单介绍Repeater的实现。
     
     
    1. 基本功能
     
    A Repeater passes it's input to it's output, unless repeat is asserted.
    When repeat is asserted, the Repeater copies the input and repeats it next cycle.
     
    2. 实现
     
    1) io
     
    a. repeat:标识是否在输出重复输入;
    b. full:标识是否存有待repeat的数据;
    c. enq:输入数据的接口;
    d. deq:输出数据的接口;
     
    2) saved
     
    存放要repeat的数据:
     
    只有在io.repeat为真时,才存入数据:
     
    io.enq.fire()需要对方valid,自己ready:
    这个稍后再做讨论。
     
    3) full
     
    full标志着是否存有要重复的数据,初始值为false:
     
    只有当io.repeat为真时,才能存入要重复的数据,并标记full为真:
     
    只有当io.repeat为假时,不再重复数据,已存的数据被清空:
     
    如果有数据则输出已存储的数据,如果没有则直接输出输入的数据:
     
    4) io.deq.valid
     
    a. 如果有数据(full),则可以输出已存的数据;
    b. 如果无数据,则根据是否有数据输入来决定是否可以输出数据;
     
    5) io.enq.ready
     
    io.enq.ready代表可以输入数据。
    包含两个条件:
    a. 当前没有缓存数据;
    b. 当前可以输出数据;
     
    没有缓存数据,说明io.repeat为假,此时透传数据,所以需要依赖于io.deq.ready;
    已有缓存数据,说明io.repeat为真,此时重复数据,所以不可以再输入;
     
    6) io.full
     
    io.full把full的状态输出:
     
    3. 附录
     
    略。
     
  • 相关阅读:
    01_垂直居中body中的应用
    C++基础知识易错点总结(2)
    辗转相除求最大公约数
    C++基础知识易错点总结(1)
    类对象的建立方式总结
    LeetCode(131)Palindrome Partitioning
    基本套接字编程(7) -- udp篇
    LeetCode(124) Binary Tree Maximum Path Sum
    LeetCode(115) Distinct Subsequences
    LeetCode(97) Interleaving String
  • 原文地址:https://www.cnblogs.com/wjcdx/p/10992219.html
Copyright © 2011-2022 走看看