前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >创建基本时钟周期约束

创建基本时钟周期约束

作者头像
瓜大三哥
发布于 2018-02-24 09:54:56
发布于 2018-02-24 09:54:56
1.2K0
举报
文章被收录于专栏:瓜大三哥瓜大三哥

Xilinx建议把时序约束和物理约束分开来写。(但是必须有一个作为target)

时序约束用于综合和实现,物理约束用于实现。

1时钟周期

2占空比

3相位

Waveform={上升沿时刻,下降沿时刻}

1.Primary clock

首先确定Primary clock指的是板子上提供的晶振的时钟,通常连接到FPGA的cc引脚上,另外一种情况就是吉比特收发器。后面所有的时序约束都来源于Primary clock。

Primary clock 指的是引脚上的时钟,创建一个时钟周期为10ns的代码

create_clock -period 10 [get_ports sysclk] //分配到sysclk这个管脚

2.生成时钟clock

2.1用户自定义生成时钟 命令:create_generated_clock

2.2自动推断出来的时钟 比如MMCM或者PLL或者BUFR(分频产生时钟)

这些都是不需要做约束的,只需要对primary时钟做约束

首先创建primary clock:

create_clock -name clkin -period 10 [get_ports clkin]

然后使用两种方法指定generate时钟:

第一种方式:create_generated_clock -name clkdiv2 -source [get_ports clkin]\ -divide_by 2 [get_pins rega/q]

第二种方式:create_generated_clock -name clkdiv2 -source [get_pins REGA/C]\ -divide_by 2 [get_pins rega/q]

第三种方式:create_generated_clock -name clkdiv2 -source [get_pins REGA/C]\

-edges {1 3 5} [get_pins rega/q]

可以对MMCM生成的时钟进行重命名:

create_generated_clock -name clk_rx [get_pins clk_gen_i0/clk_core_i0/inst \

/mmcm_adv_inst/clkout0]

3.时钟分组

3.1同步时钟

3.2异步时钟

3.3不可扩展时钟

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2016-12-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 瓜大三哥 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
【Vivado约束学习】 时钟约束
在数字设计中,时钟代表从寄存器(register)到寄存器可靠传输数据的时间基准。Xilinx Vivado集成设计环境(IDE)时序引擎使用ClocK特征计算时序路径要求,并通过松弛计算报告设计时序裕度(Slack)。 时钟必须正确定义,以获得最佳的时序路径。以下特性定义了时钟: 1,时钟定义在它的树根的驱动器管脚或端口上,被称为源点。 2,时钟的边沿是由周期和波形特性相结合来描述的。 3,周期以纳秒(ns)为单位,时钟对应于波形重复的时间。 4,波形是时钟周期内上升边沿和下降边沿绝对时间的列表,以纳秒(ns)为单位。列表必须包含偶数的值。第一个值总是相对应的。到第一个上升的边沿。除非另有规定,占空比默认为50%,相移到0ns。 如图1所示,时钟CLK0具有10ns周期、50%占空比和0ns相位。时钟CLK1具有8ns周期、75%占空比(8ns内的高电平时间为6ns)和2ns上升沿相位偏移。
FPGA开源工作室
2019/10/29
4.6K0
【Vivado约束学习】 时钟约束
FPGA时序约束理论篇之时钟周期约束
  时钟周期约束,顾名思义,就是我们对时钟的周期进行约束,这个约束是我们用的最多的约束了,也是最重要的约束。
猫叔Rex
2020/06/30
2.1K0
FPGA时序约束理论篇之时钟周期约束
FPGA时序约束实战篇之延迟约束
  对于延迟约束,相信很多同学是不怎么用的,主要可能就是不熟悉这个约束,也有的是嫌麻烦,因为有时还要计算PCB上的走线延迟导致的时间差。而且不加延迟约束,Vivado也只是在Timing Report中提示warning,并不会导致时序错误,这也会让很多同学误以为这个约束可有可无。
猫叔Rex
2020/06/30
2.3K0
FPGA时序约束实战篇之延迟约束
FPGA时序约束实战篇之多周期路径约束
  首先来看带有使能的数据,在本工程中的Tming Report中,也提示了同一个时钟域之间的几个路径建立时间不满足要求
