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

Subversion Repositories simple_fm_receiver

[/] [simple_fm_receiver/] [tags/] [VSFR_1/] [source/] [adder_14bit.vhdl] - Blame information for rev 3

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

Line No. Rev Author Line
1 2 arif_endro
-- $Id: adder_14bit.vhdl,v 1.1.1.1 2005-01-04 02:05:58 arif_endro Exp $
2
-------------------------------------------------------------------------------
3
-- Title       : Adder 14 bit
4
-- Project     : FM Receiver 
5
-------------------------------------------------------------------------------
6
-- File        : adder_14bit.vhdl
7
-- Author      : "Arif E. Nugroho" <arif_endro@yahoo.com>
8
-- Created     : 2004/12/23
9
-- Last update : 
10
-- Simulators  : Modelsim 6.0/Windows98
11
-- Synthesizers: 
12
-- Target      : 
13
-------------------------------------------------------------------------------
14
-- Description : Ripple carry adder 14 bit with output 15 bit
15
-------------------------------------------------------------------------------
16
-- Copyright (c) 2004 Arif E. Nugroho
17
-- This VHDL design file is an open design; you can redistribute it and/or
18
-- modify it and/or implement it after contacting the author
19
-------------------------------------------------------------------------------
20
 
21
library IEEE;
22
use IEEE.STD_LOGIC_1164.ALL;
23
use IEEE.STD_LOGIC_arith.ALL;
24
 
25
entity adder_14bit is
26
   port (
27
      addend_14bit  : in  bit_vector (13 downto 0);
28
      augend_14bit  : in  bit_vector (13 downto 0);
29
      adder14_output: out bit_vector (14 downto 0) -- 15bit output
30
      );
31
end adder_14bit;
32
 
33
architecture structural of adder_14bit is
34
 
35
   component fulladder
36
      port (
37
      addend        : in   bit;
38
      augend        : in   bit;
39
      carry_in      : in   bit;
40
      sum           : out  bit;
41
      carry         : out  bit
42
      );
43
   end component;
44
 
45
-- internal signal
46
signal c00 : bit;
47
signal c01 : bit;
48
signal c02 : bit;
49
signal c03 : bit;
50
signal c04 : bit;
51
signal c05 : bit;
52
signal c06 : bit;
53
signal c07 : bit;
54
signal c08 : bit;
55
signal c09 : bit;
56
signal c10 : bit;
57
signal c11 : bit;
58
signal c12 : bit;
59
signal c13 : bit;
60
signal c14 : bit;
61
signal over14 : bit;
62
signal adder14_output_int : bit_vector (14 downto 0);
63
 
64
begin
65
 
66
c00                     <= '0';
67
over14                  <= (addend_14bit (13) xor augend_14bit (13));
68
adder14_output_int (14) <= ((adder14_output_int (13) and over14) or
69
                           (c14 and (not (over14))));
70
adder14_output          <= adder14_output_int;
71
 
72
fa13 : fulladder
73
   port map (
74
      addend     => addend_14bit(13),
75
      augend     => augend_14bit(13),
76
      carry_in   => c13,
77
      sum        => adder14_output_int(13),
78
      carry      => c14
79
      );
80
 
81
fa12 : fulladder
82
   port map (
83
      addend     => addend_14bit(12),
84
      augend     => augend_14bit(12),
85
      carry_in   => c12,
86
      sum        => adder14_output_int(12),
87
      carry      => c13
88
      );
89
 
90
fa11 : fulladder
91
   port map (
92
      addend     => addend_14bit(11),
93
      augend     => augend_14bit(11),
94
      carry_in   => c11,
95
      sum        => adder14_output_int(11),
96
      carry      => c12
97
      );
98
 
99
fa10 : fulladder
100
   port map (
101
      addend     => addend_14bit(10),
102
      augend     => augend_14bit(10),
103
      carry_in   => c10,
104
      sum        => adder14_output_int(10),
105
      carry      => c11
106
      );
107
 
108
fa09 : fulladder
109
   port map (
110
      addend     => addend_14bit(09),
111
      augend     => augend_14bit(09),
112
      carry_in   => c09,
113
      sum        => adder14_output_int(09),
114
      carry      => c10
115
      );
116
 
117
fa08 : fulladder
118
   port map (
119
      addend     => addend_14bit(08),
120
      augend     => augend_14bit(08),
121
      carry_in   => c08,
122
      sum        => adder14_output_int(08),
123
      carry      => c09
124
      );
125
 
126
fa07 : fulladder
127
   port map (
128
      addend     => addend_14bit(07),
129
      augend     => augend_14bit(07),
130
      carry_in   => c07,
131
      sum        => adder14_output_int(07),
132
      carry      => c08
133
      );
134
 
135
fa06 : fulladder
136
   port map (
137
      addend     => addend_14bit(06),
138
      augend     => augend_14bit(06),
139
      carry_in   => c06,
140
      sum        => adder14_output_int(06),
141
      carry      => c07
142
      );
143
 
144
fa05 : fulladder
145
   port map (
146
      addend     => addend_14bit(05),
147
      augend     => augend_14bit(05),
148
      carry_in   => c05,
149
      sum        => adder14_output_int(05),
150
      carry      => c06
151
      );
152
 
153
fa04 : fulladder
154
   port map (
155
      addend     => addend_14bit(04),
156
      augend     => augend_14bit(04),
157
      carry_in   => c04,
158
      sum        => adder14_output_int(04),
159
      carry      => c05
160
      );
161
 
162
fa03 : fulladder
163
   port map (
164
      addend     => addend_14bit(03),
165
      augend     => augend_14bit(03),
166
      carry_in   => c03,
167
      sum        => adder14_output_int(03),
168
      carry      => c04
169
      );
170
 
171
fa02 : fulladder
172
   port map (
173
      addend     => addend_14bit(02),
174
      augend     => augend_14bit(02),
175
      carry_in   => c02,
176
      sum        => adder14_output_int(02),
177
      carry      => c03
178
      );
179
 
180
fa01 : fulladder
181
   port map (
182
      addend     => addend_14bit(01),
183
      augend     => augend_14bit(01),
184
      carry_in   => c01,
185
      sum        => adder14_output_int(01),
186
      carry      => c02
187
      );
188
 
189
fa00 : fulladder
190
   port map (
191
      addend     => addend_14bit(00),
192
      augend     => augend_14bit(00),
193
      carry_in   => c00,
194
      sum        => adder14_output_int(00),
195
      carry      => c01
196
      );
197
 
198
end structural;

powered by: WebSVN 2.1.0

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