Baixe o app para aproveitar ainda mais
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
Compartilhar