# HTCC: Haskell to Handel-C Compiler

**Authors:** Ahmed Ablak, Issam Damaj (American University of Kuwait)

arXiv: 1907.07764 · 2019-07-19

## TL;DR

HTCC is a compiler that translates a subset of Haskell into hardware description languages and FPGA configurations, enabling functional programming for hardware design with automated, rapid generation and evaluation.

## Contribution

This paper introduces HTCC, a novel compiler that converts Haskell code into hardware description languages and FPGA configurations, supporting high-level functional programming for hardware development.

## Key findings

- Successfully compiles Haskell to Handel-C, VHDL, Verilog, EDIF, and SystemC.
- Demonstrates hardware generation for first-class and higher-order functions.
- Performs case study and performance analysis on FPGA implementations.

## Abstract

Functional programming languages, such as Haskell, enable simple, concise, and correct-by-construction hardware development. HTCC compiles a subset of Haskell to Handel-C language with hardware output. Moreover, HTCC generates VHDL, Verilog, EDIF, and SystemC programs. The design of HTCC compiler includes lexical, syntax and semantic analyzers. HTCC automates a transformational derivation methodology to rapidly produce hardware that maps onto Field Programmable Gate Arrays (FPGAs) . HTCC is generated using ANTLR compiler-compiler tool and supports an effective integrated development environment. This paper presents the design rationale and the implementation of HTCC. Several sample generations of first-class and higher-order functions are presented. In-addition, a compilation case-study is presented for the XTEA cipher. The investigation comprises a thorough evaluation and performance analysis. The targeted FPGAs include Cyclone II, Stratix IV, and Virtex-6 from Altera and Xilinx.

## Full text

_Full body text omitted from this summary view._ Fetch the complete paper as Markdown: https://tomesphere.com/paper/1907.07764/full.md

## Figures

8 figures with captions in the complete paper: https://tomesphere.com/paper/1907.07764/full.md

## References

36 references — full list in the complete paper: https://tomesphere.com/paper/1907.07764/full.md

---
Source: https://tomesphere.com/paper/1907.07764