From a5346412d182baf4af015e0df3c883b3102d54bc Mon Sep 17 00:00:00 2001 From: Laszlo Nagy Date: Wed, 25 Sep 2019 10:24:36 +0100 Subject: [PATCH] jesd204: Scrambler for 64b mode The component can be used for scrambling in Tx and descrambling on the Rx side of the JESD link. --- .../jesd204_common/jesd204_scrambler_64b.v | 83 ++ library/jesd204/tb/scrambler_64b_input.txt | 994 ++++++++++++++++++ library/jesd204/tb/scrambler_64b_output.txt | 994 ++++++++++++++++++ library/jesd204/tb/scrambler_64b_tb | 7 + library/jesd204/tb/scrambler_64b_tb.v | 145 +++ 5 files changed, 2223 insertions(+) create mode 100644 library/jesd204/jesd204_common/jesd204_scrambler_64b.v create mode 100644 library/jesd204/tb/scrambler_64b_input.txt create mode 100644 library/jesd204/tb/scrambler_64b_output.txt create mode 100755 library/jesd204/tb/scrambler_64b_tb create mode 100644 library/jesd204/tb/scrambler_64b_tb.v diff --git a/library/jesd204/jesd204_common/jesd204_scrambler_64b.v b/library/jesd204/jesd204_common/jesd204_scrambler_64b.v new file mode 100644 index 000000000..83f43900f --- /dev/null +++ b/library/jesd204/jesd204_common/jesd204_scrambler_64b.v @@ -0,0 +1,83 @@ +// +// The ADI JESD204 Core is released under the following license, which is +// different than all other HDL cores in this repository. +// +// Please read this, and understand the freedoms and responsibilities you have +// by using this source code/core. +// +// The JESD204 HDL, is copyright © 2016-2017 Analog Devices Inc. +// +// This core is free software, you can use run, copy, study, change, ask +// questions about and improve this core. Distribution of source, or resulting +// binaries (including those inside an FPGA or ASIC) require you to release the +// source of the entire project (excluding the system libraries provide by the +// tools/compiler/FPGA vendor). These are the terms of the GNU General Public +// License version 2 as published by the Free Software Foundation. +// +// This core is distributed in the hope that it will be useful, but WITHOUT ANY +// WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR +// A PARTICULAR PURPOSE. See the GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License version 2 +// along with this source code, and binary. If not, see +// . +// +// Commercial licenses (with commercial support) of this JESD204 core are also +// available under terms different than the General Public License. (e.g. they +// do not require you to accompany any image (FPGA or ASIC) using the JESD204 +// core with any corresponding source code.) For these alternate terms you must +// purchase a license from Analog Devices Technology Licensing Office. Users +// interested in such a license should contact jesd204-licensing@analog.com for +// more information. This commercial license is sub-licensable (if you purchase +// chips from Analog Devices, incorporate them into your PCB level product, and +// purchase a JESD204 license, end users of your product will also have a +// license to use this core in a commercial setting without releasing their +// source code). +// +// In addition, we kindly ask you to acknowledge ADI in any program, application +// or publication in which you use this JESD204 HDL core. (You are not required +// to do so; it is up to your common sense to decide whether you want to comply +// with this request or not.) For general publications, we suggest referencing : +// “The design and implementation of the JESD204 HDL Core used in this project +// is copyright © 2016-2017, Analog Devices, Inc.” +// + +`timescale 1ns/100ps + +module jesd204_scrambler_64b #( + parameter WIDTH = 64, + parameter DESCRAMBLE = 0 +) ( + input clk, + input reset, + + input enable, + + input [WIDTH-1:0] data_in, + output reg [WIDTH-1:0] data_out +); + +reg [57:0] state = {1'b1,57'b0}; +wire [WIDTH-1:0] feedback; +wire [WIDTH-1+58:0] full_state; + +assign full_state = {state,DESCRAMBLE ? data_in : feedback}; +assign feedback = full_state[WIDTH-1+58:58] ^ full_state[WIDTH-1:39] ^ data_in; + +always @(*) begin + if (enable == 1'b0) begin + data_out = data_in; + end else begin + data_out = feedback; + end +end + +always @(posedge clk) begin + if (reset == 1'b1) begin + state <= {1'b1,57'b0}; + end else begin + state <= full_state[57:0] ^ {full_state[38:0],19'b0}; + end +end + +endmodule diff --git a/library/jesd204/tb/scrambler_64b_input.txt b/library/jesd204/tb/scrambler_64b_input.txt new file mode 100644 index 000000000..98ea4dc27 --- /dev/null +++ b/library/jesd204/tb/scrambler_64b_input.txt @@ -0,0 +1,994 @@ +e949a63d63222000 +f44cb1c66f152c3e +fc37ba9a78bb369f +ffd7bf617e9e3d8f +fe9ebf617fd73fff +f8bbba9a7c373d8f +ef15b1c6744c369f +e322a63d69492c3e +d6b699c25cdd2000 +cbb38e3950ea13c1 +c3c8856547440960 +c028809e41610270 +c161809e40280001 +c744856543c80270 +d0ea8e394bb30960 +dcdd99c256b613c1 +e949a63d63222000 +f44cb1c66f152c3e +fc37ba9a78bb369f +ffd7bf617e9e3d8f +fe9ebf617fd73fff +f8bbba9a7c373d8f +ef15b1c6744c369f +e322a63d69492c3e +d6b699c25cdd2000 +cbb38e3950ea13c1 +c3c8856547440960 +c028809e41610270 +c161809e40280001 +c744856543c80270 +d0ea8e394bb30960 +dcdd99c256b613c1 +e949a63d63222000 +f44cb1c66f152c3e +fc37ba9a78bb369f +ffd7bf617e9e3d8f +fe9ebf617fd73fff +f8bbba9a7c373d8f +ef15b1c6744c369f +e322a63d69492c3e +d6b699c25cdd2000 +cbb38e3950ea13c1 +c3c8856547440960 +c028809e41610270 +c161809e40280001 +c744856543c80270 +d0ea8e394bb30960 +dcdd99c256b613c1 +e949a63d63222000 +f44cb1c66f152c3e +fc37ba9a78bb369f +ffd7bf617e9e3d8f +fe9ebf617fd73fff +f8bbba9a7c373d8f +ef15b1c6744c369f +e322a63d69492c3e +d6b699c25cdd2000 +cbb38e3950ea13c1 +c3c8856547440960 +c028809e41610270 +c161809e40280001 +c744856543c80270 +d0ea8e394bb30960 +dcdd99c256b613c1 +e949a63d63222000 +f44cb1c66f152c3e +fc37ba9a78bb369f +ffd7bf617e9e3d8f +fe9ebf617fd73fff +f8bbba9a7c373d8f +ef15b1c6744c369f +e322a63d69492c3e +d6b699c25cdd2000 +cbb38e3950ea13c1 +c3c8856547440960 +c028809e41610270 +c161809e40280001 +c744856543c80270 +d0ea8e394bb30960 +dcdd99c256b613c1 +e949a63d63222000 +f44cb1c66f152c3e +fc37ba9a78bb369f +ffd7bf617e9e3d8f +fe9ebf617fd73fff +f8bbba9a7c373d8f +ef15b1c6744c369f +e322a63d69492c3e +d6b699c25cdd2000 +cbb38e3950ea13c1 +c3c8856547440960 +c028809e41610270 +c161809e40280001 +c744856543c80270 +d0ea8e394bb30960 +dcdd99c256b613c1 +e949a63d63222000 +f44cb1c66f152c3e +fc37ba9a78bb369f +ffd7bf617e9e3d8f +fe9ebf617fd73fff +f8bbba9a7c373d8f +ef15b1c6744c369f +e322a63d69492c3e +d6b699c25cdd2000 +cbb38e3950ea13c1 +c3c8856547440960 +c028809e41610270 +c161809e40280001 +c744856543c80270 +d0ea8e394bb30960 +dcdd99c256b613c1 +e949a63d63222000 +f44cb1c66f152c3e +fc37ba9a78bb369f +ffd7bf617e9e3d8f +fe9ebf617fd73fff +f8bbba9a7c373d8f +ef15b1c6744c369f +e322a63d69492c3e +d6b699c25cdd2000 +cbb38e3950ea13c1 +c3c8856547440960 +c028809e41610270 +c161809e40280001 +c744856543c80270 +d0ea8e394bb30960 +dcdd99c256b613c1 +e949a63d63222000 +f44cb1c66f152c3e +fc37ba9a78bb369f +ffd7bf617e9e3d8f +fe9ebf617fd73fff +f8bbba9a7c373d8f +ef15b1c6744c369f +e322a63d69492c3e +d6b699c25cdd2000 +cbb38e3950ea13c1 +c3c8856547440960 +c028809e41610270 +c161809e40280001 +c744856543c80270 +d0ea8e394bb30960 +dcdd99c256b613c1 +e949a63d63222000 +f44cb1c66f152c3e +fc37ba9a78bb369f +ffd7bf617e9e3d8f +fe9ebf617fd73fff +f8bbba9a7c373d8f +ef15b1c6744c369f +e322a63d69492c3e +d6b699c25cdd2000 +cbb38e3950ea13c1 +c3c8856547440960 +c028809e41610270 +c161809e40280001 +c744856543c80270 +d0ea8e394bb30960 +dcdd99c256b613c1 +e949a63d63222000 +f44cb1c66f152c3e +fc37ba9a78bb369f +ffd7bf617e9e3d8f +fe9ebf617fd73fff +f8bbba9a7c373d8f +ef15b1c6744c369f +e322a63d69492c3e +d6b699c25cdd2000 +cbb38e3950ea13c1 +c3c8856547440960 +c028809e41610270 +c161809e40280001 +c744856543c80270 +d0ea8e394bb30960 +dcdd99c256b613c1 +e949a63d63222000 +f44cb1c66f152c3e +fc37ba9a78bb369f +ffd7bf617e9e3d8f +fe9ebf617fd73fff +f8bbba9a7c373d8f +ef15b1c6744c369f +e322a63d69492c3e +d6b699c25cdd2000 +cbb38e3950ea13c1 +c3c8856547440960 +c028809e41610270 +c161809e40280001 +c744856543c80270 +d0ea8e394bb30960 +dcdd99c256b613c1 +e949a63d63222000 +f44cb1c66f152c3e +fc37ba9a78bb369f +ffd7bf617e9e3d8f +fe9ebf617fd73fff +f8bbba9a7c373d8f +ef15b1c6744c369f +e322a63d69492c3e +d6b699c25cdd2000 +cbb38e3950ea13c1 +c3c8856547440960 +c028809e41610270 +c161809e40280001 +c744856543c80270 +d0ea8e394bb30960 +dcdd99c256b613c1 +e949a63d63222000 +f44cb1c66f152c3e +fc37ba9a78bb369f +ffd7bf617e9e3d8f +fe9ebf617fd73fff +f8bbba9a7c373d8f +ef15b1c6744c369f +e322a63d69492c3e +d6b699c25cdd2000 +cbb38e3950ea13c1 +c3c8856547440960 +c028809e41610270 +c161809e40280001 +c744856543c80270 +d0ea8e394bb30960 +dcdd99c256b613c1 +e949a63d63222000 +f44cb1c66f152c3e +fc37ba9a78bb369f +ffd7bf617e9e3d8f +fe9ebf617fd73fff +f8bbba9a7c373d8f +ef15b1c6744c369f +e322a63d69492c3e +d6b699c25cdd2000 +cbb38e3950ea13c1 +c3c8856547440960 +c028809e41610270 +c161809e40280001 +c744856543c80270 +d0ea8e394bb30960 +dcdd99c256b613c1 +e949a63d63222000 +f44cb1c66f152c3e +fc37ba9a78bb369f +ffd7bf617e9e3d8f +fe9ebf617fd73fff +f8bbba9a7c373d8f +ef15b1c6744c369f +e322a63d69492c3e +d6b699c25cdd2000 +cbb38e3950ea13c1 +c3c8856547440960 +c028809e41610270 +c161809e40280001 +c744856543c80270 +d0ea8e394bb30960 +dcdd99c256b613c1 +e949a63d63222000 +f44cb1c66f152c3e +fc37ba9a78bb369f +ffd7bf617e9e3d8f +fe9ebf617fd73fff +f8bbba9a7c373d8f +ef15b1c6744c369f +e322a63d69492c3e +d6b699c25cdd2000 +cbb38e3950ea13c1 +c3c8856547440960 +c028809e41610270 +c161809e40280001 +c744856543c80270 +d0ea8e394bb30960 +dcdd99c256b613c1 +e949a63d63222000 +f44cb1c66f152c3e +fc37ba9a78bb369f +ffd7bf617e9e3d8f +fe9ebf617fd73fff +f8bbba9a7c373d8f +ef15b1c6744c369f +e322a63d69492c3e +d6b699c25cdd2000 +cbb38e3950ea13c1 +c3c8856547440960 +c028809e41610270 +c161809e40280001 +c744856543c80270 +d0ea8e394bb30960 +dcdd99c256b613c1 +e949a63d63222000 +f44cb1c66f152c3e +fc37ba9a78bb369f +ffd7bf617e9e3d8f +fe9ebf617fd73fff +f8bbba9a7c373d8f +ef15b1c6744c369f +e322a63d69492c3e +d6b699c25cdd2000 +cbb38e3950ea13c1 +c3c8856547440960 +c028809e41610270 +c161809e40280001 +c744856543c80270 +d0ea8e394bb30960 +dcdd99c256b613c1 +e949a63d63222000 +f44cb1c66f152c3e +fc37ba9a78bb369f +ffd7bf617e9e3d8f +fe9ebf617fd73fff +f8bbba9a7c373d8f +ef15b1c6744c369f +e322a63d69492c3e +d6b699c25cdd2000 +cbb38e3950ea13c1 +c3c8856547440960 +c028809e41610270 +c161809e40280001 +c744856543c80270 +d0ea8e394bb30960 +dcdd99c256b613c1 +e949a63d63222000 +f44cb1c66f152c3e +fc37ba9a78bb369f +ffd7bf617e9e3d8f +fe9ebf617fd73fff +f8bbba9a7c373d8f +ef15b1c6744c369f +e322a63d69492c3e +d6b699c25cdd2000 +cbb38e3950ea13c1 +c3c8856547440960 +c028809e41610270 +c161809e40280001 +c744856543c80270 +d0ea8e394bb30960 +dcdd99c256b613c1 +e949a63d63222000 +f44cb1c66f152c3e +fc37ba9a78bb369f +ffd7bf617e9e3d8f +fe9ebf617fd73fff +f8bbba9a7c373d8f +ef15b1c6744c369f +e322a63d69492c3e +d6b699c25cdd2000 +cbb38e3950ea13c1 +c3c8856547440960 +c028809e41610270 +c161809e40280001 +c744856543c80270 +d0ea8e394bb30960 +dcdd99c256b613c1 +e949a63d63222000 +f44cb1c66f152c3e +fc37ba9a78bb369f +ffd7bf617e9e3d8f +fe9ebf617fd73fff +f8bbba9a7c373d8f +ef15b1c6744c369f +e322a63d69492c3e +d6b699c25cdd2000 +cbb38e3950ea13c1 +c3c8856547440960 +c028809e41610270 +c161809e40280001 +c744856543c80270 +d0ea8e394bb30960 +dcdd99c256b613c1 +e949a63d63222000 +f44cb1c66f152c3e +fc37ba9a78bb369f +ffd7bf617e9e3d8f +fe9ebf617fd73fff +f8bbba9a7c373d8f +ef15b1c6744c369f +e322a63d69492c3e +d6b699c25cdd2000 +cbb38e3950ea13c1 +c3c8856547440960 +c028809e41610270 +c161809e40280001 +c744856543c80270 +d0ea8e394bb30960 +dcdd99c256b613c1 +e949a63d63222000 +f44cb1c66f152c3e +fc37ba9a78bb369f +ffd7bf617e9e3d8f +fe9ebf617fd73fff +f8bbba9a7c373d8f +ef15b1c6744c369f +e322a63d69492c3e +d6b699c25cdd2000 +cbb38e3950ea13c1 +c3c8856547440960 +c028809e41610270 +c161809e40280001 +c744856543c80270 +d0ea8e394bb30960 +dcdd99c256b613c1 +e949a63d63222000 +f44cb1c66f152c3e +fc37ba9a78bb369f +ffd7bf617e9e3d8f +fe9ebf617fd73fff +f8bbba9a7c373d8f +ef15b1c6744c369f +e322a63d69492c3e +d6b699c25cdd2000 +cbb38e3950ea13c1 +c3c8856547440960 +c028809e41610270 +c161809e40280001 +c744856543c80270 +d0ea8e394bb30960 +dcdd99c256b613c1 +e949a63d63222000 +f44cb1c66f152c3e +fc37ba9a78bb369f +ffd7bf617e9e3d8f +fe9ebf617fd73fff +f8bbba9a7c373d8f +ef15b1c6744c369f +e322a63d69492c3e +d6b699c25cdd2000 +cbb38e3950ea13c1 +c3c8856547440960 +c028809e41610270 +c161809e40280001 +c744856543c80270 +d0ea8e394bb30960 +dcdd99c256b613c1 +e949a63d63222000 +f44cb1c66f152c3e +fc37ba9a78bb369f +ffd7bf617e9e3d8f +fe9ebf617fd73fff +f8bbba9a7c373d8f +ef15b1c6744c369f +e322a63d69492c3e +d6b699c25cdd2000 +cbb38e3950ea13c1 +c3c8856547440960 +c028809e41610270 +c161809e40280001 +c744856543c80270 +d0ea8e394bb30960 +dcdd99c256b613c1 +e949a63d63222000 +f44cb1c66f152c3e +fc37ba9a78bb369f +ffd7bf617e9e3d8f +fe9ebf617fd73fff +f8bbba9a7c373d8f +ef15b1c6744c369f +e322a63d69492c3e +d6b699c25cdd2000 +cbb38e3950ea13c1 +c3c8856547440960 +c028809e41610270 +c161809e40280001 +c744856543c80270 +d0ea8e394bb30960 +dcdd99c256b613c1 +e949a63d63222000 +f44cb1c66f152c3e +fc37ba9a78bb369f +ffd7bf617e9e3d8f +fe9ebf617fd73fff +f8bbba9a7c373d8f +ef15b1c6744c369f +e322a63d69492c3e +d6b699c25cdd2000 +cbb38e3950ea13c1 +c3c8856547440960 +c028809e41610270 +c161809e40280001 +c744856543c80270 +d0ea8e394bb30960 +dcdd99c256b613c1 +e949a63d63222000 +f44cb1c66f152c3e +fc37ba9a78bb369f +ffd7bf617e9e3d8f +fe9ebf617fd73fff +f8bbba9a7c373d8f +ef15b1c6744c369f +e322a63d69492c3e +d6b699c25cdd2000 +cbb38e3950ea13c1 +c3c8856547440960 +c028809e41610270 +c161809e40280001 +c744856543c80270 +d0ea8e394bb30960 +dcdd99c256b613c1 +e949a63d63222000 +f44cb1c66f152c3e +fc37ba9a78bb369f +ffd7bf617e9e3d8f +fe9ebf617fd73fff +f8bbba9a7c373d8f +ef15b1c6744c369f +e322a63d69492c3e +d6b699c25cdd2000 +cbb38e3950ea13c1 +c3c8856547440960 +c028809e41610270 +c161809e40280001 +c744856543c80270 +d0ea8e394bb30960 +dcdd99c256b613c1 +e949a63d63222000 +f44cb1c66f152c3e +fc37ba9a78bb369f +ffd7bf617e9e3d8f +fe9ebf617fd73fff +f8bbba9a7c373d8f +ef15b1c6744c369f +e322a63d69492c3e +d6b699c25cdd2000 +cbb38e3950ea13c1 +c3c8856547440960 +c028809e41610270 +c161809e40280001 +c744856543c80270 +d0ea8e394bb30960 +dcdd99c256b613c1 +e949a63d63222000 +f44cb1c66f152c3e +fc37ba9a78bb369f +ffd7bf617e9e3d8f +fe9ebf617fd73fff +f8bbba9a7c373d8f +ef15b1c6744c369f +e322a63d69492c3e +d6b699c25cdd2000 +cbb38e3950ea13c1 +c3c8856547440960 +c028809e41610270 +c161809e40280001 +c744856543c80270 +d0ea8e394bb30960 +dcdd99c256b613c1 +e949a63d63222000 +f44cb1c66f152c3e +fc37ba9a78bb369f +ffd7bf617e9e3d8f +fe9ebf617fd73fff +f8bbba9a7c373d8f +ef15b1c6744c369f +e322a63d69492c3e +d6b699c25cdd2000 +cbb38e3950ea13c1 +c3c8856547440960 +c028809e41610270 +c161809e40280001 +c744856543c80270 +d0ea8e394bb30960 +dcdd99c256b613c1 +e949a63d63222000 +f44cb1c66f152c3e +fc37ba9a78bb369f +ffd7bf617e9e3d8f +fe9ebf617fd73fff +f8bbba9a7c373d8f +ef15b1c6744c369f +e322a63d69492c3e +d6b699c25cdd2000 +cbb38e3950ea13c1 +c3c8856547440960 +c028809e41610270 +c161809e40280001 +c744856543c80270 +d0ea8e394bb30960 +dcdd99c256b613c1 +e949a63d63222000 +f44cb1c66f152c3e +fc37ba9a78bb369f +ffd7bf617e9e3d8f +fe9ebf617fd73fff +f8bbba9a7c373d8f +ef15b1c6744c369f +e322a63d69492c3e +d6b699c25cdd2000 +cbb38e3950ea13c1 +c3c8856547440960 +c028809e41610270 +c161809e40280001 +c744856543c80270 +d0ea8e394bb30960 +dcdd99c256b613c1 +e949a63d63222000 +f44cb1c66f152c3e +fc37ba9a78bb369f +ffd7bf617e9e3d8f +fe9ebf617fd73fff +f8bbba9a7c373d8f +ef15b1c6744c369f +e322a63d69492c3e +d6b699c25cdd2000 +cbb38e3950ea13c1 +c3c8856547440960 +c028809e41610270 +c161809e40280001 +c744856543c80270 +d0ea8e394bb30960 +dcdd99c256b613c1 +e949a63d63222000 +f44cb1c66f152c3e +fc37ba9a78bb369f +ffd7bf617e9e3d8f +fe9ebf617fd73fff +f8bbba9a7c373d8f +ef15b1c6744c369f +e322a63d69492c3e +d6b699c25cdd2000 +cbb38e3950ea13c1 +c3c8856547440960 +c028809e41610270 +c161809e40280001 +c744856543c80270 +d0ea8e394bb30960 +dcdd99c256b613c1 +e949a63d63222000 +f44cb1c66f152c3e +fc37ba9a78bb369f +ffd7bf617e9e3d8f +fe9ebf617fd73fff +f8bbba9a7c373d8f +ef15b1c6744c369f +e322a63d69492c3e +d6b699c25cdd2000 +cbb38e3950ea13c1 +c3c8856547440960 +c028809e41610270 +c161809e40280001 +c744856543c80270 +d0ea8e394bb30960 +dcdd99c256b613c1 +e949a63d63222000 +f44cb1c66f152c3e +fc37ba9a78bb369f +ffd7bf617e9e3d8f +fe9ebf617fd73fff +f8bbba9a7c373d8f +ef15b1c6744c369f +e322a63d69492c3e +d6b699c25cdd2000 +cbb38e3950ea13c1 +c3c8856547440960 +c028809e41610270 +c161809e40280001 +c744856543c80270 +d0ea8e394bb30960 +dcdd99c256b613c1 +e949a63d63222000 +f44cb1c66f152c3e +fc37ba9a78bb369f +ffd7bf617e9e3d8f +fe9ebf617fd73fff +f8bbba9a7c373d8f +ef15b1c6744c369f +e322a63d69492c3e +d6b699c25cdd2000 +cbb38e3950ea13c1 +c3c8856547440960 +c028809e41610270 +c161809e40280001 +c744856543c80270 +d0ea8e394bb30960 +dcdd99c256b613c1 +e949a63d63222000 +f44cb1c66f152c3e +fc37ba9a78bb369f +ffd7bf617e9e3d8f +fe9ebf617fd73fff +f8bbba9a7c373d8f +ef15b1c6744c369f +e322a63d69492c3e +d6b699c25cdd2000 +cbb38e3950ea13c1 +c3c8856547440960 +c028809e41610270 +c161809e40280001 +c744856543c80270 +d0ea8e394bb30960 +dcdd99c256b613c1 +e949a63d63222000 +f44cb1c66f152c3e +fc37ba9a78bb369f +ffd7bf617e9e3d8f +fe9ebf617fd73fff +f8bbba9a7c373d8f +ef15b1c6744c369f +e322a63d69492c3e +d6b699c25cdd2000 +cbb38e3950ea13c1 +c3c8856547440960 +c028809e41610270 +c161809e40280001 +c744856543c80270 +d0ea8e394bb30960 +dcdd99c256b613c1 +e949a63d63222000 +f44cb1c66f152c3e +fc37ba9a78bb369f +ffd7bf617e9e3d8f +fe9ebf617fd73fff +f8bbba9a7c373d8f +ef15b1c6744c369f +e322a63d69492c3e +d6b699c25cdd2000 +cbb38e3950ea13c1 +c3c8856547440960 +c028809e41610270 +c161809e40280001 +c744856543c80270 +d0ea8e394bb30960 +dcdd99c256b613c1 +e949a63d63222000 +f44cb1c66f152c3e +fc37ba9a78bb369f +ffd7bf617e9e3d8f +fe9ebf617fd73fff +f8bbba9a7c373d8f +ef15b1c6744c369f +e322a63d69492c3e +d6b699c25cdd2000 +cbb38e3950ea13c1 +c3c8856547440960 +c028809e41610270 +c161809e40280001 +c744856543c80270 +d0ea8e394bb30960 +dcdd99c256b613c1 +e949a63d63222000 +f44cb1c66f152c3e +fc37ba9a78bb369f +ffd7bf617e9e3d8f +fe9ebf617fd73fff +f8bbba9a7c373d8f +ef15b1c6744c369f +e322a63d69492c3e +d6b699c25cdd2000 +cbb38e3950ea13c1 +c3c8856547440960 +c028809e41610270 +c161809e40280001 +c744856543c80270 +d0ea8e394bb30960 +dcdd99c256b613c1 +e949a63d63222000 +f44cb1c66f152c3e +fc37ba9a78bb369f +ffd7bf617e9e3d8f +fe9ebf617fd73fff +f8bbba9a7c373d8f +ef15b1c6744c369f +e322a63d69492c3e +d6b699c25cdd2000 +cbb38e3950ea13c1 +c3c8856547440960 +c028809e41610270 +c161809e40280001 +c744856543c80270 +d0ea8e394bb30960 +dcdd99c256b613c1 +e949a63d63222000 +f44cb1c66f152c3e +fc37ba9a78bb369f +ffd7bf617e9e3d8f +fe9ebf617fd73fff +f8bbba9a7c373d8f +ef15b1c6744c369f +e322a63d69492c3e +d6b699c25cdd2000 +cbb38e3950ea13c1 +c3c8856547440960 +c028809e41610270 +c161809e40280001 +c744856543c80270 +d0ea8e394bb30960 +dcdd99c256b613c1 +e949a63d63222000 +f44cb1c66f152c3e +fc37ba9a78bb369f +ffd7bf617e9e3d8f +fe9ebf617fd73fff +f8bbba9a7c373d8f +ef15b1c6744c369f +e322a63d69492c3e +d6b699c25cdd2000 +cbb38e3950ea13c1 +c3c8856547440960 +c028809e41610270 +c161809e40280001 +c744856543c80270 +d0ea8e394bb30960 +dcdd99c256b613c1 +e949a63d63222000 +f44cb1c66f152c3e +fc37ba9a78bb369f +ffd7bf617e9e3d8f +fe9ebf617fd73fff +f8bbba9a7c373d8f +ef15b1c6744c369f +e322a63d69492c3e +d6b699c25cdd2000 +cbb38e3950ea13c1 +c3c8856547440960 +c028809e41610270 +c161809e40280001 +c744856543c80270 +d0ea8e394bb30960 +dcdd99c256b613c1 +e949a63d63222000 +f44cb1c66f152c3e +fc37ba9a78bb369f +ffd7bf617e9e3d8f +fe9ebf617fd73fff +f8bbba9a7c373d8f +ef15b1c6744c369f +e322a63d69492c3e +d6b699c25cdd2000 +cbb38e3950ea13c1 +c3c8856547440960 +c028809e41610270 +c161809e40280001 +c744856543c80270 +d0ea8e394bb30960 +dcdd99c256b613c1 +e949a63d63222000 +f44cb1c66f152c3e +fc37ba9a78bb369f +ffd7bf617e9e3d8f +fe9ebf617fd73fff +f8bbba9a7c373d8f +ef15b1c6744c369f +e322a63d69492c3e +d6b699c25cdd2000 +cbb38e3950ea13c1 +c3c8856547440960 +c028809e41610270 +c161809e40280001 +c744856543c80270 +d0ea8e394bb30960 +dcdd99c256b613c1 +e949a63d63222000 +f44cb1c66f152c3e +fc37ba9a78bb369f +ffd7bf617e9e3d8f +fe9ebf617fd73fff +f8bbba9a7c373d8f +ef15b1c6744c369f +e322a63d69492c3e +d6b699c25cdd2000 +cbb38e3950ea13c1 +c3c8856547440960 +c028809e41610270 +c161809e40280001 +c744856543c80270 +d0ea8e394bb30960 +dcdd99c256b613c1 +e949a63d63222000 +f44cb1c66f152c3e +fc37ba9a78bb369f +ffd7bf617e9e3d8f +fe9ebf617fd73fff +f8bbba9a7c373d8f +ef15b1c6744c369f +e322a63d69492c3e +d6b699c25cdd2000 +cbb38e3950ea13c1 +c3c8856547440960 +c028809e41610270 +c161809e40280001 +c744856543c80270 +d0ea8e394bb30960 +dcdd99c256b613c1 +e949a63d63222000 +f44cb1c66f152c3e +fc37ba9a78bb369f +ffd7bf617e9e3d8f +fe9ebf617fd73fff +f8bbba9a7c373d8f +ef15b1c6744c369f +e322a63d69492c3e +d6b699c25cdd2000 +cbb38e3950ea13c1 +c3c8856547440960 +c028809e41610270 +c161809e40280001 +c744856543c80270 +d0ea8e394bb30960 +dcdd99c256b613c1 +e949a63d63222000 +f44cb1c66f152c3e +fc37ba9a78bb369f +ffd7bf617e9e3d8f +fe9ebf617fd73fff +f8bbba9a7c373d8f +ef15b1c6744c369f +e322a63d69492c3e +d6b699c25cdd2000 +cbb38e3950ea13c1 +c3c8856547440960 +c028809e41610270 +c161809e40280001 +c744856543c80270 +d0ea8e394bb30960 +dcdd99c256b613c1 +e949a63d63222000 +f44cb1c66f152c3e +fc37ba9a78bb369f +ffd7bf617e9e3d8f +fe9ebf617fd73fff +f8bbba9a7c373d8f +ef15b1c6744c369f +e322a63d69492c3e +d6b699c25cdd2000 +cbb38e3950ea13c1 +c3c8856547440960 +c028809e41610270 +c161809e40280001 +c744856543c80270 +d0ea8e394bb30960 +dcdd99c256b613c1 +e949a63d63222000 +f44cb1c66f152c3e +fc37ba9a78bb369f +ffd7bf617e9e3d8f +fe9ebf617fd73fff +f8bbba9a7c373d8f +ef15b1c6744c369f +e322a63d69492c3e +d6b699c25cdd2000 +cbb38e3950ea13c1 +c3c8856547440960 +c028809e41610270 +c161809e40280001 +c744856543c80270 +d0ea8e394bb30960 +dcdd99c256b613c1 +e949a63d63222000 +f44cb1c66f152c3e +fc37ba9a78bb369f +ffd7bf617e9e3d8f +fe9ebf617fd73fff +f8bbba9a7c373d8f +ef15b1c6744c369f +e322a63d69492c3e +d6b699c25cdd2000 +cbb38e3950ea13c1 +c3c8856547440960 +c028809e41610270 +c161809e40280001 +c744856543c80270 +d0ea8e394bb30960 +dcdd99c256b613c1 +e949a63d63222000 +f44cb1c66f152c3e +fc37ba9a78bb369f +ffd7bf617e9e3d8f +fe9ebf617fd73fff +f8bbba9a7c373d8f +ef15b1c6744c369f +e322a63d69492c3e +d6b699c25cdd2000 +cbb38e3950ea13c1 +c3c8856547440960 +c028809e41610270 +c161809e40280001 +c744856543c80270 +d0ea8e394bb30960 +dcdd99c256b613c1 +e949a63d63222000 +f44cb1c66f152c3e +fc37ba9a78bb369f +ffd7bf617e9e3d8f +fe9ebf617fd73fff +f8bbba9a7c373d8f +ef15b1c6744c369f +e322a63d69492c3e +d6b699c25cdd2000 +cbb38e3950ea13c1 +c3c8856547440960 +c028809e41610270 +c161809e40280001 +c744856543c80270 +d0ea8e394bb30960 +dcdd99c256b613c1 +e949a63d63222000 +f44cb1c66f152c3e diff --git a/library/jesd204/tb/scrambler_64b_output.txt b/library/jesd204/tb/scrambler_64b_output.txt new file mode 100644 index 000000000..ad88250db --- /dev/null +++ b/library/jesd204/tb/scrambler_64b_output.txt @@ -0,0 +1,994 @@ +96cbc18568e63566 +4c6d1cf69a00af94 +0a448663d0845a91 +a9572f207cda37bb +ebacc3113e8d8883 +31f665c4d936f188 +1b3ead1329c629c3 +0ada6ea49ed6e821 +29109d35ab350970 +e4c2a9417c61caaa +719a16af0bd597d1 +f8ba807317f5830e +09ee775da15b1f6d +079be433cf00eef9 +518d8317792bac32 +914f0b44797f8173 +32798821daa68fdc +299bf4af7ee5ecdd +c4375a9c7a486f5b +caf588a15b10006c +014ab73763d5b191 +c4d1dc21aad2fa46 +98371c584dc2c901 +5e7e35bc1b479002 +310d79e4895b3a7f +41ff416ff8a77293 +63e9907e485f7e98 +c6dc21f167331c02 +94a79aff89c64f91 +11b1b61810788558 +8ca7f937e48b10b1 +9aeac21a1747ea23 +67d7af6cf4170787 +d84f44f465645341 +072c4f25a3a1be40 +7f833575160eabfa +f47fff7309953ebc +01574c25617a3c17 +f0044ce605233bfa +2e3bd9cbd5dba506 +cfeb5c7d27abb70b +cb2bc61ead9186bf +346221c35d4d62ee +5e1a6a8cce858d32 +5e6628b785f780c7 +31c54785b04bb933 +aadbf8273e08f27a +245f81e920c2324b +2ce85811c5f7627b +edd15b73e5161073 +6fab4a43dbe07cd0 +92b2ef6e27a46c75 +8e6a2c307dd0f6c4 +02cb1768800f1aa1 +8cd075d334933e17 +7156f48c6364040b +9bcd72d292ebb803 +9dcaededed3f86fd +6aa98113f270e538 +4dac25a8adc31428 +fb336c9d611b6ce6 +315d94e4c97180d5 +4e1d540abd4f069b +4ef2056033ea5118 +95af2a93a89d3870 +b8d72f5ca92a9e4e +70ae388caefdf972 +cd0467b8247a69f3 +cfcfa5bb86d2dc47 +7c5f71c3467892b3 +7e4530328c941020 +177782be0c63cb3e +774ef1d738c1727e +b67e79139dda709e +7b6d75630d2ef414 +dd6f85b52366d84c +f0c62066007f9f7d +3acc63dba65a45f9 +d4becc5b2e8b0a8d +4533991ceefed7a2 +9c721ca999af2c9e +bbf8c5f939a9fa1b +f075972025255b4d +a2f83ddeac8d1e9c +fdc8d2f7656b0965 +6445d151ec3def74 +5db99e63938c98b4 +4a6227e8e2fbc563 +9ffa947025138dcf +d55cb52b8ba3d95e +c3f288351235bbc0 +56aee6ad4ca2afa8 +30416e9238e368d0 +f36ee73adaf4eb82 +7ee6a958f27424ad +d49327b790161efb +a2a067e491e0de27 +9576895e580848c9 +1d25fd9de8934f23 +8d79fe851d570691 +aadbb02b09432cf5 +18453601c6cc8aa5 +fdd5a8a28c9534b1 +d351a4f72fa2a303 +ec80e14fb3ace139 +74ec8417c93b8494 +d77bf79e200bdbba +229570a137d2c619 +26520d5f86d52252 +ecca78c05359023a +62d20c29e93623e0 +3b8cffffdb49f230 +f5c0ca2fd0b52da9 +dbdf506911e9f8e8 +d9c0732fd3768c4f +d06d998d3c9df548 +ff81e7c4c9556e0f +9150e174364e1fa9 +534170f4b56d5e2a +da1441ac67aa8e0b +0b69a7c7a068718d +9e9aaf3251cb45f8 +01c0df7ac596f6de +459473c298579d06 +214ddf02598dda37 +90805e474f9f8f28 +7e6220f4fcac073e +adacfcf300ec8593 +647743f67ecbaa5e +0561db0d61f57809 +be829332169831d6 +3b5e438774e4f486 +27e797554aa5d158 +abcb246a6414fded +c91482a4aae164e8 +ef57cdde00ceb99e +bf447331520dcf49 +780b59f34169d72c +279c2a1b457efa3d +11a8fbbb64fcdcc3 +dd9697fef8a41dd9 +5f1032e0d8715442 +d556d4a7d24cb47c +c6cc295e3c1694a2 +e63bdc9b234b7f00 +4cfd01f0bd53162e +220d6099703aa7d6 +4e6fec72dcab17c4 +80dcf5f9dc137734 +3c3ee20310928d44 +e68c1418d9227f8e +7195e4f43d35e46b +5bb5cf05c7135148 +2d4e69ea0464dd19 +445a365e6cfbfb5d +6a7ce0f3c54b2ceb +b9d32a36c5909cbb +de0529ed505326d4 +8b005320f66cbce4 +5d258886052361c7 +ac21c17fa4a21269 +0375aa0b95975d2a +367616c54900903f +e8c00f13416bb26b +e81facd5f2eb9a5c +54b558d27e78c02b +66bf74d9bcb142af +ff86f2d71ae68a24 +993fe110ac4dd6e4 +a51351bf8ad58c4b +f809419f65d7091d +fcb349550f5a239d +47ad619aac2fbd93 +1944bcb56e15efcf +eb1988bd511ec98b +601d8b0507c44a0f +e424efe88df8ea26 +2c6cba315d777cc1 +85a3d834a66f414e +fe6d6cca78b2b4e9 +f134e89680986c52 +9880afe2ff1d2876 +0ac073295f13abfb +01804b3d5ba0d268 +cc13173065719c1d +afbca11837d26de8 +1c8f67b363e66da8 +8536a09de9f00510 +b71a47ee1d4770a3 +ddeff00355aff567 +adbdd106ef152b29 +be77f22fc080364a +2b342da1d779dad1 +7ae92a0613964a34 +4a5a178af5bd0fa2 +7cb927c35524a75f +567d06fa88521227 +92eaa01c2796612b +6df29a0dc70f9970 +840a3a7e4ba7646b +28af48986355645b +d0a702e932124b30 +386c1bbfa3a61d59 +a469234c1bae865f +431e0e94150fabcc +28ed3f3798732b04 +8495a5895e70e30a +eb081a53df58c14f +8cf183482a0b90e5 +587874ed2741e581 +38640218aab29ed5 +d7825c7679968c42 +f2fa8fe79f91da5c +892760c92153e46c +348f2446f8dc33da +4d1a0fe4eadfeeb2 +59e0df258f954d28 +f89b6dc0e4486f24 +64db65821d9676b2 +f2caccf441193b55 +9b508ff8ad507478 +e23ddba6e61167ff +1250454f31ce562e +d6af56a2788ec6d9 +066d132ef29f4c67 +32ed44e206a3ef7b +836bc5c527463ff4 +af684257464f1020 +8a02b490ad0732b4 +594c90d4554909b8 +149b16c056276eb7 +454b58f58e18175e +6f7c948f66060eb2 +0a5aa1fdb57d0a00 +ae0a001c195a9d4b +7a9a32a2813364cb +22ef4ef79ab4ec54 +93a2515b47d453f6 +8ef1704f53ba1623 +fe26fe3affcfd6c2 +1509b72f14fd83eb +e808810487a5c7c6 +f718b0341c24f642 +51c3fb8af3002aec +9b865d8866ea8862 +09e10d930286e716 +b153d8c8f8975482 +2625baaa48d047c2 +0b4993dfecda43a5 +a60ecd452d36e732 +ca21b9e06f6986a1 +88982b88d8119a45 +f6db419ccfa327ff +480ba4195591eaea +e0a8abb9fa08e28f +85036679cb84b6ec +5a0731225abb9574 +31358e7a29921a2e +4507002440b7b30e +f696d9174e9fd380 +75b5c515d8c8b468 +be7b6e849f66d17d +78f0dd435709887b +59bbe5f85d984523 +48f4d75f7c5d817c +487ee2e4bf1ab116 +150e0928adc250f7 +d2f14e14de50dd18 +548ea413e4b65b5c +c324ed2ad7d89c9a +4c7e75b5890cd318 +a852ed0624d27031 +f1bb4354345d5afa +32f4de7e8c267b0e +bc1869cf6c5dc5e3 +67157731af216fb8 +589d31d5c73deb8a +7479b43ca7a52c7a +8837f4b7681747d4 +800fa568c598c654 +04d4f27f92e51ce5 +01aadbe423ae7f36 +61392093c019b6b9 +a9e09703345f6d34 +bf2cfe893e8d14d3 +1e063d0346b13acd +57e8ac9d7d526b6c +1c0c1a4bda14d0f2 +7dfb1d6a02edeaa5 +5e8e30939ed29908 +78863b4fdcec78f7 +41e0b467ab03c137 +49e5a109d1b4b96f +9270919cce3d8748 +4aadadfb6bb8bfd6 +be9ea9982a1be4c2 +4148c8015ea68100 +9b3cc36cf87c2a61 +d508a60f9be48059 +9d36ca780b7b7983 +7cc5e86f980feb0e +290e81555c60dcf8 +39f21ad7a3f7d35b +0f1cc38c1d5cfc85 +3643fcc33e7186b4 +e2cf62049ab11fc2 +46da5983507172bd +4fe13d50185d50a6 +a6e151c625ced4f5 +cca456bae41b4851 +b3c829efd1f9b2a0 +ce8b2eac56b89250 +2cd043f352a0148c +190632c4e0dd3ca2 +0b858e24341c2afe +692331c6bab9fb89 +04d882c7fc5f5345 +7e9c8a3cdee1ea3b +0e75c2da85d56c26 +f4a685bb6e045777 +b634c0480d5b946d +e96614ede222fb6d +7e76c4142af90048 +4a33486b504a490d +a4ec3127760ca4f4 +8d5bea0e1604b778 +a5c33b2d042a6ec0 +c9e439a1e241547f +ec7c73123350c71d +f0c9eb3bbf3a476b +86cc3f045ed84bff +7b9af11e0984c84c +1bcece8cb92d8e9a +2d857d563cf0ae01 +1dcc3aea75a31152 +7b38657d9a843795 +dc65f134e9970e95 +84e3d2e121df4efa +0680bc4ffb658966 +c00e678d6a7c78f0 +e7d3a4ca0106a48f +9850855322aebf63 +5d71b87019590d38 +5f7e08214fb49e39 +4babf8adc36df9a3 +7acb7ebacd61ede2 +048de80ddb366a31 +f8e4ef3cef0a47d0 +81845b2a23bafc97 +f2153a1482930df8 +7ca12d021f893525 +f0a9cb2fff1a092b +9cc559d0f299e054 +64fff63a61a4c6cb +b7097d8f86e49689 +228515add5fe95ec +0470293fd87aa4ac +9b0100253ba814a9 +6522e8a1cc835917 +e80188fc664f6ad5 +2e18380e655ba53b +51773aea70a1b360 +4ae77c9fafbd1f8b +46a8dd4ab8abb11b +fe2785525d3809f4 +ea1fa1e1e41e4009 +94cacac05f0a9e90 +6ed13ce8b4cc15a3 +8c6f043b173f96eb +99a3c02e77c3d158 +c82836a539df30c0 +bfa9a84e882d5ef0 +89e4f67e95934a31 +7cad03ab7a1cebd7 +92a162cf5c5381be +d5c2b2e90002c6ee +741a260f8084afd1 +d23b0486d26591bc +40ad6ff2a6a13caf +0e3e3e4eb73255cf +d3807798131a731a +177f5787b17a3a5a +005d9ba1a13d24d7 +88f90be3b6eed434 +10668378b0b7e002 +1c8d002a46d436b9 +8bfa1866bea16ccd +cc2ce4174d5d5734 +db3d001c413488c9 +0f79d49ba30bfc65 +062680d67cbf62df +c67bed67f91d6c15 +87bffae430895a94 +ec2c25805b64eeb1 +c8772caefdef4b4b +801875b7adb3e07b +a8278ab5db8051fe +a51128b05e965f88 +f41d8e91ffccd040 +f841a41d247280b7 +c36844751004dd78 +c47da5389faa8945 +9261a1af193da4b8 +398dafee418408de +41764ce0a257e4f6 +646c2d7b0506d84c +0214e2b7adfe0c5a +0941f7cea2d8b953 +1b8edb184cc46970 +189cc0f881c17646 +15fb39a9bb326e96 +ed908e2da02186d7 +fe0248fbe7b5b16f +b019d0fe71c46a3d +2a7d397140fd7c58 +a1123f6ad8ab2197 +78772ac8671aab8b +79483688bf4d5e8d +bf448208b0921cf4 +3f961974b2662cb2 +f27c2e1483b8eb1f +4eb74e6cac9094c0 +9b9f0bc4d15e38ae +8d42eb7863dd824b +76cbfcde3d502524 +c53619fc4d6936c3 +76d4281b9be411ed +42154e5b62e153bc +f2f7d4e181990094 +b9b28f040cfb4240 +b450b9bef40b383e +b51be00f29122bac +b1e381a07ecb0c2f +cc514fc1824e8552 +6b60d7f04fcca3aa +c77dda35d8382c8a +4a58424e6548ade9 +f261b858fdf88483 +c68056f00de016c3 +a32cda13960ac562 +3aac08ad1a19209f +3a85973ee8d73f21 +1f7ce4a130b538ee +5d70c2a3b095d862 +da3003c2a0ea78b0 +ce05a13c18ca2501 +29b355757b692f80 +5afe16c38c480ffa +d1d486c1848277b9 +026405483d8c0a74 +f54df081f2533043 +af4f397d6d0cb316 +d78af95c1154efb8 +a227444158489d2f +e47430aa39a39507 +aa5dcb990ef8d643 +73d98e2d640f03c0 +67181b67d3e4d3ee +ca69953663e421f8 +368a054548046877 +e970d91caee0fc49 +a22f03b668b34e1f +37fb053f590f78a7 +5caec8e55bd16787 +084c3da4996b59b9 +ae710e53469fa049 +c6f9110b4cded6cc +570a401fd1859a1a +03adb3a12ab6e218 +51823f14e12cbfe5 +a6582d81f42f7fad +76c198bf387b4452 +18a04084e63d7407 +ea6fd5e8d063cd90 +899d38ca7ea45733 +339bfaaf8e13f949 +78830c8f56275446 +f92be81847ef441e +aa9f56a08d373067 +3a125f81d50e2eb0 +6e745a15407564af +43dade5f2ccbb252 +b4d9ba35ef3e1146 +a2674e383c5ea2bb +17358c2b1e51fa22 +63e413a9ac8e7d30 +454847573759ea00 +1f5dc024bf0d17b9 +48b88ac2ed09bf47 +604b2dfc9c455442 +283b70ead2416f0b +1b5038f4c70c60c7 +fce1a56e0cc9f2b4 +23344d0319f2c7e2 +1bca2b70f33565b0 +cfb12f35fa701dac +6ef68b78a7f8a60d +b8a19ea38a4dec6d +934489a030e6a4e8 +6e941a2497ea2fa0 +12b7e21bc579b83f +62c9cf1b5c9ca1c9 +6bdf4e52c1b3fa59 +b1725579b6d55ef8 +794e6d12197802c4 +bc1a3aba8792969b +b0490ee994813d91 +01423880432ce241 +9169f94a08324397 +092ab360614ab2d4 +5a84c344b1aab5f0 +f48e1d85ddf273c7 +c17523ad903c3bb7 +f22422d50fff8987 +df20f0ca88e71689 +a2fa43ee541e6b60 +9ca67822b974ab28 +94575b627035591c +3e2303e841663797 +bb6090421fb208f0 +8aaded54514a47f8 +c86a4fa2f3eb396c +9cbcbbab64b32b30 +b9cf0c110cd85046 +90bb347dfb1d67cd +127fa0d41eb50e75 +e73fd1220d3eebbb +5733ac966fa29a4d +097dc692119648cf +8f1e39d3959923ae +9c92fc3843caf8c0 +abef24800d77d3ec +054d70c5fa295e1f +2013d958c8209df5 +5a73a6cf96dfac84 +e0e6aa81d763c053 +ecb2fe3723f45107 +894beb53a2ecc5f5 +3677880616199b3d +51e6b22dbda40040 +e3b643f1a8ef7cbe +c985a7f60584268d +5d887bf53001bac0 +54a367fbd671e51b +363cbb02c9371fbb +7ef01f4b542f22df +d698360accdeb106 +4c4380b045aafb1d +8ef5c6862e741311 +4996f337c3a0d43b +e52e3d9eebb3641d +957aa74fbebade15 +17623f91d844613a +308ce28d35934488 +fa9b00a132601d5f +248c68e8672f4d68 +32b5e41d5b9e31c5 +508abe502ee56658 +5218d0fe424eaed5 +a66d3b0f6e517cde +6cdbc71f4ba4a015 +fc2a3f54adc57d3f +5fe3e54b775bbe82 +91c05ac1ad521d9e +0dd2ab31174bfd2a +ee3fe125fb1408f6 +2b1bd0a95d183cb4 +776cbc1347a8d85b +2b16cca300bd1b53 +4801dccfd93cc4aa +5c0dcf1a5ccd3869 +f7e2dc79a1c0ddb5 +ca951f4d5b8a474d +f8b442bd3aa8b98b +878f7004f6927561 +36ecbc15304692f4 +78062e549a769142 +5cf3c9c276089b3a +4429db318e15abb8 +96bd58558ad9a91a +fadd1951fc48c373 +ec057f6389dfeb8a +2959d6f317e467b8 +5378d237e0f6338e +6743f85d7d9f4469 +a1b6a7eee47864e6 +73a98e1595ba63e0 +0160713ceffb3a92 +e0a239d09b27e0ca +4efcbe821eadc99e +6bf8752ddc169e10 +7978ff8973e36620 +a59182addab08b2c +cb997ba69aa0d5fb +575c12972620f06f +069f5b4828af18f8 +c919335aa58333ab +0bbc6a544aecaf99 +a89afd8bfc36e50e +d265a9087954a4d8 +5f2e7295b94a4af2 +2b5dbfc2e62e1434 +916b29f4a5e3d217 +73a93a131772d5d8 +0d01e1f02c8775c1 +6765f785e0dbb9c6 +0256d832f159d550 +2c8926d4a09a5587 +624127be4b73c397 +1893b9d39dd4ee8b +7fe267a01b7f508f +4778a9c6bfc4ef0d +adcb471095b76a1a +ab41106b24bb3905 +e918dd7d5150465f +5fb759e583e7d55a +f0672f0810c8b8e2 +c259dd4ca74098cb +ccf1577d00fbd93d +067ca86c059bb461 +8640acf7e5c99939 +b8a42bae42df0449 +a565dba16f38d0be +c7750038e50cd670 +45c3b1a8c09c3b72 +d521e380adb1b34c +b51439d78dbdcdc1 +15c2b11993c6c8a8 +bd157494df1f3f39 +9458a1d3c8d042a9 +5eac65b112e1c403 +2a1e09f1d76c10e7 +b29a3d9648bc2d97 +41ad93f051622d36 +480ebd2b735f5988 +956174f1879da2bc +7a3387badfb4c810 +3e1a02428e86327b +d37712fe1d9979b1 +fd2214b653123b97 +cd6aafde883610ac +13f72a453ab6e96e +8b88460608167db1 +11d612181922fdef +bb287c9ce81e14e8 +0b74a189aba4eece +216a9a7101355023 +5b8650dd62aa2849 +8de7faca654cfd96 +2687a55b2f987902 +d47ee35ca4f2b413 +66d9b2df5b01b5cc +c9bb342319d6055b +efba21a9819620c8 +6d61c818bee1f8eb +b5d25c1c39a38d94 +a5ade628228a1ee5 +cf702ff3060c7512 +c6305eb1de2a1293 +107c4733d23a61c5 +862b07567a431890 +de8ee935cd4c046a +273564bdf30346df +559d8fcc1733a0f4 +29fb0d867866eb11 +b98022716a23d7eb +41145e901933db0d +a50d432e16dddb9f +de1cf0acc8e2de17 +19e96beb554c5561 +7c1aec46da5e64e7 +57d234bd0f808e7d +67db886279ce0849 +c65d35488f1b8425 +fa64dfb1f5aef65e +050b0ef0a929bc13 +5d0f503313022588 +dd49b215ad04ccdc +96233d348c5347c0 +02f54d91fd9d36a5 +481ec7d07100b4dd +6ce07b4caa1ee46c +62826b87183816af +6e82117511b9ad89 +8bc6ae813d54ef3e +34958cf46a9ae6e4 +1d5c86ee2530096a +57b64259ce1b25d0 +b74506054485de21 +2f843b2b0c3dac03 +4b210b017146745b +3577f3d59969c4a5 +0850998e6fb6b78e +f042b46e8c7a5b5b +22a05ed3dc9fa0ea +ec8c2d8b9b780ede +e28b0b393f1b81ae +1b0f7775ca3c66a9 +eb8120da9b8aa15b +9557a37a14e3fbd3 +60a099ecde17b5ea +36ded1391248c55f +157a51f767a8aa06 +6c86b54fb0459f30 +57847eef12eae4e8 +cb76dfcb043afbb3 +b7883dac116aca09 +45fa01f136a74bdd +62738dbb6cc12fbc +1281561e3459d027 +732885eb2cde6e48 +ff5a602acf2c0ac1 +55b0cb641574f1c3 +6fabbedf8b093467 +963120ef4a2572c4 +92f4f1a941185ab7 +2edfda7b6863127e +8662dd9ba600586a +7f11e8601f5b302f +d89937a5dfcb2a58 +84bbd91e20e1c193 +e6fb35cd70a8beac +d81b98bb0b24aa98 +8f27d8f686aad41d +da65d768eed6f327 +b013cd4786ebd3f9 +64eb37803c711ea9 +d997a40f26bda900 +ad12e159f2ed45e9 +3cee02ce39c2b58b +643bb38021211cde +ce8622afb4bb3986 +3f805d0062996134 +2796f7bf8ddf6296 +4a4cdf1f10ff354c +71cba06cf198d79d +42428cae3f934249 +3890bccd19b49f09 +422be0e20718a30e +b121b6a6a5d4bd4e +fbb8bfb2970f1d3e +73ba4805c3170683 +0a019ebbb7999560 +142a3bfa4f04204c +28a66f1105847fd4 +c02342879875a074 +c428cfc3b3a445ce +4d7c38f934ea8992 +6c066bc05e52684d +4662d1a24dded482 +0cc55b03381fa355 +ebfb664afa893077 +826526e32e6af7ad +ab59dce2aefe74ed +ef1d7ed81cf83719 +88b1f9087382981f +c207f84da0f537ff +e204439dbebecaf0 +55782b3c3b547adc +c55ec1c605dd268c +0d0d520e338e99a7 +94801086fc657a05 +ee346e2e55c6e0c7 +119886cabefa02b9 +323dc6348cccd5c1 +212c91edf2bf2b1b +402b8b13d2f998a6 +f19aae07a5330f21 +80a841ca6ce0b8e3 +4a85022c91ae1ee8 +04546d83c3342445 +ed4ab7d9384db99b +1e43d25c5a85de9c +d0fa2631e4e16ef7 +b255ff62a373208d +b31b98d4aee73863 +b90d62992261222b +baafea359fd7c6fb +030da78f44b3acef +1dc80416b3b1a9bf +9e07e661d37e602a +851be1d1c95a3f12 +35804e353957cd71 +d6bcbb16e0e836c2 +6ba6b3e8ddf8ddfd +cc5bba4aeabae439 +7f0c5de8a4fc207b +ed893d08b64d310e +8dbd672ef1800692 +ca01712b39a29bdf +393abe3fa298b42d +d2c818bd94c1b77b +1f9935c99a8fccac +becbe3c6aa64af29 +fc64bd918d970a64 +fa1ccae9ed57a2db +958995a0a2eba5cf +e4643a0666e9b9fd +c529dcd30a5725a8 +30be034b931e05cb +51ef48d232008c45 +2bfa84526561c87c +a65c6d93d985916d +4f7fd0b5c564997d +4ae05b22dc64a01b +0515bb6d53151038 +70dd40b2c1e98202 +b1f15989164a4e21 +b8cc6f1b8d3f30b0 +cfb236bb7eb95b9f +59b8590dd7a19e04 +b59180d7a06da05c +0a416e36e35495df +3ad9a1f62898c6fd +8ad3c23e96971186 +15003844ff587234 +20b907e6dd7fdf07 +17b7b7cf3ecd8294 +8fa7d250e2c4dc18 +b7e6a2e1fec6f6e7 +c4cb8af301e3111b +2c5ac07832abcec4 +09c0f85756ac066d +3db1ebe41833d4a6 +72fc076d1ccdf192 +ae8bce9d46cb60f7 +5bb6b4f51b2b59df +c7b3eb6b34381257 +fbf32a77e1db73ab +d44dae7a62bc73d9 +3744684656c177fd +816a0ab81de938b4 +c3f0da4b70ebec84 +9e9bf4c35cd33af0 +dc732c38adcd6cf0 +92472b93ece18ffc +488d9885bf25dbdc +d0a3d0420ce08d1b +43f8605f7ae8808f +a3cf60e2cc2e9117 +e0f6fc5378b88800 +50fdebf77e69e802 +124eab6ad91a94b2 +86306f0162c84e0f +4fbfd05aeca4fc72 +9d69da268fcdcd63 +c7839c007f4f56a9 +3cc40770d71a3180 +39e64e6ba5dd8c92 +5a9490363cc32188 +356a3156581980f0 +09ebd9f698edd63e +6959196b38700257 +788d0050cec6b251 +6dc82891673b3295 +b3e6f4018ce244ba +2c125d2810142a31 +9f04ec6936de967e +d09e22040d40aa90 +efba80c83094d34a +bfa09b34f0639398 +46828f7e6ba1e17f +8c9e12615cd26aa7 +39e0a5402c5f7b45 +113848c0fede81d5 +3ba33cfa72c21f09 +e01d0038dbfccee7 +892048ca4ebfc4fc +2211f27b28622313 +8a97e01643aad6ad +666ae1fbc4354805 +8e12b25c6f070839 +eac400c9eecaa67b +e96e290e15915169 +8469e442f01880c9 +5fb1a123d5fe5365 +6aa234cdf5699d32 +f42365227c470807 +9ccb48b655489e16 +82a5256b2994dc2b +9653d54f51398d4f +fe1b9108be8a48e3 +6baeec241cfe539d +5c554ac17bb2704d +693b6bdf09995a72 +08727fecfe7145f2 +2a76a8720c49a745 +9a9029f0f015dd0b +935cce444e8cdb78 +941d069c02f4f7e9 +fc8ccb8a2980ea88 +f74963c130b5328a +91581ab778461290 +ffb2a49e73b3c306 +00a4ce23ab42817c +b2b8942a7f733dc5 +13924ad935ca75d1 +a2b59360becd3370 +902ef8d32ad7b74a +523c24c55fd79752 +fb2821182fc4bb03 +02ec75e78b1c25a4 +9b1ef06ffa736259 +fb6a5b0746676ef6 +02ac96ce2903c4ad +fcc43a3a4be2b0ca +8651ce962ae4985c +780eec2440b708b6 +8a5be79f00fe9a6c +6fbc9f91a4b1e054 +1c840990cff21474 +dc4019d9438b8ec5 +4bc8c7700b5600dc +e66bc1c50359cc84 +ecc17843a7119554 +48c78ca2126ae784 +8b59422aec786c59 +7b33c0f9d0da4c50 +d0443b2ae37faadd +a7ea93d00dec4e70 +8c09b55dc6d6af49 +7253741677a56775 +7bfaca3644ea21aa +5213d94c2f4d4f56 +ddc9490b3ec04724 +a36b4724ba9f1dd6 +434e792c40f2e002 +57c237126ea1973a +3d192188bf3ddccc +a37aa8503924ea46 +82efe740bc8478f1 +c55767bfbc0aaf31 +d43f45d01ed48d01 +57576787cbbad315 +355b2592b0924599 +908ae61a7ef95f96 +c0f2ede2cf0b206b +3296e0ca444724cc +f2f839bdcf68ca2f +05b83e79c558f9cd +5ce4af1c8cafba08 +c7761d3279a86c7b +699e927fd77b2a9e +44d7f062b4f51bb0 +19dc54a73e5774af +cd2536e0a5524da0 +7430a6286cc03fce +a327b505d3d7814d +3cd45117104ec412 +e38f62d64a4127f2 +a059861b0145793b +c341aa0f4f91e19a +184339d28c95c0f5 +7e64d11b9f66e73c +6dc20e4ce6264267 +29675f2306a35504 +debb0ef5e140372b +8245b87344c143e0 +a70d106fbaadeb69 +c0ecd9fa2e4d1002 +26234296f42a660c +517440b77d2e47ab +cfddcbca64b567fb +9c6c2737a4ff1b26 +8ade8cbe0d044b44 +33029d8fb543e9b8 +30d855f854d7e838 +259e77f82cf81ed8 +417297f4d258733f +7eb2c3ebb80bb999 +b80868f876da7fdf +32df0a7c499b4ba8 +8e30291b77e68a70 +7da10eac5a91dc72 +e01c06970a042dd5 +f5c8345b7c56f6d4 +2dbc1d0fdec4ed31 +84f67bebbd278ca8 +16d30f6c6175ba84 +93d68f0c2ad731b5 +1368d208a03d831f +33cf43b44d3064c4 +745f3c1cb0bdb9fa +cd8cda62b3bc4b39 +70e779f8c12e20af +03efac484565e759 +a8a95cbaad6c8db3 +9f25772e7d7c2479 +54c6b349ed889332 +653346384526a865 +ecb14d78c9c07281 +011d471524a8890f +845132665608c185 +2cac39d0e77c1506 diff --git a/library/jesd204/tb/scrambler_64b_tb b/library/jesd204/tb/scrambler_64b_tb new file mode 100755 index 000000000..ca1c4bbec --- /dev/null +++ b/library/jesd204/tb/scrambler_64b_tb @@ -0,0 +1,7 @@ +#!/bin/bash + +SOURCE="scrambler_64b_tb.v" +SOURCE+=" ../jesd204_common/jesd204_scrambler_64b.v" + +cd `dirname $0` +source run_tb.sh diff --git a/library/jesd204/tb/scrambler_64b_tb.v b/library/jesd204/tb/scrambler_64b_tb.v new file mode 100644 index 000000000..27d6262a1 --- /dev/null +++ b/library/jesd204/tb/scrambler_64b_tb.v @@ -0,0 +1,145 @@ +// +// The ADI JESD204 Core is released under the following license, which is +// different than all other HDL cores in this repository. +// +// Please read this, and understand the freedoms and responsibilities you have +// by using this source code/core. +// +// The JESD204 HDL, is copyright © 2016-2017 Analog Devices Inc. +// +// This core is free software, you can use run, copy, study, change, ask +// questions about and improve this core. Distribution of source, or resulting +// binaries (including those inside an FPGA or ASIC) require you to release the +// source of the entire project (excluding the system libraries provide by the +// tools/compiler/FPGA vendor). These are the terms of the GNU General Public +// License version 2 as published by the Free Software Foundation. +// +// This core is distributed in the hope that it will be useful, but WITHOUT ANY +// WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR +// A PARTICULAR PURPOSE. See the GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License version 2 +// along with this source code, and binary. If not, see +// . +// +// Commercial licenses (with commercial support) of this JESD204 core are also +// available under terms different than the General Public License. (e.g. they +// do not require you to accompany any image (FPGA or ASIC) using the JESD204 +// core with any corresponding source code.) For these alternate terms you must +// purchase a license from Analog Devices Technology Licensing Office. Users +// interested in such a license should contact jesd204-licensing@analog.com for +// more information. This commercial license is sub-licensable (if you purchase +// chips from Analog Devices, incorporate them into your PCB level product, and +// purchase a JESD204 license, end users of your product will also have a +// license to use this core in a commercial setting without releasing their +// source code). +// +// In addition, we kindly ask you to acknowledge ADI in any program, application +// or publication in which you use this JESD204 HDL core. (You are not required +// to do so; it is up to your common sense to decide whether you want to comply +// with this request or not.) For general publications, we suggest referencing : +// “The design and implementation of the JESD204 HDL Core used in this project +// is copyright © 2016-2017, Analog Devices, Inc.” +// + +`timescale 1ns/100ps + +module scrambler_64b_tb; + parameter VCD_FILE = "scrambler_64b_tb.vcd"; + + `include "tb_base.v" + reg failed_t1 = 1'b0; + reg failed_t2 = 1'b0; + + // Test scrambler against descrambler + // + // Descrambled data should match the input of the scrambler. + reg [63:0] data_in = 'h0; + reg [63:0] data_out_expected; + wire [63:0] data_scrambled; + wire [63:0] data_out; + + always @(posedge clk) begin + if (reset == 1'b1) begin + data_in <= 'h0001020304050607; + end else begin + data_in <= data_in + {8{8'h08}}; + end + end + + + jesd204_scrambler_64b #( + .DESCRAMBLE(0) + ) i_scrambler ( + .clk(clk), + .reset(reset), + .enable(1'b1), + .data_in(data_in), + .data_out(data_scrambled) + ); + + jesd204_scrambler_64b #( + .DESCRAMBLE(1) + ) i_descrambler ( + .clk(clk), + .reset(reset), + .enable(1'b1), + .data_in(data_scrambled), + .data_out(data_out) + ); + always @(posedge clk) begin + if (data_in != data_out && failed_t1 == 1'b0) begin + failed_t1 <= 1'b1; + end + end + + // Test descrambler against reference data + // + // Check if descrambler can synchronize and a stream captured from + // a scrambler output. The descrambled data stream should match the input of + // the scrambler. + reg [63:0] descrambler_data_in = 'h0; + reg [63:0] data_ref = 'h0; + wire[63:0] descrambler_data_out; + + integer i; + reg [63:0] scrambler_64b_input [0:993]; + reg [63:0] scrambler_64b_output [0:993]; + reg t2_enable = 1'b0; + + initial begin + $readmemh("scrambler_64b_input.txt", scrambler_64b_input); // Input to a scrambler + $readmemh("scrambler_64b_output.txt", scrambler_64b_output); // Output of a scrambler + @(negedge reset); + @(posedge clk); + for (i=0;i<994;i=i+1) begin + @(posedge clk); + descrambler_data_in <= scrambler_64b_output[i]; + data_ref <= scrambler_64b_input[i]; + if (i==1) t2_enable <= 1'b1; + if (i==993) t2_enable <= 1'b0; + end + end + + jesd204_scrambler_64b #( + .DESCRAMBLE(1) + ) i_descrambler2 ( + .clk(clk), + .reset(reset), + .enable(1'b1), + .data_in(descrambler_data_in), + .data_out(descrambler_data_out) + ); + + always @(posedge clk) begin + if (data_ref != descrambler_data_out && failed_t2 == 1'b0 && t2_enable) begin + failed_t2 <= 1'b1; + end + end + + always @(posedge clk) begin + failed <= failed_t1 || failed_t2; + end + + +endmodule