当前位置:网站首页>Xilinx约束学习笔记—— 时序约束
Xilinx约束学习笔记—— 时序约束
2022-08-02 06:43:00 【ltqshs】
Xilinx约束学习笔记—— 约束方法学
1.1 组织约束文件
Xilinx 建议将时序约束和物理约束分开保存为两个不同的文件。甚至可以将针对某一个模块的约束单独保存在一个文件中。
1.1.1 综合和实现可以使用不同的约束文件
可以使用 USED_IN_SYNTHESIS 和 USED_IN_IMPLEMENTATION 属性指定约束文件是在综合或实现过程中使用。
注意:特别是IP、DCP这类使用OOC模式的模块,因为这些模块在综合过程中是一个黑盒,当顶层约束指定的约束路径为黑盒中的内容时,可能在综合过程中会报找不到目标的错误。因此,最好的方法是将约束会为两个文件,一个综合用,一个实现时用。
在工程模式中可以使用如下代码指定约束文件使用时机。
set_property USED_IN_SYNTHESIS false [get_files wave_gen_pins.xdc]
set_property USED_IN_IMPLEMENTATION true [get_files wave_gen_pins.xdc]
非工程模式中,不需要如此设置。因为什么时候使用约束文件,只和读取约束文件的时机相关。如下:其中 wave_gen_timing.xdc 会在综合和实现过程中使用,而 wave_gen_pins.xdc 只会在实现过程中使用。
read_verilog [glob src/*.v] read_xdc wave_gen_timing.xdc synth_design -top wave_gen -part xc7k325tffg900-2 read_xdc wave_gen_pins.xdc opt_design place_design route_design
1.2 约束的顺序
推荐约束顺序如下:
## 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 Analysis
# Disable Timing
## Physical Constraints Section
# located anywhere in the file, preferably before or after the timing constraints
# or stored in a separate constraint file
1.3 创建综合约束
Vivado 综合将设计中的 RTL 描述转换为工艺映射网表。此过程分为多个步骤进行,包括一些时序导向的优化。FPGA 包含许多逻辑特性,可以有许多不同的应用方式。需要通过约束来引导综合引擎工作,以满足实现时所需的要求。
综合约束可以分为4类:
RTL Attributes
Timing Constraints
Physical and Configuration Constraints
Elaborated Design Constraints
1.3.1 RTL Attributes
RTL Attributes 必须写入 RTL 文件中。他们通常用来选择逻辑的某些部分的映射样式,以及保留某些寄存器和网线,或控制最终网表中的设计层次结构。
IMPORTANT: The DONT_TOUCH attribute does not obey the properties of USED_IN_SYNTHESIS and USED_IN_IMPLEMENTATION . If you use DONT_TOUCH properties in the synthesis XDC, it is propagated to implementation regardless of the value of USED_IN_IMPLEMENTATION .
注意:DONT_TOUCH 属性不受 USED_IN_SYNTHESIS 和 USED_IN_IMPLEMENTATION 的控制,当在综合约束中使用 DONT_TOUCH 时,他会传递到实现过程中,无论 USED_IN_IMPLEMENTATION 的属性值是什么。
set_property DONT_TOUCH true [get_cells fsm_reg]
1.3.2 Timing Constraints
Timing Constraints 必须通过一个或多个 XDC 文件传递给综合引擎。只有以下与建立时间分析相关的约束对综合结果有实际影响:
create_clock
create_generated_clock
set_input_delay
set_output_delay
set_clock_groups
set_false_path
set_max_delay
set_multicycle_path
1.3.3 Physical and Configuration Constraints
Physical and Configuration Constraints 会被综合算法忽略。(既然会被忽略为什么又提到?)
1.3.4 Elaborated Design Constraints
创建综合 XDC 的第一个版本时,只需要使用简单的时序约束来描述高级设计要求即可。因为此阶段的路径延迟并不准确,目的只是为了在实现开始前,尽量让综合的结果满足时序。并且在此阶段可能需要反复迭代 RTL 代码和 XDC 文件,以便查找各种网名和排除各种语法错误。
在 Elaborated Design 的创建过程中,某些 RTL 名称被修改或丢失。需要注意如下几点:
网表中寄存器的名称会比在 RTL 代码中的名称多一个 _reg 的后缀。
有些寄存器或网线会被吸收掉,例如二维寄存器会被综合成 Memory Block,乘除法会综合成 DSP。
在使用 get_* 查询路径时,最好不要使用 -hierarchical 参数,路径中使用/显示描述路径的层级。
不要对组合逻辑的网线附加约束。它们很可能会被合并到一个 LUT 中并从网表中消失。
1.4 创建实现约束
在某些情况下,综合网表中的对象名称与 Elaborated Design 中的名称不同。如果是这种情况,就必须使用正确的名称重新创建一些约束,并将它们保存在仅用于实现的 XDC 文件中。当工具可以正确加载所有 XDC 文件后,就可以运行时序分析以便:
添加缺少的约束,例如输入和输出延迟。
添加时序例外,例如伪路径、多周期路径和最小/最大延迟约束。
识别由于设计中的长路径而导致的严重违规,修改 RTL 代码。
在综合期间,为了提高设计性能,有些寄存器可能被复制。但综合器不会把复制的单元添加到用户 XDC 约束中。如要将时序约束附加到 Vivado Synthesis 复制的对象上,根据约束的写入方式不同,复制的单元有可能不会被 XDC 约束覆盖到,这可能会影响结果的实现质量。可以使用 -include_replicated_objects 参数来避免此问题。
例如 set_false_path –from [get_cells –hierarchical *rx_reg] 可以改为 set_false_path -from [get_cells -hierarchical *rx_reg -include_replicated_objects] 。
本文来源于网络:《Xilinx约束学习笔记—— 约束方法学》
边栏推荐
猜你喜欢
Vscode连接远程服务器出现‘Acquiring lock on/home/~’问题
你认同这个观点吗?大多数企业的数字化都只是为了缓解焦虑
The nacos source code can not find the istio package
[Dataset][VOC] Male and female dataset voc format 6188 sheets
PMP新考纲考试内容介绍
MPLS的相关技术
数据库概论之MySQL表的增删改查1
【图像去噪】基于matlab双立方插值和稀疏表示图像去噪【含Matlab源码 2009期】
optional
根据一个字段的内容去更新另一个字段的数据,这样的sql语句该怎么样书写
随机推荐
SQL执行顺序
Clapper that can interact with the audience in real time
Day 4 of HCIP
封装class类一次性解决全屏问题
分离轴定理SAT凸多边形精确碰撞检测
【机器学习】实验5布置:AAAI会议论文聚类分析
Summer Summary (3)
File upload vulnerability (2)
2022夏暑假每日一题(六)
Wuhan 2022 organizing of the high-performance computing added new ecological development of high-performance computing
张驰课堂:六西格玛培训工具——箱线图
docker 安装mysql
暑假第五周总结
实例029:反向输出
HCIP day one
Pagoda+FastAdmin 404 Not Found
Leetcode Weekly 304
Facebook社媒营销的5大技巧,迅速提高独立站转化率!
张驰咨询:企业实施精益管理的最大障碍,只把精益作为一种工具和方法
WebGPU 导入[2] - 核心概念与重要机制解读