Zadanie: Należy zaprojektować układ generujący bit parzystości słowa 8-bitowego. Słowo bitowe podawać poprzez przełączniki SW0-SW7 na płytce 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 znajdują się 4 wyświetlacze siedmiosegmentowe o wspólnej anodzie połączone w sposób multipleksowany. Wynik należy wyświetlić na wyświetlaczu AN0. 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 1-3 wówczas na wyprowadzenia AN1 – AN3 należy podać '1'. Jeśli równocześnie na wyświetlaczu nr 0 chcemy wyświetlić znak "A", wówczas dodatkowo należy podać następujące sygnały: AN0='0' oraz A='0', B='0', C='0', D='1', E='0', F='0', G='0', DP='1'.
Minimalne wymagania dotyczące symulacji i weryfikacji na płytce: zainicjalizować przełączniki na OFF, a następnie (w symulacji 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 Basys 3 (układ FPGA xc7a35tcpg236-1): iup1.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.