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

Subversion Repositories neural_net_perceptron

[/] [neural_net_perceptron/] [trunk/] [rtl/] [vhdl/] [p0300_m00100_s_v01_mem_gen_blk.vhd] - Blame information for rev 5

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 5 fpga_is_fu
-- COPYRIGHT (C) 2022 by Jens Gutschmidt / VIVARE GmbH Switzerland
2
-- (email: opencores@vivare-services.com)
3
-- 
4
-- This program is free software: you can redistribute it and/or modify it
5
-- under the terms of the GNU General Public License as published by
6
-- the Free Software Foundation, either version 3 of the License, or any
7
-- later version.
8
-- 
9
-- This program is distributed in the hope that it will be useful, but
10
-- WITHOUT ANY WARRANTY; without even the implied warranty of
11
-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
12
-- See the GNU General Public License for more details.
13
-- 
14
-- You should have received a copy of the GNU General Public License
15
-- along with this program.  If not, see <http://www.gnu.org/licenses/>.
16
-- 
17
-- 
18
LIBRARY ieee;
19
USE ieee.std_logic_1164.all;
20
USE ieee.std_logic_arith.all;
21
--USE ieee.numeric_std.all;
22
LIBRARY work;
23
USE work.memory_vhd_v03_pkg.ALL;
24
 
25
ENTITY p0300_m00100_s_v01_mem_gen_blk IS
26
   PORT(
27
      addr_i_i   : IN     ADDRESS_S_T;
28
      addr_j_i   : IN     ADDRESS_T_T;
29
      clk_i      : IN     std_logic;
30
      din1_i     : IN     DATA_T;
31
      din2_i     : IN     DATA_T;
32
      din3_i     : IN     DATA_T;
33
      din4_i     : IN     DATA_T;
34
      din5_i     : IN     DATA_T;
35
      din7_i     : IN     DATA_T;
36
      we_bias2_i : IN     std_logic;
37
      we_bias3_i : IN     std_logic;
38
      we_bias5_i : IN     std_logic;
39
      we_s3_i    : IN     std_logic;
40
      we_s4_i    : IN     std_logic;
41
      we_s5_i    : IN     std_logic;
42
      we_t3_i    : IN     std_logic;
43
      we_t4_i    : IN     std_logic;
44
      we_t5_i    : IN     std_logic;
45
      we_w2_i    : IN     std_logic;
46
      we_w3_i    : IN     std_logic;
47
      we_w4_i    : IN     std_logic;
48
      we_w5_i    : IN     std_logic;
49
      we_w7_i    : IN     std_logic;
50
      we_y1_i    : IN     std_logic;
51
      we_y3_i    : IN     std_logic;
52
      we_y5_i    : IN     std_logic;
53
      dbias_o    : OUT    DATA_T;
54
      ds_o       : OUT    DATA_T;
55
      dt_o       : OUT    DATA_T;
56
      dw_o       : OUT    DATA_T;
57
      dy_o       : OUT    DATA_T
58
   );
59
 
60
-- Declarations
61
 
62
END p0300_m00100_s_v01_mem_gen_blk ;
63
-- COPYRIGHT (C) 2022 Jens Gutschmidt /
64
-- VIVARE GmbH Switzerland
65
-- (email: opencores@vivare-services.com)
66
-- 
67
-- Versions:
68
-- Revision 1.0  2022/05/25
69
-- -- First draft
70
-- 
71
LIBRARY ieee;
72
USE ieee.std_logic_1164.all;
73
USE ieee.std_logic_arith.all;
74
--USE ieee.numeric_std.all;
75
LIBRARY work;
76
USE work.memory_vhd_v03_pkg.ALL;
77
 
78
 
79
ARCHITECTURE struct OF p0300_m00100_s_v01_mem_gen_blk IS
80
 
81
   -- Architecture declarations
82
 
83
   -- Internal signal declarations
84
   SIGNAL addr_ij_oi : ADDRESS_W_T;
85
   SIGNAL din_oi     : DATA_T;
86
   SIGNAL we_bias_oi : std_logic;
87
   SIGNAL we_s_oi    : std_logic;
88
   SIGNAL we_t_oi    : std_logic;
89
   SIGNAL we_w_oi    : std_logic;
