首页 > 其他分享 >层次化综合中的uniquify和set_dont_touch问题

层次化综合中的uniquify和set_dont_touch问题

时间:2025-01-13 22:22:54浏览次数:1  
标签:层次化 ... set dont uniquify module touch

在之前的博客里介绍过了层次化的综合方法。

但在使用该方法时有一个特殊问题需要注意,对于需要多次例化的模块来说,直接设置set_dont_touch属性会导致pr阶段时工具报ununique问题。

参考如下文章,可以知道问题的来源是如果Non_uniquified 网表,多次实例化模块在网表中只有一个定义,而多次引用同一定义的各个实例内部的flop都需要各自的时钟,从而时钟树上这些模块的clock_net名是不同的,来自layout 工具的时钟树的信息和DC中原网表无法对应,所以会出现两个不同的net和一个相同的port连结,这是不允许的。

https://blog.csdn.net/hepiaopiao_wemedia/article/details/123334713

https://blog.csdn.net/kevindas/article/details/115920834

尽管在综合阶段时,compile_ultra命令会自带uniquify的功能,但如果在约束时就对网表设置了set_dont_touch属性,那么compile_ultra阶段时的uniquify功能就会失败。因此解决的方案其实也很简单,只需要在set_dont_touch属性前运行uniquify,完成多次实例化模块的定义重命名后,再设置set_dont_touch属性就可以了。

通过对比网表,对于non_uniquified网表来说,多个被实例化的模块只能找到一个定义,例如

module U (...)
...
endmodule

module TOP (...)

U U1 ();

U U2 ();

...
endmodule

而uniquify之后就可以发现定义也区分开了:

module U_1 (...)
...
endmodule

module U_2 (...)
...
endmodule

module TOP (...)

U_1 U1 ();

U_2 U2 ();

...
endmodule

因此也不会再出现之前的ununique问题。

标签:层次化,...,set,dont,uniquify,module,touch
From: https://www.cnblogs.com/sasasatori/p/18669530

相关文章

  • 详解Redis的Set类型及相关命令
    目录SADDSMEMEBERSSISMEMBERSCARDSPOPSMOVESREMSINTERSINTERSTORESUNIONSUNIONSTORESDIFFSDIFFSTORE内部编码应用场景集合类型是保存多个字符串类型的元素的,但和列表类型不同的是,集合中元素之间是⽆序的,且元素不允许重复。⼀个集合中最多可以存储个元素。......
  • NfcF.setTimeout
    NfcF.setTimeout(Objectobject)基础库2.11.2开始支持,低版本需做兼容处理。以Promise风格调用:不支持小程序插件:支持微信iOS版:不支持微信Android版:支持相关文档:近场通信(NFC)功能描述设置超时时间参数Objectobject属性类型默认值必填说明......
  • [PCIE5.0] 4.2.4.9 Reset
    本小节主要描述了两种重置机制:基础重置(FundamentalReset)和热重置(HotReset),以及它们在PCIe协议中如何影响接收端(Receiver)和发送端(Transmitter)的行为。1.基础重置(FundamentalReset)•基础重置是PCIe系统中一种重要的重置操作,它通常是在系统启动时进行,或者在需要恢复系统......
  • Set 系列集合的深入理解与应用
    在Java中,Set系列集合是一个非常重要的集合框架,它提供了多种实现,每个实现都具有独特的特性,适用于不同的场景。本文将详细介绍Set系列集合的相关知识,包括其通用特性、各种实现类及其底层原理。一、Set集合的通用特性Set集合具有以下几个显著的特点:无序:这意味着元素的存......
  • Towards Better Multi-task Learning: A Framework for Optimizing Dataset Combinati
    本文是LLM系列文章,针对《TowardsBetterMulti-taskLearning:AFrameworkforOptimizingDatasetCombinationsinLargeLanguageModels》的翻译。迈向更好的多任务学习:一个优化大型语言模型中数据集组合的框架摘要1引言2相关工作3框架4实验设置5结果6......
  • 请说说setData的操作过程
    setData的操作过程在前端开发中,特别是在小程序开发中,扮演着至关重要的角色。它是将数据从逻辑层发送到视图层并进行更新的关键步骤。以下是setData操作过程的详细解释:一、准备数据在逻辑层中,开发者需要准备好要更新的数据。这些数据通常以对象的形式存在,其中键(key)对应着要更新的......
  • unity assetbundle 加载图集的所有sprite图片
     在Unity中,使用AssetBundle加载图集(Atlas)并获取其中的所有Sprite图片,通常需要以下步骤:1.打包图集到AssetBundle首先,确保你的图集(Atlas)已经被打包到AssetBundle中。图集通常是一个包含多个Sprite的纹理(Texture),并且每个Sprite都有对应的元数据(如UV坐标、Pi......
  • RepPoints: Point Set Representation for Object Detection—用于目标检测的点集表示
    用于目标检测的点集表示-RepDet全网最全InternationalConferenceonComputerVision(ICCV2019)对这种检测模型生成的点进行基于点的匹配过程完成跟踪但是可否保证随着人的运动或者形状的改变每次选取的关键点是否一致呢?文章目录用于目标检测的点集表示-RepDet全......
  • Packet for query is too large . You can change this value on the server by setti
    如果写入大数据时,因为默认的配置太小,插入和更新操作会因为max_allowed_packet参数限制,而导致失败。mysql根据max_allowed_packet参数来限制server接受的数据包大小。当一个MySQL客户或mysqld服务器得到一个max_allowed_packet个字节长的包,它发出一个Packettoolarge错误并终......
  • CheeseTools:红队内网横向
    免责声明仅限用于技术研究和获得正式授权的攻防项目,请使用者遵守《中华人民共和国网络安全法》,切勿用于任何非法活动,若将工具做其他用途,由使用者承担全部法律及连带责任,作者及发布者不承担任何法律连带责任项目介绍这个库是基于已经存在的MiscTool制作的,所以非常感谢rasta-mo......