TUTORIAL PARA SIMULAÇÃO

Documentos relacionados
DIGITAR AQUI OS COMANDOS

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

PSI-3451 Projeto de CI Lógicos Integrados. Aula 4

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

Tutorial MAXPLUS II Altera Bruno Cozer Fev.2001

Fundamentos de sistemas digitais. Test-bench. prof. Dr. Edson Ifarraguirre Moreno

Laboratório sobre Introdução a Sistemas de CAD, Projeto com Esquemáticos e Circuitos Combinacionais

LABORATÓRIO 1 - SIMULAÇÃO SPICE DO TRANSISTOR

Introdução à Linguagem VHDL

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

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

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

Módulo 4 Introdução ao VHDL

PSI-3451 Projeto de CI Lógicos Integrados

Lógica Reconfigurável

Projeto de CI Semidedicados

VHDL é uma linguagem bastante complexa!

Introdução VHDL Parte 4 - Testbench

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

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

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

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

FEDERAL UNIVERSITY OF RIO GRANDE DO SUL

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

TUTORIAL PARA SÍNTESE STANDARD- CELLS UTILIZANDO CADENCE

LSCAD André Luiz junho ModelSim-Altera 6.6d

UFPR Bacharelado em Ciência da Computação CI210 Projetos Digitais e Microprocessadores Laboratório: Somadores 30 de agosto de 2017

Eletrônica de Potência I Prof. André Fortunato rev. 1-11/2011

VHDL Circuitos Combinacionais

Exercícios de Laboratório 2

Prof. Leonardo Augusto Casillo

VHDL é uma linguagem bastante complexa!

ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES I. Introdução ao VHDL. César A. M. Marcon

ELETRÔNICA DIGITAL I

Universidade Federal Fluminense - UFF Centro Tecnológico - CTC Escola de Engenharia - TCE Departamento de Engenharia de Telecomunicações TET

Arquitetura de Computadores. Tiago Alves de Oliveira

a b s cout Tabela 1: tabela verdade do meio somador

Projeto de Somador com e sem Sinal. Qualificadores

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

Exercícios Referentes à Prova P1

Circuitos Aritméticos. Circuitos Aritméticos. Circuitos Aritméticos. Circuitos Aritméticos. Circuitos Aritméticos. Circuitos Aritméticos

Introdução à Engenharia ENG1000

Técnicas Digitais para Computação

Power Estimation FPGA ASIC

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

IDES E PROGRAMAÇÃO. Prof. Dr. Cláudio Fabiano Motta Toledo PAE: Maurício A Dias

SPYDER. um ambiente de desenvolvimento integrado (IDE*) para Python. Prof. Carlos Hitoshi Morimoto DCC IME USP Março, 2016

Circuitos combinatórios. (Revisão)

ROTEIRO 1 INTRODUÇÃO AO QUARTUS II

Introdução a Sistemas Digitais

Entraremos em sistema linux para realizar algumas tarefas e aprender alguns comandos.

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

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

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

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

Capítulo 6 Aritmética Digital: Operações e Circuitos

Universidade Federal de Santa Catarina Centro Tecnológico Departamento de Informática e Estatística Ciências da Computação & Engenharia Eletrônica

Criando e Simulando Circuitos Digitais no Quartus II

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

Primeiros passos das Planilhas de Obra v2.5 Instalação, configuração e primeiros passos para uso das planilhas de obra

Laboratório de Introdução à Arquitetura de Computadores IST - Taguspark 2017/2018 Introdução aos sistemas digitais Guião 2 2 a 6 outubro de 2017

VIVADO TUTORIAL 101: CADEADO DIGITAL

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

Universidade Federal do Rio Grande do Sul Escola de Engenharia Departamento de Sistemas Elétricos de Automação e Energia ENG10032 Microcontroladores

Para se criar um subtrator e somador, necessitaremos de três componentes, o Somador de 8 bits, o multiplexador e inversor.

Administração Central. Unidade do Ensino Médio e Técnico Cetec Capacitações São Paulo

Aula Prática de Redes Industriais Wireshark

Exercícios de Laboratório 3

Onde Cadastrar Os Dados Da Empresa. Onde Cadastrar Os Dados Da Empresa

Tutorial Xilinx Somador e Subtrator Ciência da Computação 5º Período. Universidade Federal de Alagoas Campus Arapiraca Disciplina: Sistemas Digitais

Capítulo 11. GRÁFICOS COM WGNUPLOT

1 Práticas de Laboratório Construindo um Circuito TTL (Transistor-Transistor Logic) Introdução a ferramenta EDA Quartus II

Passo-a-passo para desenvolver um Programa usando a Linguagem Python

PROJETO DE SISTEMAS. DIGITAIS UTILIZANDO FPGAs. Parte 1

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

Aula 2 Semântica de VHDL

Responsáveis: Bruno Silva, André Coelho, Wellington Silva, Marcelo Hirano. Atualizado em: 08/09/2017 CONFIGURAÇÃO DE BACKUP DE ORIGEM LINUX

