Go Back   Velocity Reviews > Newsgroups > VHDL
User Name
Password
Register FAQ Members List Calendar Search Today's Posts Mark Forums Read

Reply

VHDL - Register Files for synthesis

 
Thread Tools Search this Thread
Old 04-30-2005, 04:06 PM   #1
Default Register Files for synthesis


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;



Mohammed A khader
  Reply With Quote
Old 05-02-2005, 09:34 AM   #2
Mohammed A khader
 
Posts: n/a
Default Re: Register Files for synthesis
HI,

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



Mohammed A khader
  Reply With Quote
Reply


Thread Tools Search this Thread
Search this Thread:

Advanced Search

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

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

Similar Threads
Thread Thread Starter Forum Replies Last Post
Convert Video files to PSP ivan DVD Video 4 06-17-2008 11:16 AM
How to copy *.vob files on DVD to the hard disk and merge them together zengpeiwen1719 Software 0 05-24-2008 10:33 AM
Convert Video files to MP4 for iPod ivan DVD Video 0 04-26-2006 08:38 AM
Very slow recognising DVD disc Terry Pinnell DVD Video 1 03-28-2006 06:53 PM
Now I introduce some popular software of multimedia eightsome@gmail.com DVD Video 0 03-28-2006 02:29 PM




SEO by vBSEO 3.3.2 ©2009, Crawlability, Inc.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46