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

Subversion Repositories fpuvhdl

[/] [fpuvhdl/] [trunk/] [fpuvhdl/] [multiplier/] [fpmul_pipeline.vhd] - Blame information for rev 3

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

Line No. Rev Author Line
1 3 gmarcus
-- VHDL Entity HAVOC.FPmul.symbol
2
--
3
-- Created by
4
-- Guillermo Marcus, gmarcus@ieee.org
5
-- using Mentor Graphics FPGA Advantage tools.
6
--
7
-- Visit "http://fpga.mty.itesm.mx" for more info.
8
--
9
-- 2003-2004. V1.0
10
--
11
 
12
LIBRARY ieee;
13
USE ieee.std_logic_1164.all;
14
USE ieee.std_logic_arith.all;
15
 
16
ENTITY FPmul IS
17
   PORT(
18
      FP_A : IN     std_logic_vector (31 DOWNTO 0);
19
      FP_B : IN     std_logic_vector (31 DOWNTO 0);
20
      clk  : IN     std_logic;
21
      FP_Z : OUT    std_logic_vector (31 DOWNTO 0)
22
   );
23
 
24
-- Declarations
25
 
26
END FPmul ;
27
 
28
--
29
-- VHDL Architecture HAVOC.FPmul.pipeline
30
--
31
-- Created by
32
-- Guillermo Marcus, gmarcus@ieee.org
33
-- using Mentor Graphics FPGA Advantage tools.
34
--
35
-- Visit "http://fpga.mty.itesm.mx" for more info.
36
--
37
-- Copyright 2003-2004. V1.0
38
--
39
 
40
 
41
LIBRARY ieee;
42
USE ieee.std_logic_1164.all;
43
USE ieee.std_logic_arith.all;
44
 
45
LIBRARY HAVOC;
46
 
47
ARCHITECTURE pipeline OF FPmul IS
48
 
49
   -- Architecture declarations
50
 
51
   -- Internal signal declarations
52
   SIGNAL A_EXP           : std_logic_vector(7 DOWNTO 0);
53
   SIGNAL A_SIG           : std_logic_vector(31 DOWNTO 0);
54
   SIGNAL B_EXP           : std_logic_vector(7 DOWNTO 0);
55
   SIGNAL B_SIG           : std_logic_vector(31 DOWNTO 0);
56
   SIGNAL EXP_in          : std_logic_vector(7 DOWNTO 0);
57
   SIGNAL EXP_neg         : std_logic;
58
   SIGNAL EXP_neg_stage2  : std_logic;
59
   SIGNAL EXP_out_round   : std_logic_vector(7 DOWNTO 0);
60
   SIGNAL EXP_pos         : std_logic;
61
   SIGNAL EXP_pos_stage2  : std_logic;
62
   SIGNAL SIGN_out        : std_logic;
63
   SIGNAL SIGN_out_stage1 : std_logic;
64
   SIGNAL SIGN_out_stage2 : std_logic;
65
   SIGNAL SIG_in          : std_logic_vector(27 DOWNTO 0);
66
   SIGNAL SIG_out_round   : std_logic_vector(27 DOWNTO 0);
67
   SIGNAL isINF_stage1    : std_logic;
68
   SIGNAL isINF_stage2    : std_logic;
69
   SIGNAL isINF_tab       : std_logic;
70
   SIGNAL isNaN           : std_logic;
71
   SIGNAL isNaN_stage1    : std_logic;
72
   SIGNAL isNaN_stage2    : std_logic;
73
   SIGNAL isZ_tab         : std_logic;
74
   SIGNAL isZ_tab_stage1  : std_logic;
75
   SIGNAL isZ_tab_stage2  : std_logic;
76
 
77
 
78
   -- Component Declarations
79
   COMPONENT FPmul_stage1
80
   PORT (
81
      FP_A            : IN     std_logic_vector (31 DOWNTO 0);
82
      FP_B            : IN     std_logic_vector (31 DOWNTO 0);
83
      clk             : IN     std_logic ;
84
      A_EXP           : OUT    std_logic_vector (7 DOWNTO 0);
85
      A_SIG           : OUT    std_logic_vector (31 DOWNTO 0);
86
      B_EXP           : OUT    std_logic_vector (7 DOWNTO 0);
87
      B_SIG           : OUT    std_logic_vector (31 DOWNTO 0);
88
      SIGN_out_stage1 : OUT    std_logic ;
89
      isINF_stage1    : OUT    std_logic ;
90
      isNaN_stage1    : OUT    std_logic ;
91
      isZ_tab_stage1  : OUT    std_logic
92
   );
93
   END COMPONENT;
94
   COMPONENT FPmul_stage2
95
   PORT (
96
      A_EXP           : IN     std_logic_vector (7 DOWNTO 0);
97
      A_SIG           : IN     std_logic_vector (31 DOWNTO 0);
98
      B_EXP           : IN     std_logic_vector (7 DOWNTO 0);
99
      B_SIG           : IN     std_logic_vector (31 DOWNTO 0);
100
      SIGN_out_stage1 : IN     std_logic ;
101
      clk             : IN     std_logic ;
102
      isINF_stage1    : IN     std_logic ;
103
      isNaN_stage1    : IN     std_logic ;
104
      isZ_tab_stage1  : IN     std_logic ;
105
      EXP_in          : OUT    std_logic_vector (7 DOWNTO 0);
106
      EXP_neg_stage2  : OUT    std_logic ;
107
      EXP_pos_stage2  : OUT    std_logic ;
108
      SIGN_out_stage2 : OUT    std_logic ;
109
      SIG_in          : OUT    std_logic_vector (27 DOWNTO 0);
110
      isINF_stage2    : OUT    std_logic ;
111
      isNaN_stage2    : OUT    std_logic ;
112
      isZ_tab_stage2  : OUT    std_logic
113
   );
