set_multicycle_path的使用

news/2025/1/21 15:48:32/文章来源:https://www.cnblogs.com/sasasatori/p/18683690

在设计中有时会碰到部分难以优化的大块组合逻辑,例如我们这次的设计中调用了DW的浮点sqrt的IP,尽管在综合时,工具已经最大effort去简化逻辑,路径上的cell已经基本上全都ulvt了,timing仍然无法在一个周期内满足。

如果是自己设计的电路模块,这种情况下或许可以拆分流水线来处理,但DW IP我们也无法修改。幸运的是,这次的协处理器接口刚好是一个2 cycle的timing,即实际上只要在2 cycle前搞定数据并满足setup,就能正常写入数据。因此像这种情况就完全可以使用set_multicycle_path

set_multicycle_path的原理如下图所示,针对电路中的一些慢速组合逻辑块,可以告诉工具,不按照默认情况检查其下一个cycle的setup和hold,转而检查第n个cycle后的setup和hold。

image

以此处为例,默认情况下,FF4到FF5的timing path会检查当前上升沿的FF4/Q->slow logic->FF5/D这段路径上的传播是否能够满足FF5的下一个上升沿的setup。但假设设计允许FF5在下一个时钟沿采不到正确数据,要再过一个cycle才采到,那么就可以通过set_multicycle_path -setup 2 -from [get_cells FF4] -to [get_cells FF5]来进行指定,这里的-setup代表设置的是setup,2代表着检查往后第2个cycle的上升沿,-from-to参数指定了起始的寄存器和终点的寄存器,在这个例子里就是FF4和FF5:

image

在设置了新的setup关系后,实际上hold关系也需要重新检查。工具默认情况下检查hold的起点会跟着一起跑到第二个cycle去,这样实际上放松了hold的检查,也与实际上数据开始产生的时间点不符,如下图所示,当setup被设置到第2个cycle检查时,hold的起点也会被设置到下一个cycle开始。

image

因此,除了setup之外,也需要额外对hold进行约束,可以通过set_multicycle_path -hold 1 -from [get_cells FF4] -to [get_cells FF5],这里的-hold代表设置的是hold,1代表着将hold的起点向前移动一个cycle。

image

如果是更久的检查,那么设置也要相应调整,例如一个先后5cycle的情况如下图:

image

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/872838.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

双栈 隧道

运行模式 Dual-Stack(双栈)、Tunneling(隧道)、Translation(NAT)Dual-Stack:双栈设备同时运行IPv4和IPv6Tunneling 隧道,把IPv6的数据包封装在IPv4中隧道的起点的IPv4地址必须为手工配置,根据隧道终点的IPv4地址分为两类:

顶天立地系列之一 | 数智技术的产学研融合与行业应用高峰论坛在苏成功举办

1月15日下午,由璞华科技有限公司、武汉大学苏州研究院、苏州工业园区服务贸易协会联合主办的“数智技术的产学研融合与行业应用高峰论坛”在苏州敬斋会议中心成功召开。此次论坛旨在促进数智技术的产学研融合,探索硬核技术在行业的应用路径,吸引了众多业界专家、学者和企业代…

璞华科技携手云南白药、武汉大学运用AI打造世界级灯塔工厂

近日,璞华科技在云南白药集团携手武汉大学三方共同举办了“聚焦白药快消品基于灯塔及未来的AI探讨”技术研讨会。会议旨在通过深入探讨白药快消品行业的智能化转型、灯塔工厂的应用、AI 技术的研发与创新作用以及未来发展趋势等方面,为白药快消品行业的转型升级和可持续发展提…

Linux上使用docker部署.net8项目详细教程

在docker上部署自己的.net8 webapi,以腾迅linux云服务为例: docker的学习和具体安装可以访问官网地址:Docker官方安装教程文档网址:https://docs.docker.com/engine/install/centos/ 1.安装docker 1.1 查看docker是否已安装: 命令:docker -v 如果显示版本,说明已经安装成…

zookeeper安装部署(单节点)

环境: OS:Centos 7 zookeeper:3.8.41.获取安装介质 https://zookeeper.apache.org/releases.html#download 下载稳定版本 wget https://dlcdn.apache.org/zookeeper/zookeeper-3.8.4/apache-zookeeper-3.8.4-bin.tar.gz2.安装[root@node1 /]# cd /soft[root@node1 soft]# tar -…

elasticsearch 数据同步

数据同步 elasticsearch中的酒店数据来自于mysql数据库,因此mysql数据发生改变时,elasticsearch也必须跟着改变,这个就是elasticsearch与mysql之间的数据同步。 异步通知流程如下:hotel-admin对mysql数据库数据完成增、删、改后,发送MQ消息 hotel-demo监听MQ,接收到消息后…

CSS实现各种形状

CSS3的一个非常酷的特性是允许我们创建各种规则和不规则形状的图形,从而可以减少图片的使用。以前只能在Photoshop等图像编辑软件中制作的复杂图形现在使用CSS3就可以完成了。通过使用新的CSS属性,像transform和border-radius,我们可以创建非常漂亮和复杂的图形效果。 圆形 …

如何防止网络钓鱼攻击

一、什么是网络钓鱼 ? 网络钓鱼是指试图通过操纵受害者来窃取敏感信息的行为。攻击者伪装成合法来源并发送伪装的消息,通常是通过电子邮件,希望您点击链接或打开附件。网络钓鱼者使用社会工程学并依靠人为错误来诱捕受害者。根据 AAG 最近的一项研究,钓鱼仍然是最常见的网络…

IAT 隐藏和混淆

一、介绍 导入地址表 (IAT) 包含有关 PE 文件的信息,例如使用过的函数和导出它们的 DLL。此类信息可用于对二进制文件进行签名和检测,如下图所示PE 文件导入被认为高度可疑的函数二、隐藏混淆方法 (1)IAT 隐藏和混淆—方法 1 自定义函数可以在运行时使用 GetProcAddress、G…

React席哪个能优化

使用map + keyuseMemo,useCallbak组件Fragement异步组件lazy路由懒加载PureComponent,meno拓展时间分片,延迟加载SSR本作品采用 知识共享署名-非商业性使用 2.5 中国大陆许可协议进行许可。

【Unity游戏开发】基于xLua构建一个简单的3D游戏框架

一、xLua简介 xLua是基于Lua语言的开源插件,能够支持在Unity中嵌入Lua脚本(Lua脚本支持热更,适用于游戏的业务逻辑开发和维护) xLua源码地址 二、构建方法新建一个Unity项目(模板选择Universal 3D(URP))下载xLua源码,将Assets目录及其子目录下的全部文件拷贝到Unity项…

Windows RocketMQ 安装-截止当前最新版本(RocketMQ-5.3.1)图文教程

Windows RocketMQ 安装(图文教程) Windows RocketMQ 安装,截止当前最新版本(RocketMQ-5.3.1)图文教程,本文只是最简单的安装方法,旨在能快速使用,若需要更多的配置,则需要你自行查阅官方文档,或互联网搜索答案咯,哈哈哈哈 前言 本文中所有的路径,包括 JAVA 环境,都不…