小结设计经验(二),请各位高手指点
时间:10-02
整理:3721RD
点击:
流水线等停机制
流水线等停机制
1、利用FIFO的状态控制,做流水线等停机制。
用目的FIFO的“将满”信号,流控源FIFO的“读使能”信号。数据一旦从源FIFO读出来,在流水线上停就不下来,所以目的FIFO一定要留足够的欲度,存下流水线上数据。
|--------| |--------| |--------|
| | | | | |
| source |------| FLOW |------ | dest |
re | | | | | | awfull
|----| FIFO | | BLOCK | | FIFO |--------|
| | | | | | | |
| |--------| |--------| |--------| |
| |
|----------------------------------------------------|
目的FIFO的“将满”信号,流控源FIFO的“读使能”信号
2、目的端,利用pause或者hold之类的信号,让流水线上全部寄存器都保持住(一定要在同一拍,全部停下来)。
|--------| |--------|
| | |-----| |-----| |-----| | |
| source |---| REG |---| REG |---| REG|------| dest |
| | |-----| |-----| |-----| | | hold
|--- |BUFFER| | | | | logic |--------|
| | | | | | | | |
| |--------| | | | |--------| |
| | | | |
|-------------------------------------------------------------------|
小结:
1、从硬件资源上来讲,显而易见,第二种方式占优,充分利用流水线上的寄存器,起到暂存数据的作用,并且实现起来也不复杂
2、从逻辑实现上来讲,第一种方式简单,并且很方便插入到流水线的任意点。实际上就是用FIFO把前后处理逻辑隔开
3、如果流水线上有的处理模块,没法hold住(比如一些IP,不带hold的功能),就只能用第一种方法了
思想很好,可是字词应该注意修改吧
学习了 好 顶 顶 顶
总结的不错
第二种方式居多吧
学习了,。,谢谢啊吗,,。,。,。,。
受教了,多谢总结
说白了,就是第二种中间没有bubble,但控制需要很准确。而第一种中间有bubble, FIFO可以挤掉bubble,所以中间的控制很简单。
学习了,谢谢
我怎么总觉得第一种不算是流水线操作呢,更像是一般的顺序操作而已,呵呵,也许我误解了
支持第二种
