Projecto de Sistemas Digitais. Trabalho Prático 1

Documentos relacionados
Introdução ao desenho de circuitos digitais usando Xilinx WebPACK 4.1 e linguagem ABEL

FPGA & VHDL. Tutorial

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

Introdução à Simulação em VHDL. Ney Laert Vilar Calazans

Lógica Reconfigurável

Laboratório de Eletrônica Digital Tutorial Quartus II (Procedimentos para Criação e Simulação de Projetos Digitais)

Tutorial para criação de circuitos digitais em VHDL no Quartus Prime 16.1

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

VIVADO TUTORIAL 101: CADEADO DIGITAL

Introdução VHDL Parte 4 - Testbench

Tutorial para criação de circuitos digitais utilizando diagrama esquemático no Quartus Prime 16.1

Introdução à aplicação ISE Foundation 6.1i/WebPACK da Xilinx

Microprocessadores. Notas sobre a utilização de Símbolos e Buses no Editor de Esquemáticos da Xilinx

Guião do Trabalho Laboratorial Nº 5 Modelação e Simulação de um Motor DC Através de Bond Graphs

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

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

Aprendendo a utilizar a Ferramenta Modelsim. Professor: Lucas Cambuim (lfsc)

Sistemas Digitais Guia de Implementação de Circuitos na Placa de Desenvolvimento

PROJETO DE SISTEMAS. DIGITAIS UTILIZANDO FPGAs. Parte 1

DEPARTAMENTO DE ENGENHARIA ELECTROTÉCNICA E DE COMPUTADORES INSTITUTO SUPERIOR TÉCNICO UNIVERSIDADE TÉCNICA DE LISBOA SISTEMAS DIGITAIS

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

FPGA & VHDL. Tutorial Aula 1. Computação Digital

LABORG. Parte 1 Introdução à Simulação em VHDL. Ney Laert Vilar Calazans

Laboratório sobre Implementação de Sistemas Digitais com VHDL Multiplicação por somas sucessivas

MicroElectrónica. Trabalho de Laboratório. Ambientação com as Ferramentas Dsch2, Microwind2 e Pspice

Exercícios de Laboratório 3

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

FEDERAL UNIVERSITY OF RIO GRANDE DO SUL

Electrónica II. 4º Trabalho de Laboratório. Projecto de CIs digitais (Dsch2 e Microwind2)

Sistemas Digitais. Linguagem Verilog. Monitoria SD Daniel Alexandro/Reniê Delgado/Vanessa Ogg. Editado por (DARA)

Laboratório 6 (Trabalho com Relatório) Semana 25 de Outubro a 29 de Outubro

Departamento de Engenharia Elétrica e de Computação EESC-USP. Guia de Projetos VHDL utilizando o QUARTUIS II. Profa. Luiza Maria Romeiro Codá

Electrónica Digital 2. Xilinx Webpack

Dispositivos lógicos programáveis (DLP) Princípio de funcionamento dos DLP. DLPs: Extensão para circuitos sequenciais

Universidade Federal de Santa Catarina Centro Tecnológico Departamento de Informática e Estatística Curso de Graduação em Ciências da Computação

Projecto de Sistemas Digitais (EEC4279)

INTRODUÇÃO AO SIMUL8

Universidade Federal de Santa Catarina Centro Tecnológico Departamento de Informática e Estatística Curso de Graduação em Ciências da Computação

Primeiro Trabalho de Sistemas Digitais

Treinamento em Projeto de Sistemas Digitais

Exercícios de Fixação

CIRCUITOS SEQUENCIAIS

1. Objetivos: Familiarizar o aluno com o uso do ambiente de desenvolvimento da Linguagem Verilog. Familiarizar o aluno com a linguagem Verilog.

Plano de Aula 26/8/13. VHDL - Visão Geral. Obje%vos: VHDL - Visão Geral. Descrição de circuito digital em VHDL

Projecto de Sistemas Digitais. Trabalho Prático 1

