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_m00020_s_v03_perceptron_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_m00020_s_v03_perceptron_blk IS
26
   PORT(
27
      clk_i      : IN     std_logic;
28
      dbias_i    : IN     DATA_T;
29
      ds_i       : IN     DATA_T;
30
      dt_i       : IN     DATA_T;
31
      dw_i       : IN     DATA_T;
32
      dy_i       : IN     DATA_T;
33
      rst_i      : IN     std_logic;
34
      wb_adr_i   : IN     WB_ADDR_WIDTH_T;
35
      wb_cyc_i   : IN     std_logic;
36
      wb_dat_i   : IN     WB_DATA_WIDTH_T;
37
      wb_stb_i   : IN     std_logic;
38
      wb_we_i    : IN     std_logic;
39
      addr_i_o   : OUT    ADDRESS_S_T;
40
      addr_j_o   : OUT    ADDRESS_T_T;
41
      ctrl_int_o : OUT    std_logic;
42
      dout1_o    : OUT    DATA_T;
43
      dout2_o    : OUT    DATA_T;
44
      dout3_o    : OUT    DATA_T;
45
      dout4_o    : OUT    DATA_T;
46
      dout5_o    : OUT    DATA_T;
47
      dout7_o    : OUT    DATA_T;
48
      wb_ack_o   : OUT    std_logic;
49
      wb_dat_o   : OUT    WB_DATA_WIDTH_T;
50
      we_bias2_o : OUT    std_logic;
51
      we_bias3_o : OUT    std_logic;
52
      we_bias5_o : OUT    std_logic;
53
      we_s3_o    : OUT    std_logic;
54
      we_s4_o    : OUT    std_logic;
55
      we_s5_o    : OUT    std_logic;
56
      we_t3_o    : OUT    std_logic;
57
      we_t4_o    : OUT    std_logic;
58
      we_t5_o    : OUT    std_logic;
59
      we_w2_o    : OUT    std_logic;
60
      we_w3_o    : OUT    std_logic;
61
      we_w4_o    : OUT    std_logic;
62
      we_w5_o    : OUT    std_logic;
63
      we_w7_o    : OUT    std_logic;
64
      we_y1_o    : OUT    std_logic;
65
      we_y3_o    : OUT    std_logic;
66
      we_y5_o    : OUT    std_logic
67
   );
68
 
69
-- Declarations
70
 
71
END p0300_m00020_s_v03_perceptron_blk ;
72
-- COPYRIGHT (C) 2022 Jens Gutschmidt /
73
-- VIVARE GmbH Switzerland
74
-- (email: opencores@vivare-services.com)
75
-- 
76
-- Versions:
77
-- Revision 3.0  2022/07/04
78
-- - Update wiring and connections
79
-- - Insert all new versioned symbols
80
-- Revision 2.0  2022/06/18
81
-- - Update wiring and connections
82
-- - Insert all new versioned symbols
83
-- Revision 1.0  2022/06/12
84
-- -- First draft
85
-- 
86
LIBRARY ieee;
87
USE ieee.std_logic_1164.all;
88
USE ieee.std_logic_arith.all;
89
--USE ieee.numeric_std.all;
90
LIBRARY work;
91
USE work.memory_vhd_v03_pkg.ALL;
92
 
93
 
94
ARCHITECTURE struct OF p0300_m00020_s_v03_perceptron_blk IS
95
 
96
   -- Architecture declarations
97
 
98
   -- Internal signal declarations
99
   SIGNAL cnt_alllat_oi       : MEM_LAT_CNT_WIDTH_T;
100
   SIGNAL cnteni1_oi          : std_logic;
101
   SIGNAL cnteni2_oi          : std_logic;
102
   SIGNAL cnteni3_oi          : std_logic;
103
   SIGNAL cnteni4_oi          : std_logic;
104
   SIGNAL cnteni5_oi          : std_logic;
105
   SIGNAL cnteni7_oi          : std_logic;
106
   SIGNAL cntenj1_oi          : std_logic;
107
   SIGNAL cntenj2_oi          : std_logic;
108
   SIGNAL cntenj3_oi          : std_logic;
109
   SIGNAL cntenj4_oi          : std_logic;
110
   SIGNAL cntenj5_oi          : std_logic;
111
   SIGNAL cntenj7_oi          : std_logic;
112
   SIGNAL cnti_end_oi         : std_logic;
113
   SIGNAL cnti_rdy_oi         : std_logic;
114
   SIGNAL cntj_end_oi         : std_logic;
115
   SIGNAL cntj_rdy_oi         : std_logic;
116
   SIGNAL ctrl_bias_oi        : DATA_T;
