Vários métodos de forma de onda arquivos VCD, VPD, shm, fsdb gerado

      simulação de design IC é um importante passo indispensável, geralmente precisa gravar os arquivos de forma de onda pós-simulação para análise detalhada e pesquisa. Fale sobre vários arquivos de onda WLF (Wave arquivo de log), VCD (Valor Mudança Dump) arquivo, fsdb (Fast Signal DataBase) arquivo, shm, VPD:

      Para arquivo de log onda WLF, desde que usamos modelsim, você deve ser familiar. WLF (Wave arquivo de log) é suportado por arquivos de forma de onda ModelSim Mentor Graphics. Mas quando observamos a janela da forma de onda a onda, ao final da simulação irá gerar um arquivo .wlf * (o padrão é vsim.wlf). Da próxima vez, pode abrir as formas de onda salvas diretamente através modelsim. vsim -View vsim.wlf -do run.do run.do em que o conteúdo de uma forma de onda de sinal a ser visualizado. Ressalta-se que este arquivo wlf só pode ser gerado por um modelsim, só pode ser exibido pelo modelsim. Não é um formato de arquivo comum.

      VCD (Valor Mudança Dump) é um formato comum. VCD arquivo é um arquivo IEEE1364 padrão ASCII (padrão de linguagem Verilog HDL) definido. Ele contém principalmente informações de cabeçalho, e variáveis ​​de informação alterar os valores predefinidos. É precisamente porque inclui mudanças no sinal de informação, registrou a informação equivalente para toda a simulação, podemos usar esse arquivo para reproduzir a simulação, ele pode exibir formas de onda. Porque o VCD é parte do padrão de linguagem Verilog HDL, então tudo o simulador de Verilog deve ser capaz de alcançar esta função, mas também permite que o usuário para o código Verilog para a função do sistema arquivo de despejo VCD. Nós podem ser gerados pela função de sistema de arquivo de despejo Verilog HDL de forma de onda, uma forma de onda é gerada pelo arquivo de despejo para determinado módulo de dados predeterminado e uma extracção de sinal que dumpvars o parâmetro de simulação.

      nota particular é que, precisamente por causa da gravação de VCD de uma mudança completa no sinal de informação, podemos estimar o consumo de energia do projeto pelo arquivo de VCD, e esta é a outros arquivos de onda não estão disponíveis. Encontro e PrimeTime PX (Prime Power) pode ser introduzido por arquivos de netlist, bibliotecas e as informações consumo de energia com o arquivo VCD gerado após a simulação para atingir análise de poder.

      Porque o VCD é parte do padrão de linguagem Verilog HDL, então tudo o simulador de Verilog deve ser capaz de alcançar esta função. Assim, podemos função de sistema de arquivos dumpVCD em código verilog. Além disso, podemos despejar arquivo VCD pelo comando ModelSim, que pode ser estendido para em VHDL. comando específico: myfile.vcd arquivo VCD

      vcd add / test / DUT / * Isso gera um dado de VCD, contendo informações sobre todos os sinais do DUT.

      Temos para simular usando vsim -vcdstim myfile.com

      teste; add wave / *; executar -todos;

Ou participar da testbench em:

inicial

início

$ Dumpfile ( "* vcd.");

$ Dumpvars (0 **);

fim

      fsdb (Fast DataBase Signal) é Primavera Soft (Novas) empresa Debussy / Verdi suporte a arquivos de onda, geralmente menores, mais amplamente utilizado, o resto de ferramentas de simulação como ncsim, modlesim etc. pode ser carregado por PLI Verdi (normalmente localizado no diretório de instalação a parcela inferior / diretório pli) descarrega diretamente arquivo fsdb. arquivo fsdb verdi é usar um formato de dados proprietário, similar ao VCD, mas é apenas uma informação útil apresentados durante os sinais de simulação, remover informações redundantes no VCD, dados VCD para ser como uma codificação Huffman. Portanto fsdb pequena quantidade de dados, mas vai melhorar a velocidade de simulação. Sabemos arquivo VCD usando Verilog built-in funções do sistema de alcançar, fsdb PLI é uma interface através da Verilog para conseguir. fsdbDumpfile, fsdbDumpfile, fsdbDumpvars etc.

  Testbench adicionado:

  inicial

 início

 $ FsdbDumpfile ( "* fsdb.");

 $ FsdbDumpvars (0 **);

 fim

       O arquivo de forma de onda restante é diferente de vários emulação ou ferramentas de depuração suportado tipo de arquivo, e não GM, mas o básico pode ser convertido a partir de um arquivo de VCD (na verdade, uma versão condensada do VCD, porque basta ter os dados necessários para a depuração de simulação, de modo tamanho do arquivo é muito menor do que os arquivos VCD), e alguns também oferecer interoperabilidade com a função de conversão de arquivos VCD.

       shm é NC verilog e Simvision suporte de arquivos de forma de onda da Cadence, .shm é realmente um diretório, que contém dois arquivos DSN e .trn.

       apoio VCS DVE VPD Synopsys' de arquivos de forma de onda pode ser gerado com um $ vcdpluson.

       Usando Cadence NC Verilog comparação testcase às mesmas condições eo mesmo despejo forma de onda, tempo shm geração do arquivo do mais curto (nonsense, originalmente uma empresa), arquivo VCD gerado para gerar tempo múltipla e tempo shm fsdb. No exemplo que eu testei, arquivo fsdb gerado como uma dúzia MB, arquivos SHM a dezenas de MB, enquanto os arquivos VCD irá ter vários GB de tamanho.

  ************************************************** ******************************

 FSDB algum uso:

 (1) O que se segue é uma lista, sugerindo a possível utilização fsdb vários, conteúdo específico que pode Google um, todos eles saíram.

