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

📄 proc.vhd

📁 ARM7的源代码
💻 VHD
字号:
------------------------------------------------------------------------------  This file is a part of the LEON VHDL model--  Copyright (C) 1999  European Space Agency (ESA)----  This library is free software; you can redistribute it and/or--  modify it under the terms of the GNU Lesser General Public--  License as published by the Free Software Foundation; either--  version 2 of the License, or (at your option) any later version.----  See the file COPYING.LGPL for the full details of the license.------------------------------------------------------------------------------- Entity: 	proc-- File:	proc.vhd-- Author:	Jiri Gaisler - ESA/ESTEC-- Description:	This unit contains the integer unit, cache memory,--		clock/reset generation and (optinally) FPU.------------------------------------------------------------------------------library IEEE;use IEEE.std_logic_1164.all;use work.leon_target.all;use work.leon_config.all;use work.mmuconfig.all;use work.leon_iface.all;use work.amba.all;use work.fpulib.all;use work.tech_map.all;entity proc is  port (    rst    : in  std_logic;    clk    : in  clk_type;			-- main clock    clkn   : in  clk_type;			-- inverted main clock    apbi   : in  apb_slv_in_type;    apbo   : out apb_slv_out_type;    ahbi   : in  ahb_mst_in_type;    ahbo   : out ahb_mst_out_type;    ahbsi  : in  ahb_slv_in_type;    iui    : in  iu_in_type;    iuo    : out iu_out_type  );end; architecture rtl of proc iscomponent iuport (    rst    : in  std_logic;    clk    : in  clk_type;		    holdn  : in  std_logic;		    ici    : out icache_in_type;		-- icache input    ico    : in  icache_out_type;		-- icache output    dci    : out dcache_in_type;		-- dcache input    dco    : in  dcache_out_type;		-- dcache output    fpui   : out fpu_in_type;			-- FPU input    fpuo   : in  fpu_out_type;			-- FPU output    iui    : in  iu_in_type;			-- system input    iuo    : out iu_out_type;			-- system output    rfi    : out rf_in_type;			-- register-file input    rfo    : in rf_out_type;			-- register-file output    cpi    : out cp_in_type;			-- CP input    cpo    : in  cp_out_type;			-- CP output    fpi    : out cp_in_type;			-- FP input    fpo    : in  cp_out_type			-- FP output);end component;component cache  port (    rst   : in  std_logic;    clk   : in  clk_type;    ici   : in  icache_in_type;    ico   : out icache_out_type;    dci   : in  dcache_in_type;    dco   : out dcache_out_type;    iuo   : in  iu_out_type;		    apbi  : in  apb_slv_in_type;    apbo  : out apb_slv_out_type;    ahbi  : in  ahb_mst_in_type;    ahbo  : out ahb_mst_out_type;    ahbsi : in  ahb_slv_in_type;    crami : out cram_in_type;    cramo : in  cram_out_type;    fpuholdn : in  std_logic  );end component; component mmu_cache  port (    rst   : in  std_logic;    clk   : in  clk_type;    ici   : in  icache_in_type;    ico   : out icache_out_type;    dci   : in  dcache_in_type;    dco   : out dcache_out_type;    iuo   : in  iu_out_type;		    apbi  : in  apb_slv_in_type;    apbo  : out apb_slv_out_type;    ahbi  : in  ahb_mst_in_type;    ahbo  : out ahb_mst_out_type;    ahbsi : in  ahb_slv_in_type;    crami : out cram_in_type;    cramo : in  cram_out_type;    fpuholdn : in  std_logic  );end component; component cpport (    rst    : in  std_logic;			-- Reset    clk    : in  clk_type;			-- main clock	    iuclk  : in  clk_type;			-- gated IU clock    holdn  : in  std_logic;			-- pipeline hold    cpi    : in  cp_in_type;    cpo    : out cp_out_type  );end component;component cachemem   port (    	clk   : in  clk_type;	crami : in  cram_in_type;	cramo : out cram_out_type  );end component;signal ici : icache_in_type;signal ico : icache_out_type;signal dci : dcache_in_type;signal dco : dcache_out_type;signal fpui : fpu_in_type;signal fpuo : fpu_out_type;signal cpi, fpi : cp_in_type;signal cpo, fpo : cp_out_type;signal holdn, pholdn, xholdn : std_logic;signal iuol : iu_out_type;		signal rfi : rf_in_type;			-- register-file inputsignal rfo : rf_out_type;			-- register-file outputsignal crami : cram_in_type;signal cramo : cram_out_type;begin  holdn <= ico.hold and dco.hold and fpui.fpuholdn and cpo.holdn and fpo.holdn;  pholdn <= fpui.fpuholdn and cpo.holdn and fpo.holdn;  xholdn <= cpo.holdn and dco.hold and ico.hold;  iuo <= iuol;-- integer unit and register file  iu0 : iu  port map (rst, clk, holdn, ici, ico, dci, dco, fpui, fpuo, 	iui, iuol, rfi, rfo, cpi, cpo, fpi, fpo);  rf0 : regfile_iu generic map (RFIMPTYPE, RABITS, RDBITS, IREGNUM)       port map (rst, clk, clkn, rfi, rfo);-- cache controller and memories  cx : if not M_EN generate    c0 : cache port map (rst, clk, ici, ico, dci, dco, iuol, 	apbi, apbo, ahbi, ahbo, ahbsi, crami, cramo, pholdn);  end generate;  m0 : if M_EN generate    c0 : mmu_cache port map (rst, clk, ici, ico, dci, dco, iuol, 	apbi, apbo, ahbi, ahbo, ahbsi, crami, cramo, pholdn);  end generate;  cmem0 : cachemem port map (clk, crami, cramo);-- serial floating-point co-processor (optional)    fpsopt : if (FPIFTYPE = serial) generate    fpu0 : fpu_core port map (clk, fpui, fpuo); -- Meiko/LTH serial  end generate;-- parallel floating-point co-processor (optional)    fppopt : if (FPIFTYPE = parallel) generate    fpc0 : if (FPCORE = grfpu) generate	-- GR FPU/FPC      grfpc0 : grfpc port map (rst, clk, holdn, xholdn, fpi, fpo);    end generate;    fp1eu0 : if (FPCORE /= grfpu) generate 	-- Meiko/LTH parallel      fp0 : fp1eu port map (rst, clk, holdn, xholdn, fpi, fpo);    end generate;  end generate;  nofpc : if (FPIFTYPE /= parallel)  generate    fpo.holdn <= '1';    fpo.ldlock <= '0';    fpo.ccv <= '1';  end generate;-- co-processor (optional)  cpopt : if CPEN generate    cp0 : fp1eu port map (rst, clk, holdn, xholdn, cpi, cpo);  end generate;  nocp : if not CPEN generate    cpo.holdn <= '1';    cpo.ldlock <= '0';  end generate;end ;

⌨️ 快捷键说明

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