117
   SIGNAL ctrl_clear_epoch_oi : std_logic;
118
   SIGNAL ctrl_complete_oi    : std_logic;
119
   SIGNAL ctrl_din_oi         : DATA_T;
120
   SIGNAL ctrl_dout_oi        : DATA_T;
121
   SIGNAL ctrl_dout_valid_oi  : std_logic;
122
   SIGNAL ctrl_epoch_oi       : WB_DATA_WIDTH_T;
123
   SIGNAL ctrl_int4_o         : std_logic;
124
   SIGNAL ctrl_int6_o         : std_logic;
125
   SIGNAL ctrl_maxepoch_oi    : WB_DATA_WIDTH_T;
126
   SIGNAL ctrl_memerr_oi      : std_logic;
127
   SIGNAL ctrl_not_rdy6_oi    : std_logic;
128
   SIGNAL ctrl_offset_oi      : DATA_T;
129
   SIGNAL ctrl_rd_vec_oi      : MEM_WR_LINES_T;
130
   SIGNAL ctrl_rdlat_oi       : MEM_LAT_CNT_WIDTH_T;
131
   SIGNAL ctrl_rdy1_oi        : std_logic;
132
   SIGNAL ctrl_rdy2_oi        : std_logic;
133
   SIGNAL ctrl_rdy3_oi        : std_logic;
134
   SIGNAL ctrl_rdy4_oi        : std_logic;
135
   SIGNAL ctrl_rdy5_oi        : std_logic;
136
   SIGNAL ctrl_rdy6_oi        : std_logic;
137
   SIGNAL ctrl_rdy7_oi        : std_logic;
138
   SIGNAL ctrl_run7_oi        : std_logic;
139
   SIGNAL ctrl_start1_oi      : std_logic;
140
   SIGNAL ctrl_start2_oi      : std_logic;
141
   SIGNAL ctrl_start3_oi      : std_logic;
142
   SIGNAL ctrl_start4_oi      : std_logic;
143
   SIGNAL ctrl_start5_oi      : std_logic;
144
   SIGNAL ctrl_start6_oi      : std_logic;
145
   SIGNAL ctrl_thres_oi       : DATA_T;
146
   SIGNAL ctrl_wchgd_oi       : std_logic;
147
   SIGNAL ctrl_wr_vec_oi      : MEM_WR_LINES_T;
148
   SIGNAL ctrl_wrlat_oi       : MEM_LAT_CNT_WIDTH_T;
149
   SIGNAL rst_n_oi            : std_logic;
150
   SIGNAL set_initi_oi        : std_logic;
151
   SIGNAL set_initj_oi        : std_logic;
152
   SIGNAL starti_val_oi       : ADDRESS_S_T;
153
   SIGNAL startj_val_oi       : ADDRESS_T_T;
154
   SIGNAL stopi_val_oi        : ADDRESS_S_T;
155
   SIGNAL stopj_val_oi        : ADDRESS_T_T;
156
 
157
 
158
   -- Component Declarations
159
   COMPONENT p0300_m00021_s_v03_wishbone_fsm
