Skip to content

Implementation Statistics

Julius Baxter edited this page May 27, 2013 · 4 revisions

This page contains statistics of the the various implementations of the core.

It is split up into a section for each pipeline.

Feel free to add your own implementation results, but note the following, where possible:

  • give the implementation a name, ie. "smallest possible II" or "speed is all I need!" etc.
  • the commit for the core last synced to
  • the commit of the SoC last synced to
  • the version of the EDA tools
  • the frequency the core was synthesised at
  • the parameters on the core instantiation
  • the FPGA "logic" (LUT) count and flop count (this differs between vendors, but give us an idea), either numbers or copy the relevant part of the report
Maybe this is done better as a table?

Table of Contents

Cappuccino

Espresso

Pronto Espresso

Altera DE0 Nano

"Small, usable"

At commit 3e1de595ea8adcdd75edfb7cc748eadddafee168 of mor1kx and 4a14b6b581372926230ffa3733c301edb0a0b94c of mor1kx-dev-env.

Synthesised at 50MHz on Altera Cyclone IV with Quartus 12.1sp1

The the following parameters on the mor1kx-dev-env:

   mor1kx
     #(
       .OPTION_CPU0			(MOR1KX_CPU0_OPTION_CPU),       
       .FEATURE_INSTRUCTIONCACHE	("NONE"),
       .FEATURE_DEBUGUNIT		("ENABLED"),
       .FEATURE_CMOV			("ENABLED"),
       .FEATURE_FFL1			("REGISTERED"),
       .OPTION_SHIFTER			("SERIAL"),
       .FEATURE_MULTIPLIER		("THREE_STAGE"),
       .FEATURE_DIVIDER			("SERIAL"),
       .OPTION_PIC_TRIGGER		("LATCHED_LEVEL"),
       .OPTION_RESET_PC			(32'hf0000100)
       )

Results (from orpsoc.fit.rpt)

 ; Compilation Hierarchy Node                                                  ; Logic Cells ; Dedicated Logic Registers
 ;    |mor1kx:mor1kx0|                                                         ; 2858 (0)    ; 761 (0)         
 ;       |mor1kx_bus_if_wb32:bus_gen.dbus_bridge|                              ; 1 (1)       ; 1 (1)           
 ;       |mor1kx_bus_if_wb32:bus_gen.ibus_bridge|                              ; 122 (122)   ; 35 (35)         
 ;       |mor1kx_cpu:mor1kx_cpu|                                               ; 2745 (0)    ; 725 (0)         
 ;          |mor1kx_cpu_prontoespresso:prontoespresso.mor1kx_cpu|              ; 2745 (0)    ; 725 (0)         
 ;             |mor1kx_ctrl_prontoespresso:mor1kx_ctrl_prontoespresso|         ; 1023 (830)  ; 358 (232)       
 ;                |mor1kx_pic:pic.mor1kx_pic|                                  ; 84 (84)     ; 62 (62)         
 ;                |mor1kx_ticktimer:tt.mor1kx_ticktimer|                       ; 110 (110)   ; 64 (64)         
 ;             |mor1kx_decode:mor1kx_decode|                                   ; 113 (113)   ; 0 (0)           
 ;             |mor1kx_execute_alu:mor1kx_execute_alu|                         ; 853 (853)   ; 148 (148)       
 ;             |mor1kx_fetch_prontoespresso:fetch.mor1kx_fetch_prontoespresso| ; 332 (332)   ; 104 (104)       
 ;             |mor1kx_lsu_espresso:mor1kx_lsu_espresso|                       ; 143 (143)   ; 68 (68)         
 ;             |mor1kx_rf_espresso:mor1kx_rf_espresso|                         ; 92 (92)     ; 47 (47)         
 ;                |mor1kx_rf_ram:rfa|                                          ; 0 (0)       ; 0 (0)           
 ;                   |altsyncram:ram_rtl_0|                                    ; 0 (0)       ; 0 (0)           
 ;                      |altsyncram_4pd1:auto_generated|                       ; 0 (0)       ; 0 (0)           
 ;                |mor1kx_rf_ram:rfb|                                          ; 0 (0)       ; 0 (0)           
 ;                   |altsyncram:ram_rtl_0|                                    ; 0 (0)       ; 0 (0)           
 ;                      |altsyncram_4pd1:auto_generated|                       ; 0 (0)       ; 0 (0)           
 ;             |mor1kx_wb_mux_espresso:mor1kx_wb_mux_espresso|                 ; 196 (196)   ; 0 (0)           

