原创 Quartus II TimeQuest Timing Analyzer Cookbook翻译P5-P8

2015-3-19 21:31 891 15 15 分类: FPGA/CPLD
P5

这个手册由 design scenarios(设计脚本),约束指导,建议组成。为了用好这个手册,你应当对TimeQuest Timing Analyzer(时序约束分析)以及基本的集成电路设计约束(SDC)熟悉

 
For information about the TimeQuest analyzer and SDC, refer to
www.altera.com/timequest
 
Clocks and Generated Clocks (时钟和衍生时钟)
 
这章节展示了多种时钟结构以及约束它们的方法
■ “Basic Non-50/50 Duty Cycle Clock” 方波时钟
■ “Offset Clocks” on page 1–2               有偏移的时钟
■ “Basic Clock Divider Using -divide_by” on page 1–2 分频时钟
■ “Toggle Register Generated Clock” on page 1–4      触发寄存器衍生时钟
■ “Multi-Frequency Analysis” on page 1–7             多频分析

 

Basic Non-50/50 Duty Cycle Clock
这部分介绍约束命令 :create_clock(创建时钟)


时钟的占空比在不同的设计中是迥异的。默认条件下,在Timequest Analyser中创建的时钟都是占空比50%。当然,你能使用 -waveform 选项来改变占空比,Figure 1–1展现了一个简单的寄存器到寄存器路径,该路径由一个60%占空比的时钟控制。
20150318212849531.jpg
P6

Example 1–1 展示个对占空比6 时钟的约束
Example 1–1. Non-50/50 Duty Cycle Clock Constraints

#60/40 duty cycle clock
create_clock \
-period 10.000 \
-waveform {0.000 6.000} \
-name clk6040 [get_ports {clk}]


Offset Clocks(时钟偏移)
这部分介绍的约束命令是 create_clock
当在Timequest Analyser中对clock进行约束的时候,第一个上升沿(fising)或者下降沿(falling edge)
发生在绝对时间0。你能为这个时钟创建一个偏移(offset)通过 -waveform 选项. Figure 1–2展现了一个由时钟clkB控制的寄存器-寄存器路径,该时钟向后偏移了2.5ns
20150318213036855.jpg
Example 1–2是一个设置offset命令的示例
Example 1–2. Offset Clock Constraints

# -waveform defaults to 50/50 duty cycle
create_clock -period 10.000 \
     -name clkA \
     [get_ports {clkA}]
#create a clock with a 2.5 ns offset
create_clock -period 10.000 \
     -waveform {2.500 7.500} \
     -name clkB [get_ports {clkB}]


Basic Clock Divider Using -divide_by

这部分描述的命令是 create_clock 和 create_generated_clock
你可以通过一个源时钟衍生出一个时钟(衍生时钟derived clock),当这个时钟比源时钟慢的时候(You can derive clocks in a design from a clock source where the derived clock is slower than the source clock)。当约束一个比源时钟慢的衍生时钟,使用-divide_by 选项Figure 1–3显示了一个2分频衍生时钟(divided-by-two derived clock)
P7

20150318213103154.jpg
 
Example 1–3 shows the constraints for a divide-by with -waveform clock
是一个分频时钟约束的例子,通过-waveform 命令
Example 1–3. Divide-by with -waveform Clock Constraints

create_clock -period 10.000 -name clk [get_ports{clk}]
#使用 -divide_by 命令
create_generated_clock\
     -divide_by 2\
     -source [get_ports{clk}]\
     -name clkdiv\
     [get_pins{DIV|q}]
#选择性的使用引脚来约束分频,在不知道主时钟的情况下
create_generated_clock\
     -divide_by 2\
     -source [get_pins{DIV|clk}]\
     -name clkdiv\
     [get_pins{DIV|q}]
#第二个命令工作,当寄存器DIV的时钟引脚连接到由时钟clk驱动的网络

你也可以使用 -edges 选项来创建分频时钟。Figure 1–4展示了用-edges 选项创建二分频时钟。
P8

20150318213233156.jpg
Example 1–4 shows constraints for the divide-by with -waveform clock.

Example 1–4. Divide-by with -waveform Clock Constraints

# Edge numbers are based on the master clock
create_generated_clock \
     -edges {1 3 5} \
     -source [get_pins {DIV|clk}] \
     -name clkdiv \
     [get_pins {DIV|q}]


PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
我要评论
0
15
关闭 站长推荐上一条 /3 下一条