160
   PORT (
161
      clk_i              : IN     std_logic ;
162
      ctrl_alllat_i      : IN     MEM_LAT_CNT_WIDTH_T ;
163
      ctrl_complete_i    : IN     std_logic ;
164
      ctrl_dout_i        : IN     DATA_T ;
165
      ctrl_dout_valid_i  : IN     std_logic ;
166
      ctrl_epoch_i       : IN     WB_DATA_WIDTH_T ;
167
      ctrl_int_test_i    : IN     std_logic ;
168
      ctrl_int_train_i   : IN     std_logic ;
169
      ctrl_memerr_i      : IN     std_logic ;
170
      ctrl_not_rdy6_i    : IN     std_logic ;
171
      ctrl_rdlat_i       : IN     MEM_LAT_CNT_WIDTH_T ;
172
      ctrl_rdy1_i        : IN     std_logic ;
173
      ctrl_rdy2_i        : IN     std_logic ;
174
      ctrl_rdy3_i        : IN     std_logic ;
175
      ctrl_rdy4_i        : IN     std_logic ;
176
      ctrl_rdy5_i        : IN     std_logic ;
177
      ctrl_rdy6_i        : IN     std_logic ;
178
      ctrl_run7_i        : IN     std_logic ;
179
      ctrl_wrlat_i       : IN     MEM_LAT_CNT_WIDTH_T ;
180
      rst_n_i            : IN     std_logic ;
181
      wb_adr_i           : IN     WB_ADDR_WIDTH_T ;
182
      wb_cyc_i           : IN     std_logic ;
183
      wb_dat_i           : IN     WB_DATA_WIDTH_T ;
184
      wb_stb_i           : IN     std_logic ;
185
      wb_we_i            : IN     std_logic ;
186
      ctrl_bias_o        : OUT    DATA_T ;
187
      ctrl_clear_epoch_o : OUT    std_logic ;
188
      ctrl_din_o         : OUT    DATA_T ;
189
      ctrl_int_o         : OUT    std_logic ;
190
      ctrl_maxepoch_o    : OUT    WB_DATA_WIDTH_T ;
191
      ctrl_offset_o      : OUT    DATA_T ;
192
      ctrl_rd_vec_o      : OUT    MEM_WR_LINES_T ;
193
      ctrl_set_starti_o  : OUT    std_logic ;
194
      ctrl_set_startj_o  : OUT    std_logic ;
195
      ctrl_start3_o      : OUT    std_logic ;
196
      ctrl_start4_o      : OUT    std_logic ;
197
      ctrl_start5_o      : OUT    std_logic ;
198
      ctrl_start6_o      : OUT    std_logic ;
199
      ctrl_starti_val_o  : OUT    ADDRESS_S_T ;
200
      ctrl_startj_val_o  : OUT    ADDRESS_T_T ;
201
      ctrl_stopi_val_o   : OUT    ADDRESS_S_T ;
202
      ctrl_stopj_val_o   : OUT    ADDRESS_T_T ;
203
      ctrl_thres_o       : OUT    DATA_T ;
204
      ctrl_wr_vec_o      : OUT    MEM_WR_LINES_T ;
205
      wb_ack_o           : OUT    std_logic ;
206
      wb_dat_o           : OUT    WB_DATA_WIDTH_T
207
   );
208
   END COMPONENT;
209
   COMPONENT p0300_m00022_s_v02_cal_y_fsm
210
   PORT (
211
      clk_i        : IN     std_logic ;
212
      cnti_end_i   : IN     std_logic ;
213
      cntj_end_i   : IN     std_logic ;
214
      ctrl_rdlat_i : IN     MEM_LAT_CNT_WIDTH_T ;
215
      ctrl_rdy7_i  : IN     std_logic ;
216
      ctrl_start_i : IN     std_logic ;
217
      ctrl_thres_i : IN     DATA_T ;
218
      ctrl_wrlat_i : IN     MEM_LAT_CNT_WIDTH_T ;
219
      dbias_i      : IN     DATA_T ;
220
      ds_i         : IN     DATA_T ;
221
      dw_i         : IN     DATA_T ;
222
      rst_n_i      : IN     std_logic ;
223
      cnteni_o     : OUT    std_logic ;
224
      cntenj_o     : OUT    std_logic ;
225
      ctrl_rdy_o   : OUT    std_logic ;
226
      dout_o       : OUT    DATA_T ;
227
      we_y_o       : OUT    std_logic
228
   );
229
   END COMPONENT;
230
   COMPONENT p0300_m00023_s_v02_cal_w_fsm
231
   PORT (
232
      clk_i        : IN     std_logic ;
233
      cnti_end_i   : IN     std_logic ;
234
      cntj_end_i   : IN     std_logic ;
235
      ctrl_rdlat_i : IN     MEM_LAT_CNT_WIDTH_T ;
236
      ctrl_rdy7_i  : IN     std_logic ;
237
      ctrl_start_i : IN     std_logic ;
238
      ctrl_wrlat_i : IN     MEM_LAT_CNT_WIDTH_T ;
239
      dbias_i      : IN     DATA_T ;
240
      ds_i         : IN     DATA_T ;
241
      dt_i         : IN     DATA_T ;
242
      dw_i         : IN     DATA_T ;
243
      dy_i         : IN     DATA_T ;
244
      rst_n_i      : IN     std_logic ;
245
      cnteni_o     : OUT    std_logic ;
246
      cntenj_o     : OUT    std_logic ;
247
      ctrl_rdy_o   : OUT    std_logic ;
248
      ctrl_wchgd_o : OUT    std_logic ;
249
      dout_o       : OUT    DATA_T ;
250
      we_bias_o    : OUT    std_logic ;
251
      we_w_o       : OUT    std_logic
252
   );
253
   END COMPONENT;
254
   COMPONENT p0300_m00024_s_v02_test_fsm
