Pinned Repositories
6-color-e-paper-weather-station-v2
This repository includes all design files for a weather station project built using a 6-color e-paper from InkPlate, which is a 600x448 pixels display. The weather station displays the weather forecast and outside temperature for a given city (updated every 4 h) as well as and indoor temperature, humidity, and pressure (updated every 1 h).
CS2-CPP
Minimum-cost maximum-flow. This is a "ported to C++" version of the famous scaling push-relabel CS2 mcmf algorithm of A.V. Goldberg [1]. This C++ implementation is developed from the original C code. [1] A.V. Goldberg, "An Efficient Implementation of a Scaling Minimum-Cost Flow Algorithm," J. Algorithms, vol. 22, pp. 1-29, 1997.
Face-Detection-on-FPGA
This a complete and fully working Viola-Jones face detection algorithm described in VHDL and verified on the DE2-115 FPGA board.
hnoc
Custom NoC topology synthesis tool. Main steps: simulated annealing based floorplanning (B*-tree representation), bipartite-matching based routers assignment, multicommodity flow based routing paths calculation (congestion minimization), and VNOC simulation (latency estimation).
mcf_solver
Multicommodity Flow: efficient C++ implementation of a polynomial time approximation algorithm
MCMF4
Minimum-cost maximum-flow. This is an adapted version of the Edmonds-Karp relabelling mcmf algorithm [1], originally implemented by Igor Naverniouk. This adapted version allocates memory dynamically in order to use memory as needed. [1] J. Edmonds, R.M. Karp, "Theoretical Improvements in Algorithmic Efficieincy for Network Flow Problems," J. ACM, vol. 19, pp. 248-264, 1972.
pronerds
Efficient network reconfiguration of distribution systems for loss minimization. It is based on a minimum-cost maximum-flow algorithm. The tool also includes the famous Baran's reconfiguration algorithm (for comparison purposes) as well as DistFlow loss estimation technique.
usb2uart
Design files (KiCAD layout, Arduino testing program, and 3D printing files of enclosure in Fusion 360) of a USB to UART converter.
VHDL-Examples-from-Pong-Chu-Book
This repository contains all the needed source files for several examples from Pong Chu's book: "Pong P. Chu, FPGA Prototyping by VHDL Examples: Xilinx Spartan-3 Version, Willey, 2008."
vnoc20
This is a flexible trace-driven cycle-accurate simulator for homogeneous NoCs. It has integrated Orion 2 power model as well as a simple GUI, useful for debugging and displaying routers congestion. In addition, it has frequency throttle and frequency boost based DVFS (dynamic voltage and frequency scaling) implemented at router level. It is meant to be used as either an NoC simulation tool or a platform for implementing and investigating DVFS ideas.
eigenpi's Repositories
eigenpi/Face-Detection-on-FPGA
This a complete and fully working Viola-Jones face detection algorithm described in VHDL and verified on the DE2-115 FPGA board.
eigenpi/CS2-CPP
Minimum-cost maximum-flow. This is a "ported to C++" version of the famous scaling push-relabel CS2 mcmf algorithm of A.V. Goldberg [1]. This C++ implementation is developed from the original C code. [1] A.V. Goldberg, "An Efficient Implementation of a Scaling Minimum-Cost Flow Algorithm," J. Algorithms, vol. 22, pp. 1-29, 1997.
eigenpi/mcf_solver
Multicommodity Flow: efficient C++ implementation of a polynomial time approximation algorithm
eigenpi/VHDL-Examples-from-Pong-Chu-Book
This repository contains all the needed source files for several examples from Pong Chu's book: "Pong P. Chu, FPGA Prototyping by VHDL Examples: Xilinx Spartan-3 Version, Willey, 2008."
eigenpi/vnoc20
This is a flexible trace-driven cycle-accurate simulator for homogeneous NoCs. It has integrated Orion 2 power model as well as a simple GUI, useful for debugging and displaying routers congestion. In addition, it has frequency throttle and frequency boost based DVFS (dynamic voltage and frequency scaling) implemented at router level. It is meant to be used as either an NoC simulation tool or a platform for implementing and investigating DVFS ideas.
eigenpi/usb2uart
Design files (KiCAD layout, Arduino testing program, and 3D printing files of enclosure in Fusion 360) of a USB to UART converter.
eigenpi/pronerds
Efficient network reconfiguration of distribution systems for loss minimization. It is based on a minimum-cost maximum-flow algorithm. The tool also includes the famous Baran's reconfiguration algorithm (for comparison purposes) as well as DistFlow loss estimation technique.
eigenpi/6-color-e-paper-weather-station-v2
This repository includes all design files for a weather station project built using a 6-color e-paper from InkPlate, which is a 600x448 pixels display. The weather station displays the weather forecast and outside temperature for a given city (updated every 4 h) as well as and indoor temperature, humidity, and pressure (updated every 1 h).
eigenpi/hnoc
Custom NoC topology synthesis tool. Main steps: simulated annealing based floorplanning (B*-tree representation), bipartite-matching based routers assignment, multicommodity flow based routing paths calculation (congestion minimization), and VNOC simulation (latency estimation).
eigenpi/MCMF4
Minimum-cost maximum-flow. This is an adapted version of the Edmonds-Karp relabelling mcmf algorithm [1], originally implemented by Igor Naverniouk. This adapted version allocates memory dynamically in order to use memory as needed. [1] J. Edmonds, R.M. Karp, "Theoretical Improvements in Algorithmic Efficieincy for Network Flow Problems," J. ACM, vol. 19, pp. 248-264, 1972.
eigenpi/propart
This tool implements an efficient extreme event screening for power systems. It is based on cutsize and power-imbalance oriented partitioning.
eigenpi/reliablenoc
Branch-and-bound (BB) algorithm to solve the problem of energy- and reliability-aware mapping for regular NoCs. Reliability is estimated by an efficient Monte Carlo algorithm based on the destruction spectrum of the network. The tool is developed on top of "nocmap 1.2" from CMU.
eigenpi/remnoc
This tool implements an efficient bipartite-matching based heuristic for application remapping to facilitate fault-tolerance against processing element (PE) failures. It also includes a simulated annealing based implementation for comparison purposes.
eigenpi/TPR
Three-dimensional Place and Route for FPGAs. This is a complete placement and routing tool for 3D FPGA architectures. The placer is partitioning based while the router is the 3D adaptation of the VPR 2D router.
eigenpi/Vibrating-Alert-Bracelet
Complete design of a vibrating alert bracelet (VAB) for hearing-impaired people. VAB unit can receive signal via WiFi, which triggers it to vibrate (+ LED on). Signal sent from Android App. VAB also can send a distress signal to the App, which is used by the apartment community manager.
eigenpi/YARY
This is a self-balancing robot design built with an Arduino Pro Mini. It is controlled with a BlueTooth Joystick implemented as an Android App.
eigenpi/Desktop-Contemplator-V2
This is an Arduino project using an Arduino Mega board to show on a TFT display several different visual effects. You can select via three TFT buttons one of three different types of patterns to render for your enjoyment: 1) fractals, 2) plasmas, or 3) cool geometry.
eigenpi/fly-n-shoot
This project implements the classic Fly-n-Shoot game entirely in VHDL and verifies its correct operation on real hardware, DE1-SoC FPGA board.
eigenpi/LED-8x8-Heart
This project uses an ESP8266 WiFi module connected to an Arduino board to control an 8x8 LED matrix. The controlling commands are sent from an Android app running on an Android device.
eigenpi/ml-pollutant-prediction
This is the Python code and cleaned datasets used for the experiments discussed in the following paper: [1] S. Poore and C. Ababei, Can machine learning models be used to predict pollutants based on measured other pollutants?, IEEE Int. Electro/Information Technology Conference (EIT), Romeoville, IL, May 18-20, 2023.
eigenpi/parallelVPR
This is the multithreaded version of the simulated annealing based placement for FPGAs of VPR. The archive also includes all 20 testcases of VPR 4.3, and the largest testcases of VPR 5.0.
eigenpi/prodires
This program implements a deterministic algorithm for the determination of the minimum break point set (MBPS) of directional relay networks based on k-trees of the network graphs.
eigenpi/Proximity-Sensor
Proximity Sensor Design (PCB hardware, Embedded C software)
eigenpi/Sand-Dice-LoLShield
This project implements an electronic dice pair - displayed on a Lots-of-LEDs (LoL) Shield. It uses an Arduino Uno board and an MPU6050 IMU.
eigenpi/vnoc3
This is a software framework to support the exploration of 3D NoC architectures with two and three layers: first and third layers host irregular floorplans and the middle layer is dedicated to implementing the communication infrastructure as a regular NoC.
eigenpi/VPR-GR
This is an enhanced routing algorithm implemented on top of the VPR 4.3 tool. It changes the order in which nets are ripped-up and rerouted. Cost calculation is altered during wave expansions for two-pin nets based on the global routing solution obtained by solving an equivalent multicommodity flow problem.