Palmer Dabbelt
926efd0cab
Allow the number of memory channels to be picked at runtime
...
We're building a chip with 8 memory channels. Since this will require a
complicated test setup we want to also be able to bring up the chip with fewer
memory channels. This commit adds a SCR that controls the number of active
memory channels on a chip. Toggling this SCR will scramble memory and drop
Nasti messages, so it's only possible to change while the chip is booting.
By default this just adds a 1-bit SCR, which essentially no extra logic.
When multiple memory channel configurations are enabled at elaboration time, a
NastiMemoryInterconnect is generated for each channel configuration. The
number of outstanding misses is increased to coorespond to the maximum number
of banks per memory channel (added as a parameter), which I believe is
necessary to avoid deadlock in the memory system.
A configuration is added that supports 8 memory channels but has only 1 enabled
by default.
2016-02-17 15:23:30 -08:00
Palmer Dabbelt
db9de94588
Generate and use SCR address header files
...
This uses the new SCRFile changes to generate a header file containing a list
of all the SCRs in a core to remove the magic constant "63" (the HTIF clock
divider control register) and replace it with a generated number (which is
still 63).
2016-02-17 15:23:18 -08:00
Howard Mao
6fc1e92708
add option to print cycle count regardless of exit status
2015-12-04 12:04:13 -08:00
Andrew Waterman
e0d849fec5
Fix zscale testing
...
Use the following command in vsim:
make CONFIG=ZscaleConfig MODEL=ZscaleTop TB=ZscaleTestHarness run-asm-tests
2015-12-01 17:31:48 -08:00
Howard Mao
bbf14ddc01
use definitions in consts header whenever possible
2015-11-05 10:48:32 -08:00
Howard Mao
ba5a6af05c
correctly stripe data across memory channels in simulation
2015-11-05 10:48:32 -08:00
Howard Mao
dcef020ca0
get multichannel simulation working in emulator
2015-11-05 10:48:32 -08:00
Yunsup Lee
0d245741bc
add multichannel NASTI support in Verilog testbench
2015-11-05 10:48:32 -08:00
Howard Mao
9dabcab9c2
Get rid of MemIO in Top and replace with AXI throughout
2015-11-05 10:48:32 -08:00
Howard Mao
c517d9f6e3
fix htif emulator constructor in vcs_main
2015-09-25 17:21:09 -07:00
Howard Mao
5e3f9115d3
make sure HTIF mem_mb doesn't exceed MMIOBase
2015-09-25 09:02:35 -07:00
Schuyler Eldridge
f200d0947a
Force C++ emulator to always use 1GB for MEM_SIZE
...
Fixes #17
2015-09-24 23:56:41 -04:00
Scott Beamer
fbc6e695d3
remove bugs from float_fix
2015-09-23 16:11:47 -07:00
Scott Beamer
56daea793a
allow float_fix to take stdin (for piping)
2015-09-23 16:09:09 -07:00
Howard Mao
38a9b23ce7
add a flag to only log and dump after a certain number of cycles
2015-09-22 10:32:31 -07:00
Howard Mao
4496e8d4e2
make sure htif_emulator properly sets memory size
2015-09-22 10:32:31 -07:00
Scott Beamer
de81762f7c
faster and more conservative float_fix
2015-09-15 17:19:29 -07:00
Scott Beamer
7e25b1ce03
cleaner/faster comlog without linear search
2015-09-15 17:19:29 -07:00
Scott Beamer
3eed7ff238
make float_fix more conservative with replacement
2015-09-12 11:00:00 -07:00
Scott Beamer
a12cd13190
tool to unrecode single floats from commit logs
2015-09-11 20:19:18 -07:00
Christopher Celio
c8a7deb950
Added a commitlog post-processor for Rocket
...
- Useful for taking Rocket's out-of-order writebacks and generating an
in-order commit log.
- Resulting commit log can be diffed against Spike's commit log.
2015-09-11 16:06:01 -07:00
Iori YONEJI
0ac6172525
Add "-memsize" flag to emulator
...
- Allow user to set memory size (in MiB) used by emulator.
- if memory is exhausted, warn user about memory shortage.
Close #3
2015-08-26 17:53:37 -07:00
Henry Cook
d3ccec1044
Massive update containing several months of changes from the now-defunct private chip repo.
...
* Adds support for a L2 cache with directory bits for tracking L1 coherence (DefaultL2Config), and new metadata-based coherence API.
* Additional tests.
* New virtual memory implementation, priviliged architecture (1.7), custom CSRs, FDivSqrt unit
* Updated TileLink protocol, NASTI protocol SHIMs.
* Lays groundwork for multiple top-level memory channels, superscalar fetch.
* Bump all submodules.
2015-07-02 14:43:30 -07:00
Yunsup Lee
1cfd9f5a0e
add LICENSE
2014-09-12 10:15:04 -07:00
Yunsup Lee
275b72368b
add CONFIG to the name of simulator executable
2014-09-11 22:11:58 -07:00
Yunsup Lee
c03c09ec31
update for rocket-chip release
2014-08-31 20:26:55 -07:00
Yunsup Lee
d2c32b048a
fix bug in htif_fini, need to use vc_handle!
2014-03-18 01:35:08 -07:00
Andrew Waterman
0d124d283a
Write our own vcs main() routine
2014-03-17 17:02:28 -07:00
Andrew Waterman
7f23257873
Print out random seed if test fails
2014-03-17 15:35:32 -07:00
Andrew Waterman
d055c0ebaf
Push rocket/hardfloat/chisel
2014-03-04 16:39:06 -08:00
Andrew Waterman
dfc13236d1
Linux works again!
2014-01-16 12:44:29 -08:00
Andrew Waterman
ab6cd9c9e8
Update chisel, rocket
2013-12-09 15:09:48 -08:00
Andrew Waterman
c55eee7244
Pass target machine exit code back to host OS
2013-10-29 13:24:09 -07:00
Andrew Waterman
fbdbb01232
update to new isa; disable vector tests
2013-09-12 17:04:03 -07:00
Andrew Waterman
ae0716fb6d
Use chisel printf for logging
2013-06-13 10:53:23 -07:00
Andrew Waterman
cfa86dba4f
add FPGA test bench
...
The memory models now support back pressure on the response.
2013-05-02 04:59:32 -07:00
Andrew Waterman
d2e1828714
gracefully kill htif thread, fixing tty stuff
2013-05-02 04:59:32 -07:00
Andrew Waterman
def11e44b8
don't pipe stdout to vcd2vpd
2013-03-25 17:01:13 -07:00
Andrew Waterman
c6695bee7c
fix emulator HTIF interface bug
2013-02-20 16:11:21 -08:00
Andrew Waterman
dbb61306f0
randomize coreid mapping
2013-01-26 16:13:14 -08:00
Andrew Waterman
4077b22929
include fesvr as a library; improve harnesses
2013-01-24 23:57:23 -08:00
Yunsup Lee
f37b9d9a7d
fix dramsim2 memory model to wrap around
...
- there was a problem when the I$ speculatively fetched an instruction from an illegal address
2013-01-23 01:40:15 -08:00
Andrew Waterman
bbd010750f
add missing #include
2013-01-06 04:53:40 -08:00
Andrew Waterman
d911e635d6
simplify c++ memory models; support +dramsim flag
...
works for both vlsi and emulator
2012-12-04 07:04:26 -08:00
Andrew Waterman
6d47d18c2b
catch sigterm to gracefully exit (fixes vcd)
2012-11-20 05:40:44 -08:00
Andrew Waterman
b58214d7e3
remove more global constants
2012-11-17 17:25:43 -08:00
Andrew Waterman
cf05b604b3
upgrade to new rocket; improve vlsi makefiles
2012-11-17 07:21:29 -08:00
Andrew Waterman
e2afae011a
factor out global constants
2012-11-06 08:18:40 -08:00
Andrew Waterman
4ed2d614a2
update to new rocket; retime fpu in dc-syn
2012-11-04 16:43:02 -08:00
Andrew Waterman
edf0eeed01
integrate updated rocket/uncore
2012-10-18 17:51:41 -07:00