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

Subversion Repositories i650

[/] [i650/] [trunk/] [rtl/] [toplev.v] - Blame information for rev 23

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

Line No. Rev Author Line
1 12 eightycc
`timescale 1ns / 1ps
2
//////////////////////////////////////////////////////////////////////////////////
3
// IBM 650 Reconstruction in Verilog (i650)
4
// 
5
// This file is part of the IBM 650 Reconstruction in Verilog (i650) project
6
// http:////www.opencores.org/project,i650
7
//
8
// Description: Top level.
9
// 
10 23 eightycc
// Additional Comments: 
11 12 eightycc
//
12
// Copyright (c) 2015 Robert Abeles
13
//
14
// This source file is free software; you can redistribute it
15
// and/or modify it under the terms of the GNU Lesser General
16
// Public License as published by the Free Software Foundation;
17
// either version 2.1 of the License, or (at your option) any
18
// later version.
19
//
20
// This source is distributed in the hope that it will be
21
// useful, but WITHOUT ANY WARRANTY; without even the implied
22
// warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
23
// PURPOSE.  See the GNU Lesser General Public License for more
24
// details.
25
//
26
// You should have received a copy of the GNU Lesser General
27
// Public License along with this source; if not, download it
28
// from http://www.opencores.org/lgpl.shtml
29
//////////////////////////////////////////////////////////////////////////////////
30
`include "defines.v"
31
 
32
module toplev (
33
      input clk,
34
      input rst,
35
 
36 13 eightycc
      input [0:6] cmd_digit_in, io_buffer_in,
37
      input [0:5] command,
38 12 eightycc
 
39 15 eightycc
      output [0:6] cmd_digit_out, display_digit,
40 13 eightycc
      output busy, digit_ready, punch_card, read_card, card_digit_ready,
41 15 eightycc
      output digit_sync, word_upper,
42
      output [0:3] digit_ctr
43 12 eightycc
  );
44
 
45 13 eightycc
   wire ap, bp, cp, dp;
46
   wire dx, d0, d1, d2, d3, d4, d5, d6, d7, d8, d9, d10,
47
        d1_d5, d5_dx, d5_d10, d1_dx, d5_d9, d10_d1_d5,
48
        dxl, dxu, d0l, d0u, d1l, d1u, d2l, d10u;
49
   wire w0, w1, w2, w3, w4, w5, w6, w7, w8, w9,
50
        wl, wu, ewl;
51
   wire s0, s1, s2, s3, s4, hp;
52
   wire [0:9] digit_idx;
53
   wire [0:3] early_idx, ontime_idx;
54
 
55 15 eightycc
   assign digit_sync = bp;
56
   assign digit_ctr = ontime_idx;
57
   assign word_upper = wu;
58 13 eightycc
 
59
   timing tm (
60 12 eightycc
    .clk(clk),
61
    .rst(rst),
62
    .ap(ap),
63
    .bp(bp),
64
    .cp(cp),
65
    .dp(dp),
66
    .dx(dx),
67
    .d0(d0),
68
    .d1(d1),
69
    .d2(d2),
70
    .d3(d3),
71
    .d4(d4),
72
    .d5(d5),
73
    .d6(d6),
74
    .d7(d7),
75
    .d8(d8),
76
    .d9(d9),
77
    .d10(d10),
78
    .d1_d5(d1_d5),
79
    .d5_dx(d5_dx),
80
    .d5_d10(d5_d10),
81
    .d1_dx(d1_dx),
82
    .d5_d9(d5_d9),
83
    .d10_d1_d5(d10_d1_d5),
84
    .dxl(dxl),
85
    .dxu(dxu),
86
    .d0l(d0l),
87
    .d0u(d0u),
88
    .d1l(d1l),
89
    .d1u(d1u),
90
    .d2l(d2l),
91
    .d10u(d10u),
92
    .w0(w0),
93
    .w1(w1),
94
    .w2(w2),
95
    .w3(w3),
96
    .w4(w4),
97
    .w5(w5),
98
    .w6(w6),
99
    .w7(w7),
100
    .w8(w8),
101
    .w9(w9),
102
    .wl(wl),
103
    .wu(wu),
104
    .ewl(ewl),
105
    .s0(s0),
106
    .s1(s1),
107
    .s2(s2),
108
    .s3(s3),
109
    .s4(s4),
110
    .hp(hp),
111
    .digit_idx(digit_idx),
112
    .early_idx(early_idx),
113
    .ontime_idx(ontime_idx)
114
   );
