set_property -dict
时间: 2023-06-05 16:47:06 浏览: 379
set_property -dict是Vivado中的一条命令,用于设置IP核的属性。该命令可以通过字典的形式设置多个属性,例如:
set_property -dict {CONFIG.FOO "BAR" CONFIG.BAZ "QUX"} [get_ips my_ip]
这条命令将my_ip这个IP核的CONFIG.FOO属性设置为"BAR",CONFIG.BAZ属性设置为"QUX"。
相关问题
请解释以下几行代码的意思set_property -dict { PACKAGE_PIN H16 IOSTANDARD LVCMOS33 } [get_ports { clk }]; create_clock -add -name sys_clk_pin -period 8.00 -waveform {0 4} [get_ports { clk }]; set_property IOSTANDARD LVCMOS33 [get_ports {ad_data[7]}] set_property IOSTANDARD LVCMOS33 [get_ports {ad_data[6]}] set_property IOSTANDARD LVCMOS33 [get_ports {ad_data[5]}] set_property IOSTANDARD LVCMOS33 [get_ports {ad_data[4]}] set_property IOSTANDARD LVCMOS33 [get_ports {ad_data[3]}] set_property IOSTANDARD LVCMOS33 [get_ports {ad_data[2]}] set_property IOSTANDARD LVCMOS33 [get_ports {ad_data[1]}] set_property IOSTANDARD LVCMOS33 [get_ports {ad_data[0]}] set_property PACKAGE_PIN T14 [get_ports {ad_data[7]}] set_property PACKAGE_PIN U12 [get_ports {ad_data[6]}] set_property PACKAGE_PIN U13 [get_ports {ad_data[5]}] set_property PACKAGE_PIN V13 [get_ports {ad_data[4]}] set_property PACKAGE_PIN V15 [get_ports {ad_data[3]}] set_property PACKAGE_PIN T15 [get_ports {ad_data[2]}] set_property PACKAGE_PIN R16 [get_ports {ad_data[1]}] set_property PACKAGE_PIN U17 [get_ports {ad_data[0]}] set_property IOSTANDARD LVCMOS33 [get_ports {ad_clk}] set_property PACKAGE_PIN V17 [get_ports {ad_clk}]
这些代码是针对 Vivado 工具对 FPGA 设计进行约束(constraints)的语句,用于指定 FPGA 设备的引脚映射、时钟、电平标准等信息,以保证设计在硬件上能够正确工作。
具体来说,这些语句的含义如下:
1. `set_property -dict { PACKAGE_PIN H16 IOSTANDARD LVCMOS33 } [get_ports { clk }];`
- `set_property` 是 Vivado 工具中的约束命令,用于设置约束属性。
- `-dict { PACKAGE_PIN H16 IOSTANDARD LVCMOS33 }` 表示设置一个字典类型的属性,其中 `PACKAGE_PIN` 表示引脚的物理位置,`H16` 是该引脚的位置,`IOSTANDARD` 表示引脚的电平标准,`LVCMOS33` 表示使用 LVCMOS33 标准。
- `[get_ports { clk }]` 表示获取名为 `clk` 的端口对象,将 `PACKAGE_PIN` 和 `IOSTANDARD` 属性设置为上面指定的值。
2. `create_clock -add -name sys_clk_pin -period 8.00 -waveform {0 4} [get_ports { clk }];`
- `create_clock` 命令用于创建时钟对象。
- `-add` 表示将新的时钟添加到已有的时钟列表中。
- `-name sys_clk_pin` 表示设置时钟的名称为 `sys_clk_pin`。
- `-period 8.00` 表示时钟周期为 8ns。
- `-waveform {0 4}` 表示时钟波形为持续 0ns,然后持续 4ns。
- `[get_ports { clk }]` 表示获取名为 `clk` 的时钟端口对象,将其设置为新建时钟的源。
3. `set_property IOSTANDARD LVCMOS33 [get_ports {ad_data[7]}]`、`set_property IOSTANDARD LVCMOS33 [get_ports {ad_data[6]}]`、`set_property IOSTANDARD LVCMOS33 [get_ports {ad_data[5]}]`、`set_property IOSTANDARD LVCMOS33 [get_ports {ad_data[4]}]`、`set_property IOSTANDARD LVCMOS33 [get_ports {ad_data[3]}]`、`set_property IOSTANDARD LVCMOS33 [get_ports {ad_data[2]}]`、`set_property IOSTANDARD LVCMOS33 [get_ports {ad_data[1]}]`、`set_property IOSTANDARD LVCMOS33 [get_ports {ad_data[0]}]`
- 这些语句用于设置名为 `ad_data[7]`、`ad_data[6]`、`ad_data[5]`、`ad_data[4]`、`ad_data[3]`、`ad_data[2]`、`ad_data[1]`、`ad_data[0]` 的端口使用 LVCMOS33 电平标准。
4. `set_property PACKAGE_PIN T14 [get_ports {ad_data[7]}]`、`set_property PACKAGE_PIN U12 [get_ports {ad_data[6]}]`、`set_property PACKAGE_PIN U13 [get_ports {ad_data[5]}]`、`set_property PACKAGE_PIN V13 [get_ports {ad_data[4]}]`、`set_property PACKAGE_PIN V15 [get_ports {ad_data[3]}]`、`set_property PACKAGE_PIN T15 [get_ports {ad_data[2]}]`、`set_property PACKAGE_PIN R16 [get_ports {ad_data[1]}]`、`set_property PACKAGE_PIN U17 [get_ports {ad_data[0]}]`
- 这些语句用于将 `ad_data[7]`、`ad_data[6]`、`ad_data[5]`、`ad_data[4]`、`ad_data[3]`、`ad_data[2]`、`ad_data[1]`、`ad_data[0]` 端口映射到具体的 FPGA 引脚上,分别为 `T14`、`U12`、`U13`、`V13`、`V15`、`T15`、`R16` 和 `U17`。
5. `set_property IOSTANDARD LVCMOS33 [get_ports {ad_clk}]`、`set_property PACKAGE_PIN V17 [get_ports {ad_clk}]`
- 这些语句用于设置名为 `ad_clk` 的端口使用 LVCMOS33 电平标准,并将其映射到引脚 `V17` 上。
set_property -dict {PACKAGE_PIN R1 IOSTANDARD LVCMOS33} [get_ports {key[0]}] set_property -dict {PACKAGE_PIN N4 IOSTANDARD LVCMOS33} [get_ports {key[1]}] set_property -dict {PACKAGE_PIN M4 IOSTANDARD LVCMOS33} [get_ports {key[2]}] set_property -dict {PACKAGE_PIN G2 IOSTANDARD LVCMOS33} [get_ports {wei[3]}] set_property -dict {PACKAGE_PIN C2 IOSTANDARD LVCMOS33} [get_ports {wei[2]}] set_property -dict {PACKAGE_PIN C1 IOSTANDARD LVCMOS33} [get_ports {wei[1]}] set_property -dict {PACKAGE_PIN H1 IOSTANDARD LVCMOS33} [get_ports {wei[0]}] set_property -dict {PACKAGE_PIN B4 IOSTANDARD LVCMOS33} [get_ports {duan[7]}] set_property -dict {PACKAGE_PIN A4 IOSTANDARD LVCMOS33} [get_ports {duan[6]}] set_property -dict {PACKAGE_PIN A3 IOSTANDARD LVCMOS33} [get_ports {duan[5]}] set_property -dict {PACKAGE_PIN B1 IOSTANDARD LVCMOS33} [get_ports {duan[4]}] set_property -dict {PACKAGE_PIN A1 IOSTANDARD LVCMOS33} [get_ports {duan[3]}] set_property -dict {PACKAGE_PIN B3 IOSTANDARD LVCMOS33} [get_ports {duan[2]}] set_property -dict {PACKAGE_PIN B2 IOSTANDARD LVCMOS33} [get_ports {duan[1]}] set_property -dict {PACKAGE_PIN D5 IOSTANDARD LVCMOS33} [get_ports {duan[0]}]
这段代码也是一个基于Xilinx FPGA的Tcl代码,用于设置多个端口的物理引脚位置和输入输出标准。这段代码使用了Tcl的字典数据结构,将物理引脚位置和输入输出标准打包成一个字典,然后使用Xilinx Vivado工具的命令行接口(command-line interface,CLI)来设置端口的物理引脚位置和输入输出标准。
具体来说,这段代码中包含了多个set_property命令,每个命令对应一个端口。其中,字典中的PACKAGE_PIN表示物理引脚位置,IOSTANDARD表示输入输出标准,get_ports函数用于获取端口对象。
这段代码的作用是告诉Vivado工具,将多个端口连接到FPGA芯片的特定物理引脚上,并将输入输出标准设置为LVCMOS33,以便在使用这些端口时,能够正确地进行信号传输和接收。