-
Notifications
You must be signed in to change notification settings - Fork 0
Executando a Simulação
[English]
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.
Para iniciar a simulação, mude da aba Design para a aba Simulate. Isso revelará os botões de controle 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:
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.
Se a simulação travar, não é necessário reiniciar o Logisim. Em vez disso:
- Resete a simulação.
- Clique no botão de play para retomar a animação.
- Reative os ciclos de clock, se estiverem desativados.
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.
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.
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.ps1Se você não estiver no Windows, pode rodar o comando diretamente pelo script:
iverilog -Wall -g2012 -s test_drisc test_drisc.sv | vvp a.outA 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.
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:
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
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.
-
- 1.1 Introduction
- 1.2 RISC-V Implementation
- 1.2.1 Available Instruction Set
- 1.2.2 Available Non-ISA Features
-
- 2.1 ALU
- 2.2 Register File
- 2.3 Program Counter
- 2.4 Input Buffer
- 2.5 RAM
- 2.6 Operation Controller
- 2.7 CSR Controller
-
- 3.1 Input Devices
- 3.1.1 Keyboard
- 3.1.2 Switches and Joystick
- 3.1.3 Random Number Generator
- 3.1.4 Real-Time Device
- 3.2 Output Devices
- 3.2.1 Screen
- 3.2.2 Terminal
- 3.2.3 Software Interrupt Register
- 3.1 Input Devices