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

Subversion Repositories idea

[/] [idea/] [trunk/] [behavioral/] [key_regulator/] [mux288to16x.vbe] - Rev 9

Compare with Previous | Blame | View Log

--Nama file : mux288to16x.vbe
--Deskripsi : multiplekser (18 x 16 bit) to 16 bit
--Author    : Mas Adit
--Tanggal  : 25 Agustus 2001

entity mux288to16x is
port (
        i1   : in bit_vector(15 downto 0);
        i2   : in bit_vector(15 downto 0);
        i3   : in bit_vector(15 downto 0);
        i4   : in bit_vector(15 downto 0);
        i5   : in bit_vector(15 downto 0);
        i6   : in bit_vector(15 downto 0);
        i7   : in bit_vector(15 downto 0);
        i8   : in bit_vector(15 downto 0);
        i9   : in bit_vector(15 downto 0);
        i10 : in bit_vector(15 downto 0);
        i11 : in bit_vector(15 downto 0);
        i12 : in bit_vector(15 downto 0);
        i13 : in bit_vector(15 downto 0);
        i14 : in bit_vector(15 downto 0);
        i15 : in bit_vector(15 downto 0);
        i16 : in bit_vector(15 downto 0);
        i17 : in bit_vector(15 downto 0);
        i18 : in bit_vector(15 downto 0);
        en  : in bit;
        clr  : in bit;
        sel :  in bit_vector(4 downto 0);
        c   : out bit_vector(15 downto 0);
        vdd : in bit;
        vss : in bit
);
end mux288to16x;

architecture vbe of mux288to16x is

signal temp1 : bit_vector(15 downto 0);
signal temp2 : bit_vector(15 downto 0);
signal reg : reg_vector(15 downto 0) register;
constant nol : bit_vector(15 downto 0) := "0000000000000000";

begin

with sel select
temp1 <= i1 when "00000",
              i2 when "00001",
              i3 when "00010",
              i4 when "00011",
              i5 when "00100",
              i6 when "00101",
              i7 when "00110",
              i8 when "00111",
              i9 when "01000",
              i10 when "01001",
              i11 when "01010",
              i12 when "01011",
              i13 when "01100",
              i14 when "01101",
              i15 when "01110",
              i16 when "01111",
              i17 when "10000",
              i18 when "10001",
              nol when others;

flip_flop : block ((en = '1') and not(en'STABLE))
begin
        reg <= guarded temp1;
end block;

temp2 <= nol when (clr = '1')
              else reg;

c <= temp2;

assert ((vdd = '1') and (vss = '0'))
report "power supply is missing on mux288to16x"
severity warning;

end vbe;

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.