2024华数杯全国大学生数学建模竞赛B题-VLSI电路单元的自动布局

news2024/12/30 2:07:33

        超大规模集成电路(VLSI,VeryLarge Scale Integration)将大量电路单元集成于单一芯片。随着设计复杂度增加,如今开展VLSI设计已离不开电子设计自动化(EDA,Electronic DesignAutomation)工具的支持。EDA作为算法密集型产业,需要对数千种情境进行快速设计探索,是国家关键技术领域。其中,电路单元的自动布局是 EDA研究的核心问题之一。

        电路单元的自动布局旨在矩形布局区域内确定所有电路单元位置,以最小化单元之间总连接线长并避免单元重叠。由于这是一个NP-难问题,通常分为全局布局和详细布局两个步骤。全局布局大致确定单元位置,允许单元重叠:详细布局则消除重叠并进一步优化。本问题聚焦于全局布局,将电路单元视为不同大小的矩形,矩形内分散有若干个连线接口,电路单元之间通过连线接口形成若干组连接关系。全局布局的目标是最小化总连接线长,同时满足单元密度约束。总连接线长等于每组有连接关系的电路单元的线长之和。由于布局阶段尚未实际布线,每组线长通常可通过半周长线长(HPWL,Half-Perimeter Wirelength)或直线型斯坦纳最小树(RSMT,Rectilinear Steiner Minimal Tree)估计,要求连线水平或竖直。HPWL为连线接口外接矩形周长的一半,RSMT为通过插入斯坦纳点构建的线段长度之和。单元密度约束通过将矩形布局区域网格化后计算。每个网格的单元密度等于与网格重叠的电路单元面积和网格面积的比值,限制不超过特定值。附件1提供全局布局的中间状态,包括每组有连接关系的电路单元及其连线接口名称、连线接口坐标和对应的HPWL和RSMT线长。附件2给出布局区域尺寸、网格划分粒度和密度阙值、电路单元的尺寸、坐标及其连线接口的基本信息。

请建立数学模型解决以下问题:

问题1:

图2展示了3组具有不同连线接口数的HPWL和RSMT线长估计示意图。RSMT是布局阶段理想的线长表征,但是构建斯坦纳树是NP难问题。HPWL简单有效,但对多连线接口情形估计偏小。根据附件1提供的信息,请设计一个与电路单元连线接口坐标相关的线长评估模型。该模型应满足:(1)每组估计线长与对应RSMT的差值尽可能小:(2)能应用于评估附件1中的总连接线长。

 问题 2

图 3 展示了单元密度计算示意图,请以此设计一个与电路单元坐标 相关的网格密度评估模型。应用问题 1 构建的线长评估模型,整合密度计算,建 立一个数学模型,目标为:(1)最小化总连接线长;(2)满足单元密度约束。根 据附件 1 和附件 2 提供的信息,应用此模型完成全局布局,输出总连接线长 (HPWL),并可视化结果(电路单元的位置)

 问题 3

除了连接线长和单元密度,布线密度也是衡量布局质量的重要指标 之一。分析图 4 所示的网格布线密度计算模型,找出其存在的问题。针对发现的 问题,提出改进方案。应用改进后的布线密度模型,计算问题 2 中更新后的全局 布局结果的布线密度,并对结果(网格布线密度)进行可视化。

问题 4

除了最小化总连接线长和满足单元密度约束外,希望网格布线密度 的最大值越小越好。请在问题 3 的基础上,修正问题 2 所建立的数学模型。根据 附件 1 和附件 2 提供的信息,应用修正后的模型完成全局布局,输出总连接线长 (HPWL),并可视化结果(电路单元的位置和网格布线密度) 

