Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > VHDL > Register Files for synthesis

Reply
Thread Tools

Register Files for synthesis

 
 
Mohammed A khader
Guest
Posts: n/a
 
      04-30-2005
Hi all,

I need to synthesize a Register file with 1 synchronous Input Write
and 2 asynchoronous Output Read . First Output 'Data_Out1' must be
connected to all the registers (16 here) but second Output
'Data_Out2' needs to be connected to only last 4 registers ( 12 to 15
). This is to reduce the complexity and 2 bits for addressing the
Data_Out2 port.
To attain this offset I added '12' to the address of the second
output.
Data2_Out <= Regfile_Coff(TO_INTEGER(addrs2_Out)+12);

Code is given below..


When I synthesize this using synplicity it is creating 2 register
files one for each port . Later during mapping it is removing the 4
registers from one of the register file. But at the end still it has 2
differnt register files.

Please give me some suggestion to fix this.
Thank you.



entity Coff_Regfile is
port(
Data_In : in WORD; -- Input Data
Addrs_In : in unsigned(3 downto 0); -- Input Address
Addrs1_Out : in unsigned(3 downto 0); -- Output Address 1
Addrs2_Out : in unsigned(1 downto 0); -- Output Address 2
Coff_Wr : in std_logic; -- Write Enable
Clk : in std_logic; -- Global Clk
Reset : in std_logic; -- Global Reset

Data1_Out : out WORD; -- Output Data 1
Data2_Out : out WORD -- Output Data 2
);
end entity Coff_Regfile;

architecture Coff_Regfile_Arch of Coff_Regfile is
type Regfile is array (natural range<>) of WORD;
signal Regfile_Coff : Regfile(0 to 15);
begin
--------------------------------------------------------
-- Concurrent Statements

-- Regfile_Read Assignments
Data1_Out <= Regfile_Coff(TO_INTEGER(Addrs1_Out));
Data2_Out <= Regfile_Coff(TO_INTEGER(addrs2_Out)+12);
--------------------------------------------------------
-- Sequential Process
-- Register File Write Process
Regfile_Writerocess(Clk,Reset)
begin
if(Reset = '0')then
Regfile_Coff <= (others =>(others => '0'));
elsif(RISING_EDGE(Clk))then
if(Coff_Wr = '1')then
Regfile_Coff(TO_INTEGER(Addrs_In)) <= Data_In;
end if;
end if;

end process Regfile_Write;
--------------------------------------------------------
end architecture Coff_Regfile_Arch;

 
Reply With Quote
 
 
 
 
Mohammed A khader
Guest
Posts: n/a
 
      05-02-2005
HI,

Sorry, It was my mistake in interpreting the result from schematic .
I rectified the mistake. synplicity has synthezied it as logic.

 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
shift register synthesis Markus VHDL 1 08-16-2007 12:00 PM
VHDL register file synthesis stoyan.shopov@gmail.com VHDL 3 03-16-2005 07:06 AM
Problem with runtime compilation of aspx files. Register Directive ignores Assembly Dan ASP .Net 3 06-14-2004 06:13 AM
SOS! newbie question about synthesizable VHDL : synthesis run successfully but post-synthesis failed... walala VHDL 4 09-09-2003 08:41 AM
what are the possible reasons that successful pre-synthesis simulation + successful synthesis = failed post-synthes walala VHDL 4 09-08-2003 01:51 PM



Advertisments