OpenCores
no use no use 1/1 no use no use
How do YOU implement WISHBONE regs' access and why?
by Unknown on Jul 30, 2008
Not available!
Hello everybody,

Usually in my projects I avoid complications when implementing the
Wishbone bus and regs by using a double port memory (DP-RAM) to store
the reg contents: one port for the WB bus and the other for my core's
exclusive use.

I recently studied the Ethernet core and saw an interesting solution
there, where a single port dist. ram (SP-RAM) was used and a state
machine was set up for up to three processes to use the single port (the
WB bus itself and two other core's processes).

As far as I can tell, the SP-RAM solution uses a simpler RAM, it's
sure there won't be any concurrent writes to the same reg, but needs a
state machine and one can not make any assumptions about a fixed time to
read its contents. On the other side the DP-RAM solution is way simpler
(doesn't need the arbiter state machine) and gives exclusive access to
the WB bus and to the core, but could run into problems with concurrent
writes to the same register.

Now I think it interesting to know and share with the community: How
do you implement this in your cores and why? Do you see any other
problems that could arise from these solutions?

Best regards!

Victor Lopez

How do YOU implement WISHBONE regs' access and why?
by Unknown on Jul 31, 2008
Not available!
This depends on the amount of registers you need. Most of my cores use true register banks as they only need a few command/status registers. For cores with large memory requirements (e.g. color luts) I use single port memories. For ASIC implementations you definitely want SP instead of 2P or even DP memories, simply due to the increased size of these. Two port and dual port memories require almost twice the silicon area compared to single port memories. Richard -----Original Message----- From: cores-bounces at opencores.org [mailto:cores-bounces at opencores.org] On Behalf Of Víctor López Sent: 30 July 2008 16:49 To: Discussion list about free open source IP cores Subject: [oc] How do YOU implement WISHBONE regs' access and why? Hello everybody, Usually in my projects I avoid complications when implementing the Wishbone bus and regs by using a double port memory (DP-RAM) to store the reg contents: one port for the WB bus and the other for my core's exclusive use. I recently studied the Ethernet core and saw an interesting solution there, where a single port dist. ram (SP-RAM) was used and a state machine was set up for up to three processes to use the single port (the WB bus itself and two other core's processes). As far as I can tell, the SP-RAM solution uses a simpler RAM, it's sure there won't be any concurrent writes to the same reg, but needs a state machine and one can not make any assumptions about a fixed time to read its contents. On the other side the DP-RAM solution is way simpler (doesn't need the arbiter state machine) and gives exclusive access to the WB bus and to the core, but could run into problems with concurrent writes to the same register. Now I think it interesting to know and share with the community: How do you implement this in your cores and why? Do you see any other problems that could arise from these solutions? Best regards! Victor Lopez _______________________________________________ http://www.opencores.org/mailman/listinfo/cores
How do YOU implement WISHBONE regs' access and why?
by Unknown on Aug 2, 2008
Not available!
Richard, what you said about ASIC silicon usage was very interesting, I
am way too biased by FPGAs and have almost no experience designing
towards ASIC targets, could you recommend a good book/manual/tutorial
about ASIC design's 'best practices'? Thanks!

Victor


Richard Herveille escribió:
This depends on the amount of registers you need. Most of my cores use true register banks as they only need a few command/status registers. For cores with large memory requirements (e.g. color luts) I use single port memories. For ASIC implementations you definitely want SP instead of 2P or even DP memories, simply due to the increased size of these. Two port and dual port memories require almost twice the silicon area compared to single port memories. Richard -----Original Message----- From: cores-bounces at opencores.org [mailto:cores-bounces at opencores.org] On Behalf Of Víctor López Sent: 30 July 2008 16:49 To: Discussion list about free open source IP cores Subject: [oc] How do YOU implement WISHBONE regs' access and why? Hello everybody, Usually in my projects I avoid complications when implementing the Wishbone bus and regs by using a double port memory (DP-RAM) to store the reg contents: one port for the WB bus and the other for my core's exclusive use. I recently studied the Ethernet core and saw an interesting solution there, where a single port dist. ram (SP-RAM) was used and a state machine was set up for up to three processes to use the single port (the WB bus itself and two other core's processes). As far as I can tell, the SP-RAM solution uses a simpler RAM, it's sure there won't be any concurrent writes to the same reg, but needs a state machine and one can not make any assumptions about a fixed time to read its contents. On the other side the DP-RAM solution is way simpler (doesn't need the arbiter state machine) and gives exclusive access to the WB bus and to the core, but could run into problems with concurrent writes to the same register. Now I think it interesting to know and share with the community: How do you implement this in your cores and why? Do you see any other problems that could arise from these solutions? Best regards! Victor Lopez _______________________________________________ http://www.opencores.org/mailman/listinfo/cores _______________________________________________ http://www.opencores.org/mailman/listinfo/cores




no use no use 1/1 no use no use
© copyright 1999-2026 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.