Line 113... |
Line 113... |
.early_idx(early_idx),
|
.early_idx(early_idx),
|
.ontime_idx(ontime_idx)
|
.ontime_idx(ontime_idx)
|
);
|
);
|
|
|
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
|
// Adder input muxes
|
|
//-----------------------------------------------------------------------------
|
|
wire [0:6] aa_entry_a, ab_entry_b;
|
|
|
|
//-----------------------------------------------------------------------------
|
// Accumulator
|
// Accumulator
|
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
wire [0:6] ac_early_out, ac_ontime_out, ac_ped_out;
|
wire [0:6] ac_early_out, ac_ontime_out, ac_ped_out;
|
|
|
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
|
// Address register
|
|
//-----------------------------------------------------------------------------
|
|
wire [0:6] ar_addr_th, ar_addr_h, ar_addr_t, ar_addr_u;
|
|
wire ar_dynamic_addr_hit, ar_addr_no_800x, ar_addr_8000, ar_addr_8001,
|
|
ar_addr_8002, ar_addr_8003, ar_addr_8002_8003, ar_invalid_addr;
|
|
|
|
//-----------------------------------------------------------------------------
|
// Distributor
|
// Distributor
|
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
wire [0:6] ds_early_out, ds_ontime_out;
|
wire [0:6] ds_early_out, ds_ontime_out;
|
wire ds_back_sig;
|
wire ds_back_sig;
|
|
|
Line 136... |
Line 148... |
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
wire [0:4] gs_out;
|
wire [0:4] gs_out;
|
wire gs_double_write, gs_no_write;
|
wire gs_double_write, gs_no_write;
|
|
|
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
|
// Opcode register
|
|
//-----------------------------------------------------------------------------
|
|
wire [0:6] op_opreg_t, op_opreg_u;
|
|
wire op_ri_addr_reg;
|
|
|
|
//-----------------------------------------------------------------------------
|
// Operator controls
|
// Operator controls
|
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
wire [0:6] oc_data_out, oc_addr_out, oc_console_out, oc_display_digit;
|
wire [0:6] oc_data_out, oc_addr_out, oc_console_out, oc_display_digit;
|
wire oc_console_to_addr;
|
wire oc_console_to_addr, oc_acc_ri_console;
|
wire [0:14] oc_gs_ram_addr;
|
wire [0:14] oc_gs_ram_addr;
|
wire oc_read_gs, oc_write_gs;
|
wire oc_read_gs, oc_write_gs;
|
wire oc_pgm_start, oc_pgm_stop, oc_err_reset, oc_err_sense_reset;
|
wire oc_pgm_start, oc_pgm_stop, oc_err_reset, oc_err_sense_reset;
|
wire oc_run_control, oc_half_or_pgm_stop, oc_ri_storage, oc_ro_storage,
|
wire oc_run_control, oc_half_or_pgm_stop, oc_ri_storage, oc_ro_storage,
|
oc_storage_control;
|
oc_storage_control;
|
Line 156... |
Line 174... |
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
wire [0:6] ps_early_out, ps_ontime_out, ps_ped_out;
|
wire [0:6] ps_early_out, ps_ontime_out, ps_ped_out;
|
wire ps_restart_sig;
|
wire ps_restart_sig;
|
|
|
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
|
// Storage select
|
|
//-----------------------------------------------------------------------------
|
|
wire [0:6] ss_selected_out;
|
|
|
|
//-----------------------------------------------------------------------------
|
// Translators
|
// Translators
|
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
wire tr_gs_write;
|
wire tr_gs_write;
|
wire [0:4] tr_gs_in;
|
wire [0:4] tr_gs_in;
|
wire [0:6] tr_select_out;
|
wire [0:6] tr_gs_out;
|
|
|
|
add_in_a aa (
|
|
.acc_early_out(ac_early_out),
|
|
.acc_ontime_out(ac_ontime_out),
|
|
.prog_step_early_out(ps_early_out),
|
|
.select_storage_out(ss_selected_out),
|
|
.addr_u(ar_addr_u),
|
|
.acc_true_add_gate(1'b0),
|
|
.acc_compl_add_gate(1'b0),
|
|
.left_shift_gate(1'b0),
|
|
.prog_step_add_gate(1'b0),
|
|
.shift_num_gate(1'b0),
|
|
.select_stor_add_gate(1'b0),
|
|
.adder_entry_a(aa_entry_a)
|
|
);
|
|
|
|
add_in_b ab (
|
|
.dist_early_out(ds_early_out),
|
|
.dist_ontime_out(ds_ontime_out),
|
|
.special_int_entry(10'd0),
|
|
.ontime_dist_add_gate_tlu(1'b0),
|
|
.dist_compl_add_gate(1'b0),
|
|
.upper_lower_check(1'b0),
|
|
.dist_blank_gate(1'b0),
|
|
.early_dist_zero_entry(1'b0),
|
|
.dist_true_add_gate(1'b0),
|
|
.adder_entry_b(ab_entry_b)
|
|
);
|
|
|
accumulator ac (
|
accumulator ac (
|
.rst(rst),
|
.rst(oc_hard_reset),
|
.ap(ap),
|
.ap(ap),
|
.bp(bp),
|
.bp(bp),
|
.dp(dp),
|
.dp(dp),
|
.dx(dx),
|
.dx(dx),
|
.d1(d1),
|
.d1(d1),
|
.d2(d2),
|
.d2(d2),
|
|
.d10(d10),
|
.dxu(dxu),
|
.dxu(dxu),
|
.d0u(d0u),
|
.d0u(d0u),
|
.wu(wu),
|
.wu(wu),
|
.wl(wl),
|
.wl(wl),
|
.adder_out(`biq_0),
|
.adder_out(`biq_0),
|
|
.console_out(oc_console_out),
|
.acc_regen_gate(1'b1),
|
.acc_regen_gate(1'b1),
|
.right_shift_gate(1'b0),
|
.right_shift_gate(1'b0),
|
.acc_ri_gate(1'b0),
|
.acc_ri_gate(1'b0),
|
|
.acc_ri_console(oc_acc_ri_console),
|
.zero_shift_count(1'b0),
|
.zero_shift_count(1'b0),
|
.man_acc_reset(oc_man_acc_reset),
|
.man_acc_reset(oc_man_acc_reset),
|
.reset_op_latch(1'b0),
|
.reset_op(1'b0),
|
.early_idx(early_idx),
|
.early_idx(early_idx),
|
.ontime_idx(ontime_idx),
|
.ontime_idx(ontime_idx),
|
.early_out(ac_early_out),
|
.early_out(ac_early_out),
|
.ontime_out(ac_ontime_out),
|
.ontime_out(ac_ontime_out),
|
.ped_out(ac_ped_out)
|
.ped_out(ac_ped_out)
|
);
|
);
|
|
|
checking ck (
|
addr_reg ar (
|
.rst(rst),
|
.rst(rst),
|
|
.ap(ap),
|
|
.bp(bp),
|
|
.dx(dx),
|
|
.d1(d1),
|
|
.d2(d2),
|
|
.d3(d3),
|
|
.d4(d4),
|
|
.d5(d5),
|
|
.d6(d6),
|
|
.d7(d7),
|
|
.d8(d8),
|
|
.d9(d9),
|
|
.w0(w0),
|
|
.w1(w1),
|
|
.w2(w2),
|
|
.w3(w3),
|
|
.w4(w4),
|
|
.w5(w5),
|
|
.w6(w6),
|
|
.w7(w7),
|
|
.w8(w8),
|
|
.w9(w9),
|
|
.s0(s0),
|
|
.s1(s1),
|
|
.s2(s2),
|
|
.s3(s3),
|
|
.s4(s4),
|
|
.error_reset(oc_err_reset),
|
|
.restart_a(1'b0),
|
|
.set_8000(oc_set_8000),
|
|
.reset_8000(oc_reset_8000),
|
|
.tlu_band_change(1'b0),
|
|
.double_write(gs_double_write),
|
|
.no_write(gs_no_write),
|
|
.bs_to_gs(1'b0),
|
|
.ri_gs(1'b0),
|
|
.ps_reg_in(ps_ontime_out),
|
|
.console_in(oc_addr_out),
|
|
.ri_addr_reg(op_ri_addr_reg),
|
|
.console_to_addr_reg(oc_console_to_addr),
|
|
.addr_th(ar_addr_th),
|
|
.addr_h(ar_addr_h),
|
|
.addr_t(ar_addr_t),
|
|
.addr_u(ar_addr_u),
|
|
.dynamic_addr_hit(ar_dynamic_addr_hit),
|
|
.addr_no_800x(ar_addr_no_800x),
|
|
.addr_8000(ar_addr_8000),
|
|
.addr_8001(ar_addr_8001),
|
|
.addr_8002(ar_addr_8002),
|
|
.addr_8003(ar_addr_8003),
|
|
.addr_8002_8003(ar_addr_8002_8003),
|
|
.invalid_addr(ar_invalid_addr)
|
|
);
|
|
|
|
checking ck (
|
|
.rst(oc_hard_reset),
|
.bp(bp),
|
.bp(bp),
|
.d1_dx(d1_dx),
|
.d1_dx(d1_dx),
|
.acc_ontime(ac_ontime_out),
|
.acc_ontime(ac_ontime_out),
|
.prog_ontime(ps_ontime_out),
|
.prog_ontime(ps_ontime_out),
|
.dist_ontime(ds_ontime_out),
|
.dist_ontime(ds_ontime_out),
|
Line 204... |
Line 314... |
.prog_check_light(ck_prog_check_light),
|
.prog_check_light(ck_prog_check_light),
|
.dist_check_light(ck_dist_check_light)
|
.dist_check_light(ck_dist_check_light)
|
);
|
);
|
|
|
distributor ds (
|
distributor ds (
|
.rst(rst),
|
.rst(oc_hard_reset),
|
.ap(ap),
|
.ap(ap),
|
.cp(cp),
|
.cp(cp),
|
.dp(dp),
|
.dp(dp),
|
.dx(dx),
|
.dx(dx),
|
.d0(d0),
|
.d0(d0),
|
.d10(d10),
|
.d10(d10),
|
.selected_storage(7'd0),
|
.selected_storage(ss_selected_out),
|
.ri_dist(1'd0),
|
.ri_dist(1'd0),
|
.acc_ontime(ac_ontime_out),
|
.acc_ontime(ac_ontime_out),
|
.start_acc_dist_ri(1'd0),
|
.start_acc_dist_ri(1'd0),
|
.end_acc_dist_ri(1'd0),
|
.end_acc_dist_ri(1'd0),
|
.acc_dist_ri(1'd0),
|
.acc_dist_ri(1'd0),
|
Line 230... |
Line 340... |
gen_store gs (
|
gen_store gs (
|
.rst(oc_hard_reset),
|
.rst(oc_hard_reset),
|
.ap(ap),
|
.ap(ap),
|
.dp(dp),
|
.dp(dp),
|
.write_gate(tr_gs_write),
|
.write_gate(tr_gs_write),
|
.addr_th(`biq_blank),
|
.addr_th(ar_addr_th),
|
.addr_h(`biq_blank),
|
.addr_h(ar_addr_h),
|
.addr_t(`biq_blank),
|
.addr_t(ar_addr_t),
|
.dynamic_addr(digit_idx),
|
.dynamic_addr(digit_idx),
|
.gs_in(tr_gs_in),
|
.gs_in(tr_gs_in),
|
.console_ram_addr(oc_gs_ram_addr),
|
.console_ram_addr(oc_gs_ram_addr),
|
.console_read_gs(oc_read_gs),
|
.console_read_gs(oc_read_gs),
|
.console_write_gs(oc_write_gs),
|
.console_write_gs(oc_write_gs),
|
Line 265... |
Line 375... |
.hp(hp),
|
.hp(hp),
|
.early_idx(early_idx),
|
.early_idx(early_idx),
|
.ontime_idx(ontime_idx),
|
.ontime_idx(ontime_idx),
|
.cmd_digit_in(cmd_digit_in),
|
.cmd_digit_in(cmd_digit_in),
|
.io_buffer_in(io_buffer_in),
|
.io_buffer_in(io_buffer_in),
|
.gs_in(tr_select_out),
|
.gs_in(tr_gs_out),
|
.acc_ontime(ac_ontime_out),
|
.acc_ontime(ac_ontime_out),
|
.dist_ontime(ds_ontime_out),
|
.dist_ontime(ds_ontime_out),
|
.prog_ontime(ps_ontime_out),
|
.prog_ontime(ps_ontime_out),
|
.command(command),
|
.command(command),
|
.data_out(oc_data_out),
|
.data_out(oc_data_out),
|
.addr_out(oc_addr_out),
|
.addr_out(oc_addr_out),
|
.console_out(oc_console_out),
|
.console_out(oc_console_out),
|
.display_digit(oc_display_digit),
|
.display_digit(oc_display_digit),
|
.console_to_addr(oc_console_to_addr),
|
.console_to_addr(oc_console_to_addr),
|
|
.acc_ri_console(oc_acc_ri_console),
|
.gs_ram_addr(oc_gs_ram_addr),
|
.gs_ram_addr(oc_gs_ram_addr),
|
.read_gs(oc_read_gs),
|
.read_gs(oc_read_gs),
|
.write_gs(oc_write_gs),
|
.write_gs(oc_write_gs),
|
.pgm_start(oc_pgm_start),
|
.pgm_start(oc_pgm_start),
|
.pgm_stop(oc_pgm_stop),
|
.pgm_stop(oc_pgm_stop),
|
Line 300... |
Line 411... |
.punch_card(punch_card),
|
.punch_card(punch_card),
|
.read_card(read_card),
|
.read_card(read_card),
|
.card_digit_ready(card_digit_ready)
|
.card_digit_ready(card_digit_ready)
|
);
|
);
|
|
|
|
op_reg op (
|
|
.rst(oc_hard_reset),
|
|
.cp(cp),
|
|
.d0(d0),
|
|
.d9(d9),
|
|
.d10(d10),
|
|
.d1_d5(d1_d5),
|
|
.d5_dx(d5_dx),
|
|
.restart_a(1'b0),
|
|
.restart_b(1'b0),
|
|
.d_alt(1'b0),
|
|
.i_alt(1'b0),
|
|
.tlu_band_change(1'b0),
|
|
.man_prog_reset(oc_man_pgm_reset),
|
|
.prog_step_ped(ps_ped_out),
|
|
.opreg_t(op_opreg_t),
|
|
.opreg_u(op_opreg_u),
|
|
.ri_addr_reg(op_ri_addr_reg)
|
|
);
|
|
|
prog_step ps (
|
prog_step ps (
|
.rst(rst),
|
.rst(oc_hard_reset),
|
.ap(ap),
|
.ap(ap),
|
.dp(dp),
|
.dp(dp),
|
.dx(dx),
|
.dx(dx),
|
.d0(d0),
|
.d0(d0),
|
.d10(d10),
|
.d10(d10),
|
Line 321... |
Line 452... |
.ontime_out(ps_ontime_out),
|
.ontime_out(ps_ontime_out),
|
.ped_out(ps_ped_out),
|
.ped_out(ps_ped_out),
|
.prog_restart_sig(ps_restart_sig)
|
.prog_restart_sig(ps_restart_sig)
|
);
|
);
|
|
|
|
store_select ss (
|
|
.d0(d0),
|
|
.d1_dx(d1_dx),
|
|
.addr_no_800x(ar_addr_no_800x),
|
|
.addr_8000(ar_addr_8000),
|
|
.addr_8001(ar_addr_8001),
|
|
.addr_8002_8003(ar_addr_8002_8003),
|
|
.addr_hot_8000(1'b0),
|
|
.acc_ontime(ac_ontime_out),
|
|
.dist_ontime(ds_ontime_out),
|
|
.gs_out(tr_gs_out),
|
|
.console_switches(oc_data_out),
|
|
.acc_plus(1'b0),
|
|
.acc_minus(1'b0),
|
|
.selected_out(ss_selected_out)
|
|
);
|
|
|
translators tr (
|
translators tr (
|
.dist_early_out(`biq_blank),
|
.dist_early_out(`biq_blank),
|
.bs_out(`biq_blank),
|
.bs_out(`biq_blank),
|
.console_out(oc_console_out),
|
.console_out(oc_console_out),
|
.ri_gs(1'b0),
|
.ri_gs(1'b0),
|
.ri_bs(1'b0),
|
.ri_bs(1'b0),
|
.ri_console(oc_write_gs),
|
.ri_console(oc_write_gs),
|
.n800x(1'b1),
|
.n800x(ar_addr_no_800x),
|
|
.console_read_gs(oc_read_gs),
|
.gs_out(gs_out),
|
.gs_out(gs_out),
|
.gs_write(tr_gs_write),
|
.gs_write(tr_gs_write),
|
.gs_in(tr_gs_in),
|
.gs_in(tr_gs_in),
|
.select_out(tr_select_out)
|
.gs_biq_out(tr_gs_out)
|
);
|
);
|
|
|
endmodule
|
endmodule
|
No newline at end of file
|
No newline at end of file
|