255
   PORT (
256
      clk_i        : IN     std_logic ;
257
      cnti_end_i   : IN     std_logic ;
258
      cntj_end_i   : IN     std_logic ;
259
      ctrl_rdlat_i : IN     MEM_LAT_CNT_WIDTH_T ;
260
      ctrl_rdy7_i  : IN     std_logic ;
261
      ctrl_start_i : IN     std_logic ;
262
      ctrl_wrlat_i : IN     MEM_LAT_CNT_WIDTH_T ;
263
      ds_i         : IN     DATA_T ;
264
      dt_i         : IN     DATA_T ;
265
      dw_i         : IN     DATA_T ;
266
      offset_i     : IN     DATA_T ;
267
      rst_n_i      : IN     std_logic ;
268
      cnteni_o     : OUT    std_logic ;
269
      cntenj_o     : OUT    std_logic ;
270
      ctrl_int_o   : OUT    std_logic ;
271
      ctrl_rdy_o   : OUT    std_logic ;
272
      dout_o       : OUT    DATA_T ;
273
      we_s_o       : OUT    std_logic ;
274
      we_t_o       : OUT    std_logic ;
275
      we_w_o       : OUT    std_logic
276
   );
277
   END COMPONENT;
278
   COMPONENT p0300_m00025_s_v02_init_fsm
279
   PORT (
280
      clk_i        : IN     std_logic ;
281
      cnti_end_i   : IN     std_logic ;
282
      cntj_end_i   : IN     std_logic ;
283
      ctrl_bias_i  : IN     DATA_T ;
284
      ctrl_rdlat_i : IN     MEM_LAT_CNT_WIDTH_T ;
285
      ctrl_rdy7_i  : IN     std_logic ;
286
      ctrl_start_i : IN     std_logic ;
287
      ctrl_wrlat_i : IN     MEM_LAT_CNT_WIDTH_T ;
288
      rst_n_i      : IN     std_logic ;
289
      cnteni_o     : OUT    std_logic ;
290
      cntenj_o     : OUT    std_logic ;
291
      ctrl_rdy_o   : OUT    std_logic ;
292
      dout_o       : OUT    DATA_T ;
293
      we_bias_o    : OUT    std_logic ;
294
      we_s_o       : OUT    std_logic ;
295
      we_t_o       : OUT    std_logic ;
296
      we_w_o       : OUT    std_logic ;
297
      we_y_o       : OUT    std_logic
298
   );
299
   END COMPONENT;
300
   COMPONENT p0300_m00026_s_v02_rd_wr_fsm
301
   PORT (
302
      clk_i             : IN     std_logic ;
303
      cnti_end_i        : IN     std_logic ;
304
      cntj_end_i        : IN     std_logic ;
305
      ctrl_din_i        : IN     DATA_T ;
306
      ctrl_rd_vec_i     : IN     MEM_WR_LINES_T ;
307
      ctrl_rdlat_i      : IN     MEM_LAT_CNT_WIDTH_T ;
308
      ctrl_rdy7_i       : IN     std_logic ;
309
      ctrl_start_i      : IN     std_logic ;
310
      ctrl_wr_vec_i     : IN     MEM_WR_LINES_T ;
311
      ctrl_wrlat_i      : IN     MEM_LAT_CNT_WIDTH_T ;
312
      dbias_i           : IN     DATA_T ;
313
      ds_i              : IN     DATA_T ;
314
      dt_i              : IN     DATA_T ;
315
      dw_i              : IN     DATA_T ;
316
      dy_i              : IN     DATA_T ;
317
      rst_n_i           : IN     std_logic ;
318
      cnteni_o          : OUT    std_logic ;
319
      cntenj_o          : OUT    std_logic ;
320
      ctrl_complete_o   : OUT    std_logic ;
321
      ctrl_dout_o       : OUT    DATA_T ;
322
      ctrl_dout_valid_o : OUT    std_logic ;
323
      ctrl_rdy_o        : OUT    std_logic ;
324
      dout_o            : OUT    DATA_T ;
325
      we_bias_o         : OUT    std_logic ;
326
      we_s_o            : OUT    std_logic ;
327
      we_t_o            : OUT    std_logic ;
328
      we_w_o            : OUT    std_logic ;
329
      we_y_o            : OUT    std_logic
330
   );
331
   END COMPONENT;
332
   COMPONENT p0300_m00027_s_v01_train_fsm
333
   PORT (
334
      clk_i              : IN     std_logic ;
335
      cnti_rdy_i         : IN     std_logic ;
336
      cntj_rdy_i         : IN     std_logic ;
337
      ctrl_clear_epoch_i : IN     std_logic ;
338
      ctrl_maxepoch_i    : IN     WB_DATA_WIDTH_T ;
339
      ctrl_rdy1_i        : IN     std_logic ;
340
      ctrl_rdy2_i        : IN     std_logic ;
341
      ctrl_rdy7_i        : IN     std_logic ;
342
      ctrl_start_i       : IN     std_logic ;
343
      ctrl_wchgd_i       : IN     std_logic ;
344
      rst_n_i            : IN     std_logic ;
345
      ctrl_epoch_o       : OUT    WB_DATA_WIDTH_T ;
346
      ctrl_int_o         : OUT    std_logic ;
347
      ctrl_not_rdy_o     : OUT    std_logic ;
348
      ctrl_rdy_o         : OUT    std_logic ;
349
      ctrl_start1_o      : OUT    std_logic ;
350
      ctrl_start2_o      : OUT    std_logic
351
   );
352
   END COMPONENT;
353
   COMPONENT p0300_m00028_s_v02_latency_fsm
354
   PORT (
355
      clk_i         : IN     std_logic ;
356
      dw_i          : IN     DATA_T ;
357
      rst_n_i       : IN     std_logic ;
358
      cnt_alllat_o  : OUT    MEM_LAT_CNT_WIDTH_T ;
359
      cnteni_o      : OUT    std_logic ;
360
      cntenj_o      : OUT    std_logic ;
361
      ctrl_memerr_o : OUT    std_logic ;
362
      ctrl_rdlat_o  : OUT    MEM_LAT_CNT_WIDTH_T ;
363
      ctrl_rdy_o    : OUT    std_logic ;
364
      ctrl_run_o    : OUT    std_logic ;
365
      ctrl_wrlat_o  : OUT    MEM_LAT_CNT_WIDTH_T ;
366
      dout_o        : OUT    DATA_T ;
367
      we_w_o        : OUT    std_logic
368
   );
369
   END COMPONENT;
370
   COMPONENT p0300_m00033_s_v01_for_loop_memwi_fsm
371
   PORT (
372
      clk_i        : IN     std_logic ;
373
      cnten1_i     : IN     std_logic ;
374
      cnten2_i     : IN     std_logic ;
375
      cnten3_i     : IN     std_logic ;
376
      cnten4_i     : IN     std_logic ;
377
      cnten5_i     : IN     std_logic ;
378
      cnten7_i     : IN     std_logic ;
379
      rst_n_i      : IN     std_logic ;
380
      set_init_i   : IN     std_logic ;
381
      start_vali_i : IN     ADDRESS_S_T ;
382
      stop_vali_i  : IN     ADDRESS_S_T ;
383
      cnt_end_o    : OUT    std_logic ;
384
      cnt_rdy_o    : OUT    std_logic ;
385
      cnt_val_o    : OUT    ADDRESS_S_T
386
   );
387
   END COMPONENT;
388
   COMPONENT p0300_m00034_s_v01_for_loop_memwj_fsm
389
   PORT (
390
      clk_i        : IN     std_logic ;
391
      cnten1_i     : IN     std_logic ;
392
      cnten2_i     : IN     std_logic ;
393
      cnten3_i     : IN     std_logic ;
394
      cnten4_i     : IN     std_logic ;
395
      cnten5_i     : IN     std_logic ;
396
      cnten7_i     : IN     std_logic ;
397
      rst_n_i      : IN     std_logic ;
398
      set_init_i   : IN     std_logic ;
399
      start_valj_i : IN     ADDRESS_T_T ;
400
      stop_valj_i  : IN     ADDRESS_T_T ;
401
      cnt_end_o    : OUT    std_logic ;
402
      cnt_rdy_o    : OUT    std_logic ;
403
      cnt_val_o    : OUT    ADDRESS_T_T
404
   );
405
   END COMPONENT;
406
 
407
   -- Optional embedded configurations
408
   -- pragma synthesis_off
409
   FOR ALL : p0300_m00021_s_v03_wishbone_fsm USE ENTITY work.p0300_m00021_s_v03_wishbone_fsm;
410
   FOR ALL : p0300_m00022_s_v02_cal_y_fsm USE ENTITY work.p0300_m00022_s_v02_cal_y_fsm;
411
   FOR ALL : p0300_m00023_s_v02_cal_w_fsm USE ENTITY work.p0300_m00023_s_v02_cal_w_fsm;
412
   FOR ALL : p0300_m00024_s_v02_test_fsm USE ENTITY work.p0300_m00024_s_v02_test_fsm;
413
   FOR ALL : p0300_m00025_s_v02_init_fsm USE ENTITY work.p0300_m00025_s_v02_init_fsm;
414
   FOR ALL : p0300_m00026_s_v02_rd_wr_fsm USE ENTITY work.p0300_m00026_s_v02_rd_wr_fsm;
415
   FOR ALL : p0300_m00027_s_v01_train_fsm USE ENTITY work.p0300_m00027_s_v01_train_fsm;
416
   FOR ALL : p0300_m00028_s_v02_latency_fsm USE ENTITY work.p0300_m00028_s_v02_latency_fsm;
