Designing Scalable FPGA-Based Reduction Circuits Using Pipelined Floating-Point Cores
IPDPS '05 Proceedings of the 19th IEEE International Parallel and Distributed Processing Symposium (IPDPS'05) - Workshop 3 - Volume 04
High-Performance Reduction Circuits Using Deeply Pipelined Operators on FPGAs
IEEE Transactions on Parallel and Distributed Systems
Software support tools for high-speed real-time simulations
GCMS '09 Proceedings of the 2009 Grand Challenges in Modeling & Simulation Conference
Hi-index | 0.00 |
FPGAs are increasingly being used as a key component in cost-effective high-performance simulations. Most of these efforts have been application specific requiring a custom design. Coding an FPGA can be very challenging but simple, non-optimal configurations are possible using graphical tools such as the Simulink blockset. Greater complexity and improved performance can be gained using a Hardware Description Language (HDL) such as VHDL or Verilog. The problem of producing an FPGA-based general-purpose simulation system is considerably more demanding. The design of FPGA solutions that perform complex mathematical operations efficiently is difficult and compile times can be very long. One approach to providing this capability to simulation designers who are not expert FPGA programmers is to use pre-compiled FPGA structures driven by data representing a particular model. A first step is described which provides for the solution of systems of linear differential equations. Non-linear features will be added later. The key to this first step is a flexible, efficient FPGA implementation of a matrix multiplier. An approach is described that improves on previously published methods; that can handle matrices of any size and up to over 100*100 on a single device; that offers flexibility in the choice of FPGA resources, such as DSP (digital signal processor) slices or LUTs (look-up tables); and is linearly scalable in its use of these resources. The method is used as part of an implementation of a multi-rate benchmark representing an unmanned underwater vessel. The matrix multiplier is used in the simulation of the 3-phase induction motor drive of the vessel. Non-linear product terms are also handled in this model. Non-linear features will be added in future in the form of libraries of non-linear elements.