QUARTUS II DESENVOLVIMENTO

Circuitos/Sistemas Integrados Digitais (CID/SID)

PSI-3451 Projeto de CI Lógicos Integrados. Aula 9- Atividade de Aula com Memória e FIFO

Escola Politécnica da Universidade de São Paulo Departamento de Engenharia de Sistemas Eletrônicos - PSI. PSI Projeto de Sistemas Integrados

ALTERA Quartus II. Manual

ELETRÔNICA DIGITAL I

EPUSP PCS 3335/3635 Laboratório Digital. Circuito em VHDL

Bases de Dados. Lab 1: Introdução ao ambiente

Projeto Moderno de Sistemas Digitais

UNIVERSIDADE FEDERAL DE ITAJUBÁ

Power Estimation FPGA ASIC

Dispositivos de Lógica Programável

Circuitos combinatórios. (Revisão)

Projecto de Sistemas Digitais I. 2 o Ano 2006/2007

1 - Ambiente de desenvolvimento

Suporte de funcionamento e interacção com o teclado

FPGA - Field Programmable Gate Array

Introdução ao Max+Plus II

Projecto de Sistemas Digitais. Trabalho Prático 2

Organização e Arquitetura de Computadores I

Bases de Dados. Lab 1: Introdução ao ambiente. Figura 1. Base de dados de exemplo

VHDL é uma linguagem bastante complexa!

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

(Semana 11) L E D s. Entrada (hexa) Passe o simulador para modo Simulation e carregue em START.

Ciclo de Seminários Técnicos

CIRCUITOS SEQUENCIAIS

Passos Iniciais para simulação de um projeto utilizando portas lógicas

CONTROLO DE PONTE BASCULANTE

Sistemas Digitais. Tutorial Quartus II - Aprendendo as Ferramentas Básicas. Monitoria SD Daniel Alexandro/Reniê Delgado/Vanessa Ogg

SISTEMAS DIGITAIS INTRODUÇÃO AO AMBIENTE DE PROJECTO DO XILINX ISE 10.1 PEDRO TOMÁS, PAULO LOPES, HORÁCIO NETO

Instituto Superior de Ciências do Trabalho e da Empresa Departamento de Ciências e Tecnologias da Informação. Arquitectura de Computadores ETI IGE

Familiarização com o ambiente de desenvolvimento da Keil Software. (uvision 51 e dscope 51)

PASSO A PASSO COMO CRIAR UM NOVO PROJETO EM SCHEMATIC NO SOFTWARE QUARTUS II CYCLONE IV

1 Objetivos. 2 Material utilizado. 3 Normas de segurança e conduta no laboratório. 4 Contextualização. Pág 1/6

Tutorial MAXPLUS II Altera Bruno Cozer Fev.2001

Xilinx ISE. O projecto

Programação 2017/2018 2º Semestre

GUIA DE UTILIZAÇÃO DO VIVADO DESIGN SUITE WEBPACK: INTRODUÇÃO AO AMBIENTE DO PROJETO

Introdução ao Projeto de Sistemas Digitais com Dispositivos Programáveis

EPUSP PCS 2011/2305/2355 Laboratório Digital. Frequencímetro

Instituto Superior Técnico

PROJECTO DE UM SISTEMA DE FECHADURA ELECTRÓNICA

Projeto com Linguagens de Descrição de Hardware

Sistemas Digitais (SD) Lógica Programável

Tecnologia digital Trabalho nº 3 Miniprojeto de contadores digitais

Electrónica dos Sistemas Embebidos. Guia de Laboratório III

Laboratório sobre Implementação de Sistemas Digitais com HDLs Ferramentas de Captura e Validação

Projecto de Sistemas Digitais

Projeto de CI Semidedicados

Fundamentos de Sistemas Digitais. Lógica Sequencial. Prof. Dr. Alexandre M. Amory Prof. Dr Edson I. Moreno

