OpenCores
URL https://opencores.org/ocsvn/mcs-4/mcs-4/trunk

Subversion Repositories mcs-4

[/] [mcs-4/] [trunk/] [rtl/] [verilog/] [i4004/] [i4004.v] - Blame information for rev 6

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 2 rrpollack
`timescale 1ns / 1ps
2
`default_nettype none
3
////////////////////////////////////////////////////////////////////////
4 6 rrpollack
//
5 2 rrpollack
// 4004 CPU Integration Module
6 6 rrpollack
//
7 2 rrpollack
// This file is part of the MCS-4 project hosted at OpenCores:
8
//      http://www.opencores.org/cores/mcs-4/
9 6 rrpollack
//
10
// Copyright © 2012, 2021 by Reece Pollack <rrpollack@opencores.org>
11
//
12 2 rrpollack
// These materials are provided under the Creative Commons
13 6 rrpollack
// "Attribution-NonCommercial-ShareAlike" (CC BY-NC-SA) Public License.
14
// They are NOT "public domain", and are protected by copyright.
15
//
16 2 rrpollack
// This work based on materials provided by Intel Corporation and
17
// others under the same license. See the file doc/License for
18
// details of this license.
19
//
20
////////////////////////////////////////////////////////////////////////
21
 
22
module i4004(
23 6 rrpollack
    input  wire         sysclk,
24
    input  wire         clk1_pad,
25
    input  wire         clk2_pad,
26
    input  wire         poc_pad,
27
    input  wire         test_pad,
28
    inout  wire [3:0]   data_pad,
29
    output wire         cmrom_pad,
30
    output wire         cmram0_pad,
31
    output wire         cmram1_pad,
32
    output wire         cmram2_pad,
33
    output wire         cmram3_pad,
34
    output wire         sync_pad
35 2 rrpollack
    );
36
 
37 6 rrpollack
    // Common BiDir data bus
38
    wire [3:0]      data;
39 2 rrpollack
 
40 6 rrpollack
    // Timing and I/O Board Outputs
41
    wire            clk1;
42
    wire            clk2;
43
    wire            a12;
44
    wire            a22;
45
    wire            a32;
46
    wire            m12;
47
    wire            m22;
48
    wire            x12;
49
    wire            x22;
50
    wire            x32;
51
    wire            gate;
52
    wire            poc;            // Clean POC_PAD
53
    wire            n0432;          // Clean TEST_PAD
54 2 rrpollack
 
55 6 rrpollack
    // Outputs from the Instruction Decode board
56
    wire            jcn_isz;
57
    wire            jin_fin;
58
    wire            jun_jms;
59
    wire            cn_n;
60
    wire            bbl;
61
    wire            jms;
62
    wire            sc;
63
    wire            dc;
64
    wire            n0636;
65
    wire            sc_m22_clk2;
66
    wire            fin_fim_src_jin;
67
    wire            inc_isz_add_sub_xch_ld;
68
    wire            inc_isz_xch;
69
    wire            opa0_n;
70
    wire            cma;
71
    wire            write_acc_1;
72
    wire            write_carry_2;
73
    wire            read_acc_3;
74
    wire            add_group_4;
75
    wire            inc_group_5;
76
    wire            sub_group_6;
77
    wire            ior;
78
    wire            iow;
79
    wire            ral;
80
    wire            rar;
81
    wire            ope_n;
82
    wire            daa;
83
    wire            dcl;
84
    wire            inc_isz;
85
    wire            kbp;
86
    wire            o_ib;
87
    wire            tcs;
88
    wire            xch;
89
    wire            n0342;
90
    wire            x21_clk2;
91
    wire            x31_clk2;
92
    wire            com_n;
93 2 rrpollack
 
94 6 rrpollack
    // Outputs from the ALU board
95
    wire            acc_0;
96
    wire            add_0;
97
    wire            cy_1;
98
    wire            cmram0;
99
    wire            cmram1;
100
    wire            cmram2;
101
    wire            cmram3;
102
    wire            cmrom;
103 2 rrpollack
 
104 6 rrpollack
    // Instantiate the Timing and I/O board
105
    timing_io tio_board (
106
        .sysclk(sysclk),
107
        .clk1_pad(clk1_pad),
108
        .clk2_pad(clk2_pad),
109
        .poc_pad(poc_pad),
110
        .ior(ior),
111
        .clk1(clk1),
112
        .clk2(clk2),
113
        .a12(a12),
114
        .a22(a22),
115
        .a32(a32),
116
        .m12(m12),
117
        .m22(m22),
118
        .x12(x12),
119
        .x22(x22),
120
        .x32(x32),
121
        .gate(gate),
122
        .poc(poc),
123
        .data(data),
124
        .data_pad(data_pad),
125
        .test_pad(test_pad),
126
        .n0432(n0432),
127
        .sync_pad(sync_pad),
128
        .cmrom(cmrom),
129
        .cmrom_pad(cmrom_pad),
130
        .cmram0(cmram0),
131
        .cmram0_pad(cmram0_pad),
132
        .cmram1(cmram1),
133
        .cmram1_pad(cmram1_pad),
134
        .cmram2(cmram2),
135
        .cmram2_pad(cmram2_pad),
136
        .cmram3(cmram3),
137
        .cmram3_pad(cmram3_pad)
138
    );
139 2 rrpollack
 
140 6 rrpollack
    // Instantiate the Instruction Decode board
