Skip to content

RISC-V muticycle implementation in VHDL. Core supports multiple peripherals and interruptions using a simple local interrupt controller.

License

Notifications You must be signed in to change notification settings

xtarke/riscv-multicycle

Repository files navigation

RISC SoftCore

en

RISC SoftCore é uma implementação em VHDL com fins diádicos do conjunto de instruções RISCV RV32IM. Essa versão particular não implementa um pipeline. A ideia é criar um microcontrolador com periféricos comuns como I2C, USART, SPI e GPIOs inicialmente utilizado para disciplina de Dispositivos Lógicos Programáveis.

Ferramentas de programação podem ser obtidas no Compliler.

Animação do funcionamento da arquitetura em Virgularor: minimum RISC-V

Simulador assembly baseado no MARS: RARS

Diagrama Núcleo

Getting Started (hardware):

  • Simulação:

    • Execute o script script testbench.do no Modelsim (Altera Edition).
    • Testbench principal: testbench.vhd. Simula o núcleo, um timer e pinos de propósito geral (gpio e display de 7 segmentos).
    • Verifique se o arquivo de programa está apontado corretamente (i.e.: ./software/quartus_blink.hex) no módulo iram_quartus.vhdl.
    • Veja esse diagrama completo do testbench
  • Síntese: Quartus 19.1 ou superior (testado no Kit de desenvolvimento DE10-Lite)

Getting Started (software):

A compilação de programas necessita do toolchain riscv-none-elf (ou riscv-none-embed) suportando o subconjunto RV32IM, sem ABI. Em ./software/ há vários exemplos. Perceba que na fase atual do projeto utilizamos um script de linker customizado (sections.ld). libc ainda não foi testado/suportado.

Veja mais detalhes para a instalação compilador aqui

About

RISC-V muticycle implementation in VHDL. Core supports multiple peripherals and interruptions using a simple local interrupt controller.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published