Előadást letölteni
Az előadás letöltése folymat van. Kérjük, várjon
1
Digitális rendszerek II.
Multiplexelés
2
Feladat Az FPGA panel 4 db 7 szegmenses kijelzőjén meg kell jeleníteni az egyenként 2 bites (0,1,2,3) számokat CLK50 P54 Programozó Kapcsoló LENT kell lennie! Tolókapcsolók RESET (P41)
3
RST digit(3:0) seg(6:0) kapcsolo(7:0)
4
Mi a multiplexer? Egy kombinációs áramkör, ahol van több sorszámozható bemenet és egy címbemenet. A címbemenet aktuális értékétől függ, hogy a kimeneten melyik bemeneti érték jelenik meg (olyan mint egy kapcsoló) címbemenet N0 N1 N2 N3 kimenet
5
Állapotgráf RST F0 F1 F2 F3 1 ms-ot vár 1 ms letelt 1 ms-ot vár
6
Kijelző multiplexelése aktív „0” jellel
Bekapcsoljuk A0-t és kiírjuk a számot a kijelzőre, várunk 1 ms-ot Kikapcsoljuk A0-t és bekapcsoljuk A1-et, várunk 1 ms-ot Stb. Olyan gyorsan villog minden kijelző (4 ms-onként), hogy az emberi szem ezt folyamatos világításként érzékeli
7
clk50 rst kapcsolok(7:0) digit(3:0) seg(6:0)
8
Modulok kapcsolok(7:0) N0 clk50 Állapot cd(1:0) Hexa-> Számjegy
kiválasztó Állapot generátor Hexa-> 7 seg kódoló clk50 cd(1:0) N1 curr(1:0) rst seg(6:0) N2 engedélyező N3 cim Digit kijelölő engedélyező digit(3:0)
9
Portok (be- és kimenetek)
library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; entity modul is Port ( clk50 : in STD_LOGIC; rst : in STD_LOGIC; kapcsolok : in STD_LOGIC_VECTOR (7 downto 0); digit : out STD_LOGIC_VECTOR (3 downto 0); seg : out STD_LOGIC_VECTOR (6 downto 0)); end modul;
10
Signal (változók) architecture Behavioral of modul is constant teszt1ms: std_logic_vector(31 downto 0) := conv_std_logic_vector(50000,32); signal curr : std_logic_vector(3 downto 0); --akt. multiplexalt dekad signal frissit_szlo : std_logic_vector(31 downto 0); signal cd: std_logic_vector(1 downto 0); --dekadszamlalo signal bcdint : std_logic_vector(15 downto 0); Begin bcdint <= "00" & kapcsolok(7 downto 6) & "00" & kapcsolok(5 downto 4) & "00" & kapcsolok(3 downto 2) & "00" & kapcsolok(1 downto 0);
11
Process (minden órajelnél lefut)
process (clk50, rst, cd) begin if rst='1' then cd <= (others => '0'); frissit_szlo <= (others => '0'); elsif clk50'event and clk50 = '1' then frissit_szlo <= frissit_szlo +1; if frissit_szlo = teszt1ms-1 then cd <= cd + 1; end if; end process; Érzékenységi lista
12
Feltételes értékadások
curr <= bcdint(3 downto 0) when cd ="00" else bcdint(7 downto 4) when cd ="01" else bcdint(11 downto 8) when cd ="10" else bcdint(15 downto 12); digit <= "1111" when rst= '1' else "1110" when cd= "00" else "1101" when cd= "01" else "1011" when cd= "10" else "0111"; seg <= " " when rst= '1' else " " when curr= "0000" else " " when curr= "0001" else " " when curr= "0010" else " "; end Behavioral;
13
ZH Konzultáció: 2009.12.2. (szerda)
Jelentkezni az ajtóra kitett papíron lehet majd ZH: (csütörtök) Honlapot nézni hétvégén!
14
NIK Portál http://nikportal.cickany.hu/
Hasonló előadás
© 2024 SlidePlayer.hu Inc.
All rights reserved.