1、QuartusII 中 Tsu/Tco 的约束方法2012年03月21日 11:08 来源:本站整理 作者:邓旭 我要评论(0)Tsu/Tco 在 Quartus II 的报告中有两种不同含义.1. 片内的 Tsu/Tco 是指前级触发器的 Tco 和后级触发器的 Tsu, 一般来说都是几百ps 级别的. 可以通过“List Paths”命令查看。这里的 Tsu/Tco 主要由器件工艺决定, 工作时在受到温度,电压的影响略有变化.(如下图所示)2. 管脚上的 Tsu/Tco 它是保证系统 Famx 重要的 Timing 元素(如下图示). 比如: 两个芯片之间工作在100MHZ, 因为100M
2、 的周期为10ns, (现忽略 PCB 走线的延迟), 如果某信号对 FPGA 来说是输入, 那么前级芯片的 Tco 加上 FPGA 的 Tsu 就不能够超过10ns. 如果某信号对于 FPGA 来说是输出,那么 FPGA 的 Tco 加上后级芯片的 Tsu 也不能够超过10ns. 只有这样,才能够保证片间通信正常。因此对 FPGA 的管脚进行适当的 Tco/Tsu 的时序约束,是至关重要的 Timing 设计技巧.管脚上的 Tsu/Tco 分为以下三个部分.1) IOE 走线的延迟 . 这个延迟在管脚的 Tsu/Tco 延迟中占有相当的比例,Altera 的器件为了降低 Tsu/Tco 在
3、IOE 上的延迟, 专门在 IOE 中设置了两种类型的触发器, 即 : Fast Input register(FPGA 的管脚为输入时,优化 Tsu), Fast Output Register(FPGA 的管脚为输出时,用于优化 Tco)2) 内部逻辑走线的延迟。在 Altera 的 FPGA 中, 由若干个基本资源 LE 构成一个 LAB,比如: Stratix Gx 是10 个 LE 组成一个 LAB. LAB 横向和纵向排列形成阵列. 在 FPGA 中,以 LAB 为基本单元, 根据走线长度的不同,分为 C4(表示横跨4 个 LAB 的走线资源),C8,C16,R4,R8,16,R2
4、4 等不同的走线资源,不同的器件支持不同的走线资源。3) 触发器的 Tsu/Tco 的需求,这里的 Tsu/Tco, 这是由器件工艺决定的,最小的Tsu/Tco 的要求. 在实际的工作环境中,受温度,电压的变化有微小的变化.前面提到:对 FPGA 的管脚进行适当的 Tco/Tsu 的时序约束,是至关重要的 Timing 设计技巧.关键是在出了问题的时候,怎么去解决?Quartus II 有四处可以对 Tsu/Tco 进行约束.1. 全局时序约束. 在 Quartus II 中执行 Assignments.Timing Setting 弹出如下界面.设计者可以根据系统 Fmax 的要求去约束 T
5、su/Tco.2. 执行 Assignments.Assignment Editor 命令,得到如下界面.设计者可以根据本设计的要求,对输入/输出管脚设置 Tsu/Tco 的约束;也可以约束内部触发器的 Tsu/Tco 的值。(如下图所示)3.执行 Assignments. Assignment Editor 命令,选择”All”或者”Logic Options” ,对管脚进行 Tsu/Tco 的约束.在”To” 选择对应的管脚 ,在 Assignment Name 中选择”Fast Input Register” 来约束 Tsu, 选择”Fast Output Register” 来约束 T
6、co. 这也是逻辑工程师通常说的: 为减少 Tsu/Tco 的值,放到 IOE 中.4. 修改布线后的底层电路. 执行 Processing.Compilation Report 命令. 在Resource Section.Input Pins/Output Pins 中选中对应的输入输出管脚(如下图所示).执行 Locate.Locate to Chip Editor 命令.得到如下界面.选中的管脚在 Chip Editor 中已经被 HighLight( 如上图所示). 双击 Highlight 的的管脚,得到下图界面.这里的参数就是该管脚在布线后所有的参数,并不是每个参数都可以修改.比如: 对LVDS 电平标准,Current Strength 就不能够修改等.对于 LVTTL 电平标准,Current Strength 就有2,4,8,16,24mA 可以修改.设计者可以根据设计的需求来 Enable 或者 Disable Fast Input Register/Fast Output Register 属性,可以修改输入管脚到逻辑阵列的延迟和输出管脚到逻辑阵列的延迟等.修改完成后,这时不能够再编程工程,只需要执行 Processing.Start.Start Assembler 更新编程 sof 文件和 pof 文件即可。