Commit Graph

36 Commits

Author SHA1 Message Date
wgryncewicz 37fb6cdb25
Merge branch 'main' into 86-cell_cross_index 2023-05-10 10:22:34 +02:00
Ethan Mahintorabi 8327221731
Merge pull request #265 from antmicro/87-cell-waveform-generator
Cell VCD waveform generator script
2023-05-09 11:41:43 -07:00
Tim 'mithro' Ansell dac0871c34 Initialize all the library submodules.
Fixes #321.

Signed-off-by: Tim 'mithro' Ansell <tansell@google.com>
2021-04-28 18:54:34 -07:00
Rob Taylor 9d39c63f51 Add doctests for liberty_float edge case
Issue #280
2020-12-22 17:56:00 +00:00
Rob Taylor d99d853ef9 Faster version of liberty_float - gives a 25% to 50% speedup
This also fixes a bug in liberty_float for numbers with a magnitute
between 9 and 15.

Previously:
    >>> liberty_float(1e15)
    '1000000000000000'
    >>> liberty_float(1e10)
    '10000000000.'
    >>> liberty_float(1e9)
    '1000000000.0'
    >>> liberty_float(1e16)
    '1.000000e+16'

Now:
    >>> liberty_float(1e15)
    '1.000000e+15'
    >>> liberty_float(1e10)
    '1.000000e+10'
    >>> liberty_float(1e9)
    '1000000000.0'
    >>> liberty_float(1e16)
    '1.000000e+16'
2020-12-22 17:54:33 +00:00
Wojciech Gryncewicz c5bd980a84 Added option for reduction of long clock sequences in wavedrom converter
Signed-off-by: Wojciech Gryncewicz <wgryncewicz@antmicro.com>
2020-12-01 15:26:39 +01:00
Wojciech Gryncewicz adea4260e7 Improved handling of testbenches with infinite clock
Signed-off-by: Wojciech Gryncewicz <wgryncewicz@antmicro.com>
2020-12-01 13:44:17 +01:00
Wojciech Gryncewicz c7c5dd8a50 VCD to wavedrom JSON/SVG converter
Signed-off-by: Wojciech Gryncewicz <wgryncewicz@antmicro.com>
2020-11-30 18:40:38 +01:00
Wojciech Gryncewicz 87dfd46b9b cell readme generator extension changed from Directive to event
Signed-off-by: Wojciech Gryncewicz <wgryncewicz@antmicro.com>
2020-11-27 20:14:43 +01:00
Wojciech Gryncewicz 742d1a87d0 Added cell VCD waveform generator script 2020-11-27 19:15:21 +01:00
Wojciech Gryncewicz 7930d4a051 Added cell readme and cell index generation scripts 2020-11-27 17:25:54 +01:00
Tim 'mithro' Ansell 7e0b9790e2 infra: Convert Makefile to use SymbiFlow's make-env setup.
Use https://github.com/SymbiFlow/make-env to set up the conda
environment correctly.

Fixes #46.

Signed-off-by: Tim 'mithro' Ansell <me@mith.ro>
2020-11-24 08:16:13 -08:00
Ethan Mahintorabi db23cfaa59 scripts/liberty: Adds output directory customization
Adds the output flags -o and --output_directory to control the output of the liberty files.
2020-10-14 10:58:49 -07:00
Kane York b263195330
Add 'make submodules' to download standard cell libraries 2020-07-27 00:36:20 -07:00
Tim 'mithro' Ansell d91e88682f scripts/liberty: Support fixed statetable output.
The statetable values where fixed in the `.lib.json` files.

Signed-off-by: Tim 'mithro' Ansell <me@mith.ro>
2020-07-20 16:42:34 -07:00
Tim 'mithro' Ansell d7a58ea703 scripts/liberty: Support new comma only syntax.
Syntax before;
```
comp_attribute blah,blah
```

Syntax after;
```
comp_attribute,blah,blah
```

Signed-off-by: Tim 'mithro' Ansell <me@mith.ro>
2020-07-20 16:42:34 -07:00
Tim 'mithro' Ansell e14136b064 scripts/liberty: Fail if doctests fail.
Signed-off-by: Tim 'mithro' Ansell <me@mith.ro>
2020-07-20 16:42:34 -07:00
Tim 'mithro' Ansell 3e9068dbf1 scripts/liberty: Small whitespace fix.
Signed-off-by: Tim 'mithro' Ansell <me@mith.ro>
2020-07-20 16:42:34 -07:00
Tim 'mithro' Ansell 296ef2066e scripts/liberty: Rework how attribute types are discovered.
* Add functions for producing different types of values into liberty
   output (plus doctests for them).
 * Respect the type given by a `define()` statement.

Signed-off-by: Tim 'mithro' Ansell <me@mith.ro>
2020-07-15 07:04:50 -07:00
Tim 'mithro' Ansell c9d0c8131f script/liberty: Slightly nicer debug output.
Signed-off-by: Tim 'mithro' Ansell <me@mith.ro>
2020-07-15 07:04:50 -07:00
Tim 'mithro' Ansell b70d1a51ad scripts/liberty: Make the `clk_width` attribute a string.
Fixes #69.

Signed-off-by: Tim 'mithro' Ansell <me@mith.ro>
2020-07-15 07:04:50 -07:00
Tim 'mithro' Ansell c9a704335e timing/liberty: Also check for ccsnoise on buses.
Signed-off-by: Tim 'mithro' Ansell <me@mith.ro>
2020-07-14 19:32:27 -07:00
Tim 'mithro' Ansell 463f2fd6aa scripts/liberty: Second attempt at filtering all ccsnoise data.
Fixes #77.

