Line 136... |
Line 136... |
wire [0:6] ar_addr_th, ar_addr_h, ar_addr_t, ar_addr_u;
|
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,
|
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;
|
ar_addr_8002, ar_addr_8003, ar_addr_8002_8003, ar_invalid_addr;
|
|
|
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
|
// Arithmetic control
|
|
//-----------------------------------------------------------------------------
|
|
wire at_end_of_operation, at_arith_restart_d5, at_zero_insert, at_carry_blank,
|
|
at_no_carry_blank, at_carry_insert, at_no_carry_insert, at_compl_adj,
|
|
at_divide, at_multiply, at_acc_true_add, at_half_correct, at_hc_add_5;
|
|
|
|
//-----------------------------------------------------------------------------
|
// Accumulator and TLU validity checking
|
// Accumulator and TLU validity checking
|
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
wire ca_acc_zero, ca_acc_no_zero, ca_check_latch;
|
wire ca_acc_zero, ca_acc_no_zero, ca_check_latch;
|
|
|
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
Line 245... |
Line 252... |
.acc_early_out(ac_early_out),
|
.acc_early_out(ac_early_out),
|
.acc_ontime_out(ac_ontime_out),
|
.acc_ontime_out(ac_ontime_out),
|
.prog_step_early_out(ps_early_out),
|
.prog_step_early_out(ps_early_out),
|
.select_storage_out(ss_selected_out),
|
.select_storage_out(ss_selected_out),
|
.addr_u(ar_addr_u),
|
.addr_u(ar_addr_u),
|
.acc_true_add_gate(1'b0), // 85o
|
.acc_true_add_gate(at_acc_true_add),
|
.acc_compl_add_gate(1'b0), // 85r
|
.acc_compl_add_gate(1'b0), // 85r
|
.left_shift_gate(1'b0), // 85b
|
.left_shift_gate(1'b0), // 85b
|
.prog_step_add_gate(tl_prog_add),
|
.prog_step_add_gate(tl_prog_add),
|
.shift_num_gate(1'b0), // 85a
|
.shift_num_gate(1'b0), // 85a
|
.select_stor_add_gate(tl_sel_stor_add_gate),
|
.select_stor_add_gate(tl_sel_stor_add_gate),
|
Line 314... |
Line 321... |
.entry_a(aa_entry_a),
|
.entry_a(aa_entry_a),
|
.entry_b(ab_entry_b),
|
.entry_b(ab_entry_b),
|
.tlu_on(tl_tlu_on),
|
.tlu_on(tl_tlu_on),
|
.left_shift_off(1'b1), // 85d
|
.left_shift_off(1'b1), // 85d
|
.left_shift_on(1'b0), // 85d
|
.left_shift_on(1'b0), // 85d
|
.no_carry_insert(1'b0), // 85e
|
.no_carry_insert(at_no_carry_insert),
|
.no_carry_blank(1'b0), // 85e
|
.no_carry_blank(at_no_carry_blank),
|
.carry_insert(1'b0), // 85e
|
.carry_insert(at_carry_insert),
|
.carry_blank(1'b0), // 85e
|
.carry_blank(at_carry_blank),
|
.zero_insert(1'b0), // 85j
|
.zero_insert(at_zero_insert),
|
.error_reset(oc_err_reset),
|
.error_reset(oc_err_reset),
|
.quotient_digit_on(1'b0), // 85p
|
.quotient_digit_on(1'b0), // 85p
|
.overflow_stop_sw(oc_ovflw_stop_sw),
|
.overflow_stop_sw(oc_ovflw_stop_sw),
|
.overflow_sense_sw(oc_ovflw_sense_sw),
|
.overflow_sense_sw(oc_ovflw_sense_sw),
|
.mult_div_off(1'b0), // 85k
|
.mult_div_off(1'b0), // 85k
|
.dist_true_add_gate(1'b0), // 85r
|
.dist_true_add_gate(1'b0), // 85r
|
.acc_true_add_latch(1'b0), // 85r
|
.acc_true_add_latch(at_acc_true_add),
|
.shift_overflow(1'b0), // 85b
|
.shift_overflow(1'b0), // 85b
|
.adder_out(ad_adder_out),
|
.adder_out(ad_adder_out),
|
.carry_test(ad_carry_test),
|
.carry_test(ad_carry_test),
|
.no_carry_test(ad_no_carry_test),
|
.no_carry_test(ad_no_carry_test),
|
.d0l_carry_sig(ad_d0l_carry_sig),
|
.d0l_carry_sig(ad_d0l_carry_sig),
|
Line 392... |
Line 399... |
.addr_8003(ar_addr_8003),
|
.addr_8003(ar_addr_8003),
|
.addr_8002_8003(ar_addr_8002_8003),
|
.addr_8002_8003(ar_addr_8002_8003),
|
.invalid_addr(ar_invalid_addr)
|
.invalid_addr(ar_invalid_addr)
|
);
|
);
|
|
|
|
arith_ctl at (
|
|
.rst(rst),
|
|
.ap(ap),
|
|
.bp(bp),
|
|
.cp(cp),
|
|
.dx(dx),
|
|
.d0(d0),
|
|
.d5(d5),
|
|
.d9(d9),
|
|
.dxl(dxl),
|
|
.d0l(d0l),
|
|
.d1l(d1l),
|
|
.wu(wu),
|
|
.adder_out(ad_adder_out),
|
|
.man_acc_reset(ac_man_acc_reset),
|
|
.overflow_stop(ad_overflow_stop),
|
|
.prog_add_d0(tl_prog_add_d0),
|
|
.half_correct_sig(dc_half_correct_sig),
|
|
.end_of_operation(at_end_of_operation),
|
|
.arith_restart_d5(at_arith_restart_d5),
|
|
.zero_insert(at_zero_insert),
|
|
.carry_blank(at_carry_blank),
|
|
.no_carry_blank(at_no_carry_blank),
|
|
.carry_insert(at_carry_insert),
|
|
.no_carry_insert(at_no_carry_insert),
|
|
.compl_adj(at_compl_adj),
|
|
.divide(at_divide),
|
|
.multiply(at_multiply),
|
|
.acc_true_add(at_acc_true_add),
|
|
.half_correct(at_half_correct),
|
|
.hc_add_5(at_hc_add_5)
|
|
);
|
|
|
check_acc_tlu ca (
|
check_acc_tlu ca (
|
.rst(oc_hard_reset),
|
.rst(oc_hard_reset),
|
.ap(ap),
|
.ap(ap),
|
.bp(bp),
|
.bp(bp),
|
.d0(d0),
|
.d0(d0),
|
Line 436... |
Line 476... |
.manual_error_reset_sw(oc_err_reset),
|
.manual_error_reset_sw(oc_err_reset),
|
.half_or_pgm_stop(oc_half_or_pgm_stop),
|
.half_or_pgm_stop(oc_half_or_pgm_stop),
|
.prog_restart(ps_restart_sig),
|
.prog_restart(ps_restart_sig),
|
.error_stop(es_err_stop),
|
.error_stop(es_err_stop),
|
.error_sense_restart(es_err_sense_restart),
|
.error_sense_restart(es_err_sense_restart),
|
.arith_restart(1'b0), // 85d
|
.arith_restart(at_arith_restart_d5), // ****
|
.stop_code(dc_stop_code),
|
.stop_code(dc_stop_code),
|
.code_69(dc_code_69),
|
.code_69(dc_code_69),
|
.start_10s_60s(dc_turn_on_single_intlk),
|
.start_10s_60s(dc_turn_on_single_intlk),
|
.end_shift_cntrl(dc_end_shift_control),
|
.end_shift_cntrl(dc_end_shift_control),
|
.tlu_on(tl_tlu_on),
|
.tlu_on(tl_tlu_on),
|
.end_of_operation(1'b0), // 85d
|
.end_of_operation(at_end_of_operation),
|
.turn_on_op_intlk(dc_turn_on_op_intlk),
|
.turn_on_op_intlk(dc_turn_on_op_intlk),
|
.decode_restarts(dc_all_restarts),
|
.decode_restarts(dc_all_restarts),
|
.use_d_for_i(dc_use_d_for_i),
|
.use_d_for_i(dc_use_d_for_i),
|
.dist_back_signal(ds_back_sig),
|
.dist_back_signal(ds_back_sig),
|
.error_stop_ed0u(es_err_stop_ed0u),
|
.error_stop_ed0u(es_err_stop_ed0u),
|
Line 534... |
Line 574... |
.acc_zero_test(zc_acc_zero_test),
|
.acc_zero_test(zc_acc_zero_test),
|
.acc_no_zero_test(zc_acc_no_zero_test),
|
.acc_no_zero_test(zc_acc_no_zero_test),
|
.acc_plus_test(1'b0), // 85t
|
.acc_plus_test(1'b0), // 85t
|
.acc_minus_test(1'b0), // 85t
|
.acc_minus_test(1'b0), // 85t
|
.single_intlk(cc_single_intlk),
|
.single_intlk(cc_single_intlk),
|
.arith_restart(1'b0), // 85d
|
.arith_restart(at_arith_restart_d5), // ****
|
.overflow_sense_sig(ad_overflow_sense_sig),
|
.overflow_sense_sig(ad_overflow_sense_sig),
|
.man_acc_reset(oc_man_acc_reset),
|
.man_acc_reset(oc_man_acc_reset),
|
.all_restarts(dc_all_restarts),
|
.all_restarts(dc_all_restarts),
|
.use_d_for_i(dc_use_d_for_i),
|
.use_d_for_i(dc_use_d_for_i),
|
.turn_on_single_intlk(dc_turn_on_single_intlk),
|
.turn_on_single_intlk(dc_turn_on_single_intlk),
|
Line 776... |
Line 816... |
.s3(s3),
|
.s3(s3),
|
.s4(s4),
|
.s4(s4),
|
.tlu_sig(dc_tlu_sig),
|
.tlu_sig(dc_tlu_sig),
|
.upper_sig(dc_upper_sig),
|
.upper_sig(dc_upper_sig),
|
.lower_sig(dc_lower_sig),
|
.lower_sig(dc_lower_sig),
|
.divide_on(1'b0), // 85p
|
.divide_on(at_divide),
|
.mult_nozero_edxl(1'b0), // 85j
|
.mult_nozero_edxl(1'b0), // 85j
|
.carry_test_latch(ad_carry_test),
|
.carry_test_latch(ad_carry_test),
|
.tlu_or_acc_zero_check(ca_check_latch),
|
.tlu_or_acc_zero_check(ca_check_latch),
|
.man_acc_reset(oc_man_acc_reset),
|
.man_acc_reset(oc_man_acc_reset),
|
.reset_sig(dc_reset_sig),
|
.reset_sig(dc_reset_sig),
|
.no_reset_sig(dc_no_reset_sig),
|
.no_reset_sig(dc_no_reset_sig),
|
.acc_minus_sign(1'b0), // 85t
|
.acc_minus_sign(1'b0), // 85t
|
.compl_adj(1'b0), // 85s
|
.compl_adj(at_compl_adj),
|
.quot_digit_on(1'b0), // 85p
|
.quot_digit_on(1'b0), // 85p
|
.dist_compl_add(1'b0), // 85p
|
.dist_compl_add(1'b0), // 85p
|
.any_left_shift_on(1'b0), // 85j
|
.any_left_shift_on(1'b0), // 85j
|
.right_shift_on(1'b0), // 85a
|
.right_shift_on(1'b0), // 85a
|
.left_shift_on(1'b0), // 85b
|
.left_shift_on(1'b0), // 85b
|
.mult_div_left_shift(1'b0), // 85k
|
.mult_div_left_shift(1'b0), // 85k
|
.sig_digit_on(1'b0), // 85j
|
.sig_digit_on(1'b0), // 85j
|
.hc_add_5(1'b0), // 85a
|
.hc_add_5(at_hc_add_5),
|
.mult_on(1'b0), // 85q
|
.mult_on(at_multiply),
|
.acc_true_add_gate(1'b0), // 85d
|
.acc_true_add_gate(at_acc_true_add),
|
.tlu_on(tl_tlu_on),
|
.tlu_on(tl_tlu_on),
|
.early_dist_zero_entry(tl_early_dist_zero_entry),
|
.early_dist_zero_entry(tl_early_dist_zero_entry),
|
.early_dist_zero_control(tl_early_dist_zero_control),
|
.early_dist_zero_control(tl_early_dist_zero_control),
|
.prog_to_acc_add(tl_prog_to_acc_add),
|
.prog_to_acc_add(tl_prog_to_acc_add),
|
.prog_add(tl_prog_add),
|
.prog_add(tl_prog_add),
|