File tree Expand file tree Collapse file tree 10 files changed +11
-10
lines changed
Expand file tree Collapse file tree 10 files changed +11
-10
lines changed Original file line number Diff line number Diff line change @@ -29,6 +29,7 @@ mimpid = 0x01040312 -> Version 01.04.03.12 -> v1.4.3.12
2929
3030| Date | Version | Comment | Ticket |
3131| :----:| :-------:| :--------| :------:|
32+ | 09.07.2025 | 1.11.7.9 | :bug : fix minimal cache block size (has to be at least 8 bytes / 2 words) | [ #] ( https://github.com/stnolting/neorv32/pull/1310 ) |
3233| 08.07.2025 | 1.11.7.8 | :warning : remove top ` HART_BASE ` generic | [ #1308 ] ( https://github.com/stnolting/neorv32/pull/1308 ) |
3334| 07.07.2025 | 1.11.7.7 | minor rtl edits and cleanups | [ #1307 ] ( https://github.com/stnolting/neorv32/pull/1307 ) |
3435| 06.07.2025 | 1.11.7.6 | :sparkles : add configurable number of HW triggers (break-/watchpoints) | [ #1304 ] ( https://github.com/stnolting/neorv32/pull/1304 ) |
Original file line number Diff line number Diff line change @@ -261,7 +261,7 @@ The generic type "`suv(x:y)`" is an abbreviation for "`std_ulogic_vector(x downt
261261| `ICACHE_NUM_BLOCKS` | natural | 4 | Number of blocks ("lines") Has to be a power of two.
262262| `DCACHE_EN` | boolean | false | Implement the data cache (D$)
263263| `DCACHE_NUM_BLOCKS` | natural | 4 | Number of blocks ("lines"). Has to be a power of two.
264- | `CACHE_BLOCK_SIZE` | natural | 64 | Size in bytes of each block (I$ and D$). Has to be a power of two.
264+ | `CACHE_BLOCK_SIZE` | natural | 64 | Size in bytes of each block (I$ and D$). Has to be a power of two, min 8 .
2652654+^| **<<_processor_external_bus_interface_xbus>> (Wishbone / AXI4)**
266266| `XBUS_EN` | boolean | false | Implement the external bus interface.
267267| `XBUS_TIMEOUT` | natural | 255 | Clock cycles after which a pending external bus access will auto-terminate and raise a bus fault exception.
Original file line number Diff line number Diff line change 1111| Top entity ports: | none |
1212| Configuration generics: | `DCACHE_EN` | implement processor-internal, CPU-exclusive data cache (D$) when `true`
1313| | `DCACHE_NUM_BLOCKS` | number of cache blocks ("cache lines"); has to be a power of two
14- | | `CACHE_BLOCK_SIZE` | size of a cache block in bytes; has to be a power of two (global configuration for I$ and D$)
14+ | | `CACHE_BLOCK_SIZE` | size of a cache block in bytes; has to be a power of two (global configuration for I$ and D$), min 8
1515| CPU interrupts: | none |
1616|=======================
1717
Original file line number Diff line number Diff line change 1111| Top entity ports: | none |
1212| Configuration generics: | `ICACHE_EN` | implement processor-internal, CPU-exclusive instruction cache (I$) when `true`
1313| | `ICACHE_NUM_BLOCKS` | number of cache blocks ("cache lines"); has to be a power of two
14- | | `CACHE_BLOCK_SIZE` | size of a cache block in bytes; has to be a power of two (global configuration for I$ and D$)
14+ | | `CACHE_BLOCK_SIZE` | size of a cache block in bytes; has to be a power of two (global configuration for I$ and D$), min 8
1515| CPU interrupts: | none |
1616|=======================
1717
Original file line number Diff line number Diff line change @@ -26,7 +26,7 @@ use neorv32.neorv32_package.all;
2626entity neorv32_cache is
2727 generic (
2828 NUM_BLOCKS : natural range 2 to 1024 ; -- number of cache blocks (min 2), has to be a power of 2
29- BLOCK_SIZE : natural range 4 to 32768 ; -- cache block size in bytes (min 4 ), has to be a power of 2
29+ BLOCK_SIZE : natural range 8 to 32768 ; -- cache block size in bytes (min 8 ), has to be a power of 2
3030 UC_BEGIN : std_ulogic_vector (3 downto 0 ); -- begin of uncached address space (page number / 4 MSBs of address)
3131 READ_ONLY : boolean -- read-only accesses for host
3232 );
Original file line number Diff line number Diff line change @@ -29,7 +29,7 @@ package neorv32_package is
2929
3030 -- Architecture Constants -----------------------------------------------------------------
3131 -- -------------------------------------------------------------------------------------------
32- constant hw_version_c : std_ulogic_vector (31 downto 0 ) := x"01110708 " ; -- hardware version
32+ constant hw_version_c : std_ulogic_vector (31 downto 0 ) := x"01110709 " ; -- hardware version
3333 constant archid_c : natural := 19 ; -- official RISC-V architecture ID
3434 constant XLEN : natural := 32 ; -- native data path width
3535
@@ -845,7 +845,7 @@ package neorv32_package is
845845 ICACHE_NUM_BLOCKS : natural range 1 to 4096 := 4 ;
846846 DCACHE_EN : boolean := false ;
847847 DCACHE_NUM_BLOCKS : natural range 1 to 4096 := 4 ;
848- CACHE_BLOCK_SIZE : natural range 4 to 1024 := 64 ;
848+ CACHE_BLOCK_SIZE : natural range 8 to 1024 := 64 ;
849849 -- External bus interface (XBUS) --
850850 XBUS_EN : boolean := false ;
851851 XBUS_TIMEOUT : natural := 255 ;
Original file line number Diff line number Diff line change @@ -91,7 +91,7 @@ entity neorv32_top is
9191 ICACHE_NUM_BLOCKS : natural range 1 to 4096 := 4 ; -- i-cache: number of blocks (min 1), has to be a power of 2
9292 DCACHE_EN : boolean := false ; -- implement data cache (d-cache)
9393 DCACHE_NUM_BLOCKS : natural range 1 to 4096 := 4 ; -- d-cache: number of blocks (min 1), has to be a power of 2
94- CACHE_BLOCK_SIZE : natural range 4 to 1024 := 64 ; -- i-cache/d-cache: block size in bytes (min 4 ), has to be a power of 2
94+ CACHE_BLOCK_SIZE : natural range 8 to 1024 := 64 ; -- i-cache/d-cache: block size in bytes (min 8 ), has to be a power of 2
9595
9696 -- External bus interface (XBUS) --
9797 XBUS_EN : boolean := false ; -- implement external memory bus interface
Original file line number Diff line number Diff line change @@ -85,7 +85,7 @@ entity neorv32_libero_ip is
8585 ICACHE_NUM_BLOCKS : natural range 1 to 4096 := 4 ;
8686 DCACHE_EN_INT : integer range 0 to 1 := 0 ;
8787 DCACHE_NUM_BLOCKS : natural range 1 to 4096 := 4 ;
88- CACHE_BLOCK_SIZE : natural range 4 to 1024 := 64 ;
88+ CACHE_BLOCK_SIZE : natural range 8 to 1024 := 64 ;
8989 -- External Bus Interface --
9090 XBUS_EN_INT : integer range 0 to 1 := 1 ;
9191 XBUS_REGSTAGE_EN_INT : integer range 0 to 1 := 1 ;
Original file line number Diff line number Diff line change @@ -86,7 +86,7 @@ entity neorv32_vivado_ip is
8686 ICACHE_NUM_BLOCKS : natural range 1 to 4096 := 4 ;
8787 DCACHE_EN : boolean := false ;
8888 DCACHE_NUM_BLOCKS : natural range 1 to 4096 := 4 ;
89- CACHE_BLOCK_SIZE : natural range 4 to 1024 := 64 ;
89+ CACHE_BLOCK_SIZE : natural range 8 to 1024 := 64 ;
9090 -- External Bus Interface --
9191 XBUS_EN : boolean := false ;
9292 XBUS_REGSTAGE_EN : boolean := false ;
Original file line number Diff line number Diff line change @@ -57,7 +57,7 @@ entity neorv32_tb is
5757 ICACHE_NUM_BLOCKS : natural range 1 to 4096 := 64 ; -- i-cache: number of blocks (min 1), has to be a power of 2
5858 DCACHE_EN : boolean := true ; -- implement data cache
5959 DCACHE_NUM_BLOCKS : natural range 1 to 4096 := 32 ; -- d-cache: number of blocks (min 1), has to be a power of 2
60- CACHE_BLOCK_SIZE : natural range 4 to 1024 := 32 ; -- i-cache/d-cache: block size in bytes (min 4 ), has to be a power of 2
60+ CACHE_BLOCK_SIZE : natural range 8 to 1024 := 32 ; -- i-cache/d-cache: block size in bytes (min 8 ), has to be a power of 2
6161 -- external memory A --
6262 EXT_MEM_A_EN : boolean := false ; -- enable memory
6363 EXT_MEM_A_BASE : std_ulogic_vector (31 downto 0 ) := x"00000000" ; -- base address, has to be word-aligned
You can’t perform that action at this time.
0 commit comments