使用时钟周期约束的优势

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

通信与网络
责任编辑:万翀
设计人员可通设置时序约束来满足芯片设计的具体时序需求。

物理综合工具可通过布局布线满足这些时序约束。

一个非常常见且重要的时序约束条件与最大时钟频率密切相关,我们通常称其为周期约束。

在Xilinx ISE 工具套件中,该约束在用户约束文件(UCF )中被称之为TS_clk 。

赛灵思时序约束用户指南规定[1],周期约束用于:
1)定义设计中的每个时钟;2)覆盖每个时钟域中的所有同步路径;
3)交叉检查相关时钟域之间的路径;
4)定义时钟持续时间;5)定义时钟占空比。

用户指南包含丰富的详细信息,并对周期约束功能提供了良好的相关解释。

不过我们应当深入了解FPGA 使用时钟周期约束的优势
The Advantages of Using Clock Period Constraint
Sharad Sinha 新加坡南洋理工大学 高性能嵌入式系统博士生中心
摘要:通过赛灵思ISE及工具行为方式深入了解TS_clk约束,在FPGA设计方案中获得高效率时序收敛。

关键词:FPGA;时钟周期;TS_clk
DOI: 10.3969/j.issn.1005-5517.2012.4.008综合工具背后的奥秘,探索相关周期约束行为的一系列问题,并掌握布局布线的算法如何工作。

具体而言,我们将讨论解释TS_clk 约束失效的方法,通过渐进约束工具来检查您是否正在逐步改善结果,讨论为什么工具显示的结果存在差异。

最后我们还将了解这种时序约束相对于非约束设计的优劣。

如何解释TS_clk约束失效
如果设计不能满足时钟周期约束要求,就意味着它不能在相应的时钟频率下运行。

此后您可进行流水线设计,在慢速路径下放松时序要求。

流水线技术可能足以让设计满足约束条件。

还有一种改进时序的办法就是减少两个寄存器之间的逻辑级数,事实上您需要简化关键路径中的逻辑设计。

这两种方法都适用于设计层面,在该层面上设计人员可对RTL 代码进行必要的调整。

如果您的设计在RTL 调整后仍无法满足时序要求,下一步就要启用赛灵思ISE 开关:register_balancing (专门用于寄存器重新定
时)与register_duplication (可复制寄存器,降低特定寄存器下的高扇出)。

改进时序的另一种途径就是将引脚正确地分配给I/O 信号。

良好的设计实践是将相邻的引脚分配给相邻的信号。

例如,一个I/O 总线上的所有信号应分配给一个bank 上的相邻引脚。

分配大量引脚时应使用相邻bank 。

以上问题非常重要,它们将作为布局布线工具的约束条件。

该工具通常会尽量使相关逻辑在一起,如果相关I/O 分配给相邻引脚,这就比较容易,因为该技术很有可能将减少布线延迟,然后工具也不会分散器件上的逻辑。

分散逻辑会加大布线延迟。

一般而言,在FPGA 必须位于印刷电路板上时,在分配引脚时就要考虑更多相关电路板的问题。

由于FPGA 会与电路板上其它芯片连接,因而相邻引脚分配法不见得总能适用。

因此,FPGA 设计人员最好在设计阶段早期就与电路板设计人员沟通,以减少引脚分配冲突。

还有一种改进时序的方法是使用更高速级别的器件。

不过,这会影响产品价格,因此这不是轻易可以选择的。

我们不光要考虑器件本身成本的提高,还要考虑更高速器件会对电路
表1 周期约束条件对实际时序的影响
周期约束条件(纳秒)PPR 报告值(纳秒)
无约束条件 2.6072.607 2.8632.863 2.7952.795 2.9662.966 2.762
Communications & Networks 责任编辑:万翀
板设计产生的影响,进而对电路板设计成本的影响。

渐进约束工具能否实现更好的结果?
有时我们希望知道特定设计方案可运行的最高频率。

为了弄明白这一点,我们渐进性地进行设计方案约束。

比如,先将时钟周期约束设为8纳秒(对应于125MHz的时钟频率)。

如果工具在此约束条件下成功完成设计的放置与路由,它可能会报告最低时钟周期为7.68纳秒等信息。

此后我们可将时钟周期约束在7.68纳秒并再次运行ISE。

这时工具可能会报出最低时钟周期为7.56纳秒。

然而,我们将该设计再次约束在7.56纳秒时,工具可能会报告7.74纳秒最低时钟周期的时序错误。