90
   SIGNAL we_y_oi    : std_logic;
91
 
92
 
93
   -- Component Declarations
94
   COMPONENT p0300_m00101_m_v01_mem_t
95
   PORT (
96
      addr_i : IN     ADDRESS_T_T;
97
      clk_i  : IN     std_logic;
98
      d_i    : IN     DATA_T;
99
      we_i   : IN     std_logic;
100
      d_o    : OUT    DATA_T
101
   );
102
   END COMPONENT;
103
   COMPONENT p0300_m00102_s_v01_mem_w
104
   PORT (
105
      addr_i : IN     ADDRESS_W_T;
106
      clk_i  : IN     std_logic;
107
      d_i    : IN     DATA_T;
108
      we_i   : IN     std_logic;
109
      d_o    : OUT    DATA_T
110
   );
111
   END COMPONENT;
112
   COMPONENT p0300_m00103_s_v01_mem_s
113
   PORT (
114
      addr_i : IN     ADDRESS_S_T;
115
      clk_i  : IN     std_logic;
116
      d_i    : IN     DATA_T;
117
      we_i   : IN     std_logic;
118
      d_o    : OUT    DATA_T
119
   );
120
   END COMPONENT;
121
 
122
   -- Optional embedded configurations
123
   -- pragma synthesis_off
124
   FOR ALL : p0300_m00101_m_v01_mem_t USE ENTITY work.p0300_m00101_m_v01_mem_t;
125
   FOR ALL : p0300_m00102_s_v01_mem_w USE ENTITY work.p0300_m00102_s_v01_mem_w;
126
   FOR ALL : p0300_m00103_s_v01_mem_s USE ENTITY work.p0300_m00103_s_v01_mem_s;
127
   -- pragma synthesis_on
128
 
129
 
130
BEGIN
131
   -- Architecture concurrent statements
132
   -- HDL Embedded Text Block 2 eb2
133
   -- eb1 1
134
   addr_ij_oi <= addr_j_i & addr_i_i;
135
   we_s_oi <= we_s3_i OR we_s4_i OR we_s5_i;
136
   we_t_oi <= we_t3_i OR we_t4_i OR we_t5_i;
137
   we_w_oi <= we_w2_i OR we_w3_i OR we_w4_i OR we_w5_i OR we_w7_i;
138
   we_y_oi <= we_y1_i OR we_y3_i OR we_y5_i;
139
   we_bias_oi <= we_bias2_i OR we_bias3_i OR we_bias5_i;
140
   din_oi <= din1_i OR din2_i OR din3_i OR din4_i OR din5_i OR din7_i;
141
 
142
 
143
   -- Instance port mappings.
144
   U_1 : p0300_m00101_m_v01_mem_t
145
      PORT MAP (
146
         clk_i  => clk_i,
147
         we_i   => we_t_oi,
148
         d_i    => din_oi,
149
         addr_i => addr_j_i,
150
         d_o    => dt_o
151
      );
152
   U_2 : p0300_m00101_m_v01_mem_t
153
      PORT MAP (
154
         clk_i  => clk_i,
155
         we_i   => we_y_oi,
156
         d_i    => din_oi,
157
         addr_i => addr_j_i,
158
         d_o    => dy_o
159
      );
160
   U_3 : p0300_m00101_m_v01_mem_t
161
      PORT MAP (
162
         clk_i  => clk_i,
163
         we_i   => we_bias_oi,
164
         d_i    => din_oi,
165
         addr_i => addr_j_i,
166
         d_o    => dbias_o
167
      );
168
   U_4 : p0300_m00102_s_v01_mem_w
169
      PORT MAP (
170
         clk_i  => clk_i,
171
         we_i   => we_w_oi,
172
         d_i    => din_oi,
173
         addr_i => addr_ij_oi,
174
         d_o    => dw_o
175
      );
176
   U_0 : p0300_m00103_s_v01_mem_s
177
      PORT MAP (
178
         clk_i  => clk_i,
179
         we_i   => we_s_oi,
180
         d_i    => din_oi,
181
         addr_i => addr_i_i,
182
         d_o    => ds_o
183
      );
184
 
185
END struct;

powered by: WebSVN 2.1.0

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