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

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

3天内不再提示

设计层次结构提高结果质量和工具运行时

星星科技指导员 来源:cadence 作者:Girish Vaidyanathan 2023-04-20 10:42 次阅读

对相似事物进行分区和分组有助于人类分解一个大问题,以便更容易地理解它。使用命名约定标记组有助于通过目录轻松访问所需信息电子电路设计师已将这一想法扩展到他们管理设计数据的方式中。

根据功能将大型子系统划分为块具有相同的目的。电路设计人员在设计的逻辑视图上进行分区。在每个块中再次划分会导致设计层次结构的概念,这自电子电路和系统设计的早期就很普遍。设计人员通过识别重复的元素并将它们分组到小的子块中,使层次结构受益,这样子块只需要构建一次,并且可以多次重复使用。

pYYBAGRAppqAbvkCAACpe81nIeA150.png

当设计完全手动时,尽可能多地使用设计层次结构来增加重用量。然而,随着数字系统变得越来越大,优化设计及其实现的工具变得更加智能,设计层次结构仅在RTL级别保持相关性,用户在调试期间手动构建和理解设计。

poYBAGRAppyALWYJAADVPrJq-r8488.png

层次结构在布局中不再变得至关重要,因为:

当工具可以快速轻松地重做工作时,不需要重用

当布局没有层次结构时,工具具有更大的自由度来创建更好的结果质量

由于在大型数字设计中无法目视检查和调试布局,因此用户依靠检查器和自动化来验证结果质量,这在平面布局上更简单

是时候在定制设计中采用类似的方法了吗?

自动放置和路线

自定义块的增长程度不如他们的数字表亲,但在过去三十年中,实现它们的工具肯定变得更加智能。先进的工艺节点限制了选择的自由,增加了设计规则的复杂性,为基于网格和基于行的布局方法铺平了道路。通过自动将实例和连线捕捉到网格,可以更快地创建自定义布局。在基于行的布局结构上自动填充空白空间已变得可行,从而解决了密度规则合规性问题,即使对于设备级布局也是如此。

网格布局方法还简化了自动放置和布线(P&R)问题。自动P&R产生出色的结果,因为布局变得更加结构化,路由发生在轨道上。如今,完全通过约束驱动的自动化来创建流片质量、DRC 校正、匹配和对称的模拟和自定义数字布局是可行的。布局设计人员就驱动工具的适当物理约束做出决策。Cadence Virtuoso Studio中的自动P&R流程将各种单独的功能和引擎集成到一个无缝的可定制流程中,以满足不同设计风格的布局创建。
由于工具可以使用约束重新创建布局,因此不再需要对布局进行分区以重用微小的子单元格。尽管如此,仍然需要许多自定义布局设计器来检查自动化的结果,在出现故障时对其进行调试,并创建或更新约束以重新运行自动化。

并发布局编辑

与过去的其他数据库一样,OpenAccess 保留了一个设计作为文件存储在磁盘上的限制,并且一次只能由一个人编辑。文件由在布局编辑器中打开它的第一个人锁定。因此,即使大型自定义布局可以通过自动化工具实现扁平化,由多个用户对其进行审查和修改也是一个挑战。

Virtuoso Layout Suite(Virtuoso Studio的一部分)中的并发布局编辑功能优雅地解决了这个问题。一个布局可以由区块所有者划分为多个部分,并分配给不同的用户。用户可以打开和编辑其分区,而不会中断其他人的工作。他们可以查看其他分区并根据需要引入更改。区块所有者可以查看其他用户在其相应分区上添加的更改,并将更改集成到原始布局中。区块所有者还可以放弃一些编辑,并通知分区所有者接受这些编辑的挑战。

设计规划

尽管布局层次结构是不必要的,但分区仍然具有其重要性。在自定义布局中,电路的某些部分需要小心保护,使其免受其他部分的影响。并且有些部分需要保持在一起才能更好地匹配。由于电路设计人员手动将设计的逻辑表示形式创建为原理图或网表,因此无法避免设计层次结构。但是,在布局中实现它们可能比将元素分组到逻辑层次结构中更好的方法。手动完成布局时,设计人员不关心将逻辑层次结构与物理层次结构匹配。相反,他们在布局中创建设计层次结构,并依靠布局与原理图(LVS)来确保两者匹配。事实上,由于这种不匹配的逻辑和物理层次结构,LVS工具在电路设计流程中的重要性仍然很高。

在逻辑和物理设计层次结构完美匹配的理想世界中,用户可以依靠Virtuoso布局套件中的原理图驱动布局检查来确保设计始终保持LVS正确。

这个问题的正确解决方案是什么?

Virtuoso Layout Suite 中的虚拟层次结构概念允许布局设计人员在布局中创建与原理图不同的元素分组,但仍保持 SDL 对应关系。使用虚拟层次结构,布局设计人员可以对设计进行分区,并创建组和子组以分隔需要隔离的布局。从OpenAccess数据库的角度来看,布局仍然是平面的,因为只有一个布局单元格视图。虚拟层次结构有助于布局实施过程中的自动化工具。

结论

使用虚拟层次结构,布局设计人员可以选择不同于逻辑设计层次结构的设计层次结构。可以对布局进行分区,以指导自动化根据需要构造布局。将布局保留为单个单元视图可确保 SDL 对应,从而保证 LVS 的正确性。由于用户不会过度分区布局,因此自动P&R工具可以更自由地生成满足用户设置的所有约束的优化布局。基于行的方法提高了结果质量和工具运行时。

