首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

关于Zynq的约束简介

关于Zynq的约束简介

约束可以添加特定的信息到你的设计,并在综合工具和实现工具中可以得到实现。最简单的约束例子就是对操作时钟和引脚的约束。另外一种类型的约束可以实现设计所用逻辑所在的位置。

实现AXI DMA核的资源原来为粉红色部分


约束可以分为两部分:那些用于综合和实现部分的例如时序约束和仅在实现部分有效的例如管脚约束。
我们所使用的约束是根据SDC设计标准来进行制定的。
由于它作为Xilinx的特定约束文件,所以简称为XDC而不是SDC。
当我们声明约束时应该按照如下顺序:
• 时序约束—时序关系需要正确的约束
• 时序例外—我们首先定义了时序之间的正确关系,现在我们来定义这些约束的例外,例如多周期路径。但不能定义标准以外的时序例外。
• 实现约束—那些在布局布线时的约束.这些约束用于实现期望的结果(例如管脚约束)。
通常,一个设计包括许多约束文件,一般分为两类,一类为时序约束,另一类为实现约束。
两种约束都默认作用于综合和实现。而且综合之前也是可读的,用于综合和实现,或者只作用于实现。你可以通过选择来指定约束文件的作用范围,如下图所示。

Vivado设计流程通常是基于IP的。IP模块通常也带有相关的约束文件。由于有着用户各种各样和工具本身生成的约束文件,所以我们需要知道这些约束文件的优先级以更好的对设计进行约束。
默认情况下,用户制定的约束文件会作用于IP生成的约束文件。但是,也是可以改变那些可编写的约束文件的顺序。类似与设置综合或者实现的选项。我们可以选择约束文件的执行顺序。优先级可以选择如下:
• First: 首先执行这里的约束文件,优先级最高
• Default: 按照正常顺序执行约束文件,优先级一般
• Last: 最后执行约束文件,优先级最低

在后续的博客教程中,我们可以学到更多的如何创建和验证约束文件的内容。在下一期博客中,我们会重点关注我们第一类约束:时序约束,解释它是什么,和如何使用Vivado去创建一个时序约束。
返回列表