Using Lava to design and verify recursive and periodic sorters
The Lava system is an experimental framework for designing, verifying, and implementing circuits using powerful concepts borrowed from the world of lazy functional programming. We show how the Lava system is used to design and analyse fast sorting circuits for implementation on Field Programmable Gate Arrays (FPGAs). Two types of sorting networks are described, analyzed, and implemented. We present recursive sorting networks and periodic sorting networks based on Batcher’s bitonic merger and on Batcher’s odd even merger. We show how a design style that concentrates on capturing connection patterns gives elegant generic circuit descriptions. This style aids circuit analysis and also gives the user fine control of the final layout on the FPGA. We demonstrate this by analysing and implementing four sorters on a XilinxVirtexTM-IIFPGA.Performance figures are presented.