我想在我的项目中使用 BASYS 3 的时钟。当我搜索项目的约束时,我发现了以下代码:
set_property PACKAGE_PIN W5 [get_ports clk]
set_property IOSTANDARD LVCMOS33 [get_ports clk]
create_clock -add -name sys_clk_pin -period 10.00 -waveform {0 5} [get_ports clk]
Run Code Online (Sandbox Code Playgroud)
有人可以向我解释一下吗?我知道clk是时钟的输入,但在最后一行我应该做什么?我应该改变什么吗?还有 10:00 是什么时期waveform{0 5}?请你帮助我好吗?
这些行是 Xilinx 设计约束 (XDC),是 Synopsys 设计约束 (SDC) 的一种风格。
首先,你要区分物理约束(第 1-2 行)和时间约束(第 3 行)。这些是设计流程中不同步骤所需要的。
set_property PACKAGE_PIN W5 [get_ports clk]
Run Code Online (Sandbox Code Playgroud)
这条线将您的顶级端口连接clk到 pin W5。
set_property IOSTANDARD LVCMOS33 [get_ports clk]
Run Code Online (Sandbox Code Playgroud)
该行设置了引脚上升和下降时间时序分析所需的 I/O 标准,从而产生建立/保持时间窗口
create_clock -add -name sys_clk_pin -period 10.00 -waveform {0 5} [get_ports clk]
Run Code Online (Sandbox Code Playgroud)
这定义了 100 MHz 的时钟信号,线 的占空比为 50% clk。如果需要在另一个语句中引用该时钟,可以使用名称sys_clk_pin。