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

Subversion Repositories sparc64soc

[/] [sparc64soc/] [trunk/] [T1-CPU/] [exu/] [sparc_exu_aluor32.v] - Blame information for rev 2

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 2 dmitryr
// ========== Copyright Header Begin ==========================================
2
// 
3
// OpenSPARC T1 Processor File: sparc_exu_aluor32.v
4
// Copyright (c) 2006 Sun Microsystems, Inc.  All Rights Reserved.
5
// DO NOT ALTER OR REMOVE COPYRIGHT NOTICES.
6
// 
7
// The above named program is free software; you can redistribute it and/or
8
// modify it under the terms of the GNU General Public
9
// License version 2 as published by the Free Software Foundation.
10
// 
11
// The above named program is distributed in the hope that it will be 
12
// useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
13
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14
// General Public License for more details.
15
// 
16
// You should have received a copy of the GNU General Public
17
// License along with this work; if not, write to the Free Software
18
// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
19
// 
20
// ========== Copyright Header End ============================================
21
////////////////////////////////////////////////////////////////////////
22
/*
23
//  Module Name: sparc_exu_aluor32
24
//      Description: This block performs a 32 bit OR of the input source.
25
//                      The result is the output nonzero.
26
*/
27
 
28
 
29
module sparc_exu_aluor32
30
  (/*AUTOARG*/
31
   // Outputs
32
   out,
33
   // Inputs
34
   in
35
   );
36
 
37
   input [31:0] in;         // input to be compared to zero
38
 
39
   output       out;       // or of input bits
40
 
41
   wire         nor1_1;
42
   wire         nor1_2;
43
   wire         nor1_3;
44
   wire         nor1_4;
45
   wire         nor1_5;
46
   wire         nor1_6;
47
   wire         nor1_7;
48
   wire         nor1_8;
49
   wire         nor1_9;
50
   wire         nor1_10;
51
   wire         nor1_11;
52
   wire         nor1_12;
53
   wire         nor1_13;
54
   wire         nor1_14;
55
   wire         nor1_15;
56
   wire         nor1_16;
57
   wire         nand2_1;
58
   wire         nand2_2;
59
   wire         nand2_3;
60
   wire         nand2_4;
61
   wire         inv3_1;
62
   wire         inv3_2;
63
   wire         inv3_3;
64
   wire         inv3_4;
65
 
66
   assign       nor1_1 = ~(in[1] | in[0]);
67
   assign       nor1_2 = ~(in[3] | in[2]);
68
   assign       nor1_3 = ~(in[5] | in[4]);
69
   assign       nor1_4 = ~(in[7] | in[6]);
70
   assign       nor1_5 = ~(in[9] | in[8]);
71
   assign       nor1_6 = ~(in[11] | in[10]);
72
   assign       nor1_7 = ~(in[13] | in[12]);
73
   assign       nor1_8 = ~(in[15] | in[14]);
74
   assign       nor1_9 = ~(in[17] | in[16]);
75
   assign       nor1_10 = ~(in[19] | in[18]);
76
   assign       nor1_11 = ~(in[21] | in[20]);
77
   assign       nor1_12 = ~(in[23] | in[22]);
78
   assign       nor1_13 = ~(in[25] | in[24]);
79
   assign       nor1_14 = ~(in[27] | in[26]);
80
   assign       nor1_15 = ~(in[29] | in[28]);
81
   assign       nor1_16 = ~(in[31] | in[30]);
82
 
83
   assign       nand2_1 = ~(nor1_1 & nor1_2 & nor1_3 & nor1_4);
84
   assign       nand2_2 = ~(nor1_5 & nor1_6 & nor1_7 & nor1_8);
85
   assign       nand2_3 = ~(nor1_9 & nor1_10 & nor1_11 & nor1_12);
86
   assign       nand2_4 = ~(nor1_13 & nor1_14 & nor1_15 & nor1_16);
87
 
88
   assign       inv3_1 = ~nand2_1;
89
   assign       inv3_2 = ~nand2_2;
90
   assign       inv3_3 = ~nand2_3;
91
   assign       inv3_4 = ~nand2_4;
92
 
93
   assign       out = ~(inv3_1 & inv3_2 & inv3_3 & inv3_4);
94
 
95
endmodule // sparc_exu_aluor32
96
 
97
 
98
 
99
 
100
 
101
 
102
 
103
 
104
 

powered by: WebSVN 2.1.0

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