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

Subversion Repositories usb11

[/] [usb11/] [trunk/] [rtl/] [systemc/] [phy_test.cpp] - Blame information for rev 13

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 2 alfoltran
#include "systemc.h"
2
#include "usb_phy.h"
3
 
4
SC_MODULE(test) {
5
        sc_in<bool> clk, usb_rst;
6
        sc_out<bool> rst, phy_tx_mode;
7
        sc_in<bool> txdp, txdn, txoe;
8
        sc_out<bool> rxd, rxdp, rxdn;
9
        sc_out<sc_uint<8> > DataOut_i;
10
        sc_in<sc_uint<8> > DataIn_o;
11
        sc_out<bool> TxValid_i;
12
        sc_in<bool> TxReady_o, RxValid_o, RxActive_o, RxError_o;
13
        sc_in<sc_uint<2> > LineState_o;
14
 
15
        int i;
16
 
17
        void update(void) {
18
                i = 0;
19
                rst.write(false);
20
                wait();
21
                wait();
22
                rst.write(true);
23
                wait();
24
                wait();
25
                wait();
26
                wait();
27
                sc_stop();
28
        }
29
 
30
        SC_CTOR(test) {
31
                SC_THREAD(update);
32
                sensitive << clk.pos();
33
        }
34
};
35
 
36
int sc_main(int argc, char *argv[]) {
37
 
38
        sc_set_time_resolution(1.0, SC_NS);
39
 
40
        sc_clock clk("clock", 20.83, SC_NS);
41
        sc_signal<bool> rst, phy_tx_mode, usb_rst, txdp, txdn, txoe, rxd, rxdp, rxdn,
42
                        TxValid_i, TxReady_o, RxValid_o, RxActive_o, RxError_o;
43
        sc_signal<sc_uint<8> > DataOut_i, DataIn_o;
44
        sc_signal<sc_uint<2> > LineState_o;
45
 
46
        usb_phy i_phy("PHY");
47
        test i_test("TEST");
48
 
49
        i_phy.clk(clk);
50
        i_phy.rst(rst);
51
        i_phy.phy_tx_mode(phy_tx_mode);
52
        i_phy.usb_rst(usb_rst);
53
        i_phy.txdp(txdp);
54
        i_phy.txdn(txdn);
55
        i_phy.txoe(txoe);
56
        i_phy.rxd(rxd);
57
        i_phy.rxdn(rxdn);
58
        i_phy.rxdp(rxdp);
59
        i_phy.DataOut_i(DataOut_i);
60
        i_phy.DataIn_o(DataIn_o);
61
        i_phy.LineState_o(LineState_o);
62
        i_phy.TxValid_i(TxValid_i);
63
        i_phy.TxReady_o(TxReady_o);
64
        i_phy.RxValid_o(RxValid_o);
65
        i_phy.RxActive_o(RxActive_o);
66
        i_phy.RxError_o(RxError_o);
67
 
68
        i_test.clk(clk);
69
        i_test.rst(rst);
70
        i_test.phy_tx_mode(phy_tx_mode);
71
        i_test.usb_rst(usb_rst);
72
        i_test.txdp(txdp);
73
        i_test.txdn(txdn);
74
        i_test.txoe(txoe);
75
        i_test.rxd(rxd);
76
        i_test.rxdn(rxdn);
77
        i_test.rxdp(rxdp);
78
        i_test.DataOut_i(DataOut_i);
79
        i_test.DataIn_o(DataIn_o);
80
        i_test.LineState_o(LineState_o);
81
        i_test.TxValid_i(TxValid_i);
82
        i_test.TxReady_o(TxReady_o);
83
        i_test.RxValid_o(RxValid_o);
84
        i_test.RxActive_o(RxActive_o);
85
        i_test.RxError_o(RxError_o);
86
 
87
        sc_trace_file *log = sc_create_vcd_trace_file("PHY_TEST");
88
        sc_trace(log, clk, "Clock");
89
        sc_trace(log, rst, "Reset");
90
 
91
        //sc_start(1000, SC_NS);
92
        sc_start();
93
 
94
        sc_close_vcd_trace_file(log);
95
 
96
        return 0;
97
}
98
 

powered by: WebSVN 2.1.0

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