Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Pixel -- X,Y,Color (19)
- // Line -- X1, X2, Y1, Y2, Color (35)
- // Triangle -- X1, X2, X3, Y1, Y2, Y3, Color, Fill (54)
- // Rectangle -- X1, X2, X3, X4, Y1, Y2, Y3, Y4, Color, Fill (70)
- #define PIXEL 2'b00
- #define LINE 2'b01
- #define TRIANGLE 2'b10
- #define RECTANGLE 2'b11
- #define MAGENTA 3'b101
- module GfxCruncher (
- input [1:0] type,
- input [69:0] data,
- input ce,
- output reg [7:0] row, column,
- output reg [2:0] pixel
- );
- integer r, c;
- always @ (type or data) begin
- if (ce) begin
- case (type)
- PIXEL: begin
- row = data[7:0];
- column = data[15:8];
- pixel = data[18:16];
- end
- LINE: begin
- pixel = data[34:32];
- if (data[23:16] ) begin
- for (r = data[23:16]; r <= data[31:24]; r = r + 1) begin
- row = r;
- for (c = data[7:0]; c <= data[15:8]; c = c + 1) begin
- column = c;
- end
- end
- end
- end
- TRIANGLE:;
- RECTANGLE:;
- default: begin
- row = 8'b0;
- column = 8'b0;
- pixel = MAGENTA;
- end
- endcase
- end
- end
- endmodule
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement