【vivado UG学习】Implementation策略学习

本文详细介绍了Vivado的实现过程,涵盖逻辑优化、功率优化、布局、物理优化、布线等步骤,强调了约束在流程中的作用,以及如何通过策略和指令定制设计实现。内容包括时序和物理约束的设置,以及如何使用检查点保存设计状态。此外,还讨论了在不同设计阶段如何进行优化以满足性能和功率目标。

implementation 过程把一个【逻辑网表(logical netlist)和约束(constraints)】转换为一个【完成布局(place)和布线(route)的设计】。

1 综合前的准备

Vivado高层次设计流程:

Markdown将文本转换为 HTML。
在这里插入图片描述

1.1 Vivado Implementation 子过程

  1. Opt Design:优化逻辑设计,使其更容易适合目标Xilinx器件。
  2. Power Opt Design(可选):优化设计元素,以降低目标Xilinx器件的功率需求。
  3. Place Design:将设计完成在目标Xilinx器件上的布局。
  4. Post-Place Power Opt Design (可选):额外的优化,以减少布局后的功率。
  5. Post-Place Phys Opt Design(可选):基于位置估计时序用于优化逻辑和布局,包括复制具有高扇出的驱动以减少扇出。
  6. Route Design:完成目标设计在对应器件上的布线。
  7. Post-Route Phys Opt Design(可选):用实际的线路延迟来优化逻辑、布局以及布线。
  8. Write Bitstream:为Xilinx器件配置生成bit流。通常,位流的生成是在实现之后。

1.2 管理Implementation

1.2.1 工程模式和非工程模式

  • 导入之前综合后的网表文件,支持的格式:

    • Structural Verilog
    • Structural SystemVerilog
    • EDIF
    • Xilinx NGC
    • Synthesized Design Checkpoint (DCP)

    *UltraScale器件不支持 NGC。
    *IP核使用XCI文件而不是DCP文件,这确保IP输出产品在设计流程的所有阶段都得到一致的使用。
    *如果时RTL文件,Vivado会自动先完成综合。

1.4 用约束引导Implementation

1.4.1 物理约束和时序约束

两种类型的约束:物理(physical)约束核时序(timing)约束:

  • 物理约束:定义了逻辑设计对象和设备资源之间的关系,如

    • 引脚布局
    • 各单元的绝对或相对位置,包括块RAM、DSP、LUT和触发器。
    • 预布局(Floorplanning)约束,指定单元在器件中的区域。
    • 器件配置。
  • 时序约束:定义了设计的频率要求,采用标准SDC编写。
    在没有时间限制的情况下,Vivado只针对线路长度和布线拥塞优化设计,不评估或改善设计的性能。

*不支持UCF格式的约束文件。

1.4.4 约束集

约束集是可应用于项目模式中的设计的约束文件列表,该集合包含XDC或Tcl文件中获取的设计约束。

合法的约束集结构:

  • 一个约束集有多个约束文件。
  • 约束集物理约束和时序约束时分开的。
  • 一个主约束文件。
  • 新的约束文件可以更改之前的约束。
  • 多个约束集。

建议:按功能将约束分离到不同的约束文件中,以(a)使约束策略更清晰,(b)便于目标时间安排和实施更改。
多个约束集
一个项目可以有多个约束集,这样就可以按不同约束进行implementation。
也可以用一个约束集给Synthesis,一个约束集给implementation。这样可以在综合,实现,和仿真时应用不同的约束。
多个约束集的好处:

  • 给相同的工程设定不同的器件,不同的器件需要不一样的物理和时序约束。
  • 执行what-if设计探索。使用约束集来探索floorplanning和over-constraining设计的各种场景。
  • 管理约束改变,用一个独立的约束文件覆盖主约束。

技巧:要验证时序约束,请在synthesis后的设计上运行report_timing_summary。在implementation之前修复有问题的约束!

1.4.5 约束中也可以添加关于属性的描述

1.5 用Checkpoints保存设计快照(snapshots)

Checkpoint文件(.dcp)用来保存设计流程中某个关键节点的物理数据库,这个数据库存储了布局和布线的关键信息,一个checkpoint就是一个关键运行节点的快照。
.dcp文件包含:

  • 当前的网表,包含implementation过程中所有的优化。
  • 设计约束。
  • implementation的结果。

dcp文件可以被其他流程用Tcl命令使用,但是不能被修改。
重要:在项目模式下,Vivado设计工具会随着设计的进展自动保存和恢复检查点。在非项目模式下,您必须在设计流程的适当阶段保存检查点,否则,进程将丢失。

写checkpoint文件:write_checkpoint
读checkpoint文件:open_checkpoint

2 Implementing the Design

非项目模式下implementation的Tcl脚本:

  • opt_design
  • power_opt_design
  • place_design
  • phys_opt_de
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ChipWeaver

觉得有用的话点个赞吧 :)

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值