1
0
mirror of https://github.com/olofk/serv.git synced 2026-03-01 17:25:51 +00:00

142 Commits

Author SHA1 Message Date
Alfred Persson Forsberg
41c0d44e5f boilerplate for external interrupts
Signed-off-by: Alfred Persson Forsberg <cat@catcream.org>
2025-05-11 23:20:31 +02:00
Olof Kindgren
3c2dc51969 Make immdec 4-bit compatible 2025-05-08 23:02:56 +02:00
Olof Kindgren
2ff6fcbbd2 Make bufreg 4-bit compatible 2025-05-08 22:34:48 +02:00
Olof Kindgren
46e2d76005 Make bufreg2 4-bit compatible 2025-05-08 21:38:28 +02:00
Olof Kindgren
f6116cf2ec Make right-shifts one cycle faster
This allows removing the stage_two_req register as well.
2025-03-18 13:42:47 +01:00
Olof Kindgren
629e6727f5 Move shamt to top byte in bufreg2
Instead of shifting shamt all the way to bits 4:0, we just shift
8 steps. This saves some energy and allows us to be finished before
cnt_done.
2025-03-18 13:40:44 +01:00
Olof Kindgren
0a55885d3b Move bytecnt to bufreg2 2025-03-01 23:12:44 +01:00
Olof Kindgren
2f23449f0f Make branches, slt and left shifts one cycle faster 2025-03-01 23:12:44 +01:00
Olof Kindgren
129a9294c6 Remove slt_or_branch control signal 2025-03-01 23:12:44 +01:00
Olof Kindgren
9bf8672fb2 Move RVFI signals into serv_debug 2024-10-17 13:59:23 +02:00
Olof Kindgren
2bcf4104d0 Add debug module 2024-10-13 22:24:00 +02:00
Olof Kindgren
376dcd701d Introduce width parameter
Expose the width (or W internally) parameter to set the SERV
datapath width.

Note: Only width=1 is function at this time.
2024-10-05 23:17:22 +02:00
Olof Kindgren
1fc6e7da9b Set correct value of mstatus[mpp]
The correct value of mstatus[mpp] for machine-mode is 11, but SERV
had this set to 00. Changes in the regression test suite uncovered
this error.
2024-08-22 22:18:45 +02:00
Olof Kindgren
bc74a9a1d7 Used named generate statements
Unnamed generate statements are not recommended and some tools throw
warnings or errors for these.
2023-11-16 21:38:10 +01:00
Olof Kindgren
c7fc57213c Avoid releasing trap signal too early
The trap signal is used my the mux in serv_rf_if to decide which
registers to write to. If the trap signal is dropped too early,
the destination address changes while the register is still being
written to.
2023-10-31 22:21:12 +01:00
Olof Kindgren
9be55f5cad Set align parameter to the value of compressed by default 2022-12-25 21:34:48 +01:00
Olof Kindgren
73508bc5de Expose with_csr in servant 2022-07-26 00:28:53 +02:00
Abd
1beb9d33ec privilege tests fixed for rv32i 2022-07-26 00:28:53 +02:00
Abd
2655861447 Compressed Extension for SERV 2022-06-01 13:38:24 +02:00
Olof Kindgren
d910becd7f Move dbus_dat/rs2/shamt storage to bufreg2 2022-01-02 22:10:33 +01:00
Olof Kindgren
f04a510393 Remove unused parameter from serv_mem_if 2022-01-01 22:50:28 +01:00
Olof Kindgren
9c4bdd4bfe Simplify branch_op/slt_op signals 2021-10-08 22:25:24 +02:00
Olof Kindgren
9d3ebf3e96 Replace mem_op with dedicated control signals 2021-10-05 12:52:29 +02:00
Zeeshan Rafique
8843005407 updated vars declaration for modelsim (#63) 2021-10-03 23:15:54 +02:00
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