We present a High-Level Python-based Hardware Description Language (HLPyHDL), which uses object-oriented Python as a source language and converts it to standard VHDL.
It uses python as its source language and converts it to standard VHDL. Compared to other approaches of building converters from a high-level programming language into a hardware description language, this new approach aims to maintain an object-oriented paradigm throughout the entire process. Instead of removing all the high-level features from Python to make it into an HDL this approach goes the opposite way. It tries to show how certain features from a high-level language can be implemented into an HDL, providing the corresponding benefits of high-level programming for the user. This approach sees the following features as mandatory for object-orientated design: Classes (Combination of Methods and Data), Data Abstraction (Types are defined by their public interfaces), encapsulation (preserving of internal invariances), Information Hiding (expressing intentions), Inheritance (similarity hierarchies) and polymorphism (similar types have similar interfaces). We demonstrate the features of HLPyHDL in the context of the development of firmware for a Belle II detector subsystem: the K-Long and Muon Counter (KLM). HLPyHDL is in an early development state, nevertheless, core functionalities such as converting to VHDL and running python-based simulations are already implemented. Running simulation in python has the advantage that the user can take advantage of all python libraries and features for the testing code. Only the Unit Under Test (UUT) needs to obey the limitations introduced by the conversion to VHDL.
|Are you a student?||No|