FPGA: what's in it for a database?
Proceedings of the 2009 ACM SIGMOD International Conference on Management of data
From Silicon to Science: The Long Road to Production Reconfigurable Supercomputing
ACM Transactions on Reconfigurable Technology and Systems (TRETS)
Streams on wires: a query compiler for FPGAs
Proceedings of the VLDB Endowment
Proceedings of the VLDB Endowment
Lime: a Java-compatible and synthesizable language for heterogeneous architectures
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
Proceedings of the 48th Design Automation Conference
The VLDB Journal — The International Journal on Very Large Data Bases
A compiler and runtime for heterogeneous computing
Proceedings of the 49th Annual Design Automation Conference
And then there were none: a stall-free real-time garbage collector for reconfigurable hardware
Proceedings of the 33rd ACM SIGPLAN conference on Programming Language Design and Implementation
From 1G to 10G: code reuse in action
Proceedings of the first edition workshop on High performance and programmable networking
And then there were none: a stall-free real-time garbage collector for reconfigurable hardware
Communications of the ACM
Hi-index | 0.02 |
We describe the Kiwi parallel programming library and its associated synthesis system which is used to transform C# parallel programs into circuits for realization on FPGAs. The Kiwi system is targeted at making reconfigurablecomputing technology accessible to software engineers that are willing to express their computations as parallel programs. Although there has been much work on compiling sequential C-like programs to hardware byautomatically ‘discovering’ parallelism, we work by exploiting the parallel architecture communicated by the designer through the choice of parallel and concurrent programming language constructs. Specifically, we describe a system that takes .NET assembly language with suitable custom attributes as input and produces Verilog output which is mapped to FPGAs. We can then choose to apply analysis and verification techniques to either the highlevelrepresentation in C# or other .NET languages or to the generated RTL netlists. A distinctive aspect of our approach is the exploitation of existing language constructs for concurrent programming and synchronization which contrasts with other schemes which introduce specialized concurrency control constructs to extend a sequential language