LibrEDA project web page. https://libreda.codeberg.page
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

32 lines
7.8 KiB

<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Example standard-cell placement algorithms for the LibrEDA framework."><meta name="keywords" content="rust, rustlang, rust-lang, electron_placer"><title>electron_placer - Rust</title><link rel="stylesheet" type="text/css" href="../normalize.css"><link rel="stylesheet" type="text/css" href="../rustdoc.css" id="mainThemeStyle"><link rel="stylesheet" type="text/css" href="../light.css" id="themeStyle"><link rel="stylesheet" type="text/css" href="../dark.css" disabled ><link rel="stylesheet" type="text/css" href="../ayu.css" disabled ><script id="default-settings" ></script><script src="../storage.js"></script><script src="../crates.js"></script><noscript><link rel="stylesheet" href="../noscript.css"></noscript><link rel="alternate icon" type="image/png" href="../favicon-16x16.png"><link rel="alternate icon" type="image/png" href="../favicon-32x32.png"><link rel="icon" type="image/svg+xml" href="../favicon.svg"><style type="text/css">#crate-search{background-image:url("../down-arrow.svg");}</style></head><body class="rustdoc mod crate"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="sidebar"><div class="sidebar-menu" role="button">&#9776;</div><a href='../electron_placer/index.html'><div class='logo-container rust-logo'><img src='../rust-logo.png' alt='logo'></div></a><h2 class="location">Crate electron_placer</h2><div class="block version"><div class="narrow-helper"></div><p>Version 0.0.2</p></div><div class="sidebar-elems"><a id="all-types" href="all.html"><p>See all electron_placer's items</p></a><div class="block items"><ul><li><a href="#modules">Modules</a></li><li><a href="#structs">Structs</a></li></ul></div><div id="sidebar-vars" data-name="electron_placer" data-ty="mod" data-relpath=""></div><script defer src="sidebar-items.js"></script></div></nav><div class="theme-picker"><button id="theme-picker" aria-label="Pick another theme!" aria-haspopup="menu" title="themes"><img width="18" height="18" alt="Pick another theme!" src="../brush.svg"></button><div id="theme-choices" role="menu"></div></div><nav class="sub"><form class="search-form"><div class="search-container"><div><select id="crate-search"><option value="All crates">All crates</option></select><input class="search-input" name="search" disabled autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"></div><button type="button" id="help-button" title="help">?</button><a id="settings-menu" href="../settings.html" title="settings"><img width="18" height="18" alt="Change settings" src="../wheel.svg"></a></div></form></nav><section id="main" class="content"><h1 class="fqn"><span class="in-band">Crate <a class="mod" href="#">electron_placer</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../clipboard.svg" width="19" height="18" alt="Copy item path"></button></span><span class="out-of-band"><span id="render-detail"><a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class="inner">&#x2212;</span>]</a></span><a class="srclink" href="../src/electron_placer/lib.rs.html#21-59" title="goto source code">[src]</a></span></h1><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Example standard-cell placement algorithms for the LibrEDA framework.</p>
<ul>
<li><a href="struct.SimpleQuadraticPlacer.html" title="SimpleQuadraticPlacer"><code>SimpleQuadraticPlacer</code></a> does global placement of standard-cells by minimizing the quadratic wire-length.
It yields solutions quickly but they have strong overlaps and do not respect any density constraints.
Quadratic placement is therefore used mainly as an initial value for other placers.</li>
<li><a href="struct.ElectronPlacer.html" title="ElectronPlacer"><code>ElectronPlacer</code></a> is a simple global placement algorithm driven by electrostatic repulsion between cells
and attracting spring forces between connected cells. Works best with an initial placement. The initial
placement can come for example from the <a href="struct.SimpleQuadraticPlacer.html" title="SimpleQuadraticPlacer"><code>SimpleQuadraticPlacer</code></a>. Only standard-cell placement is supported.
For mixed-size placement use <a href="eplace_ms/struct.EPlaceMS.html" title="eplace_ms::EPlaceMS"><code>eplace_ms::EPlaceMS</code></a>.</li>
<li><a href="struct.DiffusionPlacer.html" title="DiffusionPlacer"><code>DiffusionPlacer</code></a> simulates the diffusion of charges to solve density contraints. This placer
requires a relatively good initial placement.</li>
<li><a href="eplace_ms/struct.EPlaceMS.html" title="eplace_ms::EPlaceMS"><code>eplace_ms::EPlaceMS</code></a> is a mixed-size placement engine which handles pre-placed macro cells
and complicated placement regions. It is assembled from a global placement engine and
macro legalization engine.</li>
<li><a href="eplace_ms/struct.AnnealingMacroLegalizer.html" title="eplace_ms::AnnealingMacroLegalizer"><code>eplace_ms::AnnealingMacroLegalizer</code></a> legalizes macro blocks by simulated annealing and can be used
on its own, detached from ePlace.</li>
<li><a href="eplace_ms/struct.MixedSizeGlobalPlacer.html" title="eplace_ms::MixedSizeGlobalPlacer"><code>eplace_ms::MixedSizeGlobalPlacer</code></a> can also be used on its own, detached from ePlace, for
global placement of macro-blocks and standard-cell.</li>
</ul>
</div></details><h2 id="modules" class="section-header"><a href="#modules">Modules</a></h2>
<div class="item-table"><div class="item-row"><div class="item-left module-item"><a class="mod" href="eplace_ms/index.html" title="electron_placer::eplace_ms mod">eplace_ms</a></div><div class="item-right docblock-short"><p>Rust implementation of the ePlace-MS mixed-size placement algorithm.</p>
</div></div></div><h2 id="structs" class="section-header"><a href="#structs">Structs</a></h2>
<div class="item-table"><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.DiffusionPlacer.html" title="electron_placer::DiffusionPlacer struct">DiffusionPlacer</a></div><div class="item-right docblock-short"><p>Simulate the diffusion of particles to spread standard cells in order to match
a certain maximal density.</p>
</div></div><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.ElectronPlacer.html" title="electron_placer::ElectronPlacer struct">ElectronPlacer</a></div><div class="item-right docblock-short"><p>Standard-cell placer that simulates the cells as electrically charged particles
which are connected by springs according to their connectivity.</p>
</div></div><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.ElectronPlacerArgmin.html" title="electron_placer::ElectronPlacerArgmin struct">ElectronPlacerArgmin</a></div><div class="item-right docblock-short"><p>Alternative implementation of the electro static placement algorithm
using the <code>argmin</code> optimization crate.</p>
</div></div><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.SimpleQuadraticPlacer.html" title="electron_placer::SimpleQuadraticPlacer struct">SimpleQuadraticPlacer</a></div><div class="item-right docblock-short"><p>The quadratic placement algorithm minimizes the quadratic distance between components.</p>
</div></div></div></section><section id="search" class="content hidden"></section><div id="rustdoc-vars" data-root-path="../" data-current-crate="electron_placer" data-search-index-js="../search-index.js" data-search-js="../search.js"></div>
<script src="../main.js"></script>
</body></html>