Índice 1 Práticas de Laboratório 7 1.1 Construindo um Circuito TTL (Transistor-Transistor Logic) . . . . . . . . . . . . . . . . . 8 1.2 Introdução a ferramenta EDA Quartus II 9.1 . . . . . . . . . . . . . . . . . . . . . . . . . 12 1 2 ÍNDICE Lista de Figuras 1.1 1.2 As quatro cidades com as rodovias percorridas pelos professores . . . . . . . . . . . . . . . A interface do equipamento a ser desenvolvido . . . . . . . . . . . . . . . . . . . . . . . . 8 8 1.3 1.4 Uma visão de alto nı́vel do circuito lógico com entradas e saı́das binárias . . . . . . . . . . As melhores rotas entre cada duas cidades . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 9 1.5 Algoritmo para a rodovia 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 1.6 1.7 Expressão lógica obtida da figura 1.5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Circuito em notação de portas lógicas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 11 1.8 1.9 Implementação em TTL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Assistente de criação de projetos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 12 1.10 Informando o diretório, nome e arquivo principal do projeto . . . . . . . . . . . . . . . . . 13 1.11 Seleção da famı́lia de FPGA a ser utilizada . . . . . . . . . . . . . . . . . . . . . . . . . . 14 1.12 Resumo das configurações do projeto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 1.13 Seleção do arquivo de diagrama de bloco . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.14 Inserção de sı́mbolos no diagrama de bloco . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 16 1.15 Resultado da compilação do projeto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 1.16 Associação dos pinos do circuito aos pinos do chip . . . . . . . . . . . . . . . . . . . . . . 1.17 Criação do arquivo de formas de ondas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 18 1.18 Insert Node or Bus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 1.19 Inserção dos nodos ao arquivo de formas de ondas . . . . . . . . . . . . . . . . . . . . . . 19 1.20 Localização dos nodos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 1.21 Relatório das formas de ondas geradas na simulação do circuito . . . . . . . . . . . . . . . 1.22 Seleção do hardware e do código para download . . . . . . . . . . . . . . . . . . . . . . . . 20 21 3 4 LISTA DE FIGURAS Lista de Tabelas 1.1 Tabela verdade para o circuito lógico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 10 6 LISTA DE TABELAS Capı́tulo 1 Práticas de Laboratório 7 8 CAPÍTULO 1. PRÁTICAS DE LABORATÓRIO 1.1 Construindo um Circuito TTL (Transistor-Transistor Logic) Objetivos: Antes de iniciarmos o uso das ferramentas EDA, faremos uma aula experimental com circuitos denominados TTL (Transistor-Transistor Logic). Estes circuitos foram introduzidos nos anos 70 pelas indústrias de semicondutores e foram os responsáveis pelos inúmeros avanços no desenvolvimento de hardware. Entretanto, com o advento de novas tecnologias, estes circuitos deixaram de ser fabricados e seu uso atualmente está praticamente encerrado. Algumas escolas ainda os utilizam por falta exclusivamente de opções, pois as ferramentas EDA têm um custo relativamente alto para a maioria das escolas brasileiras. Devido a sua importância, apenas para efeito de demonstração, faremos uma aula com a tecnologia TTL. Problema a ser resolvido: Este exemplo foi baseado no livro [1], e adaptado às nossas realidades. A USP decidiu desenvolver um equipamento para auxiliar seus professores em suas viagens entre as universidades de quatro cidades. O equipamento irá fornecer a melhor rota entre duas cidades, baseada no comprimento das rodovias utilizadas: R1 3̄km, R2 3̄km, R3 5̄km, R4 1̄0km, R5 1̄5km e R6 3̄km. Na figura 1.1 são apresentadas as opções de rotas de viagem que um professor pode escolher saindo de um determinado ponto e chegando a seu destino. Figura 1.1: As quatro cidades com as rodovias percorridas pelos professores Na figura 1.2 é apresentada a interface com o usuário do equipamento a ser desenvolvido. Trata-se de um equipamento pequeno (do tamanho de um Pager), onde o professor deverá ligar as chaves das cidades de origem e destino, e após o processamento do circuito TTL os LEDs com os nomes das rodovias que formam o melhor caminho deverão acender. Na figura 1.3 é apresentada uma visão de alto nı́vel do circuito a ser elaborado com entradas binárias. Figura 1.2: A interface do equipamento a ser desenvolvido 1.1. CONSTRUINDO UM CIRCUITO TTL (TRANSISTOR-TRANSISTOR LOGIC) 9 Figura 1.3: Uma visão de alto nı́vel do circuito lógico com entradas e saı́das binárias Etapas de desenvolvimento: Etapa 1: Inicialmente, vamos analisar todas as possibilidades de rotas entre as cidades e escolher as melhores rotas (ou seja, a menor distância entre elas). Elas são apresentadas na figura 1.4. Figura 1.4: As melhores rotas entre cada duas cidades A tabela 1.1 foi construı́da baseando-se na figura 1.4. Ela mostra a relação entre as cidades e as rodovias envolvidas na melhor rota entre elas. É importante observar que para as opções inválidas da tabela (casos impossı́veis e não previstos no circuito) terão como resposta as saı́das todas com valor zero. Etapa 2: A partir da tabela 1.1, iremos construir o algoritmo apresentado na figura 1.5 que mostra apenas a 10 CAPÍTULO 1. PRÁTICAS DE LABORATÓRIO São Carlos 1 1 1 0 0 0 0 0 0 0 1 0 1 1 1 1 Bauru 1 0 0 1 1 0 0 0 0 1 0 1 0 1 1 1 Entradas São Paulo 0 1 0 1 0 1 0 0 1 0 0 1 1 0 1 1 Ribeirão Preto 0 0 1 0 1 1 0 1 0 0 0 1 1 1 0 1 R1 1 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 R2 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 Saı́das R3 R4 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 R5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 R6 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 Tabela 1.1: Tabela verdade para o circuito lógico saı́da da implementação para a rodovia 3. Para a construção completa do equipamento, seria necessária a implementação do circuito de todas as rodovias. Figura 1.5: Algoritmo para a rodovia 3 Vamos agora introduzir uma notação técnica mais próxima da álgebra booleana. Na figura 1.6 é apresentada a mesma expressão, porém agora de modo mais próximo da implementação por circuitos TTL e com as devidas otimizações. Figura 1.6: Expressão lógica obtida da figura 1.5 Manipulando-se a expressão da figura 1.6, chegamos ao circuito apresentado na figura 1.7. Este circuito mapeado na tecnologia TTL é mostrado na figura 1.8. Etapa 3: Implemente o circuito da figura 1.8 na placa de proto-board e faça toda a sua verificação, montando uma tabela com os resultados obtidos. Compare a tabela obtida com a tabela 1.1 coluna Saı́da/R3. Elas são idênticas? Se não forem, verifique a fiação (conexão dos chips) e se não há circuitos TTL queimados em seu proto-board. 1.1. CONSTRUINDO UM CIRCUITO TTL (TRANSISTOR-TRANSISTOR LOGIC) Figura 1.7: Circuito em notação de portas lógicas Figura 1.8: Implementação em TTL 11 12 CAPÍTULO 1. PRÁTICAS DE LABORATÓRIO 1.2 Introdução a ferramenta EDA Quartus II 9.1 Objetivos: Um dos objetivos desta prática é apresentar o fluxo de desenvolvimento de projetos de hardware por meio da utilização da ferramenta EDA (Electronic Design Automation) Quartus II da Altera Corporation. Esta prática, em conjunto com o projeto que será passado em aula, também explora a utilização de alguns componentes presentes na placa DE2-70, como push buttons, switches, LEDs, display de sete segmentos e o FPGA (Field-Programmable Gate Array). Para atingir estes objetivos, um pequeno circuito lógico a ser dado em aula será construı́do, abordando as funções básicas da ferramenta e faremos a programação do circuito FPGA da placa DE2-70 para a implementação desse nosso circuito. A implementação deste circuito envolve as seguintes etapas: • Criação de um novo projeto na ferramenta; • Criação de diagramas de blocos; • Simulação do circuito e; • Programação do hardware. Etapas de desenvolvimento: Etapa 1: Para criar um novo projeto, inicie o Quartus II v9.1, clique em File, New Project Wizard.... A figura 1.9 mostra a primeira tela do assistente de criação de projetos. Figura 1.9: Assistente de criação de projetos O assistente irá auxiliá-lo na definição de um nome e um diretório para o projeto, além de outras informações necessárias tais como: 1.2. INTRODUÇÃO A FERRAMENTA EDA QUARTUS II 9.1 13 • Nome da entidade de mais alto nı́vel • Arquivos do projeto, outros arquivos fontes e bibliotecas usadas no projeto • Dispositivos (chip) e famı́lia a serem utilizadas para a compilação • Setup da ferramenta EDA. A seguir, clique em Next para iniciar o passo 1 da configuração de seu projeto onde serão informados o diretório de trabalho, o nome do projeto e o nome da entidade de mais alto nı́vel. A figura 1.10 apresenta este passo. Figura 1.10: Informando o diretório, nome e arquivo principal do projeto Agora, clique em Next para atingir o passo 2, onde podem ser adicionadas arquivos para comporem o projeto a ser criado. Como este projeto será implementado a partir do zero, não há nenhum arquivo para adicionarmos. Podemos avançar para o próximo passo clicando em Next novamente. No passo 3 vamos escolher a famı́lia do chip FPGA que será implementado em seu projeto. Uma vez que todas as práticas de laboratório estão sendo desenvolvidas para a placa DE2-70, selecione a famı́lia Cyclone II, em Package selecione FBGA, em Pin Count selecione 896 e em Speed grade selecione 6 conforme mostrado na figura 1.11. Por fim, selecione então em Available Devices o dispositivo EP2C70F896C6 e clique em Next. No passo 4 podem ser adicionadas outras ferramentas EDAs para serem incorporadas ao Quartus II. Este projeto será implementado com as ferramentas padrão do Quartus II e, deste modo, podemos avançar para o próximo passo clicando em Next novamente. A figura 1.12 mostra o resumo de todo o setup realizado até o passo anterior. Após verificar as opções apresentadas, o projeto será iniciado após clicar em Finish. Caso tenha a necessidade de nova opções, isso pode ser realizado retornando-se aos passos anteriores (clicar em Back e repetir os passos apresentados anteriormente), conforme a necessidade. Etapa 2: 14 CAPÍTULO 1. PRÁTICAS DE LABORATÓRIO Figura 1.11: Seleção da famı́lia de FPGA a ser utilizada Figura 1.12: Resumo das configurações do projeto 1.2. INTRODUÇÃO A FERRAMENTA EDA QUARTUS II 9.1 15 Após ter iniciado o projeto, devemos criar um novo arquivo necessário para elaborar o circuito do nosso projeto. Para criar este arquivo, devemos escolher o menu File, New, selecionar o tipo Block Diagram/Schematic File, conforme podemos verificar na figura 1.13 e clicar em OK. Figura 1.13: Seleção do arquivo de diagrama de bloco Para escolher os sı́mbolos que irão compor o projeto, basta realizar um clique duplo com o mouse na região livre do diagrama de blocos. Alternativamente, pode-se clicar com o botão direito do mouse em uma região livre do diagrama de blocos e escolher Insert e depois Symbol. A Figura 1.14, ilustra a inserção de uma porta AND. Construa seu projeto conforme instruções em aula inserindo os sı́mbolos necessários. Não existe uma ordem pré-definida para inserção dos sı́mbolos que compõem o circuito. Agora devemos salvar o diagrama de bloco e realizar a compilação do circuito. Para salvar, selecione o menu File, Save As... e digite o nome do arquivo, devendo ser o mesmo atribuı́do a entidade de mais alto nı́vel, o qual foi designado no inı́cio da criação do projeto. Além de digitar o nome do arquivo, devemos selecionar a opção Add file to current project para que este arquivo seja adicionado ao nosso projeto, e clique em Salvar. Para compilar o nosso projeto, selecione o menu Processing, Start Compilation. A figura 1.15 apresenta um relatório com os dados gerados após a compilação, onde podemos observar várias informações, tais como, se a operação foi concluı́da com êxito ou não; qual a FPGA adotada; e quais os recursos de hardware (da FPGA) que foram necessários para a implementação do nosso circuito nesse chip. O próximo passo é associar os pinos de entrada e saı́da do nosso circuito aos pinos do chip (FPGA) da placa DE2-70. Para associar os pinos, selecione o menu Assignments, Pin Planner, tendo selecionado este menu, a figura 1.16 será apresentada. Para escolher a localização correta dos pinos em Location, devemos consultar o manual da placa DE2-70 e verificar quais são os pinos necessários para o nosso projeto. Após ter associado os pinos do circuito aos pinos do chip, devemos novamente compilar o projeto. Esta é a segunda vez que realizamos a compilação do projeto, nós poderı́amos não ter realizado a compilação feita anteriormente, neste caso, para que os pinos de entrada e saı́da mostrados na figura 1.16 pudessem ser apresentados, seria necessário selecioná-los no diagrama de bloco antes de selecionar o comando 16 CAPÍTULO 1. PRÁTICAS DE LABORATÓRIO Figura 1.14: Inserção de sı́mbolos no diagrama de bloco Figura 1.15: Resultado da compilação do projeto 1.2. INTRODUÇÃO A FERRAMENTA EDA QUARTUS II 9.1 Figura 1.16: Associação dos pinos do circuito aos pinos do chip 17 18 CAPÍTULO 1. PRÁTICAS DE LABORATÓRIO Assignments, Pin Planner. Esta maneira, de realizar duas vezes a compilação, foi adotada para facilitar a criação do nosso primeiro projeto. A próxima etapa é realizar a simulação do circuito através da análise das formas de onda. Devemos selecionar o menu File, New e selecionar Vector Waveform File, conforme figura 1.17. Clique em OK para concluir a ação. Figura 1.17: Criação do arquivo de formas de ondas Agora, devemos inserir os nodos no arquivo de formas de onda. Clique com o botão direito do mouse na região livre do arquivo recém criado e selecione Insert, Insert Node or Bus como mostra a Figura 1.18. A ação deste comando criará uma janela, nesta janela há um botão Node Finder, conforme figura 1.19, que deve ser selecionado para auxiliar na localização dos nodos existentes em nosso circuito. Em conseqüência à seleção do botão Node Finder, será criada a janela vista na figura 1.20. Para localizar os nodos que se encontram na coluna esquerda da figura 1.20 é necessário selecionar o botão List, em seguida pressione o botão ¿¿ para que estes nodos encontrados sejam adicionados na coluna do lado direito da figura 1.20. Para concluir a inserção, é necessário selecionar o botão OK em duas situação, a primeira é na janela que está atualmente ativa e a segunda é na próxima janela que será exibida. O próximo passo é associar as formas de onda aos nodos de entrada do circuito e analisar o resultado através da forma de onda gerada pelo nodo de saı́da. Preencha o arquivo de forma de onda conforme as instruções em aula. Tendo associado as formas de onda a entrada do circuito, podemos iniciar a simulação selecionando o menu Processing, Start Simulation e aguardar até que o sistema conclua esta operação. Para verificar o resultado da simulação, selecione o menu Processing, Simulation Report para exibir o arquivo com o relatório da simulação, conforme podemos verificar na figura 1.21. Caso a janela gerada não esteja na mesma escala de tempo mostrado na figura 1.21, é necessário acessar o menu View, Fit in Window para que ocorra o ajuste de escala. O próximo passo, é fazer o download do circuito no chip. Para realizar esta operação, selecione o menu Tools, Programmer. A ação deste comando gera uma janela onde devemos selecionar o arquivo que contém o código de programação do chip e selecionar o hardware, caso não esteja selecionado, para comunicação com a placa DE2-70. Através da figura 1.22 podemos conferir o hardware e o arquivo selecionados, ou seja, as condições necessárias para fazer o download do arquivo de programação do chip. 1.2. INTRODUÇÃO A FERRAMENTA EDA QUARTUS II 9.1 Figura 1.18: Insert Node or Bus Figura 1.19: Inserção dos nodos ao arquivo de formas de ondas 19 20 CAPÍTULO 1. PRÁTICAS DE LABORATÓRIO Figura 1.20: Localização dos nodos Figura 1.21: Relatório das formas de ondas geradas na simulação do circuito 1.2. INTRODUÇÃO A FERRAMENTA EDA QUARTUS II 9.1 21 A programação é ativada através da seleção do comando Processing, Start. Agora o chip FPGA da placa DE2-70 encontra-se programado. A verificação do funcionamento do hardware programado, pode ser realizada ativando-se as entradas do circuito e verificando-se o resultado na saı́da. Figura 1.22: Seleção do hardware e do código para download 22 CAPÍTULO 1. PRÁTICAS DE LABORATÓRIO Referências Bibliográficas [1] V. D. Bout and D. E., The practical Xilinx designer lab book version 1.5. Prentice Hall, 1999. 8 23