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

FPGA Central

World's 1st FPGA Portal

 

Go Back   FPGA Groups > NewsGroup > FPGA

FPGA comp.arch.fpga newsgroup (usenet)

Reply
 
LinkBack Thread Tools Display Modes
  #1 (permalink)  
Old 04-29-2009, 05:20 PM
jacko
Guest
 
Posts: n/a
Default Quartus Timing

Hi

How do I tell quartus that a signal has a propergation delay of 2
clocks?

That is to say the value does not have to become valid for 2 clocks,
instead of the usual 1 clock. You geussed this is the current fmax
path, and so all other timing is being affected. The 2 clock limit is
correct as far as operation is concerned, but the fmax result is
adversly wrong.

cheers jacko
Reply With Quote
  #2 (permalink)  
Old 04-30-2009, 01:06 AM
Muzaffer Kal
Guest
 
Posts: n/a
Default Re: Quartus Timing

On Wed, 29 Apr 2009 08:20:19 -0700 (PDT), jacko <[email protected]>
wrote:

>Hi
>
>How do I tell quartus that a signal has a propergation delay of 2
>clocks?
>
>That is to say the value does not have to become valid for 2 clocks,
>instead of the usual 1 clock. You geussed this is the current fmax
>path, and so all other timing is being affected. The 2 clock limit is
>correct as far as operation is concerned, but the fmax result is
>adversly wrong.


set_multicycle_path is what you need. Check out
http://www.altera.com/literature/an/an481.pdf
--
Muzaffer Kal

DSPIA INC.
ASIC/FPGA Design Services

http://www.dspia.com
Reply With Quote
  #3 (permalink)  
Old 04-30-2009, 02:05 AM
Mike Treseler
Guest
 
Posts: n/a
Default Re: Quartus Timing

jacko wrote:

> How do I tell quartus that a signal has a propergation delay of 2
> clocks?
> That is to say the value does not have to become valid for 2 clocks,
> instead of the usual 1 clock. You geussed this is the current fmax
> path, and so all other timing is being affected. The 2 clock limit is
> correct as far as operation is concerned, but the fmax result is
> adversly wrong.




Because I find timing constraints tedious,
I generate synchronous clock enable strobes
at just the right tick.

If the strobe isn't used otherwise,
the register gets optimized away.

For example, a_v'left, below becomes
an asynch carry out.

