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/] [interp_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/div_uu.v"
2
`include "../../../rtl/verilog/gfx/gfx_interp.v"
3
`include "../../../rtl/verilog/gfx/basic_fifo.v"
4
 
5
module interp_bench();
6
 
7
parameter point_width  = 16;
8
parameter delay_width  = 5;
9
parameter result_width = 3;
10
 
11
reg                       clk_i;     // system clock
12
reg                       rst_i;     // system reset
13
reg                       ack_i;     // ack
14
 
15
wire                      ack_o;
16
 
17
reg                       write_i;
18
 
19
reg    [2*point_width -1:0] edge0_i;   // divident
20
reg    [2*point_width -1:0] edge1_i;   // divident
21
reg    [2*point_width -1:0] area_i;    // divisor
22
 
23
reg    [point_width -1:0] x_i;
24
reg    [point_width -1:0] y_i;
25
wire   [point_width -1:0] x_o;
26
wire   [point_width -1:0] y_o;
27
 
28
wire   [point_width -1:0] factor0_o; // 
29
wire   [point_width -1:0] factor1_o; // 
30
 
31
wire                      write_o;
32
 
33
initial begin
34
  $dumpfile("interp.vcd");
35
  $dumpvars(0,interp_bench);
36
 
37
// init values
38
  clk_i = 0;
39
  rst_i = 1;
40
  write_i = 0;
41
 
42
//timing
43
#2 rst_i = 0;
44
 
45
  write_i = 1;
46
  edge0_i = 25;
47
  edge1_i = 10;
48
  area_i  = 30;
49
  x_i = 15;
50
  y_i = 17;
51
#2 write_i = 0;
52
 
53
#2 write_i = 1;
54
  edge0_i = 45;
55
  edge1_i = 67;
56
  area_i  = 10;
57
  x_i = 777;
58
  y_i = 888;
59
#2 write_i = 0;
60
 
61
#2 write_i = 1;
62
  edge0_i = 67;
63
  edge1_i = 98;
64
  area_i  = 18;
65
  x_i = 111;
66
  y_i = 222;
67
#2 write_i = 0;
68
 
69
#2 write_i = 1;
70
  edge0_i = 78;
71
  edge1_i = 115;
72
  area_i  = 11;
73
  x_i = 3;
74
  y_i = 4;
75
#2 write_i = 0;
76
 
77
#2 write_i = 1;
78
  edge0_i = 56;
79
  edge1_i = 34;
80
  area_i  = 23;
81
  x_i = 5;
82
  y_i = 6;
83
#2 write_i = 0;
84
 
85
#2 write_i = 1;
86
  edge0_i = 45;
87
  edge1_i = 67;
88
  area_i  = 10;
89
  x_i = 777;
90
  y_i = 888;
91
#2 write_i = 0;
92
 
93
#2 write_i = 1;
94
  edge0_i = 67;
95
  edge1_i = 98;
96
  area_i  = 18;
97
  x_i = 111;
98
  y_i = 222;
99
#2 write_i = 0;
100
 
101
#2 write_i = 1;
102
  edge0_i = 78;
103
  edge1_i = 115;
104
  area_i  = 11;
105
  x_i = 3;
106
  y_i = 4;
107
#2 write_i = 0;
108
 
109
#2 write_i = 1;
110
  edge0_i = 56;
111
  edge1_i = 34;
112
  area_i  = 23;
113
  x_i = 5;
114
  y_i = 6;
115
#2 write_i = 0;
116
 
117
#2 write_i = 1;
118
  edge0_i = 45;
119
  edge1_i = 67;
120
  area_i  = 10;
121
  x_i = 777;
122
  y_i = 888;
123
#2 write_i = 0;
124
 
125
#2 write_i = 1;
126
  edge0_i = 67;
127
  edge1_i = 98;
128
  area_i  = 18;
129
  x_i = 111;
130
  y_i = 222;
131
#2 write_i = 0;
132
 
133
#2 write_i = 1;
134
  edge0_i = 78;
135
  edge1_i = 115;
136
  area_i  = 11;
137
  x_i = 3;
138
  y_i = 4;
139
#2 write_i = 0;
140
 
141
#2 write_i = 1;
142
  edge0_i = 56;
143
  edge1_i = 34;
144
  area_i  = 23;
145
  x_i = 5;
146
  y_i = 6;
147
#2 write_i = 0;
148
 
149
// end sim
150
  #2000 $finish;
151
end
152
 
153
always begin
154
  #1 clk_i = ~clk_i;
155
end
156
 
157
always @(posedge clk_i)
158
  ack_i <= #100 write_o;
159
 
160
gfx_interp interp(
161
.clk_i     (clk_i),
162
.rst_i     (rst_i),
163
.ack_i     (ack_i),
164
.ack_o     (ack_o),
165
.write_i   (write_i),
166
.edge0_i   (edge0_i),
167
.edge1_i   (edge1_i),
168
.area_i    (area_i),
169
.x_i       (x_i),
170
.y_i       (y_i),
171
.x_o       (x_o),
172
.y_o       (y_o),
173
.factor0_o (factor0_o),
174
.factor1_o (factor1_o),
175
.write_o   (write_o)
176
);
177
 
178
defparam interp.point_width  = point_width;
179
defparam interp.delay_width  = delay_width; // log2(point_width+1)
180
defparam interp.result_width = result_width;
181
 
182
endmodule
183
 

powered by: WebSVN 2.1.0

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