Skip to content
sventhijssenPublic

About

PATH is a state-of-the-art synthesis method for path-based digital stateless in-memory computing based on Binary Decision Diagrams.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Latest commit

 

History

1 Commit

Folders and files

Repository files navigation

PATH: Evaluation of Boolean Logic using Path-based In-Memory Computing

Update May 29, 2022

PATH is part of the MemX digital in-memory computing package. MemX supports both flow-based in-memory computing and path-based in-memory computing.

Introduction

Path-based computing

Path-based computing is a digital in-memory computing paradigm on 1T1M memristor crossbars.

  1. First, in the compilation step, the selectorlines are assigned Boolean literals (Boolean variables and their negations) and the memristors are programmed ON (1) or OFF (0).
  2. Second, in the evaluation step, the selectorlines are instantiated to 0 or 1, given an input vector. A high input voltage is supplied to the top-most nanowire and the bottom-most nanowire is grounded. Consequently, an electrical current will flow through the memristor crossbar.

Definition: Given a crossbar design for a Boolean function φ, then the Boolean function φ evaluates to true if and only if there exists a path along low resistive memristors from the input nanowire (top-most nanowire) to the output nanowire (bottom-most nanowire) when a high input voltage is applied to the input nanowire.

Path-based computing

Publications
Related work

Requirements

Windows
Linux
  • Python 3.6 or higher
  • Optional: CPLEX 20.1.0.0
MacOS
  • Python 3.6 or higher
  • Optional: CPLEX 20.1.0.0

Installation

Submodules

Clone this git repository and the required submodules ABC, Z3 and the EPFL benchmarks. For ABC, make sure to clone the submodule from here. Clone the submodules using the following command:

git submodule update --init --recursive
ABC

Compile the ABC tool in the directory abc.

cd abc
make
CPLEX

By default, CPLEX is the ILP solver. Download and install CPLEX, and make sure CPLEX is installed and the variable cplex_path is set correctly for your OS.

Python packages and dependencies

Use the package manager pip to install the Python dependencies in requirements.txt.

pip3 install -r requirements.txt
LuaLaTeX

Install lualatex.

Usage

In the directory examples, some examples are given on how to use PATH from command line.

python3 cli/main.py new_log t481.log | read benchmarks/t481.pla | robdd | path

Version

PATH version 1.0.0.

Contact

Sven Thijssen
University of Central Florida
sven.thijssen (at) knights.ucf.edu
http://sventhijssen.com/

References

License

Copyright 2020-2021 University of Central Florida

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

About

PATH is a state-of-the-art synthesis method for path-based digital stateless in-memory computing based on Binary Decision Diagrams.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages