⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tech_map.vhd

📁 ARM7的源代码
💻 VHD
📖 第 1 页 / 共 3 页
字号:
	   port map (rst, clk, clkn, rfi, rfo);    end generate;    atm2 : if TARGET_TECH = atc25 generate       u0 : atc25_regfile_iu generic map (rftype, abits, dbits, words)	   port map (rst, clk, clkn, rfi, rfo);    end generate;    atm3 : if TARGET_TECH = atc35 generate       u0 : atc35_regfile generic map (abits, dbits, words)	   port map (rst, clk, clkn, rfi, rfo);    end generate;    umc0 : if TARGET_TECH = fs90 generate       u0 : fs90_regfile generic map (abits, dbits, words)	   port map (rst, clk, clkn, rfi, rfo);    end generate;    umc1 : if TARGET_TECH = umc18 generate       u0 : umc18_regfile generic map (abits, dbits, words)	   port map (rst, clk, clkn, rfi, rfo);    end generate;    xcv : if TARGET_TECH = virtex generate       u0 : virtex_regfile generic map (rftype, abits, dbits, words)	   port map (rst, clk , clkn , rfi, rfo);    end generate;    xc2v : if TARGET_TECH = virtex2 generate       u0 : virtex2_regfile generic map (rftype, abits, dbits, words)	   port map (rst, clk , clkn , rfi, rfo);    end generate;    sim : if TARGET_TECH = gen generate      u0 : generic_regfile_iu generic map (rftype, abits, dbits, words)	 port map (rst, clk , clkn , rfi, rfo);    end generate;    tsmc : if TARGET_TECH = tsmc25 generate       u0 : tsmc25_regfile_iu generic map (abits, dbits, words)	 port map (rst, clk , clkn , rfi, rfo);    end generate;    proa : if TARGET_TECH = proasic generate       u0 : proasic_regfile_iu generic map (rftype, abits, dbits, words)	   port map (rst, clk , clkn , rfi, rfo);    end generate;    axc : if TARGET_TECH = axcel generate       u0 : axcel_regfile_iu generic map (rftype, abits, dbits, words)	   port map (rst, clk , clkn , rfi, rfo);    end generate;  end generate;end;-- Parallel FPU/CP regfileLIBRARY ieee;use IEEE.std_logic_1164.all;use work.leon_target.all;use work.leon_config.all;use work.leon_iface.all;use work.tech_atc18.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_virtex.all;use work.tech_virtex2.all;use work.tech_tsmc25.all;use work.tech_proasic.all;use work.tech_axcel.all;entity regfile_cp is  generic (     abits : integer := 4; dbits : integer := 32; words : integer := 16  );  port (    rst      : in std_logic;    clk      : in clk_type;    rfi      : in rf_cp_in_type;    rfo      : out rf_cp_out_type);end;architecture rtl of regfile_cp issignal vcc : std_logic;begin  vcc <= '1';  inf : if INFER_REGF generate     u0 : generic_regfile_cp generic map (abits, dbits, words)         port map (rst, clk, rfi, rfo);  end generate;  ninf : if not INFER_REGF generate     atm1 : if TARGET_TECH = atc18 generate       u0 : atc18_regfile_cp generic map (abits, dbits, words)	   port map (rst, clk, rfi, rfo);    end generate;    atm2 : if TARGET_TECH = atc25 generate       u0 : atc25_regfile_cp generic map (abits, dbits, words)	   port map (rst, clk, rfi, rfo);    end generate;    atm3 : if TARGET_TECH = atc35 generate       u0 : atc35_regfile_cp generic map (abits, dbits, words)	   port map (rst, clk, rfi, rfo);    end generate;--    umc0 : if TARGET_TECH = fs90 generate --      u0 : fs90_regfile_cp generic map (abits, dbits, words)--	   port map (rst, clk, rfi, rfo);--    end generate;--    umc1 : if TARGET_TECH = umc18 generate --      u0 : umc18_regfile_cp generic map (abits, dbits, words)--	   port map (rst, clk, rfi, rfo);--    end generate;    xcv : if TARGET_TECH = virtex generate       u0 : virtex_regfile_cp generic map (abits, dbits, words)	   port map (rst, clk , rfi, rfo);    end generate;    xc2v : if TARGET_TECH = virtex2 generate       u0 : virtex2_regfile_cp generic map (abits, dbits, words)	   port map (rst, clk , rfi, rfo);    end generate;    tsmc : if TARGET_TECH = tsmc25 generate       u0 : tsmc25_regfile_cp generic map (abits, dbits, words)	   port map (rst, clk , rfi, rfo);    end generate;    sim : if TARGET_TECH = gen generate      u0 : generic_regfile_cp generic map (abits, dbits, words)	 port map (rst, clk , rfi, rfo);    end generate;    proa : if TARGET_TECH = proasic generate       u0 : proasic_regfile_cp generic map (abits, dbits, words)	   port map (rst, clk , rfi, rfo);    end generate;    axc : if TARGET_TECH = axcel generate       u0 : axcel_regfile_cp generic map (abits, dbits, words)	   port map (rst, clk , rfi, rfo);    end generate;  end generate;end;-- boot-promLIBRARY ieee;use IEEE.std_logic_1164.all;use work.leon_target.all;use work.leon_config.all;use work.tech_atc35.all;use work.tech_generic.all;use work.tech_virtex.all;entity bprom is  port (    clk       : in std_logic;    cs        : in std_logic;    addr      : in std_logic_vector(31 downto 0);    data      : out std_logic_vector(31 downto 0)  );end;architecture rtl of bprom iscomponent gen_bprom  port (    clk : in std_logic;    csn : in std_logic;    addr : in std_logic_vector (29 downto 0);    data : out std_logic_vector (31 downto 0));end component;begin  b0: if INFER_ROM generate    u0 : gen_bprom port map (clk, cs, addr(31 downto 2), data);  end generate;  b1: if (not INFER_ROM) and ((TARGET_TECH = virtex) or (TARGET_TECH = virtex2)) generate    u0 : virtex_bprom port map (clk, addr(31 downto 2), data);  end generate;end;-- multiplier library ieee;use ieee.std_logic_1164.all;use work.leon_target.all;use work.leon_config.all;use work.leon_iface.all;use work.multlib.all;use work.tech_generic.all;entity hw_smult is  generic ( abits : integer := 10; bbits : integer := 8 );  port (    clk  : in  clk_type;    holdn: in  std_logic;    a    : in  std_logic_vector(abits-1 downto 0);    b    : in  std_logic_vector(bbits-1 downto 0);    c    : out std_logic_vector(abits+bbits-1 downto 0)  ); end;architecture rtl of hw_smult isbegin  inf : if INFER_MULT generate    u0 : generic_smult          generic map (abits => abits, bbits => bbits)         port map (a, b, c);  end generate;  mg : if not INFER_MULT generate    m1717 : if (abits = 17) and (bbits = 17) generate      u0 : mul_17_17 port map (clk, holdn, a, b, c);    end generate;    m339 : if (abits = 33) and (bbits = 9) generate      u0 : mul_33_9 port map (a, b, c);    end generate;    m3317 : if (abits = 33) and (bbits = 17) generate      u0 : mul_33_17 port map (a, b, c);    end generate;    m3333 : if (abits = 33) and (bbits = 33) generate      u0 : mul_33_33 port map (a, b, c);    end generate;  end generate;end;-- input padlibrary IEEE;use IEEE.std_logic_1164.all;use work.leon_target.all;use work.leon_config.all;use work.tech_atc18.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 inpad is port (pad : in std_logic; q : out std_logic); end; architecture rtl of inpad 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    ginpad0 : geninpad port map (q => q, pad => pad);  end generate;  ninf : if not INFER_PADS generate    ip0 : if TARGET_TECH = atc18 generate      ipx : atc18_inpad port map (q => q, pad => pad);    end generate;    ip1 : if TARGET_TECH = atc25 generate      ipx : atc25_inpad port map (q => q, pad => pad);    end generate;    ip2 : if TARGET_TECH = atc35 generate      ipx : atc35_inpad port map (q => q, pad => pad);    end generate;    ip3 : if TARGET_TECH = fs90 generate      ipx : fs90_inpad port map (q => q, pad => pad);    end generate;    ip4 : if TARGET_TECH = umc18 generate      ipx : umc18_inpad port map (q => q, pad => pad);    end generate;    ip5 : if TARGET_TECH = tsmc25 generate      ipx : tsmc25_inpad port map (q => q, pad => pad);    end generate;  end generate;end;-- input schmitt padlibrary IEEE;use IEEE.std_logic_1164.all;use work.leon_target.all;use work.leon_config.all;use work.tech_atc18.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 smpad is port (pad : in std_logic; q : out std_logic); end; architecture rtl of smpad 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    gsmpad0 : gensmpad port map (pad => pad, q => q);  end generate;  ninf : if not INFER_PADS generate    sm0 : if TARGET_TECH = atc18 generate      smx : atc18_smpad port map (q => q, pad => pad);    end generate;    sm1 : if TARGET_TECH = atc25 generate      smx : atc25_smpad port map (q => q, pad => pad);    end generate;    sm2 : if TARGET_TECH = atc35 generate      smx : atc35_smpad port map (q => q, pad => pad);    end generate;    sm3 : if TARGET_TECH = fs90 generate      smx : fs90_smpad port map (q => q, pad => pad);    end generate;    sm4 : if TARGET_TECH = umc18 generate      smx : umc18_smpad port map (q => q, pad => pad);    end generate;    sm5 : if TARGET_TECH = tsmc25 generate      smx : tsmc25_smpad port map (q => q, pad => pad);    end generate;  end generate;end;-- output padslibrary 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 outpad is  generic (drive : integer := 1);  port (d : in std_logic; pad : out std_logic);end; architecture rtl of outpad 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    goutpad0 : genoutpad port map (d => d, pad => pad);  end generate;  ninf : if not INFER_PADS generate    op1 : if (TARGET_TECH = atc25) or (TARGET_TECH = atc18) generate      opx : atc25_outpad generic map (drive) port map (d => d, pad => pad);    end generate;    op2 : if TARGET_TECH = atc35 generate      opx : atc35_outpad generic map (drive) port map (d => d, pad => pad);    end generate;    op3 : if TARGET_TECH = fs90 generate      opx : fs90_outpad generic map (drive) port map (d => d, pad => pad);    end generate;    op4 : if TARGET_TECH = umc18 generate      opx : umc18_outpad generic map (drive) port map (d => d, pad => pad);    end generate;    op5 : if TARGET_TECH = tsmc25 generate      opx : tsmc25_outpad generic map (drive) port map (d => d, pad => pad);    end generate;  end generate;end;-- tri-state output pads with pull-uplibrary 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 toutpadu is  generic (drive : integer := 1);  port (d, en : in std_logic; pad : out std_logic);end; architecture rtl of toutpadu 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 : gentoutpadu port map (d => d, en => en, pad => pad);  end generate;  ninf : if not INFER_PADS generate    atc25t : if (TARGET_TECH = atc25) or (TARGET_TECH = atc18) generate      p0 : atc25_toutpadu generic map (drive) port map (d => d, en => en, pad => pad);    end generate;    atc35t : if TARGET_TECH = atc35 generate      p0 : atc35_toutpadu generic map (drive) port map (d => d, en => en, pad => pad);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -