0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

一文详解Vivado的ECO流程

FPGA之家 来源:赛灵思中文社区论坛 作者:Hong Han 2022-04-29 09:03 次阅读

有时我们需要在设计网表的基础上微调一下逻辑,这样可以无需修改代码,也无需重新做综合,在设计调试中可以节省时间同时维持其他逻辑无任何改动。

这里带大家一起体验一下Vivado 的ECO流程,以vivado自带的Example Design为例, 直接用TCL命令修改网表,在正常的寄存器路径之间加一级LUT。

1. 打开Vivado 界面

2. 打开Example Design "Wavegen":
File -> Project -> Open Example
选中Wavegen(HDL), 器件选择xcku035

3. 点击左侧Flow Navigator 窗口 Run Implementation 按钮, 完成综合实现.

4. 打开Implemented Design (点击左侧Flow Navigator 窗口 Open Implemented Design 按钮)

5. 选一条两个寄存器之间的路径
运行以下命令,选中打印出的路径,双击可以查看时序报告,F4 键可以打开这条路径的原理图

 %report_timing -from [get_cells 
clkx_spd_i0/meta_harden_bus_new_i0/signal_meta_reg] -to [get_cells 
clkx_spd_i0/meta_harden_bus_new_i0/signal_dst_reg] -delay_type max -name test1

可以看到Data Path的布线延迟是0.504ns

5422a960-c751-11ec-bce3-dac502259ad0.png

路径的原理图

542d2854-c751-11ec-bce3-dac502259ad0.png

6. 把目的寄存器的D端从net上断下来

%disconnect_net -net 
clkx_spd_i0/meta_harden_bus_new_i0/signal_meta_reg_n_0  -objects 
{clkx_spd_i0/meta_harden_bus_new_i0/signal_dst_reg/D}

在这里获取操作对象(net, Pin) 的方法: 在原理图中选中对象,然后查看走下角Property 窗口中的NAME 属性

543974b0-c751-11ec-bce3-dac502259ad0.png

Pin被从Net上断开后,会在原理图上显示n/c

5445524e-c751-11ec-bce3-dac502259ad0.png

7. 创建一个LUT1,并设置LUT的INIT property

%create_cell -reference LUT1clkx_spd_i0/meta_harden_bus_new_i0/my_lut1 
%set_property INIT 2'h1 [get_cells clkx_spd_i0/meta_harden_bus_new_i0/my_lut1]
54543d54-c751-11ec-bce3-dac502259ad0.png

可以看到这个新创建的LUT1所有端口(Pin)都是悬空的. 接下来的步骤要将这些pin连接到合适的net上.

8. 把LUT1的输入端口连接到之前断开的net上.

%connect_net -net clkx_spd_i0/meta_harden_bus_new_i0/signal_meta_reg_n_0  -objects {clkx_spd_i0/meta_harden_bus_new_i0/my_lut1/I0}

9. 创建一个新的net用来连接LUT1的输出pin和之前断下来的寄存器D pin

%create_net  clkx_spd_i0/meta_harden_bus_new_i0/my_net

10. 连接LUT1的输出pin和之前断下来的寄存器D pin 到新创建的net上

%connect_net -net clkx_spd_i0/meta_harden_bus_new_i0/my_net   -objects {clkx_spd_i0/meta_harden_bus_new_i0/my_lut1/O clkx_spd_i0/meta_harden_bus_new_i0/signal_dst_reg/D}

545fdaa6-c751-11ec-bce3-dac502259ad0.png

11. 在Netlist窗口选窗口选中新建的LUT1,将其拖曳到Device中空着的slice LUT bel中

对应的命令:

place_cell clkx_spd_i0/meta_harden_bus_new_i0/my_lut1 SLICE_X52Y83/B6LUT

12. 对新的LUT1两端的net进行布线