417
   FOR ALL : p0300_m00033_s_v01_for_loop_memwi_fsm USE ENTITY work.p0300_m00033_s_v01_for_loop_memwi_fsm;
418
   FOR ALL : p0300_m00034_s_v01_for_loop_memwj_fsm USE ENTITY work.p0300_m00034_s_v01_for_loop_memwj_fsm;
419
   -- pragma synthesis_on
420
 
421
 
422
BEGIN
423
   -- Architecture concurrent statements
424
   -- HDL Embedded Text Block 1 eb1
425
   -- eb1 1
426
   rst_n_oi <= NOT ( rst_i );
427
 
428
 
429
   -- Instance port mappings.
430
   U_14 : p0300_m00021_s_v03_wishbone_fsm
431
      PORT MAP (
432
         clk_i              => clk_i,
433
         ctrl_alllat_i      => cnt_alllat_oi,
434
         ctrl_complete_i    => ctrl_complete_oi,
435
         ctrl_dout_i        => ctrl_dout_oi,
436
         ctrl_dout_valid_i  => ctrl_dout_valid_oi,
437
         ctrl_epoch_i       => ctrl_epoch_oi,
438
         ctrl_int_test_i    => ctrl_int4_o,
439
         ctrl_int_train_i   => ctrl_int6_o,
440
         ctrl_memerr_i      => ctrl_memerr_oi,
441
         ctrl_not_rdy6_i    => ctrl_not_rdy6_oi,
442
         ctrl_rdlat_i       => ctrl_rdlat_oi,
443
         ctrl_rdy1_i        => ctrl_rdy1_oi,
444
         ctrl_rdy2_i        => ctrl_rdy2_oi,
445
         ctrl_rdy3_i        => ctrl_rdy3_oi,
446
         ctrl_rdy4_i        => ctrl_rdy4_oi,
447
         ctrl_rdy5_i        => ctrl_rdy5_oi,
448
         ctrl_rdy6_i        => ctrl_rdy6_oi,
449
         ctrl_run7_i        => ctrl_run7_oi,
450
         ctrl_wrlat_i       => ctrl_wrlat_oi,
451
         rst_n_i            => rst_n_oi,
452
         wb_adr_i           => wb_adr_i,
453
         wb_cyc_i           => wb_cyc_i,
454
         wb_dat_i           => wb_dat_i,
455
         wb_stb_i           => wb_stb_i,
456
         wb_we_i            => wb_we_i,
457
         ctrl_bias_o        => ctrl_bias_oi,
458
         ctrl_clear_epoch_o => ctrl_clear_epoch_oi,
459
         ctrl_din_o         => ctrl_din_oi,
460
         ctrl_int_o         => ctrl_int_o,
461
         ctrl_maxepoch_o    => ctrl_maxepoch_oi,
462
         ctrl_offset_o      => ctrl_offset_oi,
463
         ctrl_rd_vec_o      => ctrl_rd_vec_oi,
464
         ctrl_set_starti_o  => set_initi_oi,
465
         ctrl_set_startj_o  => set_initj_oi,
466
         ctrl_start3_o      => ctrl_start3_oi,
467
         ctrl_start4_o      => ctrl_start4_oi,
468
         ctrl_start5_o      => ctrl_start5_oi,
469
         ctrl_start6_o      => ctrl_start6_oi,
470
         ctrl_starti_val_o  => starti_val_oi,
471
         ctrl_startj_val_o  => startj_val_oi,
472
         ctrl_stopi_val_o   => stopi_val_oi,
473
         ctrl_stopj_val_o   => stopj_val_oi,
474
         ctrl_thres_o       => ctrl_thres_oi,
475
         ctrl_wr_vec_o      => ctrl_wr_vec_oi,
476
         wb_ack_o           => wb_ack_o,
477
         wb_dat_o           => wb_dat_o
478
      );
479
   U_0 : p0300_m00022_s_v02_cal_y_fsm
480
      PORT MAP (
481
         clk_i        => clk_i,
482
         cnti_end_i   => cnti_end_oi,
483
         cntj_end_i   => cntj_end_oi,
484
         ctrl_rdlat_i => ctrl_rdlat_oi,
485
         ctrl_rdy7_i  => ctrl_rdy7_oi,
486
         ctrl_start_i => ctrl_start1_oi,
487
         ctrl_thres_i => ctrl_thres_oi,
488
         ctrl_wrlat_i => ctrl_wrlat_oi,
489
         dbias_i      => dbias_i,
490
         ds_i         => ds_i,
491
         dw_i         => dw_i,
492
         rst_n_i      => rst_n_oi,
493
         cnteni_o     => cnteni1_oi,
494
         cntenj_o     => cntenj1_oi,
495
         ctrl_rdy_o   => ctrl_rdy1_oi,
496
         dout_o       => dout1_o,
497
         we_y_o       => we_y1_o
498
      );