文件格式说明 附件 1.txt: 组名称,(电路单元名称:连线接口名称),(对应连线接口坐标),HPWL,RSMT Group1,(Cell94:ZN,Cell11:A2,Cell7:A1),((22704,21807),(25499,24186),(25633,24095)),5308,5308 Group2,(Cell89:Z,Cell8:I,Cell5:A1),((31596,22332),(29577,24007),(28894,24037)),4 407,4407 Group3,(Cell5:ZN,Cell97:A2,Cell96:A1,Cell11:A1,Cell7:A2),((28994,23885),(26971, 24240),(26971,24321),(25809,24078),(25878,24474)),3774,4017 …

附件 1.txt 解释: - 有五列,分别是:组名称,(电路单元名称:连线接口名称),(对应连线接口 坐标),HPWL,RSMT。 - 组名称:表示具有连接关系的电路单元组,有多少个组编号表示有多少组具 有连接关系的电路单元。每组可以通过线长评估模型算出线长值。总连接线 长等于所有组的线长值总和。 - (电路单元名称:连线接口名称):表示由哪些单元的连线接口构成该组连接。 例如 (Cell94:ZN,Cell11:A2,Cell7:A1)表示电路单元名称为 Cell94 上有名为 ZN 的连线接口,同理 Cell11 上有名为 A2 的连线接口,Cell7 上有名为 A1 的连线接口,三者会形成一组连接关系,连线方向只能水平或者竖直。 - (对应连线接口坐标):与第二列一一对应,表示对应电路单元连线接口的位 置坐标(x,y)。例如 Cell94:ZN 对应的坐标是(22704,21807),Cell11:A2 对应 的坐标是(25499,24186),Cell7:A1 对应的坐标是(25633,24095)。 - HPWL:表示用 HPWL 线长模型算得的该组电路单元连线长度。以 Group1 为 例 , 连 线 接 口 形 成 的 外 接 矩 形 宽 度 为 25633-22704=2929 , 高 度 为 24186-21807=2379,因此 HPWL=2929+2379=5308。 - RSMT:表示用 RSMT 线长模型算得的该组电路单元连线长度。

附件 2.txt 布局区域宽度,布局区域高度,水平方向网格数,竖直方向网格数,密度阈值 38080,37800,64,60,0.9

电路单元名称,(左下角 X,Y 坐标),宽度,高度,(连线接口名称),(对应连线接口相对 单元左下角的偏置坐标) Cell1,(28431,23878),1120,1800,(A2,B,A1),((630,1051),(910,870),(385,672)) Cell2,(29042,24255),560,1800,(I),((205,860)) Cell3,(28483,24118),840,1800,(A1,A2),((505,1002),(195,880))

附件 2.txt 解释: 分为两个部分 - 布局区域信息:表示布局区域的水平方向取值范围为[0,38080],竖直方向取 值范围为[0,37800];整个布局区域划分为 64*60 个网格,每个网格的宽度 为 38080/64=595,高度为 37800/60=630;每个网格的单元密度不超过 0.9。 - 电路单元信息: 以 Cell1,(28431,23878),1120,1800,(A2,B,A1),((630,1051),(910,870),(385,672)) 为例,解释含义。电路单元 Cell1,左下角坐标为(28431,23878),宽高分别为 1120 和 1800,有三个连线接口名为 A2,B,A1,这三个连线接口的坐标与 Cell1 左下角坐标的偏移量是(630,1051),(910,870),(385,672),据此可以分别算出这 三 个 连 线 接 口 的 绝 对 坐 标 , 例 如 Cell1:A2 的 绝 对 坐 标 是 (28431+630=29061,23878+1051=24929)。注意,所有连线接口在电路单元中 的偏移量是固定值,不会随电路单元的位置变化而变化;因此,若知道电路 单元的位置,就可以根据连线接口的偏移量算出其绝对坐标,进而计算线长

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Python 爬虫入门(七):requests 库的使用「详细介绍」

Python 爬虫入门(七):requests 库的使用「详细介绍」 前言1. 初识 requests1.1 安装 requests 库1.2 发送 GET 请求1.3 发送 POST 请求 2. HTTP 请求详解2.1 请求方法2.2 请求头2.3 请求参数 3. 处理响应3.1 响应内容3.2 响应状态码3.3 响应头…

