Font Size: a A A

The Hthreads Compiler Project: Lessons learned from C to VHDL compilation for FPGAs

Posted on:2010-08-08Degree:M.SType:Thesis
University:University of ArkansasCandidate:Stevens, James MFull Text:PDF
GTID:2448390002474037Subject:Computer Science
Abstract/Summary:
Field-programmable gate arrays (FPGAs) are integrated circuits that allow hardware designers to implement different parallel circuit designs by setting configuration bits in lookup tables and switches to achieve any desired functionality. Traditionally, FPGAs were programmed using hardware synthesis techniques such as schematic capture or hardware description languages. Recently, a trend has developed towards enabling software languages to be compiled into FPGA configurations. Another major trend is the advent of system-level hardware/software co-design for FPGAs, which focuses on designing an entire system rather than an individual hardware component.;The Hthreads Compiler project was developed from 2005 to 2009 and had four generations of work. The primary outcomes of the project were the development of a VHDL finite state machine model to support the C language, the development of hardware thread interfaces to efficiently support the execution of a compiled hardware thread, and the development of a number of prototype compilers to demonstrate the feasibility of an FPGA compiler that utilizes unmodified C.;This thesis describes the Hthreads Compiler system. The Hthreads Compiler system targets the Hthreads platform, which provides operating system services for FPGAs to create a hardware/software co-design model based on POSIX Threads. In Hthreads, threads based in both software and hardware co-exist and utilize hardware-based cores that implement OS services such as scheduling, thread management, and synchronization. The Hthreads Compiler's output is a hardware thread, which is then plugged into the Hthreads system to execute. The compiler's input language is unmodified ANSI C and the output is VHDL. This enables a programmer familiar with the C programming language to take advantage of the features of hardware threads without having to become a hardware engineer.
Keywords/Search Tags:Hardware, Hthreads compiler, Fpgas, VHDL, Project
Related items