Quartus_II_时钟约束概念

合集下载

QuartusII时序约束

QuartusII时序约束

03
动态时序分析的优点是准确度 高,适用于精确分析和优化电 路性能。
时序分析的步骤
01
02
03
04
建立时序模型
根据电路的逻辑功能和结 构,建立相应的时序模型 ,包括建立时间、保持时 间和时钟周期等参数。
时序约束设置
根据时序模型,设置相应 的时序约束,包括时钟源 、时钟网络、触发边沿、 建立时间和保持时间等。
时钟策略优化
选择适当的时钟策略,如多源 时钟、时钟分频等,以满足时 序要求。
参数调整
调整编译器的参数设置,如设 置更严格的时序约束或调整时
序例外等。
优化工具
Quartus II 软件
Altera(现Intel)提供的集成开发环境(IDE),包含多种时序约束 和优化的工具和功能。
逻辑合成工具
如Yosys、ABC等开源逻辑合成工具,可以用于优化设计的逻辑结构 。
时序约束的分类
建立时间(Setup Time):指信号在时钟边沿前应该 稳定的时间。
时钟周期(Clock Period):指时钟信号的周期性时间 间隔。
保持时间(Hold Time):指信号在时钟边沿后应该保 持稳定的时间。
偏斜(Skew):指时钟信号或数据信号在不同路径上 的延迟差异。
02
CATALOGUE
时序约束是数字逻辑设计和 FPGA编程中的重要概念,它确 保了电路在时序上的正确性。
时序约束的重要性
1
时序约束是确保数字电路正常工作的关键因素。
2
在FPGA设计中,如果不进行正确的时序约束, 可能会导致时序违规、数据传输错误等问题。
3
通过合理的时序约束,可以优化设计,提高电路 的工作效率,降低功耗和减小面积。

第二讲 QuartusII简介

第二讲 QuartusII简介

3、DesignUnits

当前工程中的使用的所有设计单元。这些 单元既包含QuartusⅡ软件中自带的设计模 块(如乘法器、移位寄存器等),也包含 用户自己设计的单元模块。
信息区

信息区用于显示系统在编译和仿真过程中 所产生的指示信息。例如,语法信息、成 功信息等。信息区提供七大类操作标记信 息:ExtraInfo、Info、Warning、 CriticalWarning以及Error等。
图4-7 选择目标器件EP2C5T144
4.4 JTAG间接模式编程配置器件
图4-8 选定SOF文件后,选择文件压缩
4.4 JTAG间接模式编程配置器件
பைடு நூலகம்
图4-9 用JTAG模式对配置器件EPCS1进行间接编程
4.5 USB Blaster编程配置器件使用方法
图4-10安装USB驱动程序
4.5 USB Blaster编程配置器件使用方法
图3-12 设置仿真时间长度
3.5 时序仿真
图3-13 vwf激励波形文件存盘
3.5 时序仿真
图3-14 向波形编辑器拖入信号节点
3.5 时序仿真
图3-15 设置时钟CLK的周期
3.5 时序仿真
图3-16 选择总线数据格式
3.5 时序仿真
图3-17设置好的激励波形图
3.5 时序仿真
图3-18 选择仿真控制
Quartus开发系统


全集成设计工具
多种输入方法 逻辑综合 布局布线 仿真 时序和功耗分析



支持Windows、Linux 节点锁定和网络许可选项

QuartusⅡ软件支持的器件有:StratixⅡ、 StratixGX、Stratix、Mercury、MAX3000A、 MAX7000B、MAX7000S、MAX7000AE、 MAXⅡ、FLEX6000、FLEX10K、 LEX10KA、FLEX10KE、Cyclone、 CycloneⅡ、PEXⅡ、APEX20KC、 APEX20KE和ACEX1K系列。

Quartus II 中常见Warning 及解决方法(转载)

Quartus II 中常见Warning 及解决方法(转载)

