Skip to content
This repository has been archived by the owner on Feb 20, 2021. It is now read-only.

ricardocirio/riscv-multicycle

 
 

Repository files navigation

RISC SoftCore


RISC SoftCore é uma implementação em VHDL com fins diádicos do conjunto de instruções RISCV RV32I. 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 RISC-V Website.

Getting Started (hardware):

  • Simulação:

    • ModelSim: execução do script testbench.do
    • testbench: ./core/testbench.vhd
    • Utilizar uma memória SRAM IP (32-bits x 1024 words):
      • Quartus RAM: catálogo de IPS, RAM 1-port
      • Na aba de confguração Regs/Clken/Byte Enable/AClrs, desabilite 'q' output port e habilite Create byte enable for port A
      • Na aba de configuração Mem Init, habilite e configure o arquivo de inicialização da memória de instruções para quartus.hex
      • Na aba de configuração Mem Init, habilite Allow In-System Memory Content Editor.
    • Se necessário, altere o caminho do arquivo de inicialização de memória (quartus.hex) no arquivo iram_quartus.vhdl
  • Síntese: Quartus 15 ou superior (testado no Kit de desenvolvimento DE10-Lite)

    • Projeto: utilize ./sint/de10_lite
    • Para gravação do programa pós síntese:
      • Utilizar uma memória SRAM IP (32-bits x 1024 words Quartus RAM
      • Gravação pelo Tools -> In-System Memory Editor
    • Utilize uma PLL para ajuste do clock

Getting Started (software):

A compilação de programas necessita do toolchain riscv32-unknown-elf suportando o subconjunto RV32I. Em ./tests/ há um exemplo bem simples de Makefile. Perceba que na fase atual do projeto utilizamos um script de linker customizado (sections.ld). libc ainda não foi testado/suportado.

Instalação do compilador no Linux

Guia para instalação no gnu-mcu-eclipse.github.io

Toolchain Release: riscv-none-gcc Github.

  1. Atualizar Makefile com o diretório da toolchain.

Exemplo:

RISCV_TOOLS_PREFIX = /home/lucas/ssd2/vhdl/softcore/gnu-mcu-riscv/gnu-mcu-eclipse/riscv-none-gcc/8.2.0-2.2-20190521-0004/bin/riscv32-unknown-elf-

  1. Para compilar, make.

Instalação do compilador no Windows (Windows Subsystem for Linux)

  1. Instalar o WSL: Microsoft Docs

  2. Instalar o Ubuntu no WSL

    • Para integrar o Visual Code com o compilador interno ao WSL, siga esse link
  3. No shell Ubuntu (busque Ubuntu no Iniciar do Windows):

  4. Instalar os pacotes para o nodejs:

sudo apt upgrade
sudo apt install nodejs
sudo apt install npm
sudo npm --global install xpm
  1. Instalar por xmp GNU Eclipse:

xpm install --global @gnu-mcu-eclipse/riscv-none-gcc

  1. Altere o caminho do compilador no Makefile:

    • de: RISCV_TOOLS_PREFIX = riscv32-unknown-elf-
    • para: RISCV_TOOLS_PREFIX = ~/opt/xPacks/@<versão compilador>/.contents/bin/riscv-none-embed-
  2. Utilizando o shell Ubuntu, mude o diretório atual para o repositório:

cd /mnt/c/<caminho sistema arquivos Windows>

  1. Para compilar, make.

Após a compilação, mova, copie ou faça um link simbólico de ./tests/quartus.hex para a raiz do projeto.

Simulador Assembly:

RISV baseado no MARS: RARS

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • VHDL 93.0%
  • C 3.0%
  • Stata 2.1%
  • Verilog 0.6%
  • Python 0.6%
  • Makefile 0.4%
  • Assembly 0.3%