这就是说,我们要实现7.56纳秒,就必须将设计约束在7.68纳秒。

所以设计方案的渐进约束在改进时序方面存在局限性。

过了一定程度的约束,结果可能就会恶化。

如果设计规模不大,周期约束又很严格(很短的周期),工具可能就会报告一个比后布局布线(PPR)静态时序报告中的周期约束低的时钟值。

但是它仍会显示一个时序错误的分值(其在无时序错误时为零),如该页所示,在设计(面向XC4VFX140-11FF1517)中周期约束设为1.5纳秒、占空比为50%,这与实际静态时序报告有误差:
1 constraint not met.
Data Sheet report:
-----------------------
All values displayed in nanoseconds (ns)
Clock to Setup on destination clock
clk
-------------+-----------+----------+--------
---+--------------+
| Src: Rise | Src: Fall | Src: Rise | Src:
Fall |
Source Clock | Dest: Rise | Dest:
Rise | Dest: Fall | Dest: Fall|
-------------+-----------+----------+--------
---+---------------+
clk | 1.489 | | |
-------------+-----------+----------+--------
---+---------------+
Timing summary:
-------------
Timing errors: 1 Score: 722 (Setup/
Max: 0, Hold: 0, Component
Switching Limit: 722)
Constraints cover 40 paths, 0 nets
and 62 connections
Design statistics:
---------------
Minimum period: 2.222 ns{1}
(Maximum frequency: 450.045 MHz)
该报告清晰显示时钟周期为1.489
纳秒,低于1.5纳秒。

但设计方案的目
标应用是速度级为11的Virtex-4器件,
其最大频率为450.05MHz。

因此就存
在着时序错误。

需要强调的是,我们
在设置约束时还必须了解器件的开关
特性。

工具显示的结果为什么有差异?
工具显示的结果有差异,是因为
它采用的是启发式算法。

设计人员使
用这些算法来解决精确算法由于时间
空间复杂性所致的不适应性问题,或
者对实施开发存在极端困难的问题。

启发式算法通常使用所谓的成本函
数,将一些器件信息以及其它经验所
得的常量纳入考虑,从而可选择解决
方案。

不过这些算法不能确保该解决
方案就是最好或最佳的。

启发式算法通常先为逻辑布局
提供初始随机种子值,然后布局进程
根据成本函数分析围绕种子位置的发
展,之后才能进行布线。

由于种子值
会随约束条件每次改变后工具的每次
调用而改变,因此超过某个点之后结
果会恶化。

工具不参考此前的行为和
上次运行报告的结果,难以进一步提
高其工作能力。

要根据此前的布局布
线策略设计放置路由算法并将当前及
以前结果进行比较,也极其困难。

赛灵思ISE中的SmartGuide技术可采
用此前运行的结果来指导新的实施方
案,不过只有实施方案两次迭代之间逻
辑发生一定变化之后SmartGuide才能起
作用。

如果逻辑不变,只是渐进约束相
同设计方案,该技术就不适用。

设计人
员往往会被这种差别弄糊涂。

在这方面,赛灵思I S E中的
SmartXplorer选项只是一种通过不同
时序约束条件加速调查时序进程的
手段。

工具在Linux网络或多处理器
Linux/Windows等不同设备上并行执
行时,该策略可帮助设计人员使用不
同的约束条件调查相同的设计方案。

因此,即便赛灵思ISE提供这些
选项(其它FPGA设计套件也提供类
似选项),工具都不能记住上次运行
的情况,难以在约束条件渐进缩进的
下次运行中比较并改进结果。

如果出
现这种情况,过了某一特定的点,工
具就只会报告一个最低
值,而不会报告约束渐下转56
Consumer Electronics 责任编辑:万翀
当在待机时,眼镜按钮按下时,MCU退出待机模式,进入正常工作状态。

MCU中定时器用于捕获脉宽,计算出镜片开关时间,并产生镜片开关时序。

之后接收到红外同步信号时校准镜片开关时序。

当在眼镜正常工作时按下眼镜按钮,眼镜进行待机状态。

程序结构方框图如图4所示。

小结
3D立体产品及其应用正悄悄地融
入个人娱乐与数字家庭的诸多领域,
如电影、电视、动画、游戏、投影
等。

本文对快门式3D液晶电视眼镜系
统方案设计与实现做了详细的说明,
从快门式3D液晶电视眼镜系统方案的
整体电路结构,各个模块电路的工作
原理,到方案关键元器件的选型,以
及整体系统方案软件的设计与实现,
为今后开发快门式3D液晶电视眼镜系
统方案起到一定借鉴意义。

