Kratos

Latest version: v0.1.3

Safety actively analyzes 693883 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 9 of 11

0.0.15

Added
- Add ability to add function call var to statement block in python
- Add handle name to variables/generators
- Add symbol table extraction
- Add hashing for function call
- Add ability to output files per modules with proper include header (86)
- Add support for initial block
- Add support for test bench generation; add property assertion
- Add pass to detect non-synthesiszable components (84)
- Add integration to kratos-runtime
- SQLite3 integration
- Breakpoint injection
- Design database dump
- Add pass to analyze latch in `always_comb` and `always_ff`.

Changed
- `clang-tidy` will run through `kratos` target
- DPI call by default won't have any type

Fixed
- Fix a bug where DPI call won't be generated properly when the arg is const
- Fix FSM code gen produces latch.

0.0.14

Added
- Add ability to slice variable with another variable (73)
- Add ability to sort top level assignments, off by default (74)
- Add ability to comment on any IR node (72)
- Add SystemVerilog keyword checker
- Add ability to mark top level always block
- Add support for packed array (78)
- Add active high/low check
- Add dpi from C/C++ and Python (83). Python interface is done throug kratos-dpi.
- Add support for nested FSM

Changed
- Refactor the Python binding code to reduce binary size
- Exceptions are more informative
- Remove redundant replace code in generator.
- Improve the Python binding on generator name/instance_name change
- Empty generator name is handled properly
- FSM now requires a start state

Fixed
- Fix pass through module with cloned modules (79)
- Fix move_src/move_sink for sliced variables
- Fix the variable parent calculation (77)
- Fix enum variable code gen

0.0.13

Fixed
- Fix a bug where sliced ports cannot be connected properly using `self.wire()`

0.0.12

Added
- Automatic Moore -> Mealy FSM conversion (69)
- Combinational function block from Python. The argument order are the same
as in Python (70)
- Function calls as expr or stmt
- A pass to analyze return statements inside function block

Changed
- Constant creation no longer tied to Generator object itself.
- `const(value, width)` and `Const[width](value)` syntax sugar to create constant in Python (70).
- `pyast` now evaluates based on the caller's `locals` and `globals`.
- Use `Var` as a base-class to reduce binary size
- helper function such as `signed` is moved to `util` submodule.

0.0.11

Added
- Port bundles and a pass to convert port bundle to packed struct
- Named code blocks
- Add enum.
- Add class-class object FSM and full debugging.

Changed
- `__eq__` can be used to compare numbers
- All `case` will be `unique case`.
- Most tests will have gold files to compare with.

Fixed
- Fixed slicing bugs in `move_src_to` and `move_sink_to`.
- Fixed one extra pass in the pass manager.

0.0.10

Added
- Ternary op
- `reg_next` implementation
- Ability to add code block in `__init__` as nexted function
- Expose helper function `move_src_to` and `move_sink_to` to Python.
- Add an efficient replace to generator
- Add zero out input pass

Changed:
- Simplify how posedge is used in Python.
- Simplify `always` interface

Fixed:
- verify connectivity pass

Page 9 of 11

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.