Implementing Cellular Automata in FPGA Logic - Semantic Scholar

Report 11 Downloads 32 Views
Darmstadt University of Technology Computer Architecture Group

Implementing Cellular Automata in FPGA Logic Mathias Halbach, Rolf Hoffmann 1. Introduction 2. Implementing Cellular Automata in Software (C) 3. Hardware Prototype Implementation 4. Comparison Hardware vs. Software 5. Conclusion 1

Darmstadt University of Technology Computer Architecture Group

1. Introduction Cellular Automata – Pioneers

2

z

John von Neumann (1903-1957)

z

Konrad Zuse (1910-1995) with "Rechnender Raum" (computing space)

Darmstadt University of Technology Computer Architecture Group

Cellular Automata (CA)

3

optimal model for applications with inherent local neighborhood physical fields, lattice-gas models, models of growth, moving particles, fluid flow, logic simulation, numerical algorithms, routing problems, picture processing, genetic algorithms, cellular neural networks.

Hardware Platform CEPRA and CDL

Darmstadt University of Technology Computer Architecture Group

z

4

CEPRA: Cellular Processing Architecture – – – – – –

z

CEPRA-S, 2001 CEPRA-3D, 1997 CEPRA-1D, 1996 CEPRA-1X, 1996 CEPRA-8D, 1995 CEPRA-8L, 1994

(see next slide) (2 FPGAs, 3 dimensional) (1 FPGA) (1 FPGA) (8 DSPs) (8 FPGAs)

CDL: Cellular Description Language

CEPRA-S

Darmstadt University of Technology Computer Architecture Group

2 FPGAs

5

8 Data Memories 1 Program Memory 1 Special Memory

Prototyping Platform z

Altera Flex 10k Evaluation Board

Darmstadt University of Technology Computer Architecture Group



6

z

FPGA: Flex EPF10K70RC240-4 with 3756 logic cells

MAX+plus II Tools –

AHDL, VERILOG Æ FPGA-Logic

Darmstadt University of Technology Computer Architecture Group

Question

7

If Cellular Automata are implemented in FPGA-Logic: How high is the speed-up in comparison to a software implementation on a PC?

CA Rules used for Comparison z

1. Rule: Belousov-Zhabotinsky Reaction

Darmstadt University of Technology Computer Architecture Group



8



describes an oscillating chemical process This rule is neither very simple nor very complex

function fBZR(Cell, North, East, South, West); const n=127, g=11; begin b := (North=n) + (East=n) + (South=n) + (West=n); a := (0