PROJETO DE CIRCUITOS INTEGRADOS VLSI



Documentos relacionados
PROJETO DE CIRCUITOS INTEGRADOS VLSI

Figura 01 Visão Geral da Placa

Instituto Tecnológico de Aeronáutica - ITA Divisão de Engenharia Eletrônica Departamento de Eletrônica Aplicada Laboratório de EEA-21

Sistemas Digitais. Tutorial Placa de Prototipação - Altera

LABORATÓRIO DE ELETRÔNICA DIGITAL Experiência 9: Análise de Circuitos com Contadores

Desenvolvimento com a placa Altera DE2 Prof. Rodrigo de Paula Rodrigues

Comunicação Serial com o AVR ATMEGA8

Disciplina: Laboratório de Circuitos Digitais

Organização e Arquitetura de Computadores II

PIC18F4550. Curso Engenharia de Controle e Automação. Alex Vidigal Bastos alexvbh@gmail.com

3.a Aula Prática Projeto de Circuitos Sequenciais com FPGA. Projeto e simulação de um gerador de frequência

Programação em BASIC para o PIC Projetos com Display Gráfico Vitor Amadeu Souza

Programação em BASIC para o PIC Mostrando Mensagens no Display LCD Vitor Amadeu Souza

SSC Projeto e Implementação de Sistemas Embarcados I

Disciplina: Laboratório de Circuitos Digitais

Programação de CPLDs no ambiente ISE 4.2i da Xilinx

Parallel to Serial Shifting IN

O diagrama ASM contém dois elementos básicos: o bloco de estado e o bloco de decisão.

UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE ESCOLA AGRÍCOLA DE JUNDIAÍ EAJ - PRONATEC / REDE etec MÓDULO III DESENVOLVIMENTO PROFESSOR ADDSON COSTA

A idéia hardware sugerida é colocar a placa entre o PC e o microcontrolador, conforme mostrado no esquema abaixo.

UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE - UFRN DEPARTAMENTO DE INFORMÁTICA E MATEMÁTICA APLICADA DIMAP

Curso Superior de Sistemas de Telecomunicações Unidade São José. Disciplina: Síntese de Sistemas de Telecomunicações 7º Fase

ELT601 Eletrônica Digital II Graduação em Engenharia Eletrônica

1 Título. 2 Objetivos. 3 - Fundamentos Teóricos. Página 1 de 5 Universidade Federal de Juiz de Fora. Prática 1 Aplicações das Funções Lógicas

PROGRAMAÇÃO EM VHDL DE CIRCUITOS LÓGICOS PARA IMPLEMENTAÇÃO EM FPGA RELATÓRIO FINAL DE PROJETO DE INICIAÇÃO CIENTÍFICA

Profª Danielle Casillo

DESENVOLVIMENTO DE UMA BIBLIOTECA PARA COMUNICAÇÃO COM A CAMADA FÍSICA USB PADRÃO ULPI

Curso Superior de Sistemas de Telecomunicações Unidade São José. Disciplina: Síntese de Sistemas de Telecomunicações 7º Fase

LABORG. Parte 5 Projeto de um circuito digital de média complexidade Parte 2. Fernando Gehm Moraes Matheus Trevisan

Informática Aplicada

DISCIPLINA: Sistemas Digitais

TUTORIAL DE PROGRAMAÇÃO. Configuração do cartão de entrada / saída analógica CP1W-MAD11.

Projecto e Controlo em Lógica Digital

Modelagem de Banco de Dados através do ERwin

[RÓTULO:] MNEMÔNICO [OPERANDOS] [;COMENTÁRIO]

Lab 3. Timing Timing Constraints Simulação

Aula 09 - Atualização de uma tabela dinâmica. Aula 09 - Atualização de uma tabela dinâmica. Sumário. Atualizando a tabela dinâmica

Tutorial de Utilização do CellControl SMS I/O em rede DXNET com CLP Dexter µdx série 200

Implementação de um Sistema Digital em VHDL Cronômetro para Jogos de Basquete

Na primeira aula, conhecemos um pouco sobre o projeto Arduino, sua família de placas, os Shields e diversos exemplos de aplicações.

