Commit graph

15 commits

Author SHA1 Message Date
Florian Zaruba
ad223cfd9f Clean-up naming to distinguish OP from GP Ariane (#193)
* Clean-up naming to distinguish  OP from GP Ariane

* Rename wb to wt in hidden CI files

* Fix verilator install script
2019-03-18 11:51:58 +01:00
Michael Schaffner
e0a71ea0e9 Output more status info in zsbl for OpenPiton 2019-03-18 11:51:58 +01:00
msfschaffner
0ffef2ae1a Refactor serpent AXI adapter, bump dbg and atomics submodules, add separate bootrom for linux on OpenPiton (#190)
* Refactor serpent AXI adapter

* Disable FPU in OpenPiton by default

* Bump dbg and atomics submodules

* Fix cache testbenches (interface change)

* FPGA bootrom changes for OpenPiton SDHC

* Introduce two bootroms, one for baremetal apps (pitonstream), and one for linux boot from SD

* Testing barrier-based synchronisation instead of CLINT-based

* This bootrom works for 2 core on g2 and if you change MAX_HARTS to 4, then 4 cores on vc707

* Add MAX_HARTS switch to makefile

* Fix gitlab CI

* Revert standard FPGA bootrom

* Update Flist

* Make UART_FREQ a parameter

* Fix typo in tb.list and an error in define switch in ariane_pkg

* Copy over SD-driver in bootloader from @leon575777642

* Fix compilation issues of bootrom

* Change signal name in serpent periph portlist

* Correct generate statement in serpent dcache memory
2019-03-18 11:51:58 +01:00
msfschaffner
07df142624 Maturity fixes and AXI extensions for write-through cache system (#188)
* : Fix PITON_ARIANE define issues
* Fix write-back / cache read collision issue in serpent dcache.
* Add separate bootrom / device tree for openpiton (hardcoded for 1x1 tile config at the moment).
* Bootrom generation update (better compatibility with older python versions), new bootrom for OpenPiton+Ariane.
* Fix assertion in icache.
* Correct JTAG timing constraints.
* Fix parameter type in fpga toplevel (fix #168).
* Remove conflicting bootrom from fpga file list.
* This flushs the branch predictors when entering exception handlers in order to avoid speculative fetches from virtual addresses (to be improved with PMAs).
* Fix byte offset of IPIs in CLINT
* Disable DCache flushes on fence for write-through cache (not needed in that case)
* Fix blocking assignments in ff process.
* Fix register access issue in debug mode, only affects A0 (fix #179).
* Fix multiple driver issue in PLIC
* Do not assume replicated data in serpent dcache when reading from an NC region.
* Another byte offset fix in IPIs (CLINT)
* Add AXI64 compliance switch to dcache_mem
* Fix genesys 2 constraints
* Map serpent atomic requests onto AXI atomic/exclusive transactions.
* Cleanup of AXI memory plumbing, add separate AXI adapter module.
* Remove unneeded interface signals, increase wbuffer #pending tx
* Fix verilator compilation issues in AXI adapter.
* Delete unnecessary constraint
* Delete duplicate module instance
* Update gitlab CI script
* Small fixes to make riscv atomics work with serpent_axi_adapter.
* Update travis and gitlab-ci scripts
* Register b responses for better timing.
* Remove fpu div submodule, update Makefile paths and src lists
* Constant bits in haltsum reduction must be 1 (AND reduction).
* Switch to DTM from riscv-dbg submodule
* Further cleanup fixes in AXI/serpent atomics
* Bump riscv-dbg version
2019-03-18 11:51:58 +01:00
Florian Zaruba
b1bdc0c02c Add System Verilog FPU (#163)
* Change reset strategy in ariane_verilog_wrap.sv, remove unneeded sigs in serpent_peripherals.

* saving...

* ⬆️ Updates for new FPU

* Add sv fpu to FPGA flow

* Use multi-threading capabilities of verilator

- Deactivate non-standard floating point arguments
- Make multi-threading conditional on the availability of verilator 4

* Remove DPI threadsafety

* Reduce FPGA clock frequency

- Remove couple of -v- tests to reduce test-time

* Fix documentation and fpga flow

- Fix cycle time to accommodate FPU
- Fix FPGA constraints

* Change UART frequency
2019-03-18 11:51:58 +01:00
Michael Schaffner
7951802a01
This patch makes the dm relocatable to an arbitrary base address (last 12bit need to be zero however). 2019-01-24 12:44:21 +01:00
Michael Schaffner
6857217afa
Properly synchronize interrupts. 2019-01-09 11:46:02 +01:00
Michael Schaffner
250af8aaf7
Change reset strategy in ariane_verilog_wrap.sv, remove unneeded sigs in serpent_peripherals. 2018-11-29 17:32:21 +01:00
Michael Schaffner
bdec1f695d
Added debug address filter to ariane_verilog_wrap.sv 2018-11-28 23:02:09 +01:00
Michael Schaffner
8312516bec
License headers updated, some indentation cleanup, consolidate common tb.svh file. 2018-11-26 13:20:19 +01:00
Michael Schaffner
41fb4d225e
Rename SERPENT_PULP define to PITON_ARIANE. 2018-11-26 12:07:54 +01:00
Michael Schaffner
e64a2dba52
Wire up PLIC in ariane peripherals for OpenPiton, update Flist.ariane. 2018-11-23 18:33:28 +01:00
Michael Schaffner
31f29be6d4
Fix reset connections in serpent_peripherals. 2018-11-20 16:18:13 +01:00
Michael Schaffner
93b51793f2
Change NC range definition in caches, rename parameters. 2018-11-18 11:59:22 +01:00
Michael Schaffner
37a71e4d8b
Add openpiton-specific peripherals 2018-11-18 11:33:46 +01:00