Anyone use Dual Port Ram?
fullspeceng
Posts: 76
Is there a good solution to RAM that can be written at high speed AND read out at the same time?
I need some sort of shared memory solution to take advantage of the propeller's parallaxism.
I also need significant amounts of memory, 1megabyte or more. Thanks for the info!
I need some sort of shared memory solution to take advantage of the propeller's parallaxism.
I also need significant amounts of memory, 1megabyte or more. Thanks for the info!
Comments
An AVR32 for example has built-in SDRAM controller and can reach 210MIPS. An XMOS chip can control a SDRAM directly via bit-bang and reaches around 60 MB/s in burst mode...
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Visit some of my articles at Propeller Wiki:
MATH on the propeller propeller.wikispaces.com/MATH
pPropQL: propeller.wikispaces.com/pPropQL
pPropQL020: propeller.wikispaces.com/pPropQL020
OMU for the pPropQL/020 propeller.wikispaces.com/OMU
At high speeds, details matter.
I'm not sure what you mean by "take advantage of the Propellers parallelism" here.
Driving any kind of RAM over a parallel address/data bus takes up all/most of the Propellers pins. Dual port would need twice as many pins. What I mean is there is "no way out" for any COGS executing in parallel. This is something we see already on the TriBladeProp boards and others. All pins go to RAM only a couple left for maybe serial communication.
Of course a normal RAM can look like dual port if you interleave reads and writes from two different sources using hardware glue logic (or software in the case of the Prop) if you can take the speed hit.
Perhaps you could elaborate on what the problem is you actually want to solve. Other solutions than dual port may surface here.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
For me, the past is not over yet.
However, I need to write and read at the same time so I can use two different cores, one to write the data and the other to process it.· Well I probably don't "need" anything but that would make life easier [noparse]:)[/noparse]
Any suggestions?· Thanks in advance.
download.cypress.com.edgesuite.net/design_resources/datasheets/contents/cy7c0833v_8.pdf. It's a complex and expensive part to use. If you'd rather use something like a Propeller with some external glue logic, you're going to have to provide much more information about what you're trying to accomplish, what parts you're planning on using and the constraints on speed, board size, costs, complexity, etc.
Just set up a circular buffer in the hub.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
www.mikronauts.com Please use mikronauts _at_ gmail _dot_ com to contact me off-forum, my PM is almost totally full
Morpheusdual Prop SBC w/ 512KB kit $119.95, Mem+2MB memory IO board kit $89.95, both kits $189.95
Propteus and Proteus for Propeller prototyping 6.250MHz custom Crystals run Propellers at 100MHz
Las - Large model assembler for the Propeller Largos - a feature full nano operating system for the Propeller
There are dual port srams. I used one in 1990. It was simple to use - just looks exactly like 2 srams to the outside world. All contention is handled on chip without delays.
Cypress have quite a few chips - just goto their website. IIRC www.cypress.com
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Links to other interesting threads:
· Home of the MultiBladeProps: TriBlade,·RamBlade,·SixBlade, website
· Single Board Computer:·3 Propeller ICs·and a·TriBladeProp board (ZiCog Z80 Emulator)
· Prop Tools under Development or Completed (Index)
· Emulators: CPUs Z80 etc; Micros Altair etc;· Terminals·VT100 etc; (Index) ZiCog (Z80) , MoCog (6809)
· Search the Propeller forums·(uses advanced Google search)
My cruising website is: ·www.bluemagic.biz·· MultiBladeProp is: www.bluemagic.biz/cluso.htm
If the reads and writes were mostly from sequential locations some form of external addressing could be used to reduce the address pin count and make a dual port ram more useful. The second issue is the speed difference between the memory and the prop. A prop instruction takes 4 clocks (50nS @ 80MHz) while a static ram chip can be accessed in about 10nS. With external sequential addressing and synchronizing 2 cogs it would be possible to use a standard static ram chip and have one cog to write and a second cog read memory at the full speed of the cog.
Do they make a 1 megabyte FIFO?· If not what's the biggest they make?· Ideally I think I'd have SPI dual port ram so I wouldn't waste so many pins.
You take 1 10/15ns SRAM (1Mx8, 2x512kx8) and connect it to a CPLD. The CPLD has 2 ports one for propI the other for prop 2 then you justwrite some code for interleaved access using a synchronous interface so one clock you can access 1st the other 2nd.
I wrote such code for the VGA/Memory controller in CPLD. Sadly the CPLD used was too small so I ended with only one of the two working. I redid the board and will update the page as soon as I get it both working. Have a look at this thread, where some verilog code is posted: propeller.wikispaces.com/Propeller_CPLD, http://forums.parallax.com/showthread.php?p=845032, it is a work in progress.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Visit some of my articles at Propeller Wiki:
MATH on the propeller propeller.wikispaces.com/MATH
pPropQL: propeller.wikispaces.com/pPropQL
pPropQL020: propeller.wikispaces.com/pPropQL020
OMU for the pPropQL/020 propeller.wikispaces.com/OMU
That is what I have done. Actually I have 1 16bit wide sram (CY1061DV33-10ZSXI) and 2 props with 9bit wide data bus
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
· Propeller Object Exchange (last Publications / Updates);·· Vaati's custom search
Jonathan
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
lonesock
Piranha are people too.
I want to hire a Propeller programmer to finish a project for me.· We can talk about price on the phone or email.