Электронная библиотека описаний модулей криптографического нейропроцессора 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

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.