Toggle Register Generated Clock
使用toggle register 来创建一个二分频时钟。如果输入给toggle register的信号电平为1并由周期为10ns的时钟来驱动,那么该寄存器的输出则是一个周期20ns的时钟信号。
对toggle register 的约束和前面的例子十分相似。
Figure 1–5展示了一个toggle register 生成二分频时钟信号
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.
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 ]}]
文章评论(0条评论)
登录后参与讨论