在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 20980|回复: 116

开源GPU,RTL源代码+验证环境+文档

[复制链接]
发表于 2017-11-15 13:34:34 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
本帖最后由 dodoee 于 2017-11-15 20:41 编辑

1. The source code documented here and this document are licensed under the GPL v3.0 for non-commercial use. The source is available under a dual source license for commercial use. Please contact asicsolutions.com for more information.

2.GPL-GPU is high performance, small footprint Graphics Processing Unit IP. It is configurable via parameterization to include only the components necessary for a given project. Components are delivered as synthesizable verilog with constraint guidance and a Verilog testbench. Not all components described within may be available under the GPL license.

3.Key 2D Device Features
The GPLGPU2D includes these features:
PCI Bus Interface.
Optional: AXI, AVALON.
AMBA Memory interface.
Parameterizable 32/ 64/ 128/ 256 bit datapath support.
Integrated Display List Processor with Text mode support.
Transparent BLT and Two operand Bit Blts.
Patterned fills.
Integrated RAMDAC with hardware cursor.
Full Alpha blending.
Lines: Patterned, Poly line, Line with initial error.
Directly supports 8, 16, 32 bits per pixels.

Optional:
Integrated Color Space Converter.
Full color cursor
Configurable memory windows.
4.Key 3D Device Features
The GPLGPU 3D adds these additional features:

3D Lines with setup support
3D Triangles with setup support
Backface culling
Advanced Texture Mapping.
Perspective Correction.
Point Sampling, Bilinear and Trilinear filtering.
Full Level-of-Detail Per-Pixel MIP Mapping.
Full OpenGL Decal, Alpha Blend and Alpha Modulation.
RGB Modulation Lighting Effects.
Separate Texture Mipmapping Minification and Magnification filtering.
Advanced Texture Cache.
Palette textures: 1, 2, and 4 and 8 bit.
Non-Palette textures: 8, 16, and 32 bit.
Direct 8-Bit Palette Index Mode.

Block Diagram

The GPLGPU is partitioned into six functional sections: They are the Host Bus Interface, the Aperture Controller, the Drawing Engine, the CRT Controller, the Memory Controller, and the legacy VGA.

The Host Bus Interface provides an interface to the system bus (PCI, AXI or Avalon).   It implements a full PCI slave interface, responding to reads and writes of configuration, memory, and I/O cycles.  It also implements a PCI master interface for specific memory writes (See Section 5.6).  

The Linear Windows Controller provides address decoding, address translation, color space conversion between the host interface and the local memory system. It also provides a mechanism for caching reads and writes from the host bus to the local buffers. In write mode, up to eight 32 bit words may be written to the host bus cache. The cache continuously monitors the address of each word written to determine if they are in the same page. If the words are not in the same page, or if the cache word count reaches eight, the cache will request the required number of memory writes from the Memory Controller. At this time the cache controller swaps access to its second cache and continues to accept host writes. If another page fault is detected during the secondary cache fill, a system stall will occur. This situation can be avoided by testing the cache and by doing cache line fills. During reads latency will be incurred for initial accesses or any page fault conditions. Software should make an effort to maintain scan line coherency during any access to the local buffers for optimal performance.

The Drawing Engine provides all the required logic to implement BITBLT, LINE, LINE_3D, TRIAN_3D, and HOST XFER commands. The Drawing Engine, when triggered, transfers command and parameter information from the host accessible registers to its own local working registers where it begins its setup phase. When the Drawing Engine is done with its setup, it begins the execution of a specific algorithm for the associated command.

For non-rendering commands, after the setup phase, the Drawing Engine begins requesting memory access from the Memory Controller.  For 2D and/or 3D rendering commands, the object is piped through the algorithmic rendering engine which begins requesting memory access from the Memory Controller as soon as the first pixel/texel is generated.  Up to 2 rendering commands can be piped through the rendering engine at the same time.   

If read data is requested, the memory controller will control the loading of the data into the Drawing Data path and will notify the Drawing Engine that the data is now available. If write data is requested, the data will have been previously setup in the Drawing data path and the Memory controller will control the output of that data to the selected memory buffer.


The Display List Processor (DLP) offloads command generation from the host. When the host is feeding commands, two commands can be written into the GPLGPU before retries will be issued on the bus, impacting system performance. A driver can buffer commands in the off screen memory in a list format. The DLP will automatically parse the list, feeding commands to the GPLGPU without stalling the system. The DLP is double buffered and a list can be appended to while running.

The CRT Controller provides programmable CRT timing signals: horizontal, vertical blanks and syncs. It is also responsible for generating requests to the memory controller for screen refresh cycles.  A free running frame counter which generates interrupts to the Host is also provided. This is useful for synchronizing bit map copies.  CRT Controller also provides display refresh data for the internal (for SGRAM memory) or external (for WRAM memory) RAMDAC.  There is an 8 bit VGA pixel data port when using an external RAMDAC and WRAM memory.

The Memory Controller arbitrates and controls all access to the local memory buffer by the Host Interface, the CRT controller, and the Drawing Engine.  This unit provides support for WRAM or SGRAM memory.

For backwards compatibility in a PC system, an optional VGA core can be instantiated. This core is a fully IBM compliant VGA handling all modes. The GPLGPU BIOS contains routines for VESA 3.0 compatibility allowing higher resolution operation.

A Digital DAC is included. For use in an FPGA, an external DVI, DAC, HDMI or DisplayPort Chip will be needed.

gplgpu-master.part01.rar (14 MB, 下载次数: 1041 )

gplgpu-master.part02.rar (14 MB, 下载次数: 1025 )

gplgpu-master.part03.rar (14 MB, 下载次数: 925 )

gplgpu-master.part04.rar (14 MB, 下载次数: 909 )

gplgpu-master.part05.rar (14 MB, 下载次数: 897 )

gplgpu-master.part06.rar (8.6 MB, 下载次数: 681 )

补充内容 (2019-8-8 19:36):
gplgpu-master.zip 不用下载,这个没用,传错了,多传了一个

1

1

gplgpu-master.zip

2.12 MB, 下载次数: 186 , 下载积分: 资产 -2 信元, 下载支出 2 信元

 楼主| 发表于 2017-11-15 20:28:35 | 显示全部楼层
gplgpu-master.zip 不用下载,这个没用,传错了,多传了一个
发表于 2017-11-20 12:49:31 | 显示全部楼层
感谢大佬
发表于 2017-11-23 20:57:57 | 显示全部楼层
谢谢,下载学习
发表于 2017-12-6 18:42:35 | 显示全部楼层
感谢分享
发表于 2017-12-15 14:32:05 | 显示全部楼层
哪个大神,,,这么厉害
发表于 2017-12-15 17:07:21 | 显示全部楼层
thnx!
发表于 2017-12-16 08:27:39 | 显示全部楼层
回复 1# dodoee


   thank you for sharing
发表于 2017-12-16 09:11:20 | 显示全部楼层
谢谢,下载学习
发表于 2017-12-16 09:12:07 | 显示全部楼层
谢谢,下载学习
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /3 下一条

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-4-20 22:43 , Processed in 0.038064 second(s), 7 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表