five

autorouting-dataset

收藏
github2024-07-23 更新2024-07-25 收录
下载链接:
https://github.com/tscircuit/autorouting-dataset
下载链接
链接失效反馈
官方服务:
资源简介:
这是一个用于基准测试的autorouting问题数据集,包含多种分类的问题,每个问题适用于不同的autorouting场景。数据集由数千个文件组成,以tscircuit soup格式存储,可用于开发新的autorouting算法。

This is a dataset of autorouting problems intended for benchmarking purposes. It includes multiple categorized problems, each tailored for distinct autorouting scenarios. The dataset consists of thousands of files stored in the tscircuit soup format, and can be utilized for developing novel autorouting algorithms.
创建时间:
2024-07-20
原始信息汇总

autorouting-dataset

数据集概述

该数据集包含用于基准测试的自动布线问题,以及大量实用工具,包括一个查看器和测试服务器,用于开发新的自动布线算法。

自动布线问题

自动布线是指在二维表面上绘制线路(导线)以连接铜垫。线路可以通过铜镀孔(称为“通孔”)穿过垫子。线路还必须避开“障碍物”,这些障碍物是其他垫子或线路无法通过的阻塞区域,例如孔或指定给天线的区域。

问题分类

数据集包含不同分类的问题,每个问题适用于不同的自动布线场景。

问题 准备状态 描述 难度
single-trace 🟢 view 通过障碍物布线单条线路 简单
traces 🟢 view 布线多条线路到点对,不交叉 中等
single-trace-group 🔴 TBA 通过多个点布线单条线路 简单
layers-traces 🔴 TBA 通过多层布线连接两个点的线路 简单
traces-groups 🔴 TBA 布线多条线路到点组,不交叉 中等
layers-traces 🔴 TBA 通过多层布线多条线路到点对,不交叉 困难
layers-traces-groups 🔴 TBA 通过多个地点布线多条线路到点组,不交叉 困难
hyperdense-* 🔴 TBA 超密集BGA布线 困难+
incremental-* 🔴 TBA 相同数据集但组件移动或线路改变。测试缓存效率 困难+

示例问题

simple-multi-point-trace

image

基准测试

基准测试使用的标准包括:

  • 速度(机器规格待定)
  • 在类别内完全布线的电路板百分比
  • 质量(与理想布线相比,线路长度如何?通常较短的线路更好)
  • 问题类型
  • 增量速度(如果单个组件移动或线路改变的速度)

数据集使用

数据集由数千个文件组成,采用tscircuit soup格式。每个问题类型在datasets目录中都有相应的数据集。您可以从releases page下载包含数据集的zip文件。如果您的求解器是TypeScript编写的,您可以通过导入autorouting-dataset动态生成数据集。

数据集可以轻松可视化,并包含大量可用于约束的元数据。您可以使用getSimpleRouteJson实用函数将其转换为简单对象,接口如下:

