Wyświetlacz siedmiosegmentowy autorzy: Tomasz Perek Tomasz Biernat Projekt: Układ, który liczbę podaną w postaci binarnej wyświetla w systemie szesnastkowym, ósemkowym oraz dziesiętnym. Wyświetlacz siedmiosegmentowy jest powszechnie stosowany do prezentacji cyfr, liter. Składa się z siedmiu segmentów oznaczonych literami a-g (tak jak na rysunku), które mogą być zapalone lub nie. Kolejne cyfry i litery wyglądają następująco: 1.
Symulacja w programie Multisim załącznik: 7seg.ms10 Układ zrealizowany w programie Multisim składa się z następujących elementów: 1. Wejście - ośmiobitowy przełącznik 2. Podukład zamieniający 8-bitową liczbę binarną na dwie 4-bitowe liczby binarne, odpowiadające dziesiętnym cyfrom liczby wejściowej 3. Podukłady kodujące liczbę dziesiętną 0-9 do wyświetlacza siedmiosegmentowego 4. Podukłady kodujące liczbę ósemkową 0-7 do wyświetlacza siedmiosegmentowego 5. Podukłady kodujące liczbę szesnastkową 0-F do wyświetlacza siedmiosegmentowego 6. Podukłady wybierające odpowiednią reprezentację liczby 7. Wyjście - dwa wyświetlacze siedmiosegmentowe 8. Wejście przyciski do wyboru reprezentacji 8 2
Opis poszczególnych elementów: 1. Wejście - ośmiobitowy przełącznik Jest to układ ośmiu przełączników, za pomocą których ustawiamy wejściową liczbę binarną. Przełącznik znajdujący się najwyŝej odpowiada najbardziej znaczącemu bitowi. 2. Podukład zamieniający 8-bitową liczbę binarną na dwie 4-bitowe liczby binarne, odpowiadające dziesiętnym cyfrom liczby wejściowej Układ posiada 8 wejść A - H, odpowiadających ośmiu bitom liczby wejściowej. Wyjścia c11 - c14 odpowiadają bitom pierwszej cyfry dziesiętnej, a c21 - c24 drugiej cyfry. Dodatkowe wyjście ok informuje, czy liczba dziesiętna nie jest większa od 99. Na przykład, dla wejścia A-H -> 00111011 (59) otrzymamy: c11-c14 -> 0101 (5) c21-c24 -> 1001 (9) ok -> 0 Nie zamieszczamy wszystkich tabel prawdy, gdyŝ w tym przypadku mają one 100 wierszy, a tablice Karnaugh mają wymiary 8x16. Schematycznie, zminimalizowane i uproszczone funkcje przedstawiają się następująco: 3
4
3. Podukłady kodujące liczbę dziesiętną 0-9 do wyświetlacza siedmiosegmentowego Wejście układu stanowią 4 bity cyfry dziesiętnej d1 - d4, oraz ok informacja, czy liczba wejściowa nie jest większa od 99. Wyjścia a - g odpowiadają poszczególnym segmentom wyświetlacza. Jeśli ok=0, to na wyjściach kodowana jest odpowiednia cyfra, a jeśli ok=1, to wyjście ustawiane jest tak aby na wyświetlaczu pojawiła się pozioma kreseczka, np: d1-d4 = 0100 (4), ok=0 -> a-g = 0110011 d1-d4 = 1001 (9), ok=1 -> a-g = 0000001 Tabela prawdy: d1 d2 d3 d4 a b c d e f g 0 0 0 0 1 1 1 1 1 1 0 0 0 0 1 0 1 1 0 0 0 0 0 0 1 0 1 1 0 1 1 0 1 0 0 1 1 1 1 1 1 0 0 1 0 1 0 0 0 1 1 0 0 1 1 0 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 0 1 1 1 1 1 0 1 1 1 1 1 1 0 0 0 0 1 0 0 0 1 1 1 1 1 1 1 1 0 0 1 1 1 1 1 0 1 1 Tablica Karnaugh, przykładowo dla segmentu e: e = d2d4 + d1d 3d 4 5
Schemat: 4. Podukłady kodujące liczbę ósemkową 0-7 do wyświetlacza siedmiosegmentowego Wejście układu stanowią 3 bity cyfry ósemkowej o1 - o3, oraz ok informacja, czy liczba wejściowa nie jest większa od 63. Wyjścia a - g odpowiadają poszczególnym segmentom wyświetlacza. Jeśli ok=1, to na wyjściach kodowana jest odpowiednia cyfra, a jeśli ok=0, to wyjście ustawiane jest tak aby na wyświetlaczu pojawiła się pozioma kreseczka, np: o1-o3 = 101 (5), ok=1 -> a-g = 1011011 o1-o3 = 001 (1), ok=0 -> a-g = 0000001 Tabela prawdy jest identyczna jak w punkcie 3, tylko pomniejszona o dwa ostatnie wiersze. Schemat przedstawia się następująco: 5. Podukłady kodujące liczbę szesnastkową 0-F do wyświetlacza siedmiosegmentowego Wejście układu stanowią 4 bity cyfry/liczby szesnastkowej h1 - h4. Wyjścia a - g odpowiadają poszczególnym segmentom wyświetlacza.. Przykładowo: h1-h4 = 1011 (B) -> a-g = 0011111 h1-h4 = 0011 (3) -> a-g = 1111001 Tabela prawdy jest taka jak w punkcie trzecim, tylko powiększona o wiersze: d1 d2 d3 d4 a b c d e f g 1 0 1 0 1 1 1 0 1 1 1 1 0 1 1 0 0 1 1 1 1 1 1 1 0 0 1 0 0 1 1 1 0 1 1 0 1 0 1 1 1 1 0 1 6
1 1 1 0 1 0 0 1 1 1 1 1 1 1 1 1 0 0 0 1 1 1 Schemat: 6. Podukłady wybierające odpowiednią reprezentację liczby Tych układów jest w projekcie 14, po jednym dla kaŝdego wejścia wyświetlacza. Wejście d to stan odpowiedniego segmentu przy systemie dziesiętnym, o ósemkowym, h szesnastkowym. PBo podłączone jest do przycisku wyboru systemu ósemkowego, a PBd do przycisku wyboru systemu dziesiętnego. Wyjście seg to stan odpowiedniego segmentu, w wybranej za pomocą przycisków reprezentacji. Funkcja wybierająca jest prosta: seg = PBo PBd o + PBo PBd d + PBo PBd h 7. Wyjście - dwa wyświetlacze siedmiosegmentowe W programie Multisim wybraliśmy wyświetlacze w konfiguracji wspólnej anody, kaŝde wejście podłączone jest przez rezystor 100Ω oraz przez bramkę NOT, poniewaŝ segment zapala się przy 0 logicznym. 8. Wejście przyciski do wyboru reprezentacji Dwa przyciski push-button ustalające w jakiej reprezentacji ma byś pokazywana liczba. Standardowo wyświetlana jest liczba w systemie szesnastkowym, przy wciśniętym przycisku okt w ósemkowym, przy wciśniętym przycisku dec w dziesiętnym. Przy przyciskach wciśniętych naraz na wyświetlaczu nic się nie pojawia. 7
2. Symulacja w programie Quartus II Układ zbudowany jest na podobnej zasadzie jak w programie Multisim, załącznik zawiera projekt zrealizowany w programie Quartus II - schematy, oraz pliki vhdl. załącznik: 7seg.zip 3. Projekt w języku VHDL konwersja.vhd LIBRARY ieee; USE ieee.std_logic_1164.all; LIBRARY work; ENTITY konwersja IS PORT ( A : IN STD_LOGIC; B : IN STD_LOGIC; C : IN STD_LOGIC; D : IN STD_LOGIC; E : IN STD_LOGIC; F : IN STD_LOGIC; G : IN STD_LOGIC; H : IN STD_LOGIC; c24 : OUT STD_LOGIC; c23 : OUT STD_LOGIC; c22 : OUT STD_LOGIC; c21 : OUT STD_LOGIC; c14 : OUT STD_LOGIC; c13 : OUT STD_LOGIC; c12 : OUT STD_LOGIC; c11 : OUT STD_LOGIC; ok : OUT STD_LOGIC END konwersja; ARCHITECTURE bdf_type OF konwersja IS NB : STD_LOGIC; NC : STD_LOGIC; ND : STD_LOGIC; NE : STD_LOGIC; NF : STD_LOGIC; NG : STD_LOGIC; BEGIN NB <= NOT(B NC <= NOT(C ND <= NOT(D NE <= NOT(E NF <= NOT(F NG <= NOT(G c24 <= H; 8
c23 <= (C AND ND AND E AND G) OR (C AND E AND F AND G) OR (B AND ND AND E AND NG) OR (C AND ND AND NE AND NG) OR (B AND E AND F AND NG) OR (C AND NE AND F AND NG) OR (NC AND ND AND E AND F AND NG) OR (C AND D AND E AND NF AND NG) OR (NB AND NC AND D AND E AND NF AND G) OR (NB AND NC AND D AND NE AND NF AND NG) OR (NB AND NC AND ND AND NE AND G) OR (NC AND D AND NE AND F AND G) OR (B AND NC AND NE AND NF AND G C22 <= (B AND D AND NE AND F) OR (B AND D AND F AND G) OR (NB AND NC AND D AND E AND NF) OR (C AND D AND NE AND F AND G) OR (B AND ND AND E AND F AND NG) OR (NB AND NC AND D AND NF AND NG) OR (NB AND C AND ND AND NE AND NF AND G) OR (C AND ND AND E AND F) OR (NB AND NC AND ND AND F AND G) OR (B AND NC AND ND AND NF AND G) OR (NB AND ND AND NE AND F AND NG) OR (C AND D AND E AND NF AND NG) OR (B AND ND AND NE AND NF AND NG C21 <= (B AND C AND G) OR (B AND ND AND E AND F AND G) OR (C AND ND AND NE AND F AND G) OR (C AND D AND E AND NF AND G) OR (B AND ND AND NE AND F AND NG) OR (B AND D AND E AND NF AND NG) OR (C AND D AND NE AND NF AND NG) OR (NB AND NC AND D AND NE AND NF AND G) OR (NB AND NC AND D AND E AND F AND NG) OR (NB AND NC AND ND AND E AND NF AND NG C14 <= (B AND ND AND E) OR (C AND ND AND NE) OR (B AND E AND F) OR (C AND NE AND F) OR (B AND E AND G) OR (NC AND ND AND E AND F) OR (C AND D AND E AND NF) OR (NC AND ND AND E AND G) OR (B AND ND AND F AND G) OR (NC AND E AND F AND G) OR (NB AND NC AND D AND NE AND NF) OR (NB AND D AND NE AND NF AND G C13 <= (B AND NC AND ND) OR (NB AND NC AND D AND E) OR (NB AND C AND ND AND NE) OR (NB AND NC AND D AND F) OR (C AND D AND E AND F C12 <= (C AND D) OR (C AND E) OR (B AND NC AND ND C11 <= (B AND C) OR (B AND D OK <= ((D OR E OR F) AND B AND C) OR A; END bdf_type; --------------------------------------------------------------------------- dec_seg.vhd LIBRARY ieee; USE ieee.std_logic_1164.all; LIBRARY work; ENTITY dec_seg IS PORT ( d1 : IN STD_LOGIC; d2 : IN STD_LOGIC; d3 : IN STD_LOGIC; d4 : IN STD_LOGIC; ok : IN STD_LOGIC; a : OUT STD_LOGIC; b : OUT STD_LOGIC; c : OUT STD_LOGIC; d : OUT STD_LOGIC; e : OUT STD_LOGIC; f : OUT STD_LOGIC; g : OUT STD_LOGIC END dec_seg; ARCHITECTURE bdf_type OF dec_seg IS Nd2 : STD_LOGIC; Nd3 : STD_LOGIC; 9
Nd4: STD_LOGIC; Nok : STD_LOGIC; BEGIN Nd2 <= NOT(d2 Nd3 <= NOT(d3 Nd4 <= NOT(d4 Nok <= NOT(ok a <= ((d3 AND d4) OR (d2 AND d3 AND Nd4) OR (d2 AND Nd3 AND d4) OR (Nd2 AND Nd4) OR d1) AND Nok; b <= ((Nd2 AND Nd3) OR (d3 AND d4) OR (Nd3 AND Nd4) OR (Nd2 AND Nd4)) AND Nok; c <= ((Nd2 AND Nd3) OR (d3 AND d4) OR (Nd3 AND Nd4) OR (d2 AND d3 AND Nd4) OR (d2 AND Nd3 AND d4)) AND Nok; d <= ((Nd2 AND d3) OR (d2 AND d3 AND Nd4) OR (d2 AND Nd3 AND d4) OR (Nd2 AND Nd4) OR d1) AND Nok; e <= ((d2 AND d3 AND Nd4) OR (Nd2 AND Nd4)) AND Nok; f <= ((Nd3 AND Nd4) OR (d2 AND d3 AND Nd4) OR (d2 AND Nd3 AND d4) OR d1) AND Nok; g <= ((d2 AND Nd4) OR (Nd2 AND d3) OR (d2 AND Nd3 AND d4) OR d1) OR ok; END bdf_type; --------------------------------------------------------------------------- okt_seg.vhd LIBRARY ieee; USE ieee.std_logic_1164.all; LIBRARY work; ENTITY okt_seg IS PORT ( o1 : IN STD_LOGIC; o2 : IN STD_LOGIC; o3 : IN STD_LOGIC; ok : IN STD_LOGIC; a : OUT STD_LOGIC; b : OUT STD_LOGIC; c : OUT STD_LOGIC; d : OUT STD_LOGIC; e : OUT STD_LOGIC; f : OUT STD_LOGIC; g : OUT STD_LOGIC END okt_seg; ARCHITECTURE bdf_type OF okt_seg IS No1 : STD_LOGIC; No2 : STD_LOGIC; No3 : STD_LOGIC; Nok: STD_LOGIC; BEGIN No1 <= NOT(o1 10
No2 <= NOT(o2 No3 <= NOT(o3 Nok <= NOT(ok a <= ((o2 AND o3) OR (o1 AND No2 AND o3) OR (o1 AND o2 AND No3) OR (No1 AND No3)) AND Nok; b <= ((No1 AND No2) OR (o2 AND o3) OR (No2 AND No3) OR (No1 AND No3)) AND Nok; c <= ((No1 AND No2) OR (o2 AND o3) OR (No2 AND No3) OR (o1 AND No2 AND o3) OR (o1 AND o2 AND No3)) AND Nok; d <= ((No1 AND o2) OR (o1 AND No2 AND o3) OR (o1 AND o2 AND No3) OR (No1 AND No3)) AND Nok; e <= ((o1 AND o2 AND No3) OR (No1 AND No3)) AND Nok; f <= ((No2 AND No3) OR (o1 AND No2 AND o3) OR (o1 AND o2 AND No3)) AND Nok; g <= ((o1 AND No3) OR (No1 AND o2) OR (o1 AND No2 AND o3)) OR ok; END bdf_type; --------------------------------------------------------------------------- hex_seg.vhd LIBRARY ieee; USE ieee.std_logic_1164.all; LIBRARY work; ENTITY hex_seg IS PORT ( h1 : IN STD_LOGIC; h2 : IN STD_LOGIC; h3 : IN STD_LOGIC; h4 : IN STD_LOGIC; a : OUT STD_LOGIC; b : OUT STD_LOGIC; c : OUT STD_LOGIC; d : OUT STD_LOGIC; e : OUT STD_LOGIC; f : OUT STD_LOGIC; g : OUT STD_LOGIC END hex_seg; ARCHITECTURE bdf_type OF hex_seg IS Nh1 : STD_LOGIC; Nh2 : STD_LOGIC; Nh3 : STD_LOGIC; Nh4: STD_LOGIC; BEGIN Nh1 <= NOT(h1 Nh2 <= NOT(h2 Nh3 <= NOT(h3 Nh4 <= NOT(h4 a <= (Nh1 AND h3 AND h4) OR (Nh1 AND h3 AND Nh4) OR (Nh1 AND h2 AND Nh3 AND h4) OR (h1 AND h2 AND h3) OR (Nh2 AND Nh3 AND Nh4) OR (h1 AND h2 AND Nh4) OR (h1 AND Nh2 AND Nh3) OR (h1 AND Nh2 AND Nh4 11
b <= (Nh1 AND Nh3 AND Nh4) OR (Nh1 AND h3 AND h4) OR (Nh2 AND Nh3) OR (Nh1 AND Nh2 AND h3) OR (h1 AND h2 AND Nh3 AND h4) OR (h1 AND Nh2 AND Nh4 c <= (Nh1 AND h3 AND h4) OR (Nh2 AND Nh3) OR (Nh1 AND h2 AND Nh4) OR (h1 AND h2 AND Nh3 AND h4) OR (h1 AND Nh2 AND h3 AND h4) OR (Nh1 AND h2 AND Nh3 AND h4) OR (h1 AND Nh2 AND Nh4 d <= (Nh1 AND Nh2 AND h3) OR (Nh1 AND h3 AND Nh4) OR (h1 AND h2 AND Nh3 AND h4) OR (h1 AND Nh2 AND h3 AND h4) OR (Nh1 AND h2 AND Nh3 AND h4) OR (Nh2 AND Nh3 AND Nh4) OR (h1 AND h2 AND Nh4) OR (h1 AND Nh2 AND Nh3 e <= (Nh1 AND h3 AND Nh4) OR (h1 AND h2 AND Nh3 AND h4) OR (h1 AND Nh2 AND h3 AND h4) OR (h1 AND h2 AND h3) OR (Nh2 AND Nh3 AND Nh4) OR (h1 AND h2 AND Nh4) OR (h1 AND Nh2 AND Nh4 f <= (Nh1 AND h2 AND Nh4) OR (h1 AND Nh2 AND h3 AND h4) OR (Nh1 AND h2 AND Nh3 AND h4) OR (h1 AND h2 AND h3) OR (Nh2 AND Nh3 AND Nh4) OR (h1 AND h2 AND Nh4) OR (h1 AND Nh2 AND Nh3) OR (h1 AND Nh2 AND Nh4 g <= (Nh1 AND Nh2 AND h3) OR (Nh1 AND h2 AND Nh4) OR (h1 AND h2 AND Nh3 AND h4) OR (h1 AND Nh2 AND h3 AND h4) OR (Nh1 AND h2 AND Nh3 AND h4) OR (h1 AND h2 AND h3) OR (h1 AND Nh2 AND Nh3) OR (h1 AND Nh2 AND Nh4 END bdf_type; --------------------------------------------------------------------------- wybor.vhd LIBRARY ieee; USE ieee.std_logic_1164.all; LIBRARY work; ENTITY wybor IS PORT ( d : IN STD_LOGIC; o : IN STD_LOGIC; PBo : IN STD_LOGIC; PBd : IN STD_LOGIC; h : IN STD_LOGIC; seg : OUT STD_LOGIC END wybor; ARCHITECTURE bdf_type OF wybor IS NPBo : STD_LOGIC; NPBd : STD_LOGIC; BEGIN NPBo <= NOT(PBo NPBd <= NOT(PBd seg <= (NPBo AND PBd AND o) OR (NPBd AND PBo AND d) OR (PBo AND PBd AND h END bdf_type; --------------------------------------------------------------------------- 12
tc.vhd LIBRARY ieee; USE ieee.std_logic_1164.all; LIBRARY work; ENTITY TC IS PORT ( A : IN STD_LOGIC; B : IN STD_LOGIC; C : IN STD_LOGIC; D : IN STD_LOGIC; E : IN STD_LOGIC; F : IN STD_LOGIC; G : IN STD_LOGIC; H : IN STD_LOGIC; oct : IN STD_LOGIC; dec : IN STD_LOGIC; a1 : OUT STD_LOGIC; b1 : OUT STD_LOGIC; c1 : OUT STD_LOGIC; d1 : OUT STD_LOGIC; e1 : OUT STD_LOGIC; f1 : OUT STD_LOGIC; g1 : OUT STD_LOGIC; a2 : OUT STD_LOGIC; b2 : OUT STD_LOGIC; c2 : OUT STD_LOGIC; d2 : OUT STD_LOGIC; e2 : OUT STD_LOGIC; f2 : OUT STD_LOGIC; g2 : OUT STD_LOGIC END TC; ARCHITECTURE bdf_type OF TC IS COMPONENT konwersja PORT(A : IN STD_LOGIC; B : IN STD_LOGIC; C : IN STD_LOGIC; D : IN STD_LOGIC; E : IN STD_LOGIC; F : IN STD_LOGIC; G : IN STD_LOGIC; H : IN STD_LOGIC; c24 : OUT STD_LOGIC; c23 : OUT STD_LOGIC; c22 : OUT STD_LOGIC; c21 : OUT STD_LOGIC; c14 : OUT STD_LOGIC; c13 : OUT STD_LOGIC; c12 : OUT STD_LOGIC; c11 : OUT STD_LOGIC; ok : OUT STD_LOGIC END COMPONENT; COMPONENT dec_seg 13
PORT(d1 : IN STD_LOGIC; d2 : IN STD_LOGIC; d3 : IN STD_LOGIC; d4 : IN STD_LOGIC; ok : IN STD_LOGIC; a : OUT STD_LOGIC; b : OUT STD_LOGIC; c : OUT STD_LOGIC; d : OUT STD_LOGIC; e : OUT STD_LOGIC; f : OUT STD_LOGIC; g : OUT STD_LOGIC END COMPONENT; COMPONENT okt_seg PORT(o1 : IN STD_LOGIC; o2 : IN STD_LOGIC; o3 : IN STD_LOGIC; ok : IN STD_LOGIC; a : OUT STD_LOGIC; b : OUT STD_LOGIC; c : OUT STD_LOGIC; d : OUT STD_LOGIC; e : OUT STD_LOGIC; f : OUT STD_LOGIC; g : OUT STD_LOGIC END COMPONENT; COMPONENT hex_seg PORT(h1 : IN STD_LOGIC; h2 : IN STD_LOGIC; h3 : IN STD_LOGIC; h4 : IN STD_LOGIC; a : OUT STD_LOGIC; b : OUT STD_LOGIC; c : OUT STD_LOGIC; d : OUT STD_LOGIC; e : OUT STD_LOGIC; f : OUT STD_LOGIC; g : OUT STD_LOGIC END COMPONENT; COMPONENT wybor PORT(PBo : IN STD_LOGIC; PBd : IN STD_LOGIC; o : IN STD_LOGIC; d : IN STD_LOGIC; h : IN STD_LOGIC; seg : OUT STD_LOGIC END COMPONENT; NA : STD_LOGIC; NB : STD_LOGIC; NC : STD_LOGIC; ND : STD_LOGIC; NE : STD_LOGIC; 14
NF : STD_LOGIC; NG : STD_LOGIC; NH : STD_LOGIC; okt_ok : STD_LOGIC; d1a : STD_LOGIC; d1b : STD_LOGIC; d1c : STD_LOGIC; d1d : STD_LOGIC; d1e : STD_LOGIC; d1f : STD_LOGIC; d1g : STD_LOGIC; d2a : STD_LOGIC; d2b : STD_LOGIC; d2c : STD_LOGIC; d2d : STD_LOGIC; d2e : STD_LOGIC; d2f : STD_LOGIC; d2g : STD_LOGIC; o1a : STD_LOGIC; o1b : STD_LOGIC; o1c : STD_LOGIC; o1d : STD_LOGIC; o1e : STD_LOGIC; o1f : STD_LOGIC; o1g : STD_LOGIC; o2a : STD_LOGIC; o2b : STD_LOGIC; o2c : STD_LOGIC; o2d : STD_LOGIC; o2e : STD_LOGIC; o2f : STD_LOGIC; o2g : STD_LOGIC; h1a : STD_LOGIC; h1b : STD_LOGIC; h1c : STD_LOGIC; h1d : STD_LOGIC; h1e : STD_LOGIC; h1f : STD_LOGIC; h1g : STD_LOGIC; h2a : STD_LOGIC; h2b : STD_LOGIC; h2c : STD_LOGIC; h2d : STD_LOGIC; h2e : STD_LOGIC; h2f : STD_LOGIC; h2g : STD_LOGIC; dec_ok : STD_LOGIC; c11 : STD_LOGIC; c12 : STD_LOGIC; c13 : STD_LOGIC; c14 : STD_LOGIC; c21 : STD_LOGIC; c22 : STD_LOGIC; c23 : STD_LOGIC; c24 : STD_LOGIC; a1 : STD_LOGIC; b1 : STD_LOGIC; c1 : STD_LOGIC; d1 : STD_LOGIC; e1 : STD_LOGIC; f1 : STD_LOGIC; 15
g1 : STD_LOGIC; a2 : STD_LOGIC; b2 : STD_LOGIC; c2 : STD_LOGIC; d2 : STD_LOGIC; e2 : STD_LOGIC; f2 : STD_LOGIC; g2 : STD_LOGIC; BEGIN NA <= NOT(A NB <= NOT(B NC <= NOT(C ND <= NOT(D NE <= NOT(E NF <= NOT(F NG <= NOT(G NH <= NOT(H b2v_inst : konwersja PORT MAP(A => NA, B => NB, C => NC, D => ND, E => NE, F => NF, G => NG, H => NH, c24 => c24, c23 => c23, c22 => c22, c21 => c21, c14 => c14, c13 => c13, c12 => c12, c11 => c11, ok => dec_ok b2v_inst8 : dec_seg PORT MAP(d1 => c11, d2 => c12, d3 => c13, d4 => c14, ok => dec_ok, a => d1a, b => d1b, c => d1c, d => d1d, e => d1e, f => d1f, g => d1g b2v_inst9 : dec_seg PORT MAP(d1 => c21, d2 => c22, d3 => c23, d4 => c24, 16
ok => dec_ok, a => d2a, b => d2b, c => d2c, d => d2d, e => d2e, f => d2f, g => d2g okt_ok <= NA OR NB; b2v_inst10 : okt_seg PORT MAP(o1 => NC, o2 => ND, o3 => NE, ok => okt_ok, a => o1a, b => o1b, c => o1c, d => o1d, e => o1e, f => o1f, g => o1g b2v_inst11 : okt_seg PORT MAP(o1 => NF, o2 => NG, o3 => NH, ok => okt_ok, a => o2a, b => o2b, c => o2c, d => o2d, e => o2e, f => o2f, g => o2g b2v_inst13 : hex_seg PORT MAP(h1 => NA, h2 => NB, h3 => NC, h4 => ND, a => h1a, b => h1b, c => h1c, d => h1d, e => h1e, f => h1f, g => h1g b2v_inst14 : hex_seg PORT MAP(h1 => NE, h2 => NF, h3 => NG, h4 => NH, a => h2a, 17
b => h2b, c => h2c, d => h2d, e => h2e, f => h2f, g => h2g b2v_inst15 : wybor o => o1a, d => d1a, h => h1a, seg => a1 b2v_inst16 : wybor o => o1b, d => d1b, h => h1b, seg => b1 b2v_inst17 : wybor o => o1c, d => d1c, h => h1c, seg => c1 b2v_inst18 : wybor o => o1d, d => d1d, h => h1d, seg => d1 b2v_inst19 : wybor o => o1e, d => d1e, h => h1e, seg => e1 b2v_inst20 : wybor o => o1f, d => d1f, h => h1f, seg => f1 18
b2v_inst21 : wybor o => o1g, d => d1g, h => h1g, seg => g1 b2v_inst22 : wybor o => o2a, d => d2a, h => h2a, seg => a2 b2v_inst23 : wybor o => o2b, d => d2b, h => h2b, seg => b2 b2v_inst24 : wybor o => o2c, d => d2c, h => h2c, seg => c2 b2v_inst25 : wybor o => o2d, d => d2d, h => h2d, seg => d2 b2v_inst26 : wybor o => o2e, d => d2e, h => h2e, seg => e2 b2v_inst27 : wybor o => o2f, d => d2f, h => h2f, 19
seg => f2 b2v_inst28 : wybor o => o2g, d => d2g, h => h2g, seg => g2 a1 <= NOT(a1 b1 <= NOT(b1 c1 <= NOT(c1 d1 <= NOT(d1 e1 <= NOT(e1 f1 <= NOT(f1 g1 <= NOT(g1 a2 <= NOT(a2 b2 <= NOT(b2 c2 <= NOT(c2 d2 <= NOT(d2 e2 <= NOT(e2 f2 <= NOT(f2 g2 <= NOT(g2 END bdf_type; 20