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/] [line_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_line.v"
2
 
3
module line_bench();
4
 
5
parameter point_width = 16;
6
parameter subpixel_width = 16;
7
 
8
reg clk_i;
9
reg rst_i;
10
 
11
reg signed [point_width-1:-subpixel_width] pixel0_x_i;
12
reg signed [point_width-1:-subpixel_width] pixel1_x_i;
13
reg signed [point_width-1:-subpixel_width] pixel0_y_i;
14
reg signed [point_width-1:-subpixel_width] pixel1_y_i;
15
 
16
reg [point_width-1:0] delta_major_i;
17
reg [point_width-1:0] delta_minor_i;
18
 
19
reg draw_line_i;
20
reg read_pixel_i;
21
reg x_major_i;
22
reg minor_slope_positive_i;
23
 
24
wire busy_o;
25
 
26
wire signed [point_width-1:0] major_o;
27
wire signed [point_width-1:0] minor_o;
28
 
29
wire x_major_o;
30
wire valid_o;
31
 
32
initial begin
33
  $dumpfile("line.vcd");
34
  $dumpvars(0,line_bench);
35
 
36
  draw_line_i = 0;
37
  clk_i = 0;
38
  rst_i = 1;
39
  read_pixel_i = 0;
40
 
41
// timing
42
#2 rst_i = 0;
43
 
44
   pixel0_x_i = -(10 << subpixel_width);
45
   pixel0_y_i = (10 << subpixel_width);
46
   pixel1_x_i = (13 << subpixel_width);
47
   pixel1_y_i = (15 << subpixel_width);
48
#2 draw_line_i = 1;
49
#2 draw_line_i = 0;
50
 
51
#112 pixel0_x_i = 10 << subpixel_width;
52
    pixel0_y_i = 10 << subpixel_width;
53
    pixel1_x_i = 20 << subpixel_width;
54
#2  draw_line_i = 1;
55
#2  draw_line_i = 0;
56
 
57
#100 pixel0_x_i = 10 << subpixel_width;
58
    pixel0_y_i = 10 << subpixel_width;
59
    pixel1_x_i = 20 << subpixel_width;
60
#2  draw_line_i = 1;
61
#2  draw_line_i = 0;
62
 
63
 
64
#100 pixel0_x_i = 10 << subpixel_width;
65
    pixel0_y_i = 10 << subpixel_width;
66
    pixel1_x_i = 20 << subpixel_width;
67
#2  draw_line_i = 1;
68
#2  draw_line_i = 0;
69
 
70
#100 pixel0_x_i = 10 << subpixel_width;
71
    pixel0_y_i = 10 << subpixel_width;
72
    pixel1_x_i = 20 << subpixel_width;
73
#2  draw_line_i = 1;
74
#2  draw_line_i = 0;
75
 
76
#100 pixel0_x_i = 10 << subpixel_width;
77
    pixel0_y_i = 10 << subpixel_width;
78
    pixel1_x_i = 20 << subpixel_width;
79
#2  draw_line_i = 1;
80
#2  draw_line_i = 0;
81
 
82
  #1000 $finish;
83
end
84
 
85
 
86
always begin
87
  #1 clk_i = ~clk_i;
88
  #1 read_pixel_i = valid_o;
89
end
90
 
91
bresenham_line #(point_width, subpixel_width) bresenham(
92
.clk_i            ( clk_i         ),
93
.rst_i            ( rst_i         ),
94
.pixel0_x_i       ( pixel0_x_i    ),
95
.pixel0_y_i       ( pixel0_y_i    ),
96
.pixel1_x_i       ( pixel1_x_i    ),
97
.pixel1_y_i       ( pixel1_y_i    ),
98
.draw_line_i      ( draw_line_i   ),
99
.read_pixel_i     ( read_pixel_i  ),
100
.busy_o           ( busy_o        ),
101
.x_major_o        ( x_major_o     ),
102
.major_o          ( major_o       ),
103
.minor_o          ( minor_o       ),
104
.valid_o          ( valid_o       )
105
);
106
 
107
endmodule

powered by: WebSVN 2.1.0

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