并行输出的最后都加上了 一级寄存器, 这是什么目的呢?
首先看友晶科技 IR (红外线)控制章节第 294页(《逻辑电路设计——DE2-115 实战宝典》)代码: 这里提到是为了稳定输出。
为什么寄存一下就能稳定输出?
我们来看一下我在网络上找的关于 总线输出 最后加一级寄存器的教学PPT:里面解释到 并行的数据可能因为内部模块走线原因导致可能出现先后达到输出端的情况,如果先保存再输出,就是同一时间输出, 这样减少了接收端 采样出错。
所以 《DE2-115实战宝典》的IR 接收案例中,数据会在准备好以后给data_buf ,然后在dataout的有效时钟来到,将data_buf给dataout。 时序上 是dataout要比data_buf慢一拍,data_buf要比data慢一拍。