Skip to content

Executando a Simulação

Diogo Valadares Reis dos Santos edited this page Aug 26, 2025 · 3 revisions

[English]

[← Página Anterior | Próxima Página →]

Executando a Simulação

Logisim Evolution

Este guia cobre o básico de como usar o Logisim Evolution. Para uma visão mais detalhada dos recursos disponíveis, consulte a documentação embutida no menu Ajuda, disponível em vários idiomas.

Após abrir o arquivo do projeto conforme descrito na página anterior, você deverá ver o circuito completo do DRISC-V. Se não aparecer, tente reduzir o zoom ou clique no botão Auto no canto inferior esquerdo da janela.

Visão Geral do Circuito DRISC-V

Para iniciar a simulação, mude da aba Design para a aba Simulate. Isso revelará os botões de controle da simulação.

Controles da Simulação

Esses botões controlam a execução da simulação. Você pode passar o mouse sobre cada um para ver sua função. Normalmente, você só precisará de dois:

  • O primeiro botão: inicia e para a simulação.
  • O terceiro botão: pausa os ciclos de clock, mas permite que os sinais se propaguem.

Ativar ambos iniciará a simulação. No entanto, ela não fará nada inicialmente, pois a memória está preenchida com dados aleatórios em vez de um programa válido.

Para executar um programa, localize o componente RAM (é o primeiro componente no lado direito do circuito). Clique com o botão direito sobre ele e selecione Load Image:

Carregando um Programa na RAM

Todos os programas disponíveis estão na pasta DRISC Programs, na raiz do projeto, e usam a extensão .mem. Antes de carregar, lembre-se de pausar a simulação ou os ciclos de clock para evitar sobrescrever os dados da RAM.

Após carregar um programa, é recomendável resetar a simulação, pois alguns registradores podem manter valores antigos que interferem na execução. Você pode resetar pressionando CTRL+R ou navegando até Simulate > Reset Simulation.

Depois de resetar, a simulação deve começar a executar o programa carregado.

Solução de Problemas

Se a simulação travar, não é necessário reiniciar o Logisim. Em vez disso:

  1. Resete a simulação.
  2. Clique no botão de play para retomar a animação.
  3. Reative os ciclos de clock, se estiverem desativados.

Inspecionando Componentes

Para inspecionar o circuito interno de qualquer componente:

  • Use a lista de design à esquerda.
  • Selecione a ferramenta Poke (ícone de mão) e dê um duplo clique no componente.
  • Ou clique com o botão direito no componente e escolha View Component.

Inspecionando Componentes Internos


Simulação com SystemVerilog

Com a pasta verilog aberta no Visual Studio Code, comece abrindo o arquivo de testbench chamado test_drisc.sv. No topo desse arquivo, você encontrará vários parâmetros importantes que controlam a simulação.

Parâmetros da Simulação

Na maioria dos casos, você só precisará modificar o parâmetro RAM_DATA, que aponta para o arquivo de programa que será executado. Ocasionalmente, o PROGRAM_SIZE pode estar muito grande ou pequeno. Se isso acontecer, a simulação geralmente exibirá um aviso, e você pode ajustar o valor conforme necessário.

Outros parâmetros úteis incluem:

  • INSTRUCTION_COUNT: limita quantas instruções serão executadas antes da simulação parar automaticamente
  • CSR_ENABLE: ativa a geração do controlador CSR
  • DISPLAY_TOGGLE: controla como a saída da simulação é exibida no terminal
    • 0: mostra valores de registradores e barramentos a cada ciclo de clock
    • 1: atualiza com menos frequência e exibe menos registradores
    • 2: exibe cada instrução em formato matemático (recomendado para uso geral)

Depois de definir o RAM_DATA para o programa desejado, inicie a simulação abrindo o terminal PowerShell no VS Code e executando:

./RunSimulation.ps1

Se você não estiver no Windows, pode rodar o comando diretamente pelo script:

iverilog -Wall -g2012 -s test_drisc test_drisc.sv | vvp a.out

A simulação continuará rodando até entrar em um loop infinito ou atingir o limite de instruções. Para interrompê-la manualmente, pressione CTRL+C no terminal.


Saída da Simulação

Se a simulação terminar normalmente (sem CTRL+C), o conteúdo do arquivo de registradores será impresso, mostrando o nome de cada registrador, valor hexadecimal e valor decimal com sinal. Em seguida, os dados da RAM são exibidos em formato hexadecimal e ASCII. Os dados modificados são destacados em vermelho, como mostrado no resultado do algoritmo de ordenação rápida abaixo:

Saída do Quicksort


Interface de Entrada/Saída do Usuário

Como a simulação roda no terminal, ela não suporta os mesmos recursos de I/O do Logisim. Para preencher essa lacuna, foi criado um programa complementar que fornece uma interface semelhante. Você pode encontrá-lo em:

verilog/interface/SystemVerilogIntegration.exe

Interface de Integração SystemVerilog

Após iniciar o programa, você poderá visualizar a saída da tela e do terminal da simulação e digitar entradas usando o teclado.

Como mencionado na página Primeiros Passos, este executável requer o .NET Framework. Se preferir não instalá-lo, você pode baixar uma versão com o framework embutido na página de lançamentos deste repositório.

Clone this wiki locally