在Vivado中实现ECO功能

FPGA技术江湖 2023-05-03 07:29
关注我们
更多精彩等你发现!



本篇是Xilinx已发布的《Vivado使用误区与进阶》系列:Vivado中实现ECO功能。


关于 Tcl  Vivado®中的应用文章从 Tcl 的基本语法和在 Vivado 中的 应用展开,继上篇《用 Tcl 定制 Vivado 设计实现流程》介绍了如何扩展甚 至是定制 FPGA 设计实现流程后,引出了一个更细节的应用场景:如何利用 Tcl 在已完成布局布线的设计上对网表或是布局布线进行局部编辑,从而在最短时间内,以最小的代价完成个别的设计改动需求。

什么是 ECO

ECO 指的是Engineering Change Order,即工程变更指令。目的是为 了在设计的后期,快速灵活地做小范围修改,从而尽可能的保持已经验证 的功能和时序。ECO 的叫法算是从 IC 设计领域继承而来,其应用在 FPGA 设计上尚属首次,但这种做法其实在以往的 FPGA 设计上已被广泛采用。简单来说,ECO 便相当于 ISE 上的 FPGA Editor

但与 FPGA Editor 不同,Vivado 中的 ECO 并不是一个独立的界面或是一些特定的命令,要实现不同的 ECO 功能需要使用不同的方式。

ECO 的应用场景和实现流程

ECO 的应用场景主要包含:修改cell 属性、增减或移动 cell、手动局部布线。还有一些需要多种操作配合的复杂场景,例如把 RAM(或 DSP)的输出寄存器放入/拉出 RAMB(或 DSP48)内部,或是把设计内部信号接到 I/O 上作调试 probe 用等等。

针对不同的应用场景,Vivado 中支持的 ECO 实现方式也略有区别。 有些可以用图形界面实现,有些则只能使用 Tcl 命令。但通常可以在图形化界面上实现的操作,都可以改用一条或数条 Tcl 命令来实现。

ECO 的实现流程如下图所示:

第一步所指的 Design 通常是完全布局布线后的设计,如果是在工程模式下,可以直接在 IDE 中打开实现 后的设计,若是仅有 DCP 文件,不论是工程模式或是非工程模式产生的 DCP,都可以用 open_checkpoint  令打开。

第二步就是 ECO 的意义所在,我们在布局布线后的设计上进行各种操作,然后仅对改动的部分进行局部布局/布线而无需整体重跑设计,节约大量时间的同时也不会破坏已经收敛的时序。

第三步就是产生可供下载的 bit 文件了,此时必须在 Tcl Console 中或是 Tcl 模式下直接输入命令产生 bit 文件,而不能使用 IDE 上的“Generate Bitstream”按钮。原因是后者读到的还是 ECO 前已经完成布局布线的原 始设计,生成的 bit 文件自然也无法使用。

修改属性

绝大部分的属性修改都能通过 IDE 界面完成,如下图所示。

比如要修改寄存器的初值 INIT 或是 LUT 的真值表,用户只需在 Vivado IDE 中打开布局布线后的设计 Implemented Design),在 Device View 中找到并选中这个 FF/LUT,接着在其左侧的 Cell Properties 视图中 选择需要修改的属性,直接修改即可。

除了对 FF/LUT 的操作外,很多时候我们需要对 MMCM/PLL 输出时钟的相移进行修改。对于这种应用,用户也无需重新产生 MMCM/PLL,与上述方法类似,可以在布局布线后的 Device View 上直接修改。

移动/交换 cells

移动/交换 cells 是对 FF/LUT 进行的 ECO 操作中最基本的一个场景,目前也只有这种情况可以通过图形化实现。如要删减 cells 等则只能通过 Tcl 命令来进行。

具体操作方法也相当简便,要互换 cells 位置的情况下,只要在 Device View 上选中需要的那两个 cells,如上图所示的两个 FFs,然后右键调出菜单,选择 Swap Locations 即可。若要移动 cells 则更简单,直接在图 中选中 FF 拖移到新的位置即可。

当用户移动或改变了 cells 的位置后会发现与其连接的 nets 变成了黄色高亮显示,表示这些 nets 需要重新布线。这时候需要做的就是在图中选中这些 nets 然后右键调出菜单,选择 Route 进行局部布线。