141
    instruction_decode id_board (
142
        .sysclk(sysclk),
143
        .clk1(clk1),
144
        .clk2(clk2),
145
        .a22(a22),
146
        .m12(m12),
147
        .m22(m22),
148
        .x12(x12),
149
        .x22(x22),
150
        .x32(x32),
151
        .poc(poc),
152
        .n0432(n0432),
153
        .data(data),
154
        .jcn_isz(jcn_isz),
155
        .jin_fin(jin_fin),
156
        .jun_jms(jun_jms),
157
        .cn_n(cn_n),
158
        .bbl(bbl),
159
        .jms(jms),
160
        .sc(sc),
161
        .dc(dc),
162
        .n0636(n0636),
163
        .sc_m22_clk2(sc_m22_clk2),
164
        .fin_fim_src_jin(fin_fim_src_jin),
165
        .inc_isz_add_sub_xch_ld(inc_isz_add_sub_xch_ld),
166
        .inc_isz_xch(inc_isz_xch),
167
        .opa0_n(opa0_n),
168
        .acc_0(acc_0),
169
        .add_0(add_0),
170
        .cy_1(cy_1),
171
        .cma(cma),
172
        .write_acc_1(write_acc_1),
173
        .write_carry_2(write_carry_2),
174
        .read_acc_3(read_acc_3),
175
        .add_group_4(add_group_4),
176
        .inc_group_5(inc_group_5),
177
        .sub_group_6(sub_group_6),
178
        .ior(ior),
179
        .iow(iow),
180
        .ral(ral),
181
        .rar(rar),
182
        .ope_n(ope_n),
183
        .daa(daa),
184
        .dcl(dcl),
185
        .inc_isz(inc_isz),
186
        .kbp(kbp),
187
        .o_ib(o_ib),
188
        .tcs(tcs),
189
        .xch(xch),
190
        .n0342(n0342),
191
        .x21_clk2(x21_clk2),
192
        .x31_clk2(x31_clk2),
193
        .com_n(com_n)
194
    );
195 2 rrpollack
 
196 6 rrpollack
    // Instantiate the ALU board
197
    alu alu_board (
198
        .sysclk(sysclk),
199
        .a12(a12),
200
        .m12(m12),
201
        .x12(x12),
202
        .poc(poc),
203
        .data(data),
204
        .acc_0(acc_0),
205
        .add_0(add_0),
206
        .cy_1(cy_1),
207
        .cma(cma),
208
        .write_acc_1(write_acc_1),
209
        .write_carry_2(write_carry_2),
210
        .read_acc_3(read_acc_3),
211
        .add_group_4(add_group_4),
212
        .inc_group_5(inc_group_5),
213
        .sub_group_6(sub_group_6),
214
        .ior(ior),
215
        .iow(iow),
216
        .ral(ral),
217
        .rar(rar),
218
        .ope_n(ope_n),
219
        .daa(daa),
220
        .dcl(dcl),
221
        .inc_isz(inc_isz),
222
        .kbp(kbp),
223
        .o_ib(o_ib),
224
        .tcs(tcs),
225
        .xch(xch),
226
        .n0342(n0342),
227
        .x21_clk2(x21_clk2),
228
        .x31_clk2(x31_clk2),
229
        .com_n(com_n),
230
        .cmram0(cmram0),
231
        .cmram1(cmram1),
232
        .cmram2(cmram2),
233
        .cmram3(cmram3),
234
        .cmrom(cmrom)
235
    );
236 2 rrpollack
 
237 6 rrpollack
    // Instantiate the Instruction Pointer board
238
    instruction_pointer ip_board (
239
        .sysclk(sysclk),
240
        .clk1(clk1),
241
        .clk2(clk2),
242
        .a12(a12),
243
        .a22(a22),
244
        .a32(a32),
245
        .m12(m12),
246
        .m22(m22),
247
        .x12(x12),
248
        .x22(x22),
249
        .x32(x32),
250
        .poc(poc),
251
        .m12_m22_clk1_m11_m12(gate),
252
        .data(data),
253
        .jcn_isz(jcn_isz),
254
        .jin_fin(jin_fin),
255
        .jun_jms(jun_jms),
256
        .cn_n(cn_n),
257
        .bbl(bbl),
258
        .jms(jms),
259
        .sc(sc),
260
        .dc(dc)
261
    );
262 2 rrpollack
 
263 6 rrpollack
    // Instantiate the Scratchpad board
264
    scratchpad sp_board (
265
        .sysclk(sysclk),
266
        .clk1(clk1),
267
        .clk2(clk2),
268
        .a12(a12),
269
        .a22(a22),
270
        .a32(a32),
271
        .m12(m12),
272
        .m22(m22),
273
        .x12(x12),
274
        .x22(x22),
275
        .x32(x32),
276
        .poc(poc),
277
        .m12_m22_clk1_m11_m12(gate),
278
        .data(data),
279
        .n0636(n0636),
280
        .sc_m22_clk2(sc_m22_clk2),
281
        .fin_fim_src_jin(fin_fim_src_jin),
282
        .inc_isz_add_sub_xch_ld(inc_isz_add_sub_xch_ld),
283
        .inc_isz_xch(inc_isz_xch),
284
        .opa0_n(opa0_n),
285
        .sc(sc),
286
        .dc(dc)
287
    );
288 2 rrpollack
 
289
endmodule

powered by: WebSVN 2.1.0

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