499
   U_8 : p0300_m00023_s_v02_cal_w_fsm
500
      PORT MAP (
501
         clk_i        => clk_i,
502
         cnti_end_i   => cnti_end_oi,
503
         cntj_end_i   => cntj_end_oi,
504
         ctrl_rdlat_i => ctrl_rdlat_oi,
505
         ctrl_rdy7_i  => ctrl_rdy7_oi,
506
         ctrl_start_i => ctrl_start2_oi,
507
         ctrl_wrlat_i => ctrl_wrlat_oi,
508
         dbias_i      => dbias_i,
509
         ds_i         => ds_i,
510
         dt_i         => dt_i,
511
         dw_i         => dw_i,
512
         dy_i         => dy_i,
513
         rst_n_i      => rst_n_oi,
514
         cnteni_o     => cnteni2_oi,
515
         cntenj_o     => cntenj2_oi,
516
         ctrl_rdy_o   => ctrl_rdy2_oi,
517
         ctrl_wchgd_o => ctrl_wchgd_oi,
518
         dout_o       => dout2_o,
519
         we_bias_o    => we_bias2_o,
520
         we_w_o       => we_w2_o
521
      );
522
   U_10 : p0300_m00024_s_v02_test_fsm
523
      PORT MAP (
524
         clk_i        => clk_i,
525
         cnti_end_i   => cnti_end_oi,
526
         cntj_end_i   => cntj_end_oi,
527
         ctrl_rdlat_i => ctrl_rdlat_oi,
528
         ctrl_rdy7_i  => ctrl_rdy7_oi,
529
         ctrl_start_i => ctrl_start4_oi,
530
         ctrl_wrlat_i => ctrl_wrlat_oi,
531
         ds_i         => ds_i,
532
         dt_i         => dt_i,
533
         dw_i         => dw_i,
534
         offset_i     => ctrl_offset_oi,
535
         rst_n_i      => rst_n_oi,
536
         cnteni_o     => cnteni4_oi,
537
         cntenj_o     => cntenj4_oi,
538
         ctrl_int_o   => ctrl_int4_o,
539
         ctrl_rdy_o   => ctrl_rdy4_oi,
540
         dout_o       => dout4_o,
541
         we_s_o       => we_s4_o,
542
         we_t_o       => we_t4_o,
543
         we_w_o       => we_w4_o
544
      );
545
   U_9 : p0300_m00025_s_v02_init_fsm
546
      PORT MAP (
547
         clk_i        => clk_i,
548
         cnti_end_i   => cnti_end_oi,
549
         cntj_end_i   => cntj_end_oi,
550
         ctrl_bias_i  => ctrl_bias_oi,
551
         ctrl_rdlat_i => ctrl_rdlat_oi,
552
         ctrl_rdy7_i  => ctrl_rdy7_oi,
553
         ctrl_start_i => ctrl_start3_oi,
554
         ctrl_wrlat_i => ctrl_wrlat_oi,
555
         rst_n_i      => rst_n_oi,
556
         cnteni_o     => cnteni3_oi,
557
         cntenj_o     => cntenj3_oi,
558
         ctrl_rdy_o   => ctrl_rdy3_oi,
559
         dout_o       => dout3_o,
560
         we_bias_o    => we_bias3_o,
561
         we_s_o       => we_s3_o,
562
         we_t_o       => we_t3_o,
563
         we_w_o       => we_w3_o,
564
         we_y_o       => we_y3_o
565
      );
566
   U_11 : p0300_m00026_s_v02_rd_wr_fsm
567
      PORT MAP (
568
         clk_i             => clk_i,
569
         cnti_end_i        => cnti_end_oi,
570
         cntj_end_i        => cntj_end_oi,
571
         ctrl_din_i        => ctrl_din_oi,
572
         ctrl_rd_vec_i     => ctrl_rd_vec_oi,
573
         ctrl_rdlat_i      => ctrl_rdlat_oi,
574
         ctrl_rdy7_i       => ctrl_rdy7_oi,
575
         ctrl_start_i      => ctrl_start5_oi,
576
         ctrl_wr_vec_i     => ctrl_wr_vec_oi,
577
         ctrl_wrlat_i      => ctrl_wrlat_oi,
578
         dbias_i           => dbias_i,
579
         ds_i              => ds_i,
580
         dt_i              => dt_i,
581
         dw_i              => dw_i,
582
         dy_i              => dy_i,
583
         rst_n_i           => rst_n_oi,
584
         cnteni_o          => cnteni5_oi,
585
         cntenj_o          => cntenj5_oi,
586
         ctrl_complete_o   => ctrl_complete_oi,
587
         ctrl_dout_o       => ctrl_dout_oi,
588
         ctrl_dout_valid_o => ctrl_dout_valid_oi,
589
         ctrl_rdy_o        => ctrl_rdy5_oi,
590
         dout_o            => dout5_o,
591
         we_bias_o         => we_bias5_o,
592
         we_s_o            => we_s5_o,
593
         we_t_o            => we_t5_o,
594
         we_w_o            => we_w5_o,
595
         we_y_o            => we_y5_o
596
      );
