MIPS RISC architecture
Conception, evolution, and application of functional programming languages
ACM Computing Surveys (CSUR)
PRISC: programmable reduced instruction set computers
PRISC: programmable reduced instruction set computers
Lava: hardware design in Haskell
ICFP '98 Proceedings of the third ACM SIGPLAN international conference on Functional programming
On embedding a microarchitectural design language within Haskell
Proceedings of the fourth ACM SIGPLAN international conference on Functional programming
QuickCheck: a lightweight tool for random testing of Haskell programs
ICFP '00 Proceedings of the fifth ACM SIGPLAN international conference on Functional programming
Observable Sharing for Functional Circuit Description
ASIAN '99 Proceedings of the 5th Asian Computing Science Conference on Advances in Computing Science
Garp: a MIPS processor with a reconfigurable coprocessor
FCCM '97 Proceedings of the 5th IEEE Symposium on FPGA-Based Custom Computing Machines
Microprocessor Specification in Hawk
ICCL '98 Proceedings of the 1998 International Conference on Computer Languages
Lava and JBits: From HDL to Bitstream in Seconds
FCCM '01 Proceedings of the the 9th Annual IEEE Symposium on Field-Programmable Custom Computing Machines
A reflective functional language for hardware design and theorem proving
Journal of Functional Programming
The Molen compiler for reconfigurable processors
ACM Transactions on Embedded Computing Systems (TECS)
Smallcheck and lazy smallcheck: automatic exhaustive testing for small values
Proceedings of the first ACM SIGPLAN symposium on Haskell
Processor Description Languages
Processor Description Languages
Type-safe observable sharing in Haskell
Proceedings of the 2nd ACM SIGPLAN symposium on Haskell
IFL'09 Proceedings of the 21st international conference on Implementation and application of functional languages
Design, implementation, and verification of an adaptable processor in lava HDL
ARC'11 Proceedings of the 7th international conference on Reconfigurable computing: architectures, tools and applications
The design and implementation of feldspar an embedded language for digital signal processing
IFL'10 Proceedings of the 22nd international conference on Implementation and application of functional languages
Hi-index | 0.00 |
This contribution documents the development, implementation, and verification of a RISC microprocessor using the functional hardware description language Lava. Basic methods to describe hardware in Lava are introduced and extended towards implementation of instruction set architecture and pipeline structure and control. FPGA synthesis results are presented and compared against a traditional VHDL-based design flow. An implementation of a coprocessor interface used to accelerate application-specific code is discussed supported by the case study of fast Fourier transform. To authors' best knowledge it is the first attempt to describe, simulate, verify, synthesize and test-run a complete von Neumann machine in Lava. Project experiences are summarized followed by a sketch of possible directions for further improvement of Lava in particular and functional hardware description languages in general.