微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 微电子和IC设计 > IC后端设计交流 > set_output_delay 的问题

set_output_delay 的问题

时间:10-02 整理:3721RD 点击:
因为我的输出dataout_n_re频率是不确定的,可能是3M,6M等等,所以我就如下这样约束output delay,但是出来结果不对,求问该怎么约束?

set_output_delay -max 32 -clock clk_3M[get_ports dataout_n_re]
set_output_delay -max 4.8 -clock clk_6_8M-add_delay [get_ports dataout_n_re]
set_output_delay -max 2.4 -clock clk_3_32M -add_delay [get_ports dataout_n_re]
set_output_delay -max 1.2 -clockCLOCK -add_delay [get_ports dataout_n_re]

后面的几个output delay要加-add_delay

我加了呀。

根据你输出port的产生时钟来设置其output_delay,若这个port本身就是输出时钟且在外部使用时不采样其他port输出信号的也可以不设

怎么个不对?具体写出来看看

模块还是top IO? 有相应协议参考吗

可能我之前没有把问题说清楚,大致结构是有个输入端choice_n,当他为不同值时,mux选择输出不同的输出,这几个输出的频率不一样。就是case(choice_n)
0:dataout1_3M;
1:dataout2_6M;
2:dataout3_48M;
3:dataout4_96M;
4:dataout5_192M;

可能我之前没有把问题说清楚,大致结构是有个输入端choice_n,当他为不同值时,mux选择输出不同的输出,这几个输出的频率不一样。就是case(choice_n)
0:dataout1_3M;
1:dataout2_6M;
2:dataout3_48M;
3:dataout4_96M;
4:dataout5_192M;
不对的地方在于它的时序有点串,就是最高频率192M的时钟关键路径和低频时钟串了。

“这样出来的结果不对” 是什么意思?按照你的意思,该输出port前面连接的是一个mux的输出,而mux的输入是多个clock 分别驱动的各自的寄存器产生的输出,该各自的输出最后到达该mux的各自对应的输入端,我觉得是这样的话你可以按照最快的那个时钟来约束该输出port,剩下的用set_max_delay,不知道这样符合你的要求不?

你的意思是不用-add吗?你说的set max delay 是指set_output_delay max还是组合逻辑的set max delay?



你就先按照频率最快的那个来约束,或者每个频率下都约束,但要加add_delay

对不起啊,点错了点了个反对。

具体的逻辑你没说清楚,但是你要想不串的话需要把这些定义的时钟设置为logical_exclusive或者physical_exclusive.

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

网站地图

Top