Project

General

Profile

RE: uPP receiving problem » fifo.vhd

Silvano Bertoldo, 07/21/2014 11:34 AM

 
1
--------------------------------------------------------------------------------
2
--    This file is owned and controlled by Xilinx and must be used solely     --
3
--    for design, simulation, implementation and creation of design files     --
4
--    limited to Xilinx devices or technologies. Use with non-Xilinx          --
5
--    devices or technologies is expressly prohibited and immediately         --
6
--    terminates your license.                                                --
7
--                                                                            --
8
--    XILINX IS PROVIDING THIS DESIGN, CODE, OR INFORMATION "AS IS" SOLELY    --
9
--    FOR USE IN DEVELOPING PROGRAMS AND SOLUTIONS FOR XILINX DEVICES.  BY    --
10
--    PROVIDING THIS DESIGN, CODE, OR INFORMATION AS ONE POSSIBLE             --
11
--    IMPLEMENTATION OF THIS FEATURE, APPLICATION OR STANDARD, XILINX IS      --
12
--    MAKING NO REPRESENTATION THAT THIS IMPLEMENTATION IS FREE FROM ANY      --
13
--    CLAIMS OF INFRINGEMENT, AND YOU ARE RESPONSIBLE FOR OBTAINING ANY       --
14
--    RIGHTS YOU MAY REQUIRE FOR YOUR IMPLEMENTATION.  XILINX EXPRESSLY       --
15
--    DISCLAIMS ANY WARRANTY WHATSOEVER WITH RESPECT TO THE ADEQUACY OF THE   --
16
--    IMPLEMENTATION, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OR          --
17
--    REPRESENTATIONS THAT THIS IMPLEMENTATION IS FREE FROM CLAIMS OF         --
18
--    INFRINGEMENT, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A   --
19
--    PARTICULAR PURPOSE.                                                     --
20
--                                                                            --
21
--    Xilinx products are not intended for use in life support appliances,    --
22
--    devices, or systems.  Use in such applications are expressly            --
23
--    prohibited.                                                             --
24
--                                                                            --
25
--    (c) Copyright 1995-2014 Xilinx, Inc.                                    --
26
--    All rights reserved.                                                    --
27
--------------------------------------------------------------------------------
28
--------------------------------------------------------------------------------
29
-- You must compile the wrapper file fifo.vhd when simulating
30
-- the core, fifo. When compiling the wrapper file, be sure to
31
-- reference the XilinxCoreLib VHDL simulation library. For detailed
32
-- instructions, please refer to the "CORE Generator Help".
33

    
34
-- The synthesis directives "translate_off/translate_on" specified
35
-- below are supported by Xilinx, Mentor Graphics and Synplicity
36
-- synthesis tools. Ensure they are correct for your synthesis tool(s).
37

    
38
LIBRARY ieee;
39
USE ieee.std_logic_1164.ALL;
40
-- synthesis translate_off
41
LIBRARY XilinxCoreLib;
42
-- synthesis translate_on
43
ENTITY fifo IS
44
  PORT (
45
    rst : IN STD_LOGIC;
46
    wr_clk : IN STD_LOGIC;
47
    rd_clk : IN STD_LOGIC;
48
    din : IN STD_LOGIC_VECTOR(11 DOWNTO 0);
49
    wr_en : IN STD_LOGIC;
50
    rd_en : IN STD_LOGIC;
51
    dout : OUT STD_LOGIC_VECTOR(11 DOWNTO 0);
52
    full : OUT STD_LOGIC;
53
    almost_full : OUT STD_LOGIC;
54
    wr_ack : OUT STD_LOGIC;
55
    overflow : OUT STD_LOGIC;
56
    empty : OUT STD_LOGIC;
57
    almost_empty : OUT STD_LOGIC;
58
    valid : OUT STD_LOGIC;
59
    underflow : OUT STD_LOGIC;
60
    rd_data_count : OUT STD_LOGIC_VECTOR(9 DOWNTO 0);
61
    wr_data_count : OUT STD_LOGIC_VECTOR(9 DOWNTO 0)
62
  );
63
END fifo;
64

    
65
ARCHITECTURE fifo_a OF fifo IS
66
-- synthesis translate_off
67
COMPONENT wrapped_fifo
68
  PORT (
69
    rst : IN STD_LOGIC;
70
    wr_clk : IN STD_LOGIC;
71
    rd_clk : IN STD_LOGIC;
72
    din : IN STD_LOGIC_VECTOR(11 DOWNTO 0);
73
    wr_en : IN STD_LOGIC;
74
    rd_en : IN STD_LOGIC;
75
    dout : OUT STD_LOGIC_VECTOR(11 DOWNTO 0);
76
    full : OUT STD_LOGIC;
77
    almost_full : OUT STD_LOGIC;
78
    wr_ack : OUT STD_LOGIC;
79
    overflow : OUT STD_LOGIC;
80
    empty : OUT STD_LOGIC;
81
    almost_empty : OUT STD_LOGIC;
82
    valid : OUT STD_LOGIC;
83
    underflow : OUT STD_LOGIC;
84
    rd_data_count : OUT STD_LOGIC_VECTOR(9 DOWNTO 0);
85
    wr_data_count : OUT STD_LOGIC_VECTOR(9 DOWNTO 0)
86
  );
