原创 由QSF生成SDC

2010-4-2 17:09 3432 8 8 分类: FPGA/CPLD

来源:http://blog.ednchina.com/riple/138886/message.aspx


QSF是Quartus Settings File的缩写,包含了一个Quartus工程的所有约束,包括工程信息、器件信息、引脚约束、编译约束和用于Classic Timing Analyzer的时序约束。 riple


SDC是Synopsys Design Constraints的缩写,该文件用于TimeQuest Timing Analyzer的时序约束和定制报告。 riple


在TimeQuest中把Classic Timing Analyzer的约束语句转换为SDC是很容易的。在Constraints菜单下,执行Generate SDC File from QSF即可。 riple


 


以Quartus II安装路径下的\qdesigns\fir_filter项目为例,QSF文件中关于时序约束的语句如下: riple


# 约束clk为100MHz的时钟。 riple
set_global_assignment -name FMAX_REQUIREMENT "100 MHz" -section_id clocka
set_instance_assignment -name CLOCK_SETTINGS clocka -to clk


# 约束clkx2为clk的二倍频时钟,相位偏移0.5ns riple
set_global_assignment -name BASED_ON_CLOCK_SETTINGS clocka -section_id clockb
set_global_assignment -name DIVIDE_BASE_CLOCK_PERIOD_BY 2 -section_id clockb
set_global_assignment -name OFFSET_FROM_BASE_CLOCK "500 ps" -section_id clockb
set_instance_assignment -name CLOCK_SETTINGS clockb -to clkx2


# 约束所有从clk到clkx2的时序路径为Multicycle,取值2 riple
set_instance_assignment -name MULTICYCLE 2 -from clk -to clkx2


 


由该组QSF约束转换得到的SDC约束如下: riple


# Original Clock Setting Name: clocka
create_clock -period "10.000 ns" \
             -name {clk} {clk}
# Original Clock Setting Name: clockb
create_generated_clock -multiply_by 2 -offset "0.500 ns"  \
                       -source clk \
                       -name {clkx2} \
                       {clkx2}
# ** Multicycles
# QSF: -name MULTICYCLE 2 -from clk -to clkx2
set_multicycle_path -end -setup -from [get_clocks {clk}] -to [get_clocks {clkx2}] 2
set_multicycle_path -end -hold -from [get_clocks {clk}] -to [get_clocks {clkx2}] 1


从上面的例子可以看出,SDC比QSF简洁了些,在Multicycle的约束上也清晰明确了些。 riple

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
我要评论
0
8
关闭 站长推荐上一条 /3 下一条