Электронная библиотека описаний модулей криптографического нейропроцессора VHDL
Особенность построения на базе программируемых интегральных логических схем типа FPGA устройств защиты данных. Реализация операции эллиптической криптографии в базисе одноуровневой системы остаточных классов. VHDL-описание трехместного сумматора.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | контрольная работа |
Язык | русский |
Дата добавления | 11.01.2020 |
Размер файла | 28,1 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Армавир 2015
Электронная библиотека описаний модулей криптографического нейропроцессора VHDL
Афонин М.С.
1. Функциональное назначение разработки, область применения, ее ограничения
Электронная библиотека описаний модулей криптографического нейропроцессора VHDL - предназначена для построения на базе программируемых интегральных логических схем (ПЛИС) типа FPGA устройств защиты данных. Компоненты VHDL-библиотеки разработаны с учетом требований отечественных и мировых стандартов к криптографическим механизмам защиты данных на базе эллиптических кривых.
Библиотека VHDL включает в себя описание арифметических устройств нейропроцессора на языке описания аппаратуры VHDL:
1. VHDL - описания двухоперандных и трехпоерандных сумматоров и умножителей по модулю.
2. VHDL - описания компонентов преобразователя чисел из иерархической системы остаточных классов в позиционную систему счисления.
3. VHDL - описания многоместных сумматоров и умножителей.
Операции эллиптической криптографии (сложение, удвоение, утроение точек) в базисе одноуровневой системы остаточных классов (СОК) реализуется с помощью:
- сумматора двух операндов по модулю СОК;
- умножителя двух операндов по модулю СОК;
- сумматора трех операндов по модулю СОК;
- умножителя трех операндов по модулю СОК.
VHDL-описание трехоперандного сумматора по модулю:
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
use ieee.numeric_std.all;
entity adder_3_operand is
generic (i: natural:= 7; j: natural:= 8;
m1: STD_LOGIC_VECTOR:= "101111101";
m2: STD_LOGIC_VECTOR:= "011111010";
modul: STD_LOGIC_VECTOR:= "010000011";
modul_1: STD_LOGIC_VECTOR:= "010000010";
modul2: STD_LOGIC_VECTOR:= "100000110";
modul2_1: STD_LOGIC_VECTOR:= "100000101");
Port (a31 : in STD_LOGIC_VECTOR (i downto 0);
a32 : in STD_LOGIC_VECTOR (i downto 0);
a33 : in STD_LOGIC_VECTOR (i downto 0);
b33 : out STD_LOGIC_VECTOR (i downto 0));
end adder_3_operand;
architecture Behavioral of adder_3_operand is
signal minus1,minus2: STD_LOGIC_VECTOR (j downto 0);
signal sum1, sum2,sum3: STD_LOGIC_VECTOR (j downto 0);
signal long_a31, long_a32, long_a33:STD_LOGIC_VECTOR (j downto 0);
begin
long_a31<='0'&a31;
long_a32<='0'&a32;
long_a33<='0'&a33;
sum1 <= long_a31 + long_a32 + long_a33;
minus1<= m1;
minus2<= m2;
sum2<= sum1 + minus1;
sum3<= sum1 + minus2;
process(sum1,sum2,sum3)
begin
if (sum1 < modul) then
b33<=sum1(i downto 0 );
elsif (sum1 > modul_1)and(sum1 < modul2) then
b33<=sum2(i downto 0 );
elsif (sum1 > modul2_1) then
b33<=sum3(i downto 0 );
end if;
end process;
end Behavioral;
В таблице 1 представлены ресурсы ПЛИС трехоперандного сумматора по модулю на примере микросхемы xc7v2000t-2flg1925 семейства Virtex 7
Таблица 1 - Ресурсы ПЛИС трехоперандного сумматора по модулю на примере микросхемы xc7v2000t-2flg1925 семейства Virtex 7
Разрядность модуля, бит |
Модуль сумматора |
Количество LUT, шт. |
|
8 |
131 |
32 |
|
16 |
32771 |
87 |
|
24 |
8388617 |
150 |
|
32 |
2147483659 |
201 |
|
40 |
549755813911 |
252 |
|
48 |
140737488355333 |
300 |
|
56 |
36028797018963971 |
353 |
|
64 |
9223372036854775837 |
398 |
|
72 |
2361183241434822606859 |
449 |
|
80 |
604462909807314587353111 |
500 |
|
88 |
154742504910672534362390567 |
550 |
|
96 |
39614081257132168796771975177 |
601 |
|
104 |
10141204801825835211973625643089 |
648 |
|
112 |
2596148429267413814265248164610099 |
699 |
|
120 |
664613997892457936451903530140172297 |
748 |
|
128 |
170141183460469231731687303715884105757 |
796 |
VHDL-описание двухоперандного сумматора по модулю:
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
entity adder_2_operand is
generic (i: natural:= 7; j: natural:= 8;
m1: STD_LOGIC_VECTOR:= "101111101";
modul: STD_LOGIC_VECTOR:= "010000011");
Port (a21 : in STD_LOGIC_VECTOR (i downto 0);
a22 : in STD_LOGIC_VECTOR (i downto 0);
b22 : out STD_LOGIC_VECTOR (i downto 0));
end adder_2_operand;
architecture Behavioral of adder_2_operand is
signal sum1: STD_LOGIC_VECTOR (j downto 0);
signal minus_m : STD_LOGIC_VECTOR (j downto 0);
signal sum2: STD_LOGIC_VECTOR (j downto 0);
signal long_a21, long_a22:STD_LOGIC_VECTOR (j downto 0);
begin
long_a21<='0'&a21;
long_a22<='0'&a22;
sum1<= long_a21+ long_a22;
minus_m <= m1;
sum2<= sum1 + m1;
process(sum1)
begin
if sum1 < modul then
b22<=sum1(i downto 0 );
else b22<=sum2(i downto 0 );
end if;
end process;
end Behavioral;
В таблице 2 представлены ресурсы ПЛИС двухоперандного сумматора по модулю на примере микросхемы xc7v2000t-2flg1925 семейства Virtex 7
Таблица 2 - Ресурсы ПЛИС двухоперандного сумматора по модулю на примере микросхемы xc7v2000t-2flg1925 семейства Virtex 7
Разрядность модуля, бит |
Модуль сумматора |
Количество LUT, шт. |
|
8 |
131 |
19 |
|
16 |
32771 |
52 |
|
24 |
8388617 |
81 |
|
32 |
2147483659 |
108 |
|
40 |
549755813911 |
137 |
|
48 |
140737488355333 |
163 |
|
56 |
36028797018963971 |
191 |
|
64 |
9223372036854775837 |
217 |
|
72 |
2361183241434822606859 |
244 |
|
80 |
604462909807314587353111 |
273 |
|
88 |
154742504910672534362390567 |
299 |
|
96 |
39614081257132168796771975177 |
327 |
|
104 |
10141204801825835211973625643089 |
353 |
|
112 |
2596148429267413814265248164610099 |
380 |
|
120 |
664613997892457936451903530140172297 |
409 |
|
128 |
170141183460469231731687303715884105757 |
435 |
VHDL-описание двухоперандного умножителя по модулю:
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.NUMERIC_STD.ALL;
entity multiplier_2_operand is
generic(i: natural:= 7; j: natural := 15;
modul: unsigned := "10000011");
Port (a21 : in unsigned (i downto 0);
a22 : in unsigned (i downto 0);
b21 : out unsigned (i downto 0));
end multiplier_2_operand;
architecture Behavioral of multiplier_2_operand is
signal temp_result: unsigned (j downto 0);
begin
temp_result <= a21 * a22;
b21 <= temp_result mod modul;
end Behavioral.
В таблице 3 представлены ресурсы ПЛИС двухоперандного умножителя по модулю на примере микросхемы xc7v2000t-2flg1925 семейства Virtex 7.
Таблица 3 - Ресурсы ПЛИС двухоперандного умножителя по модулю на примере микросхемы xc7v2000t-2flg1925 семейства Virtex 7
Разрядность модуля, бит |
Модуль умножителя |
Количество LUT, шт. |
Количество DSP48E1, шт. |
Время на операцию, нс |
|
8 |
131 |
175 |
1 |
22.494 |
|
16 |
32771 |
920 |
1 |
41.429 |
|
24 |
8388617 |
2105 |
2 |
59.501 |
|
32 |
2147483659 |
3728 |
4 |
80.026 |
|
40 |
549755813911 |
5856 |
8 |
101.174 |
|
48 |
140737488355333 |
8467 |
11 |
120.64 |
|
56 |
36028797018963971 |
11498 |
12 |
136.765 |
|
64 |
9223372036854775837 |
14990 |
12 |
167.564 |
|
72 |
2361183241434822606859 |
19016 |
20 |
184.926 |
|
80 |
604462909807314587353111 |
23472 |
24 |
209.013 |
|
88 |
154742504910672534362390567 |
28468 |
30 |
235.054 |
|
96 |
39614081257132168796771975177 |
33835 |
30 |
262.533 |
|
104 |
10141204801825835211973625643089 |
39811 |
38 |
293.294 |
VHDL-описание трехоперандного умножителя первого типа по модулю:
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.NUMERIC_STD.ALL;
entity multiplier_3_operand_1 is
generic(i: natural:= 7; j: natural := 23;
modul: unsigned := "10000011");
Port (a31 : in unsigned (i downto 0);
a32 : in unsigned (i downto 0);
a33 : in unsigned (i downto 0);
b31 : out unsigned (i downto 0));
end multiplier_3_operand_1;
architecture Behavioral of multiplier_3_operand_1 is
signal temp_result: unsigned (j downto 0);
begin
temp_result <= a31*a32*a33;
b31 <= temp_result mod modul;
end Behavioral;
В таблице 4 представлены ресурсы ПЛИС трехоперандного умножителя по модулю на примере микросхемы xc7v2000t-2flg1925 семейства Virtex 7.
Таблица 4 - Ресурсы ПЛИС трехоперандного умножителя первого типа по модулю на примере микросхемы xc7v2000t-2flg1925 семейства Virtex 7
Разрядность модуля, бит |
Модуль умножителя |
Количество LUT, шт. |
Количество DSP48E1, шт. |
Время на операцию, нс |
|
8 |
131 |
532 |
2 |
41.820 |
|
16 |
32771 |
2444 |
3 |
82.222 |
|
24 |
8388617 |
5567 |
8 |
121.372 |
|
32 |
2147483659 |
9892 |
10 |
160.397 |
|
40 |
549755813911 |
15576 |
24 |
204.471 |
|
48 |
140737488355333 |
22503 |
30 |
245.519 |
|
56 |
36028797018963971 |
30588 |
34 |
282.434 |
|
64 |
9223372036854775837 |
39914 |
40 |
350.017 |
VHDL-описание трехоперандного умножителя второго типа по модулю:
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.NUMERIC_STD.ALL;
entity multiplier_3_operand_2 is
generic (i: natural:= 7; j: natural := 15;
modul: unsigned := "10000011");
Port (a31 : in unsigned (i downto 0);
a32 : in unsigned (i downto 0);
a33 : in unsigned (i downto 0);
b31 : out unsigned (i downto 0));
end multiplier_3_operand_2;
architecture Behavioral of multiplier_3_operand_2 is
signal temp_result1: unsigned (j downto 0);
signal temp_result2: unsigned (i downto 0);
signal temp_result3: unsigned (j downto 0);
begin
temp_result1 <= a31*a32;
temp_result2 <= temp_result1 mod modul;
temp_result3 <= temp_result2*a33;
b31 <= temp_result3 mod modul;
end Behavioral;
В таблице 5 представлены ресурсы ПЛИС трехоперандного умножителя второго типа по модулю на примере микросхемы xc7v2000t-2flg1925 семейства Virtex 7.
Таблица 5 - Ресурсы ПЛИС трехоперандного умножителя второго типа по модулю на примере микросхемы xc7v2000t-2flg1925 семейства Virtex 7
Разрядность модуля, бит |
Модуль умножителя |
Количество LUT, шт. |
Количество DSP48E1, шт. |
Время на операцию, нс |
|
8 |
131 |
525 |
2 |
42.954 |
|
16 |
32771 |
2162 |
2 |
78.712 |
|
24 |
8388617 |
4862 |
4 |
121.910 |
|
32 |
2147483659 |
8632 |
8 |
168.806 |
|
40 |
549755813911 |
13408 |
16 |
213.960 |
|
48 |
140737488355333 |
19435 |
22 |
272.470 |
|
56 |
36028797018963971 |
26560 |
24 |
310.904 |
|
64 |
9223372036854775837 |
34408 |
24 |
378.303 |
|
72 |
2361183241434822606859 |
44123 |
40 |
411.859 |
|
80 |
604462909807314587353111 |
54482 |
48 |
466.214 |
|
88 |
154742504910672534362390567 |
66072 |
60 |
526.447 |
|
96 |
39614081257132168796771975177 |
78751 |
60 |
585.839 |
|
104 |
10141204801825835211973625643089 |
92626 |
76 |
646.593 |
VHDL-описание двухоперандного умножителя:
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.NUMERIC_STD.ALL;
entity simple_2_operand_multiplier is
generic (i: natural:= 127;
j: natural := 255);
Port (a21 : in unsigned (i downto 0);
a22 : in unsigned (i downto 0);
b21 : out unsigned (j downto 0));
end simple_2_operand_multiplier;
architecture Behavioral of simple_2_operand_multiplier is
begin
b21 <= a21*a22;
end Behavioral;
В таблице 6 представлены ресурсы ПЛИС двухоперандного умножителя на примере микросхемы xc7v2000t-2flg1925 семейства Virtex 7.
Таблица 6 - Ресурсы ПЛИС двухоперандного умножителя на примере микросхемы xc7v2000t-2flg1925 семейства Virtex 7
Разрядность операндов, бит |
Количество LUT, шт. |
Количество DSP48E1, шт. |
Время на операцию, нс |
|
8 |
0 |
1 |
3.415 |
|
16 |
0 |
1 |
3.415 |
|
24 |
0 |
2 |
4.634 |
|
32 |
0 |
4 |
7.072 |
|
40 |
45 |
8 |
8.620 |
|
48 |
109 |
11 |
9.311 |
|
56 |
133 |
12 |
9.527 |
|
64 |
157 |
12 |
9.743 |
|
72 |
256 |
20 |
9.911 |
|
80 |
323 |
24 |
10.127 |
|
88 |
470 |
30 |
11.278 |
|
96 |
526 |
30 |
11.494 |
|
104 |
730 |
38 |
11.471 |
|
112 |
702 |
44 |
11.687 |
|
120 |
952 |
60 |
11.638 |
|
128 |
1028 |
56 |
11.849 |
VHDL-описание трехоперандного умножителя:
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.NUMERIC_STD.ALL;
entity simple_modulo_multiplier is
generic (i: natural:= 7; j: natural := 23);
Port (a31 : in unsigned (i downto 0);
a32 : in unsigned (i downto 0);
a33 : in unsigned (i downto 0);
b31 : out unsigned (j downto 0));
end simple_modulo_multiplier;
architecture Behavioral of simple_modulo_multiplier is
begin
b31 <= a31*a32*a33;
end Behavioral.
В таблице 7 представлены ресурсы ПЛИС трехоперандного умножителя на примере микросхемы xc7v2000t-2flg1925 семейства Virtex 7.
Таблица 7 - Ресурсы ПЛИС трехоперандного умножителя на примере микросхемы xc7v2000t-2flg1925 семейства Virtex 7
Разрядность операндов, бит |
Количество LUT, шт. |
Количество DSP48E1, шт. |
Время на операцию, нс |
|
8 |
0 |
2 |
6.361 |
|
16 |
0 |
3 |
7.580 |
|
24 |
30 |
8 |
11.488 |
|
32 |
54 |
10 |
13.031 |
|
40 |
203 |
24 |
17.469 |
|
48 |
368 |
30 |
17.738 |
|
56 |
463 |
34 |
18.470 |
|
64 |
569 |
40 |
18.917 |
|
72 |
888 |
61 |
20.134 |
|
80 |
1043 |
72 |
20.513 |
|
88 |
1397 |
84 |
21.717 |
|
96 |
1534 |
88 |
22.041 |
|
104 |
2112 |
124 |
21.672 |
|
112 |
2202 |
131 |
22.035 |
|
120 |
2813 |
180 |
22.520 |
|
128 |
2978 |
160 |
22.833 |
VHDL-описание нерекурсивного устройства сокращения по модулю операнда удвоенной разрядности
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.NUMERIC_STD.ALL;
entity mod_reduction_2_operand is
generic(i: natural:= 15;
j: natural:= 7;
modul: unsigned := "10000011");
Port (a11 : in unsigned (i downto 0);
b11 : out unsigned (j downto 0));
end mod_reduction_2_operand;
architecture Behavioral of mod_reduction_2_operand is
begin
b11 <= a11 mod modul;
end Behavioral.
Таблица 8 - Ресурсы ПЛИС нерекурсивного устройства сокращения по модулю операнда удвоенной разрядности на примере микросхемы xc7v2000t-2flg1925 семейства Virtex 7
Разрядность модуля, бит |
Модуль сумматора |
Количество LUT, шт. |
Время на операцию, нс |
|
8 |
131 |
175 |
19.418 |
|
16 |
32771 |
919 |
38.103 |
|
24 |
8388617 |
2105 |
55.206 |
|
32 |
2147483659 |
3728 |
73.314 |
|
40 |
549755813911 |
5811 |
93.046 |
|
48 |
140737488355333 |
8358 |
112.125 |
|
56 |
36028797018963971 |
11365 |
127.736 |
|
64 |
9223372036854775837 |
14833 |
158.372 |
|
72 |
2361183241434822606859 |
18760 |
175.949 |
|
80 |
604462909807314587353111 |
23149 |
199.484 |
|
88 |
154742504910672534362390567 |
27998 |
224.970 |
|
96 |
39614081257132168796771975177 |
33309 |
251.909 |
|
104 |
10141204801825835211973625643089 |
39081 |
282.487 |
В таблице 8 представлены ресурсы ПЛИС нерекурсивного устройства сокращения по модулю операнда удвоенной разрядности на примере микросхемы xc7v2000t-2flg1925 семейства Virtex 7.
VHDL-описание нерекурсивного устройства сокращения по модулю операнда утроенной разрядности:
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.NUMERIC_STD.ALL;
entity mod_reduction_3_operand is
generic(i: natural:= 7;
j: natural := 23;
modul: unsigned := "10000011");
Port (a11 : in unsigned (j downto 0);
b11 : out unsigned (i downto 0));
end mod_reduction_3_operand;
architecture Behavioral of mod_reduction_3_operand is
begin
b11 <= a11 mod modul;
end Behavioral;
В таблице 9 представлены ресурсы ПЛИС нерекурсивного устройства сокращения по модулю операнда утроенной разрядности на примере микросхемы xc7v2000t-2flg1925 семейства Virtex 7.
Таблица 9 - Ресурсы ПЛИС нерекурсивного устройства сокращения по модулю операнда утроенной разрядности на примере микросхемы xc7v2000t-2flg1925 семейства Virtex 7
Разрядность модуля, бит |
Модуль сумматора |
Количество LUT, шт. |
Время на операцию, нс |
|
8 |
131 |
526 |
36.820 |
|
16 |
32771 |
2443 |
74.786 |
|
24 |
8388617 |
5537 |
110.328 |
|
32 |
2147483659 |
9838 |
147.883 |
|
40 |
549755813911 |
15373 |
187.493 |
|
48 |
140737488355333 |
22135 |
228.571 |
|
56 |
36028797018963971 |
30125 |
264.466 |
|
64 |
9223372036854775837 |
39345 |
331.658 |
VHDL-описание нейронной сети конечного кольца с динамическими связями:
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.NUMERIC_STD.ALL;
use IEEE.std_logic_unsigned.all;
entity NN2 is
generic (l: natural := 15;
j: natural := 9;
k: natural := 7;
p: natural := 63);
Port (a_in : in std_logic_vector (l downto 0);
b_out : out std_logic_vector (j downto 0);
m_in: in std_logic_vector (p downto 0));
end NN2;
architecture Behavioral of NN2 is
type mass_i is array (natural range <>) of std_logic_vector (k downto 0);
type mass_j is array (natural range <>) of std_logic_vector (j downto 0);
signal m_sig, c_sig: mass_i(0 to k);
signal a_sig: std_logic_vector (k downto 0);
signal c_long: mass_j (0 to k);
signal b_long: std_logic_vector (j downto 0);
signal a_long: std_logic_vector (j downto 0);
signal b_long_uns: unsigned (j downto 0);
signal b_out_uns: unsigned (k downto 0);
component mux
Port ( mux_in : in std_logic_vector (k downto 0);
inf : in std_logic;
mux_out : out std_logic_vector (k downto 0));
end component;
begin
a_sig <= a_in(l downto k+1);
a_long <= "00"&a_in(k downto 0);
m_sig(0) <= m_in(63 downto 56);
m_sig(1) <= m_in(55 downto 48);
m_sig(2) <= m_in(47 downto 40);
m_sig(3) <= m_in(39 downto 32);
m_sig(4) <= m_in(31 downto 24);
m_sig(5) <= m_in(23 downto 16);
m_sig(6) <= m_in(15 downto 8);
m_sig(7) <= m_in(7 downto 0);
gen_m2:
for i in 0 to k generate
m2: mux port map (mux_in => m_sig(i) , inf => a_sig(i) , mux_out => c_sig(i));
end generate gen_m2;
gen_m3:
for i in 0 to k generate
m3: c_long(i) <= "00"&c_sig(i);
end generate gen_m3;
process(c_long)
variable b_long_v: std_logic_vector (j downto 0):= (others => '0');
begin
for i in 0 to k loop
b_long_v := b_long_v + c_long(i);
end loop;
b_long <= b_long_v + a_long;
end process;
b_out <= b_long;
end Behavioral;
VHDL-описание мультиплексора:
ibrary IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.NUMERIC_STD.ALL;
entity mux is
generic (i: natural:= 7);
Port (mux_in : in std_logic_vector (i downto 0);
inf : in std_logic;
mux_out : out std_logic_vector (i downto 0));
end mux;
architecture Behavioral of mux is
begin
process(mux_in, inf)
begin
case inf is
when '1' => mux_out <= mux_in;
when others => mux_out <= (others => '0');
end case;
end process;
end Behavioral.
В таблице 10 представлены ресурсы ПЛИС нейронной сети конечного кольца для сокращения по модулю операнда удвоенной разрядности на примере микросхемы xc7v2000t-2flg1925 семейства Virtex 7.
программируемый интегральный эллиптический криптография
Таблица 10 - Ресурсы ПЛИС нейронной сети конечного кольца для сокращения по модулю операнда удвоенной разрядности на примере микросхемы xc7v2000t-2flg1925 семейства Virtex 7
Разрядность модуля, бит |
Модуль сумматора |
Количество LUT, шт. |
Время на операцию, нс |
|
8 |
131 |
134 |
22.172 |
|
16 |
32771 |
493 |
42.648 |
|
24 |
8388617 |
1174 |
65.266 |
|
32 |
2147483659 |
1884 |
98.957 |
|
40 |
549755813911 |
3272 |
122.433 |
|
48 |
140737488355333 |
4656 |
129.499 |
|
56 |
36028797018963971 |
5894 |
151.618 |
|
64 |
9223372036854775837 |
7289 |
61.669 |
|
72 |
2361183241434822606859 |
9224 |
69.276 |
|
80 |
604462909807314587353111 |
11366 |
75.980 |
|
88 |
154742504910672534362390567 |
13736 |
83.105 |
|
96 |
39614081257132168796771975177 |
16326 |
89.777 |
|
104 |
10141204801825835211973625643089 |
19144 |
96.454 |
Перевод чисел из остаточного представления в двоичную систему счисления для иерархической СОК выполняется на сумматорах
· с двумя операндами разрядностью 64 и 96 бит,
· с тремя операндами разрядностью 64, 97 и 144 бит,
· с четырьмя операндами разрядностью 64, 97, 145 и 216 бит,
· с пятью операндами разрядностью 64, 97, 145, 217 и 324 бит,
· с шестью операндами разрядностью 64, 97, 145, 217, 325 и 486 бит,
· с семью операндами разрядностью 64, 97, 145, 217, 325, 487 и 728 бит.
В процессе перевода чисел из СОК в ПСС для иерархической системы, представленной можно выделить шесть типов преобразования:
· для двух оснований выполняется 16 раза;
· для трех оснований выполняется 8 раза;
· для четырех оснований выполняется 4 раз;
· для пяти оснований выполняется 2 раз;
· для шести оснований выполняется 1 раз;
· для шести оснований выполняется 1 раз.
VHDL-описание двухместного сумматора для СОК :
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use ieee.numeric_std.all;
entity simple_adder is
Port ( a1 : in unsigned (63 downto 0);
a2 : in unsigned (95 downto 0);
sum : out unsigned (95 downto 0));
end simple_adder;
architecture Behavioral of simple_adder is
begin
sum <= a1 + a2;
end Behavioral.
VHDL-описание трехместного сумматора для СОК :
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use ieee.numeric_std.all;
entity simple_adder is
Port ( a1 : in unsigned (63 downto 0);
a2 : in unsigned (95 downto 0);
a3 : in unsigned (143 downto 0);
sum : out unsigned (143 downto 0));
end simple_adder;
architecture Behavioral of simple_adder is
begin
sum <= a1 + a2 + a3;
end Behavioral;
VHDL-описание четырехместного сумматора для СОК :
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use ieee.numeric_std.all;
entity simple_adder is
Port ( a1 : in unsigned (63 downto 0);
a2 : in unsigned (95 downto 0);
a3 : in unsigned (143 downto 0);
a4 : in unsigned (215 downto 0);
sum : out unsigned (215 downto 0));
end simple_adder;
architecture Behavioral of simple_adder is
begin
sum <= a1 + a2 + a3 + a4;
end Behavioral.
VHDL-описание пятиместного сумматора для СОК :
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use ieee.numeric_std.all;
entity simple_adder is
Port ( a1 : in unsigned (63 downto 0);
a2 : in unsigned (95 downto 0);
a3 : in unsigned (143 downto 0);
a4 : in unsigned (215 downto 0);
a5 : in unsigned (323 downto 0);
sum : out unsigned (323 downto 0));
end simple_adder;
architecture Behavioral of simple_adder is
begin
sum <= a1 + a2 + a3 + a4 + a5;
end Behavioral;
VHDL-описание шестиместного сумматора для СОК:
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use ieee.numeric_std.all;
entity simple_adder is
Port ( a1 : in unsigned (63 downto 0);
a2 : in unsigned (95 downto 0);
a3 : in unsigned (143 downto 0);
a4 : in unsigned (215 downto 0);
a5 : in unsigned (323 downto 0);
a6 : in unsigned (485 downto 0);
sum : out unsigned (485 downto 0));
end simple_adder;
architecture Behavioral of simple_adder is
begin
sum <= a1 + a2 + a3 + a4 + a5 + a6;
end Behavioral;
VHDL-описание семиместного сумматора для СОК :
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use ieee.numeric_std.all;
entity simple_adder is
Port ( a1 : in unsigned (63 downto 0);
a2 : in unsigned (95 downto 0);
a3 : in unsigned (143 downto 0);
a4 : in unsigned (215 downto 0);
a5 : in unsigned (323 downto 0);
a6 : in unsigned (485 downto 0);
a7 : in unsigned (728 downto 0);
sum : out unsigned (728 downto 0));
end simple_adder;
architecture Behavioral of simple_adder is
begin
sum <= a1 + a2 + a3 + a4 + a5 + a6 + a7;
end Behavioral.
VHDL описания разработанной электронной библиотеки могут быть использованы при проектировании криптографического нейропроцессора на базе ПЛИС типа FPGA.
Области применения программной разработки: цифровая обработка сигналов, криптография, генерация и анализ псевдослучайных последовательностей, системы динамического распределения нагрузки передачи данных между компьютерами в сети.
2. Используемые технические средства
Для использования разработанного VHDL описания НСКК требуются компьютер с минимальной конфигурацией Pentium III, операционная система Windows XP, пакет программ Xilinx ISE v.5.2. Оперативной памяти на персональной ЭВМ должно быть не менее 128 Мбайт. Распространяется на дискетах.
Размещено на Allbest.ru
Подобные документы
Проектирование арифметико-логических устройств (АЛУ). Отладка описания логических схем на языке VHDL. Классификация АЛУ по способу представления чисел, характеру использования элементов и узлов. Список стандартных функций АЛУ, его описание на языке VHDL.
лабораторная работа [633,4 K], добавлен 11.03.2014Идентификаторы, объекты и операции языка VHDL. Последовательные и параллельные операторы. Описание интерфейса устройства. Синтез схем по описаниям на языке VHDL. Последовательность букв и цифр произвольной длины. Цифровое устройство и его модель.
курсовая работа [132,5 K], добавлен 28.06.2009Мова VHDL. Створення проекту для моделювання цифрових і аналогових схем. Синтез і моделювання комбінаційних пристроїв, заданих в табличній формі, за допомогою системи Active-HDL 6.1. Створення ієрархічних структур при проектуванні складних пристроїв.
реферат [287,3 K], добавлен 14.02.2009Арифметические операции над числами, представленными в позиционных системах счисления. Методы перевода чисел из системы остаточных классов в позиционную систему счисления. Программная реализация и анализ метода Ферма в системе компьютерной алгебры Maple.
дипломная работа [1,7 M], добавлен 05.06.2014Определение принципов работы с САПР Xilinx WebPACK. Особенности проектирования простейших комбинационных схем на базе ПЛИС. Описание устройства на языке VHDL, набор тестовых воздействий и временные диаграммы его работы. Размещение устройства на кристалле.
лабораторная работа [318,7 K], добавлен 28.05.2012История криптографии, шифры, их виды и свойства. Симметричные и асимметричные криптографические системы. Ключ как конкретное секретное состояние некоторых параметров алгоритма криптографического преобразования данных. Электронная цифровая подпись.
контрольная работа [39,6 K], добавлен 25.06.2010Выделение сущностей для создания структуры хранения данных. Выбор технологии ввода данных таксационных описаний. Разработка программного обеспечения для ввода данных таксационных описаний и его реализация. Безопасность геоинформационной системы.
дипломная работа [2,1 M], добавлен 20.07.2012Проектирование цифровых устройств на ПЛИС фирмы Xilinx с применением языка VHDL, использование систем Leonardo Spectrum, Foundation Express и Integrated Synthesis Environment (ISE). Синтез и реализация проекта, разработка регистровой схемы и умножителя.
курсовая работа [2,3 M], добавлен 28.06.2009Загальні відомості про мову VHDL, яка використовуються для проектування цифрових електронних систем та створення програмного продукту, її елементи. Способи структуризації програми, принципи об’єктно-орієнтованого програмування, засоби налагоджування.
курсовая работа [34,9 K], добавлен 09.06.2010Изучение принципа работы цифрового автомата для сложения двоичных чисел, представленных в форме с фиксированной запятой, на базисе алгебры Буля. Правила построения операционных и функциональных схем отдельных устройств, логических систем и функций.
курсовая работа [1,2 M], добавлен 24.01.2014