IP Library Granted Patent US 9,142,002
Granted Patent B2
US 9,142,002 · App. 13/363,738 · Granted Sep 22, 2015

FPGA packet processing engine

Inventor: Marcus Franklin Dutton (Canton, GA)
Assignee: L-3 COMMUNICATIONS CORPORATION
G06T1/20
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,142,002
App. No.
13/363,738
Granted
Sep 22, 2015
Kind
B2
Abstract

A graphic processor device is implemented on a field programmable gate array (“FPGA”) circuitry comprises a pipeline formatter that sets graphic commands and vertex data into structures, and a rasterizer that interpolates between vertices in the vertex data to generate lines and filling between at least one edge to generate a structure, wherein output of the rasterizer is a stream of fragments that become pixels. The graphic processor device further includes a frame buffer that receives a stream of fragments and blends a plurality of fragments before the plurality of fragments are stored in a frame buffer, and an output processor configured to retrieve a plurality of fragments from the frame buffer and transmits a plurality of pixels according to a predefined resolution.

Claims (42)

1. A graphic processor device implemented on a field programmable gate array circuitry, comprising:

a pipeline formatter that sets graphic commands and vertex data into structures;

a rasterizer that interpolates between vertices in the vertex data to generate lines and filling between at least one edge to generate a structure, wherein an output of the rasterizer is a stream of fragments that become pixels;

a frame buffer operator that receives the stream of fragments and blends a plurality of fragments before the plurality of fragments are stored in a frame buffer memory that is external to the graphic processor device, wherein the frame buffer operator also blends at least one of the plurality of fragments with a fragment that is already stored in the external frame buffer memory;

a frame buffer manager that is in bidirectional communication with and controls the external frame buffer memory, wherein the external frame buffer memory includes a front buffer which is used for receiving graphics from the graphic processor device and a back buffer which is used for transmitting graphics from the graphic processor device; and

an output processor configured to retrieve the plurality of fragments from the frame buffer manager and transmit a plurality of pixels according to a predefined resolution.

2. The graphic processor device of claim 1 , wherein the graphic processor device further comprises:

a plurality of FIFO buffers along the graphic processor device to allow for storage while the downstream modules are continuing to process previous data, whereby the FIFO buffers maintain graphical ordering while preventing overflow due to downstream processing.

3. The graphic processor device of claim 1 , wherein the front buffer and the back buffer of the external frame buffer memory are swappable such that when the contents of the front buffer are transmitted out, the front buffer becomes a new back buffer.

4. The graphic processor device of claim 1 , wherein the graphic processor device further comprises:

a vertex processor for transforming vertex coordinates.

5. The graphic processor device of claim 4 , wherein the vertex processor applies lighting calculation to vertices computed from the vertex coordinates.

6. The graphic processor device of claim 1 , wherein the graphic processor device further comprises:

a fragmentation processor for manipulating color data of each pixel generated.

7. The graphic processor device of claim 6 , wherein the fragmentation processor further comprises:

a texel address calculator for generating texel addresses.

8. The graphic processor device of claim 6 , wherein the fragmentation processor further comprises:

a color blender for a flying color band blending based upon fragment data and texel data.

9. A hardware description language (HDL) design structure encoded on a non-transitory machine-readable data storage medium, the HDL design structure comprising elements that when processed in a computer-aided design system generates a machine-executable representation of a graphic processor device, wherein the HDL design structure comprises software encoded on the machine-readable data storage medium, including:

a pipeline formatter that sets up graphic commands and vertex data into structures;

a rasterizer that interpolates between vertices in the vertex data to generate lines and filling between at least one edge to generate a structure, wherein an output of the rasterizer is a stream of fragments that become pixels;

a frame buffer operator that receives the stream of fragments and blends a plurality of fragments before the plurality of fragments are stored in a frame buffer memory that is external to the graphic processor device, wherein the frame buffer operator also blends at least one of the plurality of fragments with a fragment that is already stored in the external frame buffer memory;

a frame buffer manager that is in bidirectional communication with and controls the external frame buffer memory, wherein the external frame buffer memory includes a front buffer which is used for receiving graphics from the graphic processor device and a back buffer which is used for transmitting graphics from the graphic processor device; and

an output processor configured to retrieve a plurality of fragments from the frame buffer and transmit a plurality of pixels according to a predefined resolution.

10. The HDL design structure of claim 9 , wherein the front buffer and the back buffer of the external frame buffer memory are swappable such that when the contents of the front buffer are transmitted out, the front buffer becomes a new back buffer.

11. The HDL design structure of claim 9 , wherein the HDL design structure further comprises:

a vertex processor for transforming vertex coordinates.

12. The HDL design structure of claim 9 , wherein the HDL design structure further comprises:

a fragmentation processor for manipulating color data of each pixel generated.

13. The HDL design structure of claim 9 , wherein the HDL design structure further comprises:

a color blender for a flying color band blending based upon fragment data and textual data.

14. The HDL design structure of claim 9 , wherein the HDL design structure resides in a field programmable gate array.

15. A method in a computer-aided design system for generating a functional design model of a graphic processor device, said method comprising:

generating a functional representation of a pipeline formatter, wherein the pipeline formatter sets graphic commands and vertex data into structures;

generating a functional representation of a rasterizer, wherein the rasterizer interpolates between vertices in the vertex data to generate lines and filling between at least one edge to generate a structure, wherein an output of the rasterizer is a stream of fragments that become pixels;

generating a functional representation of a frame buffer operator, wherein the frame buffer operator receives the stream of fragments and blends a plurality of fragments before the plurality of fragments are stored in a frame buffer memory that is external to the graphic processor device, and wherein the frame buffer operator also blends at least one of the plurality of fragments with a fragment that is already stored in the external frame buffer memory;

generating a functional representation of a frame buffer manager that is in bidirectional communication with and controls the external frame buffer memory, wherein the external frame buffer memory includes a front buffer which is used for receiving graphics from the graphic processor device and a back buffer which is used for transmitting graphics from the graphic processor device; and

generating a functional representation of an output processor, wherein the output processor is configured to retrieve a plurality of fragments from the frame buffer and transmits a plurality of pixels according to a predefined resolution.

16. The method of claim 15 , wherein the method further comprises the step of:

generating a functional representation of a plurality of buffers along the graphic processor device to allow for storage while downstream modules are continuing to process previous data.

17. The method of claim 15 , wherein the steps are carried out in connection with a field programmable gate array.

18. The method of claim 15 , wherein the front buffer and the back buffer of the external frame buffer memory are swappable such that when the contents of the front buffer are transmitted out, the front buffer becomes a new back buffer.

Assignments (3)
CHANGE OF NAME Recorded Oct 15, 2019
From: L-3 COMMUNICATIONS CORPORATION
To: L3 TECHNOLOGIES, INC.
Reel/Frame 050726/0885 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNEE NAME PREVIOUSLY RECORDED ON REEL 027640 FRAME 0911. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNEE NAME IS "L-3 COMUNNICATIONS CORPORATION". Recorded Feb 23, 2015
From: DUTTON, MARCUS FRANKLIN
To: L-3 COMMUNICATIONS CORPORATION
Reel/Frame 035061/0181 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 2, 2012
From: DUTTON, MARCUS FRANKLIN
To: L3 COMMUNICATIONS CORPORATION
Reel/Frame 027640/0911 →
Continuity (2)
Provisional Application 61439142 · Feb 3, 2011
Related Publication 20120200581A1 · Aug 9, 2012