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

Subversion Repositories orsoc_graphics_accelerator

[/] [orsoc_graphics_accelerator/] [tags/] [version1.0/] [bench/] [verilog/] [gfx/] [wbm_arbiter_bench.v] - Diff between revs 2 and 3

Go to most recent revision | Only display areas with differences | Details | Blame | View Log

Rev 2 Rev 3
`include "../../../rtl/verilog/gfx/gfx_wbm_read_arbiter.v"
`include "../../../rtl/verilog/gfx/gfx_wbm_read_arbiter.v"
 
 
module arbiter_bench();
module arbiter_bench();
 
 
// Clock
// Clock
reg clk_i;    // master clock reg
reg clk_i;    // master clock reg
 
 
// Interface against the wbm read module
// Interface against the wbm read module
wire master_busy_o;
wire master_busy_o;
wire read_request_o;
wire read_request_o;
wire [31:2] addr_o;
wire [31:2] addr_o;
wire [3:0] sel_o;
wire [3:0] sel_o;
reg [31:0] dat_i;
reg [31:0] dat_i;
reg ack_i;
reg ack_i;
// Interface against masters (fragment processor)
// Interface against masters (fragment processor)
reg m0_read_request_i;
reg m0_read_request_i;
reg [31:2] m0_addr_i;
reg [31:2] m0_addr_i;
reg [3:0] m0_sel_i;
reg [3:0] m0_sel_i;
wire [31:0] m0_dat_o;
wire [31:0] m0_dat_o;
wire m0_ack_o;
wire m0_ack_o;
// Interface against masters (blender)
// Interface against masters (blender)
reg m1_read_request_i;
reg m1_read_request_i;
reg [31:2] m1_addr_i;
reg [31:2] m1_addr_i;
reg [3:0] m1_sel_i;
reg [3:0] m1_sel_i;
wire [31:0] m1_dat_o;
wire [31:0] m1_dat_o;
wire m1_ack_o;
wire m1_ack_o;
 
 
initial begin
initial begin
  $dumpfile("arbiter.vcd");
  $dumpfile("arbiter.vcd");
  $dumpvars(0,arbiter_bench);
  $dumpvars(0,arbiter_bench);
 
 
// init values
// init values
  clk_i = 0;
  clk_i = 0;
  dat_i = 32'h12345678;
  dat_i = 32'h12345678;
  ack_i = 0;
  ack_i = 0;
  m0_read_request_i = 0;
  m0_read_request_i = 0;
  m0_addr_i = 10;
  m0_addr_i = 10;
  m0_sel_i = 0;
  m0_sel_i = 0;
  m1_read_request_i = 0;
  m1_read_request_i = 0;
  m1_addr_i = 20;
  m1_addr_i = 20;
  m1_sel_i = 8;
  m1_sel_i = 8;
 
 
  #10 m0_read_request_i = 1;
  #10 m0_read_request_i = 1;
  #10 m0_read_request_i = 0;
  #10 m0_read_request_i = 0;
  #10 m1_read_request_i = 1;
  #10 m1_read_request_i = 1;
  #10 m1_read_request_i = 0;
  #10 m1_read_request_i = 0;
 
 
  #10 m1_read_request_i = 1;
  #10 m1_read_request_i = 1;
  m0_read_request_i = 1;
  m0_read_request_i = 1;
  #10 m1_read_request_i = 0;
  #10 m1_read_request_i = 0;
  #10 m0_read_request_i = 0;
  #10 m0_read_request_i = 0;
 
 
//timing
//timing
 
 
  #100 $finish;
  #100 $finish;
end
end
 
 
always @(posedge clk_i)
always @(posedge clk_i)
begin
begin
  ack_i <= #1 read_request_o;
  ack_i <= #1 read_request_o;
end
end
 
 
always begin
always begin
  #1 clk_i = ~clk_i;
  #1 clk_i = ~clk_i;
end
end
 
 
gfx_wbm_read_arbiter arbiter(
gfx_wbm_read_arbiter arbiter(
.master_busy_o (master_busy_o),
.master_busy_o (master_busy_o),
// Interface against the wbm read module
// Interface against the wbm read module
.read_request_o (read_request_o),
.read_request_o (read_request_o),
.addr_o (addr_o),
.addr_o (addr_o),
.sel_o (sel_o),
.sel_o (sel_o),
.dat_i (dat_i),
.dat_i (dat_i),
.ack_i (ack_i),
.ack_i (ack_i),
// Interface against masters (fragment processor)
// Interface against masters (fragment processor)
.m0_read_request_i (m0_read_request_i),
.m0_read_request_i (m0_read_request_i),
.m0_addr_i (m0_addr_i),
.m0_addr_i (m0_addr_i),
.m0_sel_i (m0_sel_i),
.m0_sel_i (m0_sel_i),
.m0_dat_o (m0_dat_o),
.m0_dat_o (m0_dat_o),
.m0_ack_o (m0_ack_o),
.m0_ack_o (m0_ack_o),
// Interface against masters (blender)
// Interface against masters (blender)
.m1_read_request_i (m1_read_request_i),
.m1_read_request_i (m1_read_request_i),
.m1_addr_i (m1_addr_i),
.m1_addr_i (m1_addr_i),
.m1_sel_i (m1_sel_i),
.m1_sel_i (m1_sel_i),
.m1_dat_o (m1_dat_o),
.m1_dat_o (m1_dat_o),
.m1_ack_o (m1_ack_o)
.m1_ack_o (m1_ack_o)
);
);
 
 
endmodule
endmodule
 
 

powered by: WebSVN 2.1.0

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