Integration of a Fractal Generator with Mali GPU
MetadataShow full item record
The Mandelbrot set is a well-known fractal with mathematical propertiesthat can be exploited to create 3D-landscapes. The operations required tocalculate a heightmap using the Mandelbrot set are highly parallelizableand is thus suitable for a hardware implementation. Generation of 3D-landscapes,on-the-y, using the Mandelbrot set is desirable since the Mandel-brot set is innitely complex and deterministic. This makes possible thecreation of many dierent landscapes with complex patters in, for example,computer games.A previous master thesis presents a vertex array generator(VAG) thatgenerates the vertices of a 3D-landscape based on an area of the Mandelbrotset. This thesis explores dierent architectures that connect this vertex arraygenerator with the Mali-400 graphics processing unit(GPU). The result isthat the VAG in its current state is not suitable for integration, mostly sinceit does not support random access to vertices. Thus, a new fractal generatorarchitecture is presented, reusing parts of the VAG.The new fractal generator is implemented in Verilog and its functionalityis veried using the Universal Verication Methodology(UVM). Then, thefractal generator is integrated with the Mali-400 GPU in an FPGA frame-work and synthesized on FPGA. Tests are also performed at each step ofintegration.An OpenGL for Embedded Systems 2.0 demo is written to showcase thefunctionality of the fractal generator. Changes have been made to the Mali-400 drivers to automatically congure and set-up the fractal generator whilethe demo is running.The fractal generator is shown to be working as intended with a scalableperformance based on a number of internal cores. Using 64 cores the fractalgenerator has a worst-case frame time of 51.1 ms at 400Mhz which equals aframe rate of 450 frames pr second, vastly outperforming a software imple-mentation.The fractal generator is currently limited to creating landscapes of 128x128points, the intention was to use the demo and driver to increase the resolutionbut this has not been solved.Increasing the resolution and optimizing the cache size of the fractal generatorhas been left for future work.