true dual port memory v/s simple dual port memory

Hi all,

I wanted to know the differnce between a true dual port memory and a simple dual port memory in FPGA context.

Thanks in advance, Praveen

Reply to
praveen.kantharajapura
Loading thread data ...

Well ... I'll take a guess .. alot of people refer to dual port and two port memory ... the difference being that a dual port memory has a read and write capability on both ports whereas a two port has a read-only port and a write-only port.

I would bet that a true dual port is the dual port I have described above and a simple dual port is the two port memory I have described above.

Mike

Reply to
Mike Lewis

Well, let's not split hairs ! A dual-port memory has two independent access ports to a common storage array. Some dual-port memories can use one port only for write, the other one only for read (sufficient for FIFOs), Better designs have no such restriction, they allow read or write on either or both ports. That's what all Xilinx BlockRAMs do. Such memories are then referred to as "true dual-port memories". Interestingly, Xilinx BlockRAMs perform a read operation even during a write operation on the same port, and have a choice or read-before-write or write-before-read. That just gives additional flexibility. Peter Alfke, Xilinx Applications.

Reply to
Peter Alfke

Hi peter,

So what you mean to say is in simple dual port memories one port is restricted only for write, and the other one only for read.

I read in ALTERA cyclone FPGA's that there memory blocks can be used as

1)Simple dual port memory. 2)True dual port memory. 3)FIFO buffers. Is it the same in XILINX.

But according to your explanation Simple dual port memory is nothing but a FIFO, so why have they explicitly mentioned as FIFO buffers.

Please clarify on the 3 types of memory usages.

Thanks in advance, Praveen

Reply to
praveen.kantharajapura

I cannot speak for Altera and their marketing messages. A "true dual-port memory" is obviously a superset of a "simple dual-port memory", and it seems that both Xilinx and Altera have this type of memory. Dual-ported memories can be used for many things: FIFOs, LIFOs, Stacks, Caches, Register Files, State Machines, Code Converters, Sequencers, Counters...

Xilinx Virtex-4 has a built-in "hard" FIFO controller (guaranteed for

500 MHz operation.) Altera does not have anything remotely similar. They are just the champions of Marketing B.S., and have been for decades... Peter Alfke
Reply to
Peter Alfke

Apparently you do speak about A's marketing messages. Don't you think it's a little bit silly to hide behind a non-X domain to call A names? I expected better from you and X to be frank.

Reply to
m

mk schrieb:

names?

???

  1. Peter is well known - he doesn't need to hide hisself
  2. if you read carefully, he signed in his first answer with "Peter Alfke, Xilinx Applications."
  3. do you have any "reasonable" comment on Peters answer ? Jochen
Reply to
Jochen

You can use the memories in a variety of ways, but they are all based on either single-port, simple dual-port (independant read and write ports) or true dual-port (independant bidirectional ports) arrangements. The idea of a simple dual port memory is that often it is all you need - for example, it forms the basis of a FIFO - and can be (on Altera devices - I don't know about Xilinx) twice as wide as true dual-port arrangements. So you use simple dual-port where it is sufficient, and true dual-port where it is necessary.

Xilinx devices also have some hardware specifically for making fast FIFOs (along with a simple dual-port ram block). I've no idea whether this is faster than corresponding soft logic on Altera devices, but Xilinx certainly considers it a marketing point so there is presumably some advantage.

Reply to
David

Here are some tricks: If you have a true dual-port RAM, but need only a single port, you can

  1. divide the RAM in two (evenly or non-evenly divided) pieces, and address each from its own port. Now these two RAMs are completely independent, but are each single-port.
  2. You can make the RAM wider (but also shallower). In Virtex, the widest dual-port BlockRAM is 512 x 36, but you can make it into a single-port 256 x 76 memory. Just remember, you cannot increase the size of the starage array... Peter Alfke, (with a name like this I can never hide), Xilinx Applications
Reply to
Peter Alfke

simple dual port allows random access to both ports, with the restriction that one port is read only , one is write only with independent addresses for each port.. It has memory address inputs for each port. A FIFO buffer typically includes read and write pointers and flag logic so that the external interface does not include address inputs. True dual port allows both read and write from both memory ports. earlier Altera devices (10K and 20K) had simple dual port memories, while Xilinx FPGAs of the same vintage had true dual port. Altera's current devices have true dual port memories.

--
--Ray Andraka, P.E.
President, the Andraka Consulting Group, Inc.
 Click to see the full signature
Reply to
Ray Andraka

Hi,

I should point out that Quartus II will do this for you automatically when additional RAM packing density is needed -- two unrelated single-port memories can be combined into one true dual-port RAM.

Also, while it is true that in concept a "Simple Dual-Port" is just a "True Dual-Port" with one port set to always read and one set to always write, there are some electrical and modeling differences between the two. This difference results in different timing and power consumption. If you only need a simple dual-port RAM (one read, one write), you are best off instantiating the RAM as such.

Regards,

Paul Leventis Altera Corp.

Reply to
Paul Leventis (at home)

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.