asicman
Newbie level 5
Hello,
I am trying to find the best way to implement a very large register file (1030+ 16-bit registers). On the write side I am using s straight forward approach:
my concern is with the read side, I was planning on using a MUX approach
but I am afraid that with the amount of registers we are dealing with, the MUX resources would be huge and the design would not be able to meet timing or route constraints...does anybody else have a better approach I could use?
I am trying to find the best way to implement a very large register file (1030+ 16-bit registers). On the write side I am using s straight forward approach:
Code:
process(CLK)
if rising_edge(CLK) then
if (RST = '1') then
...<RESET CODE>
else
if (ADDR = C_ADDR_REG0) then
reg_file.REG0 <= WR_DATA;
end if
if (ADDR = C_ADDR_REG1) then
reg_file.REG1 <= WR_DATA;
end if
<.....>
my concern is with the read side, I was planning on using a MUX approach
Code:
with ADDR select
RD_DATA <= reg_file.REG0 when C_ADDR_REG0 ,
<...>
but I am afraid that with the amount of registers we are dealing with, the MUX resources would be huge and the design would not be able to meet timing or route constraints...does anybody else have a better approach I could use?