FPGA Central - World's 1st FPGA / CPLD Portal

FPGA Central

World's 1st FPGA Portal

 

Go Back   FPGA Groups > NewsGroup > Verilog

Verilog comp.lang.verilog newsgroup / usenet

Reply
 
LinkBack Thread Tools Display Modes
  #1 (permalink)  
Old 04-23-2004, 01:36 PM
mr_camel
Guest
 
Posts: n/a
Default High Performance Register File

Hi,

I am working on an ASIC using Synopsys design compiler, Cadence Silicon
Ensemble, and Synopsys Primetime. Primetime is telling me that my
register file (8 bit wide 32 registers) is prohibiting me from reaching my
target clock frequency which is 250 MHz.

Can anyone suggest a way code the register file in Verilog such that this
critical path is removed?

Thanks,

-Rohit


Reply With Quote
  #2 (permalink)  
Old 04-28-2004, 06:05 AM
Kiran
Guest
 
Posts: n/a
Default Re: High Performance Register File

I assume the critical path to be the 32:1 mux for reading from the
register file. Instead of 32:1 mux try using smaller muxes (like 4:1)
in a tree structure and place registers between each stage. This will
increase the read latency.
Reply With Quote
  #3 (permalink)  
Old 04-28-2004, 04:49 PM
John_H
Guest
 
Posts: n/a
Default Re: High Performance Register File

"Kiran" <kirandev@msn.com> wrote in message
news:9043844f.0404272105.57416e8f@posting.google.c om...
> I assume the critical path to be the 32:1 mux for reading from the
> register file. Instead of 32:1 mux try using smaller muxes (like 4:1)
> in a tree structure and place registers between each stage. This will
> increase the read latency.


If muxes *are* being used, perhaps an enable for each register followed by a
wide OR would produce better ASIC-specific results since wide gates should
implement very well.

reg [4:0] Sel;
reg [7:0] RegFile [31:0];

reg [7:0] RegFileRd;
integer i;
always @( RegFile or Sel )
begin
RegFileRd = 32'h0000_0000;
for( i=0; i<32; i=i+1)
RegFileRd = RegFileRd | (Sel == i ? RegFile[i] : 32'h0000_0000);
// 32 5-input ANDs feed 32x8 2-input ANDs followed by 8 32-input ORs
end


Reply With Quote
  #4 (permalink)  
Old 04-29-2004, 02:01 AM
john jakson
Guest
 
Posts: n/a
Default Re: High Performance Register File

"mr_camel" <mr_camel3@hotmail.com> wrote in message news:<fca70bcd27010f3137f3fbfee7b08902@localhost.t alkaboutprogramming.com>...
> Hi,
>
> I am working on an ASIC using Synopsys design compiler, Cadence Silicon
> Ensemble, and Synopsys Primetime. Primetime is telling me that my
> register file (8 bit wide 32 registers) is prohibiting me from reaching my
> target clock frequency which is 250 MHz.
>
> Can anyone suggest a way code the register file in Verilog such that this
> critical path is removed?
>
> Thanks,
>
> -Rohit


Even an FPGA can manage this but one would use 16b rams rather than
registers.

You don't say much about the periphery. If the address lines and mux
outputs are flopped, then just a 32->1 mux inside that pipe should be
easy. Sounds like you have siome extra logic paths either in the
address or output path or both.


regards

johnjakson_usa_com
Reply With Quote
Reply

Bookmarks

Thread Tools
Display Modes

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 On



All times are GMT +1. The time now is 05:55 AM.


Powered by vBulletin® Version 3.8.0
Copyright ©2000 - 2010, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.2.0
Copyright 2008 @ FPGA Central. All rights reserved