From 756aa8554c6cbd9cd0fc388c2221e241a0061936 Mon Sep 17 00:00:00 2001 From: Erik Kooistra <kooistra@astron.nl> Date: Tue, 24 Feb 2015 09:06:30 +0000 Subject: [PATCH] Undo porting and modification of common_lfsr_sequences_pkg.vhd --- libraries/base/common/hdllib.cfg | 2 +- .../src/vhdl/common_lfsr_sequences_pkg.vhd | 203 ------------------ 2 files changed, 1 insertion(+), 204 deletions(-) delete mode 100644 libraries/base/common/src/vhdl/common_lfsr_sequences_pkg.vhd diff --git a/libraries/base/common/hdllib.cfg b/libraries/base/common/hdllib.cfg index aaeb3ebd01..e57b61685d 100644 --- a/libraries/base/common/hdllib.cfg +++ b/libraries/base/common/hdllib.cfg @@ -13,7 +13,7 @@ synth_files = $UNB/Firmware/modules/common/src/vhdl/common_str_pkg.vhd src/vhdl/common_mem_pkg.vhd $UNB/Firmware/modules/common/src/vhdl/common_field_pkg.vhd - src/vhdl/common_lfsr_sequences_pkg.vhd + $UNB/Firmware/modules/common/src/vhdl/common_lfsr_sequences_pkg.vhd src/vhdl/common_interface_layers_pkg.vhd src/vhdl/common_network_layers_pkg.vhd src/vhdl/common_network_total_header_pkg.vhd diff --git a/libraries/base/common/src/vhdl/common_lfsr_sequences_pkg.vhd b/libraries/base/common/src/vhdl/common_lfsr_sequences_pkg.vhd deleted file mode 100644 index 470b4bb49f..0000000000 --- a/libraries/base/common/src/vhdl/common_lfsr_sequences_pkg.vhd +++ /dev/null @@ -1,203 +0,0 @@ --------------------------------------------------------------------------------- --- --- Copyright (C) 2009 --- ASTRON (Netherlands Institute for Radio Astronomy) <http://www.astron.nl/> --- JIVE (Joint Institute for VLBI in Europe) <http://www.jive.nl/> --- P.O.Box 2, 7990 AA Dwingeloo, The Netherlands --- --- This program is free software: you can redistribute it and/or modify --- it under the terms of the GNU General Public License as published by --- the Free Software Foundation, either version 3 of the License, or --- (at your option) any later version. --- --- This program 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 --- along with this program. If not, see <http://www.gnu.org/licenses/>. --- --------------------------------------------------------------------------------- - -LIBRARY IEEE; -USE IEEE.std_logic_1164.ALL; -USE IEEE.numeric_std.ALL; - -PACKAGE common_lfsr_sequences_pkg IS - - CONSTANT c_common_lfsr_max_nof_feedbacks : NATURAL := 6; - CONSTANT c_common_lfsr_first : NATURAL := 1; -- also support n = 1 and 2 in addition to n >= 3 - - TYPE t_FEEDBACKS IS ARRAY (c_common_lfsr_max_nof_feedbacks-1 DOWNTO 0) OF NATURAL; - TYPE t_SEQUENCES IS ARRAY (NATURAL RANGE <>) OF t_FEEDBACKS; - - -- XNOR feedbacks for n = 1: - -- (0,0,0,0,0, 0) yields repeat <1> - -- (0,0,0,0,0, 1) yields repeat <0, 1> - - -- XNOR feedbacks for n = 2: - -- (0,0,0,0, 0, 1) yields repeat <1, 2> - -- (0,0,0,0, 0, 2) yields repeat <0, 1, 3, 2> - -- (0,0,0,0, 2, 1) yields repeat <0, 1, 2> - - -- XNOR feedbacks from outputs for n = 3 .. 72 from Xilinx xapp052.pdf (that lists feedbacks for in total 168 sequences) - CONSTANT c_common_lfsr_sequences : t_SEQUENCES := ((0,0,0,0,0, 1), -- 1 : <0, 1> - (0,0,0,0, 0, 2), -- 2 : <0, 1, 3, 2> - (0,0,0,0, 3, 2), -- 3 - (0,0,0,0, 4, 3), -- 4 - (0,0,0,0, 5, 3), -- 5 - (0,0,0,0, 6, 5), -- 6 - (0,0,0,0, 7, 6), -- 7 - (0,0, 8, 6, 5, 4), -- 8 - (0,0,0,0, 9, 5), -- 9 - (0,0,0,0, 10, 7), -- 10 - (0,0,0,0, 11, 9), -- 11 - (0,0, 12, 6, 4, 1), -- 12 - (0,0, 13, 4, 3, 1), -- 13 - (0,0, 14, 5, 3, 1), -- 14 - (0,0,0,0, 15,14 ), -- 15 - (0,0, 16,15,13, 4), -- 16 - (0,0,0,0, 17,14 ), -- 17 - (0,0,0,0, 18,11 ), -- 18 - (0,0, 19, 6, 2, 1), -- 19 - (0,0,0,0, 20,17 ), -- 20 - (0,0,0,0, 21,19 ), -- 21 - (0,0,0,0, 22,21 ), -- 22 - (0,0,0,0, 23,18 ), -- 23 - (0,0, 24,23,22,17), -- 24 - (0,0,0,0, 25,22 ), -- 25 - (0,0, 26, 6, 2, 1), -- 26 - (0,0, 27, 5, 2, 1), -- 27 - (0,0,0,0, 28,25 ), -- 28 - (0,0,0,0, 29,27 ), -- 29 - (0,0, 30, 6, 4, 1), -- 30 - (0,0,0,0, 31,28 ), -- 31 - (0,0, 32,22, 2, 1), -- 32 - (0,0,0,0, 33,20 ), -- 33 - (0,0, 34,27, 2, 1), -- 34 - (0,0,0,0, 35,33 ), -- 35 - (0,0,0,0, 36,25 ), -- 36 - ( 37, 5, 4, 3, 2, 1), -- 37 - (0,0, 38, 6, 5, 1), -- 38 - (0,0,0,0, 39,35 ), -- 39 - (0,0, 40,38,21,19), -- 40 - (0,0,0,0, 41,38 ), -- 41 - (0,0, 42,41,20,19), -- 42 - (0,0, 43,42,38,37), -- 43 - (0,0, 44,43,18,17), -- 44 - (0,0, 45,44,42,41), -- 45 - (0,0, 46,45,26,25), -- 46 - (0,0,0,0, 47,42 ), -- 47 - (0,0, 48,47,21,20), -- 48 - (0,0,0,0, 49,40 ), -- 49 - (0,0, 50,49,24,23), -- 50 - (0,0, 51,50,36,35), -- 51 - (0,0,0,0, 52,49 ), -- 52 - (0,0, 53,52,38,37), -- 53 - (0,0, 54,53,18,17), -- 54 - (0,0,0,0, 55,31 ), -- 55 - (0,0, 56,55,35,34), -- 56 - (0,0,0,0, 57,50 ), -- 57 - (0,0,0,0, 58,39 ), -- 58 - (0,0, 59,58,38,37), -- 59 - (0,0,0,0, 60,59 ), -- 60 - (0,0, 61,60,46,45), -- 61 - (0,0, 62,61, 6, 5), -- 62 - (0,0,0,0, 63,62 ), -- 63 - (0,0, 64,63,61,60), -- 64 - (0,0,0,0, 65,47 ), -- 65 - (0,0, 66,65,57,56), -- 66 - (0,0, 67,66,58,57), -- 67 - (0,0,0,0, 68,59 ), -- 68 - (0,0, 69,67,42,40), -- 69 - (0,0, 70,69,55,54), -- 70 - (0,0,0,0, 71,65 ), -- 71 - (0,0, 72,66,25,19)); -- 72 - - - -- Procedure for calculating the next PSRG and COUNTER sequence value - -- . for the next PSRG sequence the nxt_prsg is the next value in the - -- sequence. The in_step is not used for PSRG data. - -- . for the next COUNTER sequence the nxt_cntr = cntr + 1 and the nxt_step - -- = cntr + in_step, so when in_step=1 then nxt_cntr2 is void and when - -- nxt_step > 1 then the COUNTER sequence can produce an alternative - -- nxt_cntr2 value. - PROCEDURE common_lfsr_nxt_seq(CONSTANT c_lfsr_nr : IN NATURAL; - in_en : IN STD_LOGIC; - in_req : IN STD_LOGIC; - in_dat : IN STD_LOGIC_VECTOR; - in_step : IN STD_LOGIC_VECTOR; - prsg : IN STD_LOGIC_VECTOR; - cntr : IN STD_LOGIC_VECTOR; - SIGNAL nxt_prsg : OUT STD_LOGIC_VECTOR; - SIGNAL nxt_cntr : OUT STD_LOGIC_VECTOR; - SIGNAL nxt_cntr2 : OUT STD_LOGIC_VECTOR); - - -- Use lfsr part of common_lfsr_nxt_seq to make a random bit generator function - -- . width of lfsr selects the LFSR sequence - -- . initialized lfsr with (OTHERS=>'0') - -- . use lfsr(lfsr'HIGH) as random bit - FUNCTION func_common_random(lfsr : STD_LOGIC_VECTOR) RETURN STD_LOGIC_VECTOR; - -END common_lfsr_sequences_pkg; - - -PACKAGE BODY common_lfsr_sequences_pkg IS - - PROCEDURE common_lfsr_nxt_seq(CONSTANT c_lfsr_nr : IN NATURAL; - in_en : IN STD_LOGIC; - in_req : IN STD_LOGIC; - in_dat : IN STD_LOGIC_VECTOR; - in_step : IN STD_LOGIC_VECTOR; - prsg : IN STD_LOGIC_VECTOR; - cntr : IN STD_LOGIC_VECTOR; - SIGNAL nxt_prsg : OUT STD_LOGIC_VECTOR; - SIGNAL nxt_cntr : OUT STD_LOGIC_VECTOR; - SIGNAL nxt_cntr2 : OUT STD_LOGIC_VECTOR) IS - VARIABLE v_feedback : STD_LOGIC; - BEGIN - nxt_prsg <= prsg; - nxt_cntr <= cntr; - nxt_cntr2 <= cntr; - IF in_en='0' THEN -- init reference value - nxt_prsg <= in_dat; - nxt_cntr <= in_dat; - nxt_cntr2 <= in_dat; - ELSIF in_req='1' THEN -- next reference value - -- PRSG shift - nxt_prsg <= prsg(prsg'HIGH-1 DOWNTO 0) & '0'; - -- PRSG feedback - v_feedback := '0'; - FOR I IN c_common_lfsr_max_nof_feedbacks-1 DOWNTO 0 LOOP - IF c_common_lfsr_sequences(c_lfsr_nr)(I) /= 0 THEN - v_feedback := v_feedback XOR prsg(c_common_lfsr_sequences(c_lfsr_nr)(I)-1); - END IF; - END LOOP; - nxt_prsg(0) <= NOT v_feedback; - - -- COUNTER - nxt_cntr <= INCR_UVEC(cntr, 1); - nxt_cntr2 <= INCR_UVEC(cntr, in_step); - END IF; - END common_lfsr_nxt_seq; - - FUNCTION func_common_random(lfsr : STD_LOGIC_VECTOR) RETURN STD_LOGIC_VECTOR IS - CONSTANT c_lfsr_nr : NATURAL := lfsr'LENGTH - c_common_lfsr_first; - VARIABLE v_nxt_lfsr : STD_LOGIC_VECTOR(lfsr'RANGE); - VARIABLE v_feedback : STD_LOGIC; - BEGIN - -- shift - v_nxt_lfsr := lfsr(lfsr'HIGH-1 DOWNTO 0) & '0'; - -- feedback - v_feedback := '0'; - FOR I IN c_common_lfsr_max_nof_feedbacks-1 DOWNTO 0 LOOP - IF c_common_lfsr_sequences(c_lfsr_nr)(I) /= 0 THEN - v_feedback := v_feedback XOR lfsr(c_common_lfsr_sequences(c_lfsr_nr)(I)-1); - END IF; - END LOOP; - v_nxt_lfsr(0) := NOT v_feedback; - RETURN v_nxt_lfsr; - END func_common_random; - -END common_lfsr_sequences_pkg; -- GitLab