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

Subversion Repositories structural_vhdl

[/] [structural_vhdl/] [trunk/] [idea_machine/] [m32adder.vst] - Rev 4

Compare with Previous | Blame | View Log

-- VHDL structural description generated from `m32adder`
--              date : Sat Sep  8 03:38:10 2001


-- Entity Declaration

ENTITY m32adder IS
  PORT (
  a : in BIT_VECTOR (31 DOWNTO 0);      -- a
  b : in BIT_VECTOR (31 DOWNTO 0);      -- b
  sum : out BIT_VECTOR (31 DOWNTO 0);   -- sum
  vdd : in BIT; -- vdd
  vss : in BIT  -- vss
  );
END m32adder;

-- Architecture Declaration

ARCHITECTURE VST OF m32adder IS
  COMPONENT halfadder_glopf
    port (
    a : in BIT; -- a
    b : in BIT; -- b
    cout : out BIT;     -- cout
    sout : out BIT;     -- sout
    vdd : in BIT;       -- vdd
    vss : in BIT        -- vss
    );
  END COMPONENT;

  COMPONENT fulladder_glopg
    port (
    a : in BIT; -- a
    b : in BIT; -- b
    cin : in BIT;       -- cin
    cout : out BIT;     -- cout
    sout : out BIT;     -- sout
    vdd : in BIT;       -- vdd
    vss : in BIT        -- vss
    );
  END COMPONENT;

  COMPONENT xr2_x1
    port (
    i0 : in BIT;        -- i0
    i1 : in BIT;        -- i1
    q : out BIT;        -- q
    vdd : in BIT;       -- vdd
    vss : in BIT        -- vss
    );
  END COMPONENT;

  SIGNAL cout0 : BIT;   -- cout0
  SIGNAL cout1 : BIT;   -- cout1
  SIGNAL cout10 : BIT;  -- cout10
  SIGNAL cout11 : BIT;  -- cout11
  SIGNAL cout12 : BIT;  -- cout12
  SIGNAL cout13 : BIT;  -- cout13
  SIGNAL cout14 : BIT;  -- cout14
  SIGNAL cout15 : BIT;  -- cout15
  SIGNAL cout16 : BIT;  -- cout16
  SIGNAL cout17 : BIT;  -- cout17
  SIGNAL cout18 : BIT;  -- cout18
  SIGNAL cout19 : BIT;  -- cout19
  SIGNAL cout2 : BIT;   -- cout2
  SIGNAL cout20 : BIT;  -- cout20
  SIGNAL cout21 : BIT;  -- cout21
  SIGNAL cout22 : BIT;  -- cout22
  SIGNAL cout23 : BIT;  -- cout23
  SIGNAL cout24 : BIT;  -- cout24
  SIGNAL cout25 : BIT;  -- cout25
  SIGNAL cout26 : BIT;  -- cout26
  SIGNAL cout27 : BIT;  -- cout27
  SIGNAL cout28 : BIT;  -- cout28
  SIGNAL cout29 : BIT;  -- cout29
  SIGNAL cout3 : BIT;   -- cout3
  SIGNAL cout30 : BIT;  -- cout30
  SIGNAL cout4 : BIT;   -- cout4
  SIGNAL cout5 : BIT;   -- cout5
  SIGNAL cout6 : BIT;   -- cout6
  SIGNAL cout7 : BIT;   -- cout7
  SIGNAL cout8 : BIT;   -- cout8
  SIGNAL cout9 : BIT;   -- cout9
  SIGNAL o_xr1 : BIT;   -- o_xr1

