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/] [triangle_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_triangle.v"
2
`include "../../../rtl/verilog/gfx/div_uu.v"
3
 
4
module triangle_bench();
5
 
6
parameter point_width = 16;
7
parameter subpixel_width = 16;
8
 
9
reg clk_i;
10
reg rst_i;
11
 
12
reg ack_i;
13
wire ack_o;
14
 
15
reg triangle_write_i;
16
reg texture_enable_i;
17
 
18
reg signed [point_width-1:-subpixel_width] dest_pixel0_x_i;
19
reg signed [point_width-1:-subpixel_width] dest_pixel0_y_i;
20
reg signed [point_width-1:-subpixel_width] dest_pixel1_x_i;
21
reg signed [point_width-1:-subpixel_width] dest_pixel1_y_i;
22
reg signed [point_width-1:-subpixel_width] dest_pixel2_x_i;
23
reg signed [point_width-1:-subpixel_width] dest_pixel2_y_i;
24
 
25
wire [point_width-1:0] x_counter_o;
26
wire [point_width-1:0] y_counter_o;
27
wire write_o;
28
 
29
 
30
initial begin
31
  $dumpfile("triangle.vcd");
32
  $dumpvars(0,triangle_bench);
33
 
34
// init values
35
  clk_i = 0;
36
  rst_i = 1;
37
  ack_i = 0;
38
  triangle_write_i = 0;
39
  dest_pixel0_x_i = -5 << subpixel_width;
40
  dest_pixel0_y_i = 5 << subpixel_width;
41
  dest_pixel1_x_i = 210 << subpixel_width;
42
  dest_pixel1_y_i = 10 << subpixel_width;
43
  dest_pixel2_x_i = 5 << subpixel_width;
44
  dest_pixel2_y_i = 210 << subpixel_width;
45
  texture_enable_i = 0;
46
 
47
//timing
48
  #4 rst_i = 0;
49
 
50
  #10 triangle_write_i = 1;
51
  #2 triangle_write_i = 0;
52
 
53
  #200
54
  dest_pixel0_x_i = 5 << subpixel_width;
55
  dest_pixel0_y_i = 15 << subpixel_width;
56
  dest_pixel1_x_i = 10 << subpixel_width;
57
  dest_pixel1_y_i = 10 << subpixel_width;
58
  dest_pixel2_x_i = 5 << subpixel_width;
59
  dest_pixel2_y_i = 10 << subpixel_width;
60
 
61
  #10 triangle_write_i = 1;
62
  #2 triangle_write_i = 0;
63
 
64
// end sim
65
 
66
  #1000 $finish;
67
end
68
 
69
always begin
70
  #1 clk_i = ~clk_i;
71
end
72
 
73
always @(posedge clk_i)
74
begin
75
    ack_i <= #1 write_o;
76
end
77
 
78
gfx_triangle triangle(
79
.clk_i            (clk_i),
80
.rst_i            (rst_i),
81
.ack_i            (ack_i),
82
.ack_o            (ack_o),
83
.triangle_write_i (triangle_write_i),
84
.texture_enable_i (texture_enable_i),
85
.dest_pixel0_x_i  (dest_pixel0_x_i),
86
.dest_pixel0_y_i  (dest_pixel0_y_i),
87
.dest_pixel1_x_i  (dest_pixel1_x_i),
88
.dest_pixel1_y_i  (dest_pixel1_y_i),
89
.dest_pixel2_x_i  (dest_pixel2_x_i),
90
.dest_pixel2_y_i  (dest_pixel2_y_i),
91
.x_counter_o      (x_counter_o),
92
.y_counter_o      (y_counter_o),
93
.write_o          (write_o)
94
);
95
 
96
defparam triangle.point_width = point_width;
97
defparam triangle.subpixel_width = subpixel_width;
98
 
99
endmodule
100
 

powered by: WebSVN 2.1.0

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