Commit Graph

36 Commits

Author SHA1 Message Date
Sylvain "tnt" Munaut 750ade1db7
Merge 7d9b9500c2 into 7198cf6471 2023-07-31 22:19:40 +08:00
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
Sylvain Munaut 711e294bec scripts/liberty: Add option to output Makefile dependency list
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2022-01-05 23:33:52 +01:00
Sylvain Munaut 72d1fd69ce scripts/liberty: Add argument to get list of possible target liberty files
Instead of a "human" aimed list of available corners, this generates a
machine readable list of liberty files that can be generated for a
given library.

Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2022-01-05 23:33:52 +01:00
Sylvain Munaut 9a4821ec6c scripts/liberty: Accept target output file as argument
Instead of giving the library and corner to gnerate, you can provide
the target .lib file you want generated and this will pick the right
parameters to generate that file

Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2022-01-05 23:33:52 +01:00
Sylvain Munaut ba5e4eb2d0 scripts/liberty: Send all 'messages' to stderr
Since this script will be used in Makefile to generate machine parseable
output, it's importatnt that all 'user' messages are sent to stderr to
be differentiated from the 'machine' output

Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2022-01-05 23:33:52 +01: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
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
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