上面的定义了基于SysClk的全局OFFSET IN的属性。时序可看图3.
图4 时序图(OFFSET OUT)
例子: NET "ClkIn" TNM_NET = "ClkIn";
OFFSET = OUT 5 ns AFTER "ClkIn"; 上面设置主要是定了了时钟跟数据的时间关系,时序图4。可以看到这时一种全局定义,Data1 和Data2输出时间都受到 OFFSET = OUT 5 ns AFTER "ClkIn" 的约束。如果需要单独定义输出端口的OFFSET OUT的,需要制定相应的NET,可参考表1中的第57行。 第18至49行:pin_plx_lad_io<*> 被归到了名称为LAD的TMN(Timing name),这个可以说是GROUP的约束。这样往往给约束带来方便,不用一个一个的NET 或者INST进行约束。 第50至51行:对TIMEGRP 是LAD进行OFFSET IN和OUT的定义。 在时序约束中,在这里还未提及FROM TO的约束。FROM TO的约束主要是用来两个同步模块之间的时间关系的约束。在这里不做深入的讨论。 至此,基本上把一般的UCF文件的作用进行了注释。 注:一般的时间的约束需要通过静态的时序分析,然后再设定相应PERIOD,OFFSET IN 以及OFFEET OUT等的时间参数。 当然在例子中还没有涉及到区域的约束。下面会试图说一下。 ISE进行综合后会将设计代码生成相应的逻辑网表,然后经过translate过程,转换到Xilinx特定的底层结构和硬件原语,MAP过程就是将映射到具体型号的器件上,最后就是就是布线和布局的操作了。 区域的约束相当于将布局过程中指定特定型号的器件的位置,这完全可以通过FloorPlanner的GUI界面进行设置,用图形界面设置完后,配置信息会放到UCF中,这里只介绍UCF的使用。 |