Zadanie 1.
Napisać Program w języku VHDL który będzie odwzorowywał zasadę działania Sumatora:
Rysunek 1 Schemat budowy sumatora
ai | bi | ci-1 | si | ci |
---|---|---|---|---|
0 | 0 | 0 | 0 | 0 |
0 | 1 | 0 | 1 | 0 |
1 | 0 | 0 | 1 | 0 |
1 | 1 | 0 | 0 | 1 |
0 | 0 | 1 | 1 | 0 |
0 | 1 | 1 | 0 | 1 |
1 | 0 | 1 | 0 | 1 |
1 | 1 | 1 | 1 | 1 |
Przedstawiona powyżej Tabela przedstawia zasadę działania sumatora.
gdzie:
ai – pierwszy składnik sumy
bi – drugi składnik sumy
ci−1 – przeniesienie z poprzedniej pozycji
si – suma
ci – przeniesienie
Wyrażenia boolowskie opisujące sumę i przeniesienie:
Program Sumatora napisany w języki VHDL:
Library idee;
use idee.std_logic_1164.all;
entity sum1 is
port(a,b,ci: in std_logic;
s, co : out std_logic);
end sum1;
architecture arch1 of sum1 is
signal T : std_logic;
begin
T<= a xor b;
S<= ci xor T;
Co <= (a and b) or (ci and T);
End arch1;
Zadanie 2.
Napisać w języku VHDL zadane wyrażenie logiczne:
Y=$\sum_{}^{}{\lbrack 1,3,4,5,7,12\rbrack}$
cda,b |
0 0 |
0 1 |
1 1 |
1 0 |
---|---|---|---|---|
0 0 |
- [0] |
1 [1] |
1 [3] |
0 [2] |
0 1 |
1[4] |
1[5] |
1[7] |
0[6] |
1 1 |
1[12] |
0 [13] |
0 [15] |
-[14] |
1 0 |
0[ 8] |
0[9] |
0 [11] |
0 [10] |
$$y = b\overset{\overline{}}{c}\overset{\overline{}}{d} + \overset{\overline{}}{\text{a\ }}d$$
Program w języku VHDL:
Library idee;
use idee.std_logic_1164.all;
entity sum2 is
port(a,b,c,d: in std_logic;
y : out std_logic);
end sum2;
architecture arch1 of sum2 is
begin
y <= (b and (not c)and (not d)) or ((not a)and d);
End arch1;
Rysunek 2 Bloki zadanego programu w AHDL
Wnioski :
Język VHDL spełnia podobną funkcję w dziedzinie projektowania sprzętu, język VHDL można reprezentować układy cyfrowe na poziomach: od bramkowego do systemowego. Oznacza to, że najmniejszym elementem naszego projektu jest bramka logiczna.