OpenCores
Issue List
Make R51_RAM.vhd truly dual port #1
Open jmargetts opened this issue over 17 years ago
jmargetts commented over 17 years ago

The way this file is currently implemented means there can potentially be 3 active addresses on any one cycle (IntAddrA, IntAddrB and IntAddrA_r). This means an ASIC implementation requires a 3 port RAM, which is clearly less efficient than a dual port.

Is there really any cycle where all three addresses are active?

I dont beleive this is the case. I am guessing IntAddrB is never used during a write cycle (which is the only time IntAddrA_r is used) and therefore these 2 addresses could share the second port.

andreas commented over 17 years ago

Yes there is a case. Whenever a opcode which writes to internal ram is followed by a opcode which reads from PortB all three ports are used in the same cycle. Example: mov dir,#data mov @r0,dir

I have a modified version of the T51 core which need only a dual ported ram. This version is a little bit slower (about 5 %) than the current one. I will merge this two versions in the near future (selectable by an package constant) and put it back to Opencores.


Assignee
No one
Labels
Idea