ThinkVG is the smallest Graphics Processing Unit (GPU) in the market supporting the Khronos
Group OpenVG 1.1 standard. It is an extremely low-gate count IP Core based on VShader, a C/C++
programmable Floating Point SIMD Streaming processor, designed for graphics applications. System
Architecture is Scalable and embedded software allows flexibility. ThinkVG comes complete with
Software Library implementing OpenVG 1.1 running on VShader and with API package running on
host processor with emphasis on minimizing CPU overhead by the use of command lists and on
reducing memory bandwidth by utilizing custom image compression hardware.
- Speed: up to 2 pixels/clock cycle fill-rate
- Area : 160K gates (including scan and clock gating, excluding memories)
- Pure technology indepedent Verilog RTL
- Modular Design based in AMBA AHB/AXI interface for easy SoC Integration.
- Customizable to your target technology
- Polygon Processor
- Polygon Filling (odd-even, no-zero rules)
- Direct Bezier Rasterization
- Triangle/Quadrilateral rasterization
- Modes: Non-Antialiased, AntiAliased x4, x8, x16 point multisampling(opt)
- Screen-aware subpixel antialiased Rendering(opt)
- VShader Processor
- Unified Shader Architecture
- 512-bytes Instruction Cache (configurable)
- 2048-bytes Cache (configurable)
- High and low precision floating point arithmetic
- Multiple SIMD fp Floating Point Units
- Direct support for Reciprocals and Square roots
- Colour Format Conversions
- Zero-cost loops
- Streaming Ports
- Fully programmable with C/C++ Compiler
- Texture Mapping Engine
- Any Image Size
- Point Sampling
- Texture Caching
- Propriatory Texture Compression support
- Bilinear Filtering Image interpolations
- Pixel Blender Processor
- Programmable Parallel Blender Processor
- Supports OpenVG colour surface formats
- Alpha Blending/Coverage Blending
- Porter-Duff Blending modes
- Gamma/DeGamma support
- Paint Application
- Linear Fills
- Radial Fills
- Pattern Fills
- MJPEG Decoder (optional)
- VGA/LCD Controller (optional)
OpenVG is a trademark of Khronos Group Inc.
AMBA, APB, AHB, AXI are trademarks ARM Ltd, Cambridge UK.
VShader GPU Core
At the heart of Think-Silicon GPUs is the VShader Processor Core
Unified Shader Architecture
High and Low precision floating point arithmetic
Multiple SIMD fp Floating Point Units
Direct support for Reciprocals and Square roots
Colour Format Conversions
Fully programmable with C/C++ Compiler
Think Silicon provides the necessary device drivers for the Linux operating system, which enables the user processes to use the GPU. The drivers configure hardware's parameters and allow the communication between hardware and software.
More precisely the drivers offer the following functionality:
- Detect hardware and maps hardware registers and Scratchpad special memory into kernel and process memory space
- Allocate the requested graphics memory and make it available to user processes
- Configure and direct the graphics output to the LCD display
- Handle hardware interrupts
Drivers consist of two Device Drivers. ThinkVG driver and Framebuffer driver.
Software API OpenVG1.1 Library
Think Silicon provides a software library that implements the OpenVG API and makes use of the hardware acceleration.
The software library defines the API entry points which make use of the accelerated hardware as a backend and specifies
software and hardware control paths that execute rendering operations and graphics computations.
The library consists of two parts:
- The software library (ThinkVG API) which is executed on the host processor.
High-level functionality, such as definition of
control paths, object management and error handling are handled by the API.
- The microcode (firmware) which is executed on VShader. Low-level
functionality such as tessellation, rasterization and
image handling are handled by the microcode.
These two parts communicate via a fixed interface that allows the software library to make
calls to the microcode and pass
required arguments using command lists.
ThinkVG running OpenVG demos on an 135 MHz MIPS based SoC.
ThinkVG running Qt demos on an 135 MHz MIPS based SoC.
High Quality 16x Sparse Multisampling AA provides very smooth polygon edges. Sampling Pattern
is fully programmable and can even include samples outside the test pixel.
direct text rasterization directly using TrueType data and 16x AA
with subpixel rendering mode enabled
Fast multiple Convolution Engines
Multiple caching pipeline Convolution Engine
zero cost dithering
|reduced to RGBA4444 format