ArithsGen tool for arithmetic circuits generation

FIT BUT bachelor's degree project

Description

ArithsGen presents an open source tool that enables generation of various arithmetic circuits along with the possibility to export them to various representations which all serve their specific purpose. C language for easy simulation, Verilog for logic synthesis, BLIF for formal verification possibilities and CGP to enable further global optimization.

Usage

python3 ariths_gen.py

Example of generation

#Example of 8-bit unsigned dadda multiplier that uses rca to provide the final product
a = Bus(N=8, prefix="a_bus")
b = Bus(N=8, prefix="b_bus")

u_dadda = UnsignedDaddaMultiplier(a=a, b=b, prefix="h_u_dadda_rca8", unsigned_adder_class_name=UnsignedRippleCarryAdder)
u_dadda.get_v_code_hier(open("h_u_dadda_rca8.v", "w"))
Description
Generator of arithmetic circuits (multipliers, adders) and approximate circuits
Readme 74 MiB
Languages
C 59.1%
Verilog 38.4%
Coq 2.2%
Python 0.3%