1.a Pratica_Circuitos Lógicos Com FPGA

7
Nome: Turma: Professor: Data: Prática 1 – Implementação de Circuitos Lógicos em FPGA O objetivo desta prática é apresentar a criação do arquivo de projeto, do arquivo de estímulos e a simulação de circuitos digitais combinacionais com recursos de lógica programável. Ao final desta prática o leitor deve estar familiarizado com o software Quartus II, simular os resultados de saída de um circuito digital combinacional de acordo com as suas entradas e interpretar a tabela verdade do circuito por meio do seu gráfico de formas de onda. A Figura 3.1 mostra um circuito combinacional simples com portas lógicas AND, NAND e NOR. Crie um arquivo gráfico de projeto, compile, salve-o, crie um arquivo de estímulos e simule o funcionamento do circuito. Depois, a partir do gráfico de formas de ondas do circuito, monte a sua tabela verdade. O leitor que possuir um kit de desenvolvimento DE 2 com FPGA pode descarregar e testar o circuito, simulando a tabela verdade, por meio de quatro chaves dip switches como entradas e um LED como a saída do circuito. A Tabela 3.1 apresenta a designação dos pinos do FPGA. Tabela 3.1 - Designação de pinos do FPGA. Função Pinos do FPGA Kit DE 2 Entrada A PIN_N25 Chave SW (0) Entrada B PIN_N26 Chave SW (1) Entrada C PIN_P25 Chave SW (2) Entrada D PIN_AE14 Chave SW (3) Saída S PIN_AE23 LED vermelho (0) Figura 3.1 - Circuito combinacional simples. Solução: 1

description

FPGA

Transcript of 1.a Pratica_Circuitos Lógicos Com FPGA

Page 1: 1.a Pratica_Circuitos Lógicos Com FPGA

Nome: Turma:

Professor: Data:

Prática 1 – Implementação de Circuitos Lógicos em FPGA

O objetivo desta prática é apresentar a criação do arquivo de projeto, do arquivo de estímulos e a simulação de circuitos digitais combinacionais com recursos de lógica programável. Ao final desta prática o leitor deve estar familiarizado com o software Quartus II, simular os resultados de saída de um circuito digital combinacional de acordo com as suas entradas e interpretar a tabela verdade do circuito por meio do seu gráfico de formas de onda.A Figura 3.1 mostra um circuito combinacional simples com portas lógicas AND, NAND e NOR. Crie um arquivo gráfico de projeto, compile, salve-o, crie um arquivo de estímulos e simule o funcionamento do circuito. Depois, a partir do gráfico de formas de ondas do circuito, monte a sua tabela verdade. O leitor que possuir um kit de desenvolvimento DE 2 com FPGA pode descarregar e testar o circuito, simulando a tabela verdade, por meio de quatro chaves dip switches como entradas e um LED como a saída do circuito. A Tabela 3.1 apresenta a designação dos pinos do FPGA.

Tabela 3.1 - Designação de pinos do FPGA.

Função Pinos do FPGA Kit DE 2

Entrada A PIN_N25 Chave SW (0)

Entrada B PIN_N26 Chave SW (1)

Entrada C PIN_P25 Chave SW (2)

Entrada D PIN_AE14 Chave SW (3)

Saída S PIN_AE23 LED vermelho (0)

Figura 3.1 - Circuito combinacional simples.

Solução:

A entrada de um projeto pode ser realizada de duas formas: um diagrama lógico, desenvolvido a partir do editor gráfico, no qual se utilizam portas lógicas e macroinstruções, ou pelo editor de texto e uso de uma linguagem de descrição de hardware, como, por exemplo, VHDL. Neste capítulo utiliza-se o modo editor gráfico do software Quartus II para solução dos exercícios propostos.Para iniciar um novo projeto no software Quartus II, clique na opção Create a New Project. No menu da barra de ferramentas principal, clique em arquivos (File) e selecione a opção New Project Wizard.