控件的拖拽移动及定时器及画家

定时器时时都在调用 virtual void timerEvent(QTimerEvent *event);//定时器更新函数 timer new QTimer(this);timer->start(1000);connect(timer,&QTimer::timeout,[this](){static int num 0;ui->led1->display(num);if(num10){timer->stop();}}); 画图事…

【杂谈】计算机世界的原理——二进制数和位运算以及各种进制数的表示方法

【杂谈】计算机世界的原理——二进制数和位运算以及各种进制数的表示方法 1.常见位运算符和常用操作2.各种进制数的表示方法 1.常见位运算符和常用操作 大家都知道,计算机中是使用二进制数储存数据的。在这一篇文章,我将会带领大家初步探索二进制数。在后…

8G 显存玩转书生大模型 Demo 进阶任务

使用 LMDeploy 完成 InternLM-XComposer2-VL-1.8B 的部署,并完成一次图文理解对话,记录复现过程并截图。 使用 LMDeploy 完成 InternVL2-2B 的部署,并完成一次图文理解对话,记录复现过程并截图。 总结:貌似没加上下文…

2024最新最全面的Selenium 3.0 + Python自动化测试框架

文档说明 Selenium是一个用于Web应用程序自动化测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。 Selenium测试的主要功能包括: 测试与浏览器的兼容性:测试应用程序是否能很好的工作在不同的浏览器和操作系统之上。…

聚焦汽车软件开发与测试:静态代码扫描、单元测试与集成测试等方面的实践应用

2024年7月18-19日,龙智携汽车软件开发及管理解决方案创新亮相2024 ATC汽车软件与安全技术周。龙智技术支持部负责人&Atlassian认证专家叶燕秀、龙智功能安全高级工程师景玉鑫在活动主会场联合发表了精彩演讲,分享推动汽车软件开发与功能安全的创新实…

【Deep-ML系列】Solve Linear Equations using Jacobi Method (雅可比迭代求解线性方程)

题目链接:Deep-ML 需要注意的是,np.diag 的返回值会根据输入参数的类型不同而有所不同: 输入为一维数组:np.diag 会返回一个以输入数组元素为对角线元素的对角矩阵。 输入为二维矩阵:np.diag 会返回输入矩阵的对角线元…

数组案例练习进阶版---对数组中的元素进行排序(选择法)

上期文章当中,我们一起了解了怎样查找数组中的元素,今天,再让我们来看一看怎样对数组中的元素进行排序吧。 再java中,关于数据的排序手段,多种多样,例如:选择法排序、冒泡法排序、快速排序等等…

Centos7.9操作系统kdump crash文件vmcore未生成问题

Centos7.9操作系统kdump crash文件未生成问题 一、背景说明1、问题背景 二、排查思路1、先了解下crashkernelcrashkernel设置方式示例如何配置crashkernel验证crashkernel配置 2、再了解下kdump2.1 Kdump 的基本概念2.1.1. 生产内核(Production Kernel)2…

WPF使用Direct2D绘制曲线

wpf使用Direct2D绘制曲线 Install-Package SharpDX Install-Package SharpDX.Direct2D1 Install-Package SharpDX.DXGI Install-Package SharpDX.Direct3D11 <Window x:Class="WpfApp2.MainWindow"xmlns="http://schemas.microsoft.com/winfx/2006/xam…

告别繁复,三款PDF转图片工具让一切变得简单

作为一名刚刚踏入职场的新手&#xff0c;各种电子文档真的是让我手忙脚乱&#xff0c;尤其是PDF文件&#xff0c;它以其格式稳定、兼容性好而被广泛使用。然而&#xff0c;有时候我们需要将PDF文件中的内容转换成图片格式&#xff0c;以便在不同的场合下使用。今天就和大家分享…

如何用IP地址去申请SSL证书?

