Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
RA11079312
RA11004911
Pedro Pennachi
RA 21038414
00112233
Santo Andr
2016
1. Introduo
O VHDL (Very High Speed ASIC Description Language) uma linguagem de
descrio de hardware, ou seja, uma forma estruturada para a descrio de circuitos
digitais. Esse tipo de linguagem permite que o circuito eletrnico seja descrito com
sentenas, tais como em uma linguagem de programao, com a grande vantagem
de poder ser simulado antes de ser salvo no FPGA.
O uso da linguagem VHDL vem crescendo com o passar dos anos pois
permite projetar circuitos digitais de forma muito mais rpida, e tambm permite uma
portabilidade maior para os projetos, garantindo assim longevidade.
2. Objetivo
O objetivo da aula prtica foi o de implementar um circuito controlador de
motor de passo com auxlio do KIT DE2-115 da Altera e fazer a simulao do
funcionamento desse circuito mediante uso do programa Quartus II.
O controlador composto basicamente por um contador e um circuito
decodificador para decodificar os estados do contador (Figura 1). O contador binrio
tem duas sequncias de contagem (crescente e decrescente). O circuito deve
aceitar todas as formas tpicas de funcionamento. A interface deve funcionar de um
entre quatro modos: Passo completo decodificado, meio passo decodificado, wavedrive decodificado, e acionamento direto no decodificado O modo selecionado
atravs dos bits M1 e M0 (ao todo quatro modos de funcionamento). A interface
recebe ento como entradas, os bits de controle, um pulso de passo e um bit de
controle de sentido.
3. Resultados
3.1 - Cdigo VHDL
O seguinte cdigo VHDL implementado foi o seguinte:
LIBRARY ieee;
USE IEEE.STD_LOGIC_ARITH.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
USE ieee.std_logic_1164.all;
ENTITY motor_passo IS
PORT (
step, dir: IN BIT;
m: IN BIT_VECTOR (1 DOWNTO 0);
cin: IN BIT_VECTOR (3 DOWNTO 0);
q: OUT INTEGER RANGE 0 to 7;
cout: OUT BIT_VECTOR (3 DOWNTO 0));
END motor_passo;
ARCHITECTURE verification OF motor_passo IS
BEGIN
PROCESS(step)
VARIABLE count: INTEGER RANGE 0 TO 7;
BEGIN
--estrutura do contador
IF(step'EVENT AND step ='1') THEN
IF dir = '1' THEN count:= count + 1; --contagem crescente
ELSE count:= count - 1;
--contagem decrescente
END IF;
END IF;
q <= count;
-- definicao dos modos de operacao
CASE m IS
WHEN "00" => --passo completo
CASE count IS
WHEN 0 => cout <= "1010";
WHEN 1 => cout <= "1001";
WHEN 2 => cout <= "0101";
WHEN 3 => cout <= "0110";
WHEN 4 => cout <= "1010";
WHEN 5 => cout <= "1001";
WHEN 6 => cout <= "0101";
WHEN 7 => cout <= "0110";
END CASE;
WHEN "01" => --wave drive
CASE count IS
WHEN 0 => cout <= "1000";
WHEN 1 => cout <= "0001";
WHEN 2 => cout <= "0100";
WHEN 3 => cout <= "0010";
WHEN 4 => cout <= "1000";
WHEN 5 => cout <= "0001";
WHEN 6 => cout <= "0100";
WHEN 7 => cout <= "0010";
END CASE;
WHEN "10" => --meio passo
CASE count IS
WHEN 0 => cout <= "1010";
WHEN 1 => cout <= "1000";
WHEN 2 => cout <= "1001";
WHEN 3 => cout <= "0001";
WHEN 4 => cout <= "0101";
WHEN 5 => cout <= "0100";
WHEN 6 => cout <= "0110";
WHEN 7 => cout <= "0010";
END CASE;
WHEN "11" => --acionamento direto
cout <= cin;
END CASE;
END PROCESS;
END verification;
4. Concluso
Com esta prtica foi possvel verificar a implementao de cdigo VHDL, sua
simulao e implantao em hardware. Atravs destas ferramentas foi possvel implementar
o controle de um motor de passo, em quatro diferentes modos de operao. Atravs das
simulaes, os resultados obtidos foram comparados com os resultados esperados e foram
compatveis. O design foi implantado em hardware. Utilizando chaves, push-buttons e
indicadores luminosos, foram simuladas as entradas e sadas. Em cada modo de operao
foi possvel verificar o comportamento de um motor de passo, verificando atravs de sinais
luminosos, o comportamento de suas bobinas. Estes resultados verificados na pratica,
tambm corresponderam aos resultados.
Referncias Bibliogrficas
DAMORE, Roberto; "Descrio e Sntese de Circuitos Digitais", LTC-Livros
Tcnicos
Cientficos
Editora
S.A.,
2005.
2002.
SALSIC, Zoran; SMAILAGIC, A.; "Digital systems design and prototyping using field
programmable logic and hardware description languages", Kluwer Academic
Publishers, 2000.
TOCCI, Ronald J.; WIDMER, Neal S.; MOSS, Gregory L.; Sistemas digitais princpios e aplicaes; 11 Edio, Pearson, 2015