Hardware Verification Workflow in Scala

Bachelor thesis, Research assistant, Master thesis

Research focus: Embedded Systems, Embedded Systems and Security, Development Tools, Multiplatform Software Development, Software Engineering, Software Performance
Courses of study: Electrical Engineering, Informatics, Information Engineering, Related Disciplines, Business Informatics

Job Description

Chisel is a modern hardware design language (HDL) that facilitates advanced circuit generation and design reuse for both ASIC and FPGA digital logic design. By adding hardware construction primitives to the Scala programming language, Chisel enables the designer to write complex, parameterizable circuit generators that produce synthesizable Verilog. This generation methodology enables the creation of re-usable components and libraries, such as FIFO queues and arbiters but misses an automated verification workflow. The work is part of the joint project Scale4Edge, which aims to provide a commercial ecosystem for a scalable and flexibly expandable edge computing platform.

Your Responsibilities

Goal of this student thesis is the design and implementation of an automated hardware verification workflow by extending the Chisel library with new language constructs or annotations for specifying hardware properties. These properties are than used in the Verilog generation process to generate verification models that can be automatically verified by an external verification backend.

  • Research and evaluation of state of the art verification workflows for hardware designs
  • Design of new mechanisms for hardware property specification in Chisel
  • Implementation of a verification model generator
  • Evaluation of the hardware verification workflow on a small hardware design

Our Offer

  • An interdisciplinary working environment with partners from science and industry
  • Insight in research challenges in the context of hardware design and verification
  • A pleasant working atmosphere
  • Constructive teamwork

Your Profile

  • Programming experience in a functional programming language, e.g., Scala
  • Basic knowledge in hardware description languages, e.g., Verilog or VHDL
  • Basic Linux skills
  • Fluent in German or English
  • Motivation and commitment


We are looking forward to receiving your PDF application. Please send your application containing the following documents:

  • Current transcript of records

Job Description