Minicurso de MATLAB. Programa de Educação Tutorial de Engenharia Elétrica 28/03/15. lmax Rodrigues. lcaroline Pereira.

No Windows há basicamente dois tipos de programas de usuário:

Estrutura de Dados Básica

Analisador de Energia. Manual do usuário do Software

INFRAESTRUTURA DE HARDWARE

Arquivos de Texto UFOP 1/41

Tutorial Multisim. Página inicial do Multisim

TUTORIAL PARA SÍNTESE STANDARD- CELLS UTILIZANDO CADENCE

Trabalho de 2 DSP data limite de entrega: 27/09/2009

Manual de Compilação/Execução da Aplicação SmartHome

MANUAL PERFIL ADMINISTRADOR LOCAL

Introdução à Linguagem VHDL

Universidade Federal do Rio Grande do Sul Escola de Engenharia Departamento de Sistemas Elétricos de Automação e Energia ENG10032 Microcontroladores

UNIVERSIDADE FEDERAL DE ITAJUBÁ

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

Universidade Federal do Rio Grande do Sul Escola de Engenharia Departamento de Sistemas Elétricos de Automação e Energia ENG10032 Microcontroladores

TF TRABALHO FINAL REALIZAR TODAS AS ETAPAS DO LAB3 PARA UMA DAS FUNÇÕES ABAIXO 21/10/18

Projeto de Conclusão em Circuitos Digitais

PCS3225. Sistemas Digitais II. Biestáveis em VHDL. Biestáveis em VHDL. Marcos A. Simplicio Jr.

Tutorial Índice de Potencial de Consumo - IPC

Ambiente de desenvolvimento

Transcrição:

TUTORIAL PARA SIMULAÇÃO Fernando Moraes Atualizado em 29/outubro/2012 O presente laboratório tem por objetivos: 1. Ilustrar o comportamento dos somadores vistos nas aulas teóricas 2. Introduzir as ferramentas da CADENCE para simulação e síntese. Arquivos dos somadores com ambiente de síntese lógica e simulação Baixar os arquivos de simulação dos somadores: wget http://www.inf.pucrs.br/~moraes/microel/docs/somadores.zip e extraí-lo em um diretório de trabalho. Neste arquivo compactado há quatro diretórios: ñ rtl diretório que contém a descrição em VHDL dos somadors ñ tb diretório que contém o test bench com geração randômica de estímulos ñ sim diretório que contém o ambiente de simulação para as diferentes etapas do projeto ñ synthesis diretório que contém o ambiente de síntese do projeto Passos para gerar o ambiente de trabalho para esse tutorial: ñ Conectar-se à kriti: ssh <usuário>@kriti.inf.pucrs.br -X ñ Ir para o diretório de trabalho (local onde foi descompactado o somadores.zip ñ Carregar as ferramentas necessárias: source /soft64/source_gaph module load incisive edi PRIMEIRA ETAPA DO FLUXO DE PROJETO - Simulação funcional no nclaunch ESTA É UMA ETAPA DE SIMULAÇÃO SEM ATRASOS, apenas verifica o correto funcionamento dos somadores. Ir para o ambiente de simulação rtl: cd sim Observar o script de simulação fornecido - cat file_list.f : -smartorder -work work -V93 -top testa_adders -notimingchecks -gui -access +rw../rtl/somadores.vhd../tb/random_seed_pack.vhd../tb/testadder_random.vhd onde: ñ -smartorder indica que o compilador deve reconhecer a ordem hierárquica das descrições fornecidas ñ -work define o nome da biblioteca onde serão armazenados os módulos compilados ñ -V93 habilita características do VHDL93, como evitar a declaração de componentes ñ -top topo da hierarquia do projeto ñ -notimingchecks desabilita verificações de timing ñ -gui habilita modo gráfico ñ -access +rw acesso aos sinais internos do circuito para exibição Executar o seguinte comando: irun -f file_list.f A ferramenta irun irá compilar e elaborar o projeto.

A interface do simulador é aberta. Selecionando-se o top (TESTA_ADDERS(A1)) tem-se os sinais da entidade, os quais podem ser enviados para uma waveform, clicando no local indicado. Selecione os sinais internos, da entidade soma, com abaixo, trocando a base dos sinais de soma ( s_xxx ) para decimal (no menu format à radix/mnemonic à decimal). Para recuperar posteriormente as formas de onda, salvar em File à Save Command Script escolhendo um nome para o arquivo, como wave1.tlc. Notar que na janela é indicado como recuperar depois as formas de onda: irun -f file_list.f - input wave1.tcl. Executar a simulação por 11 us (run 11 us). Notar as mensagens abaixo execução sem erros. ncsim> run 11 us ASSERT/NOTE (time 10 US) from process :test (architecture work.testa_adders:a1) Test completed with no errors. Ran until 11 US + 0 ncsim>

