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

Subversion Repositories i650

[/] [i650/] [trunk/] [rtl/] [add_in_b.v] - Blame information for rev 21

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 21 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: Adder input B.
9
// 
10
// Additional Comments: See US 2959351, Fig. 67.
11
//
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 add_in_b (
33
   input [0:6] dist_early_out, dist_ontime_out,
34
   input [0:9] special_int_entry,
35
   input ontime_dist_add_gate_tlu, dist_compl_add_gate, upper_lower_check,
36
         dist_blank_gate, early_dist_zero_entry, //early_dist_zero_ctrl,
37
         dist_true_add_gate,
38
 
39
   output [0:6] adder_entry_b
40
   );
41
 
42
   wire [0:6] special_int_biq = special_int_entry[0]? `biq_0
43
                              : special_int_entry[1]? `biq_1
44
                              : special_int_entry[2]? `biq_2
45
                              : special_int_entry[3]? `biq_3
46
                              : special_int_entry[4]? `biq_4
47
                              : special_int_entry[5]? `biq_5
48
                              : special_int_entry[6]? `biq_6
49
                              : special_int_entry[7]? `biq_7
50
                              : special_int_entry[8]? `biq_8
51
                              : special_int_entry[9]? `biq_9
52
                              : `biq_blank;
53
   wire [0:6] dist_early_compl;
54
   biq_9s_comp bc1 (dist_early_out, dist_early_compl);
55
   wire dist_true_add  = dist_true_add_gate  & upper_lower_check & dist_blank_gate;
56
   wire dist_compl_add = dist_compl_add_gate & upper_lower_check & dist_blank_gate;
57
 
58
   assign adder_entry_b = early_dist_zero_entry?    `biq_0
59
                        : dist_true_add?            dist_early_out
60
                        : dist_compl_add?           dist_early_compl
61
                        : ontime_dist_add_gate_tlu? dist_ontime_out
62
                        :                           special_int_biq;
63
 
64
endmodule

powered by: WebSVN 2.1.0

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