115 13 eightycc
 
116 12 eightycc
   //-----------------------------------------------------------------------------
117 21 eightycc
   // Adder input muxes
118
   //-----------------------------------------------------------------------------
119
   wire [0:6] aa_entry_a, ab_entry_b;
120
 
121
   //-----------------------------------------------------------------------------
122 15 eightycc
   // Accumulator
123
   //-----------------------------------------------------------------------------
124
   wire [0:6] ac_early_out, ac_ontime_out, ac_ped_out;
125 22 eightycc
 
126
   //-----------------------------------------------------------------------------
127
   // Adder
128
   //-----------------------------------------------------------------------------
129
   wire [0:6] ad_adder_out;
130
   wire ad_carry_test, ad_no_carry_test, ad_d0l_carry_sig, ad_overflow_stop,
131
        ad_overflow_light, ad_overflow_sense_sig;
132 20 eightycc
 
133
   //-----------------------------------------------------------------------------
134 21 eightycc
   // Address register
135
   //-----------------------------------------------------------------------------
136
   wire [0:6] ar_addr_th, ar_addr_h, ar_addr_t, ar_addr_u;
137
   wire ar_dynamic_addr_hit, ar_addr_no_800x, ar_addr_8000, ar_addr_8001,
138
        ar_addr_8002, ar_addr_8003, ar_addr_8002_8003, ar_invalid_addr;
139
 
140
   //-----------------------------------------------------------------------------
141 23 eightycc
   // Accumulator and TLU validity checking
142
   //-----------------------------------------------------------------------------
143
   wire ca_acc_zero, ca_acc_no_zero, ca_check_latch;
144
 
145
   //-----------------------------------------------------------------------------
146
   // Register validity checking
147
   //-----------------------------------------------------------------------------
148
   wire ck_error_stop, ck_acc_check_light, ck_prog_check_light,
149
        ck_dist_check_light;
150
 
151
   //-----------------------------------------------------------------------------
152
   // Decode control
153
   //-----------------------------------------------------------------------------
154
   wire dc_all_restarts, dc_use_d_for_i, dc_turn_on_single_intlk,
155
        dc_turn_on_op_intlk, dc_stop_code, dc_code_69, dc_tlu_sig, dc_mult_sig,
156
        dc_divide_sig, dc_reset_sig, dc_no_reset_sig, dc_abs_sig, dc_no_abs_sig,
157
        dc_lower_sig, dc_upper_sig, dc_add_sig, dc_subt_sig, dc_right_shift_sig,
158
        dc_left_shift_sig, dc_half_correct_sig, dc_shift_count_sig,
159
        dc_overflow_sense_latch;
160
 
161
   //-----------------------------------------------------------------------------
162 20 eightycc
   // Distributor
163
   //-----------------------------------------------------------------------------
164
   wire [0:6] ds_early_out, ds_ontime_out;
165
   wire ds_back_sig;
166 15 eightycc
 
167
   //-----------------------------------------------------------------------------
168 23 eightycc
   // Error stop
169 18 eightycc
   //-----------------------------------------------------------------------------
170 23 eightycc
   wire es_err_sense_light, es_err_stop_ed0u, es_err_sense_restart,
171
        es_restart_reset;
172 18 eightycc
 
173
   //-----------------------------------------------------------------------------
174 12 eightycc
   // General storage
175
   //-----------------------------------------------------------------------------
