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/] [wbm_arbiter_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_wbm_read_arbiter.v"
2
 
3
module arbiter_bench();
4
 
5
// Clock
6
reg         clk_i;    // master clock reg
7
 
8
// Interface against the wbm read module
9
wire        master_busy_o;
10
wire        read_request_o;
11
wire [31:2] addr_o;
12
wire  [3:0] sel_o;
13
reg  [31:0] dat_i;
14
reg         ack_i;
15
// Interface against masters (clip)
16
reg         m0_read_request_i;
17
reg  [31:2] m0_addr_i;
18
reg   [3:0] m0_sel_i;
19
wire [31:0] m0_dat_o;
20
wire        m0_ack_o;
21
// Interface against masters (fragment processor)
22
reg         m1_read_request_i;
23
reg  [31:2] m1_addr_i;
24
reg   [3:0] m1_sel_i;
25
wire [31:0] m1_dat_o;
26
wire        m1_ack_o;
27
// Interface against masters (blender)
28
reg         m2_read_request_i;
29
reg  [31:2] m2_addr_i;
30
reg   [3:0] m2_sel_i;
31
wire [31:0] m2_dat_o;
32
wire        m2_ack_o;
33
 
34
initial begin
35
  $dumpfile("arbiter.vcd");
36
  $dumpvars(0,arbiter_bench);
37
 
38
// init values
39
  clk_i = 0;
40
  dat_i = 32'h12345678;
41
  ack_i = 0;
42
  m0_read_request_i = 0;
43
  m0_addr_i = 10;
44
  m0_sel_i = 0;
45
  m1_read_request_i = 0;
46
  m1_addr_i = 20;
47
  m1_sel_i = 8;
48
  m2_read_request_i = 0;
49
  m2_addr_i = 30;
50
  m2_sel_i = 8;
51
 
52
  #10 m0_read_request_i = 1;
53
  #10 m0_read_request_i = 0;
54
  #10 m1_read_request_i = 1;
55
  #10 m1_read_request_i = 0;
56
 
57
  #10 m1_read_request_i = 1;
58
  m0_read_request_i = 1;
59
  #10 m1_read_request_i = 0;
60
  #10 m0_read_request_i = 0;
61
 
62
//timing
63
 
64
  #100 $finish;
65
end
66
 
67
always @(posedge clk_i)
68
begin
69
  ack_i <= #1 read_request_o;
70
end
71
 
72
always begin
73
  #1 clk_i = ~clk_i;
74
end
75
 
76
gfx_wbm_read_arbiter arbiter(
77
.master_busy_o (master_busy_o),
78
// Interface against the wbm read module
79
.read_request_o (read_request_o),
80
.addr_o (addr_o),
81
.sel_o (sel_o),
82
.dat_i (dat_i),
83
.ack_i (ack_i),
84
// Interface against masters (clip)
85
.m0_read_request_i (m0_read_request_i),
86
.m0_addr_i (m0_addr_i),
87
.m0_sel_i (m0_sel_i),
88
.m0_dat_o (m0_dat_o),
89
.m0_ack_o (m0_ack_o),
90
// Interface against masters (fragment processor)
91
.m1_read_request_i (m1_read_request_i),
92
.m1_addr_i (m1_addr_i),
93
.m1_sel_i (m1_sel_i),
94
.m1_dat_o (m1_dat_o),
95
.m1_ack_o (m1_ack_o),
96
// Interface against masters (blender)
97
.m2_read_request_i (m2_read_request_i),
98
.m2_addr_i (m2_addr_i),
99
.m2_sel_i (m2_sel_i),
100
.m2_dat_o (m2_dat_o),
101
.m2_ack_o (m2_ack_o)
102
);
103
 
104
endmodule

powered by: WebSVN 2.1.0

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