纯组合逻辑16位加法器
纯组合逻辑16位加法器16位加法器,当这个加法器是纯组合逻辑时,这个电路的延时(即输出从65536跳变到0时)所对应的最高频率为56MHz,但是把它首位加上寄存器之后,发现这个时序电路的最高频率达到大约120MHz,速度提升了一倍!但是根据STA的最高频率计算公式:1/Fmax = tb -tg + tsu1 ,似乎这个时序电路最高频率是不可能提高一倍的,如何理解这个问题呢?或者说为什么纯组合电路首尾加上寄存器之后速度提高一倍呢?一个纯组合电路,首尾加上寄存器之后,把它看成是1个节点还是2个节点呢?
首先,“似乎”并不准确,EDA(QuartusII)有计算Tb和Tg,它报告中的Fmax就是这样计算出来的。问题是,仅在首尾加上寄存器,并没有查入流水线,如何就能够提速呢。这是问题的重点。
流水线Pipeline,是将一份工作,分成两个更短用时的工作,分批次作业,从而提高系统的流速(吞吐量)。这里的确没有将16位的行波进位加法器分成两个部分(或更多的部分),用流水作业完成,并没有这样做,但确提速了。关于这个问题,即首尾寄存器(IR和OR),是一个节点还是两个节点呢。
Node,是FA+REG的结构,IR寄存器与之前的路由FA构成第一个节点,即源节点;OR和RCA16则构成第2个节点。这两个节点之间是有路由关系的,即存在TimeQuest所要求的“寄存器路径,Register Path”。
现在,可以回答第一个问题了。或者要回顾什么是约束Constrain,约束即验证Verification-调制Adjustment-验证Verification的自动迭代过程。
当没有寄存器路径时,STA是无能为力的,它帮不了,此时就无法执行上述的自动约束(EDA约束),EDA在布局和路由的过程中,是无法向希望的方向努力。这就是没有首尾寄存器时的数十M的延迟原因。
当加上了首尾寄存器(IR和OR)后,STA则具备执行上述约束的条件,在布局和路由时,将会向希望的目标努力,这样努力的结果,就是由数十M增加到1百多M。
当电路有速度潜力时,约束仍然是非常重要的提速手段。或者说,没有约束的电路是没有发挥潜力的电路。
综合而言是:
1. 加上首尾寄存器后,能够形成寄存器路径,并且有时钟,EDA得以实现约束,从而提速了。
2. 首尾寄存器加入后,是2个节点。是当前设计中唯一的一个寄存器路径。
谢谢楼主分享
纯组合逻辑16位加法器
16位加法器,当这个加法器是纯组合逻辑时,这个电路的延时(即输出从65536跳变到0时)所对应的最高频率为56MHz,但是把它首位加上寄存器之后,发现这个时序电路的最高频率达到大约120MHz,速度提升了一倍!但是根据STA的最高频率计算公式:1/Fmax = tb -tg + tsu1 ,似乎这个时序电路最高频率是不可能提高一倍的,如何理解这个问题呢?或者说为什么纯组合电路首尾加上寄存器之后速度提高一倍呢?一个纯组合电路,首尾加上寄存器之后,把它看成是1个节点还是2个节点呢?
晓灰灰 发表于 2017-6-22 09:45
纯组合逻辑16位加法器
16位加法器,当这个加法器是纯组合逻辑时,这个电路的延时(即输出从65536跳变 ...
没有约束的电路是没有发挥潜力的电路
:lol :lol :lol :lol :lol
页:
[1]