leon_eth_pci.vhd
来自「ARM7的源代码」· VHDL 代码 · 共 420 行 · 第 1/2 页
VHD
420 行
------------------------------------------------------------------------------ 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: leon_pci-- File: leon_pci.vhd-- Author: Jiri Gaisler - ESA/ESTEC-- Description: Complete processor with PCI pads------------------------------------------------------------------------------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.tech_map.all;-- pragma translate_offuse work.debug.all;-- pragma translate_onentity leon_eth_pci is port ( resetn : in std_logic; -- system signals clk : in std_logic; pllref : in std_logic; plllock : out std_logic; errorn : out std_logic; address : out std_logic_vector(27 downto 0); -- memory bus data : inout std_logic_vector(31 downto 0); ramsn : out std_logic_vector(4 downto 0); ramoen : out std_logic_vector(4 downto 0); rwen : inout std_logic_vector(3 downto 0); romsn : out std_logic_vector(1 downto 0); iosn : out std_logic; oen : out std_logic; read : out std_logic; writen : inout std_logic; brdyn : in std_logic; bexcn : in std_logic;-- sdram i/f sdcke : out std_logic_vector ( 1 downto 0); -- clk en sdcsn : out std_logic_vector ( 1 downto 0); -- chip sel sdwen : out std_logic; -- write en sdrasn : out std_logic; -- row addr stb sdcasn : out std_logic; -- col addr stb sddqm : out std_logic_vector ( 3 downto 0); -- data i/o mask sdclk : out std_logic; pio : inout std_logic_vector(15 downto 0); -- I/O port wdogn : out std_logic; -- watchdog output dsuen : in std_logic; dsutx : out std_logic; dsurx : in std_logic; dsubre : in std_logic; dsuact : out std_logic; test : in std_logic; pci_rst_in_n : in std_logic; -- PCI bus pci_clk_in : in std_logic; pci_gnt_in_n : in std_logic; pci_idsel_in : in std_logic; -- ignored in host bridge core pci_lock_n : inout std_logic; -- Phoenix core: input only pci_ad : inout std_logic_vector(31 downto 0); pci_cbe_n : inout std_logic_vector(3 downto 0); pci_frame_n : inout std_logic; pci_irdy_n : inout std_logic; pci_trdy_n : inout std_logic; pci_devsel_n : inout std_logic; pci_stop_n : inout std_logic; pci_perr_n : inout std_logic; pci_par : inout std_logic; pci_req_n : inout std_logic; -- tristate pad but never read pci_serr_n : inout std_logic; -- open drain output pci_host : in std_logic; pci_66 : in std_logic; pci_arb_req_n : in std_logic_vector(0 to 3); pci_arb_gnt_n : out std_logic_vector(0 to 3); power_state : out std_logic_vector(1 downto 0); pme_enable : out std_logic; pme_clear : out std_logic; pme_status : in std_logic;-- ethernet emdio : inout std_logic; etx_clk : in std_logic; erx_clk : in std_logic; erxd : in std_logic_vector(3 downto 0); erx_dv : in std_logic; erx_er : in std_logic; erx_col : in std_logic; erx_crs : in std_logic; etxd : out std_logic_vector(3 downto 0); etx_en : out std_logic; etx_er : out std_logic; emdc : out std_logic; emddis : out std_logic; epwrdwn : out std_logic; ereset : out std_logic; esleep : out std_logic; epause : out std_logic );end; architecture rtl of leon_eth_pci iscomponent mcore port ( resetn : in std_logic; clk : in clk_type; clkn : in clk_type; pciclk : in clk_type; memi : in memory_in_type; memo : out memory_out_type; ioi : in io_in_type; ioo : out io_out_type; pcii : in pci_in_type; pcio : out pci_out_type; dsi : in dsuif_in_type; dso : out dsuif_out_type; sdo : out sdram_out_type; ethi : in eth_in_type; etho : out eth_out_type; cgo : in clkgen_out_type; test : in std_logic);end component; signal vcc, gnd, clko, sdclkl, resetno : std_logic;signal clkm, clkn, pciclk : clk_type;signal memi : memory_in_type;signal memo : memory_out_type;signal ioi : io_in_type;signal ioo : io_out_type;signal pcii : pci_in_type;signal pcio : pci_out_type;signal dsi : dsuif_in_type;signal dso : dsuif_out_type;signal sdo : sdram_out_type;signal cgi : clkgen_in_type;signal cgo : clkgen_out_type;signal pci_aden : std_logic_vector(31 downto 0);signal pci_cbeen : std_logic_vector(3 downto 0);signal pci_frame_en : std_logic;signal pci_irdy_en : std_logic;signal pci_trdy_en : std_logic;signal pci_devsel_en : std_logic;signal pci_stop_en : std_logic;signal pci_perr_en : std_logic;signal pci_par_en : std_logic;signal pci_req_en : std_logic;signal pci_serr_en : std_logic;signal pci_lock_en : std_logic;signal pci_lock_out : std_logic;signal pci_req_in_dummy : std_logic;signal pci_clk : std_logic;signal ethi : eth_in_type;signal etho : eth_out_type;begin gnd <= '0'; vcc <= '1'; cgi.pllctrl <= "00"; cgi.pllrst <= resetno; cgi.pllref <= pllref;-- main processor core mcore0 : mcore port map ( resetn => resetno, clk => clkm, clkn => clkn, pciclk => pciclk, memi => memi, memo => memo, ioi => ioi, ioo => ioo, pcii => pcii, pcio => pcio, dsi => dsi, dso => dso, sdo => sdo, ethi => ethi, etho => etho, cgo => cgo, test => test);-- clock generator clkgen0 : clkgen port map ( clko, pci_clk, clkm, clkn, sdclkl, pciclk, cgi, cgo);-- pads-- clk_pad : inpad port map (clk, clko); -- clock clko <= clk; -- avoid buffering during synthesis reset_pad : smpad port map (resetn, resetno); -- reset brdyn_pad : inpad port map (brdyn, memi.brdyn); -- bus ready bexcn_pad : inpad port map (bexcn, memi.bexcn); -- bus exception
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?