Prototipação de Sistemas Digitais. Metodologia de Projetos Cristiano Araújo

O AMPLIFICADOR LOCK-IN

- SISTEMAS DIGITAIS II

Central de Alarme de Oito Zonas

Memórias Prof. Galvez Gonçalves

Relatório do GPES SATI

Introdução a Informática. Prof.: Roberto Franciscatto

RELATÓRIO DE ESTÁGIO

EPUSP PCS 2355 Laboratório Digital. Contadores em VHDL

EXPERIÊNCIA 2 PORTAS LÓGICAS BÁSICAS E UNIVERSAIS

Disciplina: Processamento Digital de Sinais (ENG577) Aula 05 Parte 2: Dispositivos de Hardware Programável Prof.: Eduardo Simas

Tutorial de Utilização do CellControl SMS 200 em rede DXNET com CLP Dexter µdx série 200

02 - Usando o SiteMaster - Informações importantes

ELT601 Eletrônica Digital II Graduação em Engenharia Eletrônica

Programação Básica em STEP 7 Símbolos. SITRAIN Training for Automation and Drives Página 4-1

IMPLEMENTAÇÃO DE UM SISTEMA DE SELEÇÃO DE PEÇA USANDO CONCEITOS DE PROGRAMAÇÃO DE SISTEMA DE AUTOMAÇÃO. João Alvarez Peixoto*

Ciclo de Seminários Técnicos

Portas Lógicas Básicas: Parte 2 Simulação Lógica

Projeto Dirigido: Genius

Entradas Digitais. PdP. Autores: Luís Fernando Patsko e Tiago Lone Nível: Intermediário Criação: 27/12/2005 Última versão: 18/12/2006

PdP. Autor: Luís Fernando Patsko e Tiago Lone Nível: Intermediário Criação: 26/12/2005 Última versão: 18/12/2006

Organização e Arquitetura de Computadores I

Especificação do Trabalho

LABORATÓRIO N.º 1 Uso do Módulo Digital e Iniciação a Eletrônica Digital

Manual do Usuário. Tag List. Tag List Generator. smar FIRST IN FIELDBUS JUL / 02. Tag-List VERSÃO 1.0 TAGLSTC3MP

ELT601 Eletrônica Digital II

Diretrizes para Elaboração da Dissertação de Mestrado - PGECIV

Prof. Rômulo Calado Pantaleão Camara. Carga Horária: 2h/60h

EA773 - Experimento 5

Departamento de Engenharia Electrotécnica e de Computadores Instituto Superior Técnico Universidade Técnica de Lisboa

DECODIFICADOR DE DISPLAY DE 7 SEGMENTOS COM LATCH

Boletim Técnico R&D 03/08 CARACTERÍSTICAS DO DRIVER MPC6006L 14 de março de 2008

Cerne Tecnologia e Treinamento

LP II Estrutura de Dados. Introdução e Linguagem C. Prof. José Honorato F. Nunes honorato.nunes@ifbaiano.bonfim.edu.br

CAPÍTULO 7 DECODIFICADORES

PROGRAMAÇÃO EM LINGUAGEM LADDER LINGUAGEM DE RELÉS

Sistemas Digitais Reconfiguráveis

PROJETO. Ponte Digital. Luciano Daniel Amarante - carabina@pop.com.br Ricardo Watzko - rw@netuno.com.

4 O Workflow e a Máquina de Regras

Desenvolvimento de Módulo Wireless para Acionamento de Cargas via Porta Paralela

Hardware de Computadores

Curso de C. Introdução by Arnaldo V. Moura e Daniel F. Ferber

AULA 5 Aplicação com divisor de freqüência com o CI Livro Texto pág.197 a 200.

MANUAL - BIKESYS. Versão 1.0 Beta. Março 2013

Manual Resumido PR Master. Versão

Orientação a Objetos

Projeto No. 11 Display de Leds de 7 Segmentos

Manual do Contribuidor. Portal de Internet. Projeto: Novo Portal de internet

Medidor da temperatura local

Manual Placa DMX 4 pixels RGB

Action.NET. Agrupamento de Pontos ONS- Submódulo 2.7. Manual de Referência

