Skip to main content
Yanked

This release has been yanked by its maintainers, and will be ignored by installers, except when explicitly specified.
Consider using release 0.4.7 instead.
Reason given by maintainers: Superfluous release

Flexible, scalable, standard cell library

A standard cell library is a collection of cells that perform certain digital functions. It consists of so-called combinatorial cells which perform a binary logic function and sequential cells sync internal signal with a clock signal.

Standard cells are introduced into an ASIC EDA flow during the synthesis step. This is the step where a (RTL) logic design into a netlist consisting only of the cells from your standard cell library. Later on these cells are then placed next to each and the inputs and outputs of each cell connected to each other. The former is called placement and the latter routing.

Release History

  • v0.4.8:
    • Better handling of oxide layer
    • Several other small improvements, see commmit history for more information
  • v0.4.7:
    • pdkmaster.io.coriolis is optional
    • python 3.9 minimum version
    • Better handling of gate oxide layer
    • Misc. code cleansing and reworking
  • v0.4.6:
    • DRC fixing for _Tie cell
    • Update for PDKMaster 0.12.0 API changes
    • Code cleansing
  • v0.4.5: Some internal routing optimizations in the cells.
  • v0.4.4: Mainly update for signoff fixing and new PDK support.
  • v0.4.3:
    • regular code cleansing
    • update layout generation to avoid DRC violation with updated primitives in PDKMaster
  • v0.4.2: only internal improvements
  • v0.4.1: major reworking of the code. A new class ActiveColumnsCell has been introduced to generate the layouts of the standard cells. This removes the lambda based dimensions from the cells to compute them all from the design rules.
    All cells were converter to this new layout method and this should allow to make standard cell libraries with much lower height of the cells. Compatiblity function are provided so that layout spec can be derived as was done previously as based on a lambda value.
    v0.4.0 had only dev releases and code was rebased and squashed for this release.
  • v0.3.3: bug fix; remove public 0.3.2 release
  • v0.3.2: code cleansing, bug fixing, update dependencies
  • v0.3.1: small update for Coriolis export
  • v0.3.0: Update for release v0.9.0 of PDKMaster; replace Library-> StdCellFactory to follow common usage of a factory to generate cells.
  • v0.2.0: Small updates for changing PDKMaster API
  • v0.1.0
  • v0.0.4

Rationale

Up to now for a lot of standard cell libraries the layout was done manually leading to a lot manual work when changes need to be done like changing the height of the cells or porting it to another technology node. Some of them are based on so-called lambda rules to make them scalable to different nodes. Usage of lambda rules will cause their own inefficiencies in the layout especially when scaling to smaller nodes.
Alternative implementations try to fully automate the layout generation out of the transistor netlist. Finding a good placement of the transistor for non-trivial logic cells is a hard problem leading often to complex code for finding acceptable solutions. Also the layout code itself often becomes complex to take peculiarities of different design rules into account.
The flexcell library tries to take a middle road. It will start from a topological layout of the cell but without the layout already fixed to certain design rules; it thus avoid the step where netlist need to be converted to topologies. It will use the design rules from a PDKMaster Technology object to generate an optimized layout for conforming to the cells topology. By baking in independence of the Technology the standard cell library should be easily ported to different technologies with better area efficiency than current lambda rules based solutions.
In future options are planned so libraries can be generated for different targets like ,minimum area, maximum performance or minimum power consumption.

Status

This repository is currently considered experimental code with no backwards compatibility guarantees whatsoever.
Current implementation is based on the topology of the Coriolis nsxlib standard cells with some area improvements but not yet with optimal area use. For v0.1 of this library a total replacement of the layout generation is planned fully based on minimized area for the technology design rules.
If interested head over to gitter for further discussion.

Project Arrakeen subproject

This project is part of Chips4Makers' project Arrakeen. It shares some common guide lines and regulations:

Release files for c4m-flexcell 0.4.8

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for c4m-flexcell 0.4.8
File Size Uploaded
c4m_flexcell-0.4.8.tar.gz 40.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for c4m-flexcell 0.4.8
File Interpreter ABI Platform
c4m_flexcell-0.4.8-py3-none-any.whl Python 3 none any Details

Total release size: 85.5 kB

Release files / c4m_flexcell-0.4.8.tar.gz

Download URL c4m_flexcell-0.4.8.tar.gz
Size 40.7 kB
Tags Source
SHA-256 checksum
How to use checksums
5872099fc18f080a141511314c90e1b7b7e4b62bd78c12aeea4f5b72fd9d35c1
BLAKE2b-256 checksum
How to use checksums
b2ebebb0f4df035bef94eed56668763004b2f956aaae497c86b15c2b87cc0b7a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.3

Release files / c4m_flexcell-0.4.8-py3-none-any.whl

Download URL c4m_flexcell-0.4.8-py3-none-any.whl
Size 44.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
f36af7e87ce3d2df3d9b84acccc96f16ada3a7c41def22948f8882f4b03c4adc
BLAKE2b-256 checksum
How to use checksums
33ae976e4d210d5d855f621ade1d2637d6f4a135f2b040a3664a3b0d598e23c4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.3

Release history Release notifications | RSS feed

This release

0.4.8 This release

2 release files

0.4.7

2 release files

0.4.6

2 release files

0.4.5

2 release files

0.4.4

2 release files

0.4.3

2 release files

0.4.2

2 release files

0.4.1

2 release files

0.3.3

2 release files

0.3.1

2 release files

0.3.0

2 release files

0.2.0

2 release files

0.1.0

2 release files

0.0.4

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page