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

Subversion Repositories scct

[/] [scct/] [trunk/] [test/] [test_channel.v] - Blame information for rev 2

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 2 fkluge
// $Id: test_channel.v 2 2015-06-15 13:52:02Z fkluge $
2
// Test bed for counter and channels
3
 
4
`include "scct_constants.v"
5
 
6
module test_ctr_ch;
7
 
8
   /* Make a reset that pulses once. */
9
   reg rst = 0;
10
   //wire rst_n;
11
 
12
   //reg iSig=0;
13
 
14
   reg inp = 0;
15
 
16
   wire iSig;
17
   assign iSig = inp ? 1 : 0;
18
   wire oSig;
19
 
20
   wire ctr_ch;
21
 
22
 
23
   //assign pin = (msi == `SCCT_CH_MS_IC) ? iSig : oSig;
24
   assign pin_i = iSig;
25
   assign pin_o = oSig;
26
 
27
 
28
   reg  ct_ieni = 0;
29
   reg  ct_ieni_wen = 0;
30
   reg  ct_istati = 0;
31
   reg  ct_istati_wen = 0;
32
   reg [`SCCT_COUNTER_PSC_WIDTH-1:0] ct_psci = 0;
33
   reg                               ct_psci_wen = 0;
34
   wire                              ct_ien;
35
   wire                              ct_istat;
36
   wire [`SCCT_COUNTER_PSC_WIDTH-1:0] ct_psc;
37
 
38
 
39
   reg        msi, msiw;
40
   reg [1:0]  mi;
41
   reg        miw;
42
   reg [`SCCT_COUNTER_CTR_WIDTH-1:0] ccri;
43
   reg                        ccriw;
44
   reg                        ieni;
45
   reg                        ieniw;
46
   reg                        isi = 1;
47
   reg                        isiw;
48
   reg                        fo = 0;
49
   reg                        fow = 0;
50
   wire                               ms;
51
   wire [1:0]                          m;
52
   wire [`SCCT_COUNTER_CTR_WIDTH-1:0] ccr;
53
   wire                               ien;
54
   wire                               is;
55
   wire                               pin_i;
56
   wire                               pin_o;
57
 
58
 
59
 
60
   initial
61
     begin
62
        $dumpfile("test.lxt2");
63
        $dumpvars;
64
 
65
        //$dumpvars(0,clk);
66
        //$dumpvars(0,ctr);
67
        //$dumpvars(0,reset_n);
68
     end
69
 
70
 
71
   initial
72
     begin
73
        # 0 rst = 1;
74
        # 0 msi = 0;
75
        # 0 miw = 0;
76
        # 0 msiw = 0;
77
        # 0 ccriw = 0;
78
        # 0 ieniw = 0;
79
        # 0 isiw = 0;
80
        # 0 fow = 0;
81
 
82
        # 1 rst = 0;
83
 
84
        # 1 ieni = 1;
85
        ieniw = 1;
86
        # 1 ieniw = 0;
87
 
88
        //ct_psci = 1;
89
        //ct_psci_wen = 1;
90
        ct_ieni = 1;
91
        ct_ieni_wen = 1;
92
 
93
        # 2 //ct_psci_wen = 0;
94
        ct_ieni_wen = 0;
95
 
96
 
97
 
98
        // Test input capture
99
        # 2 msi = `SCCT_CH_MS_IC;
100
        msiw = 1;
101
        # 1 msiw = 0;
102
 
103
        # 2 mi = `SCCT_IC_ANYEDGE;
104
        miw = 1;
105
        # 1 miw = 0;
106
 
107
        # 2 inp = 1;
108
 
109
        # 5 isiw = 1;
110
        # 2 isiw = 0;
111
 
112
        # 4 inp = 0;
113
 
114
        # 4 isiw = 1;
115
        # 2 isiw = 0;
116
 
117
        // now do output compare
118
        # 5 msi = `SCCT_CH_MS_OC;
119
        msiw = 1;
120
        # 2 msiw = 0;
121
 
122
        # 1 mi = `SCCT_OC_HIGH;
123
        miw = 1;
124
        # 2 miw = 0;
125
 
126
        # 1 fo = 1;
127
        fow = 1;
128
        # 2 fow = 0;
129
 
130
        # 1 mi = `SCCT_OC_TOGGLE;
131
        miw = 1;
132
        # 2 miw = 0;
133
 
134
        # 1 ccri = `SCCT_COUNTER_CTR_WIDTH'd15;
135
        ccriw = 1;
136
        # 2 ccriw = 0;
137
 
138
        # 60 isiw = 1;
139
        # 2 isiw = 0;
140
 
141
        # 54 isiw = 1;
142
        # 2 isiw = 0;
143
        /*
144
        // Test output compare
145
        # 8 msi = `SCCT_CH_MS_OC;
146
        # 8 msiw = 1;
147
        # 10 msiw = 0;
148
 
149
        # 11 mi = `SCCT_OC_TOGGLE;
150
        # 11 miw = 1;
151
        # 13 miw = 0;
152
 
153
 
154
        # 15 ccri = `SCCT_COUNTER_CTR_WIDTH'd15;
155
        # 15 ccriw = 1;
156
        # 17 ccriw = 0;
157
 
158
        # 13 fo = 0;
159
        # 13 fow = 1;
160
        # 14 fow = 0;
161
 
162
        # 19 isiw = 1;
163
        # 21 isiw = 0;
164
 
165
        # 55 isiw = 1;
166
        # 57 isiw = 0;
167
         */
168
 
169
        # 100 $stop;
170
        //# 132000 $stop;
171
     end
172
 
173
 
174
 
175
   assign reset_n = !reset;
176
 
177
 
178
   /* Make a regular pulsing clock. */
179
   reg clk = 1;
180
   always #1 clk = !clk;
181
 
182
   wire [`SCCT_COUNTER_CTR_WIDTH-1:0] ctr;
183
   wire        irq;
184
   reg [15:0]  expire = 5;
185
 
186
 
187
   scct_counter ctr1 (clk, rst, ctr, ctr_ch,
188
                      ct_ieni, ct_ieni_wen, ct_istati, ct_istati_wen, ct_psci, ct_psci_wen, ct_ien, ct_istat, ct_psc);
189
 
190
   scct_channel ch1(clk, rst, ctr, ctr_ch,
191
                 msi, msiw, mi, miw, ccri, ccriw, ieni, ieniw, isi, isiw, fo, fow,
192
                 ms, m, ccr, ien, is, pin_i, pin_o);
193
 
194
 
195
   initial
196
     $monitor("At time %t, counter = %0d reset = %h, irq = %h",
197
              $time, ctr, rst, irq);
198
endmodule // test

powered by: WebSVN 2.1.0

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