原创 Quartus II TimeQuest Timing Analyzer Cookbook翻译P9-P10

2015-3-19 21:38 807 10 10 分类: FPGA/CPLD
Toggle Register Generated Clock
 
使用toggle register 来创建一个二分频时钟。如果输入给toggle register的信号电平为1并由周期为10ns的时钟来驱动,那么该寄存器的输出则是一个周期20ns的时钟信号。
 
对toggle register 的约束和前面的例子十分相似。
 
Figure 1–5展示了一个toggle register 生成二分频时钟信号
20150319213453500.jpg
 
P9

Example 1–5示例了对toggle register的约束
Example 1–5. Toggle Register Constraints

#Create a base clock 创建基准时钟
create_clock \
     -period 10.000 \
     -name clk \
     [get_ports { clk}]
   
#Create the generated clock on the output of the toggle register
#toggle register 的输出端创建一个 generated时钟
create_generated_clock \
     -name tff_clk \
     -source [ get_ports{clk}] \
     -divide_by 2 \
     [get_pins { tff| q}]

 
PLL Clocks 锁相环时钟
该章表述的约束为 derive_pll_clocks,create_clock,和create_generated_clock
 
锁相环(PLL)用来在Altera FPGA中perform clock synthesis。所有的输出时钟必须被约束,为了进行合理的分析。有三种方法能够constrain 一个PLL。
■ Create base clocks and PLL output clocks automatically 自动创建基准时钟和PLL输出时钟
■ Create base clocks manually and PLL output clocks automatically 手动创建基准时钟,自动创建PLL输出时钟
■ Create base clocks manually and PLL output clocks manually 手动创建基准时钟和PLL输出时钟
 
这部分展示了每种方法的优点。
 
Altera中的PLL电路用ALTPLL模块集成
 
Figure 1–6 shows an example of the ALTPLL megafunction.

20150319213540468.jpg
 
 
Method 1 – Create Base Clocks and PLL Output Clocks Automatically 自动创建基准时钟和PLL输出时钟
 
这种方式让你能够自动约束PLL的输入和输出时钟。所有在ALTPLL中规定的参数都被用来约束PLL的输入和输出时钟。对ALTPLL模块的修正也是自动更新的。你不需要去track PLL参数的变化或者是指定 创建PLL输入、输出时钟 具体的参数。
P10

为了自动约束所有的输入和输出,使用 derive_pll_clocks  命令以及 -create_base_clocks选项.  Timequest Analyser决定了正确的输入 基于MegaWizard Plug-In Manager 的PLL实例。Example 1–6展示了这个命令:
Example 1–6. Constraining PLL Base Clocks Automatically
derive_pll_clocks -create_base_clocks

Method 2 – Create Base Clocks Manually and PLL Output Clocks Automatically 手动创建基准时钟,自动创建PLL输出时钟
使用这种方法,你能够手动约束PLL的输入时钟,并且允许Timequest Analyser自动的去约束输出PLL时钟。除此之外,你还能够指定(specify)一个与ALTPLL模块不同的输入时钟频率。PLL输出时钟是自动创建的,使用ALTPLL模块中的参数。你能尝试不同的输入频率,但却保持相同的PLL输出参数。(Note:可能想表达的意思是ALTPLL可以使用不同的输入频率产生相同的输出PLL时钟?
 
1 确保任何输入时钟频率与当前配置的PLL匹配。(Note:神马意思?
(Ensure that any input clock frequency specified is compatible with the currently configured PLL)
 
你能够使用这个方法通过 derive_pll_clocks 命令,来手动创建PLL的输入时钟。Example 1–7展示了这一命令:
 
Example 1–7. Constraining PLL Base Clocks Manually
create_clock -period 10.000 -name clk [get_ports {clk}]
derive_pll_clocks


Method 3 – Create Base Clocks and PLL Output Clocks Manually 手动创建基准时钟和PLL输出时钟
 
通过该方法,你能够同时手动约束输入时钟和输出PLL时钟。所有的PLL参数 被指定,同时参数值也可以与ALTPLL模块中的不同。除此之外,你还能实验各种PLL输入和输出频率 以及各种参数。
 
你能够使用这种方法通过 create_clock 和 create_generate_clock 命令的结合。Example 1–8展示了这种命令。
 
Example 1–8. Constraining PLL Output and Base Clocks Manually
create_clock -period 10.000 -name clk [get_ports { clk}]
 
create_generated_clock \
     - name PLL_C0 \
     - source [get_pins {PLL | altpll_component|pll|inclk [0]}] \
     [ get_pins {PLL|altpll_component | pll| clk[0 ]}]
 
create_generated_clock \
     - name PLL_C1 \
     - multiply_by 2 \
     - source [get_pins {PLL | altpll_component|pll|inclk [0]}] \
     [ get_pins {PLL|altpll_component | pll| clk[1 ]}]

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
10
关闭 站长推荐上一条 /3 下一条