vivado set_property
时间: 2023-09-11 10:09:49 浏览: 165
"set_property" 是 Vivado 工具中的一个命令,用于设置设计中的属性。该命令可以用于设置设计中的各种属性,如时钟约束、约束文件路径、设计实现选项等等。
例如,可以使用以下命令设置时钟约束:
```
set_property -name "clock_period" -value 10 [get_ports clk]
```
这将把时钟约束设置为 10ns,其中 "clk" 是设计中时钟端口的名称。注意,这个命令需要在 Vivado 的 Tcl 控制台中执行。
相关问题
请解释以下几行代码的意思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 IOB
set_property IOB是一种在使用Xilinx FPGA进行设计时设置输入输出缓冲区属性的方法。它可以用来将输入或输出端口放入输入输出缓冲区(IOB)中。
引用和中的示例代码展示了如何使用set_property IOB命令来设置输入输出缓冲区属性。例如,set_property IOB TRUE [all_inputs可以将所有输入端口放入输入输出缓冲区,而set_property IOB FALSE [all_outputs可以将所有输出端口从输入输出缓冲区中移除。
引用中给出了将寄存器放入输入输出缓冲区的两种方法。一种是在Verilog代码中使用(IOB = "TRUE")来声明一个带有IOB属性的寄存器,例如output reg [3:0 LED。另一种方法是在XDC文件中使用set_property IOB TRUE [get_ports {REMOTE_FIFO_din来将特定端口放入输入输出缓冲区。
所以,set_property IOB是一种用于设置输入输出缓冲区属性的命令,可以通过Verilog代码或XDC文件来实现将端口放入输入输出缓冲区的目的。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* [vivado xilinx IOB = true的使用](https://blog.csdn.net/q774318039a/article/details/88778669)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"]
- *3* [Xilinx FPGA 将寄存器放入IOB中](https://blog.csdn.net/alangaixiaoxiao/article/details/106140715)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]