Introdução ao Projeto de Sistemas Digitais com Dispositivos Programáveis Versão 2013 RESUMO Nesta experiência será desenvolvido um projeto de sistema digital em um dispositivo programável (FPGA) com a aplicação de uma metodologia estruturada. A parte experimental consiste na aplicação desta metodologia, através do projeto de um circuito simples, desenvolvido com o auxílio da ferramenta de software Quartus II da Altera e implementado com a placa de desenvolvimento DE2 da Altera com o dispositivo lógico Altera Cyclone II EP2C35F672C6. OBJETIVOS Após a conclusão desta experiência, os seguintes tópicos devem ser conhecidos pelos alunos: Lógica programável; Metodologia de projeto estruturado; Projeto com FPGA. 1. PARTE TEÓRICA 1 1.1. Uma Metodologia Estruturada de Projeto de Circuitos Digitais Um sistema digital (SD) é um sistema com entradas e saídas, como qualquer outro sistema real. Com a evolução e o aumento da complexidade de sistemas digitais, a metodologia tradicional se mostrou limitada e novas estratégias tiveram de ser desenvolvidas. O projeto hierárquico foi uma forma de tratar a complexidade dos circuitos grandes, com a divisão do circuito em blocos ou módulos menores que são projetados em separado e depois interligados para compor o sistema completo. Para gerenciar a complexidade do projeto de um sistema digital não trivial, convém adotar uma estratégia do tipo dividir para conquistar (divide and conquer), onde um sistema é organizado como um conjunto de subsistemas menores interligados entre si. Esta metodologia de desenvolvimento estruturado de sistemas digitais é descrito com mais detalhes em [Midorikawa, 2011]. O projeto de um sistema digital pode ser organizado, em um primeiro nível, particionando o SD em duas partes com funções distintas: o Fluxo de dados (FD) e a Unidade de controle (UC). O fluxo de dados compreende a parte do circuito responsável pela manipulação, processamento, armazenamento e geração de dados. A unidade de controle é responsável pelo sequenciamento das operações executadas no fluxo de dados, de forma a garantir o correto funcionamento do circuito. A figura 1 mostra um diagrama com a estruturação interna detalhada do SD, onde são apresentadas as duas partes principais e os sinais internos para interconexão entre elas. Figura 1 Estruturação interna de um sistema digital. 1 Para complementar os conceitos básicos, recomenda-se a leitura dos apêndices disponíveis na página web do Laboratório Digital. Introdução ao Projeto de Sistemas Digitais com Dispositivos Programáveis (2013) 1
Os sinais de entrada de dados são ligados ao fluxo de dados, que também gera sinais de saída. Os sinais de estado indicam o estado atual do fluxo de dados e incluem sinais como o valor atual de um determinado registrador, a saída de um comparador e a detecção de uma condição em particular. Os sinais de estado do fluxo de dados e os sinais de entrada de controle são os responsáveis pela execução da unidade de controle. Normalmente a unidade de controle é modelada usando um circuito sequencial através de uma máquina de estados finitos. A saída da unidade de controle são sinais de controle para os componentes do fluxo de dados, como por exemplo, a seleção de função de uma ULA, a habilitação de um contador ou a habilitação de um circuito de memória RAM. Opcionalmente, a unidade de controle também pode gerar alguns sinais de saída. Por exemplo, é conveniente gerar como saída uma identificação do estado atual da máquina de estados finitos para ser usada para a depuração do circuito. 1.2. Projeto do Fluxo de Dados O fluxo de dados deve ser projetado como um circuito digital no nível de transferência de registradores. Um sistema é dito estar no nível de transferência de registradores (RTL register transfer level) se as informações fluírem pelo circuito através de componentes de memória ou registro de dados (registradores). À medida que os dados fluem pelo circuito, estes podem ser manipulador por blocos combinatórios implementando uma determinada lógica (fig.2). Figura 2 Circuito no nível RTL. O circuito descrito na figura 2 é basicamente um circuito sequencial síncrono, onde um sinal global de relógio (clock) gerencia o fluxo de informações pelo sistema digital. O bloco de lógica combinatório pode incluir um circuito com portas lógicas ou outros componentes mais complexos, como, multiplexadores, decodificadores, ULAs, etc. Já os módulos registradores incluem registradores, propriamente ditos, ou simplesmente flip-flops ou ainda registradores de deslocamento. 1.3. Projeto da Unidade de Controle A unidade de controle deve organizar o funcionamento correto do sistema digital garantindo o correto sequenciamento de operações realizadas pelo fluxo de dados. Uma forma para desenvolver a unidade de controle é a partir do diagrama de transição de estados ou do diagrama ASM correspondente. O diagrama de transição de estados modela o sequenciamento de operações de acordo com as entradas e o estado atual do circuito digital. A figura 3 abaixo ilustra um diagrama de transição de estados. N1 e N2 desativados S0/ condições iniciais N1 acionado N2 acionado N1 acionado S1/ copia IN em R1 S2/ copia IN em R2 N2 acionado M1 acionado S3/ <nada> Nenhuma S4/ entrada acionada copia R1 para R3 S5/ M2 acionado copia R2 para R3 Figura 3 Exemplo de diagrama de transição de estados. Introdução ao Projeto de Sistemas Digitais com Dispositivos Programáveis (2013) 2
Um diagrama ASM (algorithmic state machine) é um diagrama similar à máquina de estados finita. Seus principais elementos são bloco de estado, bloco de decisão e bloco de saída condicional [Givone, 2003] [Mano & Kime, 2000]. A implementação da unidade de controle pode ser realizada de várias formas. As alternativas incluem usar a linguagem de descrição de hardware AHDL (Altera HDL), circuitos integrados MSI e SSI (registradores, decodificadores, multiplexadores e portas lógicas) ou a linguagem VHDL. 1.4. PROJETO DO SISTEMA DIGITAL Terminado o desenvolvimento do fluxo de dados e da unidade de controle do projeto do sistema digital, resta a integração destas partes para concluir o sistema digital (fig.1). A figura 4 apresenta o diagrama de captura esquemática do projeto exemplo apresentado em [Midorikawa, 2011] do módulo de sistema digital. Figura 4 Diagrama esquemático do sistema digital completo do projeto exemplo. 1.5. Dispositivo Programável Altera Cyclone II Diferentemente dos componentes MSI e SSI que possuem lógica fixa, uma classe inteira de componentes digitais são conhecidos como dispositivos de lógica programável (PLD programmable logic device). Os PLDs permitem a modificação da lógica implementada por eles através da programação de uma nova configuração de bits (bit stream). Existem vários tipos de dispositivos programáveis, tais como, PALs (programmable array logic), PLAs (programmable logic array), CPLDs (complex programmable logic device) e FPGAs (field-programmable gate array). Estes últimos foram desenvolvidos na década de 1980 pela fabricante Xilinx e tem uma estrutura interna organizada conforme ilustrada na figura 5. Figura 5 Estrutura interna de FPGAs. Os blocos lógicos são responsáveis pela implementação da lógica do circuito digital e contém elementos para o projeto de lógica combinatório, baseado em LUTs (lookup tables), e registradores. A matriz de interconexão configurável permite a conexão dos blocos lógicos e com os blocos de I/O, que fazem a interface com os pinos de I/O do circuito integrado. A família de dispositivos programáveis Cyclone II da Altera são compostos por elementos com até 68.416 elementos lógicos (ou blocos lógicos), até 622 pinos de I/O utilizáveis e até 1,1 Mbits de memória interna. Por exemplo, o dispositivo EP2C35F672C6, usado na placa DE2, tem as seguintes características: 33.216 elementos lógicos; 473 Kbits de memória; 35 multiplicadores 18x18 bits; 475 pinos de I/O para o usuário. Introdução ao Projeto de Sistemas Digitais com Dispositivos Programáveis (2013) 3
2. PARTE EXPERIMENTAL Nesta experiência sobre Dispositivos Programáveis será desenvolvido o projeto de um sistema digital utilizando-se o dispositivo Altera Cyclone II EP2C35F672C6. As atividades desta experiência incluem a aplicação da metodologia de projeto estruturado [Midorikawa, 2011] e sua implementação com a placa de desenvolvimento DE2 da Altera. DICA: siga as instruções apresentadas em Projeto de Circuitos com Quartus II 9.1 para a implementação de circuitos na placa DE2. 2.1. Atividade Pré-Laboratório Para a preparação para as atividades da experiência, deve-se realizar as atividades abaixo antes da aula. a) Estude a metodologia de projeto apresentada e o projeto exemplo proposto no documento Projeto de Sistemas Digitais, disponível no site do Laboratório Digital. b) Realize o desenvolvimento do projeto exemplo apresentado no documento (fluxo de dados em circuitos integrados MSI/SSI, unidade de controle em VHDL e sistema digital) no software Quartus II, especificando o uso do dispositivo Altera Cyclone II EP2C35F672C6. c) Realize simulações dos três projetos para verificar o funcionamento de cada módulo. 2.2. Especificação do Projeto Contador de Uns d) Projetar o Sistema Digital esquematizado na figura 2.1, que apresenta o seguinte comportamento: Ao ser acionado o botão INICIAR, o SD deve contar quantos bits da via DADOS são iguais a 1, fornecendo esse valor, em BCD, na saída QUANTIDADE. Quando o processo se encerrar, o sinal PRONTO deve ser acionado. O processo pode ser repetido continuamente, cada vez que o botão INÍCIO for acionado. DADOS PRONTO INICIAR CLOCK RESET Contador de Uns QUANTIDADE Figura 2.1 Contador de Uns. e) Realize o desenvolvimento do projeto do Contador de Uns (fluxo de dados, unidade de controle e sistema digital) no software Quartus II, especificando o uso do dispositivo Altera Cyclone II EP2C35F672C6. f) Realize simulações dos três projetos parciais (FD, UC e SD) para verificar o funcionamento de cada módulo. g) Leve os arquivos fonte do projeto para o Laboratório Digital. 2.2. Implementação do Projeto h) Usando o software Quartus II, implemente o projeto exemplo na placa de desenvolvimento DE2 da Altera com a seguinte designação de sinais do projeto: DADOS[0..8] : chaves SW0 a SW8 INICIAR: botão KEY0 CLOCK : clock interno de 50 MHz (CLK_50) RESET : chave SW17 PRONTO : led verde LEDG0 QUANTIDADE : display de 7 segmentos HEX0 DICA: lembrem que os botões na placa DE2 são ativos em baixo. O projeto deve levar isto em consideração. Use a tabela de designação de pinos da placa DE2. i) Programe o projeto na placa DE2 seguindo os passos descritos nas instruções de uso. Introdução ao Projeto de Sistemas Digitais com Dispositivos Programáveis (2013) 4
j) Com o circuito em funcionamento na placa DE2, execute vários testes para verificar o comportamento do circuito. Use vários valores de entrada. Comente os resultados. Sugestão para o Projeto Esse projeto pode ser realizado dividindo o sistema em duas partes: o FD e a UC. Uma estratégia, que pode ser adotada em linhas gerais, é a seguinte: - A via contendo DADOS é armazenada em um registrador de deslocamento, ao ser acionado o botão INICIO; - O bit menos significativo do registrador de deslocamento é examinado e, sendo igual a 1, um contador é incrementado; - O processo continua, deslocando-se para a direta o conteúdo do registrador de deslocamento e examinando-se sempre o bit menos significativo; - O processo se encerra quando todos os bits iguais a 1, presentes em DADOS já foram contabilizados. A saída do contador contém o valor QUANTIDADE, que é igual ao número de Uns presentes em DADOS. k) (OPCIONAL) Implemente uma modificação no circuito a ser distribuída pelo professor da turma. 2. BIBLIOGRAFIA 1. ALTERA. Cyclone II Device Handbook, Volume I. 2008. 2. ALTERA. DE2 Development and Education Board - User Manual. Version 1.42. 2008. 3. ALTERA. Quartus II Handbook Version 9.1. Volume 1: Design and Synthesis. 2009. 4. MENEZES, Marlim Pereira, SATO, L.M., MIDORIKAWA, E.T. Projeto de Circuitos com Quartus II 9.1. Apostila de Laboratório Digital. 2011. 5. MIDORIKAWA, E.T. Projeto de Sistemas Digitais. Apostila de Laboratório Digital. 2011. 6. TOCCI, R. J., WIDMER, N. S., MOSS, G.L. Digital Systems: principles and applications. 11 th ed., Prentice-Hall, 2011. 7. WAKERLY, J. F. Digital Design: principles and practice. 4 th ed., Prentice- Hall, 2006. 3. EQUIPAMENTOS NECESSÁRIOS 1 placa de desenvolvimento FPGA DE2 da Altera com o dispositivo Altera Cyclone II EP2C35F672C6. 1 computador PC com programa Altera Quartus II e interface USB. Histórico de Revisões E.T.M./2011 adaptação E.T.M./2013 adaptação e revisão E.T.M./2011 (adaptação) Introdução ao Projeto de Sistemas Digitais com Dispositivos Programáveis (2013) 5