Stream-oriented FPGA computing in the Streams-C high level language

被引:73
作者
Gokhale, M [1 ]
Stone, J [1 ]
Arnold, J [1 ]
Kalinowski, M [1 ]
机构
[1] Univ Calif Los Alamos Natl Lab, Space Data Syst grp, Los Alamos, NM 87545 USA
来源
2000 IEEE SYMPOSIUM ON FIELD-PROGRAMMABLE CUSTOM COMPUTING MACHINES, PROCEEDINGS | 2000年
关键词
D O I
10.1109/FPGA.2000.903392
中图分类号
TP3 [计算技术、计算机技术];
学科分类号
0812 ;
摘要
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 tone 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. In this paper 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 took a couple of days, for a productivity increase of 10x.
引用
收藏
页码:49 / 56
页数:8
相关论文
共 6 条
[1]  
GOKHALE MB, 1998, P IEEE S FPGAS CUST
[2]  
Hall M., 1999, P 6 REC ARCH WORKSH
[3]  
HOARE CAR, 1978, CACM, V21, P8
[4]  
HUTCHINS B, 1998, P IEEE S FIELD PROGR
[5]  
PAUER E, 2000, FPGA2000
[6]  
PERIYAYACHERI S, 1999, P 11 IASTED PAR DIST