1
0
mirror of https://github.com/antonblanchard/chiselwatt.git synced 2026-02-28 09:28:23 +00:00

22 Commits

Author SHA1 Message Date
Kevin Läufer
d8b89298c7 upgrade to Chisel 3.5.0 release candidate 2
Signed-off-by: Kevin Läufer <laeufer@cs.berkeley.edu>
2021-12-27 18:32:47 -08:00
Carlos de Paula
9eb5473a61 Improve readme with Fusesoc info and update samples
Improved build instructions by using Fusesoc as package manager and
multi-target toolchain.
Updated hello_world sample app to fetch clock from SYSCON registers.
Rebuilt all sample applications based on latest version and using SYSCON
Improve Makefile build process for samples.

Signed-off-by: Carlos de Paula <me@carlosedp.com>
2021-02-23 12:08:04 -03:00
Michael Neuling
21cdff7976 Make clock frequency settable at the top level of Core
Rather than hardwiring LoadStore.

Signed-off-by: Michael Neuling <mikey@neuling.org>
Signed-off-by: Joel Stanley <joel@jms.id.au>
2021-02-23 10:46:12 +10:30
Joel Stanley
2c44cd8bce Add syscon regsiters to the loadstore unit
This adds a really simple syscon so the potato uart in micropython can
operate.

Signed-off-by: Joel Stanley <joel@jms.id.au>
2021-02-23 10:44:43 +10:30
Anton Blanchard
9a53bd6e69 Update to Chisel 3.4.0
Switch from the deprecated Driver.execute to (new ChiselStage).emitVerilog

Signed-off-by: Anton Blanchard <anton@linux.ibm.com>
2020-12-04 18:33:10 +11:00
Anton Blanchard
f3c510ece8 Add mcrf instruction
The previous commit forgot to add the instruction to the decode table.

Signed-off-by: Anton Blanchard <anton@linux.ibm.com>
2020-03-06 16:07:35 +11:00
Anton Blanchard
06563749f9 Add mcrf
Signed-off-by: Anton Blanchard <anton@linux.ibm.com>
2020-03-02 22:11:27 +11:00
Anton Blanchard
bb295a6406 Rework core pipeline
For simplicity we originally made loads and stores slow instructions. We
now want to integrate them into the fast pipeline, so add a new cycle to
the pipeline (called memory).

Signed-off-by: Anton Blanchard <anton@linux.ibm.com>
2020-02-26 21:43:24 +11:00
Anton Blanchard
5fec805f65 Complete divide support
This adds support for the rest of the divide instructions.

Signed-off-by: Anton Blanchard <anton@linux.ibm.com>
2020-02-24 09:35:42 +11:00
Anton Blanchard
dc8b74d51d Improve Multiplier tests
Signed-off-by: Anton Blanchard <anton@linux.ibm.com>
2020-02-08 23:01:44 +11:00
Anton Blanchard
8cd001568a Fix signed multiply
The upper bits of signed multiplications was all wrong. Fix it.

Signed-off-by: Anton Blanchard <anton@linux.ibm.com>
2020-02-08 14:36:52 +11:00
Anton Blanchard
03af00c480 Merge pull request #15 from antonblanchard/rework-slowops
Rework slowops
2020-02-06 22:19:41 +11:00
Anton Blanchard
9fb5b93c69 Buffer multiplier final formatting
Also remove a side channel easter egg.

Signed-off-by: Anton Blanchard <anton@linux.ibm.com>
2020-02-06 21:52:50 +11:00
Anton Blanchard
4ebe7adf28 Buffer divide final formatting
Add an extra cycle to the divider that buffers the final formatting.

Signed-off-by: Anton Blanchard <anton@linux.ibm.com>
2020-02-06 21:50:23 +11:00
Anton Blanchard
e770a35a0e Rework load/store to improve timing
By moving the load from the second cycle into the first cycle we improve
timing overall.

Signed-off-by: Anton Blanchard <anton@linux.ibm.com>
2020-02-06 21:36:50 +11:00
Anton Blanchard
4dc5f030e0 Improve memory read timing by removing readData signals
There's no need to gate reads.

Signed-off-by: Anton Blanchard <anton@linux.ibm.com>
2020-02-05 12:06:17 +11:00
Anton Blanchard
be6e0cae22 Fix some timing issues in writeback
Break the writeback mux into two chunks so that all units that have RC
instructions mux into an intermediate signal wrRcData. This gets fed into
the compare logic.

Compare instructions are all fed through the Adder, so use the adder
output instead of the writeback mux.

Signed-off-by: Anton Blanchard <anton@linux.ibm.com>
2020-02-04 08:00:42 +11:00
Anton Blanchard
fb60b534b2 Temporary reset fix
We need to clean up the nia/fetch handling, but avoid the situation
where we come out of reset right around the time completed goes high.

Signed-off-by: Anton Blanchard <anton@linux.ibm.com>
2020-02-03 13:00:17 +11:00
Anton Blanchard
63ed617cb6 Remove SystemVerilog syntax
Lattice Diamond doesn't seem to support SystemVerilog which is a bit
depressing. We only use the syntax in a few places, so fix that up.

Signed-off-by: Anton Blanchard <anton@linux.ibm.com>
2020-01-31 02:49:26 +11:00
Anton Blanchard
1aeb5dad28 Remove an unused bit from the Divider
Signed-off-by: Anton Blanchard <anton@linux.ibm.com>
2020-01-30 18:23:01 +11:00
Anton Blanchard
08ca3da14e Remove some old tests
These modules aren't used any more.

Signed-off-by: Anton Blanchard <anton@linux.ibm.com>
2020-01-30 18:11:46 +11:00
Anton Blanchard
f138ab7c7c Initial import 2020-01-30 05:20:07 +11:00