Cluso's P1V: HUB RAM 64KB & Beyond, etc
Cluso99
Posts: 18,069
in Propeller 1
Today I installed Quartus V17.0 and then compiled my P1V base code.
Still some errors which have always been there and I don't know how to solve. I had previously fixed a number of errors/warnings.
I compiled P1V for the BeMicroCV (A2). I have some errors I need to fix as I have files for the DeNano, BeMicroCV and DE2-11x? There files vary the number of cogs, hub ram, etc. Once fixed, I intend to make a config file fo the BeMicro CV A9.
Also on my list is trying to speed up the hub access from 2 clocks to 1 clock. This will permit 1:8 cog to hub access or 1:16 with 16 cogs.
Still some errors which have always been there and I don't know how to solve. I had previously fixed a number of errors/warnings.
I compiled P1V for the BeMicroCV (A2). I have some errors I need to fix as I have files for the DeNano, BeMicroCV and DE2-11x? There files vary the number of cogs, hub ram, etc. Once fixed, I intend to make a config file fo the BeMicro CV A9.
Also on my list is trying to speed up the hub access from 2 clocks to 1 clock. This will permit 1:8 cog to hub access or 1:16 with 16 cogs.
Comments
Seems I already have 1clock hub working
64 I/O has been done on the P1V and 64KB HUB RAM (although we wanted more if possible and it's easy to do). There is a small amount of hub ram which should be write protected, rom if you like. IIRC it's about the top 2-4KB - the booter and Spin Interpreter (my faster Spin Interpreter fits and works here too).
I also have 4KB cogs working too!
As for FPGAs that will fit this style P1V, most of the cheaper ones don't have enough memory for the hub and cog ram. IIRC the DeNano uses a Cyclone IV and only supports 48KB HUB RAM.
BTW speeding up the hub ram to 1:8 was a one line change
I am fairly certain I verified it was working when I last played with P1V (just over 2 years ago).
During the week I'll take a look at the FPGAs that should suit. How much hub ram would you like Peter?
The 'more RAM' bumps you into quite large FPGAs, tho there is one outlier which is the 128k Bytes in Lattice Ultra plus, with 39io in QFN48, tho that does not fit 8 COGs...
Another approach would be to use the large IO many of the Bigger FPGAs have, to support something like XIP via
Dual QuadSPI SRAM or HyperRAM
{ HyperRAM (64Mb) is $1.63/1k, slightly cheaper than much smaller (1Mb) QuadSPI SRAM ($1.84/1k)
&
Dual QuadSPI Flash (DTR) , or HyperFLASH
The Cyclone10 thread has tables of FPGA / BRAM and prices.
Perhaps even a single QuadSPI Flash (DTR) can give enough performance for Tachyon, with a max'd clock ?
That leaves HUB memory for pure Data use.
ISSI Serial SRAM and Low Pin Count SRAM
Shows up to 4Mbit SPI SRAM, but still only 20MHz.
Another possible 'middle ground' is latched SRAM, (256k x 16, 6mm x 8mm BGA48) where ADR & DATA can share pins, - uses more pins than Serial Memory, but a lot less than Separate ADR.DB memory, so this could pair with moderate sized FPGA, and give random access faster and easier than Serial SRAM or HyperRAM.
-10 parts look to support a 18ns tWC,tRC
It's a shame they seem to have overlooked the obvious Increment-on-read option, for burst access, in the latched SRAM.
There is 15KB plus 128KB of SRAM available.
For starters.....
64KB Hub Ram
4 Cogs 2KB Ram
32 I/O
Plus 4 I/O SPI for external SPI Flash to boot load 64KB Hub Ram
No video
Right now those Eval Boards are in stock at Digikey & Mouser ~ $60, & there are prices on the QFN48, but no stock showing yet.
The Evalboard uses FT2322H (common across Lattice EVNs), but I think the FT4222H is another (cheaper,smaller) HS-USB way to get SPI flash programmed.
Good numbers. Why not > 64kB HUB RAM ?
64KB Hub Ram means no change to current P1 software, just that its all ram rather than 32KB of ram and 32KB of rom. Probably will need a small amount of protected RAM (as ROM) at the top.
So, any current software should work fine, provided 4 cogs are sufficient. This should make for easy debugging.
Might then do 2 sets of P1 with....
64KB Hub Ram
3 Cogs 2KB Ram
32 I/O (each P1 has full access just like existing cogs)
No video
Plus another COG with 2KB Ram with access to both sets of Hub Ram, utilising a hub slot in each hub.
Hub slots would then be 1:4.
It may also be possible to have pointers access > 64k, indirect only ?