The graphics extension project is another simple example of using the X32Carrier core architecture. For this simple experiment, I chose a Stratix IV based board with HDMI output, 512MBytes DDR3 SDRAM, 4MBytes QDR SSRAM and EP4SGX530KH40C2 FPGA.
Functions that the X32Carrier kernel graphics extension should solve:
The figure on the right shows the chosen concept for the video-graphics extension of the base kernel. The graphics accelerator draws basic shapes such as lines, rectangles, triangles and ellipses in window objects.
Frame assembler assembles a frame by selecting data from a screen object containing a background image and, using a table for placing objects on the screen, determines from which object the pixel value should be selected for each specific point on the screen. Using a system of comparators and priority channel selection, it is determined which object is visible at the point with the same coordinates.
The generated frame is placed in a frame buffer from which the data is read and transmitted via HDMI to the screen module.
To calculate the average time for drawing lines, rectangles, triangles and ellipses, the cycle time for drawing 1000 shapes was measured for each type separately. In this case, the coordinates of line points, vertices of triangles, rectangles and the coordinates/sizes of ellipses were selected using a pseudo-random number generator. During the cycle of drawing 1000 figures, process switching was stopped in order to eliminate possible downtime of the graphics accelerator due to switching to some other process.
All figures were drawn in windows sized 512*256
Average line drawing speed: 1900 clocks per line or 78947 lines/sec. @150MHz.
Average speed for drawing rectangles: 29889 clocks per rectangle or 5018 rectangles/sec. @150MHz.
Average speed for drawing triangles: 21646 clocks per triangle or 6929 triangles/sec. @150MHz.
Average speed for drawing ellipses:
The results are extremely modest for the following reasons.
You can use Configurable assembler and Prohect manager /from Downloads page/ for to modify and recompile GA microcode and sample projects.
MyCORES
© 2019 MyCORES
mail to: sda@mycores.biz