.. TimingConstraints.rst --- .. .. Description: .. Author: Hongyi Wu(吴鸿毅) .. Email: wuhongyi@qq.com .. Created: 六 5月 23 22:56:56 2020 (+0800) .. Last-Updated: 日 5月 24 13:17:50 2020 (+0800) .. By: Hongyi Wu(吴鸿毅) .. Update #: 3 .. URL: http://wuhongyi.cn ################################################## 时序约束 ################################################## .. image:: /_static/img/TimingConstraints.jpeg - 按前面的顺序去索引,找到对应情况,按要求约束 - 开始时至配置时钟,不配置 input delays、output delays和时序例外 - 待内容时钟完全通过后,再配置input delays、output delays - 时序例外是最后差不多要完工了再配置 ============================================================ create clocks ============================================================ - 建立/保持时间是D触发器的一个固有属性 - 在时钟跳变沿到来前、后的一段时间内输入数据要稳定不变,“前”称之为建立时间,“后”称之为保持时间 - D触发器的数据输入端必须在建立时间前到达,而且要保持到持续时间之后 - Tmin = Tco+Tdata+Tus 寄存器传输延时、组合逻辑延时、建立时间 .. list-table:: * - 建立/保持时间 - 建立时间是电路延时的一部分 * - 电路的延时 - 寄存器间最长的延时 * - 关键路径 - 决定最高的时钟频率 * - 时钟频率 - 提高一个电路工作频率的方法 * - 流水线设计 - 时钟定义的先后顺序 - 时钟的定义也遵从 XDC/Tcl 的一般优先级 - 同一个点上,用户定义的时钟会覆盖工具自动推导的时钟 - 后定义的时钟会覆盖先定义的时钟 - 若要二者并存,必须使用 –add 选项 ---------------------------------------------------------------------- 输入时钟 ---------------------------------------------------------------------- ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 输入管脚CLK ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: .. code:: tcl create_clock -name SysClk -period 10 -waveform {0 5} [get_ports Clk] .. code:: tcl create_clock -name SysClk -period 10 -waveform {0 5} [get_ports Clk] ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 差分时钟 ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 使用create_clock来约束P端即可(XILINX) .. code:: tcl create_clock -name clk_200 -period 5 [get_ports clk_200_p] ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: GT或恢复的时钟 ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: .. code:: tcl create_clock -name txclk -period 6.667 [get_pins GT/TXOUTCLK] 约束 GT IP 核的输出 TXCLK ---------------------------------------------------------------------- PLL等衍生时钟 ---------------------------------------------------------------------- - 工具自动推导,一般无需约束 - 但建议用下面约束,可以确定时钟名,方便用其来生成其它约束 .. code:: tcl create_clock -name clk_200 -period 5 [get_ports clk_200_p] Create_generated_clock -name my_clk_name [get_pins mmcm0/CLKOUT] -source [get_pins mmcm0/CLKIN] -master_clock clk_200 ALTERA如想让工具自动推导,只需要下面约束 .. code:: tcl create_clock -name clk_200 -period 5 [get_ports clk_200_p] derive_pll_clocks ---------------------------------------------------------------------- 自己分频时钟 ---------------------------------------------------------------------- .. code:: tcl create_clock -name CLK1 -period 5 [get_ports CKP1] create_generated_clock -name CLK2 [get_pins REGA/Q] -source [get_ports CKP1] -divide_by 2 ============================================================ input delays ============================================================ zheli ============================================================ output delays ============================================================ zheli ============================================================ set timing exceptions ============================================================ zheli .. .. TimingConstraints.rst ends here