Commit Graph

40 Commits

Author SHA1 Message Date
David Harris
b7988e536f Reset Vector moved to config file 2021-01-25 15:57:36 -05:00
Teo Ene
a54070d074 Added synth and PnR flow 2021-01-25 14:28:14 -06:00
David Harris
bf07ec92b5 Added test configurations 2021-01-25 11:28:43 -05:00
Noah Boorstin
1d71282332 small busybear testbench changes 2021-01-24 20:43:47 -05:00
Noah Boorstin
7afa48d4ea Linux testbench works now
Added parameterized PCSTART to allow compatibility between imperas and busybear tests
Hopefully we are done with the "busybear" branch, please don't use it for future work
2021-01-24 17:10:00 -05:00
Noah Boorstin
c7e2259af0 Merge branch 'busybear' into main
Merging busybear testbench into main, keeping main edits of wally src
2021-01-24 16:28:36 -05:00
Noah Boorstin
e200000f74 handle "zero" as 0 properly 2021-01-24 01:03:45 -05:00
Noah Boorstin
405cc14b56 Start on checking mem writes
Also i'm so sorry for messing up git today

Now testing with first 100 instrs instead of first 30
because no memory writes happen in the first 30
2021-01-24 00:58:22 -05:00
David Harris
056cd03efd Merge branch 'main' of https://github.com/davidharrishmc/riscv-wally into main 2021-01-24 00:52:06 -05:00
David Harris
2046b810fc Replaced parameters with macros for XLEN, MISA, other configuration, and renamed wally-params.sv to wally-config.vh 2021-01-23 21:31:06 -08:00
David Harris
ff4da36e3d Cleaned up regfile x0 tied to gnd 2021-01-23 21:30:54 -08:00
David Harris
468fa7528f Initial checkin of UART 2021-01-23 21:29:18 -08:00
Noah Boorstin
6d84658369 sucessfully simulate first 30 instructions
still need to find a better solution to InstrAccessFault/DataAccessFault though
2021-01-23 19:01:44 -05:00
Noah Boorstin
71883dca82 More linux testbench fixes
So I'm super sorry for accidently overwriting the commits this morning
Need to be more careful with force pushing :(

This fixes the problem with CSRR somehow, by tying InstrAccessFaultF and
DataAccessFaultM to zero for now. I feel like this is not a good solution
and will cause problems in the future, but for the start it seems to work for now.
I'm fair certain we need these to accurately simulate to do linux properly.

Anyway, this super hackish solution is in place for now, now on to ignoring mispredicted reads
2021-01-23 17:52:05 -05:00
Noah Boorstin
117713be89 Linux test now gets through first 8 instructions!
fixes the python parser:
  get the value, not function name, of PC
  only write changes to registers instead of registers every cycle
temporarilly NOP out CSRR instruction (with the canonical NOP), that was breaking this
dont stop on errors, print them prettier
2021-01-23 16:46:45 -05:00
David Harris
b77ef491fc Replaced parameters with macros for XLEN, MISA, other configuration, and renamed wally-params.sv to wally-config.vh 2021-01-23 10:48:12 -05:00
David Harris
556e815c4b Cleaned up regfile x0 tied to gnd 2021-01-23 10:22:20 -05:00
David Harris
c6c5dcb2ef Merge branch 'main' of https://github.com/davidharrishmc/riscv-wally into main 2021-01-23 10:19:28 -05:00
David Harris
b28129fcc3 Initial checkin of UART 2021-01-23 10:19:09 -05:00
Noah Boorstin
a66bd9008c slightly more info on errors, add instruction decoding 2021-01-22 21:14:45 -05:00
Noah Boorstin
cdcacb8dbe change how testbench reads data
we're not sure if this is a good idea, but for now, we broke things up into 3 seperate
files, each read seperately. One for pc and instructions, one for registers, and one for
memory reads. Each is scrolled through essentially independantly: new pc data is read and checked
whenever pc changes, new register data is checked whenever any register changes, and a new mem
read value is gotten whenever DataAdrM or MemRWM changes and MemRWM is not zero. I'm not super
sure about the last one. Currently it looks like things should be working, but it goes wrong after,
like, 3 instructions.
2021-01-22 20:27:01 -05:00
Noah Boorstin
379fc6d5ca change regfile to not hold state of x0 2021-01-22 15:12:33 -05:00
Noah Boorstin
adfeb29b77 change regfile to not hold state of x0 2021-01-22 15:11:55 -05:00
Noah Boorstin
5b0070ac0b Start adding register checking
I'm now realizing we need to simulate loads, or else these will all be wrong
2021-01-22 15:11:13 -05:00
Noah Boorstin
6d88c57f0f load instructions from file line by line 2021-01-22 14:11:17 -05:00
Noah Boorstin
574eb83d2b Start of gdb output parser
super simple rn, just getting instructions, will get registers soon
2021-01-22 13:57:58 -05:00
Noah Boorstin
af3adff077 add scripts for generating instruction trace 2021-01-22 13:06:45 -05:00
Noah Boorstin
3f2820646d More testbench setup work
- Copy bare-bones testbench from E85
   - have testbench instantiate a wallypipelinedhart so we can simulate memory/peripherals easier
 - Create .gitignore for vsim files
 - Make PC reset a macro, change to 0x1000 to conform to the bootloader

I don't know a good way to put the linux register trace file we're generating on git,
since its both nontrivial to make and way to big to keep in a git repo

for now it lives in /mnt/scratch/riscv_testbench/
2021-01-21 17:55:05 -05:00
Noah Boorstin
b93a37cdb6 copy testbench to modify for busybear 2021-01-21 16:17:34 -05:00
David Harris
2f24249d17 testgen-ADD-SUB working and testbench simualtes with new vectors for rv32 and rv64 2021-01-20 01:04:28 -05:00
David Harris
9679345cae testgen-ADD-SUB initial untested 2021-01-19 22:58:56 -05:00
David Harris
820312bc87 Initial testgen checkin 2021-01-19 13:09:56 -05:00
David Harris
f9ad54f18c Changed to . notation for instantiation, cleaned up dmem 2021-01-18 20:16:53 -05:00
David Harris
dacc392c95 cleanup 2021-01-18 00:42:40 -05:00
David Harris
dc4f00c975 Sped up exe2memfile.pl 2021-01-17 18:45:19 -05:00
David Harris
6e9cff45da Added exe2memfile.py 2021-01-16 15:09:06 -05:00
David Harris
cf0958c54e Added GPIO 2021-01-15 00:25:56 -05:00
David Harris
cccb47d795 Added GPIO 2021-01-15 00:19:31 -05:00
David Harris
d6a6f67b04 Initial Checkin 2021-01-14 23:37:51 -05:00
davidharrishmc
86128ee0af Initial commit 2021-01-14 20:16:47 -08:00