并发布局编辑解决了布局审查、调试和编辑问题,因为可以同时分配多个用户来处理同一布局的不同部分。区块所有者可以指派团队的初级成员来查看布局并提出更改建议。最终,区块所有者可以将各种用户所做的工作吸收到原始布局中,而不会遇到任何麻烦。

审核编辑:郭婷

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

    关注

    29

    文章

    5519

    浏览量

    79118
  • DRC
    DRC
    +关注

    关注

    2

    文章

    148

    浏览量

    36132
  • LVS
    LVS
    +关注

    关注

    1

    文章

    35

    浏览量

    9922
收藏 人收藏

    评论

    相关推荐

    如何缩短Vivado的运行时

    在Vivado Implementation阶段,有时是有必要分析一下什么原因导致运行时间(runtime)过长,从而找到一些方法来缩短运行时间。
    的头像 发表于 05-29 14:37 1.4w次阅读
    如何缩短Vivado的<b class='flag-5'>运行时</b>间

    如何检查Linux服务器的运行时

    Linux 中的 uptime 用于查看系统启动后的运行时间。它是一个比较简单的 Linux 命令,可以不带参数直接运行
    发表于 11-25 15:25 1.5w次阅读
    如何检查Linux服务器的<b class='flag-5'>运行时</b>间

    如何在提高精度和延长运行时间的同时提高电池的安全性?

    如何在提高精度和延长运行时间的同时提高电池的安全性
    发表于 03-16 11:36

    运行时软件故障注入器的设计与实现

    针对实际故障诊断中难以有效获得故障现场信息的问题,提出通过在软件运行时注入故障的方式获取故障现场信息,设计并实现一种运行时软件故障注入器,给出其中的故障脚本描
    发表于 04-06 08:40 19次下载

    FPGA运行时重构的延迟隐藏机制研究与实现

    FPGA运行时重构的延迟隐藏机制研究与实现_刘伟
    发表于 01-07 19:08 0次下载

    紫金桥组态软件新的功能_运行时组态

    运行时组态是组态软件新近提出的新的概念。运行时组态是在运行环境下对已有工程进行修改,添加新的功能。它不同于在线组态,在线组态是在工程运行的同时,进入组态环境,在组态环境中对工程进行修改
    发表于 10-13 16:17 2次下载
    紫金桥组态软件新的功能_<b class='flag-5'>运行时</b>组态

    Maxim发布最新基础模拟收发器,旨在提高工业系统的正常运行时

    对于许多关键的工业应用,例如资产管理系统和通信现场总线模块,可靠连接是优化生产过程、提高系统正常运行时间的基本保障。
    发表于 09-17 15:17 764次阅读

    如何高效测量ECU的运行时

    ,最终可能会引起运行时间方面的问题。这在项目后期需要大量的时间和金钱来解决。如果不能掌握系统的运行状态,则很难发现系统内缺陷的根源。 解决方案 将TA软件工具套件与VX1000测量标定硬件相结合,可同步分析 ECU内部
    的头像 发表于 10-28 11:05 2175次阅读

    Go运行时:4年之后

    自 2018 年以来,Go GC,以及更广泛的 Go 运行时,一直在稳步改进。近日,Go 社区总结了 4 年来 Go 运行时的一些重要变化。
    的头像 发表于 11-30 16:21 793次阅读

    什么是Kubernetes容器运行时CRI

    起初,Docker是事实上的容器技术标准,Kubernetes v1.5之前的代码中直接调用Docker API,实现容器运行时的相关操作。
    的头像 发表于 02-20 16:22 1472次阅读
    什么是Kubernetes容器<b class='flag-5'>运行时</b>CRI

    ch32v307记录程序运行时

    ,不仅会降低用户的体验,甚至可能会导致系统的崩溃。 因此,在程序设计和调试中,我们常常需要记录程序的运行时间,并通过不断的优化来提升程序的性能。本文将介绍如何在各种编程语言中记录程序运行时间,并分享一些提高程序性能的技巧。
    的头像 发表于 08-22 15:53 861次阅读

    Xilinx运行时(XRT)发行说明

    电子发烧友网站提供《Xilinx运行时(XRT)发行说明.pdf》资料免费下载
    发表于 09-14 10:01 0次下载
    Xilinx<b class='flag-5'>运行时</b>(XRT)发行说明

    如何保证它们容器运行时的安全?

    紧密耦合的容器运行时继承了主机操作系统的安全态势和攻击面。运行时或主机内核中的任何漏洞及其利用都会成为攻击者的潜在切入点。
    的头像 发表于 11-03 15:24 640次阅读

    jvm运行时内存区域划分

    JVM是Java Virtual Machine(Java虚拟机)的缩写,它是Java编程语言的运行环境。JVM的主要功能是将Java源代码转换为机器代码,并且在运行时管理Java程序的内存。JVM
    的头像 发表于 12-05 14:08 509次阅读

    三菱plc累计运行时间怎么编程

    具有重要意义。本文将详细介绍如何使用三菱PLC编程实现累计运行时间的统计功能。 一、概述 累计运行时间是指设备或系统在一定时间内的总运行时间。在工业生产中,对设备的累计运行时间进行统计
    的头像 发表于 06-20 11:31 2148次阅读