Anton Blanchard
7caf71ba71
Fix issue in loadstore1
...
We weren't using the register in this stage.
Fixes: 819f820090
("Register outputs on loadstore1")
Signed-off-by: Anton Blanchard <anton@linux.ibm.com>
5 years ago
Anton Blanchard
95442cd62c
Fix issue in execute2
...
We weren't using the register in this stage.
Fixes: c7aa683ba8
("Register outputs on execute2")
Signed-off-by: Anton Blanchard <anton@linux.ibm.com>
5 years ago
Anton Blanchard
8b88e26ece
Merge pull request #43 from mikey/trivial
...
Remove FIXME comment
5 years ago
Michael Neuling
1e1b799382
Remove FIXME comment
...
This was mistakenly left behind in 4d5abfb430
("Remove dynamic
ranges from code")
Signed-off-by: Michael Neuling <mikey@neuling.org>
5 years ago
Anton Blanchard
ff1455dea6
Merge pull request #41 from mikey/travis
...
Allow a full make check on Travis
5 years ago
Anton Blanchard
2f3ca35a6e
Merge pull request #42 from antonblanchard/fetch-rework-v2
...
Fetch rework
5 years ago
Anton Blanchard
4528ef2b43
Reformat core.vhdl
5 years ago
Anton Blanchard
a2df2a10a2
Remove sim console
...
We can force all existing code to use the UART console
by passing 0 in bit zero of the sim config register.
Signed-off-by: Anton Blanchard <anton@linux.ibm.com>
5 years ago
Anton Blanchard
68533c4cfb
Reduce multiply to 2 cycles
...
We want all non load/store ops to take 2 cycles to make
tracking write back easier.
Signed-off-by: Anton Blanchard <anton@linux.ibm.com>
5 years ago
Anton Blanchard
9fe8d211eb
Register outputs on writeback
...
Signed-off-by: Anton Blanchard <anton@linux.ibm.com>
5 years ago
Anton Blanchard
c7aa683ba8
Register outputs on execute2
...
Signed-off-by: Anton Blanchard <anton@linux.ibm.com>
5 years ago
Anton Blanchard
819f820090
Register outputs on loadstore1
...
Signed-off-by: Anton Blanchard <anton@linux.ibm.com>
5 years ago
Anton Blanchard
a8f8c54b77
Move debug execute output into decode2
...
This covers all units, and we avoid double printing.
Signed-off-by: Anton Blanchard <anton@linux.ibm.com>
5 years ago
Anton Blanchard
92a7152370
Rework pipeline, add stall and flush signals
...
This adds stall and flush signals to the pipeline.
Signed-off-by: Anton Blanchard <anton@linux.ibm.com>
5 years ago
Michael Neuling
6b06d5f67d
Allow a full make check on Travis
...
Some Travis instances allow more CPU time. On these we can perform the
full 'make check'.
This patch allows this longer `make check`. To enable it you need to
go into your Travis configuration and add a TRAVIS_FULL_CHECK
environment variable.
If you don't add this environment, the shorter make check_light is
still run.
Signed-off-by: Michael Neuling <mikey@neuling.org>
5 years ago
Anton Blanchard
3b32abcb5d
Merge pull request #40 from antonblanchard/makefile-dependencies
...
Update Makefile dependencies
5 years ago
Anton Blanchard
b6b2c78163
Update Makefile dependencies
...
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
5 years ago
Benjamin Herrenschmidt
d3acb5cce9
Switch soc to use std_ulogic
...
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
5 years ago
Benjamin Herrenschmidt
3ac1dbc737
Share soc.vhdl between FPGA and sim
...
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
5 years ago
Benjamin Herrenschmidt
d21ef5836d
Pass wishbone record to bram memory module
...
(And rename it to mw_soc_memory).
This makes soc.vhdl simpler and provides the same interface as
the simulated memory, which will help when sharing soc.vhdl
with sim later
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
5 years ago
Benjamin Herrenschmidt
1d66e1f981
Rework wishbone slave address decoding
...
Don't make it synchronous, no latches
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
5 years ago
Benjamin Herrenschmidt
c97b080d8c
Move wishbone arbiter out of the core
...
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
5 years ago
Benjamin Herrenschmidt
310a56c076
Re-indent and reformat soc.vhdl
...
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
5 years ago
Benjamin Herrenschmidt
a69a93b466
Split FPGA toplevel from soc
...
This will be useful when we start needing different toplevels for
different boards.
We keep the reset and clock generators in the toplevel as they will
eventually be taken over by litedram when we integrate it, and they
are more likely to change on different system types.
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
5 years ago
Anton Blanchard
5ee86e7621
Merge pull request #39 from antonblanchard/no-x-state
...
Don't send out X state from the memory behavioural
5 years ago
Anton Blanchard
dce2e06f4c
Don't send out X state from the memory behavioural
...
Just send out all 1s.
Signed-off-by: Anton Blanchard <anton@linux.ibm.com>
5 years ago
Anton Blanchard
c3a5782bf4
Merge pull request #36 from mikey/gitignore
...
Add new files to git ignore
5 years ago
Anton Blanchard
419b95a447
Merge pull request #38 from antonblanchard/multiply-warn
...
Quieten multiply warning
5 years ago
Anton Blanchard
a22afbdb5b
Quieten multiply warning
...
We no longer gate multiply with the valid signal, so it's complaining
a lot. Comment out the warning.
Signed-off-by: Anton Blanchard <anton@linux.ibm.com>
5 years ago
Michael Neuling
5ae92a721f
Add new files to git ignore
...
Signed-off-by: Michael Neuling <mikey@neuling.org>
5 years ago
Anton Blanchard
d79c994158
Merge pull request #35 from antonblanchard/multiply-opt
...
Simplify multiply
5 years ago
Anton Blanchard
18b9b39a2c
Simplify multiply
...
No need to gate everything with the valid bit.
Signed-off-by: Anton Blanchard <anton@linux.ibm.com>
5 years ago
Anton Blanchard
47f39440f2
Merge pull request #34 from antonblanchard/decode-table
...
Decode table
5 years ago
Anton Blanchard
9687034d78
Add a decode bit to mark an instruction as single through the pipeline
...
This is used by the pipelining patches. Mark everyone as single through
the pipeline to start.
Signed-off-by: Anton Blanchard <anton@linux.ibm.com>
5 years ago
Benjamin Herrenschmidt
b0ade2857f
decode1 array fix header
...
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
5 years ago
Anton Blanchard
a9065796ad
Merge pull request #33 from antonblanchard/cr-fix
...
Fix CR forwarding
5 years ago
Anton Blanchard
e0dfb3dce1
Merge pull request #32 from antonblanchard/register-file-forwarding
...
Add forwarding in the register file
5 years ago
Benjamin Herrenschmidt
8bfd6e5eae
Use simulated UART in core test bench
...
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
5 years ago
Benjamin Herrenschmidt
1b9c6f4647
Make sim poll non-blocking
...
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
5 years ago
Benjamin Herrenschmidt
48b689b665
Add simulated UART design
...
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
5 years ago
Anton Blanchard
9cbdecb561
Fix CR forwarding
...
We weren't actually forwarding writes in the same cycle. Not a
problem right now, but noticed when testing the pipelining series.
Signed-off-by: Anton Blanchard <anton@linux.ibm.com>
5 years ago
Anton Blanchard
79a14c8e37
Add forwarding in the register file
...
We need this for the upcoming pipelining patches.
Signed-off-by: Anton Blanchard <anton@linux.ibm.com>
5 years ago
Anton Blanchard
2241b71674
Merge pull request #31 from antonblanchard/no-second-write-port-2
...
More second write port removal
5 years ago
Anton Blanchard
045a00c5d7
Merge pull request #30 from antonblanchard/writeback-assert
...
Add some assertions to writeback
5 years ago
Anton Blanchard
31a6fb6ef5
More second write port removal
...
I missed the register file updates for the second write port
removal.
Signed-off-by: Anton Blanchard <anton@linux.ibm.com>
5 years ago
Anton Blanchard
fa04936c92
Add some assertions to writeback
...
We want to make sure we never complete more than one
instruction per cycle, or write back more than one GPR
or CR per cycle.
Signed-off-by: Anton Blanchard <anton@linux.ibm.com>
5 years ago
Anton Blanchard
4c872619b3
Merge pull request #29 from antonblanchard/no-second-write-port
...
Remove second write port
5 years ago
Anton Blanchard
f384f504a1
Merge pull request #28 from antonblanchard/loadstore-cleanup
...
Remove some more loadstore debug
5 years ago
Anton Blanchard
fb4cad6eaf
Remove second write port
...
We only need two write ports for load with update instructions.
Having two write ports just for this instruction is expensive.
For now we will force them to be the only instruction in the
pipeline, and take two cycles of writeback.
Signed-off-by: Anton Blanchard <anton@linux.ibm.com>
5 years ago
Anton Blanchard
aee5fded44
Remove some more loadstore debug
...
Signed-off-by: Anton Blanchard <anton@linux.ibm.com>
5 years ago