局部布线后一定要记得在 Tcl Console 中使用 report_route_status 命令检查布线情况,确保没有未完成布线(unrouted)或是部分未完成布线(partial routed)的 nets 存在。给这个命令加上选项则可以报告出更细致的结果,如下图所示。

如果换个稍复杂些的 Tcl 命令配合图形化显示,更加直观的同时,也可以方便右键调出命令进行针对性的局部布线。

手动布线

手动布线是一种非常规的布线方式,一次只能针对一根 net 在图形化界面下进行。所谓手动布线,除了完全手动一个节点一个节点的选择外,也支持工具自动选择资源来布线。通常我们并不建议全手动的方式, Vivado 是时序驱动的工具,所以其自动选择的布线结果已经是遵循了时序约束下的最佳选择。

 Device View 中选择一根没有布线或是预先 Unroute 过的 net(显示为红色高亮),右键调出菜单并选择 Enter Assign Routing Mode… 便可进入手动布线模式。

复杂的 ECO场景

篇幅过半,一直在铺垫,其实最有实践意义的 ECO 还没提到。相信大部分用户最怀念 FPGA Editor 中的 一个功能就是 probe 了,如何快速地把一根内部信号连接到 FPGA 管脚上,无需重新布局布线,直接更新 bit 文件后下载调试。曾经数次被客户问及,很多人还为 Vivado 中不支持这样的做法而深表遗憾。

其实这样类似的功能在 Vivado 中一直支持,唯一的问题是暂时还没有图形化界面可以一键操作(相关开 发工作已经在进行中)。但受益于 Tcl 的灵活多变,我们可以更有针对性地实现 probe 功能,效率也更高。

Tcl 操作命令

 UG835 中把 Vivado 支持的 Tcl 命令按照 Category 分类,这些列于 Netlist 目录下的命令就是实现 ECO 需要用到的那些。

通常涉及到增减 cells  ECO 基本分为三步实现:首先用create_cell / create_net 等创建相关 cell / net,然后用 disconnect_net / connect_net 等命令修正因为 cell  net 的改动而影响到的连接关系,最后用 route_design 加选项完成局部布线。

不同的 Vivado 版本对此类 ECO 修改有稍许不同的限制,例如在 2014.1 之后的版本上,需要在改变 cell 的连接关系前先用 unplace_cell  cell 从当前的布局位置上释放,在完成新的连接关系后,再用 place_cell 放到新的布局位 置上。

具体操作上可以根据 Vivado 的提示或报错信息来改动具体的 Tcl 命令,但 操作思路和可用的命令相差无几。

Add Probe

这是一个在 Vivaod 上实现 probe 功能的 Tcl 脚本,已经写成了 proc 子程序,简单易懂。可以直接调用,也可以做成 Vivado 的嵌入式扩展命令。调用其生成 probe 只需先 source 这个脚本,然后按照如下所示在 Tcl Console 中输入命令即可。

该脚本已经在 Vivado2014.3  2014.4 上测试过,一次只能完成一个 probe 的添加,而且必须按照上述顺 序输入信号名,管脚位置,电平标准和 probe 名。因为不具备预检功能,可能会碰到一些报错信息而导致无法继续。例如选择的信号是只存在于 SLICE 内部的 INTRASITE 时,则无法拉出到管脚。再比如输入命令时拼错了电平标准等,也会造成 Tcl 已经部分修改 Vivado 数据库而无法继续的问题。此时只能关闭已经打开的 DCP 并选择不保存而重新来过。

ECO  Vivado 上的发展

经过了两年多的发展,在 Vivado 上实现 ECO 已经有了多种方式,除了前面提到的图形化上那些可用的技巧,还有用户自定义的 Tcl 命令和脚本等。随着 Xilinx Tcl Store 的推出,用户可以像在 App Store 中下载使用 app 一样下载使用 Tcl 脚本,简化了 Tcl  Vivado 上应用的同时,进一步扩展了 Tcl 的深入、精细化使用,其 中就包括 Tcl  ECO 上的应用。

目前 Vivado 2014.4 版本上新增了很多有用的脚本。安装好 Vivado 后,只需打开 Tcl Store,找到 Debug Utilities,点击 Install 稍等片刻,即可看到一个 add_probe  Tcl proc 被安装到了你的 Vivado 中。