14.Can't achieve minimum setup and hold requirement <text> along <number> path(s). See Report window for details.
原因:时序分析发现一定数量的路径违背了最小的建立和保持时间,与时钟歪斜有关,一般是由于多时钟引起的
21.Warning:Found xx output pins without output pin load capacitance assignment(网友:gucheng82提供)
原因:没有给输出管教指定负载电容
措施:该功能用于估算TCO和功耗,可以不理会,也可以在Assignment Editor中为相应的输出管脚指定负载电容,以消除警告
措施:如果结果正确,无须加以修正,如果不想看到这个警告,可以改变设定的位数
3.All reachable assignments to data_out(10) assign '0', register removed by optimization
原因:经过综合器优化后,输出端口已经不起作用了
措施:如果clk不是时钟,可以加“not clock”的约束;如果是,可以在clock setting当中加入;在某些对时钟要求不很高的情况下,可以忽略此警告或在这里修改:Assignments>Timing analysis settings...>Individual clocks...>...
和多时钟有关的Multicycle 和Multicycle Hold选项,如hold time为负,可使Multicycle hold的值>multicycle,如设为2和1。

Quartus时序约束与时序分析剖析教学提纲

Quartus时序约束与时序分析剖析教学提纲

Tips
tH (clock hold time) : The minimum length of time for which data that feeds a register via its data or enable input(s) must be retained at an input pin after the clock signal that clocks the register is asserted at the clock pin.
tSU = <pin to register delay> + <micro setup delay> - <clock to destination register delay>
tSU slack = <required tsu> - <actual tsu>
保持时间
保持时间:在触发器的时钟信号有效沿到来以后,数据 和使能信号必须保持稳定不变的最小时间。如果保持时 间不够,数据同样不能被正确打入触发器。 tH = Clock Delay – Data Delay + MicrotH
静态时序分析与动态时序仿真的区别
动态时序仿真是针对给定的仿真输入信号波形,模拟设计 在器件实际工作时的功能和延时情况,给出相应的仿真输 出信号波形。它主要用于验证设计在器件实际延时情况下 的逻辑功能。由动态时序仿真报告无法得到设计的各项时 序性能指标,如最高时钟频率等。
静态时序分析则是通过分析每个时序路径的延时,计算出 设计的各项时序性能指标,如最高时钟频率、建立保持时 间等,发现时序违规。它仅仅聚焦于时序性能的分析,并 不涉及设计的逻辑功能,逻辑功能验证仍需通过仿真或其 他手段(如形式验证等)进行。静态时序分析是最常用的 分析、调试时序性能的方法和工具。

Quartus时序约束与时序分析剖析

Quartus时序约束与时序分析剖析

保持时间

保持时间:在触发器的时钟信号有效沿到来以后,数据 和使能信号必须保持稳定不变的最小时间。如果保持时 间不够,数据同样不能被正确打入触发器。 tH = Clock Delay – Data Delay + MicrotH
Tips


tH (clock hold time) : The minimum length of time for which data that feeds a register via its data or enable input(s) must be retained at an input pin after the clock signal that clocks the register is asserted at the clock pin. tH = <clock to destination register delay> + <micro hold delay of destination register> - <pin to register delay> minimum tH slack = <required th> - <actual th>
设计中常用的时序概念

时钟偏斜 周期与最高频率 建立时间 保持时间 时钟到输出延时 管脚到管脚延时 Slack
时钟偏斜

时钟偏斜:指一个同源时钟到达两个不同的寄存器时钟端 的时间差别。 clock skew:The difference in the arrival time of a clock signal at two different registers, which can be caused by path length differences between two clock paths, or by using gated or rippled clocks. Clock skew is the most common cause of internal hold violations.

基于quartusii时序约束

基于quartusii时序约束

关于quartus ii时序约束(1)2012-06-17 09:46:07| 分类:默认分类|举报|字号订阅一直以来都只是简单地理解了一下关于时序约束的内容,而工具也有默认classic的约束,加上目前的设计对时序没有很高的要求,所以就一直都没真正地自己做过一次约束,但是我知道,这部分是不可以跳过的,这部分也算是搞FPGA必须掌握的内容。

今天下午对这部分进行了初次探究,收获有如下:常用的约束有三种:1.时序约束2.区域约束3.位置约束时序约束的作用有:1.提高设计的工作频率2.获得正确的时序分析报告需要复习前面博文《FPGA学习之时序分析基础(7)》记住,堵塞原则是HDL语言的精髓,也就是说触发器是有延时作用的,虽然两个触发器使用的是同一个时钟,但是当第二个触发器接收第一帧数据的时候第一个触发器在发第二帧数据,而当第二个触发器接收第二帧数据的时候第一个触发器在发第三帧数据,依此类推,也就是说每一帧数据在两个触发器之间都有一个clk的时间前进,如果前进的时间太长,也即是系统给的时钟太快,就会出现无法满足第二个触发器setup的时间。

