DocumentCode :
2873682
Title :
Stream-oriented FPGA computing in the Streams-C high level language
Author :
Gokhale, Maya ; Stone, Jan ; Arnold, Jeff ; Kalinowski, Mirek
Author_Institution :
Space Data Syst. Group, Los Alamos Nat. Lab., NM, USA
fYear :
2000
fDate :
2000
Firstpage :
49
Lastpage :
56
Abstract :
Stream oriented processing is an important methodology used in FPGA-based parallel processing. Characteristics of stream-oriented computing include high-data-rate flow of one or more data sources; fixed size, small stream payload (one byte to one word); compute-intensive operations, usually low precision fixed point, on the data stream; access to small local memories holding coefficients and other constants; and occasional synchronization between computational phases. We describe language constructs, compiler technology, and hardware/software libraries embodying the Streams-C system which has been developed to support stream-oriented computation on FPGA-based parallel computers. The language is implemented as a small set of library functions callable from a C language program. The Streams-C compiler synthesizes hardware circuits for multiple FPGAs as well as a multi-threaded software program for the control processor. Our system includes a functional simulation environment based on POSIX threads, allowing the programmer to simulate the collection of parallel processes and their communication at the functional level. Finally we present an application written both in Streams-C and hand-coded in VHDL. Compared to the hand-crafted design, the Streams-C-generated circuit takes 3x the area and runs at 1/2 the clock rate. In terms of time to market, the hand-done design took a month to develop by an experienced hardware developer. The Streams-C design rook a couple of days, for a productivity increase of 10x
Keywords :
C language; circuit layout CAD; field programmable gate arrays; hardware-software codesign; parallel processing; program compilers; reconfigurable architectures; software libraries; C language program; FPGA-based parallel processing; POSIX threads; Streams-C compiler; Streams-C high level language; VHDL; compiler technology; compute-intensive operations; control processor; functional simulation environment; hardware circuits; high-data-rate flow; language constructs; low precision fixed point; multi-threaded software program; software libraries; stream-oriented FPGA computing; stream-oriented computing; synchronization; Circuit simulation; Concurrent computing; Data flow computing; Field programmable gate arrays; Hardware; High level languages; Parallel processing; Payloads; Software libraries; Synchronization;
fLanguage :
English
Publisher :
ieee
Conference_Titel :
Field-Programmable Custom Computing Machines, 2000 IEEE Symposium on
Conference_Location :
Napa Valley, CA
Print_ISBN :
0-7695-0871-5
Type :
conf
DOI :
10.1109/FPGA.2000.903392
Filename :
903392
Link To Document :
بازگشت