微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > Quartus II如何约束小频率(大周期)时钟信号

Quartus II如何约束小频率(大周期)时钟信号

时间:10-02 整理:3721RD 点击:
大家好!我在使用quartus II(7.2)的TimeQuest Timing Analyzer进行时序约束的时候,提示如下警告:
Warning: The period, rise edge, or fall edge of clock: bck_div500 was found to be outside of the range of acceptable time values.  The minimum acceptable time value is -2147483.647 and the maximum acceptable time value is 2147483.647. This clock will be ignored.
bck_div500的周期为2500000ns,是超过了maximum acceptable time。请问对于该类时钟该如何添加时序约束呢?

时钟约束是让布线尽量满足你的要求,如果怎么走线都可以满足就不必约束了。


那如果我想要约束这种小频率的时钟,应该怎么写呢?



能问一下小编为什么要对小时钟进行约束吗?我想知道你是要达到什么目的...
添加约束是为了让布局布线满足时序要求,不知道你是有什么特殊要求


您好!我的系统中有用到小频率的时钟信号,所以我对它们进行了时钟约束,接着软件就提示了警告。我知道即使没有对这些小信号进行约束,系统也能正常工作。我的问题是,抛开是否需要对小频率时钟信号进行约束的必要性,如果要添加约束的话,可以实现吗?我现在还没有找到方法。



    可以,你可以把它当做一个比较高频的时钟进行约束,也就是约束文件里时钟频率提高...


您好!您是指把所有时钟频率都提高,还是指只提高小频率时钟信号。如果都提高时钟频率,可能会有很多时序违例,而且如果要约束的小频率时钟非常小的话,恐怕不行。如果只提高小频率时钟信号,是否是直接将其频率提高?

sdc贴上来看看


create_clock -name mck -period 20 -waveform {0 10} [get_ports mck]
create_generated_clock -name bck  -divide_by 250 -duty_cycle 50 -source [get_ports mck] [get_keepers bckgen:u0|bck]
create_generated_clock -name bck_div5     -edges {1 7 11} -source [get_ports bck] [get_keepers touch:u2|ckgen:u0|ckgen_d5:u0|dff3]
create_generated_clock -name bck_div25    -edges {1 7 11} -source [get_keepers touch:u2|ckgen:u0|ckgen_d5:u0|dff3] [get_keepers touch:u2|ckgen:u0|ckgen_d5:u1|dff3]
create_generated_clock -name bck_div125   -edges {1 7 11} -source [get_keepers touch:u2|ckgen:u0|ckgen_d5:u1|dff3] [get_keepers touch:u2|ckgen:u0|ckgen_d5:u2|dff3]
create_generated_clock -name bck_div250   -edges {1 3 5}  -source [get_keepers touch:u2|ckgen:u0|ckgen_d5:u2|dff3] [get_keepers touch:u2|ckgen:u0|ck3]
create_generated_clock -name bck_div500   -edges {1 3 5}  -source [get_keepers touch:u2|ckgen:u0|ck3] [get_keepers touch:u2|ckgen:u0|ck4]

FPGA约束一般是用来约束最高频率,你那个很小的时钟信号在综合时可以用快点的频率来约束,比如你用1M来约束,只要电路工作频率小于约束的频率1M,电路就能正常工作。
另外你那种频率这么小的信号不一定非要做成时钟,如果你的设计允许,做成时钟使能信号就可以了,还可以节省全局时钟资源


谢谢!我有一个疑问想请教一下您,如果把小频率信号作为时钟使能信号,那是否意味着该模块的时钟要用高频率信号,如果是这样的话,功耗应该会增加。不知我的理解对不对~

可以不约束,通过post-simulation验证


谢谢!系统已经验证过没有问题,现在的问题是如果想约束的话,该怎么约束。另外,我用synplify进行综合,发现对时钟信号的约束最低只能到1MHz,即1000ns,低于1MHz的时钟信号,都会被默认成1MHz。当然如果1MHz都能满足要求,那么对于更低的时钟应该更容易满足。

这是软件的局限性。时序约束的目的也就是要使系统满足设计要求,只是约束太紧张的话,会造成面积浪费

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top