Design of a fractal generator for on-the-fly generation of textures for Mali GPU
Abstract
The Mandelbrot set, shown on the front page of this report, is perhaps themost well-known example of a fractal. Fractals is a certain familyof shapes with a very distinctive, interesting shape. The term was coined byBenoit B. Mandelbrot, for whom the Mandelbrot set is named after. The Mandelbrotset and other fractals are traditionally used for aesthetic purposes, such as inart, clothing, computer games, etc. However, there are also several practicalapplications for fractals, such as image compression.The Mandelbrot set is infinitely complex, making it desirable togenerate images of arbitrary sections of the set. Several software programs thatgenerate such images exists, but due to the computationally expensive nature ofthis task, these implementations are typically very slow, even on moderncomputers. However, the problem can be shown to be highly parallelizable,suggesting that a hardware implementation of such as generator should be able togenerate smooth real-time zoom animations, unlike existing softwareimplementations.A hardware fractal generator for the Mandelbrot set has been designed andimplemented in Verilog-2001. The design is very scalable, having a parameterspecifying the number of fractal point generators (cores) the synthesistool should implement. Furthermore, it is designed so that the floating pointunits in the cores are utilized nearly 100% of the time under normal operation.The design was tested on a Xilinx Virtex-6 FPGA with up to 16 cores, and it wasshown that the design was faster than a reference software solution running on adesktop computer when the number of cores was set to 2 or more.Additionally, a simplified Mandelbrot set algorithm is proposed and studiedexperimentally. In the simplified algorithm, the break condition in the algorithmloop is (|z_re| > 2) || (|z_im| > 2) as opposed to the standard |z| > 2.The images produced using the simplified algorithm was judged to be nearlyindistinguishable from those produced with the standard algorithm, and thereforepreferred as it is easier to implement.Finally some future work is proposed. The integration of the fractal generatorwith the Mali-400 GPU originally planned as part of this thesis is left asfuture work. It is also suggested to consider designing a custom fixed-pointformat for use internally in the fractal generator, as the standardbinary32 floating-point format (FP32) is shown to be badly suited forthis application.