1

Page 2: 1.a Pratica_Circuitos Lógicos Com FPGA

A primeira vez que você abre um projeto, uma tela introdutória é apresentada. A opção New Project Wizard permite criar um projeto e informar dados básicos dele. Crie o diretório C:\altera\91sp2\quartus\projetos_01. Digite o nome do projeto na caixa de diálogo correspondente combinacional_1 e use esse mesmo nome como a entidade de mais alto nível de projeto, na caixa de diálogo correspondente. A janela dois do New Project Wizard não necessita ser preenchida; clique em Next. A janela três seleciona a família de dispositivos de fabricação da empresa Altera Corp, que será utilizada no projeto; surgem diversas famílias de FPGAs e CLPDs. Selecione a família Cyclone II. Na opção dispositivo alvo (Target device) selecione um dispositivo específico ou use a opção filtro (Filter) para seleção automática. Escolha o dispositivo EP2C35F672C6. Clique em Next; a janela quatro não precisa ser preenchida, então clique em Next. A janela cinco é a última do New Project Wizard e apresenta um resumo dos dados informados sobre o projeto:

Diretório de projeto: C:\altera\91sp2\quartus\projetos_01

Nome do projeto: combinacional_1

Entidade de projeto de nível mais alto: combinacional_1

Número de arquivos acrescentados: 0

Número de bibliotecas de usuário acrescentadas: 0

Dispositivo escolhido:

Nome da família: Cyclone II

Dispositivo: EP2C35F672C6.

Ferramentas EDA:

Entrada de projeto/Síntese: <Nenhuma>

Simulação: <Nenhuma>

Análise de tempo: <Nenhuma>

Clique no botão Finish e a criação do projeto está encerrada. Este procedimento deve ser sempre utilizado para a criação de um projeto.Depois do projeto criado, para entrar no modo de edição gráfica, na janela principal do software Quartus II, escolha no menu de arquivos (File) a opção novo (New). Selecione a opção Block diagram/Schematic File e clique no botão OK. Surge a tela de edição gráfica, na qual é editado o circuito lógico da Figura 3.1.A inserção de um componente lógico na janela do editor gráfico é realizada, clicando na barra de ferramentas lateral, no desenho de uma porta lógica. A janela denominada símbolo (Symbol) é aberta. Digite o nome do componente no campo Name da seguinte forma: porta NOR de 2 entradas - NOR2, porta NAND de 2 entradas - NAND2 e porta AND de 2 entradas - AND2. Para inserir o componente NOR2, digite o nome do componente no campo Name da janela. Clique no botão OK. O símbolo do componente NOR2 é 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 esquerdo do mouse. O cursor do mouse somente é liberado do componente quando o botão de seleção (símbolo de uma seta), na barra de ferramentas lateral, for pressionado. Repita os passos anteriores para inserir os componentes NAND2 e AND2 respectivamente. 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, ou então,

2

Page 3: 1.a Pratica_Circuitos Lógicos Com FPGA

digite a palavra input para uma entrada e output para uma saída no campo Name da janela Symbol e clique no botão OK.Para interligar os componentes do circuito, 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 de origem e com o botão esquerdo pressionado arraste o fio até o componente de destino. 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 3.2 apresenta a tela do editor gráfico com os componentes interligados.

Figura 3.2 - Circuito com os componentes interligados.

