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的角度来定义的。
 
 
 
 
 

Chisel3 - util - ReadyValid的更多相关文章

  1. Chisel3 - util - Arbiter

    https://mp.weixin.qq.com/s/7Y23gV6yPvtmvKHTo2I8mw   基于ReadyValid接口实现的多入单出仲裁器.   参考链接: https://github ...

  2. Chisel3 - util - OneHot

    https://mp.weixin.qq.com/s/Jsy8P3m9W2EYKwneGVekiw   独热码相关的电路生成器.   参考链接: https://github.com/freechip ...

  3. Chisel3 - util - MixedVec

    https://mp.weixin.qq.com/s/mO648yx4_ZRedXSWX4Gj2g   可以容纳不同类型的变量的向量.   参考链接: https://github.com/freec ...

  4. Chisel3 - util - Mux

    https://mp.weixin.qq.com/s/TK1mHqvDpG9fbLJyNxJp-Q   Mux相关电路生成器.   参考链接: https://github.com/freechips ...

  5. Chisel3 - util - Lookup

    https://mp.weixin.qq.com/s/g85Si6n37D9PYfR5hEoRQQ     实现一个查找逻辑.   参考链接: https://github.com/freechips ...

  6. Chisel3 - util - Valid

    https://mp.weixin.qq.com/s/L5eAwv--WzZdr-CfW2-XNA   Chisel提供的Valid接口.如果valid为置1,则表明输出的bits有效:反之,则输出无 ...

  7. Chisel3 - util - Math vs. CircuitMath

    https://mp.weixin.qq.com/s/8lC8vQnBdKW9C39H0QFFkA     对数相关的辅助方法,Math通过软件方法实现,CircuitMath通过硬件方法实现.   ...

  8. Chisel3 - util - LFSR16

    https://mp.weixin.qq.com/s/DSdb4tmRwDTOki7mbyuu9A     实现16位线性反馈移位寄存器.可用于生成简单的伪随机数.     ​​     ​​   参 ...

  9. Chisel3 - util - Bitwise

    https://mp.weixin.qq.com/s/MQzX1Ned35ztz0vusPdkdQ   比特相关的操作.   参考链接: https://github.com/freechipspro ...

随机推荐

  1. 24款WordPress网站AI插件大盘点

    ------------恢复内容开始------------ 你想把AI(人工智能)技术和机器学习技术添加到自己的WordPress网站吗?本文中,我会分享24个利用AI技术和机器学习技术的WordP ...

  2. DP动态规划之01背包问题

    目录 问题描述 问题分析 问题求解 Java代码实现 优化方向一:时间方面:因为是j是整数是跳跃式的,可以选择性的填表. 思考二:处理j(背包容量),w(重量)不为整数的时候,因为j不为整数了,它就没 ...

  3. python语法学习第五天--lambda表达式、filter()、map()

    lambda表达式 python使用lamda表达式来创建匿名函数 lambda 函数拥有自己的命名空间,且不能访问自己参数列表之外或全局命名空间里的参数 语法: lambda [arg1 [,arg ...

  4. [hdu5266]区间LCA

    题意:给一棵树,求节点L,L+1,...R的最近公共祖先 思路:先对树dfs一下,从根1出发,经过每条边时记录一下终点和到达这个点的时间截,令r[u]表示到达u这个节点的最早时间截,t[x]表示在时间 ...

  5. PHP根据抖音的分享链接来抓包抖音视频

    现在抖音是个很火的短视频平台,上面有许多不错的小视频.今天教大家怎么用PHP技术来获取到抖音上的的内容. 1:打开抖音选中你认为好的视频点击分享,复制链接,然后你会获取到如下的内容: #科比 愿你去的 ...

  6. HDU 2012 (水)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2012 题目大意:给你段连续数字,判断每个数字带入函数 n^2+n+41 是否都为素数,是输入OK,否则 ...

  7. 2018-06-21 js正则表达式

    正则表达式:描述了一种字符串匹配的模式,可以用来检查一个串是否含有某种子串.将匹配的子串替换或者从某个串中取出符合某个条件的子串等. 1.修饰符 i->忽略大小写: g->全部匹配: m- ...

  8. vue $refs的静态绑定使用与动态绑定使用

    以下实例实现的同一个操作 静态使用 this.$refs.tbhead.clearSelection(); 动态使用 area="tbhead" //可以是函数传入的参数 this ...

  9. 用matplotlib和pandas绘制股票MACD指标图,并验证化交易策略

    我的新书<基于股票大数据分析的Python入门实战>于近日上架,在这篇博文向大家介绍我的新书:<基于股票大数据分析的Python入门实战>里,介绍了这本书的内容.这里将摘录出部 ...

  10. 快速配置Samba服务

    1.安装samba 这里以CenOS 7为例,其他系统类似 yum install samba samba-client samba-common   2.修改smb.conf 最好先备份原文件,以防 ...