Buscar

lab 09 -Introdução VHDL

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 4 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

1 
 
Objetivo 
Após a conclusão desse laboratório ,você deverá estar apto à: 
• Criar um circuito lógico combinacional simples em VHDL usando Max+PlusII Text Editor 
• Atribuir a um dispositivos e números de pinos e compilar o código em VHDL no design file 
• Descarregar o arquivo para o PLD ALTERA 
 
Referência Dueck , Robert K., Digital Design with CPLD Applications and VHDL 
 Chapter 4: Introduction to PLDs and MAX+PLUS II; 
4.6 Text Desing File (VHDL 
 
Notas do Experimento 
 
VHDL tem suporte para VHSIC Hardware Description Language (VHSIC=Very High Speed Integrated Circuit . 
VHDL é uma linguagem de programação padrão industrial para simulações e síntese de circuitos digitais.Nesse 
Laboratorio utilizaremos VHDL para inserir os projetos para alguns circuitos lógicos combinacionais simples,usando 
VHDL para equações Booleanas e tabelas verdades. 
Todo código VHDL necessita de uma declaração de entidade, qual descreve as entradas e saídas do projeto , e uma 
arquitetura de corpo , qual descreve as relações internas entre saídas e entradas.Dentro do corpo de arquitetura 
,conseguimos utilizar muitas instruções para descrever nosso projeto.Utilizaremos dois dos mais simples :concurrent 
signal assignment statement ,qual pode ser usado para implementar expressões Booleanas e a selected signal 
assignment statement , qual pode ser usado entre outras coisas também para implementar a tabela verdade. 
No exemplo abaixo Figura 5.1 o circuito tem a expressão Y=AB+BC+AC. 
A saída do circuito é 1 se ao menos duas das três entradas forem 1 . A concurrent signal assignment statement 
codificaria essa expressão a seguir . 
Y<=(a and b) or (b and c); 
 
 
Figura 5.1 
 
 
 
 
ROTEIRO DE LABORATÓRIO 
Unidade: Faculdade Politécnica de Jundiaí 
 
Curso: Engenharia Computação 
 
Disciplina: Sistemas Digitais 
 
Horas previstas para a atividade: 3 h 20 min 
 
Circuitos: Introdução ao VHDL utilizando o software MaxPlusII e Kit Altera 
 
 
 
 
O codigo completo sera: 
 
--maj_vot2.vhd 
--declaração de atribuição 
Library IEEE; 
USE IEEE.std_logic_1164.ALL; 
 
ENTITY maj_vot2 IS 
PORT ( 
a,b,c : IN STD_LOGIC; 
Y : OUT STD_LOGIC); 
END maj_vot2; 
ARCHITECTURE a OF maj_vot2 IS 
Begin 
Y<=(a and b) or (b and c); 
End a; 
 
 
Codificando a tabela verdade em VHDL 
 
Conseguimos codificar a tabela verdade usando o selected signal assignment statement.Observe a tabela 5.1. 
Na declaração de uma entidade de um arquivo VHDL.conseguimos combinar valores de entrada para D1 e D0 como 
um vetor de 2bits com o tipo STD_LOGIC_VETOR. 
 
D: IN STD_LOGIC_VECTOR ( 1 down 0 ) ; 
 
D1 D0 Y 
0 0 0 
0 1 1 
1 0 1 
1 1 0 
 
Tabela5.1 
 
Essa tabela verdade pode ser codificada pelo seguinte código; 
With d select 
Y<= 
 
 
 
 
 
 
 
O valor de saída é mostrado no lado esquerdo de cada linha nas declarações e são correspondentes com as 
combinações das entradas no lado direito.Incluimos a clausula “others” porque as entradas STD_LOGIC_VECTOR 
não são inteiramente especificadas pela combinação 0 e 1.A clausula “others” especifica o valor padrão de saída.A 
seguir o código completo em VHDL 
 
--xor2.vhd 
--xor tabela verdade usando um selected signal assignment statement 
Library IEEE; 
USE IEEE.std_logic_1164.ALL; 
 
ENTITY xor2 IS 
PORT( 
d: IN STD_LOGIC_VECTOR( 1 down 0); 
y: OUT STD_LOGIC); 
END xor2; 
ARCHITECTURE a OF xor2 IS 
BEGIN 
WITH d SELECT 
‘0’ when “00” 
‘1’ When “01” 
‘1’ When “10” 
‘0’ When “11” 
‘0’ When Others; 
 
 
Y <= 
 
 
 
 
End a; 
The majority vote circuit da Figure 5.1 pode ser descrito pela tabela verdade na figura 5.2 
 
Since the inputs have differents names,rather than the same name with different subscripts,we must group them int an 
internal 3-bit signal if we want to use them as selection inputs in a selected signal assignment statement. We do this by 
defining a signal called inputs (we can choose any name for this signal ) in the declaration region of the architecture 
body,just before the BEGIN statement: 
 
Signal inputs : STD_LOGIC_VECTOR ( 2 down 0 ) ; 
 
A B C Y 
0 0 0 O 
0 0 1 O 
0 1 0 O 
0 1 1 1 
1 0 0 0 
1 0 1 1 
1 1 0 1 
1 1 1 1 
TABELA 5.2 
 
Um sinal é uma construção interna que conecta duas ou mais porções de um projeto, bem como um pedaço de fio 
.Dentro da arquitetura do corpo , nos atribuímos as entradas a,b,c para vários bits de sinal.Conseguimos fazer isso de 
duas maneiras .Podemos concatenar as entradas utilizando o operador & . 
Inputs=a&b&c; 
Ou podemos atribuir cada bit de entrada para os bits de sinal. 
 
Inputs(2)<=a; 
Inputs(1)<=b; 
Inputs(0)< =c; 
 
A figura 5.2 e 5.3 mostra o efeito da atribuição de portas de entrada para o sinal interno de 3-bits.Figura 5.2 mostra 
como um bloco de 3-bit, com os bits designados de 2 da esquerda para o 0 da direita , com a o nome das portas 
atribuídos para a posição dos bits do sinal.A figura 5.3 mostra como as 3 portas de entrada podem ser imaginadas 
sendo anexadas juntas em um único sinal dentro da VHDL design identity 
 
 
 
Procedimentos 
 
1-Usando o MAX+PLUS II Text Editor para acessar o arquivo VHDL for the majority circuit,usando as instruções para 
declarações e atribuições nos exemplos anteriores.Salve o arquivo como drive:\max2work\lab05\maj_vot2.vhd e 
selecione em “Set the Project to the current file”.Atribua ao dispositivo EPM7128SLC84-7 .Atribua os números dos 
pinos( Assign pin numbers ) de entrada e saída conforme tabela 5.3 .Compile o projeto e descarregue-o para a placa 
ALTERA.Obtenha a tabela verdade para o circuito. 
 
‘0’ When “00” 
‘1’ When “01” 
‘1’ When “10” 
‘0’ When “11” 
‘0’ When Others; 
Figure 5.3 
 
 
2-Repita o primeiro procedimento, porem codifique the majority vote circuit usando a selected signal assignment 
statement, como mostrados na seção de anotações .Salve o arquivo como drive:\\max2work\lab05\maj_vot3.vhd e 
selecione a opção “set the Project to the current file”.Atribua os números dos pinos conforme a tabela 5.3 , compile o 
projeto.Faça a tabela verdade do circuito programado e mostre ao seu instrutor. 
 
3 Observe a tabela 5.4 e escreva a expressão booleana representada pela tabela verdade e simplifique o máximo 
possível . 
A B C D Y 
0 O 0 0 1 
0 O 0 1 1 
0 O 1 0 0 
0 O 1 1 0 
0 1 0 0 0 
0 1 0 1 0 
0 1 1 0 1 
0 1 1 1 0 
1 0 0 0 0 
1 0 0 1 0 
1 0 1 0 0 
1 0 1 1 1 
1 1 0 0 0 
1 1 0 1 1 
1 1 1 0 0 
1 1 1 1 0 
TABELA 5.4 
 
 
 
 
4-)Faça um projeto em VHDL que utiliza concurrent signal assignment statement para codificar a expressão Booleana 
obtida no procedimento 3 .Salve o arquivo como drive:\\max2work\lab05\proc3.vhd 
 
Note que em toda operação lógica em VHDL tem precedentes iguai , então essas precedência precisa ser especificada 
com parênteses .Por exemplo , o produto do termo A’BCD’ deve ser escrito como ((not a) and b and c ( not d)). 
 
Execute o Assign device e selecione como EPM 7128SLC84-7 ou EPM 7128SLC84-15 , e selecione os pinos de acordo 
com a tabela 5.5.Compile o arquivo e descarregue para a placa ALTERA.Obtenha a tabela verdade e apresente-a ao 
seu instrutor. 
 
PIN NAME PIN NUMBER 
A 34 
B 33 
C 36 
D 35 
Y 44 
 
TABELA 5.5(Atribuição dos pinos para o circuito descrito da tabela 5.4) 
 
5-Construa um arquivo VHDL que utiliza a selected signal assignment statement para codificar a tabela verdade da 
tabela 5.4 .Salve o arquivo como drive:\\max2work\lab05\proc5.vhd e selecione em “Set Project to the current 
file”.Atribua o dispositivo e os pinos igual ao procedimento 4 .Compile o arquivo e descarregue para a placa 
ALTERA.Obtenha a tabela verdade do dispositivo programado e apresente-o ao instrutor

Outros materiais