前言
可以参考《Xilinx FPGA权威设计指南》,还有Xilinx提供的手册,如下图所示。文后的参考文献也不错,值得阅读。
1、UCF/XDC常用命令
UCF约束到XDC命令之间的映射关系
UCF | XDC | 作用 |
TIMESPEC PERIOD | create_clock create_generated_clock |
|
OFFSET= IN<x>BEFORE<clk> | set_input_delay | |
OFFSET=OUT<x>BEFORE<clk> | set_output_delay | |
FROM:TO "TS_" *2 | set_multicycle_path | |
FROM:TO | set_max_delay | |
TIG | set_false_path | |
NET "clk_p" LOCK = AD12 | set_property LOC AD12 [get_ports clk_p] | 将信号端口clk_p与FPAG芯片管脚AD12进行绑定。 |
NET "clk_p" IOSTANDARD=LVDS | set_property IOSTANDART LVDS [get_ports clk_p] | 将信号端口clk_p的电平标准设为LVDS。 |
通用 | |||
set | expr | list | filter |
current_instance | get_hierarchy_separator | set_hierarchy_separator | get_property |
set_property | set_units | endgroup | startgroup |
时序约束 | |||
create_clock | create_generated_clock | group_path | set_clock_groups |
set_clock_latency | set_data_check | set_disable_timing | set_false_path |
set_input_delay | set_output_delay | set_max_delay | set_min_delay |
set_multicycle_path | set_case_analysis | set_clock_sense | set_clock_uncertainty |
set_input_jitter | set_max_time_borow | set_propagated_clock | set_system_jitter |
set_external_delay | |||
物理约束 | |||
add_cells_to_pblock | create_pblock | delete_pblock | remove_cells_from_pblock |
resize_pblock | create_macro | delete_macros | update_macro |
2、引脚约束
(1)I/O引脚分配设置语法格式
set_property PACKAGE_PIN <pin name>[get_port <port> ] ##规范
set_property PACKAGE_PIN W13 [get_port light_led1] ##举例
(2)IO引脚驱动能力设置语法格式
set_property DRIVE<2 4 6 8 12 16 24>[get_ports<ports>]
(3)IO引脚电器标准设置语法格式
set_property IOSTANDARD <IO standard> [get_ports <ports> ] ##规范
set_property IOSTANDARD LVCMOS33 [get_ports light_led2] ##举例
(4)IO引脚抖动设置语法格式
set_property SLEW <SLOW|FAST>[get_ports<ports>]
(5)IO引脚上拉设置语法格式
set_property PULLUP true[get_ports<ports>]
(6)IO引脚下啦设置语法格式
set_property PULLDOWN true [get_ports<ports>]
参考文献
作者 | 博客 |
1、长弓的坚持 | XDC约束技巧——CDC篇 |
XDC约束技巧之时钟篇 | |
XDC约束技巧之I/O篇 (上) | |
XDC约束技巧之I/O篇 (下) | |
2、Times_poem | xdc文件时钟约束的初识 |
Vivado时钟分组约束的三类应用 | |
3、angelbosj | 关于 vivado 的IO口约束 |