Mikroprocesory |
||||||
Rok akademicki |
Termin |
Rodzaj studiów |
Kierunek |
Prowadzący |
Grupa |
Sekcja |
2007/2008 |
Piątek |
USM |
INF |
BSz |
1 |
1 |
|
17:15 - 20:15 |
|
|
|
|
|
Sprawozdanie
Data wykonania ćwiczenia: 2008-01-18
Temat ćwiczenia:
Projektowanie systemów cyfrowych w oparciu o układy programowalne
Skład sekcji: |
Jacek Jędruch |
Jarosław Szkabarnicki |
Bartłomiej Gorczyński |
1. Treść zadania:
Zaprojektować i przetestować dwukierunkowy licznik 4-o bitowy. Powinien mieć możliwość wczytania wartości początkowych.
Układ ma posiadać wejścia:
- zegarowe
- kierunku
- wyzwalania
- 1 bitu
- 2 bitu
- 3 bitu
- 4 bitu
2. Źródło programu:
module licznik
q3,q2,q1,q0 pin istype 'reg'; "wyjcia licznika
dir pin; "wejcie sterujfce kierunkiem
clear pin; "wejcie zerujfce
oe pin; "wejcie sterujfce tr˘jstanowymi buforami
s3,s2,s1,s0 pin; "stan na wejsciu
stanwe pin; "czy jest cos na wejscia
clk pin;
count = [q3,q2,q1,q0];
coont = [s3,s2,s1,s0];
equations
count.oe=!oe;
count.clk=clk;
count.ar=!clear;
when stanwe==1 then
count:= [s3,s2,s1,s0]
else
when dir then
count:=(count+1)
else
count:=count-1;
test_vectors( [clk, clear, dir,oe,stanwe,coont] -> count )
[.c., 1, 1, 0, 1, 0] -> 0;
@const i=1;
@repeat 15 {
[.c., 1, 1 , 0, 0, 0] -> i;
@const i=i+1;
}
[1, 0, 0, 0, 0, 0] -> 0;
@const i=15;
@repeat 16 {
[.c., 1, 0, 0, 0, 0] ->i;
@const i=i-1;
}
end
3. Wyniki symulacji:
Simulate EZ-ABEL 4.30 Date: Fri Jan 18 19:49:41 19:8
Fuse file: 'licznik.tt1' Vector file: 'licznik.tmv' Part: 'PLA'
s
c t
l a
c e d n
l a i o w s s s s q q q q
k r r e e 3 2 1 0 3 2 1 0
V0001 C 1 1 0 1 0 0 0 0 L L L L
V0002 C 1 1 0 0 0 0 0 0 L L L H
V0003 C 1 1 0 0 0 0 0 0 L L H L
V0004 C 1 1 0 0 0 0 0 0 L L H H
V0005 C 1 1 0 0 0 0 0 0 L H L L
V0006 C 1 1 0 0 0 0 0 0 L H L H
V0007 C 1 1 0 0 0 0 0 0 L H H L
V0008 C 1 1 0 0 0 0 0 0 L H H H
V0009 C 1 1 0 0 0 0 0 0 H L L L
V0010 C 1 1 0 0 0 0 0 0 H L L H
V0011 C 1 1 0 0 0 0 0 0 H L H L
V0012 C 1 1 0 0 0 0 0 0 H L H H
V0013 C 1 1 0 0 0 0 0 0 H H L L
V0014 C 1 1 0 0 0 0 0 0 H H L H
V0015 C 1 1 0 0 0 0 0 0 H H H L
V0016 C 1 1 0 0 0 0 0 0 H H H H
V0017 1 0 0 0 0 0 0 0 0 L L L L
V0018 C 1 0 0 0 0 0 0 0 H H H H
V0019 C 1 0 0 0 0 0 0 0 H H H L
V0020 C 1 0 0 0 0 0 0 0 H H L H
V0021 C 1 0 0 0 0 0 0 0 H H L L
V0022 C 1 0 0 0 0 0 0 0 H L H H
V0023 C 1 0 0 0 0 0 0 0 H L H L
V0024 C 1 0 0 0 0 0 0 0 H L L H
V0025 C 1 0 0 0 0 0 0 0 H L L L
V0026 C 1 0 0 0 0 0 0 0 L H H H
V0027 C 1 0 0 0 0 0 0 0 L H H L
V0028 C 1 0 0 0 0 0 0 0 L H L H
V0029 C 1 0 0 0 0 0 0 0 L H L L
V0030 C 1 0 0 0 0 0 0 0 L L H H
V0031 C 1 0 0 0 0 0 0 0 L L H L
V0032 C 1 0 0 0 0 0 0 0 L L L H
V0033 C 1 0 0 0 0 0 0 0 L L L L
33 out of 33 vectors passed.