这个 add_probe 是在上述 addProbe 例子的基础上扩展而来,不仅可以新增 probe,而且可以改变现有 probe 连接的信号。此外,这个脚本采用了 argument 写法,点击程序可以看 help,所以不一定要按照顺序输入信号、电平标准等选项,输错也没有问题。另外增加了预检和纠错功能,碰到问题会报错退出而不会改变 Vivado 数据库,效率更高。

此外,Tcl Store 上还有很多其它好用的脚本,欢迎大家试用并反馈给我们宝贵意见。虽然里面关于ECO 的脚本还很少,但我们一直在补充。此外 Tcl Store 是一个基于 GitHub 的完全开源的环境,当然也欢迎大家上传自己手中有用的 Tcl 脚本,对其进行补充。

总体来说,ECO 是一个比较大的命题,因为牵扯到的改动需求太多,其实也很难限制在一个 GUI 界面中实现。这篇文章的目的就是为了让大家对在 FPGA 上实现 ECO 有个基本的认识,梳理看似复杂无序的流程,所谓观一叶而知秋,窥一斑而见全豹,希望能带给更多用户信心,用好 Vivado 其实一点都不难。

—— Ally Zhou 2015-2-9  Xilinx 上海 Office

本文来源:FPGA算法工程师


END


往期精选 

 
 

【免费】FPGA工程师招聘平台

今日说“法”:FPGA芯片如何选型?

SANXIN-B01开发板verilog教程V3电子版

学员笔记连载 | FPGA Zynq 千兆以太网回环

就业班学员学习笔记分享:FPGA之HDMI、以太网篇

求职面试 | FPGA或IC面试题最新汇总篇

FPGA项目开发:204B实战应用-LMK04821代码详解(二)

项目合作 | 承接FPGA项目公告

资料汇总|FPGA软件安装包、书籍、源码、技术文档…(2023.01.02更新)

FPGA就业班,2023.04.15开班,系统性学习FPGA,高薪就业,线上线下同步!


FPGA技术江湖广发江湖帖

无广告纯净模式,给技术交流一片净土,从初学小白到行业精英业界大佬等,从军工领域到民用企业等,从通信、图像处理到人工智能等各个方向应有尽有,QQ微信双选,FPGA技术江湖打造最纯净最专业的技术交流学习平台。


FPGA技术江湖微信交流群

加群主微信,备注姓名+公司/学校+岗位/专业进群


FPGA技术江湖QQ交流群

备注姓名+公司/学校+岗位/专业进群

