Skip to content

pabloviz/Cores-SweRV

 
 

Repository files navigation

Remember to update the BSC submodule with git submodule update --init --recursive after cloning this project!

Before running our module, you need to make some changes to the VPU:

  • Disable the vector floating point unit by edditing the file bsc-vector-accelerator/src/include/config_control.svh and changing line 78 from \define HAS_FPUto`define EXCLUDE_FPU`
  • Also change line 85 so BSC_RTL_SRAMS is uncommented.
  • Also change line 77-80 of file bsc-vector-accelerator/src/modules/vector_control_unit/rtl/vcu_lane_assignment.sv from
76  /* vector increment comparator */
77  assign vlen_comp_incr  = vec_incr[~vsew_i];
78

to:

77  /* vector increment comparator */
78  logic [VSEW_WIDTH-1:0] negated_vsew;
79  assign negated_vsew = ~vsew_i;
80  assign vlen_comp_incr = vec_incr[negated_vsew];

Also, the explanation of all the testcodes and its sources is present in our report.

To compile and simulate our module without the CPU, go in the ovi folder and run one of the following commands: make arith
make memarith
Both will generate a sim.vcd waveform that you can then analyze with gtkwave using the configuration file found in ovi/waveform_good.gtkw.
The FakeCPU+OVI+VPU takes about 2 minutes to compile.

You can also test the SWERV+OVI+VPU. You need to go in the root folder (not the ovi folder) and run one of the following commands: make arith
make loadstore
make setvl
make vecaxpy
All will generate a sim.vcd waveform that you can then analyze with gtkwave using the configuration file found in gtk.gtkw.

Keep in mind compiling the full project takes from 10 to 20 minutes.

About

SweRV EH1 core with BSC's VPU

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C 75.6%
  • SystemVerilog 12.6%
  • Roff 7.3%
  • Makefile 2.2%
  • Perl 1.6%
  • TeX 0.3%
  • Other 0.4%