O controle do zoom é dado pelo círculo em vermelho na figura abaixo. Para zoom full clicar no símbolo =. Notar que visualizamos todos os estímulos gerados para a soma. O test bench gera inicialmente alguns estímulos fixos, e posteriormente randômicos. Fazer um zoom para os primeiros vetores de teste: Estes 7 vetores iniciais de simulação estão descritos no test bench entre as linhas 51 a 59: constant test_patterns : test_array_t := ( (a =>(others =>'0'), b =>(0=> '1',others => '0'), cin =>'0', sum=>(0=> '1',others => '0'), cout =>'0'), (a =>(others =>'0'), b =>(others => '0'), cin =>'1', sum=>(0=> '1',others => '0'), cout =>'0'), (a =>(others =>'0'), b =>(others => '0'), cin =>'0', sum=>(others => '0'), cout =>'0'), (a =>(others =>'1'), b =>(others => '0'), cin =>'0', sum=>(others => '1'), cout =>'0'), (a =>(others =>'1'), b =>(0=> '1',others => '0'), cin =>'0', sum=>(others => '0'), cout =>'1'), (a =>(others =>'1'), b =>(0=> '1',others => '0'), cin => '1',sum=>(0=> '1',others => '0'), cout =>'1'), (a =>(others =>'1'), b =>(others => '0'), cin =>'1', sum=>(others => '0'), cout =>'1') ); O quinto vetor de teste corresponde a somar todos os bits de A em 1 (4.294.697.295) com B igual a 1, e Cin igual a 0. O resultado esperado é 0 com todos os carry out em 1. Este é o pior caso para a soma, pois há a propagação do carry em todos os bits. O sétimo vetor de teste soma todos os bits de A em 1 (4.294.697.295) com B igual a 0, e Cin igual a 1. O resultado esperado é o mesmo que o anterior, com a diferença apenas no somador logarítmico, o qual não tem entrada de Cin. Logo o valor da soma será igual ao valor de A.

FAZER: Insira algum erro em algum somador e observe as mensagens de saída. Exemplo: na linha 687 do somadores.vdh (S(15) <= pg1515(0) xor pg1400(1);) trocar por S(15) <= pg1515(0) xor pg1400(0);. Executando irun -f file_list.f -input wave1.tcl por 11 us obtemos: ASSERT/ERROR (time 400 NS) from process :test (architecture work.testa_adders:a1) **************>> erro no sklansky Sum is 11111111111111110111111111111111 Result is: 11111111111111111111111111111111 Assertion at 400 NS + 0 Observar a correta operação do multiplicador, realizando zoom (CTRL + scroll) sobre os sinais obtidos. Explore a ferramenta adicionando novos sinais na waveform, reinicializando a simulação (reset no console), etc. etc. Para sair, menu File à Exit SimVision ETAPA 2 - Síntese Lógica Ir para o diretório de síntese: cd../synthesis Para a síntese lógica será utilizada a ferramenta RTL Compiler da CADENCE. No laboratório 8 iremos explorar os comandos de síntese lógica. Neste tutorial o objetivo é simulação. Execute apenas (a execução pode legar um certo tempo): rc -f comandos_rc.txt Avaliando área. Digite: rc:/> report area -depth 2 Instance Cells Cell Area Net Area --------------------------------------- somadores 560 3110 3143 skl 192 714 830 csrqt 136 749 547 csa 136 749 544 cla 32 300 897 rip 32 300 163 cbp 32 300 163 Os somadores que consumiram mais área foram os carry-save (csrqt e cla), seguido pelo logarítmico (skl). Os somadores cla/ripple/cbp tiveram o mesmo número de portas. Este resultado deve-se às portas lógicas disponíveis na biblioteca. Para sair do rc digite exit. Analise o arquivo gerado pela síntese (layout/somadores.v). É uma descrição em Verilog, com 4803 linhas. Neste arquivo temos o VHDL mapeado para as células da biblioteca.

ETAPA 3 Simulação com Atraso de Porta Lógica Utilizar o file_list do diretório synthesis. Notar que utilizamos o mesmo test bench. A modificação está na inclusão da biblioteca de células e do arquivo Verilog gerado na etapa anterior. -smartorder -work work -V93 -top testa_adders -gui -access +rw /soft64/design_kits/cmos065_534/core65gpsvt_5.1/behaviour/verilog/core65gpsvt.v layout/somadores.v../tb/random_seed_pack.vhd../tb/testadder_random.vhd Realize a simulação, verifique se não houveram erros (run 11 us) e faça um zoom em torno dos 400 ns: O somador logarítmico é o que responde mais rápido (sinais s_log e c_log). Na sequência temos os somadores carry select e carry select sqrt (c_select e c_sqrt, respectivamente). Depois temos o ripple carry e o CLA. Um resultado inesperado é o tempo do somador by-pass, que deveria ser tão rápido quando o carry select, pois apresentou um comportamento igual ao CLA e ao RIPPLE. A explicação para este comportamento inesperado deve-se ao fato de como a síntese lógica realiza o mapeamento: não há na biblioteca portas complexas que otimizam o desempenho do by-pass. FINAL DO TUTORIAL