allclkgen.vhd
581 lines
| 16.7 KiB
| text/x-vhdl
|
VhdlLexer
martin
|
r100 | ------------------------------------------------------------------------------ | ||
-- This file is a part of the GRLIB VHDL IP LIBRARY | ||||
-- Copyright (C) 2003 - 2008, Gaisler Research | ||||
-- Copyright (C) 2008 - 2010, Aeroflex Gaisler | ||||
-- | ||||
-- This program is free software; you can redistribute it and/or modify | ||||
-- it under the terms of the GNU General Public License as published by | ||||
-- the Free Software Foundation; either version 2 of the License, or | ||||
-- (at your option) any later version. | ||||
-- | ||||
-- This program is distributed in the hope that it will be useful, | ||||
-- but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||
-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||||
-- GNU General Public License for more details. | ||||
-- | ||||
-- You should have received a copy of the GNU General Public License | ||||
-- along with this program; if not, write to the Free Software | ||||
-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | ||||
----------------------------------------------------------------------------- | ||||
-- Package: allclkgen | ||||
-- File: allclkgen.vhd | ||||
-- Author: Jiri Gaisler - Gaisler Research | ||||
-- Description: Clock generator interface package | ||||
------------------------------------------------------------------------------ | ||||
library ieee; | ||||
use ieee.std_logic_1164.all; | ||||
library techmap; | ||||
use techmap.gencomp.all; | ||||
package allclkgen is | ||||
component clkgen_virtex2 | ||||
generic ( | ||||
clk_mul : integer := 1; | ||||
clk_div : integer := 1; | ||||
sdramen : integer := 0; | ||||
noclkfb : integer := 0; | ||||
pcien : integer := 0; | ||||
pcidll : integer := 0; | ||||
pcisysclk: integer := 0; | ||||
freq : integer := 25000; | ||||
clk2xen : integer := 0; | ||||
clksel : integer := 0); -- enable clock select | ||||
port ( | ||||
clkin : in std_logic; | ||||
pciclkin: in std_logic; | ||||
clk : out std_logic; -- main clock | ||||
clkn : out std_logic; -- inverted main clock | ||||
clk2x : out std_logic; -- double clock | ||||
sdclk : out std_logic; -- SDRAM clock | ||||
pciclk : out std_logic; -- PCI clock | ||||
cgi : in clkgen_in_type; | ||||
cgo : out clkgen_out_type; | ||||
clk1xu : out std_ulogic; -- unscaled clock | ||||
clk2xu : out std_ulogic); | ||||
end component; | ||||
component clkgen_spartan3 | ||||
generic ( | ||||
clk_mul : integer := 1; | ||||
clk_div : integer := 1; | ||||
sdramen : integer := 0; | ||||
noclkfb : integer := 0; | ||||
pcien : integer := 0; | ||||
pcidll : integer := 0; | ||||
pcisysclk: integer := 0; | ||||
freq : integer := 25000; | ||||
clk2xen : integer := 0; | ||||
clksel : integer := 0); -- enable clock select | ||||
port ( | ||||
clkin : in std_logic; | ||||
pciclkin: in std_logic; | ||||
clk : out std_logic; -- main clock | ||||
clkn : out std_logic; -- inverted main clock | ||||
clk2x : out std_logic; -- double clock | ||||
sdclk : out std_logic; -- SDRAM clock | ||||
pciclk : out std_logic; -- PCI clock | ||||
cgi : in clkgen_in_type; | ||||
cgo : out clkgen_out_type; | ||||
clk1xu : out std_ulogic; -- unscaled clock | ||||
clk2xu : out std_ulogic); | ||||
end component; | ||||
component clkgen_virtex5 | ||||
generic ( | ||||
clk_mul : integer := 1; | ||||
clk_div : integer := 1; | ||||
sdramen : integer := 0; | ||||
noclkfb : integer := 0; | ||||
pcien : integer := 0; | ||||
pcidll : integer := 0; | ||||
pcisysclk: integer := 0; | ||||
freq : integer := 25000; | ||||
clk2xen : integer := 0; | ||||
clksel : integer := 0); -- enable clock select | ||||
port ( | ||||
clkin : in std_logic; | ||||
pciclkin: in std_logic; | ||||
clk : out std_logic; -- main clock | ||||
clkn : out std_logic; -- inverted main clock | ||||
clk2x : out std_logic; -- double clock | ||||
sdclk : out std_logic; -- SDRAM clock | ||||
pciclk : out std_logic; -- PCI clock | ||||
cgi : in clkgen_in_type; | ||||
cgo : out clkgen_out_type; | ||||
clk1xu : out std_ulogic; -- unscaled clock | ||||
clk2xu : out std_ulogic); | ||||
end component; | ||||
component clkgen_axcelerator | ||||
generic ( | ||||
clk_mul : integer := 1; | ||||
clk_div : integer := 1; | ||||
sdramen : integer := 0; | ||||
sdinvclk : integer := 0; | ||||
pcien : integer := 0; | ||||
pcidll : integer := 0; | ||||
pcisysclk: integer := 0; | ||||
freq : integer := 25000); | ||||
port ( | ||||
clkin : in std_logic; | ||||
pciclkin: in std_logic; | ||||
clk : out std_logic; -- main clock | ||||
clkn : out std_logic; -- inverted main clock | ||||
sdclk : out std_logic; -- SDRAM clock | ||||
pciclk : out std_logic; -- PCI clock | ||||
cgi : in clkgen_in_type; | ||||
cgo : out clkgen_out_type); | ||||
end component; | ||||
component clkgen_altera_mf | ||||
generic ( | ||||
clk_mul : integer := 1; | ||||
clk_div : integer := 1; | ||||
sdramen : integer := 0; | ||||
sdinvclk : integer := 0; | ||||
pcien : integer := 0; | ||||
pcidll : integer := 0; | ||||
pcisysclk: integer := 0; | ||||
freq : integer := 25000; | ||||
clk2xen : integer := 0); | ||||
port ( | ||||
clkin : in std_logic; | ||||
pciclkin: in std_logic; | ||||
clk : out std_logic; -- main clock | ||||
clkn : out std_logic; -- inverted main clock | ||||
clk2x : out std_logic; -- double clock | ||||
sdclk : out std_logic; -- SDRAM clock | ||||
pciclk : out std_logic; -- PCI clock | ||||
cgi : in clkgen_in_type; | ||||
cgo : out clkgen_out_type); | ||||
end component; | ||||
component clkgen_stratixii | ||||
generic ( | ||||
clk_mul : integer := 1; | ||||
clk_div : integer := 1; | ||||
sdramen : integer := 0; | ||||
sdinvclk : integer := 0; | ||||
pcien : integer := 0; | ||||
pcidll : integer := 0; | ||||
pcisysclk: integer := 0; | ||||
freq : integer := 25000; | ||||
clk2xen : integer := 0); | ||||
port ( | ||||
clkin : in std_logic; | ||||
pciclkin: in std_logic; | ||||
clk : out std_logic; -- main clock | ||||
clkn : out std_logic; -- inverted main clock | ||||
clk2x : out std_logic; -- double clock | ||||
sdclk : out std_logic; -- SDRAM clock | ||||
pciclk : out std_logic; -- PCI clock | ||||
cgi : in clkgen_in_type; | ||||
cgo : out clkgen_out_type); | ||||
end component; | ||||
component clkgen_cycloneiii | ||||
generic ( | ||||
clk_mul : integer := 1; | ||||
clk_div : integer := 1; | ||||
sdramen : integer := 0; | ||||
sdinvclk : integer := 0; | ||||
pcien : integer := 0; | ||||
pcidll : integer := 0; | ||||
pcisysclk: integer := 0; | ||||
freq : integer := 25000; | ||||
clk2xen : integer := 0); | ||||
port ( | ||||
clkin : in std_logic; | ||||
pciclkin: in std_logic; | ||||
clk : out std_logic; -- main clock | ||||
clkn : out std_logic; -- inverted main clock | ||||
clk2x : out std_logic; -- double clock | ||||
sdclk : out std_logic; -- SDRAM clock | ||||
pciclk : out std_logic; -- PCI clock | ||||
cgi : in clkgen_in_type; | ||||
cgo : out clkgen_out_type); | ||||
end component; | ||||
component clkgen_stratixiii | ||||
generic ( | ||||
clk_mul : integer := 1; | ||||
clk_div : integer := 1; | ||||
sdramen : integer := 0; | ||||
sdinvclk : integer := 0; | ||||
pcien : integer := 0; | ||||
pcidll : integer := 0; | ||||
pcisysclk: integer := 0; | ||||
freq : integer := 25000; | ||||
clk2xen : integer := 0); | ||||
port ( | ||||
clkin : in std_logic; | ||||
pciclkin: in std_logic; | ||||
clk : out std_logic; -- main clock | ||||
clkn : out std_logic; -- inverted main clock | ||||
clk2x : out std_logic; -- double clock | ||||
sdclk : out std_logic; -- SDRAM clock | ||||
pciclk : out std_logic; -- PCI clock | ||||
cgi : in clkgen_in_type; | ||||
cgo : out clkgen_out_type); | ||||
end component; | ||||
component clkgen_rh_lib18t | ||||
generic ( | ||||
clk_mul : integer := 1; | ||||
clk_div : integer := 1); | ||||
port ( | ||||
rst : in std_logic; | ||||
clkin : in std_logic; | ||||
clk : out std_logic; | ||||
sdclk : out std_logic; -- SDRAM clock | ||||
clk2x : out std_logic; | ||||
clk4x : out std_logic | ||||
); | ||||
end component; | ||||
component clkmul_virtex2 | ||||
generic ( clk_mul : integer := 2 ; clk_div : integer := 2); | ||||
port ( | ||||
resetin : in std_logic; | ||||
clkin : in std_logic; | ||||
clk : out std_logic; | ||||
resetout: out std_logic | ||||
); | ||||
end component; | ||||
component clkand_unisim | ||||
port( | ||||
i : in std_ulogic; | ||||
en : in std_ulogic; | ||||
o : out std_ulogic | ||||
); | ||||
end component; | ||||
component clkand_ut025crh | ||||
port( | ||||
i : in std_ulogic; | ||||
en : in std_ulogic; | ||||
o : out std_ulogic | ||||
); | ||||
end component; | ||||
component clkand_ut130hbd | ||||
port( | ||||
i : in std_ulogic; | ||||
en : in std_ulogic; | ||||
o : out std_ulogic; | ||||
tsten : in std_ulogic | ||||
); | ||||
end component; | ||||
component clkrand_ut130hbd | ||||
port( | ||||
i : in std_ulogic; | ||||
en : in std_ulogic; | ||||
o : out std_ulogic | ||||
); | ||||
end component; | ||||
component clkand_rh_lib18t | ||||
port( | ||||
i : in std_ulogic; | ||||
en : in std_ulogic; | ||||
o : out std_ulogic; | ||||
tsten : in std_ulogic | ||||
); | ||||
end component; | ||||
component clkmux_unisim | ||||
port( | ||||
i0, i1 : in std_ulogic; | ||||
sel : in std_ulogic; | ||||
o : out std_ulogic | ||||
); | ||||
end component; | ||||
component clkmux_ut130hbd | ||||
port( | ||||
i0, i1 : in std_ulogic; | ||||
sel : in std_ulogic; | ||||
o : out std_ulogic | ||||
); | ||||
end component; | ||||
component clkmux_fusion | ||||
port( | ||||
i0, i1 : in std_ulogic; | ||||
sel : in std_ulogic; | ||||
o : out std_ulogic | ||||
); | ||||
end component; | ||||
component altera_pll | ||||
generic ( | ||||
clk_mul : integer := 1; | ||||
clk_div : integer := 1; | ||||
clk_freq : integer := 25000; | ||||
clk2xen : integer := 0; | ||||
sdramen : integer := 0 | ||||
); | ||||
port ( | ||||
inclk0 : in std_ulogic; | ||||
c0 : out std_ulogic; | ||||
c0_2x : out std_ulogic; | ||||
e0 : out std_ulogic; | ||||
locked : out std_ulogic); | ||||
end component; | ||||
component clkgen_proasic3 | ||||
generic ( | ||||
clk_mul : integer := 1; | ||||
clk_div : integer := 1; | ||||
clk_odiv : integer := 1; -- output divider | ||||
pcien : integer := 0; | ||||
pcisysclk: integer := 0; | ||||
freq : integer := 25000; -- clock frequency in KHz | ||||
clkb_odiv: integer := 0; | ||||
clkc_odiv: integer := 0); | ||||
port ( | ||||
clkin : in std_ulogic; | ||||
pciclkin: in std_ulogic; | ||||
clk : out std_ulogic; -- main clock | ||||
sdclk : out std_ulogic; -- SDRAM clock | ||||
pciclk : out std_ulogic; | ||||
cgi : in clkgen_in_type; | ||||
cgo : out clkgen_out_type; | ||||
clkb : out std_logic; | ||||
clkc : out std_logic); | ||||
end component; | ||||
component clkgen_fusion | ||||
generic ( | ||||
clk_mul : integer := 1; | ||||
clk_div : integer := 1; | ||||
clk_odiv : integer := 1; -- output divider | ||||
pcien : integer := 0; | ||||
pcisysclk: integer := 0; | ||||
freq : integer := 25000; -- clock frequency in KHz | ||||
clkb_odiv: integer := 0; | ||||
clkc_odiv: integer := 0); | ||||
port ( | ||||
clkin : in std_ulogic; | ||||
pciclkin: in std_ulogic; | ||||
clk : out std_ulogic; -- main clock | ||||
sdclk : out std_ulogic; -- SDRAM clock | ||||
pciclk : out std_ulogic; | ||||
cgi : in clkgen_in_type; | ||||
cgo : out clkgen_out_type; | ||||
clkb : out std_logic; | ||||
clkc : out std_logic); | ||||
end component; | ||||
component clkgen_proasic3e | ||||
generic ( | ||||
clk_mul : integer := 1; | ||||
clk_div : integer := 1; | ||||
clk_odiv : integer := 1; -- output divider | ||||
pcien : integer := 0; | ||||
pcisysclk: integer := 0; | ||||
freq : integer := 25000; -- clock frequency in KHz | ||||
clkb_odiv: integer := 0; | ||||
clkc_odiv: integer := 0); | ||||
port ( | ||||
clkin : in std_ulogic; | ||||
pciclkin: in std_ulogic; | ||||
clk : out std_ulogic; -- main clock | ||||
sdclk : out std_ulogic; -- SDRAM clock | ||||
pciclk : out std_ulogic; | ||||
cgi : in clkgen_in_type; | ||||
cgo : out clkgen_out_type; | ||||
clkb : out std_logic; | ||||
clkc : out std_logic); | ||||
end component; | ||||
component clkgen_proasic3l | ||||
generic ( | ||||
clk_mul : integer := 1; | ||||
clk_div : integer := 1; | ||||
clk_odiv : integer := 1; -- output divider | ||||
pcien : integer := 0; | ||||
pcisysclk: integer := 0; | ||||
freq : integer := 25000; -- clock frequency in KHz | ||||
clkb_odiv: integer := 0; | ||||
clkc_odiv: integer := 0); | ||||
port ( | ||||
clkin : in std_ulogic; | ||||
pciclkin: in std_ulogic; | ||||
clk : out std_ulogic; -- main clock | ||||
sdclk : out std_ulogic; -- SDRAM clock | ||||
pciclk : out std_ulogic; | ||||
cgi : in clkgen_in_type; | ||||
cgo : out clkgen_out_type; | ||||
clkb : out std_logic; | ||||
clkc : out std_logic); | ||||
end component; | ||||
component cyclone3_pll is | ||||
generic ( | ||||
clk_mul : integer := 1; | ||||
clk_div : integer := 1; | ||||
clk_freq : integer := 25000; | ||||
clk2xen : integer := 0; | ||||
sdramen : integer := 0 | ||||
); | ||||
port ( | ||||
inclk0 : in std_ulogic; | ||||
c0 : out std_ulogic; | ||||
c0_2x : out std_ulogic; | ||||
e0 : out std_ulogic; | ||||
locked : out std_ulogic); | ||||
end component; | ||||
component stratix3_pll | ||||
generic ( | ||||
clk_mul : integer := 1; | ||||
clk_div : integer := 1; | ||||
clk_freq : integer := 25000; | ||||
clk2xen : integer := 0; | ||||
sdramen : integer := 0 | ||||
); | ||||
port ( | ||||
inclk0 : in std_ulogic; | ||||
c0 : out std_ulogic; | ||||
c0_2x : out std_ulogic; | ||||
e0 : out std_ulogic; | ||||
locked : out std_ulogic); | ||||
end component; | ||||
component clkgen_dare | ||||
port ( | ||||
clkin : in std_logic; | ||||
clk : out std_logic; -- main clock | ||||
clk2x : out std_logic; -- 2x clock | ||||
sdclk : out std_logic; -- SDRAM clock | ||||
pciclk : out std_logic; -- PCI clock | ||||
cgi : in clkgen_in_type; | ||||
cgo : out clkgen_out_type; | ||||
clk4x : out std_logic; -- 4x clock | ||||
clk1xu : out std_logic; -- unscaled 1X clock | ||||
clk2xu : out std_logic); -- unscaled 2X clock | ||||
end component; | ||||
component clkgen_easic90 | ||||
generic ( | ||||
clk_mul : integer; | ||||
clk_div : integer; | ||||
freq : integer; | ||||
pcisysclk : integer; | ||||
pcien : integer); | ||||
port ( | ||||
clkin : in std_ulogic; | ||||
pciclkin : in std_ulogic; | ||||
clk : out std_ulogic; | ||||
clk2x : out std_ulogic; | ||||
clk4x : out std_ulogic; | ||||
clkn : out std_ulogic; | ||||
lock : out std_ulogic); | ||||
end component; | ||||
component clkmux_rhlib18t | ||||
port( | ||||
i0 : in std_ulogic; | ||||
i1 : in std_ulogic; | ||||
sel : in std_ulogic; | ||||
o : out std_ulogic); | ||||
end component; | ||||
component clkand_n2x | ||||
port( | ||||
i : in std_ulogic; | ||||
en : in std_ulogic; | ||||
o : out std_ulogic; | ||||
tsten : in std_ulogic := '0' | ||||
); | ||||
end component; | ||||
component clkgen_n2x | ||||
generic ( | ||||
clk_mul : integer := 1; | ||||
clk_div : integer := 1; | ||||
sdramen : integer := 0; | ||||
noclkfb : integer := 0; | ||||
pcien : integer := 0; | ||||
pcidll : integer := 0; | ||||
pcisysclk: integer := 0; | ||||
freq : integer := 25000; -- clock frequency in KHz | ||||
clk2xen : integer := 0; | ||||
clksel : integer := 0; -- enable clock select | ||||
clk270en : integer := 0); | ||||
port ( | ||||
clkin : in std_ulogic; | ||||
pciclkin: in std_ulogic; | ||||
clk : out std_ulogic; -- main clock | ||||
clkn : out std_ulogic; -- inverted main clock | ||||
clk2x : out std_ulogic; -- double clock | ||||
sdclk : out std_ulogic; -- SDRAM clock | ||||
pciclk : out std_ulogic; -- PCI clock | ||||
cgi : in clkgen_in_type; | ||||
cgo : out clkgen_out_type; | ||||
clk1xu : out std_ulogic; -- unscaled clock | ||||
clk2xu : out std_ulogic; -- unscaled 2X clock | ||||
clk270 : out std_ulogic -- clk shifted 270 degrees | ||||
); | ||||
end component; | ||||
component clkgen_ut130hbd | ||||
generic ( | ||||
clk_mul : integer := 1; | ||||
clk_div : integer := 1; | ||||
sdramen : integer := 0; | ||||
noclkfb : integer := 0; | ||||
pcien : integer := 0; | ||||
pcidll : integer := 0; | ||||
pcisysclk: integer := 0; | ||||
freq : integer := 25000; -- clock frequency in KHz | ||||
clk2xen : integer := 0; | ||||
clksel : integer := 0); -- enable clock select | ||||
port ( | ||||
clkin : in std_ulogic; | ||||
pciclkin: in std_ulogic; | ||||
clk : out std_ulogic; -- main clock | ||||
clkn : out std_ulogic; -- inverted main clock | ||||
clk2x : out std_ulogic; -- double clock | ||||
sdclk : out std_ulogic; -- SDRAM clock | ||||
pciclk : out std_ulogic; -- PCI clock | ||||
cgi : in clkgen_in_type; | ||||
cgo : out clkgen_out_type; | ||||
clk1xu : out std_ulogic; -- unscaled clock | ||||
clk2xu : out std_ulogic -- unscaled 2X clock | ||||
); | ||||
end component; | ||||
component clkgen_ut90nhbd is | ||||
generic ( | ||||
clk_mul : integer := 1; | ||||
clk_div : integer := 1; | ||||
sdramen : integer := 0; | ||||
noclkfb : integer := 0; | ||||
pcien : integer := 0; | ||||
pcidll : integer := 0; | ||||
pcisysclk: integer := 0; | ||||
freq : integer := 25000; -- clock frequency in KHz | ||||
clk2xen : integer := 0; | ||||
clksel : integer := 0); -- enable clock select | ||||
port ( | ||||
clkin : in std_ulogic; | ||||
pciclkin: in std_ulogic; | ||||
clk : out std_ulogic; -- main clock | ||||
clkn : out std_ulogic; -- inverted main clock | ||||
clk2x : out std_ulogic; -- double clock | ||||
sdclk : out std_ulogic; -- SDRAM clock | ||||
pciclk : out std_ulogic; -- PCI clock | ||||
cgi : in clkgen_in_type; | ||||
cgo : out clkgen_out_type; | ||||
clk1xu : out std_ulogic; -- unscaled clock | ||||
clk2xu : out std_ulogic -- unscaled 2X clock | ||||
); | ||||
end component; | ||||
end; | ||||