Breaking News
Blog

Tips & Tricks: Creating a 2W+4R FPGA Block RAM, Part 1

NO RATINGS
2 saves
View Comments: Oldest First | Newest First | Threaded View
Page 1 / 2   >   >>
hamster_nz
User Rank
Freelancer
Just at the right (write?) time....
hamster_nz   11/13/2013 4:05:45 AM
NO RATINGS
Hi Alvie,

Just stumbled over this on twitter (#FPGA) - making use of this right now.

I resolved the conflict a cruder way - the addresses are compared, and if they match then the datain is registered to place on the dataout of the other port, and the enable of the read port is inhibited (don't know if I explained that correctly or not!).

However, this way is much cleaner.

 

Brian_D
User Rank
Freelancer
ICE40 multiport examples
Brian_D   11/13/2013 8:30:25 AM
This was discussed briefly on the Programmable Planet a couple months back, in the context of building a [1W+2R] memory from the "simple dual port" [1W+1R] block RAMs that are available in the Lattice ICE40 family.

I would post a direct link, unfortunately the Programmable Planet was recently destroyed by the UBM division of the Vogon Constructor Fleet in order to make way for a new subspace billboard.

As of the moment, Google has a cached copy of the thread here:

http://webcache.googleusercontent.com/search?q=cache:nqd_1zUR4bkJ:www.programmableplanet.com/messages.asp%3Fpiddl_msgthreadid%3D271824%26piddl_msgorder%3Dasc+&cd=1&hl=en&ct=clnk&gl=us&client=firefox-a

In the event that vanishes, FWIW the ICE40 [1W+2R] code example can be found here:

http://code.google.com/p/yard-1/source/browse/trunk/hdl/systems/evb_common/block_ram/lattice/rtl_mem_ice40.vhd

-Brian

betajet
User Rank
CEO
Resistance is useless!
betajet   11/13/2013 1:09:36 PM
NO RATINGS
Uprated for reference to Vogon Constructor Fleet :-)

Alvie
User Rank
Blogger
Re: Resistance is useless!
Alvie   11/13/2013 3:04:00 PM
NO RATINGS
Resistance is by no means useless!

You should join the resistance perhaps...

Join the resistance

hamster_nz
User Rank
Freelancer
Resistance is tasty!
hamster_nz   11/13/2013 10:15:14 PM
NO RATINGS
Since we are off topic - resistance is tasty! - A gingerbread amplifier.

Gingerbread Amp

http://www.adafruit.com/blog/2012/12/28/gingerbread-class-ab-amplifier/

 

KarlS01
User Rank
Manager
Re: ICE40 multiport examples
KarlS01   11/14/2013 3:57:38 PM
NO RATINGS
@Brian:  This is not the same as using 2 simple dual ports.  There both RAMs must be written every time to maintain integrity.

In this case is special because true dual port can write one port and read a different address simultaneously on the other port.  The write to the second port is a write thru only if the addresses are the same.

Therewfore I think there is no way to make a true dual port using 2 simple dual ports because for writes both addresses have to be the same.

Brian_D
User Rank
Freelancer
Re: ICE40 multiport examples
Brian_D   11/14/2013 8:28:50 PM
NO RATINGS
@Karl "This is not the same as using 2 simple dual ports.  There both RAMs must be written every time to maintain integrity."

It is unclear to me exactly what you are disagreeing with.

My earlier post, here on EET, explicitly stated [1W+2R] :

"in the context of building a [1W+2R] memory from the "simple dual port" [1W+1R] block RAMs that are available in the Lattice ICE40 family."

Which is exactly what Álvaro is building in his second figure ("2R+1W block RAM") in the above article.

I would agree that Álvaro's first figure, a TDP with write collision logic, uses a different approach.

"I think there is no way to make a true dual port using 2 simple dual ports because for writes both addresses have to be the same."

 My earlier posts on the late Programmable Planet thread did mention running SPD(s) at 2x the clock rate to get two write ports from a simple dual port.

-Brian

DrFPGA
User Rank
Blogger
Number and Types of Ports
DrFPGA   11/15/2013 11:01:54 AM
NO RATINGS
In your first paragraph you say: 

I will explain the path from a normal FPGA Block RAM into a 2W+4R (two read ports and four write ports) memory, which I needed for my upcoming CPU design.

Should that be two "Write ports and 2 Read ports"?

Alvie
User Rank
Blogger
Re: Number and Types of Ports
Alvie   11/15/2013 11:10:03 AM
NO RATINGS
@DrFPGA: Indeed, you are correct. It was a typo on my part. The memory will have four read ports and two write ports. Thanks for pointing that out.


Alvie

Alvie
User Rank
Blogger
Re: ICE40 multiport examples
Alvie   11/15/2013 11:13:05 AM
NO RATINGS
@Brian_D: This is the first part of the artice. The second part will deal with adding an extra write port to the design.

Regarding the multipumping you're speaking about in order to get a second write port is also possible. I'll address that option as well.

Alvie

Page 1 / 2   >   >>
Flash Poll
Radio
LATEST ARCHIVED BROADCAST
EE Times editor Junko Yoshida grills two executives --Rick Walker, senior product marketing manager for IoT and home automation for CSR, and Jim Reich, CTO and co-founder at Palatehome.
Like Us on Facebook

Datasheets.com Parts Search

185 million searchable parts
(please enter a part number or hit search to begin)
EE Times on Twitter
EE Times Twitter Feed
Top Comments of the Week