From c1ddd006341304f5c1a64145e64d37c728570b09 Mon Sep 17 00:00:00 2001 From: yannickreiss Date: Wed, 31 Jan 2024 13:12:34 +0100 Subject: [PATCH] Add I2C Entity --- src/I2C.vhd | 26 ++++++++++++++++++++++++++ src/cpu16.vhd | 12 ++++++++++++ 2 files changed, 38 insertions(+) create mode 100644 src/I2C.vhd diff --git a/src/I2C.vhd b/src/I2C.vhd new file mode 100644 index 0000000..c17ac40 --- /dev/null +++ b/src/I2C.vhd @@ -0,0 +1,26 @@ +-- I2C.vhd +-- Date: Wed Jan 31 13:05:40 2024 +-- Author: Yannick Reiß +-- E-Mail: schnick@nickr.eu +library IEEE; +use IEEE.std_logic_1164.all; +use IEEE.numeric_std.all; + +entity I2C is + port ( + Clk : in std_logic; + SDA_In : in std_logic; + SDL_In : in std_logic; + ClientR : in std_logic_vector(15 downto 0); + ServerR : in std_logic_vector(15 downto 0); + SDA_Out : out std_logic; + SDL_Out : out std_logic; + ClientW : out std_logic_vector(15 downto 0) + ); +end I2C; + +architecture Implementation of I2C is + +begin + +end Implementation; diff --git a/src/cpu16.vhd b/src/cpu16.vhd index d1d0faa..b2380cb 100644 --- a/src/cpu16.vhd +++ b/src/cpu16.vhd @@ -117,6 +117,18 @@ begin Addr => InstructionCounter ); + I2C_Adapter : entity work.I2C(Implementation) + port map( + Clk => Clk, + SDA_In => SDA, + SDL_In => SDL, + ClientR => I2CClient, + ServerR => I2CServer, + SDA_Out => SDA, + SDL_Out => SDA, + ClientW => I2CClient + ); + AluSetInput : process(ImmediateValue, InstructionCounter, RegisterDataOut1, RegisterDataOut2) begin