• 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