为了让编译器了解大概的时钟量级,防止在生成电路时由于不知道时钟的大小而让电路延时和时钟相同量级以致时钟不准确的情况发生,最好再指定时钟时对时钟增加约束。
举例说明
第一句定义了一个寄存器或IO"FPGA_CLK50M"的网络为A15这个引脚
第二句指明了这个IO的时钟网络名
第三句给出这个时钟的约束,周期50M 高电平占50%
NET "FPGA_CLK50M" LOC = A15;
NET "FPGA_CLK50M" TNM_NET = "FPGA_CLK50M";
TIMESPEC TS_FPGA_GCLK0 = PERIOD "FPGA_CLK50M" 50 MHz HIGH 50 %;
第一句定义了一个寄存器或IO"FPGA_CLK50M"的网络为A15这个引脚
第二句指明了这个IO的时钟网络名
第三句给出这个时钟的约束,周期50M 高电平占50%
NET "S_CLK_IN" TNM_NET = "S_CLK_IN";
TIMESPEC TS_S_CLK_IN = PERIOD "S_CLK_IN" 10 MHz HIGH 50 %;
同上,此次没有定义它的引脚位置,但是时钟约束基本使用方法如此,10M 50%高电平
TIMESPEC“TS_identifier”=PERIOD “TNM_reference”period{High|low}[high_or_low_time]
但是好奇怪 TIMESPEC后面的网络在本文件其他位置并没有出现,不太懂这个网络的含义 程序暂时不方便测试,有空在更