基于quartusii时序约束
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
关于quartus ii时序约束(1)
2012-06-17 09:46:07| 分类:默认分类|举报|字号订阅
一直以来都只是简单地理解了一下关于时序约束的内容,而工具也有默认classic的约束,加上目前的设计对时序没有很高的要求,所以就一直都没真正地自己做过一次约束,但是我知道,这部分是不可以跳过的,这部分也算是搞
FPGA必须掌握的内容。今天下午对这部分进行了初次探究,收获有如下:
常用的约束有三种:
1.时序约束
2.区域约束
3.位置约束
时序约束的作用有:
1.提高设计的工作频率
2.获得正确的时序分析报告
需要复习前面博文《FPGA学习之时序分析基础(7)》
记住,堵塞原则是HDL语言的精髓,也就是说触发器是有延时作用的,虽然两个触发器使用的是同一个时钟,但是当第二个触发器接收第一帧数据的时候第一个触发器在发第二帧数据,而当第二个触发器接收第二帧数据的时候第一个触发器在发第三帧数据,依此类推,也就是说每一帧数据在两个触发器之间都有一个clk的时间前进,如果前进的时间太长,也即是系统给的时钟太快,就会出现无法满足第二个触发器setup的时间。setup time 就是第二个触发器在接收到由第一个触发器上一个时钟发送的数据之前应空闲的时间。
公式:CLK+TCLK2-Tsu > Tclk1 + Tcd + Tdata
所以系统CLK是和Tsu息息相关的,所以看时序报告的时候也是从Clock Setup
‘clk’看最差路径等信息。
在FPGA设计工具中包含有4种路径:从输入端口到寄存器,从寄存器到寄存器,从寄存器到输出,从输入到输出的纯组合逻辑。通常,需要对这几种路径分别进行约束,以便使设计工具能够得到最优化的结果。下面对这几种路径分别进行讨论。
1. 从输入端口到寄存器:
这种路径的约束是为了让FPGA设计工具能够尽可能的优化从输入端口到第一级寄存器之间的路径延迟,使其能够保证系统时钟可靠的采到从外部芯片到FPGA的信号。
约束名称:input delay。
约束条件的影响主要有4个因素:外部芯片的Tco,电路板上信号延迟Tpd,FPGA的Tsu, 时钟延迟Tclk. Tco的参数通常需要查外部芯片的数据手册。计算公式:input delay =
Tco+Tpd+Tsu-Tclk。FPGA的Tsu也需要查FPGA芯片的手册。FPGA速度等级不同,这个参数也不同。Tpd和Tclk需要根据电路板实际的参数来计算。通常,每10cm的线长可以按照1ns来计算。例如:系统时钟100MHz,电路板上最大延迟2ns,时钟最大延迟1.7ns,Tco 3ns,FPGA的Tsu为0.2ns。那么输入延迟的值:max Input delay = 2+3+0.2-1.7=3.5ns. 这个参数的含义是指让FPGA的设计工具把FPGA的输入端口到第一级寄存器之间的路径延迟(包括门延迟和线延迟)控制在10ns-3.5ns=6.5ns以内,其中10ns是系统时钟。
2. 寄存器到寄存器:
这种路径的约束是为了让FPGA设计工具能够优化FPGA内寄存器到寄存器之间的路径,使其延迟时间必须小于时钟周期,这样才能确保信号被可靠的传递。由于这种路径只存在于FPGA 内部,通常通过设定时钟频率的方式就可以对其进行约束。对于更深入的优化方法,还可以采用对寄存器的输入和寄存器的输出加入适当的约束,来使逻辑综合器和布线器能够对某条路径进行特别的优化。还可以通过设定最大扇出数来迫使工具对其进行逻辑复制,减少扇出数量,提高性能。
3. 寄存器到输出:
这种路径的约束是为了让FPGA设计工具能够优化FPGA内部从最后一级寄存器到输出端口的路径,确保其输出的信号能够被下一级芯片正确的采到。
约束的名称:output delay。
约束条件的影响主要有3个因素:外部芯片的Tsu,电路板上信号延迟Tpd,时钟延迟Tclk。Tsu 的参数通常需要查外部芯片的数据手册。计算公式:output delay = Tsu+Tpd-Tclk。例如:系统时钟100MHz,电路板上最大延迟2ns,时钟最大延迟 1.7ns,Tsu 1ns,输出延迟的值:max output delay = 1+2-1.7=1.3ns。这个参数的含义是指让FPGA的设计工具把最后一级寄存器到输出端口之间的路径延迟(包括门延迟和线延迟)控制在10ns-1.3ns=8.7ns 以内。
4. 从输入端口到输出端口:
这种路径是指组合逻辑的延迟,指信号从输入到输出没有经过任何寄存器。给这种路径加约束条件,需要虚拟一个时钟,然后通过约束来指定哪些路径是要受该虚拟时钟的约束。在Synplifypro 和Precision中都有相应的约束来处理这种路径。
QuartusII软件中时钟Fmax约束步骤
作者:Altera中国区代理――骏龙科技武汉办事处
使用QuartusII软件对设计中的时钟进行约束的步骤如下:(这里以QuartusII5.0为例说明)1.如果实际中仅仅用到单个时钟按照图一所示约束即可。
例如,设计主时钟是19.44M,按照下面图一及图二中所示步骤约束即可,一般来讲,约束尽量留一些余量,如设计主时钟为19.44M,我们可以设置主时钟为25M。
图一:Timing Settings菜单
执行完图六所示步骤后跳出图七所示窗口,在图中相应位置输入相应的时钟频率即可,(可以根据设计需要选择时钟的占空比,一般设计50%的占空比)完成后点击OK。此时即完成了对一个时钟的设置,如图八所示。
我们可以使用以上类似步骤继续把设计中其余时钟进行相应设置。另外,对多个时钟设置后我们可以根据需要修改或者删除。
图八:成功设置一个时候后的界面
说明:1.这里对时钟的约束仅仅针对输入管脚的时钟或者内部的时钟,不能应用于对输出时钟(管脚输出时钟)的约束。 2.这里仅仅说明的仅仅是对设计时钟的Fmax的约束步骤,很多时候由于设计复杂或者时钟要求比较高的场合,同时还需要对Tsu及Tco进行设置。对