setup time 就是第二个触发器在接收到由第一个触发器上一个时钟发送的数据之前应空闲的时间。

公式:CLK+TCLK2-Tsu > Tclk1 + Tcd + Tdata所以系统CLK是和Tsu息息相关的,所以看时序报告的时候也是从Clock Setup‘clk’看最差路径等信息。

在FPGA设计工具中包含有4种路径:从输入端口到寄存器,从寄存器到寄存器,从寄存器到输出,从输入到输出的纯组合逻辑。

通常,需要对这几种路径分别进行约束,以便使设计工具能够得到最优化的结果。

下面对这几种路径分别进行讨论。

1. 从输入端口到寄存器:这种路径的约束是为了让FPGA设计工具能够尽可能的优化从输入端口到第一级寄存器之间的路径延迟,使其能够保证系统时钟可靠的采到从外部芯片到FPGA的信号。

Quartus时序约束与时序分析剖析

Quartus时序约束与时序分析剖析

管脚到管脚延时


管脚到管脚延时tPD:指信号从输入管脚进来,穿过纯组合 逻辑,到达输出管脚的延迟。由于CPLD的布线矩阵长度 固定,所以常用最大管脚到管脚延时标准CPLD的速度等 级。 tPD (pin-to-pin delay) :The time required for a signal from an input pin to propagate through combinational logic and appear at an external output pin.
建立时间

建立时间:在触发器的时钟信号有效沿到来以前,数据 和使能信号必须保持稳定不变的最小时间。如果建立时 间不够,数据将不能在该时钟沿被正确打入触发器。 tSU = Data Delay + MicrotSU -Clock Delay
Tips


tSU (clock setup time) : The length of time for which data that feeds a register via its data or enable input(s) must be present at an input pin before the clock signal that clocks the register is asserted at the clock pin. tSU = <pin to register delay> + <micro setup delay> - <clock to destination register delay> tSU slack = <required tsu> - <actual tsu>

quartus i2c时序约束

quartus i2c时序约束

quartus i2c时序约束
I2C(Inter-Integrated Circuit)是一种常见的串行通信协议,用于在数字集成电路(IC)之间进行通信。

在Quartus软件中,对
于I2C通信时序的约束,需要考虑到I2C总线的时钟频率、数据传
输的时序要求以及外部器件的特性等方面。

首先,我们需要考虑I2C总线的时钟频率。

根据I2C标准,标
准模式下的时钟频率为100 kHz,快速模式下的时钟频率为400 kHz,高速模式可达到3.4 MHz。

在Quartus中,我们需要根据所使用的
I2C设备的时钟频率要求来约束I2C时钟的频率,以确保通信的稳
定性和可靠性。

其次,对于I2C通信的时序要求,需要考虑起始条件、数据传
输和停止条件的时序约束。

起始条件包括START信号的保持时间和
起始条件到第一个数据位的延迟时间;数据传输包括时钟脉冲的高
电平和低电平时间、数据线上数据稳定的时间等;停止条件包括STOP信号的保持时间和停止条件到下一个START条件的延迟时间。

这些时序约束需要根据I2C设备的规格书和Quartus支持的约束语
法来进行设置。

此外,还需要考虑外部器件的特性,例如I2C设备的上升沿和下降沿的时序要求、数据线的负载能力等。

这些特性也需要在Quartus中进行时序约束的设置,以确保I2C通信的稳定性和可靠性。

总的来说,针对I2C通信时序的约束,在Quartus中需要考虑时钟频率、起始条件、数据传输、停止条件以及外部器件的特性等多个方面,通过合理的约束设置来保证I2C通信的正常进行。

希望这些信息能够对你有所帮助。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Support of SDC Timing Constraints1. Clock(时钟):create_clock命令为任何register, port或pin进行时钟特性描述,使其具有独一的时钟特性。

create_clock-period <period value> [-name <clock name>] [-waveform <edge list>] [-add] <targets>create_clock Command OptionsExample 1-1约束时钟频率100MHz,占空比50%,0ns上升沿,5ns下降沿。

create_clock –period 10 –waveform { 0 5 } clkExample 1-2 和上例相差90度的相位。

create_clock –period 10 –waveform { 2.5 7.5 } clk_sys使用create_clock命令约束时钟缺省的source Latency值为0。

Quartus IITimeQuest Timing Analyzer自动为非虚拟时钟(non-virtual clocks)计算时钟网络延时(clock’s network latency)。

