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

Subversion Repositories encore

[/] [encore/] [trunk/] [fpmult/] [src/] [fpmult.vhdl] - Blame information for rev 8

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 6 aloy.amber
library ieee;
2
use ieee.std_logic_1164.all;
3
use work.fpmult_comp.all;
4 8 aloy.amber
use work.fpmult_stage_pre_comp.all;
5 6 aloy.amber
use work.fpmult_stage0_comp.all;
6
use work.fpmult_stageN_comp.all;
7
use work.fpmult_stage23_comp.all;
8
 
9
entity fpmult is
10
        port(
11
                clk:in std_logic;
12
                d:in fpmult_in_type;
13
                q:out fpmult_out_type
14
        );
15
end;
16
 
17
architecture structural of fpmult is
18 8 aloy.amber
        signal fpmult_stage_pre_in:fpmult_stage_pre_in_type;
19
        signal fpmult_stage_pre_out:fpmult_stage_pre_out_type;
20 6 aloy.amber
        signal fpmult_stage0_in:fpmult_stage0_in_type;
21
        signal fpmult_stage0_out:fpmult_stage0_out_type;
22
        signal fpmult_stage23_in:fpmult_stage23_in_type;
23
        signal fpmult_stage23_out:fpmult_stage23_out_type;
24
        type fpmult_stageN_in_array_type is array(23 downto 1) of fpmult_stageN_in_type;
25
        type fpmult_stageN_out_array_type is array(22 downto 1) of fpmult_stageN_out_type;
26
        signal fpmult_stageN_in_array:fpmult_stageN_in_array_type;
27
        signal fpmult_stageN_out_array:fpmult_stageN_out_array_type;
28
begin
29 8 aloy.amber
        fpmult_stage_pre_in.a<=d.a;
30
        fpmult_stage_pre_in.b<=d.b;
31
 
32
        stage_pre:fpmult_stage_pre port map(clk,fpmult_stage_pre_in,fpmult_stage_pre_out);
33
 
34
        fpmult_stage0_in.a<=fpmult_stage_pre_out.a;
35
        fpmult_stage0_in.b<=fpmult_stage_pre_out.b;
36 6 aloy.amber
 
37
        stage0:fpmult_stage0 port map(clk,fpmult_stage0_in,fpmult_stage0_out);
38
 
39
        fpmult_stageN_in_array(1)<=fpmult_stage0_out;
40
 
41
        pipeline:for N in 22 downto 1 generate
42
                stageN:fpmult_stageN generic map(N) port map(clk,fpmult_stageN_in_array(N),fpmult_stageN_out_array(N));
43
                fpmult_stageN_in_array(N+1)<=fpmult_stageN_out_array(N);
44
        end generate pipeline;
45
 
46
        fpmult_stage23_in<=fpmult_stageN_out_array(22);
47
 
48
        stage23:fpmult_stage23 port map(clk,fpmult_stage23_in,fpmult_stage23_out);
49
 
50
        q.p<=fpmult_stage23_out.p;
51
end;

powered by: WebSVN 2.1.0

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