DIFERENÇAS ENTRE FUNÇÃO E BLOCO FUNCIONAL; CRIAÇÃO DE FUNÇÃO / BLOCO FUNCIONAL; UTILIZAÇÃO NO LADDER; EXEMPLO DE BLOCO FUNCIONAL;

DOCUMENTAÇÃO DO FRAMEWORK - versão 2.0

ARRAYS. Um array é um OBJETO que referencia (aponta) mais de um objeto ou armazena mais de um dado primitivo.

Cerne Tecnologia e Treinamento

Especificação do 3º Trabalho

UNIVERSIDADE FEDERAL DE SANTA CATARINA EEL5105 Circuitos e Técnicas Digitais Prof. Eduardo L. O. Batista

Simulador do Processador Neander T&D-Bench Simulator Manual do Usuário. por Júlio César Maccali. revisado por Prof. Christian Zambenedetti

PROJETO DE CIRCUITOS INTEGRADOS VLSI

Transcrição:

Universidade Federal do Piauí Centro de Tecnologia Curso de Engenharia Elétrica PROJETO DE CIRCUITOS INTEGRADOS VLSI Prototipagem Prof. Marcos Zurita zurita@ufpi.edu.br www.ufpi.br/zurita Teresina - 2013

Prototipagem de um Modelo HDL em FPGA Uma vez um sistema descrito em uma linguagem HDL foi simulado com êxito, o mesmo pode ser prototipado em FPGA. Para isto, o primeiro passo é associar cada terminal externo do modelo à um pino do FPGA escolhido. Geralmente, para a modelagem de um sistema VLSI, adota-se uma placa de desenvolvimento em FPGA cujas características se adequem ao sistema alvo. Conhecendo-se a placa de desenvolvimento adotada, a determinação dos pinos do FPGA a serem utilizados torna-se bastante simples, bastando para isso uma rápida análise do manual da placa. 2

Prototipagem Placa de Desenvolvimento Adotada Altera Nios II Development Kit - Stratix II Edition Ethernet USER I/O Stratix II FPGA EP2S60F672C5ES RS232 RS232 USER I/O Memória SRAM Memória FLASH FLASH Card MAX CPLD Memória DRAM USER LEDs USER Keys USER Displays 3

Associando Terminais do Modelo à Pinos do FPGA A associação dos terminais externos de um modelo HDL à pinos do FPGA no Quartus II pode ser feita basicamente de quatro formas: Utilizando o Pin Planner; Utilizando o Assignment Editor; Edição manual do arquivo.qsf ; Inserção de atributos de síntese no código HDL. A fim de ilustrar as formas possíveis de associação de pinos, considere o modelo a seguir: 4

Divisor de Clock Divisor do clock de entrada (50MHz) com resposta visual: LEDs 0 à 3: correspondem ao clock de entrada dividido por 2 26 à 2 23, respectivamente; LEDs 4 à 7: correspondem ao estado das teclas user_pb[0] à user_pb[3], respectivamente. Vcc clock (50MHz) reset user_pb[0] user_pb[1] user_pb[2] user_pb[3] clk rst_n clock_divider ledg[0] ledg[1] ledg[2] ledg[3] ledg[4] ledg[5] ledg[6] ledg[7] 5

Código de Implementação Divisor de Clock module clock_div(input logic clk, rst_n, output logic [7:0] ledg, input [3:0] user_pb); logic [25:0] c; logic [1:0] scaler; always_ff @(posedge clk, negedge rst_n) c[0] <= (~rst_n)? 1'b0 : ~c[0]; Terminais externos do módulo clock_div genvar i; // variável de indexação para o 'generate-for' generate for (i=0; i < 25; i++) begin : clocks always_ff @(posedge c[i], negedge rst_n) c[i+1] <= (~rst_n)? 1'b0 : ~c[i+1]; end endgenerate always_comb begin for (int j=0; j<4; j++) begin ledg[j] = c[25-j]; ledg[j+4] = ~user_pb[j]; end end endmodule 6

Diagrama RTL para o divisor de clock Detalhe dos 6 últimos FFs da cadeia: 7

