📄 pad_unisim_gen.vhd
字号:
use techmap.gencomp.all;-- pragma translate_offlibrary unisim;use unisim.IBUFG;use unisim.IBUF;use unisim.BUFGMUX;use unisim.BUFG;-- pragma translate_onentity virtex_clkpad is generic (level : integer := 0; voltage : integer := x33v; arch : integer := 0); port (pad : in std_ulogic; o : out std_ulogic);end; architecture rtl of virtex_clkpad is component IBUFG generic( CAPACITANCE : string := "DONT_CARE"; IOSTANDARD : string := "LVCMOS25"); port (O : out std_logic; I : in std_logic); end component; component IBUF generic( CAPACITANCE : string := "DONT_CARE"; IOSTANDARD : string := "LVCMOS25"); port (O : out std_ulogic; I : in std_ulogic); end component; component BUFGMUX port (O : out std_logic; I0, I1, S : in std_logic); end component; component BUFG port (O : out std_logic; I : in std_logic); end component;signal gnd, ol : std_ulogic;begin gnd <= '0'; g0 : if arch = 0 generate pci0 : if level = pci33 generate pci_5 : if voltage = x50v generate ip : IBUFG generic map (IOSTANDARD => "PCI33_5") port map (O => o, I => pad); end generate; pci_3 : if voltage /= x50v generate ip : IBUFG generic map (IOSTANDARD => "PCI33_3") port map (O => o, I => pad); end generate; end generate; ttl0 : if level = ttl generate ip : IBUFG generic map (IOSTANDARD => "LVTTL") port map (O => o, I => pad); end generate; cmos0 : if level = cmos generate cmos_33 : if voltage = x33v generate ip : IBUFG generic map (IOSTANDARD => "LVCMOS33") port map (O => o, I => pad); end generate; cmos_25 : if voltage /= x33v generate ip : IBUFG generic map (IOSTANDARD => "LVCMOS25") port map (O => o, I => pad); end generate; end generate; sstl2 : if level = sstl2_ii generate ip : IBUFG generic map (IOSTANDARD => "SSTL2_II") port map (O => o, I => pad); end generate; gen0 : if (level /= pci33) and (level /= ttl) and (level /= cmos) and (level /= sstl2_ii) generate ip : IBUFG port map (O => o, I => pad); end generate; end generate; g1 : if arch = 1 generate pci0 : if level = pci33 generate pci_5 : if voltage = x50v generate ip : IBUF generic map (IOSTANDARD => "PCI33_5") port map (O => ol, I => pad); bf : BUFGMUX port map (O => o, I0 => ol, I1 => gnd, S => gnd); end generate; pci_3 : if voltage /= x50v generate ip : IBUF generic map (IOSTANDARD => "PCI33_3") port map (O => ol, I => pad); bf : BUFGMUX port map (O => o, I0 => ol, I1 => gnd, S => gnd); end generate; end generate; ttl0 : if level = ttl generate ip : IBUF generic map (IOSTANDARD => "LVTTL") port map (O => ol, I => pad); bf : BUFGMUX port map (O => o, I0 => ol, I1 => gnd, S => gnd); end generate; cmos0 : if level = cmos generate ip : IBUF generic map (IOSTANDARD => "LVCMOS33") port map (O => ol, I => pad); bf : BUFGMUX port map (O => o, I0 => ol, I1 => gnd, S => gnd); end generate; gen0 : if (level /= pci33) and (level /= ttl) and (level /= cmos) generate ip : IBUF port map (O => ol, I => pad); bf : BUFGMUX port map (O => o, I0 => ol, I1 => gnd, S => gnd); end generate; end generate; g2 : if arch = 2 generate pci0 : if level = pci33 generate pci_5 : if voltage = x50v generate ip : IBUFG generic map (IOSTANDARD => "PCI33_5") port map (O => ol, I => pad); bf : BUFG port map (O => o, I => ol); end generate; pci_3 : if voltage /= x50v generate ip : IBUFG generic map (IOSTANDARD => "PCI33_3") port map (O => ol, I => pad); bf : BUFG port map (O => o, I => ol); end generate; end generate; ttl0 : if level = ttl generate ip : IBUFG generic map (IOSTANDARD => "LVTTL") port map (O => ol, I => pad); bf : BUFG port map (O => o, I => ol); end generate; cmos0 : if level = cmos generate ip : IBUFG generic map (IOSTANDARD => "LVCMOS33") port map (O => ol, I => pad); bf : BUFG port map (O => o, I => ol); end generate; gen0 : if (level /= pci33) and (level /= ttl) and (level /= cmos) generate ip : IBUFG port map (O => ol, I => pad); bf : BUFG port map (O => o, I => ol); end generate; end generate;end; library ieee;use ieee.std_logic_1164.all;library techmap;use techmap.gencomp.all;-- pragma translate_offlibrary unisim;use unisim.OBUFDS_LVDS_25;use unisim.OBUFDS_LVDS_33;-- pragma translate_onentity virtex_outpad_ds is generic (level : integer := lvds; voltage : integer := x33v); port (padp, padn : out std_ulogic; i : in std_ulogic);end ;architecture rtl of virtex_outpad_ds is component OBUFDS_LVDS_25 port ( O : out std_ulogic; OB : out std_ulogic; I : in std_ulogic); end component; component OBUFDS_LVDS_33 port ( O : out std_ulogic; OB : out std_ulogic; I : in std_ulogic); end component;begin xlvds : if level = lvds generate lvds_33 : if voltage = x33v generate op : OBUFDS_LVDS_33 port map (O => padp, OB => padn, I => i); end generate; lvds_25 : if voltage /= x33v generate op : OBUFDS_LVDS_25 port map (O => padp, OB => padn, I => i); end generate; end generate;end;library ieee;use ieee.std_logic_1164.all;library techmap;use techmap.gencomp.all;-- pragma translate_offlibrary unisim;use unisim.IBUFDS_LVDS_25;use unisim.IBUFDS_LVDS_33;-- pragma translate_onentity virtex_inpad_ds is generic (level : integer := lvds; voltage : integer := x33v); port (padp, padn : in std_ulogic; o : out std_ulogic);end; architecture rtl of virtex_inpad_ds is component IBUFDS_LVDS_25 port ( O : out std_ulogic; I : in std_ulogic; IB : in std_ulogic); end component; component IBUFDS_LVDS_33 port ( O : out std_ulogic; I : in std_ulogic; IB : in std_ulogic); end component;begin xlvds : if level = lvds generate lvds_33 : if voltage = x33v generate ip : IBUFDS_LVDS_33 port map (O => o, I => padp, IB => padn); end generate; lvds_25 : if voltage /= x33v generate ip : IBUFDS_LVDS_25 port map (O => o, I => padp, IB => padn); end generate; end generate; beh : if level /= lvds generate o <= padp after 1 ns; end generate;end;library ieee;use ieee.std_logic_1164.all;library techmap;use techmap.gencomp.all;-- pragma translate_offlibrary unisim;use unisim.IBUFGDS_LVDS_25;use unisim.IBUFGDS_LVDS_33;-- pragma translate_onentity virtex_clkpad_ds is generic (level : integer := lvds; voltage : integer := x33v); port (padp, padn : in std_ulogic; o : out std_ulogic);end; architecture rtl of virtex_clkpad_ds is component IBUFGDS_LVDS_25 port ( O : out std_ulogic; I : in std_ulogic; IB : in std_ulogic); end component; component IBUFGDS_LVDS_33 port ( O : out std_ulogic; I : in std_ulogic; IB : in std_ulogic); end component;begin xlvds : if level = lvds generate lvds_33 : if voltage = x33v generate ip : IBUFGDS_LVDS_33 port map (O => o, I => padp, IB => padn); end generate; lvds_25 : if voltage /= x33v generate ip : IBUFGDS_LVDS_25 port map (O => o, I => padp, IB => padn); end generate; end generate; beh : if level /= lvds generate o <= padp after 1 ns; end generate;end;library ieee;use ieee.std_logic_1164.all;library techmap;use techmap.gencomp.all;-- pragma translate_offlibrary unisim;use unisim.IBUFDS;-- pragma translate_onentity virtex4_inpad_ds is generic (level : integer := lvds; voltage : integer := x33v); port (padp, padn : in std_ulogic; o : out std_ulogic);end; architecture rtl of virtex4_inpad_ds is component IBUFDS generic ( CAPACITANCE : string := "DONT_CARE"; DIFF_TERM : boolean := FALSE; IBUF_DELAY_VALUE : string := "0"; IFD_DELAY_VALUE : string := "AUTO"; IOSTANDARD : string := "DEFAULT"); port ( O : out std_ulogic; I : in std_ulogic; IB : in std_ulogic); end component;begin xlvds : if level = lvds generate lvds_33 : if voltage = x33v generate ip : IBUFDS generic map (DIFF_TERM => true, IOSTANDARD =>"LVDS_33") port map (O => o, I => padp, IB => padn); end generate; lvds_25 : if voltage /= x33v generate ip : IBUFDS generic map (DIFF_TERM => true, IOSTANDARD =>"LVDS_25") port map (O => o, I => padp, IB => padn); end generate; end generate; beh : if level /= lvds generate o <= padp after 1 ns; end generate;end;library ieee;use ieee.std_logic_1164.all;library techmap;use techmap.gencomp.all;-- pragma translate_offlibrary unisim;use unisim.IBUFGDS;-- pragma translate_onentity virtex4_clkpad_ds is generic (level : integer := lvds; voltage : integer := x33v); port (padp, padn : in std_ulogic; o : out std_ulogic);end; architecture rtl of virtex4_clkpad_ds is component IBUFGDS generic ( CAPACITANCE : string := "DONT_CARE"; DIFF_TERM : boolean := FALSE; IBUF_DELAY_VALUE : string := "0"; IOSTANDARD : string := "DEFAULT"); port ( O : out std_ulogic; I : in std_ulogic; IB : in std_ulogic); end component;begin xlvds : if level = lvds generate lvds_33 : if voltage = x33v generate ip : IBUFGDS generic map (DIFF_TERM => true, IOSTANDARD =>"LVDS_33") port map (O => o, I => padp, IB => padn); end generate; lvds_25 : if voltage /= x33v generate ip : IBUFGDS generic map (DIFF_TERM => true, IOSTANDARD =>"LVDS_25") port map (O => o, I => padp, IB => padn); end generate; end generate; beh : if level /= lvds generate o <= padp after 1 ns; end generate;end;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -