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

Subversion Repositories v65c816

[/] [v65c816/] [trunk/] [AddSubBCD.vhd] - Blame information for rev 2

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 2 Valerio63
library IEEE;
2
use IEEE.std_logic_1164.all;
3
use ieee.numeric_std.all;
4
library work;
5
 
6
entity AddSubBCD is
7
        port(
8
                A               : in std_logic_vector(15 downto 0);
9
                B               : in std_logic_vector(15 downto 0);
10
                CI              : in std_logic;
11
                ADD     : in std_logic;
12
                BCD     : in std_logic;
13
                w16     : in std_logic;
14
                S               : out std_logic_vector(15 downto 0);
15
                CO              : out std_logic;
16
                VO              : out std_logic
17
    );
18
end AddSubBCD;
19
 
20
architecture rtl of AddSubBCD is
21
 
22
        signal VO1, VO3 : std_logic;
23
        signal CO0, CO1, CO2, CO3 : std_logic;
24
 
25
begin
26
 
27
        add0 : entity work.BCDAdder
28
        port map (
29
                A => A(3 downto 0),
30
                B => B(3 downto 0),
31
                CI => CI,
32
 
33
                S => S(3 downto 0),
34
                CO => CO0,
35
 
36
                ADD => ADD,
37
                BCD => BCD
38
        );
39
 
40
        add1 : entity work.BCDAdder
41
        port map (
42
                A => A(7 downto 4),
43
                B => B(7 downto 4),
44
                CI => CO0,
45
 
46
                S => S(7 downto 4),
47
                CO => CO1,
48
                VO => VO1,
49
 
50
                ADD => ADD,
51
                BCD => BCD
52
        );
53
 
54
        add2 : entity work.BCDAdder
55
        port map (
56
                A => A(11 downto 8),
57
                B => B(11 downto 8),
58
                CI => CO1,
59
 
60
                S => S(11 downto 8),
61
                CO => CO2,
62
 
63
                ADD => ADD,
64
                BCD => BCD
65
        );
66
 
67
        add3 : entity work.BCDAdder
68
        port map (
69
                A => A(15 downto 12),
70
                B => B(15 downto 12),
71
                CI => CO2,
72
 
73
                S => S(15 downto 12),
74
                CO => CO3,
75
                VO => VO3,
76
 
77
                ADD => ADD,
78
                BCD => BCD
79
        );
80
 
81
 
82
        VO <= VO1 when w16 = '0' else VO3;
83
        CO <= CO1 when w16 = '0' else CO3;
84
 
85
end rtl;

powered by: WebSVN 2.1.0

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