BEGIN

  halfadder : halfadder_glopf
    PORT MAP (
    vss => vss,
    vdd => vdd,
    sout => sum(0),
    cout => cout0,
    b => b(0),
    a => a(0));
  fulladder1 : fulladder_glopg
    PORT MAP (
    vss => vss,
    vdd => vdd,
    sout => sum(1),
    cout => cout1,
    cin => cout0,
    b => b(1),
    a => a(1));
  fulladder2 : fulladder_glopg
    PORT MAP (
    vss => vss,
    vdd => vdd,
    sout => sum(2),
    cout => cout2,
    cin => cout1,
    b => b(2),
    a => a(2));
  fulladder3 : fulladder_glopg
    PORT MAP (
    vss => vss,
    vdd => vdd,
    sout => sum(3),
    cout => cout3,
    cin => cout2,
    b => b(3),
    a => a(3));
  fulladder4 : fulladder_glopg
    PORT MAP (
    vss => vss,
    vdd => vdd,
    sout => sum(4),
    cout => cout4,
    cin => cout3,
    b => b(4),
    a => a(4));
  fulladder5 : fulladder_glopg
    PORT MAP (
    vss => vss,
    vdd => vdd,
    sout => sum(5),
    cout => cout5,
    cin => cout4,
    b => b(5),
    a => a(5));
  fulladder6 : fulladder_glopg
    PORT MAP (
    vss => vss,
    vdd => vdd,
    sout => sum(6),
    cout => cout6,
    cin => cout5,
    b => b(6),
    a => a(6));
  fulladder7 : fulladder_glopg
    PORT MAP (
    vss => vss,
    vdd => vdd,
    sout => sum(7),
    cout => cout7,
    cin => cout6,
    b => b(7),
    a => a(7));
  fulladder8 : fulladder_glopg
    PORT MAP (
    vss => vss,
    vdd => vdd,
    sout => sum(8),
    cout => cout8,
    cin => cout7,
    b => b(8),
    a => a(8));
  fulladder9 : fulladder_glopg
    PORT MAP (
    vss => vss,
    vdd => vdd,
    sout => sum(9),
    cout => cout9,
    cin => cout8,
    b => b(9),
    a => a(9));
  fulladder10 : fulladder_glopg
    PORT MAP (
    vss => vss,
    vdd => vdd,
    sout => sum(10),
    cout => cout10,
    cin => cout9,
    b => b(10),
    a => a(10));
  fulladder11 : fulladder_glopg
    PORT MAP (
    vss => vss,
    vdd => vdd,
    sout => sum(11),
    cout => cout11,
    cin => cout10,
    b => b(11),
    a => a(11));
  fulladder12 : fulladder_glopg
    PORT MAP (
    vss => vss,
    vdd => vdd,
    sout => sum(12),
    cout => cout12,
    cin => cout11,
    b => b(12),
    a => a(12));
  fulladder13 : fulladder_glopg
    PORT MAP (
    vss => vss,
    vdd => vdd,
    sout => sum(13),
    cout => cout13,
    cin => cout12,
    b => b(13),
    a => a(13));
  fulladder14 : fulladder_glopg
    PORT MAP (
    vss => vss,
    vdd => vdd,
    sout => sum(14),
    cout => cout14,
    cin => cout13,
    b => b(14),
    a => a(14));
  fulladder15 : fulladder_glopg
    PORT MAP (
    vss => vss,
    vdd => vdd,
    sout => sum(15),
    cout => cout15,
    cin => cout14,
    b => b(15),
    a => a(15));
  fulladder16 : fulladder_glopg
    PORT MAP (
    vss => vss,
    vdd => vdd,
    sout => sum(16),
    cout => cout16,
    cin => cout15,
    b => b(16),
    a => a(16));
  fulladder17 : fulladder_glopg
    PORT MAP (
    vss => vss,
    vdd => vdd,
    sout => sum(17),
    cout => cout17,
    cin => cout16,
    b => b(17),
    a => a(17));
  fulladder18 : fulladder_glopg
    PORT MAP (
    vss => vss,
    vdd => vdd,
    sout => sum(18),
    cout => cout18,
    cin => cout17,
    b => b(18),
    a => a(18));
  fulladder19 : fulladder_glopg
    PORT MAP (
    vss => vss,
    vdd => vdd,
    sout => sum(19),
    cout => cout19,
    cin => cout18,
    b => b(19),
    a => a(19));
  fulladder20 : fulladder_glopg
    PORT MAP (
    vss => vss,
    vdd => vdd,
    sout => sum(20),
    cout => cout20,
    cin => cout19,
    b => b(20),
    a => a(20));
  fulladder21 : fulladder_glopg
    PORT MAP (
    vss => vss,
    vdd => vdd,
    sout => sum(21),
    cout => cout21,
    cin => cout20,
    b => b(21),
    a => a(21));
  fulladder22 : fulladder_glopg
    PORT MAP (
    vss => vss,
    vdd => vdd,
    sout => sum(22),
    cout => cout22,
    cin => cout21,
    b => b(22),
    a => a(22));
  fulladder23 : fulladder_glopg
    PORT MAP (
    vss => vss,
    vdd => vdd,
    sout => sum(23),
    cout => cout23,
    cin => cout22,
    b => b(23),
    a => a(23));
  fulladder24 : fulladder_glopg
    PORT MAP (
    vss => vss,
    vdd => vdd,
    sout => sum(24),
    cout => cout24,
    cin => cout23,
    b => b(24),
    a => a(24));
  fulladder25 : fulladder_glopg
    PORT MAP (
    vss => vss,
    vdd => vdd,
    sout => sum(25),
    cout => cout25,
    cin => cout24,
    b => b(25),
    a => a(25));
  fulladder26 : fulladder_glopg
    PORT MAP (
    vss => vss,
    vdd => vdd,
    sout => sum(26),
    cout => cout26,
    cin => cout25,
    b => b(26),
    a => a(26));
  fulladder27 : fulladder_glopg
    PORT MAP (
    vss => vss,
    vdd => vdd,
    sout => sum(27),
    cout => cout27,
    cin => cout26,
    b => b(27),
    a => a(27));
  fulladder28 : fulladder_glopg
    PORT MAP (
    vss => vss,
    vdd => vdd,
    sout => sum(28),
    cout => cout28,
    cin => cout27,
    b => b(28),
    a => a(28));
  fulladder29 : fulladder_glopg
    PORT MAP (
    vss => vss,
    vdd => vdd,
    sout => sum(29),
    cout => cout29,
    cin => cout28,
    b => b(29),
    a => a(29));
  fulladder30 : fulladder_glopg
    PORT MAP (
    vss => vss,
    vdd => vdd,
    sout => sum(30),
    cout => cout30,
    cin => cout29,
    b => b(30),
    a => a(30));
  xr1 : xr2_x1
    PORT MAP (
    vss => vss,
    vdd => vdd,
    q => o_xr1,
    i1 => b(31),
    i0 => a(31));
  xr2 : xr2_x1
    PORT MAP (
    vss => vss,
    vdd => vdd,
    q => sum(31),
    i1 => cout30,
    i0 => o_xr1);

end VST;

Compare with Previous | Blame | View Log

powered by: WebSVN 2.1.0

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