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

Subversion Repositories wb_size_bridge

[/] [wb_size_bridge/] [trunk/] [tb/] [test/] [debug/] [tb_dut.v] - Blame information for rev 4

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 4 qaztronic
//////////////////////////////////////////////////////////////////////
2
////                                                              ////
3
//// Copyright (C) 2009 Authors and OPENCORES.ORG                 ////
4
////                                                              ////
5
//// This source file may be used and distributed without         ////
6
//// restriction provided that this copyright statement is not    ////
7
//// removed from the file and that any derivative work contains  ////
8
//// the original copyright notice and the associated disclaimer. ////
9
////                                                              ////
10
//// This source file is free software; you can redistribute it   ////
11
//// and/or modify it under the terms of the GNU Lesser General   ////
12
//// Public License as published by the Free Software Foundation; ////
13
//// either version 2.1 of the License, or (at your option) any   ////
14
//// later version.                                               ////
15
////                                                              ////
16
//// This source is distributed in the hope that it will be       ////
17
//// useful, but WITHOUT ANY WARRANTY; without even the implied   ////
18
//// warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR      ////
19
//// PURPOSE.  See the GNU Lesser General Public License for more ////
20
//// details.                                                     ////
21
////                                                              ////
22
//// You should have received a copy of the GNU Lesser General    ////
23
//// Public License along with this source; if not, download it   ////
24
//// from http://www.opencores.org/lgpl.shtml                     ////
25
////                                                              ////
26
//////////////////////////////////////////////////////////////////////
27
 