tsx interface SimpleRouteJson { layerCount: number obstacles: Array<{ type: "rect" | "oval" // 注意:大多数数据集不包含椭圆形 center: { x: number; y: number } width: number height: number }> connections: Array<{ name: string pointsToConnect: Array<{ x: number; y: number }> }> bounds: { minX: number; maxX: number; minY: number; maxY: number } }

编写求解器

您可以使用任何语言编写求解器,但目前对TypeScript求解器提供一流支持。

TypeScript求解器

TypeScript求解器可以接受tscircuit soupSimpleRouteJson。示例代码如下:

tsx import { startAutoroutingDevServer, getSimpleRouteJson } from "autorouting-dataset"

const mySolver = (soup: AnySoupElement[]) => { const routeJson = getSimpleRouteJson(soup)

// ...

// 返回一个或多个pcb_trace对象作为解决方案 return [ { "type": "pcb_trace", "route": [ { "route_type": "wire", "x": 3, "y": 1, "width": 5, "layer": "top" }, { "route_type": "via", "x": 3, "y": 1, "from_layer": "top", "to_layer": "bottom" } ] } ] }

startAutoroutingDevServer({ solver: mySolver, port: 3000 })

您可以使用bun --hot ./solver-server.ts运行此文件。

非TypeScript求解器

  • 使用您的算法托管服务器(参见下面的简单Flask服务器)
  • 运行npx autorouting-dataset server start并配置您的服务器URL

可视化问题/解决方案

tscircuit在debug.tscircuit.com上运行调试服务,您可以使用它来可视化解或未解的问题。如果您使用的是TypeScript以外的语言,可以参考这里的说明(待定)。

如果您使用的是TypeScript,您可能希望增量可视化您的解决方案或自定义您自己的可视化。为此,有一个易于使用的RouterPlayground组件,允许可视化您的解决方案。

运行基准测试

如果您有TypeScript求解器,可以使用以下代码程序化运行基准测试:

tsx import { runBenchmark } from "autorouting-dataset" import mySolver from "./my-solver"

const result = await runBenchmark({ mySolver, verbose: true, })

console.log(result)

社区求解器

即将推出!请创建问题以将您的求解器添加到此仓库,我们将列出基准测试等!

我们正在为测量性能准备专用测试机器。

搜集汇总
数据集介绍
main_image_url
构建方式
autorouting-dataset数据集通过精心设计的合成数据生成方法构建,涵盖了多种PCB自动布线场景。该数据集包括多种问题类型,如单线布线、多线布线、远距离单线布线等,每种问题类型都对应一个特定的布线挑战。数据集的生成过程结合了实际PCB设计中的常见约束和障碍,确保了数据的真实性和实用性。此外,数据集还提供了丰富的元数据,便于研究人员和开发者理解和应用。
使用方法
使用autorouting-dataset数据集时,用户可以通过下载预生成的数据集文件或使用提供的工具生成自定义数据集。数据集支持多种编程语言,包括Typescript和Python,用户可以根据自己的需求选择合适的编程环境。对于Typescript用户,数据集提供了便捷的API接口,可以直接导入并使用。对于非Typescript用户,可以通过HTTP请求与数据集进行交互。此外,数据集还提供了可视化工具,帮助用户直观地查看和调试布线问题及其解决方案。
背景与挑战
背景概述
autorouting-dataset数据集专注于自动布线问题,这是一个涉及在PCB(印刷电路板)上绘制导线以连接芯片的过程。自动布线技术自上世纪以来一直是一个未完全解决的难题,其核心在于如何在复杂的二维表面上高效且准确地规划导线路径,同时避免与其他导线或障碍物交叉。该数据集由tscircuit团队创建,旨在为开发新的自动布线算法提供基准测试数据和实用工具。通过提供大量的合成数据和详细的基准测试方法,该数据集为研究人员和开发者提供了一个标准化的平台,以评估和改进自动布线算法的性能。
当前挑战
autorouting-dataset面临的主要挑战包括:1) 解决复杂的布线问题,如多层布线、密集布线和动态布线,这些都需要高度优化的算法来处理;2) 在构建过程中,生成大量高质量的合成数据,确保数据集的多样性和代表性;3) 提供一个公平的基准测试环境,使得不同算法可以在相同条件下进行比较。此外,数据集还需要不断更新以适应新的布线技术和需求,确保其持续的相关性和实用性。
常用场景
经典使用场景
在电子设计自动化(EDA)领域,autorouting-dataset数据集被广泛用于开发和评估自动布线算法。该数据集包含了多种复杂的布线问题,如单线布线、多线布线以及多层布线等,为研究人员提供了一个标准化的测试平台。通过使用该数据集,开发者可以快速创建新的布线算法,并通过内置的基准测试工具评估其性能,从而加速算法的迭代和优化过程。
解决学术问题
autorouting-dataset数据集解决了电子设计自动化领域中长期存在的自动布线问题。传统的布线方法依赖于人工设计,效率低下且容易出错。该数据集通过提供大量的标准化布线问题,帮助研究人员开发和验证高效的自动布线算法。这不仅推动了学术研究的发展,也为工业界提供了实用的解决方案,显著提升了PCB设计的效率和质量。
实际应用
在实际应用中,autorouting-dataset数据集被广泛用于PCB设计和制造领域。通过使用该数据集,工程师可以快速开发和优化自动布线算法,从而提高PCB设计的自动化水平。此外,该数据集还支持多种编程语言和开发环境,使得不同背景的开发者都能参与到自动布线算法的开发中。这大大缩短了从算法开发到实际应用的时间,提升了生产效率。
数据集最近研究
最新研究方向
在电子设计自动化(EDA)领域,autorouting-dataset数据集的最新研究方向主要集中在开发和优化自动布线算法。这些算法旨在高效地连接印刷电路板(PCB)上的芯片,同时避免障碍物和确保布线的质量。研究者们致力于通过合成数据集和基准测试来评估和改进算法的性能,特别是在处理复杂布线问题和高密度布线场景时。此外,跨语言的求解器开发也是一个新兴方向,旨在利用多种编程语言的优势来提升算法的灵活性和效率。
以上内容由遇见数据集搜集并总结生成
5,000+
优质数据集
54 个
任务类型
进入经典数据集
二维码
社区交流群

面向社区/商业的数据集话题

二维码
科研交流群

面向高校/科研机构的开源数据集话题

数据驱动未来

携手共赢发展

商业合作