0

我最近给自己买了一块 Zybo Zync-7000 开发板,这样我就可以在家里做一些功课和摆弄它,但是当我第一次从我的 UCF 中挑选时钟时,我遇到了这个问题。

## Clock signal
#NET "clk"        LOC=L16 | IOSTANDARD=LVCMOS33; #IO_L11P_T1_SRCC_35    
#NET "clk" TNM_NET = sys_clk_pin;
#TIMESPEC TS_sys_clk_pin = PERIOD sys_clk_pin 125 MHz HIGH 50%; 

我知道我可能只需要走第一行就可以让我的 clk 信号正常工作,但剩下的又是为了什么?还是我弄错了,我需要全部吗?

我们在学校得到了不同的硬件,在那里它更简单一些。

提前致谢。

4

1 回答 1

1

我假设您使用的是 ISE 而不是新的 Vivado,因为只有 ISE 使用 UCF 约束文件。

## Clock signal

此行是对以下行相关内容的注释。

#NET "clk"        LOC=L16 | IOSTANDARD=LVCMOS33; #IO_L11P_T1_SRCC_35    

此行指定来自片外的时钟输入(VHDL 顶层中名为“clk”的输入网络)连接到 FPGA 上的哪个物理引脚(LOC=L16)。它还指定该信号使用低压 CMOS 3.3v 信号。

#NET "clk" TNM_NET = sys_clk_pin;

这只是为网络分配了一个时序名称。对于时序特定的约束,将使用时序名称而不是(VHDL 内部)网络名称。

#TIMESPEC TS_sys_clk_pin = PERIOD sys_clk_pin 125 MHz HIGH 50%; 

这指定“sys_clk_pin”的时序(解析为 VHDL 网络“clk”)应具有 125 MHz 的频率和 50% 的占空比。该工具需要知道这一点,以确定如何在不违反触发器设置或保持时间的情况下路由信号。名称“TS_sys_clk_pin”只是这个特定约束的标识符。

当您快要填满一个零件或者您想以更高的时钟速度运行它时,正确约束设计非常重要。您可以在赛灵思 ISE 约束指南中找到大量信息:http ://www.xilinx.com/itp/xilinx10/books/docs/cgd/cgd.pdf

如果你不给你的设计时序约束,这些工具通常会抛出一个关于缺乏约束的警告,它会告诉你最后可以多快运行它而不会导致错误。时钟的时序约束是最重要的。您通常只需要同步输入和跨时钟边界的其他时序约束。

请注意,实际上,所有 4 行都已被注释掉(以 # 开头)。如果要使用 3 个功能行,则需要删除注释指定。

于 2014-05-30T14:27:37.660 回答