在当今社会&#xff0c;网络安全越来越重要&#xff0c;网站部署SSL证书是保障网络安全的重要方面。在大多数情况下都是用域名来申请SSL证书&#xff0c;但是有时候没有域名&#xff0c;或者域名不能用来申请SSL证书时&#xff0c;就需要用IP地址来申请SSL证书。下面是具体申请…

Stable Diffusion绘画 | 图生图-局部重绘(一)

使用 文生图 生成如下图片&#xff0c; 正向提示词&#xff1a; (best quality, masterpiece:1.2),1girl,wearing school uniform,in the school playground, 反向提示词&#xff1a; NSFW,(EasyNegativeV2:1.2),worst quality,low quality,monochrome, 点击&#x1f3a8;按…

ThinkPHP6与金仓数据库(Kingbase)集成:模型查询的解决方案

摘要&#xff1a; ThinkPHP6是一款流行的PHP框架&#xff0c;支持多种数据库。然而&#xff0c;对于金仓数据库&#xff08;Kingbase&#xff09;这种相对小众的数据库系统&#xff0c;开发者在使用ThinkPHP6进行模型查询时可能会遇到一些兼容性问题。本文将提供一种解决方案&a…

08.JAVA线程基础

1.线程介绍 单线程&#xff1a;同一个时刻&#xff0c;只允许执行一个线程 多线程&#xff1a;同一个时刻&#xff0c;允许执行多个线程 并发&#xff1a;同一时刻&#xff0c;多个任务交替执行。 并行&#xff1a;同一时刻&#xff0c;多个任务同时执行。 2.线程使用 方式一&…

对称二叉树 - 力扣(LeetCode)C语言

101. 对称二叉树 - 力扣&#xff08;LeetCode&#xff09;(点击前面链接即可查看题目) 一、题目 给你一个二叉树的根节点 root &#xff0c; 检查它是否轴对称。 示例 1&#xff1a; 输入&#xff1a;root [1,2,2,3,4,4,3] 输出&#xff1a;true示例 2&#xff1a; 输入&…

【有手就行】:从无到有搭建前端VUE项目

前言 由于好久没正儿八经写过前端代码了&#xff0c;导致现在想自己创建个VUE项目搞点东西却连步骤都忘了。反正闲着也是闲着&#xff0c;就简单归纳下&#xff0c;就当整理下笔记吧。 直接开始吧 本次教程主要以VUE 2.x版本为介绍 第一步 环境准备 1.安装Node 从 Node官网…

战绩绿油油!全红婵巴黎奥运再度爆火,一个家庭兴旺的底层逻辑——早读(逆天打工人爬取热门微信文章解读)

上期点赞挺多呀&#xff0c;看来周六不上班的人真不少&#xff0c;羡慕呀&#xff01; 引言Python 代码第一篇 洞见 全红婵巴黎奥运再度爆火&#xff0c;我顿悟一个家庭兴旺的底层逻辑第二篇 股市 绿油油战纪结尾 引言 今天很晚 没办法 今天上班都差点迟到 有两点 一是早上开始…

CodeSys中处理(拼接)超长字符串

文章目录 1.需求2.目前的限制3.解决方案4.注意事项4.1.更改字符串的长度后还是被限制在32767或者32768 1.需求 目前有个需求&#xff1a;在CodeSys中&#xff0c;需要将上万甚至十几万条数据&#xff08;字符串&#xff09;汇总到一个字符串上。 2.目前的限制 我们知道默认使…

8–9月,​Sui Move智能合约工作坊将在台北举行

你对区块链和去中心化应用感兴趣吗&#xff1f;想深入学习Sui Move编程语言吗&#xff1f; 从8月10日到9月28日&#xff0c;Sui Mover社区将在每周六下午13:00–17:00举办精彩的工作坊&#xff0c;为期两个月&#xff0c;带你从零基础入门到高级进阶&#xff0c;全面掌握Sui M…