Internship Projects

Supervisor Topic Short Description Required Skill Required Tools Reference Papers
Salim Ullah FPGA-based Cycle Accurate Emulator for Exploring the Non-volatile Memories An emulator for the quick analysis of various NVM-based caches on the overall performance of a computing system

Computer Architecture, RISC-V

Xilinx Vivado, VHDL/Verilog  
Shubham Rai Hardware Trojans Look how effective hardware Trojans can be devised using false logic. Can we do cross-layer here? HDL, C/C++, Linux Design compiler/ Cadence Virtuoso "A2: Analog Malicious Hardware Hardware"
Shubham Rai Machine Learning techniques for Logic synthesis How can we use machine learning techniques in Logic synthesis? What kind of network we should choose to have powerful optimizations? C/C++, Python
Ansh Rupani/ Shubham Rai / Yuhao Federeted Learning on IOT Extending federated learning framework on IOT devices and see communication vs computation trade-off C/C++, Python Tensor flow, Google/ intel neural sticks, FPGA
Shubham Rai/ Ansh Rupani Seamless abstraction for heterogeneous computing Exploring MLIR for machine learning applications on heterogeneous platforms C/C++ LLVM, SSA compiler basics
Michael Raitza / Steffen Märcker Implement Ω-regular expressions in PRISM Extension of the PRISM query language to take Ω-regular expressions as input, as they are a natural fit to express certain types of queries. What would a good syntax look like? How are they compiled into an automaton for automatic evaluation? Java PRISM probabilistic model checker  
Michael Raitza / Steffen Märcker Combine conditional probabilities and quantiles into a single implementation Both implementations must be brought up to the current PRISM version. They must be interfaced with each other such that both features can be used in the same model. Java PRISM probabilistic model checker  
Michael Raitza / Steffen Märcker Steady-state probabilities for the PRISM parametric engine Implement long-run computation for the parametric engine. Implement Gauss-Jordan algorithm to compute long-run steady-state probability. Java PRISM probabilistic model checker  
Siva Satyendra Sahoo Using AI for Cyberphysical systems The project involves the exploration of the applicability of various Machine Learning methods in the optimization of the controller design for Cyberphysical systems. A sample problem of controlling various actuators in an office-building environment for minimizing the energy consumption and maximizing user-comfort will be used as a test-case for testing the performance of traditional, predictive, and self-learning algorithms. A basic idea of Machine Learning methods and some background on control systems. Python with ML tools Scikit-learn and/or TensorFlow  
Salim Ullah Accuracy and Resilience Analysis of Deep Neural Networks for Performance and Fault Tolerance The project involves research into the design of resilient systems for Neuromorphic computing. Multiple aspects such as reliability and performance of systems implementing Deep Neural Networks will be studied Machine Learning and SystemC HLS tools like Xilinx Vivado  
Siva Satyendra Sahoo / Salim Ullah Implementing application-specific approximate computing for RISC-V The project involves implementing approximate arithmetic operators for RISC-V Computer Architecture, HDL (Verilog/ VHDL/ SystemC) FPGA Design tools (Xilinx/Altera)  
Siva Satyendra Sahoo Cross-layer Design of Heterogeneous Embedded Systems The project involves the system-level design of embedded systems that considers design choices across multiple layers of the system stack. The project will focus on both traditional and machine learning applications as test applications for performance metrics such as latency, power, throughput, reliability and energy. Multi-objective Design Space Exploration, Gem5/McPat/HotSpot Python/C++ tools  
Behnaz Ranjbar Drone Applications Analysis Running applications of Drone on a real board, Profiling and Analyzing them in terms of execution time, power, etc. Bringing out these data from the real system Python, Linux    
Salim Ullah Approximate Cache Architecture The project focuses on reducing energy consumption and read/write latencies of accessing memories by providing approximate caches. Computer Architecture Python/C++ tools, HDL Gem5
Zahra Ebrahimi Approximate computing for image processing Improve area-, throughput-, and energy-efficiency of image processing applications through applying circuit- and application-level approximations. C++/Python, Verilog/VHDL Design Compiler, Vivado Paper
Zahra Ebrahimi Approximate Computing for Bio-Signal Processing  Improve area-, throughput-, and energy-efficiency of of a case study bio-signal application through applying circuit- and application-level approximations  C++/Python, Verilog/VHDL Design Compiler, Vivado ECG
Zahra Ebrahimi Cross-Layer Approximation of Neural Networks  Improve area-, throughput-, and energy-efficiency of NNs through applying approximations across HW/SW stack C++/Python, Verilog/VHDL Design Compiler, Vivado, Tensor Flow


Mark Wijtvliet Parallel Routing for FPGAs Improve the speed of routing tools for FPGAs by exploring methods to parallelize these tools. Algorithm design and optimization / software development  /programming for parallel architectures. C++/Python, Verilog/VHDL