Skip to main content

A parasitics estimator based on layout and technology files.

Project description

SPEF Extractor

A Python library that reads LEF and DEF files, extracts the RC parasitics and generates their corresponding SPEF file.

Dependencies

  • Python 3.6+ with PIP

Installation

python3 -m pip install spef-extractor

Usage

spef_extractor <lef_file_path> <def_file_path> <wire_model which can be L or Pi> <edge_capacitance_factor which is a value between 0 and 1 where the default is 1>
```

For example:

```
python3 main.py osu035.lef rle_rec.def L 1

where osu035.lef is the provided lef file and rle_rec.def is its corresponding def file. Aftwards, we extract the RC parasitics and output them in a SPEF file named rle_rec.spef (holds the same name as the def file by default).

The Development Process

Parsing

In order to parse the lef and def files, we used trimcao's def and lef parser.

Testing

  • Initially, we tested the generated SPEF manually. This was done through checking a number of nets, and comparing the parasitics in the file with the theoretical value.
  • Later on, we tested using OpenSTA to verify that the produced SPEF file is syntax error free. OpenSTA was able to successfuly read the SPEF file and produce timing reports based on the parasitics provided.
  • Additionally, we used OpenSTA to compare the delays for multiple designs using publicly available reference SPEF files vs. our generated SPEF files.

Assumptions

During our development, we had to make some assumptions to for the sake of simplicity:

  1. It is assumed that the values that do not exist in the LEF file are considered to be 0.
  2. We represented each wire segment as a single resistance and a capacitance (In the L model)
  3. We consider the capacitance of a segment to be at the end node of the segment (In the L model)
  4. Testing was done using openSTA that verified our SPEF is syntax error free.

Limitations

  1. Testing was only done on a handful of designs and further testing might help
  2. Only Pi and L models are available to represent the resistance and capacitance of a segment (even for long wire segments)
  3. We don't handle the RC parasitics of the special nets

Name Remapping

  1. We implemented an algorithm to rename long names.
  2. All nets are renamed to decrease the size of files.
  3. Names were remapped based on the standard remapping scheme of SPEF files.

Acknowledgement:

This was initially created for the Digital Design 2 Course CSCE3304 at the American University in Cairo under the supervision of Doctor Mohamed Shalan. Its development was ongoing afterwards as a part of an undergraduate research internship at the American Univeristy in Cairo.

Original Authors:

License

The Apache License, version 2.0. See License.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

spef-extractor-0.2.0.tar.gz (22.8 kB view details)

Uploaded Source

Built Distribution

spef_extractor-0.2.0-py3-none-any.whl (30.0 kB view details)

Uploaded Python 3

File details

Details for the file spef-extractor-0.2.0.tar.gz.

File metadata

  • Download URL: spef-extractor-0.2.0.tar.gz
  • Upload date:
  • Size: 22.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.0 CPython/3.9.12

File hashes

Hashes for spef-extractor-0.2.0.tar.gz
Algorithm Hash digest
SHA256 8bde1e53a8e7b0b2638756e0285c40e1f1fbd74a6bf8eb46bd962c085237d8b7
MD5 e8fb68661e074396b7ca733c51e6d069
BLAKE2b-256 ce93c91c5f62fce3385ffbcf1755e5884d0c0f4f0d9635bb7cabd4cfc750648c

See more details on using hashes here.

File details

Details for the file spef_extractor-0.2.0-py3-none-any.whl.

File metadata

File hashes

Hashes for spef_extractor-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 e1a78a8325655057ac09289ee3b52d9fc1c8a9a7522b83deffda55cf826b7496
MD5 0b1cc8d08c4366821bcbf54a9f410219
BLAKE2b-256 d4ebf2e494ca48efa1f888240315098f22588b6a9c44ebfd82d48a9121e38c31

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page