Introdução ao Projeto de Sistemas Digitais com Dispositivos Programáveis

TUTORIAL PARA SIMULAÇÃO

LSCAD André Luiz junho ModelSim-Altera 6.6d

EPUSP PCS 2355 Laboratório Digital. Contadores em VHDL

Transcrição:

Licenciatura em Engenharia Electrotécnica e de Computadores 2004/05 1 o semestre Projecto de Sistemas Digitais Trabalho Prático 1 Modelação, síntese e implementação de circuitos sequenciais síncronos Objectivos Familiarização com as principais ferramentas em ambientes de projecto de sistemas digitais. Modelação em Verilog de um circuito digital sequencial síncrono; construção de um testbench que permita verificar a funcionalidade do modelo; síntese lógica do modelo validado e implementação do sistema numa plataforma de prototipagem. http://www.fe.up.pt/~aja/psd2004_05 Pág. 1 de 8

Parte 1 Modelação e síntese lógica Para exemplificar a utilização das ferramentas de projecto correspondentes a esta etapa vaise considerar um contador binário de 3 bits que se pretende simular e sintetizar. A listagem que se segue corresponde ao código Verilog do contador. module counter3b(clock, enable, reset, out, ovf); input clock, enable, reset; output [2:0] out; output ovf; reg [2:0] out; initial out=0; assign ovf = &out; // = out[2] & out[1] & out[0] always @(posedge clock) begin if (reset) out<=0; else if(enable) begin if (out==3 b111) // =7? out<=0; else out<=out+1; end end endmodule 1. Edite o código do contador no ficheiro counter3b.v colocando-o na sua área de trabalho. Após ter analisado o código correspondente ao modelo do contador, construa um testbench que lhe permita verificar a correcta funcionalidade do modelo. Crie para o efeito um ficheiro com o nome tb_counter3b.v. 2. Use a ferramenta de simulação ModelSim para fazer a verificação funcional do contador. (a) Invoque o ModelSim e crie um novo projecto (File New Project) alojando-o na sua área de trabalho (C:\users\???\sims) com o nome count. http://www.fe.up.pt/~aja/psd2004_05 Pág. 2 de 8

(b) Para especificar o projecto execute Options Edit Project. A janela de diálogo que surge permite-lhe indicar quais os ficheiros com código fonte que farão parte do projecto. Assim, com Browse... localize os ficheiros counter3b.v e tb_counter3b.v e faça Import. Desta forma está a copiar estes ficheiros da origem para o directório do projecto (C:\users\???\sims\count). Após cada operação de Import, faça Compile para compilar o código fonte e Add to Library. Este comando acrescenta o ficheiro compilado à biblioteca de trabalho (C:\users\???\sims\count\work) e acrescenta informação no ficheiro build_work.do que permitirá depois compilar automaticamente todos os ficheiros fonte do projecto. Corrija eventuais erros detectados durante a compilação. (c) Seleccione o modelo que representa o topo da hierarquia do projecto (tb_counter3b.v) fazendo Design Load New Design. (d) Antes de efectuar a simulação abra a janela que lhe permitirá visualizar as formas de onda resultantes da simulação (execute View Wave). Abra também a janela referente aos sinais do modelo (View Signals) e arraste os sinais que deseja monitorar para o lado esquerdo da janela de formas de onda. Como alternativa, pode executar o comando add wave * na janela principal do ModelSim que permite visualizar na janela de formas de onda todos os sinais visíveis do top-level. A configuração da janela de formas de onda (cores, base numérica de representação, etc.) pode ser alterada e gravada (File Save Format), sendo criado o ficheiro wave.do. Este pode ser posteriormente invocado noutra sessão de trabalho, a partir da janela de comando, para recuperar o ambiente especificado. (e) Simule agora o modelo executando Run Run -All e analise o resultado. (f) Altere o contador (ficheiro counter3b.v) de modo a torná-lo um contador up-down e verifique o seu funcionamento alterando também o respectivo testbench. Sempre que faça alterações em algum dos ficheiros que compõem o projecto, residentes no directório de simulação, deve recompilar o projecto (Design Compile Project), reiniciar o simulador (Run Restart) e executar de novo a simulação (Run Run -All). 3. Terminada a validação funcional do contador, use a ferramenta de síntese FPGA Express para obter o circuito lógico que o implementa. (a) Crie um novo projecto com File New Project, indicando como raíz o directório C:\users\???\syn. Acrescente ao projecto os ficheiros com código fonte sintetizável em Verilog (apenas counter3b.v neste caso). Caso seja necessário corrija eventuais erros, fazendo de seguida Update. (b) Proceda à síntese do circuito com Synthesis Create Implementation para uma tecnologia alvo XC4000 seleccionando Don t insert I/O pads. Analise e comente os resultados da síntese e compare os esquemas dos circuitos lógicos obtidos para a versão optimizada e para a versão não optimizada. http://www.fe.up.pt/~aja/psd2004_05 Pág. 3 de 8

