📄 tech_map.vhd
字号:
end generate; fs90t : if TARGET_TECH = fs90 generate p0 : fs90_toutpadu generic map (drive) port map (d => d, en => en, pad => pad); end generate; umc18t : if TARGET_TECH = umc18 generate p0 : umc18_toutpadu generic map (drive) port map (d => d, en => en, pad => pad); end generate; tsmc25t : if TARGET_TECH = tsmc25 generate p0 : tsmc25_toutpadu generic map (drive) port map (d => d, en => en, pad => pad); end generate; end generate;end;-- bidirectional padlibrary IEEE;use IEEE.std_logic_1164.all;use work.leon_target.all;use work.leon_config.all;use work.tech_atc25.all;use work.tech_atc35.all;use work.tech_fs90.all;use work.tech_umc18.all;use work.tech_generic.all;use work.tech_tsmc25.all;entity iopad is generic (drive : integer := 1); port ( d : in std_logic; en : in std_logic; q : out std_logic; pad : inout std_logic );end; architecture rtl of iopad isbegin inf : if INFER_PADS or (TARGET_TECH = gen) or (TARGET_TECH = virtex) or (TARGET_TECH = proasic) or (TARGET_TECH = virtex2) or (TARGET_TECH = axcel) generate giop0 : geniopad port map (d => d, en => en, q => q, pad => pad); end generate; ninf : if not INFER_PADS generate atc25t : if (TARGET_TECH = atc25) or (TARGET_TECH = atc18) generate p0 : atc25_iopad generic map (drive) port map (d => d, en => en, q => q, pad => pad); end generate; atc35t : if TARGET_TECH = atc35 generate po : atc35_iopad generic map (drive) port map (d => d, en => en, q => q, pad => pad); end generate; fs90t : if TARGET_TECH = fs90 generate po : fs90_iopad generic map (drive) port map (d => d, en => en, q => q, pad => pad); end generate; umc18t : if TARGET_TECH = umc18 generate po : umc18_iopad generic map (drive) port map (d => d, en => en, q => q, pad => pad); end generate; tsmc25t : if TARGET_TECH = tsmc25 generate po : tsmc25_iopad generic map (drive) port map (d => d, en => en, q => q, pad => pad); end generate; end generate;end;-- bidirectional pad with schmitt trigger for I/O ports-- (if available)library IEEE;use IEEE.std_logic_1164.all;use work.leon_target.all;use work.leon_config.all;use work.tech_atc25.all;use work.tech_atc35.all;use work.tech_fs90.all;use work.tech_umc18.all;use work.tech_generic.all;use work.tech_tsmc25.all;entity smiopad is generic (drive : integer := 1); port ( d : in std_logic; en : in std_logic; q : out std_logic; pad : inout std_logic );end; architecture rtl of smiopad isbegin inf : if INFER_PADS or (TARGET_TECH = gen) or (TARGET_TECH = virtex) or (TARGET_TECH = proasic) or (TARGET_TECH = virtex2) or (TARGET_TECH = axcel) generate giop0 : geniopad port map (d => d, en => en, q => q, pad => pad); end generate; ninf : if not INFER_PADS generate smiop1 : if (TARGET_TECH = atc25) or (TARGET_TECH = atc18) generate p0 : atc25_iopad generic map (drive) port map (d => d, en => en, q => q, pad => pad); end generate; smiop2 : if TARGET_TECH = atc35 generate p0 : atc35_iopad generic map (drive) port map (d => d, en => en, q => q, pad => pad); end generate; smiop3 : if TARGET_TECH = fs90 generate p0 : fs90_smiopad generic map (drive) port map (d => d, en => en, q => q, pad => pad); end generate; smiop4 : if TARGET_TECH = umc18 generate p0 : umc18_smiopad generic map (drive) port map (d => d, en => en, q => q, pad => pad); end generate; smiop5 : if TARGET_TECH = tsmc25 generate p0 : tsmc25_smiopad generic map (drive) port map (d => d, en => en, q => q, pad => pad); end generate; end generate;end;-- open-drain padlibrary IEEE;use IEEE.std_logic_1164.all;use work.leon_target.all;use work.leon_config.all;use work.tech_atc25.all;use work.tech_atc35.all;use work.tech_fs90.all;use work.tech_umc18.all;use work.tech_generic.all;use work.tech_tsmc25.all;entity odpad is generic (drive : integer := 1); port (d : in std_logic; pad : out std_logic);end; architecture rtl of odpad isbegin inf : if INFER_PADS or (TARGET_TECH = gen) or (TARGET_TECH = virtex) or (TARGET_TECH = proasic) or (TARGET_TECH = virtex2) or (TARGET_TECH = axcel) generate godpad0 : genodpad port map (d => d, pad => pad); end generate; ninf : if not INFER_PADS generate odp1 : if (TARGET_TECH = atc25) or (TARGET_TECH = atc18) generate p0 : atc25_odpad generic map (drive) port map (d => d, pad => pad); end generate; odp2 : if TARGET_TECH = atc35 generate p0 : atc35_odpad generic map (drive) port map (d => d, pad => pad); end generate; odp3 : if TARGET_TECH = fs90 generate p0 : fs90_odpad generic map (drive) port map (d => d, pad => pad); end generate; odp4 : if TARGET_TECH = umc18 generate p0 : umc18_odpad generic map (drive) port map (d => d, pad => pad); end generate; odp5 : if TARGET_TECH = tsmc25 generate p0 : tsmc25_odpad generic map (drive) port map (d => d, pad => pad); end generate; end generate;end;-- bi-directional open-drainlibrary IEEE;use IEEE.std_logic_1164.all;use work.leon_target.all;use work.leon_config.all;use work.tech_atc25.all;use work.tech_atc35.all;use work.tech_fs90.all;use work.tech_umc18.all;use work.tech_generic.all;use work.tech_tsmc25.all;entity iodpad is generic (drive : integer := 1); port ( d : in std_logic; q : out std_logic; pad : inout std_logic);end; architecture rtl of iodpad isbegin inf : if INFER_PADS or (TARGET_TECH = gen) or (TARGET_TECH = virtex) or (TARGET_TECH = proasic) or (TARGET_TECH = virtex2) or (TARGET_TECH = axcel) generate giodp0 : geniodpad port map (d => d, q => q, pad => pad); end generate; ninf : if not INFER_PADS generate iodp1 : if (TARGET_TECH = atc25) or (TARGET_TECH = atc18) generate p0 : atc25_iodpad generic map (drive) port map (d => d, q => q, pad => pad); end generate; iodp2 : if TARGET_TECH = atc35 generate p0 : atc35_iodpad generic map (drive) port map (d => d, q => q, pad => pad); end generate; iodp3 : if TARGET_TECH = fs90 generate p0 : fs90_iodpad generic map (drive) port map (d => d, q => q, pad => pad); end generate; iodp4 : if TARGET_TECH = umc18 generate p0 : umc18_iodpad generic map (drive) port map (d => d, q => q, pad => pad); end generate; iodp5 : if TARGET_TECH = tsmc25 generate p0 : tsmc25_iodpad generic map (drive) port map (d => d, q => q, pad => pad); end generate; end generate;end;-- PCI input padlibrary IEEE;use IEEE.std_logic_1164.all;use work.leon_target.all;use work.leon_config.all;use work.tech_virtex.all;use work.tech_generic.all;use work.tech_map.all;entity pciinpad is port (pad : in std_logic; q : out std_logic); end; architecture rtl of pciinpad isbegin inf : if INFER_PCI_PADS or ((TARGET_TECH /= virtex) and (TARGET_TECH /= virtex2)) generate ginpad0 : geninpad port map (q => q, pad => pad); end generate; ninf : if not INFER_PCI_PADS generate xcv : if (TARGET_TECH = virtex) or (TARGET_TECH = virtex2) generate p0 : virtex_pciinpad port map (q => q, pad => pad); end generate; end generate;end;-- PCI output padlibrary IEEE;use IEEE.std_logic_1164.all;use work.leon_target.all;use work.leon_config.all;use work.tech_virtex.all;use work.tech_atc25.all;use work.tech_generic.all;entity pcioutpad is port (d : in std_logic; pad : out std_logic); end; architecture rtl of pcioutpad isbegin inf : if INFER_PCI_PADS or ((TARGET_TECH /= atc25) and (TARGET_TECH /= atc18) and (TARGET_TECH /= virtex) and (TARGET_TECH /= virtex2)) generate goutpad0 : genoutpad port map (d => d, pad => pad); end generate; ninf : if not INFER_PCI_PADS generate xcv : if (TARGET_TECH = virtex) or (TARGET_TECH = virtex2) generate opx : virtex_pcioutpad port map (d => d, pad => pad); end generate; op1 : if (TARGET_TECH = atc25) or (TARGET_TECH = atc18) generate opx : atc25_pcioutpad port map (d => d, pad => pad); end generate; end generate;end;-- PCI tristate output padlibrary IEEE;use IEEE.std_logic_1164.all;use work.leon_target.all;use work.leon_config.all;use work.tech_virtex.all;use work.tech_atc25.all;use work.tech_generic.all;entity pcitoutpad is port (d, en : in std_logic; pad : out std_logic); end; architecture rtl of pcitoutpad isbegin inf : if INFER_PCI_PADS or ((TARGET_TECH /= atc25) and (TARGET_TECH /= atc18) and (TARGET_TECH /= virtex) and (TARGET_TECH /= virtex2)) generate giop0 : gentoutpadu port map (d => d, en => en, pad => pad); end generate; ninf : if not INFER_PCI_PADS generate xcv : if (TARGET_TECH = virtex) or (TARGET_TECH = virtex2) generate p0 : virtex_pcitoutpad port map (d => d, en => en, pad => pad); end generate; atc25t : if (TARGET_TECH = atc25) or (TARGET_TECH = atc18) generate p0 : atc25_pcitoutpad port map (d => d, en => en, pad => pad); end generate; end generate;end;-- bidirectional pad-- PCI bidir padlibrary IEEE;use IEEE.std_logic_1164.all;use work.leon_target.all;use work.leon_config.all;use work.tech_virtex.all;use work.tech_atc25.all;use work.tech_generic.all;entity pciiopad is port ( d : in std_logic; en : in std_logic; q : out std_logic; pad : inout std_logic );end; architecture rtl of pciiopad isbegin inf : if INFER_PCI_PADS or ((TARGET_TECH /= atc25) and (TARGET_TECH /= atc18) and (TARGET_TECH /= virtex) and (TARGET_TECH /= virtex2)) generate giop0 : geniopad port map (d => d, en => en, q => q, pad => pad); end generate; ninf : if not INFER_PCI_PADS generate xcv : if (TARGET_TECH = virtex) or (TARGET_TECH = virtex2) generate p0 : virtex_pciiopad port map (d => d, en => en, q => q, pad => pad); end generate; iop1 : if (TARGET_TECH = atc25) or (TARGET_TECH = atc18) generate p0 : atc25_pciiopad port map (d => d, en => en, q => q, pad => pad); end generate; end generate;end;-- PCI bi-directional open-drainlibrary IEEE;use IEEE.std_logic_1164.all;use work.leon_target.all;use work.leon_config.all;use work.tech_virtex.all;use work.tech_atc25.all;use work.tech_generic.all;entity pciiodpad is port ( d : in std_logic; q : out std_logic; pad : inout std_logic);end; architecture rtl of pciiodpad isbegin inf : if INFER_PCI_PADS or ((TARGET_TECH /= atc25) and (TARGET_TECH /= atc18) and (TARGET_TECH /= virtex) and (TARGET_TECH /= virtex2)) generate giodp0 : geniodpad port map (d => d, q => q, pad => pad); end generate; ninf : if not INFER_PCI_PADS generate xcv : if (TARGET_TECH = virtex) or (TARGET_TECH = virtex2) generate p0 : virtex_pciiodpad port map (d => d, q => q, pad => pad); end generate; iodp1 : if (TARGET_TECH = atc25) or (TARGET_TECH = atc18) generate p0 : atc25_pciiodpad port map (d => d, q => q, pad => pad); end generate; end generate;end;library IEEE;use IEEE.std_logic_1164.all;use work.leon_target.all;use work.leon_iface.all;use work.leon_config.all;use work.tech_generic.all;use work.tech_virtex.all;use work.tech_virtex2.all;entity clkgen isport ( 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;architecture rtl of clkgen isbegin c0: if TARGET_CLK = gen generate g0 : generic_clkgen port map (clkin, pciclkin, clk, clkn, sdclk, pciclk, cgi, cgo); end generate; c1: if TARGET_CLK = virtex generate v : virtex_clkgen generic map (clk_mul => PLL_CLK_MUL, clk_div => PLL_CLK_DIV) port map (clkin, pciclkin, clk, clkn, sdclk, pciclk, cgi, cgo); end generate; c2: if TARGET_CLK = virtex2 generate v : virtex2_clkgen generic map (clk_mul => PLL_CLK_MUL, clk_div => PLL_CLK_DIV) port map (clkin, pciclkin, clk, clkn, sdclk, pciclk, cgi, cgo); end generate;end;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -