coreblocks
coreblocks copied to clipboard
RISC-V out-of-order core for education and research purposes
Currently there are three concepts we call *schedulers*: * a hardware module which has an input signal representing a set of requests and an output signal representing which request is...
Probably won't change much, but here we go.
Implements full `mtval` CSR. Required some tricks. This CSR is optional to fill for all exception types, so if some case becomes too problematic in the future, it can be...
`TransactionComponent` only supports connecting nested `Signatures`. It crashes when connecting plain signals (`In`/`Out`) at top level. Amaranth `connect` can be used at higher level to support both cases, it also...
The circuit generated by `eager_deterministic_cc_scheduler` can be improved a bit. Consider a set of transactions in which every transaction conflicts with every other. This in fact can happen quite often...
Here is a PR with implemtation of shift storage to be used in LSU RS. I used hypothesis to do tests and now working with it was much more comfortable...
In LSU we are planing to use shift register to keep age order of instructions. Shift registers are linear. Maybe we should consider using the binary trees to keep elements...
Implementation of the rounding module for FPU. This module excepts that input is in normalized form (unless the number is subnormal) and, in accordance with RISC-V specification, detects tininess after...
Using `amaranth.lib.data` Signatures with typing comes with some boilerplate and repetition :( I came up with a class that can be used both for typing and to get amaranth `Signature`...