Quartus II如何约束小频率(大周期)时钟信号
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都能满足要求,那么对于更低的时钟应该更容易满足。
这是软件的局限性。时序约束的目的也就是要使系统满足设计要求,只是约束太紧张的话,会造成面积浪费
