OpenCores
URL https://opencores.org/ocsvn/1g_ethernet_dpi/1g_ethernet_dpi/trunk

Subversion Repositories 1g_ethernet_dpi

[/] [1g_ethernet_dpi/] [trunk/] [hw/] [src/] [tb/] [tb.sv] - Blame information for rev 4

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 4 kuzmi4
//////////////////////////////////////////////////////////////////////////////////
2
// Company:
3
// Engineer:        IK
4
//
5
// Create Date:     11:35:01 03/21/2013
6
// Design Name:
7
// Module Name:     tb
8
// Project Name:
9
// Target Devices:
10
// Tool versions:
11
// Description:
12
//
13
//
14
// Revision:
15
// Revision 0.01 - File Created,
16
//
17
//////////////////////////////////////////////////////////////////////////////////
18
`timescale 1ns / 1ps
19
 
20
module tb;
21
//////////////////////////////////////////////////////////////////////////////////
22
//
23
parameter   p_Tclk  =   5ns; // 50MHz
24
parameter   p_Trst  =   120ns;
25
// Eth MTU
26
parameter   p_ETH_MTU   =   8*1024; // Jumbo frame
27
 
28
//////////////////////////////////////////////////////////////////////////////////
29
    // SYS_CON
30
    reg     s_sys_clk;
31
    reg     s_eth_clk;
32
    reg     s_rst;
33
    // TSE-MDIO
34
    wire    s_tse_mdio;
35
    // TSE-RGMII
36
    wire            s_tse_rx_clk_i;
37
    wire            s_tse_rx_ctrl_i;
38
    wire    [ 3:0]  sv_tse_rxd_i;
39
 
40
    wire            s_tse_tx_clk_o;
41
    wire            s_tse_tx_ctrl_o;
42
    wire    [ 3:0]  sv_tse_txd_o;
43
 
44
//////////////////////////////////////////////////////////////////////////////////
45
//
46
//
47
//
48
always
49
begin   :   SYS_CLK
50
    #(p_Tclk / 2.0) s_sys_clk <= !s_sys_clk;
51
end
52
 
53
always
54
begin   :   ETH_CLK
55
    #(8ns / 2.0) s_eth_clk <= !s_eth_clk;
56
end
57
 
58
initial
59
begin   :   init_POR
60
    //
61
 
62
    // clr
63
    s_sys_clk = 0;
64
    s_eth_clk = 0;
65
    s_rst = 0;
66
 
67
    // Final
68
end
69
//////////////////////////////////////////////////////////////////////////////////
70
//
71
// Instantiate DUT
72
//
73
microb_top              dut
74
(
75
// SYS_CON
76
.glbl_rst               (s_rst),
77
.sys_diff_clock_clk_n   (!s_sys_clk), // 200MHz clock input from board
78
.sys_diff_clock_clk_p   ( s_sys_clk),
79
// LED
80
.led_8bits_tri_o        (),
81
// UART
82
.rs232_uart_rxd         (1'b1),
83
.rs232_uart_txd         (),
84
// PHY rst
85
.phy_resetn             (),
86
// RGMII Interface
87
.rgmii_txd              (sv_tse_txd_o),
88
.rgmii_tx_ctl           (s_tse_tx_ctrl_o),
89
.rgmii_txc              (s_tse_tx_clk_o),
90
.rgmii_rxd              (sv_tse_rxd_i),
91
.rgmii_rx_ctl           (s_tse_rx_ctrl_i),
92
.rgmii_rxc              (s_tse_rx_clk_i),
93
// MDIO Interface
94
.mdio                   (s_tse_mdio),
95
.mdc                    ()
96
 
97
);
98
//////////////////////////////////////////////////////////////////////////////////
99
//
100
// ETH-PHY-MDIO BFM / ;)
101
//
102
pullup (s_tse_mdio);
103
 
104
//////////////////////////////////////////////////////////////////////////////////
105
//
106
// HOST BFM
107
//
108
eth_host_bfm        #(2*1024) // p_ETH_MTU
109
                    U_HOST_BFM
110
(
111
// RSTi
112
.i_arst             (s_tse_rst_n),
113
// RGMII-RX
114
.i_rgmii_rx_clk     (s_tse_tx_clk_o),
115
.i_rgmii_rx_ctrl    (s_tse_tx_ctrl_o),
116
.iv_rgmii_rxd       (sv_tse_txd_o),
117
// RGMII-TX
118
.o_rgmii_tx_clk     (s_tse_rx_clk_i),
119
.o_rgmii_tx_ctrl    (s_tse_rx_ctrl_i),
120
.ov_rgmii_txd       (sv_tse_rxd_i)
121
);
122
initial
123
begin   :   HOST_BFM_RUN
124
    #(p_Trst);
125
    fork
126
        U_HOST_BFM.run_tx();
127
        U_HOST_BFM.run_rx();
128
    join_none
129
end
130
//////////////////////////////////////////////////////////////////////////////////
131
//
132
// ETH logger / PCAP
133
//
134
rgmii_rx_if U_RGMII_RX (U_HOST_BFM.i_rgmii_rx_clk); // U_HOST_BFM-rx
135
assign U_RGMII_RX.i_rxc  = U_HOST_BFM.i_rgmii_rx_ctrl;
136
assign U_RGMII_RX.iv_rxd = U_HOST_BFM.iv_rgmii_rxd;
137
 
138
rgmii_rx_if U_RGMII_TX (U_HOST_BFM.o_rgmii_tx_clk); // U_HOST_BFM-tx
139
assign U_RGMII_TX.i_rxc  = U_HOST_BFM.o_rgmii_tx_ctrl;
140
assign U_RGMII_TX.iv_rxd = U_HOST_BFM.ov_rgmii_txd;
141
 
142
`include "bfm_eth_log_cl.sv"
143
bfm_eth_log_cl s_bfm_eth_log;
144
initial
145
begin   :   ETH_LOG_INIT
146
    s_bfm_eth_log = new("elog_hrx", U_RGMII_RX, U_RGMII_TX);
147
    s_bfm_eth_log.init(); ##10;
148
    s_bfm_eth_log.log_run();
149
end
150
//////////////////////////////////////////////////////////////////////////////////
151
//
152
// TB Tasks
153
//
154
task dut_arst;
155
    // simple async
156
    s_rst <= 1; #(p_Tclk);
157
    s_rst <= 0;
158
    // Final
159
endtask : dut_arst
160
 
161
default clocking cb @(s_sys_clk);
162
endclocking : cb
163
 
164
//////////////////////////////////////////////////////////////////////////////////
165
endmodule

powered by: WebSVN 2.1.0

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