You are on page 1of 12

Simulação VHDL

Baseado no Tutorial Affirma NC VHDL Simulator Tutorial Por Juan Pablo Martinez Brito 1.Introdução. --1.1->Cadence Desing System --1.2->Configurando o ambiente. 2.Preparando a descrição VHDL para a simulação(Nclaunch). --2.1->Compilando o VHDL. --2.2->Elaborando o VHDL. --2.3->Simulando o VHDL. 3.Trabalhando no ambiente de simulação(SimVision Analysis Enviroment). --3.1->Navegando no Desing. --3.2-> Selecionando sinais para monitora-los. --3.3->Rodando a simulação em formatos de onda. 4.Conclusão 1-Introdução: 1.1-Cadence Desing System O sistema CADENCE é composto por diversas ferramentas responsáveis pela síntese física, síntese lógica,validação,teste de circuitos integrados,etc. Cada ferramenta é chamada em separado para fazer sua determinada função. Essa característica é um aspecto intrínseco ao Sistema Cadence. Isto é,ela trabalha particionadamente. Não existe uma interface principal única onde possa ser chamada cada ferramenta. E uma reunião de Softwares que tem uma ligação entre si ,mas, cada um com sua funcao. Por exemplo: No nosso caso ,onde queremos simular um código Vhdl temos que fazer o seguinte: 1->Rodar o Nclaunch: Com este aplicativo consigo validar o meu código para poder simulalo; isto é,compilo e elaboro.

etc. selecionar objetos. Chamada de Simcontrol Window. 3->Finalizando. Todos os passos deste tutorial foram realizados partindo-se da descrição VHDL de um contador e seu referido Testbench: .2->Rodar o Ncsim(Simulador) Com este aplicativo consigo navegar na hierarquia do Desing.rodo o Signalscan Waveform para visualizar as formas de onda.