FPGA技术江湖 任何技术的学习就好比一个江湖,对于每一位侠客都需要不断的历练,从初入江湖的小白到归隐山林的隐世高人,需要不断的自我感悟自己修炼,让我们一起仗剑闯FPGA乃至更大的江湖。
评论
  • 应用趋势与客户需求,AI PC的未来展望随着人工智能(AI)技术的日益成熟,AI PC(人工智能个人电脑)逐渐成为消费者和企业工作中的重要工具。这类产品集成了最新的AI处理器,如NPU、CPU和GPU,并具备许多智能化功能,为用户带来更高效且直观的操作体验。AI PC的目标是提升工作和日常生活的效率,通过深度学习与自然语言处理等技术,实现更流畅的多任务处理、实时翻译、语音助手、图像生成等功能,满足现代用户对生产力和娱乐的双重需求。随着各行各业对数字转型需求的增长,AI PC也开始在各个领域中显示
    百佳泰测试实验室 2025-02-27 14:08 255浏览
  • 1,微软下载免费Visual Studio Code2,安装C/C++插件,如果无法直接点击下载, 可以选择手动install from VSIX:ms-vscode.cpptools-1.23.6@win32-x64.vsix3,安装C/C++编译器MniGW (MinGW在 Windows 环境下提供类似于 Unix/Linux 环境下的开发工具,使开发者能够轻松地在 Windows 上编写和编译 C、C++ 等程序.)4,C/C++插件扩展设置中添加Include Path 5,
    黎查 2025-02-28 14:39 140浏览
  • 在2024年的科技征程中,具身智能的发展已成为全球关注的焦点。从实验室到现实应用,这一领域正以前所未有的速度推进,改写着人类与机器的互动边界。这一年,我们见证了具身智能技术的突破与变革,它不仅落地各行各业,带来新的机遇,更在深刻影响着我们的生活方式和思维方式。随着相关技术的飞速发展,具身智能不再仅仅是一个技术概念,更像是一把神奇的钥匙。身后的众多行业,无论愿意与否,都像是被卷入一场伟大变革浪潮中的船只,注定要被这股汹涌的力量重塑航向。01为什么是具身智能?为什么在中国?最近,中国具身智能行业的进
    艾迈斯欧司朗 2025-02-28 15:45 221浏览
  • 请移步 gitee 仓库 https://gitee.com/Newcapec_cn/LiteOS-M_V5.0.2-Release_STM32F103_CubeMX/blob/main/Docs/%E5%9F%BA%E4%BA%8ESTM32F103RCT6%E7%A7%BB%E6%A4%8DLiteOS-M-V5.0.2-Release.md基于STM32F103RCT6移植LiteOS-M-V5.0.2-Release下载源码kernel_liteos_m: OpenHarmon
    逮到一只程序猿 2025-02-27 08:56 195浏览
  • 一、VSM的基本原理震动样品磁强计(Vibrating Sample Magnetometer,简称VSM)是一种灵敏且高效的磁性测量仪器。其基本工作原理是利用震动样品在探测线圈中引起的变化磁场来产生感应电压,这个感应电压与样品的磁矩成正比。因此,通过测量这个感应电压,我们就能够精确地确定样品的磁矩。在VSM中,被测量的样品通常被固定在一个震动头上,并以一定的频率和振幅震动。这种震动在探测线圈中引起了变化的磁通量,从而产生了一个交流电信号。这个信号的幅度和样品的磁矩有着直接的关系。因此,通过仔细
    锦正茂科技 2025-02-28 13:30 100浏览
  • 美国加州CEC能效跟DOE能效有什么区别?CEC/DOE是什么关系?美国加州CEC能效跟DOE能效有什么区别?CEC/DOE是什么关系?‌美国加州CEC能效认证与美国DOE能效认证在多个方面存在显著差异‌。认证范围和适用地区‌CEC能效认证‌:仅适用于在加利福尼亚州销售的电器产品。CEC认证的范围包括制冷设备、房间空调、中央空调、便携式空调、加热器、热水器、游泳池加热器、卫浴配件、光源、应急灯具、交通信号模块、灯具、洗碗机、洗衣机、干衣机、烹饪器具、电机和压缩机、变压器、外置电源、消费类电子设备
    张工nx808593 2025-02-27 18:04 120浏览
  • RGB灯光无法同步?细致的动态光效设定反而成为产品客诉来源!随着科技的进步和消费者需求变化,电脑接口设备单一功能性已无法满足市场需求,因此在产品上增加「动态光效」的形式便应运而生,藉此吸引消费者目光。这种RGB灯光效果,不仅能增强电脑周边产品的视觉吸引力,还能为用户提供个性化的体验,展现独特自我风格。如今,笔记本电脑、键盘、鼠标、鼠标垫、耳机、显示器等多种电脑接口设备多数已配备动态光效。这些设备的灯光效果会随着音乐节奏、游戏情节或使用者的设置而变化。想象一个画面,当一名游戏玩家,按下电源开关,整
    百佳泰测试实验室 2025-02-27 14:15 137浏览
  • Matter 协议,原名 CHIP(Connected Home over IP),是由苹果、谷歌、亚马逊和三星等科技巨头联合ZigBee联盟(现连接标准联盟CSA)共同推出的一套基于IP协议的智能家居连接标准,旨在打破智能家居设备之间的 “语言障碍”,实现真正的互联互通。然而,目标与现实之间总有落差,前期阶段的Matter 协议由于设备支持类型有限、设备生态协同滞后以及设备通信协议割裂等原因,并未能彻底消除智能家居中的“设备孤岛”现象,但随着2025年的到来,这些现象都将得到完美的解决。近期,
    华普微HOPERF 2025-02-27 10:32 214浏览
  • 构建巨量的驾驶场景时,测试ADAS和AD系统面临着巨大挑战,如传统的实验设计(Design of Experiments, DoE)方法难以有效覆盖识别驾驶边缘场景案例,但这些边缘案例恰恰是进一步提升自动驾驶系统性能的关键。一、传统解决方案:静态DoE标准的DoE方案旨在系统性地探索场景的参数空间,从而确保能够实现完全的测试覆盖范围。但在边缘案例,比如暴露在潜在安全风险的场景或是ADAS系统性能极限场景时,DoE方案通常会失效,让我们看一些常见的DoE方案:1、网格搜索法(Grid)实现原理:将
    康谋 2025-02-27 10:00 252浏览
  • 在物联网领域中,无线射频技术作为设备间通信的核心手段,已深度渗透工业自动化、智慧城市及智能家居等多元场景。然而,随着物联网设备接入规模的不断扩大,如何降低运维成本,提升通信数据的传输速度和响应时间,实现更广泛、更稳定的覆盖已成为当前亟待解决的系统性难题。SoC无线收发模块-RFM25A12在此背景下,华普微创新推出了一款高性能、远距离与高性价比的Sub-GHz无线SoC收发模块RFM25A12,旨在提升射频性能以满足行业中日益增长与复杂的设备互联需求。值得一提的是,RFM25A12还支持Wi-S
    华普微HOPERF 2025-02-28 09:06 143浏览
  •           近日受某专业机构邀请,参加了官方举办的《广东省科技创新条例》宣讲会。在与会之前,作为一名技术工作者一直认为技术的法例都是保密和侵权方面的,而潜意识中感觉法律有束缚创新工作的进行可能。通过一个上午学习新法,对广东省的科技创新有了新的认识。广东是改革的前沿阵地,是科技创新的沃土,企业是创新的主要个体。《广东省科技创新条例》是广东省为促进科技创新、推动高质量发展而制定的地方性法规,主要内容包括: 总则:明确立法目
    广州铁金刚 2025-02-28 10:14 103浏览
  • 更多生命体征指标风靡的背后都只有一个原因:更多人将健康排在人生第一顺位!“AGEs,也就是晚期糖基化终末产物,英文名Advanced Glycation End-products,是存在于我们体内的一种代谢产物” 艾迈斯欧司朗亚太区健康监测高级市场经理王亚琴说道,“相信业内的朋友都会有关注,最近该指标的热度很高,它可以用来评估人的生活方式是否健康。”据悉,AGEs是可穿戴健康监测领域的一个“萌新”指标,近来备受关注。如果站在学术角度来理解它,那么AGEs是在非酶促条件下,蛋白质、氨基酸
    艾迈斯欧司朗 2025-02-27 14:50 400浏览
  • 2025年2月26日,广州】全球领先的AIoT服务商机智云正式发布“Gokit5 AI智能体开发板”,该产品作为行业首个全栈式AIoT开发中枢,深度融合火山引擎云原生架构、豆包多模态大模型、扣子智能体平台和机智云Aiot开发平台,首次实现智能体开发全流程工业化生产模式。通过「扣子+机智云」双引擎协同架构与API开放生态,开发者仅需半天即可完成智能体开发、测试、发布到硬件应用的全流程,标志着智能体开发进入分钟级响应时代。一、开发框架零代码部署,构建高效开发生态Gokit5 AI智能体开发板采用 “
    机智云物联网 2025-02-26 19:01 162浏览
  •         近日,广电计量在聚焦离子束(FIB)领域编写的专业著作《聚焦离子束:失效分析》正式出版,填补了国内聚焦离子束领域实践性专业书籍的空白,为该领域的技术发展与知识传播提供了重要助力。         随着芯片技术不断发展,芯片的集成度越来越高,结构也日益复杂。这使得传统的失效分析方法面临巨大挑战。FIB技术的出现,为芯片失效分析带来了新的解决方案。它能够在纳米尺度上对芯片进行精确加工和分析。当芯
    广电计量 2025-02-28 09:15 116浏览
  • 振动样品磁强计是一种用于测量材料磁性的精密仪器,广泛应用于科研、工业检测等领域。然而,其测量准确度会受到多种因素的影响,下面我们将逐一分析这些因素。一、温度因素温度是影响振动样品磁强计测量准确度的重要因素之一。随着温度的变化,材料的磁性也会发生变化,从而影响测量结果的准确性。因此,在进行磁性测量时,应确保恒温环境,以减少温度波动对测量结果的影响。二、样品制备样品的制备过程同样会影响振动样品磁强计的测量准确度。样品的形状、尺寸和表面处理等因素都会对测量结果产生影响。为了确保测量准确度,应严格按照规
    锦正茂科技 2025-02-28 14:05 134浏览
我要评论
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