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

Subversion Repositories mcip_open

[/] [mcip_open/] [trunk/] [MCIPopen_XilinxISEproject/] [alu_slice.vhd] - Blame information for rev 4

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 4 mezzah
--------------------------------------------------------------------------------
2
-- Company:        Ferhat Abbas University - Algeria
3
-- Engineer:       Ibrahim MEZZAH
4
-- Progect Supervisor: Dr H. Chemali
5
-- Create Date:    23:51:43 07/13/05
6
-- Design Name:    ALU Slice
7
-- Module Name:    alu_slice - simple
8
-- Project Name:   Microcontroller IP (MCIP)
9
-- Target Device:  xc3s500e-4fg320
10
-- Tool versions:  Xilinx ISE 9.1.03i
11
-- Description:  This module based on two 4-inputs LUTs g and p provides a
12
--                                               carry propagation path (CarryIn, CarryOut). according to the
13
--                                               value of configuration bits gi and pi, the slice carry out
14
--                                               a specific operation op(a,b,Ci)=s and Co.
15
-- Revision:             07/07/2008
16
-- Revision 1 - Add description
17
--------------------------------------------------------------------------------
18
library IEEE;
19
use IEEE.STD_LOGIC_1164.ALL;
20
 
21
entity alu_slice is
22
    Port ( g  : in  std_logic_vector(3 downto 0);
23
           p  : in  std_logic_vector(3 downto 0);
24
           a  : in  std_logic;
25
           b  : in  std_logic;
26
           ci : in  std_logic;
27
           s  : out std_logic;
28
           co : out std_logic);
29
end alu_slice;
30
 
31
architecture simple of alu_slice is
32
 
33
        signal gi01 : std_logic;
34
        signal gi23 : std_logic;
35
        signal gi   : std_logic;
36
        signal pi   : std_logic;
37
        signal pi01 : std_logic;
38
        signal pi23 : std_logic;
39
 
40
begin
41
 
42
        gi01 <= g(0)   when (b='0') else g(1);
43
        gi23 <= g(2)   when (b='0') else g(3);
44
 
45
        pi01 <= p(0)   when (b='0') else p(1);
46
        pi23 <= p(2)   when (b='0') else p(3);
47
 
48
        gi   <= gi01   when (a='0') else gi23;
49
        pi   <= pi01   when (a='0') else pi23;
50
 
51
        s    <= gi xor ci;
52
        co   <= pi or (gi and ci);
53
 
54
end simple;

powered by: WebSVN 2.1.0

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