Vivado - BD(差分时钟、简单分频、RESET、KEY)-3. 编译与调试

时间:2024-10-04 08:41:02

3.1 XDC

set_property PACKAGE_PIN K22        [get_ports {CLK_IN_D_0_clk_p[0]}]
set_property IOSTANDARD DIFF_SSTL12 [get_ports {CLK_IN_D_0_clk_p[0]}]

set_property PACKAGE_PIN H13     [get_ports ext_reset_in_0]
set_property IOSTANDARD LVCMOS33 [get_ports ext_reset_in_0]

set_property PACKAGE_PIN J13     [get_ports i_button_0]
set_property IOSTANDARD LVCMOS33 [get_ports i_button_0]

set_property PACKAGE_PIN H12     [get_ports led_0]
set_property IOSTANDARD LVCMOS33 [get_ports led_0]

set_property C_CLK_INPUT_FREQ_HZ 300000000 [get_debug_cores dbg_hub]
set_property C_ENABLE_CLK_DIVIDER false [get_debug_cores dbg_hub]
set_property C_USER_SCAN_CHAIN 1 [get_debug_cores dbg_hub]
connect_debug_port dbg_hub/clk [get_nets clk]

重点解释下与 ILA 相关的约束,它们用于配置调试核心(debug core)和连接调试端口。

1)set_property C_CLK_INPUT_FREQ_HZ 300000000 [get_debug_cores dbg_hub]

  • 这条命令设置调试核心的输入时钟频率为300 MHz(300,000,000 Hz)。这意味着调试核心将以300 MHz的频率运行。

2)set_property C_ENABLE_CLK_DIVIDER false [get_debug_cores dbg_hub]

  • 这条命令禁用时钟分频器。也就是说,调试核心将直接使用输入时钟频率,而不会进行分频。

3)set_property C_USER_SCAN_CHAIN 1 [get_debug_cores dbg_hub]

  • 这条命令设置用户扫描链的数量为1。扫描链用于调试和测试目的,允许多个调试核心串联在一起。

4)connect_debug_port dbg_hub/clk [get_nets clk]:

  • 这条命令将调试核心的时钟端口(dbg_hub/clk)连接到设计中的时钟网络(clk)。这确保调试核心能够接收到正确的时钟信号。

3.2 Debug

抓取按键下降沿:

抓取按键上升沿: