1
0
mirror of https://github.com/olofk/serv.git synced 2026-02-25 07:49:57 +00:00
Commit Graph

55 Commits

Author SHA1 Message Date
Olof Kindgren
bebc875353 Make serv_state more simulator-friendly
Refactor the counter generation code to avoid using combinatorial
always statements that rely on an event happening at time 0. This
make serv work with Icarus again.
2024-03-19 12:40:50 +01: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
uhit332
46a820ee42 support for W=4 2023-10-31 15:53:36 +01:00
Olof Kindgren
4567214721 Refactor counter in serv_state 2023-07-13 10:29:19 +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
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
Olof Kindgren
99f82af6eb Simplify optional MDU logic 2021-10-03 23:28:45 +02:00
Olof Kindgren
48e250ea5e Clean up serv_state interface 2021-10-03 22:48:51 +02:00
Olof Kindgren
2989051f44 Avoid enabling bufreg before instruction is decoded 2021-08-27 13:10:06 +02:00
Olof Kindgren
64f5ca0b7f Add missing reset on cnt_done 2021-08-27 13:10:06 +02:00
Olof Kindgren
781c07b7dc Properly reset stage_two_req signal 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
1c11365ae8 Simulator-friendly cleanup of misalign_trap_sync 2021-04-22 15:44:18 +02:00
Olof Kindgren
62d5d5f8fb Remove unused wire cnt4 2021-04-18 22:01:32 +02: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
17103dd1f5 Merge LSB registers into bufreg 2021-01-11 21:40:45 +01:00
Olof Kindgren
ace7b8ef44 Explain and optimize state counter 2021-01-03 00:01:09 +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
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
554bdccba0 Silence some warnings 2020-11-10 15:16:19 +01:00
Olof Kindgren
ee6a86705d Set size of WITH_CSR to avoid Quartus warning 2020-09-29 17:52:02 +02:00
Olof Kindgren
8775b321d9 Move jump decision logic to serv_state 2020-08-13 23:37:11 +02:00
Olof Kindgren
1d311edb7d Make counter internal in serv_state 2020-04-15 10:29:50 +02:00
Olof Kindgren
09c7d6dbbf Remove FSM from serv_state 2020-04-05 00:22:44 +02:00
Olof Kindgren
8dd75fa752 Stop using states in logic expressions 2020-04-04 23:44:29 +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
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
badcd7ea55 Remove duplicate signals in serv_state 2020-02-17 23:48:39 +01:00
Olof Kindgren
5aa1fbe709 Stop depending on run state 2019-12-08 22:51:28 +01:00
Olof Kindgren
b516c10d72 Prepare for RF write on RF read request and optimize state FSM 2019-12-07 23:01:24 +01:00
Olof Kindgren
fc348f3a22 Fix wen delays in rf 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
Olof Kindgren
8bc54a99ad Move mcause generation to serv_csr 2019-09-26 23:36:02 +02:00
Olof Kindgren
0f767ad2d3 Gate mem_misalign in mem_if 2019-09-26 23:23:42 +02:00
Olof Kindgren
5b96b3a938 Simplify jump flag 2019-09-26 23:12:07 +02:00
Olof Kindgren
126937f16a Rewrite RF and state machine
Big patch, but would take more work to split it up
2019-09-26 23:09:22 +02:00
Olof Kindgren
ca2beaf786 Pass rf_rreq through serv_state 2019-09-26 22:59:46 +02:00