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 2

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

Line No. Rev Author Line
1 2 qaztronic
// --------------------------------------------------------------------
2
//
3
// --------------------------------------------------------------------
4
 
5
`timescale 1ns/10ps
6
 
7
 
8
module tb_dut(
9
                input tb_clk,
10
                input tb_rst
11
              );
12
 
13
 
14
  wire        wb_hi_clk = tb_clk;
15
  wire        wb_hi_rst = tb_rst;
16
 
17
  wire [31:0] wb_hi_dat_i, wb_hi_dat_o;
18
  wire [31:0] wb_hi_adr_o;
19
  wire        wb_hi_cyc_o, wb_hi_stb_o;
20
  wire        wb_hi_we_o;
21
  wire [ 3:0] wb_hi_sel_o;
22
  wire        wb_hi_ack_i, wb_hi_err_i, wb_hi_rty_i;
23
 
24
  wire        wb_lo_clk_o;
25
  wire        wb_lo_rst_o;
26
 
27
  wire [15:0] wb_lo_dat_i, wb_lo_dat_o;
28
  wire [31:0] wb_lo_adr_o;
29
  wire        wb_lo_cyc_o, wb_lo_stb_o;
30
  wire        wb_lo_we_o;
31
  wire [1:0]  wb_lo_sel_o;
32
  wire        wb_lo_ack_i, wb_lo_err_i, wb_lo_rty_i;
33
  wire        lo_byte_if_i;
34
 
35
 
36
  // --------------------------------------------------------------------
37
  //  wb_hi_master_model
38
  wb_master_model wbm(
39
                        .clk(wb_hi_clk),
40
                        .rst(wb_hi_rst),
41
                        .adr(wb_hi_adr_o),
42
                        .din(wb_hi_dat_i),
43
                        .dout(wb_hi_dat_o),
44
                        .cyc(wb_hi_cyc_o),
45
                        .stb(wb_hi_stb_o),
46
                        .we(wb_hi_we_o),
47
                        .sel(wb_hi_sel_o),
48
                        .ack(wb_hi_ack_i),
49
                        .err(wb_hi_err_i),
50
                        .rty(wb_hi_rty_i)
51
                      );
52
 
53
 
54
  // --------------------------------------------------------------------
55
  //  wb_hi_size_bridge
56
  wb_size_bridge i_wb_size_bridge(
57
                                    .wb_hi_clk_i(wb_hi_clk),
58
                                    .wb_hi_rst_i(wb_hi_rst),
59
                                    .wb_hi_dat_o(wb_hi_dat_i),
60
                                    .wb_hi_dat_i(wb_hi_dat_o),
61
                                    .wb_hi_adr_i(wb_hi_adr_o),
62
                                    .wb_hi_cyc_i(wb_hi_cyc_o),
63
                                    .wb_hi_we_i(wb_hi_we_o),
64
                                    .wb_hi_stb_i(wb_hi_stb_o),
65
                                    .wb_hi_sel_i(wb_hi_sel_o),
66
                                    .wb_hi_ack_o(wb_hi_ack_i),
67
                                    .wb_hi_err_o(wb_hi_err_i),
68
                                    .wb_hi_rty_o(wb_hi_rty_i),
69
 
70
                                    .wb_lo_clk_o(wb_lo_clk_o),
71
                                    .wb_lo_rst_o(wb_lo_rst_o),
72
                                    .wb_lo_dat_o(wb_lo_dat_o),
73
                                    .wb_lo_dat_i(wb_lo_dat_i),
74
                                    .wb_lo_adr_o(wb_lo_adr_o),
75
                                    .wb_lo_cyc_o(wb_lo_cyc_o),
76
                                    .wb_lo_we_o(wb_lo_we_o),
77
                                    .wb_lo_stb_o(wb_lo_stb_o),
78
                                    .wb_lo_sel_o(wb_lo_sel_o),
79
                                    .wb_lo_ack_i(wb_lo_ack_i),
80
                                    .wb_lo_err_i(wb_lo_err_i),
81
                                    .wb_lo_rty_i(wb_lo_rty_i),
82
                                    .lo_byte_if_i(lo_byte_if_i)
83
                                  );
84
 
85
 
86
  // --------------------------------------------------------------------
87
  //  wb_slave_model
88
 
89
  wire slave_08_bit_hit = (wb_lo_adr_o[31:24] == 8'h60) & wb_lo_cyc_o;
90
 
91
  wire [15:0] slave_08_bit_dat_o;
92
  wire [15:0] slave_16_bit_dat_o;
93
 
94
  assign wb_lo_dat_i[15:0] = slave_08_bit_hit ? slave_08_bit_dat_o : slave_16_bit_dat_o;
95
 
96
  wire slave_08_bit_ack_o;
97
  wire slave_08_bit_err_o;
98
  wire slave_08_bit_rty_o;
99
 
100
  wire slave_16_bit_ack_o;
101
  wire slave_16_bit_err_o;
102
  wire slave_16_bit_rty_o;
103
 
104
  assign wb_lo_ack_i = slave_08_bit_hit ? slave_08_bit_ack_o : slave_16_bit_ack_o;
105
  assign wb_lo_err_i = slave_08_bit_hit ? slave_08_bit_err_o : slave_16_bit_err_o;
106
  assign wb_lo_rty_i = slave_08_bit_hit ? slave_08_bit_rty_o : slave_16_bit_rty_o;
107
 
108
  wire slave_08_bit_cyc_i = wb_lo_cyc_o & slave_08_bit_hit;
109
  wire slave_08_bit_stb_i = wb_lo_stb_o & slave_08_bit_hit;
110
 
111
  wire slave_16_bit_cyc_i = wb_lo_cyc_o & ~slave_08_bit_hit;
112
  wire slave_16_bit_stb_i = wb_lo_stb_o & ~slave_08_bit_hit;
113
 
114
  assign lo_byte_if_i = slave_08_bit_hit;
115
 
116
  wb_slave_model #(.DWIDTH(8), .AWIDTH(5), .ACK_DELAY(2), .SLAVE_RAM_INIT( "wb_slave_08_bit.txt") )
117
  wb_slave_08_bit(
118
                    .clk_i(wb_lo_clk_o),
119
                    .rst_i(wb_lo_rst_o),
120
                    .dat_o(slave_08_bit_dat_o[7:0]),
121
                    .dat_i(wb_lo_dat_o[7:0]),
122
                    .adr_i(wb_lo_adr_o[4:0]),
123
                    .cyc_i(slave_08_bit_cyc_i),
124
                    .stb_i(slave_08_bit_stb_i),
125
                    .we_i(wb_lo_we_o),
126
                    .sel_i(wb_lo_sel_o[0]),
127
                    .ack_o(slave_08_bit_ack_o),
128
                    .err_o(slave_08_bit_err_o),
129
                    .rty_o(slave_08_bit_rty_o)
130
                  );
131
 
132
 
133
  wb_slave_model #(.DWIDTH(16), .AWIDTH(5), .ACK_DELAY(2), .SLAVE_RAM_INIT( "wb_slave_16_bit.txt") )
134
  wb_slave_16_bit(
135
                    .clk_i(wb_lo_clk_o),
136
                    .rst_i(wb_lo_rst_o),
137
                    .dat_o(slave_16_bit_dat_o),
138
                    .dat_i(wb_lo_dat_o[15:0]),
139
                    .adr_i(wb_lo_adr_o[4:0]),
140
                    .cyc_i(slave_16_bit_cyc_i),
141
                    .stb_i(slave_16_bit_stb_i),
142
                    .we_i(wb_lo_we_o),
143
                    .sel_i(wb_lo_sel_o),
144
                    .ack_o(slave_16_bit_ack_o),
145
                    .err_o(slave_16_bit_err_o),
146
                    .rty_o(slave_16_bit_rty_o)
147
                  );
148
 
149
 
150
endmodule
151
 
152
 

powered by: WebSVN 2.1.0

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