quartus ii 时钟约束概念

上传人:第*** 文档编号:32695356 上传时间:2018-02-12 格式:DOC 页数:16 大小:182KB
返回 下载 相关 举报
quartus ii 时钟约束概念_第1页
第1页 / 共16页
quartus ii 时钟约束概念_第2页
第2页 / 共16页
quartus ii 时钟约束概念_第3页
第3页 / 共16页
quartus ii 时钟约束概念_第4页
第4页 / 共16页
quartus ii 时钟约束概念_第5页
第5页 / 共16页
点击查看更多>>
资源描述

《quartus ii 时钟约束概念》由会员分享,可在线阅读,更多相关《quartus ii 时钟约束概念(16页珍藏版)》请在金锄头文库上搜索。

1、Quartus II Handbook, Volume 3 6-28时钟约束(Clock Specification):约束所有时钟(包括你的设计中特有的时钟)对准确的时序分析结果而言是必不可少的。Quartus II TimeQuest Timing Analyzer为各种各样的时钟配置和典型时钟提供许多SDC命令。这个章节将介绍 SDC 可用的应用编程接口,以及描述指定的时钟特性。时钟(Clocks)使用 create_clock 命令为任何 register, port 或 pin 进行时钟特性描述,使其具有独一的时钟特性。例 62 展示了 create_clock 命令:Example

2、 62. create_clock Commandcreate_clock-period -name -waveform -addTable 66. create_clock Command Options选项 描述-period 指定时钟周期-name 指定时钟名称(不一定是约束时钟的节点名称)-waveform 指定时钟上升沿/下降沿-add 可以对一个时钟节点进行多个时钟约束指定你要约束的时钟(目标节点)Example 63 约束时钟频率 100MHz,占空比 50%,0ns 上升沿,5ns 下降沿。Example 63. 100MHz Clock Creationcreate_cloc

3、k period 10 waveform 0 5 clkExample 64 和上例相差 90 度的相位。Example 64. 100MHz Shifted by 90 Degrees Clock Creationcreate_clock period 10 waveform 2.5 7.5 clk_sys使用 create_clock 命令约束时钟缺省的 source Latency 值为 0。Quartus II TimeQuest Timing Analyzer 自动为非虚拟时钟(non-virtual clocks)计算时钟网络延时(clocks network latency) 。

4、Quartus II Handbook, Volume 3 6-29生成时钟(Generated Clocks)Quartus II TimeQuest Timing Analyzer 可以把修改或改变主时钟(或者引入时钟)特性的分频时钟、波纹时钟和电路作为生成时钟。你可以定义这些电路的输出作为生成时钟。这些定义可以让 Quartus II TimeQuest Timing Analyzer 分析这些时钟以及关联的时钟网络延时( network latency) 。 使用 create_generated_clock 命令定义生成时钟。Example 65. create_generated_

5、clock Commandcreate_generated_clock-name -source -edges -edge_shift -divide_by -multiply_by -duty_cycle -add-invert-master_clock -phase -offset Table 67. create_generated_clock Command Options选项 描述-name 生成时钟名-source 指定被设定的时钟节点-edges |-edge_shift -edges 指定和主时钟的上升沿和下降沿有关的新的上升沿和下降沿-divide_by |-multiply

6、_by -divide_by 和 -multiply_by 要素是基于第一个时钟上升沿,通过设定来延长或者缩短指定要素的波形-duty_cycle 指定生成时钟的占空比-add 允许你对同一个管脚添加多个时钟约束-invert-master_clock 用于主管脚上有多个时钟存在时指定一个主时钟-phase 指定生成时钟的相位-offset 指定生成时钟的偏移指定被分配到的目标管脚源延时是由于从主时钟(不一定是主管脚)开始的时钟网络延时所致。你可以使用 set_clock_latency source 命令约束源延时。Figure 617 展示了如何产生一个基于 10ns 时钟的反向生成时钟:

7、Figure 617. Generating an Inverted Clockcreate_clock -period 10 get_ports clkcreate_generated_clock -divide_by 1 -invert -source get_registers clk get_registers gen|clkregFigure 618 展示了如何使用-edges 和-edge_shift 选项以改变生成时钟。Figure 618. Edges and Edge Shifting a Generated Clockcreate_clock -period 10 -wav