-- Mike Treseler
_________________________________________
if a_v(a_v'left) = '1' then -- a carry?
a_v(a_v'left) := '0'; -- clear carry
b_v := b_v + 1;
...
Reply With Quote
  #4 (permalink)  
Old 04-30-2009, 03:57 AM
Jacko
Guest
 
Posts: n/a
Default Re: Quartus Timing

d <=fn(c,din);
if(rising_edge(clk) and second_cycle = '1') then
c <= d;
end if;
if(rising_edge(clk) and second_cycle = '0') then
-- din <= din; -- self held assignment programmer knowledge
end if;

is there anyway to specify that the combinational fn is two cycle? the
register retiming options seem to remove the carry bit, and replace it
with and implicit signal. Maybe the retiming does an eval of the state
machine order and realizes??

It seems that because the synthesis tool does not realize the data in
port remains constant, because the address bus remains constant, it
freaks a little and routes accordingly. As a latch is totally un-
necessary.

I don't have timing quest money or time.

Fair enough if din did change then it would be a mistake, but it
don't.

cheers jacko
Reply With Quote
  #5 (permalink)  
Old 04-30-2009, 06:42 PM
Mike Treseler
Guest
 
Posts: n/a
Default Re: Quartus Timing

Jacko wrote:

> is there anyway to specify that the combinational fn is two cycle? the
> register retiming options seem to remove the carry bit, and replace it
> with and implicit signal. Maybe the retiming does an eval of the state
> machine order and realizes??


I think my synthesis discussion confused the issue.
To avoid a timing constraint, I have to treat fn()
like a rom and do a read cycle
with a wait counter in a synch process.

count to n, set ready bit, wait for ack bit.

> It seems that because the synthesis tool does not realize the data in
> port remains constant, because the address bus remains constant, it
> freaks a little and routes accordingly. As a latch is totally un-
> necessary.


Synthesis does what the code says.
I need a simulator to check the code, not synthesis.

> I don't have timing quest money or time.


A free simulator is good enough to verify this controller.
The only timing requirement inside a synch design is Fmax.
Luts and flops are cheap.

-- Mike Treseler

Reply With Quote
  #6 (permalink)  
Old 05-01-2009, 12:15 AM
Jacko
Guest
 
Posts: n/a
Default Re: Quartus Timing

On Apr 30, 5:42*pm, Mike Treseler <mtrese...@gmail.com> wrote:
> Jacko wrote:
> > is there anyway to specify that the combinational fn is two cycle? the
> > register retiming options seem to remove the carry bit, and replace it
> > with and implicit signal. Maybe the retiming does an eval of the state
> > machine order and realizes??

>
> I think my synthesis discussion confused the issue.
> To avoid a timing constraint, I have to treat fn()
> like a rom *and do a read cycle
> with a wait counter in a synch process.
>
> count to n, set ready bit, wait for ack bit.
>
> > It seems that because the synthesis tool does not realize the data in
> > port remains constant, because the address bus remains constant, it
> > freaks a little and routes accordingly. As a latch is totally un-
> > necessary.

>
> Synthesis does what the code says.
> I need a simulator to check the code, not synthesis.
>
> > I don't have timing quest money or time.

>
> A free simulator is good enough to verify this controller.
> The only timing requirement inside a synch design is Fmax.
> Luts and flops are cheap.
>
> * -- Mike Treseler


The point was to get the synthesis tool to do it. But no matter
anymore. I moved onto the half width (byte) data bus interface version
got 49MHz estimate (nibzC.vhd) This avoids many of the propergation
problems as each instruction takes 4 cycles. Which a over 10 MIPS will
be fine. A big endian design which loads the little end first...

The code is so simple...at 394 LEs, and highly orthogonal instruction
decode and execution. The delayed write of the high byte consumes
quite a few gates, but it does prevent the need for multiphasing the
clock as the instruction fetch interleaves the two written bytes, so
RW SRAM line has no need to be async to get the two rising edges.

cheers jacko

http://nibz.googlecode.com
Reply With Quote
  #7 (permalink)  
Old 05-01-2009, 06:38 PM
Mike Treseler
Guest
 
Posts: n/a
Default Re: Quartus Timing

Jacko wrote:

> The point was to get the synthesis tool to do it. But no matter
> anymore. I moved onto the half width (byte) data bus interface version
> got 49MHz estimate (nibzC.vhd) This avoids many of the propergation
> problems as each instruction takes 4 cycles. Which a over 10 MIPS will
> be fine. A big endian design which loads the little end first...
> The code is so simple...at 394 LEs, and highly orthogonal instruction
> decode and execution. The delayed write of the high byte consumes
> quite a few gates, but it does prevent the need for multiphasing the
> clock as the instruction fetch interleaves the two written bytes, so
> RW SRAM line has no need to be async to get the two rising edges.
> cheers jacko
>
> http://nibz.googlecode.com


Thanks for the link.
That looks like a good place to collaborate.

Sorry I didn't follow your problem,
but thanks for posting the solution.
I always prefer changing my design over
turning the knobs on synthesis.

-- Mike Treseler
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


Similar Threads
Thread Thread Starter Forum Replies Last Post
Quartus II - Timing Analyzer [email protected] FPGA 2 09-09-2005 09:52 PM
Quartus Timing Issues Paul Solomon FPGA 3 07-13-2005 06:08 AM
Timing Simulation ModelSim / Quartus Cornel Arnet FPGA 2 01-19-2004 09:33 PM
Re: Quartus II and fixing hold timing Vaughn Betz FPGA 0 08-13-2003 07:13 PM
Re: Quartus II and fixing hold timing Mike Treseler FPGA 0 08-08-2003 06:00 AM


All times are GMT +1. The time now is 01:06 AM.


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