当前位置: 首页 > news >正文

DreamPlace 的下载安装与使用

DreamPlace 是一款芯片放置工具,用于宏单元(macro)和标准单元(Standard Cell)的放置以及布线,并计算 HPWL、Overlap 等用于衡量芯片性能的参数。


一、环境

1. 系统环境:Ubuntu 20.04

DreamPlace 只能在 Linux 环境使用

2. Python 环境:

  • Python 3.8
  • PyTorch 2.0.0
  • Cuda 11.8

二、安装 Dreamplace

1. 安装第三方 Dependency

  • Boost
    sudo apt-get update
    sudo apt-get install libboost-all-dev
    
  • Bison & flex
    sudo apt-get install flex bison
    

2. 下载 DreamPlace

git clone --recursive https://github.com/limbo018/DREAMPlace.git

3. 安装 Python Dependency

cd DREAMPlace
pip install -r requirements.txt

4. Build Dreamplace

build 之前需要先打开 DREAMPlace/dreamplace/ops/CMakeLists.txt 文件,把第 12 行的注释打开(不然无法安装这个包,我在运行 deepplace 的时候用到了这个包,其他情况下还没有用到)

mkdir build
cd build
cmake .. -DCMAKE_INSTALL_PREFIX=<installation directory> -DPython_EXECUTABLE=$(which python)
make
make install
  • -DCMAKE_INSTALL_PREFIX 是安装路径,默认是 DREAMPLACE/install
  • -DPython_EXECUTABLE 是 python 路径,如果有 anaconda 默认是 base 环境

5. Install Benchmarks

cd ../install
python benchmarks/ispd2005_2015.py

另外,benchmark 也可以自己下载并解压到正确的文件夹下,具体位置可参考下文目录树。DreamPlace 只支持 bookshelf 和 Lef/Def 格式的文件。

6. 测试是否安装成功

python dreamplace/Placer.py test/ispd2005/adaptec1.json
python unittest/ops/hpwl_unittest.py

安装完成后的目录结构如下,主要用到的东西都在 install 文件夹内:

DREAMPlace
|-- CMakeLists.txt
|-- Dockerfile
|-- LICENSE
|-- README.md
|-- benchmarks
|-- build
|-- cmake
|-- dreamplace
|-- images
|-- install
|   |-- benchmarks
|   |   |-- ispd2005
|   |   |   |-- adaptec1
|   |   |   |   |-- adaptec1.aux
|   |   |   |   |-- adaptec1.dp.aux
|   |   |   |   |-- adaptec1.eplace-ip.pl
|   |   |   |   |-- adaptec1.eplace.aux
|   |   |   |   |-- adaptec1.lg.pl
|   |   |   |   |-- adaptec1.nets
|   |   |   |   |-- adaptec1.nodes
|   |   |   |   |-- adaptec1.pl
|   |   |   |   |-- adaptec1.scl
|   |   |   |   `-- adaptec1.wts
|   |   |   |-- adaptec2
|   |   |   |-- adaptec3
|   |   |   |-- adaptec4
|   |   |   |-- bigblue1
|   |   |   |-- bigblue2
|   |   |   |-- bigblue3
|   |   |   `-- bigblue4
|   |   |-- ispd2005_2015.py
|   |   `-- ispd2019.py
|   |-- bin
|   |-- dreamplace
|   |   |-- BasicPlace.py
|   |   |-- EvalMetrics.py
|   |   |-- NesterovAcceleratedGradientOptimizer.py
|   |   |-- NonLinearPlace.py
|   |   |-- Params.py
|   |   |-- PlaceDB.py
|   |   |-- PlaceObj.py
|   |   |-- Placer.py
|   |   |-- Timer.py
|   |   |-- __init__.py
|   |   |-- configure.py
|   |   |-- ops
|   |   `-- params.json
|   |-- include
|   |-- lib
|   |-- test
|   |   |-- dac2012
|   |   |-- iccad2014
|   |   |-- iccad2015.ot
|   |   |-- ispd2005
|   |   |-- ispd2015
|   |   `-- ispd2019
|   |-- thirdparty
|   `-- unittest
|-- requirements.txt
|-- test
|-- thirdparty
`-- unittest

三、测试脚本

回到根目录根目录创建新文件夹,并创建测试脚本

cd ~
mkdir test_dreamplace
cd test_dreamplace
vim main.py

脚本内容如下,其中 params 用来加载配置参数,我们需要提供关于 bechmark 的配置文件,配置文件格式可以参考 test 文件夹内的文件:

import Params, Placerparams = Params.Params()# load parameters
add = "./test/ispd2005/adaptec3.json"
params.load(add)
r = Placer.place(params)
r = r[-3][0]
wl = float(r[0].hpwl.data)
overf = float(r[0].overflow.data)print(wl)
print(overf)

将 DreamPlace 移植到该目录下:

cd ~
cp -r DREAMPlace/install/* test_dreamplace/

然后将 test_dreamplace/dreamplace 文件夹下的除 ops、init.py、configure.py 之外的其他文件移动到 test_dreamplace/ 目录下。
之后运行脚本跑通即可:

python main.py

目前该文件夹结构为:

test_dreamplace
|-- BasicPlace.py
|-- EvalMetrics.py
|-- NesterovAcceleratedGradientOptimizer.py
|-- NonLinearPlace.py
|-- Params.py
|-- PlaceDB.py
|-- PlaceObj.py
|-- Placer.py
|-- Timer.py
|-- __pycache__
|-- benchmarks
|   |-- ispd2005
|   |-- ispd2005_2015.py
|   `-- ispd2019.py
|-- bin
|-- dreamplace
|   |-- __init__.py
|   |-- __pycache__
|   |-- configure.py
|   `-- ops
|-- include
|-- lib
|-- main.py
|-- params.json
|-- results
|   `-- adaptec3
|-- test
|-- thirdparty
`-- unittest

相关文章:

DreamPlace 的下载安装与使用

DreamPlace 是一款芯片放置工具&#xff0c;用于宏单元&#xff08;macro&#xff09;和标准单元&#xff08;Standard Cell&#xff09;的放置以及布线&#xff0c;并计算 HPWL、Overlap 等用于衡量芯片性能的参数。 一、环境 1. 系统环境&#xff1a;Ubuntu 20.04 DreamPla…...

FPGA模块——SPI协议(读写FLASH)

FPGA模块——SPI协议&#xff08;读写FLASH&#xff09; &#xff08;1&#xff09;FLASH芯片 W25Q16BV&#xff08;2&#xff09;SPI协议&#xff08;3&#xff09;芯片部分命令1.Write Enable&#xff08;06h&#xff09;2.Chip Erase (C7h / 60h)3.写指令&#xff08;02h&am…...

SQL自学通之表达式条件语句与运算

目录 一、目标 二、表达式条件语句 1、表达式&#xff1a; 2、条件 2.1、WHERE 子句 三、运算 1、数值型运算: 1.1、加法() 1.2、减法 (-) 1.3、除法&#xff08;/&#xff09; 1.4、乘法 &#xff08;*&#xff09; 1.5、取模 &#xff08;%&#xff09; 优先级别…...

公网域名如何解析到内网IP服务器——快解析域名映射外网访问

在本地搭建主机应用后&#xff0c;由于没有公网IP或没有公网路由权限&#xff0c;在需要发布互联网时&#xff0c;就需要用到外网访问内网的一些方案。由于内网IP在外网不能直接访问&#xff0c;通常就用通过外网域名来访问内网的方法。那么&#xff0c;公网域名如何解析到内网…...

线程安全与并发区别

在并发编程中&#xff0c;"线程安全 "和 "并发 "是相关的概念&#xff0c;但它们有着不同的含义。 线程安全 如果一个类或方法可以同时被多个线程使用&#xff0c;而不会导致数据损坏或意外行为&#xff0c;那么这个类或方法就被认为是线程安全的。即使多…...

SEO优化是什么,如何进行SEO优化

SEO&#xff08;Search Engine Optimization&#xff09;是指通过对网站进行优化&#xff0c;提高其在搜索引擎中的排名&#xff0c;从而增加有机流量和改善用户体验的一系列技术和方法。 进行SEO优化可以帮助网站获得更多的有机搜索流量&#xff0c;并提升网站的曝光度和可见…...

nodejs发起http或https请求

前言&#xff1a;使用node内置模块http、https http请求 const express require(express) const http require(http)const app express()const loginConfig (token) > {return {hostname: api.test.com,port: 80,path: /test?access_token${token},method: GET} }app.…...

举例C#使用特性排除某些类成员不参与XML序列化和反序列化

在C#中&#xff0c;可以使用 [XmlIgnore] 特性来排除某些类成员不参与XML序列化和反序列化。这个特性告诉XML序列化器忽略被标记的成员。 以下是一个使用 [XmlIgnore] 特性的示例&#xff1a; using System; using System.IO; using System.Xml.Serialization;public class P…...

PHP基础 - 输入输出

在 PHP 中,有多种方法可以用来输出内容。下面是其中的几种: 1、echo: 这是最常见的输出语句之一,可以输出一个或多个字符串。它是一个语言结构,可以省略括号。使用示例如下: <?php // 使用 echo 语句输出一个字符串 echo "Hello, world!\n";// 可以使用…...

大创项目推荐 交通目标检测-行人车辆检测流量计数 - 大创项目推荐

文章目录 0 前言1\. 目标检测概况1.1 什么是目标检测&#xff1f;1.2 发展阶段 2\. 行人检测2.1 行人检测简介2.2 行人检测技术难点2.3 行人检测实现效果2.4 关键代码-训练过程 最后 0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; 毕业设计…...

利用R语言heatmap.2函数进行聚类并画热图

数据聚类然后展示聚类热图是生物信息中组学数据分析的常用方法&#xff0c;在R语言中有很多函数可以实现&#xff0c;譬如heatmap,kmeans等&#xff0c;除此外还有一个用得比较多的就是heatmap.2。最近在网上看到一个笔记文章关于《一步一步学heatmap.2函数》&#xff0c;在此与…...

伦茨科技宣布ST17H6x芯片已通过Apple Find My「查找」认证

深圳市伦茨科技有限公司&#xff08;以下简称“伦茨科技”&#xff09;发布ST17H6x Soc平台。成为继Nordic之后全球第二家取得Apple Find My「查找」认证的芯片厂家&#xff0c;该平台提供可通过Apple Find My认证的Apple查找&#xff08;Find My&#xff09;功能集成解决方案。…...

nodejs微信小程序+python+PHP的游戏测评网站设计与实现-计算机毕业设计推荐

目 录 摘 要 I ABSTRACT II 目 录 II 第1章 绪论 1 1.1背景及意义 1 1.2 国内外研究概况 1 1.3 研究的内容 1 第2章 相关技术 3 2.1 nodejs简介 4 2.2 express框架介绍 6 2.4 MySQL数据库 4 第3章 系统分析 5 3.1 需求分析 5 3.2 系统可行性分析 5 3.2.1技术可行性&#xff1a;…...

在 JavaScript 中导入和导出 Excel XLSX 文件:SpreadJS

在 JavaScript 中导入和导出 Excel XLSX 文件 2023 年 12 月 5 日 使用 MESCIUS 的 SpreadJS 将完整的 JavaScript 电子表格添加到您的企业应用程序中。 SpreadJS 是一个完整的企业 JavaScript 电子表格解决方案&#xff0c;用于创建财务报告和仪表板、预算和预测模型、科学、工…...

【Pytorch】Fizz Buzz

文章目录 1 数据编码2 网络搭建3 网络配置&#xff0c;训练4 结果预测5 翻车现场 学习参考来自&#xff1a; Fizz Buzz in Tensorflowhttps://github.com/wmn7/ML_Practice/tree/master/2019_06_10Fizz Buzz in Pytorch I need you to print the numbers from 1 to 100, excep…...

C++ Primer Plus第十四章笔记

目录 1.包含对象成员的类 valarray类简介 1.2 Student类的设计 1.3 接口和实现 1.4 C和约束 2. 私有继承 2.1 私有继承和组合的异同 2.2 初始化基类组件 2.3 访问基类的方法 2.4 访问基类对象 2.5 访问基类的友元函数 2.5 使用组合还是私有继承 3. 保护继承 4. 使…...

CentOS 7 mini 运行环境搭建与测试——CentOS Mini 安装ifconfig工具【云原生开发部署实践笔记】

云原生开发部署实践笔记 一、开发测试环境搭建与测试 1.1 Linux运行环境的搭建与测试 虽然CentOS已经更新到Stream 9 版本&#xff0c;但基于大多数企业和单位多数使用CentOS 7版本作为运行底座&#xff0c;7版本也一直在更行维护&#xff0c;此实践基于CentOS 7 Mini版本搭…...

案例061:基于微信小程序的互助学习系统

文末获取源码 开发语言&#xff1a;Java 框架&#xff1a;SSM JDK版本&#xff1a;JDK1.8 数据库&#xff1a;mysql 5.7 开发软件&#xff1a;eclipse/myeclipse/idea Maven包&#xff1a;Maven3.5.4 小程序框架&#xff1a;uniapp 小程序开发软件&#xff1a;HBuilder X 小程序…...

【ELK03】ES 索引的Mapping映射详解、数据类型和settings属性设置

一、ES 索引的映射和设置 1.MAPPING 映射(MAPPING)就是es中一个决定了文档如何存储,如何生成索引,字段各种类型定义的过程.类似于我们在关系型数据库中创建一个表格数据之前先定义表格有哪些字段,每个字段是什么类型,然后数据会按照这个配置写入表格,ES中同样是这个过程,它由…...

线性代数入门与学习笔记

该内容为重拾部分线性代数知识的学习笔记&#xff0c;内容上更多的是为了解决问题而学习的内容&#xff0c;并非系统化的学习。 针对的问题为&#xff1a;Music算法推导求解过程中的矩阵计算知识。 学习的内容包括&#xff1a;矩阵原理、矩阵行列式、矩阵的秩、线性变换矩阵变换…...

反向工程与模型迁移:打造未来商品详情API的可持续创新体系

在电商行业蓬勃发展的当下&#xff0c;商品详情API作为连接电商平台与开发者、商家及用户的关键纽带&#xff0c;其重要性日益凸显。传统商品详情API主要聚焦于商品基本信息&#xff08;如名称、价格、库存等&#xff09;的获取与展示&#xff0c;已难以满足市场对个性化、智能…...

在Ubuntu中设置开机自动运行(sudo)指令的指南

在Ubuntu系统中&#xff0c;有时需要在系统启动时自动执行某些命令&#xff0c;特别是需要 sudo权限的指令。为了实现这一功能&#xff0c;可以使用多种方法&#xff0c;包括编写Systemd服务、配置 rc.local文件或使用 cron任务计划。本文将详细介绍这些方法&#xff0c;并提供…...

Cloudflare 从 Nginx 到 Pingora:性能、效率与安全的全面升级

在互联网的快速发展中&#xff0c;高性能、高效率和高安全性的网络服务成为了各大互联网基础设施提供商的核心追求。Cloudflare 作为全球领先的互联网安全和基础设施公司&#xff0c;近期做出了一个重大技术决策&#xff1a;弃用长期使用的 Nginx&#xff0c;转而采用其内部开发…...

Spring Boot+Neo4j知识图谱实战:3步搭建智能关系网络!

一、引言 在数据驱动的背景下&#xff0c;知识图谱凭借其高效的信息组织能力&#xff0c;正逐步成为各行业应用的关键技术。本文聚焦 Spring Boot与Neo4j图数据库的技术结合&#xff0c;探讨知识图谱开发的实现细节&#xff0c;帮助读者掌握该技术栈在实际项目中的落地方法。 …...

让AI看见世界:MCP协议与服务器的工作原理

让AI看见世界&#xff1a;MCP协议与服务器的工作原理 MCP&#xff08;Model Context Protocol&#xff09;是一种创新的通信协议&#xff0c;旨在让大型语言模型能够安全、高效地与外部资源进行交互。在AI技术快速发展的今天&#xff0c;MCP正成为连接AI与现实世界的重要桥梁。…...

Unit 1 深度强化学习简介

Deep RL Course ——Unit 1 Introduction 从理论和实践层面深入学习深度强化学习。学会使用知名的深度强化学习库&#xff0c;例如 Stable Baselines3、RL Baselines3 Zoo、Sample Factory 和 CleanRL。在独特的环境中训练智能体&#xff0c;比如 SnowballFight、Huggy the Do…...

python执行测试用例,allure报乱码且未成功生成报告

allure执行测试用例时显示乱码&#xff1a;‘allure’ &#xfffd;&#xfffd;&#xfffd;&#xfffd;&#xfffd;ڲ&#xfffd;&#xfffd;&#xfffd;&#xfffd;ⲿ&#xfffd;&#xfffd;&#xfffd;Ҳ&#xfffd;&#xfffd;&#xfffd;ǿ&#xfffd;&am…...

10-Oracle 23 ai Vector Search 概述和参数

一、Oracle AI Vector Search 概述 企业和个人都在尝试各种AI&#xff0c;使用客户端或是内部自己搭建集成大模型的终端&#xff0c;加速与大型语言模型&#xff08;LLM&#xff09;的结合&#xff0c;同时使用检索增强生成&#xff08;Retrieval Augmented Generation &#…...

2025季度云服务器排行榜

在全球云服务器市场&#xff0c;各厂商的排名和地位并非一成不变&#xff0c;而是由其独特的优势、战略布局和市场适应性共同决定的。以下是根据2025年市场趋势&#xff0c;对主要云服务器厂商在排行榜中占据重要位置的原因和优势进行深度分析&#xff1a; 一、全球“三巨头”…...

2025年渗透测试面试题总结-腾讯[实习]科恩实验室-安全工程师(题目+回答)

安全领域各种资源&#xff0c;学习文档&#xff0c;以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具&#xff0c;欢迎关注。 目录 腾讯[实习]科恩实验室-安全工程师 一、网络与协议 1. TCP三次握手 2. SYN扫描原理 3. HTTPS证书机制 二…...