OpenCores
URL https://opencores.org/ocsvn/orsoc_graphics_accelerator/orsoc_graphics_accelerator/trunk

Subversion Repositories orsoc_graphics_accelerator

[/] [orsoc_graphics_accelerator/] [trunk/] [bench/] [verilog/] [gfx/] [raster_bench.v] - Blame information for rev 6

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 6 Orka
`include "../../../rtl/verilog/gfx/gfx_rasterizer.v"
2
`include "../../../rtl/verilog/gfx/gfx_line.v"
3
`include "../../../rtl/verilog/gfx/gfx_triangle.v"
4
`include "../../../rtl/verilog/gfx/div_uu.v"
5
module raster_bench();
6
 
7
parameter point_width = 16;
8
parameter subpixel_width = 16;
9
 
10
reg clk_i;
11
reg rst_i;
12
 
13
reg clip_ack_i;
14
reg interp_ack_i;
15
wire ack_o;
16
 
17
reg rect_write_i;
18
reg line_write_i;
19
reg triangle_write_i;
20
reg interpolate_i;
21
reg texture_enable_i;
22
reg clipping_enable_i;
23
 
24
reg [point_width-1:0] src_pixel0_x_i;
25
reg [point_width-1:0] src_pixel0_y_i;
26
reg [point_width-1:0] src_pixel1_x_i;
27
reg [point_width-1:0] src_pixel1_y_i;
28
reg signed [point_width-1:-subpixel_width] dest_pixel0_x_i;
29
reg signed [point_width-1:-subpixel_width] dest_pixel0_y_i;
30
reg signed [point_width-1:-subpixel_width] dest_pixel1_x_i;
31
reg signed [point_width-1:-subpixel_width] dest_pixel1_y_i;
32
reg signed [point_width-1:-subpixel_width] dest_pixel2_x_i;
33
reg signed [point_width-1:-subpixel_width] dest_pixel2_y_i;
34
reg [point_width-1:0] clip_pixel0_x_i;
35
reg [point_width-1:0] clip_pixel0_y_i;
36
reg [point_width-1:0] clip_pixel1_x_i;
37
reg [point_width-1:0] clip_pixel1_y_i;
38
 
39
reg [point_width-1:0] target_size_x_i;
40
reg [point_width-1:0] target_size_y_i;
41
 
42
wire [point_width-1:0] x_counter_o;
43
wire [point_width-1:0] y_counter_o;
44
wire [point_width-1:0] u_o;
45
wire [point_width-1:0] v_o;
46
wire clip_write_o;
47
wire interp_write_o;
48
 
49
parameter FIXEDW = 2**subpixel_width;
50
 
51
initial begin
52
  $dumpfile("raster.vcd");
53
  $dumpvars(0,raster_bench);
54
 
55
// init values
56
  clk_i = 0;
57
  rst_i = 1;
58
  clip_ack_i = 0;
59
  interp_ack_i = 0;
60
  rect_write_i = 0;
61
  line_write_i = 0;
62
  triangle_write_i = 0;
63
  interpolate_i = 0;
64
  dest_pixel0_x_i = -5 * FIXEDW;
65
  dest_pixel0_y_i = 5 * FIXEDW;
66
  dest_pixel1_x_i = 10 * FIXEDW;
67
  dest_pixel1_y_i = 10 * FIXEDW;
68
  dest_pixel2_x_i = 5 * FIXEDW;
69
  dest_pixel2_y_i = 10 * FIXEDW;
70
  src_pixel0_x_i = 5;
71
  src_pixel0_y_i = 5;
72
  src_pixel1_x_i = 10;
73
  src_pixel1_y_i = 10;
74
  clip_pixel0_x_i = 0;
75
  clip_pixel0_y_i = 0;
76
  clip_pixel1_x_i = 10;
77
  clip_pixel1_y_i = 10;
78
  target_size_x_i = 640;
79
  target_size_y_i = 480;
80
  texture_enable_i = 0;
81
  clipping_enable_i = 0;
82
 
83
 
84
//timing
85
  #4 rst_i = 0;
86
  #2 rect_write_i = 1;
87
  #2 rect_write_i = 0;
88
 
89
  #100 line_write_i = 1;
90
  #2 line_write_i = 0;
91
  #100 triangle_write_i = 1;
92
  #2 triangle_write_i = 0;
93
 
94
// end sim
95
 
96
  #1000 $finish;
97
end
98
 
99
always begin
100
  #1 clk_i = ~clk_i;
101
end
102
 
103
always @(posedge clk_i)
104
begin
105
  clip_ack_i     <= #1 clip_write_o;
106
  interp_ack_i   <= #1 interp_write_o;
107
end
108
 
109
gfx_rasterizer #(point_width, subpixel_width) raster(
110
.clk_i            (clk_i),
111
.rst_i            (rst_i),
112
.clip_ack_i       (clip_ack_i),
113
.interp_ack_i     (interp_ack_i),
114
.ack_o            (ack_o),
115
.rect_write_i     (rect_write_i),
116
.line_write_i     (line_write_i),
117
.triangle_write_i (triangle_write_i),
118
.interpolate_i    (interpolate_i),
119
.texture_enable_i (texture_enable_i),
120
.src_pixel0_x_i   (src_pixel0_x_i),
121
.src_pixel0_y_i   (src_pixel0_y_i),
122
.src_pixel1_x_i   (src_pixel1_x_i),
123
.src_pixel1_y_i   (src_pixel1_y_i),
124
.dest_pixel0_x_i  (dest_pixel0_x_i),
125
.dest_pixel0_y_i  (dest_pixel0_y_i),
126
.dest_pixel1_x_i  (dest_pixel1_x_i),
127
.dest_pixel1_y_i  (dest_pixel1_y_i),
128
.dest_pixel2_x_i  (dest_pixel2_x_i),
129
.dest_pixel2_y_i  (dest_pixel2_y_i),
130
.clipping_enable_i(clipping_enable_i),
131
.clip_pixel0_x_i  (clip_pixel0_x_i),
132
.clip_pixel0_y_i  (clip_pixel0_y_i),
133
.clip_pixel1_x_i  (clip_pixel1_x_i),
134
.clip_pixel1_y_i  (clip_pixel1_y_i),
135
.target_size_x_i  (target_size_x_i),
136
.target_size_y_i  (target_size_y_i),
137
.x_counter_o      (x_counter_o),
138
.y_counter_o      (y_counter_o),
139
.u_o              (u_o),
140
.v_o              (v_o),
141
.clip_write_o     (clip_write_o),
142
.interp_write_o   (interp_write_o)
143
);
144
endmodule

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.