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

Subversion Repositories funbase_ip_library

[/] [funbase_ip_library/] [trunk/] [TUT/] [ip.hwp.storage/] [fifos/] [synchronizer/] [1.0/] [vhd/] [asyn_re_fifo.vhd] - Blame information for rev 145

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 145 lanttu
-------------------------------------------------------------------------------
2
-- Title      : asyn re fifo
3
-- Project    : 
4
-------------------------------------------------------------------------------
5
-- File       : asyn_re_fifo.vhd
6
-- Author     : kulmala3
7
-- Created    : 13.06.2006
8
-- Last update: 13.06.2006
9
-- Description: A FIFO with synchronous write interface and asynchronous
10
-- signaling for RX
11
-------------------------------------------------------------------------------
12
-- Copyright (c) 2006 
13
-------------------------------------------------------------------------------
14
-- Revisions  :
15
-- Date        Version  Author  Description
16
-- 13.06.2006  1.0      AK      Created
17
-------------------------------------------------------------------------------
18
 
19
library ieee;
20
use ieee.std_logic_1164.all;
21
use ieee.std_logic_arith.all;
22
use ieee.std_logic_unsigned.all;
23
 
24
 
25
entity asyn_re_fifo is
26
  generic (
27
    depth_g : integer := 5;
28
    data_width_g : integer := 32
29
    );
30
  port (
31
    clk      : in  std_logic;
32
    rst_n    : in  std_logic;
33
    -- regular fifo
34
    data_in  : in  std_logic_vector (data_width_g-1 downto 0);
35
    we_in    : in  std_logic;
36
    full_out : out std_logic;
37
    -- asyn IF
38
    data_out : out std_logic_vector (data_width_g-1 downto 0);
39
    ack_in   : in  std_logic;
40
    a_we_out : out std_logic
41
 
42
    );
43
end asyn_re_fifo;
44
 
45
 
46
architecture structural of asyn_re_fifo is
47
 
48
  component aif_read_in
49
    generic (
50
      data_width_g : integer);
51
    port (
52
      clk      : in  std_logic;
53
      rst_n    : in  std_logic;
54
      empty_in : in  std_logic;
55
      re_out   : out std_logic;
56
      data_in  : in  std_logic_vector(data_width_g-1 downto 0);
57
      data_out : out std_logic_vector(data_width_g-1 downto 0);
58
      a_we_out : out std_logic;
59
      ack_in   : in  std_logic);
60
  end component;
61
 
62
  signal empty_to_read_in  : std_logic;
63
  signal re_from_read_in   : std_logic;
64
  signal data_to_read_in   : std_logic_vector(data_width_g-1 downto 0);
65
  signal data_from_read_in : std_logic_vector(data_width_g-1 downto 0);
66
  signal a_we_from_read_in : std_logic;
67
  signal ack_to_read_in    : std_logic;
68
 
69
  component fifo
70
    generic (
71
      data_width_g : integer;
72
      depth_g      : integer);
73
    port (
74
      clk       : in  std_logic;
75
      rst_n     : in  std_logic;
76
      data_in   : in  std_logic_vector (data_width_g-1 downto 0);
77
      we_in     : in  std_logic;
78
      full_out  : out std_logic;
79
      one_p_out : out std_logic;
80
      re_in     : in  std_logic;
81
      data_out  : out std_logic_vector (data_width_g-1 downto 0);
82
      empty_out : out std_logic;
83
      one_d_out : out std_logic);
84
  end component;
85
 
86
 
87
 
88
begin
89
 
90
  aif_read_in_1 : aif_read_in
91
    generic map (
92
      data_width_g => data_width_g)
93
    port map (
94
      clk   => clk,
95
      rst_n => rst_n,
96
 
97
      empty_in => empty_to_read_in,
98
      re_out   => re_from_read_in,
99
      data_in  => data_to_read_in,
100
 
101
      data_out => data_out,
102
      a_we_out => a_we_out,
103
      ack_in   => ack_in
104
      );
105
 
106
  fifo_1 : fifo
107
    generic map (
108
      data_width_g => data_width_g,
109
      depth_g      => depth_g)
110
    port map (
111
      clk   => clk,
112
      rst_n => rst_n,
113
 
114
      data_in  => data_in,
115
      we_in    => we_in,
116
      full_out => full_out,
117
 
118
--      one_p_out => one_p_out,
119
--      one_d_out => one_d_out,
120
 
121
      re_in     => re_from_read_in,
122
      data_out  => data_to_read_in,
123
      empty_out => empty_to_read_in
124
      );
125
 
126
 
127
end structural;

powered by: WebSVN 2.1.0

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