Wire-Frame 3D Graphics Accelerator IP Core
|
Wire-Frame 3D Graphics Accelerator IP Core
|
Project Monophony
|
Project Monophony
|
================================================
|
================================================
|
Author: Kenji Ishimaru
|
Author: Kenji Ishimaru
|
|
|
2015/09/30
|
2015/09/30
|
|
|
Overview
|
Overview
|
------------------------------------------
|
------------------------------------------
|
This IP Core is a wire-frame 3D hardware accelerator.
|
This IP Core is a wire-frame 3D hardware accelerator.
|
|
|
Features:
|
Features:
|
- Hardware Geometry Engine and Rasterizer
|
- Hardware Geometry Engine and Rasterizer
|
- Model-View-Projection matrix transformation
|
- Model-View-Projection matrix transformation
|
- Clipping
|
- Clipping
|
- Back-face culling
|
- Back-face culling
|
- Viewport mapping
|
- Viewport mapping
|
- Wire-Frame rasterization with 8 bit color
|
- Wire-Frame rasterization with 8 bit color
|
- DMAC for reading 3D object vertices
|
- DMAC for reading 3D object vertices
|
- support triangle format only.
|
- support triangle format only.
|
(does NOT support triangle strip, point, line etc.)
|
(does NOT support triangle strip, point, line etc.)
|
- Screen size: up to 2014 x 1536(QXGA)
|
- Screen size: up to 2014 x 1536(QXGA)
|
- Small logic consumption
|
- Small logic consumption
|
- Low bandwidth requirement
|
- Low bandwidth requirement
|
|
|
The IP Core does NOT support:
|
The IP Core does NOT support:
|
- Memory clear DMAC
|
- Memory clear DMAC
|
- Filled triangle rasterization
|
- Filled triangle rasterization
|
- Texture mapping
|
- Texture mapping
|
- Lighting
|
- Lighting
|
|
|
Additional resources:
|
Additional resources:
|
- Sample FPGA system implementation (DE0)
|
- Sample FPGA system implementation (DE0)
|
- with original VGA controller
|
- with original VGA controller
|
- Demo applications
|
- Demo applications
|
- C API for controlling 3D scene
|
- C API for controlling 3D scene
|
- 3D model convert script
|
- 3D model convert script
|
|
|
For more details,
|
For more details,
|
please see doc/3DGraphics_IPCore_Specification.pdf.
|
please see doc/3DGraphics_IPCore_Specification.pdf.
|
|
|
|
|
Directories
|
Directories
|
---------------------------------------
|
---------------------------------------
|
|
|
The directory structure looks as follows:
|
The directory structure looks as follows:
|
doc/ - Documentation
|
doc/ - Documentation
|
rtl/ - HDL source code
|
rtl/ - HDL source code
|
scenario/ - Simulation test benches
|
scenario/ - Simulation test benches
|
bin/ - Simulation scripts
|
bin/ - Simulation scripts
|
sim_work/ - Simulation work directory
|
sim_work/ - Simulation work directory
|
implement/ - FPGA implementation example (DE0)
|
implement/ - FPGA implementation example (DE0)
|
tool/ - 3D model convert tool and sample.
|
tool/ - 3D model convert tool and sample.
|
clib/ - C API source code
|
clib/ - C API source code
|
demo_app/ - Demo applications
|
demo_app/ - Demo applications
|
|
|
IP Core Source Code
|
IP Core Source Code
|
----------------------------
|
----------------------------
|
The IP Core is written by verilog-HDL. The source code is Vendor independent.
|
The IP Core is written by verilog-HDL. The source code is Vendor independent.
|
does not require any Vendor specific module.
|
does not require any Vendor specific module.
|
|
|
Simulation
|
Simulation
|
----------------------------
|
----------------------------
|
scenario directory contains simple rendering bench.
|
scenario directory contains simple rendering bench.
|
the rendering result is converted to bmp file.
|
the rendering result is converted to bmp file.
|
|
|
For more details, please see sim_work/readme.txt
|
For more details, please see sim_work/readme.txt
|
|
|
FPGA Sample Implementation
|
FPGA Sample Implementation
|
----------------------------
|
----------------------------
|
FPGA system implementation sample is available.
|
FPGA system implementation sample is available.
|
The target board is DE0.
|
The target board is DE0.
|
The project data is tested on Quartus II Version 13.1
|
The project data is tested on Quartus II Version 13.1
|
|
|
For more details, please see implement/readme.txt
|
For more details, please see implement/readme.txt
|
|
|
Graphics C API
|
Graphics C API
|
----------------------------
|
----------------------------
|
clib/ contains C API source code for this IP Core.
|
clib/ contains C API source code for this IP Core.
|
The API controls 3D scene, and controls IP Core by register configuration.
|
The API controls 3D scene, and controls IP Core by register configuration.
|
|
|
For more details,
|
For more details,
|
please see doc/3DGraphics_C_Library_Specification.pdf.
|
please see doc/3DGraphics_C_Library_Specification.pdf.
|
|
|
|
|
Demo Application
|
Demo Application
|
----------------------------
|
----------------------------
|
demo_app/ contains demo applications.
|
demo_app/ contains demo applications.
|
simple_cube: rotating cube demo
|
simple_cube: rotating cube demo
|
main_cubes: rotating cubes. matrix push/pop demo
|
main_cubes: rotating cubes. matrix push/pop demo
|
main_bear: bear characters
|
main_bear: bear characters
|
main_hand: hand animation
|
main_hand: hand animation
|
|
|
Screen shots of these demos are available in screen_shot/
|
Screen shots of these demos are available in screen_shot/
|
|
|
3D Data Tool
|
3D Data Tool
|
----------------------------
|
----------------------------
|
tool/objcnv.pl perl script convertes .obj format 3D data to
|
tool/objcnv.pl perl script convertes .obj format 3D data to
|
C float array format, and output as C header file.
|
C float array format, and output as C header file.
|
|
|
For more details, please see tool/readme.txt
|
For more details, please see tool/readme.txt
|
|
|