我的开发板(Papilio One 500k)有一个 32 MHz 的板载振荡器,连接到P89
.
我在下载的默认约束 (UCF) 文件中看到,它有一行:
NET CLK LOC="P89" | IOSTANDARD=LVTTL | PERIOD = 31.25 ns;
现在,为什么这里将周期定义为 31.25 ns。
如果板载振荡器是设定频率,为什么我可以在这里设置周期?
我的想法是,这个声明是为了通知编译器板载振荡器的周期,而不是指定周期是什么。
您还可以在 UCF 文件中设置频率。这是一个例子:
NET "SystemClock_200MHz_p" LOC = "H9"; ## U64.4
NET "SystemClock_200MHz_n" LOC = "G9"; ## U64.5
NET "SystemClock_200MHz_?" IOSTANDARD = LVDS;
NET "SystemClock_200MHz_p" TNM_NET = "NET_SystemClock_200MHz";
TIMESPEC "TS_SystemClock" = PERIOD "NET_SystemClock_200MHz" 200 MHz HIGH 50 %;
代码中的周期设置为 31.25 ns,因为这是 32 MHz 时钟信号的周期。
周期:= 1/频率
是的,约束对电路板或振荡器没有物理影响。静态时序分析器 (STA) 需要它来检查您的设计是否满足所有时序要求(例如建立和保持时间)。