3D立体电
子消费品使人们提前体验到3D产品带
来的全新享受,伴随着3D产品与技术
的不断完善,普及化和认可度的大幅
提升,3D产品将会迅速地进入中国的
平常家庭。

参考文献:
[1] 叶玉堂,刘爽.红外与微光技术[M].北京:国防工业出版社,2010
[2] 梁柱.光学原理教程[M].北京:北京航空航天大学出版社,2005
[3] 陈永甫.红外辐射红外器件与典型应用[M].北京:电子工业出版社
,2004
[4] 胡大可.MSP430系列单片机C语言程序设计与开发[M].北京:北
京航空航天大学出版社,2003
[5] 沈建华,杨艳琴,翟骁曙.MSP430系列16位超低功耗单片机原理
与应用[M].北京:清华大学出版社,2004
[6] 王琼华.3D显示技术与器件[M].科学出版社,2011
进的不同值。

由于我们
难以根据此前的布局布线信息反馈设计算法、改进相同设计方案的时序,因此我们应当知道和理解工具的局限性。

时序约束通常都比非约束设计好吗?
传统上认为,约束性设计的时序通常比非约束性设计好。

一般而言这是对的。

不过这也并非绝对。

有时在非约束性设计中,工具反而能够以尽可能最好的方法实现设计方案的最佳布局布线。

如表1所示,在非约束实施方案中,可实现的时钟频率是最高的。

出现这种差异的原因还是布局布线算法工作的方法。

我们在南洋理工大学高性能嵌入式系统中心的团队采用赛灵思ISE version 12.2 M.63C在Virtex-4 XC4VFX140-11FF1517 FPGA上实施绝对差值和(SAD)算法[3]。

我们部署的8x8 SAD采用8个图像像素(每个16位)和8个参考像素(每个16位),使用外部选择信号选定两个像素减去,因此设计方案最后就只有一个减法器。

我们没有使用任何调节寄存器,而且所有内部寄存器都初始化为零。

我们在该实验中也没有进行引脚
分配。

从表1中可以看出,我们在未设
置约束条件时能实现2.607纳秒的最佳
最小时钟周期。

我们将周期约束设为
2.607纳秒,工具报告可实现的最佳时
钟周期为2.863纳秒,而将2.863纳秒
设为周期约束条件,所得到的可实现
最佳时钟周期则为2.795纳秒。

这是因
为工具一旦得到接近值,就不会再继
续尽力满足约束条件了。

将2.795纳秒
设置为新的约束条件不会将可实现最
佳时钟周期降至2.607纳秒,而会将其
升至2.966纳秒。

在此情况下,工具没
有满足约束条件要求。

结果中的这种随机性源于布局布线
算法的启发性。

这同时也说明,设计人
员在设置和再设置周期约束条件满足时
序收敛要求时需要花大量的时间。

伪随机解决方案
周期约束是FPGA设计中最重要
的约束之一,对时序收敛至关重要。

因此,了解其行为方式以及如何解释
其结果也非常重要。

渐进约束时钟周
期不一定就能改进结果。

每次重大软
件的发布,厂商通常都要改进FPGA
设计工具中部署的布局布线算法。


此,不同版本的时序结果可能有所差
别。

与布局布线具有高度确定性的
ASIC不同,FPGA布局布线算法具有
启发式特性。

这很容易理解,因为
FPGA的性质所决定,随机逻辑必须
映射到具有固定组件及路由资源的固
定硬件架构上。

FPGA布局布线是一种NP完整性
问题——其中没有找到解决方案的高
效率方法。

对这种问题而言,没有已
知的多项式时间算法能提供准确的或
最佳的解决方案。

因此,解决这种问
题就要根据伪随机过程采用启发式或
者某些接近或相似的方法。

此外,这些算法的运行时间可随
输入量的增长快速变化,就像我们很
多人经历的大型FPGA设计一样。


是NP完整性问题的基本方面,因此
结果的质量很大程度上取决于所用启
发式或所部署近似方法的类型。

参考文献:
[1] 赛灵思FPGA设计时序约束指南[M].Xilinx Inc., 2010
[2] ISE Design Suite Software Manuals and Help[DB].Xilinx
Inc., 2010
[3] Sharad Sinha.Area-Efficient Design of the SAD Function
on FPGAs[J].Xcell Jounal,2011,(75):38
上接42。

相关文档
最新文档