Zadanie: Należy zaprojektować układ generujący bit
parzystości słowa 8-bitowego. Słowo bitowe podawać poprzez wirtualne
przełączniki SW0-SW7 podłączone do płytki prototypowej.
Parzystość wyświetlać na wyświetlaczu LED za pomocą następujących symboli: E
- parzysta liczba "jedynek" w 8-bitowym słowie wejściowym (ang. even),
O - nieparzysta liczba jedynek (ang. odd).
Należy wykonać symulację
funkcjonalną oraz zweryfikować układ praktycznie poprzez zaprogramowanie płytki
testowej. Na płytce prototypowej znajduje się 8 wyświetlaczy
siedmiosegmentowych o wspólnej anodzie połączonych w sposób multipleksowany. W
użyciu jest prawa połowa (4 cyfry) wyświetlacza 7-segmentowego (lewa połowa
może także coś wyświetlać – ignorujemy to). Wynik należy wyświetlić na
wyświetlaczu AN3. Połączenie multipleksowane jest wykonane poprzez
wspólne połączenie wszystkich wyprowadzeń segmentowych tj. połączenie segmentów
A w 4 wyświetlaczach, połączenie segmentów B w 4 wyświetlaczach
itd. Wspólne anody służą do aktywacji danego znaku. Poszczególne segmenty
pojedynczego wyświetlacza uaktywniane są podaniem stanu niskiego na
wyprowadzenia A - G. Włączenie poszczególnych wyświetlaczy
aktywowane jest stanem niskim na wyprowadzeniach AN0 - AN3
(zanegowana wspólna anoda). Przykładowo, jeśli chcemy wygasić wyświetlacze 0-2
wówczas na wyprowadzenia AN0 - AN2 należy podać '1'. Jeśli
równocześnie na wyświetlaczu nr 3 chcemy wyświetlić znak "A",
wówczas dodatkowo należy podać następujące sygnały: AN3='0' oraz A='0',
B='0', C='0', D='1', E='0',
F='0', G='0', DP='1'.
Minimalne wymagania
dotyczące symulacji: zainicjalizować
przełączniki na OFF, a następnie co 100 ms przełączać kolejne przełączniki na
ON aż do momentu, kiedy wszystkie przełączniki będą ON.
Fragment głównego pliku projektowego
VHDL z deklaracją sygnałów:
entity top is
Port ( sw_i : in STD_LOGIC_VECTOR (7
downto 0);
led7_an_o : out STD_LOGIC_VECTOR (3
downto 0);
led7_seg_o : out STD_LOGIC_VECTOR
(7 downto 0));
end top;
W sygnale led7_seg_o segment A jest podłączony do bitu 7, segment B do bitu 6,
itd.
Rys 1. Opis podłączeń poszczególnych segmentów
wyświetlacza. Przykład wyświetlenia cyfry '2'
Plik z ograniczeniami
projektowymi dla płytki Nexys-A7 (układ FPGA xc7a100tcsg324-1): isp1.xdc
Następujące ostrzeżenia oprogramowania Vivado można zignorować w tym ćwiczeniu:
[Power 33-232] No user
defined clocks were found in the design! Power estimation will be inaccurate
until this is corrected.
[Timing 38-313] There are
no user specified timing constraints. Timing constraints are needed for proper
timing analysis.
[Place 46-29]
place_design is not in timing mode. Skip physical synthesis in placer.