zoukankan      html  css  js  c++  java
  • Chisel3

    https://mp.weixin.qq.com/s/g7Q9ChxHbAQGkbMmOymh-g

     
    ReadyValid通信接口。通信的双方为数据的生产者(Producer)和消费者(Consumer)。
     
    通信协议:
    1. Producer有数据要发送,则把Valid位置位为1;
    2. Consumer准备好接收了,则把Ready为置位为1;
    3. Producer发现Ready为1后,开始发送数据;
    4. Producer发送完成后,把Valid置位为0;
    5. 不排除Producer在等待一定时间后,未等到Ready置位,而把Valid清除;
    6. Ready和Valid没有先后关系;
     
    参考链接:
     
    1. ReadyValidIO
     
    这是一个用户自定义的数据类型,继承自Bundle。
     
    其中:ready/valid分别代表ready和valid位;bits代表要传递的数据;
     
    伴生对象object ReadyValidIO内部定义了一个隐式内部类,用于向ReadyValidIO类添加方法。
     
    类的名字就叫做AddMethodsToReadyValid,已经表达了这个类的用意。与直接把这些方法定义到ReadyValidIO类中是等效的。这种定义隐式类的方法,是一种为现有类扩展方法的机制。
     
    这四个方法代表了针对ReadyValidIO的四种操作,一种状态:
    a. 有数据要发:enq()
    b. 数据发完(无数据要发): noenq()
    c. 有数据要收:deq()
    d. 数据收完(无数据要收):nodeq()
    e. 正在发送状态:fire()
     
    2. Decoupled
     
     
    3. Irrevocable
     
     
    4. EnqIO/DeqIO
     
     
    EnqIO创建Producer侧的接口;DeqIO创建Consumer一侧的接口。Flipped是把方向反转的意思。
     
    EnqIO的方向如下:
    这个方向是以Producer的角度来定义的。
     
    DeqIO的方向为:
    a. ready为Output;
    b. valid为Input;
    c. bits为Input;
    这是以Consumer的角度来定义的。
     
     
     
     
     
  • 相关阅读:
    epoll示例
    realloc的使用误区
    pyCharm最新激活码(2018激活码)
    python程序打包成.exe
    VS2017下载安装
    C# Cache缓存读取设置
    WPF中展示HTML
    Aspose Word模板使用总结
    js alert(“”)弹框 自定义样式
    利用反射将Model转化为sql
  • 原文地址:https://www.cnblogs.com/wjcdx/p/10124643.html
Copyright © 2011-2022 走看看