(c) Experimente criar outras versões usando como critério de optimização, na síntese do circuito, a área ocupada ou a respectiva rapidez com diferentes níveis de esforço. Verifique qual a área mínima obtida para a implementação em termos de FMAPs e flip-flops. (d) Considerando a versão optimizada do circuito sintetizado, crie a netlist referente ao circuito executando Export netlist, seleccionando Verilog para o formato de saída para simulação (Simulation Output Format). Edite e analise o ficheiro assim obtido tendo o cuidado de não o alterar. (e) Repita o processo de validação funcional deste modelo, em vez do modelo original counter3b.v, usando o mesmo testbench. Parte 2 Implementação numa plataforma de ensaio Esta segunda parte do trabalho tem como objectivo exemplificar a implementação física do circuito referente ao contador, entretanto simulado e sintetizado, na plataforma FEUPix. Esta plataforma dispõe de um circuito FPGA da família XC4000E da Xilinx, permitindo a realização de protótipos e a sua experimentação. Para este efeito existe uma biblioteca de compoenentes que podem ser instanciados, servindo por exemplo para estabelecer uma interface para o protótipo realizado. No presente caso será usado um conjunto de botões de entrada para accionar as entradas do circuito, sendo o estado das saídas do contador monitoradas através de um conjunto de LEDs. O resultado do processo de síntese que realizou com o FPGA Express é um ficheiro EDIF que contém um modelo estrutural ao nível lógico do circuito projectado, já mapeado para as células disponíveis nesse tipo de FPGA: tabelas de 4 entradas (FMAP), tabelas de 3 entradas (HMAP) e flip-flops do tipo D. Para implementar esse circuito é agora necessário acrescentar buffers de entrada e saída que liguem as entradas e saídas aos terminais apropriados do circuito FPGA que estão já ligados a botões de pressão e LEDs. 1. Execute o Project Manager do ambiente de projecto Xilinx Foundation. Crie um novo projecto com as características que se seguem, não escolhendo nomes para directórios ou ficheiros com mais de 8 caracteres: Nome: escolha, por exemplo, testc3b; Directório: crie um directório na sua área de trabalho, destinado aos projectos Xilinx (por exemplo, C:\users\???\fndtn). Ao criar o projecto é criado um subdirectório dentro deste, com o mesmo nome do projecto, constituindo o directório do projecto e onde serão mantidos todos os ficheiros que fazem parte do projecto. No nosso exemplo, o directório do projecto será C:\users\???\fndtn\testc3b, sendo criado um ficheiro chamado testc3b.pdf (project description file) que contém informação relativa ao projecto; http://www.fe.up.pt/~aja/psd2004_05 Pág. 4 de 8