114
   END COMPONENT;
115
   COMPONENT FPmul_stage3
116
   PORT (
117
      EXP_in          : IN     std_logic_vector (7 DOWNTO 0);
118
      EXP_neg_stage2  : IN     std_logic ;
119
      EXP_pos_stage2  : IN     std_logic ;
120
      SIGN_out_stage2 : IN     std_logic ;
121
      SIG_in          : IN     std_logic_vector (27 DOWNTO 0);
122
      clk             : IN     std_logic ;
123
      isINF_stage2    : IN     std_logic ;
124
      isNaN_stage2    : IN     std_logic ;
125
      isZ_tab_stage2  : IN     std_logic ;
126
      EXP_neg         : OUT    std_logic ;
127
      EXP_out_round   : OUT    std_logic_vector (7 DOWNTO 0);
128
      EXP_pos         : OUT    std_logic ;
129
      SIGN_out        : OUT    std_logic ;
130
      SIG_out_round   : OUT    std_logic_vector (27 DOWNTO 0);
131
      isINF_tab       : OUT    std_logic ;
132
      isNaN           : OUT    std_logic ;
133
      isZ_tab         : OUT    std_logic
134
   );
135
   END COMPONENT;
136
   COMPONENT FPmul_stage4
137
   PORT (
138
      EXP_neg       : IN     std_logic ;
139
      EXP_out_round : IN     std_logic_vector (7 DOWNTO 0);
140
      EXP_pos       : IN     std_logic ;
141
      SIGN_out      : IN     std_logic ;
142
      SIG_out_round : IN     std_logic_vector (27 DOWNTO 0);
143
      clk           : IN     std_logic ;
144
      isINF_tab     : IN     std_logic ;
145
      isNaN         : IN     std_logic ;
146
      isZ_tab       : IN     std_logic ;
147
      FP_Z          : OUT    std_logic_vector (31 DOWNTO 0)
148
   );
149
   END COMPONENT;
150
 
151
   -- Optional embedded configurations
152
   -- pragma synthesis_off
153
   FOR ALL : FPmul_stage1 USE ENTITY HAVOC.FPmul_stage1;
154
   FOR ALL : FPmul_stage2 USE ENTITY HAVOC.FPmul_stage2;
155
   FOR ALL : FPmul_stage3 USE ENTITY HAVOC.FPmul_stage3;
156
   FOR ALL : FPmul_stage4 USE ENTITY HAVOC.FPmul_stage4;
157
   -- pragma synthesis_on
158
 
159
 
160
BEGIN
161
 
162
   -- Instance port mappings.
163
   I1 : FPmul_stage1
164
      PORT MAP (
165
         FP_A            => FP_A,
166
         FP_B            => FP_B,
167
         clk             => clk,
168
         A_EXP           => A_EXP,
169
         A_SIG           => A_SIG,
170
         B_EXP           => B_EXP,
171
         B_SIG           => B_SIG,
172
         SIGN_out_stage1 => SIGN_out_stage1,
173
         isINF_stage1    => isINF_stage1,
174
         isNaN_stage1    => isNaN_stage1,
175
         isZ_tab_stage1  => isZ_tab_stage1
176
      );
177
   I2 : FPmul_stage2
178
      PORT MAP (
179
         A_EXP           => A_EXP,
180
         A_SIG           => A_SIG,
181
         B_EXP           => B_EXP,
182
         B_SIG           => B_SIG,
183
         SIGN_out_stage1 => SIGN_out_stage1,
184
         clk             => clk,
185
         isINF_stage1    => isINF_stage1,
186
         isNaN_stage1    => isNaN_stage1,
187
         isZ_tab_stage1  => isZ_tab_stage1,
188
         EXP_in          => EXP_in,
189
         EXP_neg_stage2  => EXP_neg_stage2,
190
         EXP_pos_stage2  => EXP_pos_stage2,
191
         SIGN_out_stage2 => SIGN_out_stage2,
192
         SIG_in          => SIG_in,
193
         isINF_stage2    => isINF_stage2,
194
         isNaN_stage2    => isNaN_stage2,
195
         isZ_tab_stage2  => isZ_tab_stage2
196
      );
197
   I3 : FPmul_stage3
198
      PORT MAP (
199
         EXP_in          => EXP_in,
200
         EXP_neg_stage2  => EXP_neg_stage2,
201
         EXP_pos_stage2  => EXP_pos_stage2,
202
         SIGN_out_stage2 => SIGN_out_stage2,
203
         SIG_in          => SIG_in,
204
         clk             => clk,
205
         isINF_stage2    => isINF_stage2,
206
         isNaN_stage2    => isNaN_stage2,
207
         isZ_tab_stage2  => isZ_tab_stage2,
208
         EXP_neg         => EXP_neg,
209
         EXP_out_round   => EXP_out_round,
210
         EXP_pos         => EXP_pos,
211
         SIGN_out        => SIGN_out,
212
         SIG_out_round   => SIG_out_round,
213
         isINF_tab       => isINF_tab,
214
         isNaN           => isNaN,
215
         isZ_tab         => isZ_tab
216
      );
217
   I4 : FPmul_stage4
218
      PORT MAP (
219
         EXP_neg       => EXP_neg,
220
         EXP_out_round => EXP_out_round,
221
         EXP_pos       => EXP_pos,
222
         SIGN_out      => SIGN_out,
223
         SIG_out_round => SIG_out_round,
224
         clk           => clk,
225
         isINF_tab     => isINF_tab,
226
         isNaN         => isNaN,
227
         isZ_tab       => isZ_tab,
228
         FP_Z          => FP_Z
229
      );
230
 
231
END pipeline;

powered by: WebSVN 2.1.0

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