std_logic_1164. clk : IN STD_LOGIC.all. PORT( value : OUT STD_LOGIC_VECTOR( 7 downto 0 ) ). clk <= '1'. clk <= '0'. PORT( reset. source /gme/cadtool/pub/LOGIN_GME . END counter_arq. value ). clk : IN STD_LOGIC.all. COMPONENT counter IS END counter. end process Reseting.all. value : OUT STD_LOGIC_VECTOR( 7 downto 0 ) ARCHITECTURE counter_arq OF testbench IS ). Testbench. end process Generate_clk. value <= tmp. reset ) begin if ( reset = '1' ) then tmp <= "00000000". CLK. 12-Configuração do ambiente: Primeiramente é preciso rodar o arquivo de configuração das ferramentas de CAD. SIGNAL CLK.std_logic_1164. END COMPONENT. END testbench. CONT : counter PORT MAP ( RESET. RESET <= '0'.vhd: LIBRARY IEEE.std_logic_unsigned. ENTITY testbench IS ENTITY counter IS PORT( reset. end if. END counter_arq.Contador. wait for 10 ns. Reseting: PROCESS begin wait for 100 ns. BEGIN cont: PROCESS ( clk. USE IEEE. value : OUT STD_LOGIC_VECTOR( 7 downto 0 )). RESET : STD_LOGIC. BEGIN Generate_clk: PROCESS begin wait for 10 ns. USE IEEE. wait for 100 ns. ARCHITECTURE counter_arq OF counter IS SIGNAL TMP : STD_LOGIC_VECTOR( 7 downto 0 ). RESET <= '1'. USE IEEE.vhd: LIBRARY IEEE. elsif ( clk'Event and clk = '1' ) then tmp <= tmp + 1. end process.

lib? O próximo passo é criar o file cds.vhd e testbench.Isso irá chamar a janela Open Design Directory: 1. Dentro do mesmo chame o Nclaunch: # nclaunch -new& {a opção -new quer dizer que você quer começar um novo Design} d. c.vhd) 2.vhd como contador.->O terceiro campo mostra qual biblioteca você ira trabalhar. e.lib você vai usar(O que é cds.vhd.O que é cds.lib?). Crie um diretório para rodar o Cadence. Criado o diretório salve tanto o testbench. b.lib.->O segundo campo diz a respeito de qual cds.->O primeiro campo é a sede do Path do diretório onde estão seus arquivos do tutorial(contador.a.(no meu caso fiz: mkdir first). Clique em New no segundo campo e irá aparecer a seguinte janela: . 3.

Clique em New no terceiro campo da janela do passo 6 (Open Desing Directory) para criar uma nova biblioteca: No meu caso dei o nome a ela de first1 Clique OK nessa janela Clique OK na janela Open Desing Directory com a biblioteca selecionada: Agora o diretório corrente do tutorial contem o arquivo cds. f. . Agora é preciso criar uma biblioteca de trabalho. Clique em OK. Isso irá fazer com que apareça a janela Com ela você pode escolher qual das bibliotecas do IEEE quer usar.Clique em Save para criar o arquivo.lib e a janela principal do Nclaunch aparece.

Selecione Enable VHDL 93 features e Clique OK.vhd não há problemas. b.O resultado da compilação aparecerá na janela de Console. Compilando o VHDL A descrição VHDL deste tutorial precisa ser compilada na seguinte ordem: 1.(Mensagem salva) Depois de ter Compilado você pode Clicar no sinal de mais(+) em first1 no Navegador de Bibliotecas. # Elaborando o seu Design .vhd Selecionando cada um você pode Compilar diretamente Clicando no ícone: Para Compilar o contador.Preparando a descrição VHDL para a simulação.vhd existe uma única opção que precisa ser mudada.->testbench. Com o arquivo selecionado: a.->contador. Isso setará a Opção e chamará o Compilador VHDL. Isso lista as unidades de VHDL já compiladas.Selecione Tools-VHDL Compiler Aparecerá a janela do Compilador VHDL. Mas para Compilar o testbench.Nesse ponto ela tem este jeito: # 2.vhd 2.

Trabalhando no ambiente de simulação(SimVision Analysis Enviroment). Para chamar o simulador com o devido Snapshot: -a.Expanda a first1 no Navegador de bibliotecas. 3. -c. Essa hierarquia é armazenada no Snapshot de simulação. Com o último passo (elaborar) foi criado uma unidade de simulação no Snapshot. Para elaborar: -a.Expanda o testbench. # Simulando seu Design 1. Primeiramente abrirá a janela de controle(SimControl Window). -b.Carregando para dentro do simulador.Selecione o topo da hierarquia para o Desing(contador_arq). estabiliza conexões entre sinais e computa os valores iniciais para todos os objetos existentes.selecione no snapshot a unidade first1.Com isso Clique no ícone do Launch Simulator: Para essa operação também não há opção a ser mudada.Elaborar serve para construir uma hierarquia baseada nas informações das instancias e configurações do seu Design. -b. Clique no ícone do Launch Elaborator: Para essa operação não há opção a ser mudadaMensagem salva Concluindo essa etapa já esta pronto para a simulaçao. É com ela que o simulador faz a simulação. ->Neste tutorial o topo é first1/testbench/counter_arq.testbench:counter_arq. Neste ponto ela tem esse jeito: .

>>>> # Navegando no Desing Para chamar o Navegador basta clicar no ícone: Ele abrirá no topo da hierarquia: .Você pode diretamente rodar a simulação: <<<<Só que para fazer sentido existem uns passos finais a serem feitos.

A direita é mostrado os objetos.Clicando no `chipizinho` você consegue navegar pela hierarquia. Indo até o nível mais baixo e selecionando todos os objetos: Selecionando sinais para monitora-los. Com o botão direito você consegue selecionar os objetos. Com os objetos selecionados Clique no ícone do Watch objects: Com isso você poderá monitorar os objetos: .

. clicando no ícone: E ela já aparecera com os Objetos listados.Rodando a simulação em formatos de onda. Depois disso você poderá chamar o Signalscan Waves.

Você pode simular por completo.Voltando a janela de Controle(SimControl Window).ufrgs. Pegando tudo: Opiniões e Sugestões podem ser enviadas para juan@inf.br. .