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.communication/] [ase_mesh1/] [1.0/] [vhd/] [ase_mesh1_top4.vhd] - Blame information for rev 145

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 145 lanttu
-------------------------------------------------------------------------------
2
-- Title      : 4 agent top level for ase_mesh1
3
-- Project    : 
4
-------------------------------------------------------------------------------
5
-- File       : ase_mesh1_top4.vhd
6
-- Author     : Lasse Lehtonen
7
-- Company    : 
8
-- Created    : 2011-11-09
9
-- Last update: 2011-12-02
10
-- Platform   : 
11
-- Standard   : VHDL'87
12
-------------------------------------------------------------------------------
13
-- Description: Creates a fixed size mesh (incl. packetizers).
14
-------------------------------------------------------------------------------
15
-- Copyright (c) 2011 
16
-------------------------------------------------------------------------------
17
-- Revisions  :
18
-- Date        Version  Author  Description
19
-- 2011-11-09  1.0      lehton87        Created
20
-------------------------------------------------------------------------------
21
 
22
library ieee;
23
use ieee.std_logic_1164.all;
24
 
25
 
26
entity ase_mesh1_top4 is
27
 
28
  port (
29
    clk        : in  std_logic;
30
    rst_n      : in  std_logic;
31
    cmd0_in    : in  std_logic_vector(1 downto 0);
32
    data0_in   : in  std_logic_vector(31 downto 0);
33
    stall0_out : out std_logic;
34
    cmd0_out   : out std_logic_vector(1 downto 0);
35
    data0_out  : out std_logic_vector(31 downto 0);
36
    stall0_in  : in  std_logic;
37
 
38
    cmd1_in    : in  std_logic_vector(1 downto 0);
39
    data1_in   : in  std_logic_vector(31 downto 0);
40
    stall1_out : out std_logic;
41
    cmd1_out   : out std_logic_vector(1 downto 0);
42
    data1_out  : out std_logic_vector(31 downto 0);
43
    stall1_in  : in  std_logic;
44
 
45
    cmd2_in    : in  std_logic_vector(1 downto 0);
46
    data2_in   : in  std_logic_vector(31 downto 0);
47
    stall2_out : out std_logic;
48
    cmd2_out   : out std_logic_vector(1 downto 0);
49
    data2_out  : out std_logic_vector(31 downto 0);
50
    stall2_in  : in  std_logic;
51
 
52
    cmd3_in    : in  std_logic_vector(1 downto 0);
53
    data3_in   : in  std_logic_vector(31 downto 0);
54
    stall3_out : out std_logic;
55
    cmd3_out   : out std_logic_vector(1 downto 0);
56
    data3_out  : out std_logic_vector(31 downto 0);
57
    stall3_in  : in  std_logic);
58
 
59
end ase_mesh1_top4;
60
 
61
architecture structural of ase_mesh1_top4 is
62
 
63
  -- Intermediate wide signals that combine indifivudal terminals so that they
64
  -- can be connected to mesh
65
  signal cmd_i   : std_logic_vector(4*2-1 downto 0);
66
  signal data_i  : std_logic_vector(4*32-1 downto 0);
67
  signal stall_i : std_logic_vector(3 downto 0);
68
 
69
  signal cmd_o   : std_logic_vector(4*2-1 downto 0);
70
  signal data_o  : std_logic_vector(4*32-1 downto 0);
71
  signal stall_o : std_logic_vector(3 downto 0);
72
 
73
begin  -- structural
74
 
75
  -- Connect terminals to internal signals, and vice versa
76
  cmd_i((0+1)*2-1 downto 0*2)    <= cmd0_in;
77
  data_i((0+1)*32-1 downto 0*32) <= data0_in;
78
  stall_i(0)                     <= stall0_in;
79
  cmd0_out                       <= cmd_o((0+1)*2-1 downto 0*2);
80
  data0_out                      <= data_o((0+1)*32-1 downto 0*32);
81
  stall0_out                     <= stall_o(0);
82
 
83
  cmd_i((1+1)*2-1 downto 1*2)    <= cmd1_in;
84
  data_i((1+1)*32-1 downto 1*32) <= data1_in;
85
  stall_i(1)                     <= stall1_in;
86
  cmd1_out                       <= cmd_o((1+1)*2-1 downto 1*2);
87
  data1_out                      <= data_o((1+1)*32-1 downto 1*32);
88
  stall1_out                     <= stall_o(1);
89
 
90
  cmd_i((2+1)*2-1 downto 2*2)    <= cmd2_in;
91
  data_i((2+1)*32-1 downto 2*32) <= data2_in;
92
  stall_i(2)                     <= stall2_in;
93
  cmd2_out                       <= cmd_o((2+1)*2-1 downto 2*2);
94
  data2_out                      <= data_o((2+1)*32-1 downto 2*32);
95
  stall2_out                     <= stall_o(2);
96
 
97
  cmd_i((3+1)*2-1 downto 3*2)    <= cmd3_in;
98
  data_i((3+1)*32-1 downto 3*32) <= data3_in;
99
  stall_i(3)                     <= stall3_in;
100
  cmd3_out                       <= cmd_o((3+1)*2-1 downto 3*2);
101
  data3_out                      <= data_o((3+1)*32-1 downto 3*32);
102
  stall3_out                     <= stall_o(3);
103
 
104
  -- Instantiate mesh with fixed parameters
105
  ase_mesh1_pkt_codec_1 : entity work.ase_mesh1_pkt_codec
106
    generic map (
107
      data_width_g   => 32,
108
      cmd_width_g    => 2,
109
      agents_g       => 4,
110
      cols_g         => 2,
111
      rows_g         => 2,
112
      agent_ports_g  => 1,
113
      addr_flit_en_g => 0,
114
      address_mode_g => 1,
115
      clock_mode_g   => 0,
116
      rip_addr_g     => 0,
117
      fifo_depth_g   => 0
118
      )
119
    port map (
120
      clk_ip    => clk,
121
      clk_net   => clk,
122
      rst_n     => rst_n,
123
 
124
      cmd_in    => cmd_i,
125
      data_in   => data_i,
126
      stall_out => stall_o,
127
 
128
      cmd_out   => cmd_o,
129
      data_out  => data_o,
130
      stall_in  => stall_i
131
      );
132
 
133
end structural;

powered by: WebSVN 2.1.0

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