Skip to content

tsinghua-ideal/automorphism-decomposition

Repository files navigation

README

Project Overview

This Python project comprises four files, focusing on the validation of specific functionalities related to automorphisms and shift networks, as well as providing a method for generating SRAM configurations.

This Python project is designed with the following objectives in mind:

  1. To verify the correctness of the Automorphism decomposition algorithm presented in the original paper.
  2. To confirm that a shift network of length N can implement any Automorphism of length N, and to determine its signals.
  3. To validate that a shift network of length N can implement any Automorphism of length N along with an arbitrary Shift of the same length N, and to determine its signals.
  4. By combining the findings from objectives 2 and 3, it can be inferred within the architecture described in the original paper that any length Automorphism can be implemented using this architecture.
  5. To provide the specific SRAM content.

Files

t01_auto_dec.py

This file serves as the foundational test code, verifying that an automorphism of length n can be implemented by a shift network of the same length n. It utilizes Python's standard library to demonstrate this key relationship.

t02_auto_shift_dec.py

Building upon the concepts established in t01_auto_dec.py, this file extends the validation to show that an automorphism of length n, when combined with a shift of the same length n, can also be realized by a shift network of length n. This actually proves that Automorphism of any length can also be implemented by a Shift network of length N. It relies on the foundational logic established in t01_auto_dec.py.

t03_full_add_signal.py

Further expanding on the ideas from t01_auto_dec.py, this file explores the equivalence between a shift signal of length n and the signals generated by multiple full adders. It provides a deeper understanding of the interplay between shift operations and fundamental arithmetic components, also depending on the groundwork laid by t01_auto_dec.py.

t04_gen_sram.py

Independent of the other files, this file offers a method for generating SRAM configurations. It outlines the process and provides the implementation details necessary to create the required SRAM settings using only Python's standard library.

Usage

To utilize the test codes (t01_auto_dec.py, t02_auto_shift_dec.py, and t03_full_add_signal.py), run them sequentially, starting with t01_auto_dec.py as it forms the basis for the subsequent files. For generating SRAM configurations, simply run t04_gen_sram.py on its own.

Dependencies

All files in this project exclusively use Python's standard library and do not require any additional installations or external dependencies.

License

This project is licensed under the BSD-3-Clause License.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages