|
1 | | -// |
2 | | -// The ADI JESD204 Core is released under the following license, which is |
3 | | -// different than all other HDL cores in this repository. |
4 | | -// |
5 | | -// Please read this, and understand the freedoms and responsibilities you have |
6 | | -// by using this source code/core. |
7 | | -// |
8 | | -// The JESD204 HDL, is copyright © 2016-2017 Analog Devices Inc. |
9 | | -// |
10 | | -// This core is free software, you can use run, copy, study, change, ask |
11 | | -// questions about and improve this core. Distribution of source, or resulting |
12 | | -// binaries (including those inside an FPGA or ASIC) require you to release the |
13 | | -// source of the entire project (excluding the system libraries provide by the |
14 | | -// tools/compiler/FPGA vendor). These are the terms of the GNU General Public |
15 | | -// License version 2 as published by the Free Software Foundation. |
16 | | -// |
17 | | -// This core is distributed in the hope that it will be useful, but WITHOUT ANY |
18 | | -// WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR |
19 | | -// A PARTICULAR PURPOSE. See the GNU General Public License for more details. |
20 | | -// |
21 | | -// You should have received a copy of the GNU General Public License version 2 |
22 | | -// along with this source code, and binary. If not, see |
23 | | -// <http://www.gnu.org/licenses/>. |
24 | | -// |
25 | | -// Commercial licenses (with commercial support) of this JESD204 core are also |
26 | | -// available under terms different than the General Public License. (e.g. they |
27 | | -// do not require you to accompany any image (FPGA or ASIC) using the JESD204 |
28 | | -// core with any corresponding source code.) For these alternate terms you must |
29 | | -// purchase a license from Analog Devices Technology Licensing Office. Users |
30 | | -// interested in such a license should contact jesd204-licensing@analog.com for |
31 | | -// more information. This commercial license is sub-licensable (if you purchase |
32 | | -// chips from Analog Devices, incorporate them into your PCB level product, and |
33 | | -// purchase a JESD204 license, end users of your product will also have a |
34 | | -// license to use this core in a commercial setting without releasing their |
35 | | -// source code). |
36 | | -// |
37 | | -// In addition, we kindly ask you to acknowledge ADI in any program, application |
38 | | -// or publication in which you use this JESD204 HDL core. (You are not required |
39 | | -// to do so; it is up to your common sense to decide whether you want to comply |
40 | | -// with this request or not.) For general publications, we suggest referencing : |
41 | | -// “The design and implementation of the JESD204 HDL Core used in this project |
42 | | -// is copyright © 2016-2017, Analog Devices, Inc.” |
43 | | -// |
44 | | - |
| 1 | +// *************************************************************************** |
| 2 | +// *************************************************************************** |
| 3 | +// Copyright (C) 2025 Analog Devices, Inc. All rights reserved. |
| 4 | +// SPDX short identifier: ADIJESD204 |
| 5 | +// *************************************************************************** |
| 6 | +// *************************************************************************** |
45 | 7 |
|
46 | 8 | `timescale 1ns / 100ps |
47 | 9 |
|
@@ -92,7 +54,7 @@ module jesd204_fec_decode #( |
92 | 54 | logic [BUFFER_ADDR_WIDTH-1:0] buf_rd_addr; |
93 | 55 | logic [DATA_WIDTH-1:0] buf_wr_data; |
94 | 56 | logic [DATA_WIDTH-1:0] buf_rd_data; |
95 | | - logic [DATA_WIDTH-1:0] buf_rd_data_d; |
| 57 | + // logic [DATA_WIDTH-1:0] buf_rd_data_d; |
96 | 58 | logic [3:1] eomb_d; |
97 | 59 | logic data_in_en; |
98 | 60 | logic fec_in_en; |
@@ -135,7 +97,8 @@ module jesd204_fec_decode #( |
135 | 97 | // Data buffer |
136 | 98 | ad_mem_dist #( |
137 | 99 | .RAM_WIDTH (DATA_WIDTH), |
138 | | - .RAM_ADDR_BITS (BUFFER_ADDR_WIDTH) |
| 100 | + .RAM_ADDR_BITS (BUFFER_ADDR_WIDTH), |
| 101 | + .REGISTERED_OUTPUT (1) |
139 | 102 | ) data_buffer ( |
140 | 103 | .rd_data (buf_rd_data), |
141 | 104 | .clk (clk), |
@@ -259,7 +222,7 @@ module jesd204_fec_decode #( |
259 | 222 |
|
260 | 223 | always_ff @(posedge clk) begin |
261 | 224 | error_syndrome_next_d <= error_syndrome_next; |
262 | | - buf_rd_data_d <= buf_rd_data; |
| 225 | + // buf_rd_data_d <= buf_rd_data; |
263 | 226 | end |
264 | 227 |
|
265 | 228 | // Error is trapped if the MSb of the syndrome is 1 and bits 16:0 of the syndrome are 0 |
@@ -301,7 +264,7 @@ module jesd204_fec_decode #( |
301 | 264 | // Correct data by XORing with FEC syndrome |
302 | 265 | // Output corrected data |
303 | 266 | always_ff @(posedge clk) begin |
304 | | - data_out <= buf_rd_data_d ^ error_bits[DATA_WIDTH-1:0] ^ error_bits_prev; |
| 267 | + data_out <= buf_rd_data ^ error_bits[DATA_WIDTH-1:0] ^ error_bits_prev; |
305 | 268 | data_out_valid <= data_out_en_d[1]; |
306 | 269 | end |
307 | 270 |
|
|
0 commit comments