Project Type: escolha schematic, uma vez que o top-level do circuito será especificado com o editor esquemático; Family: XC4000E, a família do circuito FPGA que equipa a plataforma FEUPix e a que se destina o circuito a ser implementado; Device: XC4010EPC84, o dispositivo FPGA a que se destina o circuito a ser projectado; Último campo (sem nome): este parâmetro caracteriza a FPGA em termos de rapidez (escolha 4 que corresponde às que existem montadas nas cartas FEUPix). 2. Associe a biblioteca FEUPix ao seu projecto para poder dispôr dos seus componentes. Para tal, no Project Manager execute File Project Libraries, escolha FEUPix e faça Add. 3. Copie todos os ficheiros EDIF (extensão.edf) que estão em C:\local\feupix_lib_1.4\netlist para o directório do seu projecto. Estes ficheiros contêm as netlists dos componentes da biblioteca FEUPix, que foram criados em Verilog e que têm de residir no directório de qualquer projecto que os utilize. No nosso exemplo, esses ficheiros deveriam ser copiados para dentro de C:\users\???\fndtn\testc3b. 4. Invoque o editor esquemático a partir do Project Manager. Por omissão é criado um esquemático vazio com o nome atribuído ao projecto seguido de um número de ordem (testc3b1.sch). (a) Construa um componente na biblioteca do projecto que represente o circuito já sintetizado com o FPGA Express. Para isso, copie para o directório do seu projecto apenas o ficheiro EDIF produzido aquando da síntese. No editor esquemático execute Hierarchy Create Macro Symbol from Netlist, indicando como fonte o nome do ficheiro EDIF que tem a netlist. (b) Construa um esquema com o símbolo do componente que criou e acrescente os interfaces necessários. Pode utilizar o componente LEDs para ligar as 4 saídas do contador e o componente KEYS para ligar às 3 entradas (clock, reset e enable). Note que o sinal de relógio deve ser distribuído através de um buffer especial, que se chama BUFGS, para garantir que o clock skew resultante não compromete o funcionamento do circuito. Atribua nomes a todos os fios usados no seu circuito fazendo duplo click sobre o respectivo fio. 5. Crie a netlist do circuito assim desenhado (Options Create Netlist) e implemente o projecto no Project Manager (Implementation) ignorando eventuais mensagens de aviso. O resultado final da implementação é o ficheiro com extensão.bit criado no directório do projecto, que deverá ser carregado para a FPGA com o programa lpx. 6. Após a implementação examine os relatórios produzidos pela execução dos vários programas e identifique no: http://www.fe.up.pt/~aja/psd2004_05 Pág. 5 de 8

Map report: a ocupação da FPGA em termos de LUTs (look-up tables) de 4 entradas, LUTs de 3 entradas, flip-flops e CLBs (configurable logic blocks), assim como a complexidade do circuito, medida em portas lógicas equivalentes (equivalente ao número de portas NAND de 2 entradas); Post-layout timing report: a frequência máxima estimada para o sinal de relógio e o máximo atraso das interligações. 7. Experimente o circuito na plataforma FEUPix e verifique que cumpre a funcionalidade pretendida. Parte 3 Utilização do ambiente ISE da Xilinx Nas duas primeiras partes deste trabalho exemplificou-se o fluxo de projecto típico no desenvolvimento de um sistema digital recorrendo a ferramentas autónomas, tais como, ModelSim, FPGA Express e Xilinx Foundation. Um dos inconvenientes, visível mesmo num projecto simples, é a necessidade de criar e gerir um project em cada uma daquelas ferramentas, criando redundância de informação e dificultando a sua correcta gestão no espaço de trabalho. Como alternativa, apresenta-se nesta terceira parte do trabalho um ambiente de desenvolvimento integrado a partir do qual são realizadas as várias tarefas relativas ao fluxo de projecto. Este ambiente, proprietário da Xilinx, designa-se por ISE (Integrated Software Environment) e suporta os circuitos FPGA pertencentes às várias famílias Spartan e Virtex. A seguir mostram-se as principais fases de desenvolvimento baseadas no Xilinx ISE considerando o exemplo que tem vindo a ser usado (ficheiros counter3b.v e tb_counter3b.v). 1. Invoque o ambiente ISE usando o Project Navigator. De seguida crie um novo projecto dando-lhe o nome counter, localizando-o em C:\users\???\ISE\counter, referindo-se a uma abordagem HDL e com as seguintes propriedades (manter as atribuições fixadas por omissão): Device Family: Virtex; Device: xcv50; Package: bg256; Speed Grade: -5; Top-Level Module Type: HDL; Synthesis Tool: XST; Simulator: Modelsim; Generated Simulation Language: Verilog http://www.fe.up.pt/~aja/psd2004_05 Pág. 6 de 8

