微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 微电子和IC设计 > IC后端设计交流 > 输出信号对齐

输出信号对齐

时间:10-02 整理:3721RD 点击:
做一个数模混合系统,希望几个输出端对齐,比如延迟都在1ns~2ns之间,而这些输出端所带的负载电容大小都不一样。不知道在DC中应该怎样进行约束?查到的解决方法说
“如果有输出时钟的话在那个输出时钟端口定义一个generated_clock其它信号的output_delay都相对于这个generated_clock而定。只要有max和min就可以把所有信号卡在一个范围之内
如果没有输出时钟的话用set_output_delay -reference_pin”
但是set_output_delay不是定义外部逻辑需要的时间吗?那么设了max和min对输出信号的对齐好像没什么帮助吧?
刚学着用DC,还请大家多多指教!谢谢!

输出加上可配置延时单元

可以试试 set_data_check

能详细说说吗?刚开始学DC,很多都不懂...

难道没有人这么做过吗?大家多多指导啊!

比如说有三个输出端口D[0],D[1],D[2],在没有相关时钟约束的情况下,为了使它们对齐,可以用下面的约束。
set_data_check -from [get_ports D[0]] -to [get_ports D[1]] -setup 0.0
set_data_check -from [get_ports D[0]] -to [get_ports D[2]] -setup 0.0

上面的约束就是要求D[1]/D[2]尽量向D[0]靠齐。

更仔细的用法还是去看帮助吧。

我看了Synthesis Commands里对set_data_check的解释,没太看明白...
这几个输出都是寄存器的输出,由同一个时钟沿打出,也能用set_data_check吗?

可以的,如果需要限定是由哪个时钟沿打出的,还可以加上选项-clock.
你把这个约束加上后,用report_timing -to [get_ports D[1]] 就可以看到效果了。

麻烦您能再详细些说明一下set_data_check中-setup和-hold这两个option是什么意思?谢谢!

以我上面的的例子来说,可以将D[0]理解为CLK PIN, 将D[1]/D[2] 理解为DATA PIN。set_data_check 中的setup/hold 就相当于库文件中对DFF定义的setup/hold值。



那意思不是说set_data_check -setup是要求一个信号的变化至少要比另一个信号晚若干时间?这样怎么对齐信号呢?

不是可以将setup/hold值设为0吗?

设为0的意思是可以同时变化,那即使是不对齐也满足data_check的要求啊?

这里的setup/hold可以像DFF的setup/hold一样来理解,但不完全一样。将setup/hold设为0就是要求数据对齐,将D[1]/D[2] setup 值设为0.1就是要求D[1]/D[2] 早于D[0] 0.1 ns到达。
以上都只是我的理解,不一定正确。
我建议你不同的尝试,看工具优化出来的效果,看怎样才能达到自己的目的,做了之后理解会更深刻一些。

各位还有什么看法吗?多多指导啊!

对于小编这个问题,这个方法应该是可以的。

不过对于这句话的用法,我还是不理解。

“如果有输出时钟的话在那个输出时钟端口定义一个generated_clock其它信号的output_delay都相对于这个generated_clock而定。只要有max和min就可以把所有信号卡在一个范围之内
如果没有输出时钟的话用set_output_delay -reference_pin”

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

网站地图

Top