597
   U_12 : p0300_m00027_s_v01_train_fsm
598
      PORT MAP (
599
         clk_i              => clk_i,
600
         cnti_rdy_i         => cnti_rdy_oi,
601
         cntj_rdy_i         => cntj_rdy_oi,
602
         ctrl_clear_epoch_i => ctrl_clear_epoch_oi,
603
         ctrl_maxepoch_i    => ctrl_maxepoch_oi,
604
         ctrl_rdy1_i        => ctrl_rdy1_oi,
605
         ctrl_rdy2_i        => ctrl_rdy2_oi,
606
         ctrl_rdy7_i        => ctrl_rdy7_oi,
607
         ctrl_start_i       => ctrl_start6_oi,
608
         ctrl_wchgd_i       => ctrl_wchgd_oi,
609
         rst_n_i            => rst_n_oi,
610
         ctrl_epoch_o       => ctrl_epoch_oi,
611
         ctrl_int_o         => ctrl_int6_o,
612
         ctrl_not_rdy_o     => ctrl_not_rdy6_oi,
613
         ctrl_rdy_o         => ctrl_rdy6_oi,
614
         ctrl_start1_o      => ctrl_start1_oi,
615
         ctrl_start2_o      => ctrl_start2_oi
616
      );
617
   U_13 : p0300_m00028_s_v02_latency_fsm
618
      PORT MAP (
619
         clk_i         => clk_i,
620
         dw_i          => dw_i,
621
         rst_n_i       => rst_n_oi,
622
         cnt_alllat_o  => cnt_alllat_oi,
623
         cnteni_o      => cnteni7_oi,
624
         cntenj_o      => cntenj7_oi,
625
         ctrl_memerr_o => ctrl_memerr_oi,
626
         ctrl_rdlat_o  => ctrl_rdlat_oi,
627
         ctrl_rdy_o    => ctrl_rdy7_oi,
628
         ctrl_run_o    => ctrl_run7_oi,
629
         ctrl_wrlat_o  => ctrl_wrlat_oi,
630
         dout_o        => dout7_o,
631
         we_w_o        => we_w7_o
632
      );
633
   U_2 : p0300_m00033_s_v01_for_loop_memwi_fsm
634
      PORT MAP (
635
         clk_i        => clk_i,
636
         cnten1_i     => cnteni1_oi,
637
         cnten2_i     => cnteni2_oi,
638
         cnten3_i     => cnteni3_oi,
639
         cnten4_i     => cnteni4_oi,
640
         cnten5_i     => cnteni5_oi,
641
         cnten7_i     => cnteni7_oi,
642
         rst_n_i      => rst_n_oi,
643
         set_init_i   => set_initi_oi,
644
         start_vali_i => starti_val_oi,
645
         stop_vali_i  => stopi_val_oi,
646
         cnt_end_o    => cnti_end_oi,
647
         cnt_rdy_o    => cnti_rdy_oi,
648
         cnt_val_o    => addr_i_o
649
      );
650
   U_1 : p0300_m00034_s_v01_for_loop_memwj_fsm
651
      PORT MAP (
652
         clk_i        => clk_i,
653
         cnten1_i     => cntenj1_oi,
654
         cnten2_i     => cntenj2_oi,
655
         cnten3_i     => cntenj3_oi,
656
         cnten4_i     => cntenj4_oi,
657
         cnten5_i     => cntenj5_oi,
658
         cnten7_i     => cntenj7_oi,
659
         rst_n_i      => rst_n_oi,
660
         set_init_i   => set_initj_oi,
661
         start_valj_i => startj_val_oi,
662
         stop_valj_i  => stopj_val_oi,
663
         cnt_end_o    => cntj_end_oi,
664
         cnt_rdy_o    => cntj_rdy_oi,
665
         cnt_val_o    => addr_j_o
666
      );
667
 
668
END struct;

powered by: WebSVN 2.1.0

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