You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CHANGELOG.md
+40-7Lines changed: 40 additions & 7 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -6,25 +6,59 @@ releases published to PyPI are tracked here. No release candidates!
6
6
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
7
7
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
8
8
9
+
## [0.12] - 2025-07-28
10
+
11
+
### Added
12
+
13
+
-[`GateGraph`](https://pyrtl.readthedocs.io/en/latest/blocks.html#module-pyrtl.gate_graph) is an alternative PyRTL logic representation, designed to simplify analysis.
14
+
15
+
### Changed
16
+
17
+
- Rewrote [`output_to_verilog`](https://pyrtl.readthedocs.io/en/latest/export.html#pyrtl.output_to_verilog) and [`output_verilog_testbench`](https://pyrtl.readthedocs.io/en/latest/export.html#pyrtl.output_verilog_testbench). The new implementation's output should be much easier to read:
18
+
- Single-use expressions are inlined.
19
+
- Try mangling unusable `WireVector` and `MemBlock` names first, before assigning them entirely new names.
20
+
- Add comments to the generated Verilog that show the un-mangled names.
21
+
- Many documentation improvements:
22
+
- Most methods and functions now have examples.
23
+
- Consistently use canonical top-level `pyrtl.*` names, rather than module-level names (`pyrtl.WireVector`, not `pyrtl.wire.WireVector`).
24
+
- Enabled `intersphinx` for clickable standard library references (`list`, `dict`, etc).
25
+
- Set up `doctest` for examples, to verify that documentation examples still work.
26
+
- Switched from `pylint` and `pycodestyle` to `ruff`:
27
+
- Applied many `ruff` fixes.
28
+
- Reformatted the code with `ruff format`.
29
+
- Updated `tox` to run `ruff check` and `ruff format`.
30
+
31
+
### Removed
32
+
33
+
- Removed remaining Python 2 support.
34
+
35
+
### Fixed
36
+
37
+
- Fixed XOR implementation in `and_inverter_synth` pass ([@EdwinChang24](https://github.com/EdwinChang24))
38
+
-`output_verilog_testbench` should not re-initialize RomBlocks.
39
+
-`FastSimulation` was not updating `init_menvalues` correctly.
40
+
- Specify bitwidths for Verilog initial register and memory values. They were previously unsized constants, which are implicitly 32-bit signed, which could cause surprises.
41
+
9
42
## [0.11.3] - 2025-06-12
10
43
11
44
### Added
12
45
13
-
- An optimization pass to [optimize inverter chains](https://github.com/UCSBarchlab/PyRTL/blob/d5f8dbe53f54e61e1d54722449e4894b885243c7/pyrtl/passes.py#L130)
- An optimization pass to [optimize inverter chains](https://github.com/UCSBarchlab/PyRTL/blob/d5f8dbe53f54e61e1d54722449e4894b885243c7/pyrtl/passes.py#L130) ([@gaborszita](https://github.com/gaborszita))
0 commit comments