本文对可以在帮助文档中查到的基本XDC语法不做详细解释,会 将重点放在使用方法和技巧上。 时钟约束 时 钟约束必须最早创建,对7系列FPGA来说,端口进来的主时钟以及GT的输出RXCLK/TXCLK都必须由用户使用create_clock自主创建。 如果是差分输入的时钟,可以仅仅在差分对的P侧用get_ports获取端口,并使用create_clock创建...
因为ports应该位于顶层,没有层次之分。 -regexp是指本次匹配将使用正则表达式,是必须使用的。 以下是一个使用-hierarchical的例子和注意事项。 首先看第一行蓝色的get_cells命令,这里用来获得ConfigRegs_i这个实例内的满足bus_hsio_dly\..*_fine_sel.*要求的对象。可以看到运行该命令后得到了下面黑色部分的对象。
set_property IOSTANDARD LVCMOS18 [get_ports CPU_RESET_0]设置特性 IO电平标准 1.8V 得到端口 端口号 需要注意的是,约束文件中如果对应的端口号是寄存器或数组类型的,应该在写约束文件的时候加上花括号。如下: set_property PACKAGE_PIN V4 [get_ports{data_out[0]}] set_prope...
get_cells -regexp -hierarchical {A_i0/.*/D_i0/start_reg} 3.3 特殊字符的获取 前面提到过一些特殊字符,比如?、.、/、[等等,如果需要匹配这些字符,需要用到转义符“\”。比如“\.”表示“.”这个字符本身,而不再是匹配符.。 比如在上文提到的get_ports -regexp {c2c_sync\[[0-9]{1,2}]}。这...
在弹出的窗口中,文件名自行填写,文件类型默认“XDC”,点击“OK” 打开刚生成的“.XDC”文件,可看到一个TCL脚本文件 PS:下面介绍以下最基本的XDC编写的语法: 普通I/O口只需要约束引脚和电压,管脚约束如下: set_property PACKAGE_PIN "引脚编号" [get_ports "端口名称"] ...
时钟约束必须最早创建,对7系列FPGA来说,端口进来的主时钟以及GT的输出RXCLK/TXCLK都必须由用户使用create_clock自主创建。如果是差分输入的时钟,可以仅仅在差分对的P侧用get_ports获取端口,并使用create_clock创建。例如, Vivado自动推导的衍生时钟 MMCM/PLL/BUFR的输出作为衍生时钟,可以由Vivado自动推导,无需用户创建...
比如在上文提到的get_ports -regexp {c2c_sync/[[0-9]{1,2}]}。这个总线的完整名称是c2c_sync[0]、c2c_sync[1]...,此处的“/[”就是表示左方括号这个字符本身。而[0-9]中单独使用的[]就表示一个字符集合。这里有个需要注意的地方,作为字符使用的左方括号左侧加了转义符“/“,而右方括号则不需要...
7、打开刚才生成的 “led.xdc” 文件,我们可以看到是一个 TCL 脚本,如果我们了解这些语法,完全可以通过自己编写 led.xdc 文件的方式来约束管脚 下面来介绍一下最基本的 XDC 编写的语法,普通 IO 口只需约束引脚号和电压。 管脚约束如下: set_property PACKAGE_PIN "引脚编号" [get_ports “端口名称”] ...
点击open elaborated design,在右下角会有I/O ports栏。 在package pin列分配引脚即可,在I/O std列修改电压分配。 在这个界面ctrl s会显示选项,可以保存为xdc文件。 xdc文件格式如下: set_property PACKAGE_PIN U14 [get_ports led[0]] set_property PACKAGE_PIN U19 [get_ports led[1]] set_property IOS...
约束TCL.xdc ## set_property -dict { attr } [get_ports port ];设置多个属性 set_property -dict {PACKAGE_PIN H16 IOSTANDARD LVCMOS33} [get_ports{ clk }]; ## set_property attr_name attr_class [get_ports port] set_property PACKAGE_PIN R14 [get_ports led] set_property IOSTANDARD LVCMOS...