Signed-off-by: Tim 'mithro' Ansell <me@mith.ro>
2020-07-14 18:12:28 -07:00
Tim 'mithro' Ansell 15f6966a94 scripts/liberty: Adding a `--debug` option.
Signed-off-by: Tim 'mithro' Ansell <me@mith.ro>
2020-07-14 12:51:58 -07:00
Tim 'mithro' Ansell b626ca017d scripts/liberty: More aggressive ccsnoise filtering.
Fixes #77.

Signed-off-by: Tim 'mithro' Ansell <me@mith.ro>
2020-07-12 22:24:19 -07:00
Tim 'mithro' Ansell 73d129ef85 scripts/liberty: Fix indenting first value in list.
Signed-off-by: Tim 'mithro' Ansell <me@mith.ro>
2020-07-12 22:24:08 -07:00
Tim 'mithro' Ansell ee77597986 api: Change the way liberty attributes are sorted.
Fixes #37, #40.

The `LIBERTY_ATTRIBUTE_ORDER` template is used to control the ordering
of the liberty attribute output.

Signed-off-by: Tim 'mithro' Ansell <me@mith.ro>
2020-07-06 06:36:13 -07:00
Tim 'mithro' Ansell 74273c4f0b api: Adding liberty file generator.
Generates liberty timing files from the included json timing data.

Signed-off-by: Tim 'mithro' Ansell <tansell@google.com>
2020-07-06 06:36:13 -07:00
Tim 'mithro' Ansell 45580cb998 api: Fix parsing cell name.
Signed-off-by: Tim 'mithro' Ansell <tansell@google.com>
Signed-off-by: Tim 'mithro' Ansell <me@mith.ro>
2020-07-06 06:36:13 -07:00
Tim 'mithro' Ansell f25334442b api: Adding corners processing.
Signed-off-by: Tim 'mithro' Ansell <me@mith.ro>
2020-07-06 06:36:13 -07:00
Christian Clauss cc2568a443
Undefined name: minor -> self.hash
[flake8](http://flake8.pycqa.org) testing of https://github.com/google/skywater-pdk on Python 3.8.3

$ __flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics__
```
./scripts/python-skywater-pdk/skywater_pdk/base.py:332:71: F821 undefined name 'minor'
        return (self.milestone, self.major, self.minor, self.commits, minor)
                                                                      ^
1     F821 undefined name 'minor'
1
```
https://flake8.pycqa.org/en/latest/user/error-codes.html

On the flake8 test selection, this PR does _not_ focus on "_style violations_" (the majority of flake8 error codes that [__psf/black__](https://github.com/psf/black) can autocorrect).  Instead these tests are focus on runtime safety and correctness:
* E9 tests are about Python syntax errors usually raised because flake8 can not build an Abstract Syntax Tree (AST).  Often these issues are a sign of unused code or code that has not been ported to Python 3.  These would be compile-time errors in a compiled language but in a dynamic language like Python they result in the script halting/crashing on the user.
* F63 tests are usually about the confusion between identity and equality in Python.  Use ==/!= to compare str, bytes, and int literals is the classic case.  These are areas where __a == b__ is True but __a is b__ is False (or vice versa).  Python >= 3.8 will raise SyntaxWarnings on these instances.
* F7 tests logic errors and syntax errors in type hints
* F82 tests are almost always _undefined names_ which are usually a sign of a typo, missing imports, or code that has not been ported to Python 3.  These also would be compile-time errors in a compiled language but in Python a __NameError__ is raised which will halt/crash the script on the user.
2020-07-02 21:39:19 +02:00
Tim 'mithro' Ansell 65fa885014 docs: Lots of improvements to the documentation.
Signed-off-by: Tim 'mithro' Ansell <tansell@google.com>
2020-06-11 14:03:59 -07:00
Tim 'mithro' Ansell ce5576edff docs: Adding the Python API to output docs.
Signed-off-by: Tim 'mithro' Ansell <tansell@google.com>
2020-06-11 14:03:54 -07:00
Tim 'mithro' Ansell 1d603e7875 scripts: Adding initial version of the python-skywater-pdk module.
Signed-off-by: Tim 'mithro' Ansell <tansell@google.com>
2020-06-11 14:01:44 -07:00
Tim 'mithro' Ansell 8b323f8504 docs: Adding initial Sphinx doc structure.
Signed-off-by: Tim 'mithro' Ansell <tansell@google.com>
2020-05-14 14:55:24 -07:00
Tim 'mithro' Ansell 8d719604ef docs: Generate README.rst to work around GitHub not rendering `.. include::` in rst files.
This work might look like extensive for just fixing a small issue like
the include rendering, but it will all be heavily reused by the
skywater-pdk scripts that will be released soon.

This commit;
 - Adds Makefile for creating a self contained conda environment under
   `env/conda`

 - Installs required Python dependencies into the environment (which is
   currently just the `rst_include` tool).

 - Has a Makefile to generate `README.rst` from `README.src.rst`

 - Has Travis CI run on repository and check that the `README.rst` file
   has been rebuilt and committed if any of the dependencies have
   change.

Signed-off-by: Tim 'mithro' Ansell <tansell@google.com>
2020-05-08 20:54:22 -07:00