GithubHelp home page GithubHelp logo

cisen / riscv-swerv Goto Github PK

View Code? Open in Web Editor NEW

This project forked from vlasevi/riscvlabs

0.0 0.0 0.0 252.85 MB

Pascal 0.01% Tcl 0.38% Verilog 39.89% VHDL 40.57% JavaScript 0.26% Shell 0.08% Batchfile 0.01% HTML 0.04% SystemVerilog 3.44% C++ 15.28% C 0.02% Makefile 0.02% Assembly 0.01% Python 0.01% CMake 0.01%

riscv-swerv's Introduction

馃摎 RVfpga SoC THE IMAGINATION UNIVERSITY PROGRAMME 馃摎

馃搶 Imagiation technologies es una empresa Britanica dedicada al dise帽o de software y semiconductores, esta empresa cuenta con un programa universitarios que brinda al estudiante materiales de apoyo, guias de referencia y ejercios de laboratorio, adem谩s las herramientas para desarrollo de software son gratuitas y cuentan cn una plataforma de hardware a un precio razonable, todo con el fin de que halla una ense帽anza genuina para el estudiante.

Para iniciar el curso de RVfpga SoC se desarrollan un conjuto de laboratorios con el fin de adquirir conocimientos. En este informe se va a realizar el desarrollo del lab1 y lab2 respectivamente.

El primero paso a seguir es registrarse en la pagina web de imagination university program y solicitar el envio del material correspondiente, posteriormente se incio la lectura de la guia para iniciar la instalaci贸n y desarrollo de los laboratorios.

El software que se debe instalar para el desarrollo de los laboratorios es el siguiente:

  • 鉁掞笍 Vivado
  • 鉁掞笍 Cable Drivers
  • 鉁掞笍 Digilent Board Files
  • 鉁掞笍 VS code
  • 鉁掞笍 PlatformIO on top of VSCode
  • 鉁掞笍 GTKVWave
  • 鉁掞笍 Verilator

馃敹 LABORATORIO 1 - INTRODUCCI脫N A RVfpga-Soc

  • Para inciar el desarrollo de este laboratorio primero se hizo la lectura incial en la guia de forma que se fuera entendiendo como funciona RVfpga-SoC, adem谩s de ir conociendo sus caracteristicas principales, posteriormente se fueron conociendo los requerimientos necesarios para el correcto desarrollo del laboratorio.

Primero se iniciara con el desarrollo de la guia por lo tanto se creara un proyecto en vivado:

modulo

Ahora se deben incluir los directorios, los archivos y as铆 dejar creado el proyecto.

  • Luego se definen algunos archivos de manera global, como se puede observar en la figura. Tambi茅n se debe asignar el archivo rvfpga.sv como "top".

modulo

modulo

Se deben definir de esta manera, es decir, globales los siguientes archivos:

  • common_defines.vh
  • assign.svh
  • registers.svh
  • typedef.svh

Mediante la herramiento de Dise帽o de Bloques llamado BD, se crea un espacio de trabajo en blanco donde se pueden agregar bloques como el de la figura:

Esto se debe realizar para los siguientes bloques:

  • swerv_wrapper_verilog
  • intcon_wrapper_bd
  • bootrom_wrapper
  • syscon_wrapper
  • bidirec (En 32 ocaciones)

Se procede a realizar las respectivas conexiones tanto internas (corresponde a conexiones entre los bloques), como externas (se帽ales que provienen de manera externa). Luego de realizar cada una de las conexiones requeridas se plantea un dise帽o de esquem谩tico como el que se puede observar en la siguiente figura:

Finalizado este paso, a partir del archibo BD.bd, se crea el archivo verilog el cual contiene las conexiones de todos los bloques.

  • Con los resultados anteriores, se va a generar el bitstream, para ellos incialmente se tienen que realizar las siguientes modificaciones sobres las configuraciones en vivado, como se puede observar en la figura.

鉁旓笍 Finalmente, despu茅s de haber realizado el bitstream, se puede observar que este y la sintesis se realizaron de manera correcta, como lo muestra la figura.

馃敹 LABORATORIO 2 - CORRIENDO UN PROGRAMA DE PRUEBA EN RVfpga-Soc

Para inciar el desarrollo del segundo laboratorio se realizo la respectiva lectura de la guia correspondiente al laboratorio 2 de manera que se fueran entendiendo los conceptos y el paso a paso para realizar este laboratorio.

  • Se debe obtener el archivo verilog BD.v del laboratorio anterior y llevarlo a la siguiente ubicaci贸n:

[RVfpgaSoCPath]/RVfpgaSoC/Labs/LabResources/Lab2/src/SweRVolfSoC/.

En esta ubicaci贸n se debe corroborrar que los modulos dentro del archivo verilog, terminen en 0_0, como se observa en las siguientes figuras:

Con esta comprobaci贸n realizada, se procede a la creaci贸n del archivo Vrvfpgasim, mediante los siguientes c贸digos:

  • cdcd [RVfpgaSoCPath]/RVfpgaSoC/Labs/LabResources/Lab2/verilatorSIM
  • make clean
  • make

As铆 se obtiene el resultado en la terminal que se observa en la siguiente figura yse observa que ya el archivo est谩 creado.

  • Posteriormente se abre el visual basic code en la carpeta que cuenta con la siguiente direccion:

[RVfpgaSoCPath]/RVfpgaSoC/Labs/LabResources/Lab2/examples/

Luego se abre el archivo PlatformIO.ini y se modifica redireccionando la linea 21:

home/user/RVfpgaSoC/Labs/LabResources/Lab2/verilatorSIM/Vrvfpgasim

Las direcciones de las varibles que se van a observar en el GTKWave son las siguientes:

  • TOP rvfpgasim swervolf swerv_wrapper_verilog_0 swerv_eh1_2 swerv ifu(clk,ifu_i0_instr[31:0],ifu_i1_instr[31:0])
  • TOP rvfpgasim swervolf swerv_wrapper_verilog_0 swerv_eh1_2 swerv dec arf gpr_banks(0) gpr(28) gprff (dout[31:0])

Las variables a mostrar son las que se encuentran en parentesis.

鉁旓笍 Finalmente se pueden observar los resultados en GTKWave donde las variables nos muestran los resultados esperados en la siguiente figura:

CONCLUSIONES 鉁旓笍

  • Se entendi贸 el procedimiento desde la asignaci贸n de los archivos globales, como archivos principales del proyecto, hasta la generaci贸n de la traza.
  • Se logr贸 obtener la salida de la instrucci贸n esperada en el procesador en el tiempo entre los 10 [fs] y 100 [fs].
  • La se帽al de salida observada se puede observar en los tiempos de 10 [fs] y 100 [fs] y 10 [ns] y 100 [ns] (tiempo sugerido en la guia).
  • El archivo trace.vcd debi贸 moverse a una ubicaci贸n sin restricciones para poder ser corrido en Gtkwave.
  • El software Visal Code debe ser abierto como superusuario para poder correr el IDE PlatformIO.

REFERENCIAS 馃幆

UNIVERSIDAD INDUSTRIAL DE SANTANDER 馃帗

  • 馃懇 Angela Yulieth Rivera G贸mez - 2162467
  • 馃懆 Vladimir Sebastian Villamizar Anaya - 2171522

riscv-swerv's People

Contributors

angelarivera08 avatar vlasevi avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    馃枛 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 馃搳馃搱馃帀

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google 鉂わ笍 Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.