📄 pkg_prbs.vhd
字号:
oprbs(14) := i(0) xor i(3);
oprbs(13) := i(4);
oprbs(12) := i(3);
oprbs(11) := i(2);
oprbs(10) := i(1);
oprbs(9) := i(0);
oprbs(8) := i(2) xor i(4);
oprbs(7) := i(1) xor i(3);
oprbs(6) := i(0) xor i(2);
oprbs(5) := i(1) xor i(2) xor i(4);
oprbs(4) := i(0) xor i(1) xor i(3);
oprbs(3) := i(0) xor i(4);
oprbs(2) := i(2) xor i(3) xor i(4);
oprbs(1) := i(1) xor i(2) xor i(3);
oprbs(0) := i(0) xor i(1) xor i(2);
return oprbs;
end;
------------------------------------------------
-- Parallel PRBS prbs31_36b. Bus Size 36
-- X^31 + X^28 + 1
------------------------------------------------
function prbs31_36b( i : std_logic_vector )
return std_logic_vector is
constant w : integer := i'length;
variable oprbs : std_logic_vector(w-1 downto 0);
begin
oprbs(35) := i(27) xor i(30);
oprbs(34) := i(26) xor i(29);
oprbs(33) := i(25) xor i(28);
oprbs(32) := i(24) xor i(27);
oprbs(31) := i(23) xor i(26);
oprbs(30) := i(22) xor i(25);
oprbs(29) := i(21) xor i(24);
oprbs(28) := i(20) xor i(23);
oprbs(27) := i(19) xor i(22);
oprbs(26) := i(18) xor i(21);
oprbs(25) := i(17) xor i(20);
oprbs(24) := i(16) xor i(19);
oprbs(23) := i(15) xor i(18);
oprbs(22) := i(14) xor i(17);
oprbs(21) := i(13) xor i(16);
oprbs(20) := i(12) xor i(15);
oprbs(19) := i(11) xor i(14);
oprbs(18) := i(10) xor i(13);
oprbs(17) := i(9) xor i(12);
oprbs(16) := i(8) xor i(11);
oprbs(15) := i(7) xor i(10);
oprbs(14) := i(6) xor i(9);
oprbs(13) := i(5) xor i(8);
oprbs(12) := i(4) xor i(7);
oprbs(11) := i(3) xor i(6);
oprbs(10) := i(2) xor i(5);
oprbs(9) := i(1) xor i(4);
oprbs(8) := i(0) xor i(3);
oprbs(7) := i(2) xor i(27) xor i(30);
oprbs(6) := i(1) xor i(26) xor i(29);
oprbs(5) := i(0) xor i(25) xor i(28);
oprbs(4) := i(24) xor i(30);
oprbs(3) := i(23) xor i(29);
oprbs(2) := i(22) xor i(28);
oprbs(1) := i(21) xor i(27);
oprbs(0) := i(20) xor i(26);
return oprbs;
end;
------------------------------------------------
-- Parallel PRBS prbs23_36b. Bus Size 36
-- X^23 + X^18 + 1
------------------------------------------------
function prbs23_36b( i : std_logic_vector )
return std_logic_vector is
constant w : integer := i'length;
variable oprbs : std_logic_vector(w-1 downto 0);
begin
oprbs(35) := i(17) xor i(22);
oprbs(34) := i(16) xor i(21);
oprbs(33) := i(15) xor i(20);
oprbs(32) := i(14) xor i(19);
oprbs(31) := i(13) xor i(18);
oprbs(30) := i(12) xor i(17);
oprbs(29) := i(11) xor i(16);
oprbs(28) := i(10) xor i(15);
oprbs(27) := i(9) xor i(14);
oprbs(26) := i(8) xor i(13);
oprbs(25) := i(7) xor i(12);
oprbs(24) := i(6) xor i(11);
oprbs(23) := i(5) xor i(10);
oprbs(22) := i(4) xor i(9);
oprbs(21) := i(3) xor i(8);
oprbs(20) := i(2) xor i(7);
oprbs(19) := i(1) xor i(6);
oprbs(18) := i(0) xor i(5);
oprbs(17) := i(4) xor i(17) xor i(22);
oprbs(16) := i(3) xor i(16) xor i(21);
oprbs(15) := i(2) xor i(15) xor i(20);
oprbs(14) := i(1) xor i(14) xor i(19);
oprbs(13) := i(0) xor i(13) xor i(18);
oprbs(12) := i(12) xor i(22);
oprbs(11) := i(11) xor i(21);
oprbs(10) := i(10) xor i(20);
oprbs(9) := i(9) xor i(19);
oprbs(8) := i(8) xor i(18);
oprbs(7) := i(7) xor i(17);
oprbs(6) := i(6) xor i(16);
oprbs(5) := i(5) xor i(15);
oprbs(4) := i(4) xor i(14);
oprbs(3) := i(3) xor i(13);
oprbs(2) := i(2) xor i(12);
oprbs(1) := i(1) xor i(11);
oprbs(0) := i(0) xor i(10);
return oprbs;
end;
------------------------------------------------
-- Parallel PRBS prbs20_36b. Bus Size 36
-- X^20 + X^17 + 1
------------------------------------------------
function prbs20_36b( i : std_logic_vector )
return std_logic_vector is
constant w : integer := i'length;
variable oprbs : std_logic_vector(w-1 downto 0);
begin
oprbs(35) := i(16) xor i(19);
oprbs(34) := i(15) xor i(18);
oprbs(33) := i(14) xor i(17);
oprbs(32) := i(13) xor i(16);
oprbs(31) := i(12) xor i(15);
oprbs(30) := i(11) xor i(14);
oprbs(29) := i(10) xor i(13);
oprbs(28) := i(9) xor i(12);
oprbs(27) := i(8) xor i(11);
oprbs(26) := i(7) xor i(10);
oprbs(25) := i(6) xor i(9);
oprbs(24) := i(5) xor i(8);
oprbs(23) := i(4) xor i(7);
oprbs(22) := i(3) xor i(6);
oprbs(21) := i(2) xor i(5);
oprbs(20) := i(1) xor i(4);
oprbs(19) := i(0) xor i(3);
oprbs(18) := i(2) xor i(16) xor i(19);
oprbs(17) := i(1) xor i(15) xor i(18);
oprbs(16) := i(0) xor i(14) xor i(17);
oprbs(15) := i(13) xor i(19);
oprbs(14) := i(12) xor i(18);
oprbs(13) := i(11) xor i(17);
oprbs(12) := i(10) xor i(16);
oprbs(11) := i(9) xor i(15);
oprbs(10) := i(8) xor i(14);
oprbs(9) := i(7) xor i(13);
oprbs(8) := i(6) xor i(12);
oprbs(7) := i(5) xor i(11);
oprbs(6) := i(4) xor i(10);
oprbs(5) := i(3) xor i(9);
oprbs(4) := i(2) xor i(8);
oprbs(3) := i(1) xor i(7);
oprbs(2) := i(0) xor i(6);
oprbs(1) := i(5) xor i(16) xor i(19);
oprbs(0) := i(4) xor i(15) xor i(18);
return oprbs;
end;
------------------------------------------------
-- Parallel PRBS prbs15_36b. Bus Size 36
-- X^15 + X^14 + 1
------------------------------------------------
function prbs15_36b( i : std_logic_vector )
return std_logic_vector is
constant w : integer := i'length;
variable oprbs : std_logic_vector(w-1 downto 0);
begin
oprbs(35) := i(13) xor i(14);
oprbs(34) := i(12) xor i(13);
oprbs(33) := i(11) xor i(12);
oprbs(32) := i(10) xor i(11);
oprbs(31) := i(9) xor i(10);
oprbs(30) := i(8) xor i(9);
oprbs(29) := i(7) xor i(8);
oprbs(28) := i(6) xor i(7);
oprbs(27) := i(5) xor i(6);
oprbs(26) := i(4) xor i(5);
oprbs(25) := i(3) xor i(4);
oprbs(24) := i(2) xor i(3);
oprbs(23) := i(1) xor i(2);
oprbs(22) := i(0) xor i(1);
oprbs(21) := i(0) xor i(13) xor i(14);
oprbs(20) := i(12) xor i(14);
oprbs(19) := i(11) xor i(13);
oprbs(18) := i(10) xor i(12);
oprbs(17) := i(9) xor i(11);
oprbs(16) := i(8) xor i(10);
oprbs(15) := i(7) xor i(9);
oprbs(14) := i(6) xor i(8);
oprbs(13) := i(5) xor i(7);
oprbs(12) := i(4) xor i(6);
oprbs(11) := i(3) xor i(5);
oprbs(10) := i(2) xor i(4);
oprbs(9) := i(1) xor i(3);
oprbs(8) := i(0) xor i(2);
oprbs(7) := i(1) xor i(13) xor i(14);
oprbs(6) := i(0) xor i(12) xor i(13);
oprbs(5) := i(11) xor i(12) xor i(13) xor i(14);
oprbs(4) := i(10) xor i(11) xor i(12) xor i(13);
oprbs(3) := i(9) xor i(10) xor i(11) xor i(12);
oprbs(2) := i(8) xor i(9) xor i(10) xor i(11);
oprbs(1) := i(7) xor i(8) xor i(9) xor i(10);
oprbs(0) := i(6) xor i(7) xor i(8) xor i(9);
return oprbs;
end;
------------------------------------------------
-- Parallel PRBS prbs10_36b. Bus Size 36
-- X^10 + X^7 + 1
------------------------------------------------
function prbs10_36b( i : std_logic_vector )
return std_logic_vector is
constant w : integer := i'length;
variable oprbs : std_logic_vector(w-1 downto 0);
begin
oprbs(35) := i(6) xor i(9);
oprbs(34) := i(5) xor i(8);
oprbs(33) := i(4) xor i(7);
oprbs(32) := i(3) xor i(6);
oprbs(31) := i(2) xor i(5);
oprbs(30) := i(1) xor i(4);
oprbs(29) := i(0) xor i(3);
oprbs(28) := i(2) xor i(6) xor i(9);
oprbs(27) := i(1) xor i(5) xor i(8);
oprbs(26) := i(0) xor i(4) xor i(7);
oprbs(25) := i(3) xor i(9);
oprbs(24) := i(2) xor i(8);
oprbs(23) := i(1) xor i(7);
oprbs(22) := i(0) xor i(6);
oprbs(21) := i(5) xor i(6) xor i(9);
oprbs(20) := i(4) xor i(5) xor i(8);
oprbs(19) := i(3) xor i(4) xor i(7);
oprbs(18) := i(2) xor i(3) xor i(6);
oprbs(17) := i(1) xor i(2) xor i(5);
oprbs(16) := i(0) xor i(1) xor i(4);
oprbs(15) := i(0) xor i(3) xor i(6) xor i(9);
oprbs(14) := i(2) xor i(5) xor i(6) xor i(8) xor i(9);
oprbs(13) := i(1) xor i(4) xor i(5) xor i(7) xor i(8);
oprbs(12) := i(0) xor i(3) xor i(4) xor i(6) xor i(7);
oprbs(11) := i(2) xor i(3) xor i(5) xor i(9);
oprbs(10) := i(1) xor i(2) xor i(4) xor i(8);
oprbs(9) := i(0) xor i(1) xor i(3) xor i(7);
oprbs(8) := i(0) xor i(2) xor i(9);
oprbs(7) := i(1) xor i(6) xor i(8) xor i(9);
oprbs(6) := i(0) xor i(5) xor i(7) xor i(8);
oprbs(5) := i(4) xor i(7) xor i(9);
oprbs(4) := i(3) xor i(6) xor i(8);
oprbs(3) := i(2) xor i(5) xor i(7);
oprbs(2) := i(1) xor i(4) xor i(6);
oprbs(1) := i(0) xor i(3) xor i(5);
oprbs(0) := i(2) xor i(4) xor i(6) xor i(9);
return oprbs;
end;
------------------------------------------------
-- Parallel PRBS prbs7_36b. Bus Size 36
-- X^7 + X^6 + 1
------------------------------------------------
function prbs7_36b( i : std_logic_vector )
return std_logic_vector is
constant w : integer := i'length;
variable oprbs : std_logic_vector(w-1 downto 0);
begin
oprbs(35) := i(5) xor i(6);
oprbs(34) := i(4) xor i(5);
oprbs(33) := i(3) xor i(4);
oprbs(32) := i(2) xor i(3);
oprbs(31) := i(1) xor i(2);
oprbs(30) := i(0) xor i(1);
oprbs(29) := i(0) xor i(5) xor i(6);
oprbs(28) := i(4) xor i(6);
oprbs(27) := i(3) xor i(5);
oprbs(26) := i(2) xor i(4);
oprbs(25) := i(1) xor i(3);
oprbs(24) := i(0) xor i(2);
oprbs(23) := i(1) xor i(5) xor i(6);
oprbs(22) := i(0) xor i(4) xor i(5);
oprbs(21) := i(3) xor i(4) xor i(5) xor i(6);
oprbs(20) := i(2) xor i(3) xor i(4) xor i(5);
oprbs(19) := i(1) xor i(2) xor i(3) xor i(4);
oprbs(18) := i(0) xor i(1) xor i(2) xor i(3);
oprbs(17) := i(0) xor i(1) xor i(2) xor i(5) xor i(6);
oprbs(16) := i(0) xor i(1) xor i(4) xor i(6);
oprbs(15) := i(0) xor i(3) xor i(6);
oprbs(14) := i(2) xor i(6);
oprbs(13) := i(1) xor i(5);
oprbs(12) := i(0) xor i(4);
oprbs(11) := i(3) xor i(5) xor i(6);
oprbs(10) := i(2) xor i(4) xor i(5);
oprbs(9) := i(1) xor i(3) xor i(4);
oprbs(8) := i(0) xor i(2) xor i(3);
oprbs(7) := i(1) xor i(2) xor i(5) xor i(6);
oprbs(6) := i(0) xor i(1) xor i(4) xor i(5);
oprbs(5) := i(0) xor i(3) xor i(4) xor i(5) xor i(6);
oprbs(4) := i(2) xor i(3) xor i(4) xor i(6);
oprbs(3) := i(1) xor i(2) xor i(3) xor i(5);
oprbs(2) := i(0) xor i(1) xor i(2) xor i(4);
oprbs(1) := i(0) xor i(1) xor i(3) xor i(5) xor i(6);
oprbs(0) := i(0) xor i(2) xor i(4) xor i(6);
return oprbs;
end;
------------------------------------------------
-- Parallel PRBS prbs5_36b. Bus Size 36
-- X^5 + X^3 + 1
------------------------------------------------
function prbs5_36b( i : std_logic_vector )
return std_logic_vector is
constant w : integer := i'length;
variable oprbs : std_logic_vector(w-1 downto 0);
begin
oprbs(35) := i(2) xor i(4);
oprbs(34) := i(1) xor i(3);
oprbs(33) := i(0) xor i(2);
oprbs(32) := i(1) xor i(2) xor i(4);
oprbs(31) := i(0) xor i(1) xor i(3);
oprbs(30) := i(0) xor i(4);
oprbs(29) := i(2) xor i(3) xor i(4);
oprbs(28) := i(1) xor i(2) xor i(3);
oprbs(27) := i(0) xor i(1) xor i(2);
oprbs(26) := i(0) xor i(1) xor i(2) xor i(4);
oprbs(25) := i(0) xor i(1) xor i(2) xor i(3) xor i(4);
oprbs(24) := i(0) xor i(1) xor i(3) xor i(4);
oprbs(23) := i(0) xor i(3) xor i(4);
oprbs(22) := i(3) xor i(4);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -