OpenCores
URL https://opencores.org/ocsvn/fade_ether_protocol/fade_ether_protocol/trunk

Subversion Repositories fade_ether_protocol

[/] [fade_ether_protocol/] [trunk/] [stable_jumbo_frames_version/] [fpga/] [src/] [AFCK/] [i2c/] [i2c_vio_ctrl_top.vhd] - Blame information for rev 44

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 37 wzab
-------------------------------------------------------------------------------
2
-- Title      : I2C controller driven by VIO objects
3
-- Project    : 
4
-------------------------------------------------------------------------------
5
-- File       : i2c_vio_ctrl_top.vhd
6
-- Author     : Wojciech M. Zabolotny wzab01<at>gmail.com
7
-- License    : PUBLIC DOMAIN
8
-- Company    : 
9
-- Created    : 2015-05-03
10 44 wzab
-- Last update: 2017-01-22
11 37 wzab
-- Platform   : 
12
-- Standard   : VHDL'93/02
13
-------------------------------------------------------------------------------
14
-- Description:
15
-------------------------------------------------------------------------------
16
-- Copyright (c) 2015 
17
-------------------------------------------------------------------------------
18
-- Revisions  :
19
-- Date        Version  Author  Description
20
-- 2015-05-03  1.0      wzab    Created
21
-------------------------------------------------------------------------------
22
 
23
library ieee;
24
use ieee.std_logic_1164.all;
25
 
26
entity i2c_vio_ctrl is
27
 
28
  port (
29
    clk : in    std_logic;
30
    --rst_p : in    std_logic;
31
    scl : inout std_logic;
32
    sda : inout std_logic);
33
 
34
end entity i2c_vio_ctrl;
35
 
36
architecture beh of i2c_vio_ctrl is
37
 
38
  signal din       : std_logic_vector(7 downto 0);
39
  signal dout      : std_logic_vector(7 downto 0);
40
  signal addr      : std_logic_vector(2 downto 0);
41
  signal rd_nwr    : std_logic_vector(0 to 0);
42
  signal cs        : std_logic_vector(0 to 0);
43
  signal vclk      : std_logic;
44
  signal i2c_rst_n : std_logic_vector(0 to 0);
45
  signal vrst_n    : std_logic_vector(0 to 0);
46
  signal scl_i     : std_logic;
47
  signal scl_o     : std_logic;
48
  signal sda_i     : std_logic;
49
  signal sda_o     : std_logic;
50
 
51
  component i2c_bus_wrap is
52
    port (
53
      din   : in  std_logic_vector(7 downto 0);
54
      dout  : out std_logic_vector(7 downto 0);
55
      addr  : in  std_logic_vector(2 downto 0);
56
      rd_nwr    : in  std_logic;
57
      cs    : in  std_logic;
58
      clk   : in  std_logic;
59
      rst   : in  std_logic;
60
      scl_i : in  std_logic;
61
      scl_o : out std_logic;
62
      sda_i : in  std_logic;
63
      sda_o : out std_logic);
64
  end component i2c_bus_wrap;
65
 
66
  component vio_0 is
67
    port (
68
      clk        : in  std_logic;
69
      probe_in0  : in  std_logic_vector (7 downto 0);
70
      probe_out0 : out std_logic_vector (0 downto 0);
71
      probe_out1 : out std_logic_vector (7 downto 0);
72
      probe_out2 : out std_logic_vector (2 downto 0);
73
      probe_out3 : out std_logic_vector (0 to 0);
74
      probe_out4 : out std_logic_vector (0 to 0);
75
      probe_out5 : out std_logic_vector (0 to 0));
76
  end component vio_0;
77
 
78
begin  -- architecture beh
79
 
80 44 wzab
  vio_0_1 : vio_0
81 37 wzab
    port map (
82
      clk        => clk,
83
      probe_in0  => dout,
84
      probe_out0 => i2c_rst_n,
85
      probe_out1 => din,
86
      probe_out2 => addr,
87
      probe_out3 => rd_nwr,
88
      probe_out4 => cs,
89
      probe_out5 => vrst_n);
90
 
91
  i2c_bus_wrap1 : entity work.i2c_bus_wrap
92
    port map (
93
      din     => din,
94
      dout    => dout,
95
      addr    => addr,
96
      rd_nwr  => rd_nwr(0),
97
      cs      => cs(0),
98
      clk     => vclk,
99
      rst     => vrst_n(0),
100
      i2c_rst => i2c_rst_n(0),
101
      scl_i   => scl_i,
102
      scl_o   => scl_o,
103
      sda_i   => sda_i,
104
      sda_o   => sda_o);
105
 
106
  vclk  <= clk;
107
  scl_i <= scl;
108
  sda_i <= sda;
109
  scl   <= '0' when scl_o = '0' else 'Z';
110
  sda   <= '0' when sda_o = '0' else 'Z';
111
 
112
end architecture beh;
113
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.