176 13 eightycc
   wire [0:4] gs_out;
177
   wire gs_double_write, gs_no_write;
178
 
179 12 eightycc
   //-----------------------------------------------------------------------------
180 21 eightycc
   // Opcode register
181
   //-----------------------------------------------------------------------------
182
   wire [0:6] op_opreg_t, op_opreg_u;
183
   wire op_ri_addr_reg;
184
 
185
   //-----------------------------------------------------------------------------
186 12 eightycc
   // Operator controls
187
   //-----------------------------------------------------------------------------
188 15 eightycc
   wire [0:6] oc_data_out, oc_addr_out, oc_console_out, oc_display_digit;
189 21 eightycc
   wire oc_console_to_addr, oc_acc_ri_console;
190 13 eightycc
   wire [0:14] oc_gs_ram_addr;
191
   wire oc_read_gs, oc_write_gs;
192
   wire oc_pgm_start, oc_pgm_stop, oc_err_reset, oc_err_sense_reset;
193
   wire oc_run_control, oc_half_or_pgm_stop, oc_ri_storage, oc_ro_storage,
194 23 eightycc
        oc_storage_control, oc_err_restart_sw, oc_ovflw_stop_sw,
195
        oc_ovflw_sense_sw;
196 13 eightycc
   wire oc_man_pgm_reset, oc_man_acc_reset, oc_set_8000, oc_reset_8000,
197 12 eightycc
        oc_hard_reset;
198 22 eightycc
   wire oc_restart_reset_busy;
199 15 eightycc
   assign display_digit = oc_display_digit;
200
 
201 12 eightycc
   //-----------------------------------------------------------------------------
202 20 eightycc
   // Program step register
203
   //-----------------------------------------------------------------------------
204
   wire [0:6] ps_early_out, ps_ontime_out, ps_ped_out;
205
   wire ps_restart_sig;
206 21 eightycc
 
207
   //-----------------------------------------------------------------------------
208
   // Storage select
209
   //-----------------------------------------------------------------------------
210
   wire [0:6] ss_selected_out;
211 20 eightycc
 
212
   //-----------------------------------------------------------------------------
213 12 eightycc
   // Translators
214
   //-----------------------------------------------------------------------------
215 13 eightycc
   wire tr_gs_write;
216
   wire [0:4] tr_gs_in;
217 21 eightycc
   wire [0:6] tr_gs_out;
218 23 eightycc
 
219
   //-----------------------------------------------------------------------------
220
   // Accumulator zero check
221
   //-----------------------------------------------------------------------------
222
   wire zc_acc_no_zero_test, zc_acc_zero_test;
223 12 eightycc
 
