核心频率的约束重点.doc

添加约束的原则为先添加全局约束,再补充局部约束,而且局部约束比全局约束宽松,其目的是在可能的地方尽量放松约束,提高布线成功概率,减少ISE布局布线时间。 典型的全局约束分成周期约束和偏移约束,本节主要讲述的就是这两种约束。 周期约束主要是对某一个时钟域的时钟进行约束,有两种方式: 1、NET trn_clk_s PERIOD= 8 ns; 2、NET trn_clk_s TNM_NET =USERCLK; TIMESPEC TS_USERCLK =PERIOD USERCLK 125 MHz HIGH 50%; 第二种方法可以用来衍生约束派生时钟。 NET clk_1 TNM_NET =clk_syn; TIMESPEC TS_clk_syn = PERIOD clk_syn 5ns; NET clk_2 TNM_NET =clk_syn_n; TIMESPEC TS_clk_syn_n = PERIOD clk_syn_n clk_syn PHASE + 2.5ns; NET clk_2 TNM_NET =clk_syn_m; TIMESPEC TS_clk_syn_m = PERIOD clk_syn_m clk_syn /2; 偏移约束也是一种基本时序约束,规定了外部时钟和数据输入和输出引脚之间的相对时序关系,只能用于端口信号,不能用于内部信号。当考虑到PCB的布局布线对入口时序有影响的时候,需要采用此种约束。主要分成OFFSET_IN_AFTER、OFFSET_IN_BEFORE、OFFSET_OUT_AFTER和OFFSET_OUT_BEFORE。 1、NET DATA_IN OFFSET = IN 10.0 BEFORE CLK_50MHz; 表明在时钟信号上升沿到达前的10ns内,数据必须到达输入管脚,实际上约束的是保持时间,说明Thu=Tp-Tc1=Tp-10; 2、NET DATA_IN OFFSET = IN 10.0 AFTER CLK_50MHz; 表明在时钟信号上升沿到达后的10ns内,数据必须到达输入管脚,实际上约束的是建立时间,说明Tsu=Tp-Tc2=Tp-10; 3、NET DATA_OUT OFFSET =IN 10.0 BEFORE CLK_50MHz; 表明在时钟信号上升沿到达前的10ns内,输出信号必须离开数据管脚,基本上是下一级逻辑建立时间的上限。 4、NET DATA_OUT OFFSET =OUT 10.0 AFTER CLK_50MHz; 表明在时钟信号上升沿到达后的10ns内,输出信号必须保持在输出管脚上,是芯片内部输出延时的上限。 资料: 1、Xilinx FPGA设计约束的分类 摘要:本文主要通过一个实例具体介绍ISE中通过编辑UCF文件来对FPGA设计进行约束,主要涉及到的约束包括时钟约束、群组约束、逻辑管脚约束以及物理属性约束。 Xilinx定义了如下几种约束类型: ? “Attributes and Constraints” ? “CPLD Fitter” ? “Grouping Constraints” ? “Logical Constraints” ? “Physical Constraints” ? “Mapping Directives” ? “Placement Constraints” ? “Routing Directives” ? “Synthesis Constraints” ? “Timing Constraints” ? “Configuration Constraints” 通过编译UCF(user constraints file)文件可以完成上述的功能。 还是用实例来讲UCF的语法是如何的。 图1 RTL Schematic 图1 是顶层文件RTL图,左侧一列输入,右侧为输出,这些端口需要分配相应的FPGA管脚。 表1. UCF example 对上面的UCF文件进行一些注释: 该UCF文件主要是完成了管脚的约束、时钟的约束,以及组的约束。 第一、二行:主要定义了时钟以及对应的物理管脚。 第一行,端口pin_sysclk_i 分配到FPGA管脚AD12,并放到了 pin_sysclk_i group中。那如何得知是AD12的管脚呢,请看图2,FPGA管脚AD12 是一个66MHz的外部时钟。FPGA的开发板肯定有电路原理图供你分配外部管脚。 图2,电路原理图 第二行:时钟说明:周期15ns,占空比50%。关键词TIMESPEC(Timing Specifications),即时钟说明。一般的语法是: TIMESPEC TSidentifier=PER

文档评论(0)

1亿VIP精品文档

相关文档