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

Subversion Repositories mips_enhanced

[/] [mips_enhanced/] [trunk/] [grlib-gpl-1.0.19-b3188/] [lib/] [techmap/] [maps/] [lvds_combo.vhd] - Blame information for rev 2

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 2 dimamali
------------------------------------------------------------------------------
2
--  This file is a part of the GRLIB VHDL IP LIBRARY
3
--  Copyright (C) 2003, Gaisler Research
4
--
5
--  This program is free software; you can redistribute it and/or modify
6
--  it under the terms of the GNU General Public License as published by
7
--  the Free Software Foundation; either version 2 of the License, or
8
--  (at your option) any later version.
9
--
10
--  This program is distributed in the hope that it will be useful,
11
--  but WITHOUT ANY WARRANTY; without even the implied warranty of
12
--  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13
--  GNU General Public License for more details.
14
--
15
--  You should have received a copy of the GNU General Public License
16
--  along with this program; if not, write to the Free Software
17
--  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA 
18
-----------------------------------------------------------------------------
19
-- Entity:      lvds_combo.vhd
20
-- File:        lvds_combo.vhd.vhd
21
-- Author:      Jiri Gaisler - Gaisler Research
22
-- Description: Differential input/output pads with IREF/OREF logic wrapper
23
------------------------------------------------------------------------------
24
 
25
library ieee;
26
use ieee.std_logic_1164.all;
27
library techmap;
28
use techmap.gencomp.all;
29
use techmap.allpads.all;
30
 
31
entity lvds_combo  is
32
  generic (tech : integer := 0; voltage : integer := 0; width : integer := 1;
33
                oepol : integer := 0);
34
  port (odpadp, odpadn, ospadp, ospadn : out std_logic_vector(0 to width-1);
35
        odval, osval, en : in std_logic_vector(0 to width-1);
36
        idpadp, idpadn, ispadp, ispadn : in std_logic_vector(0 to width-1);
37
        idval, isval : out std_logic_vector(0 to width-1);
38
        lvdsref : in std_logic := '1'
39
);
40
end ;
41
 
42
architecture rtl of lvds_combo is
43
signal gnd : std_ulogic;
44
signal oen : std_logic_vector(0 to width-1);
45
constant level : integer := lvds;
46
begin
47
  gnd <= '0';
48
  gen0 : if has_ds_combo(tech) = 0 generate
49
    swloop : for i in 0 to width-1 generate
50
      od0 : outpad_ds generic map (tech, level, voltage, oepol) port map (odpadp(i), odpadn(i), odval(i), en(i));
51
      os0 : outpad_ds generic map (tech, level, voltage, oepol) port map (ospadp(i), ospadn(i), osval(i), en(i));
52
      id0 : inpad_ds generic map (tech, level, voltage) port map (idpadp(i), idpadn(i), idval(i));
53
      is0 : inpad_ds generic map (tech, level, voltage) port map (ispadp(i), ispadn(i), isval(i));
54
    end generate;
55
  end generate;
56
  combo : if has_ds_combo(tech) /= 0 generate
57
    oen <= not en when oepol /= padoen_polarity(tech) else en;
58
    ut025 : if tech = ut25 generate
59
      u0: ut025crh_lvds_combo generic map (voltage, width)
60
        port map (odpadp, odpadn, ospadp, ospadn, odval, osval, oen,
61
                  idpadp, idpadn, ispadp, ispadn, idval, isval);
62
    end generate;
63
    um : if tech = umc generate
64
      u0: umc_lvds_combo generic map (voltage, width)
65
        port map (odpadp, odpadn, ospadp, ospadn, odval, osval, oen,
66
                  idpadp, idpadn, ispadp, ispadn, idval, isval, lvdsref);
67
    end generate;
68
    rhu : if tech = rhumc generate
69
      u0: rhumc_lvds_combo generic map (voltage, width)
70
        port map (odpadp, odpadn, ospadp, ospadn, odval, osval, oen,
71
                  idpadp, idpadn, ispadp, ispadn, idval, isval, lvdsref);
72
    end generate;
73
  end generate;
74
end;

powered by: WebSVN 2.1.0

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