Commit 785cd574 authored by Cesar Prados's avatar Cesar Prados

VME_CR_PACK: resize A24 mask to 0.5 MB (0x80000) so that a full 20-slot crate can

             be addressed without conflicts using A24 only
             disable everything except A24/A32
VME_bus.vhd: reset internal address/AM register when AS is inactive (prevents
             two cards DTACKing same access bug)

--signoff Tomas.W.
parent 5a2df5b6
......@@ -37,19 +37,21 @@ package VME_CR_pack is
constant c_amcap : std_logic_vector(63 downto 0) :=
"1111111100000000001100100000000000000000000100001111111100001011";
constant c_amcap0 : std_logic_vector(63 downto 0) :=
"0000000000000000000000000000000000000000000000001011101100000000"; --A32
-- "1011101100000000001000100000000100000000000000001011101100000000";
"0000000000000000000000000000000000000000000000001011101100000000"; --A32
constant c_amcapMBLT : std_logic_vector(63 downto 0) :=
"0000000000000000000000000000000000000000000000000000000100000000";
constant c_amcap1 : std_logic_vector(63 downto 0) :=
"1011101100000000000000000000000000000000000000000000000000000000"; --A24
"1011101100000000000000000000000000000000000000000000000000000000"; --A24
constant c_amcap2 : std_logic_vector(63 downto 0) :=
"0000000000000000001000100000000000000000000000000000000000000000"; --A16
--"0000000000000000001000100000000000000000000000000000000000000000"; --A16
"0000000000000000000000000000000000000000000000000000000000000000"; --A16 disabled
constant c_amcapA64 : std_logic_vector(63 downto 0) :=
"0000000000000000000000000000000000000000000000000000000000001011"; --for modalities A64, A64_BLT, A64_MBLT
--"0000000000000000000000000000000000000000000000000000000000001011"; --for modalities A64, A64_BLT, A64_MBLT
"0000000000000000000000000000000000000000000000000000000000000000"; --disabled A64, A64_BLT, A64_MBLT
constant c_amcap2e : std_logic_vector(63 downto 0) :=
"0000000000000000000000000000000100000000000000000000000000000000"; -- for modalities TWO_edge
--"0000000000000000000000000000000100000000000000000000000000000000"; -- for modalities TWO_edge
"0000000000000000000000000000000000000000000000000000000000000000"; -- disabled TWO_edge
>>>>>>> Stashed changes
constant c_xamcap0 : std_logic_vector(255 downto 0) :=
(others => '0');
......@@ -542,7 +544,7 @@ package VME_CR_pack is
16#18B# => x"00", -- Fun 0 --DFS = '0'
16#18c# => x"00", -- Fun 1
16#18d# => x"f0", -- Fun 1
16#18d# => x"f8", -- Fun 1
16#18e# => x"00", -- Fun 1
16#18f# => x"00", -- Fun 1 --DFS = '0'
......
......@@ -925,7 +925,7 @@ with s_addressingType select
p_addrLatching : process(clk_i)
begin
if rising_edge(clk_i) then
if s_reset = '1' then
if s_reset = '1' or s_mainFSMreset = '1' then
s_VMEaddrLatched <= (others => '0');
s_LWORDlatched <= '0';
s_AMlatched <= (others => '0');
......@@ -934,10 +934,10 @@ with s_addressingType select
s_VMEaddrLatched <= s_VMEdataInput & s_VMEaddrInput;
s_LWORDlatched <= s_LWORDinput;
s_AMlatched <= VME_AM_i;
else
s_VMEaddrLatched <= s_VMEaddrLatched;
s_LWORDlatched <= s_LWORDlatched;
s_AMlatched <= s_AMlatched;
-- else
-- s_VMEaddrLatched <= s_VMEaddrLatched;
-- s_LWORDlatched <= s_LWORDlatched;
-- s_AMlatched <= s_AMlatched;
end if;
end if;
end if;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment