ALCHA: Introducing Arbitrary Fixed-point and Procedural Programming to FPGA Firmware Design
John-Philip Taylor, Simon Lucas Winberg · 2018
FPGA-based DSP generally has two aspects: processing pipelines and finite state machine (FSM) controllers. Implementation of these components are typically one of the more challenging parts of the project that often takes a significant portion of development time. Furthermore, it is a part of the code that may be the limiting factor in system performance.The ALCHA language is a new programming language for coding FPGA firmware that is currently under development. ALCHA focuses on providing a variety of powerful features that will improve developer productivity.This paper presents ALCHA features that aim to support the two DSP features mentioned above. Pipelining is facilitated by letting the developer write code in terms of real-world units, such as voltage, metres and radians. The implementation of FSM controllers is supported by using a structured procedural programming model to express algorithm flow. The programming model has been designed with object-orientation in mind so that the ALCHA user can make use of polymorphism and other abstraction mechanisms.