Quartus II Handbook, Volume 3 6-29生成时钟(Generated Clocks)Quartus II TimeQuest Timing Analyzer可以把修改或改变主时钟(或者引入时钟)特性的分频时钟、波纹时钟和电路作为生成时钟。

你可以定义这些电路的输出作为生成时钟。

这些定义可以让Quartus II TimeQuest Timing Analyzer分析这些时钟以及关联的时钟网络延时(networklatency)。

使用create_generated_clock命令定义生成时钟。

Example 6–5. create_generated_clock Command create_generated_clock[-name <clock name>]-source <master pin>[-edges <edge list>][-edge_shift <shift list>][-divide_by <factor>][-multiply_by <factor>][-duty_cycle <percent>][-add][-invert][-master_clock <clock>][-phase <phase>][-offset <offset>]<targets>Table 6–7. create_generated_clock Command Options源延时是由于从主时钟(不一定是主管脚)开始的时钟网络延时所致。

你可以使用set_clock_latency –source命令约束源延时。

Figure 6–17 展示了如何产生一个基于10ns时钟的反向生成时钟:Figure 6–17. Generating an Inverted Clockcreate_clock -period 10 [get_ports clk]create_generated_clock -divide_by 1 -invert -source [get_registers clk] \[get_registers gen|clkreg]Figure 6–18 展示了如何使用-edges和-edge_shift选项以改变生成时钟。

Figure 6–18. Edges and Edge Shifting a Generated Clockcreate_clock -period 10 -waveform { 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.5Figure 6–19 展示了-multiply_by选项对生成时钟的影响。

Figure 6–19. 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虚拟时钟是一个在设计中没有真正源或者说与设计没有直接关系的一个时钟。

例如,如果一个时钟不是设计中的时钟,而仅仅作为一个外部器件的时钟源,并且外部器件和该设计有输入或者输出的管脚,那么就认为这个时钟是虚拟时使用create_clock命令创造一个虚拟时钟,对源选项没有指定值。

你可以使用set_input_delay和set_output_delay约束虚拟时钟。

Figure 6–20展示了Quartus II TimeQuest Timing Analyzer若要正确的分析外部寄存器和内部设计逻辑之间的关系,在何处需要设置虚拟时钟的实例。

虽然名为virt_clk的晶振没有和Altera器件直接相互作用,但是担当起了外部寄存器的源时钟的角色,所以时钟virt_clk必须申明。

Example 6–6 展示了定义一个周期10ns,名为virt_clk,50%占空比,上升沿在0ns的虚拟时钟的命令。

虚拟时钟用于作为输出延时约束的时钟源。

在你产生虚拟时钟之后,你可以执行register-to-register的分析报告(在Altera 器件和外部器件的寄存器之间)。

Example 6–6. 虚拟时钟Example 1#create base clock for the designcreate_clock -period 5 [get_ports system_clk]#create 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 dataout]Example 6–7 展示了产生一个周期为10ns,占空比为50%,相移90度虚拟时钟的命令。

Example 6–7. Virtual Clock Example 2create_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 6–8展示了时钟周期为10ns的节点clk,然后对同一个节点添加时钟周期为15ns的时钟。

Quartus II TimeQuest Timing Analyzer在执行时序分析时两个时钟都用到了。

Example 6–8. Multi-Frequency Examplecreate_clock –period 10 –name clock_primary –waveform { 0 5 } [get_ports clk] create_clock –period 15 –name clock_secondary –waveform { 0 7.5 } [get_ports clk] -addQuartus II Handbook, Volume 3 6-34自动时钟检测Automatic Clock Detection想要为你的设计中所有的时钟节点自动添加时钟约束,那么就使用derive_clocks命令。

这个命令从管脚或者寄存器生成时钟以确保设计中的每个寄存器都有时钟。

Example 6–9 展示了derive_clocks命令选项。

Example 6–9. derive_clocks Commandderive_clocks[-period <period value>][-waveform <edge list>]Table 6–8 describes the options for the derive_clocks command.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命令自动搜寻时序网表并通过设置指定PLL输出来产生时钟。

使用derive_pll_clocks命令为PLL输出自动产生时钟的实例如下:derive_pll_clocks [-use_tan_name]Table 6–9. derive_pll_clocks Command Optionsderive_pll_clocks命令调用create_generated_clock命令以产生PLL输出的生成时钟。

相关文档
最新文档