8、eform 0 5 get_ports clk# Creates a divide-by-t clockcreate_generated_clock -source get_ports clk -edges 1 3 5 get_registers clkdivA|clkreg# Creates a divide-by-2 clock independent of the master clocks duty cycle (now 50%)create_generated_clock -source get_ports clk -edges 1 1 5 -edge_shift 0 2.5 0 F

9、igure 619 展示了 -multiply_by 选项对生成时钟的影响。Figure 619. Multiplying a Generated Clockcreate_clock -period 10 -waveform 0 5 get_ports clk# Creates a multiply-by-2 clockcreate_generated_clock -source get_ports clk -multiply_by 2 get_registers Quartus II Handbook, Volume 3 6-32虚拟时钟 Virtual Clocks虚拟时钟是一个在设计中没

10、有真正源或者说与设计没有直接关系的一个时钟。例如,如果一个时钟不是设计中的时钟,而仅仅作为一个外部器件的时钟源,并且外部器件和该设计有输入或者输出的管脚,那么就认为这个时钟是虚拟时钟。使用 create_clock 命令创造一个虚拟时钟,对源选项没有指定值。你可以使用 set_input_delay 和 set_output_delay 约束虚拟时钟。Figure 620 展示了 Quartus II TimeQuest Timing Analyzer 若要正确的分析外部寄存器和内部设计逻辑之间的关系,在何处需要设置虚拟时钟的实例。虽然名为 virt_clk 的晶振没有和 Altera 器件直

11、接相互作用,但是担当起了外部寄存器的源时钟的角色,所以时钟 virt_clk 必须申明。Example 66 展示了定义一个周期 10ns,名为 virt_clk,50%占空比,上升沿在 0ns 的虚拟时钟的命令。虚拟时钟用于作为输出延时约束的时钟源。在你产生虚拟时钟之后,你可以执行 register-to-register 的分析报告(在Altera 器件和外部器件的寄存器之间) 。Example 66. 虚拟时钟 Example 1#create base clock for the designcreate_clock -period 5 get_ports system_clk#cre

12、ate the virtual clock for the external registercreate_clock -period 10 -name virt_clk -waveform 0 5 #set the output delay referencing the virtual clockset_output_delay -clock virt_clk -max 1.5 get_ports dataoutExample 67 展示了产生一个周期为 10ns,占空比为 50%,相移 90 度虚拟时钟的命令。Example 67. Virtual Clock Example 2crea

13、te_clock -name virt_clk period 10 waveform 2.5 7.5 Quartus II Handbook, Volume 3 6-33多频时钟 Multi-Frequency Clocks某些情况下在设计中会有很多个时钟源提供时钟信号。增加的时钟也许扮演一个低频率低功耗时钟的角色。在分析这种设计时,create_clock 命令提供了add 选项让你添加多个时钟节点。Example 68 展示了时钟周期为 10ns 的节点 clk,然后对同一个节点添加时钟周期为 15ns 的时钟。Quartus II TimeQuest Timing Analyzer 在执

14、行时序分析时两个时钟都用到了。Example 68. Multi-Frequency Examplecreate_clock period 10 name clock_primary waveform 0 5 get_ports clkcreate_clock period 15 name clock_secondary waveform 0 7.5 get_ports clk -addQuartus II Handbook, Volume 3 6-34自动时钟检测 Automatic Clock Detection想要为你的设计中所有的时钟节点自动添加时钟约束,那么就使用derive_clo

15、cks 命令。这个命令从管脚或者寄存器生成时钟以确保设计中的每个寄存器都有时钟。Example 69 展示了 derive_clocks 命令选项。Example 69. derive_clocks Commandderive_clocks-period -waveform Table 68 describes the options for the derive_clocks command.选项 描述-period 指定时钟周期,你也可以指定时钟频率如下:-period MHz-waveform 指定沿变化时刻derive_clocks 命令不能为 PLLs 输出时钟进行约束。derive_clocks 命令相当于使用 create_clock 命令为每个寄存器或者管脚产生时钟。Quartus II Handbook, Volume 3 6-35锁相环时钟 Derive PLL ClocksPLLs(锁相环)在 Altera 器件中被用于时钟管理和综合。你可以定制基于你设计需要的 PLL 输出时钟约束。因为所有的时钟节点应该有一个共同的时钟基准,故所有的 PLL 输出应该有一个关联时钟。你可以使用 create_generated_clock 命令手动添加一个作为 PLL 输出的基准时钟,或者你也可以使用 derive_pll_clocks 命令自动搜寻时序网表并通

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 职业教育

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号