1
0
mirror of https://github.com/olofk/serv.git synced 2026-02-01 14:01:55 +00:00
Commit Graph

118 Commits

Author SHA1 Message Date
Olof Kindgren
3971ca942e Fix up RVFI 2021-08-27 13:10:06 +02:00
Olof Kindgren
d2a4243033 Add reset for new_irq register 2021-08-27 13:10:06 +02:00
Zeeshan Rafique
6e802cb9bc M-extension support for SERV
* modified serv(ant) for MDU
* added dependency for mdu
* M-extension for SERV
* Updated README for running RV32IM compliance tests
* waive some lint warnings related to mdu
* added mdu param for arty_a7_35t
2021-08-20 23:45:19 +02:00
Olof Kindgren
c2cdd44f73 Expose and document PRE_REGISTER 2021-06-05 22:56:37 +02:00
Olof Kindgren
f373d7bcb6 Reuse immediate regs for RF addresses 2021-05-16 00:09:18 +02:00
Olof Kindgren
548b7fbb41 remove redundant ALU control signal 2021-03-14 23:22:50 +01:00
Olof Kindgren
7624466ddd Optimize serv_rf_ram_if 2021-02-15 08:50:24 +01:00
Olof Kindgren
9a0b0e877c Move shifter to mem_if
This allows reusing the data bus registers for shift amount
2021-02-06 23:24:23 +01:00
Olof Kindgren
6fbdea58d6 Optimize trap handling 2021-01-23 22:42:26 +01:00
Olof Kindgren
e4b773c17b Syntax fixes 2021-01-18 22:47:28 +01:00
Olof Kindgren
5e4181d204 Optimize shift operations 2021-01-18 22:46:51 +01:00
Olof Kindgren
d5febe8f63 Simplify and document trap handling 2021-01-18 22:38:07 +01:00
Olof Kindgren
25fa6fa83b Clean up and document serv_mem_if 2021-01-02 00:02:23 +01:00
Olof Kindgren
ca1a07f684 Document and clean up interface of serv_immdec 2020-12-29 23:35:17 +01:00
Olof Kindgren
a960fd768b Remove redundant bufreg_loop control signal 2020-12-22 22:13:57 +01:00
Olof Kindgren
c9f41b54e8 Optimize init signal 2020-12-22 22:13:57 +01:00
Olof Kindgren
116e370589 Reverse polarity of bufreg_hold signal 2020-12-06 22:39:04 +01:00
Olof Kindgren
aa16bc40b6 Move ibus_cyc handling to serv_state 2020-12-02 16:19:34 +01:00
Olof Kindgren
fd79a2ea0c Use cnt0 in serv_ctrl 2020-12-01 22:40:52 +01:00
Olof Kindgren
bbe3e56ab2 Decouple ibus_cyc and ibus_ack 2020-11-30 23:13:11 +01:00
Olof Kindgren
90ce4ff1af Syntax and reset fixes for ModelSim 2020-11-10 15:16:19 +01:00
Olof Kindgren
c1b8471678 Add reset_strategy parameter
The reset_strategy parameter controls how much reset to apply to
SERV. It can be set to MINI for the default behaviour, or NONE to
only apply reset where absolutely needed and rely on POR to clear
FFs
2020-11-10 15:16:19 +01:00
Olof Kindgren
44287ed244 Remove unused reset input from serv_alu 2020-11-10 15:16:19 +01:00
Olof Kindgren
6aeb39c7ac Clean up port maps in serv_top 2020-11-10 15:16:19 +01:00
Olof Kindgren
3751b58253 Clean up serv_csr interface 2020-11-10 15:16:19 +01:00
Olof Kindgren
cc42437e0f Prepare for alternative immediate decoder 2020-11-10 15:16:19 +01:00
Olof Kindgren
fa6c420b10 Remove redundant mstatus register 2020-08-26 16:45:40 +02:00
Olof Kindgren
915cdf7933 Move RF address decoding to serv_immdec 2020-08-17 13:00:29 +02:00
Olof Kindgren
88a1a43438 Refactor and Use ALU subtractor for comparisons 2020-08-13 23:37:11 +02:00
Olof Kindgren
1c4e793885 Move CSR immediate decoder to immdec 2020-08-13 23:37:11 +02:00
Olof Kindgren
8775b321d9 Move jump decision logic to serv_state 2020-08-13 23:37:11 +02:00
Olof Kindgren
a614e427b8 Move immediate decoder to separate module 2020-08-13 23:37:11 +02:00
Olof Kindgren
188fd2ecc8 Restore nettype to wire in toplevels
This is needed to prevent breaking sources following SERV that
don't handle nettype properly
2020-05-26 22:46:01 +02:00
Olof Kindgren
fda7dd288a Optimize enable signal for mem_if buffers 2020-04-15 22:48:28 +02:00
Olof Kindgren
1d311edb7d Make counter internal in serv_state 2020-04-15 10:29:50 +02:00
Olof Kindgren
9a8dcde030 Simplify o_dbus_adr assignment 2020-04-03 22:58:24 +02:00
Olof Kindgren
6b0e4fb3ea Disable misalignment traps when CSR is disabled 2020-03-27 08:55:34 +01:00
Olof Kindgren
726e520cce Fix lint warnings when CSR is disabled 2020-03-25 23:32:12 +01:00
Olof Kindgren
3e9e25e984 Avoid resetting bufreg 2020-03-03 09:21:55 +01:00
Olof Kindgren
b48b02b8df Add parameter to disable CSR/interrupts
Also disables timer in servant if CSR/interrupts are disabled
2020-03-02 16:17:26 +01:00
Olof Kindgren
7f16f17ca5 Optimize CSR immediate handling 2020-02-19 10:02:48 +01:00
Olof Kindgren
36746d3890 Remove unused signals 2020-02-17 23:01:49 +01:00
Olof Kindgren
5aa1fbe709 Stop depending on run state 2019-12-08 22:51:28 +01:00
Olof Kindgren
6067b0e684 Use one-hot encoding for ALU rd sel 2019-12-07 23:36:36 +01:00
Olof Kindgren
eb5d25ea1c Move op_b mux to alu 2019-12-07 23:09:04 +01:00
Olof Kindgren
e93fd0d30e Fix compile errors with RISCV_FORMAL 2019-12-04 23:42:40 +01:00
Olof Kindgren
8b82c85fb6 Create toplevel without RF 2019-11-20 18:26:04 +01:00
Olof Kindgren
4532c8dafd Move rd selection to rf_if 2019-11-20 18:26:04 +01:00
Olof Kindgren
04037c4354 Split out RF to separate module 2019-11-20 18:26:04 +01:00
Olof Kindgren
40000cbeb9 Fix IRQ
This contains a lot of fixes as IRQ support was broken on both
RTL and zephyr side

* Interrupts are now synced to instruction lifetimes
* Interrupts are disabled on traps and mie is pushed to mpie
* Zephyr applications regenerated from rewritten Zephyr port
* Timer is 32-bit to avoid wrapping around too often
* MEPC was not read properly from CSR storage
2019-11-19 11:06:50 +01:00