首页 > 其他分享 >用ECO脚本在网表插入LUT1

用ECO脚本在网表插入LUT1

时间:2024-04-02 10:23:19浏览次数:13  
标签:LUT1 ECO i0 bus clkx meta new 网表 net

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

这里带大家一起体验一下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.504

路径的原理图

布线位置为

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}

 

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

create_cell -reference LUT1 clkx_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]

 

可以看到这个新创建的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}

 

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

布线效果

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

15. 生成bit文件

write_bitstream test.bit

 

标签:LUT1,ECO,i0,bus,clkx,meta,new,网表,net
From: https://www.cnblogs.com/stephenkang/p/18109110

相关文章

  • 【THM】Active Reconnaissance(主动侦察)-初级渗透测试
    介绍在网络安全模块的第一个房间里,我们主要进行被动侦察。在第二个房间中,我们重点关注主动侦察以及与之相关的基本工具。我们学习使用网络浏览器来收集有关我们目标的更多信息。此外,我们讨论使用简单的工具(例如ping、traceroute、telnet和)nc来收集有关网络、系统和服务的信息......
  • D11-StyleControls安装到使用
    1.首先网上下载D11--StyleControls控件2.得到这个BPL文件后打开D11-选择Component-installpackages...--Add找到你下载的文件目录--直到安装完成--ok3.安装完成后目录下就会出现下图文件,当然这个时候还不能直接使用,要不然编译会出错。4.找到StyleControls_D11Alexandria.dpk(......
  • vivado通过eco修改网表加快调试
    在FPGA工程中,在调试过程中需要插入ila来验证设计的准确性,但一次验证不能达到设计的初衷,需要反复修改ila来定位问题,往往一个大工程编译、布线时间较长,反复定位问题非常耗费时间。xilinx系列的vivado16.4以上版本支持了类似ic设计的ECO功能。1、dcp文件在implement成功后,/xxx.runs......
  • Postfix + Dovecot IMAP 服务器的终极指南,完整支持 SPF、DKIM 和 DMARC,以及多域名设
    邮件服务器配置指南本指南将带您完成Postfix+DovecotIMAP服务器的设置,支持SPF、DKIM和DMARC,还将提供多域名配置的额外指导。在本指南中,domain.com将作为您的根域名,mail.domain.com将作为您邮件服务器的主机名。0x01添加DNS记录在您的域名下添加如下DNS记录:mailI......
  • Windows安装DevEco Studio
    1.在https://developer.harmonyos.com网站上注册账号;2.下载DevEcoStudio安装文件,选择Windows64位版本;3.运行安装文件,开始安装;4.选择Donotimportsettings;5.运行DevEcoStudio,安装Node.js和Ohpm;6.下载SDK; 7.创建一个鸿蒙项目,等待下载Gradle;8.......
  • EasyRecovery15最新破解版注册机激活码
    EasyRecovery是一款在市场上广受欢迎的数据恢复软件,具备许多强大而实用的功能。首先,它支持多种媒体类型的数据恢复,包括硬盘驱动器、存储设备、光学媒体、多媒体/移动设备以及RAID系统等。这意味着,无论数据是从哪种类型的设备中丢失的,都有机会通过EasyRecovery进行恢复。在使用......
  • List和ObservableCollection的转换
    1、我们后台查询全部List数据的时候,前台需要ObservableCollection展示这个时候List需要转换成ObservableCollectionpublicstaticObservableCollection<T>ToObservableCollection<T>(thisIEnumerable<T>source){if(source==null){thrownewArg......
  • NewStarCTF-secondweek
    一、新建Word文档1.doc文档隐写,将如图所示的设置打开,即可看到文字。2.新佛曰加密,在线网站解密。(http://hi.pcmoe.net/buddha.html)二、永不消逝的电波1.附件是个音频,audacity打开,可以看到明显的长短波。2.莫斯密码解密即可。源报文:..-./.-../.-/--./-/...././-..././.../......
  • UE4 C++ Widget的NativeConstruct 与 NativePreConstruct
    构造函数由于Widget是由UE的反射系统创建的,其生命周期由UE引擎管理,所以并不存在构造函数,UE为Widget类定义了两个虚函数NativeConstruct与NativePreConstruct来充当构造函数的作用。而这两个函数的调用都必须在Widget被实例化之后才能进行调用如何在Widget中获取角色在蓝图节......
  • Ask HN: Recommended resources to learn the Linux kernel and OS theory?
     https://news.ycombinator.com/item?id=20809666 SorecentlyIdidacoupleofminorpatchesontheFreeBSDandNetBSDkernelsandplayedwithsomelinuxkernel.Itwasthefirsttimeinaafewyears,I'vebeenexcitedaboutprogramming.Unfortunat......