87
END COMPONENT;
88

    
89
-- Configuration specification
90
  FOR ALL : wrapped_fifo USE ENTITY XilinxCoreLib.fifo_generator_v9_3(behavioral)
91
    GENERIC MAP (
92
      c_add_ngc_constraint => 0,
93
      c_application_type_axis => 0,
94
      c_application_type_rach => 0,
95
      c_application_type_rdch => 0,
96
      c_application_type_wach => 0,
97
      c_application_type_wdch => 0,
98
      c_application_type_wrch => 0,
99
      c_axi_addr_width => 32,
100
      c_axi_aruser_width => 1,
101
      c_axi_awuser_width => 1,
102
      c_axi_buser_width => 1,
103
      c_axi_data_width => 64,
104
      c_axi_id_width => 4,
105
      c_axi_ruser_width => 1,
106
      c_axi_type => 0,
107
      c_axi_wuser_width => 1,
108
      c_axis_tdata_width => 64,
109
      c_axis_tdest_width => 4,
110
      c_axis_tid_width => 8,
111
      c_axis_tkeep_width => 4,
112
      c_axis_tstrb_width => 4,
113
      c_axis_tuser_width => 4,
114
      c_axis_type => 0,
115
      c_common_clock => 0,
116
      c_count_type => 0,
117
      c_data_count_width => 10,
118
      c_default_value => "BlankString",
119
      c_din_width => 12,
120
      c_din_width_axis => 1,
121
      c_din_width_rach => 32,
122
      c_din_width_rdch => 64,
123
      c_din_width_wach => 32,
124
      c_din_width_wdch => 64,
125
      c_din_width_wrch => 2,
126
      c_dout_rst_val => "0",
127
      c_dout_width => 12,
128
      c_enable_rlocs => 0,
129
      c_enable_rst_sync => 1,
130
      c_error_injection_type => 0,
131
      c_error_injection_type_axis => 0,
132
      c_error_injection_type_rach => 0,
133
      c_error_injection_type_rdch => 0,
134
      c_error_injection_type_wach => 0,
135
      c_error_injection_type_wdch => 0,
136
      c_error_injection_type_wrch => 0,
137
      c_family => "spartan6",
138
      c_full_flags_rst_val => 1,
139
      c_has_almost_empty => 1,
140
      c_has_almost_full => 1,
141
      c_has_axi_aruser => 0,
142
      c_has_axi_awuser => 0,
143
      c_has_axi_buser => 0,
144
      c_has_axi_rd_channel => 0,
145
      c_has_axi_ruser => 0,
146
      c_has_axi_wr_channel => 0,
147
      c_has_axi_wuser => 0,
148
      c_has_axis_tdata => 0,
149
      c_has_axis_tdest => 0,
150
      c_has_axis_tid => 0,
151
      c_has_axis_tkeep => 0,
152
      c_has_axis_tlast => 0,
153
      c_has_axis_tready => 1,
154
      c_has_axis_tstrb => 0,
155
      c_has_axis_tuser => 0,
156
      c_has_backup => 0,
157
      c_has_data_count => 0,
158
      c_has_data_counts_axis => 0,
159
      c_has_data_counts_rach => 0,
160
      c_has_data_counts_rdch => 0,
161
      c_has_data_counts_wach => 0,
162
      c_has_data_counts_wdch => 0,
163
      c_has_data_counts_wrch => 0,
164
      c_has_int_clk => 0,
165
      c_has_master_ce => 0,
166
      c_has_meminit_file => 0,
167
      c_has_overflow => 1,
168
      c_has_prog_flags_axis => 0,
169
      c_has_prog_flags_rach => 0,
170
      c_has_prog_flags_rdch => 0,
171
      c_has_prog_flags_wach => 0,
172
      c_has_prog_flags_wdch => 0,
173
      c_has_prog_flags_wrch => 0,
174
      c_has_rd_data_count => 1,
175
      c_has_rd_rst => 0,
176
      c_has_rst => 1,
177
      c_has_slave_ce => 0,
178
      c_has_srst => 0,
179
      c_has_underflow => 1,
180
      c_has_valid => 1,
181
      c_has_wr_ack => 1,
182
      c_has_wr_data_count => 1,
183
      c_has_wr_rst => 0,
184
      c_implementation_type => 2,
185
      c_implementation_type_axis => 1,
186
      c_implementation_type_rach => 1,
187
      c_implementation_type_rdch => 1,
188
      c_implementation_type_wach => 1,
189
      c_implementation_type_wdch => 1,
190
      c_implementation_type_wrch => 1,
191
      c_init_wr_pntr_val => 0,
192
      c_interface_type => 0,
193
      c_memory_type => 2,
194
      c_mif_file_name => "BlankString",
195
      c_msgon_val => 1,
196
      c_optimization_mode => 0,
197
      c_overflow_low => 0,
198
      c_preload_latency => 1,
199
      c_preload_regs => 0,
200
      c_prim_fifo_type => "1kx18",
201
      c_prog_empty_thresh_assert_val => 2,
202
      c_prog_empty_thresh_assert_val_axis => 1022,
203
      c_prog_empty_thresh_assert_val_rach => 1022,
204
      c_prog_empty_thresh_assert_val_rdch => 1022,
205
      c_prog_empty_thresh_assert_val_wach => 1022,
206
      c_prog_empty_thresh_assert_val_wdch => 1022,
207
      c_prog_empty_thresh_assert_val_wrch => 1022,
208
      c_prog_empty_thresh_negate_val => 3,
209
      c_prog_empty_type => 0,
210
      c_prog_empty_type_axis => 0,
211
      c_prog_empty_type_rach => 0,
212
      c_prog_empty_type_rdch => 0,
213
      c_prog_empty_type_wach => 0,
214
      c_prog_empty_type_wdch => 0,
215
      c_prog_empty_type_wrch => 0,
216
      c_prog_full_thresh_assert_val => 1021,
217
      c_prog_full_thresh_assert_val_axis => 1023,
218
      c_prog_full_thresh_assert_val_rach => 1023,
219
      c_prog_full_thresh_assert_val_rdch => 1023,
220
      c_prog_full_thresh_assert_val_wach => 1023,
221
      c_prog_full_thresh_assert_val_wdch => 1023,
222
      c_prog_full_thresh_assert_val_wrch => 1023,
223
      c_prog_full_thresh_negate_val => 1020,
224
      c_prog_full_type => 0,
225
      c_prog_full_type_axis => 0,
226
      c_prog_full_type_rach => 0,
227
      c_prog_full_type_rdch => 0,
228
      c_prog_full_type_wach => 0,
229
      c_prog_full_type_wdch => 0,
230
      c_prog_full_type_wrch => 0,
231
      c_rach_type => 0,
232
      c_rd_data_count_width => 10,
233
      c_rd_depth => 1024,
234
      c_rd_freq => 1,
235
      c_rd_pntr_width => 10,
236
      c_rdch_type => 0,
237
      c_reg_slice_mode_axis => 0,
238
      c_reg_slice_mode_rach => 0,
239
      c_reg_slice_mode_rdch => 0,
240
      c_reg_slice_mode_wach => 0,
241
      c_reg_slice_mode_wdch => 0,
242
      c_reg_slice_mode_wrch => 0,
243
      c_synchronizer_stage => 2,
244
      c_underflow_low => 0,
245
      c_use_common_overflow => 0,
246
      c_use_common_underflow => 0,
247
      c_use_default_settings => 0,
248
      c_use_dout_rst => 1,
249
      c_use_ecc => 0,
250
      c_use_ecc_axis => 0,
251
      c_use_ecc_rach => 0,
252
      c_use_ecc_rdch => 0,
253
      c_use_ecc_wach => 0,
254
      c_use_ecc_wdch => 0,
255
      c_use_ecc_wrch => 0,
256
      c_use_embedded_reg => 0,
257
      c_use_fifo16_flags => 0,
258
      c_use_fwft_data_count => 0,
259
      c_valid_low => 0,
260
      c_wach_type => 0,
261
      c_wdch_type => 0,
262
      c_wr_ack_low => 0,
263
      c_wr_data_count_width => 10,
264
      c_wr_depth => 1024,
265
      c_wr_depth_axis => 1024,
266
      c_wr_depth_rach => 16,
267
      c_wr_depth_rdch => 1024,
268
      c_wr_depth_wach => 16,
269
      c_wr_depth_wdch => 1024,
270
      c_wr_depth_wrch => 16,
271
      c_wr_freq => 1,
272
      c_wr_pntr_width => 10,
273
      c_wr_pntr_width_axis => 10,
274
      c_wr_pntr_width_rach => 4,
275
      c_wr_pntr_width_rdch => 10,
276
      c_wr_pntr_width_wach => 4,
277
      c_wr_pntr_width_wdch => 10,
278
      c_wr_pntr_width_wrch => 4,
279
      c_wr_response_latency => 1,
280
      c_wrch_type => 0
281
    );
282
-- synthesis translate_on
283
BEGIN
284
-- synthesis translate_off
285
U0 : wrapped_fifo
286
  PORT MAP (
287
    rst => rst,
288
    wr_clk => wr_clk,
289
    rd_clk => rd_clk,
290
    din => din,
291
    wr_en => wr_en,
292
    rd_en => rd_en,
293
    dout => dout,
294
    full => full,
295
    almost_full => almost_full,
296
    wr_ack => wr_ack,
297
    overflow => overflow,
298
    empty => empty,
299
    almost_empty => almost_empty,
300
    valid => valid,
301
    underflow => underflow,
302
    rd_data_count => rd_data_count,
303
    wr_data_count => wr_data_count
304
  );
305
-- synthesis translate_on
306

    
307
END fifo_a;
308

    
(3-3/6) Go to top
Add picture from clipboard (Maximum size: 1 GB)