44. Neo-Chrom graphic processor (GPU2D)
44.1 GPU2D introduction
GPU2D is a dedicated graphics processing unit accelerating numerous 2.5D graphics applications such as graphical user interface (GUI), menu display or animations.
The GPU2D peripheral works together with an optimized software stack designed for state of the art graphic rendering.
44.2 GPU2D main features
Main features
- • Multithreaded fragment (pixel) processing core with a VLIW (very long instruction word) instruction set
- • Fixed-point functional units
- • Command-list-based DMAs to minimize CPU overhead
- • Two 64-bit AXI master interfaces for texture and frame buffer access
- • Dedicated 64-bit AXI master interface for command list
- • 32-bit AHB slave interface for register bank access
- • Up to four general-purpose flags for system-level synchronization
- • Texture decompression unit with TSC™4 and TSC™6/TSC™6a support
2D drawing features
- • Pixel/line drawing
- • Filled rectangles
- • Triangles, quadrilateral drawing
- • Anti-aliasing 8xMSAA (multisample anti-aliasing)
Image transformations
- • 3D perspective correct projections
- • Texture mapping with bilinear filtering or point sampling
Blit support
- • Rotation, mirroring, stretching (independently on x and y axis)
- • Source and/or destination color keying
- • Pixel format conversions
Text rendering support
- • A1, A2, A4, and A8 bitmap anti-aliased
- • Subsampled anti-aliased
Color formats
- • ABGR8888, ARGB8888, BGRA8888, RGBA8888
- • xBGR8888, xRGB8888, BGRx8888, RGBx8888, RGB888, BGR888
- • BGR565, RGB565
- • RGB322, BGR322
- • TSC4, TSC6, TSC6A
- • L1, L2, L4, L8 (grayscale)
- • A1, A2, A4, A8
Full alpha blending with hardware blender
- • Programmable blending modes
- • Source/destination color keying
44.3 GPU2D general description
44.3.1 GPU2D block diagram
Figure 448. GPU2D block diagram
![Figure 448. GPU2D block diagram. The diagram shows the internal architecture of the GPU2D. On the left, external connections include three 64-bit AXI buses, a 32-bit AHB bus, and control signals: gpu2d_aclk, gpu2d_hclk, gpu2d_it, gpu2d_sys_it, and gpu2d_flag[3:0]. These connect to a 'Bus interface unit' and a 'Command list processor'. The 'Command list processor' connects to a 'Register file'. The 'Register file' connects to a 'Graphic pipeline' (enclosed in a dashed box) which contains a 'Rasterizer', a 'Texture map unit', a 'Fragment processing core', and a 'Render output unit'. Arrows indicate the flow of data and control between these components.](/RM0486-STM32N6x5-x7/8bce3d07fb450ce0a9159b4ece0c1d5c_img.jpg)
Figure 448. GPU2D block diagram. The diagram shows the internal architecture of the GPU2D. On the left, external connections include three 64-bit AXI buses, a 32-bit AHB bus, and control signals: gpu2d_aclk, gpu2d_hclk, gpu2d_it, gpu2d_sys_it, and gpu2d_flag[3:0]. These connect to a 'Bus interface unit' and a 'Command list processor'. The 'Command list processor' connects to a 'Register file'. The 'Register file' connects to a 'Graphic pipeline' (enclosed in a dashed box) which contains a 'Rasterizer', a 'Texture map unit', a 'Fragment processing core', and a 'Render output unit'. Arrows indicate the flow of data and control between these components.
44.3.2 GPU2D pins and internal signals
The internal signals of the GPU2D peripheral are given in the following table.
Table 388. GPU2D internal input/output signals
| Internal signal name | Signal type | Description |
|---|---|---|
| gpu2d_aclk | Input | GPU2D AXI clock |
| gpu2d_hclk | Input | GPU2D AHB clock |
| gpu2d_it | Output | GPU2D interrupt request (GPU2D) |
| Internal signal name | Signal type | Description |
|---|---|---|
| gpu2d_sys_it | Output | GPU2D system interrupt request (GPU2D_SYS) |
| gpu2d_flag[3:0] | Output | GPU2D general purpose flags |
| Trigger name | Direction | Trigger source/destination |
|---|---|---|
| gpu2d_flag[0] | Output | hpdma_trigsel[21] |
| gpdma_trigsel[21] | ||
| gpu2d_flag[1] | Output | hpdma_trigsel[22] |
| gpdma_trigsel[22] | ||
| gpu2d_flag[2] | Output | hpdma_trigsel[23] |
| gpdma_trigsel[23] | ||
| gpu2d_flag[3] | Output | hpdma_trigsel[24] |
| gpdma_trigsel[24] |