fsdbDumplimit - FSDB limite de tamanho de arquivo Como usar?

$ fsdbDumpvars ([<nível>], <scope | sinal> *)

fsdbDumpfile - especifica o nome do arquivo FSDB

$ FsdbDumpfile ( “<nome FSDB>”)

fsdbDumpvars - variáveis ​​de despejo especificado

fsdbDumpSingle - sinal especificado Dump

fsdbDumpvariable - Dump especificado VHDL variável

fsdbSwitchDumpFile - dumping irá mudar para outro FSDB arquivo

$ FsdbSwitchDumpFile ( “<novo nome FSDB>”)

fsdbAutoSwitchDumpfile - limitar o tamanho do arquivo e cria automaticamente um novo arquivo FSDB na sobrecarga de dados

$ FsdbAutoSwitchDumpfile (<tamanho do arquivo>, “<nome FSDB>”, <número de arquivo>)

fsdbDumpflush - Força para Dump resultado para arquivo FSDB

fsdbDumpMem - Despeja o conteúdo da memória especificada

$ FsdbDumpMem (<nome reg>, [<começar addr>, [<size>]])

$ FsdbDumpon - Open FSDB despejo

$ FsdbDumpoff - Fechar FSDB despejo

(1) que consiste de um método interruptor FSDB

Às vezes você quer executar uma simulação por um longo tempo, mas a onda de interesse, mas apenas brevemente. Desta vez, como mudar de forma de onda, o arquivo não será muito grande isso? Nós descrevemos um método aqui. Exemplos apenas para referência, pode-se criar uma aplicação mais prática para uma variedade de mudanças.

 inicial começar

$ Timeformat (...);

$ FsdbAutoSwitchDumpfile (...);

$ FsdbDumpvars (...);

// condicional expressões 1

$ FsdbDumpoff;

// expressão condicional dois

$ FsdbDumpon;

Fim

(2), que são mais comumente usados ​​em geral, bem como valuevalueplusargs esta tarefa, em test_top em:

valuevalueplusargs ( "casename =% s", casename)

Pela casename roteiro passou no tempo de execução (para vcs / nc SIM_ARG: + casename = $ Testcase_name.fsdb)

Se uma pluralidade de tempo de execução, facilitando simultaneamente testcase pode dumpfsdb enquanto o outro é a hora de início para saltar

despejo (SIM_ARG: + tempo = $ start_time)

valuevalueplusargs ( "tempo =% d", ignorar)

#pular

(3) projecto módulo diferente em todos em causa, a fim de modificar o despejo test_top frequente, geralmente, será necessário para despejar o conteúdo de um dumplist

O arquivo é implementado

$ FsdbDumpvarsToFile ( "dump.list");

Por exemplo conteúdo dump.list # para comentários)

0 test_top

# 1 test_top

# 0 test_top.dut

# 0 test_top.dut.m1

# 0 test_top.dut.m2

Quando usado normalmente adicionar as declarações relevantes em test_top.v:

reg [100: 0] casename;

número inteiro pular, i;

inicial começar

if (testtestplusargs ( "dumpfsdb")) começam

se (valuevalueplusargs ( "tempo =% d", ignorar))

#pular;

se (valuevalueplusargs ( "casename =% s", casename))

$ FsdbAutoSwitchDumpfile (300, casename, 30);

outro

$ FsdbAutoSwitchDumpfile (300, "./ test_top.fsdb", 40);

$ FsdbDumpvarsToFile ( "dump.list");

fim

fim

 Quando a execução da simulação, se a partir das 5000ns correspondentes (root calendário unidade de tempo relacionada) na forma de onda despejo começando, para vcs / nc parâmetros

+ + Dumpfsdb tempo = 5000 + casename = testcase1.fsdb

Que TestCase1 Geralmente, vamos lidar com no script seguido pelo nome caso associado, ele vai terminar como esta após o despejo início de 5000

testcase1_000.fsdb, testcase1_001.fsdb como esta,

2. Além disso, o dump.list (nome pode facilmente levar) Conjunto dentro apenas as configurações usuais nível de conjunto, como uma reserva

nome do caminho nível

0 test_top.dut.m1

Exemplos:

// =================

// onda FSDB despejo

interger start_dump;

stop_dump número inteiro;

finish_time número inteiro;

resultado inteiro;

reg [8 * 30 * -1: 0] waveform_name;

inicial começar: fsdb_dump

start_dump = 0;

finish_time = 0;

waveform_name = "debussy.fsdb";

if (testtestplusargs ( "FSDB"))

    início

      if (testtestplusargs ( "DUMP_FILE"))

         = resultar valuevalueplusargs ( "DUMP_FILE =% s", waveform_name);

         $ FsdbAutoSwitchDumpfile (150, waveform_name, 100);

         $ FsdbDumpflush;

         #start_dump;

// sinais de despejo selecione

$ fsdbDumpvars (0, xx_tb);

    fim

fim

Lançado 1012 artigos originais · ganhou elogios 520 · Exibições 12700000 +

Acho que você gosta

Origin blog.csdn.net/Augusdi/article/details/104955826
Recomendado
Clasificación