---------------------------------------------------------------------------------- -- Company: -- Engineer: -- -- Create Date: 10:35:29 07/04/2006 -- Design Name: -- Module Name: l3pcmcia - Behavioral -- Project Name: -- Target Devices: -- Tool versions: -- Description: -- -- Dependencies: -- -- Revision: -- Revision 0.01 - File Created -- Additional Comments: -- ---------------------------------------------------------------------------------- library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; ---- Uncomment the following library declaration if instantiating ---- any Xilinx primitives in this code. --library UNISIM; --use UNISIM.VComponents.all; entity Balloon_pcmcia is port ( data_bus_in : in std_logic_vector(15 downto 0); data_bus_out : out std_logic_vector(15 downto 0); address_bus : in std_logic_vector(10 downto 0); bus_rdnwr : in std_logic; nreset : in std_logic; want_bus : out std_logic; card_data : inout std_logic_vector(15 downto 0); card_address : out std_logic_vector(10 downto 0); park_interface : in std_logic; enable_pcmcia : in std_logic; address_enable : in std_logic; cpu_npoe : in std_logic; cpu_npce1 : in std_logic; cpu_npce2 : in std_logic; cpu_npior : in std_logic; cpu_npiow : in std_logic; cpu_npreg : in std_logic; cpu_npwe : in std_logic; cpu_npsktsel : in std_logic; cpu_niois16 : out std_logic; cpu_npwait : out std_logic; nstschng_out : out std_logic; nrdy_out : out std_logic; data_enable_out : out std_logic; --indicates when PCMCIA is driving the databus card_reset_in : in std_logic; -- source of card reset card_npoe : out std_logic; card_npce1 : out std_logic; --lower byte lane enable card_npce2 : out std_logic; --upper byte lane enable card_npior : out std_logic; card_npiow : out std_logic; card_npreg : out std_logic; --effectively a11 card_npwe : out std_logic; --card write enable card_niois16 : in std_logic; --card is 16 bits card_npwait : in std_logic; --wait from card card_reset : out std_logic; --reset out to card card_nstschng : in std_logic; card_nrdy : in std_logic ); end Balloon_pcmcia; architecture Behavioral of Balloon_pcmcia is --PCMCIA signal data_out_enable : std_logic; signal data_in_enable : std_logic; signal pcmcia_select : std_logic; begin --PCMCIA/CF Card Interface -- Initially a single card solution based on the CF socket. -- In principle this can also use the backplane. cpu_niois16 <= card_niois16 when enable_pcmcia='1' else '1'; cpu_npwait <= card_npwait when enable_pcmcia='1' else '1'; nstschng_out <= card_nstschng when enable_pcmcia='1' else '1'; nrdy_out <= card_nrdy when enable_pcmcia='1' else '1'; card_npoe <= cpu_npoe when enable_pcmcia='1' else 'Z'; card_npce1 <= cpu_npce1 when enable_pcmcia='1' else 'Z'; card_npce2 <= cpu_npce2 when enable_pcmcia='1' else 'Z'; card_npior <= cpu_npior when enable_pcmcia='1' else 'Z'; card_npiow <= cpu_npiow when enable_pcmcia='1' else 'Z'; card_npreg <= cpu_npreg when enable_pcmcia='1' else 'Z'; card_npwe <= cpu_npwe when (enable_pcmcia='1' and address_enable='1') else '1'; card_reset <= '1' when ( ((nreset = '0') or (card_reset_in = '1')) and (park_interface = '0')) else '0'; --Bus Buffer control pcmcia_select <= '1' when ((cpu_npce1 = '0' or cpu_npce2 = '0') and enable_pcmcia='1') else '0'; data_out_enable <= '1' when (pcmcia_select = '1' and cpu_npsktsel = '0' and (cpu_npoe = '0' or cpu_npior='0') ) else '0'; data_in_enable <= '1' when (pcmcia_select = '1' and cpu_npsktsel = '0' and (cpu_npwe = '0' or cpu_npiow='0')) else '0'; card_address <= address_bus when enable_pcmcia='1' and address_enable='1' else "ZZZZZZZZZZZ"; data_bus_out <= card_data when (data_out_enable = '1') else "ZZZZZZZZZZZZZZZZ"; card_data <= data_bus_in when (data_in_enable = '1') else "ZZZZZZZZZZZZZZZZ"; want_bus <= data_out_enable; end Behavioral;