224 21 eightycc
   add_in_a aa (
225
    .acc_early_out(ac_early_out),
226
    .acc_ontime_out(ac_ontime_out),
227
    .prog_step_early_out(ps_early_out),
228
    .select_storage_out(ss_selected_out),
229
    .addr_u(ar_addr_u),
230 23 eightycc
    .acc_true_add_gate(1'b0),                //
231
    .acc_compl_add_gate(1'b0),               // 
232
    .left_shift_gate(1'b0),                  // 
233
    .prog_step_add_gate(1'b0),               // 
234
    .shift_num_gate(1'b0),                   // 
235
    .select_stor_add_gate(1'b0),             // 
236 21 eightycc
    .adder_entry_a(aa_entry_a)
237
    );
238
 
239
   add_in_b ab (
240
    .dist_early_out(ds_early_out),
241
    .dist_ontime_out(ds_ontime_out),
242 23 eightycc
    .special_int_entry(10'd0),               // 
243
    .ontime_dist_add_gate_tlu(1'b0),         // 
244
    .dist_compl_add_gate(1'b0),              // 
245
    .upper_lower_check(1'b0),                // 
246
    .dist_blank_gate(1'b0),                  // 
247
    .early_dist_zero_entry(1'b0),            // 
248
    .dist_true_add_gate(1'b0),               // 
249 21 eightycc
    .adder_entry_b(ab_entry_b)
250
    );
251
 
252 15 eightycc
   accumulator ac (
253 21 eightycc
    .rst(oc_hard_reset),
254 15 eightycc
    .ap(ap),
255
    .bp(bp),
256 18 eightycc
    .dp(dp),
257
    .dx(dx),
258 15 eightycc
    .d1(d1),
259
    .d2(d2),
260 21 eightycc
    .d10(d10),
261 15 eightycc
    .dxu(dxu),
262
    .d0u(d0u),
263
    .wu(wu),
264
    .wl(wl),
265 22 eightycc
    .adder_out(ad_adder_out),
266 21 eightycc
    .console_out(oc_console_out),
267 23 eightycc
    .acc_regen_gate(1'b1),                   // 
268
    .right_shift_gate(1'b0),                 // 
269
    .acc_ri_gate(1'b0),                      //
270 21 eightycc
    .acc_ri_console(oc_acc_ri_console),
271 23 eightycc
    .zero_shift_count(1'b0),                 // 
272 15 eightycc
    .man_acc_reset(oc_man_acc_reset),
273 23 eightycc
    .reset_op(1'b0),                         //
274 15 eightycc
    .early_idx(early_idx),
275
    .ontime_idx(ontime_idx),
276
    .early_out(ac_early_out),
277
    .ontime_out(ac_ontime_out),
278
    .ped_out(ac_ped_out)
279
    );
280
 
281 22 eightycc
   adder ad (
282 23 eightycc
    .rst(oc_hard_reset),
283 22 eightycc
    .ap(ap),
284
    .bp(bp),
285
    .dp(dp),
286
    .dxu(dxu),
287
    .dx(dx),
288
    .d0u(d0u),
289
    .d1(d1),
290
    .d1l(d1l),
291
    .d10(d10),
292
    .d10u(d10u),
293
    .wl(wl),
294
    .entry_a(aa_entry_a),
295
    .entry_b(ab_entry_b),
296 23 eightycc
    .tlu_on(1'b0),                           // 
297
    .left_shift_off(1'b1),                   // 
298
    .left_shift_on(1'b0),                    // 
299
    .no_carry_insert(1'b0),                  // 
300
    .no_carry_blank(1'b0),                   // 
301
    .carry_insert(1'b0),                     // 
302
    .carry_blank(1'b0),                      // 
303
    .zero_insert(1'b0),                      // 
304 22 eightycc
    .error_reset(oc_err_reset),
305 23 eightycc
    .quotient_digit_on(1'b0),                // 
306
    .overflow_stop_sw(oc_ovflw_stop_sw),
307
    .overflow_sense_sw(oc_ovflw_sense_sw),
308
    .mult_div_off(1'b0),                     // 
309
    .dist_true_add_gate(1'b0),               // 
310
    .acc_true_add_latch(1'b0),               // 
311
    .shift_overflow(1'b0),                   // 
312 22 eightycc
    .adder_out(ad_adder_out),
313
    .carry_test(ad_carry_test),
314
    .no_carry_test(ad_no_carry_test),
315
    .d0l_carry_sig(ad_d0l_carry_sig),
316
    .overflow_stop(ad_overflow_stop),
317
    .overflow_light(ad_overflow_light),
318
    .overflow_sense_sig(ad_overflow_sense_sig)
319
    );
320
 
321 21 eightycc
   addr_reg ar (
322 23 eightycc
    .rst(oc_hard_reset),
323 21 eightycc
    .ap(ap),
324 18 eightycc
    .bp(bp),
325 21 eightycc
    .dx(dx),
326
    .d1(d1),
327
    .d2(d2),
328
    .d3(d3),
329
    .d4(d4),
330
    .d5(d5),
331
    .d6(d6),
332
    .d7(d7),
333
    .d8(d8),
334
    .d9(d9),
335
    .w0(w0),
336
    .w1(w1),
337
    .w2(w2),
338
    .w3(w3),
339
    .w4(w4),
340
    .w5(w5),
341
    .w6(w6),
342
    .w7(w7),
343
    .w8(w8),
344
    .w9(w9),
345
    .s0(s0),
346
    .s1(s1),
347
    .s2(s2),
348
    .s3(s3),
349
    .s4(s4),
350
    .error_reset(oc_err_reset),
351 23 eightycc
    .restart_a(1'b0),                        //
352 21 eightycc
    .set_8000(oc_set_8000),
353
    .reset_8000(oc_reset_8000),
354 23 eightycc
    .tlu_band_change(1'b0),                  // 
355 21 eightycc
    .double_write(gs_double_write),
356
    .no_write(gs_no_write),
357 23 eightycc
    .bs_to_gs(1'b0),                         // 
358
    .ri_gs(1'b0),                            // 
359 21 eightycc
    .ps_reg_in(ps_ontime_out),
360
    .console_in(oc_addr_out),
361
    .ri_addr_reg(op_ri_addr_reg),
362
    .console_to_addr_reg(oc_console_to_addr),
363
    .addr_th(ar_addr_th),
364
    .addr_h(ar_addr_h),
365
    .addr_t(ar_addr_t),
366
    .addr_u(ar_addr_u),
367
    .dynamic_addr_hit(ar_dynamic_addr_hit),
368
    .addr_no_800x(ar_addr_no_800x),
369
    .addr_8000(ar_addr_8000),
370
    .addr_8001(ar_addr_8001),
371
    .addr_8002(ar_addr_8002),
372
    .addr_8003(ar_addr_8003),
373
    .addr_8002_8003(ar_addr_8002_8003),
374
    .invalid_addr(ar_invalid_addr)
375
    );
376
 
377 23 eightycc
   check_acc_tlu ca (
378
    .rst(oc_hard_reset),
379
    .ap(ap),
380
    .bp(bp),
381
    .d0(d0),
382
    .d2(d2),
383
    .d1_dx(d1_dx),
384
    .acc_ped_out(ac_ped_out),
385
    .sel_store_add_gate(1'b0),              // 
386
    .err_reset(oc_err_reset),
387
    .carry_test_latch(ad_carry_test),
388
    .no_carry_test_latch(ad_no_carry_test),
389
    .acc_zero(ca_acc_zero),
390
    .acc_no_zero(ca_acc_no_zero),
391
    .check_latch(ca_check_latch)
392
    );
393
 
394 21 eightycc
   checking ck (
395
    .rst(oc_hard_reset),
396
    .bp(bp),
397 18 eightycc
    .d1_dx(d1_dx),
398
    .acc_ontime(ac_ontime_out),
399 20 eightycc
    .prog_ontime(ps_ontime_out),
400
    .dist_ontime(ds_ontime_out),
401 18 eightycc
    .error_reset(oc_err_reset),
402 23 eightycc
    .tlu_or_zero_check(ca_check_latch),
403 18 eightycc
    .error_stop(ck_error_stop),
404
    .acc_check_light(ck_acc_check_light),
405
    .prog_check_light(ck_prog_check_light),
406
    .dist_check_light(ck_dist_check_light)
407
    );
408 23 eightycc
decode_ctl dc (
409
    .rst(oc_hard_reset),
410
    .ap(ap),
411
    .bp(bp),
412
    .cp(cp),
413
    .dx(dx),
414
    .d0(d0),
415
    .d1(d1),
416
    .d2(d2),
417
    .d3(d3),
418
    .d4(d4),
419
    .d5(d5),
420
    .d6(d6),
421
    .d7(d7),
422
    .d8(d8),
423
    .d9(d9),
424
    .d10(d10),
425
    .d5_d10(d5_d10),
426
    .d10_d1_d5(d10_d1_d5),
427
    .dxl(dxl),
428
    .dxu(dxu),
429
    .d10u(d10u),
430
    .opreg_t(op_opreg_t),
431
    .opreg_u(op_opreg_u),
432
    .addr_u(ar_addr_u),
433
    .ontime_dist(ds_ontime_out),
434
    .man_ro_storage(1'b0),                   //
435
    .dist_back_sig(ds_back_sig),
436
    .d_control(1'b0),                        //
437
    .ena_arith_codes(1'b0),                  // 
438
    .pgm_stop_sw(pgm_stop_sw),               // ***
439
    .acc_zero_test(zc_acc_zero_test),
440
    .acc_no_zero_test(zc_acc_no_zero_test),
441
    .acc_plus_test(1'b0),                    // 
442
    .acc_minus_test(1'b0),                   // 
443
    .single_intlk(1'b0),                     //
444
    .arith_restart(1'b0),                    // 
445
    .overflow_sense_sig(ad_overflow_sense_sig),
446
    .man_acc_reset(oc_man_acc_reset),
447
    .all_restarts(dc_all_restarts),
448
    .use_d_for_i(dc_use_d_for_i),
449
    .turn_on_single_intlk(dc_turn_on_single_intlk),
450
    .turn_on_op_intlk(dc_turn_on_op_intlk),
451
    .stop_code(dc_stop_code),
452
    .code_69(dc_code_69),
453
    .tlu_sig(dc_tlu_sig),
454
    .mult_sig(dc_mult_sig),
455
    .divide_sig(dc_divide_sig),
456
    .reset_sig(dc_reset_sig),
457
    .no_reset_sig(dc_no_reset_sig),
458
    .abs_sig(dc_abs_sig),
459
    .no_abs_sig(dc_no_abs_sig),
460
    .lower_sig(dc_lower_sig),
461
    .upper_sig(dc_upper_sig),
462
    .add_sig(dc_add_sig),
463
    .subt_sig(dc_subt_sig),
464
    .right_shift_sig(dc_right_shift_sig),
465
    .left_shift_sig(dc_left_shift_sig),
466
    .half_correct_sig(dc_half_correct_sig),
467
    .shift_count_sig(dc_shift_count_sig),
468
    .overflow_sense_latch(dc_overflow_sense_latch)
469
    );
470 18 eightycc
 
471 20 eightycc
   distributor ds (
472 21 eightycc
    .rst(oc_hard_reset),
473 20 eightycc
    .ap(ap),
474
    .cp(cp),
475
    .dp(dp),
476
    .dx(dx),
477
    .d0(d0),
478
    .d10(d10),
479 21 eightycc
    .selected_storage(ss_selected_out),
480 23 eightycc
    .ri_dist(1'd0),                          // 
481 20 eightycc
    .acc_ontime(ac_ontime_out),
482 23 eightycc
    .start_acc_dist_ri(1'd0),                // 
483 20 eightycc
    .end_acc_dist_ri(1'd0),
484 23 eightycc
    .acc_dist_ri(1'd0),                      // 
485 20 eightycc
    .man_acc_reset(oc_man_acc_reset),
486
    .early_idx(early_idx),
487
    .ontime_idx(ontime_idx),
488
    .ontime_out(ds_ontime_out),
489
    .early_out(ds_early_out),
490
    .dist_back_sig(ds_back_sig)
491
    );
492
 
493 23 eightycc
   error_stop es (
494
    .rst(oc_hard_reset),
495
    .ap(ap),
496
    .dp(dp),
497
    .dxu(dxu),
498
    .d10(d10),
499
    .wl(wl),
500
    .err_restart_sw(oc_err_restart_sw),
501
    .err_reset(oc_err_reset),
502
    .err_sense_reset(oc_err_sense_reset),
503
    .clock_err_sig(1'b0),                    // 
504
    .err_stop_sig(ck_error_stop),
505
    .restart_reset_busy(oc_restart_reset_busy),
506
    .err_sense_light(es_err_sense_light),
507
    .err_stop_ed0u(es_err_stop_ed0u),
508
    .err_sense_restart(es_err_sense_restart),
509
    .restart_reset(es_restart_reset)
510
    );
511
 
512 13 eightycc
   gen_store gs (
513 12 eightycc
    .rst(oc_hard_reset),
514
    .ap(ap),
515
    .dp(dp),
516
    .write_gate(tr_gs_write),
517 21 eightycc
    .addr_th(ar_addr_th),
518
    .addr_h(ar_addr_h),
519
    .addr_t(ar_addr_t),
520 12 eightycc
    .dynamic_addr(digit_idx),
521
    .gs_in(tr_gs_in),
522
    .console_ram_addr(oc_gs_ram_addr),
523
    .console_read_gs(oc_read_gs),
524 13 eightycc
    .console_write_gs(oc_write_gs),
525 12 eightycc
    .gs_out(gs_out),
526
    .double_write(gs_double_write),
527
    .no_write(gs_no_write)
528
    );
529
 
530 13 eightycc
   operator_ctl oc (
531 12 eightycc
    .rst(rst),
532
    .clk(clk),
533
    .ap(ap),
534
    .dp(dp),
535
    .dx(dx),
536
    .d0(d0),
537
    .d1(d1),
538
    .d2(d2),
539
    .d3(d3),
540
    .d4(d4),
541
    .d5(d5),
542 16 eightycc
    .d6(d6),
543
    .d9(d9),
544 12 eightycc
    .d10(d10),
545 16 eightycc
    .wu(wu),
546
    .wl(wl),
547 12 eightycc
    .hp(hp),
548
    .early_idx(early_idx),
549
    .ontime_idx(ontime_idx),
550
    .cmd_digit_in(cmd_digit_in),
551
    .io_buffer_in(io_buffer_in),
552 21 eightycc
    .gs_in(tr_gs_out),
553 15 eightycc
    .acc_ontime(ac_ontime_out),
554 20 eightycc
    .dist_ontime(ds_ontime_out),
555
    .prog_ontime(ps_ontime_out),
556 12 eightycc
    .command(command),
557 23 eightycc
    .restart_reset(es_restart_reset),
558 12 eightycc
    .data_out(oc_data_out),
559
    .addr_out(oc_addr_out),
560
    .console_out(oc_console_out),
561 15 eightycc
    .display_digit(oc_display_digit),
562 21 eightycc
    .console_to_addr(oc_console_to_addr),
563
    .acc_ri_console(oc_acc_ri_console),
564 12 eightycc
    .gs_ram_addr(oc_gs_ram_addr),
565 13 eightycc
    .read_gs(oc_read_gs),
566
    .write_gs(oc_write_gs),
567 12 eightycc
    .pgm_start(oc_pgm_start),
568
    .pgm_stop(oc_pgm_stop),
569
    .err_reset(oc_err_reset),
570
    .err_sense_reset(oc_err_sense_reset),
571
    .run_control(oc_run_control),
572
    .half_or_pgm_stop(oc_half_or_pgm_stop),
573
    .ri_storage(oc_ri_storage),
574
    .ro_storage(oc_ro_storage),
575
    .storage_control(oc_storage_control),
576 23 eightycc
    .err_restart_sw(oc_err_restart_sw),
577
    .ovflw_stop_sw(oc_ovflw_stop_sw),
578
    .ovflw_sense_sw(oc_ovflw_sense_sw),
579 12 eightycc
    .man_pgm_reset(oc_man_pgm_reset),
580
    .man_acc_reset(oc_man_acc_reset),
581
    .set_8000(oc_set_8000),
582
    .reset_8000(oc_reset_8000),
583
    .hard_reset(oc_hard_reset),
584
    .cmd_digit_out(cmd_digit_out),
585
    .busy(busy),
586 22 eightycc
    .digit_ready(digit_ready),
587
    .restart_reset_busy(oc_restart_reset_busy),
588 12 eightycc
    .punch_card(punch_card),
589
    .read_card(read_card),
590
    .card_digit_ready(card_digit_ready)
591
    );
592
 
593 21 eightycc
   op_reg op (
594
    .rst(oc_hard_reset),
595
    .cp(cp),
596
    .d0(d0),
597
    .d9(d9),
598
    .d10(d10),
599
    .d1_d5(d1_d5),
600
    .d5_dx(d5_dx),
601 23 eightycc
    .restart_a(1'b0),                        // 
602
    .restart_b(1'b0),                        // 
603
    .d_alt(1'b0),                            // 
604
    .i_alt(1'b0),                            // 
605
    .tlu_band_change(1'b0),                  // 
606 21 eightycc
    .man_prog_reset(oc_man_pgm_reset),
607
    .prog_step_ped(ps_ped_out),
608
    .opreg_t(op_opreg_t),
609
    .opreg_u(op_opreg_u),
610
    .ri_addr_reg(op_ri_addr_reg)
611
    );
612
 
613 20 eightycc
   prog_step ps (
614 21 eightycc
    .rst(oc_hard_reset),
615 20 eightycc
    .ap(ap),
616
    .dp(dp),
617
    .dx(dx),
618
    .d0(d0),
619
    .d10(d10),
620
    .early_idx(early_idx),
621
    .ontime_idx(ontime_idx),
622
    .man_prog_reset(oc_man_pgm_reset),
623 23 eightycc
    .rips(1'b0),                             // 
624
    .adder_out(ad_adder_out),
625
    .sel_store_out(ss_selected_out),
626
    .prog_ped_regen(1'b1),                   // 
627
    .prog_add(1'b0),                         // 
628 20 eightycc
    .early_out(ps_early_out),
629
    .ontime_out(ps_ontime_out),
630
    .ped_out(ps_ped_out),
631
    .prog_restart_sig(ps_restart_sig)
632
    );
633
 
634 21 eightycc
   store_select ss (
635
    .d0(d0),
636
    .d1_dx(d1_dx),
637
    .addr_no_800x(ar_addr_no_800x),
638
    .addr_8000(ar_addr_8000),
639
    .addr_8001(ar_addr_8001),
640
    .addr_8002_8003(ar_addr_8002_8003),
641 23 eightycc
    .addr_hot_8000(1'b0),                    // 
642 21 eightycc
    .acc_ontime(ac_ontime_out),
643
    .dist_ontime(ds_ontime_out),
644
    .gs_out(tr_gs_out),
645
    .console_switches(oc_data_out),
646 23 eightycc
    .acc_plus(1'b0),                         // 
647
    .acc_minus(1'b0),                        // 
648 21 eightycc
    .selected_out(ss_selected_out)
649
    );
650
 
651 13 eightycc
    translators tr (
652 12 eightycc
    .dist_early_out(`biq_blank),
653
    .bs_out(`biq_blank),
654
    .console_out(oc_console_out),
655 23 eightycc
    .ri_gs(1'b0),                            // 
656
    .ri_bs(1'b0),                            //
657 12 eightycc
    .ri_console(oc_write_gs),
658 21 eightycc
    .n800x(ar_addr_no_800x),
659
    .console_read_gs(oc_read_gs),
660 12 eightycc
    .gs_out(gs_out),
661
    .gs_write(tr_gs_write),
662
    .gs_in(tr_gs_in),
663 21 eightycc
    .gs_biq_out(tr_gs_out)
664 12 eightycc
    );
665 23 eightycc
 
666
   zero_check zc (
667
    .rst(oc_hard_reset),
668
    .bp(bp),
669
    .d0(d0),
670
    .d1_dx(d1_dx),
671
    .wu(wu),
672
    .acc_no_zero(ca_acc_no_zero),
673
    .acc_no_zero_test(zc_acc_no_zero_test),
674
    .acc_zero_test(zc_acc_zero_test)
675
    );
676 12 eightycc
 
677
endmodule

powered by: WebSVN 2.1.0

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