Ćwiczenie 03 Sprawko (Inne)

background image














Sprawozdanie z ćwiczenia numer 3

Data wykonania ćwiczenia: 2006-12-04

Temat ćwiczenia:

Projektowanie systemów cyfrowych w oparciu o układy programowalne


Laboratorium Mikroinformatyki

Rok akademicki

Termin

Rodzaj studiów

Kierunek

Prowadzący

Grupa

Sekcja

poniedziałek

2006/2007

14:45 – 17:00

Dzienne

INF

BSz

4

2

Skład sekcji:

Marcin Dybich
Piotr Górski
Kamil Lebek
Michał Liszka
Michał Kornalewski
Michał Niwiński
Dawid Pulnar
Maciej Smyczek
Marcin Strzelczyk
Dawid Wiącek
Witold Zajfert

background image

Zadanie 1:


Należało napisać program w języku ABEL sumujący dwie liczby 3-bitowe z

uwzględnieniem wyjścia przeniesienia.


module bb

CARRY macro (X,Y,Z) { ((?X # ?Y) & ?Z) # (?X & ?Y) }; " deklaracje makrodefinicji
SUMA macro (X,Y,Z) { ?X $ ?Y $ ?Z }; " odpowiedzialnych za przeniesienie i za sume
cout0,cout1,cout2,c0,c1,c2 pin istype 'com'; "wyjscia
a0,a1,a2,b0,b1,b2,cin pin; "wejscia
A = [a2,a1,a0];
B = [b2,b1,b0];
equations
c0 = SUMA(a0,b0,cin); "obliczenie wartosci kolejnych wyjsc
cout0 = CARRY(a0,b0,cin);
c1 = SUMA(a1,b1,cout0);
cout1 = CARRY(a1,b1,cout0);
c2 = SUMA(a2,b2,cout1);
cout2 = CARRY(a2,b2,cout1);
" segment symulacji
test_vectors( [A, B,cin] -> [cout2,c2,c1,c0])
[7,7,1]->15;

@const aa = 0;
@repeat 8{
@const bb = 0;
@repeat 8{
@const cc = 0;
@repeat 2{

[aa,bb,cc]->aa+bb+cc;


@const cc=cc+1;
}
@const bb=bb+1;
}
@const aa=aa+1;
}

end

Program nasz polega na dodawaniu kolejnych bitów liczb podawanych z

wejsc: a0,a1,a2,b0,b1,b2. Wejście cin odpowiada za przeniesienie, które może
nastąpić z poprzedniego sumowania – w przypadku połączenia kilku urządzeń
sumujących. Wyjścia cout0,cout1,cout2 oznaczają kolejne przeniesienia jakie
następują w wyniku sumowania bitów, przy czym wyjście cout2 to przeniesienie,
które otrzymujemy po zsumowaniu całych liczb i jest wyjściem, o którym mowa w
poleceniu.






background image

Testowanie :

Simulate EZ-ABEL 4.30 Date: Mon Dec 4 16:54:36 19:6
Fuse file: 'bb.tt1' Vector file: 'bb.tmv' Part: 'PLA'



c
o
c u
a a a b b b i t c c c
2 1 0 2 1 0 n 2 2 1 0

V0001 1 1 1 1 1 1 1 H H H H
V0002 0 0 0 0 0 0 0 L L L L
V0003 0 0 0 0 0 0 1 L L L H
V0004 0 0 0 0 0 1 0 L L L H
V0005 0 0 0 0 0 1 1 L L H L
V0006 0 0 0 0 1 0 0 L L H L
V0007 0 0 0 0 1 0 1 L L H H
V0008 0 0 0 0 1 1 0 L L H H
V0009 0 0 0 0 1 1 1 L H L L
V0010 0 0 0 1 0 0 0 L H L L
V0011 0 0 0 1 0 0 1 L H L H
V0012 0 0 0 1 0 1 0 L H L H
V0013 0 0 0 1 0 1 1 L H H L
V0014 0 0 0 1 1 0 0 L H H L
V0015 0 0 0 1 1 0 1 L H H H
V0016 0 0 0 1 1 1 0 L H H H
V0017 0 0 0 1 1 1 1 H L L L
V0018 0 0 1 0 0 0 0 L L L H
V0019 0 0 1 0 0 0 1 L L H L
V0020 0 0 1 0 0 1 0 L L H L
V0021 0 0 1 0 0 1 1 L L H H
V0022 0 0 1 0 1 0 0 L L H H
V0023 0 0 1 0 1 0 1 L H L L
V0024 0 0 1 0 1 1 0 L H L L
V0025 0 0 1 0 1 1 1 L H L H
V0026 0 0 1 1 0 0 0 L H L H
V0027 0 0 1 1 0 0 1 L H H L
V0028 0 0 1 1 0 1 0 L H H L
V0029 0 0 1 1 0 1 1 L H H H
V0030 0 0 1 1 1 0 0 L H H H
V0031 0 0 1 1 1 0 1 H L L L
V0032 0 0 1 1 1 1 0 H L L L
V0033 0 0 1 1 1 1 1 H L L H
V0034 0 1 0 0 0 0 0 L L H L
V0035 0 1 0 0 0 0 1 L L H H
V0036 0 1 0 0 0 1 0 L L H H
V0037 0 1 0 0 0 1 1 L H L L
V0038 0 1 0 0 1 0 0 L H L L
V0039 0 1 0 0 1 0 1 L H L H
V0040 0 1 0 0 1 1 0 L H L H
V0041 0 1 0 0 1 1 1 L H H L
V0042 0 1 0 1 0 0 0 L H H L
V0043 0 1 0 1 0 0 1 L H H H
V0044 0 1 0 1 0 1 0 L H H H
V0045 0 1 0 1 0 1 1 H L L L

background image

V0046 0 1 0 1 1 0 0 H L L L
V0047 0 1 0 1 1 0 1 H L L H
V0048 0 1 0 1 1 1 0 H L L H
V0049 0 1 0 1 1 1 1 H L H L
V0050 0 1 1 0 0 0 0 L L H H
V0051 0 1 1 0 0 0 1 L H L L
V0052 0 1 1 0 0 1 0 L H L L
V0053 0 1 1 0 0 1 1 L H L H
V0054 0 1 1 0 1 0 0 L H L H
V0055 0 1 1 0 1 0 1 L H H L
V0056 0 1 1 0 1 1 0 L H H L
V0057 0 1 1 0 1 1 1 L H H H
V0058 0 1 1 1 0 0 0 L H H H
V0059 0 1 1 1 0 0 1 H L L L
V0060 0 1 1 1 0 1 0 H L L L
V0061 0 1 1 1 0 1 1 H L L H
V0062 0 1 1 1 1 0 0 H L L H
V0063 0 1 1 1 1 0 1 H L H L
V0064 0 1 1 1 1 1 0 H L H L
V0065 0 1 1 1 1 1 1 H L H H
V0066 1 0 0 0 0 0 0 L H L L
V0067 1 0 0 0 0 0 1 L H L H
V0068 1 0 0 0 0 1 0 L H L H
V0069 1 0 0 0 0 1 1 L H H L
V0070 1 0 0 0 1 0 0 L H H L
V0071 1 0 0 0 1 0 1 L H H H
V0072 1 0 0 0 1 1 0 L H H H
V0073 1 0 0 0 1 1 1 H L L L
V0074 1 0 0 1 0 0 0 H L L L
V0075 1 0 0 1 0 0 1 H L L H
V0076 1 0 0 1 0 1 0 H L L H
V0077 1 0 0 1 0 1 1 H L H L
V0078 1 0 0 1 1 0 0 H L H L
V0079 1 0 0 1 1 0 1 H L H H
V0080 1 0 0 1 1 1 0 H L H H
V0081 1 0 0 1 1 1 1 H H L L
V0082 1 0 1 0 0 0 0 L H L H
V0083 1 0 1 0 0 0 1 L H H L
V0084 1 0 1 0 0 1 0 L H H L
V0085 1 0 1 0 0 1 1 L H H H
V0086 1 0 1 0 1 0 0 L H H H
V0087 1 0 1 0 1 0 1 H L L L
V0088 1 0 1 0 1 1 0 H L L L
V0089 1 0 1 0 1 1 1 H L L H
V0090 1 0 1 1 0 0 0 H L L H
V0091 1 0 1 1 0 0 1 H L H L
V0092 1 0 1 1 0 1 0 H L H L
V0093 1 0 1 1 0 1 1 H L H H
V0094 1 0 1 1 1 0 0 H L H H
V0095 1 0 1 1 1 0 1 H H L L
V0096 1 0 1 1 1 1 0 H H L L
V0097 1 0 1 1 1 1 1 H H L H
V0098 1 1 0 0 0 0 0 L H H L
V0099 1 1 0 0 0 0 1 L H H H
V0100 1 1 0 0 0 1 0 L H H H
V0101 1 1 0 0 0 1 1 H L L L
V0102 1 1 0 0 1 0 0 H L L L

background image

V0103 1 1 0 0 1 0 1 H L L H
V0104 1 1 0 0 1 1 0 H L L H
V0105 1 1 0 0 1 1 1 H L H L
V0106 1 1 0 1 0 0 0 H L H L
V0107 1 1 0 1 0 0 1 H L H H
V0108 1 1 0 1 0 1 0 H L H H
V0109 1 1 0 1 0 1 1 H H L L
V0110 1 1 0 1 1 0 0 H H L L
V0111 1 1 0 1 1 0 1 H H L H
V0112 1 1 0 1 1 1 0 H H L H
V0113 1 1 0 1 1 1 1 H H H L
V0114 1 1 1 0 0 0 0 L H H H
V0115 1 1 1 0 0 0 1 H L L L
V0116 1 1 1 0 0 1 0 H L L L
V0117 1 1 1 0 0 1 1 H L L H
V0118 1 1 1 0 1 0 0 H L L H
V0119 1 1 1 0 1 0 1 H L H L
V0120 1 1 1 0 1 1 0 H L H L
V0121 1 1 1 0 1 1 1 H L H H
V0122 1 1 1 1 0 0 0 H L H H
V0123 1 1 1 1 0 0 1 H H L L
V0124 1 1 1 1 0 1 0 H H L L
V0125 1 1 1 1 0 1 1 H H L H
V0126 1 1 1 1 1 0 0 H H L H
V0127 1 1 1 1 1 0 1 H H H L
V0128 1 1 1 1 1 1 0 H H H L
V0129 1 1 1 1 1 1 1 H H H H

129 out of 129 vectors passed.


Zadanie 2:


Napisać program w języku ABEL, opisujący 4 bitowy licznik dwukierunkowy.

Wejście „dir” określa kierunek liczenia, wejście „load” ładuje do licznika zadaną
wartość. Piny q0-q3 wyjscia licznika, piny w0-w3 wejscia ładujące

Module licz_2

q3, q2, q1, q0 pin istype ‘reg’; „piny wyjsciowe

w3, w2, w1, w0 pin; „piny sluzace do ladowania

dir pin; „kierunek zliczania

load pin; „gdy = 1 -> ladujemy liczbe z wej

clk pin; „wejscie taktujace

wyj = [q3,q2,q1,q0];

wej = [w3,w2,w1,w0];


equations

„zataktuj przerzutnik

wyj.clk = clk;

„jeśli load = 1 -> zaladuj liczbe z ‘wej’

when load then

wyj := wej

„jeśli brak ladowania zmodyfikuj wartosc licznika

else

„zwiekszenie o 1 (dla 15 ‘przekrecenie’ na 0)

background image

when dir then

wyj := wyj + 1

„analogicznie dekrementacja o 1

else

wyj := wyj – 1;



test_vectors( [clk,load,dir,wej] -> wyj )
[.c.,1,0,0] -> 0;
@const i = 1;
@repeat 100 {
[.c., 0, 1, .x.] -> i%16;
@const i=i+1;
}
@const i = 99;
@repeat 100 {
[.c., 0, 0, .x.] -> i%16;
@const i=i-1;
}
@const i = 0;
@repeat 16 {
[.c., 1, .x., i] -> i;
@const i=i+1;
}
end

Testowanie:

Simulate EZ-ABEL 4.30 Date: Mon Dec 4 15:51:59 19:6
Fuse file: ‘licz_2.tt1’ Vector file: ‘licz_2.tmv’ Part: ‘PLA’


l
c o d
l a i w w w w q q q q
k d r 3 2 1 0 3 2 1 0

V0001 C 1 0 0 0 0 0 L L L L
V0002 C 0 1 0 0 0 0 L L L H
V0003 C 0 1 0 0 0 0 L L H L
V0004 C 0 1 0 0 0 0 L L H H
V0005 C 0 1 0 0 0 0 L H L L
V0006 C 0 1 0 0 0 0 L H L H
V0007 C 0 1 0 0 0 0 L H H L
V0008 C 0 1 0 0 0 0 L H H H
V0009 C 0 1 0 0 0 0 H L L L
V0010 C 0 1 0 0 0 0 H L L H
V0011 C 0 1 0 0 0 0 H L H L
V0012 C 0 1 0 0 0 0 H L H H
V0013 C 0 1 0 0 0 0 H H L L
V0014 C 0 1 0 0 0 0 H H L H
V0015 C 0 1 0 0 0 0 H H H L
V0016 C 0 1 0 0 0 0 H H H H
V0017 C 0 1 0 0 0 0 L L L L
V0018 C 0 1 0 0 0 0 L L L H
V0019 C 0 1 0 0 0 0 L L H L
V0020 C 0 1 0 0 0 0 L L H H

background image

V0021 C 0 1 0 0 0 0 L H L L
V0022 C 0 1 0 0 0 0 L H L H
V0023 C 0 1 0 0 0 0 L H H L
V0024 C 0 1 0 0 0 0 L H H H
V0025 C 0 1 0 0 0 0 H L L L
V0026 C 0 1 0 0 0 0 H L L H
V0027 C 0 1 0 0 0 0 H L H L
V0028 C 0 1 0 0 0 0 H L H H
V0029 C 0 1 0 0 0 0 H H L L
V0030 C 0 1 0 0 0 0 H H L H
V0031 C 0 1 0 0 0 0 H H H L
V0032 C 0 1 0 0 0 0 H H H H
V0033 C 0 1 0 0 0 0 L L L L
V0034 C 0 1 0 0 0 0 L L L H
V0035 C 0 1 0 0 0 0 L L H L
V0036 C 0 1 0 0 0 0 L L H H
V0037 C 0 1 0 0 0 0 L H L L
V0038 C 0 1 0 0 0 0 L H L H
V0039 C 0 1 0 0 0 0 L H H L
V0040 C 0 1 0 0 0 0 L H H H
V0041 C 0 1 0 0 0 0 H L L L
V0042 C 0 1 0 0 0 0 H L L H
V0043 C 0 1 0 0 0 0 H L H L
V0044 C 0 1 0 0 0 0 H L H H
V0045 C 0 1 0 0 0 0 H H L L
V0046 C 0 1 0 0 0 0 H H L H
V0047 C 0 1 0 0 0 0 H H H L
V0048 C 0 1 0 0 0 0 H H H H
V0049 C 0 1 0 0 0 0 L L L L
V0050 C 0 1 0 0 0 0 L L L H
V0051 C 0 1 0 0 0 0 L L H L
V0052 C 0 1 0 0 0 0 L L H H
V0053 C 0 1 0 0 0 0 L H L L
V0054 C 0 1 0 0 0 0 L H L H
V0055 C 0 1 0 0 0 0 L H H L
V0056 C 0 1 0 0 0 0 L H H H
V0057 C 0 1 0 0 0 0 H L L L
V0058 C 0 1 0 0 0 0 H L L H
V0059 C 0 1 0 0 0 0 H L H L
V0060 C 0 1 0 0 0 0 H L H H
V0061 C 0 1 0 0 0 0 H H L L
V0062 C 0 1 0 0 0 0 H H L H
V0063 C 0 1 0 0 0 0 H H H L
V0064 C 0 1 0 0 0 0 H H H H
V0065 C 0 1 0 0 0 0 L L L L
V0066 C 0 1 0 0 0 0 L L L H
V0067 C 0 1 0 0 0 0 L L H L
V0068 C 0 1 0 0 0 0 L L H H
V0069 C 0 1 0 0 0 0 L H L L
V0070 C 0 1 0 0 0 0 L H L H
V0071 C 0 1 0 0 0 0 L H H L
V0072 C 0 1 0 0 0 0 L H H H
V0073 C 0 1 0 0 0 0 H L L L
V0074 C 0 1 0 0 0 0 H L L H
V0075 C 0 1 0 0 0 0 H L H L
V0076 C 0 1 0 0 0 0 H L H H
V0077 C 0 1 0 0 0 0 H H L L

background image

V0078 C 0 1 0 0 0 0 H H L H
V0079 C 0 1 0 0 0 0 H H H L
V0080 C 0 1 0 0 0 0 H H H H
V0081 C 0 1 0 0 0 0 L L L L
V0082 C 0 1 0 0 0 0 L L L H
V0083 C 0 1 0 0 0 0 L L H L
V0084 C 0 1 0 0 0 0 L L H H
V0085 C 0 1 0 0 0 0 L H L L
V0086 C 0 1 0 0 0 0 L H L H
V0087 C 0 1 0 0 0 0 L H H L
V0088 C 0 1 0 0 0 0 L H H H
V0089 C 0 1 0 0 0 0 H L L L
V0090 C 0 1 0 0 0 0 H L L H
V0091 C 0 1 0 0 0 0 H L H L
V0092 C 0 1 0 0 0 0 H L H H
V0093 C 0 1 0 0 0 0 H H L L
V0094 C 0 1 0 0 0 0 H H L H
V0095 C 0 1 0 0 0 0 H H H L
V0096 C 0 1 0 0 0 0 H H H H
V0097 C 0 1 0 0 0 0 L L L L
V0098 C 0 1 0 0 0 0 L L L H
V0099 C 0 1 0 0 0 0 L L H L
V0100 C 0 1 0 0 0 0 L L H H
V0101 C 0 1 0 0 0 0 L H L L
V0102 C 0 0 0 0 0 0 L L H H
V0103 C 0 0 0 0 0 0 L L H L
V0104 C 0 0 0 0 0 0 L L L H
V0105 C 0 0 0 0 0 0 L L L L
V0106 C 0 0 0 0 0 0 H H H H
V0107 C 0 0 0 0 0 0 H H H L
V0108 C 0 0 0 0 0 0 H H L H
V0109 C 0 0 0 0 0 0 H H L L
V0110 C 0 0 0 0 0 0 H L H H
V0111 C 0 0 0 0 0 0 H L H L
V0112 C 0 0 0 0 0 0 H L L H
V0113 C 0 0 0 0 0 0 H L L L
V0114 C 0 0 0 0 0 0 L H H H
V0115 C 0 0 0 0 0 0 L H H L
V0116 C 0 0 0 0 0 0 L H L H
V0117 C 0 0 0 0 0 0 L H L L
V0118 C 0 0 0 0 0 0 L L H H
V0119 C 0 0 0 0 0 0 L L H L
V0120 C 0 0 0 0 0 0 L L L H
V0121 C 0 0 0 0 0 0 L L L L
V0122 C 0 0 0 0 0 0 H H H H
V0123 C 0 0 0 0 0 0 H H H L
V0124 C 0 0 0 0 0 0 H H L H
V0125 C 0 0 0 0 0 0 H H L L
V0126 C 0 0 0 0 0 0 H L H H
V0127 C 0 0 0 0 0 0 H L H L
V0128 C 0 0 0 0 0 0 H L L H
V0129 C 0 0 0 0 0 0 H L L L
V0130 C 0 0 0 0 0 0 L H H H
V0131 C 0 0 0 0 0 0 L H H L
V0132 C 0 0 0 0 0 0 L H L H
V0133 C 0 0 0 0 0 0 L H L L
V0134 C 0 0 0 0 0 0 L L H H

background image

V0135 C 0 0 0 0 0 0 L L H L
V0136 C 0 0 0 0 0 0 L L L H
V0137 C 0 0 0 0 0 0 L L L L
V0138 C 0 0 0 0 0 0 H H H H
V0139 C 0 0 0 0 0 0 H H H L
V0140 C 0 0 0 0 0 0 H H L H
V0141 C 0 0 0 0 0 0 H H L L
V0142 C 0 0 0 0 0 0 H L H H
V0143 C 0 0 0 0 0 0 H L H L
V0144 C 0 0 0 0 0 0 H L L H
V0145 C 0 0 0 0 0 0 H L L L
V0146 C 0 0 0 0 0 0 L H H H
V0147 C 0 0 0 0 0 0 L H H L
V0148 C 0 0 0 0 0 0 L H L H
V0149 C 0 0 0 0 0 0 L H L L
V0150 C 0 0 0 0 0 0 L L H H
V0151 C 0 0 0 0 0 0 L L H L
V0152 C 0 0 0 0 0 0 L L L H
V0153 C 0 0 0 0 0 0 L L L L
V0154 C 0 0 0 0 0 0 H H H H
V0155 C 0 0 0 0 0 0 H H H L
V0156 C 0 0 0 0 0 0 H H L H
V0157 C 0 0 0 0 0 0 H H L L
V0158 C 0 0 0 0 0 0 H L H H
V0159 C 0 0 0 0 0 0 H L H L
V0160 C 0 0 0 0 0 0 H L L H
V0161 C 0 0 0 0 0 0 H L L L
V0162 C 0 0 0 0 0 0 L H H H
V0163 C 0 0 0 0 0 0 L H H L
V0164 C 0 0 0 0 0 0 L H L H
V0165 C 0 0 0 0 0 0 L H L L
V0166 C 0 0 0 0 0 0 L L H H
V0167 C 0 0 0 0 0 0 L L H L
V0168 C 0 0 0 0 0 0 L L L H
V0169 C 0 0 0 0 0 0 L L L L
V0170 C 0 0 0 0 0 0 H H H H
V0171 C 0 0 0 0 0 0 H H H L
V0172 C 0 0 0 0 0 0 H H L H
V0173 C 0 0 0 0 0 0 H H L L
V0174 C 0 0 0 0 0 0 H L H H
V0175 C 0 0 0 0 0 0 H L H L
V0176 C 0 0 0 0 0 0 H L L H
V0177 C 0 0 0 0 0 0 H L L L
V0178 C 0 0 0 0 0 0 L H H H
V0179 C 0 0 0 0 0 0 L H H L
V0180 C 0 0 0 0 0 0 L H L H
V0181 C 0 0 0 0 0 0 L H L L
V0182 C 0 0 0 0 0 0 L L H H
V0183 C 0 0 0 0 0 0 L L H L
V0184 C 0 0 0 0 0 0 L L L H
V0185 C 0 0 0 0 0 0 L L L L
V0186 C 0 0 0 0 0 0 H H H H
V0187 C 0 0 0 0 0 0 H H H L
V0188 C 0 0 0 0 0 0 H H L H
V0189 C 0 0 0 0 0 0 H H L L
V0190 C 0 0 0 0 0 0 H L H H
V0191 C 0 0 0 0 0 0 H L H L

background image

V0192 C 0 0 0 0 0 0 H L L H
V0193 C 0 0 0 0 0 0 H L L L
V0194 C 0 0 0 0 0 0 L H H H
V0195 C 0 0 0 0 0 0 L H H L
V0196 C 0 0 0 0 0 0 L H L H
V0197 C 0 0 0 0 0 0 L H L L
V0198 C 0 0 0 0 0 0 L L H H
V0199 C 0 0 0 0 0 0 L L H L
V0200 C 0 0 0 0 0 0 L L L H
V0201 C 0 0 0 0 0 0 L L L L
V0202 C 1 0 0 0 0 0 L L L L
V0203 C 1 0 0 0 0 1 L L L H
V0204 C 1 0 0 0 1 0 L L H L
V0205 C 1 0 0 0 1 1 L L H H
V0206 C 1 0 0 1 0 0 L H L L
V0207 C 1 0 0 1 0 1 L H L H
V0208 C 1 0 0 1 1 0 L H H L
V0209 C 1 0 0 1 1 1 L H H H
V0210 C 1 0 1 0 0 0 H L L L
V0211 C 1 0 1 0 0 1 H L L H
V0212 C 1 0 1 0 1 0 H L H L
V0213 C 1 0 1 0 1 1 H L H H
V0214 C 1 0 1 1 0 0 H H L L
V0215 C 1 0 1 1 0 1 H H L H
V0216 C 1 0 1 1 1 0 H H H L
V0217 C 1 0 1 1 1 1 H H H H

217 out of 217 vectors passed.

Zadanie 3:


Napisać 5 bitowy, dwukierunkowy licznik w języku ABEL. Licznik ma posiadać

asynchroniczne wejście zerujące oraz wejście b. Dla b = 1 ma liczyć z krokiem 3, a
dla b = 0 z krokiem 1.

module licznik
title 'Licznik 2-kierunkowy 5-bitowy'

a1,a2,a3,a4,a5 pin istype 'reg'; "wyjscia

dir pin; "kierunek
clr pin; "zerowanie
b pin; "krok; 0 - krok 1, 1 - krok 3
clk pin; "zegar

count = [a5,a4,a3,a2,a1];

equations

count.ar = !clr;
count.clk = clk;

"dodawanie, krok 1
when (dir & !b) then

background image

count := count+1

"odejmowanie, krok 1
when (!dir & !b) then
count := count - 1;

"dodawanie, krok 3
when (dir & b) then
count := count + 3 ;

"odejmowanie, krok 3
when (!dir & b) then
count := count - 3;


test_vectors( [clk, clr, dir, b] -> count )
[.k., 0 , .X., .X.] -> 0;

@const i=1;

@repeat 35 {
[.C., 1, 1, 0] -> i;

@const i=i+1;
}

@const i=34;
@repeat 35 {
[.C., 1, 0, 0] -> i;

@const i=i-1;
}

@const i=3;
@repeat 35 {
[.C.,1,1,1] -> i;
@const i=i+3;
}

[.k., 0, .X., .X.] -> 0;

@const i = 29;
@repeat 35 {
[.C.,1,0,1]->i;
@const i = i - 3;
}

end


Testowanie:

Simulate EZ-ABEL 4.30 Date: Mon Dec 4 16:07:24 19:6
Fuse file: 'licznik.tt1' Vector file: 'licznik.tmv' Part: 'PLA'

background image

Licznik 2-kierunkowy 5-bitowy


c c d
l l i a a a a a
k r r b 5 4 3 2 1

V0001 K 0 0 0 L L L L L
V0002 C 1 1 0 L L L L H
V0003 C 1 1 0 L L L H L
V0004 C 1 1 0 L L L H H
V0005 C 1 1 0 L L H L L
V0006 C 1 1 0 L L H L H
V0007 C 1 1 0 L L H H L
V0008 C 1 1 0 L L H H H
V0009 C 1 1 0 L H L L L
V0010 C 1 1 0 L H L L H
V0011 C 1 1 0 L H L H L
V0012 C 1 1 0 L H L H H
V0013 C 1 1 0 L H H L L
V0014 C 1 1 0 L H H L H
V0015 C 1 1 0 L H H H L
V0016 C 1 1 0 L H H H H
V0017 C 1 1 0 H L L L L
V0018 C 1 1 0 H L L L H
V0019 C 1 1 0 H L L H L
V0020 C 1 1 0 H L L H H
V0021 C 1 1 0 H L H L L
V0022 C 1 1 0 H L H L H
V0023 C 1 1 0 H L H H L
V0024 C 1 1 0 H L H H H
V0025 C 1 1 0 H H L L L
V0026 C 1 1 0 H H L L H
V0027 C 1 1 0 H H L H L
V0028 C 1 1 0 H H L H H
V0029 C 1 1 0 H H H L L
V0030 C 1 1 0 H H H L H
V0031 C 1 1 0 H H H H L
V0032 C 1 1 0 H H H H H
V0033 C 1 1 0 L L L L L
V0034 C 1 1 0 L L L L H
V0035 C 1 1 0 L L L H L
V0036 C 1 1 0 L L L H H
V0037 C 1 0 0 L L L H L
V0038 C 1 0 0 L L L L H
V0039 C 1 0 0 L L L L L
V0040 C 1 0 0 H H H H H
V0041 C 1 0 0 H H H H L
V0042 C 1 0 0 H H H L H
V0043 C 1 0 0 H H H L L
V0044 C 1 0 0 H H L H H
V0045 C 1 0 0 H H L H L
V0046 C 1 0 0 H H L L H
V0047 C 1 0 0 H H L L L
V0048 C 1 0 0 H L H H H
V0049 C 1 0 0 H L H H L
V0050 C 1 0 0 H L H L H

background image

V0051 C 1 0 0 H L H L L
V0052 C 1 0 0 H L L H H
V0053 C 1 0 0 H L L H L
V0054 C 1 0 0 H L L L H
V0055 C 1 0 0 H L L L L
V0056 C 1 0 0 L H H H H
V0057 C 1 0 0 L H H H L
V0058 C 1 0 0 L H H L H
V0059 C 1 0 0 L H H L L
V0060 C 1 0 0 L H L H H
V0061 C 1 0 0 L H L H L
V0062 C 1 0 0 L H L L H
V0063 C 1 0 0 L H L L L
V0064 C 1 0 0 L L H H H
V0065 C 1 0 0 L L H H L
V0066 C 1 0 0 L L H L H
V0067 C 1 0 0 L L H L L
V0068 C 1 0 0 L L L H H
V0069 C 1 0 0 L L L H L
V0070 C 1 0 0 L L L L H
V0071 C 1 0 0 L L L L L
V0072 C 1 1 1 L L L H H
V0073 C 1 1 1 L L H H L
V0074 C 1 1 1 L H L L H
V0075 C 1 1 1 L H H L L
V0076 C 1 1 1 L H H H H
V0077 C 1 1 1 H L L H L
V0078 C 1 1 1 H L H L H
V0079 C 1 1 1 H H L L L
V0080 C 1 1 1 H H L H H
V0081 C 1 1 1 H H H H L
V0082 C 1 1 1 L L L L H
V0083 C 1 1 1 L L H L L
V0084 C 1 1 1 L L H H H
V0085 C 1 1 1 L H L H L
V0086 C 1 1 1 L H H L H
V0087 C 1 1 1 H L L L L
V0088 C 1 1 1 H L L H H
V0089 C 1 1 1 H L H H L
V0090 C 1 1 1 H H L L H
V0091 C 1 1 1 H H H L L
V0092 C 1 1 1 H H H H H
V0093 C 1 1 1 L L L H L
V0094 C 1 1 1 L L H L H
V0095 C 1 1 1 L H L L L
V0096 C 1 1 1 L H L H H
V0097 C 1 1 1 L H H H L
V0098 C 1 1 1 H L L L H
V0099 C 1 1 1 H L H L L
V0100 C 1 1 1 H L H H H
V0101 C 1 1 1 H H L H L
V0102 C 1 1 1 H H H L H
V0103 C 1 1 1 L L L L L
V0104 C 1 1 1 L L L H H
V0105 C 1 1 1 L L H H L
V0106 C 1 1 1 L H L L H
V0107 K 0 0 0 L L L L L

background image

V0108 C 1 0 1 H H H L H
V0109 C 1 0 1 H H L H L
V0110 C 1 0 1 H L H H H
V0111 C 1 0 1 H L H L L
V0112 C 1 0 1 H L L L H
V0113 C 1 0 1 L H H H L
V0114 C 1 0 1 L H L H H
V0115 C 1 0 1 L H L L L
V0116 C 1 0 1 L L H L H
V0117 C 1 0 1 L L L H L
V0118 C 1 0 1 H H H H H
V0119 C 1 0 1 H H H L L
V0120 C 1 0 1 H H L L H
V0121 C 1 0 1 H L H H L
V0122 C 1 0 1 H L L H H
V0123 C 1 0 1 H L L L L
V0124 C 1 0 1 L H H L H
V0125 C 1 0 1 L H L H L
V0126 C 1 0 1 L L H H H
V0127 C 1 0 1 L L H L L
V0128 C 1 0 1 L L L L H
V0129 C 1 0 1 H H H H L
V0130 C 1 0 1 H H L H H
V0131 C 1 0 1 H H L L L
V0132 C 1 0 1 H L H L H
V0133 C 1 0 1 H L L H L
V0134 C 1 0 1 L H H H H
V0135 C 1 0 1 L H H L L
V0136 C 1 0 1 L H L L H
V0137 C 1 0 1 L L H H L
V0138 C 1 0 1 L L L H H
V0139 C 1 0 1 L L L L L
V0140 C 1 0 1 H H H L H
V0141 C 1 0 1 H H L H L
V0142 C 1 0 1 H L H H H

142 out of 142 vectors passed.


Wnioski :

-

język ABEL znacząco zmniejsza czas potrzebny do zaprogramowania matrycy

-

mechanizm testowania umożliwia szybkie odnalezienie błędnych fragmentów kodu

-

makroinstrukcje ułatwiają testowanie dużych partii danych testowych

-

struktura języka ABEL jest na tyle prosta, że czas potrzebny na jego naukę jest
relatywnie krótki

-

istnieje możliwość tworzenia unikalnych układów o specyficznych zadaniach


Wyszukiwarka

Podobne podstrony:
Ćwiczenie 03 Sprawko
Ćwiczenie 10 Sprawko (Inne)
Ćwiczenie 20 Sprawko (Inne)
Ćwiczenie 03 Sprawko doc
grunty sprawko, Studia, Sem 4, Semestr 4 RŁ, gleba, sprawka i inne
ćwiczenia 3,& 03
PODSTAWY ZARZĄDZANIA ĆWICZENIA 03 2010
Ćwiczenie 03
cwiczenie 03
cwiczenia07 03
Finanse Ćwiczenia' 03
ćwiczenie 18 sprawko
cwiczenie 03
ćwiczenia 03 2012
anatomia ćwiczenia 3- Gr IX i X, Inne (Notatki materialy itp)

więcej podobnych podstron