Os terminais de entrada (input) e saída (output) inseridos no circuito devem ser identificados para posterior utilização, para isso os terminais devem ter nomes. Com o cursor selecione o terminal a ser identificado e com o botão esquerdo do mouse dê um duplo clique no terminal (Pin name). Surge uma janela, chamada propriedades do terminal (Pin properties). No campo nome do terminal digite A, B, C e D para as entradas e S para a saída. Clique em OK. Repita o processo passo a passo para cada terminal de entrada e para cada terminal de saída.Uma vez que o projeto foi inserido, agora é necessário compilá-lo para verificar a existência de erros. Acesse na barra de ferramentas do editor gráfico o menu Processing e selecione a opção Star Compilation. O projeto é salvo e o andamento da compilação é apresentado na parte lateral da tela. As mensagens de cuidado (cor azul) e de erros (cor vermelha) aparecem na parte inferior da janela.Caso não haja erro, uma mensagem é fornecida; clique em OK. Se o compilador acusar algum erro, verifique as mensagens de erros, na parte inferior da janela, corrija os erros e compile novamente. O projeto só é compilado quando não houver mais erros.A simulação funcional verifica os resultados de saída de um circuito digital combinacional de acordo com as suas entradas. Para tanto, deve-se criar um arquivo de estímulo para verificar a funcionalidade do projeto. Assim, acesse na barra de ferramentas do editor gráfico o menu Assignments e selecione a opção Settings. Na seção modo de simulação selecione a opção Functional e clique em OK. Na barra de ferramentas do editor gráfico, selecione no menu File a opção New. Na caixa de diálogo escolha o arquivo Vector waveform e clique em OK. Surge a janela do Editor de Forma de Ondas, arquivo com extensão.vwf, na qual se realiza a simulação funcional do projeto.Para inserir as entradas e saídas do circuito, na barra de ferramentas da 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. Selecione em Filter a opção Pins: all e pressione o botão List. Todas as entradas e saídas que você definiu no seu circuito são mostradas.Selecione todas as entradas e saídas e clique na seta à direita. Desta forma, as entradas e saídas aparecem no quadro Selected Nodes. Pressione OK e a janela Node Finder se fecha. Pressione novamente OK. Na janela do 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 é selecionada. Clique duas vezes na

3

Page 4: 1.a Pratica_Circuitos Lógicos Com FPGA

primeira coluna (Node). Surge a janela Node Properties; selecione em Radix (base numérica) a opção binário. Clique em OK.Na janela do Editor de Forma de Ondas, selecione a linha correspondente à entrada A, na barra vertical de ferramentas em que estão os sinais de estímulos, e clique no botão Count Value, correspondente a um gerador de onda quadrada.Na janela Count Value, selecione a opção Timing; o período (Count Every), não deve ser maior que o intervalo. A opção fator de multiplicação (Multiply By) aumenta o período da onda quadrada a ser gerada. Neste caso, mantenha os valores default. No menu Edit do Editor de Forma de Ondas escolha o tempo de simulação (End Time) para 20 µs (microssegundos).Repita os passos anteriores para os sinais de entrada B, C e D. Entretanto, na janela opção Timing, estabeleça o fator de multiplicação (Multiply By) igual a 2, 3 e 4 para cada entrada. Este procedimento aumenta o período da onda quadrada a ser gerada para cada entrada B, C e D. Antes da simulação é necessário criar o arquivo de sinais de estímulos waveform.vwf. Selecione na barra de ferramentas do Editor de Formas de Onda, no menu Processing, a opção Generate Functional Simulation Netlist. Salve as alterações do arquivo waveform1.vwf e clique em OK. Salve o arquivo waveform1.vwf como combinacional_1. Clique em OK. Caso não haja nenhum erro no procedimento de criação dos estímulos, uma mensagem de confirmação é gerada; clique em OK. Para compilar e simular o arquivo combinacional_1.vwf, na barra de ferramentas do Editor de Formas de Onda, no menu Processing, selecione a opção Start Simulation. O projeto é compilado e simulado. Se a compilação ocorrer sem nenhum erro, o resultado da simulação, saída S, em função das entradas A, B, C e D será igual ao apresentado na Figura 3.3.

Figura 3.3 - Resultado da simulação.

É possível montar a tabela verdade do circuito, verificando o estado da saída S, para cada estado das entradas A, B, C e D, em cada intervalo de tempo, no diagrama de forma de onda da Figura 3.3. Analisando a Figura 3.3, chega-se à conclusão de que a saída S só é verdadeira em três condições:1. Todas as entradas são falsas, nível zero.

2. A entrada D é verdadeira, nível um, e as entradas A, B e C são falsas, nível zero.

3. A entrada C é verdadeira, nível um, e as entradas A, B e D são falsas, nível zero.

Nos demais casos a saída S é falsa, nível zero. A Tabela 3.2 apresenta a tabela verdade do circuito, obtida a partir do diagrama de forma de ondas da Figura 3.3.

Tabela 3.2 – Tabela verdade do circuito dado.

A B C D S

0 0 0 0 1

0 0 0 1 1

0 0 1 0 1

0 0 1 1 0

4

Page 5: 1.a Pratica_Circuitos Lógicos Com FPGA

0 1 0 0 0

0 1 0 1 0

0 1 1 0 0

0 1 1 1 0

1 0 0 0 0

1 0 0 1 0

1 0 1 0 0

1 0 1 1 0

1 1 0 0 0

1 1 0 1 0

1 1 1 0 0

1 1 1 1 0

Os nomes dos terminais de entradas e saídas do circuito projetado devem ser associados com os pinos do FPGA utilizado, conforme a Tabela 3.1 de designação dos pinos do FPGA. A configuração das posições dos pinos do FPGA é obtida na barra de ferramentas do editor gráfico, menu Assignments, opção Assignments Editor. No campo Category selecione Pins. Com um duplo clique, na coluna To, no campo New, são apresentadas todas as entradas e saídas definidas no projeto. Com um duplo clique na coluna Locations, campo New, são mostradas todas as posições dos pinos do FPGA. Selecione a entrada ou saída na coluna To e posicione o pino correspondente na coluna Locations ou digite o nome do Pino conforme a Tabela 3.1. As entradas ou saídas já posicionadas são indicadas com uma grafia diferente. Salve a nova configuração dos pinos do FPGA e compile o projeto novamente. Na tela do editor gráfico do arquivo combinacional_1.bdf o posicionamento dos pinos é indicado, conforme indicado na figura 3.4.

Para descarregar o projeto no kit do FPGA DE 2 e testar o circuito, acompanhe os seguintes procedimentos:1. Coloque a chave RUN/PROG do kit de desenvolvimento DE 2 no modo RUN. No

software Quartus II, menu Tools, selecione a opção Programmer. Surge uma tela que vai gerenciar a transferência de dados do microcomputador PC para o FPGA do kit de desenvolvimento. Nessa tela é necessário especificar o hardware de comunicação que será utilizado e o modo da transferência de dados. Selecione o modo JTAG, na caixa Mode. Se a opção USB - Blaster não estiver selecionada (default), pressione o botão Hardware Set - Up e selecione USB-Blaster na caixa de diálogo.

2. O arquivo combinacional.sof é exibido na janela de transferência. Se ele não for exibido, clique em Add File e selecione-o para incluir na janela de gerenciamento da transferência de dados. O arquivo combinacional.sof é binário, produzido pelo Quartus II, que contém os dados necessários para configurar o dispositivo FPGA. Note também que o dispositivo selecionado é o EP2C35F672, FPGA utilizado no kit de desenvolvimento DE2. Marque a opção Program/Configure e pressione START. O campo Progress atinge 100% e um LED no kit de desenvolvimento DE2 acende, quando a configuração for descarregada com sucesso.

5

Page 6: 1.a Pratica_Circuitos Lógicos Com FPGA

.

3. Após carregar o programa no kit DE 2, teste a tabela verdade do circuito apresentado na Tabela 3.2. Tente todas as possibilidades da tabela verdade, pressionando as chaves SW(0), SW(1), SW(2) e SW(3), observe o LED vermelho LEDR(0), saída S.

6