UNIVERSIDADE FEDERAL DE SANTA CATARINA EEL5105 – Circuitos e Técnicas Digitais Prof. Eduardo L. O. Batista EXPERIMENTO 1 – INTRODUÇÃO AO L ABORATÓRIO A. Introdução O Quartus II é um software utilizado para o projeto de circuitos e sistemas lógicos com foco nos dispositivos lógicos programáveis (FPGAs – field-programmable gate arrays - e CPLDs – complex programmable logic devices) produzidos pela Altera Corporation. A DE2 é uma placa educacional e de desenvolvimento que possui, além de diversos periféricos (chaves, botões, leds, displays de cristal líquido e 7 segmentos, rede, wireless, VGA, serial, dentro outros), um FPGA da Altera como componente principal. Assim, iremos utilizar, ao longo desse semestre, o Quartus II para a realização dos projetos de circuitos lógicos e a DE2 para o seu teste e avaliação. Nesse contexto, o objetivo da primeira aula de laboratório é familiarizar o aluno com o Quartus II e a DE2. B. Ligando a placa DE2 1) O primeiro passo para ligar a placa DE2 é retirá-la de sua caixa e colocá-la sobre a bancada. Atenção: o manuseio da DE2 deve ser feito com muito cuidado. Segure a placa apenas pelas suas laterais ou pela proteção acrílica superior transparente. Evite colocar os dedos nos componentes uma vez que a energia estática do seu corpo pode danificá-los. 2) Com a placa colocada sobre a bancada, pegue a fonte de energia, também disponível na caixa da DE2, e ligue essa fonte no conector indicado como 9V DC Power Supply Connector na Figura 1. Com a fonte ligada na placa, ligue também a sua outra extremidade na tomada. 3) Agora, pegue o cabo USB disponível na caixa da placa, ligue uma extremidade desse cabo na USB Blaster Port, indicada na Figura 1, e a outra extremidade em uma das portas USB do computador. Atenção: não ligue o cabo USB na entrada USB Device da placa pois nesse caso não será possível estabelecer comunicação com o computador. 4) Realizados os passos anteriores, aperte o botão liga/desliga (ver Power ON/OFF Switch na Figura 1) e sua placa deverá funcionar corretamente. Figura 1. Visão geral da placa DE2 da Altera. C. Familiarização com a placa e o ambiente de desenvolvimento 1) Com a placa em funcionamento, baixe o arquivo “Lab01_projeto.zip” disponível no site da disciplina e descompacte esse arquivo na pasta “c:\alunos\EEL5105\lab01”. Atenção: o caminho do diretório para o qual o arquivo será descompactado não deve conter espaços. 2) Agora, execute o software Quartus II 10.0sp1 Web Edition (a versão 9.1sp2 também pode ser utilizada). Com o software em funcionamento, acesse o menu File e a opção Open Project (File → Open Project...) para abrir o projeto “ProjetoLab01.qpf” disponível na pasta destino da descompactação. Atenção: não use a opção “File → Open” para abrir o projeto, mas sim a “File → Open Project”. 3) Uma vez aberto o projeto, clique na entidade “ProjetoLab01” disponível na aba Hierarchy do Project Navigator do Quartus II (ver a caixa vermelha de número 1 na Figura 2). 4) Com o projeto e a entidade principal abertos, você deverá ver uma janela similar à apresentada na Figura 2. O espaço indicado pela caixa azul de número 2 nessa figura é a área de trabalho onde serão projetados circuitos digitais através de uma metodologia de projeto em modo esquemático. Observe que estão disponíveis, nessa área de trabalho, grupos de chaves, botões, leds vermelhos e leds verdes. Esses grupos de entradas (chaves e botões) e saídas (leds vermelhos e verdes) têm correspondência direta com alguns dos dispositivos disponíveis na placa DE2. Assim, sempre que chaves, botões e/ou leds da placa forem utilizados, ligações apropriadas deverão ser feitas na área de trabalho para que essas ligações sejam depois mapeadas para a placa. Para testar esse procedimento, faça algumas ligações de chaves em leds utilizando a ferramenta Orthogonal Node Tool disponível na barra de ferramentas Drawing Tools (ver caixa verde de número 3 na Figura 2). Atenção: você não deve ligar duas entradas (chaves ou botões) em um mesmo caminho/ponto pois isso irá gerar erros que poderão danificar a placa. 5) Com algumas ligações feitas, o próximo passo é mapear o projeto desenvolvido para o FPGA disponível na placa clicando no botão Start Compilation disponível na barra de ferramentas padrão do Quartus II (ver caixa laranja de número 4 na Figura 2). Ao final do processo de mapeamento/compilação você deverá receber uma mensagem de sucesso do Quartus II. Em caso de mensagem de erro, verifique se os passos anteriores foram seguidos corretamente e, se necessário, chame o professor. 6) Finalizada a compilação, o próximo passo é gravar o projeto no FPGA disponível na placa, o que é feito clicando no botão Programmer disponível na barra de ferramentas padrão do Quartus II (caixa laranja de número 4 na Figura 2). Ao clicar nesse botão, uma janela similar à apresentada na Figura 3 será aberta. Caso o botão presente nessa janela esteja desativado, verifique primeiramente se a placa está ligada corretamente, depois clique em e selecione a USB-Blaster como hardware ativo (usando a opção Currently selected hardware). Clique então no botão para iniciar o processo de gravação. 7) Terminado o processo de gravação, feche a janela Programmer, para garantir que em um próximo processo de gravação uma compilação antiga seja utilizada, e teste o mapeamento de ligações que você fez acionando os botões e chaves da placa. 4 3 1 2 Figura 2. Captura de tela do Quartus II com o “ProjetoLab01” aberto. Figura 3. Captura da tela de programação de dispositivo do Quartus II. D. Convertendo números binários puros para BCD Após o primeiro contato com o Quartus II e a placa DE2, vamos agora implementar um sistema digital que faz a conversão de um número binário puro para BCD. Esse sistema foi projetado previamente e você deverá fazer sua inclusão na área de trabalho e o seu mapeamento para a DE2. 1) Primeiramente, apague todas as ligações que foram feitas entre entradas e saídas a partir das instruções do exemplo anterior. Para apagar essas ligações, utilize a Selection Tool [disponível na barra de ferramentas Drawing Tools (caixa verde de número 3 na Figura 2)] para selecionar as ligações existentes e depois a tecla delete do teclado para apagá-las. 2) Agora, para inserir o conversor binário para BCD previamente projetado, clique na Symbol Tool para abrir uma nova janela de seleção de símbolos. No campo Libraries (presente nessa nova janela) expanda o grupo Project, selecione o símbolo “bin2bcd” e clique em Ok. Agora você poderá adicionar o conversor de binário puro para BCD em seu projeto posicionando o símbolo em uma posição qualquer da área de trabalho (de preferência na parte central entre os símbolos de chaves e de leds) e dando um clique com o botão esquerdo do mouse. Feito isso, aperte ESC para voltar ao uso da Selection Tool . 3) O símbolo do conversor binário para BCD que você deverá estar observando em sua área de trabalho é o apresentado na Figura 4(a). À esquerda desse símbolo temos as 4 entradas (X[0] a X[3]), que devem receber um número binário puro, enquanto que à direita temos as 8 saídas (Y[0] a Y[7]) nas quais serão apresentados os 8 bits correspondentes ao código BCD do número binário colocado nas entradas. De maneira geral, essa é a notação dos blocos que vamos utilizar: entradas à esquerda e saídas à direita. Faça agora a ligação das entradas do seu conversor binário para BCD em 4 chaves e também a ligação das saídas em 8 leds. Faça essa ligação em uma seqüência coerente (por exemplo, X[3] a X[0] em SW[3] a SW[0] e, ainda, Y[7] a Y[0] em LEDG[7] a LEDG[0]) para que você possa entender claramente o que está acontecendo. 4) Com as ligações prontas, repita o processo de compilação e gravação descritos nos itens 5 e 6 da seção anterior e teste o conversor binário para BCD acionando as chaves da placa. 5) Com o conversor binário para BCD em funcionamento, monte uma tabela relacionando todos os valores possíveis que podemos ter nas entradas com os valores que deveriam ser obtidos nas saídas, conferindo posteriormente os valores da tabela com os obtidos a partir do sistema em funcionamento. Além disso, explique por que o conversor binário para BCD que estamos utilizando possui 8 bits de saída. E. Convertendo BCD para binário puro Agora que você já está familiarizado com a montagem e a conexão de um circuito digital usando o Quartus II e a DE2, faça a montagem de um conversor BCD para binário e teste o seu funcionamento. Para tal, você deverá: (a) remover os itens que você incluiu em sua área de trabalho a partir as instruções da seção anterior; (b) incluir o bloco “bcd2bin” (previamente projetado) em sua área de trabalho seguindo os passos 1 a 4 da seção anterior. Esse bloco, ilustrado na Figura 4(b), realiza a conversão de um número BCD para binário, possuindo 8 entradas para um número codificado em BCD, 7 saídas onde será apresentado o binário puro correspondente e, ainda, uma saída de erro. Com o objetivo de facilitar o entendimento do funcionamento do bloco “bcd2bin”, faça a ligação das suas entradas em chaves (de forma seqüencial), das suas saídas Y[6] a Y[0] em leds verdes (também de forma seqüencial) e da saída de erro em um led vermelho. Posteriormente, faça a compilação, a gravação e o teste do circuito que você projetou. Ainda, explique a função da saída de erro e por que o bloco “bcd2bin” possui 7 saídas para apresentar o resultado da conversão numérica. (a) (b) (c) Figura 4. Símbolos dos diferentes blocos utilizados nesse primeiro experimento. F. Conversão BCD para binário puro com memória Para finalizar o primeiro experimento, você deverá implementar e verificar o funcionamento de um conversor BCD para binário puro com memória. Assim como nos casos anteriores, esse conversor já foi previamente projetado, sendo que você deve incluir o seu bloco “bcd2binmem” na área de trabalho e fazer as ligações apropriadas. Note que esse conversor possui uma entrada extra denominada “GRAVA”. Faça as ligações da seguinte forma: entradas X[0] a X[7] em chaves, entrada “GRAVA” em um dos botões (KEY[0] por exemplo), saídas Y[0] a Y[6] em leds verdes e saída de erro em um led vermelho. Faça a compilação, a gravação e o teste do projeto com os objetivos de entender o funcionamento do bloco “bcd2binmem” e observar a sua característica de memória.