Skip to content

Integrate riscv-dv - #270

Open
tandr3w wants to merge 13 commits into
mainfrom
riscv-dv
Open

Integrate riscv-dv#270
tandr3w wants to merge 13 commits into
mainfrom
riscv-dv

Conversation

@tandr3w

@tandr3w tandr3w commented Jul 14, 2026

Copy link
Copy Markdown
Contributor

#163

Integrates riscv-dv testing framework

Added makefile target "riscv_dv" that runs the Python script. The Python script runs the run.py file provided by the framework, compiles using gcc with the linker script from riscof, runs using the riscof dut_sim, runs utoss_log_trace_to_csv which converts the logs to a CSV format, and runs a provided script to compare the CSV with the SAIL simulator reference model.

See the README for instructions on installing

@tandr3w
tandr3w requested a review from TheDeepestSpace July 14, 2026 23:37
Comment thread utoss_riscv_dv/README.md
@@ -0,0 +1,22 @@
To install riscv-dv:

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

we'll need to move this into the ci and dev dockerfiles

Comment thread Makefile Outdated
Comment on lines +25 to +26
RISCV_DV_TARGET ?= rv32i
RISCV_DV_ISA ?= rv32i_zicsr

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

what's the difference between these two parameters? also we should probably feed thes from RISCOF_ISA_STRING

@tandr3w tandr3w Jul 23, 2026

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

RISCV_DV_TARGET is the target machine that riscv-dv generates instructions for (can be rv32i, rv32imafdc, rv32imc, rv32imcb)

RISCV_DV_ISA is the format that is fed to the GCC when compiling it (-march) saying what instructions the compiiler is allowed to accept (I.e. it will error if there is an opcode that is outside of what you pass here). I think we can probably just default it to being the same as the target but with _zicsr_zifencei appended and it should be able to handle everything fine.

I'm not really sure how to derive the target from the UTOSS_RISCV_CONFIG since they don't support all the targets by default and tell you to add more by yourself if you want a custom configuration (might be a good idea):

If you want to have a custom setting for your processor, you can make a copy of existing target directory as the template, and modify riscv_core_setting.sv to match your processor capability. You can then run the generator with --custom_target <target_dir>:

Maybe we can make the script find the best matching available one automatically? I tried making an implementation of this in my current commit.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not really sure how to derive the target from the UTOSS_RISCV_CONFIG since they don't support all the targets by default

when i go to their docs, i see that they say

Supported instruction set: RV32IMAFDC, RV64IMAFDC

So I'd expect them to support all combinations of these. They do not seem to have B extension here, so we could exclude configs with B extension form the matrix in github actions. So I feel like you can send the downcased version of UTOSS_RISCV_CONFIG as --target for riscv-dv? unless im missing something

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

re:

RISCV_DV_TARGET is the target machine that riscv-dv generates instructions for (can be rv32i, rv32imafdc, rv32imc, rv32imcb)

RISCV_DV_ISA is the format that is fed to the GCC when compiling it (-march) saying what instructions the compiiler is allowed to accept (I.e. it will error if there is an opcode that is outside of what you pass here). I think we can probably just default it to being the same as the target but with _zicsr_zifencei appended and it should be able to handle everything fine.

Interesting, in my head these are kind of the same thing, especially with the _zicsr part -- like once this is imeplemented it would be part of the UTOSS_RISCV_CONFIG; i guess we'll cross that river when we get there though.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not really sure how to derive the target from the UTOSS_RISCV_CONFIG since they don't support all the targets by default

when i go to their docs, i see that they say

Supported instruction set: RV32IMAFDC, RV64IMAFDC

So I'd expect them to support all combinations of these. They do not seem to have B extension here, so we could exclude configs with B extension form the matrix in github actions. So I feel like you can send the downcased version of UTOSS_RISCV_CONFIG as --target for riscv-dv? unless im missing something

For the target I'm pretty sure it just looks in the target directory for a folder matching the --target (https://github.com/chipsalliance/riscv-dv/tree/master/pygen/pygen_src/target) and sets the config file found in that folder.

Comment thread Makefile Outdated
@TheDeepestSpace

Copy link
Copy Markdown
Member

could you also configure this to run in ci? does not have to be scheduled yet -- just maybe a trial run

@tandr3w

tandr3w commented Jul 23, 2026

Copy link
Copy Markdown
Contributor Author
  • Added it to CI
  • Made new makefile
  • Derived the target and ISA from riscv config variable