Quartus II Pin Planner Janelas de tarefas e relatório Mapa de pinos do FPGA adotado Listagem dos pinos do FPGA 8

Quartus II Pin Planner: Mapa de Pinos do FPGA Pinos atribuídos ao projeto 9

Quartus II Pin Planner Exibe a legenda dos pinos Nome do terminal no código HDL Pino associado no FPGA Padrão de I/O relacionado Direção do sinal Banco de I/O correspondente ao o pino Grupo de alimentação correspondente 10

Quartus II Assignment Editor 11

Arquivo.qsf Gerado automaticamente pelo Quartus na criação do projeto, tendo o mesmo nome base; Atualizado automaticamente a cada síntese; Reúne diversas configurações relativas à síntese do projeto, dentre elas, a configuração dos pinos do FPGA e os terminais do modelo para os quais apontam; No.qsf, cada pino do FPGA pode ser atribuído a um terminal do modelo HDL por uma instrução específica. Sintaxe: set_location_assignment nome_do_terminal -to PIN_ID_DO_PINO -comment "comentário opcional" set_location_assignment PIN_ID_DO_PINO -to nome_do_terminal -comment "comentário opcional" Exemplos: set_location_assignment PIN_AF15 -to clock set_location_assignment addr[10] -to PIN_M20 -comment "Endereço da ROM" 12

Adicionalmente, é possível especificar também o padrão de tensão de I/O para um terminal já associado. Sintaxe: set_instance_assignment -name IO_STANDARD "Padrão_Adotado" -to nome_do_terminal Exemplo: set_instance_assignment -name IO_STANDARD "3.3 V" -to addr[10] Por fim, pode-se também configurar, se necessário, a força do sinal de saída em um pino já associado. Sintaxe: set_instance_assignment -name CURRENT_STRENGTH_NEW "ForçaDoSinal" -to nomedoterminal Exemplo: set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to addr[10] 13

Acrescentar ao final do arquivo.qsf: Pinagem do Clock, Reset, LEDs e Chaves set_global_assignment -name AUTO_RESTART_CONFIGURATION OFF set_global_assignment -name RESERVE_ALL_UNUSED_PINS "AS INPUT TRI-STATED" # MAIN CLOCK ======================================== set_location_assignment PIN_AF15 -to clk # MAIN RESET BUTTON ================================= set_location_assignment PIN_AA15 -to rst_n # USER LEDS ========================================= set_location_assignment PIN_AD26 -to ledg[0] set_location_assignment PIN_AD25 -to ledg[1] set_location_assignment PIN_AC25 -to ledg[2] set_location_assignment PIN_AC24 -to ledg[3] set_location_assignment PIN_AB24 -to ledg[4] set_location_assignment PIN_AB23 -to ledg[5] set_location_assignment PIN_AB26 -to ledg[6] set_location_assignment PIN_AB25 -to ledg[7] # USER KEYS ========================================= set_location_assignment PIN_W24 -to user_pb[0] set_location_assignment PIN_W23 -to user_pb[1] set_location_assignment PIN_Y24 -to user_pb[2] set_location_assignment PIN_Y23 -to user_pb[3] 14

Inserção de Atributos de Síntese no Código HDL Outra forma de associar os terminais do top-level de um modelo à pinos do FPGA é fazê-lo diretamente em SV. Neste caso deve-se inserir o atributo 'chip_pin' entre comentários especiais, (* *), na mesma linha da declaração da porta a ser associada. Exemplo: module clock_div( (* chip_pin = "AF15" *) input logic clk, (* chip_pin = "AA15" *) input logic rst, (* chip_pin = "AB25,AB26,AB23,AB24,AC24,AC25,AD25,AD26" *) output logic [7:0]ledg, (* chip_pin = "Y23,Y24,W23,W24" *) input [3:0] user_pb); // código de implementação do módulo... endmodule Associação dos Pinos Diretamente em SystemVerilog 15

Bibliografia Quartus II Handbook Version 12.1 Volume 2: Design Implementation and Optimization, Altera Corp., 2012. Karim, M.A., Chen, X., Projeto Digital: Conceitos e Princípios Básicos, LTC, 2009. 16