A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Dispositivos Lógicos Programáveis: FPGA

Apresentações semelhantes


Apresentação em tema: "Dispositivos Lógicos Programáveis: FPGA"— Transcrição da apresentação:

1 Dispositivos Lógicos Programáveis: FPGA
Disciplina: Arquiteturas Especiais para Microprocessadores Professora: Maria Stela Veludo de Paiva Aluna: Luiza Maria Romeiro Codá

2 Tópicos: EVOLUÇÃO DA TECNOLOGIA DE PROJETOS DIGITAIS.
DISPOSITIVOS LÓGICOS PROGRAMÁVEIS: Evolução e Classificação FPGA : – Tecnologia de Programação -- Arquitetura de Blocos Lógicos -- Arquitetura de Roteamento Software para programação de FPGA

3 EVOLUÇÂO DA TECNOLOGIA DE PROJETOS DIGITAIS:
De transistores individuais para circuitos integrados VLSI ( Very Large Scale Integration). CIs ( circuitos integrados) digitais podem ser construídos sob diferentes tecnologias dependendo do seu tamanho e de sua função no sistema. IMPLEMENTAÇÃO DE CIRCUITOS DIGITAIS: Podem ser agrupadas em duas categorias: Cis customizados: necessitam de um processo de fabricação especial que requer máscaras específicas para cada projeto. Tempo de desenvolvimento é longo e os custos são altos. Utilizados em aplicação de grande volume de produção. CIs Semicustomizados

4 CIs Semicustomizados:
Mask- Programmable Gate Array (MPGAs): Utiliza-se de máscaras genéricas de módulos pré-projetados, mas ainda utiliza-se de máscaras específicas para interconexão dos módulos. O Projeto é facilitado por biblioteca de células, levando a um tempo de desenvolvimento mais curto e custos mais baixos que CIs customizados. 2. Standard Cells: A tarefa de projetar é facilitada pelo uso de módulos pré-projetados salvos em banco de dados . São menos eficientes em tamanho e desempenho do que os CIs customizados, mas seu custo é baixo. 3. Programmable Logic Device (PLDs): A programação é feita pelo usuário, eliminando o processo de fabricação E facilitando eventuais mudanças no projeto. Tempo curto de projeto e baixo custo.

5 Tecnologias de Projeto de Circuitos Integrados Digitais
Tecnologia de Projeto Semicustomizados Customizados (ASICS) Programmable Logic Devices (PLDs) Gate Arrays Standard Cells SPLDs (PALs) CPLDs FPGAs SPLD = Simple Prog. Logic Device PAL = Prog. Array of Logic CPLD = Complex PLD FPGA = Field Prog. Gate Array ASICs = Application Specific Integrated Circuits

6 Vantagens do uso da Lógica Programável:
Atualmente, podemos desenvolver um projeto digital, utilizando 3 diferentes componentes: circuito discreto (TTL, CMOS, etc) Gate Array Lógica Programável Características PLD Lógica Discreta Gate Array Velocidade Densidade Custo Tempo de desenvolvimento Tempo de protótipo e simulação Tempo de fabricação Facilidades de uso Futuras modificações Risco de estoque Suporte para ferramentas Bom Adequado Ruim

7 EVOLUÇÃO DOS DISPOSITIVOS LÓGICOS PROGRAMÁVEIS PELO USUÁRIO:
PROM ( Programmable Read-Only Memory): 1º. Tipo de chip programável: possui decodificador completo para seus endereços na entrada, mas funções lógicas utilizam poucos termos de produto. Portanto a PROM é ineficiente para realizar circuitos lógicos. PLAs ( Programmable Logic Arrays): 1º. Dispositivo desenvolvido para a implementação de circuitos lógicos. Consiste de dois níveis de portas lógicas programáveis, um de portas Wired-AND e outro de wired-OR., os quais fazem delas um dispositivo versátil, porém possuem alto custo e pobre desempenho em termos de velocidade.

8 PAL ( Programmable Array Logic):
Foram desenvolvidos para superar as deficiências das PLAs nos anos 70. Possuem um único nível de programação consistindo de portas wired-AND Programáveis alimentando portas OR fixas. Para compensar o plano fixo, são produzidas com diferentes número de entradas e saídas. Geralmente contém flip-flops conectados às saídas das portas OR para que Circuitos seqüenciais possam ser implementados.

9 Evolução dos dispositivos Lógicos Programáveis:
Estruturas de uma PROM (a), um PLA (b) e um PAL (c).

10 GRUPOS DE DISPOSITIVOS PROGRAMÁVEIS:
SPLDs (Simple Programmable Logic Devices): É a categoria de todos os pequenos PLDs como PLAs, PALs , onde as Características mais importantes são baixo custo e alto desempenho. CPLDs ( Complex Programmable Logic Devices): É constituído de múltiplos SPLDs integrados em um único chip com Interconexões programáveis para conectar os blocos SPLDs, fornecendo uma capacidade lógica de até 50 SPLDs típicos. FPGA (Field-Programmable Gate Array): São constituídos de um arranjo de elementos de circuitos não conectados, chamados blocos lógicos, e recursos de interconexão, cuja configuração é Através de programação pelo usuário.

11 O mercado de PLD:

12 Diferenças básicas entre CPLD e FPGA:

13 Arquitetura de FPGAs 1. Tipo de tecnologia de programação
2. Arquitetura dos blocos lógicos 3. Estrutura de sua arquitetura de roteamento

14 Arquitetura de FPGAs (continuação):
1. Tipos de tecnologia de Programação: 1.1 SRAM (Static Random Acess Memory): o comutador é um transistor de passagem controlado pelo estado de um bit da SRAM. Utilizada pela Xilinx, Altera e AT&T. SRAM é volátil , necessitando a FPGA de uma memória externa (PROM, EPROM, EEPROM ou disco magnético). desvantagem: ocupa muito espaço no chip. vantagem: por utilizar SRAM que é rapidamente reprogramável, e utiliza a tecnologia padrão de circuitos integrados para sua fabricação.

15 1. Tipos de tecnologia de Programação (continuação):
1.2 Antifuse: é originalmente um circuito aberto que quando programado forma um caminho de baixa resistência. Utilizada pela Actel. Vantagem : Tamanho reduzido o qual apresenta baixa capacitância quando não programado e baixa resistência quando programado. Desvantagem: não permite a reprogramação, além disso, para programá-los é necessária a presença de transistores com larga área a fim de suportar as altas correntes (em torno de 5mA).

16 1. Tipos de tecnologia de Programação (continuação):
1.3. Gate Flutuante: o comutador é um transistor com gate flutuante iguais aos utilizados nas memórias EPROM (Erasable PROM) e EEPROM (Electrical Erasable PROM) : transistor MOS com 2 gates. EPROM utilizada pela Altera e EEPROM pela Lattice e MD. Programação: O gate flutuante armazena carga elétrica que é injetada pela aplicação de uma tensão alta entre o gate 1 e a fonte do transistor. Essa carga faz com que o limiar do transistor aumente, impedindo a condução do mesmo. Expondo o componente aos raios UV, essa carga desaparece e o transistor volta a funcionar normalmente. Observação: na prática o transistor do tipo EPROM não é usado diretamente como comutador, mas sim fazendo pull-down.

17 1.Tipos de tecnologia de Programação (continuação):
1.3. Gate Flutuante(continuação): Vantagens: tecnologia EPROM: alta capacidade de reprogramação e retenção dos dados. tecnologia EEPROM: além das vantagens da EPROM é possível programar e reter as informações com o chip já instalado na placa (ISP - In System Programmability). Desvantagens: tecnologia EPROM: exige três processos adicionais na fabricação. A resistência dos comutadores ligados não atinge valores baixos e o consumo total é maior devido aos resistores de pull-down. tecnologia EEPROM: cada célula ocupa o dobro do espaço de uma EPROM.

18 RESUMO DAS TECNOLOGIAS DE PROGRAMAÇÃO:
Nome Reprogramação Volatilidade Tecnologia EPROM sim, fora do circuito não UVCMOS EEPROM Sim, no circuito EECMOS SRAM sim CMOS Antifuse CMOS+

19 2. ARQUITETURA DE BLOCOS LÓGICOS:
Os blocos lógicos variam de tamanho e capacidade de Implementação e são baseados nos seguintes componentes: pares de transistores; Portas básicas tipo NAND ou XOR de duas entradas; Look-up tables (LUTs); Estruturas AND-OR de múltiplas entradas; Quanto ao bloco lógico classifica-se as FPGAs como: 2.1 granularidade fina (blocos simples) 2.2 granularidade grossa (blocos mais complexos e maiores)

20 2. ARQUITETURA DE BLOCOS LÓGICOS (continuação):
2.1 Blocos de Granularidade Fina: Exemplo seria um bloco contendo alguns transistores interconectáveis ou portas lógicas básicas (por ex. NAND) vantagem: são quase totalmente utilizados desvantagem: são em número muito grande devido à baixa capacidade lógica necessitando de uma grande quantidade de trilhas de conexão e comutadores programáveis. Um roteamento desse tipo torna- se lento e ocupa grande área no chip.

21 2. ARQUITETURA DE BLOCOS LÓGICOS (continuação):
2.1 Blocos de Granularidade Grossa: São baseados em \multiplexadores ou look-up tables Vantagem: fornece um alto grau de funcionalidade com um número relativamente pequeno de transistores. Desvantagem: Possuem muitas entradas necessitando de muitos comutadores, sobrecarregando o roteamento. (a tecnologia antifuse é mais adequada devido ao tamanho reduzido dos comutadores).

22 Look-up table (LUT): é uma memória de um bit de largura, onde suas
Linhas de endereçamento funcionam como entradas do bloco lógico e sua saída fornece o valor da função lógica. Vantagem: alto grau de funcionalidade . Ex: uma LUT de K entradas pode implementar qualquer função de K entradas e existem 22k funções. Desvantagem: são inaceitavelmente grandes para mais que cinco entradas.

23 LÓGICA SEQUENCIAL: A maioria dos blocos lógicos apresenta alguma forma de lógica seqüencial. Geralmente utilizam flip-flops tipo D que podem ser conectados via programação às saídas dos blocos combinacionais. Em alguns dispositivos, a lógica seqüencial não está explicitamente presente, e deve ser formada utilizando-se o roteamento programável e os blocos puramente combinacionais.

24 3. ARQUITETURA DE ROTEAMENTO: É a maneira pela qual os comutadores
programáveis e segmentos de trilha são posicionados para permitir a interconexão das células lógicas. Pinos : são as entradas e saídas dos blocos lógicos. Conexão: ligação elétrica de um par de pinos de blocos lógicos. Rede: é um conjunto de pinos de blocos lógicos que estão conectados. Comutador de roteamento (switch): é um dispositivo utilizado para conectar eletricamente dois segmentos de trilha. Segmento de trilha: é um segmento não interrompido por comutadores programáveis. Cada terminação de um segmento possui um comutador associado. Trilha: é uma seqüência de um ou mais segmentos de trilha em uma direção, estendendo-se por todo o comprimento de um canal de roteamento. Pode ser composta de segmentos de tamanhos variados. Canal de roteamento: é a área entre duas linhas ou colunas de blocos lógicos. Um canal contém um grupo de trilhas paralelas.

25 ARQUITETURA GERAL DE ROTEAMENTO

26

27 FAMÍLIA de FPGA da ALTERA

28 ARQUITETURA BÁSICA DO FPGA DA ALTERA: série FLEX 8000

29 Arquitetura Básica do Elemento Lógico – Família Flex 8000 da Altera
-Baixo consumo de corrente. -Componente em SRAM. -Voltado para grande quantidade de registradores. -Tensão de 3.3 e 5V. -Alta Densidade.-Densidade de a utilizáveis..

30 APRESENTAÇÃO DO SOFTWARE DA ALTERA

31 Entrada de dados Utilizando o software MAX+PLUSII, podemos entrar com o projeto de diferentes maneiras, agilizando o projeto. Abaixo temos as diferentes formas de entrada de dados: Esquemático => podemos entrar com um esquemático utilizando o editor gráfico do software MAX+PLUSII, ou importar via Orcad. Texto => pode ser gerado a partir de uma linguagem própria da Altera (AHDL) ou VHDL gerados a partir do MAX+PLUSII. Formas de Onda => o módulo de entrada via forma de onda permite que a partir da descrição das formas de onda de entrada e saída possamos descrever o projeto. EDIF => o MAX+PLUSII permite que se importe qualquer arquivo padrão EDIF.

32 ENTRADA DE DADOS: MAX+PLUSII MAX+PLUSII MAX+PLUSII MAX+PLUSII
Editor Gráfico Editor de Texto Editor de forma de onda MAX+PLUSII MAX+PLUSII Editor de símbolos Floorplan Editor Topo de hierarquia .gdf .sch .wdf .tdf .vhd .edf .xnf .adf .smf Importado de outros softwares Importado do A+PLUS E SAM+PLUS

33 O arquivo topo de hierarquia pode ser um gráfico, gerado a partir do MAX+PLUSII ou Orcad,
um arquivo texto podendo ser em AHDL ou VHDL ou mesmo um arquivo EDIF gerado a partir de outras ferramentas. Abaixo temos uma descrição das principais extensões dos arquivo de entrada de dados: - GDF - (graphic design file) - Arquivo gráfico gerado a partir do editor gráfico do MAX+PLUSII. - SCH - (Orcad schematic file) - Arquivo gráfico gerado a partir do Orcad. - WDF - (waveform design file) - Arquivo de forma de ondas gerado a partir do editor de forma de onda do MAX+PLUII. - TDF - (text design file) - Arquivo texto descrito em AHDL gerado a partir do editor de texto do MAX+PLUSII. - VHD - (VHDL design file) - Arquivo texto descrito em VHDL gerado a partir do editor de texto d - EDF - (Edif input file) Arquivo texto, formato Edif 290 ou 300, importado de outras CAE. - XNF - (Xilinx Netilist Format file) - Arquivo texto, formato Xilinx. - ADF - (Altera design File) Arquivo texto, gerado pelo software Aplus da Altera. - SMF - (State Machine Files) Arquivo texto, gerado pelo software SAM+PLUS da Altera.

34 INTRODUÇÃO DESCRIÇÃO DO PROJETO chiptrip.gdf tick_cnt.gdf time_cnt.tdf
Nas páginas seguintes, iremos utilizar a maioria das ferramentas básicas do software MAX+PLUSII, construindo um projeto que se encontra no manual geting starded da ALTERA. DESCRIÇÃO DO PROJETO Iremos criar um projeto denominado CHIPTRIP, que será dividido em 5 blocos de hierarquia. Este projeto é um simulador de direção (em que você simulará vários caminhos e velocidade para chegar até a ALTERA). Abaixo segue o diagrama em bloco deste projeto: chiptrip.gdf tick_cnt.gdf time_cnt.tdf auto_max.tdf speed_ch.wdf 8count.gdf TICK_CNT.GDF => Arquivo gráfico - grava o número de multas levadas. É composto por um contador up, incrementado a partir de uma multa recebida. TIME_CNT.TDF => Arquivo texto - arquivo de clock. Conta o número de pulsos de clock requeridos para o veículo chagar até ALTERA. AUTO_MAX.TDF => Arquivo texto - estado de máquina que monitora os parâmetros de direção e aceleração, determinando a próxima localização para seu veículo. SPEED_CH.WDF => Arquivo em forma de onda. Funciona como medidor de velocidade, checando a aceleração de seu veículo.

35 CRIANDO UM ARQUIVO GRÁFICO
1)ESPECIFICANDO O NOME DO PROJETO Para especificar o nome do projeto: 1) Chame Project Name no FILE menu. Irá aparecer a seguinte janela MOSTRA O NOME DO PROJETO MOSTRA OS DIRETORIOS E SUBDIRETORIOS MOSTRA TODOS DESIGN DO CORRENTE DIRETORIO 2) Digite TICK_CNT no nome do projeto. 3) Clique OK. Na barra de título aparecerá o nome do corrente projeto, bem como subdiretório em queo mesmo esta arquivado.

36 2)Criando um novo arquivo
Para criar um novo arquivo: 1) Clique icon do novo arquivo no TOOLBAR. 2)Selecione arquivo editor gráfico. 3)Cique OK. EDITOR GRÁFICO EDITOR DE SÍMBOLO EDITOR DE TEXTO EDITOR DE FORMA DE ONDAS Irá aparecer a seguinte janela: texto Linha ortogonal Linha perpendicular arco Circulo Zoom in Zoom out Vista total da janela Conecção entre linhas Conecta e desconecta segmentos de linhas

37 3) Entrando com uma primitiva ou macrofunção
4) Para Salvar o arquivo, no menu FILE, chamar SAVE AS.Aparecerá a seguinte janela: tick_cnt. NOME DO ARQUIVO DIFERENTE EXTENSÃO 5)Clique ok. 3) Entrando com uma primitiva ou macrofunção 1) Clique duas vezes com o botão da esquerda do mouse.Irá aparecer a seguinte janela: PRIMITIVA OU MACRUFUNÇÃO BIBLIOTECAS

38 5) Entrando com pinos de saída e entrada
8count 2) Digite 8count no nome do símbolo. 3) Clique OK. 4) Repita o procedimento para nor2 e gnd. 4) Movendo um símbolo 1) Com o botão da esquerda do mouse, clique em cima do símbolo a ser movido. Note que neste instante o mesmo adquire um contorno, representando que o mesmo foi selecionado. 2) Mantendo o botão da esquerda pressionado, mova o símbolo para o lugar desejado. 3) Em caso de desejar mover mais de um símbolo, com o botão da esquerda do mouse, selecione a área a ser movida, soltando o botão do mouse quando toda área estiver selecionada. 5) Entrando com pinos de saída e entrada 1) Clique duas vezes o botão da esquerda do mouse na área de trabalho. 2) Ao surgir a janela ENTER SYMBOL, digite o pino correspondente (input, output, bidir, etc). 3)Clique ok. OBS: note que cada símbolo apresentado, possui uma numeração específica, que representa a ordem de chamada do símbolo, para posterior identificação.

39 6) Colocando nome nos pinos
1) Com o botão da esquerda do mouse, clique duas vezes sobre o nome do pino, observe que o mesmo será selecionado. 2) Digite o novo nome do pino. Repita o procedimento acima para os 4 pinos, conforme esquema abaixo: INPUT:4 - get_ticket1 INPUT:5 - get_ticket2 INPUT:6 - clk INPUT:7 - ticket[3..0] OBS: Pinos que contenham colchete, só devem ser utilizados para representação de barramentos (vários pinos), sempre representando o bit mais significativo primeiro. 4) O procedimento acima também é usado para nomear saídas ou entradas, utilizadas como conexão interna. Para o Software,não há diferença entre nomes representados por letras maiúsculas ou minúsculas. 7) Conectando os símbolos 1) Selecione o tipo de linha a ser utilizado no menu lateral. 2) Mova o mouse até a conexão do pino ou símbolo. 3) Aperte e mantenha apertado o botão da esquerda do mouse.

40 3) Sem soltar o botão, leve a linha até o símbolo a ser conectado e solte o botão.
4) Utilizar a linha fina para ligações de apenas um sinal. 5) Utilizar a linha grossa para bus. 8) Utilizando bus No caso de utilizarmos vários sinais ligados ao mesmo pino (bus), devemos proceder da seguinte maneira: 1) Observar a denominação correta do pino (usando o nome do pino, e entre chaves os sinais do mais significativo para o menos significativo) 2) A conexão deste pinos com o pino deverá ser feita utilizando a linha grossa, selecionada pelo botão da direita do mouse (line style). 3) No símbolo, deverá ser representado isoladamente cada sinal pelo seu nome. 4) Para nomear a saída do símbolo e a entrada do pino, basta com o botão da esquerda do mouse clicar em cima da linha, e escrever o respectivo nome.

41 9) Salvando e checando eventuais erros
1) No menu do tollbars, clique o símbolo de salvar e checar. 2) Se aparecer na tela a mensagem que não houve erro no projeto clique ok. Obs - Note que o comando salvar e checar, só terá efeito no projeto corrente. Caso o projeto modificado, não seja o que aparece no título, aparecerá uma mensagem solicitando para trocar o nome do projeto. 10)Criando um símbolo Para se criar uma macrofunção deste projeto, devemos selecionar ao final do mesmo no menu FILE, a opção CREATE DEFAUT SYMBOL. Irá surgir na tela a mensagem que o símbolo corrente já existe e se deseja repassar o símbolo já existente. Clique ok. obs: Qualquer mudança em uma macrofunção ou nível inferior de hierarquia, deverá ser criado um novo símbolo.

42 Criando um arquivo com editor de forma de onda.
1)Especificando o nome do projeto e criando um novo arquivo. 1) Troque o nome do projeto para speed_ch. 2)Abra um novo arquivo de forma de onda usando o toolbar. 3)Observe que a extensão do arquivo deverá ser .wdf. 4) Salve como speed_ch. 2)Definindo entradas e saídas do projeto

43 Criando uma máquina de estados (pino interno)
1) Clique duas vezes o botão da esquerda do mouse no topo da planilha. Irá surgir a seguinte janela: nome do pino especifica nível inicial tipo de pino especifica tipo de pino especifica o tipo de lógica que esta ligado este pino 2) Digite o nome do pino (accel_in), nível lógico inicial 0 e selecione como pino de entrada. 3) Repita o procedimento acima para o pino reset e clk. Criando uma máquina de estados (pino interno) 1) Clique duas vezes no espaço em branco da planilha. 2) Digite o nome do pino (speed). 3) Selecione o valor inicial em X(indefinido). 4) Selecione tipo de pino como BURIED NODE. 5) Nas entradas secundárias, selecione CLK no clock e reset no RESET. 6) Selecione tipo de nó como MACHINE. 7)Clique OK. Criando um pino de saída 1) Clique duas vezes no espaço em branco da planilha. 4) Selecione tipo de pino como OUTPUT. 2) Digite o nome do pino (get_ticket) ) Nas entradas secundárias, selecione CLK no clock3) Selecione o valor inicial em ) Selecione tipo de nó como REGISTERED.

44 3) Editando ligações internas da máquina de estados
1) Clique o botão 1 no pino speed. 2) Chame OVERWRITE STATE NAME no menu EDIT. 3) Digite LEGAL no nome do estado. 4) Clique OK. 5) Selecione com o botão da esquerda pressionado, o intervalo de 300 a 540 ns. 6) Chame OVERWRITE STATE NAME no menu EDIT. 7) Digite WARNING. 8) Clique OK. 9) Repita o procedimento 5 a 8 para o intervalo de 540 a 660 ns, digitando o estado TICKET. 300ns 540ns 660ns

45 4) Editando os valores do pino de entrada.
1) Com o botão da esquerda do mouse, selecione o intervalo de 270 a 330ns no pino accel_in. 2) Automaticamente ao soltar o botão, será repassado o valor de 0 para 1. 3) Repita o procedimento acima para i intervalo de 510 a 570ns. 4) Repita o procedimento anterior para o intervalo de 630 a 690ns e chame o comando OVERWRITE no menu EDIT, e chame X(indefinido). 270ms 330ns 510ns 570ns 630ns 690ns 5) Para editar o pino clk, com o botão da direita selecione de 60 a 120ns. 6) Com o botão da esquerda selecione o intervalo de 0 a 120ns. 7) Chame o comando COPY no menu EDIT. 8) Chame o comando REPEAT no menu EDIT. 9) Irá surgir na tela a seguinte janela: 10) Digite o número de vezes a ser repetido a forma de onda (máximo ). 11) Repita o procedimento 1 e 2 para o pino get_ticket no intervalo de 540 a 660 ns. 4) Salve e cheque o projeto. 5) Crie o símbolo corrente.

