Thesis topics for master's students
With MATLAB/Simulink support package for Arduino (or for Raspberry Pi) develop and test your own control problem algorithm in MATLAB/Simulink and deploy to the controller using automatic code generation; proper hardware selection; interactive algorithm parameters tuning. (https://se.mathworks.com/solutions/embedded-systems.html)
Keywords: Arduino, Matlab, embedded code generation
Supervisor(s):
- Andres Rähni
Building hardware for work or hobby projects together with programming used controllers.
Keywords: hardware, controllers
Supervisor(s):
- Peeter Ellervee
Previously achieved results: https://github.com/RedFox20/CraneVR
Keywords: VR, dynamic systems
Supervisor(s):
- Kristina Vassiljeva
- Aleksei Tepljakov
- Eduard Petlenkov
Description of the work: to apply/extend existing signal-processing techniques for classification of river sites based on field experiments. We are developing a multimodal bioinspired flow sensors, Hydromasts, for flow speed and flow characterization and we are looking into gathering more knowledge of the sensors abilities.
The assignment would include fieldwork on different rivers and river sites with an array of sensors. In addition, you will analyze recoded data in order to find distinguishable signatures of different river sites.
What will you learn: how to prepare and conduct field experiments, obtain experience in programming in MATLAB and learn methods of signal processing.
Why does it matter? The work will be done as a part of an international project (www.lakhsmi.eu) that will develop a new bio-inspired technology to make continuous and cost-effective measurements of the near field, large-scale hydrodynamic situation, for environmental monitoring in cabled ocean observatories, marine renewable energy and port/harbor security.
Supervisor(s):
- Asko Ristolainen
- Kaia Kalev
Supervisor(s):
- Vladimir Viies
Supervisor(s):
- Kristina Vassiljeva
- Eduard Petlenkov
The objective of the thesis is to create a functional CPU model on breadboards or FPGAs with an option to monitor all the CPU internal registers in runtime. Whether the chosen hardware platform will be a breadboard based or a FPGA depends on the level of studies.
In addition to monitor CPU internal register in runtime the model must have an option for automated or manual clocking. Some ideas of the result: https://www.youtube.com/watch?v=fCbAafKLqC8 or https://eater.net/6502. If an FPGA based solution is chosen then a soft-core CPU model is required. However, the runtime output mechanisms must be connected with the FPGA core for monitoring.
Keywords: CPU, hardware, breadboard, FPGA
Supervisor(s):
- Priit Ruberg
Image recognition using deep learning.
Keywords: machine learning, deep learning, AI, machine vision
Supervisor(s):
- Eduard Petlenkov
- Aleksei Tepljakov
- Kristina Vassiljeva
Supervisor(s):
Description of the work: Your task will be to develop a user interface for the use of different types of artificial lateral line (ALL) probes that we have developed in our lab. The final objective is to facilitate and extend the use of these measuring tools to those users with less advanced programing skills.
What will you learn? You will familiarize with ALL technology and you will have the opportunity of make real tests with it. In the same way, you will learn data treatment technics, programing, user interface programing, and how to represent effectively data.
Why does it matter? ALL is a new technology which is still in prototyping phase and, last years, has demonstrate many benefits for environmental monitoring. However, at the moment, data visualization and processing is being done with independent scripts which usually require a deep knowledge of the technology. Thus, it is necessary to unify these tools into a single software solution to extent the use of this technology to less advanced users.
Keywords: C#, Visual Studio, artificial lateral lines, data treatment
Supervisor(s):
- Juan Francisco Fuentes Perez
https://www.youtube.com/watch?v=8wLuMxhuLr8
Keywords: VR, virtual laboratory, control systems
Supervisor(s):
- Aleksei Tepljakov
Keywords: control, modeling, dynamic systems, fractional order systems, fractional calculus
Supervisor(s):
- Aleksei Tepljakov
Supervisor(s):
Supervisor(s):
- Kalle Tammemäe
In high-level synthesis, models of different functional units are important library elements. These models are used when selecting type of a unit and when binding operations to hardware modules. In addition, these models should give first the needed information about implementation cost (area, delay, etc.) but these models should be also used in the following synthesis phases, especially at register transfer level synthesis. Generic VHDL models satisfy both requirements but they can be used also for simulation.
Task
To design and validate generic arithmetic modules in VHDL. The modules must satisfy the following criteria:
- Abstraction level - synthesizable register transfer level, inner structure describes with logic functions.
- Language subset - synthesizable VHDL.
- Synthesis tools - Synopsys DV and/or Xilinx Vivado.
- Generic parameters - word width in bits plus parameter characterizing inner structure depending on the algorithm to be implemented.
Groups of modules
A group can be implemented partially, depending on the parameterization complexity of modules. The selection below is not final and can be changed Also, the students can propose other algorithms too.
- Integer multipliers - signed parallel multiplier, unsigned Booth 2/3/4 multipliers, signed and unsigned Radix 2/4/8/16 sequential multipliers.
- Integer dividers - signed and unsigned sequential and parallel dividers.
- Floating point modules for different data formats.
Prerequisites
- Obligatory - knowledge of VHDL.
- Recommended - IAS0600 "Digital systems design with VHDL" and/or IAS0340 "Digital systems modeling and synthesis" have been completed.
Additional information
Example algorithms - http://www.ecs.umass.edu/ece/koren/arith/simulator/
Keywords: high-level synthesis, arithmetic modules
Supervisor(s):
- Peeter Ellervee
Computationally intensive problems will be studied for applications in the following three areas:
- Combinatorial search
- Data processing (e.g. sort, search and frequent item computations)
- Advanced control in digital systems requiring highly parallel operations
Many methods, that are used to solve such problems, possess the following common features:
- The need for parallel processing of data streams (with such examples as sorting networks, Hamming weigh/distance counters applied to long-size vectors, operations over rows/columns of large matrices, etc.)
- High repetition of operations (i.e. although the number of invoked operations is limited, each operation is very frequent and has to be applied to a huge volume of data)
- The use of pipelines
- The need for concurrency and, thus, highly parallel algorithms have to be executed in hardware with the support for advanced control (such as that is used in hierarchical finite state machines)
The work focuses on the listed above features and concentrates on such hardware architectures that are the most appropriate. The following known architectures are planned to be analyzed, compared, and explored:
- Advanced FPGAs incorporating embedded blocks (DSP slices, embedded cores, etc.) and supported by existing soft cores
- Extensible processing platforms (EPP) that enable on-chip interactions between an embedded processing multi-core system and a reconfigurable logic with embedded blocks
- Graphics processing units (GPU) that might be efficient for stream processing. The main idea is to select computationally intensive problems from the areas listed above and evaluate effectiveness of different architectures assuming also their potential combination in a new (proposed architecture) that might be the most efficient. For example, we plan to evaluate which advantages could be gained if GPU would be embedded to EPP much like it is done with DSP slices in advanced Xilinx FPGAs.
Keywords: extensible processing platform, reconfigurable system, hardware accelerator
Supervisor(s):
- Aleksander Sudnitsõn
Hardware based Sudoku solver - implementation on eg FPGA usign eg cellular automata. Design of the user interface is also needed.
Keywords: Sudoku, hardware, user interface
Supervisor(s):
- Peeter Ellervee
Recent technology developments for the design and evaluation of secure and trustworthy hardware should be investigated. Technology is required to ensure that a trustworthy circuit module remains secure during its entire lifecycle from design to manufacturing to deployment and operation.
First, there is need for a design flow that can produce trustworthy circuits, and that will protect the hardware platform against tampering and the unauthorized extraction of information.
Second, the manufacturing, integration and deployment of a trustworthy integrated circuit needs protection against malicious design modifications, or Trojans. Techniques are needed to detect the presence of Trojans in fabricated devices, and to locate them in the design.
Third, there is need to implement support for trust at the hardware circuit level. Investigating security and trust concerns in FPGAs and their applications.
The goal of the work is development of new methods for secure and efficient hardware implementations for FPGA based systems, hardware Trojans – insertion/detection methodologies.
Keywords: hardware Trojans, secure hardware, reconfigurable systems
Supervisor(s):
- Aleksander Sudnitsõn
Analysis, modeling and control of laboratory-scale replicas of industrial systems.
See also: http://a-lab.ee/equipment
Keywords: identification, control, dynamic systems
Supervisor(s):
- Kristina Vassiljeva
- Aleksei Tepljakov
- Eduard Petlenkov
Supervisor(s):
- Vladimir Viies
Study of methods for design of adaptive control systems using computational intelligence methods.
Keywords: computational intelligence, control, adaptivity
Supervisor(s):
- Eduard Petlenkov
Supervisor(s):
- Vladimir Viies
Description of the work: Your goal will be to take flow information from underwater measurements and visualize them in a unique way. The tasks you will need to perform include basic signal processing (e.g. converting signals from time to frequency domain) and visualization. The measurement data will be available as ASCII and Matlab binary format, and your job will be to turn the signal data into imagery which can aid fluid dynamics researchers in understanding turbulent flows.
What you will learn: You will gain practical experience in signal processing and data visualization, programming with Matlab.
Why does it matter? Flows in Nature are often very different from those in the laboratory. We are studying how those differences are important to biological organisms, especially fish. Many aquatic animals have developed advanced sensory systems which work in turbulent flows. Turbulence includes fast and slow, big and small vortices, and comparing laboratory and natural flows is cumbersome using standard methods. We want to turn our data into stunning pictures and videos which can help researchers study turbulence in a less technical, but more human way.
Contact: Dr. Jeffrey A. Tuhtan group leader of Environmental Sensing and Intelligence, Centre for Biorobotics: jeffrey.tuhtan@taltech.ee
Supervisor(s):
- Jeffrey Andrew Tuhtan
Mathematical models of technical and control equipment in Matlab/Simulink and models simulators on industrial controllers; derivation and parametrisation of model; control algorithms; industrial communication for model behavioural simulation.
Keywords: model, PLC, PAC
Supervisor(s):
- Andres Rähni
Development of the database of Dynamic Systems: https://a-lab.ee/edu/dsdb
Supervisor(s):
- Aleksei Tepljakov
- Juri Belikov
Reverse engineering of integrated circuits has become a trivial exercise for an attacker, even when dealing with relatively modern technologies. That being said, obfuscation has been proposed as an approach to counter reverse engineering. The student working on this project will review the state of the art in layout and netlist obfuscation, leading to the proposal of new methods of making circuits less obvious to an attacker while maintaining the area, power, and timing overheads as low as possible.
Keywords: layout obfuscation, integrated circuits, application specific integrated circuits, reverse engineering
Supervisor(s):
- Samuel Nascimento Pagliarini
Supervisor(s):
IP piracy and IC overbuilding are common threats in the chip industry. Split-manufacturing has been proposed as an approach to prevent the circuit fabrication facility from reverse engineering a layout, thus preventing piracy and overbuilding. The approach has been recently identified as not as secure as once intended. The student working on this topic will review these identified weaknesses and propose novel approaches to overcome them.
Keywords: reverse engineering, integrated circuits, application specific integrated circuits, split-manufacturing
Supervisor(s):
- Samuel Nascimento Pagliarini
Supervisor(s):
- Vladimir Viies
Description of the work: Your task will be to program and simulate a virtual artificial lateral line (ALL) based on the real device developed in our lab. The ALL consists of small pressure sensors, which are used to detect flow speeds or the velocity of underwater vehicles. The simulation tool will be the Robot Operating System (ROS), which is a frequently used environment for a great variety of robotic applications. It supports different programming languages like C++ and Python. The first part of the assignment would consist of familiarizing with ROS and our ALL system. Afterwards you would be required to create the virtual ALL within the ROS environment. After successful implementation the validity of your virtual ALL has to be demonstrated in a simulation. As a possible bonus, the virtual ALL could be integrated in the simulation of the autonomous underwater vehicle (AUV) SPARUS II on which the real ALL system will be tested in the future.
What will you learn: You will: learn to work with and program in ROS, learn to model and simulate sensors for underwater robots, get to know the novel sensor system developed in our lab, get a basic knowledge in the field of underwater robotics and you will be able to apply your programming skills in this exciting field.
Why does it matter? Your work will be part of a collaboration project between the Centre for Biorobotics and the University of Girona in Spain. The goal of this collaboration is to implement our ALL sensors in the SPARUS II AUV to provide useful information for the control of the vehicle. Our sensor system is much smaller and cheaper compared to existing solutions and could therefore provide an important alternative for small or low cost underwater vehicles. By developing a simulation tool, you will help making the sensor development and implementation process less expensive and more efficient.
Contact: christian.meurer@taltech.ee
Keywords: sensor simulation, Robotic Operating system (ROS), C++, Python
Supervisor(s):
- Christian Meurer
Supervisor(s):
- Vladimir Viies
Applying ISO standardized KNX technology for all applications in home and building control, design with ETS commissioning tool, selection of instrumentation, a comparative analysis of the rivals in the field of IoT. (https://www.knx.org/knx-en/for-professionals/)
Keywords: smart houses, standardized technology
Supervisor(s):
- Andres Rähni
Freeware Middleware solutions for Systems and devices integration in Smart Buildings. Comparative analysis of solutions, usability of cloud services, standardization of information, cyber security issues. (e.g. https://se.mathworks.com/hardware-support/thingspeak.html)
Keywords: freeware, middleware, cloud services, oBIX, OPC
Supervisor(s):
- Andres Rähni
Supervisor(s):
- Vladimir Viies
Study and implementation of Human-Machine Interfaces for Control Systems.
https://www.inductiveautomation.com/resources/article/what-is-hmi
Supervisor(s):
- Kristina Vassiljeva
- Aleksei Tepljakov
- Eduard Petlenkov
Abstract
Security verification is of paramount importance in the face of hardware attacks such as Spectre and Meltdown. In recent times, the use of fuzzing, a well-established software testing method, has gained significant traction in the realm of CPU security verification.
A critical part of a robust fuzzing process involves the generation of diverse, yet efficient input programs designed to run on the processor. This approach is instrumental in finding security-related vulnerabilities, particularly in corner cases.
Within this project, students will undertake an exploration of various machine learning techniques for the purpose of generating mutants of a seed program. This endeavor aims to enhance the efficiency and cost-effectiveness of processor fuzzing, all while ensuring timely execution.
Prerequisites:
- Useful courses: Machine learning, Computer architecture (Undergrad & Adv.)
- Programming: Python, (Verilog, VHDL, System Verilog)
References:
- Cascade: CPU Fuzzing via Intricate Program Generation
- MorFuzz: Fuzzing Processor via Runtime Instruction Morphing
- ProcessorFuzz: Guiding Processor Fuzzing using Control and Status Registers
Expected Results:
- Setting up one of the state-of-the-art open source fuzzer
- Analyz different methods for instruction mutation and morphing
- Develop new algorithms for instruction mutation and morphing based on machine learning
- Simulation, producing results and comparing
- Generate simulation traces
Supervisor: Tara Ghasempouri, email: tara.ghasempouri@taltech.ee
Co-supervisor: Ali Azarpeyvand, email: ali.azarpeyvand@taltech.ee
Smart user interfaces for VR applications.
Keywords: VR, AR, XR, GUI, UI
Supervisor(s):
- Aleksei Tepljakov
- Kristina Vassiljeva
- Eduard Petlenkov
The hardware synthesis design flow consists of different optimization and transformation algorithms. To select a proper algorithm/method, one must know how they work. The purpose of this group of topics is to visualize the work of some of the algorithms in such manner that the result could be used for teaching as additional materials. The visualization should work on many platforms. For that, two languages have been proposed to be used. However, the other languages can be used too.
Algorithms to be implemented
- Graph coloring and/or partitioning with greedy and/or exact methods.
- Logic functions minimization algorithms - Quine-McCluskey, etc.
- Retiming.
- Scheduling algorithms - ASAP, ALAP, FD, Hu, etc.
The list is not final and can be changed. Also, the students can propose other algorithms too.
Prerequisites
- Knowledge of Java (JavaScript) or Tcl/Tk. Instead of those any other multi platform language for graphical user interfaces can be used.
- Recommended - IAS0340 "Digital systems modeling and synthesis" has been completed.
Keywords: hardware synthesis, optimization algorithms
Supervisor(s):
- Peeter Ellervee
Abstract:
In this project, students will embark on a journey to revolutionize computing by designing and implementing a RISC-V 32-bit multicycle pipelined processor System-on-Chip (SoC). Through a comprehensive survey of existing RISC-V cores and an in-depth understanding of RISC-V ISA manuals and toolchains, students will develop the skills necessary to bring this open-source architecture to life. With hands-on experience in FPGA implementation and the integration of FreeRTOS for real-time capabilities, students will pave the way for the future of embedded systems and computing.
Possible tasks (depending on the skills and ambition of the student):
- Understand RISC-V ISA manuals, including instruction formats and privilege levels.
- Survey existing RISC-V cores to analyse architecture and performance.
- Set up the RISC-V toolchain, including compilers and simulators.
- Implement RISC-V design on FPGA using hardware description languages.
- Study FreeRTOS and support its integration on the RISC-V core for real-time capabilities.
Prerequisites:
Prerequisites include knowledge of digital logic design, computer architecture, programming (C/C++), hardware description languages (Verilog/SystemVerilog), embedded systems, FPGA programming.
Supervisors:
Prof. Tara Ghasempouri;
PhD candidate: Sharjeel Imtiaz
Contact:
tara.ghasempouri@taltech.ee
sharjeel.imtiaz@taltech.ee
Abstract:
This project aims to integrate an AI accelerator, tailored for Convolutional Neural Network (CNN) tasks such as object detection and image classification, into a RISC-V core architecture. Students will survey existing RISC-V cores suitable for AI accelerators, gain a comprehensive understanding of CNNs and their hardware-friendly implementations using Verilog or SystemVerilog, design and implement the AI accelerator hardware, and integrate it into the RISC-V core architecture. Through benchmarking and real-world application scenarios, students will demonstrate the functionality and performance of the integrated system, gaining invaluable experience in hardware design, deep learning, and system integration.
Possible tasks (depending on the skills and ambition of the student):
- Research RISC-V cores for AI acceleration, focusing on CNN compatibility and performance.
- Understand CNN architecture and explore Verilog/SystemVerilog implementations for hardware efficiency.
- Design and optimize AI accelerator hardware for efficient CNN computations.
- Integrate AI accelerator with RISC-V core, ensuring compatibility through interface development.
- Implement the system using FPGA synthesis tools, optimizing resource utilization.
- Develop test benches and conduct hardware-in-the-loop testing to verify functionality and performance.
Prerequisites:
Prerequisite skills for this project include knowledge of digital logic design, Verilog/SystemVerilog programming, FPGA development, CNN concepts, Python programming with TensorFlow/PyTorch, and hardware/software integration.
Supervisors:
Prof. Tara Ghasempouri; PhD candidate: Sharjeel Imtiaz
Contact:
tara.ghasempouri@taltech.ee
sharjeel.imtiaz@taltech.ee
Abstract:
This project focuses on leveraging hardware-software (HW-SW) codesign techniques to implement efficient Convolutional Neural Network (CNN) accelerators for object detection and image classification tasks on the Ultra96V2 Board. Utilizing the TensilAI library, written in Scala and Verilog, students will explore the integration of custom hardware accelerators with software components to achieve high-performance inference on embedded platforms.
Possible tasks (depending on the skills and ambition of the student):
- Research CNN architecture, HW-SW codesign, and TensilAI library.
- Design and optimize Verilog-based CNN accelerators for Ultra96V2.
- Develop Scala software for hardware interfacing and data processing.
- Integrate hardware accelerators with software components.
- Implement object detection and image classification CNN models.
- Optimize solution for speed, power efficiency, and accuracy.
- Validate accelerators through extensive benchmarking on Ultra96V2.
Prerequisites:
Prerequisite skills for this project include knowledge of digital logic design, Verilog programming, Scala programming, Python programming (particularly with TensorFlow), CNN concepts, FPGA development, HW-SW codesign principles, and familiarity with the PYNQ framework for FPGA-based embedded systems development.
Supervisors:
Prof. Tara Ghasempouri; PhD candidate: Sharjeel Imtiaz
Contact:
tara.ghasempouri@taltech.ee
sharjeel.imtiaz@taltech.ee
Abstract:
This project focuses on the hardware implementation of Winograd Convolution using SystemVerilog/Verilog for efficient image processing on FPGA. Additionally, the project aims to enhance performance through the integration of application-specific approximation techniques utilizing approximate multipliers and adders. The results will be compared with existing algorithms to evaluate the efficacy of the proposed approach in vision applications.
Possible tasks (depending on the skills and ambition of the student):
- Research Winograd Convolution and approximation techniques.
- Design hardware modules in SystemVerilog.
- Implement and optimize on FPGA.
- Evaluate performance against existing algorithms.
Prerequisites:
Prerequisite skills for this project include knowledge of digital logic design, FPGA programming, SystemVerilog, python programming image processing algorithms, familiarity with Winograd Convolution, and understanding of hardware approximation techniques such as approximate multipliers and adders.
Supervisors:
Prof. Tara Ghasempouri; PhD candidate: Sharjeel Imtiaz
Contact:
tara.ghasempouri@taltech.ee
sharjeel.imtiaz@taltech.ee
Abstract:
This project aims to address the security vulnerabilities posed by software driven physical and architectural attacks such as Spectre and Meltdown on RISC-V processors through RTL (Register Transfer Level) design. Leveraging SystemVerilog assertions, the project focuses on implementing robust countermeasures to mitigate these attacks and enhance the security of RISC-V processors.
Possible tasks (depending on the skills and ambition of the student):
- Investigate Spectre and Meltdown vulnerabilities, RISC-V processor architecture, and SystemVerilog assertions.
- Develop designs to simulate Spectre and Meltdown attacks on RISC-V processors.
- Create SystemVerilog assertions to detect and mitigate vulnerabilities.
- Integrate countermeasures into the RTL design and verify effectiveness through simulation (SVA).
- Assess overhead and impact on processor performance.
- Prepare a comprehensive report on project findings and insights.
Prerequisites:
Prerequisite skills for this project include knowledge of computer architecture, digital design, RTL design using SystemVerilog, security vulnerabilities, and familiarity with verification methodologies.
Supervisors:
Prof. Tara Ghasempouri; PhD candidate: Sharjeel Imtiaz
Contact:
tara.ghasempouri@taltech.ee
sharjeel.imtiaz@taltech.ee