[Oberon] Fast version of Oberon RISC5 for Pepino

Magnus Karlsson magnus at saanlima.com
Fri Feb 26 18:59:42 CET 2016


One outcome of the discussion about the Oberon RISC5 verilog code is 
that I did a deeper study about the clock limits for the project and 
found that the RISC5 CPU in itself can be clocked at up to about 66 MHz 
but the external SRAM path is too slow for that speed (read is the 
problem).  The asynchronous nature of the SRAM interface makes it hard 
to constrain the ISE compiler to work hard on this path.

I did trace the SRAM read data path and found that it takes about 10 ns 
from the SRAM data input pins to the Z register bit (this is the longest 
path).  The address output path is about 5 nS and with a 10 nS SRAM 
access time the fastest system clock cycle should be around 25 nS.

To test this out I created a version of the code that runs the CPU at 
37.5 MHz (26.666 nS) instead of 25 MHz, i.e. the CPU is running 1/2 the 
video clock rate instead of 1/3,  and it seems to run fine of both the 
LX9 and the LX25 version of Pepino.  All timing constants (UART Rx, UART 
Tx, SPI and millisecond timer) have been changed to reflect the 50% 
faster clock rate.

If anyone want to try it, the project (including bit files) is available 
here:
https://github.com/Saanlima/Pepino/tree/master/Projects/RISC5Verilog_Pepino_fast

Cheers,
Magnus


More information about the Oberon mailing list