标签: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