猫叔Rex
2020/06/30
9280
FPGA时序约束实战篇之多周期路径约束
XDC
## Timing Assertions Section # Primary clocks # Virtual clocks # Generated clocks # Clock Groups # Bus Skew constraints # Input and output delay constraints ## Timing Exceptions Section # False Paths # Max Delay / Min Delay # Multicycle Paths # Case Analys
瓜大三哥
2018/02/26
1.1K0
FPGA时序约束实战篇之衍生时钟约束
  系统中有4个衍生时钟,但其中有两个是MMCM输出的,不需要我们手动约束,因此我们只需要对clk_samp和spi_clk进行约束即可。约束如下:
猫叔Rex
2020/06/30
1K0
FPGA时序约束实战篇之衍生时钟约束
XDC设计之时钟篇
XDC 与UCF 的最主要区别: XDC 可以像UCF 一样作为一个整体文件被工具读入也可以在实现过程中被当做一个单独的命令直接执行。这就决定了XDC也具有Tcl命令的特点,即后面输入的约束在有冲突的情况下会覆盖之前的约束。另外,不同于UCF是全部读入再处理的方式,在XDC中,约束是读一条执行一条,所以先后顺序很重要,例如要设置IO约束之前,相应的clock一定要先创建好。 UCF 是完全以FPGA 的视角看问题,所以缺省认所有的时之间除非预先声明是同步的,否则就视作异步而不做跨时钟域时序分析;XDC则恰
瓜大三哥
2018/02/24
1.3K0
XDC设计之时钟篇
高级时钟约束
时序的零起点 用create_clock定义的主时钟的起点即时序的“零起点”,在这以前的上游路径都会被工具自动忽略。所以主时钟在哪个“点”很重要,以下图所示结构来举例,分别于FPGA输入端口和BUFG
瓜大三哥
2018/02/26
1.9K0
高级时钟约束
SDC约束
使用SDC命令create_clock创建时钟,时钟周期20,占空比50%的时钟信号;
数字芯片社区
2022/09/19
1.9K0
SDC约束
DC其他的时序约束选项(二)
前面介绍的设计都不算很复杂,都是使用时钟的默认行为作为电路的约束,都存在有路径给你约束,即信号的变化要在一个时钟周期内完成,并达到稳定值,以满足寄存器的建立和保持的要求。此外进行可测性设计(design for test)时,为了提高测试的覆盖率,我们经常使用多路(multiplex,简称mux)传输电路的控制时钟,使电路的时钟信号可以由输入端直接控制。这些电路约束属于复杂的约束,除了理论上的讲解之外,还会进行实战,实战内容主要为围绕前面的伪路径和多周期路径进行的,主要内容如下:
数字芯片社区
2020/07/20
2.3K0
DC其他的时序约束选项(二)
今日说“法”:TimeQuest约束外设之诡异的Create Generated Clocks
欢迎大侠来到FPGA技术江湖新栏目今日说“法”,当然,在这里我们肯定不是去研究讨论法律法规知识,那我们讨论什么呢,在这里我们讨论的是产品研发以及技术学习时一些小细节小方法等,欢迎大家一起学习交流,有好的灵感以及文章随笔,欢迎投稿,投稿请标明笔名以及相关文章,投稿接收邮箱:1033788863@qq.com。今天带来的是“TimeQuest约束外设之诡异的Create Generated Clocks”,话不多说,上货。
FPGA技术江湖
2021/04/16
4030
今日说“法”:TimeQuest约束外设之诡异的Create Generated Clocks
今日说“法”:TimeQuest约束外设之诡异的Create Generated Clocks
大侠好,欢迎来到FPGA技术江湖,江湖偌大,相见即是缘分。大侠可以关注FPGA技术江湖,在“闯荡江湖”、"行侠仗义"栏里获取其他感兴趣的资源,或者一起煮酒言欢。
FPGA技术江湖
2020/12/29
4320
今日说“法”:TimeQuest约束外设之诡异的Create Generated Clocks
Vivado中用于时钟操作的几个Tcl命令
理论上,使用Tcl可以在Vivado上完成一切操作,但是没必要,因为命令太多,很难记忆,我们只需要知道几个常用的即可,方便我们使用Vivado。
Reborn Lee
2021/10/11
8630
经过BUFGMUX的时钟该如何约束(更新)
时序场景如下图所示,clk0和clk1两个时钟输入,经过BUFGMUX后,输出到后面的逻辑,但同时clk0和clk1还分别驱动了其他逻辑。
猫叔Rex
2023/12/19
3801
经过BUFGMUX的时钟该如何约束(更新)
【附录A SDC】静态时序分析圣经翻译计划
SDC语法是基于TCL的格式,即所有命令都遵循TCL语法。一个SDC文件会在文件开头包含SDC版本号,其次是设计约束,注释(注释以字符#开始,并在行尾处结束)在SDC文件中可以散布在设计约束中。设计约束中较长的命令行可以使用反斜杠(\)字符分成多行。
空白的贝塔
2021/01/28
1.6K0
FPGA时序约束实战篇之伪路径约束
  在本章节的“2 约束主时钟”一节中,我们看到在不加时序约束时,Timing Report会提示很多的error,其中就有跨时钟域的error,我们可以直接在上面右键,然后设置两个时钟的伪路径。
猫叔Rex
2020/06/30
1K0
FPGA时序约束实战篇之伪路径约束
【第九章 接口分析 下】静态时序分析圣经翻译计划
DDR SDRAM接口可以看作是上一节中所介绍的SRAM接口的一种扩展。就像SRAM接口一样,有两条主要的总线,图9-9说明了DUA和SDRAM之间的总线及其方向。由命令、地址和控制引脚(通常称为CAC)组成的第一条总线将使用以下标准方案:在存储器时钟的一个时钟沿(或每个时钟周期一次)处发送信息。双向总线由DQ(数据总线)和DQS(数据选通脉冲)组成,DDR接口的不同之处就在于双向数据选通DQS。DQS选通脉冲可用于一组数据信号,这使得数据信号(每字节一个或每半字节一个)与选通脉冲的时序紧密匹配。如果时钟是整个数据总线共用的时钟,那么使用时钟信号进行这种紧密匹配可能不可行。双向选通信号DQS可用于读操作和写操作,并且在选通脉冲的两个边沿(下降沿和上升沿,或称双倍数据速率)上都可捕获数据。在SDRAM的读模式期间,DQ总线与数据选通引脚DQS(而不是存储器的时钟引脚)同步,即DQ和DQS从SDRAM中被输出时彼此是对齐的。而对于另一个方向,即当DUA发送数据时,DQS将相移90度。请注意,数据DQ和选通DQS的沿均来自DUA内部的存储器时钟。
空白的贝塔
2021/01/28
6940
【第九章 接口分析 下】静态时序分析圣经翻译计划
经过BUFGMUX的时钟该如何约束
时序场景如下图所示,clk0和clk1两个时钟输入,经过BUFGMUX后,输出到后面的逻辑,但同时clk0和clk1还分别驱动了其他逻辑。
猫叔Rex
2023/12/14
4120
经过BUFGMUX的时钟该如何约束
虚拟时钟
只是用于IO的时序约束 使用情况:上游芯片的时钟和FPGA的Primary的时钟频率不同 外部有clock buffer时,也需要使用虚拟时钟 create_clock -name sysclk -p
瓜大三哥
2018/02/24
1.5K0
虚拟时钟
IO约束(下)
Output接口类型和约束 FPGA 做Output 的接口时序同样也可以分为系统同步和源同步。在设置XDC约束时,总体思路与Input类似,只是换成要考虑下游期间的时序模型。另外,在源同步接口中,定义接口约束之前,需要用create_generated_clock先定义送出的随路时钟。 系统同步接口 与Input 的系统同步接口一样,FPGA做Output接口的系统同步设计,新偏见只传递数据信号,时钟信号的同步完全依靠板级设计来对齐。所以设置约束时候要考虑的仅仅是下游期间的Tsu/Th和数据在板级的延时。
瓜大三哥
2018/02/26
1.1K0
IO约束(下)
相关推荐
【Vivado约束学习】 时钟约束
更多 >
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文