Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

VHDL lection

.pdf
Скачиваний:
40
Добавлен:
10.02.2015
Размер:
215.84 Кб
Скачать

Одноразрядный сумматор

Сin SUM

S

A

Сout

B

S = Cin ×(A × B + A × B)+ Cin ×(A Å B)

Cout = A × B + Cin ×( A + B)

Одноразрядный сумматор

library IEEE;

use IEEE.STD_LOGIC_1164.all;

entity sum is port(

Cin : in STD_LOGIC;

A : in STD_LOGIC;

B : in STD_LOGIC; S : out STD_LOGIC;

Cout : out STD_LOGIC

);

end sum;

Одноразрядный сумматор

architecture sum of sum is begin

S <= (Cin and ((A and B) or ((not A)and (not B)))) or ((not Cin) and (A xor B));

Cout <= (A and B) or (Cin and (A or B));

end sum;

Одноразрядный сумматор

CIN

 

 

1

 

S1

 

 

 

 

&

 

S9

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

A

1

 

 

S2

 

 

&

S5

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

S

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

S3

 

 

 

 

 

2

S8

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

B

1

 

 

 

 

&

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

S6

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

S7

 

 

 

&

 

S10

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

M2

 

 

 

4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

COUT

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

S11

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

&

 

4

 

 

 

 

 

 

 

 

 

 

 

 

 

S4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

1

 

 

 

5

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

N-разрядный сумматор

 

 

 

 

 

 

 

 

 

Сin

SUM

S

 

S(i)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

A(i)

 

A

 

Сout

 

 

 

 

 

 

B(i)

 

B

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Сin

SUM

S

 

S(i+1)

 

 

 

A(i+1)

 

A

 

 

 

 

 

 

 

Сout

 

 

 

 

 

 

B(i+1)

 

B

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

N-разрядный сумматор

library IEEE;

use IEEE.STD_LOGIC_1164.all;

entity sum_n is generic(

N : integer := 8

);

port(

Cin : in STD_LOGIC;

A : in STD_LOGIC_VECTOR(N-1 downto 0); B : in STD_LOGIC_VECTOR(N-1 downto 0); Cout : out STD_LOGIC;

S : out STD_LOGIC_VECTOR(N-1 downto 0)

); end sum_n;

N-разрядный сумматор

architecture sum_n of sum_n is component sum is

port(

Cin : in STD_LOGIC;

A : in STD_LOGIC;

B : in STD_LOGIC; S : out STD_LOGIC;

Cout : out STD_LOGIC

);

end component sum;

signal C_in : STD_LOGIC_VECTOR(0 to N); signal C_out : STD_LOGIC_VECTOR(0 to N-1); begin

C_in(0) <= Cin;

sums: for i in 0 to N-1 generate

sum: sum port map (C_in(i), A(i), B(i), S(i), C_out(i)); C_in(i+1) <= C_out (i);

end generate;

Cout <= C_out(N-1); end sum_n;

Запоминающее устройствоство

n

А

MEM

 

 

k

 

 

 

DI

 

 

k

 

 

DO

 

 

 

 

RW

 

 

 

 

 

 

 

 

 

 

 

CS

 

 

 

 

 

 

 

 

 

 

 

 

Запоминающее устройствоство

CS

RW

A

DI

DO

 

 

 

 

 

1

X

X

X

Z

 

 

 

 

 

0

0

A

Data

Z

 

 

 

 

 

0

1

A

X

Data

 

 

 

 

 

Хранениенение

Записьись

Чтениение

Запоминающее устройствоство

library ieee;

use ieee.std_kogic_1164.all;

entity RAM is

generic (N, K : integer;

 

t_cs, tsu_a_cs, tsu_rw_cs, tsu_di_cs : time);

port

(A : in std_logic_vector (0 to N-1);

 

DI : in std_logic_vector (0 to K-1);

 

DO : in std_logic_vector (0 to K-1);

 

CS, RW : in std_logic);

end entity;

 

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]