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] - Rev 6

Compare with Previous | Blame | View Log

`include "../../../rtl/verilog/gfx/gfx_line.v"
 
module line_bench();
 
parameter point_width = 16;
parameter subpixel_width = 16;
 
reg clk_i;
reg rst_i;
 
reg signed [point_width-1:-subpixel_width] pixel0_x_i;
reg signed [point_width-1:-subpixel_width] pixel1_x_i;
reg signed [point_width-1:-subpixel_width] pixel0_y_i;
reg signed [point_width-1:-subpixel_width] pixel1_y_i;
 
reg [point_width-1:0] delta_major_i;
reg [point_width-1:0] delta_minor_i;
 
reg draw_line_i;
reg read_pixel_i;
reg x_major_i;
reg minor_slope_positive_i;
 
wire busy_o;
 
wire signed [point_width-1:0] major_o;
wire signed [point_width-1:0] minor_o;
 
wire x_major_o;
wire valid_o;
 
initial begin
  $dumpfile("line.vcd");
  $dumpvars(0,line_bench);
 
  draw_line_i = 0;
  clk_i = 0;
  rst_i = 1;
  read_pixel_i = 0;
 
// timing
#2 rst_i = 0;
 
   pixel0_x_i = -(10 << subpixel_width);
   pixel0_y_i = (10 << subpixel_width);
   pixel1_x_i = (13 << subpixel_width);
   pixel1_y_i = (15 << subpixel_width);
#2 draw_line_i = 1;
#2 draw_line_i = 0;
 
#112 pixel0_x_i = 10 << subpixel_width;
    pixel0_y_i = 10 << subpixel_width;
    pixel1_x_i = 20 << subpixel_width;
#2  draw_line_i = 1;
#2  draw_line_i = 0;
 
#100 pixel0_x_i = 10 << subpixel_width;
    pixel0_y_i = 10 << subpixel_width;
    pixel1_x_i = 20 << subpixel_width;
#2  draw_line_i = 1;
#2  draw_line_i = 0;
 
 
#100 pixel0_x_i = 10 << subpixel_width;
    pixel0_y_i = 10 << subpixel_width;
    pixel1_x_i = 20 << subpixel_width;
#2  draw_line_i = 1;
#2  draw_line_i = 0;
 
#100 pixel0_x_i = 10 << subpixel_width;
    pixel0_y_i = 10 << subpixel_width;
    pixel1_x_i = 20 << subpixel_width;
#2  draw_line_i = 1;
#2  draw_line_i = 0;
 
#100 pixel0_x_i = 10 << subpixel_width;
    pixel0_y_i = 10 << subpixel_width;
    pixel1_x_i = 20 << subpixel_width;
#2  draw_line_i = 1;
#2  draw_line_i = 0;
 
  #1000 $finish;
end
 
 
always begin
  #1 clk_i = ~clk_i;
  #1 read_pixel_i = valid_o;
end
 
bresenham_line #(point_width, subpixel_width) bresenham(
.clk_i            ( clk_i         ), 
.rst_i            ( rst_i         ),
.pixel0_x_i       ( pixel0_x_i    ), 
.pixel0_y_i       ( pixel0_y_i    ), 
.pixel1_x_i       ( pixel1_x_i    ),
.pixel1_y_i       ( pixel1_y_i    ),
.draw_line_i      ( draw_line_i   ),
.read_pixel_i     ( read_pixel_i  ),
.busy_o           ( busy_o        ),
.x_major_o        ( x_major_o     ),
.major_o          ( major_o       ),
.minor_o          ( minor_o       ),
.valid_o          ( valid_o       )
);
 
endmodule
 

Compare with Previous | Blame | View Log

powered by: WebSVN 2.1.0

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