码迷,mamicode.com
首页 > 其他好文 > 详细

Rocket - util - Repeater

时间:2019-06-09 00:22:02      阅读:113      评论:0      收藏:0      [点我收藏+]

标签:ini   apt   标识   author   清空   ali   tencent   unless   积分   

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. 附录
 
略。
 

Rocket - util - Repeater

标签:ini   apt   标识   author   清空   ali   tencent   unless   积分   

原文地址:https://www.cnblogs.com/wjcdx/p/10992219.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!