"Small, with small cache"

At commit 3e1de595ea8adcdd75edfb7cc748eadddafee168 of mor1kx and 4a14b6b581372926230ffa3733c301edb0a0b94c of mor1kx-dev-env.

Synthesised at 50MHz on Altera Cyclone IV with Quartus 12.1sp1

The the following parameters on the mor1kx-dev-env:

   mor1kx
     #(
       .OPTION_CPU0			(MOR1KX_CPU0_OPTION_CPU),       
       .FEATURE_INSTRUCTIONCACHE	("ENABLED"),
       .OPTION_ICACHE_BLOCK_WIDTH	(4), // 16 insn flop-cache
       .FEATURE_DEBUGUNIT		("ENABLED"),
       .FEATURE_CMOV			("ENABLED"),
       .FEATURE_FFL1			("REGISTERED"),
       .OPTION_SHIFTER			("SERIAL"),
       .FEATURE_MULTIPLIER		("THREE_STAGE"),
       .FEATURE_DIVIDER			("SERIAL"),
       .OPTION_PIC_TRIGGER		("LATCHED_LEVEL"),
       .OPTION_RESET_PC			(32'hf0000100)
       )

Results (from orpsoc.fit.rpt)

 ; Compilation Hierarchy Node                                                  ; Logic Cells ; Dedicated Logic Registers
 ;    |mor1kx:mor1kx0|                                                         ; 4076 (0)    ; 1711 (0)             
 ;       |mor1kx_bus_if_wb32:bus_gen.dbus_bridge|                              ; 1 (1)       ; 1 (1)                
 ;       |mor1kx_bus_if_wb32:bus_gen.ibus_bridge|                              ; 123 (123)   ; 35 (35)              
 ;       |mor1kx_cpu:mor1kx_cpu|                                               ; 3978 (0)    ; 1675 (0)             
 ;             |mor1kx_ctrl_prontoespresso:mor1kx_ctrl_prontoespresso|         ; 1062 (858)  ; 358 (232)            
 ;                |mor1kx_pic:pic.mor1kx_pic|                                  ; 88 (88)     ; 62 (62)              
 ;                |mor1kx_ticktimer:tt.mor1kx_ticktimer|                       ; 119 (119)   ; 64 (64)              
 ;             |mor1kx_decode:mor1kx_decode|                                   ; 111 (111)   ; 0 (0)                
 ;             |mor1kx_execute_alu:mor1kx_execute_alu|                         ; 863 (863)   ; 148 (148)            
 ;             |mor1kx_fetch_prontoespresso:fetch.mor1kx_fetch_prontoespresso| ; 1528 (1528) ; 1054 (1054)          
 ;             |mor1kx_lsu_espresso:mor1kx_lsu_espresso|                       ; 145 (145)   ; 68 (68)              
 ;             |mor1kx_rf_espresso:mor1kx_rf_espresso|                         ; 92 (92)     ; 47 (47)              
 ;                |mor1kx_rf_ram:rfa|                                          ; 0 (0)       ; 0 (0)                
 ;                   |altsyncram:ram_rtl_0|                                    ; 0 (0)       ; 0 (0)                
 ;                      |altsyncram_4pd1:auto_generated|                       ; 0 (0)       ; 0 (0)                
 ;                |mor1kx_rf_ram:rfb|                                          ; 0 (0)       ; 0 (0)                
 ;                   |altsyncram:ram_rtl_0|                                    ; 0 (0)       ; 0 (0)                
 ;                      |altsyncram_4pd1:auto_generated|                       ; 0 (0)       ; 0 (0)                
 ;             |mor1kx_wb_mux_espresso:mor1kx_wb_mux_espresso|                 ; 194 (194)   ; 0 (0)