46 Criando o top de hierarquia (gdf).
1) Troque o nome do projeto para chiptrip. 2) Chame um novo gráfico editor. 3) Salve este gráfico editor como chiptrip. 4) Crie o esquemático abaixo.

47 1)Definindo o componente a ser utilizado.
Compilando o projeto 1)Definindo o componente a ser utilizado. Com relação ao componente a ser utilizado, podemos selecioná-los de duas maneiras: -Diretamente no editor topo de hierarquia. -No próprio compilador. 2) Definindo o componente no editor gráfico 1) Chamar o comando DEVICE no menu ASSIGN. 2) Irá surgir a seguinte janela: Família Componente 3) Definir a família de componente a rotear o projeto. 4) Definir o componente a ser roteado o projeto. OBS: Caso seja utilizado o modo AUTO, o software escolherá o melhor componente para o roteamento. Neste caso será necessário escolher a família a se trabalhar. 5) Clique OK. 6) Se desejar setar TURBO BIT ou BIT DE SEGURANÇA, clicar o comando DEVICE OPTIONS. Irá surgir a seguinte janela:

48 2)Definindo o componente no compilador
turbo bit (on<off e default) bit de segurança (on, off e defautl 7) Clique OK. 2)Definindo o componente no compilador 1) Chame o compilador no comando do tollbar. 2)Chame o comando AUTO DEVICE SELECTION no menu DEVICE. Irá surgir na tela a seguinte janela: 3) Selecione a família desejada. 4) Na coluna da direita temos os componente que podem ser selecionados para o corrente projeto. 5) Se necessário , para o caso de se dividir o projeto em diversos componentes, podemos escolher os componentes, bem como o limite dos mesmos, usando a opção lLIMITED. 6) Clique OK.

49 3) Definindo pinos no editor gráfico
1) Clique duas vezes o botão da esquerda em cima do pino que deseja-se definir ou no menu ASSIGN clique a opção PIN/LOCATION/CHIP. Irá surgir a seguinte janela: Entra com o número do pino, Lcell, etc Nome do pino ou nó desejado : Indica os parâmetro já fixados 4) No campo NODE NAME, digitar o nome do pino correspondente. 5) No campo PIN/LOGIC CELL/CHIP, coloque o numero do pino desejado. 6) Clique ADD. 7) Ao termino, clique OK.

50 4) Setando o Design doctor
O DESIGN DOCTOR é uma ferramenta para checar todos os arquivos do projeto , informando os possíveis pontos de problema. Com o compilador aberto, chame a opção DESIGN DOCTOR SETTINGS no menu PROCESSING. Irá surgir a seguinte janela : seleciona as várias opções para rodar o DESIGN DOCTOR. seleciona manualmente as opções do DESIGN DOCTOR. 2) Selecione a opção desejada: -EPLD (ERASEBLE PROGRAMABLE LOGIC DEVICE) -FLEX 8000 -MPLD (ALTERA GATE ARRAY). 3)Clique OK. 4) Para habilitar o DESIGN DOCTOR, no menu PROCESSING, clicar a opção DESIGN DOCTOR. No compilador irá aparecer o indicativo de que o DESIGN DOCTOR esta habilitado. DESIGN DOCTOR habilitado

51 6) Selecionando o estilo de sintetização lógica
5) Setando o Report File O arquivo report é um arquivo texto que possui todas as informações a respeito do projeto, tais como equações, componente, taxa de utilização e outras. Podemos escolher quais as opções a serem geradas pelo report file, seguindo o seguinte caminho: 1)Clique a opção REPORT FILE SETTING no menu PROCESSING. Irá surgir na tela a seguinte janela: 2) Selecione as opções desejadas. 3) Clique OK. 6) Selecionando o estilo de sintetização lógica Podemos escolher o tipo de sintetização de lógica, preocupados em um melhor aproveitamento de área no componente, ou nos preocuparmos com velocidade. Neste caso procedemos da seguinte maneira: 1)Clique o comando GLOBAL PROJECT LOGIC SYNTETHESIS no menu ASSIGN. Irá surgir a seguinte janela:

52 7) Inicializando a compilação
2) Selecione o tipo de sintetização, sendo: NORMAL - otimização de área. FAST - Otimização de velocidade. WYS/WYG - Não será feito nenhuma otimização neste caso. 3) Selecione o uso dos sinais globais (se necessários). 4) Clique OK. 7) Inicializando a compilação 1) Clique a opção SAVE & COMPILE no TOOLBARS. Irá surgir a janela de compilação, já iniciando o processo de compilação. Na compilação o MAX+PLUSII irá gerar vários arquivo com diferentes extensões como mostrado abaixo: .edo .pof .sym .cnf .hif .mmf .rpt .fit .vho .sof .snf .vo .jed .sym => Symbol File => Arquivo que representa o símbolo do projeto. .cnf => Compiler Netilist File =>Arquivo que contem os dados de lógica e conexões do projeto. .hif => Hierarchy Interconnect File => Arquivo de conexão entre o topo do projeto e demais arquivos. .mmf => MAX+PLUS II Message File => Arquivo que contem todas as mensagens do projeto. .rpt => Report File => Arquivo que reporta todos os dados do projeto (pinagem, componente, equações, etc) .fit => Fit File => Arquivo que contem toda a informação interna de roteamento do projeto. .snf => Simulation Netilist File => Arquivo que contem os timming do projeto para simulação. .edo => Edif Output File => Arquivo de saída no padrão EDIF. Utilizado para utilização com outros softwares. .vho => VHDL Output File => Arquivo de saída em formato VHDL. .vo => Verilog Output File => Arquivo de saída em formato Verilog. .pof => Programmer Object File => Arquivo de programação. .sof => SRAM Object File => Arquivo de configuração para componentes em SRAM. .jed => JED file => Arquivo de programação.

53 8) Utilizando o display de hierarquia
O display de hierarquia tem por finalidade mostrar os diversos níveis de hierarquia do projeto, bem como visualizar os arquivos gerados e facilitar a abertura dos mesmo. 1) Clique a opção HIERARCHY DISPLAY no toolbars. Irá surgir a seguinte janela: topo de hierarquia arquivos gerados abrir arquivo

54 1)CRIANDO O CANAL DE SIMULAÇÃO:
CRIANDO UMA SIMULAÇÃO - Nesta seção iremos criar uma simulação, onde termos diversos caminhos para se chegar na ALTERA, utilizando o projeto descrito anteriormente, conforme o esquema abaixo: MPLD ALTERA RUA RESIDENCIAL ESTRADA COMERCIAL RPT EPM EPLD AUTOESTRADA CNF SUA EMPRESA GDF 1)CRIANDO O CANAL DE SIMULAÇÃO: -Chame o comando NEW no menu FILE. -Selecione a opção WAVEFORM. (observe se esta com a extensão SCF). -Clique OK. -Salve com o mesmo nome do projeto corrente a ser simulado. 2)ENTRANDO COM OS PINOS E NÓS: -Chame o comando ENTER NODES FROM SNF.. no menu NODE. -Irá aparecer a seguinte janela:

55 simulados. (RESET, ENABLE,DIR1,DIR0,CLOCK, ACCEL AT_ALTERA,
nome do nó ou pino lista as opções nós ou pinos avaliados nós ou pinos selecionado tipos de nós ou pinos a serem mostrados -Selecione o tipo de sinal a ser simulado na opção TYPE. (neste caso todos). -Com o botão da direita do mouse clique duas vezes nos sinais a serem simulados. (RESET, ENABLE,DIR1,DIR0,CLOCK, ACCEL AT_ALTERA, TIME_CNT:!COUNT{7..0], AUTO _MAX:1!STREET_MAP e SPEED_CH:2!SPEED. OBS: quando o sinal for um pino interno, o mesmo mostra o a macrofunção com seu respectivo número. -Clique OK. -Selecione o tamanho do arquivo de simulação usando o comando SIZE no menu FILE. -Salve com o nome do corrente projeto a ser simulado.

56 Editando os valores de entrada
- Clique duas vezes o botão da esquerda do mouse em cima do sinal ENABLE. - Na janela ENTER NODE, selecione o default para HIGH. - Com o botão da esquerda pressionado no sinal DIR1, selecione o intervalo de 200ns a 400ns e no menu EDIT chame o comando OVERWRITE HIGH. - Repita o procedimento acima para o sinal DIR0 no intervalo de 200ns a 500ns. - Se necessário utilize o comando SNAP TO GRID. - Para criar o sinal de clock, altere o grid para 50ns(se necessário). Com o botão da direita selecione o intervalo de 50ns a 100ns, automaticamente neste intervalo o sinal será alterado para HIGH. - Com o botão da esquerda selecione o primeiro pulso de clock (intervalo de 0 a 100ns). - Chame o comando COPY no menu EDIT. - Chame agora o comando REPET no menu EDIT. Irá surgir a seguinte janela: número de vezes a repetir o sinal (máximo 10000).

57 - Selecione o número de vezes a ser repetida a forma de onda .
- Clique OK. - Selecione o valor LOW para o sinal RESET e o sinal ACCEL. - Salve o corrente arquivo. SIMULANDO O PROJETO - Chame o comando SALVE & CHECK no menu FILE. - Automaticamente qualquer modificação no arquivo de simulação será salvo e o simulador irá iniciar a simulação. Irá aparecer a seguinte janela indicando o inicio da simulação: projeto a ser simulado tempo decorrido da simulação término da simulação início da simulação simulação utilizando o componente checa violações de setup e hold verifica oscilações compara as formas de onda com outro arquivo verifica glich no corrente projeto

58 UTILIZANDO O ANALISADOR DE TIMING
Através do software MAX+PLUS II , podemos simular os tempos máximos de propagação entre os sinais internos do componente. Podemos ainda analisar violações de SETUP E HOLD, bem como determinar a máxima freqüência de trabalho do componente em questão. Os dados obtidos no analisador de timing, dependerão do componente e da velocidade do componente selecionado para o roteamento do projeto. Trocando-se o componente por outro de velocidade maior, termos modificações nos valores apresentados pelo simulador. É importante lembrar que na análise de timing, os valores apresentados são referentes a valores máximo não necessariamente sendo exato, podendo variar de componente para componente, mas nunca ultrapassando o valor máximo apresentado. Analisador de timing: -No menu MAX+PLU II chame o comando SIMULATOR. -Clique START.

59 LOCALIZANDO O PONTO DE PROPAGAÇÃO
-Os valores apresentados mostram os tempos de propagação entre os sinais. -Não havendo representação, indica que os pinos em questão não tem ligações. LOCALIZANDO O PONTO DE PROPAGAÇÃO -Clique o comando LIST PATHS. -Selecione a mensagem desejada. -Clique o comando LOCATE, automaticamente será apresentado o ponto onde este sinal esteja. ANALISANDO SETUP/HOLD -Chame o comando SETUP/HOLD MATRIX no menu ANALYSIS. -Clique START

60 Analisador de performance
-Chame o analisador de timing. -No menu ANALYSIS chamar REGISTER PERFORMANCE. -O analisador de performance irá determinar no corrente projeto, o ponto de maior freqüência de trabalho, listando ainda os demais ponto de freqüência para perfeito funcionamento do projeto. ponto de maior freqüência Valor máximo do clock no ponto especificado.

61 Compilando com parâmetros de Timing:
No caso de utilizarmos parâmetro específicos e pré definidos de timining, tais como: freqüência máxima de trabalho, tempo de propagação entre macrocelulas, etc, podemos descrever estes parâmetro ao software, de modo que na compilação, sejam obedecidos os parâmetros pré estipulados. No menu ASSIGN, chamamos a seguinte opção: GLOBAL PROJECT TIMING REQUIREMENTS. Irá aparecer a seguinte janela: tpd - é o tempo de propagação de um sinal de entrada utilizando somente lógica combinacional. tco - e o tempo para se obter um sinal em um pino de saída registrado, após o pulso de clock. tsu - tempo de setup. É o em que o dado ou enable de um flip flop tem que estar presente antes do sinal de clock ocorrer. fmáx - máxima freqüência de trabalho. OBS : Os parâmetros de roteamento de timing somente poderão ser utilizados nas seguintes Famílias de componentes: Max7000 Max9000 Flex10000 Flex8000 1) Escolha o parâmetro a ser roteado. 2) Coloque o valor desejado. 3) Clique OK e compile o projeto. OBS: Caso não seja possível rotear com o parâmetro selecionado, o software automaticamente desprezará o valor seleciona e emitirá uma mensagem de aviso.

62 PROGRAMANDO O COMPONENTE
-No menu MAX+PLUS II chame o comando PROGRAMMER. -Irá surgir na tela a seguinte janela: seta o bit de segurança nome do arquivo de programação componente checksum testa o componente com um arquivo de simulação verifica se o componente esta em branco efetua a leitura no componente se o mesmo não estiver com bit de segurança verifica se o arquivo gravado está igual ao arquivo de programação (se o bit de segurança não estiver setado) Programa o componente

63 2)Criando um novo arquivo
Para criar um novo arquivo: 1) Clique o ícone do novo arquivo no TOOLBAR. 2)Selecione arquivo editor gráfico. 3) Clique OK. EDITOR GRÁFICO EDITOR DE SÍMBOLO EDITOR DE TEXTO EDITOR DE FORMA DE ONDAS Irá aparerecer a seguinte janela: texto Linha ortogonal Linha perpendicular arco Circulo Zoom in Zoom out Vista total da janela Conexão entre linhas Conecta e desconecta segmentos de linhas


Carregar ppt "Dispositivos Lógicos Programáveis: FPGA"

Apresentações semelhantes


Anúncios Google