FPGA中latency与delay概念的区别
2013-06-17 21:09:26
最近学习流水线以及状态机,总遇到注入加入寄存器可以分割组合逻辑,从而提高电路的运行频率的说法;还有流水线可以提高速度的说法,刚开始很是疑惑,觉得流水线的方法,输出与输入之间的延时更大了,怎么会提高频率呢?
现在才明白是latency与delay的区别,按照自己的理解整理一下。
latency:
- 输入数据与该数据经过处理后的结果输出之间的延时,是时钟延迟
- 一般以时钟为单位,指的是相对于某个时钟起始位置的1个或多个时钟后数据才有效
- 决定信号处理的响应速度
delay:
- 时序器件之间的逻辑延时,主要指器件延时、布线延时
- 是绝对的时间,指的是相对于时钟边沿的某个时间后数据才有效
- 决定电路的时钟频率,即运行频率
举个简单的例子:
数据din经过一个与门and、一个三态门tri,到达触发器d的输入端d,d在时钟clk的作用下,输出q。
那么din到d之间的时间就是delay,决定了电路的运行频率,即clk的大小,delay越小,clk可以取得越高;反之,delay越大,clk就会受限制。
q与d之间的时间就是latency,此处是一个clk周期的时间。
PS:个人理解,欢迎补充指正。