Note that the current script doesn't put everything possible in the compare CSV as the logger is missing some of it, so we might need to add more later. The address mismatch is also still an issue so it will fail if there is ever an AUIPC (which is pretty much always)

Also it seems like the pyflow part of the riscv-dv library is a little outdated so for the B extension it produces instructions that are no longer in the spec

@github-actions

github-actions Bot commented Jul 23, 2026

Copy link
Copy Markdown

🔧 DE1-SoC Synthesis Report Summary Diff

  • RV32I

    1. Fitter Summary
      No baseline available from main branch

      View PR synthesis results
      Fitter Status : Successful - Wed Aug  5 03:13:03 2026
      Quartus Prime Version : 25.1std.0 Build 1129 10/21/2025 SC Lite Edition
      Revision Name : utoss-risc-v
      Top-level Entity Name : top
      Family : Cyclone V
      Device : 5CSEMA5F31C6
      Timing Models : Final
      Logic utilization (in ALMs) : 1,522 / 32,070 ( 5 % )
      Total registers : 1566
      Total pins : 15 / 457 ( 3 % )
      Total virtual pins : 0
      Total block memory bits : 32,768 / 4,065,280 ( < 1 % )
      Total RAM Blocks : 8 / 397 ( 2 % )
      Total DSP Blocks : 0 / 87 ( 0 % )
      Total HSSI RX PCSs : 0
      Total HSSI PMA RX Deserializers : 0
      Total HSSI TX PCSs : 0
      Total HSSI PMA TX Serializers : 0
      Total PLLs : 0 / 6 ( 0 % )
      Total DLLs : 0 / 4 ( 0 % )
      
    2. Fitter by entity
      No baseline available from main branch

      View PR synthesis results
      Compilation Hierarchy Node                        ALMs needed [=A-B+C]  [A] ALMs used in final placement  [B] Estimate of ALMs recoverable by dense packing  [C] Estimate of ALMs unavailable  ALMs used for memory  Combinational ALUTs  Dedicated Logic Registers  I/O Registers  Block Memory Bits  M10Ks  DSP Blocks  Pins  Virtual Pins  Full Hierarchy Name                                                                                                Entity Name         Library Name
      |top                                              1521.5 (0.5)          1661.0 (0.5)                      164.0 (0.0)                                        24.5 (0.0)                        0.0 (0.0)             1777 (1)             1566 (0)                   0 (0)          32768              8      0           15    0             |top                                                                                                               top                 work
         |memory_map:memory_map|                        10.8 (10.8)           11.3 (11.3)                       0.5 (0.5)                                          0.0 (0.0)                         0.0 (0.0)             13 (13)              11 (11)                    0 (0)          32768              8      0           0     0             |top|memory_map:memory_map                                                                                         memory_map          work
            |altsyncram:M0_rtl_0|                       0.0 (0.0)             0.0 (0.0)                         0.0 (0.0)                                          0.0 (0.0)                         0.0 (0.0)             0 (0)                0 (0)                      0 (0)          4096               1      0           0     0             |top|memory_map:memory_map|altsyncram:M0_rtl_0                                                                     altsyncram          work
               |altsyncram_9hp1:auto_generated|         0.0 (0.0)             0.0 (0.0)                         0.0 (0.0)                                          0.0 (0.0)                         0.0 (0.0)             0 (0)                0 (0)                      0 (0)          4096               1      0           0     0             |top|memory_map:memory_map|altsyncram:M0_rtl_0|altsyncram_9hp1:auto_generated                                      altsyncram_9hp1     work
            |altsyncram:M0_rtl_1|                       0.0 (0.0)             0.0 (0.0)                         0.0 (0.0)                                          0.0 (0.0)                         0.0 (0.0)             0 (0)                0 (0)                      0 (0)          4096               1      0           0     0             |top|memory_map:memory_map|altsyncram:M0_rtl_1                                                                     altsyncram          work
               |altsyncram_9hp1:auto_generated|         0.0 (0.0)             0.0 (0.0)                         0.0 (0.0)                                          0.0 (0.0)                         0.0 (0.0)             0 (0)                0 (0)                      0 (0)          4096               1      0           0     0             |top|memory_map:memory_map|altsyncram:M0_rtl_1|altsyncram_9hp1:auto_generated                                      altsyncram_9hp1     work
            |altsyncram:M1_rtl_0|                       0.0 (0.0)             0.0 (0.0)                         0.0 (0.0)                                          0.0 (0.0)                         0.0 (0.0)             0 (0)                0 (0)                      0 (0)          4096               1      0           0     0             |top|memory_map:memory_map|altsyncram:M1_rtl_0                                                                     altsyncram          work
               |altsyncram_ahp1:auto_generated|         0.0 (0.0)             0.0 (0.0)                         0.0 (0.0)                                          0.0 (0.0)                         0.0 (0.0)             0 (0)                0 (0)                      0 (0)          4096               1      0           0     0             |top|memory_map:memory_map|altsyncram:M1_rtl_0|altsyncram_ahp1:auto_generated                                      altsyncram_ahp1     work
            |altsyncram:M1_rtl_1|                       0.0 (0.0)             0.0 (0.0)                         0.0 (0.0)                                          0.0 (0.0)                         0.0 (0.0)             0 (0)                0 (0)                      0 (0)          4096               1      0           0     0             |top|memory_map:memory_map|altsyncram:M1_rtl_1                                                                     altsyncram          work
               |altsyncram_ahp1:auto_generated|         0.0 (0.0)             0.0 (0.0)                         0.0 (0.0)                                          0.0 (0.0)                         0.0 (0.0)             0 (0)                0 (0)                      0 (0)          4096               1      0           0     0             |top|memory_map:memory_map|altsyncram:M1_rtl_1|altsyncram_ahp1:auto_generated                                      altsyncram_ahp1     work
            |altsyncram:M2_rtl_0|                       0.0 (0.0)             0.0 (0.0)                         0.0 (0.0)                                          0.0 (0.0)                         0.0 (0.0)             0 (0)                0 (0)                      0 (0)          4096               1      0           0     0             |top|memory_map:memory_map|altsyncram:M2_rtl_0                                                                     altsyncram          work
               |altsyncram_bhp1:auto_generated|         0.0 (0.0)             0.0 (0.0)                         0.0 (0.0)                                          0.0 (0.0)                         0.0 (0.0)             0 (0)                0 (0)                      0 (0)          4096               1      0           0     0             |top|memory_map:memory_map|altsyncram:M2_rtl_0|altsyncram_bhp1:auto_generated                                      altsyncram_bhp1     work
            |altsyncram:M2_rtl_1|                       0.0 (0.0)             0.0 (0.0)                         0.0 (0.0)                                          0.0 (0.0)                         0.0 (0.0)             0 (0)                0 (0)                      0 (0)          4096               1      0           0     0             |top|memory_map:memory_map|altsyncram:M2_rtl_1                                                                     altsyncram          work
               |altsyncram_bhp1:auto_generated|         0.0 (0.0)             0.0 (0.0)                         0.0 (0.0)                                          0.0 (0.0)                         0.0 (0.0)             0 (0)                0 (0)                      0 (0)          4096               1      0           0     0             |top|memory_map:memory_map|altsyncram:M2_rtl_1|altsyncram_bhp1:auto_generated                                      altsyncram_bhp1     work
            |altsyncram:M3_rtl_0|                       0.0 (0.0)             0.0 (0.0)                         0.0 (0.0)                                          0.0 (0.0)                         0.0 (0.0)             0 (0)                0 (0)                      0 (0)          4096               1      0           0     0             |top|memory_map:memory_map|altsyncram:M3_rtl_0                                                                     altsyncram          work
               |altsyncram_chp1:auto_generated|         0.0 (0.0)             0.0 (0.0)                         0.0 (0.0)                                          0.0 (0.0)                         0.0 (0.0)             0 (0)                0 (0)                      0 (0)          4096               1      0           0     0             |top|memory_map:memory_map|altsyncram:M3_rtl_0|altsyncram_chp1:auto_generated                                      altsyncram_chp1     work
            |altsyncram:M3_rtl_1|                       0.0 (0.0)             0.0 (0.0)                         0.0 (0.0)                                          0.0 (0.0)                         0.0 (0.0)             0 (0)                0 (0)                      0 (0)          4096               1      0           0     0             |top|memory_map:memory_map|altsyncram:M3_rtl_1                                                                     altsyncram          work
               |altsyncram_chp1:auto_generated|         0.0 (0.0)             0.0 (0.0)                         0.0 (0.0)                                          0.0 (0.0)                         0.0 (0.0)             0 (0)                0 (0)                      0 (0)          4096               1      0           0     0             |top|memory_map:memory_map|altsyncram:M3_rtl_1|altsyncram_chp1:auto_generated                                      altsyncram_chp1     work
         |utoss_riscv:core|                             1510.2 (591.8)        1649.2 (608.4)                    163.5 (25.0)                                       24.5 (8.4)                        0.0 (0.0)             1763 (684)           1555 (465)                 0 (0)          0                  0      0           0     0             |top|utoss_riscv:core                                                                                              utoss_riscv         work
            |decode_stage:u_decode_stage|               323.0 (3.5)           412.2 (3.7)                       89.7 (0.2)                                         0.5 (0.0)                         0.0 (0.0)             111 (8)              992 (0)                    0 (0)          0                  0      0           0     0             |top|utoss_riscv:core|decode_stage:u_decode_stage                                                                  decode_stage        work
               |Instruction_Decode:instruction_decode|  21.4 (19.9)           22.2 (20.7)                       0.8 (0.8)                                          0.0 (0.0)                         0.0 (0.0)             59 (56)              0 (0)                      0 (0)          0                  0      0           0     0             |top|utoss_riscv:core|decode_stage:u_decode_stage|Instruction_Decode:instruction_decode                            Instruction_Decode  work
                  |ALUdecoder:instanceALUDec|           1.5 (1.5)             1.5 (1.5)                         0.0 (0.0)                                          0.0 (0.0)                         0.0 (0.0)             3 (3)                0 (0)                      0 (0)          0                  0      0           0     0             |top|utoss_riscv:core|decode_stage:u_decode_stage|Instruction_Decode:instruction_decode|ALUdecoder:instanceALUDec  ALUdecoder          work
               |control_fsm:u_ctrl|                     0.8 (0.8)             1.0 (1.0)                         0.2 (0.2)                                          0.0 (0.0)                         0.0 (0.0)             4 (4)                0 (0)                      0 (0)          0                  0      0           0     0             |top|utoss_riscv:core|decode_stage:u_decode_stage|control_fsm:u_ctrl                                               control_fsm         work
               |registerFile:RegFile|                   297.3 (297.3)         385.3 (385.3)                     88.5 (88.5)                                        0.5 (0.5)                         0.0 (0.0)             40 (40)              992 (992)                  0 (0)          0                  0      0           0     0             |top|utoss_riscv:core|decode_stage:u_decode_stage|registerFile:RegFile                                             registerFile        work
            |execute_stage:u_execute_stage|             446.2 (102.7)         449.6 (107.5)                     16.7 (5.7)                                         13.3 (0.9)                        0.0 (0.0)             672 (194)            0 (0)                      0 (0)          0                  0      0           0     0             |top|utoss_riscv:core|execute_stage:u_execute_stage                                                                execute_stage       work
               |ALU:alu|                                343.5 (343.5)         342.1 (342.1)                     11.0 (11.0)                                        12.4 (12.4)                       0.0 (0.0)             478 (478)            0 (0)                      0 (0)          0                  0      0           0     0             |top|utoss_riscv:core|execute_stage:u_execute_stage|ALU:alu                                                        ALU                 work
            |fetch_stage:u_fetch_stage|                 71.1 (71.1)           92.8 (92.8)                       23.7 (23.7)                                        1.9 (1.9)                         0.0 (0.0)             125 (125)            97 (97)                    0 (0)          0                  0      0           0     0             |top|utoss_riscv:core|fetch_stage:u_fetch_stage                                                                    fetch_stage         work
            |hazard_unit:u_hazard_unit|                 5.7 (5.7)             7.0 (7.0)                         1.3 (1.3)                                          0.0 (0.0)                         0.0 (0.0)             15 (15)              1 (1)                      0 (0)          0                  0      0           0     0             |top|utoss_riscv:core|hazard_unit:u_hazard_unit                                                                    hazard_unit         work
            |memory_stage:u_memory_stage|               12.2 (12.2)           12.7 (12.7)                       0.8 (0.8)                                          0.4 (0.4)                         0.0 (0.0)             27 (27)              0 (0)                      0 (0)          0                  0      0           0     0             |top|utoss_riscv:core|memory_stage:u_memory_stage                                                                  memory_stage        work
            |write_back_stage:u_write_back_stage|       60.2 (58.3)           66.5 (64.0)                       6.3 (5.7)                                          0.0 (0.0)                         0.0 (0.0)             129 (126)            0 (0)                      0 (0)          0                  0      0           0     0             |top|utoss_riscv:core|write_back_stage:u_write_back_stage                                                          write_back_stage    work
               |MemoryLoader:memory_loader|             1.8 (1.8)             2.5 (2.5)                         0.7 (0.7)                                          0.0 (0.0)                         0.0 (0.0)             3 (3)                0 (0)                      0 (0)          0                  0      0           0     0             |top|utoss_riscv:core|write_back_stage:u_write_back_stage|MemoryLoader:memory_loader                               MemoryLoader        work
      
    3. Timing
      No baseline available from main branch

      View PR synthesis results
      ------------------------------------------------------------
      Timing Analyzer Summary
      ------------------------------------------------------------
      
      Type  : Slow 1100mV 85C Model Setup 'CLOCK_50'
      Slack : 2.474
      TNS   : 0.000
      
      Type  : Slow 1100mV 85C Model Hold 'CLOCK_50'
      Slack : 0.338
      TNS   : 0.000
      
      Type  : Slow 1100mV 85C Model Minimum Pulse Width 'CLOCK_50'
      Slack : 8.868
      TNS   : 0.000
      
      Type  : Slow 1100mV 0C Model Setup 'CLOCK_50'
      Slack : 3.122
      TNS   : 0.000
      
      Type  : Slow 1100mV 0C Model Hold 'CLOCK_50'
      Slack : 0.326
      TNS   : 0.000
      
      Type  : Slow 1100mV 0C Model Minimum Pulse Width 'CLOCK_50'
      Slack : 8.826
      TNS   : 0.000
      
      Type  : Fast 1100mV 85C Model Setup 'CLOCK_50'
      Slack : 9.095
      TNS   : 0.000
      
      Type  : Fast 1100mV 85C Model Hold 'CLOCK_50'
      Slack : 0.190
      TNS   : 0.000
      
      Type  : Fast 1100mV 85C Model Minimum Pulse Width 'CLOCK_50'
      Slack : 8.783
      TNS   : 0.000
      
      Type  : Fast 1100mV 0C Model Setup 'CLOCK_50'
      Slack : 10.320
      TNS   : 0.000
      
      Type  : Fast 1100mV 0C Model Hold 'CLOCK_50'
      Slack : 0.172
      TNS   : 0.000
      
      Type  : Fast 1100mV 0C Model Minimum Pulse Width 'CLOCK_50'
      Slack : 8.777
      TNS   : 0.000
      
      ------------------------------------------------------------
      
  • RV32IB

    1. Fitter Summary
      No baseline available from main branch

      View PR synthesis results
      Fitter Status : Successful - Wed Aug  5 03:12:20 2026
      Quartus Prime Version : 25.1std.0 Build 1129 10/21/2025 SC Lite Edition
      Revision Name : utoss-risc-v
      Top-level Entity Name : top
      Family : Cyclone V
      Device : 5CSEMA5F31C6
      Timing Models : Final
      Logic utilization (in ALMs) : 1,522 / 32,070 ( 5 % )
      Total registers : 1566
      Total pins : 15 / 457 ( 3 % )
      Total virtual pins : 0
      Total block memory bits : 32,768 / 4,065,280 ( < 1 % )
      Total RAM Blocks : 8 / 397 ( 2 % )
      Total DSP Blocks : 0 / 87 ( 0 % )
      Total HSSI RX PCSs : 0
      Total HSSI PMA RX Deserializers : 0
      Total HSSI TX PCSs : 0
      Total HSSI PMA TX Serializers : 0
      Total PLLs : 0 / 6 ( 0 % )
      Total DLLs : 0 / 4 ( 0 % )
      
    2. Fitter by entity
      No baseline available from main branch

      View PR synthesis results
      Compilation Hierarchy Node                        ALMs needed [=A-B+C]  [A] ALMs used in final placement  [B] Estimate of ALMs recoverable by dense packing  [C] Estimate of ALMs unavailable  ALMs used for memory  Combinational ALUTs  Dedicated Logic Registers  I/O Registers  Block Memory Bits  M10Ks  DSP Blocks  Pins  Virtual Pins  Full Hierarchy Name                                                                                                Entity Name         Library Name
      |top                                              1521.5 (0.5)          1661.0 (0.5)                      164.0 (0.0)                                        24.5 (0.0)                        0.0 (0.0)             1777 (1)             1566 (0)                   0 (0)          32768              8      0           15    0             |top                                                                                                               top                 work
         |memory_map:memory_map|                        10.8 (10.8)           11.3 (11.3)                       0.5 (0.5)                                          0.0 (0.0)                         0.0 (0.0)             13 (13)              11 (11)                    0 (0)          32768              8      0           0     0             |top|memory_map:memory_map                                                                                         memory_map          work
            |altsyncram:M0_rtl_0|                       0.0 (0.0)             0.0 (0.0)                         0.0 (0.0)                                          0.0 (0.0)                         0.0 (0.0)             0 (0)                0 (0)                      0 (0)          4096               1      0           0     0             |top|memory_map:memory_map|altsyncram:M0_rtl_0                                                                     altsyncram          work
               |altsyncram_9hp1:auto_generated|         0.0 (0.0)             0.0 (0.0)                         0.0 (0.0)                                          0.0 (0.0)                         0.0 (0.0)             0 (0)                0 (0)                      0 (0)          4096               1      0           0     0             |top|memory_map:memory_map|altsyncram:M0_rtl_0|altsyncram_9hp1:auto_generated                                      altsyncram_9hp1     work
            |altsyncram:M0_rtl_1|                       0.0 (0.0)             0.0 (0.0)                         0.0 (0.0)                                          0.0 (0.0)                         0.0 (0.0)             0 (0)                0 (0)                      0 (0)          4096               1      0           0     0             |top|memory_map:memory_map|altsyncram:M0_rtl_1                                                                     altsyncram          work
               |altsyncram_9hp1:auto_generated|         0.0 (0.0)             0.0 (0.0)                         0.0 (0.0)                                          0.0 (0.0)                         0.0 (0.0)             0 (0)                0 (0)                      0 (0)          4096               1      0           0     0             |top|memory_map:memory_map|altsyncram:M0_rtl_1|altsyncram_9hp1:auto_generated                                      altsyncram_9hp1     work
            |altsyncram:M1_rtl_0|                       0.0 (0.0)             0.0 (0.0)                         0.0 (0.0)                                          0.0 (0.0)                         0.0 (0.0)             0 (0)                0 (0)                      0 (0)          4096               1      0           0     0             |top|memory_map:memory_map|altsyncram:M1_rtl_0                                                                     altsyncram          work
               |altsyncram_ahp1:auto_generated|         0.0 (0.0)             0.0 (0.0)                         0.0 (0.0)                                          0.0 (0.0)                         0.0 (0.0)             0 (0)                0 (0)                      0 (0)          4096               1      0           0     0             |top|memory_map:memory_map|altsyncram:M1_rtl_0|altsyncram_ahp1:auto_generated                                      altsyncram_ahp1     work
            |altsyncram:M1_rtl_1|                       0.0 (0.0)             0.0 (0.0)                         0.0 (0.0)                                          0.0 (0.0)                         0.0 (0.0)             0 (0)                0 (0)                      0 (0)          4096               1      0           0     0             |top|memory_map:memory_map|altsyncram:M1_rtl_1                                                                     altsyncram          work
               |altsyncram_ahp1:auto_generated|         0.0 (0.0)             0.0 (0.0)                         0.0 (0.0)                                          0.0 (0.0)                         0.0 (0.0)             0 (0)                0 (0)                      0 (0)          4096               1      0           0     0             |top|memory_map:memory_map|altsyncram:M1_rtl_1|altsyncram_ahp1:auto_generated                                      altsyncram_ahp1     work
            |altsyncram:M2_rtl_0|                       0.0 (0.0)             0.0 (0.0)                         0.0 (0.0)                                          0.0 (0.0)                         0.0 (0.0)             0 (0)                0 (0)                      0 (0)          4096               1      0           0     0             |top|memory_map:memory_map|altsyncram:M2_rtl_0                                                                     altsyncram          work
               |altsyncram_bhp1:auto_generated|         0.0 (0.0)             0.0 (0.0)                         0.0 (0.0)                                          0.0 (0.0)                         0.0 (0.0)             0 (0)                0 (0)                      0 (0)          4096               1      0           0     0             |top|memory_map:memory_map|altsyncram:M2_rtl_0|altsyncram_bhp1:auto_generated                                      altsyncram_bhp1     work
            |altsyncram:M2_rtl_1|                       0.0 (0.0)             0.0 (0.0)                         0.0 (0.0)                                          0.0 (0.0)                         0.0 (0.0)             0 (0)                0 (0)                      0 (0)          4096               1      0           0     0             |top|memory_map:memory_map|altsyncram:M2_rtl_1                                                                     altsyncram          work
               |altsyncram_bhp1:auto_generated|         0.0 (0.0)             0.0 (0.0)                         0.0 (0.0)                                          0.0 (0.0)                         0.0 (0.0)             0 (0)                0 (0)                      0 (0)          4096               1      0           0     0             |top|memory_map:memory_map|altsyncram:M2_rtl_1|altsyncram_bhp1:auto_generated                                      altsyncram_bhp1     work
            |altsyncram:M3_rtl_0|                       0.0 (0.0)             0.0 (0.0)                         0.0 (0.0)                                          0.0 (0.0)                         0.0 (0.0)             0 (0)                0 (0)                      0 (0)          4096               1      0           0     0             |top|memory_map:memory_map|altsyncram:M3_rtl_0                                                                     altsyncram          work
               |altsyncram_chp1:auto_generated|         0.0 (0.0)             0.0 (0.0)                         0.0 (0.0)                                          0.0 (0.0)                         0.0 (0.0)             0 (0)                0 (0)                      0 (0)          4096               1      0           0     0             |top|memory_map:memory_map|altsyncram:M3_rtl_0|altsyncram_chp1:auto_generated                                      altsyncram_chp1     work
            |altsyncram:M3_rtl_1|                       0.0 (0.0)             0.0 (0.0)                         0.0 (0.0)                                          0.0 (0.0)                         0.0 (0.0)             0 (0)                0 (0)                      0 (0)          4096               1      0           0     0             |top|memory_map:memory_map|altsyncram:M3_rtl_1                                                                     altsyncram          work
               |altsyncram_chp1:auto_generated|         0.0 (0.0)             0.0 (0.0)                         0.0 (0.0)                                          0.0 (0.0)                         0.0 (0.0)             0 (0)                0 (0)                      0 (0)          4096               1      0           0     0             |top|memory_map:memory_map|altsyncram:M3_rtl_1|altsyncram_chp1:auto_generated                                      altsyncram_chp1     work
         |utoss_riscv:core|                             1510.2 (591.8)        1649.2 (608.4)                    163.5 (25.0)                                       24.5 (8.4)                        0.0 (0.0)             1763 (684)           1555 (465)                 0 (0)          0                  0      0           0     0             |top|utoss_riscv:core                                                                                              utoss_riscv         work
            |decode_stage:u_decode_stage|               323.0 (3.5)           412.2 (3.7)                       89.7 (0.2)                                         0.5 (0.0)                         0.0 (0.0)             111 (8)              992 (0)                    0 (0)          0                  0      0           0     0             |top|utoss_riscv:core|decode_stage:u_decode_stage                                                                  decode_stage        work
               |Instruction_Decode:instruction_decode|  21.4 (19.9)           22.2 (20.7)                       0.8 (0.8)                                          0.0 (0.0)                         0.0 (0.0)             59 (56)              0 (0)                      0 (0)          0                  0      0           0     0             |top|utoss_riscv:core|decode_stage:u_decode_stage|Instruction_Decode:instruction_decode                            Instruction_Decode  work
                  |ALUdecoder:instanceALUDec|           1.5 (1.5)             1.5 (1.5)                         0.0 (0.0)                                          0.0 (0.0)                         0.0 (0.0)             3 (3)                0 (0)                      0 (0)          0                  0      0           0     0             |top|utoss_riscv:core|decode_stage:u_decode_stage|Instruction_Decode:instruction_decode|ALUdecoder:instanceALUDec  ALUdecoder          work
               |control_fsm:u_ctrl|                     0.8 (0.8)             1.0 (1.0)                         0.2 (0.2)                                          0.0 (0.0)                         0.0 (0.0)             4 (4)                0 (0)                      0 (0)          0                  0      0           0     0             |top|utoss_riscv:core|decode_stage:u_decode_stage|control_fsm:u_ctrl                                               control_fsm         work
               |registerFile:RegFile|                   297.3 (297.3)         385.3 (385.3)                     88.5 (88.5)                                        0.5 (0.5)                         0.0 (0.0)             40 (40)              992 (992)                  0 (0)          0                  0      0           0     0             |top|utoss_riscv:core|decode_stage:u_decode_stage|registerFile:RegFile                                             registerFile        work
            |execute_stage:u_execute_stage|             446.2 (102.7)         449.6 (107.5)                     16.7 (5.7)                                         13.3 (0.9)                        0.0 (0.0)             672 (194)            0 (0)                      0 (0)          0                  0      0           0     0             |top|utoss_riscv:core|execute_stage:u_execute_stage                                                                execute_stage       work
               |ALU:alu|                                343.5 (343.5)         342.1 (342.1)                     11.0 (11.0)                                        12.4 (12.4)                       0.0 (0.0)             478 (478)            0 (0)                      0 (0)          0                  0      0           0     0             |top|utoss_riscv:core|execute_stage:u_execute_stage|ALU:alu                                                        ALU                 work
            |fetch_stage:u_fetch_stage|                 71.1 (71.1)           92.8 (92.8)                       23.7 (23.7)                                        1.9 (1.9)                         0.0 (0.0)             125 (125)            97 (97)                    0 (0)          0                  0      0           0     0             |top|utoss_riscv:core|fetch_stage:u_fetch_stage                                                                    fetch_stage         work
            |hazard_unit:u_hazard_unit|                 5.7 (5.7)             7.0 (7.0)                         1.3 (1.3)                                          0.0 (0.0)                         0.0 (0.0)             15 (15)              1 (1)                      0 (0)          0                  0      0           0     0             |top|utoss_riscv:core|hazard_unit:u_hazard_unit                                                                    hazard_unit         work
            |memory_stage:u_memory_stage|               12.2 (12.2)           12.7 (12.7)                       0.8 (0.8)                                          0.4 (0.4)                         0.0 (0.0)             27 (27)              0 (0)                      0 (0)          0                  0      0           0     0             |top|utoss_riscv:core|memory_stage:u_memory_stage                                                                  memory_stage        work
            |write_back_stage:u_write_back_stage|       60.2 (58.3)           66.5 (64.0)                       6.3 (5.7)                                          0.0 (0.0)                         0.0 (0.0)             129 (126)            0 (0)                      0 (0)          0                  0      0           0     0             |top|utoss_riscv:core|write_back_stage:u_write_back_stage                                                          write_back_stage    work
               |MemoryLoader:memory_loader|             1.8 (1.8)             2.5 (2.5)                         0.7 (0.7)                                          0.0 (0.0)                         0.0 (0.0)             3 (3)                0 (0)                      0 (0)          0                  0      0           0     0             |top|utoss_riscv:core|write_back_stage:u_write_back_stage|MemoryLoader:memory_loader                               MemoryLoader        work
      
    3. Timing
      No baseline available from main branch

      View PR synthesis results
      ------------------------------------------------------------
      Timing Analyzer Summary
      ------------------------------------------------------------
      
      Type  : Slow 1100mV 85C Model Setup 'CLOCK_50'
      Slack : 2.474
      TNS   : 0.000
      
      Type  : Slow 1100mV 85C Model Hold 'CLOCK_50'
      Slack : 0.338
      TNS   : 0.000
      
      Type  : Slow 1100mV 85C Model Minimum Pulse Width 'CLOCK_50'
      Slack : 8.868
      TNS   : 0.000
      
      Type  : Slow 1100mV 0C Model Setup 'CLOCK_50'
      Slack : 3.122
      TNS   : 0.000
      
      Type  : Slow 1100mV 0C Model Hold 'CLOCK_50'
      Slack : 0.326
      TNS   : 0.000
      
      Type  : Slow 1100mV 0C Model Minimum Pulse Width 'CLOCK_50'
      Slack : 8.826
      TNS   : 0.000
      
      Type  : Fast 1100mV 85C Model Setup 'CLOCK_50'
      Slack : 9.095
      TNS   : 0.000
      
      Type  : Fast 1100mV 85C Model Hold 'CLOCK_50'
      Slack : 0.190
      TNS   : 0.000
      
      Type  : Fast 1100mV 85C Model Minimum Pulse Width 'CLOCK_50'
      Slack : 8.783
      TNS   : 0.000
      
      Type  : Fast 1100mV 0C Model Setup 'CLOCK_50'
      Slack : 10.320
      TNS   : 0.000
      
      Type  : Fast 1100mV 0C Model Hold 'CLOCK_50'
      Slack : 0.172
      TNS   : 0.000
      
      Type  : Fast 1100mV 0C Model Minimum Pulse Width 'CLOCK_50'
      Slack : 8.777
      TNS   : 0.000
      
      ------------------------------------------------------------
      

Comparing synthesis results from main branch vs. this PR

@tandr3w
tandr3w requested a review from TheDeepestSpace July 23, 2026 04:55
Comment thread utoss_riscv_dv/README.md
make riscv_dv
```

TODO: Delete this README and add to wiki? No newline at end of file

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yes!

@TheDeepestSpace
TheDeepestSpace marked this pull request as ready for review August 5, 2026 02:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants