|
Kategorie: Diplomové, bakalářské práce |
Tento dokument chci!
V diplomové práci se zaměřuji na návrh schematu laboratorního přípravku a prostudování způsobů programování obvodů CPLD firmy Altera. Přípravek slouží pro vývoj a demonstraci aplikací v obvodech CPLD firmy Altera. Přípravek je navržen proprogramování kabely Altera a Presto (výrobce ASIX). Vstupní signály jsou realizovány soustavou přepínačů a tlačítek na desce. Stavy výstupů jsou zobrazovány na LED diodách, případně na připojeném multiplexním displeji. Uživatel má možnost připojit externí zařízení, přes externí vstupy. Práce je dále zaměřena na návrh desky plošných spojů laboratorního přípravku, následné výrobě, oživení přípravku a ověření kompatibility programátorů ALTERA aPRESTO. Závěr práce je zaměřen na práci s návrhovým prostředím QUARTUS II. Zejména se jedná o návod na práci se šablonami a simulací VHDL konstrukcí.
5 Převod BIN HEX zdrojový kód
library IEEE;
use IEEE.ALL;
ENTITY disp IS
PORT(clk50, kH, khertz: STD_LOGIC;
sw: STD_LOGIC_VECTOR (11 DOWNTO 0);
digit: OUT STD_LOGIC_VECTOR(5 DOWNTO 0);
seg: OUT STD_LOGIC_VECTOR(7 DOWNTO 0);
diod: OUT STD_LOGIC_VECTOR(11 DOWNTO 0);
tl1, tl2, tl3, tl4, tl5: STD_LOGIC
);
END disp;
ARCHITECTURE Behavioral disp IS
SIGNAL cd: STD_LOGIC_VECTOR(2 DOWNTO "000";
SIGNAL curr: STD_LOGIC_VECTOR(3 DOWNTO "0000";
SIGNAL dp: STD_LOGIC '0';
SIGNAL bcdint: STD_LOGIC_VECTOR(23 downto 0);
SIGNAL sw1: STD_LOGIC_VECTOR(11 downto 0):= "111111111111";
SIGNAL tlacitko: STD_LOGIC_VECTOR downto 0):= "00000";
BEGIN
PROCESS (clk50) BEGIN
IF clk50'event AND clk50 '1' THEN
bcdint sw1;
IF khertz_en '1' THEN
cd 1;
IF "101" THEN
cd "000";
END IF;
END IF;
-- podle "ukazatele" aktivovana prislusna pozice (aktivni 0)
CASE curr zobrazena cifra, digit pozice displeji
WHEN "000" curr bcdint(3 DOWNTO 0); digit <="111110"; <='0';
WHEN "001" curr bcdint(7 DOWNTO 4); digit <="111101"; <='0';
WHEN "010" curr bcdint(11 DOWNTO 8); digit <="111011"; <='0';
WHEN "011" curr bcdint(15 DOWNTO 12); digit<="110111"; <='0';
WHEN "100" curr bcdint(19 DOWNTO 16); digit<="101111"; <='0';
WHEN OTHERS curr bcdint(23 DOWNTO 20);digit<="011111"; <='0';
END CASE ;
-- nastaveni prislusneho znaku segmentovce podle BCD kodu vstupu
CASE curr IS
WHEN "1111" seg "0111111"; 0
WHEN "1110" seg "0000110"; 1
WHEN "1101" seg "1011011"; 2
WHEN "1100" seg "1001111"; 3
WHEN "1011" seg "1100110"; 4
WHEN "1010" seg "1101101"; 5
WHEN "1001" seg "1111101"; 6
WHEN "1000" seg "0000111"; 7
WHEN "0111" seg "1111111";.STD_LOGIC_UNSIGNED.43
B.ALL;
use IEEE.ALL;
use IEEE.STD_LOGIC_ARITH.STD_LOGIC_1164