28
`timescale 1ns/10ps
29
 
30
 
31
module tb_dut(
32
                input tb_clk,
33
                input tb_rst
34
              );
35
 
36
 
37
  wire        wb_hi_clk = tb_clk;
38
  wire        wb_hi_rst = tb_rst;
39
 
40
  wire [31:0] wb_hi_dat_i, wb_hi_dat_o;
41
  wire [31:0] wb_hi_adr_o;
42
  wire        wb_hi_cyc_o, wb_hi_stb_o;
43
  wire        wb_hi_we_o;
44
  wire [ 3:0] wb_hi_sel_o;
45
  wire        wb_hi_ack_i, wb_hi_err_i, wb_hi_rty_i;
46
 
47
  wire        wb_lo_clk_o;
48
  wire        wb_lo_rst_o;
49
 
50
  wire [15:0] wb_lo_dat_i, wb_lo_dat_o;
51
  wire [31:0] wb_lo_adr_o;
52
  wire        wb_lo_cyc_o, wb_lo_stb_o;
53
  wire        wb_lo_we_o;
54
  wire [1:0]  wb_lo_sel_o;
55
  wire        wb_lo_ack_i, wb_lo_err_i, wb_lo_rty_i;
56
  wire        lo_byte_if_i;
57
 
58
 
59
  // --------------------------------------------------------------------
60
  //  wb_hi_master_model
61
  wb_master_model wbm(
62
                        .clk(wb_hi_clk),
63
                        .rst(wb_hi_rst),
64
                        .adr(wb_hi_adr_o),
65
                        .din(wb_hi_dat_i),
66
                        .dout(wb_hi_dat_o),
67
                        .cyc(wb_hi_cyc_o),
68
                        .stb(wb_hi_stb_o),
69
                        .we(wb_hi_we_o),
70
                        .sel(wb_hi_sel_o),
71
                        .ack(wb_hi_ack_i),
72
                        .err(wb_hi_err_i),
73
                        .rty(wb_hi_rty_i)
74
                      );
75
 
76
 
77
  // --------------------------------------------------------------------
78
  //  wb_hi_size_bridge
79
  wb_size_bridge i_wb_size_bridge(
80
                                    .wb_hi_clk_i(wb_hi_clk),
81
                                    .wb_hi_rst_i(wb_hi_rst),
82
                                    .wb_hi_dat_o(wb_hi_dat_i),
83
                                    .wb_hi_dat_i(wb_hi_dat_o),
84
                                    .wb_hi_adr_i(wb_hi_adr_o),
85
                                    .wb_hi_cyc_i(wb_hi_cyc_o),
86
                                    .wb_hi_we_i(wb_hi_we_o),
87
                                    .wb_hi_stb_i(wb_hi_stb_o),
88
                                    .wb_hi_sel_i(wb_hi_sel_o),
89
                                    .wb_hi_ack_o(wb_hi_ack_i),
90
                                    .wb_hi_err_o(wb_hi_err_i),
91
                                    .wb_hi_rty_o(wb_hi_rty_i),
92
 
93
                                    .wb_lo_clk_o(wb_lo_clk_o),
94
                                    .wb_lo_rst_o(wb_lo_rst_o),
95
                                    .wb_lo_dat_o(wb_lo_dat_o),
96
                                    .wb_lo_dat_i(wb_lo_dat_i),
97
                                    .wb_lo_adr_o(wb_lo_adr_o),
98
                                    .wb_lo_cyc_o(wb_lo_cyc_o),
99
                                    .wb_lo_we_o(wb_lo_we_o),
100
                                    .wb_lo_stb_o(wb_lo_stb_o),
101
                                    .wb_lo_sel_o(wb_lo_sel_o),
102
                                    .wb_lo_ack_i(wb_lo_ack_i),
103
                                    .wb_lo_err_i(wb_lo_err_i),
104
                                    .wb_lo_rty_i(wb_lo_rty_i),
105
                                    .lo_byte_if_i(lo_byte_if_i)
106
                                  );
107
 
108
 
109
  // --------------------------------------------------------------------
110
  //  wb_slave_model
111
 
112
  wire slave_08_bit_hit = (wb_lo_adr_o[31:24] == 8'h60) & wb_lo_cyc_o;
113
 
114
  wire [15:0] slave_08_bit_dat_o;
115
  wire [15:0] slave_16_bit_dat_o;
116
 
117
  assign wb_lo_dat_i[15:0] = slave_08_bit_hit ? slave_08_bit_dat_o : slave_16_bit_dat_o;
118
 
119
  wire slave_08_bit_ack_o;
120
  wire slave_08_bit_err_o;
121
  wire slave_08_bit_rty_o;
122
 
123
  wire slave_16_bit_ack_o;
124
  wire slave_16_bit_err_o;
125
  wire slave_16_bit_rty_o;
126
 
127
  assign wb_lo_ack_i = slave_08_bit_hit ? slave_08_bit_ack_o : slave_16_bit_ack_o;
128
  assign wb_lo_err_i = slave_08_bit_hit ? slave_08_bit_err_o : slave_16_bit_err_o;
129
  assign wb_lo_rty_i = slave_08_bit_hit ? slave_08_bit_rty_o : slave_16_bit_rty_o;
130
 
131
  wire slave_08_bit_cyc_i = wb_lo_cyc_o & slave_08_bit_hit;
132
  wire slave_08_bit_stb_i = wb_lo_stb_o & slave_08_bit_hit;
133
 
134
  wire slave_16_bit_cyc_i = wb_lo_cyc_o & ~slave_08_bit_hit;
135
  wire slave_16_bit_stb_i = wb_lo_stb_o & ~slave_08_bit_hit;
136
 
137
  assign lo_byte_if_i = slave_08_bit_hit;
138
 
139
  wb_slave_model #(.DWIDTH(8), .AWIDTH(5), .ACK_DELAY(2), .SLAVE_RAM_INIT( "wb_slave_08_bit.txt") )
140
  wb_slave_08_bit(
141
                    .clk_i(wb_lo_clk_o),
142
                    .rst_i(wb_lo_rst_o),
143
                    .dat_o(slave_08_bit_dat_o[7:0]),
144
                    .dat_i(wb_lo_dat_o[7:0]),
145
                    .adr_i(wb_lo_adr_o[4:0]),
146
                    .cyc_i(slave_08_bit_cyc_i),
147
                    .stb_i(slave_08_bit_stb_i),
148
                    .we_i(wb_lo_we_o),
149
                    .sel_i(wb_lo_sel_o[0]),
150
                    .ack_o(slave_08_bit_ack_o),
151
                    .err_o(slave_08_bit_err_o),
152
                    .rty_o(slave_08_bit_rty_o)
153
                  );
154
 
155
 
156
  wb_slave_model #(.DWIDTH(16), .AWIDTH(5), .ACK_DELAY(2), .SLAVE_RAM_INIT( "wb_slave_16_bit.txt") )
157
  wb_slave_16_bit(
158
                    .clk_i(wb_lo_clk_o),
159
                    .rst_i(wb_lo_rst_o),
160
                    .dat_o(slave_16_bit_dat_o),
161
                    .dat_i(wb_lo_dat_o[15:0]),
162
                    .adr_i(wb_lo_adr_o[4:0]),
163
                    .cyc_i(slave_16_bit_cyc_i),
164
                    .stb_i(slave_16_bit_stb_i),
165
                    .we_i(wb_lo_we_o),
166
                    .sel_i(wb_lo_sel_o),
167
                    .ack_o(slave_16_bit_ack_o),
168
                    .err_o(slave_16_bit_err_o),
169
                    .rty_o(slave_16_bit_rty_o)
170
                  );
171
 
172
 
173
endmodule
174
 
175
 

powered by: WebSVN 2.1.0

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