Baixe o app para aproveitar ainda mais
Prévia do material em texto
1 FAEX – Faculdade de Extrema Arquitetura de Sistemas Digitais 9º ECA INTRODUÇÃO AO QUARTUS OBJETIVO: Familiarizar os alunos com o software EDA (Eletronic Design Automation) da Altera - Quartus II Web Edition. Trata-se de uma ferramenta computacional de análise e de síntese de projetos que reduz o tempo de desenvolvimento de projeto de circuitos digitais. 2 Este tutorial apresenta as características básicas do software Quartus II. Será mostrado como o software pode ser utilizado para projeto e implementação de circuitos digitais. Ele faz uso de uma interface gráfica para acionar os comandos. Seguindo este tutorial, o aluno será capaz de: Criar um projeto Introduzir um diagrama esquemático Sintetizar um circuito usando o diagrama esquemático Simulação do circuito 1 Começando um projeto Cada circuito lógico projetado com o Quartus II é chamado de Project (projeto). O software trabalha com apenas um projeto de cada vez e todas as informações são armazenadas em um diretório no seu gerenciador de arquivos. Para iniciar um novo projeto o primeiro passo é criar um diretório para seus arquivos. Ao entrar no programa pela primeira vez, abre-se a janela principal. Na caixa de dialogo, selecione a opção Iniciar o software Quartus II. Surge uma nova janela denominada “Getting Start with Quartus II software”. Essa janela pode ser omitida. A escolha depende dos objetivos e do conhecimento prévio do leitor. Para fechá-la, clique no canto superior direito da tela e para desabilitá-la, nas próximas vezes que o software for iniciado, marque no canto esquerdo inferior da janela. A janela de inicialização do Quartus II, apresentada na figura 1 possui algumas opções: Iniciar um tutorial interativo do Quartus II (áudio em inglês); Abrir projeto existente; Abrir projetos recentes; Iniciar um novo projeto. Ainda podemos acessar diretamente alguns links importantes no site da Altera: literatura, treinamento, etc... 3 Figura 1. Tela principal do Quartus II V 13.1.0. Figura 2. Um exemplo do menu principal. 4 2 Iniciar um novo projeto Para começar a trabalhar em um novo projeto, primeiramente precisamos definir um novo project. Temos duas opções para criar um novo projeto: Clicar na opção New Project Wizard, na janela inicial; Selecionar File > New Project Wizard. Figura 3. Janela 1 de 5 New Project Wizard. Use o nome do diretório do seu projeto 5 A primeira vez que você abre um novo projeto, uma tela introdutória é apresentada. A opção New Project Wizard permite criar um projeto ou informar dados básicos sobre ele, como: Nome do projeto e diretório de trabalho; Nome da entidade de projeto de mais alto nível; Arquivos de projeto, outras fontes de arquivos e bibliotecas utilizadas no projeto; Dispositivos e famílias usadas no projeto; Ferramentas EDA utilizadas. Para avançar, clique no botão Next. Na primeira tela do New Project Wizard digite o nome do diretório de trabalho do seu projeto ou localize-o por meio do botão (browse), clicando, por exemplo, em C:/altera/13.1/quartus/projetos_01. Digite o nome do projeto na caixa de diálogo correspondente ao nome, por exemplo, faexsim1, e digite este mesmo nome como nome da entidade de mais alto nível de projeto, na caixa de diálogo correspondente. A figura 3 mostra a primeira tela de informações do projeto. Clique em Next. A janela dois do New Project Wizard não necessita ser preenchida, pois neste caso, não existe nenhum arquivo de projeto, nenhuma fonte de arquivo ou biblioteca a ser incluída. Clique em Next. Figura 4. Tela 2 de 5 do New Project Wizard. A janela três seleciona uma família de dispositivos de fabricação da empresa Altera, que podem ser utilizados no projeto; surgem várias famílias de FPGAs e CLPDs. 6 Selecione, por exemplo, a família Cyclone III, dispositivo EP3C16F484C6, que corresponde ao FPGA utilizado no kit de desenvolvimento DE2 da empresa EXSTO (Terasic). Clique em Next. Figura 5. Janela 3 de 5 do New Project Wizard. Na janela quatro não marque nenhuma opção, pois esse projeto só usa ferramentas do software Quartus II e não outras ferramentas EDA. Clique em Next. A janela cinco é a última do New Project Wizard e apresenta um resumo dos dados informados sobre o projeto. Clique no botão Finish. E a criação do projeto está encerrada. Note que o nome do projeto no topo da janela principal do navegador modifica-se para o nome da entidade de nível mais alto. 3 Projeto utilizando o Editor Gráfico O projeto que será desenvolvido como primeiro exemplo é o faexsim1, automação do controle da esteira transportadora de uma máquina de usinagem. A tabela verdade é representada pela expressão booleana: S PQR PQR PQR PQR PQR Para implementar esta expressão dada, em lógica programável, no Quartus II, siga os procedimentos: Na janela principal, selecione no menu de arquivos (File), barra de ferramentas, a opção novo (New). Abre-se uma caixa de diálogo New. Selecione a opção Block 7 diagram/Schematic File e clique no botão OK. Surge uma tela denominada Block1.bdf, como indica a figura 6, na qual será editado o circuito lógico. Na parte superior da área de desenho há uma régua vertical com alguns botões que disponibilizam as opções de projeto, tais como a biblioteca de componentes, caixa de edição de texto, lupa para zoom etc. A inserção de um componente lógico na janela do editor gráfico é realizada clicando na barra de ferramentas superior, no botão correspondente ao componente desejado (porta lógica, fio, barramento, etc.). Ao clicar no componente lógico, desenho de uma porta lógica, abre-se uma janela denominada símbolo (Symbol), conforme apresentada também na figura 6. Digite o nome do componente lógico no campo nome (Name) e clique no botão OK. Figura 6. Janela Do Editor Gráfico. Caso não conheça o nome do componente, consultar na caixa bibliotecas (Libraries) todos os grupos de componentes do Quartus II. Para isso, basta clicar em um dos diretórios da caixa, selecionar o subdiretório correspondente ao grupo do componente lógico e clicar no seu nome. Na caixa bibliotecas, no diretório Libraries clique com o cursor do mouse, selecione o subdiretório correspondente à biblioteca primitiva (primitivies). No interior dessa biblioteca selecione o subdiretório correspondente à biblioteca lógica (logic), em que estão disponíveis as portas lógicas básicas do Quartus II. Selecione o componente and3. Será inserido o nome do componente no campo nome (Name) da janela. Clique no botão OK. O símbolo do componente and3, uma porta lógica AND de três entradas, é mostrado na janela maior do editor gráfico. Quando o componente é selecionado o cursor do mouse deve ser utilizado para posicioná-lo na janela. Para fixá-lo, arraste-o até o ponto desejado e clique com o botão de seleção (símbolo de uma seta), na barra de ferramentas superior, for pressionado. 8 Como serão utilizadas cinco portas and3, clique com o botão esquerdo do mouse em cinco posições diferentes na tela do editor gráfico e depois libere o cursor. Repita os passos anteriores para inserir os componentes OR6, um bloco de cinco entradas e três portas NOT. Para girar a porta NOT de forma que fique com a sua saída para baixo, selecione a porta, clique com o botão direito do mouse e escolha a opção Rotate by Degrees, opção 270. A figura 7 apresenta a janela do editor gráfico com a inserção dos componentes. Figura 7. Janela do Editor Gráfico com os componentes inseridos. No projeto é necessário estabelecer as entradas e saídas docircuito lógico, que também possuem elementos específicos na biblioteca. Desta forma, insira os terminais de entrada e saída dos componentes, repetindo os mesmos procedimentos usados no item anterior para inserção dos componentes lógicos. Na barra de ferramentas superior selecione o botão correspondente ao componente lógico. Na janela símbolo (Symbol) digite input para uma entrada e output para uma saída no campo nome (Name) e clique no botão OK. Caso deseje copiar um terminal de entrada ou saída, após a seleção e inserção na janela, clique com o botão esquerdo do mouse tantas vezes quanto for o número de cópias. Para liberar o cursor do componente inserido, clique no botão de seleção na barra de ferramentas. A figura 8 apresenta a janela do editor gráfico com a inserção dos terminais de entrada e saída. 9 Figura 8. Janela do editor com os terminais de E/S. Os terminais de entrada (input) e saída (output) inseridos no item anterior devem ser identificados para posterior utilização, os quais devem ter nomes. Com o cursor selecione o terminal a ser identificado, com o botão esquerdo do mouse dê um duplo clique no terminal (Pin name). Surge uma janela, chamada Propriedades do terminal(Pin Properties), conforme mostrado na figura 9. Figura 9. Janela de propriedades dos terminais de entrada e saída No campo nome do terminal (Pin name) digite o nome desejado, por exemplo, Sensor_P, Sensor_Q e Sensor_R para as entradas, e Sinal_S para as saídas. Clique em OK. Repita o processo passo a passo para cada terminal de entrada e para cada terminal de saída. A figura 10 exibe uma janela do editor gráfico com os terminais de entrada e saída respectivamente identificados. 10 Após a seleção dos componentes e a atribuição dos nomes dos terminais de entrada e saída, vamos interligá-los. Na barra de ferramentas selecione o botão fio ortogonal, caso deseje interligar os componentes por meios de fios. Ou então, selecione o botão barramento ortogonal, caso deseje interligar os componentes por meio de barramentos. Lembre-se de que um barramento é um conjunto de fios em paralelo. Por exemplo, um barramento de oito bits (1 byte) corresponde a oito fios em paralelo, identificados pelo nome do terminal seguido da notação [0..7]. Figura 10. Janela do editor com os terminais identificados. Existem duas possibilidades de interligação dos componentes no editor gráfico: Conexão dos componentes por fios ou barramentos: reorganize todos os componentes na área de desenho, de modo a ficarem dispostos como na figura 11. Na barra de ferramentas selecione com o cursor do mouse o botão fio ortogonal. O cursor muda para uma cruz. Clique com o botão esquerdo do mouse no componente origem e com o botão esquerdo pressionando arraste o fio até o outro componente destino. Pode-se fazer o caminho indo diretamente de um terminal a outro, ou fazê-lo por segmentos de reta. Caso deseje apagar a ligação ou o componente, basta selecionar o objeto, que aparece com uma cor azul, e pressionar a tecla delete. A figura 11 mostrar a tela do editor gráfico com os componentes interligados por meio de fios. O projeto deve ser salvo e compilado para verificação da existência de erros básicos de sintaxe e semântica. Para salvar o projeto clique no botão correspondente, na barra de ferramentas. 4 Compilando o Circuito Projetado O arquivo do diagrama esquemático, block1.bdf, é processado pelas ferramentas do Quartus II que analizam o arquivo, sintetizam o circuito, e geram um arquivo para implementação posterior em um chip FPGA. Estas ferramentas são controladas pelo programa chamado Compiler (compilador). 11 Inicie o Compilador selecionando Processing > Start Compilation, ou clicando no ícone da barra de tarefas (Veja abaixo). O processo de compilação tem vários estágios, que compreendem a verificação de erros básicos como conexões desnecessárias, pinos e fios sem conexão etc.; a criação de diversos arquivos necessários para a programação do FPGA e arquivos de relatórios, que apresentam detalhes do processo de síntese como total de elementos lógicos, total de pinos, total de bits de memória, etc. Seu progresso é apresentado em uma janela no lado esquerdo da janela principal do Quartus. O sucesso ou insucesso da compilação é indicado por uma caixa pop-up. (Veja abaixo). Clique em OK. Uma janela de mensagens aparecerá na parte debaixo da figura, nela são mostradas várias mensagens do andamento do processo de compilação. Em caso de erros, as mensagens também serão apresentadas nesta janela. As mensagens de Warnings são apresentadas e podem ser ignoradas por enquanto. 12 Quando a compilação termina, um relatório é gerado (como apresentado acima), esta janela é aberta automaticamente. Esta janela pode ser normalmente, redimensionada, maximizada ou fechada, e pode ser aberta a qualquer momento selecionando Processing > Compilation Report ou clicando no icone . Este relatório inclui uma lista de pastas no lado esquerdo da janela. A figura acima mostra o Flow Summary, que indica, por exemplo, a necessidade de apenas um elemento lógico e 4 pinos para que este circuito seja implementado em um chip FPGA. 4.1 Erros Durante a compilação o software Quartus II mostra as mensagens geradas em uma janela de mensagens. Se o arquivo com o circuito projetado estiver correto, uma das mensagens de status que será apresentada será que a compilação foi um sucesso e sem erros. Agora, se o relatório do compilador mostra que há erros, então existe pelo menos um erro no diagrama esquemático criado. Neste caso, a mensagem correspondente a este erro será gerada e mostrada na janela de mensagens (Messages). Um duplo clique nesta mensagem de erro mostrará qual parte do circuito está ocasionando este erro. Do mesmo modo, o compilador poderá mostrar algumas mensagens de advertência (warning). O detalhamento destas mensagens pode ser encontrado do mesmo modo como no caso das mensagens de erro. O usuário pode obter mais informações sobre uma mensagem específica de erro ou uma mensagem de advertência selecionando-a e pressionando a tecla F1. 13 5 Simulação do Circuito Projetado Antes de implementar o circuito projetado em um chip FPGA, é recomendável que o circuito seja simulado. Existem dois tipos de simulação: funcional(Gate Level) e temporal (RTL). A simulação funcional verifica os resultados de saída do circuito de acordo com as suas entradas. Logo, deve-se criar um arquivo de estímulo para verificar a funcionalidade do projeto. Para criar o arquivo de estímulos acesse o menu File, na barra de ferramentas da janela principal, e selecione New. Será necessário criar as formas de onda desejadas, para representar os sinais de entrada. Também será necessário especificar as saídas, bem como os pontos internos do circuito que se deseja monitorar. Na caixa de diálogo escolha University Program VWF. Clique em OK. Surge a janela do editor de forma de ondas, arquivo com extensão .vwf, na qual será realizada a simulação funcional do projeto. Esta janela é dividida em quatro partes: (a) régua de ferramentas para as configurações da simulação; (b) régua de bases de tempo; (c) coluna para os nomes dos pontos de teste com a base de tempo; (d) área das cartas de tempo (timing chart) do projeto. Para inserir as entradas e saídas do projeto (nós – nodes), na janela do editor de forma de Ondas, acesse o menu Edit e selecione a opção Insert Node or Bus. Na caixa de diálogo clique no botão Node Finder. Surgindo a janela Node Finder, selecione em Filter a opção Pins: all. Pressionando o botão List, no quadro Nodes Found aparecem todas as entradas e saídas do projeto, identificadas com seus respectivos nomes, conforme a figuralogo abaixo. Selecione todas as entradas e saída (nodes) e clique na seta à direita. Desta forma as entradas e saídas aparecem no quadro Selected Nodes. Pressione OK, fechando a janela Node Finder. Pressione novamente OK. Na janela Editor de Formas de Ondas surgem as entradas e saídas selecionadas, que serão simuladas. Agora vamos atribuir formas de ondas às entradas para verificar a saída. Selecione uma das entradas, clicando no nome da entrada, a linha toda será selecionada. Clique duas vezes na primeira coluna (nodes). A janela Node Properties aparecerá, selecione em Radix a opção binário. Clique em OK. Na janela Editor de Formas de Ondas, aparece uma barra vertical de ferramentas, com os sinais de estímulos disponíveis. Selecione a entrada Sensor_P, clique no 14 botão, opção Count value, corresponde a um gerador de onda quadrada. A janela Count Value se abre, mostrando várias informações sobre o sinal que será gerado: intervalo, período, etc. Selecione nessa janela a opção Transitions Occur, o período (Count Every), não deve ser maior que o intervalo. Para este caso, mantenha os valores default. No menu Edit escolha o tempo final de simulação (End Time) para 1.0 s (microssegundos), para poder analisar melhor o comportamento do projeto e a largura de grade de tempo de simulação (gride size) para 40.0 ns. Para visualizar o sinal de estímulo da entrada Sensor_P, selecione na barra de ferramentas o botão Zoom e clique na janela do Editor de Forma de Ondas (botão esquerdo do mouse aumenta a visualização e o botão direito diminui). Para o sinal Sensor_Q repita os passos anteriores, selecione Radix binário (binary), opção Transitions Occur multiplique o valor default por 2. Repita para o sinal de entrada Sensor_R exatamente os mesmos passos anteriores, opção Transitions Occur multiplique o valor default por 3. A próxima figura apresenta os sinais de estímulos de entrada na janela do Editor de Formas de Ondas. Antes da simulação das entradas e saídas do arquivo waveform.vwf, é necessário criar o arquivo de sinais de estímulos. Selecione a barra de ferramentas o menu Processing, escolha a opção Generate Functional Simulation Netlist. Salve as alterações do arquivo waveform1.vwf. Clique em OK. Salve o arquivo waveform1 como faexsim1. Clique em OK. Caso não haja nenhum erro com o arquivo de estímulos criado, surge uma janela com a mensagem “Functional Simulate Netlist was sucessful”. Clique em OK. Para compilar e simular o arquivo faexsim1.vwf, no menu Processing, selecione a opção Start Simulation ou clique no botão . Se a compilação ocorrer sem nenhum erro, a mensagem “Simulator was sucessful” aparecerá na tela. Clique em OK. O resultado da simulação, saída Sinal_S, em função das entradas Sensor_P, Sensor_Q e Sensor_R será mostrado na figura abaixo. 15 Para criar um símbolo gráfico, arquivo faexsim1.bsf, clique no canto superior esquerdo em faexsim1.bdf e volta para a tela do editor gráfico. Clique no menu File, escolha a opção Create/Update. Na janela aberta, selecione a opção Create Symbol Files for Current File; aparece outra janela com a mensagem “Created Block Symbol File faexsim1”. Clique em OK. Para inserir o símbolo gráfico criado, arquivo faexsim1.bsf, em um novo projeto, basta proceder como visto anteriormente neste capítulo, ou seja, como se fosse inserir um componente lógico qualquer. O símbolo gráfico criado faexsim1 agora faz parte da biblioteca (library) do software Quartus II. A figura abaixo apresenta o símbolo criado. 6 Bibliografia Da Costa, C. Projeto de Circuitos Digitais com FPGA – 2.ed – São Paulo: Érica, 2012. Davies, P.J. Apostila de Laboratório da disciplina Sistemas Digitais - University of British Columbia, 2012.
Compartilhar