Removed Bus access from RAM
This commit is contained in:
parent
fafd9320af
commit
8f14afc6ec
17
src/I2C.vhd
17
src/I2C.vhd
|
@ -23,8 +23,18 @@ architecture Implementation of I2C is
|
||||||
signal Clk100k : std_logic := '0';
|
signal Clk100k : std_logic := '0';
|
||||||
signal Clk100Counter : std_logic_vector(10 downto 0) := (others => '0');
|
signal Clk100Counter : std_logic_vector(10 downto 0) := (others => '0');
|
||||||
signal PackageReg : std_logic_vector(11 downto 0) := (others => '0');
|
signal PackageReg : std_logic_vector(11 downto 0) := (others => '0');
|
||||||
|
signal CpuAddress : std_logic_vector(7 downto 0) := (others => '0');
|
||||||
|
signal Message : std_logic_vector(7 downto 0) := (others => '0');
|
||||||
|
signal TargetAddress : std_logic_vector(7 downto 0) := (others => '0');
|
||||||
|
signal Command : std_logic_vector(7 downto 0) := (others => '0');
|
||||||
begin
|
begin
|
||||||
|
|
||||||
|
-- Assign memory to sequences
|
||||||
|
CpuAddress <= ClientR(7 downto 0);
|
||||||
|
Message <= ClientR(15 downto 8);
|
||||||
|
TargetAddress <= ServerR(7 downto 0);
|
||||||
|
Command <= ServerR(15 downto 8);
|
||||||
|
|
||||||
ClkSplit100k : process(Clk)
|
ClkSplit100k : process(Clk)
|
||||||
begin
|
begin
|
||||||
if rising_edge(Clk) then
|
if rising_edge(Clk) then
|
||||||
|
@ -37,4 +47,11 @@ begin
|
||||||
end if;
|
end if;
|
||||||
end process ClkSplit100k;
|
end process ClkSplit100k;
|
||||||
|
|
||||||
|
ShiftRegister : process(Clk100k)
|
||||||
|
begin
|
||||||
|
if rising_edge(Clk) then
|
||||||
|
PackageReg <= SCL_In & PackageReg(11 downto 1);
|
||||||
|
end if;
|
||||||
|
end process ShiftRegister;
|
||||||
|
|
||||||
end Implementation;
|
end Implementation;
|
||||||
|
|
49
src/ram.vhd
49
src/ram.vhd
|
@ -106,55 +106,6 @@ begin
|
||||||
BoardOutput <= DataIn;
|
BoardOutput <= DataIn;
|
||||||
end if;
|
end if;
|
||||||
|
|
||||||
-- handle I2CClient
|
|
||||||
if unsigned(AddrA) = 3 then
|
|
||||||
ReadA <= I2CClient;
|
|
||||||
else
|
|
||||||
case AddrA(15) is
|
|
||||||
when '1' =>
|
|
||||||
ReadA <= SReadA2;
|
|
||||||
when others => ReadA <= SReadA1;
|
|
||||||
end case;
|
|
||||||
end if;
|
|
||||||
|
|
||||||
if unsigned(AddrB) = 3 then
|
|
||||||
ReadB <= I2CClient;
|
|
||||||
else
|
|
||||||
case AddrB(15) is
|
|
||||||
when '1' =>
|
|
||||||
ReadB <= SReadB2;
|
|
||||||
|
|
||||||
when others => ReadB <= SReadB1;
|
|
||||||
end case;
|
|
||||||
end if;
|
|
||||||
|
|
||||||
-- handle I2CClient
|
|
||||||
if unsigned(AddrB) = 3 and WriteEnable = '1' then
|
|
||||||
I2CClient <= DataIn;
|
|
||||||
end if;
|
|
||||||
|
|
||||||
-- handle I2CServer
|
|
||||||
if unsigned(AddrA) = 4 then
|
|
||||||
ReadA <= I2CServer;
|
|
||||||
else
|
|
||||||
case AddrA(15) is
|
|
||||||
when '1' =>
|
|
||||||
ReadA <= SReadA2;
|
|
||||||
when others => ReadA <= SReadA1;
|
|
||||||
end case;
|
|
||||||
end if;
|
|
||||||
|
|
||||||
if unsigned(AddrB) = 4 then
|
|
||||||
ReadB <= I2CServer;
|
|
||||||
else
|
|
||||||
case AddrB(15) is
|
|
||||||
when '1' =>
|
|
||||||
ReadB <= SReadB2;
|
|
||||||
|
|
||||||
when others => ReadB <= SReadB1;
|
|
||||||
end case;
|
|
||||||
end if;
|
|
||||||
|
|
||||||
end if;
|
end if;
|
||||||
end process DirectIO;
|
end process DirectIO;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue