本帖最后由 51黑黑黑 于 2016-2-23 02:22 编辑
同步电路的速度是指同步时钟的速度。同步时钟愈快,电路处理数据的时间间隔越短,电路在单位时间处理的数据量就愈大。 1 修改系统结构,或者Verilog代码 2 通过改变走线方式减少时延 通过给综合器加适当的约束,将相关的逻辑布线尽量布得靠近一点,减少走线的延时。 3 通过减少组合逻辑或增加触发器,采用流水线结构减少时延提高工作频率的本质就是减少寄存器到寄存器的时延,最有效的方法就是避免大的组合逻辑。 先来看一看同步电路中数据传递的一个基本模型,如下图。 图1 其中,Tco是触发器时钟到数据输出的延时;Tdelay是组合逻辑的延时;Tsetup是触发器的建立时间。
假设数据已经被时钟的上升沿打入D触发器,那么数据到达第一个触发器的Q端需要的时间为Tco,再经过组合逻辑的延时Tdelay到达第二个触发器的D端,要想时钟能在第二个触发器再次被稳定的锁入触发器,则时钟的延迟不能晚于Tco+Tdelay+Tsetup,由以上分析可知:最小时钟周期:Tclk=Tco+Tdelay+Tsetup,最快时钟频率 F= 1/Tclk。PLD开发软件也正是通过这个公式来计算系统运行速度Fmax的。
在这个逻辑图中有个参数:Tpd ,即时钟的延时参数,如果使用PLD的全局时钟,Tpd可以为0,如果是普通时钟,则不为0。因此,如果考虑到时钟的延时,最小时钟周期为T=Tco+Tdelay+Tsetup-Tpd。
以上分析的是器件内部的运行速度,如果考虑芯片I/O管脚延时对系统速度的影响,那么还需要加一些修正。
由于Tco、Tsetup是由具体的器件和工艺决定的,我们设计电路时只可以改变Tdelay。所以缩短触发器间组合逻辑的延时是提高同步电路速度的关键。由于一般同步电路都不止一级锁存(如图3),而要使电路稳定工作,时钟周期必须满足最大延时要求,缩短最长延时路径,才可提高电路的工作频率。
如图2,我们可以将较大的组合逻辑分解为较小的几块,中间插入触发器,这样可以提高电路的工作频率。这也是所谓“流水线”(pipelining)技术的基本原理。
图2 分割组合逻辑 对于图3的上半部分,它时钟频率受制于第二个较大的组合逻辑的延时,通过适当的方法平均分配组合逻辑,可以避免在两个触发器之间出现过大的延时,消除速度瓶颈。 图3 转移组合逻辑 PLD开发软件中也有一些设置,通过修改这些设置,可以提高编译后系统速度,但这种速度的提高是很有限的,我们只有理解系统速度的基本原理,认真的优化设计方案,才能从根本上提高系统的运行速度。
|