Quando surgir a opção Create a New Source passar à frente e em Add Existing Sources fazer Add Source counter3b.v, indicando que se trata de código fonte (Verilog Design File). Repetir esta última operação para o ficheiro tb_counter3b.v especificando que se trata de um testbench (Verilog Test Fixture File). Em ambos os casos mantenha seleccionada a opção Copy to Project que permite manter uma cópia do código fonte no directório do projecto. 2. Elaborado o projecto, passa-se à simulação do comportamento do modelo nele contido usando os estímulos definidos no ficheiro tb_counter3b.v. Para tal, na janela Sources in Project seleccione tb_counter3b.v e de seguida, na janela Processes for Source, expandindo o botão referente a ModelSim Simulator, faça duplo click em Simulate Behavioral Model executando de seguida o ModelSim. A utilização deste simulador foi já ensaiada na primeira parte deste trabalho, pelo que se dispensam comentários ao seu uso. Com base na visualização das formas de onda correspondentes aos sinais, verifiquee o comportamento do modelo. Como alternativa à criação de um ficheiro com o testbench, o ISE dispõe de uma ferramenta (HDL Bencher) que permite ao utilizador criar visualmente os estímulos a incluir no testbench. Ensaie esta funcionalidade criando um testbench alternativo ao fornecido. 3. A ferramenta de síntese usada neste ambiente designa-se por XST (Xilinx Synthesis Technology). Para proceder à síntese do circuito a partir do modelo descrito em counter3b.v, seleccione este ficheiro na janela Sources in Project e de seguida, na janela Processes for Source, faça duplo click em Synthesize - XST. Para especificar as propriedades a considerar durante o processo de síntese pode seleccionar Process Properties na janela principal e aí definir, por exemplo, o critério e o esforço de optimização, entre outros aspectos. Terminada a síntese podem consultar-se os resultados expandindo o botão referente a Synthesize - XST. 4. Para proceder à implementação do circuito sintetizado no circuito FPGA escolhido, antes de executar Implement Design na janela Processes for Sources relativamente à source counter3b.v, é necessário efectuar a atribuição dos sinais do circuito aos pinos de I/O. Para tal, seleccionar User Constraints, também na janela Processes for Sources e executar Assign Package Pins. Explore outras restrições que podem ser definidas relativamente ao circuito em causa. 5. Finalmente deve verificar-se se o circuito implementado satisfaz os objectivos que se propunham alcançar através da especificação inicial em Verilog. Assim, procede-se à simulação temporal do circuito usando os mesmos estímulos já utilizados durante a simulação funcional (ficheiro tb_counter3b.v). Para tal, na janela Sources in Project seleccione tb_counter3b.v e de seguida, na janela Processes for Source, expandindo o botão refehttp://www.fe.up.pt/~aja/psd2004_05 Pág. 7 de 8

rente a ModelSim Simulator, faça duplo click em Simulate Post-Place & Route Verilog Model executando de seguida o ModelSim. Para uma familiarização mais profunda com o Xilinx ISE aconselha-se seguir o respectivo tutorial disponível a partir da página da disciplina (http://www.fe.up.pt/~aja/psd2004_05/). Fim. http://www.fe.up.pt/~aja/psd2004_05 Pág. 8 de 8