%route_design -nets [get_nets -of [get_pins clkx_spd_i0/meta_harden_bus_new_i0/my_lut1/*]]

13.检查布线结果确保没有布线错误

%report_route_status

546c5704-c751-11ec-bce3-dac502259ad0.png

14.用步骤5的命令重新报一下时序

5476bfc8-c751-11ec-bce3-dac502259ad0.png

15. 生成bit文件

%write_bitstream test.bit

原文标题:【干货分享】用ECO脚本的方式在网表中插入LUT1

文章出处:【微信公众号:FPGA之家】欢迎添加关注!文章转载请注明出处。

审核编辑:汤梓红
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • TCL
    TCL
    +关注

    关注

    10

    文章

    1722

    浏览量

    88566
  • ECO
    ECO
    +关注

    关注

    0

    文章

    52

    浏览量

    14885
  • Vivado
    +关注

    关注

    19

    文章

    812

    浏览量

    66470

原文标题:【干货分享】用ECO脚本的方式在网表中插入LUT1

文章出处:【微信号:zhuyandz,微信公众号:FPGA之家】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    ECO导入详解

    ECO导入详解
    发表于 08-20 15:13

    Vivado使用误区与进阶——在Vivado中实现ECO功能

    关于Tcl在Vivado中的应用文章从Tcl的基本语法和在Vivado中的应用展开,介绍了如何扩展甚至是定制FPGA设计实现流程后,引出了个更细节的应用场景:如何利用Tcl在已完成布
    发表于 11-18 18:26 5395次阅读
    <b class='flag-5'>Vivado</b>使用误区与进阶——在<b class='flag-5'>Vivado</b>中实现<b class='flag-5'>ECO</b>功能

    如何在Vivado中执行工程变更命令 (ECO)

    了解如何在Vivado中执行工程变更单(ECO)。 本视频将向您介绍ECO的常见用例,我们推荐的完成ECO流程,优势和局限性,并将演示功
    的头像 发表于 11-21 06:40 5182次阅读
    如何在<b class='flag-5'>Vivado</b>中执行工程变更命令 (<b class='flag-5'>ECO</b>)

    使用ECO进行调试有哪些好处

    了解使用Vivado 2016.1中引入的ECO流程进行调试的好处,以及在ECO布局中替换ILA调试探针所需的步骤。
    的头像 发表于 11-29 06:01 3708次阅读
    使用<b class='flag-5'>ECO</b>进行调试有哪些好处

    用Tcl定制Vivado设计流程详解

    工程模式的关键优势在于可以通过在Vivado 中创建工程的方式管理整个设计流程,包括工程文件的位置、阶段性关键报告的生成、重要数据的输出和存储等。
    的头像 发表于 07-24 17:30 4607次阅读
    用Tcl定制<b class='flag-5'>Vivado</b>设计<b class='flag-5'>流程</b><b class='flag-5'>详解</b>

    Vivado综合引擎的增量综合流程

    Vivado 2019.1 版本开始,Vivado 综合引擎就已经可以支持增量流程了。这使用户能够在设计变化较小时减少总的综合运行时间。
    发表于 07-21 11:02 1671次阅读

    起体验VivadoECO流程

    带大家起体验VivadoECO流程,以vivado自带的Example Design为
    的头像 发表于 10-26 09:45 3691次阅读
    <b class='flag-5'>一</b>起体验<b class='flag-5'>Vivado</b> 的<b class='flag-5'>ECO</b><b class='flag-5'>流程</b>

    带大家起体验VivadoECO流程

    这里带大家起体验VivadoECO流程,以vivado自带的Example Desig
    的头像 发表于 11-29 11:04 4349次阅读
    带大家<b class='flag-5'>一</b>起体验<b class='flag-5'>一</b>下<b class='flag-5'>Vivado</b>的<b class='flag-5'>ECO</b><b class='flag-5'>流程</b>

    Vivado设计流程指导手册

    Vivado 设计分为 Project Mode 和 Non-project Mode 两种模式,般简单设计中,我们常用的是 Project Mode。在本手册中,我们将以个简单的实验案例,
    发表于 03-22 11:39 50次下载
    <b class='flag-5'>Vivado</b>设计<b class='flag-5'>流程</b>指导手册

    Vivado设计流程指导说明

    Vivado 设计分为 Project Mode 和 Non-project Mode 两种模式,般简单设计中,我们常用的是 Project Mode。在本手册中,我们将以个简单的实验案例,
    发表于 03-25 14:39 28次下载

    详解Xilinx FPGA的ECO功能

    ECO 指的是 Engineering Change Order ,即工程变更指令。目的是为了在设计的后期,快速灵活地做小范围修改,从而尽可能的保持已经验证的功能和时序。ECO 是从 IC 设计领域继承而来,Vivado上 的
    的头像 发表于 08-02 09:18 3836次阅读
    <b class='flag-5'>详解</b>Xilinx FPGA的<b class='flag-5'>ECO</b>功能

    用TCL定制Vivado设计实现流程

    今天推出Xilinx已发布的《Vivado使用误区与进阶》系列:用TCL定制Vivado设计实现流程
    的头像 发表于 05-05 09:44 1070次阅读
    用TCL定制<b class='flag-5'>Vivado</b>设计实现<b class='flag-5'>流程</b>

    Vivado中实现ECO功能

    关于 Tcl 在 Vivado中的应用文章从 Tcl 的基本语法和在 Vivado 中的 应用展开,继上篇《用 Tcl 定制 Vivado 设计实现流程》介绍了如何扩展甚 至是定制 F
    的头像 发表于 05-05 15:34 2670次阅读
    在<b class='flag-5'>Vivado</b>中实现<b class='flag-5'>ECO</b>功能

    vivado仿真流程

    vivado开发软件自带了仿真工具,下面将介绍vivado的仿真流程,方便初学者进行仿真实验。
    的头像 发表于 07-18 09:06 4390次阅读
    <b class='flag-5'>vivado</b>仿真<b class='flag-5'>流程</b>

    vivado主界面及设计流程

    Vivado设计主界面,它的左边是设计流程导航窗口,是按照FPGA的设计流程设置的,只要按照导航窗口项往下进行,就会完成从设计输入到最
    的头像 发表于 09-17 15:40 2943次阅读
    <b class='flag-5'>vivado</b>主界面及设计<b class='flag-5'>流程</b>